{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2024-11-04 22:36:36","updateBy":"admin","updateTime":"2024-11-04 22:36:36","remark":null,"id":92,"articleTitle":"每天一个Linux命令（十六）ps","articleUrl":"linux_ps","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"ps是 Linux/Unix 系统中用于显示当前进程状态的命令（Process Status），支持查看进程 ID、CPU 和内存使用情况、运行状态等信息。它是系统管理和故障排查中常用的工具之一。","articleContent":"`ps` 是 Linux/Unix 系统中用于**显示当前进程状态**的命令（Process Status），支持查看进程 ID、CPU 和内存使用情况、运行状态等信息。它是系统管理和故障排查中常用的工具之一。\n\n---\n\n## 语法\n\n```bash\nps [选项]\n```\n\n---\n\n## 常用选项\n\n| 选项       | 说明                                       |\n| ---------- | ------------------------------------------ |\n| `-e`       | 显示所有进程                               |\n| `-f`       | 显示完整格式信息                           |\n| `-u`       | 显示指定用户的进程                         |\n| `-p`       | 显示指定 PID 的进程                        |\n| `-a`       | 显示终端上的所有进程（包括其他用户的进程） |\n| `-x`       | 显示没有控制终端的进程                     |\n| `-l`       | 显示长格式信息                             |\n| `-o`       | 自定义输出字段                             |\n| `--sort`   | 按指定字段排序                             |\n| `--forest` | 显示进程树                                 |\n\n---\n\n## 输出字段说明\n\n| 字段      | 说明                          |\n| --------- | ----------------------------- |\n| `PID`     | 进程 ID                       |\n| `PPID`    | 父进程 ID                     |\n| `USER`    | 进程所有者                    |\n| `%CPU`    | CPU 使用率                    |\n| `%MEM`    | 内存使用率                    |\n| `VSZ`     | 虚拟内存大小（KB）            |\n| `RSS`     | 物理内存大小（KB）            |\n| `TTY`     | 控制终端                      |\n| `STAT`    | 进程状态（如 R=运行, S=睡眠） |\n| `START`   | 进程启动时间                  |\n| `TIME`    | 进程使用的 CPU 时间           |\n| `COMMAND` | 进程的命令名                  |\n\n---\n\n## 使用示例\n\n### 1. 显示当前用户的进程\n\n```bash\nps\n```\n\n输出示例：\n\n```bash\n  PID TTY          TIME CMD\n 1234 pts/0    00:00:00 bash\n 5678 pts/0    00:00:00 ps\n```\n\n---\n\n### 2. 显示所有进程\n\n```bash\nps -e\n```\n\n输出示例：\n\n```bash\n  PID TTY          TIME CMD\n    1 ?        00:00:01 systemd\n    2 ?        00:00:00 kthreadd\n    3 ?        00:00:00 rcu_gp\n```\n\n---\n\n### 3. 显示完整格式信息\n\n```bash\nps -ef\n```\n\n输出示例：\n\n```bash\nUID        PID  PPID  C STIME TTY          TIME CMD\nroot         1     0  0 Jan10 ?        00:00:01 /sbin/init\nroot         2     0  0 Jan10 ?        00:00:00 [kthreadd]\nroot         3     2  0 Jan10 ?        00:00:00 [rcu_gp]\n```\n\n---\n\n### 4. 显示指定用户的进程\n\n```bash\nps -u username\n```\n\n输出示例：\n\n```bash\n  PID TTY          TIME CMD\n 1234 pts/0    00:00:00 bash\n 5678 pts/0    00:00:00 ps\n```\n\n---\n\n### 5. 显示指定 PID 的进程\n\n```bash\nps -p 1234\n```\n\n输出示例：\n\n```bash\n  PID TTY          TIME CMD\n 1234 pts/0    00:00:00 bash\n```\n\n---\n\n### 6. 显示进程树\n\n```bash\nps auxf\n```\n\n输出示例：\n\n```bash\nUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND\nroot         1  0.0  0.1 128344  9708 ?        Ss   Oct01   0:03 /sbin/init splash\nroot         2  0.0  0.0      0     0 ?        S    Oct01   0:00 [kthreadd]\nroot         3  0.0  0.0      0     0 ?        I<   Oct01   0:00  \\_ [rcu_gp]\n...\n```\n\n---\n\n### 7.显示线程信息\n\n使用 -L 选项可以显示线程信息：\n\n```bash\nps -eLf\n```\n\n输出示例：\n\n```bash\nUID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD\nroot         1     0     1  0    1 Oct01 ?        00:00:03 /sbin/init splash\nroot         2     0     2  0    1 Oct01 ?        00:00:00 [kthreadd]\nroot         3     2     3  0    1 Oct01 ?        00:00:00  \\_ [rcu_gp]\n...\n```\n\n### 8. 自定义输出字段\n\n```bash\nps -eo pid,ppid,user,comm\n```\n\n输出示例：\n\n```bash\n  PID  PPID USER    COMMAND\n    1     0 root    systemd\n    2     0 root    kthreadd\n    3     2 root    rcu_gp\n```\n\n---\n\n## 注意事项\n\n1. **选项组合**：可以组合多个选项，如 `ps -ef` 或 `ps -aux`\n2. **进程状态**：`STAT` 字段的常见值包括：\n   - `R`：运行中\n   - `S`：睡眠中\n   - `D`：不可中断的睡眠\n   - `Z`：僵尸进程\n   - `T`：已停止\n3. **输出格式**：默认输出格式可能因系统而异\n\n---\n\n## 进阶技巧\n\n### 1. 按 CPU 使用率排序\n\n```bash\nps -eo pid,ppid,user,%cpu,comm --sort=-%cpu\n```\n\n输出示例：\n\n```bash\n  PID  PPID USER    %CPU COMMAND\n 1234     1 root    10.0 bash\n 5678  1234 root     0.1 ps\n```\n\n---\n\n### 2. 按内存使用率排序\n\n```bash\nps -eo pid,ppid,user,%mem,comm --sort=-%mem\n```\n\n输出示例：\n\n```bash\n  PID  PPID USER    %MEM COMMAND\n 1234     1 root    10.0 bash\n 5678  1234 root     0.1 ps\n```\n\n---\n\n### 3. 显示线程信息\n\n```bash\nps -eLf\n```\n\n输出示例：\n\n```bash\nUID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD\nroot         1     0     1  0    1 Jan10 ?        00:00:01 systemd\nroot         2     0     2  0    1 Jan10 ?        00:00:00 kthreadd\nroot         3     2     3  0    1 Jan10 ?        00:00:00 rcu_gp\n```\n\n---\n\n### 4. 显示进程的环境变量\n\n```bash\nps e -p 1234\n```\n\n输出示例：\n\n```bash\n  PID TTY      STAT   TIME COMMAND\n 1234 pts/0    S      0:00 bash USER=root HOME=/root\n```\n\n---\n\n### 5. 显示进程的父进程\n\n```bash\nps -o ppid= -p 1234\n```\n\n输出示例：\n\n```bash\n1\n```\n\n---\n\n### 6. 显示进程的启动时间\n\n```bash\nps -eo pid,lstart,comm\n```\n\n输出示例：\n\n```bash\n  PID STARTED COMMAND\n    1 Wed Jan 10 15:30:45 2024 systemd\n 1234 Wed Jan 10 15:31:00 2024 bash\n```\n\n---\n\n### 7. 查看僵尸进程\n\n```bash\nps aux | grep 'Z'\n```","categoryId":1,"viewCount":69,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}