MacOS Shell升级

395 阅读2分钟

我为什么要升级Bash,弃用系统bash

1、想系统学习一遍shell做一个简单入门但只有Mac电脑(学shell还是要Windows设备,然后用vmware开虚拟机)
2、MacOS系统默认的bash是3.0版本,很多功能不支持,比如不支持关联数组,用macOS学习或写shell脚本带来很大不便
3、本机MacMini 201816G内存,256G硬盘(清完Xcode缓存和不需要的模拟器仅剩下50G);安装双系统或虚拟机磁盘空间都不太够(苹果设备性价比就是差,下一台PC肯定是台式电脑然后淘宝找大神远程安装双系统,黑苹果+Windows)

安装最新bash

# 查看bash版版
bash --version
:<<EOF
默认结果为:

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc.
EOF

# 安装最新bash
brew install bash

# 修改shells配置
:<<EOF
修改/etc/shells配置文件,在末尾添加一行:/usr/local/bin/bash

本机修改后
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash
EOF

# 配置完后,看一下Mac上是否有两个版本的bash
which -a bash
:<<EOF
/usr/local/bin/bash # 刚安装最新5.0版本
/bin/bash # mac自带版本
EOF

切换最新bash

chsh -s /usr/local/bin/bash

切回老bash

chsh -s /bin/bash

切换zsh

chsh -s /bin/zsh

shell配置:

bash读取的配置文件:~/.bash_profile文件  
zsh读取的配置文件:~/.zshrc文件

命令记录地址

echo $HISTFILE # 查看历史记录路径
:<<EOF
zsh:~/.zsh_history
老版本:~/.bash_history
新版本:~/.bash_sessions/xxxx.historynew
EOF

# 修改历史记录路径(添加如下命令到Bash配置文件:~/.bashrc 或 ~/.bash_profile 或 ~/.zshrc)
export HISTFILE=~/.custom_history


# 其他历史记录命令
history # 查看全部历史记录
history -c # 清楚历史记录
history | tail -n 10 # 查看最后10条历史记录
history | grep 'keyword' # 检索有'keyword'的历史记录