帶你了解Elvish Shell
每個(gè)來到這里的人都會(huì)對許多系統(tǒng)中默認(rèn) Bash shell 有所了解(無論多少)。過去這些年已經(jīng)有一些新的 shell 出現(xiàn)來解決 Bash 中的一些缺點(diǎn)。Elvish 就是其中之一,我們將在今天討論它。
什么是 Elvish Shell?
Pipelines In Elvish
Elvish 不僅僅是一個(gè) shell。它也是“一種表達(dá)性編程語言”。它有許多有趣的特性,包括:
- 它是由 Go 語言編寫的
- 內(nèi)置文件管理器,靈感來自 Ranger 文件管理器(
Ctrl + N
) - 可搜索的命令歷史記錄(
Ctrl + R
) - 訪問的目錄的歷史記錄(
Ctrl + L
) - 支持結(jié)構(gòu)化數(shù)據(jù),例如列表、字典和函數(shù)的強(qiáng)大的管道
- 包含“一組標(biāo)準(zhǔn)的控制結(jié)構(gòu):有
if
條件控制、for
和while
循環(huán),還有try
的異常處理” - 通過包管理器支持第三方模塊擴(kuò)展 Elvish
- BSD 兩句版許可證
你肯定在喊,“為什么叫 Elvish?”。好吧,根據(jù)他們的網(wǎng)站,他們之所以選擇當(dāng)前的名字,是因?yàn)椋?/p>
在 Roguelike 中,精靈制造的物品質(zhì)量很高。它們通常被稱為“精靈物品”。但是之所以選擇 “elvish” 是因?yàn)樗?“sh” 結(jié)尾,這是 Unix shell 的久遠(yuǎn)傳統(tǒng)。這個(gè)與 fish 押韻,它是影響 Elvish 哲學(xué)的 shell 之一。
如何安裝 Elvish Shell
Elvish 在幾種主流發(fā)行版中都有。
請注意,該軟件還很年輕。最新版本是 0.12。根據(jù)該項(xiàng)目的 GitHub 頁面:“盡管還處在 1.0 之前,但它已經(jīng)適合大多數(shù)日常交互使用。”
Elvish Control Structures
Debian 和 Ubuntu
Elvish 包已引入 Debian Buster 和 Ubuntu 17.10。不幸的是,這些包已經(jīng)過時(shí),你需要使用 PPA 安裝最新版本。你需要使用以下命令:
sudo add-apt-repository ppa:zhsj/elvish
sudo apt update
sudo apt install elvish
Fedora
Elvish 在 Fedora 的主倉庫中沒有。你需要添加 FZUG 倉庫安裝 Evlish。為此,你需要使用以下命令:
sudo dnf config-manager --add-repo=http://repo.fdzh.org/FZUG/FZUG.repol
sudo dnf install elvish
Arch
Elvish 在 Arch 用戶倉庫中可用。
我相信你知道該如何在 Linux 中更改 Shell,因此安裝后可以切換到 Elvish 來使用它。
對 Elvish Shell 的想法
就個(gè)人而言,我沒有理由在任何系統(tǒng)上安裝 Elvish。我可以通過安裝幾個(gè)小的命令行程序或使用已經(jīng)安裝的程序來獲得它的大多數(shù)功能。
例如,Bash 中已經(jīng)存在“搜索歷史命令”功能,并且效果很好。如果要提高歷史命令的能力,我建議安裝 fzf。fzf
使用模糊搜索,因此你無需記住要查找的確切命令。fzf
還允許你預(yù)覽和打開文件。
我認(rèn)為 Elvish 作為一種編程語言是不錯(cuò)的,但是我會(huì)堅(jiān)持使用 Bash shell 腳本,直到 Elvish 變得更成熟。