linux学习作业-第五周
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习作业-第五周相关的知识,希望对你有一定的参考价值。
1、显示当前系统上root、fedora或user1用户的默认shell;
#!/bin/bash #Program #input username ,then print userbash #2016/08/30 V0.0.1 rex frist #注明程序使用的shell,作用,日期,版本 read -p "please input you username.then ,output you default shell :" userbash #读取输入的用户名 if [ $userbash = " " ];then #如果userbash等于空,则显示错误 echo -e \n" error input username" else usershell=$(grep "^$userbash" /etc/passwd |sed ‘[email protected]*/@ @g‘) #$usershell查询用户名开头,并用sed替换前面 echo -e \n"That‘s you shell [$usershell]" #显示用户shell exit 0 fi #上面shell功能是输入用户名,查询用户的bash信息,当然输入空则报错,输入错误的条件没写
egrep "root" passwd |sed ‘s#.*/##g‘ #这句也能直接查询并用替换删除行首内容
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
egrep --color "\<[a-z]+\(\)" /etc/rc.d/init.d/functions #\(\)表达括号
3、使用echo命令输出一个绝对路径,使用grep取出其基名;
echo /usr/share/doc |grep -o "\<[[:alnum:]]\+\>$" # grep -o 截取grep内容 # [[:alnum:]]数字加英文 # $行尾
扩展:取出其路径名
echo /usr/local/share/info/ |grep -o ".*\<" .*一组词 \<句尾锚定
4、找出ifconfig命令结果中的1-255之间数字;
ifconfig |grep -E "(\<[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5]|2[0-4][0-9])\>" #因为使用了-E 所以()不需要加#上句锚定了句首和句尾\<\> #匹配数字1-255
5、挑战题:写一个模式,能匹配合理的IP地址;
grep -E "(\<[1-9]|[1-9][0-9]|1[0-9][0-9]|25[0-4]|2[0-4][0-9]\>).((\<[0-9]|1[0-9][0-9]|25[0-5]|[1-9][0-9]|2[0-4][0-9]\>)\.){2}(\<[1-9]|[1-9][0-9]|1[0-9][0-9]|25[0-4]|2[0-4][0-9]\>)"
6、挑战题:写一个模式,能匹配出所有的邮件地址;
grep ^[0-9,a-z,_]*@[0-9,a-z,_]*.[a-z]* #匹配数字,小写英文与下划线 @ 数字,小写英文与下划线 . 后接英文 egrep --color ‘(\<^[0-9,a-z,_]*@[0-9,a-z,_]*.[a-z]*)\>‘ #上句加了句首句尾锚定
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
find /var/* -user root -group mail -ls #find -user 按照属主查找 #find -group 按照属组查找 #加-ls 则显示详细信息
8、查找当前系统上没有属主或属组的文件;
find / -nouser -nogroup -ls # find -nouser 没有属主 # find -nogroup 没有属组 # 一起用的话,就是没有家的人儿。 T T
进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录
find / -nouser -nogroup -atime -3 -ls #-atime 访问时间 #-3 3天内 # 3 3天上下1天 #+3 3天以上(不包含3天)
9、查找/etc目录下所有用户都有写权限的文件;
find /etc -perm -o+w -type f -ls #-perm 按权限查找 #-ugo #+有 #-没有
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
find /etc -size +1M -type f -ls #-size 按照大小查询 #通常的格式有kKmMgGT(没开虚拟机,可以用man find :/-size查询)
11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;
find /etc/init.d -perm -o+x,ug+w -type f -ls # -type 按文件类型选择 # f为普通文件 # b块设备 # d目录 # c字符设备 # p管道 # l管道
12、查找/usr目录下不属于root、bin或hadoop的文件;
find /usr -not \( -user root o -user bin -o -user hadoop \) -ls find /usr -not \( -user root -o -user bin \) -ls # -not 不.... # 如果条件2个以上,并是在()内的话,则使用-o # 如果没有使用()的话,则使用 -a 与
13、查找/etc/目录下至少有一类用户没有写权限的文件;
find /etc -not -perm -222 -ls #-perm 可以使用 -uog 用户、组、其他 # 以及用777数字权限(777是全部权限) #-333 有一类没有写和读 # 333 完全匹配 #+333 有一类有写和读
14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件
find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls #如上解释,两个条件间需要用-a连接
本文出自 “11619161” 博客,请务必保留此出处http://11629161.blog.51cto.com/11619161/1846550
以上是关于linux学习作业-第五周的主要内容,如果未能解决你的问题,请参考以下文章