西北大学unix期中作业

上传人:灯火****19 文档编号:142981796 上传时间:2020-08-25 格式:DOC 页数:7 大小:437KB
返回 下载 相关 举报
西北大学unix期中作业_第1页
第1页 / 共7页
西北大学unix期中作业_第2页
第2页 / 共7页
西北大学unix期中作业_第3页
第3页 / 共7页
西北大学unix期中作业_第4页
第4页 / 共7页
西北大学unix期中作业_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《西北大学unix期中作业》由会员分享,可在线阅读,更多相关《西北大学unix期中作业(7页珍藏版)》请在金锄头文库上搜索。

1、Linux程序设计期中考试一、给出完成下列各项功能所需要的Linux系统命令。要求:给出实现这一功能的完整命令;不能给出完整命令可以仅给出所需要的命令名称。必须陈述利用了这个命令的哪个功能或选项。(每题6分,共30分)1、统计出由用户test创建并且正在运行的进程数目。在计算机上给出相应的结果2、假设命令cat /proc/net/arp的执行结果如下:IP address type Flags HW address Mask Device192.168.0.50 0x1 0x2 00:AD:32:70:00:20 * eth0192.168.0.1 0x1 0x2 00:0F:3D:1E:4

2、A:89 * eth0192.168.0.21 0x1 0x2 00:13:20:56:75:E7 * eth0192.168.0.38 0x1 0x2 00:0F:1F:52:EF:F6 * eth0要求设计一个命令去掉上述输出中的表头,并且仅列出IP地址和MAC地址的对应关系,期望的输出结果如下所示。192.168.0.50 00:AD:32:70:00:20192.168.0.1 00:0F:3D:1E:4A:89192.168.0.21 00:13:20:56:75:E7192.168.0.38 00:0F:1F:52:EF:F6将计算机接入网络,从不同ip地址的计算机使用ping向该

3、计算机发送数据包,先查看相应的/proc/net/arp文件,再要求设计一个命令去掉上述输出中的表头,并且仅列出IP地址和MAC地址的对应关系。在计算机上给出相应的结果。3、程序文件fexc.c约有30行,保留了一个备份fexc0.c后,另个程序员在fexc.c中作了多处修改,如何找出他在原先程序的基础上作了哪些修改?先构造fexc.c,再备份fexc.c得到fexc0.c,然后修改fexc.c。在计算机上给出相应的运行结果。4、检索目录src以及其子孙目录中的所有文件名后缀为.c和.h文件,查找哪些文件中含有字符串TPDU,并列出在这文件中的行号。在计算机上给出相应的运行结果。5、在命令行方

4、式下,加入U盘,使用mount和umount命令对其进行操作;(1)查看系统地硬盘和硬盘分区情况;(2)建立一个目录用来作挂节点;之后便可以访问U盘了;具体执行过程如下图所示:二、简答题与编程题(共40分)1、(10分)B-shell中的局部变量和环境变量有什么区别?脚本文件myenv.sh的内容如下:MAXSIZE=100000 export MAXSIZE 执行./myenv.sh后,是否会在Shell中创建环境变量MAXSIZE? 为什么?在计算机上给出相的运行结果。 B-shell中的局部变量和环境变量的区别是:局部变量仅在创建它的Shell中有效,环境变量对创建它的Shell及其派生

5、出来的子进程都有效。就是说当前shell下启动的子进程只继承环境变量,不继承局部变量。但是环境变量对其它与创建它的Shell没有关系的Shell并不可见。在执行./myenv.sh后shell终止后,环境变量被释放,不会在当前shell中创建环境变量。2、(10分)下列的脚本程序从键盘输入三个整数A,B,C,并且求出A*(B+C)的值。在划线出填入适当的内容,完成整个程序。显式地标出你所添加的命令中必须有的空格和转义字符,并解释为什么必须这些空格和转义。#!/bin/shecho n ”Input A:”; read Aecho n ”Input B:”; read Becho n ”Inpu

