- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
试题一
一、操作题
1.假设你的用户账号是zheng,现在你登录进入linux系统,查看当前登录到系统中的用户,查看当前
系统中运行的进程,然后再退出系统。
2.在当前目录/home/zheng下新建一个目录back,将当前目录改为back,在back下新建2个长度为
0的文件test1、test2,然后把test2移到其父目录中并改名为file12。
3.现在需要统计当前目录/home/zheng下普通文件的数目并显示结果,如何实现?
4.假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,锁定用户账号
uly,并删除用户账号chang。
5.若给需要将/home/zheng目录下的所有文件打包压缩成/tmp/zheng.tar.gz,你准备怎么做?当需要
从压缩包中恢复时,又该如何处理?
二、简答和shell编程题
1.下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。
#!/bin/sh
DIRNAME=`ls/root|grepbak`#(1)
if[-z$DIRNAME];then#(2)
mkdir/root/bak;cd/root/bak#(3)
fi
YY=`date+%y`;MM=`date+%m`;DD=`date+%d`#(4)
BACKETC=$YY$MM$DD_etc.tar.gz#(5)
tarzcvf$BACKETC/etc#(6)
echofilebackfinished!
2.填写标记代码行的意义,给出功能描述和前6行程序输出。
#includeunistd.h
1
#includesignal.h
intntimes=0;
main(intargc,char*argv[]){
intpid,ppid;
intp_action(),c_action();
signal(SIGUSR1,p_action);#(1)
switch(pid=fork()){#(2)
case-1:perror(forkfailed?);
exit(1);
case0:signal(SIGUSR1,c_action);
ppid=getppid();
for(;;);
default:{
for(;;){
pause;
sleep(1);
kill(pid,SIGUSR1);#(3)
}
}
}
}
p_action(){
printf(parentcaughtsignal#%d\n,++ntimes);
}
2
c_action(){
printf(childcaughtsignal#%d\n,++ntimes/*,++ltimes*/);
intppid;
ppid=getppid();
文档评论(0)