IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    从Bash迁移至Zsh

    FranzKafka95发表于 2024-01-03 15:42:01
    love 0
    Read Time:1 Minute, 54 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地址可点击这里。一般我们推荐使用这套配置,从而获得更好的使用体验:

    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"

    我们可以在线浏览这些主题,具体可以参考该链接;这些主题都是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进行卸载。

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

    The post 从Bash迁移至Zsh first appeared on FranzKafka Blog.



沪ICP备19023445号-2号
友情链接