从Bash迁移至Zsh

解锁Shell新玩法
Views: 114
1 0
Read Time:1 Minute, 55 Second

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
)

Others

移除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进行卸载。

Happy
Happy
100 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %
FranzKafka95
FranzKafka95

极客,文学爱好者。如果你也喜欢我,那你大可不必害羞。

Articles: 85

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEN