楼主: 一生有你llx

[笔记] Linux基础命令

[复制链接]
论坛徽章:
0
111#
 楼主| 发表于 2019-1-31 07:19 | 只看该作者
nice
        nice指令可以设置程序运行的优先级,优先级会影响到程序的调度时间。nice的范围是-20~19,其中-20级别最高,19级别最低。
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
        nice [选项]  [cmd]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-n | --adjustment=N
设置优先级

3、实例
1)设置指令wc优先级
[root@localhost ~]# nice -n 19 wc                    //设置wc的优先级最低
^Z                                                        //按下组合键ctrl+z
[2]+  Stopped                 nice -n 19 wc
[root@localhost ~]#
2)查看进程优先级
[root@localhost ~]# ps -ao "%p%y%x%c%n"             //查看进程等级,wc的等级是19
  PID TTY          TIME COMMAND          NI
8321 pts/0    00:00:00 wc               19
8370 pts/0    00:00:00 ps                0




使用道具 举报

回复
论坛徽章:
0
112#
 楼主| 发表于 2019-2-1 08:17 | 只看该作者
nohup
        nohup可以使程序能够忽略挂起信号,继续运行。用户退出时会挂载,而nohup可以保证用户退出后程序继续运行。如果标准输入是终端,请将其从/dev/null重定向。如果标准输出是终端,则将输出附加到“nohup.out”(如果可能的话),否则追加到“$home/nohup.out”。如果标准错误是终端,请将其重定向到标准输出。若要将输出保存到文件中,请使用“nohup COMMAND > FILE”。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       nohup cmd

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本

3、实例
       以nohup形式运行find指令
[root@localhost ~]# nohup find /weijie/ -name *.c             //运行find
nohup: 忽略输入并把输出追加到"nohup.out"                            //结果会保存到nohup.out文件中
[root@localhost ~]# cat nohup.out                                //查看结果
/weijie/11.c
/weijie/4.c
/weijie/2.c
/weijie/3.c
/weijie/5.c
/weijie/1.c



使用道具 举报

回复
论坛徽章:
0
113#
 楼主| 发表于 2019-2-2 07:51 | 只看该作者
pkill
       pkill可以给指定的进程发送信息,它可以结束某个执行的进程或者目录登录的用户。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       pkill [-signal]  [-fvx]  [-n|-o] [-P ppid,...]  [-g pgrp,...]  [-s sid,...]  [-u euid,...]  [-U uid,...]  [-G gid,...]  [-t term,...]  [pattern]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-f
查找完成的文件名
-g pgrp
只匹配列出的进程组ID中的进程。进程组0被转换为pgrep或pkill自己的进程组。
-G gid
只匹配实际组ID列出的进程。可以使用数值或符号值。
-n
选择最近执行的进程
-o
选择最早的进程
-P ppid
选择父pid匹配的进程
-s sid
只匹配进程会话ID列出的进程。会话ID 0被转换为pgrep或pkill自己的会话ID。
-t term
查找符合终端号的进程
-u euid
只匹配其有效用户ID列出的进程。
-U uid
只匹配实际用户ID列出的进程。可以使用数值或符号值。
-v
查找不符合条件的进程
-x
只匹配其名称(如果-f指定了命令行)与模式完全匹配的进程。
-signal
要发送的信号

3、返回值
退出码
说明
0
一个或多个进程符合。
1
没有进程符合
2
命令的语法错误
3
致命错误:内存不足等。

4、实例
       杀死wc进程
[root@localhost ~]# pkill -SIGKILL wc                   //wc发送KILL信号,杀死进程
[1]-  已杀死               nice -n 19 wc
You have new mail in /var/spool/mail/root
[root@localhost ~]# ps                                    //查看进程,wc已经杀死
  PID TTY          TIME CMD
8266 pts/0    00:00:00 bash
8554 pts/0    00:00:00 ps



使用道具 举报

回复
论坛徽章:
0
114#
 楼主| 发表于 2019-2-3 07:16 | 只看该作者
renice
       renice指令可以重新调整程序运行的优先级,可以通过进程id、用户id、组id来修改优先级。修改组的等级,影响组内所有用户的所有进程优先级;修改用户等级,影响该用户的所有进程优先级。除了超级用户之外,其他用户只能改变他们拥有的进程的优先级,并且只能在0到PRIO_MAX(20)范围内单调地增加他们的“nice value”。(这防止了凌驾于行政法规之上。)超级用户可以更改任何进程的优先级,并将优先级设置为PRIO_MIN(-20)~PRIO_MAX。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      renice -n N  –u  username
      renice  -n N  –g  gid
      renice  -n N  –p  pid

