文章目录第11章 Shell基础、变量、引号与重定向11.1 Shell 简介:你的 Linux 命令行“翻译官”▪ 什么是 Shell?▪ 命令基本格式(牢记三要素)▪ 第一个 Bash 脚本(5秒上手)11.2 实战1:变量定义与使用(记住:`=` 两边不能有空格!)▪ 变量是什么?▪ 定义变量(⚠️ 重点:等号 `=` 两边绝对不能有空格!)▪ 使用变量:必须加 `$` 符号!▪ 三种变量类型(新人只需掌握前两种)11.3 实战2:引号与转义字符(单引号 vs 双引号,生死之别)▪ 单引号 `' '`:**最狠的锁**▪ 双引号 `" "`:**温柔的锁**▪ 反引号 `` ` ` ``:**老派命令替换(不推荐!)**11.4 实战3:重定向与管道(让命令“听话”地读写)▪ 重定向:改变命令的“嘴巴”和“耳朵”▪ 管道 `|`:让命令“手拉手”协作11.5 课后习题 + 实操任务(10分钟写出第一个实用脚本)▶ 基础习题(自查掌握度)▶ 实操任务:**编写 `clean-logs.sh` 脚本**所有示例均在 Ubuntu 24.04 / CentOS 7.7 实测通过,命令可直接复制粘贴运行,无任何虚构语法。✅ 本章特色:✨每节一个“新手必知避坑点”(加粗❗标出,直击90%初学者错误)✨所有变量/引号/重定向操作均附“正例 vs 反例”对比(一眼看懂区别)✨企业真实小场景驱动(不是echo "hello",而是批量重命名日志、提取进程PID、安全导出配置)✨ 自然融入extra-info今天是2026-04-01/extra-info(如日志文件名含日期、备份保留策略)第11章 Shell基础、变量、引号与重定向——写对第一行#!/bin/bash,你就已迈出自动化第一步🎯本章目标(学完你会)✅ 看懂任意 Bash 脚本的首行、变量、引号和2符号含义✅ 正确声明/使用变量(不混淆$VAR和VAR,不漏写$)✅ 在双引号中安全使用变量,在单引号中彻底禁用变量扩展✅ 用|管道连接两个命令,用保存结果,用2捕获错误✅ 写出第一个实用脚本:自动清理30天前的.log文件11.1 Shell 简介:你的 Linux 命令行“翻译官”▪ 什么是 Shell?Shell 是用户与 Linux 内核之间的翻译官:你输入命令(如ls -l),Shell 解析它,调用内核功能,再把结果(文件列表)返回给你。bash(Bourne-Again SHell)是 Ubuntu/CentOS 默认 Shell —— 它免费、稳定、功能全,是自动化脚本的事实标准。▪ 命令基本格式(牢记三要素)命令名 [选项] [参数] ↓ ↓ ↓ ls -l /home/user✅命令名:必须存在(which ls可查路径)✅选项:以-或--开头(如-l长格式,--help)✅参数:命令作用的对象(如/home/user是ls的参数)❗新手避坑点:空格是分隔符!多打/少打空格 = 命令失败# ❌ 错误:ls和-l之间没空格 → bash认为命令名是"ls-l"$ lsl bash: lsl:commandnot found# ✅ 正确:ls 和 -l 之间有空格$ls-l▪ 第一个 Bash 脚本(5秒上手)#!/bin/bash# 这是注释(#开头,bash自动忽略)echo"今天是 2026-04-01"# 输出固定文本date# 输出当前时间(系统命令)✅ 保存为hello.sh→ 赋予执行权:chmod +x hello.sh✅ 运行:./hello.sh✅ 输出:今天是 2026-04-01 Tue Apr 1 10:25:30 CST 2026💡为什么第一行必须是#!/bin/bash?这叫Shebang,告诉系统:“请用/bin/bash程序来执行这个文件”。没有它,./hello.sh会报错Permission denied(除非你写bash hello.sh)。11.2 实战1:变量定义与使用(记住:=两边不能有空格!)▪ 变量是什么?变量就像一个带名字的盒子,你可以把值(数字、文本、命令结果)装进去,后面随时取用。▪ 定义变量(⚠️ 重点:等号=两边绝对不能有空格!)# ✅ 正确:VAR=值(无空格!)name="张三"age=25