← 返回面试总览

🐧 Linux 基础面试题(入门必会)

权限/文件系统/进程/网络/常用工具的“能上手”基础

📚 Linux 基础核心知识(15 题)

1. Linux 常见目录(/etc /var /usr /tmp /home)分别用来做什么?简单
目录用途例子
/etc系统与服务配置nginx.conf、ssh_config
/var可变数据(日志/缓存/队列)/var/log、/var/lib
/usr用户程序与库/usr/bin、/usr/lib
/tmp临时文件重启可能被清理
/home用户家目录/home/username
2. 文件权限 rwx 的含义是什么?chmod 755/644 怎么读?简单

r/w/x:读/写/执行权限;按 owner/group/others 三段划分。

7 = 4(r) + 2(w) + 1(x)
5 = 4(r) + 1(x)
4 = 4(r)

755 = owner:rwx, group:rx, others:rx
644 = owner:rw,  group:r,  others:r

常见:脚本/二进制用 755;普通配置文件用 644。

3. grep/sed/awk 各自擅长什么?给个典型场景。简单
  • grep:过滤行(匹配/正则)
  • sed:按行做替换/删除/截取(流编辑)
  • awk:按列处理与统计(结构化文本)
# grep:找错误
grep "ERROR" app.log

# sed:把 code=500 提取出来
sed -E 's/.*code=([0-9]{3}).*/\1/' app.log

# awk:统计第三列总和
awk '{sum += $3} END {print sum}' data.txt
4. 进程、线程、PID、PPID 分别是什么?ps 输出怎么看?中等
  • 进程:运行中的程序实例(资源隔离基本单位)
  • 线程:进程内执行单元(共享进程内存)
  • PID:进程 ID;PPID:父进程 ID
ps -ef | head
ps -p 12345 -o pid,ppid,cmd,%cpu,%mem
top -H -p 12345   # 查看某进程的线程
5. 什么是 load average?load 很高一定是 CPU 问题吗?中等

load average 表示系统处于可运行/不可中断 IO 等待的任务数量。

load 高不一定是 CPU:可能是 IO wait 高、磁盘打满、NFS 卡住导致大量 D 状态进程。

uptime
vmstat 1 5
iostat -x 1 5   # 需要 sysstat
6. 什么是管道(|)与重定向(> >> 2>&1)?常见用法?中等
# 管道:把前一个命令输出当成后一个输入
cat app.log | grep "ERROR" | head

# 重定向:
cmd > out.log       # 覆盖写
cmd >> out.log      # 追加写
cmd 2> err.log      # 标准错误
cmd > out.log 2>&1  # stdout+stderr 合并
7. 端口被占用怎么查?服务是否在监听怎么查?中等
# 推荐 ss
ss -lntp | grep 8080

# 或 lsof
lsof -i:8080

# 看连接概览
ss -s
8. 环境变量 PATH/HOME/USER 是什么?如何临时/永久设置?简单
echo $PATH
export MY_VAR=123            # 临时(当前 shell)

# 永久:写入 ~/.bashrc 或 ~/.zshrc
echo 'export MY_VAR=123' >> ~/.bashrc
source ~/.bashrc
9. 线上机器磁盘满了,但 du 看不到大文件,可能是什么原因?困难
  • 文件被删除了,但进程仍持有句柄(空间未释放)。
  • 查看:lsof | grep deleted,找到进程重启或 truncate。
df -h
lsof | grep deleted | head
10. systemd 与 systemctl 常用操作有哪些?困难
systemctl status nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl enable nginx
journalctl -u nginx --since "10 min ago"
11. 什么是软链接/硬链接?ln -s 的用途?中等
  • 硬链接:同一 inode 的多个目录项;删除一个不影响其他。
  • 软链接:类似快捷方式,指向路径;目标删了链接就坏。
ln file1 file1.hard
ln -s /var/log/nginx/access.log access.log.link
12. kill -9 与 kill -15 的区别?什么时候用?中等
  • SIGTERM(15):友好退出,给进程清理资源的机会(推荐先用)。
  • SIGKILL(9):强制杀死,不可捕获,可能导致数据不一致(最后手段)。
kill -15 12345
kill -9 12345
13. TIME_WAIT 太多会有什么影响?如何缓解?困难
  • 端口耗尽风险、连接建立变慢;一般是客户端主动关闭导致。
  • 缓解:连接复用(HTTP keep-alive)、降低短连接、合理调整内核参数(谨慎)。
ss -ant | grep TIME-WAIT | wc -l
ss -ant | awk '{print $1}' | sort | uniq -c
14. 常用压缩/解压命令有哪些?tar.gz 怎么解?简单
tar -czf logs.tar.gz /var/log/nginx
tar -xzf logs.tar.gz

zip -r out.zip dir/
unzip out.zip
15. 为什么线上排障不推荐直接 cat 大日志?更好的方式?中等
  • 大文件会刷屏且性能差;更好的方式是 less(可搜索)或 tail -f(实时)。
less app.log
# /ERROR 搜索,n 下一个

tail -f app.log | grep "ERROR"

🔗 进阶学习路径