2、选项列表
选项
说明
-h | --help
显示帮助文档
-v | --version
显示命令版本
-n | --priority
优先级
-u | --user=name
设置指定用户的优先级
-g | --pgrp=gid
设置组的优先级
-p | --pid=PID
设置指定进程的优先级

3、实例
1)通过pid修改指令wc优先级
[root@localhost ~]# ps -ao "%p%y%x%c%n"                           //查看进程优先级
  PID TTY          TIME COMMAND          NI
8321 pts/0    00:00:00 wc               19
8451 pts/0    00:00:00 ps                0
[root@localhost ~]# renice -n 15 -p 8364                         //重设wc进程的优先级,变为15
8364: old priority 19, new priority 15
2)修改用户root的优先级
[root@localhost ~]# renice -n 0 -u root                          //修改用户root的优先级为0
0: old priority -11, new priority 0
[root@localhost ~]# ps -ao "%p%y%x%c%n"                         //查看进程优先级,当前进程都是root用户的,优先级都是0
  PID TTY          TIME COMMAND          NI
8321 pts/0    00:00:00 wc                0
8364 pts/0    00:00:00 wc                0
8458 pts/0    00:00:00 ps                0




使用道具 举报

回复
论坛徽章:
0
115#
 楼主| 发表于 2019-2-4 08:19 | 只看该作者
killall
       killall可以根据名字来杀死进程,它会给指定名字的所有进程发送信息。如果没有指定信号名,则发送SIGTERM。信号可以通过名称(例如-HUP或-SIGHUP)或数字(例如-1)或选项-s来指定。如果命令名不是正则表达式(选项-r),并且包含斜杠(/),则将选择执行该特定文件的进程,与其名称无关。如果每个列出的命令至少有一个进程被杀死,或者没有列出命令,并且至少有一个进程符合-u和-Z搜索条件,则KILLALL返回一个零返回代码。否则KILLALL返回非零。KILLALL进程永远不会杀死自己(但可能会杀死其他KILLALL进程)。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       killall [选项]  name

2、选项列表
选项
说明
-e | --exact
进程需要和名字完全相符
-I | --ignore-case
忽略大小写
-g | --process-group
结束进程组
-i | --interactive
结束之前询问
-l | --list
列出所有的信号名称
-q | --quite
进程没有结束时,不输出任何信息
-r | --regexp
将进程名模式解释为扩展的正则表达式。
-s | --signal
发送指定信号
-u | --user
结束指定用户的进程
-v | --verbose
显示详细执行过程
-w | --wait
等待所有的进程都结束
-V |--version
显示版本信息
--help
显示帮助信息

3、实例
结束所有进程
[root@localhost ~]#ps                        //查看进程,有3wc进程
  PID TTY          TIME CMD
8266 pts/0    00:00:00 bash
9781 pts/0    00:00:00 wc
9784 pts/0    00:00:00 wc
9785 pts/0    00:00:00 wc
9786 pts/0    00:00:00 ps
[root@localhost ~]# killall -9 wc          //结束所有的wc进程
[root@localhost ~]#ps                       //查看进程,wc都被杀死
  PID TTY          TIME CMD
8266 pts/0    00:00:00 bash
9788 pts/0    00:00:00 ps
[1]   已杀死               nice -n 19 wc
[2]-  已杀死               nice -n 19 wc
[3]+  已杀死               nice -n 19 wc


使用道具 举报

回复
论坛徽章:
0
116#
 楼主| 发表于 2019-2-4 08:21 | 只看该作者
做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用
链接:https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ  密码:n7bk

使用道具 举报

回复
论坛徽章:
0
117#
 楼主| 发表于 2019-2-5 09:44 | 只看该作者
watch
       watch指令可以间歇性的执行程序,将输出结果以全屏的方式显示,默认是2s执行一次。watch将一直运行,直到被中断。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

2、        语法
       watch  [-dhvt]  [-n <seconds>]  [--differences[=cumulative]]  [--help] [--interval=<seconds>]  [--no-title]  [--version]  <command>

2、选项列表
选项
说明
-d | --differences
高亮显示差异部分
--cumulative
高亮显示“sticky”
-n
指定时间间隔
-t | --no-title
不显示日期时间以及间隔秒数
-h | --help
帮助信息
-v | --version
显示版本信息

3、例子代码
查看邮件
watch -n 60 from
查看目录内容的变化
watch -d ls –l
如果您只对用户Joe拥有的文件感兴趣,可以使用
watch -d ’ls -l | fgrep joe’
要想看到引号的效果,请试一试
watch echo $$
watch echo ’$$’
watch echo "’"’$$’"’"
您可以监视管理员安装最新的内核。
watch uname -r

