超越 Bash: 9 个不太知名的 Linux Shell 及其功能
你可能已经知道像 Bash 和 Zsh 这样的流行 Shell。让我们来探索一些有趣和独特的 Shell。
Shell
你可能已经知道像 Bash 和 Zsh 这样的流行 Shell。让我们来探索一些有趣和独特的 Shell。
![](/data/attachment/album/202306/02/175710r3c8shssf5qss2tf.jpg)



> 
> 你可能已经知道像 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](/data/attachment/album/202306/02/175829los0vkn2ytoexrq4.png)


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](https://fishshell.com/)**
> 
> 
> 


### 2、Nushell


Nushell（Nu）是一种新型的 Shell，可以在 Linux、macOS、Windows、BSD 等系统上使用。它的哲学和灵感来自于类似于 [PowerShell](https://itsfoss.com/microsoft-open-sources-powershell/)、函数式编程语言和现代 [CLI](https://itsfoss.com/gui-cli-tui/) 工具等项目。


![Nushell](/data/attachment/album/202306/02/175830kpf3fb5bjyb35bb3.png)


Nushell 的特点：


* 一切皆数据：Nu 管道使用结构化数据，因此你每次都可以使用同样的方式安全地选择、过滤和排序。
* 强大的插件：可以使用强大的插件系统轻松扩展 Nu。
* 易读的错误消息：Nu 操作的是类型化的数据，因此它能够检测其他 Shell 无法检测到的错误。当出现问题时，Nu 会准确指出问题所在和原因。
* 干净的 IDE 支持。


安装 Nushell：


如果你使用的是 Ubuntu，是无法找到一个 Apt 存储库来安装 Nushell 的。但是，根据其在 [GitHub 上的说明](https://github.com/nushell/nushell)，你可以通过安装所需的依赖项来构建它。


幸运的是，还有一种方法可以使用 Homebrew 在任何发行版上安装它。你可以参考我们的教程 [在 Linux 上安装并使用 Homebrew 软件包管理器](https://itsfoss.com/homebrew-linux/)，成功在 Linux 上安装后，你需要输入以下命令来安装 Nushell：



```
brew install nushell

```

请访问其官方网站以查看更多安装方式。



> 
> **[Nushell](https://www.nushell.sh/)**
> 
> 
> 


### 3、Dune


该项目的创建者将 **Dune** 描述为海滩上的一个 “贝壳”。Dune 是一个快速、实用且美观的 Shell，提供了一些特殊的元编程功能，比如引用。


![Dune Shell](/data/attachment/album/202306/02/175830pq2z4wdo0wj0itjr.png)


Dune Shell 的特点：


* 在进入交互模式之前，Dune 执行存储在主目录中的“预载”启动文件。
* Dune 的 REPL 是完全可定制的。
* 可以通过将变量分配给程序名称来定义别名。
* 使用宏来编写修改 Shell 环境的函数，就像命令或程序一样。
* Dune 提供了丰富的标准库，并提供漂亮的界面来查看每个模块中可用的所有函数。


安装 Dune Shell：


Dune shell 可在 Arch Linux 存储库中以 `dunesh` 的名字获得。


对于其他用户，Dune shell 可以通过 `cargo` 安装。所以，首先需要 [安装最新版本的 Rust](https://fishshell.com/)。如果已经安装了 Rust，请确保你有最新的版本，然后继续安装 Dune。



```
cargo install -f dune

```

安装完成后，可以通过输入以下命令访问 Shell：



```
dunesh

```


> 
> **[Dune Shell](https://github.com/adam-mcdaniel/dune)**
> 
> 
> 


### 4、Xonsh


Xonsh 是一个用 Python 编写的，跨平台 Shell 和命令提示符。它结合了 Python 和 Bash Shell，用户可以直接在 Shell 中运行 Python 命令。甚至可以结合使用 Python 和 Shell 命令。


![Xonsh shell](/data/attachment/album/202306/02/175830nmo0ijzjwm7wz8o9.png)


如果你想了解更多，请阅读我们的 Xonsh 文章：



> 
> **[Xonsh Shell：结合 Bash Shell 和 Python 最佳特点的 Shell](https://itsfoss.com/xonsh-shell/)**
> 
> 
> 


Xonsh Shell 的特点：


* Xonsh 语言具有 Bash 中常用的 Shell 原语。
* 在 Python 中准备环境变量和参数，然后在 Shell 命令中使用它们。
* 第三方扩展系统 Xontribs。
* 可自定义的标签补全、键绑定、颜色样式。
* 丰富的界面，方便查看历史记录。


安装 Xonsh Shell：


Xonsh 可在许多 Linux 发行版的仓库中获得，如 Ubuntu、Fedora 等。因此，要在 Ubuntu 上安装它，请运行：



```
sudo apt install xonsh

```

Xonsh 还提供了一个 AppImage 包，可以从它们的下载页面下载。如果你不熟悉这种文件格式，请参考我们的 [AppImage 指南](https://itsfoss.com/use-appimage-linux/)。



> 
> **[Xonsh](https://xon.sh/)**
> 
> 
> 


### 5、Hilbish


Hilbish 是一个可扩展 Shell，可通过 Lua 编程语言进行定制。该 Shell 面向普通用户和高级用户。


![Hilbish shell](/data/attachment/album/202306/02/175831yile4ee6zfzw656e.png)


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

```


> 
> **[Hilbish](https://rosettea.github.io/Hilbish/)**
> 
> 
> 


### 6、Elvish


Elvish 是一种丰富的编程语言和多功能交互式 Shell。它可以在 Linux、Mac 和 Windows 上运行。即使版本 v1.0 尚未发布，它已经适合大多数日常交互使用。


![Elvish shell](/data/attachment/album/202306/02/175831tqvtctowqwvoldni.png)


Elvish 的特点：


* 强大的管道：Elvish 中的管道可以携带结构化数据，而不仅仅是文本。你可以通过管道传输列表、映射甚至函数。
* 直观的控制结构。
* 目录历史：Elvish 记住了你访问过的所有目录。你可以通过按 `CTRL+L` 访问它。
* 命令历史。
* 内置文件管理器：通过按 `CTRL + N` 访问。


安装 Elvish：


Elvish Shell 可在 Ubuntu 和 Arch Linux 的包管理器中获得。因此，要安装它，请打开终端并键入：



```
sudo apt install elvish

```

或者



```
sudo pacman -S elvish

```

要了解有关 Elvish 的更多信息，请访问 Elvish 的官方网站。



> 
> **[Elvish](https://elv.sh/)**
> 
> 
> 


### 7、Oh


据其开发者称，Oh 是 Unix shell 的重新设计。


它旨在成为现代 Shell 的更强大、更稳健的替代品，同时尊重 Unix shell 在过去半个世纪中建立的惯例。


![](/data/attachment/album/202306/02/175832n7wvgzwjg9qzw587.png)


Oh Shell 的特点：


* 一流的频道、管道、环境和函数。
* 适用于标准 Shell 构造的丰富返回值。
* 支持模块化。
* 简化的评估和引用规则。
* 语法尽可能少地偏离已有的惯例。


安装 Oh：


Oh 提供了一个预编译的二进制文件。你需要从它们的 [官方 GitHub 页面](https://github.com/michaelmacinnis/oh#linux) 下载它。


你需要使用以下命令为文件授予执行权限：



```
chmod +x oh

```

运行以下命令以在你的系统上安装它：



```
sudo mv oh /usr/local/bin/

```

现在，你可以通过以下命令启动 Oh：



```
oh

```

要了解有关 Oh 的详细信息，请查阅其文档。



> 
> **[Oh](https://github.com/michaelmacinnis/oh)**
> 
> 
> 


### 8、Solidity


Solidity 是一个带有轻量级会话记录和远程编译器支持的交互式 Shell。当你更改指示/语言时，它会自动获取匹配的远程编译器。


![](/data/attachment/album/202306/02/175833ss0msssz48pm0u5m.png)


Solidity 的特点：


* `pragma solidity <version>` 会尝试动态加载所选的编译器版本。
* 可以使用 `.session` 命令保存和恢复会话。
* 设置在退出时保存（在运行并发 shell 时不安全）。
* `$_` 是上一个已知结果的占位符。
* 特殊命令是具有点前缀。其他所有都将被视为 Solidity 代码进行评估。


安装 Solidity：


你可以通过 `npm` 安装 Solidity shell。


[确保你安装了最新版本的 nodejs](https://itsfoss.com/install-nodejs-ubuntu/) 和 `npm`，然后输入以下命令：



```
npm install -g solidity-shell

```

安装完成后，运行 `solidity-shell` 来开始会话。



> 
> **[Solidity Shell](https://github.com/tintinweb/solidity-shell)**
> 
> 
> 


### 9、Yash


Yash（Yet another shell）是一个遵循 POSIX 标准的命令行 Shell，使用 C99（ISO/IEC 9899:1999）编写。它具有适用于日常交互和脚本使用的功能。


![](/data/attachment/album/202306/02/175833yqjo8o4skxkjkqqk.png)


Yash Shell 的特点：


* 全局别名。
* 套接字重定向、管道重定向和进程重定向。
* 提示符命令和未找到命令的处理程序。
* 带有预定义补全脚本的命令行补全，覆盖了 100 多个命令。
* 基于命令历史记录的命令行预测。


安装 Yash Shell：


要安装该 Shell，你需要转到它们的 [GitHub 发布](https://github.com/magicant/yash/releases/tag/2.53) 页面下载 tar 文件。解压 tar 文件；在其中，你将找到一个包含安装说明的 `INSTALL` 文件。


通常，你应该在提取的文件夹中执行以下命令：



```
./configure
make
sudo make install

```

要了解有关 Yash Shell 的详细信息，请查看其手册页面。



> 
> **[Yash](https://yash.osdn.jp/index.html.en)**
> 
> 
> 


### 顺便提及


* Ion：[Ion Shell](https://gitlab.redox-os.org/redox-os/ion) 是用 Rust 编写的一种现代系统 Shell，主要用于 RedoxOS。它仍然是一个正在开发中的工作，用户应该对语法会变化有所预料。
* Closh：[Closh](https://github.com/dundalek/closh) 是一种类似 Bash 的 Shell，将传统的 UNIX Shell 与 [Clojure](https://clojure.org/) 的强大功能相结合。它旨在成为 Bash 的现代替代品。它也是在开发的早期阶段。
* Dash：[Dash](https://linuxhandbook.com/dash-shell/) 是来自 Debian 的符合 POSIX 标准、快速轻量级的 Shell。


? 你对这些列出的 Shell 有何看法？你是否会尝试将默认 Shell 更改为这里的某些选项？你最喜欢的是哪一个？在下面的评论框中分享你的想法。


*（题图：MJ/a84a1625-4dd1-4589-aabb-ce3f37090f32）*




---


via: <https://itsfoss.com/shells-linux/>


作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

