超越 Bash: 9 個不太知名的 Linux Shell 及其功能
Shell 通過解釋命令為 Linux 和類 Unix 系統提供了一個介面,充當用戶與操作系統的核心工作之間的中介。
毫無疑問,Bash Shell 是最受歡迎的 Shell 之一,但有些用戶喜歡其他 Shell,比如在 macOS 上的默認 Shell——ZSH。但是除了這些流行的 Shell 之外,還存在許多 Shell,具有不同的功能和用途。
在本文中,我們將介紹一些被積極維護並提供不同用戶體驗的不太常見的 Shell。
1、Fish Shell
談到除了 Bash、Zsh 之外的 Shell,第一個想到的就是 Fish Shell。
Fish 是一個智能的、用戶友好的命令行 Shell,主要適用於類 Unix 操作系統。
Fish Shell 的特點:
- 根據歷史記錄提供命令自動建議和補全。
- 支持 24 位真彩。
- 支持語法高亮,所有特性都可以開箱即用。
安裝 Fish:
Fish 可在幾乎所有 Linux 發行版的官方倉庫中獲得。在 Ubuntu 中,你可以通過以下命令來安裝:
sudo apt install fish
Ubuntu 倉庫中的版本有點舊。如果你想安裝最新版本,可以使用該團隊提供的官方 PPA。
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt install fish
2、Nushell
Nushell(Nu)是一種新型的 Shell,可以在 Linux、macOS、Windows、BSD 等系統上使用。它的哲學和靈感來自於類似於 PowerShell、函數式編程語言和現代 CLI 工具等項目。
Nushell 的特點:
- 一切皆數據:Nu 管道使用結構化數據,因此你每次都可以使用同樣的方式安全地選擇、過濾和排序。
- 強大的插件:可以使用強大的插件系統輕鬆擴展 Nu。
- 易讀的錯誤消息:Nu 操作的是類型化的數據,因此它能夠檢測其他 Shell 無法檢測到的錯誤。當出現問題時,Nu 會準確指出問題所在和原因。
- 乾淨的 IDE 支持。
安裝 Nushell:
如果你使用的是 Ubuntu,是無法找到一個 Apt 存儲庫來安裝 Nushell 的。但是,根據其在 GitHub 上的說明,你可以通過安裝所需的依賴項來構建它。
幸運的是,還有一種方法可以使用 Homebrew 在任何發行版上安裝它。你可以參考我們的教程 在 Linux 上安裝並使用 Homebrew 軟體包管理器,成功在 Linux 上安裝後,你需要輸入以下命令來安裝 Nushell:
brew install nushell
請訪問其官方網站以查看更多安裝方式。
3、Dune
該項目的創建者將 Dune 描述為海灘上的一個 「貝殼」。Dune 是一個快速、實用且美觀的 Shell,提供了一些特殊的元編程功能,比如引用。
Dune Shell 的特點:
- 在進入交互模式之前,Dune 執行存儲在主目錄中的「預載」啟動文件。
- Dune 的 REPL 是完全可定製的。
- 可以通過將變數分配給程序名稱來定義別名。
- 使用宏來編寫修改 Shell 環境的函數,就像命令或程序一樣。
- Dune 提供了豐富的標準庫,並提供漂亮的界面來查看每個模塊中可用的所有函數。
安裝 Dune Shell:
Dune shell 可在 Arch Linux 存儲庫中以 dunesh
的名字獲得。
對於其他用戶,Dune shell 可以通過 cargo
安裝。所以,首先需要 安裝最新版本的 Rust。如果已經安裝了 Rust,請確保你有最新的版本,然後繼續安裝 Dune。
cargo install -f dune
安裝完成後,可以通過輸入以下命令訪問 Shell:
dunesh
4、Xonsh
Xonsh 是一個用 Python 編寫的,跨平台 Shell 和命令提示符。它結合了 Python 和 Bash Shell,用戶可以直接在 Shell 中運行 Python 命令。甚至可以結合使用 Python 和 Shell 命令。
如果你想了解更多,請閱讀我們的 Xonsh 文章:
Xonsh Shell 的特點:
- Xonsh 語言具有 Bash 中常用的 Shell 原語。
- 在 Python 中準備環境變數和參數,然後在 Shell 命令中使用它們。
- 第三方擴展系統 Xontribs。
- 可自定義的標籤補全、鍵綁定、顏色樣式。
- 豐富的界面,方便查看歷史記錄。
安裝 Xonsh Shell:
Xonsh 可在許多 Linux 發行版的倉庫中獲得,如 Ubuntu、Fedora 等。因此,要在 Ubuntu 上安裝它,請運行:
sudo apt install xonsh
Xonsh 還提供了一個 AppImage 包,可以從它們的下載頁面下載。如果你不熟悉這種文件格式,請參考我們的 AppImage 指南。
5、Hilbish
Hilbish 是一個可擴展 Shell,可通過 Lua 編程語言進行定製。該 Shell 面向普通用戶和高級用戶。
Hilbish 的特點:
- 簡單易用的腳本編寫。
- 歷史和補全菜單:為用戶提供正確的補全和歷史搜索菜單。
- 通過 Lua API 可以進行語法高亮和提示。
- 它可以在 Unix 系統和 Windows 上運行,但在 Windows 上可能會遇到問題。
安裝 Hilbish:
Hilbish 在 Ubuntu 的包倉庫中不可用。因此,需要從源代碼構建安裝。
要安裝它,需要安裝 Go 和 task。
sudo apt install golang-go
sudo snap install task --classic
安裝完依賴項後,運行以下命令來安裝 Hilbish shell:
git clone --recursive https://github.com/Rosettea/Hilbish
cd Hilbish
go get -d ./...
如果要使用穩定版,請運行以下命令:
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
task build
sudo task install
6、Elvish
Elvish 是一種豐富的編程語言和多功能互動式 Shell。它可以在 Linux、Mac 和 Windows 上運行。即使版本 v1.0 尚未發布,它已經適合大多數日常交互使用。
Elvish 的特點:
- 強大的管道:Elvish 中的管道可以攜帶結構化數據,而不僅僅是文本。你可以通過管道傳輸列表、映射甚至函數。
- 直觀的控制結構。
- 目錄歷史:Elvish 記住了你訪問過的所有目錄。你可以通過按
CTRL+L
訪問它。 - 命令歷史。
- 內置文件管理器:通過按
CTRL + N
訪問。
安裝 Elvish:
Elvish Shell 可在 Ubuntu 和 Arch Linux 的包管理器中獲得。因此,要安裝它,請打開終端並鍵入:
sudo apt install elvish
或者
sudo pacman -S elvish
要了解有關 Elvish 的更多信息,請訪問 Elvish 的官方網站。
7、Oh
據其開發者稱,Oh 是 Unix shell 的重新設計。
它旨在成為現代 Shell 的更強大、更穩健的替代品,同時尊重 Unix shell 在過去半個世紀中建立的慣例。
Oh Shell 的特點:
- 一流的頻道、管道、環境和函數。
- 適用於標準 Shell 構造的豐富返回值。
- 支持模塊化。
- 簡化的評估和引用規則。
- 語法儘可能少地偏離已有的慣例。
安裝 Oh:
Oh 提供了一個預編譯的二進位文件。你需要從它們的 官方 GitHub 頁面 下載它。
你需要使用以下命令為文件授予執行許可權:
chmod +x oh
運行以下命令以在你的系統上安裝它:
sudo mv oh /usr/local/bin/
現在,你可以通過以下命令啟動 Oh:
oh
要了解有關 Oh 的詳細信息,請查閱其文檔。
8、Solidity
Solidity 是一個帶有輕量級會話記錄和遠程編譯器支持的互動式 Shell。當你更改指示/語言時,它會自動獲取匹配的遠程編譯器。
Solidity 的特點:
pragma solidity <version>
會嘗試動態載入所選的編譯器版本。- 可以使用
.session
命令保存和恢復會話。 - 設置在退出時保存(在運行並發 shell 時不安全)。
$_
是上一個已知結果的佔位符。- 特殊命令是具有點前綴。其他所有都將被視為 Solidity 代碼進行評估。
安裝 Solidity:
你可以通過 npm
安裝 Solidity shell。
確保你安裝了最新版本的 nodejs 和 npm
,然後輸入以下命令:
npm install -g solidity-shell
安裝完成後,運行 solidity-shell
來開始會話。
9、Yash
Yash(Yet another shell)是一個遵循 POSIX 標準的命令行 Shell,使用 C99(ISO/IEC 9899:1999)編寫。它具有適用於日常交互和腳本使用的功能。
Yash Shell 的特點:
- 全局別名。
- 套接字重定向、管道重定向和進程重定向。
- 提示符命令和未找到命令的處理程序。
- 帶有預定義補全腳本的命令行補全,覆蓋了 100 多個命令。
- 基於命令歷史記錄的命令行預測。
安裝 Yash Shell:
要安裝該 Shell,你需要轉到它們的 GitHub 發布 頁面下載 tar 文件。解壓 tar 文件;在其中,你將找到一個包含安裝說明的 INSTALL
文件。
通常,你應該在提取的文件夾中執行以下命令:
./configure
make
sudo make install
要了解有關 Yash Shell 的詳細信息,請查看其手冊頁面。
順便提及
- Ion:Ion Shell 是用 Rust 編寫的一種現代系統 Shell,主要用於 RedoxOS。它仍然是一個正在開發中的工作,用戶應該對語法會變化有所預料。
- Closh:Closh 是一種類似 Bash 的 Shell,將傳統的 UNIX Shell 與 Clojure 的強大功能相結合。它旨在成為 Bash 的現代替代品。它也是在開發的早期階段。
- Dash:Dash 是來自 Debian 的符合 POSIX 標準、快速輕量級的 Shell。
? 你對這些列出的 Shell 有何看法?你是否會嘗試將默認 Shell 更改為這裡的某些選項?你最喜歡的是哪一個?在下面的評論框中分享你的想法。
(題圖:MJ/a84a1625-4dd1-4589-aabb-ce3f37090f32)
via: https://itsfoss.com/shells-linux/
作者:Sreenath 選題:lkxed 譯者:ChatGPT 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive