
作為 Linux 新手,啟動終端的體驗可能既令人興奮又令人不知所措。終端提供了豐富的命令和功能,但閃爍的遊標可能會讓初學者望而生畏。為了幫助使用者輕鬆過渡,我們整理了一系列 Bash 實用技巧和竅門,幫助使用者更有效率地使用終端。
理解 Bash 與終端
有必要明確 Bash 和終端之間的區別。終端機是您透過其發出命令與作業系統互動的介面或應用程式。而 Bash 是一個 Shell(UNIX 系統的命令語言解釋器),它負責處理並執行您輸入的命令。因此,當您使用終端機時,您實際上是在使用 Bash Shell(也可能是其他 Shell,例如 zsh 或 fish)。接下來的技巧和竅門主要著重於優化您在 Bash 環境中的效率。
1.使用常用指令的自訂別名
重複輸入冗長的指令會非常繁瑣。使用別名可以顯著簡化您的工作流程。別名可讓您為較長的命令分配一個易於記憶的快捷鍵,從而減少所需的輸入量。
例如,git status
您可以建立一個類似 的別名,而不是直接輸入gs
。別名可以是會話的臨時別名,也可以是永久別名。若要建立臨時別名,請執行:
alias gs="git status"
現在,輸入gs
將會執行git status
。對於永久別名,請使用您喜歡的文字編輯器(例如 nano)編輯 Bash 設定檔(通常位於「~/.bashrc」或「~/.bash_profile」):
sudo nano ~/.bashrc
在文件末尾添加別名定義,保存,然後重新啟動終端或運行:
sudo source ~/.bashrc
從現在開始,這些別名將適用於每個會話。例如,我使用以下命令進行更新命令:
alias update='sudo apt update && sudo apt upgrade -y'
這樣,只需輸入update
,即可執行整個命令。此外,使用函數,您可以建立接受參數的別名:
mkcd() {mkdir -p "$1" && cd "$1"}
該命令mkcd projects/new-app
將建立指定的目錄並導航到該目錄。請務必確保不要覆蓋現有命令,以免造成混淆。
2.立即搜尋您的命令記錄
滾動瀏覽終端歷史記錄可能很繁瑣。幸運的是,Bash 提供了一個快速搜尋工具,可以更輕鬆地重新查看先前的命令。

只要按下Ctrl+ R,你的提示符號就會切換到允許你輸入所需指令的部分內容。輸入過程中,Bash 會顯示歷史記錄中最新符合的指令。
您也可以透過將以下程式碼片段新增至「~/.inputrc」檔案來增強此功能(如果不存在則建立它):
"\e[A": history-search-backward"\e[B": history-search-forwardset show-all-if-ambiguous onset completion-ignore-case on
重新載入終端後,您將能夠透過鍵入命令的開頭,然後使用Up/Down箭頭鍵來搜尋命令歷史記錄。
3.使用管道和重定向的鍊式命令
Bash 允許您連結多個命令,以便將一個命令的輸出用作另一個命令的輸入。您可以使用管道運算子 ( |
) 來實現此目的。例如,如果您只想查看正在執行的任務中的 Python 進程,則可以如下組合命令:
ps aux | grep python

