本文精心挑选了10个核心Linux面试问题,看看你会几个?
友情提醒:都不简单!
1. 如何在Bash中定义宏或绑定键到特定命令?
在Linux运维或开发中,重复输入长命令会降低效率。Bash提供了绑定快捷键的功能,让你可以通过按一个键快速执行复杂命令。这在面试中常被问到,因为它考察了你对Bash环境的熟悉程度。
在Bash中,可以使用bind命令将键盘按键绑定到特定命令,从而创建自定义快捷键。首先,你需要知道按键的转义序列(escape sequence)。最简单的方法是按Ctrl + v,然后按下目标键(例如F12),终端会显示该键的转义序列,比如^[[24~。
假设你想将F12绑定到date命令,显示当前时间。可以在终端输入:
bind '"\e[24~":"date"'
执行后,按F12将直接运行date命令,输出当前日期和时间。
2. 如何列出所有可用命令?
Linux系统中可执行命令众多,包括内置命令、别名和PATH中的程序。面试官可能通过这个问题考察你对系统环境的了解。
使用compgen -c命令可以列出当前Bash环境中所有可用的命令,包括内置命令、别名和PATH中的可执行文件。例如:
compgen -c
输出将是一长串命令列表,如ls、cat、systemctl等。
3. 如何打印目录栈?
在Linux中,pushd和popd用于目录导航,目录栈记录了导航历史。面试官可能通过此问题考察你的目录管理能力。
使用dirs命令可以查看目录栈内容,显示按顺序存储的目录列表,当前目录位于栈顶。例如:
dirs
假设你执行了pushd /usr/share和pushd /var/log,运行dirs可能输出:
/var/log /usr/share
4. 如何不重启系统的情况下移除所有后台作业?
Linux中,长时间运行可能积累多个后台或挂起作业。面试官可能想知道你如何管理这些作业。
使用disown -r命令可以将所有运行或停止的后台作业从当前Shell ejected
Shell:
disown -r
5. Bash中的hash命令有何作用?
Bash的哈希表管理命令路径,影响命令执行效率。面试官可能借此考察你的性能优化知识。
hash命令管理Bash的内部哈希表,存储已执行命令的完整路径,加快后续执行速度。运行hash可查看哈希表内容,例如:
hash
输出可能如下:
面试加分点:提到与which命令的区别(which查找PATH中的命令路径,而hash显示实际使用的缓存路径)。
6. Bash中用于整数运算的命令是什么?
Bash脚本中常需进行简单数学运算,面试官可能考察你的脚本编写能力。
let命令用于执行整数运算,常用于脚本中的数学计算。例如:
let a=5
let b=10
let c=a+b
echo $c
输出:15
let支持加(+)、减(-)、乘(*)、除(/)、取模(%)等运算。
替代方法:
- 使用(( ))语法:((c=a+b))。
- 使用expr命令:c=$(expr $a + $b)(注意空格)。
let仅支持整数运算,浮点数需使用bc命令。
面试加分点:提到let与(( ))的性能差异((( ))更现代且可读性强),或介绍浮点运算的bc命令。
7. 如何逐页查看大型文本文件?
处理大文件是Linux运维的常见任务,面试官可能考察你的文件处理能力。
使用less命令可以逐页查看大型文本文件:
less bigfile.txt
less vs more:more仅支持向前翻页,而less支持双向滚动、搜索(/键)和标记。
常用操作:
- Space:下一页。
- b:上一页。
- /pattern:搜索字符串。
- q:退出。
面试加分点:提到less的高级功能,如-N(显示行号)、-S(不换行),或结合tail -f实时监控日志文件。
8. Linux(或典型数据库)中的数据字典由谁拥有?
数据库管理是Linux运维的重要部分,面试官可能考察你的数据库知识。
在MySQL中,数据字典由数据库服务器内部管理,非特定用户所有。root用户拥有对所有数据库(包括mysql、information_schema、performance_schema)的完全访问权限。
数据字典内容:包括表结构、用户权限、索引等元数据,存储在系统数据库中。
普通用户可通过information_schema查询部分元数据,但无法修改。
Oracle中,数据字典由SYS用户管理,权限更严格。
面试加分点:提到information_schema的具体用途,如分析慢查询或优化数据库性能。
9. 如何了解一个Linux命令的作用?
Linux命令繁多,快速了解命令功能是基本技能。面试官可能考察你的学习能力。
使用whatis命令可以快速查看命令的单行描述,例如:
whatis zcat
输出:
whatis从man页面数据库提取简介,需确保mandb已更新(sudo mandb)。
替代方法:
- man cmd:查看完整手册。
- cmd --help:查看命令帮助信息。
- apropos keyword:查找相关命令。
面试加分点:提到apropos的高级用法,如apropos -r regex查找复杂关键字。
10. 如何检查磁盘配额和用户文件数量?
多用户环境中,磁盘配额管理至关重要。面试官可能考察你的系统管理能力。
使用repquota -a命令查看所有启用配额的文件系统的用户磁盘使用情况和文件数量:
repquota -a
输出内容:包括用户名、已用空间、文件数量、软/硬限制等。
需启用磁盘配额(通过quotaon命令或/etc/fstab配置)。
相关命令:
- quota user:查看特定用户的配额。
- edquota user:编辑用户配额。
面试加分点:提到配额的配置步骤(如修改/etc/fstab、运行quotacheck),展示系统管理经验。