shell(一)
shell(一)
单选题
1、在bash中,快捷键【Ctrl+Z】的作用是什么?
A、中止前台任务
B、给当前文件加上.eof
C、将前台任务转入后台
D、注销当前用户
2、使用sed命令删除文件file中的所有文本行开头的空格,下列命令正确的是。
A、sed -r 's/^\s+//g' file
B、.sed -r '/^./s*/ //g' file
C、.sed -r 's/[1]//g' file
D、.sed -i 's/[2]//g' file
3、使用grep命令搜索file中所有不包含“itcast”的文本行,则下列命令中正确的是。
A、grep -x "itcast" file
B、.grep -r "itcast" file
C、.grep -h "itcast" file
D、.grep -v "itcast" file
4、在bash中,在一条命令后添加”1>&2“的作用是什么?
A、标准错误输出重定向到标准输入
B、标准输入重定向到标准错误输出
C、标准输出重定向到标准错误输出
D、标准输出重定向到标准输入
答案说明 : 考察I/O重定向
5、关于重定向,下列描述中错误的是。
A、Linux系统中的输入输出有标准输入.标准输出.标准错误三种
B、输入重定向符号为>.输出重定向和错误重定向的符号为<
C、重定向标准错误时,文件描述符不可省略
D、若将输出重定向到文件,可以使用>>符号进行追加
答案说明 : 输入重定向符号为<、输出重定向和错误重定向的符号为>
6、下列选项中,哪一个符号是管道符号。
A、``
B、.$
C、.&
D、.
7、下列哪一项不是Shell提供的环境变量。
A、PATH
B、.HOME
C、.PWD
D、.NAME
8、使用grep搜索file文件,查找包含字符"e"开头,字符"o"结尾的字符串的文本行,下列命令中正确的是。
A、grep“e…o" file
B、.grep ^e $o file
C、.grep *e &o file
D、.grep -x *e $o file
9、在文件中查找显示所有以”*“开头的行,下列命令中正确的选项是?
A、find * file
B、.wc -l *
C、.grep -n * file
D、.grep * file
10、下列选项中,哪一个文件可用于查看系统支持的Shell类型。
A、/etc/shells
B、./bin/sells
C、./etc/bin/shells
D、./user/bin/shells
11、下列哪一项不是环境变量PS1所包含的内容。
A、\u
B、.\h
C、.\s
D、.\w
12、下列选项中哪一项不是awk提供的关系运算符。
A、>
B、. =
C、.==
D、.~
多选题
13、使用grep命令搜索/etc/passwd文件中有多少行包含”nologin“,则下列命令中正确的是。
A、grep /etc/passwd -c 'nologin'
B、.grep -c 'nologin' /etc/passwd
C、.grep -c /etc/paawd 'nologin'
D、.grep 'nologin' -c /etc/passwd
答案说明 : grep命令中,参数与选项的顺序不要求
判断题
14、使用“;”连接符间隔的命令,会按照先后次序依次执行。
参考答案:对
15、sed编辑命令”=“用于为文本赋值。
参考答案:错
16、正则表达式中“+”符号对前面字符至少要匹配一次。
参考答案:对
17、sed一次只能处理一个文本编辑任务。
参考答案:错
答案说明 : sed命令一次可以处理多个编辑命令
18、awk处理文本时,如果没有指定匹配模式,则默认匹配所有数据。
参考答案:对
19、用户不能自定义环境变量。
参考答案:错
填空题
20、Shell
是Linux用户与内核交互的中间层。
21、Shell中全是使用数字命名的变量是 位置变量
。
22、可以使用sed命令 sed '/^$/d' file
删除文件file中的空行。
23、CentOS默认的Shell是 Bash
。
答案说明 : bash是CentOS7默认的Shell
24、有一个文件file,使用awk命令显示第二列元素,以“:”为分隔符,则命令为 awk -F : '{print $2}' file
。
答案说明 : awk命令调用
25、有一个文件file,使用sed命令 sed -i 's#echo#ECHO#g' file
将文件中的”echo“替换为大写的”ECHO“。
答案说明 : sed命令调用
26、环境变量 $SHELL
用于保存当前正在使用的Shell。
答案说明 : 需要对Shell常用的环境变量了解
简答题
27、请简述一下Shell中常用的通配符及它们的含义。
我的答案:
Shell的通配符一般用于数据处理或文件名匹配,常用的通配符如下所示:
- * :与零个或多个字符匹配。
- ? :与任何单个字符匹配。
- [] :与[]中的任一字符匹配。
- [!] :与[]之外的任一字符匹配。
28、请简述一下sed和awk的区别。
我的答案:
sed(Stream Editor)和 awk 是两种在Unix和类Unix系统中广泛使用的文本处理工具,它们都可以用来对文本进行搜索、替换、修改等操作,但是它们的设计哲学和功能特点有所不同。
设计目的和哲学:
sed 是一个流编辑器,它主要设计用来对文本进行基本的文本转换操作,如搜索和替换。sed 通常用于执行简单的文本替换,或者对文本进行全局性的更改。
awk 是一个强大的文本处理语言,它结合了文本搜索和替换的能力以及编程语言的功能,如变量、数组、条件语句和循环。awk 适合于对文本数据进行更复杂的操作,特别是需要对数据进行排序、统计、格式化等操作时。
功能和复杂性:
sed 的功能相对简单,主要是基于行的搜索和替换,以及一些基本的文本操作,如插入、删除行等。
awk 提供了更丰富的功能,它能够对文本进行基于列的分割和处理,支持复杂的模式匹配和操作,可以进行数学计算,以及执行用户定义的函数。
编程能力:
sed 有一定的编程能力,但它主要是一行命令的集合,执行预定义的编辑操作。
awk 实际上是一种完整的编程语言,它支持条件判断、循环、数组、函数等编程结构,可以用来编写复杂的文本处理脚本。
使用场景:
sed 通常用于简单的文本转换任务,如自动替换文本中的特定字符串,或者在文本中插入或删除特定的行。
awk 适用于需要对文本数据进行更复杂处理的场景,如报告生成、数据分析和统计、文本格式转换等。
所以,sed 更适合于快速的文本转换和简单的文本编辑任务,而 awk 提供了更强大的数据处理能力,适合于复杂的数据分析和文本处理任务。
参考答案 :
(1)sed(stream editor)是一个非交互式的文本处理命令,它可以对文本文件和标准输入进行编辑。标准输入可以来自键盘、文件重定向、字符串、变量,甚至来自管道的文件。sed在处理文本数据时,它会将读取到的数据复制到缓冲区,在缓冲区中对数据进行处理,处理完成之后再输出到屏幕。在处理完一段文本之后,sed会接着处理下一段,这样不断重复,直到文件末尾。当编辑命令太过复杂、文件太大、文本处理需要执行多个函数时都可以使用sed命令对文本数据进行处理。与Vi等其它文本编辑器相比,sed可以一次性处理所有的编辑任务,可极大地提升工作效率,节约用户时间。
(2)awk在读取分析数据时,从头到尾逐行扫描文件内容,寻找与指定模式匹配的行,并对匹配出的文本行进行处理。简而言之,awk的工作流程分为模式匹配和处理过程两步。
在匹配的过程中,如果没有指定匹配模式,则默认匹配所有数据。awk每读取一行数据,都会对比该行是否与给定的模式相匹配,如果匹配,则对数据进行处理,否则不作任何处理。如果没有指定如何处理内容,则把匹配到的内容打印到终端。
awk定义了两个特殊的模式:BEGIN和END。BEGIN放置在读取数据之前执行,标识数据读取即将开始;END放置在读取数据结束之后执行,标识数据读取已经完毕。