# Shell 是什么?

原文:What is a Shell?
注意:本文是对原文的一个翻译!

Shell是一个宏处理器,用于执行命令。宏处理器意味着,将文本和符号展开,创建一个更大的表达式。

Unix shell 既是一个命令解释器,也是一门编程语言。作为一个命令解释器,它提供了丰富的GUN工具集可以与用户进行交互。作为编程语言,它可以组合使用这些工具。创建的文件能包含命令,而这个文件同时也将成为一个命令──这是个新的命令,有着与/bin中的命令一样的状态。用户组合命令,建立自动化命令的环境。

Shell可以交互的使用,也可以以非交互的方式使用。交互状态,从键盘获取输入;非交互状态,从文件中执行命令。

Shell能以同步(synchronously)或异步(asynchronously)的方式执行命令。重定向构造,可以控制输入和输出命令的粒度(fine-grained)。shell也允许控制命令环境的内容。

Shell提供了一些内建的命令,用于实现工具所不能或不方便实现的功能。这些命令有:

  • cd
  • break
  • continue
  • exec
    • exec 不能在外部实现,因为它会直接操作shell本身。
  • history
  • getopts
  • kill
  • pwd
    有一些命令可以以工具的方式实现,但实现在中shell更为便。

执行命令只是基本,与大多数的编程语言一样,shell也提供了变量(variables),流控制结构(flow control constructs),引用(quoting)与函数(function)。

Shell提供了专门用于交互使用的功能,有:

  • 作业控制(job control)
  • 命令行编辑(command line editing)
  • 命令历史(command history)
  • 别名(aliases)

热门相关:帝少的专属:小甜心,太缠人   善意的出轨   寂静王冠   刺客之王   寂静王冠