面試官最愛問的 Linux 十大經(jīng)典問題(附答案)
有面試過運維崗位的同行應該都會或多或少被問到過下面的面試題,你當時怎么回答的?
1. 如何查看系統(tǒng)資源使用情況?
面試官目的:考察你對 Linux 系統(tǒng)性能監(jiān)控的掌握程度。
常用命令:
top # 實時顯示系統(tǒng)運行信息(CPU、內(nèi)存、進程)
htop # top 的增強版(需安裝)
free -h # 查看內(nèi)存使用情況
df -h # 查看磁盤使用率
du -sh * # 當前目錄下每個文件夾占用空間
vmstat 1 5 # 顯示虛擬內(nèi)存使用情況
iostat -x 1 # I/O 負載(需安裝 sysstat)
uptime # 查看系統(tǒng)運行時長和平均負載
2. 如何查看端口是否被占用?
面試官目的:排查端口沖突或服務是否成功啟動。
常用命令:
netstat -tulnp | grep :端口號
ss -tulnp | grep :端口號 # 推薦使用,效率更高
lsof -i:端口號 # 查看具體哪個程序占用端口
3. 如何給文件添加執(zhí)行權(quán)限?
面試官目的:考察對 Linux 權(quán)限機制的了解。
命令示例:
chmod +x script.sh # 添加執(zhí)行權(quán)限
chmod 755 script.sh # rwxr-xr-x:常用于可執(zhí)行腳本
ls -l # 查看權(quán)限
# chown命令修改屬主屬組
chown liyb.liyb script.sh # 將腳本屬主和屬組修改為liyb
# -R 參數(shù)可以將權(quán)限遞歸
4. 如何查看某個進程的詳細信息?
面試官目的:定位進程資源使用、故障排查。
常用命令:
ps aux | grep 進程名 # 查找進程 PID 和狀態(tài)
top -p PID # 查看指定 PID 的動態(tài)資源占用
cat /proc/PID/status # 查看進程詳細狀態(tài)
lsof -p PID # 查看進程打開的文件
strace -p PID # 跟蹤系統(tǒng)調(diào)用(排查卡頓)
5. 軟鏈接和硬鏈接的區(qū)別?
面試官目的:考察文件系統(tǒng)理解。
- 軟鏈接:類似 Windows 快捷方式,指向文件路徑。
- 硬鏈接:指向相同的 inode,不依賴文件名。
區(qū)別:
- 刪除原文件:軟鏈接失效,硬鏈接仍然可用。
- 跨分區(qū):軟鏈接可以,硬鏈接不行。
- 目錄:通常不允許創(chuàng)建硬鏈接。
ln -s source.txt softlink.txt # 創(chuàng)建軟鏈接
ln source.txt hardlink.txt # 創(chuàng)建硬鏈接
6. Linux 系統(tǒng)負載高怎么辦?
面試官目的:考察系統(tǒng)性能調(diào)優(yōu)能力。
排查思路:
- 確認負載:
uptime # 查看 load average(過去1、5、15分鐘)
top # 查看 CPU、內(nèi)存占用進程
- 查看 I/O 壓力:
iostat -x 1
iotop # 實時查看 I/O 重的進程
- 內(nèi)存檢查:
free -m
vmstat 1 5
- 日志檢查:
dmesg | tail # 內(nèi)核錯誤信息
journalctl -xe # 查看最近系統(tǒng)錯誤
高級工具:strace、perf top、sar 等用于深入性能分析
7. Linux 的啟動流程?
面試官目的:考察對系統(tǒng)底層的理解。
啟動流程:
- BIOS 加電自檢(POST);
- 加載 MBR 引導區(qū),引導 GRUB;
- GRUB 加載內(nèi)核(vmlinuz)和初始化文件系統(tǒng)(initrd/initramfs);
- 啟動第一個用戶空間進程:/sbin/init 或 systemd;
- systemd 執(zhí)行服務啟動邏輯,進入多用戶或圖形模式;
- 用戶登錄。
8. 如何查看和分析系統(tǒng)日志?
面試官目的:考查定位故障的能力。
日志位置:
/var/log/messages # 系統(tǒng)日志(傳統(tǒng) Linux)
/var/log/syslog # Debian 系
/var/log/dmesg # 啟動硬件日志
journalctl -xe # systemd 日志查看器
有些是應用日志,需要根據(jù)實際的配置路徑來查看,查看日志時一般使用tail -f 來持續(xù)查看日志輸出
9. Linux 如何設置定時任務?
面試官目的:考察自動化能力。
設置定時任務:
crontab -e # 編輯當前用戶的定時任務
crontab -l # 查看當前任務
語法結(jié)構(gòu):
* * * * * command_to_run
分 時 日 月 星期 要執(zhí)行的命令
示例:每天凌晨 3 點執(zhí)行備份腳本
0 3 * * * /home/user/backup.sh
10. 如何查找文件或內(nèi)容?
面試官目的:考察命令行效率和文件管理能力。
查找文件:
find /path -name "*.log" # 按名稱查找
find / -type f -size +100M # 查找大文件
查找文件內(nèi)容:
grep "關(guān)鍵詞" 文件名
grep -r "關(guān)鍵詞" ./ # 遞歸查找
find . -type f | xargs grep "關(guān)鍵詞"
這只是給出簡單示例,find和grep還有其他參數(shù),熟悉可以多講幾個。
上面的面試題基本都是入門級的,如果都掌握,說明你已經(jīng)有一定的Linux基礎。