linux实验考试题库(部分) 下载本文

试题一

一、操作题

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 | grep bak` if [ -z \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 \

2.填写标记代码行的意义,给出功能描述和前6行程序输出。 #include

#(4)

#(5)

#(1) #(2) #(3)

#(6)

1

#include int ntimes=0;

main(int argc, char *argv[]) { int pid,ppid;

int p_action( ), c_action( ); signal(SIGUSR1 , p_action); switch(pid=fork( )) {

case -1: perror(\

exit(1);

case 0: signal(SIGUSR1,c_action); ppid=getppid( );

for ( ; ; ) ;

default: { for( ; ; ) { pause; sleep(1);

kill(pid,SIGUSR1);

}

}

}

}

p_action( ) {

printf(\}

#(1)#(2)

#(3)2

c_action( ) {

printf(\ int ppid;

ppid = getppid(); kill(ppid, SIGUSR1); sleep(3); }

三、综合编程题

1.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

2.下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。 #!/bin/bash #(1) dir=$1 #(2) if [ -d $dir ] #(3) then

cd $dir #(4) for file in * do

if [-f $file ] #(5) then

cat $file #(6) echo “end of file $file”

fi done

#(4)

3