问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux shell哪种更常用,这些shell各有什么特长

发布网友 发布时间:2022-05-16 19:04

我来回答

1个回答

热心网友 时间:2023-11-24 14:07

和现在的开发语言一样,语法上有些差异!

  三种主要的 Shell 与其分身

  在大部份的UNIX系统,三种著名且广被支持的shell 是Bourne shell(AT&T shell,在 Linux 下是BASH)、C shell(Berkeley shell,在 Linux 下是TCSH)和 Korn shell(Bourne shell的超集)。这三种 shell 在交谈(interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。

  Bourne shell 是标准的 UNIX shell,以前常被用来做为管理系统之用。大部份的系统管理命令文件,例如 rc start、stop 与shutdown 都是Bourne shell 的命令档,且在单一使用者模式(single user mode)下以 root 签入时它常被系统管理者使用。Bourne shell 是由 AT&T 发展的,以简洁、快速著名。 Bourne shell 提示符号的默认值是 $。

  C shell 是柏克莱大学(Berkeley)所开发的,且加入了一些新特性,如命令列历程(history)、别名(alias)、内建算术、档名完成(filename completion)、和工作控制(job control)。对于常在交谈模式下执行 shell 的使用者而言,他们较喜爱使用 C shell;但对于系统管理者而言,则较偏好以 Bourne shell 来做命令档,因为 Bourne shell 命令档比 C shell 命令档来的简单及快速。C shell 提示符号的默认值是 %。

  Korn shell 是Bourne shell 的超集(superset),由 AT&T 的 David Korn 所开发。它增加了一些特色,比 C shell 更为先进。Korn shell 的特色包括了可编辑的历程、别名、函式、正规表达式万用字符(regular expression wildcard)、内建算术、工作控制(job control)、共作处理(coprocessing)、和特殊的除错功能。Bourne shell 几乎和 Korn shell 完全向上兼容(upward compatible),所以在 Bourne shell 下开发的程序仍能在 Korn shell 上执行。Korn shell 提示符号的默认值也是 $。在 Linux 系统使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。

  除了执行效率稍差外,Korn shell 在许多方面都比 Bourne shell 为佳;但是,若将 Korn shell 与 C shell 相比就很困难,因为二者在许多方面都各有所长,就效率和容易使用上看,Korn shell 是优于 C shell,相信许多使用者对于 C Shell 的执行效率都有负面的印象。

  在shell 的语法方面,Korn shell 是比较接近一般程序语言,而且它具有子程序的功能及提供较多的资料型态。至于 Bourne shell,它所拥有的资料型态是三种 shell 中最少的,仅提供字符串变量和布尔型态。在整体考量下 Korn shell 是三者中表现最佳者,其次为 C shell,最后才是 Bourne shell,但是在实际使用中仍有其它应列入考虑的因素,如速度是最重要的选择时,很可能应该采用 Bourne shell,因它是最基本的 shell,执行的速度最快。
作者: benny_feng 发布日期: 2006-10-17
  tcsh 是近几年崛起的一个免费软件(Linux 下的C shell 其实就是使用 tcsh)执行,它虽然不是UNIX 的标准配备,但是从许多地方您都可以下载到它。如果您是 C shell 的拥护者,笔者建议不妨试试 tcsh,因为您至少可以将它当作是 C shell 来使用。如果您愿意花点时间学习,您还可以享受许多它新增的优越功能,例如:

  1. tcsh 提供了一个命令列(command line)编辑程序。

  2. 提供了命令列补全功能。

  3. 提供了拼字更正功能。它能够自动检测并且更正在命令列拼错的命令或是单字。

  4. 危险命令侦测并提醒的功能,避免您一个不小心执行了rm* 这种杀伤力极大的命令。

  5. 提供常用命令的快捷方式(shortcut)。

  bash 对 Bourne shell 是向下兼容(backward compatible),并融入许多C shell 与Korn shell 的功能。这些功能其实 C shell(当然也包括了tcsh)都有,只是过去 Bourne shell 都未支持。以下笔者将介绍 bash 六点重要的改进(详细的使用说明笔者会在以后的章节介绍):

  1. 工作控制(job contorl)。bash 支持了关于工作的讯号与指令,本章稍后会提及。

  2. 别名功能(aliases)。alias 命令是用来为一个命令建立另一个名称,它的运作就像一个宏,展开成为它所代表的命令。别名并不会替代掉命令的名称,它只是赋予那个命令另一个名字。

  3. 命令历程(command history)。BASH shell 加入了C shell 所提供的命令历程功能,它以 history 工具程序记录了最近您执行过的命令。命令是由 1 开始编号,默认值为500。history 工具程序是一种短期记忆,记录您最近所执行的命令。要看看这些命令,您可以在命令列键入 history,如此将会显示最近执行过之命令的清单,并在前方加上编号。

  这些命令在技术上每个都称为一个事件。事件描述的是一个已经采取的行动(已经被执行的命令)。事件是依照执行的顺序而编号,越近的事件其编号码越大,这些事件都是以它的编号或命令的开头字符来辨认的。history 工具程序让您参照一个先前发生过的事件,将它放在命令列上并允许您执行它。最简单的方法是用上下键一次放一个历程事件在您的命令列上;您并不需要先用 history 显示清单。按一次向上键会将最后一个历程事件放在您的命令列上,再按一次会放入下一个历程事件。按向下键则会将前一个事件放在命令列上。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 百里氏两面人,看的太让人生气了,我的小龙女怎么就黑化了? 性感女神张慧仪,曾因“风月片”出名,如今过得怎样了? 空无的近义词是什么 x空荡x的成语的四字成语? 求一部风月电影的名字 ---宣群--- 胡萝卜与哪些蔬菜相克 求宫斗群号。。。 王晶是风月片导演,如今女儿出演风月片,王晶的债为何由女儿还? 请问有哪些好玩的宫斗群? 宫斗招新人,求帖子。 香港的风月片是啥意思? “广义灵感论”的本质是什么?其主要操作原则有哪些? 谁能给我几个宫斗群号 宫斗群叫什么名字好听(要符号的,不要太繁琐) 急!!求一篇文献综述。关于科学问题的探究 胡萝卜青菜鸡蛋可以一起吃吗 有没有类似古代宫斗的群人多一点热闹的 Linux 3.19 Kernel新功能一览 中医学能得到学理上的合法性辩护吗_重估中国传统医学的科学价值 暗黑破坏神法师如何练 “空旷的原野”可以写成什么词语? “小龙女“到现在的“花木兰“,刘亦菲为什么那么美? 小龙女那么美好,金庸为什么要安排那么不好的情节呢? 难怪刘亦菲从不接清宫剧,当她换上“甄嬛装”,到底有多尴尬? 我在树上捉到了一只蝴蝶幼虫,请问是什么种类?谢谢 合肥招聘网管 合肥兼职礼仪招聘 急!!!这种大虫子能变成什么蝴蝶?很大,有假眼 在合肥做兼职,哪里比较好? 力量与能量这两个词的区别 在合肥哪里有招聘的? 力量等于能量吗 合肥兼职包装工招聘在哪里可以找到,我需要招聘兼职包装工。 北美银月豹凤蝶的幼虫有毒吗 能量就是力量吗? 淘宝网店铺,卖女睡衣的。。请各位帮想个经典并且有寓意的名字! 空落落是什么意思? 杨过和小龙女谈恋爱,神雕什么感受? 力量与能量有什么联系