Linux Shell 笔试试题及详细答案_第1页
Linux Shell 笔试试题及详细答案_第2页
Linux Shell 笔试试题及详细答案_第3页
Linux Shell 笔试试题及详细答案_第4页
Linux Shell 笔试试题及详细答案_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LinuxShell笔试试题及详细答案考试说明1.本试卷适用于运维、开发、测试岗位LinuxShell技能笔试考核2.考试时长:90分钟满分:100分3.答题要求:命令书写规范、脚本可直接运行、解题思路清晰一、单项选择题(共15题,每题2分,共30分)1.Linux系统中,默认的Shell程序是()A.shB.bashC.zshD.csh2.以下不属于Shell变量类型的是()A.环境变量B.局部变量C.全局变量D.只读变量3.在Shell脚本中,用来注释单行代码的符号是()A.//B./*C.#D.;4.以下哪个符号可以实现命令输出重定向,覆盖写入文件()A.>>B.>C.<D.|5.Shell脚本中,$0代表的含义是()A.脚本第一个参数B.脚本本身文件名C.脚本参数个数D.所有参数内容6.查看系统历史执行命令的指令是()A.historyB.logC.catD.grep7.以下循环语句中,不属于Shell循环结构的是()A.forB.whileC.do...untilD.switch8.筛选文件中包含指定字符串内容的命令是()A.findB.grepC.sedD.awk9.Shell中,用于判断文件是否存在的参数是()A.-dB.-fC.-eD.-r10.批量替换文件中指定文本内容,最常用的命令是()A.catB.sedC.mvD.cp11.$#变量的作用是()A.获取所有参数B.获取参数个数C.获取最后一个参数D.获取脚本进程号12.后台运行Shell脚本的符号是()A.!B.&C.*D.$13.切割文本文件指定列数据的命令是()A.cutB.sortC.uniqD.wc14.脚本执行报错后,立即终止脚本运行的参数是()A.set-eB.set-xC.set-uD.set-o15.统计文件行数、字数、字符数的命令是()A.topB.freeC.wcD.du二、判断题(共10题,每题1分,共10分,对的打√,错的打×)1.Shell脚本文件名后缀必须为.sh,否则无法执行。()2.环境变量可以在当前终端所有进程中生效,局部变量仅在当前脚本生效。()3.>>重定向符号可以追加内容到文件末尾,不会覆盖原有数据。()4.Shell中变量赋值时,等号两边可以随意添加空格。()5.grep-v参数可以反向匹配,筛选出不包含指定字符串的内容。()6.$?可以获取上一条命令的执行返回状态,0代表执行成功。()7.kill-9可以温和终止进程,不会造成数据丢失。()8.for循环可以遍历文件、字符串、数字序列等多种对象。()9.sed命令默认会直接修改源文件内容,无需加参数。()10.执行脚本时,bash脚本名和./脚本名执行效果完全一致。()三、简答题(共5题,每题6分,共30分)1.简述Shell脚本中$*和$@的区别。2.简述find和grep命令的核心区别及适用场景。3.写出Shell脚本中三种变量定义方式及作用。4.简述管道符|的工作原理及使用场景。5.简述set-x、set-e、set-u三个脚本调试参数的作用。四、实操编程题(共3题,每题10分,共30分)1.编写Shell脚本,实现功能:遍历/opt目录下所有.txt文件,统计文件总个数,并输出所有文件名。2.编写Shell脚本,接收用户输入的数字,判断该数字是否为偶数,给出对应提示。3.编写Shell脚本,实现日志清理功能:删除/var/log目录下7天前的.log后缀日志文件,避免磁盘占用过高。详细参考答案及解析一、单项选择题答案及解析1.B解析:绝大多数Linux发行版默认交互Shell为bash,sh为兼容模式shell。2.C解析:Shell变量分为环境变量、局部变量、只读变量、位置变量,无全局变量定义。3.C解析:Shell中#为单行注释符,无多行原生注释符号。4.B解析:>覆盖写入文件,>>追加写入文件,|为管道符。5.B解析:$0输出脚本自身名称,$1-$9为脚本位置参数,$#为参数个数。6.A解析:history命令用于查看终端历史执行命令,支持检索、重复执行。7.D解析:Shell循环仅支持for、while、until,switch为分支判断语句,非循环。8.B解析:grep核心功能为文本内容筛选匹配,find用于查找文件路径。9.C解析:-e判断文件/目录是否存在,-f判断是否为普通文件,-d判断是否为目录。10.B解析:sed是流式文本编辑器,常用于批量替换、修改文本内容。11.B解析:$#统计脚本传入的位置参数总个数。12.B解析:命令末尾加&,可将程序放入后台运行,不占用当前终端。13.A解析:cut命令用于按列切割、提取文本指定字段,常用于结构化文本处理。14.A解析:set-e开启报错退出,命令执行失败立即终止脚本,避免错误累积。15.C解析:wc命令专门用于统计文本行数、单词数、字符数。二、判断题答案及解析1.×解析:Shell脚本无强制后缀要求,后缀.sh仅为规范标识,赋予执行权限后即可运行。2.√解析:环境变量全局生效,局部变量仅当前脚本/终端生效,脚本结束自动失效。3.√解析:>>为追加重定向,保留原文件内容,在末尾新增数据。4.×解析:Shell变量赋值等号绝对不能加空格,否则会被识别为命令执行,直接报错。5.√解析:grep-v反向匹配,过滤掉包含指定字符的行,输出剩余内容。6.√解析:$?返回上一条命令状态码,0为成功,非0为执行失败。7.×解析:kill-9是强制杀死进程,暴力终止程序,易造成文件损坏、数据丢失。8.√解析:Shellfor循环支持遍历数字、字符串、文件列表、命令输出结果。9.×解析:sed默认仅输出修改结果,不改动源文件,需加-i参数才会直接修改源文件。10.×解析:bash脚本名无需执行权限即可运行;./脚本名必须赋予x执行权限,二者运行机制不同。三、简答题参考答案1.$*和$@的区别两者均用于获取脚本所有传入参数,核心差异体现在带引号场景下:(1)不加双引号时,二者无区别,均将所有参数作为独立个体遍历;(2)加双引号后,"$*"会将所有参数合并为一个完整字符串;(3)加双引号后,"$@"会保留每个参数的独立性,逐个遍历参数;实际开发中,统一使用"$@"遍历参数,避免空格分割导致的参数错乱问题。2.find和grep命令区别及场景(1)find命令:核心作用是查找文件/目录,基于文件路径、大小、时间、权限、名称等属性检索;适用场景:批量查找指定后缀、指定修改时间、指定大小的文件,可搭配-exec执行批量操作。(2)grep命令:核心作用是筛选文本内容,基于字符串、正则表达式匹配文件内的文本行;适用场景:检索日志关键字、过滤文本内容、批量匹配文件内指定字符。3.Shell三种变量定义方式及作用(1)自定义局部变量:格式变量名=值,仅当前脚本/终端生效,临时存储数据,脚本结束失效;(2)环境变量:export变量名=值,全局生效,子进程、新终端均可读取,用于全局参数配置;(3)只读变量:readonly变量名=值,变量赋值后无法修改、删除,用于固定常量参数,防止误修改。4.管道符|工作原理及使用场景工作原理:将前一条命令的标准输出,作为后一条命令的标准输入,实现命令结果接力处理。使用场景:多用于数据二次处理,例如筛选、排序、统计、去重,典型用法:ls|greptxt、catlog.txt|wc-l。5.set调试参数作用set-x:开启脚本调试模式,逐行打印执行的命令及结果,方便排查脚本语法、逻辑错误;set-e:开启错误退出,任意一条命令执行失败,立即终止脚本运行,避免错误累积扩散;set-u:开启未定义变量检测,脚本中使用未定义变量时直接报错退出,杜绝变量空值导致的异常。四、实操编程题参考答案(可直接运行)1.遍历统计/opt下txt文件脚本bash

#!/bin/bash

#定义文件路径

dir="/opt"

#统计txt文件个数

count=$(find$dir-maxdepth1-typef-name"*.txt"|wc-l)

echo"/opt目录下txt文件总个数:$count"

echo"所有txt文件名称如下:"

#遍历输出文件名

forfilein$(ls$dir/*.txt2>/dev/null)

do

echo$file

done说明:加入2>/dev/null屏蔽无txt文件时的报错,maxdepth1仅遍历一级目录,不递归子目录。2.判断输入数字是否为偶数脚本bash

#!/bin/bash

#接收用户输入

read-p"请输入一个数字:"num

#判断是否为纯数字

if[[!$num=~^[0-9]+$]];then

echo"输入错误,请输入纯数字!"

exit1

fi

#判断奇偶

if[$((num%2))-eq0];then

echo"$num是偶数"

else

echo"$num是奇数"

fi说明:增加数字合法性校验,避免用户输入字符导致脚本报错,兼容性更强。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论