grep 一般格式为:
grep [选项] 基本正则表达式 [文件] // "基本正则表达式"可以是字符串 ,
例如在ubuntu下 的"/etc"文件中查找包含"root"的文件:
grep "root" /etc/* //在grep 命令输入字符串参数时最好使用双引号,可以防止误解成shell命令,且可以查找多个单词组,
//默认缺省选项参数为查找的字符串大小写敏感,如果要不区分大小写的要使用“-i”选项(只适用于单字符)。
使用变量名代替字符串时也应该使用双引号,否则将没有返回值。例如:
grep的精确查找:
使用带选项匹配的“48”,但是会出现一些包含“48”但是不是精确匹配“48”的数据:
要精确匹配到“48”的内容,可以在字符串后面加入“\>”,例如:
grep使用或操作时要加上选项“-E”,例如:
grep查找目录操作命令:
ls -l | grep '^d' //查询目录列表中的目录 ,例如:
、
ls -l | grep '^[^d]' //查询一个目录中查询不包含目录的所有文件 ,例如:
查询其他用户和其他用户组成员有可执行权限的目录集合,例如:
ls -l | grep '^d.....x..x' //"."根据“rwx”权限的位置代表了相对应的权限,如果要查找对应的权限把“.”换成“rwx”就好了。
grep 与 ps合用查看系统上运行的进程,例如查看DNS服务器是否运行(通常称为“named”):
ps -aux | grep "named" //如果DNS由运行的话,将会有一个dns和grep的进程,但是下图显示的第一个则是grep的
使用shell命令都会自动产生一个对应的进程, 如上图可以屏蔽掉显示对应的进程,只要加上"grep -v "XXX" ",如上图第二条命令:
ps -aux | grep ''named'' | grep -v "grep"