grep命令作用
grep命令用于查找文件里符合条件的字符串
grep命令的用法
grep root passwd #过滤root关键字
grep ^root passwd #以root开头
grep root$ passwd #以root结尾
grep -i root passwd #忽略大小写
grep -E=egrep #扩展正则表达式
grep -E "\<root" passwd #root字符之前不能有字符
grep -E "root\>" passwd #root字符之后不能有字符
grep -数字 #显示过滤行以及上面几行和下面几行
grep -n #显示匹配的行所在行号
grep -A #显示过滤行以及下面几行
grep -B #显示过滤行以及上面几行
grep -v #反向过滤
grep字符数量匹配规则
^lyueyue #以lyueyue开头
lyueyue$ #以lyueyue结尾
l.....e #l开头y结尾中间5个任意字符
......e #e结尾前面6个任意字符
* #字符出现0-任意次
? #0-1次
+ #1到任意次
{n} #n次
{m,n} #m-n次
{0,n} #0-n次
{,n} #0-n次
{m,} #最少m次
(liu){2} #liu字符串出现2次
注意:grep -E主要是用来支持扩展正则表达式,比如 | 和 & 这些符号,用于grep多条件查询,并非是使用标准正则表达式。在扩展正则表达式中,则在BRE的基础上增加了“(”、“)”、“{”、“}”、“?”和“+”、“|”等元字符。只有在用反斜杠进行转义的情况下,字符“(”、“)”、“ { ” 、“ }”才会在扩展正则表达式中被当作元字符处理,而在基本正则表达式中,任何元字符前面加上反斜杠反而会使其被当作普通字符来处理。
命令展示:
第一组
第二组
第三组
第四组
*:表示n出现0-任意次
?:表示n出现0-1次
+:表示n出现1-任意次
第五组
第六组
-v:显示除了匹配行之外的其他行
grep命令练习
请显示系统中能被su命令切换的用户名称
实验:
(1)我们查看可以使用的shell,发现有sh、bash可以使用(bash是sh的增强版本),使用useradd -s 指定使用的shell新建用户yyy,切换用户yyy后发现实际使用的shell是sh,因此我们可以知道在/etc/shells文件中的所有shell都是可以被切换的,我们需要统计所有shell中的用户。
(2)tcsh、csh同样也是shell