1;显示当前系统上root, fedora或user1用户的默认shell。
# grep "^\(root\|fedora\|user1\)" /etc/passwd # grep -E "^(root|fedora|user1)" /etc/passwd # egrep "^(root|fedora|user1)" /etc/passwd
2;找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
# grep -E -o "[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
3;使用echo命令输出一个绝对路径,使用grep取出其基名;
# echo /etc/rc.d/init.d/functions | grep -E -o "[^/]+/?$"
-
扩展:取出其路径名
# echo /etc/rc.d/init.d/functions | grep -E -o "^/.+/"
4;找出ifconfig命令结果中的1-255之间数字。
# ifconfig | grep -E -o "\b([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b" | sort -n
5;挑战题:写一个模式,能匹配合理的IP地址。
# grep -E -o "((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])"
6;挑战题:写一个模式,能匹配出所有的邮件地址。
# grep -E -o "([a-z]|[A-Z]|[0-9])+\@([a-z]|[A-Z]|[0-9])+\.([a-z]|[A-Z]){2,3}" # grep -E -o "[[:alnum:]]+\@[[:alnum:]]+\.[[:alpha:]]{2,3}"
7;查找/var/目录下属主为root, 且属组为mail 的所有文件或目录。
# find /var -user root -a -group mail -ls
8;查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录。
# find / \( -nouser -o -nogroup \) -a -atime -3 -ls
9;查找/etc目录下所有用户都有写权限的文件。
# find /etc/ -perm -222 -ls
10;查找/etc目录下大于1M,且类型为普通文件的所有文件。
# find /etc/ -size +1M -type f -ls
11;查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件。
# find /etc/init.d/ -perm -111 -a -perm /002
12;查找/usr目录下不属于root, bin或hadoop的文件。
# find /usr/ ! \( -user root -o -user bin -o -user hadoop \) -ls
13;查找/etc/目录下至少有一类用户没有写权限的文件。
# find /etc/ ! -perm -222 -ls
14;查找/etc/目录下最近一周其内容被修改过,且不属于root或hadoop的文件。
# find /etc/ -ctime -7 -a ! \( -user root -o -user hadoop \) -a -type f -ls
原创文章,作者:c_c,如若转载,请注明出处:http://www.178linux.com/66694
评论列表(1条)
find和grep作为基础命令,希望能熟练、灵活的使用~~~加油!!