Linux 综合练习
一、选择题(每题2分,共40分)
-
当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( )
A. NID
B. PID
C. UID
D. CID
-
下面哪个命令是用来定义shell的全局变量( )
A. exportfs
B. alias
C. exports
D. export
-
哪个目录存放用户密码信息( )
A. /boot
B. /etc
C. /var
D. /dev
-
默认情况下管理员创建了一个用户,就会在( )目录下创建一个用户主目录。
A. /usr
B. /home
C. /root
D. /etc
-
如果用户想对某一命令详细的了解,可用( )
A. ls
B. help (内部)
C. man (列举的信息多)
D. dir
-
vi中哪条命令是不保存强制退出( )
A. :wq
B. :wq!
C. :q!
D. :quit
-
在Linux9中,一般用( )命令来查看网络接口的状态
A. ping
B. ipconfig
C. winipefg
D. ifconfig
-
以下哪个命令可以终止一个用户的所有进程( )
A. skillall
B. skill
C. kill
D. killall
-
用"rm -i",系统会提示什么来让你确认( )
A. 命令行的每个选项
B. 是否真的删除
C. 是否有写的权限
D. 文件的位置
-
哪个命令可以将普通用户转换成超级用户( )
A. super
B. passwd
C. tar
D. su
-
默认情况下管理员创建了一个用户,就会在( )目录下创建一个用户主目录。
A. /usr
B. /home
C. /root
D. /etc
-
当使用mount进行设备或者文件系统挂载的时候。需要用到的设备名称位于( )目录。
A. /bome
B. /bin
C. /enc
D. /dev
-
如果要列出一个目录下的所有文件需要使用命令行( )
A. -ls -l
B. ls
C. ls -a (所有)
D. ls -d
-
在vi编辑器里,命令"dd"用来删除当前的( )
A. 行
B. 变量
C. 字
D. 字符
-
若要将鼠标从VM中释放出来,可按( )键来实现
A. Ctrl+A
B. Ctrl+Alt+Del
C. Ctrl+Alt+Enter
D. Ctrl+Enter
-
/etc/shadow文件中存放( )
A. 用户账号基本信息
B. 用户口令的加密信息
C. 用户组信息
D. 文件系统信息
-
为卸载一个软件包,应使用( )
A. rpm -i
B. rpm -e
C. rpm -q
D. rpm -v
-
在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是( )
A. fold
B. join
C. tr
D. read
-
用户编写了一个文本文件a.txt,想将该文件名称改为txt.a,下列命令( )可以实现。
A. cd a.txt txt.a
B. echo a.txt > txt.a
C. rm a.txt txt.a
D. cat a.txt > txt.a
-
以长格式列目录时,若文件 test的权限描述为: drwxrw-r--,则文件test的类型及文件主的权限是( )
A. 目录文件、读写执行
B. 目录文件、读写
C. 普通文件、读写
D. 普通文件、读
二、简答题(每题5分,共15分)
-
vi编辑器有哪几种工作模式?如何在这几种工作模式之间转换?
-
执行命令
ls -l
时,某行显示如下:-rw-r--r-- 1 chris chris 207 jul 20 11:58 mydata
(1) 用户 chris对该文件具有什么权限?
(2) 执行命令useradd Tom
后,用户Tom对该文件具有什么权限?
(3) 如何使任何用户都可以读写执行该文件?
(4) 如何把该文件属主改为用户root?
- 什么是位置变量? shell的变量类型有哪些种?
三、操作题(每题4分,共20分)
-
假设你的用户账号是zhang,现在你登录进入linux系统,查看当前登录到系统中的用户,查看当前系统中运行的进程,然后再退出系统。
-
在当前目录
/home/zhang
下新建一个目录back,将当前目录改为back,在back下新建2个长度为0的文件test1、test2,然后把test2移到其父目录中并改名为file2。 -
现在需统计当前目录
/home/zhang
下普通文件的数目并显示结果,如何实现? -
假设你是系统管理员,需要增加一个新的用户账号zhang,为新用户设置初始密码,锁定用户账号uly,并删除用户账号chang。
-
若需将
/home/zhang
目录下的所有文件打包压缩成/tmp/zhang.tar.gz
,你准备怎么做? 当需要从压缩包中恢复时,又该如何处理?
四、Shell程序题(第1、2题共15分,第3题10分)
-
下面给出了一个SHELL程序,试对其行后有# (n)形式的语句进行解释,并说明程序完成的功能。
#!/bin/sh
DIRNAME=ls /root | grep bak
#(1)
if [ -z "DIRNAME" ] ; then #(2) mkdir /root/bak ; cd /root/bak #(3) fi YY=`date +%y`; MM=`date +%m`; DD=`date +%d` #(4) BACKETC=YYMMDD_etc.tar.gz #(5)
tar -zcvf $BACKETC /etc #(6)
echo "fileback finished!" -
下面给出了一个SHELL程序,试对其行后有# (n)形式的语句进行解释,并说明程序完成的功能。
#!/bin/bash #(1)
dir=1 #(2) if [ -d dir ] #(3)
then
cd dir #(4) for file in * do if [ -f file ] #(5)
then
cat file #(6) echo "end of file file"
fi
done
else
echo "bad directory name $dir"
fi -
写一个SHELL程序,该程序能接收用户从键盘输入的100个整数,然后求出其总和、最大值及最小值。
答案部分
一、选择题
1.B
2.D
3.B
4.B
5.C
6.C
7.D
8.D
9.B
10.D
11.B
12.D
13.C
14.A
15.C
16.B
17.B
18.D
19.D
20.A
二、简答题
- vi工作模式
-
命令模式:默认进入模式,用来执行删除、复制、粘贴、保存、退出等命令。
-
编辑模式:按
i
、a
、o
等进入,可以插入文本。 -
底行模式:按
:
进入,可输入保存、退出、查找替换命令。
转换: -
命令模式 → 编辑模式:
i/a/o
-
编辑模式 → 命令模式:
Esc
-
命令模式 → 底行模式:
:
- 文件权限分析:
-
(1) chris对该文件有读、写权限。
-
(2) 用户Tom属于其他用户,对该文件有只读权限。
-
(3) 命令:
chmod 777 mydata
-
(4) 命令:
chown root mydata
- 位置变量 :在Shell脚本中,
$1, $2, ...
表示脚本执行时传入的参数。
Shell变量类型:用户自定义变量、环境变量、位置变量、预定义变量。
三、操作题
who # 查看当前登录用户
ps -ef # 查看当前运行进程
exit # 退出系统
mkdir /home/zhang/back
cd /home/zhang/back
touch test1 test2
mv test2 ../file2
ls -l /home/zhang | grep "^-" | wc -l
useradd zhang
passwd zhang
usermod -L uly
userdel chang
tar -zcvf /tmp/zhang.tar.gz /home/zhang
tar -zxvf /tmp/zhang.tar.gz -C /home/zhang
四、Shell程序题
-
解释:
(1) 查找/root目录中是否存在含bak的目录名。
(2) 判断变量是否为空,如果为空表示没有bak目录。
(3) 创建/root/bak目录并进入。
(4) 获取当前日期的年月日。
(5) 拼接成压缩包名称。
(6) 将/etc目录打包压缩。
功能: 备份/etc目录到/root/bak下,文件名包含日期。 -
解释:
(1) 指定解释器为bash。
(2) 将第一个参数赋值给变量dir。
(3) 判断是否为目录。
(4) 切换到该目录。
(5) 判断是否为普通文件。
(6) 输出文件内容。
功能: 显示指定目录下所有普通文件的内容,每个文件结束打印提示。 -
示例程序:
#!/bin/bash
sum=0
max=-999999
min=999999for ((i=1;i<=100;i++))
do
read num
sum=((sum+num)) if [ num -gt max ]; then max=num
fi
if [ num -lt min ]; then
min=$num
fi
doneecho "总和: sum" echo "最大值: max"
echo "最小值: $min"