Linux中國

超越 Bash: 9 個不太知名的 Linux Shell 及其功能

你可能已經知道像 Bash 和 Zsh 這樣的流行 Shell。讓我們來探索一些有趣和獨特的 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

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

Fish Shell

2、Nushell

Nushell(Nu)是一種新型的 Shell,可以在 Linux、macOS、Windows、BSD 等系統上使用。它的哲學和靈感來自於類似於 PowerShell、函數式編程語言和現代 CLI 工具等項目。

Nushell

Nushell 的特點:

  • 一切皆數據:Nu 管道使用結構化數據,因此你每次都可以使用同樣的方式安全地選擇、過濾和排序。
  • 強大的插件:可以使用強大的插件系統輕鬆擴展 Nu。
  • 易讀的錯誤消息:Nu 操作的是類型化的數據,因此它能夠檢測其他 Shell 無法檢測到的錯誤。當出現問題時,Nu 會準確指出問題所在和原因。
  • 乾淨的 IDE 支持。

安裝 Nushell:

如果你使用的是 Ubuntu,是無法找到一個 Apt 存儲庫來安裝 Nushell 的。但是,根據其在 GitHub 上的說明,你可以通過安裝所需的依賴項來構建它。

幸運的是,還有一種方法可以使用 Homebrew 在任何發行版上安裝它。你可以參考我們的教程 在 Linux 上安裝並使用 Homebrew 軟體包管理器,成功在 Linux 上安裝後,你需要輸入以下命令來安裝 Nushell:

brew install nushell

請訪問其官方網站以查看更多安裝方式。

Nushell

3、Dune

該項目的創建者將 Dune 描述為海灘上的一個 「貝殼」。Dune 是一個快速、實用且美觀的 Shell,提供了一些特殊的元編程功能,比如引用。

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

Dune Shell

4、Xonsh

Xonsh 是一個用 Python 編寫的,跨平台 Shell 和命令提示符。它結合了 Python 和 Bash Shell,用戶可以直接在 Shell 中運行 Python 命令。甚至可以結合使用 Python 和 Shell 命令。

Xonsh shell

如果你想了解更多,請閱讀我們的 Xonsh 文章:

Xonsh Shell:結合 Bash Shell 和 Python 最佳特點的 Shell

Xonsh Shell 的特點:

  • Xonsh 語言具有 Bash 中常用的 Shell 原語。
  • 在 Python 中準備環境變數和參數,然後在 Shell 命令中使用它們。
  • 第三方擴展系統 Xontribs。
  • 可自定義的標籤補全、鍵綁定、顏色樣式。
  • 豐富的界面,方便查看歷史記錄。

安裝 Xonsh Shell:

Xonsh 可在許多 Linux 發行版的倉庫中獲得,如 Ubuntu、Fedora 等。因此,要在 Ubuntu 上安裝它,請運行:

sudo apt install xonsh

Xonsh 還提供了一個 AppImage 包,可以從它們的下載頁面下載。如果你不熟悉這種文件格式,請參考我們的 AppImage 指南

Xonsh

5、Hilbish

Hilbish 是一個可擴展 Shell,可通過 Lua 編程語言進行定製。該 Shell 面向普通用戶和高級用戶。

Hilbish shell

Hilbish 的特點:

  • 簡單易用的腳本編寫。
  • 歷史和補全菜單:為用戶提供正確的補全和歷史搜索菜單。
  • 通過 Lua API 可以進行語法高亮和提示。
  • 它可以在 Unix 系統和 Windows 上運行,但在 Windows 上可能會遇到問題。

安裝 Hilbish:

Hilbish 在 Ubuntu 的包倉庫中不可用。因此,需要從源代碼構建安裝。

要安裝它,需要安裝 Gotask

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

Hilbish

6、Elvish

Elvish 是一種豐富的編程語言和多功能互動式 Shell。它可以在 Linux、Mac 和 Windows 上運行。即使版本 v1.0 尚未發布,它已經適合大多數日常交互使用。

Elvish shell

Elvish 的特點:

  • 強大的管道:Elvish 中的管道可以攜帶結構化數據,而不僅僅是文本。你可以通過管道傳輸列表、映射甚至函數。
  • 直觀的控制結構。
  • 目錄歷史:Elvish 記住了你訪問過的所有目錄。你可以通過按 CTRL+L 訪問它。
  • 命令歷史。
  • 內置文件管理器:通過按 CTRL + N 訪問。

安裝 Elvish:

Elvish Shell 可在 Ubuntu 和 Arch Linux 的包管理器中獲得。因此,要安裝它,請打開終端並鍵入:

sudo apt install elvish

或者

sudo pacman -S elvish

要了解有關 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 的詳細信息,請查閱其文檔。

Oh

8、Solidity

Solidity 是一個帶有輕量級會話記錄和遠程編譯器支持的互動式 Shell。當你更改指示/語言時,它會自動獲取匹配的遠程編譯器。

Solidity 的特點:

  • pragma solidity <version> 會嘗試動態載入所選的編譯器版本。
  • 可以使用 .session 命令保存和恢復會話。
  • 設置在退出時保存(在運行並發 shell 時不安全)。
  • $_ 是上一個已知結果的佔位符。
  • 特殊命令是具有點前綴。其他所有都將被視為 Solidity 代碼進行評估。

安裝 Solidity:

你可以通過 npm 安裝 Solidity shell。

確保你安裝了最新版本的 nodejsnpm,然後輸入以下命令:

npm install -g solidity-shell

安裝完成後,運行 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 的詳細信息,請查看其手冊頁面。

Yash

順便提及

  • 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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let&apos;s Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...