50 个 Unix 面试问题和答案 (2025)
Unix 面试问题和答案(初级)
1)什么是 UNIX?
它是一种可移植的操作系统,设计用于高效的多任务和多用户功能。其可移植性使其能够运行在不同的硬件平台上。它以 C 语言编写,并允许用户在 shell 下进行处理和控制。
2)什么是过滤器?
过滤器一词通常指任何可以从标准输入获取输入、对该输入执行某些操作并将结果写入标准输出的程序。过滤器也是任何可以在管道中的其他两个程序之间使用的程序。
3)在 shell 中发出命令时遵循的典型语法是什么?
UNIX shell 下的典型命令语法遵循格式
Command [-argument] [-argument] [–argument] [file]
4)有没有办法只用一个命令删除当前目录中的所有文件,包括其所有子目录?
是的,这是可能的。为此使用“rm –r *”。rm 命令用于删除文件。–r 选项将删除目录和子目录,包括其中的文件。星号表示所有条目。
5)set 命令的 –v 和 –x 选项之间有什么主要区别?
–v 选项在替换参数和变量之前回显每个命令;–x 选项在替换发生后回显命令。
6)什么是 Kernel(内核)?
Kernel 是 UNIX 操作系统的核心程序,它控制计算机的资源,将它们分配给不同的用户并执行不同的任务。然而,内核不直接与用户打交道。相反,它在用户登录时为每个用户启动一个单独的交互式程序,称为 shell。
7)什么是 Shell?
Shell 在用户和系统之间充当接口。作为命令解释器,shell 接收命令并设置它们以供执行。
8)Korn Shell 的主要特点是什么?
- 具有内置编辑器的历史机制,可以模拟 emacs 或 vi
- 内置整数运算
- 字符串操作功能
- 命令别名
- 数组
- 作业控制
9)一些常见的 shell 是什么,它们的指示符是什么?
- sh – Bourne shell
- csh – C Shell
- bash – Bourne Again Shell
- tcsh – enhanced C Shell
- zsh – Z SHell
- ksh – Korn SHell
10)区分多用户和多任务。
多用户意味着多个人可以同时使用计算机。多任务意味着即使单个用户也可以让计算机同时处理多个任务或程序。
11)什么是命令替换?
命令替换是 shell 处理命令时执行的步骤之一。Shell 只执行用反引号括起来的命令。然后,它将命令的标准输出替换为显示在命令行的内容。
12)什么是目录?
每个文件都分配给一个目录。目录是一种特殊形式的文件,它维护其中所有文件的列表。
13)什么是 inode?
inode 是在分配给文件系统的磁盘部分创建的一个条目。inode 包含关于文件的几乎所有信息。它包括文件在磁盘上的开始位置、文件大小、最后访问时间、最后修改时间、各种读、写和执行权限以及文件所有者等信息。
14)您有一个名为 tonky 的文件在 honky 目录中。之后,您向 tonky 添加了新内容。目录、inode 和文件发生了什么变化?
目录条目保持不变,因为名称和 inode 号保持不变。在 inode 文件中,文件大小、最后访问时间和最后修改时间会被更新。在文件本身中,会添加新内容。
15)描述 UNIX 中的文件系统
理解 UNIX 中的文件系统就是了解文件和 inode 在系统上是如何存储的。实际情况是,将磁盘或磁盘的一部分分配给存储文件和 inode 条目。整个功能单元称为文件系统。
Unix 面试问题(有经验者)
16)区分相对路径和绝对路径。
相对路径是指相对于当前路径的路径。另一方面,绝对路径是指从根目录引用的确切路径。
17)解释目录在 UNIX 系统中的重要性
目录中的文件可以是目录本身;它将被称为原始目录的子目录。这种能力使得创建目录和文件的树状结构成为可能,这对于维护组织方案至关重要。
18)简要描述 Shell 的职责
- 程序执行
- 变量和文件名替换
- I/O 重定向
- 管道连接
- 环境控制
- 解释型编程语言
19)什么是 shell 变量?
Shell 变量是名称(标识符)和已分配值(存在于 shell 中)的组合。这些变量可以具有默认值,或者可以通过适当的赋值命令手动设置其值。Shell 变量的例子是 PATH、TERM 和 HOME。
20)系统调用、库函数和 UNIX 命令之间有什么区别?
系统调用是内核编程的一部分。库函数是一个不是内核的一部分但可供系统用户使用的程序。然而,UNIX 命令是独立的程序;它们可能在其编程中包含系统调用和库函数。
21)什么是 Bash Shell?
它是一个为在 UNIX 系统上工作而设计的免费 shell。作为大多数类 UNIX 系统的默认 shell,它结合了 C shell 和 Korn shell 中可用的功能。
22)列举一些 UNIX 中最常用的网络命令
- telnet – 用于远程登录
- ping – 用于测试连接的回显请求
- su – 用户切换命令
- ftp – 用于复制文件的文件传输协议
- finger – 信息收集命令
23)区分 cmp 命令和 diff 命令。
cmp 命令主要用于逐字节比较两个文件,然后显示遇到的第一个不匹配项。另一方面,diff 命令用于指示为使两个文件彼此相同需要进行的更改。
24)在列出目录时使用 -l 有什么用?
-l 通常在 ls 等列出命令中使用,用于以长格式显示文件,每行一个文件。长格式是指与文件相关的附加信息,例如所有权、权限、数据和文件大小。
25)什么是管道?
管道,用管道字符“|”表示,用于将两个或多个命令组合在一起。第一个命令的输出作为下一个命令的输入,依此类推。
26)什么是超级用户?
超级用户是一种特殊类型的用户,对系统上的所有文件和命令都有开放的访问权限。请注意,超级用户的登录通常是 root,并受所谓的 root 密码保护。
27)如何在 UNIX 中确定和设置路径?
每次输入命令时,名为 PATH 或 path 的变量将定义 shell 将在其中搜索该命令的目录。如果返回了错误消息,原因可能是命令不在您的路径中,或者命令本身不存在。您也可以使用“set path = [directory path]”命令手动设置路径。
28)是否可以查看正在执行的进程的信息?
每个进程都由一个进程标识符唯一标识。可以使用 ps 命令查看有关进程的详细信息和状态。
29)UNIX 中命名文件的标准约定是什么?
命名文件的一个重要规则是,不允许使用具有特殊含义的字符,例如 * / & 和 %。目录作为一种特殊类型的文件,遵循与文件相同的命名约定。使用字母和数字,以及下划线和点字符。
30)为什么不建议使用 root 作为默认登录?
root 帐户非常重要,如果使用不当,很容易导致系统损坏。这是因为用户帐户通常适用的保护措施不适用于 root 帐户。
Unix 面试问题和答案(5年以上经验)
31)tee 命令有什么用?
tee 命令执行两项操作:一项是从标准输入获取数据并将其发送到标准输出;第二项是将该输入数据的副本重定向到指定的文件的。
32)区分 cat 命令和 more 命令。
使用 cat 命令显示文件内容时,不适合屏幕的大量数据会滚动而不会暂停,因此难以查看。另一方面,在这种情况下,使用 more 命令更合适,因为它会一次显示一屏文件内容。
33)什么是解析?
解析是将命令行分解成单词的过程。这是通过使用分隔符和空格来实现的。如果制表符或多个空格是命令的一部分,它们最终会被单个空格替换。
34)什么是 pid?
Pid 是 Process ID 的缩写。它主要用于标识在 UNIX 系统上运行的每个进程,无论它是在前台还是在后台运行。每个 pid 都被认为是唯一的。
35)系统如何知道一个命令从哪里开始,另一个命令从哪里结束?
通常,换行符(由 ENTER 或 RETURN 键生成)充当标识符。但是,分号和与号也可以用作命令终止符。
36)什么是虚拟终端?
虚拟终端与您到目前为止一直在使用的终端类似。它们用于执行命令和提供输入。唯一的区别是您不能将鼠标与虚拟终端一起使用。因此,您需要知道键盘快捷键。
虚拟终端允许许多用户在同一台计算机上同时处理不同的程序。这就是它们成为 Linux 最显著的特性之一的原因。
37)什么是通配符解释?
当命令行包含通配符(如 '*' 或 '?')时。它们会被 shell 替换为匹配输入命令模式的文件列表。通配符用于为处理设置文件列表,而不是逐个指定。
38)此命令的输出是什么? $who | sort –logfile > newfile
在此命令中,“who”命令的输出成为“sort”命令的输入。同时,“sort”打开 logfile,将其与“who”命令的输出一起排序,并将最终排序的输出放入文件 newfile 中。
39)如何从任何用户类型切换到超级用户类型?
为了从任何用户类型切换到超级用户,您可以使用 su 命令。但是,在授予您完全访问权限之前,系统会要求您输入正确的超级用户密码。
40)将 PATH 的值更改为:./:/usr/della/bin: /bin: /usr/bin 会产生什么影响
这会导致 shell 在查找命令文件时,在当前目录中查找之后,在 /bin 目录中查找之前,会先查找 /usr/della/bin 目录。
41)编写一个命令,该命令以彩色长格式显示当前目录中的文件。
答案:ls -l –color
42)编写一个命令,用于查找目录中的所有文本文件,这些文件不包含任何形式的单词“amazing”(即,它必须包含单词 Amazing、AMAZING 或 aMAZINg)
答案
grep –vi amazing *.txt
43)编写一个命令,该命令将文件 IN.TXT 的已排序内容输出到另一个名为 OUT.TXT 的文件,同时排除重复条目。
答案
sort IN.TXT | uniq > OUT.TXT
44)编写一个命令,该命令将在 15 分钟后关闭 UNIX 系统,然后执行重新启动。
答案
/sbin/shutdown –r +15
45)什么命令可以将您的提示符更改为 MYPROMPT?
要更改提示符,我们使用 PS1 命令,如下所示
PS1 = 'MYPROMPT:'
46)此命令做什么? cat food 1 > kitty
答案:它将 cat food 的输出重定向到文件 kitty;该命令与:cat food > kitty 相同
47)这个交互式 shell 脚本有什么问题?
echo What month is this?read $monthecho $month is as good a month as any.
答案:最初,问号应该被转义(\?),这样它就不会被解释为 shell 元字符。其次,它应该读取 month,而不是 read $month。
48)编写一个 shell 脚本,该脚本要求用户输入年龄,然后将其回显,并附带一些合适的注释。
答案
echo Hello! What\'s your age\? read age echo $age! I\'ll be obsolete by that age!
49)编写一个脚本,以如下顺序打印日期信息:时间、星期几、日号、月份、年份(示例输出:17:34:51 PDT Sun 12 Feb 2012)
答案
set 'date' echo $4 $5 $1 $3 $2 $6
50)
编写一个脚本,将显示以下输出
给我一个 U!
U!
给我一个 N!
N!
给我一个 I!
I!
给我一个 X!
X!
答案:for i in U N I Xdo
echo Give me a $i! echo $i! done
这些面试问题也将有助于您的口试