Bash (Bourne Again SHell)
Unix/Linux 系统中最常用的命令行解释器之一,它是原始 Bourne shell (sh) 的增强版本。以下是 Bash 的详细解释:
1. Bash 基础
1.1 什么是 Bash
- 一个命令行解释器,用于执行用户输入的命令
- 支持脚本编程,可以编写复杂的自动化任务
- 提供命令历史、命令补全、别名等便利功能
1.2 基本命令结构
command [options] [arguments]
命令[选项][参数]
例如:
ls -l /home
2. Bash 特性
2.1 变量
- 定义变量:
name=value
(注意等号两边不能有空格) - 使用变量:
$name
或${name}
- 环境变量:
export VAR=value
2.2 特殊变量
$0
- 脚本名称$1-$9
- 脚本参数$#
- 参数个数$*
- 所有参数$?
- 上一条命令的退出状态$$
- 当前 shell 的进程 ID
2.3 引号
- 单引号
'
:保留所有字符的字面值 - 双引号
"
:允许变量和命令替换 - 反引号
`
或$()
:命令替换
2.4 输入输出重定向
>
- 输出重定向(覆盖)>>
- 输出重定向(追加)<
- 输入重定向2>
- 错误输出重定向&>
- 标准输出和错误输出都重定向
3. Bash 脚本编程
3.1 脚本基础
#!/bin/bash
# 这是一个注释
echo "Hello, World!"
3.2 条件判断
if [ condition ]; thencommands
elif [ condition ]; thencommands
elsecommands
fi
3.3 循环结构
for 循环:
for var in list; docommands
done
while 循环:
while [ condition ]; docommands
done
3.4 函数
function_name() {commands[return value]
}
4. 高级特性
4.1 数组
array=(value1 value2 value3)
echo ${array[0]} # 访问第一个元素
echo ${array[@]} # 访问所有元素
4.2 正则表达式
=~
操作符用于正则匹配
if [[ "string" =~ pattern ]]; thenecho "匹配成功"
fi
4.3 进程控制
&
- 后台运行;
- 顺序执行&&
- 前一个成功才执行下一个||
- 前一个失败才执行下一个
4.4 调试
set -x
- 开启调试模式set +x
- 关闭调试模式bash -x script.sh
- 调试运行脚本
5. 实用技巧
5.1 命令历史
history
- 查看命令历史!n
- 执行历史中第 n 条命令!!
- 执行上一条命令!string
- 执行最近以 string 开头的命令
5.2 别名
alias ll='ls -l'
unalias ll
5.3 通配符
*
- 匹配任意字符?
- 匹配单个字符[]
- 匹配括号内的任一字符
5.4 管道
|
- 将一个命令的输出作为另一个命令的输入
ls -l | grep "txt"
Bash 是一个功能强大的工具,掌握它可以大大提高在 Unix/Linux 系统下的工作效率。以上只是 Bash 的基础知识,实际使用中还有更多高级特性和技巧等待探索。