Linux 运维必学(八)|零基础吃透 Bash Shell
新手可循序渐进学习,老手可直接收藏,日常查命令、编写脚本都适用。
一、初识 Bash Shell
Shell 是用户与系统内核的交互桥梁,Bash 是 Linux 系统默认的主流命令解释器。查看系统支持的所有 Shell/etc/shells1. Bash 核心优势
- 自动记录历史命令,记录文件:~/.bash_history
2. 常用快捷键与基础操作
二、Shell 变量(脚本核心重点)
变量用于存储数据,分为自定义变量、环境变量,是编写 Shell 脚本的基础。1. 变量基础用法
变量赋值八大规则
(2)变量名仅可使用字母、数字、下划线,不能以数字开头单引号:内容视为纯文本,特殊字符不生效
示例
示例
PATH="$PATH":/home/bin或PATH=${PATH}:/home/bin2. 变量查看与特殊变量
set 查看全部变量,包含环境变量、自定义变量、内置变量(2)$? 查看上一条命令执行状态,成功返回 0,失败返回非 0 数字3. 系统语系配置(解决中文乱码)
核心控制变量:LANG、LC_ALL系统配置文件:/etc/locale.conflocalectl set-locale en_US.utf84. 变量作用范围
通过 export 导出的环境变量,可被子 Shell 读取。未导出的自定义变量,仅在当前会话生效。5. 交互式录入变量
6. 定义变量类型
Bash 变量默认格式为字符串,使用 declare 手动指定类型7. 变量内容处理
内容删除
内容替换
${变量 / 旧串 / 新串} 替换第一个匹配内容${变量 // 旧串 / 新串} 全局替换所有匹配内容${var:-def} 空就用默认(不改变原变量)${var:=def} 空就赋值def(会改变原变量)
三、命令别名 & 历史命令(效率工具)
1. 命令别名 alias
2. 历史命令 history
四、通配符与特殊符号(命令行基础语法)
避坑提醒:不要使用特殊符号命名文件,容易导致命令执行异常。1. 通配符(批量匹配文件)
2. 常用特殊符号(“文件名”不要使用到这些字符)
# 注解符号:这个最常被使用在 script 当中,视为说明,在后的数据均不执行
\ 跳脱符号:将“特殊字符或万用字符”还原成一般字符; 连续指令下达分隔符号:连续性命令的界定 (注意!与管线命令并不相同)$ 取用变量前置字符:亦即是变量之前需要加的变量取代值& 工作控制 (job control):将指令变成背景下工作>, >> 数据流重导向:输出导向,分别是“取代”与“累加”' ' 单引号,不具有变量置换的功能 ($ 变为纯文本)" " 具有变量置换的功能! ($ 可保留相关功能)` 两个“ ` ”中间为可以先执行的指令,亦可使用 $( )
五、多命令执行判断符
释义:命令 1 执行成功则运行命令 2,命令 1 执行失败则运行命令 3。
六、Bash 运行环境
1. 命令执行优先级(从高到低)
2. 登录提示文件
3. 环境配置文件
login shell(账号密码登录终端)
~/.bash_profile → ~/.bash_login → ~/.profilenon-login shell(直接打开终端)
4. 终端快捷键与设置
补充说明:Ctrl+C 彻底杀死进程,Ctrl+Z 仅暂停进程。
七、数据流重定向
1. 基础用法
>
/dev/null功能:黑洞设备,丢弃所有写入的数据2. 进阶用法
3. 符号 - 特殊用途
在 tar、管道类命令中,- 可替代标准输入、标准输出,实现数据流传递。
八、管道命令 pipe
管道符 |作用:将前一条命令的输出内容,作为后一条命令的输入内容配套常用命令
1. 内容截取
2. 排序与统计
uniq 去除连续重复行全局去重写法:sort 文件 | uniq3. 双向重定向
4. 字符转换
示例:tr 'a-z' 'A-Z' 实现大小写转换5. 文件分割
split -b 大小 原文件 前缀 按照文件大小分割split -l 行数 原文件 前缀 按照行数分割6. 参数替换 xargs
作用:将管道输出内容转为命令参数,适配不支持管道的指令find . -name "*.log" | xargs -I {} mv {} /tmp
九、全文总结
- 入门优先掌握:Tab 补全、历史命令、别名、基础快捷键,满足日常操作
- 核心重点:吃透变量规则、引号用法、变量处理语法,是脚本编写根基
- 语法规范:牢记通配符与特殊符号,规避文件命名踩坑问题
- 进阶能力:重定向、多命令符、管道,实现日志处理与批量运维(5)环境配置:区分两类 Shell 登录模式,优先修改用户配置,不改动系统文件
- 高阶工具:xargs、join、split,适配复杂批量处理场景
本文知识点精炼全面,建议收藏方便随时查阅。使用过程中有问题,欢迎在评论区留言交流。后续会持续更新 Linux 运维、Shell 脚本实战内容,记得关注!