Linux本质上是一种运行于PC或PC服务器上的一种UNIX。UNIX自1969年至今已经有几十年的历史,积累了大量的技术和知识。作为目前最重要的生产环境,Linux在工业界的应用涉及系统管理、部署和运维、服务端开发、嵌入式开发、内核裁剪等。每一种技能都需要大量时间学习,并需要实际操作进行磨砺。这使得初学者面临海量知识无从下手,学习困难,比较茫然。为了解决这一问题,本课程选择讲授以Linux系统调用和系统原理为主,系统使用为辅。系统调用是操作系统的接口,不仅定义了操作系统所需要提供的功能,同时也定义了应用程序的行为。通过学习系统调用,不仅能掌握系统级编程本身,向下可以学习操作系统原理,了解内核的功能;向上可以编写系统命令——既然能够编写,使用系统命令更是易如反掌。当你学习完本课程后,将具备设计、开发和维护大型Linux网络应用程序的能力。往届学生反映,凭借在本课学习的知识,使他们成长为后端开发工程师、运维工程师、以及架构师。通过本课程的学习,可以培养出扎实的操作系统理论基础和系统级软件开发的基本功。
东北大学Linux操作系统(2023春)测验题答案
第二章 基本命令和C语言开发环境
- mv命令能够干什么? A从一个目录移动一个文件到另一个目录 B更新文件时间戳 C重命名一个文件 D…
- shell脚本中双引号和单引号的区别是什么? A单引号引起来的字符串会被当做命令解释,并将命令运行结…
- “cp -R 源目录 目标目录”中的R代表? Arecursively Brepeatedly Crestore Drecover…
- 在shell中,“$?”代表什么? A进程号(PID) Bshell函数的返回值 C命令替换 D上一次运行程序的返回值…
- shell中,命令替换的语法是? A'命令语句' B$(命令语句) C`命令语句` D${命令语句}…
- Vim中想要删除一行,在命令模式下应该输入? Ax Brm Cyy Ddd
- Vim想要合并两行为一行,需要在命令模式下输入? AJ Bx Cdd D退格键
- “ls /usr/include>ls.txt”这条命令的运行结果是什么? A将/usr/include目录下的文件复制到ls.txt…
- 分页显示目录/tmp的内容时,需要使用的命令是? A ls -p /tmp B ls /tmp|more C more `ls /tmp…
- shell中如何声明一个环境变量? Aenv Bset Cexport Dunset
- shell中的循环有哪些? Afor each循环 B记数型循环 Cwhile循环 D直到型循环…
- shell中if语句的结束关键字是? Aendif B} Cdone Dfi
- shell中自定义函数的参数如何声明? A不需要声明,直接通过、1、2、...获取 B与C语言相似,在函数名后…
- 在shell中,“i++”这个语句怎么写? A i=$((i+1)) B i=((i+1)) C i=i+1 D i=$i+1…
- shell中如何引用一个文件? A#include Bimport C.
- shell中用什么表示逻辑“真”? A1 B非0 C0
- [ -w tmp.txt ] 表示? A tmp.txt是否可写 B tmp.txt是否为word文档 C tmp.txt的所有者是谁…
- shell中判断两个字符串是否相等的命令是? Astring1 == string2 B[ string1 = string2 ] C[ stri…
- 运行当前目录的程序或shell脚本为什么要在文件名前面加“./”? A环境变量中的PATH不包含当前目录 …
- 已知HELLO='Hello World',则echo ${HELLO:2:5}的结果是? Aello Bllo W CWo D空格Wo…
第十二章 进程间通信
- shmat的返回值是? A共享内存的物理地址 B当前进程可操作的共享内存首地址(逻辑地址) C共享内存的…
- 创建共享内存时,“int seg_id=shmget(99, 128, IPC_CREAT|0777);”其中的99是共享内存的首地址的…
- 如果创建一个POSIX信号量,在/dev/shm下会生成一个对应的“sem.信号量名”的文件。…
- 查看共享内存的命令是? Als /dev/shm Bipcrm -m Cipcs -s Dipcs -m
- 在单机上,Linux的最快速的进程间通信方式是? 管道 共享内存 socket 消息队列…
- 使用信号量来处理进程同步问题,不会产生死锁。
- 如果想使用一个信号量来实现互斥,其初始值应该为? A0 B1 C2 D取决于参与同步的进程的数量…
- Linux的共享内存机制能够保证,在多进程并发操作共享内存中的数据时,对共享数据的操作是原子操作。…
第十一章 线程
- 一般来说,多进程服务器比多线程服务器更健壮。
- 怎样避免“僵尸线程”? A在` void *(*start_routine) (void *)`的最开始使用`pthread_detach`设…
- 进程是资源分配的最小单位,线程是CPU调度的最小单位。
- 对于Linux而言,由于copy on write,使用多线程技术一般不能节约内存开销。…
- 下述说法正确的是? Apthread_create用于创建一个线程 Bpthread_join用来等待一个线程的结束 Cpt…
- 下述说法正确的是? Apthread_create中参数arg是传递给start_routine函数的参数 Bpthread_join函…
- 下述说法正确的是? A互斥锁保证让每个线程对共享资源能够进行原子操作 B条件变量是让线程睡眠,在…
- 下述说法正确的是? A进程和线程都可以由CPU直接执行的指令流,所以进程和线程没有区别 B线程是一个…
- 在编写多线程的Web服务器时,发现服务器经常崩溃。通过strace观察该Web服务器,发现当服务器崩溃时,原…
第十章 Web服务器
- Linux中的进程是轻量级的进程,父子进程通过COW共享大部分资源。对于服务器而言,随着父子进程独立运…
- 基于prefork的服务器程序,定期让子进程消亡并重新生成子进程,有什么好处? A避免内存泄漏 B定期重新…
- HTTP响应头与响应体之间使用什么隔开? Ann Brnrn Crn Dnrnr…
- 有关MINE类型,说法正确的有: AHTTP响应报头中,用Contect-Type指出MIME类型 B通过MIME类型,可以将文…
- 对于多进程的Web server,为何父进程关闭socket连接不会影响子进程的socket连接? A父进程和子进程的…
- 如果Web服务器中没有客户端URL中所请求的文件,HTTP状态码是? A200 B400 C404 D500…
- 如果Web服务器收到客户端一个不存在的请求命令,HTTP状态码是? A200 B400 C404 D500…
- 如果Web服务器中找到了客户端URL中所请求的文件,HTTP状态码是? A200 B400 C404 D500…
第九章 网络编程
- 如何理解在Unix/Linux里,“一切皆文件”? A文件是文件 B目录是文件 C设备是文件 DTCP socket连…
- 使用socket编程,bind时如果希望在本机所有IP地址的同一端口进行绑定,可以使用INADDR_ANY。…
- IPv4中的IP地址,是一个: A32bits的整数 B形如“192.168.1.1”这种点分字符串 C包含4个char的字符…
- 在bindIPv4中的端口号时,需要: A使用htonl来完成本地字节序的端口号到网络字节序的转换 B使用hton…
- 以下哪些端口号只有超级用户root才能绑定? A22 B80 C1080 D8080
- IPv4中的端口号,是一个: A32bits的整数 B16bits的整数 Cint Dlong
- 当TCP客户端通过connect系统调用成功连接到服务器之后,以下说法正确的是: A客户端的文件描述符是可…
- 客户端运行以下语句。 fd=connect(tcp_socket, (const struct sockaddr *)&addr, sizeof(struct …
第八章 I/O重定向和管道
- 文件描述符0一般对应的是? A标准输入 B标准输出 C标准错误输出
- 文件描述符1一般对应的是? A标准输入 B标准输出 C标准错误输出
- 在终端上运行一个程序,该进程会“自动”打开标准输入、标准输出、标准错误输出。请问这是为什么? A…
- 编译下面的程序: #include #include main(){ int fd; close(0); fd=open("a.txt", O_WRONLY|O_CRE…
- 编译下面的程序: #include #include main(){ int fd; close(1); fd=open("a.txt", O_WRONLY|O_CRE…
- 下面的程序是为了实现“ls /dev|grep sd”。请选择合适的语句将其补充完整。 #include #include …
- 进程每次打开文件时,open的返回值是当前可以使用的(即未被使用的)数字最小的文件描述符。…
- 无名管道是没有方向的,即管道两端都可以进行读和写的操作。
第七章 进程
- 关于fork的返回值,说法正确的是? A如果创建进程失败,返回-1 B父进程得到的返回值是子进程的PID C…
- 用来跟踪一个进程在运行时调用了哪些系统调用,使用哪个命令? Aps Btop Cvmstate Dstrace…
- 关于“孤儿进程”的说法,正确的是: A一个进程的父进程结束运行了,该进程成为一个孤儿进程 B孤儿进…
- 哪个措施可以避免僵尸进程的出现? A父进程用wait回收子进程 B设置子进程为独立进程 C使用defunc…
- 除了root用户,其他用户只能将自己进程的nice number变大。
- wait系统调用可以获得哪些信息? A正常运行结束的子进程的PID B子进程通过return或exit给出的0至2…
- 关于exec函数族,说法正确的是? Aexeclp("ls", "ls", NULL);可以创建一个新的进程,并运行ls命令 Bex…
第六章 信号
- 间隔计时器中哪个是与现实中的时间是一致的? AITIMER_VIRTUAL BITIMER_PROF CITIMER_REAL…
- 当一个进程接收到一个信号时,可以采用哪些处理方式: A进程终止 B忽略 C调用一个自定义信号处理函…
- 当一个进程接收到一个信号时,默认的反应是: A忽略 B消亡 C由其父进程进行处理 D由init进程处理…
- 以下哪些信号不可被捕捉或忽略? ASIGINT BSIGSTOP CSIGKILL DSIGTERM
- 信号是软中断。
- alarm计时器或间隔计时器能产生哪个信号? ASIGINT BSIGCHLD CSIGALRM DSIGTERM…
第五章 文件系统
- i节点(i-node)中包括哪些信息? A文件名 Bmode Clink number D最后修改时间…
- 创建一个文件会涉及以下操作: A在i节点表中找到一个可以使用的空闲的i节点,并将文件属性信息填入i…
- Unix/Linux中的设备就是文件。我们可以通过读/写该设备对应于/dev目录下的文件进行输入/输出操作…
- 关于buffer的说法,正确的是: Abuffer应该足够大,可以减少系统调用的次数 Bbuffer能增大cache的大小…
- 如何判断一个文件的同组用户是否可读? Amode || 00040 Bmode | 00040 Cmode & 00040 Dmode && …
- 为何在同一个文件系统中移动文件非常快,但在不同的文件系统移动文件会非常慢? 同一个文件系统的磁…
- /tmp目录的mode是“drwxrwxrwt”,其对应的数值是 A“04777” B“02777” C“01777” D“07777…
- 读出i-node中文件属性的系统调用是? Afcntl Bstatus Cstat Dgetattr
- mode中setuid位的作用是? A当setuid位被设置为1之后,该程序被运行时, 操作系统会赋予超级用户root…
- 关于mode中的sticky位,说法正确的是? A对目录设置sticky位为1,则表示该目录中的文件,只能被其用户(所…
- 以下哪个命令可以将haha.txt的mode由“-rw-rw-r--”修改为“-rw-r-----”? Achmod 0540 haha.txt …
- 删除一个文件时,以下说法正确的是。 Alink number减1 B修改该文件所在目录,删除该文件对应的条目 …
- Unix的文件控制块(file control block)是? Ai-node(i节点) B超级块 Cblock…
第四章 用户
- 普通鼠标是? A输入设备 B输出设备 C既是输入设备也是输出设备
- 超级用户的shell的命令提示符是? A# B$ C> Droot>
- 一般情况,以下哪些是良好使用Linux的习惯? A直接用root用户登陆系统 B用普通用户登陆,只在需要进行…
- Linux的用户记录存储于? A/etc/usr B/etc/passwd C/etc/shadow D/etc/user
- 如果将/etc/passwd中用户sk的UID改为0,再使用sk用户登陆系统,会出现什么情况? A会以root身份进行登…
- Linux的用户密码,一般存储于? A/var/run/utmp B/etc/passwd C/etc/shadow D/etc/user…
- useradd命令会? A在 /etc/passwd 文件中创建一行与新用户相关的数据 B在/home/下创建一个与用户…
- Unix/Linux中的系统配置文件,一般存储于哪个目录? A/usr B/etc C/home D/var…
- who命令通过哪个文件读取登录用户信息? A/var/run/utmp B/etc/passwd C/etc/shadow…
- utmp文件存储的是? A纯文本表示的登录用户信息,每一行是一条登录用户信息 Bstruct utmp,一个登录用…
- 使用su命令时,一般后面会接一个小横线“-”,这是为了? A从前用户的默认习惯而已,现在已无实际意义 B…
- 当我们删除一个用户时,希望同时删除其默认的工作目录,需要? Auserdel -r 用户名 Buserdel -f 用户…
- Unix系统中,时间通常如何表示? A用字符串表示的“年月日时分秒” B格林维治时间,从1970年1月1日00:…
- 一个用户成功登录后,则utmp文件存储的对应用户登录信息struct utmp的ut_type变为? AINIT_PROCESS …
第三章 文件描述符
- 文件描述符可以是负数。
- 以下代码的作用是? int opts; opts=fcntl(0, F_GETFL); opts = opts|O_NONBLOCK; fcntl(0, F_SETF…
- 当你发现你的记录日志程序不能把系统崩溃前的数据写入日志文件log.txt时,请问以下哪些方法可以如…
- 可以使用“man open”查看系统调用open的内容。
- 可以使用系统调用open多次打开同一个文件。
- Linux的设备文件都存储在? A/etc B/dev C/home D/usr
- 如果我们试图打开一个文件,但失败了。可以使用哪个函数打印error number对应的字符串表示的错误信…
- 当我们想在man手册中查找一个字符串,可以使用? Aman Bman -a Cman -k Dman man…
- “写文件”是? A输入 B输出
- 普通鼠标是? A输入设备 B输出设备 C既是输入设备也是输出设备