本周作业内容:

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之间数字;

  答:

   第五周作业_Linux

[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