Linux面试题

当准备 Linux 面试时,以下是一些可能会遇到的常见 Linux 面试题:

1. 什么是Linux?解释一下Linux操作系统的特点。
2. 什么是Linux内核?Linux内核的作用是什么?
3. 如何在Linux系统上查看当前的IP地址和子网掩码?
4. 如何在Linux系统上查看当前的内存使用情况?
5. 如何在Linux系统上查看CPU使用情况?
6. 列出你知道的Linux常见命令,并解释它们的功能。
7. 如何在Linux系统上查看一个文件的内容?
8. 怎样在Linux系统上查看正在运行的进程?
9. 请解释一下什么是文件权限,并说明 rwx 权限表示的含义。
10. 如何在Linux系统上安装软件包?
11. 怎样在Linux系统上重启或关机?
12. 解释一下Linux系统中的硬链接和软链接。
13. 怎样使用grep命令在文件中搜索特定的字符串?
14. 怎样使用scp命令在不同的Linux系统之间复制文件?
15. 怎样查找Linux系统中的大文件或大文件夹?
16. 解释一下什么是Linux文件系统以及常见的文件系统类型。
17. 如何在Linux系统中查看日志文件?
18. 怎样使用crontab设置定时任务?
19. 解释一下Linux中的环境变量,以及如何设置和使用环境变量。
20. 怎样使用tar命令对文件和目录进行打包和压缩?

这些问题只是一些可能的示例,你还可能面对其他与Linux相关的问题。建议你在面试前对这些问题进行准备,并确保对Linux的基本概念、命令和常见操作有一定的掌握。同时,记得在回答问题时要简洁明了,并尽量提供具体的实例或命令来支持你的回答。

1.标准IO与文件IO的区别?

1.标准IO是标准C库定义的一组输入输出的函数接口,而文件IO是系统定义的一组输入输出的函数接口。

2.标准IO有缓存机制,而文件IO没有缓存机制,每次都引起系统调用。

3.标准IO只能操作普通文件,而文件IO处理目录文件其余文件都可以操作。

4.标准IO是通过流来操作文件,而文件IO是围绕文件描述符进行操作,文件描述符是非负整数,依次分配。

5.标准IO默认打开三个流,stdin,stdout,stderr;文件IO默认打开三个文件描述符,0(标准输入),1(标砖输出),2(标准错误);

2.静态库和动态库的区别?

静态库和动态库的本质区别是代码载入时刻不同

1.静态库:静态库在程序编译时被连接到目标代码。

优点:程序运行不需要该静态库,运行时不需要库,运行效率高。

缺点:(1)程序将静态库的代码复制到目标代码中,代码体积大。

           (2)静态库进行升级后,程序需要重新编译。

2.动态库:动态库是在运行时被载入代码中。

优点:(1)不需要将代码复制到程序中,代码体积小。

           (2)库升级后,不需要重新编译,升级简单。

           (3)不同的程序若需要相同的动态库,动态库存在一份即可。

缺点:运行时库必须存在,移植性差。

 3.  什么是孤儿进程?僵尸进程?

1.当父进程比子进程先结束,子进程成为孤儿进程,内init进程收养,成为后台进程。

2.当子进程比父进程先结束,父进程没有及时对子进程进行回收,此时子进程成为僵尸进程,要避免僵尸进程的产生。

4.  什么是守护进程?步骤?

守护进程:该类进程在后台运行,运行时间比较长,一般在Linux启动时运行,在系统关闭时停止执行,脱离终端,并且按照周期执行。

1.创建子进程,父进程退出(fork),让子进程成为孤儿进程,成为后台进程;

2.在子进程中创建会话(setsid),让子进程成为会话组组长,为了让子进程完全脱离终端

3.改变子进程运行路径为根目录,程序运行的路径不能删除或卸载。(chdir("/"))

4.修改文件权限掩码,提高文件权限,增强灵活性umask(0);

5.关闭文件描述符,关闭不需要的文件描述符(close)

5.  进程与线程区别

相同点:进程和线程都为系统提供了并发执行能力。

不同点:

资源和调度:进程是资源分配的最小单位,线程是系统调用的最小单位。

地址空间:一个进程创建的多个线程共享进程的资源,而进程之间地址空间相互独立。

通信机制:线程之间通信相对简单,通过全局变量就可相互通信,但要考虑临界资源的问题,而进程之间的通信相对复杂,需要进程间的通信机制(3-4G内核空间)进行通信。

安全性:进程的安全性相对较差,当一个进程结束时会导致所有线程退出,进程相对安全。

6.死锁

死锁:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源和通信造成的阻塞,如果没有外力的作用,它们都将无法推动下去。

1.互斥使用:当资源被一个线程占有时,别的线程不可使用

2.不可抢占:资源申请者不能强制夺取资源占有者的资源,只能等待资源占有者主动释放

3.请求和保持:资源请求者在请求资源的同时保持对原有资源的占有

4.循环等待:存在一个等待队列,p1占有p2的资源,p2占有p3的资源,p3占有p1的资源,形成一个等待环路。

