真实面经题目 · 原创解析
常用的Linux指令有哪些?
这道题不适合只背命令清单,面试官更关注候选人是否能把 Linux 指令放进真实后端排障场景中:如何定位文件、查看日志、过滤文本、观察进程、确认端口、检查磁盘、调整权限、串联管道并形成稳定的排查路径。好的回答应按使用场景分类,并能说明每类命令解决什么问题、常见参数怎么用、出现异常时下一步怎么验证。
真实面经题目 · 原创解析
这道题不适合只背命令清单,面试官更关注候选人是否能把 Linux 指令放进真实后端排障场景中:如何定位文件、查看日志、过滤文本、观察进程、确认端口、检查磁盘、调整权限、串联管道并形成稳定的排查路径。好的回答应按使用场景分类,并能说明每类命令解决什么问题、常见参数怎么用、出现异常时下一步怎么验证。
我会按后端日常使用场景来回答,而不是单纯罗列命令。首先是文件和目录操作,比如 pwd 查看当前位置,ls 查看目录内容,cd 切换目录,mkdir、rm、cp、mv 完成创建、删除、复制和移动。其次是文本和日志查看,cat 适合小文件,less 适合大文件翻页,head、tail 用于查看开头和结尾,tail -f 常用于实时跟踪日志,grep、awk、sed 用于过滤、切列和替换。进程方面常用 ps、top、kill、nohup、systemctl,能查看进程状态、资源占用、结束异常进程或管理服务。网络排查会用 ping、curl、netstat 或 ss、lsof、telnet 或 nc,重点确认域名、连通性、端口监听和接口响应。磁盘和资源方面常用 df、du、free、uptime、iostat、vmstat,判断磁盘是否满、内存是否紧张、负载是否异常。权限相关有 chmod、chown、chgrp、umask,用来处理执行权限、文件归属和默认权限。实际排障时,我一般会先确认服务状态,再看端口和进程,再跟日志,结合 grep、awk、sort、uniq、wc 等管道命令缩小范围,最后根据 CPU、内存、磁盘、网络指标判断根因。这样回答能体现我不仅知道命令,还知道如何用它们解决生产问题。
基础命令包括 pwd、ls、cd、find、mkdir、rm、cp、mv。pwd 用来确认当前路径,避免在错误目录执行危险命令;ls -lah 能查看隐藏文件、权限、大小和修改时间;cd 用于切换工作目录;find 可按文件名、类型、大小、时间进行查找。后端排查中,文件定位通常是第一步,例如确认配置文件是否存在、日志目录是否正确、部署产物是否更新。
cat、less、head、tail 是最常见的文本查看命令。cat 适合查看较短文件,less 适合大文件翻页搜索,head 和 tail 用来快速查看文件首尾内容,tail -f 常用于实时跟踪应用日志。面试中要强调不能对超大日志随意 cat,否则可能刷屏或影响终端体验;更稳妥的方式是 less、tail、grep 组合使用。
grep、awk、sed、sort、uniq、wc 是后端工程师处理日志和文本数据的核心工具。grep 用于按关键字过滤,awk 适合按列提取和简单统计,sed 常用于流式替换,sort 和 uniq 能做排序去重,wc 可统计行数、单词数和字节数。它们通常通过管道连接,例如从日志中筛选错误、提取接口路径、统计状态码分布。
ps、top、htop、kill、nohup、systemctl、journalctl 常用于进程与服务管理。ps aux 可以查看进程快照,top 能动态观察 CPU 和内存占用,kill 用于发送信号结束进程,nohup 可让任务脱离终端运行,systemctl 用于启动、停止、重启和查看服务状态。回答时应说明 kill -9 不是默认首选,通常先尝试正常终止,再处理无法退出的进程。
ping、curl、ss、netstat、lsof、telnet、nc 是常见网络排障命令。ping 主要验证网络连通性,curl 用来测试 HTTP 接口、状态码和响应耗时,ss -lntp 或 netstat -lntp 可查看端口监听,lsof -i 可定位占用端口的进程,telnet 或 nc 可测试 TCP 端口是否可达。后端排障时常用这些命令判断是服务未启动、端口未监听、网络不通还是接口自身异常。
df、du、ls、find 常用于磁盘问题定位。df -h 查看文件系统剩余空间,du -sh 查看目录总体大小,du -h --max-depth=1 可定位哪个子目录占用最多空间,find 能查找大文件或长期未清理的文件。线上服务异常时,磁盘写满会导致日志写入失败、数据库异常或临时文件创建失败,因此磁盘检查是常规排障步骤。
chmod、chown、chgrp、umask 是权限相关核心命令。chmod 修改读写执行权限,chown 修改文件拥有者,chgrp 修改所属组,umask 控制新建文件的默认权限。面试回答中应体现权限理解:可执行脚本需要执行权限,服务用户需要读取配置和写入日志的权限,不能为了省事随意使用 777,因为这会扩大安全风险。
free、uptime、top、vmstat、iostat、sar、dmesg 常用于观察系统资源。free 查看内存使用,uptime 查看运行时间和负载,top 观察进程资源占用,vmstat 关注 CPU、内存和上下文切换,iostat 观察磁盘 IO,dmesg 可查看内核层面的错误信息。优秀回答会把命令和判断逻辑结合起来,比如高负载要区分 CPU 忙、IO 等待高还是进程堆积。
tar、gzip、zip、scp、rsync 常用于发布、备份和日志转储。tar 可打包目录,gzip 可压缩文件,scp 适合简单跨机器复制,rsync 适合增量同步。后端场景中常见用途包括打包日志给排查人员、备份配置文件、同步静态资源或部署产物。需要注意传输前确认文件大小、目标路径和权限,避免覆盖错误文件。
Linux 命令的价值在于组合,而不是孤立记忆。一个典型排障路径是:systemctl 或 ps 看服务是否存在,ss 或 lsof 看端口是否监听,curl 看接口是否正常,tail -f 看实时日志,grep 和 awk 缩小错误范围,df、free、top 检查资源瓶颈。面试时能讲出这种路径,说明候选人具备实际定位问题的能力。
可以使用 lsof -i:端口号,或者 ss -lntp 结合端口过滤。前者能直接看到占用端口的进程信息,后者更适合查看当前监听端口列表。定位到 PID 后,再用 ps 查看进程详情。
常见方式是 tail -f 日志文件配合 grep 过滤关键字,例如过滤 ERROR、Exception 或请求标识。对于高频日志,可以先缩小时间范围或关键字段,避免无效输出过多。
先用 df -h 确认哪个挂载点空间不足,再用 du -h --max-depth=1 从大目录逐层定位占用来源。找到大文件后要判断是否可清理,例如历史日志、临时文件或异常膨胀文件,不能盲目删除业务数据。
ps 更像进程快照,适合查看某一时刻的进程信息;top 是动态监控,适合持续观察 CPU、内存、负载和进程变化。实际排查中通常先用 top 找高占用进程,再用 ps 查看更详细参数。
grep 适合按行过滤关键字,awk 适合按字段处理和统计,sed 适合流式替换和简单编辑。日志分析中通常先 grep 缩小范围,再用 awk 提取字段,必要时用 sort、uniq、wc 做统计。
777 会给所有用户读、写、执行权限,容易造成误操作和安全风险。更合理的做法是确认服务运行用户、文件拥有者和所需权限,只授予必要的最小权限。