「procmail」
formail is a filter that can be used to format mail into mailbox format.
lockfile is a utility that can lock a file for single use interactively or in a script.
mailstat prints a summary report of mail that has been filtered by procmail since the last time mailstat was ran.
procmail is an autonomous mail processor. It performs all the functions of an MDA (Mail Delivery Agent).
参考文献
BLFS/Procmail-3.22[……]
「mailstat(1)」-
显示邮件到达统计信息
命令语法格式
mailstat [-klmots] [logfile]
命令描述
命令mailstat解析”由Procmail生成“的$LOGFILE,并显示有关传递到所有文件夹的消息的摘要(总大小,平均大小,消息数)。除非使用-k选项,否则$LOGFILE将截断为零长度。
如果邮件到达则退出代码”0“;如果没有邮件到达则退出”1“。
命令支持的选项及含义
-k 保持logfile完好无损
-l 显示长格式。
-m 将任何错误合并到一行中
-o 使用旧日志文件
-t 简洁的显示格式
-s 在没有邮件的情况下保持静默
注意事项
根据您的内心定制,此程序仅作为指南提供。
参考文献
man 1 mailstat, Version 3.22-26
更新日志
10/30/2018 创建文章[……]
「free(1)」-
显示系统中可用及以用内存用量
命令语法格式
free [options]
命令描述
命令free显示系统中剩余、已使用的物理内存、交换分区的总量,以及被内核使用的缓冲和缓存。显示的数据来自/proc/meminfo。显示如下列:
total:总内存(/proc/meminfo下的MemTotal和SwapTotal);
used:已使用(= total – free – buffers – cache);
free:未使用的(在/proc/meminfo下MemFree和SwapFree);
shared:由tmpfs使用的(在/proc/meminfo下Shmem);
buffers:内核缓冲使用的(/proc/meminfo下的Buffers);
cache:页面缓存和slab使用的内存(在/proc/meminfo下Cached和SReclaimable);
buff/cache:= buffers + cache
available:在不使用swap时,估计可以用作应用启动的内存大小。与cache或free字段提供的数据不同,此值会计算页缓存和正在使用可回收但没有回收的内存slab。(在/proc/meminfo下的MemAvailable在3.14的内核上可用, 在2.6.27+是被模拟的, 除此以外和free一样)。
这些字段显示的数据由下面的选项控制。
命令支持的选项及含义
-h, –human 将输出自动转化为“3位数字后接单位”的形式来显示。使用的单位如下:
B = bytes
K = kibibyte
M = mebibyte
G = gibibyte
T = tebibyte
P = pebibyte
如果缺少单位,并且您有exbibyte大小的RAM或swap,则该数字为tebibytes,列可能与标题不对齐。
-w, –wide 使输出变宽,产生的列宽大于80字符。这种模式下,buffer 和 cache 分两列显示。
-l, –lohi 显示详细的高(High)低(Low)内存统计信息。
当系统物理内存较大时,超过896M的内存区域,内核就无法直接通过线性映射直接访问了,这部分内存被称作”high memory“。相应的可以映射的低端物理内存称为“low memory”。
-t, –total 附加一行,该行显示格列求和。
周期执行
-s, –seco[……]
「kill(1)」-
功能简述
向进程发送信号
常用命令
结束所有可杀掉的进程:
# kill -9 -1
输出信号值为 11 的信号名:
# kill -l 11
输出所有的可用信号:
# kill -L
发送默认的 SIGTERM 给指定的进程:
# kill 123 543 2341 3453
语法格式
kill [options] <pid> […]
命令描述
当未指定选项时,该命令默认发送 TERM 信号。使用 -l 或者 -L 列出可用的信号。HUP, INT, KILL, STOP, CONT, 0 这些信号特别有用。信号除了通过 -s 选项指定,可以使用另外三种方式:-9, -SIGKILL, -KILL。
负数 PID 用于选择整个进程组(包括其子进程);参见 ps(1)输出的 PGID 列。值为 -1 的 PID 具有特殊含义;它表示除了 kill 进程自身 和 init 之外的所有进程。
命令选项
<pid> […] 向列出的进程 <pid> 发送信号。
-<signal>, -s <signal>, –signal <signal> 指定要发送的信号。singnal 可以是数字,也可以是名字。信号的行为参考 signal(7) 手册。
-l, –list [signal] 列出所有的信号名。参数 signal 是可选的,如果指定 signal 参数,则会输出对应的 signal 数值,反之亦然。
-L, –table 以表格的形式列出信号名。选项-L是Linux中具有的。
附加说明
注意事项
如果 Shell(比如 BASH,DASH,CSH 等等)内建 kill 命令,则需要使用 /bin/kill 来解决冲突。
此命令符合适当的标准。选项 -L 是特定于Linux的。
相关手册
kill(2), killall(1), nice(1), pkill(1), renice(1), signal(7), skill(1)
参考文献
man 1 kill, Version 23.3.15-2[……]
「pgrep(1)」-
根据名称和其他属性查找进程或向进程发出信号
命令语法格式
pgrep [options] pattern
pkill [options] pattern
命令描述
命令pgrep查看当前正在运行的进程,并将与选择条件匹配的进程ID列出到标准输出。 所有条件都必须匹配。 例如,
# pgrep -u root sshd
将仅列出root所拥有,且名为sshd的进程。 另一方面,
# pgrep -u root,daemon
将列出root或者daemon拥有的进程。
命令pkill会将指定的信号(默认为SIGTERM)发送到每个进程,而不是将它们列在标准输出上。
pattern 该操作数指定扩展正则表达式(ERE),用于匹配进程名称或命令行。
命令支持的选项及含义
控制匹配行为
-signal, –signal signal 定义要发送到每个匹配进程的信号。 可以使用数字或符号信号名称。(仅限pkill)
-f, –full 该模式通常仅与进程名称匹配。 设置-f时,使用完整的命令行。
-x, –exact 仅匹配名称与模式pattern完全匹配的进程。(或指定了-f的命令行)
-i, –ignore-case 匹配进程时忽略大小写。
-g, –pgroup pgrp,… 仅匹配在列出的进程组ID中的进程。进程组为”0“表示pgrep或pkill自己的进程组。
-G, –group gid,… 仅匹配列出实际组ID的进程。 可以使用数字或符号值。
-n, –newest 仅选择最新(最近启动)的匹配进程。
-o, –oldest 仅选择最早(最近最少启动)的匹配进程。
-P, –parent ppid,… 仅匹配列出其父进程ID的进程。
-s, –session sid,… 仅匹配在进程会话ID中列出的进程。 会话ID为0被解释成pgrep或pkill自己的会话ID。
-t, –terminal term,… 仅匹配在控制终端中列出的进程。应指定终端名称,不带“/dev/”前缀。
-u, –euid euid,… 仅匹配在有效用户ID中列出的进程。 可以使用数字或符号值。
-U, –uid uid,… 仅匹配在真实用户ID中列出的进程。 可以使用数字或符号值。
-v, –inverse 否定匹配。 此选项通常用于pgrep的上下文中。 在pkill的上下文中,禁用短选项以避免意外使用该选项。
-w, –lightweight 在pgrep的上下文中显示所有线程ID[……]
「pidof(8)」-
找到正在运行的程序的进程ID
命令语法格式
pidof [-s] [-c] [-n] [-x] [-o omitpid[,omitpid..]] program [program..]
命令描述
命令pidof找到命名程序program的进程id(pids)。 它在标准输出上打印这些id。 此程序位于某些系统上,在run-level更改脚本中使用。尤其是当系统具有类似于System-V风格的rc结构时。 在这种情况下,这些脚本位于/etc/rc?.d中,其中的”?“是运行级别。 如果系统有一个start-stop-daemon(8)程序,应该使用的该程序。
命令支持的选项及含义
-s 查找一次 – 这指示程序只返回一个pid。
-c 仅返回使用相同根目录运行的进程ID。 非root用户将忽略此选项,因为他们将无法检查他们不拥有的进程的当前根目录。
-n 避免对位于网络文件系统(如NFS)上的所有二进制文件进行stat(2)系统函数调用。不是使用此选项,也可以设置和导出PIDOF_NETFS环境变量。
-x 脚本也是 – 这会导致程序还返回运行命名脚本的Shell的进程ID。
-o omitpid 告诉pidof忽略具有该进程ID的进程。 特殊的pid值”%PPID“可用于命名pidof程序的父进程,即调用Shell或Shell脚本。
注意事项
pidof实际上是与killall5相同的程序;程序根据调用它的名称来运行相应的功能。
当使用程序的完整路径名调用pidof时,它应该找到pid,它是相当安全的。 否则,它可能会返回正在运行的程序的pids,这些程序恰好与您之后的程序具有相同的名称,但实际上是其他程序(同名但不同路径)。 请注意,正在运行的进程的可执行文件名是使用readlink(2)计算的,因此可执行文件的符号链接也将匹配。
退出状态
0 找到至少一个带有请求名称的程序。
1 没有找到与请求的程序名匹配的程序。
相关手册
shutdown(8), init(8), halt(8), reboot(8), killall5(8)
参考文献
man 8 pidof, Version 2.88dsf-59.9
更新日志
06/17/2017 创建文章
09/27/2018 文章内容修改。[……]
「pkill(1)」-
向命令发送信息号
命令语法格式
pkill [options] pattern
命令描述
命令pkill是一个指向命令pgrep(1)的符号链接。命令相关的介绍参考pgrep(1)。
相关手册
ps(1), regex(7), signal(7), killall(1), skill(1), kill(1), kill(2)
参考文献
man 1 pgrep, Version pgrep from procps-ng 3.3.15
更新日志
07/30/2018 创建文章[……]
「pmap(1)」-
显示进程的内存映射
命令语法格式
pmap [options] pid […]
命令描述
pmap命令报告一个或多个进程的内存映射。
命令支持的选项及含义
输出信息
-x, –extended 显示扩展格式。
-X 显示比-x选项更多的详细信息。
警告:格式根据/proc/PID/smaps更改
-XX 显示由内核提供的所有信息。
-d, –device 显示设备格式。
-q, –quiet 不要显示一些页眉或页脚行。
-A, –range low,high 将结果限制在给定的低地址范围和高地址范围的范围内。 请注意,低和高参数是用逗号分隔的单个字符串。
-p, –show-path 显示映射列中文件的完整路径。
配置文件
-c, –read-rc 读取默认配置
-C, –read-rc-from file 读取指定的配置文件。
-n, –create-rc 创建一个默认的配置。
-N, –create-rc-to file 创建一个默认的配置到文件file中。
其他选项
-h, –help 显示帮助信息并退出。
-V, –version 显示版本信息并退出。
标准
没有标准适用,但是pmap看起来很像SunOS命令。
退出状态
0 成功。
1 失败。
42 所有指定的进程都没有找到。
相关手册
ps(1), pgrep(1)
参考文献
man 1 pmap, Version 23.3.15-2
更新日志
09/27/2018 创建文章[……]
「ps」- 报告当前进程的快照(查看系统进程状态)
常用命令
排除内核进程(即排除 pid 及 ppid 为 2 的进程):
# ps –ppid 2 -p 2 –deselect
过滤特定状态的进程,这里以运行(R)进程为例:
# ps -e -ostate,command | grep -E ‘^R’
查看在系统中的每个进程(标准语法):
# ps -e
# ps -ef
# ps -eF
# ps -ely
查看在系统中的每个进程(使用BSD语法):
# ps ax
# ps axu
打印进程树:
# ps -ejH
# ps axjf
获取线程信息:
# ps -eLf
# ps axms
获取安全信息:
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
使用用户格式查看所有以ROOT运行的进程:
# ps -U root -u root u
以用户自定义格式查看所有进程:
# 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 -Ao pid,tt,user,fname,tmout,f,wchan
只打印syslogd的进程号:
# ps -C syslogd -o pid=
只打印 PID=42 的进程名:
# ps -q 42 -o comm=
语法格式
ps [options]
命令描述
该命令显示所选的活跃进程的信息。如果你想要所选进程与显示信息的不断更新,可以使用top(1)命令。
该版本命令接受几种选项:
(1)UNIX,可以将选项放在一起,但是必须前缀横线。比如 ps -ef
(2)BSD,可以将选项放在一起,但是必须不使用前缀横线。比如 ps ef
(3)GNU long options,长选项,前缀两个横线。比如 ps –group root
可以自由混合不同类型选项,但是可能出现冲突。由于存在多种标准与实现,该版本为了兼容,所以有些选项同义(功能一致),
注意 ps -aux 与 ps aux 不同。在POSIX与UNIX标准中,ps -aux 打印所有属于用户 ‘x’ 的进程,此外打[……]
「pwdx(1)」-
报告进程的当前工作目录
命令语法格式
pwdx [options] pid […]
命令支持的选项及含义
-V, –version 显示版本信息并退出。
-h, –help 显示帮助信息并退出。
注意事项
标准
没有标准适用,但pwdx看起来很像SunOS命令。
相关手册
ps(1), pgrep(1)
参考文献
man 1 pwdx, Version 23.3.15-2
更新日志
10/03/2018 创建文章[……]
「skill(1)」-
发送信号给进程或者报告进程状态
命令语法格式
skill [signal] [options] expression
snice [new priority] [options] expression
命令描述
这些工具已过时,且不可移植。命令语法定义不明确。 请考虑使用killall、pkill、pgrep命令。
命令skill的默认信号是TERM。 使用-l或-L列出可用信号。 特别有用的信号包括HUP,INT,KILL,STOP,CONT,0。信号可以用三种方式指定:-9 -SIGKILL -KILL。信号的含义可以参考signal(7)手册。
命令snice的默认优先级是+4。 优先级数字范围从+20(最慢)到-20(最快)。 负优先级数值限制为只能由管理用户使用。
命令支持的选项及含义
-f, –fast 快速模式。该选项未实现。
-i, –interactive 交互使用。系统会请求你批准每项操作。
-l, –list 显示所有的信号名。
-L, –table 在表格中显示所有的信号名。
-n, –no-action 没有行动;执行将发生但不实际更改系统的事件的模拟。
-v, –verbose 详细模式。解释执行了什么操作。
-w, –warnings 启用警告。该选项并未实现。
-h, –help 显示帮助信息并退出。
-V, –version 显示版本信息并退出。
进程选择选项
选择标准可以是:终端、用户、PID、命令。 以下选项可用于确保正确的解释:
-t, –tty tty 下一个表达式是一个终端(tty或者pty)
-u, –user user 下一个表达式是用户名。
-p, –pid pid 下一个表达式是进程ID数值。
-c, –command command 下一个表达式是命令名。
–ns pid 匹配与PID命名空间相同的的进程。
–nslist ns,… 列出将为–ns选项考虑的命名空间。 可用的命名空间:ipc,mnt,net,pid,user,uts。
使用示例
减慢seti和crack命令:
# snice -c seti -c crack +7
杀死PTY设备上的进程:
# skill -KILL -t /dev/pts/*
停止指定的三个用户:
# skill -STOP -u viro -u lm -u davem
如上示例。
相关手册
kill(1), kill(2), k[……]
「slabtop(1)」-
实时显示内核slab缓存信息
命令语法格式
slabtop [options]
命令描述
命令slabtop实时显示详细的内核slab缓存信息。 它显示按列出的排序条件之一排序的缓存列表,类似于top命令。 它还显示一个填充了slab层信息的统计标题。
命令支持的选项及含义
正常调用slabtop不需要任何选项。 但是,可以通过指定以下一个或多个标志来微调行为:
-d, –delay=N 每隔n秒刷新一次显示。 默认情况下,slabtop每三秒刷新一次显示。 要退出程序,请按q键。
-s, –sort=S 按S排序,其中S是排序标准之一。参照「SORT CRITERIA」部分。
-o, –once 显示输出一次,然后退出。
-V, –version 显示版本信息并退出。
-h, –help 显示帮助信息并退出。
排序标准(SORT CRITERIA)
以下是用于对各个slab缓存进行排序的有效排序条件,从而确定要显示的slab缓存排序。 默认排序条件是按对象数(“o”)排序。
通过按下相关字符,也可以在slabtop运行时更改排序条件。
character description header
a number of active objects ACTIVE
b objects per slab OBJ/SLAB
c cache size CACHE SIZE
l number of slabs SLABS
v number of active slabs N/A
n name NAME
o number of objects OBJS
p pages per slab N/A
s object size OBJ SIZE
u cache utilization USE
即,如果要调整排序,按下character列的字符即可。
交互命令
在使用slabtop过程中,接受用户的键盘命令。支持以下内容。 在字符的情况下,大小写两种情况都被接受。
每个有效的排序字符也被接受,以更改排序例程。 请参阅「SORT CRITERIA」部分。
<SPACEBAR> 刷新屏幕。
Q 退出程序
注意事项
目前,slabtop需要2.4+的内核(特别是版本1.1或更高版本/proc/slabinfo)。将来应支持2.2内核。
slabtop统计标题用于跟踪正在使用的slab字节数,而不是物理内存的度量。/proc/meminfo文件中的“Slab”字段跟踪有关已使用的slab物理内存的信[……]
「snice(1)」-
发送信号给进程或者报告进程状态
命令描述
参考skill(1)手册。
相关手册
kill(1), kill(2), killall(1), nice(1), pkill(1), renice(1), signal(7)
参考文献
man 1 skill, Version 23.3.15-2
更新日志
09/29/2018 创建文章[……]
「sysctl(8)」-
运行时修改内核参数
命令语法格式
sysctl [options] [variable[=value]] […]
sysctl -p [file or regexp] […]
命令描述
命令sysctl用于在运行时修改内核参数。可用的参数是/proc/sys/下列出的参数。 在Linux中,支持sysctl需要proc文件系统。 您可以使用sysctl来读取和写入sysctl数据。
命令参数
variable 要读取的key的名称。例如:kernel.ostype。 也可以接受’/’分隔符,代替’.’,比如kernel.ostype。
variable=value 要设置的key及value,请使用variable=value,其中variable是键,value是要将其设置为的值。如果值包含由Shell解析的引号或字符,则可能需要将值括在双引号中。
-a, –all 显示当前可用的所有值。
–deprecated 包含已弃用的参数到–all值列表。
-n, –values 在打印值时,禁用键名的打印。
-N, –names 仅打印键名。对于具有可编程完成的Shell可能很有用。
-e, –ignore 使用此选项可忽略有关未知key的错误。
-q, –quiet 不要将设置的值显示到标准中。
-w, –write 当所有参数都规定要设置的键时,请使用此选项。
-p[FILE], –load[=FILE] 从指定的文件或/etc/sysctl.conf(如果没有给出)加载sysctl设置。使用“-”作为FILE表示从标准输入读取数据。 使用此选项意味着sysctl的参数是文件,它们按照指定的顺序读取。参数FILE可以指定为正则表达式。
–system 从所有系统配置文件中加载设置。 从上到下按给定顺序,从以下列表中的目录中读取文件:
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
加载给定文件名的文件后,将忽略后续目录中的任何同名文件。
-r, –pattern pattern 仅应用与pattern匹配的设置。该模式使用扩展正则表达式(ERE)语法。
-b, –binary 打印没有换行的值。
其他选项
-A 等同于-a
-d 等同于-h
-f 等同于-p[……]
「tload(1)」-
图形表示系统负载平均值
命令语法格式
tload [options] [tty]
命令描述
命令tload将当前系统负载平均值的图形打印到指定的tty上(如果没有指定,则打印tload进程的tty上)。
命令支持的选项及含义
-s, –scale number 缩放选项允许为显示指定垂直缩放(以图形刻度之间的字符表示);因此,较小的值表示较大的比例,反之亦然。
-d, –delay seconds 参数seconds设置图形更新之间的延迟时间(以秒为单位)。
-h, –help 显示帮助信息并退出。
-V, –version 显示版本信息并退出。
注意事项
选项-d delay设置alarm(2)的时间参数;如果指定-d 0,则警报设置为0,永远不会发送SIGALRM并更新显示。
相关文件
/proc/loadavg 负载平均信息。
相关手册
ps(1), top(1), uptime(1), w(1)
参考文献
man 1 tload, Version 23.3.15-2
更新日志
09/29/2018 创建文章[……]
「top」- 显示 Linux 进程
常用命令
切换排序:
# top
Shift + M %MEM
Shift + N PID
Shift + P %CPU
Shift + T TIME+
// 这些快捷键是为了兼容,新版本仅支持少部分排序快捷键
// 更多内容,参考 SORTING of task window 部分
命令过滤:
// 执行 top 命令
// 然后,按 [O] 键,输入 COMMAND=systemd 表达式,按 [ENTER] 键执行
语法格式
top -hv|-bcEHiOSs1 -d secs -n max -u|U user -p pid -o fld -w [cols]
The traditional switches `-‘ and whitespace are optional.
命令描述
The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of processes or threads currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for processes are all user configurable and that configuration can be made persistent across restarts.
The program provides a limited interactive interface for process manipulation as well as a much more extensive interface for personal configuration — encompassing every aspect of its operation. And while top is referred to throughout this document, you are free to name the program anything you wish. That new name, possibly an alias, will then be reflected on top’s displa[……]
「uptime(1)」-
报告系统运行时间
命令语法格式
uptime [options]
命令描述
命令uptime输出一行信息,显示如下字段:当前时间、系统运行的时间、当前登录的用户数、过去1,5,15分钟的系统负载平均值。
这与w(1)显示的标题行中包含的信息相同。
系统负载平均值是处于可运行或不可中断状态的平均进程数。 处于可运行状态的进程要么使用CPU,要么等待使用CPU。 处于不可中断状态的进程正在等待某些I/O访问,例如等待磁盘。平均值是在三个时间间隔内取得的。 对于系统中的CPU数量,负载平均值没有标准化,因此平均负载为”1“表示:在单个CPU系统上,表示一直在加载;在4个CPU系统上,这意味着它在75%的时间内处于空闲状态。
命令支持的选项及含义
-p, –pretty 以美化的格式显示启动时间。
-s, –since 以yyyy-mm-dd HH:MM:SS格式,显示系统启动时间。
-V, –version 显示版本信息并退出。
-h, –help 显示帮助信息并退出。
相关文件
/var/run/utmp 当前登录系统的用户信息。
/proc 进程信息。
相关手册
ps(1), top(1), utmp(5), w(1)
参考文献
man 1 uptime, Version 23.3.15-2
更新日志
09/29/2018 创建文章[……]
「vmstat(8)」-
报告虚拟内存统计信息
命令语法格式
vmstat [options] [delay [count]]
命令描述
命令vmstat报告有关进程,内存,分页,块IO,捕获,磁盘,CPU活动的信息。
生成的第一份报告给出了自上次重启以来的平均值。在一个简单的延时后,给出其他报告。 在任何一种情况下,进程和内存报告都是即时的。
命令行选项
-a, –active 给定2.5.41内核或更好的内核,显示活动和非活动内存。
-f, –forks 开关-f显示自引导以来的fork数。 这包括fork,vfork,clone系统调用,相当于创建的任务总数。 每个进程由一个或多个任务表示,具体取决于线程使用情况。 此显示不重复。
-n, –one-header 仅显示标题一次,而不是定期显示。
-s, –stats 显示各种事件计数器和内存统计信息的表。 此显示不重复。
-D, –disk-sum 报告一些有关磁盘活动的摘要统计信息。
-S, –unit character 在1000(k),1024(K),1000000(m)或1048576(M)字节之间切换输出。 请注意,这不会更改swap(si/so)或block(bi/bo)字段。
-t, –timestamp 为每一行添加时间戳。
-w, –wide 宽输出模式(对于具有较高内存量的系统非常有用,其中默认输出模式会受到不必要的列断裂影响)。 输出宽度超过每行80个字符。
指定模式
-m, –slabs 显示slab分配器相关信息。
-d, –disk 报告磁盘统计信息(需要2.5.70或更高版本)。
-p, –partition device 有关分区的详细统计数据(需要2.5.70或以上)。
其他选项
-V, –version 显示版本信息并退出。
-h, –help 显示帮助信息并退出。
命令行参数
delay 更新之间的延迟,以秒为单位。 如果未指定delay参数,则仅打印一个报告,其中包含自引导以来的平均值。
count 更新的次数。如果没有count,如果定义delay时,默认值为无限输出。
各模式下字段描述
VM
Procs r:可运行进程的数量(正在运行或等待运行时)。 b:不间断睡眠中的进程数。
Memory swpd:使用的虚拟内存量。 free:空闲内存量。 buff:用作缓冲区的内存量。 cache:用作缓存的内存量。 inact:非活动内存量。 (-a选项) active:活动内存量。 (-a选项)
Swap si:从磁盘交换的内存量(/s)。 so:交换到磁盘的内存量[……]
「w(1)」-
显示当前登录的用户,以及正在执行的操作
命令语法格式
w [options] user […]
命令描述
命令w显示有关计算机上当前用户及其进程的信息。标题行按当前时间、系统运行的时间、当前登录的用户数、过去1,5,15分钟的系统负载平均值的此顺序显示。
为每个用户显示以下条目:登录名,tty名称,远程主机,登录时间,空闲时间,JCPU,PCPU,当前进程的命令行。
「JCPU」是附加到tty的所有进程使用的时间。 它不包括过去的后台作业,但包括当前正在运行的后台作业。
「PCPU」是当前进程使用的时间,在“what”字段中命名。
命令支持的选项及含义
-h, –no-header 不打印头部。即不再输出第一行(即时间及平均负载)和第二行(即列名)。
-u, –no-current 在找出当前进程和cpu时间时忽略用户名。为了证明这一点,执行“su”,然后执行“w”和“w -u”。
-s, –short 简短输出,不打印登录时间、JCPU、PCPU时间。
-f, –from 显示FROM(远程主机)列。实际上FROM列是不显示ide,而有些发行版在编译的时候,默认是显示FROM列的。
-i, –ip-addr 在FROM列中显示IP地址。默认显示的是主机名。
-o, –old-style 使用以前的输出风格:如果IDLE时间小于一分钟,则显示空白。
-V, –version 显示版本信息并退出。
–help 显示帮助信息并退出。
user 显示指定用户的信息。
命令输出说明
# w
22:10:15 up 1:53, 2 users, load average: 0.00, 0.01, 0.03
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 :0 20:23 1:46m 0.05s 0.04s wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant
root pts/1 :0 20:23 7.00s 0.07s 0.00s w
头部的内容依次为:当前时间,系统运行时间,当前用户数,在过去的1、5、15分钟内系统的平均负载。
接下来信息中:
USER:当前登录的用户名。
TTY:tty的名称。
FROM:远程的Hostname。
LOGIN@:[……]
「watch(1)」-
周期执行命令,并全屏显示输出
命令语法格式
watch [options] command
命令描述
命令watch反复运行命令,显示其输出和错误(第一次屏幕显示)。 这使您可以观察程序的输出随时间的变化。 默认情况下,命令每2秒运行一次,watch将一直运行直到被中断。
命令支持的选项及含义
-d, –differences [permanent] 突出显示连续更新之间的差异。如果使用了可选参数permanent,则永久性显示高亮部分,这样的话可以看到从第一次开始都发生了那些变化。
-n, –interval seconds 指定更新间隔。不允许小于0.1。默认情况下,程序每2秒运行一次。watch将一直运行到被中断。
-p, –precise 精确地每隔interval秒尝试运行command,重点是精确的。尝试运行ntptime,并注意小数秒的值,你会发现几乎是相同。没有使用该选项的时候,你会发现小数秒的增幅会很大。
-t, –no-title 不显示开头的时间、命令、空白行等内容,仅仅显示输出。
-b, –beep 当命令以非零退出时,发出声音进行提示。
-e, –errexit 命令执行出错的时候,停止更新界面,并在按键后退出。
-g, –chgexit 当命令的输出发生变化的时候,退出。
-c, –color 如果输出中有ANSI颜色字符串及样式序列,则对其进行显示。可以对比这两条命令的输出:
# watch -n 1 “echo ‘\033[01;31m#####\033[00m'”
# watch -n 1 -c “echo ‘\033[01;31m#####\033[00m'”
有关ANSI颜色代码可以参考:http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html
-x, –exec 将命令传递给exec(2)执行,而不是使用sh -c执行命令,减少需要使用额外的引号来获得期望的效果。
-h, –help 显示帮助信息并退出。
-v, –version 显示版本信息并退出。
注意事项
使用POSIX选项处理(即,选项处理在第一个非选项参数处停止)。这意味着command之后的标志不会被watch本身解释。
终端调整大小后,屏幕将无法正确重新绘制,直到下一次计划更新。所有–differences突出显示的内容在该更新时也会丢失。
从程序输出中删除非打印字符。如果要查看它们,请使用“cat -v”作为命令管道的一部分。
组合字符应该在屏幕最后一列的字符上显示的字符[……]
「PSmisc :: Small utilities that use the /proc filesystem」
Psmics,该软件包包含了用于显示运行中的进程的信息的程序。
包含的命令列表
fuser 报告正在使用指定文件或者指定文件系统的进程的进程ID。
killall 通过进程名来结束进程;它向所有正在运行任何命令的进程发送一个信号。
peekfd Peek at file descriptors of a running process, given its PID
prtstat Prints information about a process
pstree Displays running processes as a tree
pstree.x11 Same as pstree, except that it waits for confirmation before exiting
参考文献
The PSmisc Website: http://psmisc.sourceforge.net[……]
「fuser(1)」-
使用文件或套接字来识别进程
命令语法格式
fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] name …
fuser -l
fuser -V
命令描述
命令fuser显示所有正在使用指定文件或文件系统的进程。在默认的显示模式中,每个文件名后面都跟着一个字符,该字符表示访问类型:
c,当前目录。
e,正在运行的可执行文件。
f,打开文件。默认的显示模式下,省略f。
F,打开文件进行写入。默认显示模式下,省略F。
r,根目录。
m,mmap的文件或共享库。
.,占位符,在默认显示模式下省略。
如果指定的文件没有被访问、或在致命错误的情况下,fuser返回非零返回码。如果至少找到一个访问,则返回零。
为了使用TCP和UDP套接字来查找进程,必须使用-n选项指明相应的命名空间。默认情况下,fuser将查找IPv6和IPv4套接字。要更改默认行为,使用-4和-6选项。套接字可以由本地和远程端口,以及远程地址指定。所有字段都是可选的,但缺少字段前面的逗号必须存在:
[lcl_port][,[rmt_host][,[rmt_port]]]
其中,IP地址和端口号可以使用符号或数值。
命令fuser只会将PIDs输出到标准输出,其他一切都会发送到标准错误。
命令支持的选项及含义
-a, –all 输出中,显示在命令行中指定的所有文件。默认,至少存在一个访问进程的文件才会被显示。
-k, –kill 杀死访问该文件的进程。除非用-SIGNAL更改信号,否则默认发送SIGKILL。fuser不会杀死自身,但可能会杀死其他fuser进程。在尝试杀死之前,执行fuser的进程的“有效用户ID”设置为其“真实的用户ID”。
-i, –interactive 杀死一个进程前,请求用户确认。如果-k不存在,则此选项将被忽略。
-w 仅杀死具有写入权限的进程。如果-k不存在,则此选项将被忽略。
-SIGNAL 杀死进程时,使用指定的信号,代替默认的SIGKILL。信号即可以通过「信号名」指定(例如,-HUP),也可以通过信号值(例如,-1)指定。如果没有指定-k,该选项会被静默的忽略。
-I, –inode 对于命名空间文件,所有比较都基于指定文件的inode,即使在基于网络的文件系统上也不会基于文件名。
-l, –list-signals 列出所有可用的信号名。
-m NAME, –mount NAME 参数NAME指定已挂载文件系[……]
「killall(1)」-
通过名称结束进程
命令语法格式
killall [options] [–] name …
killall -l
killall -V, –version
命令描述
命令killall向运行任何指定命令的所有进程发送信号。 如果未指定信号名称,则发送SIGTERM信号。
信号可以通过名称(例如-HUP或-SIGHUP)、数字(例如-1)、选项-s这三种方式来指定。
如果命令名称name不是正则表达式(选项-r)并且包含斜杠(/),则将选择执行该特定命令文件的进程进行终止,而与其名称无关。
一个killall进程永远不会自杀(但可能会杀死其他killall进程)。
命令支持的选项及含义
-s, –signal SIGNAL, -SIGNAL 发送指定的信号,而不是默认的SIGTERM信号。
-w, –wait 等待所有被杀死的进程死亡。 如果任何被杀死的进程仍然存在,则killall每秒检查一次;如果没有剩余进程,则仅返回。 请注意,如果信号被忽略,没有效果,或者进程处于僵尸状态,killall可能会永远等待。
-Z, –context pattern (仅限SELinux)指定安全上下文:仅终止具有与给定扩展正则表达式模式匹配的安全上下文的进程。 必须在命令行上的其他参数之前。 命令名称是可选的。
-i, –interactive 在结束进程之前,要求用户确认。
选择要结束的进程
-e, –exact 需要与很长的名字name完全匹配。
如果命令名称超过15个字符,则全名可能不可用(即,它被换出)。在这种情况下,killall会杀死前15个字符内匹配的所有内容。使用-e时,将跳过此类条目。 如果除了-e之外还指定了-v选项,killall会为每个跳过的条目打印一条消息,
-r, –regexp 根据regexp(3)将进程名称模式解释为POSIX扩展正则表达式(ERE)。
-I, –ignore-case 不区分大小写的进程名称匹配。
-y, –younger-than TIME 仅匹配指定时间之后(从之后开始)的进程。 时间被指定为浮点数,然后是单位。 单位为s、m、h、d、w、M、y,分别为秒、分钟、小时、天、周、月、年。
-o, –older-than TIME 仅匹配指定时间之前(从之前开始)的进程。 时间被指定为浮点数,然后是单位。 单位为s、m、h、d、w、M、y,分别为秒、分钟、小时、天、周、月、年。
-u, –user user 只结束指定的用户拥有的进程。 命令名称是可选的。
-g, –process-group 终止进程所属的进程组里的全部进程。[……]
「pstree(1)」-
显示树形结构的进程列表
命令语法格式
pstree [options] [pid, user]
pstree -V, –version
命令描述
命令pstree将运行进程显示为树。树将以pid为根目录;如果省略pid,则以init为根。 如果指定了用户名,则会显示以该用户拥有的进程为根的所有进程树。
在视觉上,pstree合并相同的分支,方法是将它们放在方括号中,并在前面添加重复计数,例如:
init-+-getty
|-getty
|-getty
`-getty
会显示为:
init—4*[getty]
进程的子线程在父进程下找到,并以大括号中的进程名称显示,例如
icecast2—13*[{icecast2}]
如果pstree以pstree.x11的名称调用,那么它将提示用户在行末按RETURN,并且在按下RETURN之前不会返回。当pstree在xterminal中运行时,这非常有用。
某些内核或mount参数(例如procfs的hidepid选项)将隐藏某些进程的信息。 在这些情况下,pstree将尝试在没有此信息的情况下构建树,将进程名显示为问号。
命令行选项
排序选项
-n, –numeric-sort 通过PID对具有相同祖先的进程进行排序,而不是按名称。 (数字排序。)
控制输出内容
-a, –arguments 显示命令行参数。 如果交换了进程的命令行,则该进程将显示在括号中。选项-a隐式禁用进程的压缩,但不禁用线程。
-c, –compact 禁用相同子树的压缩。 默认情况下,尽可能压缩子树。
-h, –highlight-all, -Hpid, –highlight-pid pid 突出显示当前进程及其祖先。 如果终端不支持突出显示,或者当前进程或其任何祖先都未显示在子树中,则无操作。
-H 像-h一样,但突出显示指定的进程。 与-h不同,如果突出显示不可用,则在使用-H时,pstree会失败。
-g, –show-pgids 显示PGID。 进程组ID在每个进程名称后的括号中以十进制数显示。-g隐式禁用压缩。 如果同时显示PID和PGID,则首先显示PID。
-l, –long 显示长行。 默认情况下,行被截断为COLUMNS环境变量或显示宽度。 如果这两种方法都不起作用,则使用默认的132列。
-N ns, –ns-sortns 显示指定类型的每个命名空间的单个树。 可用的ns类型有:ipc,mnt,net,pid,user,uts。 普通用户无权访问其他用户的进程信息,因此输出将受到限制。
-p, –sho[……]
「pstree.x11(1)」-
显示树形结构的进程列表
命令描述
参考pstree(1)手册。
参考文献
man 1 pstree, Version 23.1-1+b1
更新日志
09/26/2018 创建文章[……]
「quota」
quotacheck
quotaon
quotaoff
quota
quotasync
convertquota
edquota
quot
quota_nld
quotastats
repquota
rpc.rquotad
setquota
warnquota
xqmstats[……]
「edquota(8)」-
编辑用户配额
命令语法格式
edquota [ -p protoname ] [ -u | -g | -P ] [ -rm ] [ -F format-name ] [ -f filesystem ] username | groupname | projectname…
edquota [ -u | -g | -P ] [ -F format-name ] [ -f filesystem ] -t
edquota [ -u | -g | -P ] [ -F format-name ] [ -f filesystem ] -T username | groupname | projectname…
命令描述
命令edquota是一个配额编辑器。可以在命令行上指定一个或多个用户/组/项目。如果在用户/组/项目名称的位置给出了一个数字,则将其视为UID/GID/项目ID。对于每个用户/组/项目,将使用该用户/组/项目的当前磁盘配额的ASCII表示创建临时文件,然后在该文件上调用编辑器。然后可以修改配额,添加新配额等等。将配额设置为零表示不应施加配额。
报告Block的使用和限制,并将其解释为默认的KB(1024字节)块的倍数。符号K,M,G,T可以附加到数值以表示KB,MB,GB,TB。
按字面意思解释Inode使用和限制。符号k,m,g,t可以附加到数值以表示10^3,10^6,10^9,10^12个Inode的倍数。
在每个文件系统指定的宽限期内,允许用户超过其软限制。宽限期到期后,软限制将作为硬限制强制执行。
文件中的当前使用信息仅供参考,不能修改;只能改变硬限制和软限制。
离开编辑器后,edquota会读取临时文件,并修改二进制配额文件,以反映所做的更改。
除非环境变量EDITOR或VISUAL另有指定编辑器,否则调用的编辑器是editor(1)命令。
只有超级用户才可以编辑配额。
命令支持的选项及含义
-r, –remote 编辑非本地配额,使用远程服务器上的rpc.rquotad来设置配额。仅当配置工具编译时启用了”对通过RPC设置配额“的支持时,此选项才可用。选项-n是等效的,并且是为了向后兼容而维护的。
-m, –no-mixed-pathnames 目前,NFSv4挂载点的路径名”在路径中没有前导斜杠的情况下“发送。rpc.rquotad使用它来识别NFSv4挂载,并正确地将NFS文件系统的伪序列预先添加到路径中。
如果指定此选项,edquota将始终发送带有前导斜杠的路径。 这可能有助于遗留原因,但请注意,如果您使用新的rpc.rquotad,RPC上的配额将停止工作。
-u, –user 编辑用户[……]
「quota(1)」-
显示硬盘的使用情况和限制
命令语法格式
quota [ -F format-name ] [ -guqvswi ] [ -l | [ -QAm ]]
quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -u user…
quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -g group…
quota [ -F format-name ] [ -qvswi ] [ -l | [ -QAm ]] -P project…
quota [ -F format-name ] [ -qvswugQm ] -f filesystem…
命令描述
命令quota显示用户的磁盘使用情况和限制。 默认情况下,仅打印用户配额。 默认情况下,空间使用和限制以KB显示(并且由于历史原因而被命名为“Block”)。
命令quota报告/etc/mtab中列出的所有文件系统的配额。对于NFS挂载的文件系统,将执行对服务器计算机上的rpc.rquotad的调用以获取信息。
命令支持的选项及含义
-F, –format=format-name 显示指定格式的配额(即不执行格式自动检测)。可能的format-name为:
vfsold,具有16位UID/GID的原始配额格式,
vfsv0,具有32位UID/GID的配额格式,64位空间使用情况,32位inode使用和限制,
vfsv1,具有64位配额的配额格式限制和使用,
rpc,(NFS上的配额),
xfs(XFS文件系统上的配额)
-g, –group 打印用户所属组的组配额。 可选的组参数将显示限制为指定的组。
-u, –user 显示用户的配额。默认值。
-P, –project 打印指定项目的配额。
-v, –verbose 将在没有分配存储的文件系统上显示配额。
-s, –human-readable 选项将使quota(1)尝试选择显示限制、已用空间和已用Inode的单位。
–always-resolve 即使名称仅由数字组成,也始终尝试将用户/组名称转换为uid/gid。
-p, –raw-grace 当用户处于宽限期时,报告自他的宽限时间用完(或已用完)以来的时间以秒为单位。 没有宽限时间生效时,字段为“0”。 在通过脚本解析输出时,这尤其有用。
-i, –no-autofs 忽略自动挂载程序挂载的挂载点。
-l, –local-only 仅在本地文件系统上报告配额(即忽略NFS挂载[……]
「quotacheck(8)」-
扫描文件系统以查找磁盘使用情况,创建,检查,修复配额文件
命令语法格式
quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem
命令描述
命令quotacheck检查每个文件系统,创建当前磁盘使用情况的表,并将此表与在文件系统中的磁盘配额文件中记录的表进行比较(如果指定了选项-c,则省略此步骤)。如果检测到任何不一致,则更新配额文件和不正确配额的当前系统副本(后者仅在检查了未建议的活动文件系统时才会发生)。默认情况下,仅检查用户配额。命令quotacheck希望它检查的每个文件系统中都有名为[a]quota.user和[a]quota.group的配额文件位于相关文件系统的根目录下。如果文件不存在,quotacheck将创建它。
如果配额文件已损坏,quotacheck会尝试保存尽可能多的数据。抢救数据可能需要用户干预。没有其他选项,quotacheck将在这种情况下退出。在交互模式下(选项-i),系统会要求用户提供建议。也可以从命令行提供建议(参见选项-n),这在自动(即从脚本中)运行quotacheck并且失败是不可接受的时,非常有用。
每次系统引导,并挂载无效的文件系统时,都应运行quotacheck。这很可能发生在系统崩溃之后。
强烈建议在文件系统关闭配额时运行quotacheck。否则,可能会导致配额文件中的数据损坏或丢失。在实时文件系统上运行quotacheck也是不明智的,因为实际使用情况可能会在扫描期间发生变化。为了防止这种情况,quotacheck尝试在开始扫描之前以只读方式重新挂载文件系统。扫描完成后,以读写重新挂载文件系统。您可以使用-m选项禁用它。您还可以使用quotacheck忽略”使用选项-M以只读方式重新挂载文件系统“的失败。
命令支持的选项及含义
-b, –backup 强制quotacheck在写入新数据之前备份配额文件。
-d, –debug 启用调试模式。 它将产生大量可用于调试程序的信息。 输出非常详细,扫描速度很慢。
-u, –user 仅检查/etc/mtab中列出的用户配额或指定的文件系统上的用户配额。 这是默认操作。
-g, –group 仅检查/etc/mtab中列出的组配额或指定的文件系统上的组配额。
-c, –create-files 不要读取现有的配额文件。 只需执行一次新扫描并将其保存到磁盘即可。 quotacheck还会在找不到旧配额文件时跳过扫描。
-f, –force 强制在启用了配额的文件系统上检查和写入新配额文件。 建议不要这样做,因为创建的配额文件可能不同步。
-M, –try-remount 如[……]
「quotaoff(8)」-
关闭文件系统的限额
命令描述
参考quotaon(8)手册。
参考文献
man 8 quotaon, Version 4.04-2+b1
更新日志
12/02/2018 创建文章[……]