🐧
运维笔记
首页
文章
笔记导航
笔记系列
▾
🐧
Linux 运维基础笔记
7 页
🔧
运维进阶 · 常用服务搭建
8 页
🌐
Web 应用服务 · Nginx
8 页
🚀
Nginx 水平扩展与优化
8 页
🛡️
Linux 进阶 · iptables 防火墙
4 页
🐚
Linux 进阶 · Shell 编程
10 页
🐬
数据库 · MySQL
12 页
📊
监控 · Zabbix + Grafana
3 页
🐳
云原生 · Docker
9 页
🌿
云原生 · Git
5 页
归档
标签
搜索
关于
首页
/
全部文章
/ 笔记导航
Linux 进阶 · Shell 编程
Shell 学习笔记:基础认知、变量与字符串、扩展变量、父子 Shell,以及数学计算、条件测试和实战脚本编写。
10 个分页
103 个小节
📖 按学习顺序排列
1
Shell 基础认知与变量详解
Shell 是什么、脚本头上的 Shebang 怎么写、脚本有哪几种跑法,以及变量、作用域、加载顺序和几个特殊变量。
一、基础认知
1. Linux 底层简单介绍(shell 译为壳)
2. Shebang
3. 浅谈运维和编程
二、一阶段:bash 特性和变量
1. bash 特性
2. Shell 变量详解
3. 通过 set 寻找父子 shell 的变量加载
4. Shell 变量加载顺序
5. Shell 特殊参数变量
6. Shell 特殊状态变量
2
Shell 内置命令与字符串处理
echo、printf、eval、exec 这几个内置命令怎么用,变量字串的长度统计和截取替换,以及一个批量去掉文件名后缀的实战。
一、几个简单的内置 shell 命令
1. echo
2. printf
3. eval
4. exec
二、变量字串
1. 语法
2. 统计字符串长度
3. 重定向到 /dev/null
三、详解字符串
1. 正则会区分大小写
2. 删除匹配的子串
3. 替换字符串
四、删除文件名案例
1. 准备数据
2. 单个文件改名的思路
3. 批量替换文件名(日志切割经常使用)
3
扩展变量与父子 Shell
${var:-word} 这一族扩展变量怎么用、怎么防住脚本乱删文件,以及父 shell、子 shell、BASH_SUBSHELL 和内外置命令。
一、扩展变量
1. 四种写法
2. 具体说明
3. 具体应用:删过期备份
二、父子 Shell
1. 子 Shell
2. 父 Shell
3. 子 Shell 具体概念
4. 多个子 Shell
5. 创建进程列表(创建子 shell 执行命令)
6. 子 shell 嵌套
三、shell 内置和外置命令(了解即可)
判断外置内置
4
Shell 数学计算与脚本练习
从一行命令到脚本,双小括号、let、expr、bc、awk 各自怎么算数,以及计算器脚本和 Nginx 存活检测脚本的完整写法。
一、脚本编写前的回顾
1. 从一行命令到脚本
2. 脚本中的变量加载位置
3. shell 变量替换引用
二、数学运算与双小括号
1. 双小括号
2. 小数怎么办
三、数值计算脚本
1. ++ 和 --
2. 对用户输入判断的脚本开发演示
3. Let 命令计算
四、Nginx 存活检测脚本
1. 思路
2. 循环和 wget
3. 完整脚本
五、expr 命令
1. 四个常用功能
2. 判断文件名后缀
3. 找出长度小于 5 的词
六、数学计算收尾
1. bc 计算器
2. 计算 1-1000 总和
3. awk 和中括号
5
Shell 条件测试
read 收输入、test 和中括号的四种条件测试写法、按文件和字符串分别怎么判,以及 [] 和 [[]] 到底差在哪。
一、条件测试语法
1. read 接收输入
2. 四种条件测试写法
3. test 命令
二、test 的用法
1. && 和 ||
2. 判断文件
3. 判断字符串
三、条件测试中括号详解
1. [ ] 的用法
2. 双中括号的使用(与 [] 几乎一样)
6
系统脚本里的条件测试与逻辑脚本
拿 /etc/init.d 里 ssh、network、mysql 的脚本学字符串和数值判断,再用 &&、||、-a、-o 写出判断输入和 lamp/lnmp 安装脚本。
一、读系统脚本,学条件测试的写法
1. 如何阅读优秀的脚本
2. 字符串值判断逻辑
3. 数值比较符号
4. 逻辑运算符号
二、逻辑运算脚本
1. 判断用户输入
2. lamp / lnmp 安装脚本
7
Shell 应用之 if 判断与服务存活检测
从 if 的三种写法和内存告警脚本讲起,用端口、进程、nmap、telnet、php、python 六种办法判断 mysql 到底还活着没有。
一、if 的写法
二、内存检测脚本
三、怎么判断服务还活着
四、用 php 和 python 连一下 mysql
五、把几种判断凑成一个脚本
8
Shell 应用之函数封装与 rsync 启停脚本
把 rsync 的启停手动跑通之后,封装成函数、拆到两个文件里,最后套上系统自带的高亮日志函数,写一个像样的 /etc/init.d 脚本。
一、先手动把 rsync 跑起来
二、函数怎么写
三、检测网站存活
四、写一个专业点的 rsync 脚本
9
Shell 运维脚本实战之统计清理与备份
目录文件统计、nginx 日志 TOP10、日志自动清理、磁盘告警、服务自愈、文件备份,六个能直接拿来用的运维脚本。
一、统计目录文件数量并排序前 10
二、统计 nginx 日志里出现最多的 10 个 IP
三、日志自动清理脚本
四、磁盘监控告警
五、服务存活检测和自动重启
六、文件备份脚本
10
Shell 运维脚本实战之巡检与菜单集成
系统巡检、端口存活检测、nginx 日志综合分析,最后用 case 把前面九个脚本攒成一个菜单,再挂到 crontab 上定时跑。
一、系统巡检脚本
二、端口存活检测
三、综合日志分析
四、把九个脚本攒成一个菜单
五、crontab 定时任务