您的位置:首页 > 运维架构 > Linux

Linux第五次作业

2016-09-04 22:56 274 查看
1、显示当前系统上root、fedora或user1用户的默认shell;
grep -E  "^(root|user1|fedora)" /etc/passwd | cut -d: -f7
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
[root@localhost ~]# grep -E -o "[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions
checkpid()
run()
pidof()
daemon()
killproc()
pidfileofproc()
pidofproc()
status()
success()
failure()
passed()
warning()
stage()
success()
failure()
passed()
warning()
action()
strstr()
file()
true()
false()
sysctl()
3、使用echo命令输出一个绝对路径,使用grep取出其基名;
扩展:取出其路径名
[root@localhost ~]# echo "/home/1.txt" | grep -Eo "[^/]+/?$"
1.txt
[root@localhost ~]# echo "/etc/rc.d/init.d/functions" | grep -Eo "^[/][a-z0-9]+.*/"
/etc/rc.d/init.d/
4、找出ifconfig命令结果中的1-255之间数字;
1-9,10-19,100-199,200-249,250-255
[root@localhost ~]# ifconfig | egrep -o "\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>"
192
168
105
255
255
255
192
168
255
64
29
60
99
248
7
186
3
73
127
1
255
1
128
24
2
24
2
192
168
122
1
255
255
255
192
168
122
255
5、挑战题:写一个模式,能匹配合理的IP地址;
1.0.0.0-255.255.255.255
[root@localhost ~]# cat ip.txt | egrep "(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>)\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>\.)\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>)\.(\<[1-9]\>|\<[1-9][0-9]\>|\<[1][0-9][0-9]\>|\<[2][0-4][0-9]\>|\<[2][0-5][0-5]\>)"
1.1.1.1
2.2.2.2
3.3.3.3
6、挑战题:写一个模式,能匹配出所有的邮件地址;
[root@localhost ~]# cat email.txt | grep -E "^[a-z0-9_-]+@[a-z0-9_-]+.[[:alpha:]]+$"
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
22222@qq.com
121dsfaf-adsfa@163.com
1@1.com
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
find命令:实时查找工具,通过遍历自定路径下的文件系统完成文件查找
工作特点:
查找速度略慢
精确查找
实时查找

格式:
find [OPTIONS]... [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径,可以为多个路径,默认为当前路径
查找条件:指定的查找标准,可以为文件名、大小、类型、权限等标准进行,默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做什么操作,默认输出至屏幕
查找条件:根据文件名查找
-name "filename":支持使用glob,严格区分文件名称大小写
-iname "filename":不区分字母大小写
-regex "PATTERN":支持使用正则表达式,以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

根据属主、属组查找文件
-user USRNAME:查找属主USERANME的文件
-group GRPNAME:查找属组为GRPNAME的文件
-uid UserID:查找属主为指定UID号的文件
-gid groupid:查找属组为指定gid号的文件
-nouser username :查找属主不是usernmae的文件
-nogroup groupname:查找属组不是groupname的文件
[root@localhost tmp]# chown root:mail fstab
[root@localhost tmp]# ll ./fstab
-rw-r--r--. 1 root mail
[root@localhost tmp]# find /tmp/ -user root -group mail -ls
203539008    4 -rw-r--r--   1 root     mail          465 Sep  4 08:36 /tmp/fstab
465 Sep  4 08:36 ./fstab
8、查找当前系统上没有属主或属组的文件;
进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
根据时间戳:
以“天”为单位
-atime [+|-]#:最近一次访问时间
#:[#,#+1)
+#:[#+1,oo]
-#:[0,#]
-mtime [+|-]#:最近一次内容修改时间
#:[#,#+1)
+#:[#+1,oo]
-#:[0,#]
-ctime [+|-]#:最近一次属性修改时间
#:[#,#+1)
+#:[#+1,oo]
-#:[0,#]
以“分钟”为单位
-amin
-mmin
-cmin
[root@localhost /]# find /tmp \(-nouser -o -nogroup\) -ls	//不加括号会把-o后面全部当做条件

[root@localhost /]# find /tmp atime 3  \(-nouser -o -nogroup\) -ls	//+3三天前做过修改的,-3三天之内做过修改
9、查找/etc目录下所有用户都有写权限的文件;
[root@localhost /]#find /etc -perm -222 -ls
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
根据文件大小来查找:
-size [+|-]#UNIT
常用单位:k,M,G
#UNIT:(#-1,#]
-#UNIT:[0,#-1]
+#UNIT:(#,oo)
[root@localhost /]#find /etc   -type f -size +1M -ls
11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;
根据权限查找
-perm [+|-]MODE
MODE:精确权限匹配
+MODE:任何一类(u,g,o)对象的权限中只要能以为匹配即可
-MODE:每一类对象都必须同时拥有为其指定的权限标准
[root@localhost /]# find /etc/init.d/ -perm -113 -ls
68320523    8 -rwx-wxrwx   1 root     root         6630 Sep 16  2015 /etc/init.d/network


12、查找/usr目录下不属于root、bin或hadoop的文件;
[root@localhost /]#find /usr ! \( -user root -o -user bin -o -user hadoop \) -ls
13、查找/etc/目录下至少有一类用户没有写权限的文件;
[root@localhost /]#  find /tmp/ \( ! -perm +200 -o ! -perm +020 -o ! -perm +002 \) -ls


14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;
[root@localhost /]#find /etc \( -mtime -7 ! -user root -a ! -user hadoop \) -ls
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  findmi