【Linux】9. 习题①

news2024/12/26 21:35:15

2022-09-17_Linux环境与版本

1. 命令拓展(了解)

linux查看cpu占用的命令是什么?
A.top
B.netstat
C.free
D.df

【答案解析】A
在这里插入图片描述

2022-09-24_Linux环境与版本

2. 命令拓展(了解)

以下哪个命令输出Linux内核的版本信息:
A.uname -r
B.vmstat
C.sar
D.stat

【答案解析】A
在这里插入图片描述

3. 内核文件系统(了解)

linux 2.6.* 内核默认支持的文件系统有哪些?[多选]
A.ext3
B.ext2
C.ext4
D.xfs
E.ufs

【答案解析】ABCD
A ext全称Linux extened file system, extfs,即Linux扩展文件系统,ext2为第二代
D XFS一种高性能的日志文件系统
2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。
XFS 特别擅长处理大文件,同时提供平滑的数据传输
E UFS是UNIX文件系统的简称,它来源于4.3Tahoe发行版中提供的BSD Fat Fast File System(FFS)系统,属于FFS的演化版本

4. grep命令

在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?
A.grep -E #$ try_grep
B.grep -E #a try_grep
C.grep -E ^$ try_grep
D.grep -E ^a try_grep

【答案解析】D

    //grep选项中,-E选项可以用来扩展选项为正则表达式;
    //$表示匹配文件末尾,字符需要在$之前表示以字符结尾  a$表示以a结尾
    //^表示匹配文件起始,字符需要在^之后表示以字符起始  ^a表示以a起始

5. 批量删除文件

如何批量删除当前目录下后缀名为.c的文件。如a.c、b.c()
A.rm *.c
B.find . -name "*.c" -maxdepth 1 | xargs rm
C.find . -name "*.c" | xargs rm
D.以上都不正确

【答案解析】AB

xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,用于很多不支持|管道来传递参数的命令,相当于将前边命令的执行结果,也就是查找到的文件名,传递给后边的rm指令进行删除
/*
A	rm *.c *通配符,表示匹配任意字符任意次
B	find . -name "*.c" -maxdepth 1 | xargs rm  
    find . -name "*.c" -maxdepth 1 找到当前目录下.*结尾的文件,目录深度为1
C	find . -name "*.c" | xargs rm 没有进行深度控制,删除的不仅是当前目录下的文件,会将子目录下的文件也删除
D	以上都不正确
*/

2022-10-16_粘滞位

6. yum命令常见选项

以下描述正确的是
A.在Centos中可以使用yum install 命令安装软件包
B.在Centos中可以使用yum uninstall 命令卸载软件包
C.在Centos中可以使用yum list 查看所有可安装软件包
D.在Centos中可以使用yum show查看所有可安装软件包

【答案解析】AC
yum工具的常用选项有:
install 表示安装软件包
list 列出所有可供安装的软件包
search 搜索包含指定关键字的软件包
remove 卸载指定的软件包
根据常用操作的选项可排除出B和D是错误的。yum不具备这两个操作选项

7. yum命令拓展(了解)

以下命令正确的是:
A.yum makecache命令的功能是将服务器的软件包信息缓存到本地
B.yum search命令可以在所有软件包中搜索包含有指定关键字的软件包
C.yum clean all 命令可以清除缓存中老旧的头文件和软件包
D.yum upgrade命令可以更新所有的rpm软件包

【答案解析】ABC
yum工具在每次安装指定软件包的时候,都会检测源服务器上的软件包信息。
为了便捷不用每次都去搜索软件包信息,因此使用 yum makecache将软件包信息缓存到本地,使用 yum clean all 清理老旧的缓存信息。
因此A和C是正确的
yum search 用于在搜索包含有指定关键字的软件包,B也是正确的
D选项:
yum -y update:升级所有包同时,也升级软件和系统内核;
yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。 所以D选项不完整严谨

2022-10-22_vim使用

8. 替换操作

Vi编辑器中,怎样将字符AAA全部替换成yyy?
A.p/AAA/yyy/
B.s/AAA/yyy/g
C.i/AAA/yyy/
D.p/AAA/yyy/h

【答案解析】

