题目来源 老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1752116
1、创建目录/data/oldboy ,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容"inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0"(不包含引号)。
mkdir -p /data/oldboy
echo "inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0" >> /data/oldboy/oldboy.txt
2、将题1中的oldboy.txt文件内容通过命令过滤只输出如下内容:
10.0.0.8 10.0.0.255 255.255.255.0
sed -r 's/[a-zA-Z:]+//g' /data/oldboy/oldboy.txt
3、将题1中的oldboy目录移动到/tmp目录下,并将/etc/passwd文件复制到/tmp/oldboy下。
mv /data/oldboy /tmp
cp -a /etc/passwd /tmp/oldboy
4、在题3的基础上使用awk取passwd文件的第10行到20行的第三列重定向到/tmp/oldboy/test.txt文件里。
awk -F : 'NR==10,NR==20 {print $3}' > /tmp/oldboy/test.txt
5、在题3的基础上要求用命令rm删除文件时提示如下禁止使用rm的提示,并使该效果永久生效。
[root@oldboy oldboy]# rm -f passwd
Do not use rm command.
alias rm='echo "Do not use rm command"'
echo "alias rm='echo "Do not use rm command"'" >> /etc/profile
6、在题3的基础上,删除/tmp/oldboy/下除passwd以外的其他文件。
ls /tmp/oldboy | grep -v passwd | xargs rm -f
7、在题3的基础上,请打印/etc/passwd文件中的第2-5行(不低于三种方法)
sed -n "2,5p" /etc/passwd
awk "NR==2,NR==5" /etc/passwd
awk "NR>1&&NR<6" /etc/passwd
cat /etc/passwd | head -5 | tail -4
8、在题3的基础上,使用命令调换passwd文件里root位置和/bin/bash位置?即将所有的第一列和最后一列位置调换?
例:
默认:root:x:0:0:root:/root:/bin/bash
修改后:/bin/bash:x:0:0:root:/root:root
awk -F : '{print $NF":"$2":"$3":"$4":"$5":"$6":"$1 > "/tmp/oldboy/passwd"}' /tmp/oldboy/passwd
高级awk法:awk 'BEGIN{OFS=FS=":"}{tmp=$1;$1=$NF;$NF=tmp;print $0}' /etc/passwd
9、把/data目录及其子目录下所有以扩展名.txt结尾的文件中包含oldgirl的字符串全部替换为oldboy。
find /date -type f -name "*.txt" |xargs sed -i "s/oldgirl/oldboy/g"
10、查找/oldboy下所有7天以前以log结尾的大于1M的文件移动/tmp下
find /oldboy -type f -name "*.log" -size +1M -mtime +7 | xargs -I {} mv {} /tmp
find /oldboy -type f -name "*.log" -size +1M -mtime +7 -exec mv {} /tmp \;
本文转自 kuSorZ 51CTO博客,原文链接:http://blog.51cto.com/kusorz/1826807