1.2.2 Linux Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
操作环境在操作系统内核与用户之间提供操作界面,它可以描述为一个解释器。操作系统对用户输入的命令进行解释,再将其发送到内核。Linux存在几种操作环境,分别是:桌面(Desktop)、窗口管理器(Window Manager)和命令行Shell(Command Line Shell)。Linux系统中的每个用户都可以拥有自己的用户操作界面,根据自己的要求进行定制。
Shell是一个命令解释器,它解释由用户输入的命令,并且把它们送到内核。不仅如此,Shell有自己的编程语言,用于对命令的编辑,它允许用户编写由Shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,例如,它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
同Linux本身一样,Shell也有多种不同的版本。目前主要有下列版本的Shell:
①Bourne Shell:是贝尔实验室开发的版本。
②Bash:是GNU的Bourne Again Shell,是GNU操作系统上默认的Shell。
③Korn Shell:是对Bourne Shell的发展,在大部分情况下与Bourne Shell兼容。
④C Shell:是Sun公司(现已被Oracle公司收购)Shell的BSD版本。
Shell不仅是一种交互式命令解释程序,还是一种程序设计语言,它与MS-DOS中的批处理命令类似,但比批处理命令功能强大。在Shell脚本程序中可以定义和使用变量,进行参数传递、流程控制、函数调用等。
Shell脚本程序是解释型的,也就是说Shell脚本程序不需要进行编译,就能直接逐条解释,逐条执行脚本程序的源语句。Shell脚本程序的处理对象只能是文件、字符串或者命令语句,而不像其他的高级语言有丰富的数据类型和数据结构。
作为命令行操作界面的替代选择,Linux还提供了像Microsoft Windows那样的可视化界面——X-Window的图形用户界面(GUI)。它提供了很多窗口管理器,其操作就像Windows一样,有窗口、图标和菜单,所有的管理都通过鼠标控制。现在比较流行的窗口管理器是KDE和Gnome(其中Gnome是Red Hat Linux默认使用的界面),两种桌面都能够免费获得。