首页 > 代码库 > Linux Shell介绍

Linux Shell介绍

1.什么是shell?

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

实际上,shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。


2.shell类型

2.1 Bourne Shell(简称,sh)

首个重要的标准Unix Shell是1970年底在V7 Unix(AT&T第7版)中引入的,并且以它的创始科技部基础条件平台“国家气象网络计算应用节点建设”(2004DKA50730)资助者 Stephen Bourne的名字命名。Bourne shell 是一个交换式的命令解释器和 命令编程语言。Bourne shell 可以运行为login shell或者login shell的子shell(subshell)。只有login命令可以调用Bourne shell作为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为所有的用户定制环 境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。


2.2 C Shell(简称,csh)

Bill Joy于20世纪80年代早期,在Berkeley的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。


2.3 Korn Shell(简称,ksh)

有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种状况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了所有的C shell的交互式特性,并融入了Bourne shell的语法。因此,Korn shell广受用户的欢迎。它还新增了数学计算,进程协作(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操作系统的国际标准.POSIX不是一个操作系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。


2.3 Bourne Again Shell(简称,bash)

bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat,Slackware,Caldera)都以bash作为缺省的shell,并且运行sh时,其实调用的是bash。


2.4 POSIX Shell(简称,psh)

 POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0,POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh。

各主要操作系统下缺省的shell:

  • AIX下是Korn Shell
  • Solaris,缺省的是Bourne shell
  • FreeBSD缺省的是C shell
  • HP-UX缺省的是POSIX shell
  • Linux是Bourne Again shell


3.什么shell脚本?

shell脚本与Windows/Dos下的批处理相似,是一个包含命令序列的文本文件。


4.shell与shell脚本的区别?

 shell:shell是一个命令解析器

 shell:shell脚本是一个包含命令序列的文本文件


注:整理自网络