1、显示/proc/meminfo文件中以大写s开头的行,要求使用两种方式
2、显示/etc/passwd文件中不以/bin/bash结尾的行
3、显示/etc/passwd文件中ID号最大的用户的用户名
4、如果root用户存在,显示其默认的shell程序
5、显示/etc/passwd文件中两位或三位数
6、显示/etc/rc.d/rc.sysinit文件中,至少以一个空白字符开头的且后面存在非空白字符的行
7、找出'netstat -tab'命令的结果中以'LISTEN'后跟0、1或多个空白字符结尾的行
8、添加用户bash,testbash,basher以及nologin,要求nologin的shell为/sbin/nologin,而后找出/etc/passwd文件中用户名同shell名的行
1、显示/proc/meminfo文件中以大写s开头的行,要求使用两种方式
# grep -i '^s' /proc/meminfo# grep '^[sS]' /proc/meminfo
结果
SwapCached: 172 kBSwapTotal: 1049596 kBSwapFree: 1048880 kBShmem: 676 kBSlab: 30440 kBSReclaimable: 17672 kBSUnreclaim: 12768 kB
2、显示/etc/passwd文件中不以/bin/bash结尾的行
# grep -v '/bin/bash$' /etc/passwdbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin.....
3、显示/etc/passwd文件中ID号最大的用户的用户名
# sort -n -r -t':' -k3 /etc/passwd | head -n 1nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin# awk -v FS=':' 'BEGIN{print "----------------------------------"}{if(NR==1){MIN=$3;MAX=MIN;USER=$1;MINUSER=$1}};{if(NR!=1){if($3>MAX){MAX=$3;USER=$1};if($3
4、如果root用户存在,显示其默认的shell程序
# grep -q '^root\b' /etc/passwd && printf "root exist and default shell is " && grep '^root\>' /etc/passwd | cut -d':' -f7root exist and default shell is /bin/bash# sed -n '/^root\>/p' /etc/passwd > /dev/null 2>&1 && echo -ne 'root exist and default shell is\t' && sed -n '/^root\>/p' /etc/passwd | awk -v FS=':' '{print $NF}'root exist and default shell is /bin/bash# awk -F':' '$1 ~ /\/{print $NF}' /etc/passwd/bin/bash# awk -F':' '$1 == "root"{print $NF}' /etc/passwd/bin/bash# sed -n "`awk -F':' '$1 == "root" {print NR}' /etc/passwd`p" /etc/passwd root:x:0:0:root:/root:/bin/bash
5、显示/etc/passwd文件中两位或三位数
方法一:# grep -o '\<[0-9]\{2,3\}\b' /etc/passwd# grep -o '\<[[:digit:]]\{2,3\}\b' /etc/passwd方法二:# egrep -o '\<[[:digit:]]{2,3}\b' /etc/passwd
6、显示/etc/rc.d/rc.sysinit文件中,至少以一个空白字符开头的且后面存在非空白字符的行
# grep '^[[:space:]]\+[^[:space:]]' rc.sysinit # sed -n '/^[[:space:]]\+[^[:space:]]/p' rc.sysinit# awk '/^[[:space:]]+[^[:space:]]/ {print }' rc.sysinit
7、找出'netstat -tab'命令的结果中以'LISTEN'后跟0、1或多个空白字符结尾的行
# netstat -tan | grep 'LISTEN[[:space:]]*'
8、添加用户bash,testbash,basher以及nologin,要求nologin的shell为/sbin/nologin,而后找出/etc/passwd文件中用户名同shell名的行
[root@izpo45bh60h6bsz ~]# useradd bash[root@izpo45bh60h6bsz ~]# useradd testbash[root@izpo45bh60h6bsz ~]# useradd basher[root@izpo45bh60h6bsz ~]# useradd -s /sbin/nologin nologin# grep '\(^[[:alnum:]]\+\>\).*\1$' /etc/passwdsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltnologin:x:2018:2018::/home/nologin:/sbin/nologin# sed -n '/\(^[[:alnum:]]\+\>\).*\1$/p' /etc/passwdsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltnologin:x:2018:2018::/home/nologin:/sbin/nologin# awk -F':' '{split($NF,A,"/")}{if (A[3] == $1){print}}' /etc/passwdsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltnologin:x:2018:2018::/home/nologin:/sbin/nologin