Linux命令面试全攻略:21条高频命令原理与坑点详解
1. 面试官为什么总爱问 Linux 命令先看热词榜先说个现象。我翻了下最近和 Linux 相关的搜索记录和面试高度相关的热词大概分三类。第一类是入门向比如 linux基础命令、linux命令大全、linux常用100个命令、linux基本命令这类词背后多半是准备面试的应届生或转行者想找一份“背诵清单”。第二类是场景向比如 linux删除文件夹命令、linux find命令查找文件、linux解压缩命令zip、linux之文件打包和解压缩第1关:tar打包命令这类词说明你已经遇到了具体问题想快速解决。第三类最有意思像 linux cp -lf命令、free h命令详解linux、linux系统添加3306端口白名单为192.168.1段内全部ip的命令这种一看就是被工作或面试题精准卡住过已经开始抠参数和细节了。搜索量越大恰恰说明面试考得越勤。为什么面试官爱问命令因为“会操作”和“懂原理”差别很大。我面试过不少人简历上白纸黑字写着“熟练使用 Linux”我让他找一下当前目录所有 .log 文件里包含 ERROR 的行他能给我写 cat *.log | grep ERROR。这不算错但至少说明他没想过如果文件有几万个怎么办管道处理不过来的数据会丢在哪面试考命令不是在考打字速度而是在考你有没有理解命令背后的文件系统、进程模型、权限模型和网络栈。你背 100 个命令不如把高频 21 条吃透这也是我整理这份清单的初衷。先上一张速查表后面逐条展开讲原理、坑和加分回答。序号命令常见用途面试高频考点优先级1pwd查看当前目录-P 和 -L 的区别高2ls列出目录内容权限位、-d、隐藏文件高3cd切换目录cd -、OLDPWD、CDPATH中4mkdir创建目录-p、-m、权限继承中5touch创建空文件、改时间戳mtime/ctime/atime高6rm删除文件或目录-r、-f、-i、通配符展开高7cp复制文件-p/-a/-l/-s、硬软链接高8mv移动/重命名同文件系统和跨文件系统的差异中9find查找文件-name/-mtime/-size/-exec高10grep文本过滤-r/-v/-c/-l、退出码高11chmod修改权限数字权限、特殊权限位高12chown修改属主/属组user:group、-R中13sudo提权执行sudo -u/-i/-l、visudo高14ps查看进程ps aux、STAT、僵尸进程高15top系统监控load average、CPU/内存排序高16free查看内存free -h、buff/cache、available中17kill终止进程信号编号、-9 的风险高18ping网络连通性-c、TTL、ICMP中19ss/netstat查看端口监听-tlnp、端口占用排查高20curl/wget请求/下载-I/-o/-c、接口测试高21tar打包压缩czvf/xzvf/tzvf、压缩格式区别高这份表不是 Linux 命令大全但它能覆盖 90% 的面试高频题和日常运维场景。下面我分模块把每条命令掰开揉碎讲清楚会顺手补一批你搜热词时经常搜不到的经验细节。2. 文件与目录基础先把根扎稳2.1 pwd、ls、cd三件套也有坑pwd 简单到没人会专门复习但我在面试里特别喜欢拿它试水。我会让候选人进到一个通过软链接进入的目录然后问他 pwd 和 pwd -P 输出差在哪。很多人会卡住。原因在于 pwd 默认显示的是 PWD 环境变量里记录的路径也就是“你进来时用的是哪个路径”pwd -P 则是物理路径会把软链接解析成真实路径。举个例子你执行 cd /home/user/linkdir这里的 linkdir 是指向 /data/app 的软链接pwd 大概率还显示 /home/user/linkdir而 pwd -P 会直接显示 /data/app。这件事在写脚本时非常关键。很多启动脚本会拿 $PWD 去拼日志路径如果你是通过软链接进去的最后日志落到哪个目录可能完全出乎意料。我踩过一次坑某个服务用 systemd 启动工作目录指向软链接结果日志写到了预期之外的磁盘分区把分区撑满了。后来排查半天pwd -P 一出来立刻真相大白。ls 入门第一条命令但 ls 的功能远不止敲一下回车。面试官让你“查看当前目录下所有隐藏文件”你要答 ls -la让你“只看目录不看文件”很多人会写 ls -l | grep ^d聪明一点的人会写 ls -d */再深入一点ls -i 能看 inode 号ls -lh 能看人类可读的文件大小ls -lt 按时间排序。这些参数实际工作中都会用到尤其是 ls -lh 看日志到多大、磁盘文件占了多少空间几乎是每天的常规操作。ls -l 输出里第一列权限位是十个字符第一个字符表示文件类型后面三组 rwx 分别代表属主、属组、其他人这组字符不仅是 ls 的知识点更是 chmod 题的前置。很多人背得滚瓜烂熟但真要在面试里解释“为什么目录默认权限通常是 755 而不是 777”一时半会儿还真说不清。我把它留在权限模块去讲这里先记住ls 不是只看文件名它是在看目录项和 inode 的对应关系。cd 也有门道。cd - 能回到上一个目录这个快捷键很多人知道$OLDPWD 变量存的就是上一个目录。cd ~ 回家cd ~user 去某个用户的家目录。真正容易忽略的坑是 CDPATH 环境变量如果设置了这个变量cd 不一定在当前目录里找目标而会按 CDPATH 定义的一组路径依次查找。我面试时问过一次候选人很诧异说 CDPATH 是什么东西。这种冷门变量平时没人用但一旦踩到写脚本时的目录切换行为会变得极其诡异而且极难排查。2.2 mkdir 与 touch创建看上去很简单mkdir -p 是面试必考的“递归创建”比如 mkdir -p /tmp/a/b/c。很多人会背但追问一句“如果 /tmp/a/b 已存在但权限是 555而你是普通用户mkdir -p /tmp/a/b/c 会不会报错”就露馅了。答案是大概率会失败因为系统逐级解析路径在需要创建 c 的父目录入口时普通用户对 b 没有写权限mkdir 会直接报 Permission denied。这个追问能同时考到权限模型、路径解析、目录写权限三个点所以我建议你复习时把 mkdir -p 和 chmod 的知识连起来理解。mkdir -m 可以直接指定权限比如 mkdir -m 700 secret建完就带上权限不用再补一条 chmod。很多人不知道这个参数写脚本时多了一步操作也可能在“建目录后、改权限前”的窗口期留下权限过宽的风险。另外新建目录的默认权限由 umask 决定常见 umask 022 会让新目录默认是 755、新文件默认是 644。面试问“为什么 touch 出来的文件没有 x 权限”时答案就藏在 umask 和文件创建默认权限的计算规则里。touch 有两个作用创建空文件、更新文件时间戳。面试题“怎么创建一个空文件”答案不光 touch file也可以 file但 touch 真正的考点是文件时间mtime 是内容修改时间ctime 是状态变更时间atime 是访问时间。修改文件内容会影响 mtime 和 ctime只读不写会更新 atimechmod、chown 这类操作只改 ctime。这套时间戳理论既能引出 inode 机制也直接关系到日志轮转和备份脚本的编写。比如你用 find -mtime 做清理吃的就是 mtime 的亏因为很多程序写入日志时并不会改 atime而 mv 或复制文件后 mtime 也可能变化。2.3 rm删除是面试重灾区搜索词“linux删除文件夹命令”常年霸榜说明大家对删除这件事既常用又心虚。删除目录有两个层次空目录用 rmdir非空目录用 rm -r。rm -rf 是很多人抄作业抄来的组合但抄得不明不白-r 是递归-f 是忽略不存在的文件且不提示。加上 -i 可以在删除前逐一确认这个参数在写清理脚本时尤其有用宁慢勿错。面试中最经典的 rm 问题是“为什么不能随便执行 rm -rf /”和“rm -rf / 与 rm -rf /* 有什么区别”。这题不是脑筋急转弯。rm -rf / 会从根目录开始递归删除系统基本立刻完蛋rm -rf /* 虽然多了一个通配符但 shell 会先把 /* 展开成根目录下所有非隐藏路径结果同样致命。这道题的考点是通配符展开发生在命令执行之前。shell 先把 /* 展开成一串路径再把这串路径传给 rm根本没给 rm 选择的机会。理解了这一步你就明白为什么 rm -rf $path/ 在变量为空时会变成 rm -rf /所以写脚本时一定要先判断变量非空或者用“${path:?}”这类保险写法。还有一点必须强调Linux 没有 Windows 那种可见回收站rm 删除后基本很难恢复。生产环境的通用做法是给 rm 加个别名比如 alias rmmv -t ~/.trash然后定时清理 .trash 目录。我在自己的服务器上就这么干安全性提高一个档次。面试时你要是能主动说出这套替代方案会比只说“不要乱删”更有说服力。3. 文件复制、移动与查找高频场景全在这3.1 cp复制不只是 cp -rcp 是面试宠儿因为围绕它能挖出文件和 inode 的关系。基础用法不用多说cp file dest 复制文件cp -r dir dest 复制目录。但真正拉开差距的是 -p、-a、-l、-s 这几个参数。面试题“怎么复制一个文件并保留原权限和时间戳”答案是 cp -p。如果你要整目录备份应该用 cp -a它相当于 -dR --preserveall会保留软链接、权限、时间戳等属性。很多人嫌参数多记不住其实只要记住一句话日常复制用 cp备份整目录用 cp -a部署代码用 cp -a 也基本不会错。还有个容易被忽略的复制方式叫硬链接cp -l file link_file。加 -l 不会复制数据块只是在目录里新增一个指向同一 inode 的目录项磁盘几乎不耗空间修改其中一个文件另一个也跟着变前提是两者必须在同一个文件系统内。搜索热词里的“linux cp -lf命令”拆开看就是“复制并创建硬链接且覆盖已存在文件时直接替换”。面试官看到你使用 -l 参数就会顺藤摸瓜问出硬链接与软链接的区别、跨文件系统限制、inode 是什么这一连串问题能铺开讲十分钟。我建议你复习时把 ln、inode、df -i 这些概念串起来千万别只背参数。cp 的另一个坑是符号链接。cp -r 复制目录时默认会解引用软链接把链接目标的真实内容复制过去如果希望保留软链接本身得用 cp -a 或 cp -d。这个细节在部署静态资源时特别容易出事比如你把一个 public 目录复制到新服务器结果里面几十个软链接全部变成了文件副本磁盘瞬间多占用几倍。3.2 mv移动背后的 inode 原理mv 表面上是“移动”本质分两种情况。同一文件系统内mv 只是修改目录项inode 没变所以速度极快不管目录多大都像瞬间完成跨文件系统时mv 会先复制数据再删除源文件相当于 cp rm所以慢得离谱。很多人误以为 mv 永远快最后在跨盘迁移时等上半天这就是没搞懂 inode 和文件系统的关系。面试官考 mv 时经常会问“mv 和 rename 有什么区别”。其实 mv 底层调用的就是 rename 系统调用只是用户态工具和系统调用两者的概念层级不同。真正要理解的是 rename 的原子性在同一个文件系统内rename 操作要么成功要么不成功不存在中间状态所以很多程序用“先写临时文件再 mv 覆盖目标”的方式来实现原子发布比如 Nginx 更新静态资源、Java 打新包发布都是这个套路。mv 最常见的坑是“移动时把目标文件覆盖了”。mv a.txt b.txt 如果 b.txt 已存在系统会直接覆盖不会提示。所以很多团队会给 mv 设置 alias mv -i让它在覆盖前询问。写脚本时更要注意mv -f 一旦传错目标源文件就没了。我还见过有人用 mv 把文件移动到目录时没写对路径结果把所有目标文件串成一串当场心态爆炸。3.3 find查找文件的正确姿势搜索热词“linux find命令查找文件”常年居高不下说明 find 是多数人的知识盲区。find 的基本结构是“find 路径 条件 动作”。常用条件-name 按文件名、-iname 忽略大小写、-type 按类型、-mtime 按修改时间、-size 按大小、-user 按属主常用动作-print 打印、-exec 执行命令、-delete 删除。举两个实际场景。你发现 /var/log 下 .log 文件太大想清理 7 天前的日志安全的做法是先查询再删除find /var/log -name .log -mtime 7 -print确认列表没问题后再执行 find /var/log -name .log -mtime 7 -exec rm -i {} ;。注意这里 {} 是 find 查到结果的占位符; 表示命令结束必须转义分号。如果想批量打包可以用 find . -name *.conf -exec tar czf conf.tar.gz {} {} 会把尽量多的文件一次性传给 tar效率远高于每查到一个文件就执行一次命令的 {} ;。面试官还喜欢追一个问题mtime、ctime、atime 在 find 里怎么用我前面提过时间戳机制这里再强调一次。find -mtime 7 表示“7 天前修改的”-mtime -7 表示“7 天内修改的”符号别搞反。面试题“怎么找到 7 天前的大文件并删除”组合就是 find /data -type f -mtime 7 -size 100M -exec ls -lh {} ;先看大小再决定删不删。掌握了这个思路磁盘清理、日志归档、僵尸文件排查就都不难了。3.4 grep过滤文本的必备技能grep 是文本处理三剑客之首面试出现率不低于 find。必会参数-r 递归、-i 忽略大小写、-n 显示行号、-v 反向匹配、-c 计数、-l 只列文件名。实际工作场景里最常用的组合是在日志目录里找关键字比如 grep -rn ERROR /var/log/app/ | head -50一条命令搞定递归和行号比打开文件慢慢翻快得多。有个坏习惯劝你别带到面试里写 cat error.log | grep Timeout。这被称为“无用 cat”直接 grep Timeout error.log 就行。管道不是不能用但这里纯属多此一举而且文件特别大的时候会多读一遍数据白白增加 IO 开销。如果你要过滤的是多个文件grep 后面直接跟文件路径就行它天然支持多文件输出并显示文件名。grep 的退出码也是考点匹配到返回 0没匹配到返回 1命令本身出错返回 2。这在 shell 脚本里非常关键比如下面这段if grep -q success log.txt; then echo 部署成功 else echo 部署失败查看日志 fi-q 表示安静模式不输出匹配内容只返回退出码。很多新手不知道退出码这回事写完 grep 的 if 判断总是行为异常。另外grep 默认用基础正则想用扩展正则得加 -E比如 grep -E error|fail。面试官要是把 grep 和 awk、sed 放在一起问你只要能答清三者的分工——grep 只管过滤awk 擅长按列处理sed 擅长按行替换——就已经比很多人强了。4. 权限与用户运维的立身之本4.1 chmod权限位到底怎么算chmod 是权限模块的必问题。数字权限法则是 r4、w2、x1三者相加得到 0-7分别代表属主、属组、其他人。比如 chmod 755 script.sh就是属主可读可写可执行属组和其他人可读可执行。为什么面试爱考数字权限因为刷过题的人能背出 755、644但你要他解释为什么目录的默认权限通常是 755 而不是 777他会愣住。原因是目录的 x 权限不是“执行”而是“能否进入和检索”。如果目录只有 r 权限没有 x 权限你能看到文件名但无法进入目录查看文件属性也无法通过路径打开里面的文件。所以目录至少要有 x 权限才能被正常访问777 又太大了任何人都能写生产环境一般不这么开。理解了这点你就明白 /tmp 目录为什么是 1777最后的 1 是 sticky bit防止非属主删除别人创建的文件。chmod 还有符号模式u/g/o/a 配合 、-、比如 chmod ux file 只给属主加执行权限chmod o-w file 去掉其他人的写权限。面试官问“如何给脚本加可执行权限”标准答案是 chmod x script.sh但追问“只想给属主加”时你要答 chmod ux script.sh。特殊权限方面setuid、setgid、sticky bit 也需要了解尤其 setuid它让普通用户执行某个程序时临时获得属主权限典型例子是 /usr/bin/passwd。面试题“为什么普通用户能修改自己的密码”答案就在这。4.2 chown改属主属组别只改一半chown 的考点在参数顺序。chown user:group file前面是属主后面是属组。只改属主用 chown user file只改属组可以用 chown :group file等价于 chgrp group file。递归改目录用 -R但这里要提醒一句如果只是发布代码不需要整个目录 chown -R 到同一个用户除非你确定里面每个文件都该归他。很多人图省事一条 chown -R 下去把符号链接的属主也改了。在某些系统上对符号链接执行 chown 会把链接目标一起改掉这正是我不建议盲目递归的原因。更稳妥的做法是先检查目录里有没有软链接或者用 find 命令精准匹配需要改的文件范围。面试官问“把 /data 目录及下所有文件改成 www 用户和 www 组”你要答 chown -R www:www /data同时补充一句“生产环境我会先备份或者先确认没有软链接”。搜索热词里有个“linux列出所有用户和群组命令”这其实是在问账号体系的查看方式。用户账号在 /etc/passwd 文件里密码占位在 /etc/shadow 里用户组在 /etc/group 里。想看所有用户名cat /etc/passwd | cut -d: -f1 就行更规范一点用 getent passwd。每一行的字段含义也要懂用户名、密码占位、UID、GID、注释、家目录、shell。面试题“怎么列出 UID 大于 1000 的普通用户”就考你 awk 按 UID 过滤答案是 awk -F: $31000{print $1} /etc/passwd。顺带一提useradd 创建用户、userdel 删除用户、usermod 修改用户信息这几个命令也要知道特别是 useradd -m -s /bin/bash username 这种密码学入门组合。4.3 sudo别把 root 密码给出去sudo 和 su 的区别是高频问答题。su 是切换用户需要目标用户密码su - root 直接切到 rootsudo 是当前用户以其他用户身份执行单条命令只需要当前用户自己的密码权限由 /etc/sudoers 控制。生产环境几乎不该把 root 密码给开发更安全的做法是给 sudo 权限。实际用法sudo -u www-data php artisan migrate 表示以 www-data 用户身份执行命令sudo -i 切到 root 登录 shellsudo -l 能列出当前用户可执行的 sudo 命令。面试官考“如何给用户添加 sudo 权限”标准答案是用 visudo 编辑 sudoers 文件加一行 username ALL(ALL) ALL。注意必须用 visudo 而不是直接 vim /etc/sudoers因为 visudo 会做语法检查避免你写错导致 sudo 全部失效。热词“shell脚本执行linux命令”在 sudo 场景下也有坑。脚本里写 sudo 命令时会遇到交互式输密码卡住的问题一般建议用 sudo -n 做非交互检测或者把命令放到 /etc/sudoers 里做成免密白名单但免密范围要尽量收敛别搞成一句 ALL(ALL) NOPASSWD: ALL那等于把机器大门敞开。面试时如果你能主动补充“sudo 权限要遵循最小化原则”印象分会高不少。5. 进程与资源排查故障的底牌5.1 ps看懂进程状态ps 是查进程的第一入口。两个常用风格ps aux 和 ps -ef两者都能列出进程输出略有差异面试时能说出 ps aux 属于 BSD 风格、ps -ef 属于 System V 风格就算加分。重点在 STAT 列R 运行、S 睡眠、D 不可中断睡眠、Z 僵尸还有各种组合符比如 Ss、Sl。很多人只记住 Z 是僵尸但不知道怎么处理。面试题“出现大量僵尸进程怎么处理”很多人答错了僵尸进程不能用 kill -9 清理因为进程已经死了只是父进程还没调用 wait 回收正确思路是找到父进程kill 掉父进程或让父进程退出让 init 接管回收。可以用 ps -eo pid,ppid,stat,cmd | grep Z 找出僵尸进程的 PPID再顺着 PPID 找父进程。这个排查链路面试官非常喜欢因为考察的是你对进程生命周期有没有完整认识。还有一条经常考的查找命令找出 CPU 占用最高的进程ps aux --sort-%cpu | head -5。按内存排序则是 --sort-%mem。这比单纯 ps 好用太多排查性能问题时几乎是标准操作。如果想让输出更干净可以用 ps -eo pid,user,%cpu,%mem,cmd --sort-%cpu | head -10自定义要看的列避免一堆无关字段刷屏。5.2 top实时看系统负载top 是实时监控工具面试考的核心是前几行数据。第一行系统运行时间和负载load average 后面的三个数字分别表示 1 分钟、5 分钟、15 分钟平均负载。注意负载不是 CPU 使用率而是处于可运行和不可中断状态的进程平均数。面试题“服务器 load average 高但 CPU 使用率不高可能是什么原因”答案方向是大量 D 状态进程在等 IO或者进程数多到上下文切换频繁而不是简单地“CPU 不够用”。第二行进程总数和状态第三行 CPU 使用率us、sy、ni、id、wa、hi、si、st 各字段含义要能说出来。us 用户态、sy 内核态、wa IO 等待、st 被虚拟机偷走的时间这几个是排查 CPU 问题的关键。top 里按 P 按 CPU 排序、按 M 按内存排序这两个快捷键也是面试常客能说出来的话说明你真用过。如果要把 top 输出拿到脚本里分析用 top -bn1-b 是批处理模式-n1 表示只取一次快照。热词“free h命令详解linux”说的是内存视角但 top 里的内存信息同样值得关注VIRT 是虚拟内存RES 是常驻物理内存两个数值差得远说明进程申请了很多地址空间但没用满不能简单说是内存泄漏。面试时能把 top 和 free 结合起来讲会显得更有全局观。5.3 freefree 命令的 h 才是重点热词“free h命令详解linux”专门问的就是 free -h 输出怎么读。free -h 里的 h 表示 human readable用 K/M/G 单位显示。很多人看到 available、buff/cache 就懵。重点结论是buff/cache 是内核用空闲内存做的磁盘缓存应用内存不够时会自动释放所以判断内存够不够不要盯着 used 看要看 available。面试题“服务器内存显示用了 90%需要马上加内存吗”不是的如果 available 还有很多说明那个 used 可能包含了大量 cache系统还能应付。反过来如果 available 只剩几百兆同时 swap used 开始往上涨那才说明内存真的紧张。排查内存泄漏时通常要先看进程的 RES 内存free 命令只是宏观视角。你可以用 ps aux --sort-%mem | head -5 找出吃内存最多的进程再配合 top 观察变化趋势这样一步步排查才不容易误判。swap 也要会看free 输出里 swap 一行的 used 表示已经用到的交换分区。swap 使用率高说明内存压力大但 Linux 有时候会提前换出一些冷页所以 swap used 不为 0 不一定是坏事。面试官要是追问“swap 和物理内存的区别”你要能说出 swap 是磁盘上的虚拟内存、速度远低于内存、频繁换入换出会导致性能骤降这些基础概念比背参数重要得多。5.4 kill杀进程别急着 -9kill 的考点是信号。kill -9 是 SIGKILL强制终止kill -15 是 SIGTERM默认信号请求进程优雅退出kill -1 是 SIGHUP通常用于让进程重新加载配置比如改完 Nginx、sshd 配置后kill -HUP 能热加载不用停机。这三个信号必须记牢因为它们是运维日常里最常用的。信号编号默认行为常见用途SIGHUP1终止进程重新加载配置SIGINT2终止进程CtrlCSIGTERM15终止进程优雅停止默认信号SIGKILL9强制终止无法被捕获立刻结束面试题“进程 kill -9 杀不掉怎么办”答案思路是看进程是不是处于 D 状态D 状态进程在等 IO内核在 IO 完成前不会响应信号你要检查磁盘和存储如果是 Z 僵尸就像前面说的杀父进程而不是杀僵尸本身。还有 pkill、killall 可以按名字杀比如 pkill -f python app.py注意 -f 会匹配完整命令行容易误杀比如 pkill -f test.py 可能把 vi test.py 也带走。写清理脚本时尽量用精确的 PID 或明确的进程名别图省事。6. 网络与传输面试常考的最后一块6.1 ping能通不代表没问题ping 用 ICMP 协议检测目标主机是否可达。必会参数是 -c 指定次数比如 ping -c 4 www.example.com避免像默认那样一直刷屏。面试题“ping 不通就一定网络不通吗”不是。目标主机可能禁了 ICMP或者防火墙没放行反过来ping 通了也只能说明三层网络通不代表端口和应用正常。所以完整排查链路是ping 测连通、ss 查端口、curl 测应用三层缺一不可。关于 TTLping 输出里的 ttl64 表示数据报还剩下多少跳每次经过一台路由器就减 1如果 TTL 是 64 说明目标离你很近117、118 这类往往是经过了十几台设备。面试不会让你背 TTL 表格但能说出这个机制会显得你对 IP 协议有概念。另外想追查 DNS 解析结果可以用 nslookup 或 dig这和热词“linux 如何用命令查dns”相关面试问“域名解析不了怎么办”你要会用 dig short example.com 或 nslookup example.com 去查 DNS而不是只会 ping。6.2 ss/netstat查端口和防火墙放行查端口监听是面试高频。netstat -tlnp 是老牌命令-t 显示 TCP-l 显示监听状态-n 不做域名解析-p 显示进程。但新系统上 netstat 未必预装而 ss 是 iproute2 套件里的替代品性能更好。ss -tlnp 同样能看监听端口和对应进程。查某个端口被谁占用可以用一条命令ss -tlnp | grep 3306如果看到 127.0.0.1:3306说明只监听本机回环外部访问不通如果是 0.0.0.0:3306说明监听所有网卡。搜索热词里“linux系统添加3306端口白名单为192.168.1段内全部ip的命令”这种场景常见于数据库只允许内网访问。用 iptables 做的话规则顺序很重要要先允许 192.168.1.0/24 访问 3306再拒绝其他来源。更现代的方式是 firewalld 的 rich rulefirewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.0/24 port protocoltcp port3306 accept firewall-cmd --reload这类题真正考的是网段、协议、端口、防火墙匹配顺序这些网络基础而不是让你背命令所以答题时把网段、协议、端口讲清楚就够了。面试官要是追问“为什么 192.168.1.0/24 能代表 192.168.1.1 到 192.168.1.254 的所有 IP”你要能反算出子网掩码和可用主机范围。6.3 curl/wget下载和接口测试的差异curl 和 wget 都能下载但定位不同。curl 更偏向命令行 HTTP 客户端适合测接口常用参数有 -I 只拿响应头、-o 指定输出文件、-u 带用户名密码、-k 忽略证书校验、-s 静默模式、-w 输出格式。wget 更偏向下载工具-c 断点续传、-r 递归下载、-O 指定输出文件名。面试题“服务器下载一个 URL 到本地用什么命令更合适”多数情况答 wget -O file url 就行如果是要看接口返回状态码用 curl -s -o /dev/null -w %{http_code} URL 是标准动作很多后端排查 HTTP 状态码时都用它。再提一个热词“linux nc命令下载”。nc 是 netcat它更像一把网络瑞士军刀能监听端口、传文件、测端口连通性比如 nc -zv host 22 检测 SSH 端口是否开放。还有 scp 命令面试也常考scp file userhost:/path 把文件复制到远端-P 指定端口-r 递归复制目录。如果面试官问“大文件跨机器传输你会怎么做”你能答出 scp、rsync、tar 管道的适用差异就够用了scp 简单直接rsync 支持增量还要考虑带宽tar 管道适合打包大量小文件。这几种方案对不上场景的话在实际生产环境里很容易踩坑。6.4 tar打包压缩一条龙tar 的完整形态是“先打包再压缩”。必背组合tar czvf archive.tar.gz dir 是打包并 gzip 压缩tar xzvf archive.tar.gz 解压tar tzvf archive.tar.gz 不解压只看内容。重点理解每个字母c 创建、x 解包、t 列表、z 走 gzip、j 走 bzip2、J 走 xz、v 显示过程、f 指定文件名。面试官考“为什么 tar 命令里 f 必须放最后”因为 f 后面要跟文件名如果顺序不对tar 会以为后面的选项是文件名直接报错。这个问题我见过很多人答不上来但其实就是使用习惯背后的依赖关系。搜索热词“linux解压缩命令zip”是另一类场景zip archive.zip file1 file2 打包unzip archive.zip 解压unzip -l archive.zip 查看列表。需要区分的是zip 是先逐个压缩再归档tar 加 gzip 是先把一堆文件打包再整体压缩所以 zip 适合按单个文件取用tar.gz 在压缩率和大量小文件场景更有优势。面试时说出这个差异会显得你真理解工具的底层机制。tar 还有一个高级用法是管道配合远程传输tar czf - /data | ssh userhost tar xzf - -C /backup这条命令能把本地目录直接同步到远程中间不落盘。如果面试官问到运维常用的备份方案你能提这个分数会上去。解压时尽量减少覆盖风险tar xzf 解压前先 tar tzf 看内容确认里面没有以 / 开头的危险路径这是安全习惯也值得在面试里提。7. 几句话送给准备面试的你把上面 21 条命令全部背下来当然有用但我觉得更值钱的是解题思路。面试官问你命令考的无非是三个东西一、你知不知道有这条命令二、知不知道核心参数和边界三、面对真实场景能不能把它组合起来用。比如“日志文件把磁盘写满了怎么办”这道题就串联了 df、du、find、grep、rm 甚至 kill“8080 端口起不来”又串联 ss、ps、kill、tail。所以复习的时候别一条一条孤立地背最好按场景串成链路做一次完整的故障排查自测。还有一点我想强调面试现场做命令演示千万不要真的在线上机器删除数据。回答 rm -rf 相关问题时嘴上说清楚原理、加一句“生产环境我一定会先备份”比真的敲出来安全得多面试官也不会因为你不演示而扣分反而觉得你安全意识到位。我这些年面试别人最怕的不是不会而是不懂装懂。遇到不会的命令直接说“这条我平时用得少但我可以这样查手册”然后再把 --help 或 man 的查找思路讲出来这往往比硬编一个答案加分。最后给个实操建议把这 21 条分别列成自测清单每条要能说出四件事——命令是干什么的、最常用参数、一个坑、一个真实场景。哪一条说不上来就单独去查别急着背下一条。你在自己服务器上练习时多用 type、which、man、--help 去追根问底会发现 Linux 命令的世界其实是连成一片的而不是 100 个孤立的快捷键。能把它们连起来用才是面试官真正想看到的东西。