版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年计算机四级(Linux应用与开发工程师)自测试题及答案一、单项选择题(每小题2分,共20分)按照Linux文件系统层次结构标准(FHS),以下哪个目录用于存储系统启动过程中所需的静态配置文件?A./varB./etcC./devD./root参考答案:B解析:FHS(文件系统层次结构标准)对Linux目录做了统一规范,其中/etc目录全称为etcetera,专门存放系统和服务的静态配置文件,所有系统级的配置文件如/etc/passwd、/etc/hosts、服务配置都存储在此目录;/var目录用于存放系统运行过程中产生的可变数据,如日志文件、缓存文件、打印队列等;/dev目录存放设备文件,Linux将所有硬件设备抽象为文件存储在此目录;/root是超级用户root的个人主目录,因此本题选B。在ext4文件系统中,以下关于硬链接与软链接的描述,正确的是?A.硬链接可以跨文件系统创建,软链接不可以B.删除原文件后,所有硬链接依然可以正常访问原文件数据C.软链接的inode号与原文件的inode号相同D.软链接不能链接目录,硬链接可以参考答案:B解析:Linux中每个文件对应唯一的inode编号,inode编号是文件系统内唯一标识,因此硬链接无法跨不同文件系统创建,软链接是独立的文件,仅存储原文件的路径,因此可以跨文件系统,A选项错误;硬链接的本质是多个文件名指向同一个inode,文件数据本身只有当所有指向该inode的文件名都被删除后才会被释放,因此删除原文件仅删除原文件名,只要还有硬链接存在,就可以正常访问数据,B选项正确;软链接是独立的文件,拥有自己的inode,因此inode号与原文件不同,C选项错误;Linux默认禁止普通用户创建目录的硬链接,防止目录循环引用导致文件系统遍历出错,软链接可以正常链接目录,D选项错误,因此本题选B。Linux内核中,处于TASK_INTERRUPTIBLE状态的进程,以下描述正确的是?A.该进程正在等待某事件发生,可被信号唤醒B.该进程正在等待某事件发生,只能被特定的唤醒事件唤醒,不能被信号打断C.该进程正在CPU上运行D.该进程已经终止,正在等待父进程回收资源参考答案:A解析:Linux进程的核心状态中,TASK_INTERRUPTIBLE(可中断睡眠态)是进程等待资源时的状态,该状态下的进程可以被信号唤醒,也可以被等待的事件唤醒;TASK_UNINTERRUPTIBLE(不可中断睡眠态)才只能被特定唤醒事件唤醒,不能被信号打断,因此A正确,B错误;正在CPU运行的进程处于TASK_RUNNING运行态,C错误;已经终止等待父进程回收资源的进程处于ZOMBIE僵尸态,D错误,本题选A。在Bashshell脚本中,变量$?的含义是?
A.当前脚本的进程IDB.最后一个后台运行命令的进程IDC.上一个命令的退出状态码D.当前脚本的命令行参数个数参考答案:C解析:Bash中特殊变量的含义:$表示当前脚本或A.预处理B.编译C.汇编D.链接参考答案:A解析:GCC编译C/C++程序分为四个核心阶段:①预处理阶段:该阶段处理所有以#开头的预处理指令,包括展开头文件、替换宏定义、处理条件编译、删除注释,生成.i后缀的预处理文件;②编译阶段:对预处理后的代码进行语法语义分析,生成对应的汇编代码,后缀为.s;③汇编阶段:将汇编代码汇编为机器可执行的目标文件,后缀为.o;④链接阶段:将多个目标文件、用到的静态/动态链接库合并,生成最终的可执行文件,因此本题选A。关于Linux下静态链接库与动态链接库,以下描述错误的是?A.静态链接库在编译链接阶段会将代码整合到可执行文件中,程序运行不需要依赖外部库文件B.动态链接库在程序运行时才会加载,多个程序可以共享同一个动态链接库的内存副本,节省内存C.静态链接生成的可执行文件体积通常比动态链接生成的可执行文件大D.动态链接库的文件名前缀一般是lib,后缀一般是.a,静态链接库后缀是.so参考答案:D解析:Linux中库文件的命名规范为:静态链接库前缀为lib,后缀为.a(archive缩写);动态链接库前缀为lib,后缀为.so(sharedobject缩写),D选项将两者后缀混淆,描述错误,其余选项描述均正确:静态链接把库代码整合到可执行文件中,因此运行不需要依赖外部库,文件体积更大;动态链接在运行时才加载库代码,多个进程可以共享内存中的同一个动态链接库副本,节省内存,因此本题选D。以下哪种Linux进程间通信方式可以用于不同主机之间的进程通信?A.匿名管道B.SystemV消息队列C.共享内存D.套接字参考答案:D解析:匿名管道、消息队列、共享内存都属于同一主机内的进程通信方式,仅能用于本机内不同进程的数据交互;套接字(socket)是基于网络协议栈的通用进程间通信方式,既可以用于本机进程通信,也可以用于不同网络主机上的进程通信,因此本题选D。某文件的权限字符串是-rwxr-xr–,对应的八进制权限值是?A.754B.755C.644D.744参考答案:A解析:Linux文件权限分为所有者、所属组、其他用户三组,每组权限对应一个八进制数,r对应权限值4,w对应2,x对应1,三组权限相加得到最终的八进制值:本题中所有者权限rwx=4+2+1=7,所属组权限r-x=4+0+1=5,其他用户权限r–=4+0+0=4,组合得到八进制权限754,因此本题选A。当系统物理内存不足时,Linux会将暂时不用的内存页交换到swap交换空间,以下关于swap的描述正确的是?A.swap交换空间必须是独立的磁盘分区,不能用普通文件实现B.swap分区的大小一定不能超过物理内存的大小C.swap交换空间的使用情况可以通过free命令查看D.开启swap会增加磁盘IO,因此内存足够大的服务器必须开启swap不能关闭参考答案:C解析:Linux支持两种swap交换空间:独立的swap磁盘分区,以及普通文件格式的swap文件,因此A错误;swap分区的大小没有严格限制,根据使用场景设置,很多需要休眠的台式机swap大小会设置为等于或大于物理内存,因此B错误;free命令可以输出系统总物理内存、已用物理内存、空闲物理内存,以及swap交换空间的总大小、已用大小、空闲大小,因此C正确;对于内存足够大的服务器,关闭swap可以避免系统错误将热内存交换到磁盘,提升系统性能,因此内存足够时可以关闭swap,D错误,本题选C。在Git版本控制系统中,以下哪个命令可以将本地仓库的提交推送到远程仓库的指定分支?A.gitpullB.gitpushC.gitcommitD.gitclone参考答案:B解析:Git常用命令中,gitpull用于从远程仓库拉取更新合并到本地分支;gitpush用于将本地分支的提交推送到远程仓库对应分支;gitcommit用于将本地暂存区的修改提交到本地仓库;gitclone用于将远程仓库克隆到本地,因此本题选B。二、多项选择题(每小题4分,共20分)以下属于Linux内核支持的进程调度策略的有?A.SCHED_FIFOB.SCHED_RRC.SCHED_NORMALD.SCHED_DEADLINE参考答案:ABCD解析:Linux内核支持多种进程调度策略,满足不同场景的需求:SCHED_NORMAL是普通非实时进程的调度策略,基于完全公平调度器CFS实现;SCHED_FIFO(先进先出)和SCHED_RR(时间片轮转)是传统实时进程的调度策略,SCHED_FIFO中优先级高的进程一直运行直到主动退出,SCHED_RR给同优先级的实时进程分配时间片轮转调度;SCHED_DEADLINE是Linux3.14之后引入的最后期限调度策略,针对硬实时任务,按照截止时间调度任务,满足实时性要求,因此四个选项都正确。以下关于Bashshell脚本的说法,正确的有?A.#!/bin/bash用来指定脚本的解释器路径,该语句一般放在脚本的第一行B.*会将所有D.if[-f/tmp/test.txt]这个判断语句的作用是判断/tmp/test.txt是否存在且为普通文件参考答案:ACD解析:*和@的区别为:不加双引号时两者行为一致,加双引号时,$*会将所有命令行参数拼接为一个整体字符串,以”$1$2…$n"的形式呈现,$@会将每个参数分开,以”$1”“$2"..."$n”的形式呈现,因此B选项描述颠倒,错误;其余选项描述均正确:脚本第一行的#!指定解释器,export可以将局部变量导出为环境变量,-f判断文件存在且为普通文件,因此本题选ACD。
3.A.虚拟内存使得每个进程都拥有独立的虚拟地址空间,进程之间的地址空间相互隔离,互不干扰B.虚拟内存的大小受限于系统CPU的寻址空间,和物理内存大小没有直接关系C.页表存储了虚拟地址到物理地址的映射关系,内核通过页表完成地址转换D.Linux用户地址空间中,堆空间从低地址向高地址扩展,栈空间从高地址向低地址扩展参考答案:ABCD解析:四个选项描述均正确:虚拟内存是MMU(内存管理单元)提供的抽象,每个进程拥有独立的地址空间,进程之间无法直接访问对方的地址空间,实现了隔离;虚拟地址的范围由CPU的寻址位数决定,32位系统最大寻址空间是4G,64位理论是16EB,远大于物理内存,因此虚拟内存大小由寻址空间决定,不是物理内存;页表是内核存储虚拟-物理地址映射的数据结构,每次地址访问都需要查询页表完成转换;Linux进程地址空间布局中,低地址是代码段、数据段,向上是堆,堆从低向高扩展,向下是栈,栈从高向低扩展,中间是共享库的加载区域,因此本题四个选项都正确。使用GDB调试程序时,以下哪些操作可以实现断点设置?A.breakmainB.b10C.btest.c:20D.printi参考答案:ABC解析:GDB中break是设置断点的命令,缩写为b,breakmain表示在main函数入口设置断点;b10表示在当前文件的第10行设置断点;btest.c:20表示在test.c文件的第20行设置断点,三种写法都是合法的断点设置方式;printi的作用是打印变量i的值,不是设置断点,因此D错误,本题选ABC。以下关于Docker容器技术与Linux内核特性的关系,描述正确的有?A.Docker使用了Linux的Cgroups特性来限制容器可以使用的CPU、内存、磁盘等资源B.Docker使用了Linux的Namespace特性来实现容器之间的资源隔离,包括进程、网络、文件系统等隔离C.Docker容器原生运行需要依赖Linux内核,无法在非Linux内核的系统上原生运行D.Docker使用AUFS、OverlayFS等联合文件系统来实现镜像分层存储,节省存储空间参考答案:ABCD解析:四个选项描述均正确,容器的核心是Linux内核的两个特性:Cgroups做资源限制,Namespace做资源隔离,没有这两个特性就无法实现容器;Docker镜像基于联合文件系统实现分层,底层共享,上层修改,极大节省了存储空间;容器本质是Linux上的特殊进程,原生运行依赖Linux内核,非Linux系统的容器运行实际依赖虚拟化的Linux内核,因此本题四个选项都正确。三、综合应用题(共60分)某Linux应用开发工程师需要编写一个Bash脚本,用于自动清理/tmp目录下超过7天未被访问过的、后缀为.log的所有文件,并且输出本次清理的文件总数量。请完成以下问题:补全下面脚本中的空缺部分;
____(1)____#指定脚本解释器
file_count=0
forfilein____(2)____;do#遍历/tmp下所有.log后缀的文件
if[____(3)____-$(($(stat--printf"\%X"$file)))-gt$((7*24*3600))];then
rm-f$file
____(4)____
fi
done
echo"共清理文件:$file_count个"写出给该脚本添加可执行权限的命令,以及两种执行该脚本的方法。参考答案:空缺部分补全:#!/bin/bash解析:脚本第一行指定Bash作为解释器,符合Bash脚本规范,内核会根据该路径指定的解释器运行脚本。/tmp/*.log解析:通配符*.log匹配/tmp目录下所有后缀为.log的普通文件,满足遍历所有目标文件的需求。$(($(date+\%s)))
解析:date+\%s输出当前时间距离1970-01-0100:00:00UTC的秒数,即当前时间戳;stat--printf"\%X"$file输出目标文件最后一次访问时间的时间戳,两者相减得到文件自上次访问后已经过去的秒数,和7天对应的总秒数7*24*3600比较,大于说明符合超过7天未访问的清理条件。file_count=$((file_count+1))
解析:每成功清理一个文件,将计数器file_count的值加1,最终统计总清理数量。假设脚本保存名称为clean_log.sh,添加可执行权限的命令为:chmod+xclean_log.sh。两种常见执行方法:①使用路径直接执行:当前目录下可执行./clean_log.sh,也可以使用绝对路径如/opt/scripts/clean_log.sh执行,该方式要求脚本拥有可执行权限;②使用Bash解释器执行:执行bashclean_log.sh,该方式不需要提前给脚本添加可执行权限。以下是一段Linux下基于管道实现父子进程通信的C语言代码,请回答相关问题:
#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<string.h>
intmain(){
intpipefd[2];
pipe(pipefd);
pid_tpid=fork();
charbuf[1024];
memset(buf,0,sizeof(buf));
if(pid<0){
perror("forkfailed");
return1;
}elseif(pid==0){
//子进程:负责读取数据
close(pipefd[1]);
____(a)____;//从管道读取数据到buf
printf("子进程读取到数据:\%s\n",buf);
close(pipefd[0]);
return0;
}else{
//父进程:负责写入数据
close(pipefd[0]);
char*data="HelloLinuxApplicationDeveloper";
____(b)____;//向管道写入数据
close(pipefd[1]);
wait(NULL);
return0;
}
}问题1:补全代码中空缺的(a)和(b)部分;问题2:请说明为什么子进程要关闭pipefd[1](写端),父进程要关闭pipefd[0](读端)?问题3:如果fork之后,内核调度父进程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年夏季四防夏季化学品挥发中毒防范课件
- 2026年秋季开学高三为梦想而战心理减压课件
- 2025年湖北省潜江市《行测》考试考前冲刺试卷含答案详解(综合题)
- 2026年广东省开平市《行测》考试考前冲刺试卷带答案详解(A卷)
- 2025年河北省迁安市《行测》考试备考题库附参考答案详解【模拟题】
- 2025年甘肃省敦煌市《行测》考试考前冲刺试卷及答案详解1套
- (2026)医院后勤年度医疗物资供应保障与成本管控工作总结
- 2025年河北省沙河市《行测》考试考前冲刺密卷及1套完整答案详解
- 2025年吉林省和龙市《行测》考试模拟试卷及完整答案详解(易错题)
- 2026年广东省连州市《行测》考试备考题库含答案详解【巩固】
- 2026福建福州市仓山区市场监督管理局编外人员招聘2人笔试参考题库及答案详解
- (2026秋新版)青岛版六年级数学上册全册教案
- 云南省2026年高考思想政治试卷分析及2027年高考复习策略
- 电子警察设备维护操作规范
- 燃气系统运行安全评价表
- 2026年注册营养师道复习提分资料【完整版】附答案详解
- 智能网联汽车装调运维职业技能竞赛题库(附答案)
- 2026年长城汽车人才测评答案
- 医疗机构快速检测(POCT)管理制度及法律规范(2025年版)
- 2026-2030中国轮椅(电动和手动)行业市场发展趋势与前景展望战略分析研究报告
- 2026年远大医药内部考试试题
评论
0/150
提交评论