💡封面摘要:
吃透Linux核心命令 + Shell手写脚本,搞定80%开发/运维/大数据面试基础题,刷题直接上岗!
不管是后端开发、大数据开发,还是运维、测试岗位,Linux 和 Shell 脚本都是面试必考的基础核心!
很多面试官的共识:能熟练玩转Linux命令、写得懂Shell脚本,是程序员基本功的最好证明。
很多同学面试翻车,不是算法不行,而是基础不扎实、脚本写不出来、线上排查说不出流程。
为了帮大家系统刷题、高效备战面试,我正式开启 【面试干货系列】,每期只更高频、硬核、可直接面试默写的考点和真题。
本期是第一期:Linux & Shell,整理全网最高频面试考点 + 10道大厂手写脚本真题,看完直接背诵、笔试机试直接满分!
一、Linux 核心基础面试题(高频必问)
1、简述 Linux 常见文件类型
Linux 核心思想:一切皆文件。面试常考6种文件类型:
1. 普通文件(-):日志、代码、文本等日常文件
2. 目录文件(d):文件夹,用于文件管理
3. 链接文件(l):软链接,等同于Windows快捷方式
4. 设备文件(b/c):块设备(磁盘/U盘)、字符设备(键盘/鼠标)
5. 管道文件(p):进程间通信专用文件
6. 套接字文件(s):网络跨进程通信文件
💡面试加分点:Linux 不靠后缀区分文件类型,后缀仅用于人工识别,系统通过文件头标识判断类型。
2、绝对路径和相对路径的区别
- 绝对路径:从根目录 / 起始的完整路径,全局唯一、任意目录可访问
示例: /home/user/test.sh
- 相对路径:基于当前所在目录的路径,切换目录后失效
示例: ./test.sh 、 ../log/
💡工作规范:定时任务、服务脚本、配置文件必须使用绝对路径,规避环境切换导致的执行失败。
3、Linux 权限 rwx 数值与含义
文件权限分为:所有者、所属组、其他用户 三组
权限固定数值:
- r 读 = 4
- w 写 = 2
- x 执行 = 1
- 无权限 = 0
高频权限组合:
- 755 :目录默认权限(所有者全权限,其他人只读执行)
- 644 :普通文件默认权限(所有者读写,其他人只读)
- 777 :全开权限(生产环境禁止使用,存在重大安全隐患)
4、find 和 grep 命令核心区别(高频对比题)
两道命令核心定位完全不同,面试必问:
- find:按【文件属性】查找
查找维度:文件名、大小、时间、权限、类型
示例: find ./ -name "*.log"
- grep:按【文件内容】匹配
查找维度:文本关键词、字符串
示例: grep "error" test.log
5、Linux 五大进程状态
- R:运行/就绪状态,等待CPU调度执行
- S:可中断休眠,等待资源(系统绝大多数进程常态)
- D:不可中断IO休眠,无法被kill终止
- Z:僵尸进程,子进程退出、父进程未回收资源(需要清理)
- T:暂停状态,手动暂停/调试暂停
6、进程查看与终止命令
查看进程
- ps -ef :静态查看系统所有进程(面试首选)
- top :动态实时查看CPU、内存、进程占用
终止进程
- kill -15 PID :优雅终止(默认),允许进程保存数据、释放资源
- kill -9 PID :强制终止,直接杀死进程(仅卡死异常时使用)
7、线上日志查看常用命令
线上排查问题刚需,开发运维通用:
- cat :查看小文件完整内容
- head -n :查看文件前N行
- tail -n/-f :查看末尾内容、实时滚动监控日志
- less/more :分页查看大文件,支持翻阅检索
二、Shell 脚本高频基础面试题
1、Shell 脚本四种执行方式
1. ./test.sh :子进程执行,需要执行权限x
2. sh/bash test.sh :指定解释器执行,无需执行权限
3. source/. test.sh :当前终端进程执行,环境变量修改全局生效
4. sh test.sh & :后台挂机执行
💡核心考点:环境变量、配置脚本必须用 source ,子进程执行无法生效变量。
2、Shell 特殊参数含义(必考)
- $0 :当前脚本名称
- $1~$9 :脚本第1-9个入参
- $# :传入参数总个数
- $@ :所有参数(独立个体,遍历无坑,工作首选)
- $* :所有参数(整体字符串,易出BUG)
3、if 条件高频判断参数
文件判断
- -e :文件/目录是否存在
- -f :是否为普通文件
- -d :是否为目录
数值判断
- -eq :等于
- -ne :不等于
- -gt :大于
- -lt :小于
4、for / while 核心循环语法
for 遍历循环
while 逐行读取(日志处理常用)
5、脚本后台不挂断运行
生产标准写法:
作用:退出终端不终止进程,日志统一落地文件。
6、 2>&1 经典面试题解析
- 1 :标准正常输出日志
- 2 :标准错误报错日志
- 2>&1 :将错误日志重定向合并到正常日志,统一归档、方便排查
三、综合实操面试问答(面试官高频追问)
1、服务器磁盘爆满完整排查流程
1. df -h 查看磁盘分区占用,定位爆满盘符
2. du -sh /* 逐层查找大文件/大目录
3. 进入高占用目录,精准定位冗余日志、垃圾文件
4. 禁止 rm 删除正在写入的日志(空间不释放、占用内存)
5. 正确清空方式: > 文件名.log
2、实时过滤线上报错日志
实时监控报错信息,快速定位线上故障。
3、Shell 脚本调试方法
1. sh -x test.sh :分步打印执行过程,精准定位报错行
2. 脚本头部添加 set -e :出错立即退出,避免错误累积
四、大厂手写 Shell 真题10道(带标准答案)
笔试、机试、实操必考!可直接默写、线上可直接运行
真题1:批量将所有 .txt 文件改为 .bak
✅考点:Shell变量后缀截断
真题2:统计日志中 error 总条数
✅参数: -r 递归、 -i 忽略大小写
真题3:判断脚本入参是否为空,为空提示用法
真题4:查找指定目录大于100M的文件
真题5:批量清理30天前过期日志
✅企业通用定时清理方案
真题6:Shell实现1~100累加求和
真题7:逐行读取文件内容并输出
真题8:检测进程不存在则提示重启
✅考点: grep -v grep 过滤自身进程
真题9:查看CPU/内存占用TOP5进程
真题10:批量杀死指定业务进程
✅面试话术:生产优先 kill -15 优雅退出,异常卡死再用 kill -9
五、文末总结
本期内容覆盖 80%+ Linux&Shell 面试考点,适配校招、社招、后端、大数据、运维全岗位:
✅ Linux:权限管理、进程状态、磁盘排查、日志分析、文件检索
✅ Shell:参数语法、循环判断、日志重定向、后台任务、批量脚本实操
🔥 本系列持续更新,专门帮大家短时间突击面试、稳稳拿Offer!
下期预告:面试干货02|Java基础高频面试题+手写代码模板!
💡 关注我
持续更新【面试干货系列】、后端/大数据实战技术、踩坑经验、求职技巧!
所有文章真题均可直接收藏背诵,面试不用到处找资料,跟着系列刷就够了。
✨ 点赞+在看,更新不迷路!