pathchk
检查文件中不可移植的部分
补充说明
pathchk命令 用来检查文件中不可移植的部分。
语法
pathchk(选项)(参数)
选项
-p:检查大多数的POSIX系统;
-P:检查空名字和“-”开头的文件;
--portability:检查所有的POSIX系统,等同于“-P-p”选项;
--help:显示帮助;
--wersion:显示版本号。
参数
- 文件:带路径信息的文件;
- 后缀:可选参数,指定要去除的文件后缀字符串。
perl
perl语言解释器
补充说明
perl命令 是perl语言解释器,负责解释执行perl语言程序。
语法
perl(选项)(参数)
选项
-w:输出有用的警告信息;
-U:允许不安全的操作;
-c:仅检查文件的语法;
-d:在调试下运行脚本程序。
参数
文件:要运行的perl脚本程序。
pfctl
PF防火墙的配置命令
补充说明
pfctl命令 是PF防火墙的配置命令,PF防火墙( 全称:Packet Filter )是UNIX LIKE系统上进行TCP/ip流量过滤和网络地址转换的软件系统。PF同样也能提供TCP/IP流量的整形和控制,并且提供带宽控制和数据包优先集控制。PF最早是由Daniel Hartmeier开发的,现在的开发和维护由Daniel和openBSD小组的其他成员负责。
PF防火墙的功能很多,本站只列举一些基本配置。
激活
要激活pf并且使它在启动时调用配置文件,编辑/etc/rc.conf文件,修改配置pf的一行:
pf=yes
重启操作系统让配置生效。
也可以通过pfctl程序启动和停止pf:
pfctl -e
pfctl -d
注意这仅仅是启动和关闭PF,实际它不会载入规则集,规则集要么在系统启动时载入,要在PF启动后通过命令单独载入。
配置
系统引导到在rc脚本文件运行PF时PF从/etc/pf.conf文件载入配置规则。注意当/etc/pf.conf文件是默认配置文件,在系统调用rc脚本文件时,它仅仅是作为文本文件由pfctl装入并解释和插入pf的。对于一些应用来说,其他的规则集可以在系统引导后由其他文件载入。对于一些设计的非常好的unix程序,PF提供了足够的灵活性。
pf.conf文件有7个部分:
- 宏:用户定义的变量,包括IP地址,接口名称等等。
- 表:一种用来保存IP地址列表的结构。
- 选项:控制PF如何工作的变量。
- 整形:重新处理数据包,进行正常化和碎片整理。
- 排队:提供带宽控制和数据包优先级控制。
- 转换:控制网络地址转换和数据包重定向。
- 过滤规则:在数据包通过接口时允许进行选择性的过滤和阻止。
除去宏和表,其他的段在配置文件中也应该按照这个顺序出现,尽管对于一些特定的应用并不是所有的段都是必须的。
空行会被忽略,以#开头的行被认为是注释。
控制
引导之后,PF可以通过pfctl程序进行操作,以下是一些例子:
pfctl -f /etc/pf.conf # 载入 pf.conf 文件
pfctl -nf /etc/pf.conf # 解析文件,但不载入
pfctl -Nf /etc/pf.conf # 只载入文件中的NAT规则
pfctl -Rf /etc/pf.conf # 只载入文件中的过滤规则
pfctl -sn # 显示当前的NAT规则
pfctl -sr # 显示当前的过滤规则
pfctl -ss # 显示当前的状态表
pfctl -si # 显示过滤状态和计数
pfctl -sa # 显示任何可显示的
完整的命令列表,请参阅pfctl的man手册页。
pgrep
根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID(PID)
补充说明
pgrep命令 以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
语法
pgrep(选项)(参数)
选项
-o:仅显示找到的最小(起始)进程号;
-n:仅显示找到的最大(结束)进程号;
-l:显示进程名称;
-P:指定父进程号;
-g:指定进程组;
-t:指定开启进程的终端;
-u:指定进程的有效用户ID。
参数
进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
实例
pgrep -lo httpd
4557 httpd
[root@localhost ~]# pgrep -ln httpd
4566 httpd
[root@localhost ~]# pgrep -l httpd
4557 httpd
4560 httpd
4561 httpd
4562 httpd
4563 httpd
4564 httpd
4565 httpd
4566 httpd
[root@localhost ~]# pgrep httpd 4557
4560
4561
4562
4563
4564
4565
4566
php
PHP语言的命令行接口
补充说明
php命令 是流行的Web开发语言PHP的命令行接口,可以使用PHP语言开发基于命令行的系统管理脚本程序。
语法
php(选项)(参数)
选项
-a:进入交互模式;
-c:指定“php.ini”的搜索路径。
参数
文件:要执行的php脚本。
pico
功能强大全屏幕的文本编辑器
补充说明
pico命令 是功能强大全屏幕的文本编辑器。pico的操作简单,提供了丰富的快捷键。常用的快捷键如下:
Ctrl+G:获得pico的帮助信息;
Ctrl+O:保存文件内容,如果是新文件,需要输入文件名;
Ctrl+R:在当前光标位置插入一个指定的文本文件内容;
Ctrl+Y:向前翻页;
Ctrl+V:向后翻页;
Ctrl+w:对文件进行搜索;
Ctrl+K:剪切当前文件行到粘贴缓冲区;
Ctrl+U:粘贴缓冲区中的内容到当前光标所在位置;
Ctrl+C:显示当前光标位置;
Ctrl+T:调用拼写检查功能,对文档进行拼写检查;
Ctrl+J:段落重排;
Ctrl+X:退出,当文件内容发生改变时,提供是否保存修改。
语法
pico(选项)(参数)
选项
-b:开启置换的功能;
-d:开启删除的功能;
-e:使用完整的文件名称;
-f:支持键盘上F1、F2...功能键;
-g:显示光标;
-h:在线帮助;
-j:开启切换的功能;
-k:预设pico在使用剪下命令时,会把光标所在的列的内容全部删除;
-m:开启鼠标支持的功能,您可用鼠标点选命令列表;
-n<间隔秒数>:设置多久检查一次新邮件;
-o<工作目录>:设置工作目录;
-q:忽略预设值;
-r<编辑页宽>:设置编辑文件的页宽;
-s<拼字检查器>:另外指定拼字检查器;
-t:启动工具模式;
-v:启动阅读模式,用户只能观看,无法编辑文件的内容;
-w:关闭自动换行,通过这个参数可以编辑内容很长的列;
-x:关闭页面下方的命令列表;
-z:让pico可被Ctrl+z中断,暂存在后台作业里;
+<列表编号>:执行pico指令进入编辑模式时,从指定的列数开始编辑。
参数
文件:指定要编辑的文件。
pidof
查找指定名称的进程的进程号ID号
补充说明
pidof命令 用于查找指定名称的进程的进程号id号。
语法
pidof(选项)(参数)
选项
-s:仅返回一个进程号;
-c:仅显示具有相同“root”目录的进程;
-x:显示由脚本开启的进程;
-o:指定不显示的进程ID。
参数
进程名称:指定要查找的进程名称。
实例
pidof nginx
13312 5371
pidof crond
1509
pidof init
1
pidstat
监控进程的系统资源占用情况
说明
pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况。 pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
语法
pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
选项
- u:默认的参数,显示各个进程的cpu使用统计
- r:显示各个进程的内存使用统计
- d:显示各个进程的IO使用情况
- w:显示每个进程的上下文切换情况
- t:显示到线程的统计信息
- p:指定进程号
- T { TASK | CHILD | ALL } 这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。 注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
- V:版本号
- h:在一行上显示了所有活动,这样其他程序可以容易解析。
- I:在SMP环境,表示任务的CPU使用率/内核数量
- l:显示命令名和所有参数
实例
查看所有进程的CPU使用情况
# pidstat -u -p ALL
11:04:06 AM UID PID %usr %system %guest %CPU CPU Command
11:04:06 AM 0 1 0.03 0.05 0.00 0.08 20 systemd
11:04:06 AM 0 2 0.00 0.00 0.00 0.00 28 kthreadd
11:04:06 AM 0 3 0.00 0.00 0.00 0.00 0 rcu_gp
11:04:06 AM 0 4 0.00 0.00 0.00 0.00 0 rcu_par_gp
11:04:06 AM 0 6 0.00 0.00 0.00 0.00 0 kworker/0:0H-kblockd
11:04:06 AM 0 9 0.00 0.00 0.00 0.00 38 mm_percpu_wq
11:04:06 AM 0 10 0.00 0.01 0.00 0.01 0 ksoftirqd/0
11:04:06 AM 0 11 0.00 0.23 0.00 0.23 15 rcu_sched
11:04:06 AM 0 12 0.00 0.00 0.00 0.00 0 migration/0
11:04:06 AM 0 14 0.00 0.00 0.00 0.00 0 cpuhp/0
11:04:06 AM 0 15 0.00 0.00 0.00 0.00 1 cpuhp/1
...
表头字段说明
pigz
可以用来解压缩文件,gzip的并行实现升级版
补充说明
pigz命令可以用来解压缩文件,最重要的是支持多线程并行处理,解压缩比gzip快。主页: http://zlib.net/pigz/
语法
pigz [ -cdfhikKlLmMnNqrRtz0..9,11 ] [ -b blocksize ] [ -p threads ] [ -S suffix ] [ name ... ]
unpigz [ -cfhikKlLmMnNqrRtz ] [ -b blocksize ] [ -p threads ] [ -S suffix ] [ name ... ]
参数
-0 to -9, -11 # Compression level (level 11, zopfli, is much slower)
--fast, --best # Compression levels 1 and 9 respectively
-b, --blocksize mmm # Set compression block size to mmmK (default 128K)
-c, --stdout # Write all processed output to stdout (won't delete)
-d, --decompress # Decompress the compressed input
-f, --force # Force overwrite, compress .gz, links, and to terminal
-F --first # Do iterations first, before block split for -11
-h, --help # Display a help screen and quit
-i, --independent # Compress blocks independently for damage recovery
-I, --iterations n # Number of iterations for -11 optimization
-J, --maxsplits n # Maximum number of split blocks for -11
-k, --keep # Do not delete original file after processing
-K, --zip # Compress to PKWare zip (.zip) single entry format
-l, --list # List the contents of the compressed input
-L, --license # Display the pigz license and quit
-m, --no-time # Do not store or restore mod time
-M, --time # Store or restore mod time
-n, --no-name # Do not store or restore file name or mod time
-N, --name # Store or restore file name and mod time
-O --oneblock # Do not split into smaller blocks for -11
-p, --processes n # Allow up to n compression threads (default is the number of online processors, or 8 if unknown)
-q, --quiet # Print no messages, even on error
-r, --recursive # Process the contents of all subdirectories
-R, --rsyncable # Input-determined block locations for rsync
-S, --suffix .sss # Use suffix .sss instead of .gz (for compression)
-t, --test # Test the integrity of the compressed input
-v, --verbose # Provide more verbose output
-V --version # Show the version of pigz
-Y --synchronous # Force output file write to permanent storage
-z, --zlib # Compress to zlib (.zz) instead of gzip format
-- # All arguments after "--" are treated as files
实例
可以结合tar使用, 压缩命令
ping
测试主机之间网络的连通性
补充说明
ping命令 用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法
ping(选项)(参数)
选项
-d:使用Socket的SO_DEBUG功能;
-c<完成次数>:设置完成要求回应的次数;
-f:极限检测;
-i<间隔秒数>:指定收发信息的间隔时间;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-n:只输出数值;
-p<范本样式>:设置填满数据包的范本样式;
-q:不显示指令执行过程,开头和结尾的相关信息除外;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。
-w<超时秒数>:无论之前发送或接受了多少包,只要超过此秒数,程序退出;
参数
目的主机:指定发送ICMP报文的目的主机。
实例
[root@AY1307311912260196fcZ ~]# ping www.jsdig.com
PING host.1.jsdig.com (100.42.212.8) 56(84) bytes of data.
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=1 ttl=50 time=177 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=2 ttl=50 time=178 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=3 ttl=50 time=174 ms
64 bytes from 100-42-212-8.static.webnx.com (100.42.212.8): icmp_seq=4 ttl=50 time=177 ms
...按Ctrl+C结束
--- host.1.jsdig.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 174.068/176.916/178.182/1.683 ms