25 个有用的 Linux 进程监控“ps 命令”示例
“ps”命令是一种流行的工具,用于监视 Linux 操作系统中的进程。它代表“进程状态”,用于显示系统上当前运行的进程的信息。此信息可用于故障排除、优化性能和识别潜在的安全问题。在本文中,我们将讨论 25 个用于 Linux 进程监控的有用“ps 命令”示例。
显示所有进程的列表
要显示 Linux 系统上运行的所有进程的列表,请使用以下命令 -
ps aux
这将显示所有进程的列表及其 PID(进程 ID)、CPU 使用情况、内存使用情况和其他相关信息。
使用完整命令行显示所有进程的列表
要显示所有进程的列表及其完整命令行,请使用以下命令 -
ps auxf
这将显示所有进程的树状结构,使您更容易看到它们之间的关系。
显示按 CPU 使用率排序的所有进程列表
要显示按 CPU 使用率排序的所有进程的列表,请使用以下命令 -
ps aux --sort=-%cpu
这将显示按 CPU 使用率降序排列的所有进程的列表。
显示按内存使用情况排序的所有进程的列表
要显示按内存使用情况排序的所有进程的列表,请使用以下命令 -
ps aux --sort=-%mem
这将显示按内存使用量降序排列的所有进程的列表。
显示特定用户拥有的所有进程的列表
要显示特定用户拥有的所有进程的列表,请使用以下命令 -
ps -u username
将“用户名”替换为您要查看其进程的用户的实际用户名。
显示特定命令的所有进程的列表
要显示特定命令的所有进程的列表,请使用以下命令 -
ps -C command
将“command”替换为您要查看其进程的命令名称。
显示在特定终端中运行的所有进程的列表
要显示在特定终端中运行的所有进程的列表,请使用以下命令 -
ps -t tty
将“tty”替换为您要查看其进程的终端的名称。
显示特定进程组中所有进程的列表
要显示特定进程组中所有进程的列表,请使用以下命令 -
ps --pid pgid
将“pgid”替换为您要查看其进程的组的进程组 ID。
显示特定父进程的所有子进程的列表
要显示特定父进程的所有子进程的列表,请使用以下命令 -
ps --ppid pid
将“pid”替换为您要查看其子进程的父进程的进程 ID。
显示具有特定名称的所有进程的列表
要显示具有特定名称的所有进程的列表,请使用以下命令 -
ps -C name
将“名称”替换为您要查看的进程的名称。
显示所有僵尸进程的列表
要显示所有僵尸进程的列表,请使用以下命令 -
ps aux | awk '$8=="Z" {print}'
僵尸进程是那些已完成执行但尚未被系统正确清理的进程。
显示处于特定状态的所有进程的列表
要显示处于特定状态的所有进程的列表,请使用以下命令 -
ps -eo state,pid,user,command | grep state
将“state”替换为您要查看的状态(例如,R 表示跑步,S 表示睡眠,Z 表示僵尸)。
显示具有特定优先级的所有进程的列表
要显示具有特定优先级的所有进程的列表,请使用以下命令 -
ps -o pid,ppid,user,nice,cmd --sort=-nice
这将显示按优先级降序排列的所有进程的列表。
显示具有特定 CPU 关联性的所有进程的列表
要显示具有特定 CPU 关联性的所有进程的列表,请使用以下命令 -
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm | grep <cpu>
将“
显示使用特定端口的所有进程的列表
要显示使用特定端口的所有进程的列表,请使用以下命令 -
sudo lsof -i :port
将“port”替换为您要查看其进程的端口号。
显示以特定用户身份运行的所有进程的列表
要显示以特定用户身份运行的所有进程的列表,请使用以下命令 -
ps -U username -u username u
将“用户名”替换为您要查看其进程的用户名。
显示特定目录中运行的所有进程的列表
要显示特定目录中运行的所有进程的列表,请使用以下命令 -
lsof +D /directory
将“/directory”替换为您要查看其进程的目录的路径。
显示运行特定可执行文件的所有进程的列表
要显示运行特定可执行文件的所有进程的列表,请使用以下命令 -
ps -C executable_name
将“executable_name”替换为您要查看其进程的可执行文件的名称。
显示使用特定文件的所有进程的列表
要显示使用特定文件的所有进程的列表,请使用以下命令 -
lsof /path/to/file
将“/path/to/file”替换为您要查看其进程的文件的路径。
显示具有特定环境变量的所有进程的列表
要显示具有特定环境变量的所有进程的列表,请使用以下命令 -
ps -eo pid,user,args | grep -E '^ *PID|^ *[0-9]+ .*VARNAME=VALUE'
将“VARNAME”替换为您要查看其进程的环境变量的名称,将“VALUE”替换为其值。
显示使用特定网络接口的所有进程的列表
要显示使用特定网络接口的所有进程的列表,请使用以下命令 -
sudo lsof -i -n -P | grep <interface>
将“
显示具有特定用户定义格式的所有进程的列表
要以用户定义的格式显示所有进程的列表,请使用以下命令 -
ps -eo pid,user,%cpu,%mem,command --sort=-%mem | head
这将使用用户定义的格式显示按内存使用量降序排列的所有进程的列表。
显示具有特定内存地址的所有进程的列表
要显示具有特定内存地址的所有进程的列表,请使用以下命令 -
sudo pmap -x pid | grep address
将“pid”替换为要查看其内存地址的进程的进程 ID,将“address”替换为要查看的内存地址。
显示具有特定用户定义过滤器的所有进程的列表
要显示具有用户定义的过滤器的所有进程的列表,请使用以下命令 -
ps -eo pid,user,%cpu,%mem,command --sort=-%mem | awk '{if ($3 >= 10.0) print $0;}'
这将使用用户定义的过滤器显示使用超过 10% CPU 和内存的所有进程的列表。
显示所有进程的树形视图
要显示所有进程的树视图,请使用以下命令 -
pstree
这将显示所有进程的分层树视图,父进程在顶部,子进程在下面。
结论
“ps”命令是一个用于监视和管理 Linux 系统中进程的强大工具。通过本文提供的示例,您可以轻松使用“ps”命令查看有关正在运行的进程的信息、对输出进行过滤和排序以及执行各种其他操作。通过掌握 ps 命令,您可以提高 Linux 系统的性能和稳定性,并更有效地解决问题。