「面试 - 八股文」Linux 高频面试题,助你吊打面试官系列
0. 基础
- 0.1 什么是 Linux
- 0.2 Unix 和 Linux 有什么区别?
- 0.3 什么是 Linux 内核?
- 0.4 Linux 的基本组件是什么?
- 0.5 Linux 的体系结构
- 0.6 BASH 和 DOS 之间的基本区别是什么?
- 0.7 Linux 开机启动过程?
- 0.8 Linux 系统缺省的运行级别?
- 0.9 Linux 使用的进程间通信方式?
- 0.10 Linux 有哪些系统日志文件?
- 0.11 Linux 系统安装多个桌面环境有帮助吗?
- 0.12 什么是交换空间?
- 0.13 什么是 root 帐户
- 0.14 什么是 LILO?
- 0.15 什么是 BASH?
- 0.16 什么是 CLI?
- 0.17 什么是 GUI?
- 0.18 开源的优势是什么?
- 0.19 GNU 项目的重要性是什么?
- linux 三剑客 grep、sed、awk
- 1.0 简介
- 1.1 grep
- 1.2 sed
- 1.3 awk
- shell
- 2.1 Shell 脚本是什么
- 2.2 可以在 Shell 脚本中使用哪些类型的变量?
- 2.3 Shell 脚本中 if 语法如何嵌套?
- 2.4 Shell 脚本中 case 语句的语法?
- 2.5 Shell 脚本中 for 循环语法?
- 2.6 Shell 脚本中 while 循环语法?
- 2.7 Shell 脚本中 break 命令的作用?
- 2.8 Shell 脚本中 continue 命令的作用?
- 2.9 如何使脚本可执行?
- 2.10 如何调试 Shell 脚本?
- 2.11 如何将标准输出和错误输出同时重定向到同一位置?
- 2.12 如何在 Shell 脚本如何定义函数呢?
- 2.13 如何执行算术运算?
- 文件管理命令
- 3.1 cat 命令
- 3.2 chmod 命令
- 3.3 chown 命令
- 3.4 cp 命令
- 3.5 find 命令
- 3.6 head 命令
- 3.7 less 命令
- 3.8 ln 命令
- 3.9 locate 命令
- 3.10 more 命令
- 3.11 mv 命令
- 3.12 rm 命令
- 3.13 tail 命令
- 3.14 touch 命令
- 3.15 vim 命令
- 3.16 whereis 命令
- 3.17 which 命令
- 文档编辑命令
- 4.1 grep 命令
- 4.2 wc 命令
- 磁盘管理命令
- 5.1 cd 命令
- 5.2 df 命令
- 5.3 du 命令
- 5.4 ls 命令
- 5.5 mkdir 命令
- 5.6 pwd 命令
- 5.7 rmdir 命令
- 网络通讯命令
- 6.1 ifconfig 命令
- 6.2 iptables 命令
- 6.3 netstat 命令
- 6.4 ping 命令
- 6.5 telnet 命令
- 系统管理命令
- 7.1 date 命令
- 7.2 free 命令
- 7.3 kill 命令
- 7.4 ps 命令
- 7.5 rpm 命令
- 7.6 top 命令
- 7.7 yum 命令
- 备份压缩命令
- 8.1 bzip2 命令
- 8.2 gzip 命令
- 8.3 tar 命令
- 8.4 unzip 命令
0. 基础
0.1 什么是 Linux
- Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
0.2 Unix 和 Linux 有什么区别?
- Linux 和 Unix 都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为 Unix 和 Linux 操作系统是一样的,然而,事实并非如此,以下是两者的区别。
- 开源性 Linux 是一款开源操作系统,不需要付费,即可使用;Unix 是一款对源码实行知识产权保护的传统商业软件,使用需要付费授权使用。
- 跨平台性 Linux 操作系统具有良好的跨平台性能,可运行在多种硬件平台上;Unix 操作系统跨平台性能较弱,大多需与硬件配套使用。
- 可视化界面 Linux 除了进行命令行操作,还有窗体管理系统;Unix 只是命令行下的系统。
- 硬件环境 Linux 操作系统对硬件的要求较低,安装方法更易掌握;Unix 对硬件要求比较苛刻,按照难度较大。
- 用户群体 Linux 的用户群体很广泛,个人和企业均可使用;Unix 的用户群体比较窄,多是安全性要求高的大型企业使用,如银行、电信部门等,或者 Unix 硬件厂商使用,如 Sun 等。
- 相比于 Unix 操作系统,Linux 操作系统更受广大计算机爱好者的喜爱,主要原因是 Linux 操作系统具有 Unix 操作系统的全部功能,并且能够在普通 PC 计算机上实现全部的 Unix 特性,开源免费的特性,更容易普及使用!
0.3 什么是 Linux 内核?
- Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。
- 系统内存管理
- 应用程序管理
- 硬件设备管理
- 文件系统管理
0.4 Linux 的基本组件是什么?
- 就像任何其他典型的操作系统一样,Linux 拥有所有这些组件:内核,shell 和 GUI,系统实用程序和应用程序。Linux 比其他操作系统更具优势的是每个方面都附带其他功能,所有代码都可以免费下载。
0.5 Linux 的体系结构
从大的方面讲,Linux 体系结构可以分为两块:

- 用户空间(User Space) :用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
- 内核空间(Kernel Space) :内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture-Dependent Kernel Code) 。
为什么 Linux 体系结构要分为用户空间和内核空间的原因?
- 1、现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。
- 2、Linux 从 CPU 的角度出发,为了保护内核的安全,把系统分成了两部分。
- 用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移:1)系统调用;2)硬件中断。
0.6 BASH 和 DOS 之间的基本区别是什么?
BASH 和 DOS 控制台之间的主要区别在于 3 个方面:
- BASH 命令区分大小写,而 DOS 命令则不区分;
- 在 BASH 下,/ character 是目录分隔符,\作为转义字符。在 DOS 下,/用作命令参数分隔符,\是目录分隔符
- DOS 遵循命名文件中的约定,即 8 个字符的文件名后跟一个点,扩展名为 3 个字符。BASH 没有遵循这样的惯例。
0.7 Linux 开机启动过程?
了解即可
- 1、主机加电自检,加载 BIOS 硬件信息。
- 2、读取 MBR 的引导文件(GRUB、LILO)。
- 3、引导 Linux 内核。
- 4、运行第一个进程 init (进程号永远为 1 )。
- 5、进入相应的运行级别。
- 6、运行终端,输入用户名和密码。
0.8 Linux 系统缺省的运行级别?
- 关机。
- 单机用户模式。
- 字符界面的多用户模式(不支持网络)。
- 字符界面的多用户模式。
- 未分配使用。
- 图形界面的多用户模式。
- 重启。
0.9 Linux 使用的进程间通信方式?
了解即可
- 1、管道(pipe)、流管道(s_pipe)、有名管道(FIFO)。
- 2、信号(signal) 。
- 3、消息队列。
- 4、共享内存。
- 5、信号量。
- 6、套接字(socket) 。
0.10 Linux 有哪些系统日志文件?
- 比较重要的是 /var/log/messages 日志文件。
- 该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。
- 另外,如果胖友的系统里有 ELK 日志集中收集,它也会被收集进去。
0.11 Linux 系统安装多个桌面环境有帮助吗?
- 通常,一个桌面环境,如 KDE 或 Gnome,足以在没有问题的情况下运行。尽管系统允许从一个环境切换到另一个环境,但这对用户来说都是优先考虑的问题。有些程序在一个环境中工作而在另一个环境中无法工作,因此它也可以被视为选择使用哪个环境的一个因素。
0.12 什么是交换空间?
- 交换空间是 Linux 使用的一定空间,用于临时保存一些并发运行的程序。当 RAM 没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。
0.13 什么是 root 帐户
- root 帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装 Linux 时都是默认帐户。
0.14 什么是 LILO?
- LILO 是 Linux 的引导加载程序。它主要用于将 Linux 操作系统加载到主内存中,以便它可以开始运行。
0.15 什么是 BASH?
- BASH 是 Bourne Again SHell 的缩写。它由 Steve Bourne 编写,作为原始 Bourne Shell(由/ bin / sh 表示)的替代品。它结合了原始版本的 Bourne Shell 的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行 Linux 的大多数系统的默认 shell。
0.16 什么是 CLI?
- 命令行界面(英语**:command-line interface**,缩写]:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。
- 通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。
0.17 什么是 GUI?
- 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
- 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。
0.18 开源的优势是什么?
- 开源允许你将软件(包括源代码)免费分发给任何感兴趣的人。然后,人们可以添加功能,甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好,然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益。
0.19 GNU 项目的重要性是什么?
- 这种所谓的自由软件运动具有多种优势,例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人,以及自由改进软件并将其发布给公众。
1.0 简介
- Linux 中最重要的三个命令在业界被称为“三剑客”,它们是 awk,sed,grep。
- 我们现在知道 Linux 下一切皆文件,对 Linux 的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令。
- grep 擅长查找功能,sed 擅长取行和替换。awk 擅长取列。