/*
在vim的底行模式中,
:s 表示substitute,也就是替换, 格式为以下
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
range 表示区间 % 用于表示全文,  2,3 表示从第2行开始到第3行
{pattern} 表示字符串匹配规则,要匹配什么样的字符串 , 比如^a 表示以a字符起始的字符串
{string} 表示要将匹配到的字符串替换为的新的string字符串
[flags]  s_flags中,g比较常用,通常使用g表示全部替换,默认如果不给的话,表示只替换一次
[count]  表示在一行中匹配多少次,很少会用到....
如果想要将文件中所有 nihao 替换为 hello 则命令为:  %s/nihao/hello/g 
:p 用于打印指定区间的行
:[range]p[rint] [flags]
:i 在指定行上方添加文本
:{range}i[nsert][!]
根据这些选项能够确定B选项正确,其他错误。
*/

9. 保存操作

你使用命令”vi/etc/inittab”查看该文件的内容,你不小心改动了一些内容,为了防止系统出为,你不想保存所修改的内容,你应该如何操作
A.在末行模式下,键入:wq
B.在末行模式下,键入:q!
C.在末行模式下,键入:x!
D.在编辑模式下,键入”ESC”键直接退出vi

【答案解析】B
A 在末行模式下,键入:wq 保存并退出编辑,就算没有修改也会写入,并修改文件时间属性
(change time和modify time都会发生改变)

B 在末行模式下,键入:q! 强制退出编辑,但并不保存当前修改
C 在末行模式下,键入:x! 保存并退出编辑,仅当文件有修改时会保存,并修改文件时间属性
D 在编辑模式下,键入”ESC”键并非直接退出vi编辑,而是用于返回普通模式
根据题意,想要退出编辑,但是又不想保存修改,因此选择B选项。

10. 预编译/编译/汇编/链接

将一个test.c文件仅仅进行汇编而不生成可执行程序的命令是?
A.gcc -S test.c
B.gcc -E test.c
C.gcc -c test.c
D.gcc test.c

【答案解析】C
gcc常见选项:
-c 汇编完成后停止,不进行链接
-E 预处理完成后停止,不进行编译
-S 编译完成后停止,不进行汇编
-o 用于指定目标文件名称
-g 生成debug程序。向程序中添加调试符号信息
题目要求为仅执行到汇编就结束,而不生成可执行程序,因此选择C选项。

11. parse tree(了解)

在编译过程中,产生parse tree的过程是哪个阶段?
A.语法分析
B.语义分析阶段
C.词法分析
D.目标代码生成阶段

【答案解析】A
编译过程为 扫描程序–>语法分析–>语义分析–>源代码优化–>代码生成器–>目标代码优化;
扫描程序进行词法分析,从左向右,从上往下扫描源程序字符,识别出各个单词,确定单词类型
语法分析是根据语法规则,将输入的语句构建出分析树,或者语法树,也就是我们答案中提到的分析树parse tree或者语法树syntax tree
语义分析是根据上下文分析函数返回值类型是否对应这种语义检测,可以理解语法分析就是描述一个句子主宾谓是否符合规则,而语义用于检测句子的意思是否是正确的
目标代码生成指的是,把中间代码变换成为特定机器上的低级语言代码。
根据以上各个阶段的理解,可以分析出正确选项为A选项。

12. Makefile(了解)

下列关于makefile描述正确的有?【多选题】
A.makefile文件保存了编译器和连接器的参数选项
B.主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释
C.默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件, 找到了解释这个文件
D.在Makefile不可以使用include关键字把别的Makefile包含进来

【答案解析】ABC
makefile文件中,保存了编译器和链接器的参数选项,并且描述了所有源文件之间的关系。
make程序会读取makefile文件中的数据,然后根据规则调用编译器,汇编器,链接器产生最后的输出。
根据makefile的功能理解,A选项是正确的
Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释, B选项是正确的
显式规则说明了,如何生成一个或多个目标文件。
make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写makefile,
比如源文件与目标文件之间的时间关系判断之类在makefile中可以定义变量,
当makefile被执行时,其中的变量都会被扩展到相应的引用位置上,通常使用 $(var) 表示引用变量文件指示。
包含在一个makefile中引用另一个makefile,类似C语言中的include; 根据这一项可以推导D选项是错误的。
注释,makefile中可以使用 # 在行首表示行注释
默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件,C选项也正确

13. 编译优化

