当前位置:文档之家› Linux期末复习

Linux期末复习

4、在LINUX系统中,硬件设备大部分是安装在( B )目录下的A,/rmt B,/dev C,/proc D,/swap5、显示操作系统核心版本详细信息的命令是(C )A,cut B,cat C,uname D,su3、执行命令:chmod o+rw myfile后,myfile文件的权限变化是对其他用户有读写权限。

4、执行命令:gcc first.c 结果将产生 a.out 文件。

gcc –c first.c 结果将产生first.o 文件。

5、利用ps命令查看进程时,主要输出项PID表示进程ID号,S表示状态。

6、能够为文件myfile1更新时间的命令是touch myfile1。

7、在shell程序中,变量x=20,输出x的值的语句是echo $x 。

8、在执行shell脚本hello时,提示“权限不够”,为能正常运行脚本,应该使用的命令是chmod +x hello 。

5、Makefile的规则是Make进行处理的依据,它包括了目标体和依赖文件及其之间的命令语句。

6、优化上述第2题的程序,并记录所使用的命令及运行结果(分别用O0,O1,O2,O3四个等级优化:)#gcc –O0 –o a a.c –lm#time ./a8、大于:-gt 大于或等于:-ge 相等:-et 不等:-ne小于:-lt 小于或等于:-le6、Makefile的常用自动变量$@ 表示规则中的目标名字。

6、vi有3种工作模式,分别为命令模式,插入模式、底行模式。

5、将前一个命令的输出作为后一个命令的输入,称为管道。

9、能够显示库函数文件libmath.a中所有模块的命令是ar t libmath.a 。

10、能按mymakefile文件规则执行的make命令选项是make –f mymakefile。

11、gprof命令的结果由两大部分组成,它们是平面剖析和函数调用。

12、在Linux系统中,time命令将报告程序运行的经过时间、系统时间和用户时间。

5、文件条件测试命令;[ -d filename],当文件是一个子目录则结果为真。

8、有$标识指的都是宏命令。

$^依赖文件,< 只代表上面的一行,%代表文件名,不包括扩展名。

9、请解释下面一系列命令的含义;ls –l /etc | more <CR>查看系统配置文件夹下的文件详细信息,并分屏幕显示出来。

ls –d /proc/[0-9] <CR>查看当前目录下的/proc文件下从0到9的目录文件。

Find /name “*.conf”| more <CR>查看后缀名为.conf的文件名,分屏显示2、写出一个命令行:完成10秒后运行date命令,再过10秒,显示sleep命令的手册页。

#sleep 10;date;sleep 10;man sleep13、下面是Linux终端中的一些提示信息与命令,请回答下面问题并将回答填写在各对应的空白处。

[John@localhost tmp]$ ls -l |wc –l回答问题如下:1)该用户的用户名是:John2) 该用户主目录是:/home/John3)当前工作目录是:/tmp4)该用户的命令操作功能是:统计在/tmp目录下的文件个数。

15、有如下显示PS命令的结果:UID PID PPID COMMAND0 1071 1070 bash0 1256 1071 ps –l0 1258 1 ./a.out请说明各进程之间的家族关系及所属关系。

PID 每个进程的ID。

PPID 每个进程的父进程ID。

UID 每个进程所有者的UID 。

COMMAND 该进程的命令名称,如果一行显示不下,则会进行截取。

内存中的进程会有一个完整的命令行。

14、编写a.c源程序,实现连续5次,根据键盘输入的半径,输出圆的面积。

PI=3.14 s=PI*r*r;写出编译的命令gcc a.c –o a写出运行的命令gcc a.c –o a –DPI=3.14如果三次编译采用不同的圆周率时,如PI=3.14、PI=3.14159、PI=3.14159262,在不修改源程序的要求下,请给出带宏定义的gcc命令。

# gcc a.c –o a –DPI=3.14 # gcc a.c –o a –DPI=3.14159# gcc a.c –o a –DPI=3.141592621、使用ps命令查看和控制进程1)显示本用户的进程:#ps。

2)显示所有用户的进程:#ps -au。

3)在后台运行cat命令:#cat &。

4)按Ctrl+z键,挂起进程cat。

#cat5)输入jobs命令,查看作业。

#jobs6)输入bg,把cat切换到后台执行。

#bg7)输入fg,把cat切换到前台执行。

#fg8)按Ctrl+c键,结束进程cat。

15、Linux常用命令(资料:Linux常用命令)pwd ls cd mkdir rmdir cat more wc cp rm mv head date chmod tar find grep cat >f1写出完成下列操作的命令在root主目录下创建一个mydir/d1 mydir/d2 -p子目录和一个myfile文件,再在mydir下建立d1和d2两个子目录。

