1、 显示当前系统上root、fedora或user1用户的默认shell;
命令:
cat /etc/passwd | grep -E “^(root|fedroa|user1)” | cut -d: -f1,7
2、 找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
grep -oE “\<[a-z]+\>()” /etc/init.d/functions
3、 使用echo命令输出一个绝对路径,使用grep取出其基名;
代码:
echo pwd
| grep -oE “[^/]+/?$” | cut -d/ -f1
注释:echo中使用“括起来的值会当做命令先运行,返回的值作为echo的参数。
扩展:取出其路径名
echo pwd
| grep -oE “^/./”
4、 找出ifconfig命令结果中的1-255之间数字;
ifconfig | grep –Eo “[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]”
5、 挑战题:写一个模式,能匹配合理的IP地址;
ifconfig | grep -Eo “(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])”
6、 挑战题:写一个模式,能匹配出所有的邮件地址;
cat /tmp/mail.txt | grep -E “[0-9,a-z]+@[0-9,a-z].[a-z]”
注释:正则表达式中匹配.要用转义字符.
7、 查找/var目录下属主为root,且属组为mail的所有文件或目录;
涉及知识点:
locate命令
用于查找文件,非实时查找,依赖于实现构建的索引,可以用updatedb来构建索引。
用法:locate KEYWORD
find命令
用法:find [option] PATH 条件 动作
条件:-name,-user,-GID,-type,-size,-perm等等
动作:-ls,-delete,-ok COMMAND(对查出的文件执行命令,交互式),-exec COMMAND(对查出的文件执行命令,非交互式)
命令:find /var -user root -group mail
8、 查找当前系统上没有属主或属组的文件;
find / -nouser -o –nogroup
进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
命令:find / ( -nouser -o -nogroup ) -a ( -atime -3 )
注释:注意()要进行转义,括号和命令中间要有空格
9、 查找/etc目录下所有用户都有写权限的文件;
命令:find /etc -perm -222
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
命令:find /etc -size +1M -type f
原创文章,作者:EUSCE,如若转载,请注明出处:http://www.178linux.com/70920
评论列表(1条)
很好的使用正则能帮助我们在工作中高效的工作~~加油~