linux 山东大学 试卷_【Linux】山东大学Linux应用课程复习指导例题答案

找到这篇博文的人,一定被Linux考试弄得很爆炸吧哈哈哈。

放点资料供大家学习和参考。如有错误,还请指正。

【例题】

一、填空题。

1、ls、cp等命令文件一般位于bin目录。

2、在Linux系统中,第一个启动的进程是:init进程、其编号为:1。

3、给出文件的三种类型的名称:普通文件、目录文件、设备文件。

4、当前用户是stu,当前目录在/home/stu/mydir/,则执行cd …/…命令后当前目录是home,再执行cd命令后当前目录是home/stu。

5、env命令可以显示环境变量。

6、在多用户环境下,管理员在关机重启机器之前一般可以使用wall命令通知所有在线用户注意存盘退出。

7、root用户具有系统的最大权限。

二、选择题。

1、我们实验使用的shell是哪个?

A、bsh B、ksh C、csh D、bash

2、可以分页显示文件内容的命令是?

A、pwd B、cat C、more D、page

3、bash中默认已有的变量一般不包括?

A、find B、PWD C、HOME D、USER。

4、从标准输入读入值并赋予一个变量的命令是?

A、out B、scan C、read D、in

5、 下列哪个命令可将文本文件f.txt拷贝为f.bak?

A、cp f.txt | f.bak B、cat f.txt>f.bak C、cp f.txt > f.bak D、ls f.txt f.bak

三、简答下列问题。

1、 解释read命令的功能,举例说明其用法。

read命令是从标准输入读入变量值,例如:

read var1 var2

hello world(注:var1为hello,var2为world)

read var1 var2

hello world 0.0(注:var1为hello,var2为world!0.0)

read var1 var2

hello(注:var1为hello,var2为空)

2、 如果当前目录下只有文件abc123,解释echo abc和echo xyz=abc命令的输出。

“echo abc*”命令会输出abc123,“echo xyz=abc*”命令会输出xyz=abc*。

出现这种结果的原因为,“*”既可以作为通配符,也可以作为字符。由于目录下的文件只有abc123,那么在“echo abc*”时,*作为通配符,匹配的结果就是abc123。而由于目录下没有以xyz=abc开头的文件,所以在“echo xyz=abc*”时,*是作为一个字符串进行输出的。

3、画图示意操作系统、硬件和应用软件关系。

四、根据以下小题的要求写出相应的命令或命令组。

1、 显示当前目录下文件名以abc开头同时以123结尾的文件。

ls | grep "^abc.*123$"

2、把文本文件file1复制为file2,然后在file2尾部增加一行内容为“END”。

设置权限,自己的文件file1,只允许自己完全访问和使用,自己之外的人仅有读权限。

cp file1 file2

echo "END" >> file2

chmod 744 file1

3、 假设myprog.sh是你所写的一个脚本程序,写出命令在后台执行它。

sh myprog.sh &

4、用命令或命令组合列出当前目录下的所有目录文件(不列出其他文件)。

ls -F | grep "/"

ls -l | grep "^d"

5、在上一级目录的子目录src中建立一个空文件,文件名叫my_logfile。

touch ../src/my_logfile

6、在当前路径下建立 /letters/mail的符号链接m-soft。

ln -s /letters/mail ./m-soft

7、在屏幕上显示字符串“$abc”。

echo \$abc

五、综合题(shell脚本实现方法有很多,这里只给出我的参考方法哈~)。

1、写一个shell脚本,每隔10秒,检查当前系统中有没有进程名字为“firefox”的进程,如果有的话显示“firefox 进程出现了!”并退出,返回码设置为等待的秒数。

while true

do

process = `pgrep -f firefox`

i=0

if [ ${#process} -gt 0 ]

then

echo “firefox进程出现了!”

echo “等待时间为:$i”

break

else

i = i+10

sleep 10

fi

done

2、解释这行命令的含义。如果输入123,会显示什么?如果输入1234显示什么?

#从标准输入中读取abc的值

read abc;

#若abc小于999,则res为too small。否则,res为ok

test $abc -lt 999 && res='too small' || res=ok;

#输出res

echo $res;

3、编写一个Shell脚本,求矩形面积。长、宽参数从命令行传入。

read width height

area=$(($width*$height))

echo $area

4、写一个脚本,持续监视用户stu是否登录,如果登录了,就每隔1分钟把你的用户名和QQ号码发给他,重复发送3次为止。

while true

do

user=`who | grep -w “stu”`

if [ ${#user} -gt 0 ]

then

echo “please enter message and press ctrl + D”

write stu

sleep 60

echo “please enter message and press ctrl + D”

write stu

sleep 60

echo “please enter message and press ctrl + D”

write stu

sleep 60

break

fi

done

5、给出下脚本的执行结果。

i=1

while [ “$i” –lt 5 ]

do

j=$((i*i))

echo “$j”

i=$((i+1))

done

运行结果为:

1

4

9

16

6、试解释以下命令或命令组的含义。(15分)

(1)$grep ‘789’ l ppasswd | wc –l

统计带有789的密码个数(实际上这个命令根本执行不了)

(2)ls –l | grep ‘^d’

列出ls -l输出的内容中,d开头的内容

(3)ls -d ?[!y]*[e-f]

任意单个字符+非y字符+任意多个字符+e或f结尾

(4)echo $HOME

输出用户的根目录

(5)cat file1 file2 > cat.out 2> cat.err

将file1,2的内容输出至cat.out,并将错误信息输出到cat.err

7、假设使用ls命令: $ls –lR 显示下列信息

drwxr-xr-x 3 judy finance …. jobs

./jobs:

drwxrwxrwx 2 judy finance …. work

./work:

-rw–r-- r-- 1 judy finance …. joblog

用户 Fred是 finance 组的成员, Fred是否可以拷贝 joblog 文件到自己的目录下?简述理由。

可以拷贝文件,因为joblog的同组用户有读权限,对work目录和jobs目录有执行权限,并且对自己的目录有写权限,所以可以复制。

你可能感兴趣的:(linux,山东大学,试卷)