Shell 脚本学习小纲 ~

前言

        想说能点进来的朋友肯定是想学习和练习shell脚本。但学习一个东西,最好是系统性从基础去学,否则会导致地基打不稳,后边遇到问题也会花费大量时间找补。

        接下来我根据个人经验以及统合网上的现成的资源在这里为大家梳理一下shell脚本学习的路径与新手容易犯的错误。不管是想做自动化任务,或者准备面试,希望都能对你们有用。

一、Shell 脚本学习路径

1. 基础知识
  • Shell 解释器:了解 #!/bin/bash(Shebang)的作用,不同 Shell 的区别(Bash/Zsh)

  • 脚本结构:如何创建可执行脚本(chmod +x script.sh

  • 变量:定义变量、环境变量、特殊变量($0$1$?$$

  • 输入输出echoread, 重定向(>>>2>

  • 条件判断if-elif-elsetest 或 [ ]case 语句

  • 循环forwhileuntil

  • 函数:定义和调用函数,参数传递

  • 调试set -xset -e 的使用

2. 进阶内容
  • 字符串处理${var#pattern}grepsedawk

  • 数组操作:定义数组、遍历、切片

  • 文件操作findxargs, 文件权限管理

  • 信号处理trap 命令捕获信号

  • 正则表达式:基础正则和扩展正则

  • 脚本优化:避免过度使用管道,使用 $( ) 替代反引号

3. 高级技巧
  • 并行处理& 后台运行,wait 等待任务

  • 日志记录logger 命令和系统日志

  • 交互式脚本select 菜单,dialog 工具

  • 安全实践:避免使用 eval,处理用户输入

二、练习方法

切忌眼高手底~

1、从简单的开始练习编写

# 练1:  输出当前日期和用户
echo "Today is $(date), user is $USER"

#  练2:计算 1~100 的和
sum=0
for i in {1..100}; do
    sum=$((sum + i))
done
echo "Sum: $sum"

2、刷题平台

3、实际项目(备份脚本、日志分析...)

文件备份脚本:自动压缩指定目录并备份到 /backup 下

日志分析工具:统计 Apache/Nginx 日志中的高频 IP

系统监控脚本:检测磁盘使用率超过 80% 时发送邮件告警

自动化部署:通过脚本批量安装软件包或更新配置

三、推荐学习资源

1. 书籍
  • 《Shell 脚本学习指南》(经典)

  • 《快乐的 Linux 命令行》(免费在线阅读

2. 在线教程
3. 社区与问答
4. 挑战平台

四、常见错误与调试

  1. 权限问题:脚本没有执行权限 → chmod +x script.sh

  2. 路径错误:使用相对路径导致找不到文件 → 用绝对路径或 cd 切换目录

  3. 变量赋值错误:等号两侧不能有空格 → name="value"(非 name = "value"

  4. 条件判断空格if [ $a -eq 1 ] 方括号内必须保留空格

  5. 未处理特殊字符:文件名含空格时要用引号包裹 → "$file"

五、课后作业 (大佬请跳过)

如果能看懂,请在评论区留言,这两个脚本是干什么用的~ 

(1)
for file in *.txt; do
    mv "$file" "${file%.txt}.md"
done

------------------------------------------------------------------------------------

(2)
if ! systemctl is-active --quiet nginx; then
    systemctl restart nginx
    echo "Nginx restarted at $(date)" >> /var/log/nginx_monitor.log
fi

-------------------------------------------------------------------------------------

通过持续练习才是掌握一门技术的关键。

雄关漫道真如铁,
而今迈步从头越。

  --忆秦娥·娄山关

                                                                                祝大家越来越好~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值