Mac 终端美化-zsh

发布时间:2021-05-26 20:51:00
更新时间:2021-06-22 13:40:53
文章作者:ZHUANGZHUANG

安装 zsh

# Mac OS 现在已经使用 zsh 作为默认 shell 了,如果系统版本较低,可以使用 brew 安装
brew install zsh

# Ubuntu 系列安装
sudo apt -y install zsh

# CentOS 系列安装
sudo yum -y install zsh

# Arch 系列安装
sudo pacman -S zsh

# Alpine
apk add zsh

如果想使用新版本zsh,需要源码编译安装

# CentOS 系列
sudo yum -y install gcc make wget tar ncurses-devel git

# Ubuntu 系列
sudo apt -y install gcc make wget tar libncurses5-dev git

# 下载 zsh 源码包,<https://sourceforge.net/projects/zsh/files/latest/download>

# 解压
tar -xvf zsh-5.7.1.tar.xz && cd zsh-5.7.1

# 编译安装
sudo ./configure && sudo make && sudo make install

# 查看 zsh 版本
zsh --version

# 查看安装路径
which zsh

# 修改用户的默认 shell
sudo su root
echo /usr/local/bin/zsh >> /etc/shells && cat /etc/shells
chsh -s /usr/local/bin/zsh <USERNAME>
exit

# 切换解释器
zsh

安装 oh-my-zsh

# 通过一键脚本安装 oh-my-zsh
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

修改 zsh 主题

# 查看当前主题
echo $ZSH_THEME

# 查看所有主题
ls ~/.oh-my-zsh/themes | while read filename
do
echo $filename | cut -d. -f-1
done

# 预览所有 zsh 主题
cd ~/.oh-my-zsh/tools && zsh ./theme_chooser.sh

# 修改 zsh 主题
vim ~/.zshrc
export ZSH="/home/opc/.oh-my-zsh"    # oh-my-zsh 路径,一般在 ~/.oh-my-zsh
ZSH_THEME="robbyrussell"             # 主题名

随机主题

ZSH_THEME="random"                   # 设置随机主题,执行 echo $RANDOM_THEME 可以查看当前随机主题

ZSH_THEME_RANDOM_CANDIDATES=(        # 设置在列表中随机主题
    "robbyrussell"
    "agnoster"
)

ZSH_THEME_RANDOM_IGNORED=(           # 随机主题忽略列表
    "pygmalion" 
    "tjkirch_mod"
)

自己写主题

​​​​​​​‌​‌​‌‌‌​‍​​​​‌​‌​​‌​​‌‌​‍​‌​‌​‌‌‌‌‌‌​​‌​‍​​​​‌‌​​​​​‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌​​‌​‌‍‌​‌‌​‌‌‌‍‌​‌​‌​‌​‍‌​‌‌‌‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌​‌​​‌​‌‍‌​‌‌​‌‌‌‍‌​‌​‌​‌​‍‌​‌‌‌‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌‌​​‌​‍‌​​‌‌‌‌​‍‌​​‌‌‌​​‍‌‌​‌‌‌‌‌‍​​​​​​‌​​‌‌​‌‌‌‍​​​​‌​‌​​​‌​​​​‍​​​​​​​​‌‌‌​​​‌‍​‌​‌‌​​‌‌‌​‌​​‌‍‌‌​‌​​‌​‍‌​​​​‌​‌‍‌​​​‌‌​​‍‌​​‌​‌‌‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌‌​​​​‌​‌​​​‌‌‍​‌‌‌‌‌‌‌‌‌‌‌‌​‌​‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌​​‌‌​‍‌​‌‌‌​‌‌‍‌​‌​​‌​‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​‌‍‌‌​​‌‌​​‍‌‌​​‌​‌‌‍‌‌​​‌​‌​‍‌‌​​‌​​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​​​‍‌​​​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​‌​‌‌​‍‌​​‌​​​​‍‌​‌​​​‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌​‍‌​‌​​​‌‌‍‌‌​​‌‌‌‌‍‌‌​​‌​‌​‍‌​‌​​​‌‌‍‌‌​​‌‌​‌‍‌‌​​‌​​‌‍‌​‌​​​‌‌‍‌​‌‌​​‌​‍‌​​‌‌‌‌​‍‌​​‌‌‌​​‍‌‌​‌​​‌​‍‌​​​​‌​‌‍‌​​​‌‌​​‍‌​​‌​‌‌‌‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

喜欢自己折腾的可以看看

cd ~/.oh-my-zsh/custom/themes
echo "export PS1='my zsh ps1> '" >> zhuangzhuang.zsh-theme
vim ~/.zshrc                          # 修改 zsh 主题 ZSH_THEME="zhuangzhuang"
source ~/.zshrc                       # 使主题生效,查看效果

常用的 PROMPT 转义字符

转义字符 描述
%n 当前用户名 $USERNAME
%m 不带域名的本地主机名
%M 完整的主机名
%# 普通用户显示一个 % 字符,超级用户显示 #
%? 上一条命令的执行结果
%d 当前工作目录
%~ 当前工作目录,并使用 ~ 符号替换目录中的 $HOME%1~ 表示当前目录名,等效于 %c
%D 当前日期,格式为 yy-mm-dd
%T 当前时间,24 小时制
%{...%} 用于包裹 ANSI 转义序列

查看颜色

vim list_color.zsh
zsh list_color.zsh FG    # 查看前景色
zsh list_color.zsh BG    # 查看背景色
# list_color.zsh 脚本,用于查看颜色
# 在主题中调用颜色 %{$FG[040]%} %{$BG[001]%}

. ~/.zshrc

case $1  in
    ("FG")
        spectrum_ls;;
    ("BG")
        spectrum_bls;;
    (*)
        echo zsh '[ FG|BG ]'
        exit 1
esac
exit 0

安装 powerlevel10k 主题

# 克隆仓库
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# 修改主题
vim ~/.zshrc       # 修改 zsh 主题 ZSH_THEME="powerlevel10k/powerlevel10k"

# 安装字体(本地安装,远程服务器无需安装)
cd ~/Downloads
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
open .

# 配置主题
zsh                # p10k configure 按照自己喜欢的样式配置即可

# 更多配置
vim ~/.p10k.zsh    # 可以调整位置,要显示的内容

根据终端切换主题

# 因为字体原因,部分主题在其他终端上表现不友好,可以通过获取终端程序切换主题
echo $TERM_PROGRAM        # 获取终端程序名
vim ~/.zshrc
# ~/.zshrc
if [[ "$TERM_PROGRAM" =~ iTerm ]]; then
    ZSH_THEME="powerlevel10k/powerlevel10k"     # iterm2
elif [[ "$TERM_PROGRAM" =~ vscode ]]; then
    ZSH_THEME="powerlevel10k/powerlevel10k"     # vscode 
elif [[ "$TERM_PROGRAM" =~ Terminus ]]; then
    ZSH_THEME="powerlevel10k/powerlevel10k"     # terminus
else
    ZSH_THEME="fino"                            # xshell....
fi
撰写评论