文章目录

  • 一、场景概述
  • 二、前置安装
  • 三、升级安装
  • 四、置为默认(可选)

一、场景概述

  • Mac 自带的 bash shell 版本为 2007 年的发行版本 3.2.57(1)-release

  • 由于该版本授权为 GPLv2, 3.2 的下一个版本为 4.0,使用 GNU General Public License v3 (GPLv3) 授权,苹果一直没有想采用该协议的授权,所以一直没有升级

  • 由于在工作中需要编写一些 shell 脚本,需要对编写的脚本进行 debug 调试,而不巧的是,支持调试功能的 bash 在 4.0 以后,所以才索性将 bash 升级到目前最新到版本 5.1.8

二、前置安装

  • 采用 Mac 安装软件可以使用 brew 来实现非常到方便,所以如果是第一次在 Mac 种采用命令行到方式安装软件,不妨采用 brew 来安装

  • 点击此处查看具体到安装和卸载步骤

三、升级安装

  1. 查看当前 bash 版本

     // /bin/bash --version
    GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
    
  2. 采用 brew 安装

    brew install bash
    

    P.S

    • 如果此处安装出错,比如证书过期、等等错误,可以采用 brew doctor 来自检 brew 工具包,根据自检的警告提示执行相应的提示命令(可能会升级你的 Mac 系统的小版本)
  3. 查看安装的 bash

     // which -a bash
    /usr/local/bin/bash
    /bin/bash
    

    P.S

    • 安装新版的 bash/usr/local/bin 下面,而系统自带的 bash/bin 下面

    • 如果想使用新版本的 bash 必须要保证 PATH 中的 /usr/local/bin 排在 /bin 的前面

      cd ~
      cat .bash_profile
      
  4. 查看 bash 版本

     ~/ bash --version
    GNU bash,版本 5.1.8(1)-release (x86_64-apple-darwin19.6.0)
    版权所有 (C) 2020 自由软件基金会
    许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html>本软件是自由软件,您可以自由地更改和重新发布。
    在法律许可的情况下特此明示,本软件不提供任何担保。 ~/ /bin/bash --version
    GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)
    Copyright (C) 2007 Free Software Foundation, Inc.
    

