Linux 复习_01

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命令用于从标准输入中读取输入单行,并将读取的单行根据IFS变量分裂成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name。第一个字段分配给第一个变量var_name1,第二个字段分配给第二个变量var_name2,依次到结束。如果指定的变量名少于字段数量,则多出的字段数量也同样分配给最后一个var_name,如果指定的变量命令多于字段数量,则多出的变量赋值为空。
2、如果当前目录下只有一个文件abc123,解释echo abc* 和 echo xyz=abc* 命令的输出。
第一个命令会输出abc123,第二个命令会输出xyz=abc* 得到这种结果的原因为,“*”既可以作为通配符,也可以作为字符
3、画图示意操作系统、硬件和应用软件关系。
在这里插入图片描述
四、根据以下小题的要求写出相应的命令或命令组。
1、显示当前目录下文件名以abc开头同时以123结尾的文件。

ls | grep "^abc.*123$"

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

cp file1 file2
echo "END" >> file2

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

chmod 744 file1

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

bash myprog.sh &

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

ls -d */ 

[ -d仅列出目录本身,而不列出其中的内容
*通配符,所有的字符
/目录的标识 ]
5、在上一级目录的子目录src中建立一个空文件,文件名叫my_logfile。

touch ../src/my_logfile

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

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

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

echo "$abc"

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

read abc ; test $abc -lt 999 && res='too small' || res=ok ; echo $res
#若abc小于999,则res为too small。否则,res为ok 最后输出res

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

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

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

while true
do
	user=`who | grep -w “stu”`
	if [ ${#user} -gt 0 ]
	then
		echo “请输入信息并且ctrl + D”
		write stu
		sleep 60
		echo “请输入信息并且ctrl + D”
		write stu
		sleep 60
		echo “请输入信息并且ctrl + D”
		write stu
		sleep 60
		break#就3次懒得写循环了
	fi
done

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

i=1
while  [$i” –lt 5  ]
  		do
    		j=$((i*i))
    		echo$j”
   	 		i=$((i+1))
  	 	 done

运行结果为:
1
4
9
16

5、试解释以下命令或命令组的含义。

(1)$grep ‘789’  lppasswd  |  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

6、假设使用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目录有执行权限,并且对自己的目录有写权限,所以可以复制。

发布了5 篇原创文章 · 获赞 5 · 访问量 460
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览