在 Linux 系统中,查看进程是系统管理和故障排查中的重要任务。Linux 提供了多种工具和命令来查看和管理进程,以下是一些常用的命令及其用法。
1. ps 命令
ps(Process Status)命令用于显示当前系统中运行的进程的状态信息。
基本语法
ps [选项]
常用选项
-e或-A:显示系统中所有进程。-f:显示完整格式的进程信息,包括用户、进程 ID、父进程 ID、CPU 时间等。-u:按用户过滤进程。-x:显示没有控制终端的进程(例如后台运行的进程)。-o:自定义输出格式。
示例
-
查看所有进程:
ps -e -
查看完整格式的进程信息:
ps -ef输出示例:
复制
UID PID PPID C STIME TTY TIME CMD root 1 0 0 Jan20 ? 00:00:01 /sbin/init user1 123 1 0 12:34 pts/0 00:00:00 /bin/bash user2 456 123 0 12:35 pts/0 00:00:00 ps -ef -
按用户过滤进程:
ps -u username -
自定义输出格式:
ps -eo pid,comm,pcpu,pmem输出示例:
复制
PID COMMAND %CPU %MEM 1 systemd 0.0 0.1 123 bash 0.0 0.2 456 ps 0.1 0.1
2. top 命令
top 命令用于实时显示系统中占用资源最多的进程。它是一个交互式命令,可以动态更新进程信息。
基本语法
bash复制
top
功能
- 动态更新:默认情况下,
top每隔几秒刷新一次。 - 排序:可以通过按键(如
P按 CPU 使用率排序,M按内存使用率排序)调整显示顺序。 - 退出:按
q键退出。
3. htop 命令
htop 是一个更高级的进程查看工具,提供了更丰富的交互式界面和功能。它通常需要单独安装。
安装
bash复制
sudo apt-get install htop # Debian/Ubuntu
sudo yum install htop # CentOS
使用
bash复制
htop
功能
- 彩色显示:更直观地显示进程信息。
- 交互式操作:可以通过键盘操作(如
F5显示树形结构,F9杀死进程等)。 - 自定义列:可以根据需要显示或隐藏某些列。
4. pgrep 和 pkill 命令
pgrep 和 pkill 命令用于根据进程名称或其他属性查找或操作进程。
pgrep:查找进程
返回的是PID
bash复制
pgrep [选项] [进程名]
-u:按用户过滤。-f:匹配完整的命令行。
示例
-
查找所有名为
bash的进程:pgrep bash -
查找用户
user1的所有bash进程:pgrep -u user1 bash
pkill:发送信号到进程
pkill [选项] [进程名]
-u:按用户过滤。-f:匹配完整的命令行。-9:强制杀死进程(发送SIGKILL信号)。
示例
-
杀死所有名为
bash的进程:pkill bash -
强制杀死用户
user1的所有bash进程:pkill -u user1 -9 bash
5. pstree 命令
pstree 命令以树形结构显示进程之间的层次关系,方便查看进程的父子关系。
基本语法
pstree [选项]
示例
pstree
输出示例:
init-+-bash---pstree
|-sshd---bash---vim
|-systemd-journald
|-systemd-udevd
`-...
6. kill 和 killall 命令
kill 和 killall 命令用于向进程发送信号,通常用于终止进程。
kill:通过进程 ID 发送信号
kill [选项] [PID]
-9:强制杀死进程(发送SIGKILL信号)。
示例
-
终止进程 ID 为 1234 的进程:
kill 1234 -
强制终止进程 ID 为 1234 的进程:
kill -9 1234
killall:通过进程名称发送信号
killall [选项] [进程名]
-9:强制杀死进程。
示例
-
终止所有名为
bash的进程:killall bash -
强制终止所有名为
bash的进程:killall -9 bash
总结
ps:查看静态的进程信息。top和htop:实时查看和交互式管理进程。pgrep和pkill:根据名称查找和操作进程。pstree:以树形结构显示进程关系。kill和killall:终止进程。
这些工具和命令组合使用,可以满足大多数进程查看和管理的需求。
附加:各个参数的含义和作用
UID (User ID)
- 含义:用户 ID,表示运行该进程的用户的身份。
- 作用:用于标识进程的所有者。每个用户在系统中都有一个唯一的用户 ID。
PID (Process ID)
- 含义:进程 ID,是系统分配给每个进程的唯一标识符。
- 作用:用于唯一标识系统中的每个进程。
PPID (Parent Process ID)
- 含义:父进程 ID,表示创建该进程的父进程的 PID。
- 作用:用于标识进程的父子关系。每个进程都有一个父进程(除了
init进程,其父进程 ID 为 0)。
C (CPU Usage)
- 含义:CPU 使用率,表示进程占用的 CPU 时间。
- 作用:用于显示进程的 CPU 使用情况,通常是一个相对值。
STIME (Start Time)
- 含义:启动时间,表示进程启动的时间。
- 作用:用于显示进程的启动时间,通常显示为月/日/时间或年份。
TTY (Terminal)
- 含义:终端,表示进程关联的终端设备。
- 作用:用于显示进程运行的终端设备。如果进程没有关联终端,则显示为
?
TIME (CPU Time)
- 含义:CPU 时间,表示进程占用的 CPU 时间总和。
- 作用:用于显示进程占用的 CPU 时间,通常以
[小时]:[分钟]:[秒]的格式显示。
CMD (Command)
- 含义:命令,表示启动该进程的命令行。
- 作用:用于显示启动该进程的完整命令行,包括参数。
4060

被折叠的 条评论
为什么被折叠?



