在Linux中使用bashshell愉快吗?或者你更愿意尝试另一种选择?有tsch、fish、KornShell和Z Shell可供选择。但是这些流行的Linux shell中哪一个是最好的呢?
通常,当您编写应用程序时,它是用人类能够理解的高级语言完成的。这些例子是C,java,C++等等。信不信由你,你的计算机把所有东西都看成是1s,或者是众所周知的二进制代码或机器代码。
然后编译器将高级语言翻译成二进制文件,就像可执行文件一样。这个二进制文件就是您执行以启动所述应用程序的文件。
现在,这是一个非常高级的视图;记住,你的计算机需要一个翻译层。这介于你告诉它做什么和它如何理解之间。
shell就是所谓的解释器。与编译器类似,解释器将人工代码翻译成机器代码。其中一个不同之处是口译员一次只做一句话。同时,编译器扫描整个程序并将其全部翻译成机器代码。
因此,shell是您与操作系统(OS)交互的接口。当您在shell中输入命令时,它负责解释这些命令并实现这些神奇的效果。复制文件、管道、列表文件等操作都在shell的职权范围内。
有几个Linux shell可用。要查找系统上可用的所有shell,请打开终端并键入:
cat /etc/shells要了解您当前使用的shell类型,请键入:
echo $0但是你用的是最好的Linux shell吗?让我们看看有什么可用的。
这是Linux用户中最流行的shell。如果没有Bourne-Again-Shell(bash)作为等式的一部分,甚至很难想到Shell。许多Linux发行版附带bash作为默认shell,因为bash是默认的gnushell。在1989年发行的这部电影背后,也有几十年的健康发展。
Bash的前身是bourneshell(sh),它是最初的Unix Shell之一。对于sh程序员来说,一个吸引人的特性是,他们可以完全不变地直接将脚本移植到bash。Bash还为其前身提供了一些增强功能:
通常在线文档会假设您使用的是bash。然而,它并非没有缺点——任何编写过bash脚本的人都可以证明这一点!并不是你做不到什么,而是阅读和写作并不总是特别优雅。
KornShell通常被称为ksh,它是一种流行的Linux shell替代品,起源于20世纪80年代的Bell实验室,bash和ksh之间没有太多区别,但两者都有一些小的优势。例如,Ksh有cd old new命令。如果您在/Downloads/foo/bar/one/foobar目录下,需要进入/Downloads/foo/bar/two/foobar,则只需输入:
cd one twoksh的老手们会通过提到它的脚本优势来宣传它的优越性。其中包括:
不像bash,在网上很难找到ksh的帮助。如果要尝试使用ksh,请输入:
sudo apt install kshkshTcsh可以追溯到Unix的早期。它是C shell(csh)的改进版本,具有以下功能:
你可以通过键入来运行任何命令!n用显示的历史记录中相应的数字替换n。在tcsh works中,通过键入以下内容完成“历史记录”选项卡:
!a<TAB>这将扩展到以字母“a”开头的最后一个命令。相比之下,在bash中,您必须键入!a:p先看命令,然后!!去执行它。
要尝试tcsh,请键入:
sudo apt install tcshtcshTcsh是基于BSD的系统(如FreeBSD)的默认shell。tcsh的一大卖点是它的脚本语言,它对任何主要使用C语言编程的人都很有用。这使得tcsh对于小型C程序的原型设计非常有用,而不会对您使用的括号之类的东西产生混淆。如果您不断地在C编程和shell脚本之间切换,这个问题就会发生。
在Linux的严肃性中,fish的团队在他们的项目中嵌入了幽默感。尽管fish(“友好交互shell”)是在2005年开发的,但在他们的网站上,这句话的标题是“终于,90年代的命令行shell”。除了被吹捧为“辉煌的VGA颜色”之外,还有其他外壳的一些增强功能:
此功能将新安装软件手册页中的语法添加到自动完成建议中。如果您想更熟悉命令行,fish是一个很好的开始。
要获取鱼类的样本,请键入:
sudo apt install fishfish许多人会认为这是把最好的外壳留到最后,这是完全可以理解的。Zsh与bash和ksh有相似之处,并结合了其中的许多特性以及tcsh。Zsh特点:
zsh中的Globbing非常有用。打字:
vim /u/l/b/a<TAB>将打开文件:
/usr/local/bin/autoupdate.sh如果不使用默认配置,Zsh在第一次使用时可能需要一段时间进行配置。要尝试一下,请输入:
sudo apt install zshzsh这些选项是可以选择的,这一事实是非常棒的。每一个都是对计算历史的一个一瞥,程序员们决定自己想用自己的方式来做事情。
这些shell之间的实质性差异可以在脚本语法中找到。每个贝壳都有一组特殊的细微差别,将它们彼此分开。从目前的情况来看,bash在市场份额方面占据主导地位,这使得寻求帮助变得更加简单。Bash仅仅是最好的全能者,满足除最高级用户之外的所有用户的需求。
当您决定使用Linux shell时,请确保您熟悉shell脚本的基础知识。
就像走出前门一样,上网也有风险。没有必要把头埋在沙子里,但有时你会想要隐私,期望一定程度的安全也不无道理。 ...
...做些什么来学习这些命令呢?你可以练习,花很多时间在贝壳里。为了帮助你,接受书籍和网站,这将有助于你在终端磨练你的能力。这里有一些建议。 ...
...,或者您知道已经安装了Python,但不确定您现在使用的是哪个版本,只需在操作系统的相关命令行终端中运行以下命令: ...
...之前已经介绍了不同的Linux shell,但下面简要介绍一下最常见的: bash:Bourne shell在许多发行版中都是默认的。 rbash:这个受限的bashshell为其中运行的人员或脚本提供了最少的功能。 ash:Almquist shell是bash的较轻版本。 破折号:Debian...
...。如果您的计算机上有同一程序的不同版本,您可以使用哪个来确定shell将使用哪个版本。 二进制文件和路径 当您试图从终端窗口运行程序或命令时,shell(通常是现代发行版上的Bash)必须找到该命令并启动它。有些命令(如...
...可以同时运行多个不同的Linux环境。 如果你不确定要安装哪个,我们推荐Ubuntu。但是,如果您需要一个特定的Linux发行版,那么您可能正在测试将在运行suselinux企业服务器或Debian的服务器上运行的软件,或者您需要Kali-Linux中的安...