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

这篇博文主要介绍了Linux操作系统的基础知识,包括常用命令、进程管理、文件类型、环境变量、用户权限等。提供了填空题、选择题和简答题,帮助读者巩固学习。此外,还分享了shell脚本的编写和使用,包括条件判断、进程检查、文件操作等。通过实例解析了命令的含义和用法,适合Linux初学者参考和练习。
摘要由CSDN通过智能技术生成

找到这篇博文的人,一定被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目录有执行权限,并且对自己的目录有写权限,所以可以复制。

一. 填空题: 1. 在Linux系统,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 读取要加载的文件系统。 3. Linux文件系统每个文件用 i节点 来标识。 .... 82. 增加一个用户的命令是:adduser 或useradd 。 83 进行字符串查找,使用grep命令。 84. 使用 * 每次匹配若干个字符。 85. /sbin 目录用来存放系统管理员使用的管理程序。 二.单项选择题: 1. 下面的网络协议,面向连接的的协议是: A 。 A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议 2. 在/etc/fstab文件指定的文件系统加载参数, D 参数一般用于CD-ROM等移动设备。 ... 113.不是shell具有的功能和特点的是 C 。 A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令 114.下列对shell变量FRUIT操作,正确的是: C 。 A 为变量赋值:$FRUIT=apple B 显示变量的值:fruit=apple C 显示变量的值:echo $FRUIT D 判断变量是否有值:[ -f “$FRUIT” ] 三.简答题: 1.简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。 参考答案Linux通过i节点表将文件的逻辑结构和物理结构进行转换。 i节点是一个64字节长的表,表包含了文件的相关信息,其有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在i节点表最重要的内容是磁盘地址表。在磁盘地址表有13个块号,文件将以块号在磁盘地址表出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表查找该文件名对应的项,由此得到该文件相........ root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。 6.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。 参考答案: (1)编写shell程序fileback: #!/bin/sh DIRNAME=`ls /root | grep bak` if [ -z "$DIRNAME" ] ; then mkdir /root/bak cd /root/bak fi YY=`date +%y` MM=`date +%m` DD=`date +%d` BACKETC=$YY$MM$DD_etc.tar.gz tar zcvf $BACKETC /etc echo "fileback finished!" (2)编写任务定时器: echo "0 0 1 * * /bin/sh /usr/bin/fileback" >; /root/etcbakcron crontab /root/etcbakcron 或使用crontab -e 命令添加定时任务: 0 1 * * * /bin/sh /usr/bin/fileback 7.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做? 参考答案:(1)第一种方法: 用户应使用crontab –e 命令创建crontab文件。格式如下: 0 0 * * sun cp –r /user/backup /tmp (2)第二种方法: 用户先在自己目录下新建文件file,文件内容如下: 0 * * sun cp –r /user/backup /tmp 然后执行 crontab file 使生效。 8.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。 参考答案: 建立程序 Pro16如下: #!/bin/sh i=1 while [ i -le 50 ] do if [ -d /userdata ];then mkdir -p /userdata/user$i chmod 754 /userdata/user$i echo "user$i" let "i = i + 1" (或i=$(($i+1)) else mkdir /userdata mkdir -p /userdata/user$i chmod 754 /userdata/user$i echo "user$i" let "i = i + 1" (或i=$(($i+1)) fi done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值