栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Mac 升级 Bash 到最新版本

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mac 升级 Bash 到最新版本

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

一、场景概述
  • 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 许可证第三版或者更新版本 
    
    本软件是自由软件,您可以自由地更改和重新发布。
    在法律许可的情况下特此明示,本软件不提供任何担保。
    
     ~/ /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 文件中,作为系统默认的 shell 即 login 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 menu 中 Terminal

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号