4、实例
每3s执行一次ls指令
[root@localhost ~]# watch –n 3 ls              //3s执行一次ls
Every 3.0s: ls                                                             Sun Sep 23 09:04:40 2018
1
1.c~
anaconda-ks.cfg
icmp_echo_ignore_all~
icmp_echo_ignore_alv~
icmp_echo_ignore_alw~
icmp_echo_ignore_alx~
icmp_echo_ignore_aly~
icmp_echo_ignore_alz~
install.log
install.log.syslog
mail
nohup.out
公共的
模板
视频
图片
文档
下载
音乐
桌面


使用道具 举报

回复
论坛徽章:
0
118#
 楼主| 发表于 2019-2-6 07:28 | 只看该作者
w
       显示哪些用户登录,并且显示用户在干什么。报头按此顺序显示当前时间、系统运行时间、当前登录用户数以及过去1、5和15分钟的系统平均负载。接着为每个用户显示以下条目:登录名、TTY名称、远程主机、登录时间、空闲时间、JCPU、PCPU和当前进程的命令行。JCPU时间是附加到TTY的所有进程使用的时间。它不包括过去的后台作业,但也包括当前正在运行的后台作业。PCPU时间是当前进程使用的时间,在“what”字段中命名。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       w [选项]  [user]

2、选项列表
选项
说明
-h
不显示标题栏
-u
忽略执行程序的名称和cpu时间
-s
使用短格式,不显示登录时间、JCPU 和PCPU time
-f
显示用户从哪里登录
-V
显示版本信息

3、文件
       /var/run/utmp,正在登陆的用户信息。
       /proc  process information,进程信息。

4、实例
显示登录的用户信息
[root@localhost ~]# w
08:53:05 up 3 days, 18:42,  4 users,  load average: 0.00, 0.00, 0.00
USER     TTY     FROM              LOGIN@   IDLE  JCPU   PCPU WHAT
david    tty7    :0               Sat20   15days 1.99s  0.00s pam: gdm-password
root     pts/0   :1.0             Sat20    0.00s 0.08s  0.00s w
root     pts/1   :1.0             21:28   11:24m 0.00s  0.00s bash
root     tty1    :1               Sat20   15days 18.07s 18.07s /usr/bin/Xorg :1 -br -verbose -audi
[root@localhost ~]#




使用道具 举报

回复
论坛徽章:
0
119#
 楼主| 发表于 2019-2-7 17:16 | 只看该作者
pstree
        pstree显示正在运行的进程的树形结构,树以PID为根;如果省略了pid则以init为根。如果指定了用户名,则显示根植于该用户拥有的进程的所有进程树。如果pstree被调用为pstree.x11,那么它将提示行尾的用户按RETURE,并且在这种情况发生之前不会返回。这对于在x终端中运行pstree非常有用。
        pstree通过将相同的分支放在方括号中并以重复计数作为前缀,在视觉上合并它们。例如:
init-+-getty
    |-getty
    |-getty
‘-getty
变成下面的样子
init---4*[getty]
        进程的子线程在父进程下找到,并以大括号显示进程名,例如:
icecast2---13*[{icecast2}]
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
        pstree [选项]

2、选项列表
选项
说明
-a
显示每个进程的完整指令,包括路径、参数
-A
使用ascii码显示树形
-c
关闭精简表示法
-G
使用VT 100线条绘制字符
-h
高亮显示正在执行的程序
-H
类似“-h”,但是突出显示指定的进程。与-h不同,如果高亮显示不可用,pstree在使用-H时会失败。
-l
长格式显示
-n
以进程号排序,默认以名字排序
-p
显示pid
-u
显示用户
-U
以utf-8显示字符
-V
显示命令版本信息
-Z
每个SELinux的上下文

3、实例
1)显示完成的树形结构
[root@localhost ~]# pstree -a
init
  ├─NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
  │   ├─dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-eth0.pid ...
  │   └─{NetworkManager}
  ├─VBoxClient --clipboard
  │   └─VBoxClient --clipboard
