命令行解釋器(Command Line Interpreter)是一個程序,它的主要作用是接收用戶輸入的命令,并執行相應的操作。它充當了用戶與操作系統內核之間的橋梁。
一、什么是 Shell?
Shell
是一個通用術語,指的是 命令行解釋器。它是用戶與操作系統交互的一種方式(除了圖形界面外)。Shell 可以讀取用戶的命令,解析它們,并調用操作系統提供的功能來完成任務。
常見的 Shell 類型包括:
sh
:Bourne Shell,最早的 Unix Shell。bash
:Bourne-Again Shell,Linux 系統中最常用的 Shell,是 sh 的增強版。zsh
:Z Shell,功能更豐富的現代 Shell。fish
:Friendly Interactive Shell,強調用戶體驗和交互性。PowerShell
:Windows 和跨平臺環境中使用的 Shell(語法不同,面向對象)。
二、bash 是什么?
bash
是 Bourne-Again Shell 的縮寫,是 GNU 項目開發的一個自由軟件,廣泛用于 Linux 和 macOS(早期版本默認使用 bash)。
特點:
- 兼容傳統的
sh
shell。 - 支持命令歷史、自動補全、別名等功能。
- 腳本兼容性強,大多數 Linux 發行版默認使用 bash。
- 有豐富的腳本編程功能。
示例命令:
echo "Hello, world!"
ls -l
三、zsh 是什么?
zsh
是 Z Shell 的縮寫,是一種功能更強大、可定制性更高的 Shell。近年來越來越受歡迎,macOS 從 Catalina 開始默認使用 zsh。
特點:
- 支持插件系統(如 oh-my-zsh),極大增強功能。
- 更強大的自動補全、拼寫糾正、主題支持。
- 支持很多 bash 的特性,同時擴展了很多高級功能。
- 用戶體驗更好,適合終端重度用戶。
示例命令:
echo "Hello from ZSH"
四、shell、bash、zsh 的關系圖解
名稱 | 含義 | 是否是 Shell | 備注 |
---|---|---|---|
Shell | 命令行解釋器的統稱 | ? 是 | 所有命令行解釋器都叫 shell |
bash | Bourne-Again Shell | ? 是 | 默認的 Linux shell |
zsh | Z Shell | ? 是 | 功能豐富,現代流行的 shell |
sh | 最早的 Unix shell | ? 是 | 較老的標準 shell |
五、如何查看當前使用的 Shell?
在終端中運行以下命令可以查看當前默認的 shell:
echo $SHELL
也可以查看你當前正在使用的 shell:
ps -p $$ -o comm=
六、總結
對比項 | bash | zsh | 說明 |
---|---|---|---|
默認使用系統 | Linux、舊版 macOS | 新版 macOS(Catalina+) | 不同系統可能默認不同 |
用戶體驗 | 中等 | 高(插件支持好) | zsh 更適合喜歡個性化設置的用戶 |
插件生態 | 一般 | 強(如 oh-my-zsh) | zsh 社區活躍,擴展性強 |
腳本兼容性 | 很強 | 較強 | bash 腳本大多可在 zsh 中運行 |