這裡ps aux
列出了所有活動進程,並grep
篩選顯示與 Python 關聯的進程。您也可以連接其他命令來形成高效的腳本。例如:
cat logfile.txt | grep "error" | wc -l
此命令計算日誌檔案中標記為錯誤的行數 – 三個命令協同工作。
重定向是另一個關鍵功能。您可以將命令輸出儲存到檔案中,而不是列印到終端機。例如,要儲存目錄列表,您可以使用:
ls -l > files.txt
用於>>
附加輸出而不是覆蓋。此功能對於日誌記錄和備份資料特別有用。
4.在後台運行命令
如果您啟動了一個佔用了終端機的長命令,則無需啟動新的會話。只需將該命令推送到後台並繼續使用終端即可。
按Ctrl+Z暫停正在執行的命令並返回 shell 提示字元。然後,使用:
bg
這將在後台恢復命令。若要查看作業狀態,只需輸入:
jobs
若要將後台作業重新帶回前台,請使用:
fg %1
您可以指定作業編號;否則,fg
預設為最近的任務。如果您希望命令在背景啟動,請&
在命令後面附加:
some_long_task &
這樣,命令就可以在不佔用終端機的情況下啟動。為了防止作業在終端關閉時終止,請使用:
disown -h %job
此命令在退出 shell 時向該作業發送「不掛斷」訊號。nohup
在開始時使用 可以實現類似的效果,但請注意,後台作業可能仍會輸出到終端。
5.使用 `sudo` 重新運行最後一個命令(sudo!!)
這個技巧解決了一個常見的場景:執行一個需要超級使用者權限的指令。該!!
命令會提取上一個命令,以便您能夠以提升的權限快速重新執行該命令。
例如,在嘗試執行安裝腳本(如./SCRIPT-NAME.sh
並收到權限錯誤)後,只需輸入:
sudo! !
輸入您的密碼,然後您就可以重新開始操作了——這個小命令可以為您節省大量時間,並且隨著您習慣使用它,它就會成為您的第二天性。

6.一次執行多個指令
為了加快任務執行速度,Bash 支援連續執行多個指令。若要依序執行命令(無論結果為何),請使用分號 ( ;
):
mkdir newdir; cd newdir; touch file.txt
如果您希望在第一個指令成功後才執行第二個指令,請使用雙與符號 ( &&
):
sudo apt update && sudo apt upgrade
相反,如果您希望僅在前一個命令失敗時運行命令,請使用雙垂直線 ( ||
):
backup_database || echo "Backup failed!"
Bash 也允許後台處理;只需附加一個 & 符號即可在後台運行命令,同時釋放終端:
python script.py & firefox &
這將在啟動 Firefox 的同時執行你的 Python 腳本。透過練習,串聯命令和管理後台任務將使你與終端的互動體驗更加流暢。
7.使用 Apropos 發現指令
該apropos
命令是根據手動輸入描述查找命令的絕佳工具。如果您使用過手冊頁,您會認出頂部的元資料。透過執行命令apropos
並加上關鍵字,您可以查看所有相關的命令列工具。

例如,輸入apropos icmp
即可檢索與該主題相關的命令清單。此功能對於發現先前不熟悉的實用程式(例如用於的實用程式)特別有用selinux
;只需執行apropos selinux
即可查看可用於管理 SELinux 策略的命令。
8.取代最後一條指令中的元素
修正上一條指令錯誤的一個有效策略是使用替換。如果您不小心輸入了錯誤的命令,可以使用插入^
符號 ( ) 快速修改。
例如,如果您想要 pingmaketecheasier.com
但將其拼寫錯誤為maktecheaser.com
,您可以執行:
^maktecheaser.com^maketecheasier.com
此命令可以有效率地使用正確的位址重新執行您的 ping 請求。這種方法尤其適用於較長的命令或複雜的參數。您可以考慮用它來修正輸出重定向的錯誤,例如用>
替換>>
。
9.傳遞前一個指令的參數
該!$
語法允許您重複使用任何先前命令的最後一個參數。此外,變體使您可以輕鬆地合併特定參數。
例如,如果您剛剛使用編輯了一個檔案nano samplescript.sh
並希望授予它可執行權限,只需執行:
chmod 755! $
您也可以使用./!:2
來引用上一個指令的第二個參數。以下是替換選項的簡要概述:
!^ - first argument!* - all arguments!:2-$ - second through last arguments!:2-4 - second through fourth arguments
由於 Bash 保存了大約 100 個參數的歷史記錄,此功能可顯著提高您在終端使用時的效率。
希望這些 Bash 技巧和竅門能夠對您有所幫助,並幫助您更有效地在終端機中執行命令。祝您編寫 Bash 腳本愉快!
發佈留言