Linux Shell 脚本编程一课一得总结
·
🐧 Linux Shell 脚本编程一课一得总结(从入门到实战)
📌 前言
在本阶段的学习中,我系统学习了 Linux Shell 脚本编程的基础知识,从最开始的脚本声明,到变量、条件判断、循环结构,再到最后的综合实战——MAC 地址采集脚本的编写,让我对 Shell 脚本有了一个从“不会写”到“能独立完成简单脚本”的提升。
本文将以“一课一得”的形式,总结我本次学习的核心内容与收获。
🧩 一、Shell 脚本基础(脚本声明)
📍1. 什么是脚本声明
在编写 Shell 脚本时,我首先学会的就是脚本声明:
#!/bin/bash
👉 作用:
指定脚本使用的解释器(这里是 bash)
如果没有这句话,脚本可能无法正常执行。
📍2. Shell 脚本应用思路
我总结出 Shell 编程的基本思路:
- 明确需求(要做什么)
- 拆分步骤(一步一步执行)
- 用命令实现
- 写入脚本
- 测试优化
📍3. 定时任务 crontab
在学习中,我了解到 Shell 可以结合 定时任务 自动执行。
crontab -e
例如:
*/5 * * * * /root/test.sh
👉 表示:每5分钟执行一次脚本
💡 收获:Shell 可以实现自动化运维,非常实用!
📍4. 练习:welcome.sh
#!/bin/bash
echo "欢迎来到Linux世界!"
echo "当前用户是:$(whoami)"
echo "当前时间是:$(date)"
👉 让我掌握了最基础的脚本结构
🔧 二、Shell 变量
📍1. 变量基础
name="zhangsan"
echo $name
👉 注意:等号两边不能有空格!
📍2. read 命令(交互输入)
read -p "请输入你的名字:" name
echo "你好,$name"
👉 可以实现用户交互
📍3. 环境变量 export
export age=18
👉 作用:让变量在子进程中也能使用
📍4. expr 运算
expr 1 + 2
👉 注意:符号两边必须有空格
📍5. 位置变量
echo $1
echo $2
👉 用于接收参数
例如:
bash test.sh hello world
📍6. 预定义变量
常见的有:
$0:脚本名称$#:参数个数$*:所有参数$?:上一个命令执行结果
👉 在写脚本时非常重要!
⚖️ 三、条件判断语句
📍1. test 命令
✔ 文件判断
test -f file.txt
✔ 数值比较
test 1 -eq 1
✔ 字符串比较
test "$a" = "$b"
📍2. if 语句
✔ 单分支
if [ $a -gt 10 ]
then
echo "大于10"
fi
✔ 双分支
if [ $a -gt 10 ]
then
echo "大于10"
else
echo "小于等于10"
fi
✔ 多分支
if [ $a -gt 10 ]
then
echo "大"
elif [ $a -eq 10 ]
then
echo "等于"
else
echo "小"
fi
📍3. 实战:主机监控脚本
#!/bin/bash
ping -c 2 8.8.8.8 > /dev/null
if [ $? -eq 0 ]
then
echo "网络正常"
else
echo "网络异常"
fi
👉 收获:可以用 Shell 做简单运维监控
🔁 四、循环与分支语句
📍1. for 循环
for i in 1 2 3
do
echo $i
done
📍2. while 循环
i=1
while [ $i -le 3 ]
do
echo $i
i=$(expr $i + 1)
done
📍3. case 语句
case $1 in
start)
echo "启动"
;;
stop)
echo "停止"
;;
*)
echo "未知参数"
;;
esac
👉 常用于菜单或参数判断
🚀 五、综合实战:MAC 地址采集脚本
这是本次学习最重要的实践内容!
📍脚本示例
#!/bin/bash
ip="192.168.1"
i=1
while [ $i -le 254 ]
do
ping -c 1 $ip.$i > /dev/null
if [ $? -eq 0 ]
then
arp -n $ip.$i
fi
i=$(expr $i + 1)
done
📍实现思路
- 遍历整个网段
- 使用 ping 探测主机是否存活
- 使用 arp 获取 MAC 地址
- 循环执行
📍我的收获
✔ 学会了 while 循环的实际应用
✔ 理解了网络扫描的基本原理
✔ 能写简单运维脚本
🧠 总结与反思
通过本次 Shell 脚本学习,我有以下几点收获:
✅ 技术收获
- 掌握 Shell 基本语法
- 能写简单自动化脚本
- 理解 Linux 运维基础思路
✅ 能力提升
- 逻辑思维能力提升
- 问题拆解能力增强
- 实践能力提高
❗不足之处
- 对复杂脚本还不熟练
- 调试能力有待加强
- 命令记忆还不够牢固
🌟 结语
Shell 脚本虽然语法简单,但功能非常强大,是 Linux 运维和网络工程师必须掌握的一项技能。
通过这次学习,我已经入门 Shell 编程,接下来我会继续深入学习,争取能够编写更复杂、更实用的自动化脚本。
更多推荐

所有评论(0)