版权声明:
本文的所有内容均来自作者刘春凯的学习总结,未经本人许可,禁止私自转发及使用。
QQ:1151887353
E-mail:[email protected] [email protected]
##########################################################################
1.创建一个目录/data。
解答:
mkdir /data
2.在/data下面建立一个文件oldboy.txt。
解答:
touch /data/oldboy.txt
或者:
cd /data
touch oldboy.txt
3.为oldboy.txt增加内容为“I am studying linux.”。
解答:
法一:
cd /data
echo "I am studying linux">>oldboy.txt
法二:
vi/vim --a/i--" I am studying linux "--enter--esc--:qw
法三:
cat >>oldboy.txt
> I am studying linux
crul+c
4.把oldboy.txt文件拷贝到/tmp下。
解答:
cd /data
cp oldboy.txt /tmp/
5.把/data目录移动到/root下。
解答:
mv /data /root/
6.进入/root目录下的data目录,删除oldboy.txt文件。
解答:
cd -
cd data
rm -f oldboy.txt
7.接第6题,退出到上一级目录,删除data目录。
解答:
cd -
rm -fr data
8.已知文件test.txt内容为:
test
liyao
oldboy
请给出输出test.txt文件内容时,不包含oldboy字符串的命令。
解答:
模拟环境
cd /data
touch test.txt
cat >>/test.txt>>EOF(echo或者vi/vim)
test
liyao
oldboy
EOF
ctul+c
法一:
head -n 2 /data/test.txt
法二:
tail -n 3 test.txt|head -n 2或者head -n 2 test.txt|tail -2
法三:
sed -n "1,2p" test.txt
法四:
grep -v oldboy test.txt或者greptest liyao test.txt
法五:
awk ‘NR<3&&NR>0‘ test.txt或者awk ‘{if(NR<3&&NR>0) print $0"\n"}‘ test.txt
法六:
grep 2 -A 1 test.txt
grep 1 -B 1 test.txt
9.请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test目录
解答:
cd ~
mkdir -p /oldboy/test
10.已知/tmp下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让系统不提示是否覆盖(root权限下)。
解答:
法一:
/bin/cp /mnt/test.txt /tmp/
法二:
\cp /mnt/test.txt /tmp/
法三:
alias cp
unalias cp
cp /mnt/test.txt /tmp/
11.只查看ett.txt文件(共100行)内第20到第30行的内容
解答:
法一:
head 30 ett.txt|tail 11或者tail 81 ett.txt|head 11
法二:
sed -n ‘20,30p‘ ett.txt
法三:
grep 30 -A 10 ett.txt
grep 20 -B 10 ett.txt
grep 25 -C 5 ett.txt
法四:
awk ‘NR>19&&NR<31‘ ett.txt
awk ‘{if(NR>19&&NR<31) print$0"\n"}‘ ett.txt
12.分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,取top10,也就是计算每个url的总访问大小
【附加题:工作场景高难度加分题,不会的同学可以放弃不答】。
说明:本题生产环境应用:这个功能可以用于IDC网站流量带宽很高,然后通过分析服务器日志哪些元素占用流量过大,进而进行优化或裁剪该图片,压缩js等措施。
本题需要输出三个指标: 【访问次数】 【访问次数*单个文件大小】 【文件名(可以带URL)】
测试数据
13、把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换为oldgirl【附加题:加分题,不会的同学可以放弃不答】。
解答:
模拟环境:
mkdir -p /oldboy/test
touch a.txt /oldboy
touch b.txt /oldboy/test
echo "oldboy" >a.sh
echo "oldgirl" >b.sh
法一:sed
sed -i "s#oldboy#oldgirl#g" /oldboy/*.txt
sed -i "s#oldboy#oldgirl#g" `find/oldboy/ -type f -name "*.sh"`
sed -i "s#oldboy#oldgirl#g" $(fing/oldboy/ -type f -name "*.sh")
法二:find+|xargs
find /oldboy/ -type f -name "*.sh" |xargs sed -i "s#oldboy#oldgirl#g"
find /oldboy/ -type f -name "*.sh" -exec sed -i "s#oldboy#oldgirl#g {} \;
法三:for语句
for i in `ll /oldboy | grep .sh|awk ‘{print $NF}‘`
do
sed -i ‘s#oldboy#oldgirlg‘$i
done