带你了解Elvish Shell

系统 Linux
每个来到这里的人都会对许多系统中默认 Bash shell 有所了解(无论多少)。过去这些年已经有一些新的 shell 出现来解决 Bash 中的一些缺点。Elvish 就是其中之一,我们将在今天讨论它。

[[278061]]

每个来到这里的人都会对许多系统中默认 Bash shell 有所了解(无论多少)。过去这些年已经有一些新的 shell 出现来解决 Bash 中的一些缺点。Elvish 就是其中之一,我们将在今天讨论它。

什么是 Elvish Shell?

 

Pipelines In Elvish

Elvish 不仅仅是一个 shell。它也是“一种表达性编程语言”。它有许多有趣的特性,包括:

  • 它是由 Go 语言编写的
  • 内置文件管理器,灵感来自 Ranger 文件管理器Ctrl + N
  • 可搜索的命令历史记录(Ctrl + R
  • 访问的目录的历史记录(Ctrl + L
  • 支持结构化数据,例如列表、字典和函数的强大的管道
  • 包含“一组标准的控制结构:有 if 条件控制、forwhile 循环,还有 try 的异常处理”
  • 通过包管理器支持第三方模块扩展 Elvish
  • BSD 两句版许可证

你肯定在喊,“为什么叫 Elvish?”。好吧,根据他们的网站,他们之所以选择当前的名字,是因为:

在 Roguelike 中,精灵制造的物品质量很高。它们通常被称为“精灵物品”。但是之所以选择 “elvish” 是因为它以 “sh” 结尾,这是 Unix shell 的久远传统。这个与 fish 押韵,它是影响 Elvish 哲学的 shell 之一。

如何安装 Elvish Shell

Elvish 在几种主流发行版中都有。

请注意,该软件还很年轻。最新版本是 0.12。根据该项目的 GitHub 页面:“尽管还处在 1.0 之前,但它已经适合大多数日常交互使用。”

 

Elvish Control Structures

Debian 和 Ubuntu

Elvish 包已引入 Debian Buster 和 Ubuntu 17.10。不幸的是,这些包已经过时,你需要使用 PPA 安装最新版本。你需要使用以下命令:

  1. sudo add-apt-repository ppa:zhsj/elvish
  2. sudo apt update
  3. sudo apt install elvish

Fedora

Elvish 在 Fedora 的主仓库中没有。你需要添加 FZUG 仓库安装 Evlish。为此,你需要使用以下命令:

  1. sudo dnf config-manager --add-repo=http://repo.fdzh.org/FZUG/FZUG.repol
  2. sudo dnf install elvish

Arch

Elvish 在 Arch 用户仓库中可用。

我相信你知道该如何在 Linux 中更改 Shell,因此安装后可以切换到 Elvish 来使用它。

对 Elvish Shell 的想法

就个人而言,我没有理由在任何系统上安装 Elvish。我可以通过安装几个小的命令行程序或使用已经安装的程序来获得它的大多数功能。

例如,Bash 中已经存在“搜索历史命令”功能,并且效果很好。如果要提高历史命令的能力,我建议安装 fzffzf 使用模糊搜索,因此你无需记住要查找的确切命令。fzf 还允许你预览和打开文件。

我认为 Elvish 作为一种编程语言是不错的,但是我会坚持使用 Bash shell 脚本,直到 Elvish 变得更成熟。

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2019-04-24 15:20:44

Shell脚本编程Linux

2022-09-26 11:30:40

MQTT协议客户端协议

2010-07-05 16:20:32

NetBEUI协议

2021-02-03 16:22:43

新基建SAP

2020-12-31 12:16:49

SAP云计算SAP产品

2021-05-31 14:22:56

物联网物联网安全

2021-12-10 10:29:07

在线客服系统

2010-09-02 16:59:35

资源预留协议

2019-11-05 10:18:04

RPM包RPMLinux

2018-03-01 16:25:52

Linux内核内存管理

2023-11-20 08:18:49

Netty服务器

2023-08-18 14:39:02

2018-03-12 10:15:10

前端Javascript反调试

2019-03-26 10:50:22

Python面向对象编程语言

2020-06-28 07:39:44

Kafka分布式消息

2021-05-20 06:57:16

RabbitMQ开源消息

2010-08-31 22:29:54

DHCP分配

2023-01-06 19:19:16

TensorFlow

2023-11-06 08:16:19

APM系统运维

2010-07-06 17:14:03

网关通信协议
点赞
收藏

51CTO技术栈公众号