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

相关推荐
irises1 天前
开源项目next-ai-draw-io核心能力拆解
前端·后端·llm
pas1361 天前
28-mini-vue customRender
前端·javascript·vue.js
REDcker1 天前
web 端 H265 软解码实现原理与使用说明
前端·音视频·播放器·h265·解码·软解码
倚栏听风雨1 天前
深度拆解:从 npm install 到手写一个全局 CLI 工具
前端
攀登的牵牛花1 天前
前端向架构突围系列 - 架构方法(二):UML前端建模的一般方法和工具
前端·前端框架·uml
代码猎人1 天前
Object.assign和扩展运算符是深拷贝还是浅拷贝,两者有什么区别
前端
秋天的一阵风1 天前
🎥解决前端 “复现难”:rrweb 录制回放从入门到精通
前端·javascript·开源
意法半导体STM321 天前
【文末送NUCLEO-G431RB】一文说明白STM32G4双Bank启动与升级 LAT1596
前端·数据库·stm32·单片机·嵌入式硬件·mcu·stm32开发
前端一课1 天前
分享:基于Next.js的企业级提示词AI平台
前端