理解shell

对于入门者来说,很多词语都是一知半解的状态,对于shell也是如此,今天我就来理一理这个词语

shell是个什么东西

  1. 翻译成中文“壳(qiao)”这就形象多了,壳是外面的,那么必然要有里面的,里面的就是“核”也就是内核

    在计算机科学中,壳指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

  2. 我们在使用计算机的时候,从来都不是跟cpu说话,而是跟电脑的应用程序打交道,跟对话框打交道,跟命令打交道,我们跟计算机内核之间有一个桥梁,这个桥梁就是shell

仅仅这些吗?

  • 既然都这么问了,那就必然不是。
  • shell也指语言(针对于这种shell 的语言)。
  • 我们可以把shell理解成一个程序,程序实现的功能我们之前已经提到了。
  • 与音乐软件类比,我们听歌有不同的软件,shell也有不同的软件,而且会更新,我们对shell 的操作,与他的对话需要通过shell语言来进行。

分类

shell分为两大类,分别是:

  1. 图形界面shell
  2. 命令行式shell

在windows里(举例)

  • 我们用鼠标对软件的点击从而获得电脑的反应的过程可以理解为我们对于shell的操作
  • cmd则是我们用命令行式的操作

shell版本

一:图形界面shell(Graphical User Interface shell 即 GUI shell)

应用最为广泛的 Windows Explorer (微软的windows系列操作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。

二、命令行式shell(Command Line Interface shell ,即CLI shell)

  • bash / sh / ksh / csh / zsh(Unix/linux 系统)
  • (MS—DOS系统)
  • Cmd.exe/ 命令提示字符(Windows.NET系统)
  • Windows PowerShell(支持 .NET Framework 技术的 Windows NT 系统)

在linux里

我们下载centos的时候现在的版本支持很多的shell,学习的时候默认的是bash,可以直接在命令行中敲入版本的名称来进行改变(当然前提是linux里具备这个版本)

广义与狭义

据我目前理解的来看,shell有两种理解方法,我们以上提到的算是广义的,即:包括图形与命令行式。但是具体我们提到的时候往往指的是命令行式的shell。

写在最后

当我们写了一大段命令然后让shell对这段命令自动运行的时候,包含这段命令的文件就称之为脚本,所以shell语言也是脚本语言;所谓脚本语言是指那些不需要编译,可以直接用,由解释器来负责解释的语言。我们可以用脚本语言来写出脚本从而实现一系列的操作。

阅读 152

推荐阅读