shell广义上可以指操作系统和用户接口的界面,图形界面也是一种shell。因为图形界面的本质也是实现“把人类用户的操作意图转述给内核”。
shell有很多种,有bash、csh、ksh等。bash的第一句语言是这样的:navlab@navlab-ThinkPad-E440:~$。
“@”之前的是当前用户的用户名
“@”后面,“:”前面是计算机名。
“:”后面、“$”前面是当前所在目录,就是当前输入命令的人所在的位置。“~”代表用户的家目录
“$”则是提示符,在“$”后面就可以输入命令了。
提示::普通用户的提示符是$,如果用root登入终端,则提示符是#,但Ubuntu系统默认禁用root用户,所以一般看不到#提示符。
Shell既是一种命令语言(linux命令行),又是一种程序设计语言(shell脚本)。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统的关键。
上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。
Linux上常见的Shell脚本解释器有bash、sh、ash、csh、ksh,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。