一、选择题
1.Shell程序可以使用预定义的变量,若要表示在命令行中实际给出的所有位置参数的个数,可以使用的特殊变量是(C)
A.$$ B.$! C.$# D. $*
预定义变量扩展:
$# :命令行中位置参数的个数
$* :所有位置参数的内容
$? :上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0表示执行异常或出错
$$ :当前所在进程的进程号
$! :后台运行的最后一个进程号
$0 :当前执行的进程/程序名
2.在UNIX系统中,用于查看系统运行状态的命令(类似于Windows中的任务管理器)是(A)
A.top B.grep C.ps D.ee
top:显示进程所占的系统资源
grep:一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
ps:查看服务器进程信息,如同Windows中的任务管理器。
3.Shell就是UNIX提供用户的使用界面,Shell处在(A)之间,起着协调用户与系统的一致性、在用户与系统之间进行交互作用,即Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。
A.内核与外层应用程序 B.内核与硬件
C.硬件与外层应用程序 D.硬件与内核
4.在任何一个UNIX系统平台上都存在,并被称为标准Shell是(A)
A.Bourne Shell B.Korn Shell
C.C Shell D.A Shell (bash)
bourne shell级系统中使用的sh
bash即bourne again shell
区别:bash是增强版
5.在Shell程序中用来在标准输入中读入数据的命令是(A)
A. read B.write C.>> D.<<
6.在Shell程序中用来定义全局变量的命令是(A)
A.export B.profile C.import D.define
7.在Shell程序中,使用位置参数时,其值始终存在的位置参数是(A)
A.$0 B.$1 C.$2 D.$9
8.下面哪个命令不能实现查看文件内容(D)
A.cat B.pg C.more D.paste
#分页显示指定文件的内容
#paste将多个文件的内容合并
9.使用chmod可以改变文件属性,例如:chmod 755 a.out是将a.out文件的所有者权限改为(D)
A.可读 B.可写 C.可执行 D.可读可写可执行
10.UNIX系统中,配置文件所在的目录 (D)
A./home/root B./home C./ D. /etc
11.Shell程序可以使用预定义的变量,若要表示在命令行中实际给出的所有位置参数的字符串,可以使用的特殊变量是(D)
A.$$ B. $1 C. $# D. $*
12.在UNIX系统,用于查看系统中正在运行的进程的状态的命令是(C)
A.cd B.pwd C.ps D.ls
13.UNIX系统中,用户源程序经过编译后得到的可执行文件属于(B)
A.ASCLL文件 B. 普通文件 C.目录文件 D.特别文件
14.在vi编辑器中,下列哪个命令可以给任意一个字符串指定缩写形式 (A)
A. ab B.map C.unab D.unmap
15.不同类型文件有不同的类型标志,则目录类型文件的类型标志是 (A)
A.d B.c C.- D.b
16.字符设备文件类型的标志(B)
A.p B. c C.s D.l
17.可以使用以下哪条命令完成逐行连接文件 (B)
A.cut B. paste C.more D.copy
18.一般来说,设备文件所在的目录是 (D)
A./home/root B./home C./ D. /dev
19.使用chmod命令时,作用对象为用户组的字符是 (B)
A.u B. g C.o D.a
#group缩写
20.使用test命令比较字符串时,下面那个操作符用于判断字符为空串 (D)
A.= B.! C.-n D.-z
21.不属于vi中光标移动操作的是 (A)
A.i B.b C.j D.k
22.一般来说,基本命令文件所在的目录是 (C)
A./home/root B./home C./ bin D. /dev
23.unix操作系统是一种(D)操作系统
A.单任务、单用户 B.单任务、多用户
C.多任务、单用户 D.多任务、多用户
24.不属于vi中插入字符的操作是 (D)
A.i B.a C.o D.k
二、简答题
1.以长格式显示当前目录的内容:
ls -l
2.在当前目录下创建一新目录:
mkdir ./a
#a为目录名字
3.将当前目录下的文件report复制到某个目录下:
mv a /home/chen/c205/
#a为当前目录
#/home/chen/c205/为其他目录
4.编译first.cpp,如果有编译错误的话,保存到一个名为error的文件中:
g++ -c -o first first.cpp 2> error
5.将两个文件追加到第三个文件的末尾。>>
cat a b >> c
#a,b,c均为文件
6.rm [a-e]*.c是什么意思?
删除首字母为a到e,扩长名为.c的所有文件
7.将当前系统上的用户列表追加到mydir.list文件:
who >> mydir.list
8.使用cat命令复制myfirst文件到另一个文件,名为myfirst.copy
cat myfirst >> myfirst.copy
9.删除以report开头的所有文件。
rm -r report*
10.查找并删除所有超过10天且没有修改的first.c文件:
find . -name first.c -mtime +10 -exec rm {} \;
11.查看目前有多少个用户正登录使用本系统:
w 或者 who
12.对data文件并行排序并将结果存放在sorted文件中,在后台运行:
sort data >> sorted
13.使用cut命令显示numbers文件每行的头5个字符:
cut -c 1-5 numbers
14.现有文件phone.list,对这个文件按照第二个字段进行排序,查看排序结果:
sort +1 phone.list
15.显示用户数量
who | wc -l
16.在使用mailx接受邮件时,在命令模式下r和R有什么不同?
r:给消息messages发送者和同一消息的其他所有接受者回复消息
R:给消息messages发送者回消息
17.在vi编辑下,将第5行到第10行复制到temp文件,写出命令操作。
: 5 10 w temp
18.mailx tom jeery <myfile(简述本条命令能够实现的操作)
将myfile发送给用户ID为tom,jeery的用户
19.显示who文件,每屏10行。
more -c -10 who
(原文件中的12与4相重,故只有19个)
三、Shell编程题
1.创建一个脚本文件完成如下功能。(亲测)
清屏
空2行
显示当前日期和时间
显示当前用户数
然后显示信息:Now at your service
clear
echo -e "\n"
echo `date`
echo `who | wc -l`
echo "Now at your service"
2.编写一个程序实现如下功能,根据一天的不同时间显示不同的问候语,在中午前显示good morning,在12点到18点之间显示good afternoon,在18点以后,显示good evening。
set `date`
hour=$4
if [ "$hour"\<"12:00:00" ]
then
echo "good morning"
elif [ "$hour"\<"18:00:00" ]
then
echo "good afternoon"
else
echo "good evenning"
fi
exit
3.用B shell编写一段程序实现如下功能:获取用户输入数字(要求1—10之间的数字),并将该数字与5做比较,判断大小。
echo "key in a number(1—10):"
read a
if [ $a -lt 1 -o $a -gt 10 ]
then
echo "ERROR NUMBER"
elif [ $a -lt 5 ]
then
echo "it's less 5"
elif [ $a -eq 5 ]
then
echo "it's equal 5"
else
echo "it's greater than 5"
fi
exit 0
4.写一段程序,锁定键盘,只有输入正确的密码才能使用终端。
clear
echo "Enter your password>"
read pword_1
echo "THIS SYSTEM IS LOACKED..."
read pword_2
until [ "$pword_1" = "$pword_2" ]
do
read pword_2
done
echo "finished"
exit 0