原文:https://www.cnblogs.com/wild-book/p/5041462.html
- 1. 查看系统默认shell
输入指令:
[root@RHEL tmp]# echo $SHELL
执行结果:
[root@RHEL tmp]# echo $SHELL /bin/bash
- 2. 部分linux版本中的 sh 本质是 bash
输入指令:
[root@RHEL tmp]# ll /bin/sh执行结果:
[root@RHEL tmp]# ll /bin/sh lrwxrwxrwx. 1 root root 4 Apr 27 2015 /bin/sh -> bash
- 3. 查看shell版本
输入指令
[root@RHEL tmp]# echo $BASH_VERSION执行结果
[root@RHEL tmp]# echo $BASH_VERSION 4.1.2(1)-release
- 4. 安装最新版本bash
4.1. 下载bash源代码
[root@RHEL tmp]# wget http://ftp.gnu.org/gnu/bash/bash-4.3.30.tar.gz4.2. 解压源代码
[root@RHEL tmp]# tar xvzf bash-4.3.30.tar.gz4.3. 配置编译环境
[root@RHEL tmp]# cd bash-4.3.30 [root@RHEL bash-4.3.30]# ./configure4.4. 测试编译,判断是否成功
oot@RHEL bash-4.3.30]# make4.5. 编译bash
oot@RHEL bash-4.3.30]# make install在默认情况下,bash将被安装到/usr/local/bin/ 下面
4.6. 查看是否安装成功,首先切换到新版本的bash的安装目录
[root@RHEL bash-4.3.30]# cd /usr/local/bin/ [root@RHEL bin]# ll total 39148 -rwxr-xr-x 1 root root 2529633 Dec 12 15:57 bash -r-xr-xr-x 1 root root 6806 Dec 12 15:57 bashbug
4.7. 切换到新版本的bash,查看当前版本[root@RHEL bin]# ./bash [root@RHEL bin]# echo $BASH_VERSION 4.3.30(3)-release
4.8. 使用新版本shell
从上面的命令得知,当前的bash的版本为4.3.30.这表示新版本的bash已经编译安装成功。但是目前用户还不能使用这个新的shell。因为出于安全考虑,用户只能使用/etc/shells文件列出的shell,下面命令显示该文件的内容:
[root@RHEL bin]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh
从上面输出结果可知,用户可以使用5个shell,而前面2个实质都是bash。
为了使用新版本shell,我们需要添加路径配置,配置方法有多钟,此处提供一种用vim修改/etc/shells,修改信息如下:
/bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /usr/local/bin/bash