程序的完整编译过程分为是:预处理,编译,汇编等,如下关于编译阶段的编译优化的说法中不正确的是
A.死代码删除指的是编译过程直接抛弃掉被注释的代码
B.函数内联可以避免函数调用中压栈和退栈的开销
C.for循环的循环控制变量通常很适合调度到寄存器访问
D.强度削弱是指执行时间较短的指令等价的替代执行时间较长的指令

【答案解析】A
死代码删除是编译最优化技术,指的是移除根本执行不到的代码,或者对程序运行结果没有影响的代码,而并不是删除被注释的代码,因此A选项错误
内联函数,也叫编译时期展开函数, 指的是建议编译器将内联函数体插入并取代每一处调用函数的地方,从而节省函数调用带来的成本,
使用方式类似于宏,但是与宏不同的是内联函数拥有参数类型的校验,以及调试信息,而宏只是文本替换而已。因此B选项正确
for循环的循环控制变量,通常被cpu访问频繁,因此如果调度到寄存器中进行访问则不用每次从内存中取出数据,可以提高访问效率,因此C选项正确
强度削弱是指执行时间较短的指令等价的替代执行时间较长的指令, 比如 num % 128 与 num & 127 相较,则明显&127更加轻量, 故D也是正确的

2022-10-29_gdb使用

14. 冯诺依曼组成部分

不属于冯诺依曼体系结构必要组成部分是:
A.CPU
B.Cache
C.RAM
D.ROM

【答案解析】B
在这里插入图片描述
A CPU 运算器与控制器
B Cache 缓存(一种技术)
C RAM 内存(存储器)
D ROM 磁盘(输入输出设备)

15. 系统调用概念

下面关于系统调用的描述中,错误的是()
A.系统调用把应用程序的请求传输给系统内核执行
B.系统调用函数的执行过程应该是在用户态
C.利用系统调用能够得到操作系统提供的多种服务
D.是操作系统提供给编程人员的接口
E.系统调用给用户屏蔽了设备访问的细节
F.系统调用保护了一些只能在内核模式执行的操作指令

【答案解析】B
系统调用是操作系统向上层提供的用于访问内核特定功能的接口。
A正确,应用程序通过系统调用将自己需要完成的功能传递给内核,进行执行完成
B错误,系统调用的运行过程是在内核态完成的,操作系统并不允许用户直接访问内核,也就是说用户运行态并不满足访问内核的权限
C正确,因为系统调用就是想上层提供用于完成特定内核服务或功能的。
D正确,
E正确,用户只需要将自己的请求以及数据通过系统调用接口传递给内核,内核中完成对应的设备访问过程,最终返回结果正确
F正确,系统向上层提供系统调用接口用于访问内核服务或功能的很大原因也是因为这样可以最大限度的保护内核的稳定运行。

2022-11-05_进程的理解

16. 进程 | 程序 | 作业

下列有关进程的说法中,错误的是? [多选]
A.进程与程序是一一对应的
B.进程与作业是一一对应的
C.进程是静态的
D.进程是动态的过程

【答案解析】ABC
程序是静态的指令集合,保存在程序文件中,
进程是程序的一次运行过程中的描述。
作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。
根据以上概念理解:
A选项错误,因为一个程序可以同时运行多次,也就有了多个进程
B选项错误,因为一个作业任务的完成可由多个进程组成,且必须至少由一个进程组成
C选项错误,因为程序是静态的,而进程是动态的。
D选项正确

17. PCB进程控制块概念

系统感知进程的唯一实体是
A.进程id
B.进程控制块
C.进程管理器
D.进程名

【答案解析】B
进程是操作系统对于程序运行过程的描述,而这个描述学名叫做进程控制块-PCB,它是操作系统操作系统管理以及调度控制程序运行的唯一实体。
根据进程的理解分析:
A选项错误,因为进程ID只是进程的标识符,是系统能够找到特定进程的标识而已
C选项错误,进程管理器只是对大量PCB进行管理的一个程序而已
D选项错误,进程本质上来说没有名字,它有所调度管理运行的程序的名称,它的标识是进程ID,可以理解进程ID是它的名字
因此只有B选项正确,在系统角度看来,进程就是对于程序运行的描述,就是PCB进程控制块。

18. 进程抢占

在抢占式多任务处理中,进程被抢占时,哪些运行环境需要被保存下来?[多选]
A.所有cpu寄存器的内容
B.全局变量
C.页表指针
D.程序计数器

