bash是一个为GNU计划编写的Unixshell。它的名字是一系列缩写:Bourne-AgainSHell—这是关于Bourneshell(sh)的一个双关语(Bourneagain/bornagain)。Bourneshell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version7Unix一起发布。bash则在1987年由布莱恩·福克斯创造。
Bash(GNUBourne-AgainShell)是许多Linux发行版的默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个ShellScript通常可以在很多种Shell上使用。
bash是大多数Linux系统以及MacOSX默认的shell,它能运行于大多数类Unix风格的操作系统之上,甚至被移植到了MicrosoftWindows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。
bash的命令语法是Bourneshell命令语法的超集。数量庞大的Bourneshell脚本大多不经修改即可以在bash中执行,只用了Bourne特殊变量或使用了Bourne的内置命令的脚本才需要修改。bash的命令语法很多来自Kornshell(ksh)和Cshell(csh),例如命令行编辑,命令历史,目录栈,$RANDOM和$PPID变量,以及POSIX的命令置换语法:$(…)。作为一个交互式的shell,按下TAB键即可自动补全已部分输入的程序名,文件名,变量名等等。
注:这里所说的Bash是指bash环境,而非shell编程,所以本章重点讲的是Bash在linux中是如何运行的。
Bash的常用语法包括:命令、选项、参数[必填|可选]
举个例子: