Bash
1.1、bash简介
short for:Bourne Again Shell
是什么 ?:an sh-compatible shell that incorporates useful features from the Korn shell and C shell. It is intended to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It offers functional improvements over sh for both programming and interactive use. In addition, most sh scripts can be run by Bash without modification.
开发语言:C
开发组织:GNU
官方主页:http://www.gnu.org/software/bash

FSFBrian Fox取得GNU版权许可后于1988年开发出bash。 随着GNU/Linux的发展,bash开始流行起来。

bash是绝大多数GNU/Linux系统的默认的login shellnon-login interactive shell

1.2、通过包管理器安装bash
操作系统包管理器安装命令
macOSHomeBrewbrew install bash
GNU/LinuxLinuxBrewbrew install bash
aptsudo apt-get install -y bash
CentOSyumsudo yum install -y bash
dnfsudo dnf install -y bash
openSUSEzyppersudo zypper install -y bash
Alpine Linuxapksudo apk add bash

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm bash
Gentoo LinuxPortagesudo emerge bash
1.3、通过编译源码安装bash 

step1、安装依赖

下载时cURL
解压时targzip
编译时POSIX shGNU CoreUtilsGNU makeGCC ( gcc )   | LLVM / Clang
运行时
  • glibc ( libc.solibm.solibrt.solibdl.solibpthread.sold-linux-x86-64.so )
  • ncurses ( libtinfow.so )
  • readline ( libreadline.so )

step2、通使用curl命令下载Bash源码包 ()

curl -LO https://mirrors.tuna.tsinghua.edu.cn/gnu/bash/bash-4.3.tar.gz

step3、使用tar解压Bash源码包

tar vxf bash-4.3.tar.gz -C ~/bin

step4、进入~/bin/bash-4.3目录,并查看一下文件夹中的内容

step5、配置、编译、安装

./configure && make && sudo make install

注意:

因为macOS自带了bash,可执行文件是/bin/bash, 我们需要把这个可执行文件替换掉,执行如下命令:

sudo ln -f -s /usr/local/Cellar/bash/5.0.2/bin/bash /bin/bash

由于macOSSIP(System Integrity Protection)策略的存在, 要想能够执行上面的命令,必须先关闭SIP(System Integrity Protection),执行完上面的命令之后再打开SIP(System Integrity Protection)

使用csrutil关闭/打开SIP(System Integrity Protection)

1.4、bash命令 
1.4、配置bash
级别配置文件路径
系统级/etc/profile
用户级~/.profile~/.bash_profile|~/.bashrc

推荐使用Oh-My-Bash进行配置。

1.5、bash的内置命令

bash内置命令就是随bash一起构建的, 这些命令是bash的基础命令。 下面是bash中的内置命令

1.6、bash的外部命令

bash外部命令通常来自:

1.7、bash中使用命令的技巧

bash中可以运行的命令非常多,要全部记住这些命令的用法是不太现实的, 偶尔也难免会忘记一些用法,或者想要查询一些用法是否支持,我们就要查看帮助, 查看帮助文档是使用bash过程中最常用的一项技能。

bash的命令支持参数输入的, 短参数是用-引出,长参数用--引出,这是约定俗成的,但不是强制规定, 所以,有这个约定俗称的规则,我们通常是可以进行猜测的, 比如COMMAND -h或者COMMAND --help就是查看这个命令的简要使用方法,COMMAND -v或者COMMAND --version就是查看这个软件的版本等。

有事情,问男人(man)。通常,只要执行man COMMAND命令即可找到对应COMMAND的详细说明。

1.8、bash语言
1.9、bash-completion