• ps, top, pstree


    ps

    查看当前终端所启动的进程, 不加选项只查看当前终端的进程

    PID			TTY		TIME 		CMD 		
    2398		pts/1   00:00:00 	bash 
    3625		pts/1   00:00:00 	ps 
    #PID	: Process ID,是进程的唯一标识, 虽然是int 但是从0开始使用, OS使用延迟重用算法来分配进程的编号, 从而保证任意时刻进程号都是唯一的(对OS来说是唯一的,eg: 连续执行两次同一个a.out,也是两个进程,有PID1.PID2,  所以一定不能把刚刚使用过的PID号PID1给新的进程,否则OS就不知道是之前的没关还是新的刚创建)
    #TTY	:终端的次要装置号码,tetetype, 用来表示终端类型
    #TIME	:消耗cpu的时间 
    #CMD	:命令,即进程名
    

    ps aux

    查看所有进程,ps aux是BSD syntax,ps -aux是standard syntax, 但二者的意义完全不同=>$man ps

    $ps aux | more		#输出的太多, 把$ps aux执行的结果交给$more, =>回车翻一行,空格翻一页, q退出
    USER	PID		%CPU	%MEM	VSZ		RSS		TTY	STAT	START	TIME	COMMAND 
    root	1  		0.0  	0.0		3740  	2156 	?    Ss   	08:28   0:00 	/sbin/init 
    root	2  		0.0  	0.0      0     	0 		?    S    	08:28   0:00 	[kthreadd] 
    root	3  		0.0  	0.0      0     	0 		?    S    	08:28   0:00 	[ksoftirqd/0] 
    --More--
    
    #USER		:用户
    #%CPU		:占用CPU百分比
    #%MEM		:占用MEM百分比
    #VSZ		:虚拟内存大小
    #RSS		:物理内存大小
    #STAT		:进程的状态信息
    	S		:休眠状态(为了减轻CPU压力)
    	s		:进程的领导者, 拥有子进程,树型的根节点
    	Z		:僵尸进程, 进程已经结束, 但是资源没有回收
    	R		:正在运行的进程
    	O		:可以运行的进程
    	T		:挂起状态的进程
    	<		:优先级比较高的进程
    	>		:优先级比较低的进程
    #START		:进程的启动时间
    

    ps -ef

    以全格式的方式显示所有进程(every)查看当前终端所启动的进程, 不加选项只查看当前终端的进程

    PID			TTY	       TIME 	    CMD 		
    2398		pts/1    00:00:00 	bash 
    3625		pts/1    00:00:00 	ps 
    #PID	: Process ID,是进程的唯一标识, 虽然是int 但是从0开始使用, OS使用延迟重用算法来分配进程的编号, 从而保证任意时刻进程号都是唯一的(对OS来说是唯一的,eg: 连续执行两次同一个a.out,也是两个进程,有PID1.PID2,  所以一定不能把刚刚使用过的PID号PID1给新的进程,否则OS就不知道是之前的没关还是新的刚创建)
    #TTY	:终端的次要装置号码,tetetype, 用来表示终端类型
    #TIME	:消耗cpu的时间 
    #CMD	:命令,即进程名
    

    ps aux

    查看所有进程,ps aux是BSD syntax,ps -aux是standard syntax, 但二者的意义完全不同=>$man ps

    $ps aux | more		#输出的太多, 把$ps aux执行的结果交给$more, =>回车翻一行,空格翻一页, q退出
    USER	PID		%CPU	%MEM	VSZ		RSS		TTY	STAT	START	TIME	COMMAND 
    root	1  		0.0  	0.0		3740  	2156 	?    Ss   	08:28   0:00 	/sbin/init 
    root	2  		0.0  	0.0      0     	0 		?    S    	08:28   0:00 	[kthreadd] 
    root	3  		0.0  	0.0      0     	0 		?    S    	08:28   0:00 	[ksoftirqd/0] 
    --More--
    
    #USER		:用户
    #%CPU		:占用CPU百分比
    #%MEM		:占用MEM百分比
    #VSZ		:虚拟内存大小
    #RSS		:物理内存大小
    #STAT		:进程的状态信息
    	S		:休眠状态(为了减轻CPU压力)
    	s		:进程的领导者, 拥有子进程,树型的根节点
    	Z		:僵尸进程, 进程已经结束, 但是资源没有回收
    	R		:正在运行的进程
    	O		:可以运行的进程
    	T		:挂起状态的进程
    	<		:优先级比较高的进程
    	>		:优先级比较低的进程
    #START		:进程的启动时间
    

    ps -ef

    以全格式的方式显示所有进程(every)

    F	S	UID		PID		PPID	C	PRI	NI	ADDR	SZ	WCHAN		TTY	TIME		CMD 
    4	S	0		1		0		0	80	0 	-   	935 poll_s 		?   00:00:00 	init 
    1 	S  	0     	2     	0  		0  	80  0 	-     	0 	kthrea 		?   00:00:00 	kthreadd
    #PPID	:父进程的编号(IMPORTANT)
    #C		:占用CPU百分比
    #STIME	:启动时间
    
    F	S	UID		PID		PPID	C	PRI	NI	ADDR	SZ	WCHAN		TTY	TIME		CMD 
    4	S	0		1		0		0	80	0 	-   	935 poll_s 		?   00:00:00 	init 
    1 	S  	0     	2     	0  		0  	80  0 	-     	0 	kthrea 		?   00:00:00 	kthreadd
    #PPID	:父进程的编号(IMPORTANT)
    #C		:占用CPU百分比
    #STIME	:启动时间
    

    ps -axj

    显示系统的守护进程

    $ps -axj
    Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
     PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
        0     1     1     1 ?           -1 Ss       0   0:01 /sbin/init
        0     2     0     0 ?           -1 S        0   0:00 [kthreadd]
        2     3     0     0 ?           -1 S        0   0:02 [ksoftirqd/0]
        2     5     0     0 ?           -1 S        0   0:02 [kworker/u:0]
        2     6     0     0 ?           -1 S        0   0:00 [migration/0]
        2     7     0     0 ?           -1 S        0   0:01 [watchdog/0]
        2     8     0     0 ?           -1 S        0   0:00 [migration/1]
        2    10     0     0 ?           -1 S        0   0:02 [ksoftirqd/1]
    

    top

    $top [-dbnp] #动态查看进程的变化
    -d 数字 #后面可以接刷新的,默认是5秒。
    -b #以批次的方式执行top,还有更多的参数可以使用。
    #通常会搭配数据流重定向来将批处理的结果输出成文件
    -n #与-b 搭配,意义是,需要进行几次top的输出结果
    -p pid #指定某些个PID来进行查看监测
    Note:在top执行过程当中可以使用的按键命令
    : 显示在top当中可以输入的按键命令
    P: 以CPU的使用资源排序显示
    M: 以内存的使用资源排序显示
    N: 以PID顺序排序
    T: 由该进程使用的CPU时间累积(TIME+)排序
    k: 给予某个PID一个信号 (signal)
    r: 给予某个PID重新制定一个nice值
    q: 离开top的按键

    pstree

    stree [-A|U] [-up]
    A #各进程树之间的连接以ASCII字符来连接
    U #各进程树之间的连接以utf8码的字符来连接,在某些终端端口写可能会有错误
    u #同时列出每个进程的所属帐号名称
    -p #同时列出每个进程的PID

    $pstree -A
    init-+-NetworkManager-+-dnsmasq
         |                `-2*[{NetworkManager}]
         |-accounts-daemon---{accounts-daemon}
         |-irqbalance
         |-lightdm-+-Xorg---2*[{Xorg}]
         |         |-lightdm-+-gnome-session-+-bluetooth-apple---2*[{bluetooth-apple}]
         |         |         |               |-deja-dup-monito---2*[{deja-dup-monito}]
    
    $pstree -U
    init─┬─NetworkManager─┬─dnsmasq
         │                └─2*[{NetworkManager}]
         ├─accounts-daemon───{accounts-daemon}
         ├─acpid
         ├─atd
         ├─avahi-daemon───avahi-daemon
         ├─bluetoothd
         ├─colord───2*[{colord}]
         ├─gnome-terminal─┬─bash───pstree
         │                ├─gnome-pty-helpe
         │                └─3*[{gnome-terminal}]
         ├─goa-daemon───{goa-daemon}
         ├─gsd-locate-poin───2*[{gsd-locate-poin}]
    
  • 相关阅读:
    CodeForces Round #516 Div2 题解
    BZOJ3300: [USACO2011 Feb]Best Parenthesis 模拟
    BZOJ4994: [Usaco2017 Feb]Why Did the Cow Cross the Road III 树状数组
    BZOJ3297: [USACO2011 Open]forgot DP+字符串
    BZOJ3296: [USACO2011 Open] Learning Languages 并查集
    BZOJ2442: [Usaco2011 Open]修剪草坪 单调队列优化dp
    BZOJ3298: [USACO 2011Open]cow checkers 威佐夫博弈
    什么是 DDoS 攻击?
    快速了解“云原生”(Cloud Native)和前端开发的技术结合点
    一文读懂spring boot 和微服务的关系
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/5934044.html
Copyright © 2020-2023  润新知