用 Zsh 配置 shell 终端
说明
一般的操作系统会自带 bash shell ,但是 bash shell 不是很好用,因此决定做一个升级,提高开发效率
1. fish shell
最开始安装的是 fish shell ,这个 shell 的优点就是使用默认配置,就可以满足绝大部分的开发需求(提示、补全、历史)。
1. 安装
# Mac 下
brew install fish
# Ubuntu Linux
sudo apt install fish
2. 使用
# 命令行输入 fish 即可进入 fish shell 环境,自动补全、提示等功能都是默认的不需要设置
fish
3. 弃用原因
最主要的原因就是与 bash 的兼容问题,有些 bash 的脚本不能够执行
# 例:在配置 nvm 的时候要创建一个文件有如下内容
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# 会有如下报错
# fish: Unsupported use of '&&'. In fish, please use 'COMMAND; and COMMAND'.
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# ^
# 原因是 fish 不支持 &&
2. zsh shell
Zsh 是兼容 bash 的,而且插件、主题丰富、更适合 DIY
1. 安装
# Mac
brew install zsh
# Ubuntu Linux
sudo apt install zsh
2. 将 zsh 设置为默认的脚本
chsh -s $(which zsh)
3. 使用
# 命令行输入 zsh 进入
zsh
3. oh-my-zsh
Oh My Zsh是一款社区驱动的命令行工具,它是基于 zsh 的,提供了主题配置、插件机制、内置的便捷操作等,可以说是 zsh 的命令行扩展
1. 安装
先要确保 zsh 已经安装
# curl 安装
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# wget 安装
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
2. 使用
安装后进入 zsh 命令行就会自动使用 oh-my-zsh 的配置
3. 配置主题
安装 oh-my-zsh 时,官方提供的主题就已经下载到
~/.oh-my-zsh/themes/
下,按照如下方式安装
# 编辑 .zshrc 配置文件
vi ~/.zshrc
# 在文件前部分找到 ZSH_THEME 配置,设置值为在 ~/.oh-my-zsh/themes/ 下看到的主题名即可
ZSH_THEME="ys"
# 或者可以设置随机主题,这样每次开启终端都是一个新的主题
ZSH_THEME="random"
# 如果设置的是随机主题,在新打开的终端中输入如下命令
echo $ZSH_THEME # 返回当前 zsh 主题名,随机主题会返回 random
echo $RANDOM_THEME # 返回当前随机主题的名称
# 找到合适的主题后,可以回到 ~/.zshrc 设置为固定主题
4. 安装插件
默认设置没有命令提示和补全,需要安装插件,安装 oh-my-zsh 时,官方提供的插件下载到了
~/.oh-my-zsh/plugins/
# 编辑 zshrc 配置文件
vi ~/.zshrc
# 在文件后半部分找到 plugins=(git) 需要什么插件能在 ~/.oh-my-zsh/plugins/ 中找到的直接加进去就可以,用空格隔开
plugins=(git zsh-autosuggestions zsh-syntax-highlighting history-substring-search)
# 保存退出后,重新打开终端就可以使用了
5. 安装非官方主题和插件
官方网站给出了安装方法
6. 推荐插件
推荐三个用于命令提示、和补全的插件