【Linux操作系统试卷】
这份试卷是针对Linux入门级考生设计的,旨在检验考生对Linux基本应用和Shell编程的掌握程度。试题涵盖了从基本的文件管理命令到通配符的理解,再到Shell脚本的编写和执行,以及字符串处理的编程技巧。
一、写操作命令
1) `mv /zh/* /ls/`:此命令将/zh目录下的所有文件和子目录移动到/ls目录下。
2) `mv /ls/f2 /ls/cq/ && mv /ls/cq/f2 /ls/cq/f3`:首先将f2文件移动到/cq目录下,然后重命名为f3。
3) `rm -r /ls/cg1`:删除子目录/ls/cg1。
4) `ls /ls/[a-z]*`:显示子目录/ls下所有以小写字母a至z开头的文件信息。
二、解释通配符
1. `*Text*`:匹配包含"Text"的任意字符串。
2. `[ab-dm]*`:匹配以[a-dm]中的任意一个字符开头,后面跟任意数量字符的字符串。
3. `[ab-dm]disk`:匹配以[a-dm]中的任意一个字符开头,后跟"disk"的字符串。
4. `[A-D]???[0123]`:匹配以[A-D]中的任意一个大写字母开头,后跟任意三个字符,再接[0123]中的任意一个数字的字符串。
5. `[0-9]ABC*`:匹配以0-9中的任意一个数字开头,后跟"ABC",后面可以有任意数量字符的字符串。
三、编写简单Shell程序
1. 使用vi编辑器创建一个名为listCmd的Shell脚本,内容如下:
```
#!/bin/bash
echo "显示当前目录下的文件名,并且以逆序方式"
ls -lt /root | head -n -1 | tac
```
这个脚本首先列出/root目录下的文件,按照修改时间反向排序,然后通过tac命令将列表逆序显示。
2. 将listCmd文件设置为可执行:`chmod +x listCmd`,然后执行:`./listCmd`,验证脚本能否按预期运行。
四、编写一个脚本
编写一个Shell脚本,根据用户输入的数字n生成乘法表。例如,当用户输入2时,脚本应输出:
```
#!/bin/bash
read -p "请输入一个数字: " num
for ((i=1; i<=9; i++))
do
echo "$num * $i = $((num*i))"
done
```
运行此脚本,用户输入2,将得到2的乘法表。
五、程序填空
编写一个反转字符串的Shell脚本。空白处应填写如下:
```bash
#!/bin/bash
echo "Enter a String:"
read str
len=$(echo "$str" | wc -c)
rev_str=""
while test $len -ne 0
do
temp_char=$(echo "$str" | cut -c $len)
rev_str="${rev_str}${temp_char}"
len=$(expr $len - 1)
done
echo "$rev_str"
```
这个脚本读取用户输入的字符串,然后反向输出。