草庐IT

「面试必背」Linux面试题(2022最新版)

java晴天过后 2023-04-18 原文

作为 Java 的从业者,在找工作的时候,一定会被问及关于Linux 相关的知识。Linux知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。在这里我们将详细的整理常见的Linux面试题目, 提供给大家学习参考。

1. 什么是Linux

Linux是一套免费使用和自由传播的类似Unix操作系统,一般的WEB项目都是部署都是放在Linux操作系统上面。 Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2. Windows和Linux的区别

  • Windows是微软开发的操作系统,民用操作系统,可用于娱乐、影音、上网。 Windows操作系统具有强大的日志记录系统和强大的桌面应用。好处是它可以帮我们实现非常多绚丽多彩的效果,可以非常方便去进行娱乐、影音、上网。
  • Linux的应用相对单纯很多,没有什么绚丽多彩的效果,因此Linux的性能是非常出色的,可以完全针对机器的配置有针对性的优化,
  • 简单来说Windows适合普通用户进行娱乐办公使用,Linux适合软件开发部署

3. Unix和Linux有什么区别?

4. 什么是 Linux 内核?

Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。

  • 系统内存管理
  • 应用程序管理
  • 硬件设备管理
  • 文件系统管理

5. Linux的基本组件是什么?

就像任何其他典型的操作系统一样,Linux拥有所有这些组件:内核,shell和GUI,系统实用程序和应用程序。Linux比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。

6. Linux 的体系结构

从大的方面讲,Linux 体系结构可以分为两块:

7. BASH和DOS之间的基本区别是什么?

8. Linux 开机启动过程?

  • 1、主机加电自检,加载 BIOS 硬件信息。
  • 2、读取 MBR 的引导文件(GRUB、LILO)。
  • 3、引导 Linux 内核。
  • 4、运行第一个进程 init (进程号永远为 1 )。
  • 5、进入相应的运行级别。
  • 6、运行终端,输入用户名和密码。

9. Linux系统缺省的运行级别?

  • 关机。
  • 单机用户模式。
  • 字符界面的多用户模式(不支持网络)。
  • 字符界面的多用户模式。
  • 未分配使用。
  • 图形界面的多用户模式。
  • 重启。

10. Linux 使用的进程间通信方式?

  • 1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
  • 2、信号(signal) 。
  • 3、消息队列。
  • 4、共享内存。
  • 5、信号量。
  • 6、套接字(socket) 。

11. Linux 有哪些系统日志文件?

比较重要的是 /var/log/messages 日志文件。

12. Linux系统安装多个桌面环境有帮助吗?

通常,一个桌面环境,如KDE或Gnome,足以在没有问题的情况下运行。尽管系统允许从一个环境切换到另一个环境,但这对用户来说都是优先考虑的问题。有些程序在一个环境中工作而在另一个环境中无法工作,因此它也可以被视为选择使用哪个环境的一个因素。

13. 什么是交换空间?

交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。

14. 什么是root帐户

root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。

15. 什么是LILO?

LILO是Linux的引导加载程序。它主要用于将Linux操作系统加载到主内存中,以便它可以开始运行。

16. 什么是BASH?

BASH是Bourne Again SHell的缩写。它由Steve Bourne编写,作为原始Bourne Shell(由/ bin /sh表示)的替代品。它结合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行Linux的大多数系统的默认shell。

17. 什么是CLI?

18. 什么是GUI?

19. 开源的优势是什么?

开源允许你将软件(包括源代码)免费分发给任何感兴趣的人。然后,人们可以添加功能,甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好,然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益。

20. GNU项目的重要性是什么?

这种所谓的自由软件运动具有多种优势,例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人,以及自由改进软件并将其发布给公众。

21. 简单 Linux 文件系统?

22. Linux 的目录结构是怎样的?

23. 什么是 inode ?

24. 什么是硬链接和软链接?

25. RAID 是什么?

26. 一台 Linux 系统初始化环境后需要做一些什么安全工作?

27. 什么叫 CC 攻击?什么叫 DDOS 攻击?

28. 什么是网站数据库注入?

29. Shell 脚本是什么?

一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这些日常工作任务。

30.如何选择 Linux 操作系统版本?

31. 如何规划一台 Linux 主机,步骤是怎样?

32. 请问当用户反馈网站访问慢,你会如何处理?

33. Linux 性能调优都有哪几种方法?

