Linux 是个人和企业环境中使用最广泛的操作系统之一。无论你的目标是成为系统管理员、DevOps 工程师、软件开发人员还是 IT 专业人士,拥有扎实的 Linux 基础都是必不可少的。
为了支持你的学习和面试准备,我们很高兴在 Tecmint 上推出专门的 Linux 面试专栏,其中将包含精心挑选的 Linux 面试题,并附上详细的答案,帮助你自信地做好准备。
每个周末,我们都会在这个专栏发布一篇新文章,从基础的 Linux 问题开始,逐步深入到更高级的主题。这一举措在专注于 Linux 的网站中尚属首创,我们致力于提供高质量、实用且独特的内容。
让我们从 15 个基础 Linux 面试题及答案开始,开启这个系列。
问题 1:Linux 操作系统的核心是什么?
Linux 操作系统的核心是内核(Kernel),它是操作系统的最底层,充当硬件和软件之间的桥梁。它负责管理系统资源,如内存、CPU 时间、设备驱动程序和系统调用。
Linux 内核是单内核(monolithic),这意味着它将核心系统功能、设备驱动程序和文件系统管理都包含在一个运行在单一地址空间的大型代码块中。
问题 2:Linus Torvalds 创造了什么?
Linus Torvalds 于 1991 年创建了 Linux 内核。这最初是他在芬兰赫尔辛基大学就读期间的一个业余项目。最初受到 MINIX(一个用于教育的类 Unix 系统)的启发,他创建了一个自由、开源的替代方案。
随着时间的推移,Linux 内核演变为许多操作系统的核心,这些操作系统统称为 Linux 发行版(例如 Ubuntu、Fedora、Debian)。
问题 3:Linus Torvalds 是用 C++ 编写了大部分 Linux 内核吗?
不,这是不正确的。Linus Torvalds 是用 C 编程语言编写了大部分 Linux 内核,而不是 C++。事实上,Linus 曾公开批评在内核开发中使用 C++,因为他担心性能、复杂性和可靠性问题。
内核开发中更倾向使用 C 语言,因为它提供了底层内存访问、最小的运行时开销以及对硬件资源的最大控制。
问题 4:Linux 最初是为 Intel x86 架构开发的吗?它是否已被移植到其他平台?
是的,Linux 最初是为 Intel x86 架构(32 位系统)开发的,但多年来,它已成功移植到各种硬件架构。
这些架构包括 ARM、PowerPC、SPARC、MIPS,甚至大型机。如今,Linux 运行在从智能手机、平板电脑到服务器、超级计算机、路由器和嵌入式系统的各种设备上。
问题 5:编辑 Linux 内核合法吗?
是的,编辑 Linux 内核是完全合法的,因为它是在 GNU 通用公共许可证(GPL)第 2 版下发布的,这意味着它允许用户自由查看、修改和重新分发源代码,只要任何修改也在相同许可证下提供。
这种自由是 Linux 在各种项目中变得如此流行并被广泛采用的原因之一。
问题 6:UNIX 和 Linux 的基本区别是什么?
UNIX 是 20 世纪 70 年代最初在 AT&T 贝尔实验室开发的专有操作系统。而 Linux 则是一个自由、开源的类 UNIX 操作系统。
虽然 UNIX 系统通常用于商业环境,并有不同的变体(例如 AIX、Solaris、HP-UX),但 Linux 是一个社区开发的系统,它与 UNIX 共享相似的原则和设计,但并非源自 UNIX 代码。
主要区别包括:
| 特性 | UNIX | Linux |
|---|---|---|
| 许可 | 专有 | 开源(GNU 通用公共许可证) |
| 成本 | 通常需要购买许可证 | 免费 |
| 硬件 | 通常用于专用硬件 | 支持广泛的硬件设备 |
问题 7:Linux 操作系统是无病毒的吗?
没有任何操作系统是完全无病毒的,包括 Linux。然而,由于其基于权限的结构、用户角色分离以及积极维护和修补漏洞的庞大开发者社区,Linux 被认为比许多其他系统更安全。
此外,由于与 Windows 相比桌面市场份额较小,Linux 较少成为恶意软件的目标。尽管如此,管理员仍应使用安全最佳实践和工具,如防火墙、SELinux 和防病毒软件。
问题 8:Linux 是什么类型的操作系统?
Linux 是一个多用户、多任务和多线程的操作系统。
具体来说,它是:
- 类 Unix 操作系统
- 开源操作系统
- 基于模块化单内核的操作系统
Linux 既可用作服务器操作系统,也可用作桌面操作系统,并支持进程调度、虚拟内存、共享库和动态加载等功能。
问题 9:Linux 命令的语法是什么?
Linux 命令的一般语法是:
command [options] [arguments]
例如:
ls -l /home/user
其中,
ls是命令(列出目录内容)。-l是选项(长列表格式)。/home/user是参数(要列出的目录)。
问题 10:什么是 Linux 发行版?
Linux 发行版(或 distro)是基于 Linux 内核的完整操作系统,包括系统软件、包管理器,通常还包括图形用户界面(GUI)。
例如 Ubuntu、CentOS、Fedora、Arch Linux 和 Debian。每个发行版服务于不同的目的,并迎合从初学者到企业环境的不同用户。
问题 11:Linux 中的运行级别(Runlevels)是什么?
运行级别是类 Unix 系统中预定义的机器状态,用于定义哪些服务正在运行。
传统的 SysV init 系统使用编号的运行级别,例如:
0– 停机1– 单用户模式3– 多用户模式(无 GUI)5– 带 GUI 的多用户模式6– 重启
大多数现代 Linux 发行版(如 Fedora、CentOS 7+、Ubuntu 15.04+ 等)已用 systemd 取代了 SysV init 系统,后者使用 targets 而非 runlevels 来管理系统状态。
以下是 systemd targets 与传统运行级别的对应关系:
| 运行级别 | systemd Target | 描述 |
|---|---|---|
| 0 | poweroff.target | 关闭系统 |
| 1 | rescue.target | 单用户模式 |
| 3 | multi-user.target | 多用户模式,仅命令行 |
| 5 | graphical.target | 带 GUI 的多用户模式 |
| 6 | reboot.target | 重启系统 |
问题 12:硬链接和软链接有什么区别?
- 硬链接:直接指向磁盘上的数据(inode)。如果原始文件被删除,硬链接仍然有效。
- 软链接(符号链接):类似于快捷方式。它通过路径指向原始文件。如果原始文件被删除,符号链接将失效。
问题 13:Linux 中的 Shell 是什么?
Shell 是一个命令行界面,允许用户与操作系统交互。它解释用户命令并将其传递给内核执行。
流行的 Linux Shell 包括:
- Bash(Bourne Again Shell)
- Zsh(Z Shell)
- Ksh(KornShell)
- Tcsh(TENEX C Shell)
问题 14:如何在 Linux 中检查内存使用情况?
你可以使用以下命令检查内存使用情况:
- free -h:显示已用、空闲和总内存。
- top:实时查看系统进程和内存使用情况。
- vmstat:报告内存、CPU 和 I/O 使用情况。
- htop:交互式进程查看器(需要安装)。
问题 15:Linux 中的文件权限是如何表示的?
Linux 中的文件权限使用三组属性表示:
- 用户(所有者)
- 组
- 其他
每组包括以下权限:
- 读(r)
- 写(w)
- 执行(x)
示例:
-rwxr-xr-- 1 user group 1234 Jan 1 12:00 file.txt
这意味着:
- 所有者拥有读、写、执行权限
- 组拥有读、执行权限
- 其他用户只有读权限
你可以使用 chmod 更改权限,使用 chown 更改所有权。
结论
理解 Linux 基础知识对于现代 IT 环境中的许多角色至关重要。这些问题涵盖了你在初级面试中可能遇到的基础知识。
随着学习的深入,可以考虑探索更高级的主题,例如 Linux 中的进程管理、脚本编写、文件系统和网络。