安装 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