find和grep命令练习
1、显示当前系统上root,fedora,或user1用户的默认shell;
-
~]# cat /etc/passwd | egrep "^(root|fedora|user)" | cut -d: -f7
-
/bin/bash
-
/bin/bash
-
/bin/bash
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
-
~]# cat /etc/rc.d/init.d/functions | grep "\<[[:alpha:]]+()"
-
checkpid() {
-
daemon() {
-
killproc() {
-
pidfileofproc() {
-
pidofproc() {
-
status() {
-
success() {
-
failure() {
-
passed() {
-
warning() {
-
action() {
-
strstr() {
3、使用echo命令输出一个绝对路径,使用grep取出其基名;扩展,取出其路径名;
-
~]# echo /etc/rc.d/init.d/functions | cut -d"/" -f5
-
functions
-
扩展:取出其路径名
-
~]# echo /etc/rc.d/init.d/functions |egrep -o ".*t.d/"
-
/etc/rc.d/init.d/
4找出ifconfig命令结果中的1-255之间数字;
-
~]# ifconfig | egrep -o "[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5]"
-
167
-
77
-
73
-
…
5、挑战题,写一个模式能匹配合理的IP地址;
-
~]# ifconfig | egrep -o '[1-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'
-
192.168.0.7
-
255.255.255.0
-
127.0.0.1
-
255.0.0.0
-
192.168.122.1
-
255.255.255.0
-
192.168.122.255
6挑战题:写一个模式,能匹配出所有的邮件地址;
-
~]# egrep "^[[:alnum:]]+@[[:alnum:]]+.[[:alnum:]]+$"
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
-
~]# find /var/ -user root -group mail -ls
-
2752708 4 drwxrwxr-x 2 root mail 4096 10月 17 12:44 /var/spool/mail
8、查找当前系统上没有属主或属组的文件;进一步查找 :查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
-
~]# find -nouser -o -nogroup -ls
进一步查找 :查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
-
~]# find -nouser -o -nogroup -a -atime 3 -ls
9、查找/etc目录下所有用户都有写权限的文件;
-
~]# find /etc/ -perm /222 -type f -ls
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
-
~]# find /etc/ -size +1M -type f |xargs ls -lh
11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;
-
~]# find /etc/init.d/ -perm /113 -type f -ls
12、查找/usr目录下不属于root、bin或hadoop的文件;
-
~]# find /usr/ -not -user root -a -not -user bin -a -not -user hadoop -ls
13、查找/etc/目录下至少有一类用户没有写权限的文件;
-
~]# find /etc/ -not -perm -111 -type f -ls
14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;
-
~]# find /etc/ -mtime -7 -not -user root -a -not -user hadoop
原创文章,作者:shiyekun,如若转载,请注明出处:http://www.178linux.com/53958