shell的本意即“壳”,它是与核相对的一个概念。是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令解释语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
一般为了加快命令的运行,同事更为有效的定制shell程序,shell中定义了一些内置的命令,我们把shell自身解释执行的命令成为内置命令,如cd、pwd、exit和echo等,都是属于bash内置命令。当用户登录系统时,shell及这些命令就被载入内存,一直运行。除此,linux还有一些可执行文件,这些命令不是shell内置命令,例如ls是一个可执行文件存放在/bin/ls。这些命令只有被调用时才装入内存。shell执行时先判断是否为内置命令。
各个操作系统都有自己的shell,Linux下除了默认的Bourne again shell(bash),还有很多其他的shell,例如 c shell(csh)、korn shell(ksh)、Bourne
shell(sh)和Tenex C shell(tcsh)等。每个版本的shell功能不相同,但各有千秋,现在的Linux系统发行版一般都是以bash作为默认的shell
用户登录系统后,#表示的是超级用户,*表示的是普通用户。
摘自:http://www.cnblogs.com/TheWeepies/archive/2012/12/28/2837815.html