作为一名Linux用户或运维工程师,熟练掌握Linux命令行是面试中的核心竞争力之一。无论是查看系统状态、管理文件、配置网络,还是排查问题,Linux命令行工具都能让你事半功倍。本文将为你详细梳理面试中常见的Linux命令,涵盖文件操作、进程管理、系统监控、网络配置、权限管理等多个维度,力求全面且实用。文章不仅会介绍命令的用法,还会结合实际场景说明如何在工作中应用,助你在面试中脱颖而出!
文件与目录操作
文件和目录操作是Linux的基础,面试中常考的命令包括查看、创建、删除、移动等操作。
1. ls
- 列出目录内容
列出当前目录或指定目录下的文件和子目录。
常用选项:
ls -lah /var/log
上述命令会列出/var/log
目录下所有文件(包括隐藏文件),以长格式显示,并将文件大小转换为易读单位。
面试官可能让你列出某个目录下的所有文件,包括隐藏文件,或者要求你解释ls -l
输出中每一列的含义(如drwxr-xr-x
表示目录,权限为755)。
2. cd
- 切换目录
切换到指定目录。
常用用法:
cd /path/to/dir
:切换到指定路径。cd ..
:返回上一级目录。cd ~
:返回用户家目录。cd -
:返回上一次所在目录。
cd /etc/nginxcd ..
切换到/etc/nginx
目录后,退回到上层目录/etc
。
面试官可能要求你快速切换到某个复杂路径,或者结合pwd
命令确认当前目录。
3. pwd
- 显示当前工作目录
打印当前所在目录的绝对路径。
pwd
输出:/root
常用于调试或确认脚本运行时的当前路径。
4. mkdir
- 创建目录
创建新目录。
常用选项:
-p
:递归创建目录(如果父目录不存在,自动创建)。
mkdir -p /tmp/test/dir1/dir2
创建嵌套目录结构,即使父目录不存在也不会报错。
面试官可能要求你创建一个多级目录,或者解释-p
选项的作用。
5. rm
- 删除文件或目录
删除指定文件或目录。
常用选项:
-r
:递归删除目录及其内容。-f
:强制删除,不提示确认。
示例:
rm -rf /tmp/test
删除/tmp/test
目录及其所有内容。
rm -rf
非常危险,误删可能导致数据丢失,面试中可能被问到如何安全删除文件(建议用trash
命令替代,或先用ls
确认)。
面试官可能问你如何批量删除以.log
结尾的文件,或者如何避免误删系统关键文件。
6. cp
- 复制文件或目录
复制文件或目录到指定位置。
常用选项:
-r
:递归复制目录。-p
:保留文件属性(如权限、时间戳)。
示例:
cp -r /etc/nginx /backup/nginx
将/etc/nginx
目录递归复制到/backup/nginx
。
可能被要求复制配置文件并保留权限,或者解释如何覆盖目标文件。
7. mv
- 移动或重命名文件/目录
移动文件或目录到新位置,或重命名。
常用选项:
-i
:提示是否覆盖目标文件。
mv file1.txt /tmp/file2.txt
将file1.txt
移动到/tmp
并重命名为file2.txt
。
面试官可能让你批量重命名文件,或者移动文件到不存在的目录(会报错)。
8. find
- 查找文件
在指定目录下查找文件或目录。
常用选项:
-name
:按文件名查找(支持通配符)。-type
:指定文件类型(如f
表示文件,d
表示目录)。-exec
:对查找结果执行命令。
示例:
find /var/log -name "*.log" -type f -mtime +7
查找/var/log
下7天前修改的.log
文件。
面试官可能要求你查找某个目录下大于100MB的文件,或者结合exec
删除过期文件。
9. touch
- 创建空文件或更新时间戳
创建空文件或更新文件的时间戳。
touch test.txt
创建空文件test.txt
。
可能被要求创建一个临时文件,或者解释如何更新文件时间戳。
文件内容操作
在Linux中,查看和编辑文件内容是常见任务,以下命令在面试中经常出现:
10. cat
- 查看文件内容
显示文件内容到标准输出。
常用选项:
-n
:显示行号。
cat -n /etc/passwd
显示/etc/passwd
内容并带行号。
可能被要求快速查看配置文件内容,或解释cat
与less
的区别。
11. less
/ more
- 分页查看文件
分页显示文件内容,适合查看大文件。
常用操作(less
):
/
:搜索关键字。q
:退出。
cd /etc/nginxcd ..
0
面试官可能让你查看日志文件的最后几行(tail
更合适)或搜索特定内容。
12. head
/ tail
- 查看文件开头/结尾
head
显示文件开头,tail
显示文件结尾。
常用选项:
-n
:指定显示的行数。-f
(tail
专属):实时监控文件变化。
cd /etc/nginxcd ..
1
实时查看Nginx访问日志。
面试官常要求你监控日志或提取文件的前10行。
13. grep
- 搜索文件内容
在文件中搜索匹配的字符串。
常用选项:
-i
:忽略大小写。-r
:递归搜索目录。-n
:显示行号。-v
:显示不匹配的行。
cd /etc/nginxcd ..
2
在/var/log
目录下递归搜索包含“error”的行。
可能被要求查找日志中的错误信息,或结合管道过滤特定内容。
14. awk
- 文本处理利器
按列处理文本,提取特定字段。
cd /etc/nginxcd ..
3
提取/etc/passwd
的第一列(用户名)和第三列(UID)。
面试官可能让你解析日志文件,提取特定列数据。
15. sed
- 流编辑器
用于文本替换、删除、插入等操作。
cd /etc/nginxcd ..
4
将file.txt
中的“old”替换为“new”。
可能要求批量替换配置文件中的某字符串。
进程管理
进程管理是Linux运维的核心,面试中常考如何查看、杀死或管理进程。
16. ps
- 查看进程
显示当前系统进程。
常用选项:
aux
:显示所有用户进程。-ef
:显示详细进程信息。
cd /etc/nginxcd ..
5
查看Nginx相关的进程。
可能被要求列出某个服务的进程,或者解释ps aux
输出中的字段(如%CPU
、PID
)。
17. mkdir -p /tmp/test/dir1/dir2
7 / cd /etc/nginxcd ..
6 - 实时监控进程
mkdir -p /tmp/test/dir1/dir2
7实时显示系统进程,cd /etc/nginxcd ..
6是更友好的替代工具。
常用操作(mkdir -p /tmp/test/dir1/dir2
7):
q
:退出。k
:杀死指定PID的进程。
cd /etc/nginxcd ..
6
面试官可能让你找出占用CPU最高的进程。
18. kill
/ killall
- 终止进程
kill
通过PID终止进程,killall
通过进程名终止。
常用信号:
-9
(SIGKILL):强制杀死进程。-15
(SIGTERM):优雅终止进程。
cd /etc/nginxcd ..
7
可能被要求安全终止某个进程,或者解释不同信号的区别。
19. jobs
/ fg
/ bg
- 管理后台任务
管理在当前终端运行的后台任务。
cd /etc/nginxcd ..
8
将sleep 100
放到后台运行,查看任务列表,再将任务1切换到前台。
可能被要求演示如何管理长时间运行的任务。
系统监控
了解系统资源使用情况是运维工程师的必备技能,以下命令常用于监控。
20. df
- 查看磁盘使用情况
显示磁盘使用量。
常用选项:
-h
:以人类可读格式显示。
cd /etc/nginxcd ..
9
可能被要求检查某个分区是否快满。
21. du
- 查看目录或文件大小
统计指定目录或文件的磁盘使用量。
常用选项:
-sh
:以人类可读格式显示总大小。
pwd
0
查看/var/log
下每个文件或目录的大小。
可能被要求找出占用空间最大的目录。
22. free
- 查看内存使用情况
显示系统内存和交换分区使用情况。
常用选项:
-h
:人类可读格式。
pwd
1
面试官可能让你解释内存中的buff/cache
字段。
23. pwd
2 - 查看系统运行时间
显示系统运行时间和负载。
pwd
2
输出:10:00:00 up 5 days, 2:30, 3 users, load average: 0.15, 0.20, 0.25
可能被要求解释负载平均值(load average
)的含义。
网络相关
网络配置和调试是Linux工程师的必备技能,以下命令在面试中很常见。
24. ping
- 测试网络连通性
测试与目标主机的网络连通性。
pwd
3
向baidu.com
发送4个ICMP包。
可能被要求测试网络是否通畅,或解释ping
的输出。
25. netstat
/ ss
- 查看网络状态
显示网络连接、监听端口等信息。
常用选项(ss
):
-tuln
:显示TCP/UDP监听端口。
pwd
4
可能被要求列出某个端口是否被占用。
26. curl
/ wget
- 下载或请求网络资源
curl
用于发送HTTP请求,wget
用于下载文件。
pwd
5
下载文件到当前目录。
可能被要求测试API接口或下载文件。
27. ifconfig
/ ip
- 配置网络接口
查看或配置网络接口信息。
pwd
6
查看所有网络接口的IP地址。
可能被要求查看本机IP或配置临时IP。
权限管理
Linux权限管理是面试重头戏,以下命令不可忽视。
28. chmod
- 修改文件权限
修改文件或目录的权限。
常用方式:
数字表示:如 755
(所有人可读可执行,拥有者可写)。符号表示:如 u+x
(给文件拥有者添加执行权限)。
pwd
7
可能被要求设置脚本为可执行,或解释权限数字含义。
29. chown
- 修改文件所有者
更改文件或目录的所有者和所属组。
常用选项:
-R
:递归修改目录。
pwd
8
可能被要求将目录所有权交给某个用户。
30. sudo
- 以管理员权限执行命令
以root或其他用户权限运行命令。
pwd
9
可能被问到如何安全使用sudo
,或如何编辑/etc/sudoers
。
其他实用命令
31. tar
- 打包与压缩
打包或解压文件。
常用选项:
-c
:创建归档。-x
:提取归档。-z
:使用gzip压缩。-f
:指定文件名。
mkdir -p /tmp/test/dir1/dir2
0
将/var/www
打包并压缩为backup.tar.gz
。
可能被要求备份某个目录或解压文件。
32. crontab
- 定时任务
管理定时任务。
常用选项:
-e
:编辑定时任务。-l
:列出当前用户的任务。
mkdir -p /tmp/test/dir1/dir2
1
添加:0 2 * * * /backup.sh
(每天凌晨2点运行备份脚本)。
可能被要求设置一个定时任务或解释cron表达式。
33. man
- 查看命令帮助
查看命令的详细手册。
mkdir -p /tmp/test/dir1/dir2
2
面试官可能问你如何快速查找命令用法。
场景面试
面试中常会遇到综合问题。
场景1:查找并清理过期日志文件
问题:服务器磁盘空间不足,要求找出/var/log
目录下7天前修改的.log
文件,列出它们的大小,并安全删除。
解答:
查找过期日志文件:
mkdir -p /tmp/test/dir1/dir2
3
-type f
:仅查找文件。-name "*.log"
:匹配以.log
结尾的文件。-mtime +7
:查找7天前修改的文件。-exec ls -lh {} ;
:列出文件详细信息(如大小、权限)。
确认文件列表:
在删除前,建议将文件列表保存到临时文件中,以便检查:
mkdir -p /tmp/test/dir1/dir2
4
安全删除:
为避免误删,可先将文件移动到临时目录:
mkdir -p /tmp/test/dir1/dir2
5
确认无误后删除:
mkdir -p /tmp/test/dir1/dir2
6
面试注意:面试官可能追问如何确保不误删关键日志,建议提到备份或使用trash
命令(需安装trash-cli
)。
场景2:排查高CPU占用进程
问题:服务器性能下降,CPU占用过高,请找出占用CPU最高的进程并终止。
解答:
查看进程:
使用mkdir -p /tmp/test/dir1/dir2
7或cd /etc/nginxcd ..
6查看实时进程:
mkdir -p /tmp/test/dir1/dir2
7
按 P
键按CPU占用排序,找到占用最高的进程,记下其PID。
确认进程详情:
使用ps
查看进程详细信息:
mkdir -p /tmp/test/dir1/dir2
8
输出进程ID、父进程ID、命令和CPU占用百分比。
终止进程:
优先尝试优雅终止:
mkdir -p /tmp/test/dir1/dir2
9
如果进程未结束,使用强制终止:
rm -rf /tmp/test
0
验证:
再次运行mkdir -p /tmp/test/dir1/dir2
7确认进程已终止。
面试注意:面试官可能问kill -15
和kill -9
的区别(前者优雅终止,允许进程清理资源;后者强制终止,可能导致数据丢失)。
场景3:批量修改文件内容
问题:/etc/nginx/conf.d/
下所有配置文件中的listen 80
需改为listen 8080
,如何实现?
解答:
备份文件:
为安全起见,先备份配置文件:
rm -rf /tmp/test
1
查找并替换:
使用sed
批量替换:
rm -rf /tmp/test
2
验证修改:
检查是否替换成功:
rm -rf /tmp/test
3
重启服务:
应用更改:
rm -rf /tmp/test
4
面试注意:面试官可能问如何处理正则表达式中的复杂替换,或如何在替换前预览更改(可使用sed -n
测试)。
场景4:监控实时日志
问题:Nginx服务运行异常,要求实时监控/var/log/nginx/error.log
中的错误信息。
解答:
实时查看日志:
使用tail -f
监控日志:
rm -rf /tmp/test
5
过滤错误信息:
如果只关注包含“error”的行:
rm -rf /tmp/test
6
--line-buffered
确保实时输出。
高级过滤(可选):
使用awk
提取特定字段,如时间和错误信息:
rm -rf /tmp/test
7
面试注意:面试官可能要求解释grep
的--line-buffered
选项,或如何结合less
搜索历史日志。
场景5:检查磁盘空间并释放
问题:服务器提示磁盘空间不足,检查使用情况并释放空间。
解答:
检查磁盘使用:
cd /etc/nginxcd ..
9
查看各分区使用率,找到接近100%的分区(如/dev/sda1
)。
查找大文件或目录:
检查占用空间最大的目录:
rm -rf /tmp/test
9
sort -hr
:按大小倒序排序。head -n 5
:显示前5个最大目录。
清理大文件:
假设发现/var/log/app.log
过大,先备份:
cp -r /etc/nginx /backup/nginx
0
清空日志:
cp -r /etc/nginx /backup/nginx
1
验证:
再次运行cd /etc/nginxcd ..
9确认空间释放。
面试注意:面试官可能问如何自动化清理,或如何避免清空正在写入的日志(可用logrotate
)。
场景6:配置定时任务
问题:每天凌晨2点自动备份/var/www
目录到/backup/www_YYYYMMDD.tar.gz
。
解答:
编写备份脚本:
创建脚本/scripts/backup.sh
:
cp -r /etc/nginx /backup/nginx
2
最后一行删除30天前的备份。
赋予执行权限:
cp -r /etc/nginx /backup/nginx
3
配置定时任务:
编辑crontab
:
mkdir -p /tmp/test/dir1/dir2
1
添加:
cp -r /etc/nginx /backup/nginx
5
验证:
检查定时任务:
cp -r /etc/nginx /backup/nginx
6
次日检查/backup
目录是否有新文件。
面试注意:面试官可能问cron表达式格式,或如何调试定时任务失败(如检查/var/log/cron
)。
场景7:检查网络连通性
问题:服务器无法访问外部网站baidu.com
,排查网络问题。
解答:
测试连通性:
pwd
3
若失败,尝试解析域名:
cp -r /etc/nginx /backup/nginx
8
检查网络接口:
pwd
6
确认网络接口(如eth0
)是否有IP地址。
检查路由:
mv file1.txt /tmp/file2.txt
0
确认默认网关是否存在。
检查DNS:
查看/etc/resolv.conf
:
mv file1.txt /tmp/file2.txt
1
若无有效DNS,临时添加:
mv file1.txt /tmp/file2.txt
2
面试注意:面试官可能问如何排查防火墙问题(用iptables -L
或firewall-cmd --list-all
)。
场景8:设置文件权限
问题:将/var/www/html
目录设置为用户www-data
所有,权限为755,所有子文件权限为644。
解答:
更改所有者:
mv file1.txt /tmp/file2.txt
3
设置目录权限:
mv file1.txt /tmp/file2.txt
4
设置文件权限:
mv file1.txt /tmp/file2.txt
5
验证:
mv file1.txt /tmp/file2.txt
6
面试注意:面试官可能问755和644的含义,或如何处理特殊权限(如setuid
)。
场景9:查找并终止占用端口的进程
问题:端口80被占用,导致Nginx无法启动,找出并终止占用进程。
解答:
查找占用端口的进程:
mv file1.txt /tmp/file2.txt
7
或:
mv file1.txt /tmp/file2.txt
8
获取PID:
假设输出显示PID为12345。
终止进程:
mv file1.txt /tmp/file2.txt
9
若无效:
find /var/log -name "*.log" -type f -mtime +7
0
验证:
mv file1.txt /tmp/file2.txt
7
面试注意:面试官可能问如何避免端口冲突,或如何检查服务是否正常启动(systemctl status nginx
)。
场景10:解析日志提取信息
问题:从/var/log/nginx/access.log
提取最近100次访问的IP和URL。
解答:
查看日志格式:
find /var/log -name "*.log" -type f -mtime +7
2
假设日志格式为:IP - - [时间] "GET URL HTTP/1.1" 状态码 ...
提取IP和URL:
find /var/log -name "*.log" -type f -mtime +7
3
$1
:IP地址。$7
:请求的URL(根据日志格式调整字段)。
保存结果:
find /var/log -name "*.log" -type f -mtime +7
4
面试注意:面试官可能要求更复杂的解析(如按状态码过滤),需熟悉awk
和grep
的组合使用。
希望这些场景面试题目和答案能帮你在Linux面试中游刃有余!继续练习,祝你面试成功!
支持就在看
一键四连,你的技术也四连
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...