简介
Zsh(Z-shell)是一款用于交互式使用的shell,也可以作为脚本解释器来使用。其包含了 bash,ksh,tcsh 等其他shell中许多优秀功能,也拥有诸多自身特色。
oh my zsh 开源的社区为之提供了丰富的主题、插件。
使用效果
在输入命令时提示历史记录,以及错误命令预测(爆红显示)等。
安装
1.从仓库安装zsh
$sudo apt install zsh
# 完成安装后,执行zsh,根据提示完成基础配置(可以先不做任何配置,根据个人情况决定)
2.安装oh my zsh
# 克隆oh my zsh 项目
git clone https://github.com/ohmyzsh/ohmyzsh.git
# 完成克隆后进入项目tools目录,执行install.sh(克隆数据时可能失败,请重复尝试)
cd ohmyzsh/tools/ && bash install
# 完成install克隆后,提示是否设置为默认,输入Y确认,完成安装
#ooking for an existing zsh config...
#Found ~/.zshrc. Backing up to /home/mars/.zshrc.pre-oh-my-zsh
#Using the Oh My Zsh template file and adding it to ~/.zshrc.
#Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] Y
配置
默认解释器配置
完成安装后,每次均需要执行zsh才能使用,所以需要将其设置为默认的解释器,执行:
# 设置后,重启系统生效
chsh -s /usr/bin/zsh
主题配置
默认的主题太过于简单,而社区提供的丰富的主题,可以进行配置使用
# 查看可以使用的主题
➜ ~ ls .oh-my-zsh/themes
3den.zsh-theme garyblessington.zsh-theme norm.zsh-theme
adben.zsh-theme gentoo.zsh-theme obraun.zsh-theme
af-magic.zsh-theme geoffgarside.zsh-theme peepcode.zsh-theme
afowler.zsh-theme gianu.zsh-theme philips.zsh-theme
………
# 使用主题,如3den.zsh-theme
# 当前默认主题是 ZSH_THEME="robbyrussell",将robbyrussell 更改为3den
➜ ~ vi .zshrc
……
ZSH_THEME="3den"
……
# 保存后,重启启动终端,即可发现应用了新的主题
自定义主题
应用的主题如果依旧不满意,可以按照自己的想法进行定制,执行主题修改:
➜ ~ vi .oh-my-zsh/themes/3den.zsh-theme
公共变量:
code info
%T 系统时间(时:分)
%* 系统时间(时:分:秒)
%D 系统日期(年-月-日)
%n 你的用户名
%B - %b 开始到结束使用粗体打印
%U - %u 开始到结束使用下划线打印
%d 你目前的工作目录
%~ 你目前的工作目录相对于~的相对路径
%M 计算机的主机名
%m 计算机的主机名(在第一个句号之前截断)
%l 你当前的tty
%n 登录名
插件配置
zsh 支持插件配置,插件的支持能方便命令行的操作。部分插件需要安装
➜ ~ vi .zshrc
……
plugins=(
git
……
)
……
# 保存后,重启启动终端,即可应用
插件推荐
实际工作中发现几个插件非常好用,推荐!
zsh-autosuggestion:灰色提示自动补全,按键盘方向键可以进行补全
# 安装
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
vim ~/.zshrc
# 在文件里找到plugins,添加
plugins=(
autojump
zsh-autosuggestions
)
zsh-syntax-highlighting:日常用的命令会高亮显示,命令错误显示红色
# 安装
git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
vim ~/.zshrc
# 在文件里找到plugins,添加
plugins=(
autojump
zsh-autosuggestions
zsh-syntax-highlighting
)