@geekpi
This commit is contained in:
Xingyu Wang 2019-09-26 20:26:38 +08:00
parent 9968944e93
commit abe21a7b86

View File

@ -1,49 +1,47 @@
[#]: collector: (lujun9972) [#]: collector: (lujun9972)
[#]: translator: (geekpi) [#]: translator: (geekpi)
[#]: reviewer: ( ) [#]: reviewer: (wxy)
[#]: publisher: ( ) [#]: publisher: ( )
[#]: url: ( ) [#]: url: ( )
[#]: subject: (A Quick Look at Elvish Shell) [#]: subject: (A Quick Look at Elvish Shell)
[#]: via: (https://itsfoss.com/elvish-shell/) [#]: via: (https://itsfoss.com/elvish-shell/)
[#]: author: (John Paul https://itsfoss.com/author/john/) [#]: author: (John Paul https://itsfoss.com/author/john/)
快速了解 Elvish Shell Elvish Shell 速览
====== ======
每个来到这里的人都会对许多系统默认 Bash shell 有所了解(无论多少)。过去这些年已经有一些新的 shell 出现来解决 Bash 中的一些缺点。Elvish 就是其中之一,我们将在今天讨论它。 每个来到这里的人都会对许多系统默认 Bash shell 有所了解(无论多少)。过去这些年已经有一些新的 shell 出现来解决 Bash 中的一些缺点。Elvish 就是其中之一,我们将在今天讨论它。
### 什么是 Elvish Shell ### 什么是 Elvish Shell
![Pipelines In Elvish][1] ![Pipelines In Elvish][1]
[Elvish][2] 不是一个 shell。它[也是][3]“一种表达性编程语言”。它有许多有趣的特性,包括: [Elvish][2] 不仅仅是一个 shell。它[也是][3]“一种表达性编程语言”。它有许多有趣的特性,包括:
* 使用 Go 语言编写 * 它是由 Go 语言编写的
* 内置文件管理器,灵感来自 [Ranger 文件管理器][4]`Ctrl + N` * 内置文件管理器,灵感来自 [Ranger 文件管理器][4]`Ctrl + N`
* 可搜索的命令历史记录(`Ctrl + R` * 可搜索的命令历史记录(`Ctrl + R`
* 历史访问目录(`Ctrl + L` * 访问录的历史记录(`Ctrl + L`
* 支持结构化数据,例如列表、字典和函数的强大的管道 * 支持结构化数据,例如列表、字典和函数的强大的管道
* 包含“一组标准的控制结构:有 `if` 条件控制、`for` 和 `while` 循环,还有 `try` 的异常处理” * 包含“一组标准的控制结构:有 `if` 条件控制、`for` 和 `while` 循环,还有 `try` 的异常处理”
* 通过包管理器支持[第三方模块扩展 Elvish][5] * 通过包管理器支持[第三方模块扩展 Elvish][5]
* BSD 2-Clause 许可 * BSD 两句版许可证
你肯定在喊,“为什么叫 Elvish”。好吧根据[他们的网站][6],他们之所以选择当前的名字,是因为:
> 在 Roguelike 游戏中,精灵制造的物品质量很高。它们通常被称为“精灵物品”。但是之所以选择 “elvish” 是因为它以 “sh” 结尾,这是 Unix shell 的久远传统。这个与 fish 押韵,它是影响 Elvish 哲学的 shell 之一。
我听到了你的大叫,“为什么叫 Elvish”。好吧根据[他们的网站][6],他们之所以选择当前的名字,是因为:
> 在 Roguelike 中,精灵制造的物品质量很高。它们通常被称为“精灵物品”。但是之所以选择 “elvish” 是因为它以 “sh” 结尾,这是 Unix shell 的久远传统。这个与 fish 押韵,它是影响 Elvish 哲学的 shell 之一。
### 如何安装 Elvish Shell ### 如何安装 Elvish Shell
Elvish 在几种主流发行版中都有。 Elvish 在几种主流发行版中都有。
请注意,该软件还很年轻。最新版本是 0.12。根据该项目的 [GitHub 页面][3]:“尽管还在 1.0 之前,但它已经适合大多数日常交互使用。” 请注意,该软件还很年轻。最新版本是 0.12。根据该项目的 [GitHub 页面][3]:“尽管还在 1.0 之前,但它已经适合大多数日常交互使用。”
![Elvish Control Structures][7] ![Elvish Control Structures][7]
#### Debian 和 Ubuntu #### Debian 和 Ubuntu
Elvish 包已引入 Debian Buster 和 Ubuntu 17.10。不幸的是,这些包已经过时,你需要使用 [PPA][8] 安装最新版本。你需要使用以下命令: Elvish 包已引入 Debian Buster 和 Ubuntu 17.10。不幸的是,这些包已经过时,你需要使用 [PPA][8] 安装最新版本。你需要使用以下命令:
``` ```
sudo add-apt-repository ppa:zhsj/elvish sudo add-apt-repository ppa:zhsj/elvish
@ -70,13 +68,13 @@ Elvish 在 [Arch 用户仓库][10]中可用。
就个人而言,我没有理由在任何系统上安装 Elvish。我可以通过安装几个小的命令行程序或使用已经安装的程序来获得它的大多数功能。 就个人而言,我没有理由在任何系统上安装 Elvish。我可以通过安装几个小的命令行程序或使用已经安装的程序来获得它的大多数功能。
例如Bash 中已经存在“搜索历史命令”功能,并且效果很好。如果要提高历史命令的能力,我建议安装 [fzf][12]。fzf 使用模糊搜索因此你无需记住要查找的确切命令。fzf 还允许你预览和打开文件。 例如Bash 中已经存在“搜索历史命令”功能,并且效果很好。如果要提高历史命令的能力,我建议安装 [fzf][12]。`fzf` 使用模糊搜索,因此你无需记住要查找的确切命令。`fzf` 还允许你预览和打开文件。
我认为 Elvish 作为一种编程语言是不错的,但是我会坚持使用 Bash shell 脚本,直到 Elvish 变得更成熟。 我认为 Elvish 作为一种编程语言是不错的,但是我会坚持使用 Bash shell 脚本,直到 Elvish 变得更成熟。
你们都有用过 Elvish 么?你认为安装 Elvish 是否值得?你最喜欢的 Bash 替代品是什么?请在下面的评论中告诉我们。 你们都有用过 Elvish 么?你认为安装 Elvish 是否值得?你最喜欢的 Bash 替代品是什么?请在下面的评论中告诉我们。
如果你发现这篇文章有趣请花一点时间在社交媒体、Hacker News 或 [Reddit][13] 上分享它。 如果你发现这篇文章有趣请花一点时间在社交媒体、Hacker News 或 Reddit 上分享它。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -85,7 +83,7 @@ via: https://itsfoss.com/elvish-shell/
作者:[John Paul][a] 作者:[John Paul][a]
选题:[lujun9972][b] 选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出