1、显示当前系统上root、fedora或user1用户的默认shell;
cat /etc/passwd | cut -d: -f1,7 | grep -e "root" -e "fedora" -e "user1" root:/bin/bash user1:/bin/bash fedora:/bin/nologin
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
cat /etc/rc.d/init.d/functions | grep -E -o "[[:alpha:]]\+\(\)" cat /etc/rc.d/init.d/functions | egrep -o "[[:alpha:]]+\(\)" -o:只显示匹配到的内容;
3、使用echo命令输出一个绝对路径,使用grep取出其基名;
扩展:取出其路径名
grep方式: echo '/etc/rc.d/init.d/functions' | grep -o "[^/]\+/\?" echo '/etc/rc.d/init.d/functions' | grep -o "^.*/" egrep方式: echo '/etc/rc.d/init.d/functions' | egrep -o '[^/]+\?' echo '/etc/rc.d/init.d/functions' | egrep -o ".*/" 注:\?匹配0次或1次,可有可无;
4、找出ifconfig命令结果中的1-255之间数字;
ifconfig | grep -E "\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9]{2}\>|\<[2][0-5]{2}\>" 每个数的词首词尾必须锚定\< \>
5、挑战题:写一个模式,能匹配合理的IP地址(痛彻心扉);
echo -e "192.168.1.3\a.b.c.d\192.168.3.26\192.68.3.2a" | egrep --color=auto -o "(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9]{2}\>|\<[2][0-5]{2}\>)\.([1-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-5]{2})\.([1-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-5]{2})\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9]{2}\>|\<[2][0-5]{2}\>)"
头尾锚定中间两组数字没有进行锚定,
6、挑战题:写一个模式,能匹配出所有的邮件地址(体无完肤);
echo "w32_a+@163.com\s_aaa3A@a.Bss\1333@qq.com" | egrep -o "[[:alnum:]](([-._]?[[:alnum:]]+)*)@[[:alnum:]](([-._]?[[:alnum:]]+)*)\.([[:alnum:]]{2,})"
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
find /var -user root -group mail -ls
-user: 属主; -group:属组; -ls:查看查找到文件和目录的属性信息-ls:查看查找到的文件和目录的属性信息
8、查找当前系统上没有属主或属组的文件;进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
没有属主或属组的文件:
find / -type f \( -nouser -o -nogroup \) -ls
且最近3天内曾被访问过的文件或目录:
find / \( -nouser -o -nogroup \) -atime -3 -ls
-3:三天以内;
+3:三天以前;
3:3天但不超过4天.
9、查找/etc目录下所有用户都有写权限的文件;
find /etc -perm -222
-222:每一类对象都必须同时拥有为其指定的权限标准;
+222:任何一类对象的权限中,只要能有一位匹配即可;
222:精确权限匹配;
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
find /etc -size +1M -type f -exec ls -lh {} \;
+1M指大于1M;
1M:小于等于1M大于0M;
-1M:小于等于0M
11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;
find /etc/init.d/ -perm +111 -perm -002 -ls
12、查找/usr目录下不属于root、bin或hadoop的文件;
find /usr -not (-user root -o -user bin -o -user hadoop) -ls find /usr -not -user root -not -user bin -not -user hadoop -ls
13、查找/etc/目录下至少有一类用户没有写权限的文件;
find /etc -not -perm -222 -ls
-222:每一类对象都必须同时拥有为写权限;-not,不是 每一类对象都必须拥有写权限;
14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;
find /etc -mtime -7 -not ( -user root -o -user hadoop ) -ls find /etc -mtime -7 -not -user root -not -user hadoop -ls