linux考试题库小程序(linux考试简答题答案)linux试题求大神帮解一下赶时间谢谢了1. 用grep命令显示在文件a中所有包含每个字符串至少有5个连续小写字符的字符串的行。 cat a | grep -E "[a-z]{5,}" 2. $ find / -name "test.c" -type f -mtime +3 -user greek -exec rm {} ;的含义。 找出并且删除根目录及其子目录下 所有文件名为test.c的普通的文本文件 ,且该文件的最后修改时间以当前时间为参照大于3天时间 3. 在一个程序崩溃时,它一般会在指定目录下生成一个core文件。如果没生成core文件,可能是什么原因?怎么解决? 答:用“ulimit -c”命令查看当前系统设置的core文件的大小门限值 一般情况是core文件的大小超过了这个值 执行 “ulimit -c unlimited”命令后,操作系统不在限制core文件大小,或者把unlimited 替换成一个适当的值。 4. 执行命令 ls –l 时,某行显示如下: -rw-r--r-- 1 chris chris 207 jul 20 11:58 mydata (1)用户chris对该文件具有什么权限? 答:chris对mydata文件具有读写的权限 (2)如何使任何用户都可以读写执行该文件? 答:chmod 777 mydata 5. 大学校门处要求来客登记,只有一张登记表,登记表同时只能由一个人使用,用P、V原语描述一个校外人员进入大学的过程。 三、程序填空题(每小题10分,共20分)1.阅读下面程序,请将其补充完整。 #define SHMDATASIZE 1000 //共享内存大小,以字节为单位 void server(void) { union semun sunion; int semid, shmid; void *shmdata; char *buffer; semid=semget(_________________);//创建两个信号量 sunion.val=1; semctl(____________________);//设置信号量编号为0的值 sunion.val=0;semctl(____________________);//设置信号量编号为1的值 shmid=shmget(____________________); shmdata=shmat(___________________); *(int *)shmdata=semid; buffer=shmdata+sizeof(int); printf("Server is running with SHM id ** %d**n", shmid);} 2.阅读下面程序,请将其补充完整。 #define BUFFERSIZE 1024 void locksem(int semid, int semnum) { struct sembuf sb; sb.sem_num=semnum; sb.sem_op=________;//P操作 sb.sem_flg=SEM_UNDO; semop(_______________________); } void unlocksem(int semid, int semnum) { struct sembuf sb; sb.sem_num=semnum; sb.sem_op=________;//V操作 sb.sem_flg=SEM_UNDO; semop(______________________); } void clientwrite(int semid, char *buffer){ locksem(semid, 0); printf("Enter Message: "); fgets(_______________);//从键盘输入一个字符串 unlocksem(semid, 1); } 四、阅读程序题(共3小题,每小题10分,共30分) 1. 运行下面程序,最多运行多少个进程?画出进程家族树。 #include "stdio.h" #include "sys/types.h" #include "unistd.h" int main() { pid_t pid1; pid_t pid2; pid1 = fork(); pid2 = fork(); } 答最多有4个进程 首先第一次调用fork 主进程会产生一个pid1的子进程 然后pid1和主进程会分别调用一次pid2 = fork(); 分别再产生一个子进程因此一共最多4个进程 2. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。 #!/bin/bash #(1)定义该shell脚本由哪中类型的shell解释器解析 dir=$1 #(2)将shell程序的第一个命令行参数付给变量dir if [ -d $dir ] #(3)判断dir的值是否是一个目录 then cd $dir #(4)如果dir是目录则进入该目录 for file in * do if [-f $file ] #(5)判断file是否为一个文件 then cat $file #(6)打开文件,将文件内容输出到标准输出流中 echo “end of file $file” fi done else echo “bad directory name $dir” fi 3. 阅读Makefile文件,回答以下问题: (1) 此Makefile文件的主要功能是什么? 编译f1.c f2.c f3.c三个文件,最终生成动态链接库libmys.so (2) 此Makefile文件包含多少个规则?它们分别是什么? 包含4个规则 第一个 “TGT = $(patsubst %.c, %.o, $(SRC))” 将$(SRC)目录下的所有以.c为后缀的文件替换成.o结尾,且存入TGT变量中 第二个 “%.o : %.c cc -c $” 用cc命令依次将三个源文件编译成目标文件 第三个 libmys.so : $(TGT) cc -shared -o $@ $(TGT) 用上一步生成的3个中间文件生成动态链接库libmys.so 第四个 clean: rm -f $(TGT) 执行 make clean 后 会删除所有的中间文件即.o文件 (3) 使用此Makefile文件可以生成目标文件f2.o吗?为什么? 答:可以,因为该makefile的逻辑是先生成所有的.o文件,然后再生成动态链接库。 all : libmys.so SRC = f1.c f2.c f3.c TGT = $(patsubst %.c, %.o, $(SRC)) %.o : %.c cc -c $ libmys.so : $(TGT) cc -shared -o $@ $(TGT) clean: rm -f $(TGT) 编程题没做,楼主一、见谅,有时间做了补充下答案 linux题目,写出下面程序的运行结果,求大神解答!1, Hello! I love JAVA. 2, s=180 3, 第三题,貌似写错了题目了吧。没有SuperClass, Linux考试题321. shell是用户和Linux内核之间的,它是命令语言、命令解释程序及程序设计语言的统称。(接口) -------------------------------------------------------------------------------- 22. 在/etc目录下有个fstab文件,它里面列出了linux开机时自动挂载的文件系统的列表。我的/etc/fstab文件如下: /dev/hda2 / ext3 defaults 1 1 /dev/hda1 /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda3 swap swap defaults 0 0 在/etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是,第三列是挂载的文件系统类型,第四列是挂载的选项,选项间用逗号分隔。 (分数:3,完成次数:99) (挂载点) -------------------------------------------------------------------------------- 23. linux是一个真正的多任务和分时操作系统,允许多个用户在相同的机器上一次运行很多程序。(正确) 正确 错误 -------------------------------------------------------------------------------- 24. apache是实现internet上文件共享应用服务器的应用程序。(错误) 正确 错误 -------------------------------------------------------------------------------- 25. RedHat LINUX安装时自动创建了根用户(正确 ) 正确 错误 -------------------------------------------------------------------------------- 26. RedHat Linux使用 ls -all 命令将列出当前目录中的文件和子目录名。(错误) 正确 错误 -------------------------------------------------------------------------------- 27. Linux的历史可以追溯到(A)1990年,Linus Torvalds还是(B)荷兰赫尔辛基大学的一名学生,最初用(C)汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从Minix(用于操作系统教学、很小的Unix)中得到灵感,发誓要写一个比Minix更好的Minix,于是开始写了一些硬件的设备驱动程序、一个小的文件系统......,这样0.0.1版本的Linux就出来了(分数:1,完成次数:99) A B C (B,应该是芬兰,不是荷兰!) -------------------------------------------------------------------------------- 补充说明:27题为纠错题,找到错误的地方。 |