2)显示进程号
[root@localhost ~]# pstree -p
init(1)─┬─NetworkManager(6362)─┬─dhclient(6377)
        │                      └─{NetworkManager}(6379)
       ├─VBoxClient(7869)───VBoxClient(7870)───{VBoxClient}(7872)
        ├─VBoxClient(7882)───VBoxClient(7883)
        ├─VBoxClient(7890)───VBoxClient(7891)───{VBoxClient}(7894)
       ├─VBoxClient(7898)───VBoxClient(7899)─┬─{VBoxClient}(7901)
        │                                    └─{VBoxClient}(7903)
        ├─VBoxClient(7306)───VBoxClient(7308)
       ├─VBoxClient(7312)───VBoxClient(7314)───{VBoxClient}(7317)
       ├─VBoxClient(7318)───VBoxClient(7320)─┬─{VBoxClient}(7323)
        │                                    └─{VBoxClient}(7325)




使用道具 举报

回复
论坛徽章:
0
120#
 楼主| 发表于 2019-2-9 17:20 | 只看该作者
ps
       ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的。如果您希望重复更新所选内容和显示的信息,请使用top(1)代替。
请注意,“ps-aux”与“ps aux”不同。POSIX和UNIX标准要求“ps-aux”打印名为“x”的用户拥有的所有进程,以及打印由-a选项选择的所有进程。如果名为“x”的用户不存在,此ps可以将命令解释为“ps aux”,并打印警告。此行为旨在帮助转换旧脚本和习惯。它是脆弱的,随时可能发生变化,因此不应依赖它。
       默认情况下,ps选择所有具有相同有效用户ID(EUID=EUID)的进程作为当前用户,并与调用方相关联的终端。它显示进程ID(PID=PID)、与进程关联的终端(tname=TTY)、[dd-]hh:mm:SS格式的累计CPU时间(time=TIME)和可执行名称(ucmd=CMD)。默认情况下输出未排序。
       使用BSD样式的选项将向默认显示中添加进程状态(stat=STAT),并显示命令args(args=命令)而不是可执行名称。您可以使用PS_FORMAT环境变量重写此操作。使用BSD样式的选项还将更改流程选择,以包括您拥有的其他终端(TTY)上的进程;或者,这可以描述为将选择设置为筛选的所有进程的集合,以排除其他用户拥有的进程或终端上的进程。当选项被描述为“相同”时,不考虑这些影响,所以-M将被认为与Z相同等等。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       ps [选项]

2、选项列表
选项
说明
--help
显示帮助文档
-V | V | --version
显示命令版本
--info
显示调试信息
L
列出所有的格式
简单选项

-A | -e
选择所有进程
-N | --deselect
反向选择不符合条件的
T
选择符合的终端
-a
选择除会话进程和与终端无关的进程以外的所有进程。
a
此选项导致ps列出带有终端(TTY)的所有进程,或在与x选项一起使用时列出所有进程。
-d
选择所有进程,忽略进程所有者
g
全部的进程,包含会话领导
r
将选择限制为仅运行进程。
x
此选项导致ps列出您拥有的所有进程(与ps相同的EUID),或者在与a选项一起使用时列出所有进程。
多个选项
这些选项以空白分隔或逗号分隔列表的形式接受单个参数。它们可以多次使用。
-Ccmdlist
按命令名选择。这将选择在cmdlist中给出可执行名称的进程。
-Ggrplist
选择进程所属的组id与给定list匹配的进程              
Uuserlist
按有效用户ID(EUID)或名称选择。有效用户ID描述进程使用其文件访问权限的用户
-Uuserlist
按实际用户ID(RUID)或名称进行选择。真正的用户ID标识创建进程的用户,
-ggrplist
按会话或有效组名选择。
p pidlist
按进程ID选择。
-ppidlist
按进程ID选择。
-ssesslist
按照会话ID选择
t ttylist
通过tty选择。与-t和--tty几乎相同,但也可以与空ttylist一起使用,以指示与ps关联的终端。
-t ttylist
选择指定的tty
-uuserlist
按有效用户ID(EUID)或名称选择,等价于“U”和“--user”
--Groupgrplist
等价于“-G”
--Useruserlist
等价于“-U”
--groupgrplist
按有效组ID(EGID)或名称选择。有效组ID描述进程使用其文件访问权限的组。
--pidpidlist
等价于“-p”和“p”
-ppidppidlist
选择父进程id匹配的进程
--sidsesslist
等价于“-s”
--ttyttylist
等价于“-t”和“t”
--useruserlist
等价于“-u”和“U”
-123
等价于“--sid 123”
123
等价于“—pid 123”