【答案解析】ACD
A 所有cpu寄存器的内容 cpu上正在处理的数据
B 全局变量 程序内的数据(并不一定正在被处理)
C 页表指针 程序切换时会将页表起始地址加载到寄存器中
D 程序计数器 下一步程序要执行的指令地址

2022-11-07_僵尸进程的理解

19. 精灵进程和守护进程

以下描述错误的有
A.守护进程:运行在后台的一种特殊进程,独立于控制终端并周期性地执行某些任务。
B.僵尸进程:一个进程 fork 子进程,子进程退出,而父进程没有 wait/waitpid子进程,那么子进程的进程描述符仍保存在系统中,这样的进程称为僵尸进程。
C.孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,这些子进程称为孤儿进程。(孤儿进程将由 init 进程收养并对它们完成状态收集工作)
D.精灵进程:精灵进程退出后会成为僵尸进程

【答案解析】D
僵尸进程:子进程先于父进程退出,父进程没有对子进程的退出进行处理,因此子进程会保存自己的退出信息而无法释放所有资源成为僵尸进程导致资源泄露。
孤儿进程:父进程先于子进程退出,子进程成为孤儿进程,运行在后台,父进程成为1号进程(而孤儿进程的退出,会被1号进程负责任的进行处理,因此不会成为僵尸进程)
守护进程&精灵进程:这两种是同一种进程的不同翻译,是特殊的孤儿进程,不但运行在后台,最主要的是脱离了与终端和登录会话的所有联系,也就是默默的运行在后台不想受到任何影响
根据以上理解分析:
D错误:精灵进程其实和守护进程是一样的,不同的翻译叫法而已,它的父进程是1号进程,退出后不会成为僵尸进程
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wms仓库管理对企业的重要性

一、什么是wms仓库管理? WMS是仓库管理系统的缩写,它提供了一个可视化、智能化的平台,帮助公司进行仓库作业的管理和优化。WMS系统可以支持各种类型的仓库,包括零件、分销、批发、跨境电商等等,并提供多种功能&#xf…

如何查找下载外文文献,超强外文文献检索网站排名

英文文献哪里找,下面小编给大家推荐几个超强英文文献下载网站,推荐排名如下: 第4名:sci-hub 这个网站很多科研人都知道,优点是可以免费下载英文文献,缺点是网站不太稳定经常换域名,而且需要你明…

Zoho Desk获G2“2023年优秀软件”称号

备受瞩目的G2年度优秀软件评选结果终于在近期公布了。该奖项旨在表彰过去一年,在软件行业有突出亮点的厂商和产品。在今年的评选中,除了坚持过往满意度、市场占有率等评选维度,额外新增了英国、法国及德国三个地区的产品名单,还增…

5年测试被裁,去面试差点被问哭了······

我的个人背景非常简单,也可以说丝毫没有亮点。 学历普通,计算机专业二本毕业,毕业后出来就一直在一家小公司,岁月如梭细,算了下至今从事软件测试已经5年了,也点点点了五年,每天都是重复的工作&…

使用遗传算法解决一维下料问题(一、实现思路分析)

目录 一、前言 二、概念 三、术语定义 四、问题描述 五、实现思路 1、遗传算法 2、一维下料和遗传算法结合 六、下文预告 一、前言 三年前我就折腾过一维下料问题了,当时查遍百度、谷歌,阅尽硕博论文,最终采用自研算法解决了一维下料…

天津值得信赖的python培训哪家好

近些年越来越多人涌入了互联网大厂,许多人选择去培训机构系统的学习Python,那么好的Python培训机构的标准是什么样的呢?我们来一点点说。 一、为什么要学python python是目前大火的的编程语言之一。至于为什么火,不名思意&#…

【Android】小米手机 Root全攻略:轻松获取手机最高权限

▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ 备份手机资源小米云服务小米助手备份方式 2️⃣ 解锁BL开启解锁等168个小时(七天)miflash_unlock解锁设备 3️⃣ 获取并安装MIUI完整包4️⃣ 刷机包解包,获取boot.img解压MIUI安装包payload…

C++ | std::tuple

std::tuple 文章目录 std::tuple成员函数及非成员函数模板参数成员函数Non-member functions非成员函数辅助类 构造函数获取元祖元素值元素个数元素的类型Reference 类模板 std::tuple 是不同类型值的固定大小集合。 它是 std::pair 的泛化。 可以当做一个结构体使用 ,不需要创…

