首页 十大品牌文章正文

面试必备Linux命令大全,包含场景面试题

十大品牌 2025年08月15日 16:52 0 admin

作为一名Linux用户或运维工程师,熟练掌握Linux命令行是面试中的核心竞争力之一。无论是查看系统状态、管理文件、配置网络,还是排查问题,Linux命令行工具都能让你事半功倍。本文将为你详细梳理面试中常见的Linux命令,涵盖文件操作、进程管理、系统监控、网络配置、权限管理等多个维度,力求全面且实用。文章不仅会介绍命令的用法,还会结合实际场景说明如何在工作中应用,助你在面试中脱颖而出!

面试必备Linux命令大全,包含场景面试题

文件与目录操作

文件和目录操作是Linux的基础,面试中常考的命令包括查看、创建、删除、移动等操作。

1. ls - 列出目录内容

列出当前目录或指定目录下的文件和子目录。

常用选项

  • -l:以长格式显示,包含权限、所有者、文件大小等信息。
  • -a:显示隐藏文件(以.开头的文件)。
  • -h:以人类可读的格式显示文件大小(如KB、MB)。
ls -lah /var/log
面试必备Linux命令大全,包含场景面试题

上述命令会列出/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
面试必备Linux命令大全,包含场景面试题

输出:/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
面试必备Linux命令大全,包含场景面试题

查找/var/log下7天前修改的.log文件。

面试官可能要求你查找某个目录下大于100MB的文件,或者结合exec删除过期文件。

9. touch - 创建空文件或更新时间戳

创建空文件或更新文件的时间戳。

touch test.txt

创建空文件test.txt

可能被要求创建一个临时文件,或者解释如何更新文件时间戳。

文件内容操作

在Linux中,查看和编辑文件内容是常见任务,以下命令在面试中经常出现:

10. cat - 查看文件内容

显示文件内容到标准输出。

常用选项

  • -n:显示行号。
cat -n /etc/passwd
面试必备Linux命令大全,包含场景面试题

显示/etc/passwd内容并带行号。

可能被要求快速查看配置文件内容,或解释catless的区别。

11. less / more - 分页查看文件

分页显示文件内容,适合查看大文件。

常用操作less):

  • /:搜索关键字。
  • q:退出。
less /var/log/syslog

面试官可能让你查看日志文件的最后几行(tail更合适)或搜索特定内容。

12. head / tail - 查看文件开头/结尾

head显示文件开头,tail显示文件结尾。

常用选项

  • -n:指定显示的行数。
  • -ftail专属):实时监控文件变化。
tail -f /var/log/nginx/access.log

实时查看Nginx访问日志。

面试官常要求你监控日志或提取文件的前10行。

13. grep - 搜索文件内容

在文件中搜索匹配的字符串。

常用选项

  • -i:忽略大小写。
  • -r:递归搜索目录。
  • -n:显示行号。
  • -v:显示不匹配的行。
grep -r "error" /var/log
面试必备Linux命令大全,包含场景面试题

/var/log目录下递归搜索包含“error”的行。

可能被要求查找日志中的错误信息,或结合管道过滤特定内容。

14. awk - 文本处理利器

按列处理文本,提取特定字段。

awk '{print $1,$3}' /etc/passwd
面试必备Linux命令大全,包含场景面试题

提取/etc/passwd的第一列(用户名)和第三列(UID)。

面试官可能让你解析日志文件,提取特定列数据。

15. sed - 流编辑器

用于文本替换、删除、插入等操作。

sed 's/old/new/g' file.txt

file.txt中的“old”替换为“new”。

可能要求批量替换配置文件中的某字符串。

进程管理

进程管理是Linux运维的核心,面试中常考如何查看、杀死或管理进程。

16. ps - 查看进程

显示当前系统进程。

常用选项

  • aux:显示所有用户进程。
  • -ef:显示详细进程信息。
ps aux | grep nginx
面试必备Linux命令大全,包含场景面试题

查看Nginx相关的进程。

可能被要求列出某个服务的进程,或者解释ps aux输出中的字段(如%CPUPID)。

17. top / htop - 实时监控进程

