总目录:
1,bash 简介
2,名词定义
3,shell 基本特性
4,shell 内建命令
5,shell 变量
6,bash 特性
7,作业控制
8,命令行编辑
9,使用命令历史
10,安装 bash
1,Bash 介绍
1.1 什么是 Bash
bash 是一种 shell 程序,shell 是 GNU 操作系统的命令语言解释器。
bash 全称是 Bourne-Again Shell。
sh 的全称是 Bourne Shell。
bash 与 sh 大多兼容,且纳入了 ksh 和 csh 的有用特性。
bash 是 sh 的改进版。
1.2 什么是 shell
shell 是一个“宏处理器”,功能是将文本和符号扩展成更大的表达式。
Unix shell 既是命令解释器,又是编程语言。
作为命令解释器,shell 提供了一个利用 GNU 丰富的实用程序集的接口。作为编程语言,又可以有效结合利用这些程序。
写有命令的文件,本身也可变为命令(shell脚本)。
shell 可交互式使用,接受从键盘输入的命令。shell 非交互式的执行,是指从文件中读取命令并执行。
shell 可以同步或异步执行 GNU 命令(cmd &)。
重定向功能可对命令的输入和输出进行细粒度的控制
shell 提供一组内建命令,因为一些对 shell 操作的功能由外部命令实现或者不太可能,或者不太方便实现。
比如,cd, break, continue, exec,这些操作 shell 的命令不可能由外部命令实现。
history, getopts, kill, pwd 可以由外部命令实现,但内建命令实现更方便。
shell 自身的编程语言与其他高级语言一样,提供“变量”,“流控制结构”,“引用”,“函数” 等特性。
shell 为交互式使用提供了一系列特性:作业控制,命令行编辑,命令历史,别名。
2,名词定义
POSIX
这是基于 Unix 的开放系统标准,bash 关注这个标准中关于 “Shell” 和 “实用程序”的部分
blank
包括“空格”和“制表符”
builtin
shell 内建命令,与之相对的在文件系统某处的可执行程序为外部命令
control operator
控制运算符,提供控制功能的 token,包括:换行符, ||, &&, &, ;, ;;, |, |&, (, )
exit status
命令的状态返回值,用于标记命令执行成功与否。取值范围 0-255
field
一个字段,shell 展开结果中的一个文本单元。展开完成后,一个 field 被当做“命令名” 或 “参数” 使用。
filename
文件名,一串用于标识文件的字符
job
进程作业,一组进程所组成的管道,及其派生的进程,属于同一个进程组
job control
进程控制,用户通过一种机制可以有选择的 挂起(suspend) 或 恢复(resume)进程。
metacharacter
元字符,是一个未被(单双引号以及反斜线)引用的字符,可用于分隔单词。包括:空格, tab, |, &, ;, (, ), <, >
name
一个单词,由 字母,数字,下划线所组成。用作变量名和函数名
opertor
运算符(“控制运算符” 或者 “重定向运算符”),一个 operator 含有至少一个未被引用的元字符
process group
一组相关的进程,有相同的 process group ID
process group ID
一组进程的 ID
reserved word
保留字(关键字),对于 shell 有特殊意义的单词。大部分是用于 “流控制” 的单词,如 for, while
return status
即 exit status
**signal **
通过信号机制,系统中的事件可发消息给一个进程
special builtin
特别的内建命令
token
一组字符,在 shell 中可辨认为一个单元。是一个 “单词” 或者 “运算符”
word
单词,在 shell 中可辨认为一个单元的一组字符。word 不能含有未被引用的元字符(metacharacter)
网友评论