Physical Address:
ChongQing,China.
WebSite:
Bash全称为Bourne Again Shell,Zsh全称为Z Shell,两者都属于常见的Shell,用于在命令行环境下执行命令和脚本,其中Bash是大多数Linux发行版的默认Shell,而Zsh是MacOs系统中的默认Shell。
两者的差别其实并·不大,不过Zsh的功能会相对更为强大,支持更多的功能定制和功能拓展,有着丰富的插件与主题支持,但相应的缺点是移植性会差一些,用户生态也会相对较差。对于新手而言个人还是比较推荐先从Bash开始学习,等到熟练之后可以进阶使用Zsh。
今天这篇文章将记录我个人从Bash迁移至Zsh的整个过程,希望对有需要的朋友有所帮助。
很多发行版中可能默认没有安装Zsh,此时我们需要手动进行安装:
#Debian系
sudo apt-get update
sudo apt install zsh
#Redhat系
sudo yum install zsh
#Fedora 等
sudo dnf install zsh
安装完成后,我们可以通过如下命令查看版本信息:
FranzKafka@:~$ zsh --version
zsh 5.9 (x86_64-debian-linux-gnu)
FranzKafka@:~$
接下来我们进入Zsh的配置。
在我们安装完成之后,我们需要进行额外的设置才能正常使用Zsh。
第一步是切换我们的Shell为Zsh,一般情况下我们的默认Shell为Bash,这里我们可以通过如下命令进行确认:
root@:/home/FranzKafka# echo $SHELL
/bin/bash
root@:/home/FranzKafka#
在我们开始将Shell切换为Zsh之前,我推荐先将~/.bashrc中的个人配置部分复制一份,这些个人设置可能会包含到一些环境变量的设置等,我们需要复制之后粘贴到Zsh的配置内。当然,这一步也可以后面再进行。我们首先通过chsh命令切换Shell,如下所示:
#先确认zsh可执行文件路径
root:~# whereis zsh
zsh: /usr/bin/zsh /usr/lib/x86_64-linux-gnu/zsh /etc/zsh /usr/share/zsh /usr/share/man/man1/zsh.1.gz
#chsh切换为zsh
root:~# chsh
Changing the login shell for root
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: /usr/bin/zsh
在输入完成之后,我们重新进入终端,此时我们就已经切换为Zsh了。
第二步安装Oh-My-Zsh,Oh-My-Zsh是由开源社区维护的一套Zsh配置,其Github地址可点击here。一般我们推荐使用这套配置,从而获得更好的使用体验:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
该命令会创建 ~/.oh-my-zsh 目录,下载 Oh-My-Zsh 到该目录下,同时更新默认的 Zsh 配置文件 ~/.zshrc,并备份老的配置到类似 ~/.zshrc.pre-oh-my-zsh 的文件中。在安装好Oh-My-Zsh后会有设置向导去引导你完成配置,我们遵循着步骤完成初步设定就可以了。
第三步是配置主题,Zsh支持多种主题,我们一般在安装之后都会对主题进行设置,设置主题可以修改用户目录下的配置文件 ~/.zshrc ,找到其中的变量 ZSH_THEME 即可配置使用不同的主题。例如, 可以设置:
ZSH_THEME="powerlevel10k/powerlevel10k"
我们可以在线浏览这些主题,具体可以参考该Link;这些主题都是Oh-My-Zsh社区提供的,此外还有一些第三方的主题,也是可以使用的。这里我个人比较推荐的主题是powerlevel10k,我们可以通过如下命令进行安装:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
之后我们编辑.zshrc配置文件,修改ZSH_THEME为对应值即可。
关于主题配置的更多用法,可以参考Oh-My-Zsh的官方配置指导。
第四步配置插件,Zsh本身支持很多的插件,而Oh-My-Zsh则内置了诸多插件,我们可以在其官方WIKI中得到相关信息。
配置插件与配置主题比较类似,我们需要编辑.zshrc,修改plugins字段,用于配置插件,如下所示:
plugins=(
git
sudo
extract
autojump
zsh-autosuggestions
zsh-syntax-highlighting
)
移除Zsh:如果我们不想再使用Zsh,并希望卸载Zsh。可以先通过chsh切换为bash,再通过包管理器进行卸载,以Ubuntu为例:
➜ FranzKafka chsh
Changing the login shell for root
Enter the new value, or press ENTER for the default
Login Shell [/usr/bin/zsh]: /bin/bash
➜ FranzKafka apt remove zsh
更新Oh-My-Zsh:某些时候我们想更新Oh-My-Zsh,可以通过omz update命令进行更新:
omz update with FranzKafka at 11:37:48 PM
Updating Oh My Zsh
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/
Oh My Zsh is already at the latest version.
To keep up with the latest news and updates, follow us on Twitter: https://twitter.com/ohmyzsh
Want to get involved in the community? Join our Discord: https://discord.gg/ohmyzsh
Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh
卸载Oh-My-Zsh:如果我们需要卸载Oh-My-Zsh,可以运行uninstall_oh_my_zsh进行卸载。