top实时显示系统进程,htop是更友好的替代工具。

常用操作top):

  • q:退出。
  • k:杀死指定PID的进程。
htop
面试必备Linux命令大全,包含场景面试题

面试官可能让你找出占用CPU最高的进程。

18. kill / killall - 终止进程

kill通过PID终止进程,killall通过进程名终止。

常用信号

  • -9(SIGKILL):强制杀死进程。
  • -15(SIGTERM):优雅终止进程。
kill -9 12345killall nginx

可能被要求安全终止某个进程,或者解释不同信号的区别。

19. jobs / fg / bg - 管理后台任务

管理在当前终端运行的后台任务。

sleep 100 &jobsfg %1

sleep 100放到后台运行,查看任务列表,再将任务1切换到前台。

可能被要求演示如何管理长时间运行的任务。

系统监控

了解系统资源使用情况是运维工程师的必备技能,以下命令常用于监控。

20. df - 查看磁盘使用情况

显示磁盘使用量。

常用选项

  • -h:以人类可读格式显示。
df -h
面试必备Linux命令大全,包含场景面试题

可能被要求检查某个分区是否快满。

21. du - 查看目录或文件大小

统计指定目录或文件的磁盘使用量。

常用选项

  • -sh:以人类可读格式显示总大小。
du -sh /var/log/*
面试必备Linux命令大全,包含场景面试题

查看/var/log下每个文件或目录的大小。

可能被要求找出占用空间最大的目录。

22. free - 查看内存使用情况

显示系统内存和交换分区使用情况。

常用选项

  • -h:人类可读格式。
free -h
面试必备Linux命令大全,包含场景面试题

面试官可能让你解释内存中的buff/cache字段。

23. uptime - 查看系统运行时间

显示系统运行时间和负载。

uptime

输出:10:00:00 up 5 days, 2:30, 3 users, load average: 0.15, 0.20, 0.25

可能被要求解释负载平均值(load average)的含义。

网络相关

网络配置和调试是Linux工程师的必备技能,以下命令在面试中很常见。

24. ping - 测试网络连通性

测试与目标主机的网络连通性。

ping -c 4 baidu.com
面试必备Linux命令大全,包含场景面试题

baidu.com发送4个ICMP包。

可能被要求测试网络是否通畅,或解释ping的输出。

25. netstat / ss - 查看网络状态

显示网络连接、监听端口等信息。

常用选项ss):

  • -tuln:显示TCP/UDP监听端口。
ss -tuln
面试必备Linux命令大全,包含场景面试题

可能被要求列出某个端口是否被占用。

26. curl / wget - 下载或请求网络资源

curl用于发送HTTP请求,wget用于下载文件。

curl -O https://example.com/file.txt

下载文件到当前目录。

可能被要求测试API接口或下载文件。

27. ifconfig / ip - 配置网络接口

查看或配置网络接口信息。

ip addr
面试必备Linux命令大全,包含场景面试题

查看所有网络接口的IP地址。

可能被要求查看本机IP或配置临时IP。

权限管理

Linux权限管理是面试重头戏,以下命令不可忽视。

28. chmod - 修改文件权限

修改文件或目录的权限。

常用方式

  • 数字表示:如755(所有人可读可执行,拥有者可写)。
  • 符号表示:如u+x(给文件拥有者添加执行权限)。
chmod 755 script.sh

可能被要求设置脚本为可执行,或解释权限数字含义。

29. chown - 修改文件所有者

更改文件或目录的所有者和所属组。

常用选项

  • -R:递归修改目录。
chown -R user:group /var/www

可能被要求将目录所有权交给某个用户。

30. sudo - 以管理员权限执行命令

以root或其他用户权限运行命令。

sudo apt update

可能被问到如何安全使用sudo,或如何编辑/etc/sudoers

其他实用命令

31. tar - 打包与压缩

打包或解压文件。

常用选项

  • -c:创建归档。
  • -x:提取归档。
  • -z:使用gzip压缩。
  • -f:指定文件名。
tar -czvf backup.tar.gz /var/www

/var/www打包并压缩为backup.tar.gz

可能被要求备份某个目录或解压文件。

32. crontab - 定时任务

管理定时任务。

常用选项

  • -e:编辑定时任务。
  • -l:列出当前用户的任务。
crontab -e

添加:0 2 * * * /backup.sh(每天凌晨2点运行备份脚本)。

可能被要求设置一个定时任务或解释cron表达式。

33. man - 查看命令帮助

查看命令的详细手册。

man ls
面试必备Linux命令大全,包含场景面试题

面试官可能问你如何快速查找命令用法。

场景面试

面试中常会遇到综合问题。

场景1:查找并清理过期日志文件

问题:服务器磁盘空间不足,要求找出/var/log目录下7天前修改的.log文件,列出它们的大小,并安全删除。

解答

  1. 查找过期日志文件
find /var/log -type f -name "*.log" -mtime +7 -exec ls -lh {} \;
  • -type f:仅查找文件。
  • -name "*.log":匹配以.log结尾的文件。
  • -mtime +7:查找7天前修改的文件。
  • -exec ls -lh {} \;:列出文件详细信息(如大小、权限)。
  1. 确认文件列表

在删除前,建议将文件列表保存到临时文件中,以便检查:

find /var/log -type f -name "*.log" -mtime +7 > /tmp/old_logs.txtcat /tmp/old_logs.txt
  1. 安全删除

为避免误删,可先将文件移动到临时目录:

mkdir -p /tmp/log_backupfind /var/log -type f -name "*.log" -mtime +7 -exec mv {} /tmp/log_backup/ \;

确认无误后删除:

rm -rf /tmp/log_backup/*

面试注意:面试官可能追问如何确保不误删关键日志,建议提到备份或使用trash命令(需安装trash-cli)。

场景2:排查高CPU占用进程

问题:服务器性能下降,CPU占用过高,请找出占用CPU最高的进程并终止。

解答

  1. 查看进程

使用tophtop查看实时进程:

top
  • P键按CPU占用排序,找到占用最高的进程,记下其PID。
  1. 确认进程详情

使用ps查看进程详细信息:

ps -p <PID> -o pid,ppid,cmd,%cpu

输出进程ID、父进程ID、命令和CPU占用百分比。

  1. 终止进程

优先尝试优雅终止:

kill -15 <PID>

如果进程未结束,使用强制终止:

kill -9 <PID>
  1. 验证

再次运行top确认进程已终止。

面试注意:面试官可能问kill -15kill -9的区别(前者优雅终止,允许进程清理资源;后者强制终止,可能导致数据丢失)。

场景3:批量修改文件内容

问题/etc/nginx/conf.d/下所有配置文件中的listen 80需改为listen 8080,如何实现?

解答

  1. 备份文件

为安全起见,先备份配置文件:

cp -r /etc/nginx/conf.d /etc/nginx/conf.d.bak
  1. 查找并替换

使用sed批量替换:

find /etc/nginx/conf.d -type f -name "*.conf" -exec sed -i 's/listen 80/listen 8080/g' {} \;
  1. 验证修改

检查是否替换成功:

grep -r "listen 8080" /etc/nginx/conf.d
  1. 重启服务

应用更改:

systemctl restart nginx

面试注意:面试官可能问如何处理正则表达式中的复杂替换,或如何在替换前预览更改(可使用sed -n测试)。

场景4:监控实时日志

问题:Nginx服务运行异常,要求实时监控/var/log/nginx/error.log中的错误信息。

解答

  1. 实时查看日志

使用tail -f监控日志:

tail -f /var/log/nginx/error.log
  1. 过滤错误信息

如果只关注包含“error”的行:

tail -f /var/log/nginx/error.log | grep --line-buffered "error"
  • --line-buffered确保实时输出。
  1. 高级过滤(可选):

使用awk提取特定字段,如时间和错误信息:

tail -f /var/log/nginx/error.log | awk '/error/ {print $1, $2, $NF}'

面试注意:面试官可能要求解释grep--line-buffered选项,或如何结合less搜索历史日志。


场景5:检查磁盘空间并释放

问题:服务器提示磁盘空间不足,检查使用情况并释放空间。

解答

  1. 检查磁盘使用
df -h

查看各分区使用率,找到接近100%的分区(如/dev/sda1)。

  1. 查找大文件或目录

检查占用空间最大的目录:

du -sh /var/* | sort -hr | head -n 5
  • sort -hr:按大小倒序排序。
  • head -n 5:显示前5个最大目录。
  1. 清理大文件

假设发现/var/log/app.log过大,先备份:

cp /var/log/app.log /backup/app.log.bak

清空日志:

> /var/log/app.log
  1. 验证

再次运行df -h确认空间释放。

面试注意:面试官可能问如何自动化清理,或如何避免清空正在写入的日志(可用logrotate)。

场景6:配置定时任务

问题:每天凌晨2点自动备份/var/www目录到/backup/www_YYYYMMDD.tar.gz

解答

  1. 编写备份脚本

创建脚本/scripts/backup.sh

#!/bin/bashDATE=$(date +%Y%m%d)tar -czf /backup/www_$DATE.tar.gz /var/wwwfind /backup -name "www_*.tar.gz" -mtime +30 -delete
  • 最后一行删除30天前的备份。
  1. 赋予执行权限
chmod +x /scripts/backup.sh
  1. 配置定时任务

编辑crontab

crontab -e

添加:

0 2 * * * /scripts/backup.sh
  1. 验证

检查定时任务:

crontab -l

次日检查/backup目录是否有新文件。

面试注意:面试官可能问cron表达式格式,或如何调试定时任务失败(如检查/var/log/cron)。

场景7:检查网络连通性

问题:服务器无法访问外部网站baidu.com,排查网络问题。

解答

  1. 测试连通性
ping -c 4 baidu.com

若失败,尝试解析域名:

nslookup baidu.com
  1. 检查网络接口
ip addr

确认网络接口(如eth0)是否有IP地址。

  1. 检查路由
ip route

确认默认网关是否存在。

  1. 检查DNS

查看/etc/resolv.conf

cat /etc/resolv.conf

若无有效DNS,临时添加:

echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf

面试注意:面试官可能问如何排查防火墙问题(用iptables -Lfirewall-cmd --list-all)。

场景8:设置文件权限

问题:将/var/www/html目录设置为用户www-data所有,权限为755,所有子文件权限为644。

解答

  1. 更改所有者
chown -R www-data:www-data /var/www/html
  1. 设置目录权限
find /var/www/html -type d -exec chmod 755 {} \;
  1. 设置文件权限
find /var/www/html -type f -exec chmod 644 {} \;
  1. 验证
ls -lR /var/www/html

面试注意:面试官可能问755和644的含义,或如何处理特殊权限(如setuid)。

场景9:查找并终止占用端口的进程

问题:端口80被占用,导致Nginx无法启动,找出并终止占用进程。

解答

  1. 查找占用端口的进程
ss -tuln | grep :80

或:

lsof -i :80
  1. 获取PID

假设输出显示PID为12345。

  1. 终止进程
kill -15 12345

若无效:

kill -9 12345
  1. 验证
ss -tuln | grep :80

面试注意:面试官可能问如何避免端口冲突,或如何检查服务是否正常启动(systemctl status nginx)。

场景10:解析日志提取信息

问题:从/var/log/nginx/access.log提取最近100次访问的IP和URL。

解答

  1. 查看日志格式
head -n 1 /var/log/nginx/access.log

假设日志格式为:IP - - [时间] "GET URL HTTP/1.1" 状态码 ...

  1. 提取IP和URL
tail -n 100 /var/log/nginx/access.log | awk '{print $1, $7}'
  • $1:IP地址。
  • $7:请求的URL(根据日志格式调整字段)。
  1. 保存结果
tail -n 100 /var/log/nginx/access.log | awk '{print $1, $7}' > /tmp/access.txt

面试注意:面试官可能要求更复杂的解析(如按状态码过滤),需熟悉awkgrep的组合使用。

希望这些场景面试题目和答案能帮你在Linux面试中游刃有余!继续练习,祝你面试成功!

发表评论

长征号 Copyright © 2013-2024 长征号. All Rights Reserved.  sitemap