Elvish Shell 速覽

2019-09-26 20:26:00

每個來到這裡的人都會對許多系統中預設 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 安裝最新版本。你需要使用以下命令:

sudo add-apt-repository ppa:zhsj/elvishsudo apt updatesudo apt install elvish

Fedora

Elvish 在 Fedora 的主倉庫中沒有。你需要新增 FZUG 倉庫安裝 Evlish。為此,你需要使用以下命令:

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

Arch

Elvish 在 Arch 使用者倉庫中可用。

我相信你知道該如何在 Linux 中更改 Shell,因此安裝後可以切換到 Elvish 來使用它。

對 Elvish Shell 的想法

就個人而言,我沒有理由在任何系統上安裝 Elvish。我可以通過安裝幾個小的命令列程式或使用已經安裝的程式來獲得它的大多數功能。

例如,Bash 中已經存在“搜尋歷史命令”功能,並且效果很好。如果要提高歷史命令的能力,我建議安裝 fzffzf 使用模糊搜尋,因此你無需記住要查詢的確切命令。fzf 還允許你預覽和開啟檔案。

我認為 Elvish 作為一種程式語言是不錯的,但是我會堅持使用 Bash shell 指令碼,直到 Elvish 變得更成熟。

你們都有用過 Elvish 麼?你認為安裝 Elvish 是否值得?你最喜歡的 Bash 替代品是什麼?請在下面的評論中告訴我們。

如果你發現這篇文章有趣,請花一點時間在社交媒體、Hacker News 或 Reddit 上分享它。