3、输出格式控制
格式
说明
-f | -F
输出完整的格式。它还会导致输出命令参数。当与-L一起使用时,将添加NLWP(线程数)和LWP(线程ID)列。
-Oformat
类似-o,但预加载了一些默认列。等价于“-o pid,format,state,tname,time,command”或者“-o pid,format,tname,time,cmd
Oformat
预加载的o。当用作格式设置选项时,它与-O完全相同,具有BSD个性。
-M
添加一列安全数据。
X
寄存器格式
Z
等价于“-M”
-c
显示-l选项的不同调度程序信息。
j
BSD作业控制格式
-j
作业格式
l
BSD长格式
-l
长格式,经常和“-y”一起使用
oformat
等价于“-o”和“--format”
-oformat
用户定义格式。format是以空格分隔或逗号分隔的列表形式的单个参数,它提供了一种指定单个输出列的方法。标头可以按需要重命名(ps -o pid,ruser=RealUser -o comm=Command)。如果所有列标题都是空的(ps -o pid= -o comm=),那么标题行将不会被输出。宽标头所需的列宽度将增加;这可用于扩展诸如WCHAN之类的列(ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm)。显式宽度控制(ps opid,wchan:42,cmd)也被提供。ps -o pid=X,comm=Y的行为随个性而变化,输出可能是一个名为“X,comm=Y”的列,也可以是两个名为“X”和“Y”的列。使用PS_FORMAT环境变量按需要指定默认值;DefSysV和DefBSD是可用于选择默认UNIX或BSD列的宏。
s
显示信号格式
u
以用户为主的模式
v
以虚拟内存为主的模式
-y
不显示标志位
-Z
显示安全上下文格式
--formatformat
和“-o”一样
--context
显示安全上下文格式