6、t C:”; read CV= expr $A * ( $B + $C ) echo ”A*(B+C)=$V”在计算机上给出相应的运行结果。横线上填expr $A * ( $B + $C ); 由于星号和圆括号属于shell的元字符,所以前面增加反斜杠,阻止shell队员字符的处理,而是将这些符号直接传递给expr命令,上述命令一共需要6个空格,空格起单词分界线的作用。如果忽视了相应的空格,expr命令将无法得到争取的参数输入,导致expr无法按预期的功能工作。3、(10分) shell脚本程序countsh代码如下:#!/bin/bashcount=$#cmd=echowhile $coun

7、t 0while $count gt 0do cmd=”$cmd $count “count = expr $count 1 doneeval $cmd问题:(1) 指出该脚本程序的错误;(2) 分析脚本程序countsh的功能;(3) 给出脚本程序countsh赋予文件主以执行权限的命令;(4) 给出./countsh ab cd ef gh的输出结果在计算机上给出相应的运行结果。(1)、该脚本的错误是while后面的条件判断表示错误,需用规定的比较格式以便shell把它们处理成内部命令;(2)、$#是B-shell内置变量,表示命令行参数个数,题中命令行有三个参数,这样count的初值是3

8、,循环结束时,cmd的内容为echo $3 $2 $1。Shell将$cmd进行变量替换后,变为echo $3 $2 $1;最后一行eval为shell内部命令,将eval的实参作为shell的输入读入,在经过一轮变量替换,文件名生成。替换后,执行所得到的命令。此脚本程序的功能是逆向输出输入的字符串数组。(3)、脚本程序countsh赋予文件主以执行权限的命令是 chmod u+x countsh;(4)、输出结果为ab cd ef gh4、(此题共10分)假设在当前目录/home/test/src下执行如下命令,将会得到相应的结果:$tty$echo $?然后设下面的脚本程序文件名为ttys

9、h:#!/bin/bashexpr tty:.*expr tty:/dev/tty(.*)termno = expr tty : /dev/tty(.*) echo $termnoexpr tty : /dev/tty(.*)termno = expr tty : /dev/tty(.*)echo $termnounit = 100expr $unit : .* expr pwd : .*/(/*)$问题:(1) 给出echo $?的输出结果;(2) 找出脚本程序中的错误,给出正确的结果;(3) 将该脚本设置为文件主和同组用户有执行权限;(4) 分析该脚本程序ttysh的执行结果。在计算机上给

10、出相应的运行结果。(1)(2)脚本程序中的错误主要是空格和转义的使用。对于程序第2、3行的“:”两侧需添加空格,第4、7、9行的“=”两侧应无空格,第6、7行的“(”左侧少一个转义。根据第一问执行tty指令的结果,程序中的“/dev/tty”字段应修改为“/dev/pts/”,正确代码为:运行结果为:(3)修改权限命令为(4) 该脚本程序执行结果如下图,由输出的结果中第一行的10是tty所对应的字符串“/dev/pts/2”的长度;之后的几行空字符串是因为“/dev/pts/2”与后面的字符串不匹配,所以输出空字符串;之后输出的3是unit的值即100的长度3;然后输出的lenovo当前工作目

11、录中的操作者用户的名字。三、制作ramdisk,建立多引导分区,添加ramdisk引导,要求使用lilo命令进行lilo.config配置文件的重配置,并要求使用ramdisk对系统进行引导。(30分)在计算机上给出相应的运行结果。1.创建ramdisk挂载点mkdir frx2.创建并初始化ramdisk,块大小为2k,总容量为8Mdd if=/dev/zero of=ramdisk bs=1k count=81923.格式化为ext2的文件系统mke2fs -F -v -m 0 ramdisk4.查看一下ramdisk的文件系统类型file ramdisk5.将ramdisk挂载到frx上mount -o loop ramdisk frx/具体的操作过程如下图所示:使用命令df k来查看所建立的ramdisk,如下图所示:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号