红联Linux门户
Linux帮助

第一小时: Shell基础

发布时间:2008-02-18 00:06:44来源:红联作者:roina
1. 命令(Command)
命令在Unix中指一个可以运行的程序。命令有简单命令,复杂命令和复合命令。复杂命令可以带有参数和选项;复合命令是多个命令的组合,中间用“;”分隔。

2. Shell
Shell是一个特殊的程序,他提供了用户与系统的接口,Shell收集用户输入,根据用户输入执行程序。所以在Unix中shell也被认识是一个解释器。

3. 各种类型的Shell
在Unix世界中,主要有两种类型的Shell:
Bourne Shell(包括sh,ksh和bash)
C Shell(包括csh和tcsh)

4. 最初的Bourne Shell
70十年的中期,由但是在新泽西AT&T贝尔实验室工作的Stephen Bourne完成。Bournce Shell是第一个出现在Unix系统上的Shell。通常安装在/bin/sh。它同时也是一个功能强大的脚本编程语言,语法类似ALGOL编程语言。Bourne Shell具有进程控制,变量,正则表达式,流程控制,强大的输入输出和函数特性。不足在于,缺少文件名自动补齐,不支持命令历史和命令编辑,执行多个后台进程和任务困难。

5. C Shell
1980早期,Bill Joy开发了C Shell,当时他还在加州大学伯克利分校。C Shell使得用户更容易的与Shell交换,另一个变化是编程风格跟像C语言。它支持命令历史,命令别名,文件名补齐和任务控制,不足在于输入输出较弱,缺少函数支持和模糊的语法。

6. Korn Shell
AT&T贝尔实验室的David Korn开发了Korn Shell.它将C Shell的优点融入到Bourne Shell中。它将命令历史和历史置换,命令别名和函数支持,文件名补齐和数组带到了Bourne shell中。

7. Bourne Again Shell
它是GNU计划的一部分,用来代替GNU系统中的sh。bash由自由软件基金的Brian Fox编写,现在由Chester Ramey维护。

Bash实现了IEEE POSIX 1003.2/ISO 9945.2 Shell和Tool规范。具有很强的可移植性。除了具有Korn Shell的优点,还有支持:

变量名,用户名,机器名,命令和文件名的自动补齐
cd命令中的路径名的拼写改正
无大小限制的数组
基于2到64的整数计算。
文章评论

共有 2 条评论

  1. weihuan 于 2008-03-16 12:24:20发表:

    学习中 谢谢

  2. dzj 于 2008-02-24 00:07:23发表:

    shell