本周作业内容:
1、显示当前系统上root、fedora或user1用户的默认shell;
|
1
2
3
4
5
6
7
|
[root@liu home]
root:
/bin/bash
user1:
/bin/bash
fedora:
/bin/bash
|
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
[root@liu /]
fstab_decode_str()
checkpid()
__readlink()
__fgrep()
__umount_loop()
__umount_loopback_loop()
__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()
strstr()
confirm()
get_numeric_dev()
is_ignored_file()
is_true()
is_false()
apply_sysctl()
key_is_random()
find_crypto_mount_point()
init_crypto()
|
3、使用echo命令输出一个绝对路径,使用grep取出其基名;
|
1
2
3
4
|
[root@liu /]
useradd
.sh
[root@liu ~]
useradd
.sh
|
#基名basename /tmp/ljohn/useradd.sh
|
1
2
3
4
|
[root@liu ~]
useradd
.sh
[root@liu ~]
useradd
.sh
|
扩展:取出其路径名
|
1
2
3
4
5
6
7
8
9
|
[root@liu /]
/tmp/ljohn/
[root@liu ~]
/tmp/ljohn
[root@liu ~]
/tmp/ljohn
[root@liu ~]
/tmp/ljohn
|
4、找出ifconfig命令结果中的1-255之间数字;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@liu /]
-n -u
5
8
19
20
29
30
31
38
39
41
42
45
64
100
127
128
137
150
164
168
192
255
|
5、挑战题:写一个模式,能匹配合理的IP地址;
# A类地址范围:1.0.0.1—126.255.255.254 B类地址范围:128.0.0.1—191.255.255.254
# C类地址范围:192.0.0.1—223.255.255.254 D类地址范围:224.0.0.1—239.255.255.254
# E类地址范围:240.0.0.1—255.255.255.254 127.X.X.X是保留地址,用做循环测试用的
# 匹配范围为 1-255.0-255.0-255.1-254
|
1
2
3
|
[root@liu /]
192.168.137.30
127.0.0.1
|
#此题参考http://ld0381.blog.51cto.com/3318114/1845601; http://2368360.blog.51cto.com/2358360/1846091
#详细解析:
^PATTERN$ 用于模式匹配整行
{2}表示前面字符正好出现两次
| 的意思是或者
( )上面的括号不能少,是为了匹配括号中整体字符串,表达式中有几个()就表示有几个相应的匹配字符串
[0-4]表示0~4的任何一个数字
[0-9]表示0~9的任何一个数字
[1-9]的意思是1~9之间的任意一个数字
[1-9][0-9]的意思是10~99之间的任意一个数字
1[0-9]{2}的意思就是100~199之间的任意一个数字
2[0-4][0-9]的意思是200~249之间的任意一个数字
25[0-5]的意思是250~255之间的任意一个数字
\.的意思是.点要转义为普通字符
6、挑战题:写一个模式,能匹配出所有的邮件地址;
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@liu /]
184694637@qq.com
lshailkj@qq.com
ljohnmail@foxmail.com
foxmail@_cmd.cn
ljohn@163.com
lkjdas_
[root@liu /]
184694637@qq.com
lshailkj@qq.com
ljohnmail@foxmail.com
ljohn@163.com
|
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
|
1
2
3
4
5
|
[root@liu ~]
262296 4 drwxrwxr-x 2 root mail 4096 9月 4 15:35
/var/spool/mail
262048 4 -rw------- 1 root mail 2353 9月 3 17:33
/var/spool/mail/root
|
8、查找当前系统上没有属主或属组的文件;
|
1
2
3
4
5
6
7
8
9
10
11
|
[root@liu ~]
/home/mandirva
/home/mandirva/
.gnome2
/home/mandirva/
.bashrc
/home/mandirva/
.mozilla
/home/mandirva/
.mozilla
/plugins
/home/mandirva/
.mozilla
/extensions
/home/mandirva/
.bash_logout
/home/mandirva/
.bash_profile
/var/spool/mail/mandirva
|
进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
|
1
2
3
4
5
6
7
8
9
10
|
[root@liu ~]
find
: “
/proc/3759/task/3759/fd/5
”: 没有那个文件或目录
find
: “
/proc/3759/task/3759/fdinfo/5
”: 没有那个文件或目录
find
: “
/proc/3759/fd/5
”: 没有那个文件或目录
find
: “
/proc/3759/fdinfo/5
”: 没有那个文件或目录
/home/mandirva
/home/mandirva/
.gnome2
/home/mandirva/
.mozilla
/home/mandirva/
.mozilla
/plugins
/home/mandirva/
.mozilla
/extensions
|
9、查找/etc目录下所有用户都有写权限的文件;
|
1
2
3
4
5
6
7
|
[root@liu ~]
/etc/rc
.d
/rc1
.d
/K73winbind
/etc/rc
.d
/rc1
.d
/K92iptables
/etc/rc
.d
/rc1
.d
/K99rngd
/etc/rc
.d
/rc1
.d
/K84wpa_supplicant
/etc/rc
.d
/rc1
.d
/K89portreserve
...
|
#根据权限查找:
-perm [+|-]MODE
MODE: 精确权限匹配
+MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可;
-MODE:每一类对象都必须同时拥有为其指定的权限标准;
-222:表示每一个用户都有写权限。
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
|
1
2
3
4
|
[root@liu ~]
/etc/selinux/targeted/modules/active/policy
.kern
/etc/selinux/targeted/policy/policy
.24
/etc/gconf/gconf
.xml.defaults/%gconf-tree.xml
|
#根据类型查找:
-type TYPE:
f: 普通文件
d: 目录文件
l: 符号链接文件
s:套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
#根据文件大小查找:
-size [+|-]#UNIT
常用单位:k, M, G
#UNIT: (#-1, #]
-#UNIT:[0,#-1]
+#UNIT:(#,oo)
11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;
|
1
2
|
[root@liu ~]
652914 0 lrwxrwxrwx 1 root root 11 2月 12 2015
/etc/init
.d -> rc.d
/init
.d
|
12、查找/usr目录下不属于root、bin或hadoop的文件;
|
1
2
3
4
5
|
[root@liu ~]
20956 8 -rwsr-xr-x 1 abrt abrt 6700 11月 23 2013
/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
或者:
[root@liu ~]
20956 8 -rwsr-xr-x 1 abrt abrt 6700 11月 23 2013
/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
|
13、查找/etc/目录下至少有一类用户没有写权限的文件;
|
1
2
3
4
5
|
[root@liu ~]
652802 12 drwxr-xr-x 118 root root 12288 9月 4 15:35
/etc
652826 0 -rw-r--r-- 1 root root 0 1月 12 2010
/etc/exports
661961 4 drwxr-xr-x 2 root root 4096 8月 30 23:52
/etc/glances
662033 4 -rw-r--r-- 1 root root 3288 1月 18 2014
/etc/glances/glances
.conf
|
...
14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;
创建一个文件并修改权限:
|
1
2
3
4
5
6
7
8
9
10
|
[root@liu etc]
> 123123
> Hello!!
> How are you !
> EOF
[root@liu etc]
[root@liu etc]
-rw-r--r--. 1 liu liu 29 9月 5 05:07 findtest.txt
[root@liu etc]
/etc/findtest
.txt
|