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