四、置为默认(可选)

  • 方案一:(不改变原有系统的 /bin/bash

    1. 将新版本的 bash 路径添加到 /etc/shells 文件中,作为系统默认的 shelllogin shell(登录到系统时所使用的 shell

      /bin/bash
      /bin/csh
      /bin/dash
      /bin/ksh
      /bin/sh
      /bin/tcsh
      /bin/zsh
      /usr/local/bin/bash
      
    2. 执行 chsh 设置为默认 shell

      sudo chsh -s /usr/local/bin/bash
      

    P.S

    • 在写 bash 脚本的时候,第一行默认写法是 #!/bin/bash 显示设置使用 /bin/bash 执行脚本

    • 如果想确保使用最新版本的 bash 执行可以在脚本的第一行修改为 #!/usr/local/bin/bash

  • 方案二:(改变了原有系统的 /bin/bash

    1. 替换系统自带 bash,并做备份

      sudo mv /bin/bash /bin/bash.origin
      sudo ln -s /usr/local/opt/bash/bin/bash /bin/bash
      
    2. 由于 MacOS 下的 sh 并不是直接链接 bash,而是 bash 的一个文件拷贝,所以还要替换默认的 sh 指向的命令为 bash

      sudo mv /bin/sh /bin/sh.origin
      sudo ln -s /usr/local/opt/bash/bin/bash /bin/sh
      

    P.S 如果以上替换显示没有权限的操作方式

    • 重启 OSX 系统,然后按住 Command + R

    • 出现界面之后,选择 Utilities menuTerminal

    • Terminal 中输入 csrutil disable 关闭 SIP (csrutil enable 打开SIP)

    • 重启 reboot OSX 重启后,以上的重命名和软链接即可进行操作了。待操作完毕以后,再将 SIP 开启即可。

Mac 升级 Bash 到最新版本相关推荐

  1. linux centos升级php_CentOS使用yum升级php到最新版本

    CentOS的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到最新版本,比较常见的是升级到5.2.6版本 ...

  2. pip show pip可以查看pip的版本以及升级pip到最新版本

    输入命令:pip show pip可以查看pip的版本,如果不是最新版最后会有提示如下: 输入命令:python -m pip install --upgrade pip可以升级pip到最新版本.

  3. mac更新go到最新版本

    mac更新go到最新版本 记录一下如何简单快捷(只需三步)的更新mac golang 到最新版本,适合任何版本的go 查看版本 > go version go version go1.17.4 ...

  4. Linux升级gcc到最新版本gcc-11.2.0

    Linux升级gcc到最新版本gcc-11.2.0 当前环境 更新方法 1. 下载最新的源码包并解压缩 2.下载依赖及配置文件 3. 配置 4. 编译 5. 安装 6. 验证gcc版本 7. 删除旧版 ...

  5. Linux升级gcc到最新版本--gcc-9.1.0

    Linux升级gcc到最新版本–gcc-9.1.0详细步骤 一.下载gcc最新的源码包–>wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0. ...

  6. yum如何升级php,CentOS 5.3 通过yum升级 php到最新版本的方法

    方法一 CentOS5.3的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到5.2.9,比较常见的是升级 ...

  7. 升级bugzilla 到最新版本成功 bugzilla 3.2

    升级bugzilla 到最新版本成功 bugzilla 3.2 Stable Release (3.2) Bugzilla 3.2 is our current stable release in t ...

  8. Mac下升级ruby至最新版本

    升级ruby Mac OS自身安装的有ruby,但是版本较低,为2.0.x 而安装CocoaPods,最低版本是2.2 查看ruby版本 ruby --version 安装homebrew ruby ...

  9. mac升级php后旧版本还在,Mac下更新自带的PHP版本

    Mac一般自带的PHP版本为5.*,现在PHP7.2.9都已经出来了,由于PHP7性能的飙升,和Laravel最新框架至少需要7.1的支持,所以需要更新Mac自带的PHP版本到最新版本. 1.下载和安 ...

  10. mac升级php后旧版本还在,老版本mac如何升级系统

    老版本mac如何升级系统? 在 Mac App Store 的搜索栏里搜索 macOS Mojave,点击下载,在高级中勾选"下载可用更新",根据提示下载安装即可完成系统升级,12 ...

最新文章

  1. LeetCode.3-最长无重复字符子串(Longest Substring Without Repeating Characters)
  2. Scala函数作为参数传递示例
  3. 树莓派3 mysql端口_树莓派3 之 安装Mysql服务
  4. python 日志函数参数_将日志信息作为参数传递给函数
  5. android Animation 动画。淡出动画
  6. JZOJ5857 【NOIP提高组模拟A组2018.9.8】没有上司的舞会
  7. GitHub(从安装到使用)
  8. 特斯拉宣布在美召回5974辆Model 3和Model Y
  9. C语言调用拼多多api,vb CommonDialog 属性
  10. 拓端tecdat|R语言用相关网络图可视化分析汽车配置和饮酒习惯
  11. jdk的wsimport方法实现webservice客户端调用服务
  12. VB.NET合并图片
  13. 多节点什么网络取得技术性突破_我国学者研究“多节点量子网络”取得基础性突破...
  14. 线性方程组——Jacobi迭代和G_S迭代
  15. 通达信macd接口指标
  16. 双窗格文件管理器:Commander One PRO Mac中文版
  17. 生成的包含卫兵:一次替代实用主义
  18. 在不开启回收站的情况下恢复Hadoop误删除文件
  19. 生成带logo的二维码
  20. php获取证书编号没有serialNumberHex只有serialNumber处理方法

热门文章

  1. AD20 制作 Logo
  2. ‘github提交超时‘
  3. 为什么说龙妈能活到最后?
  4. 在内核中创建文件 filp_open/sys_open
  5. Visual Studio 2015创建ASP.NET5项目“DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' 无法安装的错误...
  6. 李白打酒 递归 C语言
  7. 通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页手机微信播放
  8. 2021年,小灰都读了哪些书?
  9. 服务器开机系统进不去怎么办,开机就进BIOS进不去系统怎么处理
  10. 黄瓜客户端java_建造者模式