Mac 终端美化
在 unix 内核的操作系统中(包括 unix 后续延伸出的分支 linux、OS X 等),shell 是和系统内核指令打交道的一座桥梁。
我们通过键盘输入一种自己容易记忆识别的符号标识(shell 命令),由 shell 解析这些命令再反馈给内核去执行一系列操作。
shell 有多种类型,zsh 也是一种 shell ,但可能并不是系统默认的 shell,大多数 unix 衍生系统的默认 shell 都是 bash。
1 切换终端默认 shell 为 zsh
从 MacOS Catalina
版本开始,终端的默认 shell 为 zsh。
- 使用
echo $SHELL
查看当前终端的默认 shell - 如果不是
/bin/zsh
,则通过cat /etc/shells
检查是否安装/bin/zsh
- 确认系统有安装 zsh,但未设为默认 shell,则通过
chsh -s /bin/zsh
更改默认 shell 为 zsh
(更改后需重启终端,以使命令生效)
$ echo $SHELL # 查看当前默认的 shell
$ cat /etc/shells # 查看所有安装的 shell
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
$ chsh -s /bin/zsh # 改变默认的 shell
也可以通过 终端 => 偏好设置 => 通用中,更改 Shell 打开方式:

2 安装 oh-my-zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 如果网络不行,也可以通过 gitee 安装
$ sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
3 更换 oh-my-zsh 主题
$ vim ~/.zshrc # 更改 ZSH_THEME 配置
$ source ~/.zshrc # 让配置生效
将 ZSH_THEME="robbyrussell"
中的主题名换为 agnoster
,更多主题可查看官网。
3.1 设置字体
主题更改为 agnoster 后,终端显示有乱码,这是因为该主题需要特殊字体。该字体包含在 powerline-fonts 字体库中。
1️⃣ 下载字体
$ cd ~/Downloads && git clone https://github.com/powerline/fonts.git
$ cd fonts && ./install.sh
$ cd && rm -rf ~/Downloads/fonts
2️⃣ 设置字体
在 mac 终端的偏好设置中,将字体更改为后缀有 “Powerline” 的字体,本人选择的是 DejaVu Sans Mono for Powerline。更改完后,终端的字体显示正常。
3.2 更改目录颜色
agnoster 主题中,文件目录箭头的色块为深蓝色,个人感觉颜色太深看不清。
该颜色在 agnoster 主题的配置文件中配置:
$ vim ~/.oh-my-zsh/themes/agnoster.zsh-theme
把 prompt_dir()
中的颜色从 blue 改为 cyan。
注意:颜色为ASCII标准颜色,取值为:white black yellow cyan magenta blue grey green red。
3.3 隐藏主机名
$ vim ~/.oh-my-zsh/themes/agnoster.zsh-theme
更改 prompt_context()
,defalut 后的引号内容默认为 "%(!.%{%F{yellow}%}.)%n@%m"
,显示:用户名@主机名。
改为 "%(!.%{%F{yellow}%}.)$HOST"
,就只显示主机名,改为 "%(!.%{%F{yellow}%}.)$USER"
,就只显示用户名。在引号中还可以添加自定义表情 😄。更多表情
若要什么都不显示,可改为 prompt_context(){}
。
prompt_context() {
if [[ "$USERNAME" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
# prompt_segment black default "%(!.%{%F{yellow}%}.)%n@%m" # 默认配置
# prompt_segment black default "%(!.%{%F{yellow}%}.)$HOST" # 只显示主机名
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER" # 只显示用户名
fi
}
# 要主机名和用户名都隐藏,则将上述函数变为空
# prompt_context() {}
这种方法只能更改 agnoster 主题下的显示。若要在所有主题下生效,需将该 prompt_context()
函数添加到 ~/.zshrc
中。
在 ~/.zshrc
中添加 export DEFAULT_USER=$USER
能达到同时隐藏主机名和用户名的效果。
4 安装插件
❗️插件可以装很多,但装多了后,每次进入命令提示符时会明显变慢。慎用。
以下两个插件安装在 ~/.oh-my-zsh/custom/plugins
目录下。
4.1 命令自动补全插件
效果:输入过的命令,再次输入时,会显示最后一次历史命令,按右箭按钮补全命令。
1️⃣ 下载插件
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 命令相当于:
# cd ~/.oh-my-zsh/custom/plugins
# git clone https://github.com/zsh-users/zsh-autosuggestions
2️⃣ 配置插件
$ vim ~/.zshrc
# 找到plugins=(git)内容,更改为:
# plugins=(git zsh-autosuggestions)
$ source ~/.zshrc
4.2 命令高亮插件
效果:如果输入的命令不正确,命令显示为红色,如果输入的命令正确,命令为绿色。
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
$ vim ~/.zshrc
# 在 plugins 中添加相应插件:
# plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
$ source ~/.zshrc
5 更改 vim 配置
这里配置了 vim 命令打开文件后的界面显示。
$ vim ~/.vimrc
在文件中配置:
" 打开语法高亮
syntax on
" 显示行号
set nu
" 高亮被搜索的句子
set hlsearch
" 在编辑过程中,在右下角显示光标位置的状态行
set ruler
" 继承前一行的缩进方式
set autoindent
" 自动缩进
set smartindent
" 设置tab键为4个空格
set tabstop=4
" 自动缩进的空白长度
set shiftwidth=4
参考链接
本文作者:Joey-Wang
本文链接:https://www.cnblogs.com/joey-wang/p/18162259
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步