Linux shell编程(一):shell是什么?

什么是shell?

简单来说,shell是一个执行命令的宏处理(macro processor)器。
术语宏处理器(macro processor)是指将文本和符号扩展到创建更大的表达式的功能。

在linux系统中shell介于Linux内核与终端用户之间,让用户通过可以shell来操作内核。

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

Unix shell可以作为解释器(interpreter)和编程语言使用。

当作为命令解释器使用时。shell为用户接口提供了丰富的GNU命令集,如 cd dir ls find ...等实用的命令。

当作为编程语言时。shell特性允许将多个命令组合在一起,可以创建包含命令的文件,并成为命令本身。
这些新命令在诸如“/bin”的目录中具有与系统命令相同的状态,允许用户或组建立自定义环境来自动化它们的常见任务。

Shell可以在交互式模式或非交互式模式下使用。

  • 交互式: 执行命令从键盘键入
  • 非交互试:执行从文件读取到命令

shell允许以同步和异步方式执行GNU命令。在接受更多输入之前,shell将等待同步命令完成;异步命令在读取和执行其他命令时,继续与shell并行执行。“重定向”构造允许对这些命令的输入和输出进行细粒度控制。此外,shell允许对命令环境的内容进行控制。
shell还提供了一组内置命令(“builtins”),实现功能不可能或不方便通过单独的实用程序获得。例如,“cd”、“break”、“continue”和“exec”都不能在shell之外实现,因为它们直接操纵shell本身。“history”、“getopts”、“kill”或“pwd”的内置程序可以在不同的实用程序中实现,但它们更便于作为构建命令使用。后面的部分将描述所有的shell构建。

与其他编程语言相同,shell也提供了变量,流程控制,引用,函数。

shell中的常见名词

定义解释
POSIX一个基于Unix的开放系统标准系列。Bash主要关注POSIX 1003.1标准的外壳和实用程序部分。
blank一个空格或者制表符
builtin由shell本身在内部实现的命令,而不是文件系统中的某个可执行程序。
control operator流程控制语句,执行控制功能的“令牌”。
exit status命令返回给它的调用者的值。该值限制为8位,因此最大值为255。
field一个文本单元,它是一个shell扩展的结果。扩展后,当执行一个命令时,结果字段被用作命令名和参数。
filename用于标识文件的字符串
job由管道组成的一组过程,以及由它派生的任何进程,它们都在同一个进程组中。
job control用户可以有选择地停止(暂停)并重启(恢复)进程的机制。
metacharacter当未被引用时,一个字符将单词分开。元字符是一个“空白”或下列字符之一。'\', '&', ';','(', ')', '<', or '>'.
name由字母、数字和下划线组成的“单词”,以字母或下划线开头。名称被用作shell变量和函数名。也称为“标识符”。
operator“控制操作符”或“重定向操作符”。对于重定向操作符的列表。运算符包含至少一个未被引用的“元字符”。
process group每个具有相同进程组ID的相关进程的集合。
process group ID在其生命周期中表示“进程组”的唯一标识符。
reserved word一个对shell有特殊意义的词。大多数保留字引入了shell流控制结构,例如“for”和“while”。
return status“退出状态”的同义词。
signal一种机制,通过该机制可以通过系统中发生的事件的内核来通知进程。
special builtin一个被POSIX标准分类为特殊的shell内置命令。
token由shell层考虑单个单元的一系列字符。它要么是一个“单词”,要么是一个“运算符”。
word由shell作为单元处理的一系列字符。词汇可能不包括未引用的“元字符”。

转载于:https://blog.51cto.com/jlnetc/2082809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值