使用 ps/htop 命令显示 Linux 中所有正在运行的进程
简介:进程不过是 Linux 操作系统中的任务。一个名为 httpd 的进程用于显示网页。另一个名为 mysqld 的进程提供数据库服务。您需要使用 ps 命令。它提供有关当前正在运行的进程的信息,包括它们的进程标识号 (PID)。Linux 和 UNIX 都支持使用 ps 命令来显示有关所有正在运行的进程的信息。ps 命令提供当前进程的快照。如果您想要重复更新此状态,请使用下面所述的 top、atop 和 htop 命令。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 流程管理 |
先决条件 | ps|top|htop 命令 |
操作系统兼容性 | Alma • Alpine • Arch • CentOS • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • WSL |
预计阅读时间 | 5 分钟 |
Linux 命令显示所有正在运行的进程
除了 ps 命令之外,您还可以使用以下命令来显示有关 Linux 操作系统上的进程的信息:
- top command:显示并更新有关 Linux 进程的排序信息。
- atop command:Linux 的高级系统和进程监视器。
- htop command:Linux 中的交互式进程查看器。
- pgrep command:根据名称和其他属性查找或发信号通知进程。
- pstree command:显示进程树。
如何使用 ps 命令列出进程
键入以下ps 命令以显示所有正在运行的进程:
# ps -aux | less
或者使用 less 命令过滤 ps 命令输出:
# ps aux | less
其中,
- A:选择所有进程
- u:选择终端上的所有进程,包括其他用户的进程
- x:选择进程而不控制 ttys
查看Linux系统上的每个进程
使用 pass-A或-eoption 显示 Linux 服务器/工作站上的所有进程:
您可能需要使用grep 命令或egrep 命令过滤掉所有当前正在运行的进程,如下所示。例如,查看 mysqld 是否正在运行:
在以下示例中,查找 firefox 或 chrome 是否正在运行,如下所示:
# ps -A
# ps -e
$ sudo ps -e | grep 'mysqld'
$ ps -e | grep -E 'firefox|chrome'
600947 ? 00:09:50 chrome 600973 ? 00:00:00 chrome_crashpad 600975 ? 00:00:00 chrome_crashpad 600983 ? 00:00:00 chrome 600984 ? 00:00:00 chrome .... .. .. 601535 ? 00:17:49 firefox 606481 ? 00:00:32 chrome 615708 ? 00:01:28 chrome
如何查看除以 root 身份运行的进程之外的所有进程
要取消选择,请将-N或--deselect选项传递给 ps 命令:
# ps -U root -u root -N
或
# ps -U root -u root --deselect
查看用户 vivek 运行的进程
通过有效用户 ID (EUID) 或通过传递用户名(例如 vivek)按流程选择:
# ps -u vivek
Linux 使用 top 命令运行进程
top 程序提供正在运行的系统的动态实时视图。在命令提示符下输入 top:
# top
示例输出:
图 01:top 命令:显示 Linux 任务
如何显示进程树
pstree命令将正在运行的进程显示为树。树的根为 pid 或 init(如果省略 pid)。如果指定了用户名,则显示以该用户拥有的进程为根的所有进程树。
$ pstree
示例输出:
图 02:pstree – 显示进程树
使用 ps 打印进程树
# ps -ejH
# ps axjf
示例输出:
从 Linux 终端管理进程
获取有关线程的信息
键入以下命令:
# ps -eLf
# ps axms
任务:获取有关正在运行的 Linux 进程的安全信息
运行以下命令:
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
如何将进程快照保存到文件
执行以下命令:
# top -b -n1 > /tmp/process.log
或者您可以将结果通过电子邮件发送给自己:
如何通过名称查找进程
使用 pgrep 命令。它会查看当前正在运行的进程,并列出符合选择条件的进程 ID 进行筛选。例如,显示 Firefox 进程 ID:
$ pgrep firefox
示例输出:
3356
以下命令将列出名为 sshd 的进程,该进程由名为 root 的用户拥有:
# pgrep -u root sshd
上述命令是 ps 命令和grep 命令/ egrep 命令的经典组合的替代方法。例如:
$ ps aux | grep nginx
$ ps aux | egrep -i 'nginx|apache|mysql'
向 htop 和 atop 问好
htop 和 top 一样,是一个交互式进程查看器,但允许垂直和水平滚动列表以查看所有进程及其完整命令行。无需输入进程的 PID,即可完成与进程相关的任务(终止、重新缓存)。要在 Debian/Ubuntu Linux 上安装 htop,请键入以下apt-get 命令/ apt 命令:
# apt-get install htop
或使用yum 命令在 CentOS/RHEL 上安装htop:
# yum install htop
现在在 shell 提示符下键入 htop 命令:
$ htop
图 03:htop 运行情况(点击放大)
在程序顶部
atop 程序是一个交互式监视器,用于查看 Linux 系统的负载。它显示系统级别上最关键的硬件资源(从性能角度来看)的占用情况,即 CPU、内存、磁盘和网络。它还显示哪些进程对进程级别的 CPU 和内存负载负责指示的负载;只有在安装了内核补丁的情况下,才会按进程显示磁盘和网络负载。输入以下命令启动 atop:
# atop
图 4:Atop 命令实际运行(点击放大)
参见:
- 在 Linux 中终止进程或者在 UNIX 或 Linux 系统中终止进程
- 使用 man 命令/help 命令查看以下手册页:
$ man ps
$ man top
$ man htop
$ man pgrep
$ man atop
结论
Linux 进程在 Linux 发行版中执行各种任务/作业。由于 Linux 是一个多处理操作系统,因此可以在后台运行多个任务。因此,了解如何显示 Linux 中所有正在运行的进程至关重要。