目录
- 一、概述
- 二、进程相关命令
- 2.1 ps 命令
- 三
- 四
- 五
一、概述
上篇文章 bash shell 基础命令 中,介绍了一些与目录、文件相关的 shell 命令,本文继续介绍其他与进程、磁盘、排序、归档相关的命令,读者可以在自己的Linux系统下,实操这些命令,进而收悉并掌握这些命令。本文是一篇学习笔记,很多内容是参考了《Linux命令行与shell脚本编程大全-第四版》。
二、进程相关命令
在 Linux 系统中,最难缠的一项任务是跟踪运行在系统中的程序,尤其是图形化桌面集成了大量的程序来生成一个完整的桌面环境。系统中始终运行着大量的程序。
2.1 ps 命令
当程序在系统中运行时,它被称为进程( process)。要想监测这些进程,必须熟悉 ps 命令的用法。 ps 命令堪比工具中的瑞士军刀,能够输出系统中运行的所有程序的大量信息。
默认的情况下,ps并不会输出太多信息wkd@ubuntu:~$ ps PID TTY TIME CMD 111693 pts/10 00:00:00 bash 111707 pts/10 00:00:00 ps wkd@ubuntu:~$
也没什么特别之处。 ps 命令默认只显示运行在当前终端中属于当前用户的那些进程。
Linux 系统中使用的 GNU ps 命令支持以下 3 种类型的命令行选项:
- Unix 风格选项,选项前加单连字符;
- BSD 风格选项,选项前不加连字符;
- GNU 长选项,选项前加双连字符。
1.Unix 风格选项
如果需要查看系统中运行的所有进程,可以使用-ef 选项组合,使用ps -ef
,读者可以自己在Linux系统试一下。
- -e 选项指定显示系统中运行的所有进程;
- -f 选项则扩充输出内容以显示一些有用的信息列。
wkd@ubuntu:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Jun14 ? 00:00:01 /sbin/init root 2 0 0 Jun14 ? 00:00:00 [kthreadd] root 3 2 0 Jun14 ? 00:02:04 [ksoftirqd/0] root 5 2 0 Jun14 ? 00:00:00 [kworker/0:0H] root 7 2 0 Jun14 ? 00:27:41 [rcu_sched]
输出信息每列的解释:
- UID:启动该进程的用户。
- PID:进程 ID。
- PPID:父进程的 PID(如果该进程是由另一个进程启动的)。
- C:进程生命期中的 CPU 利用率。
- STIME:进程启动时的系统时间。
- TTY:进程是从哪个终端设备启动的。
- TIME:运行进程的累计 CPU 时间。
- CMD:启动的程序名称。
如果还想获得更多的信息,可以使用-l 选项,产生长格式输出。
wkd@ubuntu:~$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 1001 111693 111692 0 80 0 - 6807 wait pts/10 00:00:00 bash 0 R 1001 111769 111693 0 80 0 - 3557 - pts/10 00:00:00 ps wkd@ubuntu:~$
-l
选项多的几列输出解释:
- F:内核分配给进程的系统标志。
- S:进程的状态( O 代表正在运行; S 代表在休眠; R 代表可运行,正等待运行; Z 代表
僵化,已终止但找不到其父进程; T 代表停止)。- PRI:进程的优先级(数字越大,优先级越低)。
- NI:谦让度( nice),用于决定优先级。
- ADDR:进程的内存地址。
- SZ:进程被换出时所需交换空间的大致大小。
- WCHAN:进程休眠的内核函数地址。
2.BSD 风格选项
在使用 BSD 风格的选项时, ps 命令会自动改变输出以模仿 BSD 格式。下面是使用 l 选项的输出。wkd@ubuntu:~$ ps l F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 1001 111693 111692 20 0 27228 5784 wait S pts/10 0:00 bash 0 1001 111796 111693 20 0 14228 2276 - R+ pts/10 0:00 ps l wkd@ubuntu:~$
输出列解释:
- VSZ:进程占用的虚拟内存大小(以 KB 为单位)。
- RSS:进程在未被交换出时占用的物理内存大小。
- STAT:代表当前进程状态的多字符状态码。
状态的第一个字符表明进程是在休眠、运行还是等待。
第二个字符进一步说明了进程的状态:
<:该进程以高优先级运行。
N:该进程以低优先级运行。
L:该进程有锁定在内存中的页面。
s:该进程是控制进程。
l:该进程拥有多线程。
+:该进程在前台运行。
3.GNU 长选项
选项 解释 –deselect 显示除命令行中列出的进程之外的其他进程 –Group grplist 显示组 ID 在 grplist 列表中的进程 –User userlist 显示用户 ID 在 userlist 列表中的进程 –group grplist 显示有效组 ID 在 grplist 列表中的进程 –user userlist 显示有效用户 ID 在 userlist 列表中的进程 –pid pidlist 显示 pid 在 pidlist 列表中的进程 –ppid pidlist 显示父 pid 在 pidlist 列表中的进程 –sid sidlist 显示会话 ID 在 sidlist 列表中的进程 –tty ttylist 显示终端设备 ID 在 ttylist 列表中的进程 –format format 仅显示由 format 指定的列 –context 显示额外的安全信息 –cols n 将屏幕宽度设置为 n 列 –columns n 将屏幕宽度设置为 n 列 –cumulative 包含已停止的子进程的信息 –forest 用层级结构显示出进程和父进程之间的关系 –headers 在每页输出中都显示列名 –no-headers 不显示列名 –lines n 将屏幕高度设置为 n 行 –rows n 将屏幕高度设置为 n 行 –sort order 指定用于排序输出的列 –width n 将屏幕宽度设置为 n 列 –help 显示帮助信息 –info 显示调试信息 –version 显示 ps 命令的版本号
三
四
五
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