0、ps -ef 行首意思
[oldboy@zhang~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:21 ? 00:00:00 /sbin/init
root 2 0 0 08:21 ? 00:00:00 [kthreadd]
root 3 2 0 08:21 ? 00:00:00 [migration/0]
各相关信息的意义:
UID 程序被该 UID 所拥有【通常显示用户名】
PID 就是这个进程的 ID
PPID 则是其上级父进程的ID
C CPU 使用的资源百分比
STIME 系统启动时间【进程启动到现在的时间 】
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何
1、概述
显示当前进程的快照。
显示选择活动进程的信息。如果想要显示实时动态的进程信息,使用 top命令。
2、命令格式
ps[options]
[oldboy@zhang~]$ ps --help
********* simple selection ********* ********* selection by list *********
-A allprocesses -C bycommand name
-N negateselection -G by realgroup ID (supports names)
-a all w/ ttyexcept session leaders -U by real userID (supports names)
-d all exceptsession leaders -g by session ORby effective group name
-e allprocesses -p byprocess ID
T all processes on this terminal -s processes in the sessions given
a all w/ tty, including other users -t by tty
g OBSOLETE -- DO NOT USE -u by effective user ID (supportsnames)
r only running processes U processes for specified users
x processes w/o controlling ttys t by tty
*********** output format ********** *********** long options ***********
-o,ouser-defined -f full --Group --User --pid --cols --ppid
-j,j jobcontrol s signal --group --user --sid --rows --info
-O,O preloaded-o v virtual memory --cumulative--format --deselect
-l,l long u user-oriented --sort --tty--forest --version
-F extra full X registers --heading --no-heading --context
********* misc options*********
-V,V show version L list format codes f ASCII art forest
-m,m,-L,-T,H threads S children in sum -y change -l format
-M,Z security data c true command name -c schedulingclass
-w,w wide output n numeric WCHAN,UID -H processhierarchy
3、常用命令参数
SIMPLE PROCESS SELECTION
-A 显示所有进程。和 -e 相同
-N 显示所有进程,除了那些满足特定条件的进程【反向选择】。和 --deselect 相同。
T 显示当前终端的所有进程。和 t 选项在没有任何参数时相同。
-a 显示所有进程。前提条件是只显示终端连接的那些进程。除去会话引线和没有分配到终端的那些进程。
[oldboy@zhang~]$ ps -a
PID TTY TIME CMD
1609 pts/2 00:00:00 man
1612 pts/2 00:00:00 sh
1613 pts/2 00:00:00 sh
1617 pts/2 00:00:00 less
2089 pts/1 00:00:00 top
4424 tty1 00:00:00 top 【系统命令行】
4427 pts/0 00:00:00 ps
a 显示与终端有关的进程
[oldboy@zhang~]$ ps a
PID TTY STAT TIME COMMAND
1506 tty2 Ss+ 0:00 /sbin/mingetty/dev/tty2
1508 tty3 Ss+ 0:00 /sbin/mingetty/dev/tty3
1510 tty4 Ss+ 0:00 /sbin/mingetty/dev/tty4
1512 tty5 Ss+ 0:00 /sbin/mingetty/dev/tty5
1514 tty6 Ss+ 0:00 /sbin/mingetty /dev/tty6
1533 pts/0 Ss 0:00 -bash
1556 pts/1 Ss 0:00 -bash
1579 pts/2 Ss 0:00 -bash
1609 pts/2 S+ 0:00 man ps
1612 pts/2 S+ 0:00 sh -c (cd"/usr/share/man" && (echo ".ll 9.3i"; echo".nr LL 9.3i"; echo ".pl
1613 pts/2 S+ 0:00 sh -c (cd"/usr/share/man" && (echo ".ll 9.3i"; echo".nr LL 9.3i"; echo ".pl
1617 pts/2 S+ 0:00 /usr/bin/less -is
2089 pts/1 S+ 0:00 top
4396 tty1 Ss 0:00 -bash
4424 tty1 S+ 0:00 top 【系统命令行】
4426 pts/0 R+ 0:00 ps a
-d 显示所有进程,除了会话引线。
-e 显示所有进程。和 -A 相同。
r 显示当前终端正在运行的进程
--deselect 显示所有进程,除了那些满足特定条件的进程【反向选择】。和 -N 相同。
PROCESS SELECTION BY LIST
这些选项接受一个单独的参数,在一个空白分隔的或逗号分隔的列表的形式。可以使用多次。例如:ps -p "1 2" -p 3,4
-Ccmdlist 根据命令名称选择进程【没有通配符和正则匹配】
[oldboy@zhang~]$ ps -C top
PID TTY TIME CMD
2089 pts/1 00:00:01 top
4566 tty1 00:00:01 top
-Ggrplist 根据真实的组ID或组名称选择进程。哪个创建的该进程,真正的组ID就是哪个。
其他的自行查看,工作中不怎么用就不写了
………………
OUTPUT FORMAT CONTROL
对ps的信息进行选择显示。可能有所不同
-F 额外全格式。参见-f选项
[oldboy@zhang~]$ ps -f
UID PID PPID C STIME TTY TIME CMD
oldboy 1821 1790 0 23:11 pts/1 00:00:00 -bash
oldboy 2006 1821 0 23:25 pts/1 00:00:00 ps -f
[oldboy@zhang~]$ ps -F
UID PID PPID C SZ RSS PSR STIME TTY TIMECMD
oldboy 1821 1790 0 27117 1876 0 23:11 pts/1 00:00:00 -bash
oldboy 2014 1821 0 27560 1132 0 23:26 pts/1 00:00:00 ps -F
-Oformat 就像 -o ,但是有一些默认的列。同 -opid,format,state,tname,time,command或者-o pid,format,tname,time,cmd,参见下面的-o。
………………
4、常用示例
系统文档示例
查看系统每个进程的标准语法:
ps -e
ps -ef # 常用
ps -eF
ps -ely
注意他们的区别
[oldboy@zhang~]$ ps -e | head-n5
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
[oldboy@zhang~]$ ps -ef |head -n5 # 常用
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:21 ? 00:00:00 /sbin/init
root 2 0 0 08:21 ? 00:00:00 [kthreadd]
root 3 2 0 08:21 ? 00:00:00 [migration/0]
root 4 2 0 08:21 ? 00:00:00 [ksoftirqd/0]
[oldboy@zhang~]$ ps -eF |head -n5
UID PID PPID C SZ RSS PSR STIME TTY TIMECMD
root 1 0 0 4808 1512 0 08:21 ? 00:00:00 /sbin/init
root 2 0 0 0 0 0 08:21 ? 00:00:00 [kthreadd]
root 3 2 0 0 0 0 08:21 ? 00:00:00 [migration/0]
root 4 2 0 0 0 0 08:21 ? 00:00:00 [ksoftirqd/0]
[oldboy@zhang~]$ ps -ely |head -n5
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 0 1 0 0 80 0 1512 4808 poll_s ? 00:00:00 init
S 0 2 0 0 80 0 0 0 kthrea ? 00:00:00kthreadd
S 0 3 2 0 -40 - 0 0 migrat ? 00:00:00 migration/0
S 0 4 2 0 80 0 0 0 ksofti ? 00:00:00ksoftirqd/0
查看系统每个进程的BSD【Unix系统分支】语法:
ps ax
ps axu
注意他们的区别
[oldboy@zhang~]$ ps ax | head-n5
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 /sbin/init
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [migration/0]
4 ? S 0:00 [ksoftirqd/0]
[oldboy@zhang~]$ ps axu |head -n5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19232 1512 ? Ss 08:21 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:21 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:21 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 08:21 0:00 [ksoftirqd/0]
上述栏位解释:
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 該进程使用的虚拟內存量(KB);
RSS 該進程占用的固定內存量(KB)(驻留中页的数量);
TTY 該進程在那個終端上運行(登录者的终端位置),若与終端无关,則顯示(?)。若為pts/0等,則表示由网络连接主机进程
WCHAN 當前進程是否正在進行,若為-表示正在進行;
START 该进程被触发启动时间;
TIME 該进程實際使用CPU運行的时间;
COMMAND 命令的名称和参数;
STAT狀態位常見的狀態字符
D无法中断的休眠状态(通常 IO 的进程);
R正在运行可中在队列中可过行的;
S处于休眠状态;
T停止或被追踪;
W进入内存交换 (从内核2.6开始无效);
X死掉的进程 (基本很少見);
Z僵尸进程;
<优先级高的进程
N优先级较低的进程
L有些页被锁进内存;
s进程的领导者(在它之下有子进程);
l多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+位于后台的进程组;
打印进程树
ps -ejH
ps axjf
自行查看
获取线程信息
ps -eLf
ps axms
自行查看
………………
5、命令所在位置和类型
[oldboy@zhang~]$ which ps
/bin/ps
[oldboy@zhang~]$ type ps
ps is hashed(/bin/ps)
6、另请参见
<ps>ps aux 和ps -aux和 ps -ef的选择 【重点】