常见的shell有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的shell有哪些相关的知识,希望对你有一定的参考价值。

  三种主要的 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 显示清单。按一次向上键会将最后一个历程事件放在您的命令列上,再按一次会放入下一个历程事件。按向下键则会将前一个事件放在命令列上。
参考技术A

Linux常用的shell有三种:

1、Bourne shell

Bourne shell是一个交换式的命令解释器和命令编程语言。

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

2、C shell

C shell是一种比Bourne shell更适合的变种shell,使用的是类C语言,csh是具有C语言风格的一种shell,其内部命令有52个,比较庞大。

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

3、korn shell

korn shell是一个Unix shell,它由贝尔实验室的David Korn在二十世纪八十年代早期编写。它完全向上兼容Bourne shell并包含了c shell的很多特性,例如贝尔实验室用户需要的命令编辑。

Korn shell是Bourne shell的超集,由AT&T的David korn所开发。它增加了一些特色,比C shell更为先进。Korn shell的特色包括了可编辑的历程、别名、函式、正则表达式万用字符、内建算术、工作控制、共作处理和特殊的除错功能。Korn shell提示符号的默认值也是$。

老男孩教育每日一题-第69天-shell脚本知识点:linux系统脚本中trap信号都有哪些,如何进行使用?

题目

shell脚本知识点:linux系统脚本中trap信号都有哪些,如何进行使用?

参考答案:

【trap信号命令说明】

trap命令用于指定在接收到信号后将要采取的行动,trap命令的一种常见用途是在脚本程序被中断时完成清理工作。
历史上,shell总是用数字来代表信号,而新的脚本程序应该使用信号的名字,它们保存在用#include命令包含进来的signal.h头文件中,在使用信号名时需要省略SIG前缀。
可以在命令提示符下输入命令trap -l来查看信号编号及其关联的名称。

【trap信号命令用法】

trap命令的参数分为两部分,前一部分是接收到指定信号时将要采取的行动,后一部分是要处理的信号名。
· 要重置某个信号的处理条件到其默认值,只需简单的将command设置为-。
· 要忽略某个信号,就把command设置为空字符串‘’
一个不带参数的trap命令将列出当前设置的信号及其行动的清单。

【trap重要信号说明】

信号信息信号说明
HUP(1)挂起,通常因终端掉线或用户退出而引发
INT(2)中断,通常因按下Ctrl+C组合键而引发
QUIT(3)退出,通常因按下Ctrl+\组合键而引发
ABRT(6)中止,通常因某些严重的执行错误而引发
ALRM(14)报警,通常用来处理超时
TERM(15)终止,通常在系统关机时发送

备注

今天是每日一题陪伴大家的第__69天__,期待你的进步。
对于题目和答案的任何疑问,请在博客评论区留言。
往期题目索引
http://lidao.blog.51cto.com/3388056/1914205

本文出自 “李导的博客” 博客,请务必保留此出处http://lidao.blog.51cto.com/3388056/1936555

以上是关于常见的shell有哪些的主要内容,如果未能解决你的问题,请参考以下文章

老男孩教育每日一题-第69天-shell脚本知识点:linux系统脚本中trap信号都有哪些,如何进行使用?

Linux中shell 的类型都有哪些。

Linux命令----shell

linux shell都有哪些 类型

shell脚本中一些特殊符号都有哪些

linux常用的shell都有哪些