1. 以下哪个是 Bash 脚本的标准开头(Shebang 行)?( )
A. #!bash
B. #!/bin/bash
C. //bin/bash
D. #/bin/bash
答案:B
2. 要查看当前目录下所有文件(含隐藏文件)的详细信息,应使用哪个命令?( )
A. ls -l
B. ls -a
C. ls -la
D. ls -lh
答案:C
3. 变量var="hello world",执行echo ${#var}的输出结果是?( )
A. 10
B. 11
C. 12
D. 13
答案:B
4. 以下哪个命令用于递归复制目录及其内容?( )
A. cp -r
B. cp -f
C. cp -p
D. cp -v
答案:A
5. 要创建文件file.txt的软链接link.txt,正确的命令是?( )
A. ln file.txt link.txt
B. ln -s file.txt link.txt
C. ln -h file.txt link.txt
D. ln -d file.txt link.txt
答案:B
6. Bash 中,哪个特殊变量表示传递给脚本的参数个数?( )
A. $*
B. $@
C. $#
D. $?
答案:C
7. 以下哪个命令用于统计文件的行数?( )
A. wc -w
B. wc -c
C. wc -l
D. wc -m
答案:C
8. 要将命令的标准错误输出丢弃,应重定向到哪个设备?( )
A. /dev/zero
B. /dev/null
C. /dev/random
D. /dev/stdout
答案:B
9. 以下哪个是case语句的结束标志?( )
A. end
B. break
C. esac
D. exit
答案:C
10. 变量var="abcdef",执行echo ${var:2:3}的输出是?( )
A. bcd
B. cde
C. def
D. abc
答案:B
11. 要查找/etc目录下所有.conf后缀的文件,正确的find命令是?( )
A. find /etc -name "*.conf"
B. find /etc -type f -name *.conf
C. find /etc -name *.conf -type f
D. find /etc -name [*.conf]
答案:A
12. Bash 中,哪个命令用于将变量导出到子 Shell?( )
A. export
B. set
C. declare
D. env
答案:A
13. 以下哪个循环结构与 C 语言的for循环语法类似?( )
A. for var in list; do ... done
B. for ((exp1; exp2; exp3)); do ... done
C. while [ condition ]; do ... done
D. until [ condition ]; do ... done
答案:B
14. 要替换文件中所有 "old" 为 "new",正确的sed命令是?( )
A. sed 's/old/new' file.txt
B. sed 's/old/new/g' file.txt
C. sed 'replace old new' file.txt
D. sed 's/old/new/*' file.txt
答案:B
15. 以下哪个命令用于查看系统的内核版本?( )
A. uname -r
B. uname -n
C. uname -m
D. uname -a
答案:A
16. 变量var=10,执行let var+=5后,var的值是?( )
A. 10
B. 15
C. 105
D. 5
答案:B
17. 要删除当前目录下所有以.tmp为后缀的文件,正确的命令是?( )
A. rm *.tmp
B. rm -r *.tmp
C. rm -f *.tmp
D. rm -rf *.tmp
答案:A
18. Bash 中,哪个命令用于声明只读变量?( )
A. declare -r
B. declare -i
C. declare -x
D. declare -a
答案:A
19. 要查看文件file.txt的最后 10 行内容,应使用哪个命令?( )
A. head -10 file.txt
B. tail -10 file.txt
C. cat file.txt | tail
D. less file.txt | tail -n 10
答案:B
20. 以下哪个是if语句的正确语法?( )
A. if condition then ... fi
B. if [ condition ]; then ... fi
C. if (condition) then ... end
D. if condition; do ... done
答案:B
21. 要将脚本的输出同时保存到文件和屏幕,应使用哪个重定向方式?( )
A. > file.txt
B. >> file.txt
C. 2> file.txt
D. tee file.txt
答案:D
22. Bash 中,哪个特殊变量表示上一条命令的退出状态码?( )
A. $!
B. $?
C. $$
D. $_
答案:B
23. 以下哪个命令用于创建目录(含父目录)?( )
A. mkdir dir
B. mkdir -p dir/subdir
C. mkdir -r dir/subdir
D. mkdir -m 755 dir
答案:B
24. 变量var="Linux Shell",执行echo ${var,,}的输出是?( )
A. LINUX SHELL
B. linux shell
C. Linux Shell
D. Linux shell
答案:B
25. 要查找文件中包含 "error" 的行,正确的grep命令是?( )
A. grep error file.txt
B. grep -v error file.txt
C. grep "error" file.txt
D. grep -n error file.txt
答案:A
26. 以下哪个命令用于打包并压缩目录(使用 gzip 压缩)?( )
A. tar -cvf dir.tar dir
B. tar -czvf dir.tar.gz dir
C. tar -cjvf dir.tar.bz2 dir
D. tar -xvf dir.tar dir
答案:B
27. Bash 中,哪个循环会在条件为假时持续执行?( )
A. for
B. while
C. until
D. select
答案:C
28. 要修改文件file.sh的权限为 "所有者可读写执行,其他只读",应使用哪个命令?( )
A. chmod 744 file.sh
B. chmod 755 file.sh
C. chmod 644 file.sh
D. chmod 655 file.sh
答案:A
29. 变量var="/home/user/file.txt",执行echo ${var##*/}的输出是?( )
A. /home/user/
B. file.txt
C. home/user/file.txt
D. file
答案:B
30. 以下哪个命令用于查看系统当前登录的用户?( )
A. w
B. who
C. users
D. 以上都是
答案:D
31. Bash 中,哪个命令用于调试脚本(显示执行的命令)?( )
A. bash -v script.sh
B. bash -x script.sh
C. bash -n script.sh
D. bash -e script.sh
答案:B
32. 要将命令的标准输出和标准错误都重定向到log.txt,正确的方式是?( )
A. command > log.txt 2> log.txt
B. command &> log.txt
C. command > log.txt && 2> log.txt
D. command 2> log.txt > log.txt
答案:B
33. 以下哪个是 Shell 函数的正确定义格式?( )
A. function name { ... }
B. name() { ... }
C. function name() { ... }
D. 以上都是
答案:D
34. 变量var="123",执行echo $((var + 456))的输出是?( )
A. 579
B. 123456
C. 123+456
D. 错误
答案:A
35. 要查看文件系统的磁盘空间使用情况(人类可读格式),应使用哪个命令?( )
A. df -h
B. du -h
C. df -k
D. du -k
答案:A
36. Bash 中,哪个命令用于查看命令历史?( )
A. history
B. hist
C. cmdhist
D. historylist
答案:A
37. 以下哪个命令用于比较两个文件的差异?( )
A. cmp
B. diff
C. comm
D. 以上都是
答案:D
38. 变量var="abc123def",执行echo ${var//[0-9]/}的输出是?( )
A. abcdef
B. 123
C. abc123def
D. abc def
答案:A
39. 要在后台运行命令并忽略挂起信号,应使用哪个命令?( )
A. command &
B. nohup command &
C. bg command
D. fg command &
答案:B
40. 以下哪个是正则表达式中的 "匹配任意单个字符" 的元字符?( )
A. *
B. .
C. ?
D. []
答案:B
41. Bash 中,哪个特殊变量表示当前 Shell 的进程号?( )
A. $!
B. $$
C. $?
D. $0
答案:B
42. 要删除变量var,应使用哪个命令?( )
A. delete var
B. unset var
C. remove var
D. clear var
答案:B
43. 以下哪个命令用于将文本按数值排序?( )
A. sort
B. sort -n
C. sort -r
D. sort -u
答案:B
44. 变量var="hello",执行echo ${var^}的输出是?( )
A. HELLO
B. Hello
C. hello
D. hELLO
答案:B
45. 要查看目录/home的总大小,应使用哪个命令?( )
A. df -h /home
B. du -sh /home
C. du -h /home
D. df -sh /home
答案:B
46. Bash 中,哪个命令用于设置 Shell 选项(如nocasematch)?( )
A. set
B. shopt
C. options
D. config
答案:B
47. 以下哪个命令用于从文件中读取输入并赋值给变量?( )
A. read
B. get
C. input
D. scan
答案:A
48. 变量var="file.txt",执行echo ${var%.*}的输出是?( )
A. file
B. txt
C. file.txt
D. file.
答案:A
49. 要创建一个 100MB 的空文件,正确的命令是?( )
A. dd if=/dev/zero of=file bs=100M count=1
B. dd if=/dev/null of=file bs=100M count=1
C. touch file && truncate -s 100M file
D. 以上都是
答案:A
50. 以下哪个是select循环的默认提示符变量?( )
A. PS1
B. PS2
C. PS3
D. PS4
答案:C
51. Bash 中,哪个命令用于查看变量的属性?( )
A. declare -p var
B. echo $var
C. var -info
D. show var
答案:A
52. 要查找/tmp目录下 3 天前修改的文件并删除,正确的命令是?( )
A. find /tmp -mtime +3 -delete
B. find /tmp -mtime 3 -rm
C. find /tmp -atime +3 -exec rm {} \;
D. find /tmp -ctime 3 -delete
答案:A
53. 变量var=(a b c d),执行echo ${var[2]}的输出是?( )
A. a
B. b
C. c
D. d
答案:C
54. 以下哪个命令用于解压缩gzip压缩的文件?( )
A. gzip -d file.gz
B. gunzip file.gz
C. zcat file.gz > file
D. 以上都是
答案:D
55. Bash 中,哪个循环控制命令用于跳过当前循环的剩余部分?( )
A. break
B. continue
C. exit
D. return
答案:B
56. 要修改文件file.txt的所有者为user,应使用哪个命令?( )
A. chown user file.txt
B. chgrp user file.txt
C. chmod user file.txt
D. chown :user file.txt
答案:A
57. 变量var="hello world",执行echo ${var:6}的输出是?( )
A. world
B. hello
C. hello world
D. world
答案:A
58. 以下哪个命令用于查看系统的运行时间?( )
A. uptime
B. runtime
C. sysinfo
D. timedatectl
答案:A
59. Bash 中,哪个命令用于测试文件是否为目录?( )
A. test -f file
B. test -d dir
C. test -e path
D. test -r file
答案:B
60. 要将脚本的输出追加到文件log.txt(不覆盖原有内容),应使用哪个重定向?( )
A. > log.txt
B. >> log.txt
C. 2>> log.txt
D. &>> log.txt
答案:B
61. 以下哪个是awk命令的正确用法(计算第二列总和)?( )
A. awk '{sum += $2} END {print sum}' data.txt
B. awk 'sum += $2; END {print sum}' data.txt
C. awk '{sum = sum + $2} END {print sum}' data.txt
D. 以上都是
答案:D
62. Bash 中,哪个特殊变量表示所有传递给脚本的参数?( )
A. $*
B. $@
C. 以上都是
D. 以上都不是
答案:C
63. 要查看文件file.txt的前 5 行内容,应使用哪个命令?( )
A. head -n 5 file.txt
B. head -5 file.txt
C. cat file.txt | head 5
D. 以上都是
答案:D
64. 变量var="123abc",执行echo ${var//[a-z]/X}的输出是?( )
A. 123XXX
B. XXXabc
C. 123abc
D. 1XXabc
答案:A
65. 以下哪个命令用于挂载 ISO 文件?( )
A. mount -o loop file.iso /mnt
B. mount file.iso /mnt
C. mount -t iso9660 file.iso /mnt
D. mount -o iso9660 file.iso /mnt
答案:A
66. Bash 中,哪个命令用于清除命令历史?( )
A. history -c
B. clear history
C. history clear
D. rm ~/.bash_history
答案:A
67. 要删除目录dir及其所有内容,正确的命令是?( )
A. rm dir
B. rm -r dir
C. rm -rf dir
D. rmdir dir
答案:C
68. 变量var="hello",执行echo ${var:-world}的输出是?( )
A. hello
B. world
C. helloworld
D. hello-world
答案:A
69. 以下哪个命令用于查看进程状态?( )
A. ps
B. top
C. pstree
D. 以上都是
答案:D
70. Bash 中,哪个命令用于设置定时任务?( )
A. cron
B. crontab
C. at
D. 以上都是
答案:D
二、填空题(共 30 题)
1. Shell 脚本中,**__**用于添加注释(单行注释)。
答案:#
2. Bash 中,**__**变量用于保存当前工作目录。
答案:PWD
3. 要查看变量var是否已定义,可使用表达式**__**。
答案:${var:?未定义}
4. 命令chmod 755 file.sh中,数字 7 表示**__**权限(rwx)。
答案:所有者可读写执行
5. 要将命令的输出作为变量的值,可使用**__** 或$(command)语法。
答案:'command'
6. Bash 中,**__**命令用于切换到上一个工作目录。
答案:cd -
7. 正则表达式中,__ 用于匹配行首,**__**用于匹配行尾。
答案:^;$
8. 变量var="abcdef",执行echo ${var#ab}的输出是**__**。
答案:cdef
9. 要在脚本中捕获信号(如 Ctrl+C),可使用**__**命令。
答案:trap
10. Bash 中,**__**数组变量用于保存函数调用堆栈。
答案:FUNCNAME
11. 命令tar -xjvf file.tar.bz2中,j选项表示使用**__**压缩格式。
答案:bzip2
12. 要设置脚本的超时时间,可使用**__**变量。
答案:TMOUT
13. Bash 中,**__**命令用于查看别名列表。
答案:alias
14. 变量var=(1 2 3 4 5),执行echo ${#var[@]}的输出是**__**。
答案:5
15. 要将文件file.txt的权限修改为 "所有者可读可写,其他无权限",应使用命令**__**。
答案:chmod 600 file.txt
16. Bash 中,**__**命令用于查看文件类型。
答案:file
17. 正则表达式中,**__**用于匹配前面的字符 0 次或多次。
答案:\*
18. 变量var="hello world",执行echo ${var// /-}的输出是**__**。
答案:hello-world
19. 要在后台运行的任务切换到前台,应使用**__**命令。
答案:fg
20. Bash 中,**__**命令用于验证脚本的语法错误(不执行)。
答案:bash -n
21. 命令df -T中,T选项用于显示**__**。
答案:文件系统类型
22. 变量var="100",执行echo $((var * 2))的输出是**__**。
答案:200
23. 要删除数组arr的第三个元素(索引 2),应使用命令**__**。
答案:unset arr[2]
24. Bash 中,**__**变量用于保存命令历史文件的路径。
答案:HISTFILE
25. 命令grep -i "error" file.txt中,i选项表示**__**。
答案:忽略大小写
26. 要将脚本的错误输出重定向到标准输出,应使用**__**。
答案:2>&1
27. Bash 中,**__**命令用于查看用户的 UID 和 GID。
答案:id
28. 变量var="file.txt",执行echo ${var/%.txt/.log}的输出是**__**。
答案:file.log
29. 要创建一个空文件,可使用命令**__** 或touch file.txt。
答案:> file.txt
30. Bash 中,**__**命令用于查看系统的主机名。
答案:hostname