参考:https://zhuanlan.zhihu.com/p/65515740
grep命令简介
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep家族
grep家族包括grep、egrep和fgrep:egrep是grep的扩展,支持更多的re元字符;fgrep就是fixed grep或fast grep。
工作机制简要介绍
grep在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep常用命令整理
1、从单个文件中查找指定的字符串
grep "this" demo_file
2、从多个文件中查找指定的字符串
grep "this" demo_*
3、查询且忽略大小写
grep -i
4、在文件中匹配正则表达式
基础正则表达式:
‘^‘: 锚定行首
‘$’: 锚定行尾
‘.‘: 匹配任一一个字符
‘*’: 匹配零个或多个先前字符
‘?‘:匹配其前面的字符0次或者1次;
‘+’:匹配其前面的字符1次或者多次;
‘{m}‘:匹配其前面的字符m次(\为转义字符)
‘{m,n}’:匹配其前面的字符至少m次,至多n次
():将一个或多个字符捆绑在一起,当做一个整体进行处理,反向引用照常使用。
‘|’:或(注:‘C|cat’为C与cat,‘(C|c)at才是Cat与cat’)
‘[]‘: 匹配一个指定范围内的字符 | ‘[^]’匹配指定范围外的任意单个字符
‘<‘或‘\b’:锚定词首,‘>’或‘\b’:锚定词尾(可用<PATTERN>:匹配完整单词)
‘()’:将多个字符当做一个整体进行处理
后向引用:引用前面的分组括号中的模式所匹配到的字符
分组括号中的模式匹配到的内容或被正则表达式引擎自动记录于内部的变量中:
\1:模式从左侧起,第一个左括号及与之匹配的右括号之间模式匹配到的内容
\2:模式从左侧起,第二个左括号及与之匹配的右括号之间模式匹配到的内容…
5、查找全匹配,不包括子字符串
grep -w
6、用grep -A,-B,-C 来查看after/before/around 行
-A, 显示匹配后N行
-B, 显示匹配前N行
-C, 显示匹配前后N行
7、用GREP_OPTIONS来让查找的项醒目
export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
8、搜索所有的文件及子目录
grep -r
9、过滤匹配项
grep -v
10、计算匹配的数量
grep -c
11、显示匹配的文件名
grep -l
12、只显示匹配的字符串
grep -o
13、显示行数
grep -n
14、显示匹配的字符字节位置
grep -b
15、ps+grep时不抓到自己的进程
ps -ef | grep ab[c]
16、通常grep解决行内匹配问题,跨行建议awk/sed/perl
17、使用扩展的正则表达式
grep -E
linux系统ps命令的所有参数功能:
-e:显示所有进程。
-f:全格式。
-h:不显示标题。
-l:长格式。
-w:宽输出。
-a:显示终端上的所有进程,包括其他用户的进程。
-r:只显示正在运行的进程。
-x:显示没有控制终端的进程。
-help:显示帮助信息。
-version:显示该命令的版本信息。
管道命令
一. 管道命令
管道命令操作符是:”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入.
管理命令的输出说明:
【指令1】正确输出,作为【指令2】的输入 然后【指令2】的输出作为【指令3】的输入 ,【指令3】输出就会直接显示在屏幕上面了。
通过管道之后【指令1】和【指令2】的正确输出不显示在屏幕上面
【提醒注意】:
-
管道命令只处理前一个命令正确输出,不处理错误输出;
-
管道命令右边命令,必须能够接收标准输入流命令才行;
ps -ef | grep
linux控制台下输入ps -ef | grep 关键字 可以查看启动信息中包含关键字的进程。
ps的意思是process status,即进程状态,可以将进程的信息显示出来;grep是查找命令,全称是global regular expression print,即全局正则表达式打印,使用正则表达式搜索文本,并把匹配的行打印出来,使用权限为所有用户,中间的|是管道命令,表示ps命令与grep同时执行。
UID:程序被该 UID 所拥有
PID:程序的 ID
PPID:上级父程序的ID
C :CPU使用的资源百分比
STIME:系统启动时间
TTY :登入者的终端机位置
TIME:使用掉的CPU时间
CMD:所下达的指令