2014马哥Linux0217中马哥未说的三个题目

0217课中,马哥出了三个题目,但是视频中没有解说,我自己写完了,把答案写出来:

练习:写一个脚本,分别统计/etc/rc.d/rc.sysinit、/etc/init.d/functions和/etc/fstab文件中各自以#开头的行的行数,以及空白行的行数

#!/bin/bash

for fileName in /etc/rc.d/rc.sysinit /etc/init.d/functions /etc/fstab;do

echo "$fileName has `grep "^#" $fileName | wc -l` lines begin with #"

echo "$fileName has `grep "^$" $fileName | wc -l` space lines"

done



练习:写一个脚本,分别复制/etc/rc.d/rc.sysinit、/etc/init.d/functions和/etc/fstab文件至/tmp目录中,文件名以原名后跟上当前的日期组成

例如第一个文件复制后的名称为/tmp/rc.sysinit-2-14-02-16

#!/bin/bash

for fileName in /etc/rc.d/rc.sysinit /etc/init.d/functions /etc/fstab;do

cp $fileName /tmp/`basename $fileName`-`date +%F`

echo "/tmp/`basename $fileName`-`date +%F` has been copied."

done

#日期格式可能与要求有些出入,问题不大


练习:写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及其在/etc/passwd/文件中的行号

#!/bin/bash

for userName in `grep "bash\>$" /etc/passwd | cut -d: -f1`;do

        echo "Username:$userName, UID:`id -u $userName`, Line: `grep -n "^$userName" /etc/passwd | cut -d: -f1`"

done


如有错误,请朋友们指正。

你可能感兴趣的:(linux,正则表达式,grep,for循环)