本周作业内容:
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}" 29 29 88 19 2 16 8 2 55 19 2 16 8 2 255 255 255 255 6 8 20 29 29 88 64 15 1 38 91 11 78 8 1 46 61 15 4 4 12 34 4 9 1 1 12 7 1 255 6 1 12 8 65 53 6 1 [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.55 192.168.2.255 255.255.255.0 127.0.0.1 255.0.0.0
6、挑战题:写一个模式,能匹配出所有的邮件地址;
答:grep '[[:alnum:]]\+@[[:alnum:]]\+\.[[:alnum:]]\+$'
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
答:
[root@localhost ~]# find /var -user root -group mail -ls 131378 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 directory find: `/proc/13265/task/13265/fd/5': No such file or directory find: `/proc/13265/task/13265/fdinfo/5': No such file or directory find: `/proc/13265/task/13265/fdinfo/5': No such file or directory find: `/proc/13265/fd/5': No such file or directory find: `/proc/13265/fd/5': No such file or directory find: `/proc/13265/fdinfo/5': No such file or directory find: `/proc/13265/fdinfo/5': No such file or directory [root@localhost ~]#
2,
[root@localhost ~]# find / -nouser -o -nogroup -a -atime 3 find: `/proc/13263/task/13263/fd/5': No such file or directory find: `/proc/13263/task/13263/fd/5': No such file or directory find: `/proc/13263/task/13263/fdinfo/5': No such file or directory find: `/proc/13263/task/13263/fdinfo/5': No such file or directory find: `/proc/13263/fd/5': No such file or directory find: `/proc/13263/fd/5': No such file or directory find: `/proc/13263/fdinfo/5': No such file or directory find: `/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