#mkdir mydir/d1 mydir/d2 -p#touch myfile.#cd mydir#mkdir d1#mkdir d2查看mydir和myfile的默认权限ls –l#ls –l mydir myfile将myfile文件分别复制到root 和dd1的主目录中#cp myfile /root/dd1将root主目录中的myfile改为yourfile#mv myfile yourfile通过从键盘产生一个新文件text.txt并输入I am a student#cat >text.txt Iam a student查找text.txt文件是否包含student字符串grep#grep student text.txt#grep student /root/text.txt13、编写shell程序hello.sh,实现根据用户输入的用户名,输出日期、用户主目录和问候语功能。

解:echo “Enter your name:”read nameecho “hello,$name!”echo $(date)echo $HOME14、编写shell程序mytest,测试hello.sh文件是否存在,如果存在则运行;否则提示信息:“该文件不存在!”解:# ! /bin/shif [ -f mytest ]then./hello.sh //如果存在hello.sh 就运行elseecho “文件不存在!”fi15、编写shell程序win,连续5次接收用户名,并输出信息:用户名,欢迎来到本公司参加面试!(其中用户名五次不同)。

解:#vi win.shfor f in 1 2 3 4 5doecho "请输入你的名字"read nameecho "$name,欢迎来到本公司参加面试!"done#./win.sh17、编写C程序talker1.c和talker2.c,其功能是模拟A、B两人的对话,A说:我在球场,你在哪? 在间隔50秒后,B说:我也到了,开始比赛吧! 要求:分别写出两个C源程序;写出编译这两个程序的命令;写出实现模拟对话功能的执行命令。

解:1)#vi talker1.c#include<stdio.h>int main(){ printf(“我在这里. 你在哪?”); }#vi talker2.c#include<stdio.h>int main(){ printf(“我也到了. 一起吃饭吧!”); }2) gcc –o talker1 talker1.cgcc –o talker2 talker2.c3) ./talker1;sleep50; ./talker219、有一个程序example.c 将要编译成example可执行程序,请写出对它的编译、剖析命令,并将剖析结果在屏幕上分屏显示。

请写出所需要的命令或命令序列。

解:gcc example.c –o example –pg./examplegprof example –b |more21、find pow.o& time find 结果显示如下:real:命令运行实际所用时间user:花在用户代码上的时间sys: 花在系统行为上的时间由于Linux是分时系统,所以,real不等于User+sys22、编写shell程序sh.1, 完成向用户输出“欢迎来本公司参加面试!”的问候语。

并根据面试的时间,分别给出:“上午好!”或者“下午”,或“晚上”好的问候。

23、Shell程序的编辑与执行利用vi编辑器编辑脚本编写完后给脚本增加执行权限:chmod 755 script运行脚本:./script24、gcc 命令的选项P33 。

-Dname=definition... 在命令行上定义宏,有两种方式,-Dname或者-Dname=definition.在命令行上设置宏定义的目的主要是为了在调试的时候设定一些开关,而在发布的时候再关闭或者打开这些开关即可。

示例$ gcc –DBUFSIZE=512 abc.c –o abc此例中定义了BUFSIZE为512字节。

其作用相当于:#define BUFSIZE 512char huf[BUFSIZE]; //相当于char buf[512];25、Dialog 工具编程sh.4:实现用信息框+输入框:显示问候语“某同学,你好!”的信息。

(提示:输入信息请用英文。

)26、编写一个程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果#vi sleep.c#include<stdio.h>int main(void){ sleep(5); printf(“Time for play!\n”);}#gcc –o sleep sleep.c#./sleep27、#vi Hello2.shtitle =”hello”echo $titleecho “参数$0就是正在运行的程序”echo “第1个参数是$1”echo “第2个参数是$2”echo “参数列表是$*”echo “用户主目录是$HOME”echo “请输入一个新的问候语,存入title”read titleecho $titleecho “脚本程序运行结束”exit 0#./hello2.sh I you he请写出运行结果?参数./hello2.sh就是正在运行的程序”第1个参数是I第2个参数是you参数列表是I you he用户主目录是/root请输入一个新的问候语,存入title”AaaaaAaaaa脚本程序运行结束”28、Hello3.shecho “Is this morning? Please answer yes or no.”read answerif [ “$answer” = “yes” ]; thenecho “Good morning”elif [ “$answer” = “no” ]; thenecho “Good afternoon”elseecho “Sorry, $answer not recognized.Enter yes or no”exit 1fiexit 029、echo “Is this morning? Please answer yes or no.”read answercase “$answer” inyes | y | Yes | YES) echo “Good morning!” ;;no | n | No | NO) echo “Good afternoon!” ;;*) echo “Sorry, answer not recognized.” ;;esacexit 029、使用系统调用fork( )创建两个子进程,在该程序运行时,在系统中就有一个父进程和两个子进程在活动。

相关主题