Skip to content

一,特殊符号考核(共26分,每个2分)

请解释如下符号的作用

tex
#:注释符号,不做命令输出
!(叹号):非。取反
>:清空输出重定向。先清空内容在输出内容
>>:追加输出重定向。在文件末尾追加内容
1>:正确清空输出重定向
1>>:正确追加输出重定向
2>:错误清空输出重定向
2>>:错误追加输出重定向
&>:正确或者错误都清空输出重定向
&>>:正确或者错误都住家输出重定向
``(反引号):优先执行代码
~:表示家目录
&&:并且。前面命令执行成功才会执行后面
||:或者。前面命令执行不成功才会执行后面
|(管道符):将左侧命令的结果传递到右侧末尾

二,命令相关概念考核(11分)

请解释什么叫做相对路径(3分)

相对路径用.表示,从当前目录开始到目标目录

请解释什么叫做绝对路径(3分)

从根开始到目标路径

请解释什么叫做家目录(3分)

存储用户配置信息的目录叫做家目录

请解释什么叫做根(2分)

Linux一切从根/开始,Linux下一切皆文件

三,命令应用考核(63分)

在根下创建一个目录,目录的名字叫做data(3分)

bash
mkdir /data

(接上题)在data目录里创建一个文件,文件名为:yunjisuan.txt(3分)

bash
touch /data/yunjisuan.txt

(接上题)给yunjisuan.txt增加内容“I am studying linux”(不能用vi或vim的方式)(3分)

bash
echo "I am studying linux" > yunjisuan.txt

(接上题)把yunjisuan.txt拷贝到根下的tmp目录里(3分)

bash
cp /data/yunjisuan.txt /tmp

(接上题)把/data目录移动到/root目录里(3分)

bash
mv /data /root/

(接上题)进入/root目录下的data目录里,然后在当前目录下创建文件yunjisuan01.txt和yunjisuan02.txt和yunjisuan03.txt和yunjisuan04.txt(要一次性创建多个文件)(3分)

bash
touch  /root/data/yunjisuan{01..04}.txt

(接上题)回到root用户的家目录里,删除当前目录下的data目录里的所有文件,但唯独保留yunjisuan03.txt不删(要一次性删除来实现(至少两种方法))(6分)

第一种

bash
find ~/data -type f ! -name "yunjisuan03.txt" -delete

第二种

bash
rm -rf `find ~/data -type f ! -name "yunjisuan03.txt"`

第三种

bash
find ~/data -type f ! -name "yunjisuan03.txt" | xargs -I{} rm -rf {}

第四种

bash
find ~/data -type f ! -name "yunjisuan03.txt" -exec rm -rf {} \

第五种

bash
ls | rm -rf `grep -v "yunjisuan03.txt"`

第六种

bash
ls | grep -v "yunjisuan03.txt" | xargs -I{} rm -rf {}

(接上题)返回到上级目录,并删除当前目录下的data目录(3分)

bash
cd ..;rm -rf data
# 或
cd .. && rm -rf data

已知当前目录下,有若干文件和目录,删除以.sh结尾的所有文件(一条命令实现,至少两种方法)(6分)

第一种

bash
rm -rf `find -type f -name "*.sh"`

第二种

bash
find -type f -name "*.sh" -exec rm -rf {} \;

第三种

bash
find -type f -name "*.sh" -delete

第四种

bash
find -type f -name "*.sh" | xargs -I{} rm -rf {}

第五种

bash
rm -rf *.sh

第六种

bash
rm -rf `ls *.sh`

第七种

bash
ls *.sh | xargs -I{} rm -rf {}

已知当前目录下,有若干文件和目录,将所有以chen开头的目录移动到/tmp目录下(一条命令实现,至少两种方法)(6分)

第一种

bash
mv chen* /tmp/

第二种

bash
mv `find -type d -name "chen*"` /tmp/

第三种

bash
find -type d -name "chen*" -exec mv /tmp/

第四种

bash
find -type d -name "chen*" | xargs -I{} mv {} /tmp/

已知/data目录里,有若干文件和目录,找出所有文件名里含有字母LOL的文件,复制到/mnt目录里。(一条命令实现,至少两种方法)(6分)

第一种

bash
find -type f -name "*LOL*" -exec cp {} /mnt/ \;

第二种

bash
find -type f -name "*LOL*" | xargs -I{} cp {} /mnt/

已知yunjisuan.txt文件内容,保持原文件内容不变,输出内容时去掉某行内容后,输出结果。(一条命令实现,至少两种方法)(6分)

已知文件内容:

tex
I am yunjisuan
I am liuyang
I am sunjie
I am benet
I am liujialing

输出内容:

tex
I am yunjisuan
I am liuyang
I am benet
I am liujialing

第一种

bash
grep -v "sunjie" yunjisuan.txt

第二种

bash
sed '/sunjie/d' yunjisuan.txt

第三种

bash
awk '!/sunjie/' yunjisuan.txt

请用一条命令完成创建目录/yunjisuan/test,即创建/yunjisuan目录及/yunjisuan/test目录(一条命令实现)(3分)

bash
mkdir -p /yunjisuan/test

只查看文件ett.txt(共100行)内第20到第30行内容。(一条命令实现,至少两种方法)(6分)

第一种

bash
head -30 ett.txt | tail -11

第二种

bash
sed -n '20,30p' ett.txt

第三种

bash
awk 'NR>=20&&NR<=30' ett.txt

把/yunjisuan目录及其子目录下所有以扩展名.sh结尾的文件,文件中包含yunjisuan的字符串全部替换为welcome(一条命令实现)(3分)

第一种

bash
find /yunjisuan -type f -name "*.sh" -exec sed -i.bak 's/yunjisuan/welcome/g' {} \;

第二种

bash
find /yunjisuan -type f -name "*.sh" | xargs -I{} sed -i 's/yunjisuan/welcome/g' {}

第三种

bash
sed -i.bak 's/yunjisuan/welcome/g' `find . -type f -name "*.sh"`