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 的基礎知識,實際使用中還有更多高級特性和技巧等待探索。