查看现有的shell
cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/usr/bin/tmux
/bin/tmux
安装zsh
sudo yum install -y zsh
安装oh-my-zsh
https://github.com/ohmyzsh/ohmyzsh
这里采用wget方式
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
如过无法下载install.sh文件。可以直接git clone手动安装配置。
#下载oh-my-zsh
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
#备份原有的zsh配置
cp ~/.zshrc ~/.zshrc.orig
#复制oh-my-zsh提供的模板来创建一个新的 zsh 配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
#将zsh作为默认shell
chsh -s $(which zsh)
退出重进shell即可使用
常用插件配置
只需要把插件下载到~/.oh-my-zsh/custom/plugins目录下,然后修改.zshrc文件,将插件名字添加即可。
内置插件则位于~/.oh-my-zsh/plugins目录下。
历史命令提示zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sudo
内置插件,按两下esc自动给上一条命令加上sudo
extract
内置插件,x命令解压文件
z
目录跳转,z命令模糊匹配目录,不需要完整路径(根据历史记录进行模糊匹配,因此当之前没有进入过目标目录时无法匹配成功)
在~/.zshrc文件中添加配置插件
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z zsh_reload sudo extract)
问题与注意事项
1.不要执行 source ~/.bashrc
在zsh下执行 source ~/.bashrc
会发生以下报错
/etc/bashrc:40: command not found: shopt
/etc/bashrc:51: command not found: shopt
\n\e[1;37m[\e[m\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\H\e[m \e[4m/home/hongnan.lhn\e[m\e[1;37m]\e[m\e[1;36m\e[m\n$
因为zsh用的环境配置文件是~/.zshrc
,而不是~/.bashrc
因此正确的做法是将配置修改写入~/.zshrc
,然后执行source ~/.zshrc
使其生效
可见stackoverflow上的问题
无sudo权限安装zsh
无sudo权限下可以通过源码编译并安装zsh到$HOME目录下
编译安装
# 创建zsh的安装位置
cd ~
mkdir App
mkdir App/zsh-5.9
# 下载源码
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
# 解压
xz -d zsh.tar.xz
tar -xf zsh.tar
cd zsh-5.9
# 配置与编译。--prefix选项指定安装目录
./configure --prefix=$HOME/App/zsh-5.9
make
make install
配置
vim ~/.bashrc
# 在.bashrc文件中加入zsh路径
export PATH=$HOME/App/zsh-5.9/bin:$PATH
# 保存并退出vim后,导入.bashrc配置
source ~/.bashrc
使用
可以直接执行exec zsh -l
使用zsh
也可以将如下命令添加到~/.bash_profile
将zsh设置为默认shell
[ -f $HOME/Applications/zsh-5.7.1/bin/zsh ] && exec $HOME/Applications/zsh-5.7.1/bin/zsh -l