这5个Linux Shell中哪一个最好?

在Linux中使用bash shell满意吗?还是您想尝试其他方法?有tsch,fish,KornShell和Z Shell可供选择。但是,这些Linux外壳中哪一个最好?

什么是外壳?

通常,当您编写应用程序时,它是用人类可以理解的高级语言完成的。例如C#,Java,C ++等。不管您信不信,您的计算机将所有东西都看成1代表0或众所周知的二进制或机器代码。

然后,编译器将转换级别的语言转换为二进制文件(如可执行文件)。该二进制文件是您执行以启动所述应用程序的文件。现在,这是发生情况的一个非常高级的视图,但是请记住,您的计算机需要在您要告诉它执行的操作与如何理解之间进行转换。

shell是所谓的口译员。与编译器类似,解释器将人工代码转换为机器代码。区别之一是,解释器一次执行一个语句,而编译器则扫描整个程序并将其整体转换为机器代码。

shell是一个接口让您与操作系统(OS)进行交互。在外壳中键入命令时,外壳负责解释这些命令并使魔术发生。复制文件,管道,列出文件之类的操作都在Shell的职权范围内。它还负责记住您的命令历史记录,以检查在可能的情况下头脑中发生了什么。

要找出系统上所有可用的外壳,请打开终端并键入:

cat /etc/shells

要找出您当前正在使用的shell,请输入:

echo $0

1。 Bash

是Linux用户中最流行的shell。如果没有Bourne-Again SHell(bash)成为方程式的一部分,甚至很难考虑炮弹。许多Linux发行版附带bash作为默认外壳,因为bash是默认GNU Shell。 1989年发布,它还拥有几十年的健康发展。

Bash的前身是The Bourne Shell(sh),它是最初的Unix shell。 sh程序员的一个吸引人的功能是,他们可以将sh脚本直接移植到完全不变的bash上。 Bash还对其前身进行了一些增强,例如命令完成和命令历史记录。

Bash是一个非常受人尊敬的shell,通常在线文档总是会假定您正在使用它。但是,bash并非没有缺点-任何曾经编写过跨越几行的bash脚本的人都可以证明!这并不是说您不能做某事,而是阅读和写作并不总是那么优雅。 Bash至少在不久的将来可能会留在这里。

2。它拥有广泛的安装基础,并且已经习惯了临时使用和专业用户的行列和怪癖。

2。 KornShell

KornShell通常被称为ksh,是可替代的外壳,起源于1980年代的Bell Labs。 Ksh最初是专有软件,它是商业unicom上的 deacto 标准,因此直到2000年才可以在Linux上使用。bash和ksh之间的区别并不多,但是每个都具有次要的优势。在其他。例如,Ksh具有cd old new命令。如果您在目录 / Downloads / foo / bar / 一个 / foobar 中,则需要进入 / Downloads / foo / bar / 两个 / foobar 您只需要运行:

cd one two

如果您想尝试ksh,则可以输入:

sudo apt install kshksh

3。 Tcsh

Tcsh可以追溯到Unix的早期。它实质上是具有可编程命令行完成,命令行编辑和其他一些功能的C Shell(csh)。 Tcsh是基于BSD的系统(如FreeBSD)的默认外壳。 tcsh的最大卖点是它的脚本语言,这对使用C进行编程的任何人都应该非常熟悉。如果您发现自己主要使用C进行编程,则Tcsh是值得学习的候选人。这使tcsh在制作小型C程序原型时非常有用,而不会引起混淆,例如您使用的是哪个括号。如果您不断在C编程和Shell脚本之间切换,就会出现此问题。

Tcsh的脚本受到某些人的崇拜而被其他人所讨厌。但是它还具有其他功能,包括在别名中添加参数以及可能会吸引您偏好的各种默认值。它的重要功能之一包括自动完成和历史记录完成工作的方式。输入 history 提取历史记录后。 Tcsh将显示以前命令的编号列表,并带有非常方便的时间戳。您可以通过键入!n 来运行任何命令,在显示的历史记录中将n替换为其相应的数字。通过键入以下内容,可以在tcsh中完成“历史记录"选项卡:

!a<TAB>

这将扩展到以字母“ a"开头的最后一个命令。相比之下,在bash中,您必须先键入!a:p 才能看到该命令,然后键入 !! 即可执行该命令。

要尝试tcsh,输入:

sudo apt install tcshtcsh

4。 Fish

在Linux的所有重要性中,fish团队在他们的项目中嵌入了幽默感。在他们的网站上,嘲讽的标题是“最后,一个90年代的命令行外壳" –鱼(“ f 刚好 i 互动性 sh ell")开发于2005年。除了吹捧的“ Glorious VGA颜色"外,还对其他外壳进行了一些增强。语法无效的命令将显示为红色,而语法正确的显示为蓝色。此外,还有大量的制表符补全,例如根据您的历史记录使用颜色编码的自动完成建议。

Fish还具有基于计算机手册页的命令补全功能。因此,如果您刚刚安装了新程序并需要习惯其语法,则fish将从手册页中获取该语法并将其添加到您的自动完成建议中。整齐!如果您想更熟悉命令行,则可以选择fish作为开始学习的好地方。

要采样一下有关鱼的内容,请输入:

sudo apt install fishfish

5。 Z Shell

许多人会认为这是最好的外壳,这是完全可以理解的。 Zsh与bash和ksh有相似之处,并合并了其中的许多功能以及tcsh。 zsh的一些有用功能包括可导航的自动完成列表。与bash不同,bash仅列出所有可用命令并让您手动键入它。 zsh中的globbing非常有用。键入:

vim /u/l/b/a<TAB>

自动打开文件:

/usr/local/bin/autoupdate.sh

Spelling correction in zsh is far superior to that of bash. In a cd command bash can correct up to one character. Zsh, on the other hand, can be configured to autocorrect 10 spelling errors in one word. Zsh also nails command line histories. This is extremely useful for users who spend excessive amounts of time on the terminal. Zsh magically shares histories across terminals, making multi-terminal sessions a breeze.

Zsh can take a while to configure on first use if you don’t go with the default config. To give it a try, enter:

sudo apt install zshzsh

这些选项均可用。他们瞥见了计算本身的历史,程序员决定他们要以自己的方式制造事物,并最终将它们免费发布给世界。

这些shell之间的实质区别可以在下面的文章中找到。脚本语法。每个外壳都有一组特定的细微差别,将它们彼此分开。就目前而言,bash在市场份额方面占主导地位,这使得寻找帮助变得更加简单。 Bash只是最好的多面手,可以满足除最高级用户以外的所有用户的需求。

您当前使用哪个shell?您是否尝试过bash以外的任何shell?您对当前的外壳有什么爱或恨?在下面的评论中分享您的想法!

标签: