欢迎,来自IP地址为:98.80.143.34 的朋友
2022 年 注定不平凡,事事大起大落,完全摸不清头脑。但生活还得继续,2023年可能更加困难。
对于一些有志于投身 IT 行业的有为青年,掌握 Linux 可以说是一项基本技能。
本文总结了 Linux 面试被常常问及的问题和答案,希望对于更加深刻的了解 Linux 有所帮助。
1、什么是 Linux
Linux 是一款基于 UNIX 系统开发的开源免费操作系统,于 1991 年由 Linux Torvalds 发布。开发 Linux 的目的是提供一套免费低成本的专有操作系统(例如 Windows 和 macOS)的替代解决方案。
2、什么是 Linux 内核
内核是 Linux 系统的核心组件,由 C 语言编写。内核是直接同主机硬件交互的底层软件,为操作系统提供基础硬件处理接口,是操作系统同基础硬件通信的桥梁。
内核主要完成如下工作:
- 管理硬件资源
- 加载和管理应用程序
- 管理系统资源,如 CPU、内存以及磁盘空间等
3、什么是 GRUB
GRUB (Grand Unified Bootloader) 是 GNU 项目的和个启动加载器,它是一个管理主机启动进程的专用程序。通常,在 BIOS 启动后会由它来加载内核程序到系统内存,再由内核程序负责把操作系统所需的其它组件加载到内存并启动。
GRUB 的界面通常是最先见到的内容,典型示例如下图所示:
4、什么是 Linux 系统的重要组件
Linux 系统通过包含如下重要组件:
- 内核:管理主机硬件及系统及应用的核心程序
- shell:是一个解释器,通过命令行方式接收硬盘输入并将系统命令执行结果进行输出的工具
- GUI:Graphical User Interface 的简写,提供一个图形化的输入输出环境用于同主机交互
- 应用程序:安装于 Linux 系统被用来完成某些任务的软件程序,例如 Firefox 是浏览器,VLC 是视频播放器
5、Linux 系统都有哪些 SHELL
- bash [Bourne Again Shell]:众多 Linux 发行版的默认 shell
- zsh [Z Shell]:Kali Linux 和 macOS 的默认 shell,在 bash 基础上加入了一些特性
- ksh [Korn Shell]:这是一个适用于高级编程语言的 shell
- csh [C Shell]:语法与 C 语言极其类似,非常适合于 C 语言开发人员
6、Linux 系统的交换空间是什么
SWAP 是指在外存设备上划分出的特定空间,用于为内存空间提供扩展。系统在内存用尽后会使用交换空间来保存程序数据,也会保存一些不再需要占用内存的应用程序数据。
7、如何查看系统内存大小
可以使用如下命令查看系统内存的大小:
- free:查看系统已用和未用的内存空间大小
- top:显示系统当前的运行状态,当然包括内存使用情况
- vmstat:显示虚拟内存统计信息
8、如何查看系统磁盘容量
- df [Disk Free]:用于显示 Linux 文件系统磁盘空余信息
- du [Disk Usage]:用于显示系统目录占用的磁盘空间
9、什么是 Inode 和 PID
inode 是 Linux 系统用于存储文件结构的特殊元数据,被叫作索引节点。元数据中包括文件大小、访问权限、用户及属组信息、创建时间截以及文件路径等。
系统中的所有文件会被赋予唯一的整数编号,这个编号就是 inode。
如上图所示,437 就是 default.conf 文件的 inode 编号,其中的”-i”参数则指明需要显示该编号。
PID(Process ID) 是 Linux 系统给所有正在运行程序分配的唯一 ID 号,可以使用”pidof”命令查看正在运行程序的 PID。
10、什么是 Daemons(守护进程)
守护进程是后台执行的服务程序,不需要用户干预。它们为应用程序提供基本的服务,定期将请求转至对应的应用程序执行等功能。
11、Linux 系统的进程状态
在 Linux 系统中,进程是应用程序或服务的一个实例。在任意时间点,一个进程只能是以下几种状态中的一种:
- Ready:进程已经创建完成可以运行的状态
- Running:进程已经执行并为活跃状态
- Stopped:进程执行完成并由操作系统关闭状态
- Wait:进程正在等待其它输入状态
- Zombie:进程已经中止,但是进程信息依然保存在进程列表中的状态
可以使用”ps a”命令查看进程状态,输出如果中”STAT”字段即为进程状态。
12、什么是 GUI
GUI 是 Graphical User Interface 的简写,是 Linux 系统的图形化组件。通过图形化方式,可以使用用户更加方便的使用 Linux 系统完成相应的工作。
13、什么是 GLI
CLI 是 Command Line Interface 的简写。命令行界面允许用户通过 shell 提供的终端界面输入命令,来完成相应的工作。CLI 通常是用于管理主机,由于其不需要过多的系统资源,所以更加适合 VPS 来使用。
14、什么是 root 账户
root 用户拥有 Linux 系统的所有权限,允许该用户对操作系统的完全控制。可以通过 root 用户完成各种系统操作,例如升级系统、安装卸载软件、创建或删除用户以及添加或移除系统服务等。
在大多数的 Linux 发行版中,在系统安装时会自动创建 root 用户。
15、什么是开源软件
开源软件通常是指用户可以不需要任何许可就查看软件的源代码,其它用户也可以根据源代码开发自己应用的软件。
16、Linux 系统目录操作系统有哪些
- pwd:显示当前工作目录或者说是当前的目录路径
- ls:显示当前目录中的内容
- cd:切换目录
- mkdir:创建新的空目录
- rmdir:删除空目录
- rm:删除文件或非空目录
17、什么是重定向操作符
重定向是指将一个命令的输出发送给其它文件的过程。当然重定向也可以将一个输出以输入方式发送给另一个进程。
在 Linux 系统中,”>”符和”|”符通常用于重定向,用于将前面的输出以输入方式发送至后面的进程。
18、vi 编辑器有几种模式
- 普通模式/命令模式:打开文件后会自动进入该模式,在该模式下,可以执行 vi 对应的命令
- 插入模式:该模式允许输入文本内容
- 虚拟模式:该模式下可以选择文本,以进行复制、剪切以及粘贴操作
19、什么是 Alias
顾名思义,别名就像自定义快捷方式,用于表示使用或不使用自定义选项执行的命令(或命令集)。
20、如何显示出 Linux 系统所有正在运行的进程
使用”ps aux” 命令可以显示出所有正在运行的进程信息。
21、什么是软链接
软链接,也称为符号链接,类似于 Windows 操作系统上的文件快捷方式。 它包含文件的路径而不是其内容。
软链接可以链接到文件或目录。如果删除了原始文件,软链接将断开并称为挂起链接。但是,删除软件本身不会影响任何东西。
另外,软链接可以跨文件系统链接。
22、什么是硬链接
硬链接是链接文件实际内容的文件快捷方式,与仅包含文件路径的软链接不同。它与原始文件大小相同,并且共享与原始文件相同的索引节点号。
当源文件更新时,硬链接的内容也会更新。此外,即使删除了原始文件,硬链接也不会受到影响。
硬链接的缺点是它不能跨不同的文件系统创建。
23、什么是 Linux 系统的隐藏文件
隐藏文件是文件名以点号”.”为开头的文件或目录。它们主要包含保存重要数据或设置的配置文件。要查看隐藏文件,可以使用带有”-la”选项的”ls”命令。
24、Linux 系统的不同权限如何理解
- Read [r]:允许用户读取文件内容或显示目录文件信息
- Write [w]:允许用户修改或创建文件
- Excute [x]:允许用户运行文件
Linux 系统各属组用户权限如下图所示:
25、如何修改文件或目录的权限
chmod 命令可以修改文件或目录的权限,命令格式为”chmod [OPTIONS] [permissions] file”。
26、什么是 grep 命令
Grep 是一个命令行工具,用于搜索和匹配文本文件或文本文件中的行。
27、Linux 系统如何中止正在运行的进程
“kill pid”方式可以通过进程 pid 方式中止该进程,”killall 进程名称”方式可以以进程名称方式中止进程。
28、如何在一行命令中执行多个命令
要在单行命令中一个接一个地运行多个命令,可以使用”;”、”&&”或”||”来实现:
- X ; Y:两条命令互不相关,执行完 X 再执行 Y
- X && Y:当 X 命令正确执行时才执行 Y
- X || Y:当 X命令未正确执行时才执行 Y
29、如何查看 Linux 系统运行时间
想到查看 Linux 系统的运行时间,只需要执行”uptime”命令即可。
30、如何查看 Linux 系统信息
查看 Linux 系统的信息,可以使用”uname -a”命令,其中”-a”参数用户显示详细信息。