bash的簡要說明
Bash Shell 完整介紹
什麼是 Bash?
Bash(Bourne Again Shell)是一個命令處理器,運行在文字窗口中,並能執行使用者輸入的命令。它也能從檔案中讀取命令,這些檔案被稱為 Shell 腳本。Bash 是 Linux 系統和 macOS 中最常見的 Shell,它是 GNU 項目的一部分。
Bash 的歷史
- 1971年:最初的 Thompson shell
- 1977年:Bourne shell (sh) 發布
- 1989年:Bash 首次發布
- 現在:大多數 Linux 發行版的預設 Shell
Bash 的主要功能
1. 命令執行
# 基本命令執行
ls -l
pwd
cd /home
2. 變數處理
# 設置變數
name="John"
echo $name
# 環境變數
echo $PATH
export MY_VAR="value"
3. 腳本編程
#!/bin/bash
# 簡單的腳本示例
if [ $1 -gt 100 ]
then
echo "數字大於 100"
else
echo "數字小於或等於 100"
fi
4. 管道和重定向
# 管道示例
ls | grep ".txt"
# 重定向示例
echo "Hello" > file.txt
cat < input.txt > output.txt
Bash 基本概念
1. 命令提示符
$
: 普通用戶#
: root 用戶~
: 當前用戶的家目錄
2. 特殊字符
|
: 管道>
: 輸出重定向<
: 輸入重定向&
: 背景執行;
: 命令分隔符
3. 檔案操作命令
# 檔案列表
ls -la
# 建立目錄
mkdir directory_name
# 複製檔案
cp source destination
# 移動/重命名檔案
mv old_name new_name
常用 Bash 命令
檔案系統命令
pwd
: 顯示當前目錄cd
: 切換目錄ls
: 列出檔案cp
: 複製mv
: 移動rm
: 刪除mkdir
: 建立目錄rmdir
: 刪除目錄
文字處理命令
cat
: 顯示檔案內容grep
: 搜尋文字sed
: 串流編輯器awk
: 文字處理工具wc
: 字數統計
系統資訊命令
top
: 系統活動監視ps
: 程序狀態df
: 磁碟使用情況free
: 記憶體使用情況uname
: 系統資訊
Bash 腳本編程
1. 基本語法
#!/bin/bash
# 變數
name="World"
echo "Hello, $name!"
# 條件判斷
if [ "$name" == "World" ]; then
echo "Hello World"
fi
# 迴圈
for i in {1..5}; do
echo $i
done
2. 函數
function sayHello() {
echo "Hello, $1!"
}
sayHello "John"
3. 數組
# 宣告數組
fruits=("apple" "banana" "orange")
# 訪問數組元素
echo ${fruits[0]}
# 遍歷數組
for fruit in "${fruits[@]}"; do
echo $fruit
done
最佳實踐
1. 腳本安全性
# 設置嚴格模式
set -euo pipefail
# 使用引號包裹變數
file_name="my file.txt"
cat "$file_name"
2. 命名約定
- 變數使用小寫
- 常量使用大寫
- 函數使用小駝峰命名
3. 註釋規範
# 單行註釋
: '
這是多行
註釋的方式
'
調試技巧
1. 調試模式
# 啟用調試
set -x
# 執行命令
some_command
# 關閉調試
set +x
2. 錯誤處理
# 錯誤處理函數
function error_handler() {
echo "Error on line $1"
}
trap 'error_handler $LINENO' ERR
常見問題解決
- 權限問題
# 修改檔案權限 chmod +x script.sh
修改檔案擁有者
chown user:group file
2. 路徑問題
```bash
# 使用絕對路徑
script_dir=$(dirname "$(readlink -f "$0")")
- 變數作用域
# 全域變數 export GLOBAL_VAR="value"
區域變數
local local_var="value"