7.  线程的同步与互斥?

1.同步:指的是多个任务(线程),按照规定的顺序执行共同完成一件事情。

2.互斥:多个线程访问临界资源时,同一时间内只能有一个线程访问临界资源

8.  实现同步的机制

信号量,互斥锁+条件变量,信号灯集

9.  进程间通信方式?

1.无名管道,2.有名管道,3.信号,4.共享内存,5.消息队列,6.信号,7.套接字

10.  无名管道有名管道区别?

1.无名管道只能用于具有亲缘关系的两个进程之间的通信,而有名管道可以用于两个没有任何关系的进程之间的通信。

2.无名管道和有名管道都采用半双工通信,

3.无名管道可以看成特殊的文件,可以通过文件IO进行操作,文件系统不可见。有名管道可以用路径名来指出,文件系统可见,但内容保存在内存;

4.有名管道和无名管道都基于文件描述符的通信方式,当无名管道建立时会自动创建两个文件描述符fd[0],fd[1],fd[0]是固定的读端,fd[1]是固定的写端。而有名管道需要自己打开文件获得文件描述符。

5.有名管道和无名管道遵循先进先出的原则,有名管道不支持lseek操作

11.  共享内存、信号灯集、消息队列步骤?函数?

共享内存:1.创建key值(ftok),2.创建或打开共享内存(shmget)3.映射共享内存到用户空间(shmat)4.撤销映射(shmdt)5.删除共享内存(shmctl)

信号灯集:1.创建key值(ftok)2.创建或打开信号灯集(semget)3.初始化信号灯集(semctl)4.进行pv操作(semop)5.删除信号灯集(semctl)

消息队列:1.创建key值(ftok)2.创建或打开消息队列(msgget)3.添加消息:将消息按照类型添加到已打开的队列末尾(msgsnd)4.读取消息:将消息按照类型从队列中读取(msgrcv)5.删除消息队列(msgctl)

12.TCP三次握手机制?

1.客户端通过connect函数主动连接,客户端发送一个SYN握手包,并且进入发送状态

2.服务器通过accept建立通信,服务器发送ACK表示确认,并且发送SYN包给客户端,发送完成后进入接收状态。

3.客户端收到服务器的ACK和SYN后向服务器发送确认包,发送完毕后进入确认状态。服务器收到ACK包后也进入确认状态。        

13.TCP四次挥手机制?

1.主动关闭方会发送一个FIN包给被动方进入FIN_WAIT状态

2.被动方收到FIN包后,会给主动方发送ACK包表示确认,并进入CLOSE_WAIT状态,如果有数据没有发送完毕,则继续发送,直到发送完毕。

3.被动方发送FIN包,进入LAST_ACK状态

4.主动关闭方收到FIN包后,会回复一个ACK包。被动关闭方收到ACK后关闭连接。

14.关于TCP建立可靠通信的原因

1.序列号和确认机制

每次数据传输,都会有PUSH,每次PUSH包发送之后,接收者都会回复ACK包,表示确认,是TCP可靠通信的原因之一。

2.超时重发机制

如果发送方在一段时间内没有收到确认消息,发送者会认为数据丢失,重新发送数据

3.三次握手机制

4.四次挥手机制

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

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

相关文章

rk平台快捷键进入uboot模式和烧录模式

(1)进入U-boot命令行模式 上电时,多次按下ctrlc按键(2)进入maskrom烧录模式 方法一:上电时(或者reboot时),多次按下ctrlb 方法二:在uboot命令 手敲rbrom

Java 通过页码范围提取新的文档(docx、pdf)

客户有一个新的需求。控制用户下载文档的页数。比如。我设置只开放10页。那就要我们去做截取文档。pdf自带有实现的方式。docx暂时没找到开源的。我这边处理的docx。是通过转换成pdf。通过截取pdf后再转成docx去实现的 工具类如下: import java.io.FileOutputStream…

git及dbc的学习

1)git的使用方法 Command line instructions You can also upload existing files from your computer using the instructions below. Git global setup git config --global user.name "username" git config --global user.email "xx…

SpringMvc高级(拦截器和文件上传下载)

拦截器(Interceptor)是一种常用的设计模式,在软件工程领域被广泛应用。拦截器通常被用来处理各种请求和响应,可以在请求发送前或响应返回后进行一系列的操作和处理。拦截器可以用于请求身份认证、日志记录、性能优化、权限控制、数…

vue3 - 使用reactive定义响应式数据进行赋值时,视图没有改变,值已经改变的解决方案

问题: 在Vue 3.0 中我们使用 reactive() 定义的响应式数据的时候,当是一个数组或对象时,我们直接进行赋值,发现数据已经修改成功,但是页⾯并没有自动渲染成最新的数据;这是为什么呢? 就如同官网…

线性代数的本质(二)——线性变换与矩阵

文章目录 线性变换与矩阵线性变换与二阶方阵常见的线性变换复合变换与矩阵乘法矩阵的定义列空间与基矩阵的秩逆变换与逆矩阵 线性变换与矩阵 线性变换与二阶方阵 本节从二维平面出发学习线性代数。通常选用平面坐标系 O x y Oxy Oxy ,基向量为 i , j \mathbf i,…

