有root权限
#查看当前的 shell 环境
echo $SHELL
#查看本机的所有 shell 环境
cat /etc/shells
# 如果上述shell环境中有/bin/zsh 且有root权限则可直接切换shell环境
chsh -s /bin/zsh
# 否则安装zsh,再切换shell环境
sudo apt install zsh
1、安装zsh
没有root安装包的常规步骤,若没有configure,先生成(第三步,若有则跳过)。
apt-get source zsh # package是要安装的软件名,包名和sudo apt-get instal package 中的一样
cd package # 进入下载的package目录,这个目录不一定就是package,名字中可能有版本号
# 进入之后发现没有平常经常三步走的 configure 进入INSTALL文件夹看说明
sh ./Util/preconfig # 先生成configure
# 使用--prefix是最关键的,它是用于指定安装目录的,如果没有它就可能要安装到/usr下了,此时需要sudo
# 必须是绝对路径,不能用~代表home,用$HOME代表home目录,即必须以/开头,路径可以用双引号括起来
./configure --prefix=/path/to/install # 该目录可以是不存在的,会自动创建 make -j && make install # -j选项是make并行加速,&&是指只有前一条命令成功后才运行后一条
2、启用
启用
无root权限:在~/.profile中加入
#active zsh exec $HOME/bin/zsh -l
加入之后 先source ~/.profile 检验zsh是否成功启用
然后再重新登陆 有两种可能 界面回到最初 界面成功切换
若回到最初 说明 当前用户默认是用bash的 所以我们得在 ~/.bashrc 里面加一句命令source ~/.profile 这样才会每次登陆自动切换到zsh
不是root权限切换的zsh,可能导致连接不了vscode等,建议还是让管理员修改一下。
3、安装oh-my-zsh
#自动
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
#手动
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
4、修改配置文件 (安装插件)
bash 的配置文件在~/.bashrc或者~/.bash_profile中,而 zsh 则在~/.zshrc中。
ZSH_THEME="robbyrussell" 主题配置 可在下面看所有主题,推荐大家安利较多的主题ys
Themes · ohmyzsh/ohmyzsh Wiki (github.com)github.com
plugins=(git extract):插件配置,安装一个插件后再次处添加插件名称。oh-my-zsh 自带很多插件,也支持第三方插件,可以在插件仓库如下查看
ohmyzsh/plugins at master · ohmyzsh/ohmyzsh (github.com)github.com
常用插件
1、git:在 git 仓库目录时,会提示当前所在的分支。
2、extract:一个通用的指令可以解压所有文件,不用再去记tar -xvf/zxvf/jxvf等复杂的命令。现在不管是zip, tar.gz, tar.bz2等,都可以使用extract filename进行解压。
3、z:模糊匹配曾经进入的目录命令。
4、需要安装的两个插件,一个是自动补全,一个是语法高亮
# zsh-autosuggestions:自动补全
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# zsh-syntax-highlighting:语法高亮
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
参考
Linux 无root权限安装ZSH - 简书 (jianshu.com)
【软件】zsh + oh-my-zsh 的使用 - 香蕉不是芒果 - 博客园 (cnblogs.com)