macOS 11.12 自带的 bash 是 3.4 版本的,下午给 Visual Studio Code 装了一个 Bash Debug
插件,插件要求的 bash 版本是 4.0+,就升级了一下 bash,而且 4.0 支持了一些新特性。
bash 4.0 新增支持了关联数组(associative arrays),改进了可编程完成函数(completion functionality),case-modifying 单词扩充,复合进程,增加 shell 句法和重定向。 shell 在分析内部命令替换上变得更严格,修正了 POSIX 虚拟接口的不兼容块。
使用 homebrew 安装 bash
最便捷的方式就是使用 brew 了,会默认安装 bash 的最新版本。
brew install bash
==> Installing dependencies for bash: readline
==> Installing bash dependency: readline
==> Downloading https://homebrew.bintray.com/bottles/readline-6.3.8.yosemite.bottle.tar.gz
……
替换系统自带 bash
sudo mv /bin/bash /bin/bash.old
sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash
使用以上命令发现没有操作权限,因为 MacOS 引入了 SIP(System Integrity Protection) 安全机制,导致软件层无法操作系统底层目录和文件,需要先关闭 SIP。
关闭 SIP 的操作步骤如下:
- 重启系统,按住
Command+R
进入恢复模式 - 进入恢复模式后,打开「实用工具」菜单中的终端
- 在 Terminal 中输入
csrutil disable
关闭 SIP (csrutil enable
为打开) - 重启系统
重启后重新执行:
sudo mv /bin/bash /bin/bash.old
sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash
大功告成,输入bash -version
查看系统 bash 版本是否正确被替换:
☁ ~ /bin/bash -version
GNU bash,版本 4.4.23(1)-release (x86_64-apple-darwin16.7.0)
Copyright (C) 2016 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html>
本软件是自由软件,您可以自由地更改和重新发布。
在法律许可的情况下特此明示,本软件不提供任何担保。
使用 chsh 来更换 shell, 而不要关闭系统 SIP 这个复杂而且容易出问题的方案
没玩过,这玩意是干嘛的。用过brew装过软件
Bash 就是 shell,你也可以理解为脚本。