4、输出修饰符
修饰符
说明
-H
显示进程层次结构
O order
排序,过时的操作
S
总结一些信息,如CPU使用情况,从死子进程到父进程。
c
显示真正的命令名。这是从可执行文件的名称派生出来的,而不是从argv值派生的。因此,没有显示命令参数和对它们的任何修改
e
在命令之后显示环境
f | --forest
ASCII格式的进程层次结构
h
没有头
k spec
指定排序顺序,等价于“--sort”
-nnamelist  |  N namelist
正确的WCHAN显示需要名称列表文件,并且必须与当前Linux内核完全匹配才能得到正确的输出。如果没有此选项,则名称列表的默认搜索路径是:
$PS_SYSMAP
$PS_SYSTEM_MAP
/proc/*/wchan
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/usr/src/linux/System.map
/System.map
n
WCHAN和User的数字输出。(包括所有类型的UID和GID)
-w | w
宽输出,对无限宽度使用此选项两次
--cols n  |  --columns n |  --width n
设置屏幕宽度
--cumulative
包括一些死子进程数据(作为父进程的和)
--headers
重复头行,每页输出一行
--no-headers
根本不打印标题行
--lines n  |  --rows n
设置屏幕高度
--sort spec
排序。语法是“[+|-]key[,[+|-]key[,...]]”,例如,ps jax --sort=uid,-ppid,+pid

5、线程模式
线程模式
说明
H
把线程当做进程显示
-L
显示线程的LWP NLWP
-T
显示线程的SPID
m | -m
在进程之后显示线程

6、说明
       这个ps通过读取“/proc”中的虚拟文件来工作。这个ps不需要是setuid kmem,也不需要有任何特权来运行。不要给这个ps任何特殊的权限。此ps需要访问名称列表数据以获得正确的WCHAN显示。对于2.6之前的内核,必须安装System.map文件。
CPU使用率当前表示为进程在整个生命周期中运行的时间百分比。CPU使用率不太可能达到100%。
       SIZE和RSS字段不计算进程的某些部分,包括页表、内核堆栈、结构体thread_info和task_struct。这通常是至少20kb的内存大小。SIZE是进程的虚拟大小(代码数据堆栈)。
       标记为“defunct”的进程是死进程(所谓的“僵尸”),因为它们的父进程没有正确地销毁它们。如果父进程退出,则init(8)将销毁这些进程。
       如果用户名的长度大于显示列的长度,则将显示数字用户ID。

7、进程标志
       这些值的和显示在“F”列中,该列由标志输出说明符提供。
       1,已经fork,但是没有执行。
       4,使用超级用户权限。

8、进程状态码
       下面是s、stat和state输出说明符(标头“stat”或“S”)将显示的用于描述进程状态的不同值:
       D,不间断睡眠(通常为IO)。
       R,正在运行或可运行(在运行队列上)。
       S,可中断睡眠(等待事件完成)。
       T,停止,要么是被作业控制信号阻止,要么是因为它正在被跟踪。
       W,分页(自2.6.xx内核以来无效)。
       X,死了(不应该被看见)。
       Z,已停止(“僵尸”)进程,终止但未由其父进程收获。
       对于bsd格式和当使用stat关键字时,可能会显示其他字符:
       <,高优先级(对其他用户不好)。
       N,低优先级(对其他用户很好)。
       L,将页面锁定在内存中(用于实时和自定义IO)。
       s,是会话。
       l,是多线程的。
       +,在前台进程组中。

9、AIX格式描述符
       这个ps支持AIX格式描述符,它们的工作方式有点像printf(1)和printf(3)的格式代码。例如,正常的默认输出可以这样产生:ps -eo "%p %y %x %c
       CODE     NORMAL    HEADER
       %C       pcpu         %CPU
       %G       group        GROUP
       %P       ppid         PPID
       %U       user          USER
       %a       args          COMMAND
       %c       comm        COMMAND
       %g       rgroup      RGROUP
       %n       nice         NI
       %p       pid          PID
       %r       pgid         PGID
       %t       etime        ELAPSED
       %u       ruser       RUSER
       %x       time        TIME
       %y       tty          TTY
       %z       vsz         VSZ

10、标准格式说明符
       以下是用于控制输出格式(例如,使用选项-o)或使用GNU样式的“--sort”序选项对所选进程进行排序的不同关键字。例如,“ps -eo pid,user,args --sort user”。这个版本的ps试图识别大多数在ps的其他实现中使用的关键字。以下用户定义的格式说明符可能包含空格:args, cmd, comm,command, fname, ucmd, ucomm, lstart, bsdstart, start。某些关键字可能无法用于排序。
CODE
HEADER
说明
%cpu
%CPU
进程的CPU利用率为“#.#”格式。当前,它是CPU时间除以进程运行的时间(cputime/realtime比率),表示为百分比。除非你是幸运的,否则它不会达到100%。(别名pcpu)
%mem
%MEM
进程的驻留集大小与机器上物理内存的比率,以百分比表示。(别名PMEM)
args
COMMAND
命令,它的所有参数都是字符串。可以显示对参数的修改。该列中的输出可能包含空格。标记为“已失效”的进程部分死亡,等待其父进程完全销毁。有时进程args将不可用;当发生这种情况时,ps将可执行文件的名称打印在括号中。(别名cmd,命令)。
当最后指定该列时,该列将扩展到显示的边缘。如果ps不能确定显示宽度,例如当输出被重定向(管道)到一个文件或另一个命令时,输出宽度是未定义的。(它可以是80,无限,TERM等决定)环境变量COLUMNS或-cols选项可以用于精确地确定这种情况下的宽度。w-w选项也可用于调整宽度。
blocked
BLOCKED
blocked信号掩码。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig_block, sigmask)。
bsdstart
START
命令开始的时间。如果进程在24小时前启动,则输出格式为“hh:mm”,否则为“mmm dd”(其中mmm是月份的三个字母)。
bsdtime
TIME
用户和系统的累积CPU时间,。显示格式通常为“mmm:ss”,但如果进程占用的cpu时间超过999分钟,则可以移到右边。
c
C
处理器利用率当前,这是进程生存期内使用百分比的整数值。(见%cpu)。
caught
CAUGHT
捕获信号的掩码,见信号(7)。根据字段的宽度,以十六进制格式显示32或64位掩码。(别名sig_catch, sigcatch)
cgroup
CGROUP
显示进程所属的控制组。
class
CLS
进程的调度类。(别名policy, cls)。字段的可能值是:
-        not reported
TS  SCHED_OTHER
FF  SCHED_FIFO
RR  SCHED_RR
B   SCHED_BATCH
ISO SCHED_ISO
IDL SCHED_IDLE
?   unknown value
cls
CLS
class
cmd
CMD
args
comm
COMMAND
命令名(只有可执行的名称)。将不会显示对命令名的修改。标记为“已失效”的进程部分死亡,等待其父进程完全销毁。该列中的输出可能包含空格。(别名ucmducomm)。
当最后指定该列时,该列将扩展到显示的边缘。如果ps不能确定显示宽度,例如当输出被重定向(管道)到一个文件或另一个命令时,输出宽度是未定义的(它可以是80,无限,TERM)。COLUMNS环境变量或--cols选项可以用于精确地确定这种情况下的宽度。w-w选项也可用于调整宽度。
command
COMMAND
同args
cp
CP
CPU使用率/ms
cputime
TIME
累计CPU时间,"[DD-]HH:MM:SS"格式。(别名time)。
egid
EGID
进程的有效组ID数为十进制整数。(别名gid)。
egroup
EFROUP
进程的有效组ID。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。(别名group)。
eip
EIP
指令指针
esp
ESP
栈指针
etime
ELAPSED
自进程启动以来,以[dd-]hh:]mm:SS形式运行的时间。
euid
EUID
有效用户ID,别名uid
euser
EUSER
有效用户名。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。n选项可用于强制十进制表示。(别名unameuser)。
f
F
与进程关联的标志,请参阅流程标志部分。(别名flag, flags)。
fgid
FGID
文件系统访问组ID。(别名fsgid)。
fgroup
FGROUP
文件系统访问组ID。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。(别名fsgroup)
flag
F
f
flags
F
f
fname
COMMAND
进程可执行文件的基名的前8个字节。该列中的输出可能包含空格。
fuid
FUID
文件系统访问用户ID。(别名fsuid)。
fuser
FUSER
文件系统访问用户ID。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。
gid
GID
egid
group
GROUP
egroup
ignored
IGNORED
被忽略的信号的掩码,根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig_ignore, sigignore)
label
LABEL
安全标签,最常用于SELinux上下文数据。这是针对在高安全系统上发现的强制访问控制(“MAC”)。
lstart
STARTED
命令开始的时间。
lwp
LWP
正在报告的LWP(轻量过程或线程)ID。(别名spidtid)
ni
NI
nice值,范围从19(最好)到-20(对他人不友好)。 (别名nice)。
nice
NI
ni
nlwp
NLWP
进程中的lwps(线程)数。(别名thcount)。
nwchan
WCHAN
进程处于休眠状态的内核函数的地址(如果需要内核函数名称,请使用wchan)。正在运行的任务将在本列中显示一个破折号(‘-’)。
pcpu
%CPU
%cpu
pending
PENDING
挂起信号的掩码。进程上挂起的信号不同于单个线程上的待决信号。使用m选项或-m选项查看两者。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig)。
pgid
PGID
进程组ID或相应的流程组领导的进程ID。(别名pgrp)。
pgrp
PGRP
pgid
pid
PID
进程的进程ID号
pmem
%MEM
%mem
policy
POL
cls
ppid
PPID
父进程id
psr
PSR
进程当前分配给的处理器。
rgid
RGID
真实的组id
rgroup
RGROUP
真正的组名。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。
rip
RIP
64位指令指针。
rsp
RSP
64位栈指针。
rss
RSS
驻留集大小,任务使用的非交换物理内存(以千字节为单位)。(别名rssizersz)。

rssize
RSS
同rss
rsz
RSZ
同rss
rtprio
RTPRIO
实时优先级
ruid
RUID
实际用户ID
ruser
RUSER
真实的用户ID。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。
s
S
最小状态显示(一个字符)。
sched
SCH
进程的调度策略。策略SCHED_OTHER(SCHED_Normal)、SCHED_FIFO、SCHED_RR、SCHED_BATCH、SCHED_ISO和SCHED_IDELL分别显示为0、1、2、3、4和5。
sess
SESS
会话ID或等效的会话领导的进程ID。(别名sessionsid)。
sgi_p
P
进程当前正在执行的处理器。如果进程当前未运行或无法运行,则显示“*”。
sgid
SGID
保存的组ID。(别名svgid)
sgroup
SGROUP
保存的组名。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。
sid
SID
sess
sig
PENDING
pending
sigcatch
CAUGHT
caught
sigignore
IGNORED
ignored
sigmask
BLOCKED
blocked
size
SZ
如果进程要脏所有可写页,然后交换掉,则需要交换大约的交换空间。这个数字很粗糙!
spid
SPID
同lwp
stackp
STACKP
进程堆栈的底部(开始)地址
start
STARTED
命令开始的时候。如果进程在24小时前启动,则输出格式为“hh:mm:ss”,否则为“mmm dd”(其中mmm是三个字母的月份名称)。
start_time
START
进程的开始时间或日期。只有进程未启动的年份(即调用ps的年份)或“mmmdd”(如果进程未在同一天启动)或“hh:mm”将显示。
stat
STAT
多字符进程状态。有关不同值的含义,请参见处理状态代码一节。如果只希望显示第一个字符,请参见sstate
state
S
同s
suid
SUID
保存的用户ID。(别名svuid)。
suser
SUSER
保存的用户名。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。(别名svuser)
svgid
SVGID
sgid
svuid
SVUID
suid
sz
SZ
进程核心图像的物理页面大小。这包括文本、数据和堆栈空间。当前排除了设备映射;这可能会发生更改。参见vszrss
thcount
THCNT
nlwp
tid
TID
lwp
time
TIME
统计CPU时间,"[DD-]HH:MM:SS"格式。(别名cputime)。
tname
TTY
控制TY(终端)(别名tttty)。
tpgid
TPGID
进程连接到的TTY(终端)上的前台进程组的ID,如果进程没有连接到TTY,则为-1。
tt
TT
tname
tty
TT
tname
ucmd
CMD
comm
ucomm
COMMAND
comm
uid
UID
euid
uname
USER
euser
user
USER
euser
vsize
VSZ
vsz
vsz
VSZ
进程的虚拟内存大小(1024字节单位)。当前排除了设备映射;这可能会发生更改。(别名vsize)。
wchan
WHAN
进程处于休眠状态的内核函数的名称,如果进程正在运行,则为“-”,如果进程是多线程且ps不显示线程,则为“*”。

11、环境变量
       下面的环境变量会影响ps的行为:
       COLUMNS,覆盖默认的宽度。
       LINES,覆盖默认的高度。
       PS_PERSONALITY,设置为POSIX中的一个,old,linux,bsd,sun,digital。
       CMD_ENV,设置为POSIX中的一个,old,linux,bsd,sun,digital。
       I_WANT_A_BROKEN_PS,解释过时命令。
       LC_TIME,日期格式。
       PS_COLORS,现在还不支持。
       PS_FORMAT,默认输出格式覆盖。
       PS_SYSMAP,默认名称列表(System.map)位置。
       PS_SYSTEM_MAP,默认名称列表(System.map)位置。
       POSIXLY_CORRECT,不要找借口忽视不好的“特性”。
       POSIX2,当设置为“on”时,充当POSIXLY_TRIDER。
       UNIX95不要找借口忽视不好的“特性”。
       _XPG,取消CMD_ENV=irix非标准行为。
       一般来说,设置这些变量是个坏主意。一个例外是CMD_ENV或PS_PERSONALITY,对于正常系统,可以将它们设置为Linux。如果没有这种设置,PS就会遵循Unix 98标准中无用的和坏的部分。

12、例子代码
若要使用标准语法查看系统上的每个进程,请执行以下操作:
ps -e
ps -ef
ps -eF
ps –ely
若要使用BSD语法查看系统上的每个进程,请执行以下操作:
ps ax
ps ax
打印进程树
ps -ejH
ps axjf
获取线程信息
ps -eLf
ps axm
获取安全信息
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps –eM
若要以用户格式将每个进程作为根进程运行(实际有效ID),请执行以下操作:
ps -U root -u root
要使用用户定义的格式查看每个进程:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
只打印进程sislogd的PID
ps -C syslogd -o pid=
只打印PID为42的进程名字
ps -p 42 -o comm=

13、实例
1)显示所有用户的所有进程信息
[root@localhost ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2900  1504 ?        Ss   Sep19  0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Sep19  0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep19  0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Sep19  0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Sep19  0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Sep19  0:02 [watchdog/0]
。。。
david     7226  0.0  0.1  50856  3020 ?        Sl   06:32  0:00 /usr/bin/gnome-keyring-daemon --dae
david     7238  0.0  0.3  32944  6244 ?        Ssl  06:32  0:00 gnome-session
david     7246  0.0  0.0   3664   760 ?        S    06:32  0:00 dbus-launch --sh-syntax --exit-with
david     7247  0.0  0.0   3396  1316 ?        Ss   06:32  0:00 /bin/dbus-daemon --fork --print-pid
david     7306  0.0  0.0  19200   364 ?        S    06:32  0:00 /usr/bin/VBoxClient --display
david     7308  0.0  0.0  19200  1080 ?        S    06:32  0:00 /usr/bin/VBoxClient --display
david     7312  0.0  0.0  19200   360 ?        S    06:32  0:00 /usr/bin/VBoxClient --seamless
david     7314  0.0  0.0  20884  1188 ?        Sl   06:32  0:00 /usr/bin/VBoxClient --seamless
david     7318  0.0  0.0  19200   360 ?        S    06:32  0:00 /usr/bin/VBoxClient --draganddrop
david     7320  0.1  0.0  21400  1296 ?        Sl   06:32  0:07 /usr/bin/VBoxClient --draganddrop
david     7343  0.0  0.2  10712  4624 ?        S    06:32  0:00 /usr/libexec/gconfd-2
。。。
2)显示用户david的进程信息
[root@localhost ~]# ps -u david
  PID TTY          TIME CMD
7226 ?       00:00:00 gnome-keyring-d
7238 ?       00:00:00 gnome-session
7246 ?       00:00:00 dbus-launch
7247 ?       00:00:00 dbus-daemon
7306 ?       00:00:00 VBoxClient






使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表