linux常用命令
项目名称
文件名称
linux常用命令
编制部门
后台运维
作者
丁正凯
当前版本
201807171125
受众范围
后台运维
文档控制
修改记录
日期
版本
修改类型
修改主要内容
作者
20170512
201705121614
C
模版调整
丁正凯
◆修改类型:A增加、B删除、C修改
审阅人
姓名
部门
职位
审阅签字
审阅时间
存档
存档时间
存放方式
存放地点、位置
备注
◆存放方式:A电子、B纸质
目录
1 pipe 1
2 netstat 1
3 ss 2
4 curl 2
5 wget 5
6 lftp 6
7 rsync 7
8 find 8
9 grep 12
10 tree 13
11 ps 14
12 pstree 15
pipe 管道命令操作符是: "|", 它仅能处理经由前面一个指令传出的正确输出信息, 也就是 standard output 的信息, 将其递给下一个命令, 作为标准的输入 standard input. 但是对于 stdandard error 信息没有直接处理能力.
https://www.cnblogs.com/blackay03/p/7838317.html
大部分命令的帮助文档都可以通过 命令名 -h/--help 或 man 命令名 查看, 推荐优先阅读其英文 man 手册, 可以结合其它中文资料. man.linuxde.net 网站仅供一般性参考, 翻译不太好.
打印网络状态信息
netstat \[OPTION\]
netstat \-a \# 列出所有连接信息
netstat \-at \# 列出所有tcp协议连接信息
netstat \-au \# 列出所有udp协议连接信息
netstat \-l \# 只显示监听端口信息
netstat \-lt \# 只列出所有tcp协议监听端口信息
netstat \-lu \# 只列出所有udp协议监听端口信息
netstat \-n \# 以数字形式显示连接中的地址信息
netstat \-anp \# 以数字形式显示连接中的地址信息, 显示进程号和程序名
netstat \-anp | grep "java" | wc \-l \#查看java进程数
打印网络状态信息, 和netstat类似, 但更好用
ss \[OPTION\]
\#\-a 显示所有 \-t 显示tcp协议 \-l 显示监听状态
ss \-t \-a
ss \-t \-a \-l
ss \-t \-a \-l |grep 5672
ss \-antup
命令行文件传输工具, 支持 http,https,ftp 等众多协议, 支持断点续传
如果请求比较复杂不知道有哪些参数和Header, 可以打开浏览器的开发者工具后访问页面, 切换到Network栏, 找到并选择请求行, 点击右键Copy--Copy as cURL, 粘贴出来稍加修改, 如图
curl [OPTION]
\# 调用服务 \-X 指定http方法 \-H http头 \-\-data\-binary/\-d 参数
curl \-XPOST \-H 'Content\-Type: text/json; charset=UTF\-8' \-\-data\-binary '\{"msg":\{"usercode":"guest","userpw":"111111","spaceid":"bjfeidao\_353","logintypenew":"usercode"\},"spaceid":"bjfeidao\_353","type":"loginservice\.userlogin"\}' 'http://192\.168\.40\.181/sendmessage'
\# 由于header中有gzip压缩, 使用 \-\-compressed 解压
curl \-XGET 'http://61\.163\.79\.140:15100/nongfu\_t/getip' \-H 'Pragma: no\-cache' \-H 'Accept\-Encoding: gzip, deflate' \-H 'Content\-Type: text/json; charset=UTF\-8' \-H 'Cache\-Control: no\-cache' \-H 'X\-Requested\-With: XMLHttpRequest' \-H 'Connection: keep\-alive' \-H 'Referer: http://172\.16\.15\.43:8000/pages/test\.html' \-\-data\-binary '\{\}' \-\-compressed
curl \-XGET 'http://61\.163\.79\.140:15100/nongfu\_t/getip' \-H 'Pragma: no\-cache' \-H 'Content\-Type: text/json; charset=UTF\-8' \-H 'Cache\-Control: no\-cache' \-H 'X\-Requested\-With: XMLHttpRequest' \-H 'Connection: keep\-alive' \-H 'Referer: http://172\.16\.15\.43:8000/pages/test\.html' \-\-data\-binary '\{\}'
\# 发短信
curl \-v \-X POST \-H "Content\-Type:application/x\-www\-form\-urlencoded;charset=UTF\-8" \-d "account=username001&password=password001&mobile=15038089285&content=您的验证码是:abcd。请不要把验证码泄露给其他人并尽快完成操作。" http://106\.ihuyi\.cn/webservice/sms\.php?method=Submit
\# 调用文件服务下载 \-O 保存的文件名和服务器上的相同
curl \-v 'http://192\.168\.40\.181/fsweb/getfile?productid=bjfeidao\_353&id=451ca78b307346c1a627401f5c6aac25\.jpeg' \-H 'Accept\-Encoding: gzip, deflate' \-H 'Accept: image/webp,image/apng,image/\*,\*/\*;q=0\.8' \-\-compressed \-O
curl \-v 'http://192\.168\.40\.181/fsweb/getfile?productid=bjfeidao\_353&id=451ca78b307346c1a627401f5c6aac25\.jpeg' \-H 'Accept: image/webp,image/apng,image/\*,\*/\*;q=0\.8' \-O
\# 调用文件服务上传base64格式
curl \-v \-X POST \-H 'Content\-Type: text/json; charset=utf\-8' \-H 'X\-Requested\-With: XMLHttpRequest' \-d '\{"file\_string":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAM1BMVEUAAAAAYK8AYa8AYK8AYa8AYa8AYq8AYa8AYK8AYa8AYK8AYa8AX68AYK8AYa8AYrD////iTE1\+AAAAD3RSTlMAYMAg0PCA4BCgQJBwMLCPnbs3AAAAAWJLR0QQlbINLAAAAAlwSFlzAAAAYAAAAGAA8GtCzwAAAAd0SU1FB\+EFEhIHN8tiNjUAAABxSURBVBjTbY9ZEsAgCEMBQezK/W/biN2m0/y9GCIQQSwBCdNQ0TilJdlOkurWHR3xRjTBxTzQ52zqL0zo05ZdnlGKwGDjRWRUwaht8XXe7DaKrtdAGs4V6YuDRPZ7sSxlkxfjW9J3QPvq/rCVv\+M\+5x\+Chwj6tH3bvQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0yOFQxMzozMzozNSswODowMFuyIKcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTctMDUtMThUMTg6MDc6NTUrMDg6MDBefiDLAAAAAElFTkSuQmCC"\}' http://192\.168\.40\.181/fsweb/upload?productid=boai
curl \-v \-X POST \-H 'Content\-Type: text/json; charset=utf\-8' \-H 'X\-Requested\-With: XMLHttpRequest' \-d '\{"file\_string":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAM1BMVEUAAAAAYK8AYa8AYK8AYa8AYa8AYq8AYa8AYK8AYa8AYK8AYa8AX68AYK8AYa8AYrD////iTE1\+AAAAD3RSTlMAYMAg0PCA4BCgQJBwMLCPnbs3AAAAAWJLR0QQlbINLAAAAAlwSFlzAAAAYAAAAGAA8GtCzwAAAAd0SU1FB\+EFEhIHN8tiNjUAAABxSURBVBjTbY9ZEsAgCEMBQezK/W/biN2m0/y9GCIQQSwBCdNQ0TilJdlOkurWHR3xRjTBxTzQ52zqL0zo05ZdnlGKwGDjRWRUwaht8XXe7DaKrtdAGs4V6YuDRPZ7sSxlkxfjW9J3QPvq/rCVv\+M\+5x\+Chwj6tH3bvQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0yOFQxMzozMzozNSswODowMFuyIKcAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTctMDUtMThUMTg6MDc6NTUrMDg6MDBefiDLAAAAAElFTkSuQmCC","productid":"boai"\}' http://192\.168\.40\.181/fsweb/upload
curl \-v \-XPOST 'http://192\.168\.40\.181/fsweb/upload' \-H 'Pragma: no\-cache' \-H 'Accept\-Encoding: gzip, deflate' \-H 'Content\-Type: text/json; charset=UTF\-8' \-H 'Accept: \*/\*' \-H 'Cache\-Control: no\-cache' \-H 'X\-Requested\-With: XMLHttpRequest' \-H 'Connection: keep\-alive' \-\-data\-binary '\{"productid":"bjfeidao\_353","file\_string":"data:image/png;base64,此处替换为文件base64值"\}' \-\-compressed
\# 其它示例
curl http://man\.linuxde\.net/text\.iso \-\-silent \-O \# \-\-silent不显示进度 \-O 下载保持原有文件名
curl http://man\.linuxde\.net/test\.iso \-o filename\.iso \-\-progress \# \-\-progress 显示进度条 \-o 将下载数据写入到指定名称的文件
\# \-C \- 断点续传
curl http://192\.168\.40\.181/public/apk/ggpt/com\.victop\.ggpt\.apk \-\-silent \-O \-C \-
\# \-\-\-\-\-\-\-\-\-\-\-\-ftp操作\-\-\-\-\-\-\-\-\-\-\-\-\# 列出目录 \-u 指定用户名密码
curl \-u anonymous:123456 ftp://192\.168\.40\.198\# 上传 \-T 指定文件
curl \-u username001:password001 \-T filename001 ftp://192\.168\.40\.198/文件流转/\# 下载具体文件
curl \-O ftp://192\.168\.40\.198/文件流转/gxd/gxd\.zip
1. <a id="_Toc1008660995">wget
下载工具, 支持断点续传
linux工具之curl与wget高级使用 http://lizhenliang\.blog\.51cto\.com/7876557/1650663
wget \[OPTION\]\.\.\. \[URL\]\.\.\.
wget \-c http://www\.linuxde\.net/testfile\.zip \# \-c 支持断点续传
wget \-\-limit\-rate=300k http://www\.linuxde\.net/testfile\.zip \# 限速下载
wget \-i filelist\.txt \# \-i 下载多个文件, filelist\.txt 写入文件下载来源
\# \-\-miror 镜像下载 \-p 下载html页面中引用的文件 \-\-convert\-links 下载后将html中引用文件的url转换成本地相对路径url \-P 本地保存目录
wget \-\-mirror \-p \-\-convert\-links \-P /tmp http://www\.daokes\.com
\# \-\-\-\-\-\-\-\-\-\-\-\-ftp操作\-\-\-\-\-\-\-\-\-\-\-\-\# \-r 递归下载目录 \-nH 保存时去掉目录名中的主机信息 \-P 保存到/tmp目录 \-\-restrict\-file\-names=nocontrol 处理下载中的中文乱码
wget \-r \-nH \-P /tmp \-\-restrict\-file\-names=nocontrol ftp://username001:123456@192\.168\.40\.198/文件流转/1\-研究院/css3\.0
\# 匿名下载
wget \-r \-nH \-P /tmp \-\-restrict\-file\-names=nocontrol ftp://192\.168\.40\.198/文件流转/1\-研究院/css3\.0
\# 下载到目录 /tmp, 只保留目标文件夹名, 去掉/文件流转/1\-研究院/ \-\-cut\-dirs=2 保存时不创建主机信息后2层目录结构
wget \-r \-nH \-P /tmp \-\-restrict\-file\-names=nocontrol \-\-cut\-dirs=2 ftp://username001:123456@192\.168\.40\.198/文件流转/1\-研究院/css3\.0
ftp命令行客户端
官网 [https://linux.overshoot.tv/wiki/networking/lftp](https://linux.overshoot.tv/wiki/networking/lftp" \o "https://linux.overshoot.tv/wiki/networking/lftp)
man [http://man.linuxde.net/lftp](http://man.linuxde.net/lftp" \o "http://man.linuxde.net/lftp)
参考
[https://www.cnblogs.com/leonyoung/archive/2012/04/17/2453804.html](https://www.cnblogs.com/leonyoung/archive/2012/04/17/2453804.html" \o "https://www.cnblogs.com/leonyoung/archive/2012/04/17/2453804.html)
lftp 出现 Fatal Error Certificate Verification Not Trusted
解决方法1: 编辑 /etc/lftp\.conf,在文本的最后,加入一行
set ssl:verify\-certificate false
解决方法2: 在 ~/\.lftprc 加入 set ssl:verify\-certificate false
解决方法3: 在进入lftp的命令提示后执行命令 set ssl:verify\-certificate false
上传文件 put
下载文件 get
下载目录\-将远程目录rdir下载到本地目录ldir: mirror rdir ldir
上传目录\-将本地目录ldir上传到远程目录rdir: mirror \-R ldir rdir
1. <a id="_Toc1084767768"></a>rsync
文件同步/备份工具
rsync \[OPTION\] src dst
\# src 后加/表示在 dst 不创建 src 目录, 只复制 src 目录下的内容到 dst 下
rsync \-avP /tmp/server\_py/ /data/server\_py
\# 使用 ssh 通道传输文件, 需要双方机器安装好 rsync
rsync \-avP \-e ssh root@192\.168\.40\.202:/data/feidao/\* /tmp\# 非标准ssh端口
rsync \-avP \-e 'ssh \-p 1234' root@192\.168\.40\.202:/data/feidao/\* /tmp
\# \-\-delete 删除那些DST中有而SRC没有的文件\(小心使用, 有时你可能需要在目标位置保留那些文件\)\# \-\-exclude 同步时排除指定名称的文件或目录
rsync \-avP \-e ssh \-\-delete \-\-exclude=node\_modules root@192\.168\.40\.202:/data/feidao/\* /tmp
\# \-\-delete\-before 传输之前删除 \-\-delete\-after 传输之后删除 \-\-del/\-\-delete\-during 传输过程中删除 \-\-delete\-delay 传输过程中查找删除的文件, 之后删除\# if none of the \-\-delete\-WHEN options are specified, rsync will choose the \-\-delete\-during algorithm when talking to rsync 3\.0\.0 or newer, and the \-\-delete\-before algorithm when talking to an older rsync
\# \-\-exclude\-from 排除包含在ex\.txt中的文件\(按行写, 支持通配符如\*\) \-\-include\-from 包含指定文件
rsync \-avP \-e ssh \-\-delete \-\-exclude\-from=ex\.txt root@192\.168\.40\.202:/data/feidao/\* /tmp
\# 同步时排除文件, 且 \-\-delete\-excluded 删除排除的文件
rsync \-avP \-e ssh \-\-delete\-excluded \-\-exclude=feidao\-common\* /tmp/server\_py/ root@192\.168\.40\.202:/tmp/server\_py
\# \-b 同步时备份原文件 \-\-backup\-dir 备份到指定位置, 建议使用绝对路径
now=\`date \+%Y%m%d%H%M%S\`
rsync \-avPb \-\-backup\-dir=/data/back/server\-py\-$now /tmp/server\_py/ /data/server\_py
\# 运维常用的更新服务器
now=\`date \+%Y%m%d%H%M%S\`\# 如果不用/, 可能不会删掉dst中 计划删除的文件\# 如果 用/, 可能 会删掉dst中不计划删除的文件
rsync \-avPb \-e ssh \-\-delete \-\-backup\-dir=/tmp/server\_py\-$now /tmp/server\_py/\* root@192\.168\.40\.202:/tmp/server\_py/
rsync \-avPb \-e ssh \-\-delete \-\-backup\-dir=/tmp/server\_py\-$now /tmp/server\_py/ root@192\.168\.40\.202:/tmp/server\_py/
rsync \-avPb \-e ssh \-\-delete \-\-backup\-dir=/tmp/server\_py\-$now /tmp/server\_py/lib/ root@192\.168\.40\.202:/tmp/server\_py/lib\# rsync \-avPb \-e ssh \-\-delete \-\-backup\-dir=server\_py\-$now /tmp/server\_py/ root@192\.168\.40\.202:/tmp/server\_py/ 相对路径, 多次同步时 会生成复杂的嵌套结构\# rsync \-avPb \-e ssh \-\-delete \-\-backup\-dir=server\_py\-$now /tmp/server\_py/\* root@192\.168\.40\.202:/tmp/server\_py/ 相对路径, 多次同步时不会生成复杂的嵌套结构
文件查找工具
https://www.cnblogs.com/peida/archive/2012/11/16/2773289.html
https://www.cnblogs.com/xqzt/p/5427173.html
http://blog.csdn.net/wirelessqa/article/details/11866987
find \[OPTION\] \[path\.\.\.\] \[expression\]
OPTION
\[\-H\] \[\-L\] \[\-P\] \[\-D debugopts\] \[\-Olevel\]
\-O 指定对查询表达式采用的优化级别, 有3个级别\. 1 基于名字匹配 2 基于名字匹配之后基于 \-type or \-xtype 等
path 路径, 相对或绝对
expression 表达式, 可以包含以下组成部分
OPTIONS 指定命令的选项, 如 \-regextype 设置使用哪种类型的正则解析引擎, \-maxdepth 设置递归搜索的目录深度
\-regextype 可选值 'findutils\-default', 'awk', 'egrep', 'ed', 'emacs', 'gnu\-awk', 'grep', 'posix\-awk', 'posix\-basic', 'posix\-egrep', 'posix\-extended', 'posix\-minimal\-basic', 'sed'\.
The default regexp syntax is Emacs \(basic regex plus a few extensions such as \\| for alternation\); there's an option to switch to extended regexps\.
find \-regex '\.\*\\\.\\\(jpg\\|png\\\)'
find \-regextype posix\-extended \-regex '\.\*\\\.\(jpg|png\)'
find \. \-type f \-regextype posix\-extended \! \-iregex "\.\*/\[a\-z\]\{2,\}\\\.log" \-exec mv \{\} back \\;
find \. \-path back \-prune \-type f \-regextype posix\-extended \! \-iregex "\.\*/\[a\-z\]\{2,\}\\\.log"
find \-regextype posix\-egrep \-regex '\./FeiDao\-netcore\.\*201806\[0\-9\]\[0\-3\]\.\*'
find \-regextype posix\-egrep \-regex '\./FeiDao\-netcore\.\*2018060\[0\-9\]\.\*' \-exec rm \{\} \\;
TESTS 查询条件, 如 \-name 指定搜索的文件名, \-type 指定文件类型
ACTIONS 针对查找结果执行的动作, 如 \-print 打印结果, \-exec 执行指定的命令
OPERATORS 操作符, 如 \! 表达式非, \-o 表达式或
一般初学者在不同的shell环境下使用时可能遇到最多的错误提示 'paths must precede expression', 把表达式加上引号''解决, 另外有时候如果没查到结果, 可以加上引号试试
如 find \. \-name \*\.c \-print 改为 find \. \-name '\*\.c' \-print 或 find \. \-name \\\*\.c \-print
\# 在 /tmp 目录下查找, 下载nginx代码做测试对象
cd /tmp
wget \-c http://nginx\.org/download/nginx\-1\.12\.2\.tar\.gz
tar \-zxf nginx\-1\.12\.2\.tar\.gz
find /tmp \-name nginx
find /tmp \-name nginx\.\*
find /tmp \! \-name 'nginx\.\*'
find /tmp \-name 'nginx\*'
find /tmp \-name \*\.c
\# \-iname 查找时忽略大小写
find /home \-iname "\*\.txt"
\# 当前目录及子目录下查找所有以\.txt和\.pdf结尾的文件
find \. \-name "\*\.txt" \-o \-name "\*\.pdf"
\# \-path 匹配文件路径
find /usr/ \-path "\*local\*"
\# \-regex 正则匹配 \-iregex 忽略大小写的正则
find \. \-regex "\.\*\\\(\\\.txt\\|\\\.pdf\\\)$"
\# 查找 \./soa 下形如 aaa\.log 的文件, need to specify \.\*/ in the beginning because find matches the whole path\.
find \./soa \-regextype sed \-regex '\.\*/\[a\-z\]\\\{3\\\}\\\.log'
\# 查找不是 \.c 结尾的文件并删除
find \./ \! \-regex "\.\*/\.\*\\\.c" \-exec rm \-rf \{\} \\;
\# \-maxdepth <目录层级>:设置最大目录层级;\-mindepth<目录层级>:设置最小目录层级;
find / \-maxdepth 3 \-name "docker"
\# 搜索最近七天内被访问过的所有文件 \-atime\(时间戳\) \-type 文件类型
find \. \-type f \-atime \-7
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(\-atime/天,\-amin/分钟):用户最近一次访问时间。
修改时间(\-mtime/天,\-mmin/分钟):文件数据最后一次修改时间。
变化时间(\-ctime/天,\-cmin/分钟):文件元数据(例如权限等)最后一次修改时间。
\# 搜索大于10KB的文件 \-size 根据文件大小搜索
find \. \-type f \-size \+10k
\# \-delete 删除匹配的结果
find \. \-type f \-name "\*\.txt" \-delete
\# \-exec \{\} 用于与 \-exec 选项结合使用来匹配所有文件
\# 把当前目录下所有root用户的文件更改属主为 usera
find \. \-type f \-user root \-exec chown usera \{\} \\;
\# 找出当前目录下所有的 \.txt 文件并删除
find \./ \-name "\*\.txt" \-ok rm \{\} \\;
\# 上例中, \-ok和\-exec行为一样, 不过它会给出提示, 是否执行相应的操作
\# 查找当前目录时 \-path \./src/emacs \-prune 跳过src/emacs子文件夹及其中的所有内容, 打印出找到的其它所有文件名
find \. \-path \./src/emacs \-prune \-o \-print
\# 查找当前目录或者子目录下名称匹配ngx\*的文件或目录, \-path \./nginx\-1\.12\.2/src \-prune 指定跳过\./nginx\-1\.12\.2/src目录
find \./ \-path \./nginx\-1\.12\.2/src \-prune \-o \-name 'ngx\*'
find \./ \-path \./nginx\-1\.12\.2/src \-prune \-o \-name 'ngx\*' \-print
\# 查找 \./nginx\-1\.12\.2 目录下所有以 ngx\* 命名的目录及文件 mv 到 /tmp/back 下, 针对多次 mv 的名字冲突, 使用 \-S 加后缀不覆盖之前的文件
find \./nginx\-1\.12\.2 \-path \./nginx\-1\.12\.2/src \-prune \-o \-name 'ngx\*' \-exec mv \-b \-S \_1 \{\} /tmp/back \\;
find \./nginx\-1\.12\.2 \-path \./nginx\-1\.12\.2/src \-prune \-o \-name 'ngx\*' \-print
使用正则表达式搜索文本, 并把匹配的行打印出来
grep \[OPTIONS\] PATTERN \[FILE\.\.\.\]
grep \[OPTIONS\] \[\-e PATTERN | \-f FILE\] \[FILE\.\.\.\]
OPTIONS\# 选择正则解析引擎
\-E, \-\-extended\-regexp 扩展正则
\-F, \-\-fixed\-strings, \-\-fixed\-regexp
\-G, \-\-basic\-regexp 基本正则
\-P, \-\-perl\-regexp Perl 兼容正则, 这个好像比 \-E 速度快些
\-r 递归目录
\-\-include/\-\-exclude/\-\-exclude\-from 搜索时包含或排除指定文件
\-v/\-\-invert\-match 反转匹配, 显示不匹配的数据
find nginx\-1\.12\.2|grep \-v stream
\# 标记匹配颜色 \-\-color=auto
grep "nginx" file\_name \-\-color=auto
\# 使用正则表达式 \-E
grep \-E "\[1\-9\]\+"
\# \-o 只输出文件中匹配到的部分 \-c 输出匹配到的行数
grep \-o \-E "\[a\-z\]\+\\\."
\# \-n 输出匹配字符串所在的行号
grep \-n \-o \-E "\[a\-z\]\+\\\."
\# \-w 匹配完整字符串
grep \-w "nginx"
其它示例
目标字符串是soa的一段日志
\[polymer\] 2017\-12\-28 19:13:29,161 \[FeidaoAkkaSystem\-exec\-dispatcher\-441\] \.\.\. \{ "key" : "p\_group\_id" , "value" : \{ "type" : "string" , "fieldLength" : 50 , "serverDateFlag" : 0 , "sele\.\.\.\(length=1234567890123\)\.msgId=a24b62a9\-2da2\-498d\-add1\-1fbbdfb46b22\.actionId=fb413ae0\-75fa\-4067\-8823\-16f79ac6f2a5\.耗时=197ms\.
需要匹配 "\(length=\.\.\.\.\.\.\)" 字样, 其中 "=" 后数字长度大于等于8
grep \-P \\\(length=\[0\-9\]\{8\\,\}\\\) a\.log
grep \-P \\\(length=\[0\-9\]\{8\}\\\) a\.log
grep \-P '\\\(length=\[0\-9\]\{8,\}\.\*\\\)' a\.log
grep \-P '\\\(length=\[0\-9\]\{8,\}\\\)' a\.log
显示目录结构
tree \[OPTION\] \[path\]
\# \-N 原样输出不可识别字符如中文 \-a 显示隐藏文件
tree \-Na /tmp
\# \-D 显示修改时间 \-d 只显示目录
tree \-ND
tree \-NDd
\# \-P 只显示匹配模式的文件 \-I 不显示匹配模式的文件
tree \-N \-P \*\.c
tree \-N \-I \*\.c
\# \-i 不以树形结构显示, \-f 显示文件完整路径
tree \-Nfi
tree \-apN
tree \-fapN \-L 2 /data/ tree \-fapugN \-L 2 /data/
1. <a id="_Toc1781747851"></a>ps
查看进程信息
\# 显示所有进程\# unix posix 兼容语法, 选项加 \-, 语法格式可以混用, 有个别选项会冲突
ps \-e
ps \-ef
ps \-eF
ps \-ely
\# BSD 语法, 选项无 \-
ps ax
ps alx
ps aux
\# 查看进程树
ps \-efjH
ps axjf
\# 显示线程信息
ps \-eLf
ps axms
输出结果
LWP 线程ID 别名 spid, tid
NLWP 进程中的线程个数 别名 thcount
1. <a id="_Toc732869936"></a>pstree
查看进程树信息
pstree \-achlnsp <PID>