34. 基本命令

  • cd (change directory:英文释义是改变目录)切换目录
  • pwd (print working directory:显示当前工作目录的绝对路径)
  • ls (ls:list的缩写,查看列表)查看当前目录下的所有文件夹(ls 只列出文件名或目录名)
  • ll (ll:list的缩写,查看列表详情)查看当前目录下的所有详细信息和文件夹(ll 结果是详细,有时间,是否可读写等信息)
  • touch (touch:创建文件)创建文件
  • mkdir (mkdir:创建目录) 创建目录
  • cat (concatenate:显示或把多个文本文件连接起来)查看文件命令(可以快捷查看当前文件的内容)(不能快速定位到最后一页)
  • more (more:更多的意思)分页查看文件命令(不能快速定位到最后一页)
  • tail(尾巴) 查看文件命令(看最后多少行)
  • cp(copy单词缩写,复制功能)
  • mv(move单词缩写,移动功能,该文件名称功能)
  • rm(remove:移除的意思)删除文件,或文件夹
  • fifind (fifind:找到的意思)查找指定文件或目录
  • 回车:向下n行,需要定义,默认为1行。
  • 空格键:向下滚动一屏或Ctrl+F
  • B:返回上一层或Ctrl+B
  • q:退出more
  • less -m 显示类似于more命令的百分比。
  • less -N 显示每行的行号。(大写的N)
  • 两参数一起使用如:less -mN 文件名,如此可分页并显示行号。
  • 空格键:前下一页或page down。
  • 回车:向下一行。
  • b:后退一页 或 page up。
  • q:退出。
  • d:前进半页。
  • u:后退半页
  • tail -10 ;文件名 看最后10行
  • cp /opt/java/java.log /opt/logs/ ;把java.log 复制到/opt/logs/下
  • cp /opt/java/java.log /opt/logs/aaa.log ;把java.log 复制到/opt/logs/下并且改名为
  • aaa.log
  • cp -r /opt/java /opt/logs ;把文件夹及内容复制到logs文件中
  • mv /opt/java/java.log /opt/mysql/ ;移动文件到mysql目录下
  • mv java.log mysql.log ;把java.log改名为mysql.log
  • -f或--force 强制删除文件或目录。删除文件不包括文件夹的文件
  • -r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并删除。
  • -rf 强制删除文件夹及内容
  • rm 文件名 ;安全删除命令 (yes删除 no取消)
  • rm -rf 强制删除文件夹及内容
  • rm -rf * 删除当前目录下的所有内容。
  • rm -rf /* 删除Linux系统根目录下所有的内容。系统将完蛋。vi (VIsual:视觉)文本编辑器 类似win的记事本 (操作类似于地下的vim命令,看底下vim 的操
  • 作)
  • vim (VI IMproved:改进版视觉)改进版文本编辑器 (不管是文件查看还是文件编辑 按 Shift + 上或
  • 者下可以上下移动查看视角)
  • | 管道命令(把多个命令组合起来使用)
  • * 表示0~多个任意字符。
  • find -name 文件名;按照指定名称查找在当前目录下查找文件
  • find / -name 文件名按照指定名称全局查找文件
  • find -name '*文件名' ;任意前缀加上文件名在当前目录下查找文件
  • find / -name '*文件名*' ;全局进行模糊查询带文件名的文件
  • 输入”vim 文件名” 打开文件,刚刚时是”一般模式”。
  • 一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退
  • 出)等。
  • 插入模式:可以编辑文件内容。
  • 底行模式:可以进行强制退出操作,不保存 :q!
  • 可以进行保存并退出操作 :wq
  • 按下”i”或”a”或”o”键,从”一般模式”,进入”插入模式(编辑模式)”。
  • 在编辑模式下按”Esc” 即可到一般模式
  • 在一般模式下按”:”,冒号进入底行模式。
  • 在一般模式下的快捷键
  • dd ;删除一整行
  • X ;向前删除 等同于windowns系统中的删除键
  • x ;向后删除和大写x相反方向
  • Ctrl + f ;向后看一页
  • Ctrl + b ;向前看一页
  • u ;撤销上一步操作
  • /word ;向下查找word关键字 输入:n查找下一个,N查找上一个(不管是哪个查找都是全局查找 只不过
  • n的方向相反)
  • ?log ;向上查找log关键字 输入:n查找上一个,N查找下一个
  • :1,90s/redis/Redis/g ;把1-90行的redis替换为Redis。语法n1,n2s/原关键字/新关键字/g,n1
  • 代表其实行,n2代表结尾行,g是必须要的
  • :0 ;光标移动到第一行
  •  ;光标移动到最后一行
  • :300 ;光标移动到300行,输入多少数字移动到多少行
  • :w ;保存
  • :w! ;强制保存
  • :q ;退出
  • :q! ;强制退出
  • 5dd ;删除后面5行,打一个参数为自己填写
  • 5x ;删除此光标后面5个字符
  • d1G ;删除此光标之前的所有
  • d0 ;从光标当前位置删除到此行的第一个位置
  • yy ;复制
  • p ;在光标的下面进行粘贴
  • P ;在光标的上门进行粘贴grep (grep :正则表达式)正则表达式,用于字符串的搜索工作(模糊查询)。不懂可以先过
  • yum install -y lrzsz 命令(实现win到Linux文件互相简单上传文件)
  • tar (解压 压缩 命令)
  • ps (process status:进程状态,类似于windows的任务管理器)
  • 管道命令的语法:命令1 | 命令2 | 命令3。
  • 单独使用:
  • grep String test.java ;在test.java文件中查找String的位置,返回整行
  • 一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用)
  • ps aux|grep java ;查找带java关键字的进程
  • ll |grep java ;查找带java关键字的文件夹及文件
  • (实际上就是在Linux系统中下载了一个插件)下了了此安装包后就可以实现win系统到linux之间拉文件拉
  • 文件
  • 等待下载完了就可以输入:
  • rz 从win系统中选择文件上传到Linux系统中
  • sz 文件名 选择Linux系统的文件复制到win系统中
  • 常用的组合命令:
  • -z 是否需要用gzip压缩。
  • -c 建立一个压缩文件的参数指令(create) –压缩
  • -x 解开一个压缩文件的参数指令(extract) –解压
  • -v 压缩的过程中显示文件(verbose)
  • -f 使用档名,在f之后要立即接档中(file)
  • 常用解压参数组合:zxvf
  • 常用压缩参数组合:zcvf
  • 解压命令:
  • tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹
  • tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录
  • 压缩命令:(注意 语法有点反了,我反正每次都搞反)
  • tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的
  • 文件
  • tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录)
  • 常用组合:ps -ef 标准的格式查看系统进程
  • ps -aux BSD格式查看系统进程
  • ps -aux|grep redis BSD格式查看进程名称带有redis的系统进程(常用技巧)
  • //显示进程的一些属性,需要了解(ps aux)
  • USER //用户名
  • PID //进程ID号,用来杀死进程的
  • %CPU //进程占用的CPU的百分比
  • %MEM //占用内存的的百分比clear 清屏命令。(强迫症患者使用)
  • ifconfifig命令
  • ping (用于检测与目标的连通性)语法:ping ip地址
  • free 命令 (显示系统内存)
  • top 命令
  • netstat 命令
  • VSZ //该进程使用的虚拟內存量(KB)
  • RSS //该进程占用的固定內存量(KB)
  • STAT //进程的状态
  • START //该进程被触发启动时间
  • TIME //该进程实际使用CPU运行的时间
  • kill 命令用来中止一个进程。(要配合ps命令使用,配合pid关闭进程)
  • (ps类似于打开任务管理器,kill类似于关闭进程)
  • kill -5 进程的PID ;推荐,和平关闭进程
  • kill -9 PID ;不推荐,强制杀死进程
  • 用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。(一般是用来查看的,很少更改)

35.Linux 中主要有哪几种内核锁?

36.Linux 中的用户模式和内核模式是什么含意?

37.怎样申请大块内核内存?

38.用户进程间通信主要哪几种方式?

39.通过伙伴系统申请内核内存的函数有哪些?

40.Linux 虚拟文件系统的关键数据结构有哪些?(至少写出四个)

41.对文件或设备的操作函数保存在那个数据结构中?

42.Linux 中的文件包括哪些?

43.创建进程的系统调用有那些?

44.调用 schedule()进行进程切换的方式有几种?

45.Linux 调度程序是根据进程的动态优先级还是静态优先级来调度进程的?

46.进程调度的核心数据结构是哪个?

47.如何加载、卸载一个模块?

48.模块和应用程序分别运行在什么空间?

49.Linux 中的浮点运算由应用程序实现还是内核实现?

50.模块程序能否使用可链接的库函数?

51.TLB 中缓存的是什么内容?

52.Linux 中有哪几种设备?

53.字符设备驱动程序的关键数据结构是哪个?

54.设备驱动程序包括哪些功能函数?

55.如何唯一标识一个设备?

56.Linux 通过什么方式实现系统调用?

57.Linux 软中断和工作队列的作用是什么?

感谢阅读,由于篇幅有限以上面经资料博主已经整理打包好了,这些知识点的导图和问题的答案详解的PDF文档都可以免费分享给大家,点赞收藏文章后,私信【资料】免费领取!

有关「面试必背」Linux面试题(2022最新版)的更多相关文章

  1. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  2. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  3. Hive SQL 五大经典面试题 - 2

    目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类

  4. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  5. 西安华为OD面试体验 - 2

    西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,

  6. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  7. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  8. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  9. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  10. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

随机推荐