【ChatGPT】科技革命促生互联网时代 ChatGPT浪潮打乱时代布局 人工智能新时代下的发展前景

目录 科技革命促生互联网时代 科技进步伴随着大国崛起 科技革命的发展 互联网时代的到来 ChatGPT浪潮来袭 资本市场当前的热潮 人工智能新时代下我们何去何从 开放注册两个月用户数破亿,ChatGPT的爆火也标志着时代的浪潮将要来袭,由科技革命促生的…

C语言200行代码实现简易三子棋

前言 三子棋应该是是我们最早接触到的棋类游戏,用C语言实现三子棋对初学者来说是一种不错的锻炼 编写三子棋只需要用到数组、函数和生成随机数的知识,所以比较适合成为编程学习者编写的第一个小游戏。 一.代码实现 第一部分是源码复制就可以使用&…

WiFi(Wireless Fidelity)基础(六)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

未面试蓄力,redis肝起来

目录 1、为什么要使用Redis做缓存?2、为什么Redis单线程模型效率也能那么高?3、Redis6.0为什么要引入多线程呢?4、Redis常见数据结构以及使用场景字符串(String)哈希(Hash)列表(list)集合&#…

【前端提效】--Chrome浏览器开发者工具 DevTools 使用技巧

介绍一下 DevTools 的一些好用的技巧,它能够很好地帮助你提高生产力和解决问题的能力。 1、打开命令行 或者使用:快捷键 Ctrl Shift P (Mac: ⌘ Shift P ) 命令行可以做很多事情,包括但不限于截图、更换主题等 2、控制 DevT…

Inno Setup Compiler的安装和使用详解

安装:官网最新下载最新版 最新版不支持中文哈,安装的时候直接选英文就好 安装注意事项:在安装过程中有一个 询问是否要 安装一个加密版本的(可根据自己的需求挑选–我就没有) 使用: 1.打开应用程序进入到…

【微信小程序】微信小程序的接口调入 获取太阳码 根据返回值的类型进行接收,微信接口可能直接返回图片,也可能返回一个错误信息的json,同时兼容处理这两种情况

目录 事件起因环境和工具操作过程解决办法遇到的一点问题结束语 事件起因 在开发一个关于微信小程序的过程中,有一个这样的需求,要求生成微信小程序的太阳码,然而这个东西的请求方式我们是这样的:我作为后端服务去请求这个太阳码…

【MFAC】基于紧格式动态线性化的无模型自适应控制(Matlab代码)

例题来源:侯忠生教授的《无模型自适应控制:理论与应用》(2013年科学出版社)。 👉对应书本 4.2 单输入单输出系统(SISO)紧格式动态线性化(CFDL)的无模型自适应控制(MFAC) 例题4.1 题目要求 matlab代码 clc; clear al…

ASEMI代理ADXL345BCCZ-RL7原装ADI车规级ADXL345BCCZ-RL7

编辑:ll ASEMI代理ADXL345BCCZ-RL7原装ADI车规级ADXL345BCCZ-RL7 型号:ADXL345BCCZ-RL7 品牌:ADI /亚德诺 封装:LGA-14 批号:2023 安装类型:表面贴装型 引脚数量:14 工作温度:-55C~105C…

HTTPS连接建立过程

目录 前言什么是HTTPSHTTPS的作用 TLS建立连接过程1、TCP三次握手2、Client Hello3、Sever Hello4、校验数字证书5、客户端回应6、服务器回应7、TCP四次挥手 前言 什么是HTTPS HTTPS,Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输…

「自动化」聊起来简单,做起来难 | 谈效风生

第4期:“自动化”聊起来简单,做起来难 在上一期《如何找到现有研发体系的「内耗问题」?》中,我们聊了评估现有研发体系,正确的找到“体系内耗问题”,是改变研发体系的第一步。本期我们继续聊下一个关键点就是研发体系…

MIT6.824 lab4B实验记录

Background 主要是完成一个可以根据group数量,动态调整shard所属的group的分布式kv键值引擎。其中shard->group的配置由shardctrler集群来管理,底层也是通过raft group来容错(分布式嘛) 然后这个shardkv就是要完成的是根据sh…