数据结构-时间复杂度/空间复杂度

Hello,好久没有更新了哦,已经开始学习数据结构了,这篇文章呢就是对刚学数据结构所接触到的时间复杂度进行一个分享哦,如果有错误之处,大家记得拍拍我哦~ 既然要讨论时间/空间复杂度,那我们就得知道时间/空…

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…

tdesign的文件上传(微信小程序+idea的springboot)

目录 1. springboot后端 1.1 FileController.java 1.2 listener文件的ErpApplicationListener.java 1.3 【重点!】FileServiceImpl层 1.4 IFileService 1.5 StringUtil通用类 1.6 主程序加一个监听器 1.7 application.yml文件 2. 微信小程序端 2.1 TDesign的…

latex如何保证图片和文字的相对位置不变

文章目录 latex如何保证图片与文字的相对位置不变?解决方法: latex如何保证图片与文字的相对位置不变? 解决方法: 加入宏包\usepackage{float} 在figure环境后面加入参数H \begin{figure}[H]\centering\includegraphics[width…

随机产生两个数在屏幕上打印,例如6*7=? 让学生输入答案,若正确打印答对了,否则提示学生重做,直到答对为止(小游戏)

#include<stdio.h> #include<stdlib.h> #include<time.h>//时间的库函数 int main() {int i 0;srand(time(0));//随机种子初始化int num1 rand() %10;//随机数int num2 rand() %10;printf("%d * %d ?\n", num1, num2);printf("请输入答案…

阿里云无影电脑:免费体验无影云电脑3个月

阿里云无影云电脑免费领取流程&#xff0c;免费无影云电脑配置为4核8G&#xff0c;可以免费使用3个月&#xff0c;阿里云百科分享阿里云无影云电脑&#xff08;云桌面&#xff09;免费申请入口、申请流程及免费使用限制条件说明&#xff1a; 目录 阿里云无影云电脑免费申请入…

【C++初阶】动态内存管理

​&#x1f47b;内容专栏&#xff1a; C/C编程 &#x1f428;本文概括&#xff1a; C/C内存分布、C语言动态内存管理、C动态内存管理、operator new与operator delete函数、new和delete的实现原理、定位new表达式、常见面试问题等。 &#x1f43c;本文作者&#xff1a; 阿四啊 …

SQL2 查询多列

描述 题目&#xff1a;现在运营同学想要用户的设备id对应的性别、年龄和学校的数据&#xff0c;请你取出相应数据 示例&#xff1a;user_profile iddevice_idgenderageuniversityprovince12138male21北京大学Beijing23214male复旦大学Shanghai36543female20北京大学Beijing42…

CSRF和SSRF有什么不同?

文章目录 CSRF复现SSRF复现启动环境漏洞复现探测存活IP和端口服务计划任务反弹shell 区别 CSRF复现 打开dvwa&#xff0c;将难度调为low&#xff0c;点击CSRF&#xff0c;打开后发现有一个修改密码的输入框&#xff1a; 在这里修改密码&#xff0c;并用bp抓包&#xff0c;在…

C++实现观察者模式(包含源码)

文章目录 观察者模式一、基本概念二、实现方式三、角色四、过程五、结构图六、构建思路七、完整代码 观察者模式 一、基本概念 观察者模式&#xff08;又被称为模型&#xff08;Model&#xff09;-视图&#xff08;View&#xff09;模式&#xff09;是软件设计模式的一种。在…

开启编程之门

自我介绍 目前已经大二了&#xff0c;计算机专业在读&#xff0c;是一个热爱编程&#xff0c;做事踏实专注的人。转眼间一年已经过去了&#xff0c;也接触编程一年了&#xff0c;但开始并没有对所学所想进行很好的总结和输出&#xff0c;这一年也有了新的很多感悟与心得&#x…

浅谈双十一背后的支付宝LDC架构和其CAP分析

本人汤波&#xff0c;superthem.com 圆领超级个体创始人&#xff0c;Github page地址&#xff1a;https://tbwork.github.io/ 看到很多人在盗用我的文章&#xff0c;还标记成原创&#xff0c;进行收费&#xff0c;非常令人作呕。 我的所有技术文章全部免费阅读&#xff0c;大家…

PCB走线规则

1、线间距。 这里应该遵循3W规则&#xff0c;所谓3W就是为了减少线间串扰&#xff0c;应保证线间距足够大&#xff0c;当线中心不少于3倍线宽&#xff0c;则可 保持70%的电场不互相干扰。如要达到98%的电场不互相干扰&#xff0c;可使用10W的间距。——这是查阅华为PCB布线规则…

npm 清缓存(重新安装node-modules)

安装node依赖包的会出现失败的情况&#xff0c;如下图所示&#xff1a; 此时 提示有些依赖树有冲突&#xff0c;根据提示 “ this command with --force or --legacy-peer-deps” 执行命令即可。 具体步骤如下&#xff1a; 1、先删除本地node-modules包 2、删掉page-loacl…