Linux 运维面试题:核心知识点与实战解析
Linux 运维岗位在互联网行业需求旺盛,面试中不仅考察基础知识的掌握程度,更注重实际操作能力和问题排查经验,以下从基础命令、系统管理、服务部署、性能优化、安全运维及自动化运维六个维度,梳理常见面试题及解析,帮助候选人系统准备。

基础命令:熟练掌握是运维的基石
Linux 命令是运维人员的“基本功”,面试官常通过命令考察候选人对系统的理解深度。
文件与目录操作
-
问题:如何查找
/var/log目录下最近 7 天内修改过且大于 10MB 的日志文件? -
解析:结合
find命令的-mtime(修改时间)和-size参数,具体命令为:find /var/log -type f -mtime -7 -size +10M
进一步可结合
-exec或xargs处理文件,如删除或压缩:find /var/log -type f -mtime -7 -size +10M -exec gzip {} \; -
问题:如何查看文件
test.txt的行数、单词数和字节数? -
解析:使用
wc命令,-l显示行数,-w显示单词数,-c显示字节数:wc -lwc test.txt
系统管理:深入理解内核与进程
系统管理能力直接关系到服务器稳定性,面试中常涉及进程管理、服务控制及日志分析。
进程与任务管理
-
问题:如何查看当前系统的负载情况?
top命令中load average三列数值代表什么?
-
解析:使用
uptime或top查看负载,load average分别代表 1 分钟、5 分钟、15 分钟内的平均负载值,若负载值超过 CPU 核心数,则系统可能存在性能瓶颈。 -
问题:发现一个进程 CPU 占用率 100%,如何定位问题并终止进程?
-
解析:
- 用
ps aux或top找到进程 PID(如进程号为 1234); - 通过
strace -p 1234跟踪系统调用,定位具体代码逻辑; - 若确认异常,使用
kill -9 1234强制终止(优先尝试kill -15优雅终止)。
- 用
服务部署:从 LAMP 到容器化
服务部署是运维的核心工作,传统环境与容器化技术均是考察重点。
LAMP 架构部署
- 问题:简述 LAMP 架构中 Apache 与 Nginx 的选择依据,如何配置虚拟主机?
- 解析:
- 选择依据:Apache 支持动态模块和 .htaccess 配置,适合中小型网站;Nginx 高并发性能优异,反向代理和负载均衡能力更强,适合静态资源和微服务架构。
- Nginx 虚拟主机配置:在
nginx.conf中添加server块,通过server_name和root指定域名和目录:server { listen 80; server_name example.com; root /var/www/html; index index.html; }
Docker 容器化部署
- 问题:如何通过 Docker 部署一个 Nginx 服务,并实现容器自启动?
- 解析:
- 拉取镜像并运行容器,映射端口和目录:
docker run -d --name nginx-server -p 80:80 -v /data/html:/usr/share/nginx/html nginx:latest
- 设置容器自启动:
docker update --restart=always nginx-server
- 拉取镜像并运行容器,映射端口和目录:
性能优化:从监控到调优
性能优化是运维进阶的关键,需结合监控工具定位瓶颈,针对性调优。
系统监控工具
- 问题:常用 Linux 性能监控工具有哪些?分别用于分析什么指标?
- 解析:
- top/htop:实时查看进程 CPU、内存占用;
- free:查看内存使用情况,重点关注
buff/cache和available; - iostat:监控磁盘 I/O 性能,如
iostat -x 1可查看磁盘利用率; - sar:收集系统历史数据,如
sar -u 1 5查看实时 CPU 使用率。
内存与磁盘优化
- 问题:服务器内存占用过高,如何排查?
- 解析:
- 用
free -h查看内存分布,判断是否为buff/cache占用过高(可通过echo 3 > /proc/sys/vm/drop_caches释放缓存); - 若
used内存过高,用ps aux --sort=-%mem查找占用内存最多的进程,分析是否异常。
- 用
安全运维:防患于未然
安全是运维的红线,需掌握权限管理、防火墙配置及漏洞扫描能力。

权限与访问控制
- 问题:如何禁止 root 用户远程登录,并限制普通用户 sudo 权限?
- 解析:
- 编辑
/etc/ssh/sshd_config,将PermitRootLogin设为no,重启 SSH 服务:systemctl restart sshd
- 限制 sudo 权限:编辑
/etc/sudoers,为用户添加username ALL=(ALL) /usr/bin/ls等命令白名单,避免ALL=(ALL) ALL赋予全部权限。
- 编辑
防火墙与日志审计
- 问题:如何配置 firewalld 仅允许 80 端口访问,并记录 rejected 日志?
- 解析:
firewall-cmd --permanent --add-port=80/tcp # 开放 80 端口 firewall-cmd --reload # 重载规则 firewall-cmd --get-log-denied # 查看 rejected 日志
自动化运维:提升效率的核心
自动化运维是现代运维的趋势,需掌握 Shell 脚本、Ansible 等工具。
Shell 脚本实战
- 问题:编写一个 Shell 脚本,检查网站
http://example.com可用性,若连续 3 次不可用则发送告警邮件。 - 解析:
#!/bin/bash count=0 while [ $count -lt 3 ]; do if curl -s --connect-timeout 5 http://example.com > /dev/null; then echo "网站正常" exit 0 else count=$((count+1)) sleep 10 fi done echo "网站连续 3 次不可用,请检查!" | mail -s "网站告警" admin@example.com
Ansible 自动化部署
- 问题:如何使用 Ansible Playbook 批量部署 Nginx?
- 解析:编写
deploy_nginx.yml文件:--- - hosts: webservers become: yes tasks: - name: install nginx yum: name: nginx state: present - name: start nginx service: name: nginx state: started enabled: yes执行命令:
ansible-playbook -i inventory.ini deploy_nginx.yml。
Linux 运维面试覆盖“基础-进阶-自动化”全栈能力,候选人需夯实命令基础,深入理解系统原理,同时掌握容器化、自动化等现代运维技术,实际面试中,结合具体场景分析问题、展现解决问题的思路,往往比背诵答案更能打动面试官。



















