本教程操作环境:Ubuntu 16.04系统、Dell G3电脑。

什么是Linux Shell?

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”

Linux系统提供多种不同的Shell以供选择。

Bourne Shell

Bourne Shell(简称sh)是AT&T Bell实验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认Shell,也是其它Shell的开发基础。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell。

C Shelll

C Shelll(简称csh)是加州伯克利大学的Bill Joy为BSD Unix开发的,与sh不同,它的语法与C语言很相似。它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。

但是,C Shell与Bourne Shell并不兼容。

Korn Shell

Korn Shell(简称ksh)是AT&T Bell实验室的David Korn开发的,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。

Bourne Again Shell

最常用的shell是Bourne Again Shell,或bash。它是为GNU项目而设计的,目的是作为Bourne Shell的开源替代品,而Bourne Shell是在UNIX系统上使用的一种常用的Shell。Bash还从其他一些UNIX shell中获得了灵感,比如C shell(csh)和KornShell(ksh)。每个主要的UNIX Shell特性都不同:Bourne Shell适用于编写脚本,虽然使用C shell编写脚本需要具备C编程语言知识,但是它确实提供了一些方便的工具,使其更适合交互使用。Bash将这种改进的交互性与Bourne Shell的简易脚本结合在一起。虽然bash成为了Linux系统的默认shell(现在对大多数发行版来说仍然如此),但如果可以改进的话,它不会阻止项目使用替代的shell。

Almquish shell

Almquish shell,或ash就是这样的shell。此shell设计是为了与Bourne shell兼容,并且是轻量级的。但与此同时,它也缺少一些shell(如bash、ksh和csh)所具有的改进。它体积小,资源利用率低,这意味着它通常用于嵌入式系统,比如那些使用BusyBox系统的系统。BusyBox通常用于Android设备的shell以及Linux安装和引导过程的一部分。这意味着如果安装或启动Linux系统出现问题,可能是因为自己在BusyBox中使用了Almquish shell。还有一个名为dash((Debian Almquish shell)的端口,从这里将ash移植到Debian Linux。Dash是Debian和Ubuntu系统上的/bin/sh命令的默认shell。

Z Shell

Z shell,或zsh,是另一个基于Bourne shell的shell。它还添加了一些来自bash、ksh和csh的特性。除此之外,它还拥有完善的命令行完成功能,不仅可以识别命令名,还可以识别选项和参数,以及拼写更正。它还可以使用主题和插件进行扩展,并且能够以兼容模式运行,使其能够像某些其他shell(如Bourne shell)一样工作。关于插件和主题,有一个方便的工具可以帮助从命令行中找到并安装它们,使设置变得非常容易。有了这些特性,Z shell已经成为bash的流行替代品。

Fish

一个友好的互动shell。顾名思义,它的设计是为了使命令行成为一个更友好的地方。因此,fish有许多特性可以使在命令行中的工作更容易,比如语法高亮和错误检查,利用颜色让工作变得更容易。还有一些自动建议可以在键入命令时完成命令。缺点是它与Bourne shell不兼容,所以虽然对于初学者来说是一个很好的开始,但是在迁移到另一个shell时,有许多不可转移的元素,比如它使用自己的脚本语言。

相关推荐:《Linux视频教程》

以上就是linux shell有哪些的详细内容,更多请关注悠悠之家其它相关文章!

点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部