本周作业内容:

1、显示当前系统上root、fedora或user1用户的默认shell;

 答:

[root@localhost ~]# cat /etc/passwd|egrep '^(root|fedora|user1)'root:x:0:0:root:/root:/bin/bash[root@localhost ~]#

2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

 答:

[root@localhost ~]# cat /etc/rc.d/init.d/functions |egrep "[a-z]+\(\)"fstab_decode_str() {checkpid() {__readlink() {__fgrep() {__kill_pids_term_kill_checkpids() {__kill_pids_term_kill() {__umount_loop() {__source_netdevs_fstab() {__source_netdevs_mtab() {__umount_loopback_loop() {        __find_mounts() {__pids_var_run() {__pids_pidof() {daemon() {killproc() {pidfileofproc() {pidofproc() {status() {echo_success() {echo_failure() {echo_passed() {echo_warning() {update_boot_stage() {success() {failure() {passed() {warning() {action() {action_silent() {strstr() {confirm() {get_numeric_dev() {is_ignored_file() {is_true() {is_false() {apply_sysctl() {key_is_random() {find_crypto_mount_point() {init_crypto() {[root@localhost ~]#

3、使用echo命令输出一个绝对路径,使用grep取出其基名;

    扩展:取出其路径名

 答:

[root@localhost ~]# echo /etc/passwd |grep  -o "[^/]*$"    passwd[root@localhost ~]# echo /etc/passwd |grep  -o "/.*/" /etc/[root@localhost ~]#

4、找出ifconfig命令结果中的1-255之间数字;

  答:

   

[root@localhost ~]# ifconfig | egrep -o "[1-9]{1,2}|2[0-5]{1,2}"292988192168255192168225525525525568202929886415138911178814661154412344911127125561128655361[root@localhost ~]#

5、挑战题:写一个模式,能匹配合理的IP地址;

  答:

[root@localhost ~]# ifconfig | egrep -o "(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>)\.(\<[0-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>)\.(\<[0-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>).(\<[0-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][5][0-5]\>)"192.168.2.55192.168.2.255255.255.255.0127.0.0.1255.0.0.0

6、挑战题:写一个模式,能匹配出所有的邮件地址;

  答:grep '[[:alnum:]]\+@[[:alnum:]]\+\.[[:alnum:]]\+$'

7、查找/var目录下属主为root,且属组为mail的所有文件或目录;

 答:

[root@localhost ~]#  find /var -user root -group mail -ls131378    4 drwxrwxr-x   2 root     mail         4096 Aug  8 19:06 /var/spool/mail[root@localhost ~]#

8、查找当前系统上没有属主或属组的文件;

  进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;

 答:1,

[root@localhost ~]# find / -nouser -o -nogroup find: `/proc/13265/task/13265/fd/5': No such file or directoryfind: `/proc/13265/task/13265/fd/5': No such file or directoryfind: `/proc/13265/task/13265/fdinfo/5': No such file or directoryfind: `/proc/13265/task/13265/fdinfo/5': No such file or directoryfind: `/proc/13265/fd/5': No such file or directoryfind: `/proc/13265/fd/5': No such file or directoryfind: `/proc/13265/fdinfo/5': No such file or directoryfind: `/proc/13265/fdinfo/5': No such file or directory[root@localhost ~]#

  2,

[root@localhost ~]# find /  -nouser -o -nogroup  -a -atime 3find: `/proc/13263/task/13263/fd/5': No such file or directoryfind: `/proc/13263/task/13263/fd/5': No such file or directoryfind: `/proc/13263/task/13263/fdinfo/5': No such file or directoryfind: `/proc/13263/task/13263/fdinfo/5': No such file or directoryfind: `/proc/13263/fd/5': No such file or directoryfind: `/proc/13263/fd/5': No such file or directoryfind: `/proc/13263/fdinfo/5': No such file or directoryfind: `/proc/13263/fdinfo/5': No such file or directory[root@localhost ~]#

9、查找/etc目录下所有用户都有写权限的文件;

 答: find /etc -perm -222 -ls

10、查找/etc目录下大于1M,且类型为普通文件的所有文件;

 答:find /etc -type f -size +1M -ls

11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;

  答:

 find /etc/init.d/ -type f -perm -102 -ls

12、查找/usr目录下不属于root、bin或hadoop的文件;

 答:

find /usr/ -type f !  \( -user  root -o -user bin -o -user hadoop \) -ls

13、查找/etc/目录下至少有一类用户没有写权限的文件;

 答:

find /etc/ ! -perm +222 -ls

14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;

 答:

 find /etc/ -type f -ctime -7  -a ! \( -user root -o -user hadoop \) -ls