2022-10-23 447
Linux ps命令
在Linux下ps命令是用于查看系统上运行的进程的最基本的命令之一。它提供了当前进程的同时,如用户ID,CPU使用率,内存使用率,命令名称等,它不显示实时数据,如top或htop命令的详细信息。但是,即使是功能和输出简单,但它仍然是一个必用的过程管理/监控工具,每一个Linux新手应该知道这一点,好好学习。在这篇文章中,我们将使用ps命令以不同的方式来查看进程、筛选和排序它们,以加强基础部分。
语法注意:
ps命令带有2种不一样的风格,分别是BSD和UNIX。新用户经常会混淆和错误地解释这两种风格。所以要弄清楚他们,继续操作之前这里是一些基本的信息。
注意:"ps aux"和"ps -aux"不相同。例如"-u"用来显示该用户的进程。但是"u"则是显示详细的信息。
BSD风格:在BSD风格的语法选项前不带连字符。
psaux
UNIX/LINUX的风格:在linux风格的语法选项前面有一个破折号如常。…
ps-ef
混合使用两种Linux系统上的语法风格是好事儿。例如“ps ax -f”。但在这篇文章中,我们将主要集中在UNIX风格的语法。
如何使用ps命令呢?
1、显示所有进程:
下面的命令将列出所有的进程:
$psax $ps-ef
加上管道输出给less,来滚动显示
"u"或者"-f"参数来显示所有进程的详细信息
$psaux $ps-ef-f
注意:为什么用户列不显示我的用户名,但显示其他用户,如root、www等,对于所有的用户名(包括你)如果长度大于8个字符,然后ps将只显示UID,而不是用户名。
2、根据用户显示进程:
由进程的所属用户使用“-u”选项后跟用户名来显示。多个用户名可以提供以逗号分隔。
$ps-f-uwww-data UIDPIDPPIDCSTIMETTYTIMECMD www-data13291328009:32?00:00:00nginx:workerprocess www-data13301328009:32?00:00:00nginx:workerprocess www-data13321328009:32?00:00:00nginx:workerprocess www-data13771372009:32?00:00:00php-fpm:poola.localhost www-data13781372009:32?00:00:00php-fpm:poola.localhost www-data45242359010:03?00:00:00/usr/sbin/apache2-kstart www-data45272359010:03?00:00:00/usr/sbin/apache2-kstart www-data45282359010:03?00:00:00/usr/sbin/apache2-kstart
3、通过名字和进程ID显示进程:
通过名字或命令搜索进程,使用“-C”选项后面加搜索词。
$ps-Capache2 PIDTTYTIMECMD 2359?00:00:00apache2 4524?00:00:00apache2 4525?00:00:00apache2 ...
4、根据CPU或者内存进行排序:
系管理员经常希望找出那些消耗大量内存或CPU的进程。排序选项将基于特定的字段或参数让进程列表进行排序。
“–sort”选项由逗号分隔的多个字段可以用指定。此外,该字段可以带有前缀“-”或“”符号,表示降序或升序分别排序。通过进程列表进行排序有很多参数,你可以检查手册页的完整列表。
$psaux--sort=-pcpu,+pmem
显示前5个消耗了大部分的CPU进程。
$psaux--sort=-pcpu|head-5 USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND root12.60.7513967644?Ss02:020:03/usr/lib/systemd/systemd--switched-root--system--deserialize23 root12492.63.035580030896tty1Rsl+02:020:02/usr/bin/X-backgroundnone:0vt01-nolistentcp root5082.41.624848816776?Ss02:020:03/usr/bin/python/usr/sbin/firewalld--nofork silver15252.12.344856824392?S02:030:01/usr/bin/python/usr/share/system-config-printer/applet.py
5、用树的风格显示进程的层次关系:
许多进程实际上是一些父进程分的分支,知道这父子进程关系往往是有用的。在’–forest’选项将建立ASCII艺术风格层次的树视图。
下面的命令将搜索进程名字为Apache2,形成一个树结构来显示详细的信息。
$ps-f--forest-Capache2 UIDPIDPPIDCSTIMETTYTIMECMD root23591009:32?00:00:00/usr/sbin/apache2-kstart www-data45242359010:03?00:00:00\_/usr/sbin/apache2-kstart www-data45252359010:03?00:00:00\_/usr/sbin/apache2-kstart www-data45262359010:03?00:00:00\_/usr/sbin/apache2-kstart www-data45272359010:03?00:00:00\_/usr/sbin/apache2-kstart www-data45282359010:03?00:00:00\_/usr/sbin/apache2-kstart
尽量不要使用任何的排序和树风格一起展示,因为他们使用了不同的顺序。
6、显示一个父进程的子进程:
这里有一个例子显示所有apache进程的分支
$ps-opid,uname,comm-Capache2 PIDUSERCOMMAND 2359rootapache2 4524www-dataapache2 4525www-dataapache2 4526www-dataapache2 4527www-dataapache2 4528www-dataapache2 [term] Thefirstprocessthatisownedbyrootisthemainapache2processandallotherapache2processeshavebeenforkedoutofthismainprocess.Thenextcommandlistsallchildapache2processesusingthepidofthemainapache2process [term] $ps--ppid2359 PIDTTYTIMECMD 4524?00:00:00apache2 4525?00:00:00apache2 4526?00:00:00apache2 4527?00:00:00apache2 4528?00:00:00apache2
7、显示一个进程的线程:
“-L”选项将显示进程的线程。它可以用来显示特定进程的所有线程或者所有进程。
下面的命令将显示所有id为3150的进程所拥有的线程。
$ps-p3150-L
8、改变要显示的列:
ps命令可以配置为只显示选中的列表。为了显示完整列表可以查看手册。
下面的命令只显示PID,用户名,CPU,内存和命令的列。
$ps-e-opid,uname,pcpu,pmem,comm
可以重命名列标签,相当的灵活。
$ps-e-opid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm PIDUSERNAMECPU_USAGE%MEMCOMMAND 1root0.00.0init 2root0.00.0kthreadd 3root0.00.0ksoftirqd/0 4root0.00.0kworker/0:0 5root0.00.0kworker/0:0H 7root0.00.0migration/0 8root0.00.0rcu_bh 9root0.00.0rcuob/0 10root0.00.0rcuob/1
9、显示进程运行的时间:
表示进程的运行时间。对于运行的时间,列默认情况下是不显示的,可以使用“-O”选项查看。
$ps-e-opid,comm,etime
10、把ps命令变成一个实时查看器:
像往常一样,watch命令可以用来实时捕捉ps显示进程。简单的例子如下:
$watch-n1'ps-e-opid,uname,cmd,pmem,pcpu--sort=-pmem,-pcpu|head-15'
输出在桌面上像这样:
Every1.0s:ps-e-opid,uname,cmd,pmem,pcpu--...SunDec118:16:082013 PIDUSERCMD%MEM%CPU 38001000/opt/google/chrome/chrome-4.61.4 74921000/opt/google/chrome/chrome-2.71.4 31501000/opt/google/chrome/chrome2.72.5 38241000/opt/google/chrome/chrome-2.60.6 39361000/opt/google/chrome/chrome-2.41.6 29361000/usr/bin/plasma-desktop2.30.2 96661000/opt/google/chrome/chrome-2.10.8 38421000/opt/google/chrome/chrome-2.10.8 47391000/opt/google/chrome/chrome-1.81.0 39301000/opt/google/chrome/chrome-1.71.0 39111000/opt/google/chrome/chrome-1.60.6 36451000/opt/google/chrome/chrome-1.50.4 36771000/opt/google/chrome/chrome-1.50.4 36391000/opt/google/chrome/chrome-1.40.4
输出将被刷新,每1秒刷新统计数据。不过不要以为这是类似上面。
你会注意到在相比情况下top/htop命令的输出变化会更加频繁。
这是因为上面输出各种各样的值,CPU使用率和内存使用情况的组合。但上述ps命令排序显示的更简单,采取的是一个时间1列(如学校数学).所以它不会像top那样快速更新。
原文链接:https://77isp.com/post/8928.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态