源码更新 Bash 版本
编译安装
确定 Shell 版本
现在主流的 Linux 发行版大都自带了Bash,除了极个别(比如 Ubuntu)会在执行脚本时从交互式的 Bash 切换为其他的 Shell(例如 Dash)外,在大部分的情况下都以 Bash 为主。
# echo $SHELL
# bash --version
# echo $BASH_VERSION
源码下载并解压
首先访问 Bash 下载页面,在 Downloads 中选择一个下载的链接,嫌网速慢可以自己挑一个 GNU Mirror 进行下载。
# wget http://ftp.gnu.org/gnu/bash/bash-4.4.tar.gz
然后进行解压
# tar -zxvf bash-4.4.tar.gz
编译安装
运行当前目录下的 configure,将 bash 安装到 /usr/local 目录中,不过因为某些原因,需要使用
--prefix
指定安装路径,方便管理。# ./configure --prefix=/usr/local/bash4.4 && make && make install
使用新版本的 Bash
注册 Shell 路径
虽然已经安装完成,但是还需要在系统中填写新 Shell 的路径,即直接编辑
/etc/shells
文件,在文件末尾追加 Shell 路径。# echo "/usr/local/bash4.4/bin/bash" >> /etc/shells
使用 chsh 修改登陆后的默认 Shell
没有附加参数时,chsh 默认修改 root 用户的登录shell,后置参数为用户名,即修改该用户登陆后使用的 shell。chsh 命令做的工作就是修改了
/etc/passwd
文件中登录 Shell 的路径,所以如果明白了 chsh 的原理,实际上可以手工编辑 /etc/passwd
文件。# chsh cubat
Changing shell for cubat.
New shell [/bin/bash]: /usr/local/bash4.4/bin/bash
Shell changed.
评论
发表评论