什么是shell?

在计算机发展的早期,图形系统出现之前,没有鼠标,甚至没有键盘。那时候人们如何与计算机交互呢?最早期的计算机使用打孔的纸条向计算机输入命令,编写程序。后来计算机不断发展,显示器、键盘成为计算机的标准配置,但此时的操作系统还不支持图形界面,计算机先驱们开发了一种软件,它接受用户输入的命令,解释之后,传递给操作系统,并将操作系统执行的结果返回给用户。这个程序像一层外壳包裹在操作系统的外面,所以它被称为shell。

系统结构图

在图形界面系统出现之前,shell这个命令行程序曾经统治计算机的交互接口数十年之久,并由大名鼎鼎的Unix系统发扬光大,诞生了多种shell软件,如bsh、bash、csh、ksh、zsh。这些shell功能都非常强大,不仅可以供用户输入命令,它们还都支持shell编程语言,可以完成复杂的操作。这些shell目前都可以在*nix系统上使用。即使后来windows统治PC,对于一般人来说,shell的光彩逐渐暗淡,它并未因此退出操作系统。在windows上,cmd 可以认为就是一种shell,同时在windows的后续版本发展出更强大的powershell。