🐚

Linux Shell 脚本
编程一周学习计划

系统学习 Bash 脚本编程,从基础语法到实战自动化运维,7天带你完整掌握 Shell 脚本开发

Day 1 起步 Day 2 变量 Day 3 流程控制 Day 4 函数 Day 5 文本处理 Day 6 进程管理 Day 7 实战
7
天完整学习
50+
个核心知识点
30+
个练习脚本
5
个综合实战项目
2~3h
每天学习时长
📅 七日学习计划
🚀
Day 1
基础入门与环境准备
Shell 的本质与种类、第一个脚本、执行方式与调试技巧、基础命令回顾
Bash 简介shebang权限调试
📦
Day 2
变量、字符串与输入输出
变量定义与作用域、位置参数、字符串操作、read 交互输入、重定向与管道
变量字符串截取read重定向
🔀
Day 3
条件判断与循环控制
if/case 条件判断、for/while/until 循环、break/continue、测试表达式
if/elsecaseforwhile
⚙️
Day 4
函数、数组与算术运算
函数定义与返回值、局部变量、数组操作、关联数组、let/expr/$(()) 算术
函数数组算术local
🔪
Day 5
文本处理三剑客
grep 正则过滤、sed 流编辑、awk 文本分析,Shell 中的正则表达式应用
grepsedawk正则
🖥️
Day 6
进程管理与系统编程
信号处理 trap、后台进程、cron 定时任务、日志记录、错误处理最佳实践
trapcron后台进程日志
🏆
Day 7
综合实战项目
系统健康巡检脚本、自动备份脚本、日志分析报告、服务监控告警、菜单交互式工具
系统巡检备份监控综合实战
🗺️ 知识路线图
D1
Day 1 · 入门基础
Shell 环境 · 第一个脚本 · 调试方法
了解 Shell 种类、掌握 shebang、chmod +x、bash -x 调试,建立学习环境
D2
Day 2 · 变量与输入
变量类型 · 字符串操作 · I/O 重定向
掌握变量声明、位置参数 $1~$9、$@/$#、字符串切片替换、管道组合
D3
Day 3 · 流程控制
条件分支 · 循环体系 · 测试表达式
if/elif/else/fi、case/esac、for in/C-style、while/until 循环与 break/continue
D4
Day 4 · 函数与数组
函数设计 · 索引数组 · 关联数组
函数封装、local 作用域、return/exit 区别、数组遍历修改、算术扩展 $(())
D5
Day 5 · 文本三剑客
grep 过滤 · sed 替换 · awk 分析
正则表达式精讲、grep -E/-P、sed s/g/d/p、awk BEGIN/END/域操作、组合管道
D6
Day 6 · 系统编程
信号捕获 · 定时任务 · 健壮性设计
trap 信号处理、后台 & / nohup、crontab 定时、set -euo pipefail 错误处理规范
D7
Day 7 · 综合实战
真实项目 · 代码规范 · 综合演练
5个完整运维脚本项目,将前6天知识融汇贯通,形成可直接使用的工具库
⚡ 快速参考 · 高频命令

🔧 变量操作

  • ${var:-default} 默认值
  • ${#var} 字符串长度
  • ${var:0:5} 字符串截取
  • ${var//old/new} 全局替换
  • ${var%%.*} 去除后缀

🔢 测试表达式

  • -f / -d / -e 文件判断
  • -z / -n 空/非空字符串
  • -eq -ne -lt -gt 数值比较
  • = != < > 字符串比较
  • && || ! 逻辑运算

📋 grep 常用选项

  • -i 忽略大小写
  • -n 显示行号
  • -v 反向过滤
  • -E 扩展正则
  • -r 递归目录

✂️ sed 常用操作

  • s/old/new/g 全局替换
  • /pattern/d 删除匹配行
  • -i 原地修改文件
  • Np 打印第N行
  • a\text 追加行

📊 awk 常用操作

  • $1, $2, $NF 字段引用
  • NR, NF 行号/字段数
  • BEGIN{} END{} 前后处理
  • -F: 指定分隔符
  • printf 格式化输出

⏰ cron 时间格式

  • * * * * * 分 时 日 月 周
  • 0 2 * * * 每天凌晨2点
  • */5 * * * * 每5分钟
  • 0 0 * * 1 每周一0点
  • @reboot 开机启动