linuxshell测试题

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

相关推荐
崔庆才丨静觅5 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了6 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅6 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅6 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅6 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment7 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅7 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊7 小时前
jwt介绍
前端
爱敲代码的小鱼7 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax