linux试题求大神帮解一下赶时间谢谢了

1. 用grep命令显示在文件a中所有包含每个字符串至少有5个连续小写字符的字符串的行。
2. $ find / -name "test.c" -type f -mtime +3 -user greek -exec rm {} \;的含义。

3. 在一个程序崩溃时,它一般会在指定目录下生成一个core文件。如果没生成core文件,可能是什么原因?怎么解决?
4. 执行命令 ls –l 时,某行显示如下: -rw-r--r-- 1 chris chris 207 jul 20 11:58 mydata(1)用户chris对该文件具有什么权限? (2)如何使任何用户都可以读写执行该文件?
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 1024void 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(); }
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 else echo “bad directory name $dir” fi
3. 阅读Makefile文件,回答以下问题:(1) 此Makefile文件的主要功能是什么?(2) 此Makefile文件包含多少个规则?它们分别是什么?(3) 使用此Makefile文件可以生成目标文件f2.o吗?为什么?all : libmys.soSRC = f1.c f2.c f3.cTGT = $(patsubst %.c, %.o, $(SRC))%.o : %.ccc -c $<libmys.so : $(TGT)cc -shared -o $@ $(TGT)clean:rm -f $(TGT)

  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)

  编程题没做,楼主一、见谅,有时间做了补充下答案
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-05
(1)grep -n '[[:lower:]]\{5\}' a
(2)在系统中中找出用户为greek的3天之内被更改过的普通文件,改文件名为test.c,然后删除该文件
(4)具有读写的权限 chmod 777 mydata可以使所有用户都可以读写执行
2. 下面给出了一个SHELL程序,试对其行后有#(n)形式的语句进行解释,并说明程序完成的功能。
#!/bin/bash
#(1)dir=$1将第一个参数赋值给变量dir
#(2)if [ -d $dir ] 检查$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遍历目录内的所有文件,如果是普通文件,就读出该文件的内容
else echo “bad directory name $dir”如果不是目录,就显示错误目录名
fi

该程序检查后面参数是否为目录,若是目录则读取目录内普通文件的内容

其他的就不会了本回答被网友采纳
第2个回答  2018-05-26

下列脚本中,输出结果相同的是( )

(3.0分)

    A、

    #!/bin/bash 

    for ((a=1;a<=5;a=a+1)) 

    do  

    echo $a 

    done

    B、

    #!/bin/bash 

    for a in `seq 1 1 5` 

    do   

    echo $a 

    done

    C、

    #!/bin/bash 

    a=1 until [ $a –gt 5 ] 

    do 

    echo $a ((a=$a+1)) 

    done

    D、

    a=1 

    while [ $a –gt 5 ] 

    do 

    echo $a ((a=$a+1)) 

    done

相似回答