完美:定制Linux 超级漂亮的Shell-zsh(on-my-zsh)-2022.4.4

完美:定制Linux 超级漂亮的Shell-zsh(on-my-zsh)-2022.4.5

先来一张美图

image-20220404162452270

1、zsh 介绍

1.Linux shell

Linux/Unix 提供了很多种 Shell,为毛要这么多 Shell?

难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了,而且程序员往往负责把复杂的事情搞简单,简单的事情搞复杂。牛程序员看到不爽的 Shell,就会自己重新写一套,慢慢形成了一些标准,常用的 Shell 有这么几种,sh、bash、csh 等,想知道你的系统有几种 shell,可以通过以下命令查看:

cat /etc/shells

显示如下:

[root@master1 ~]##cat /etc/shells 
/bin/sh  
/bin/bash
/usr/bin/sh
/usr/bin/bash

2.zsh 简介

Zsh 是一个 Linux 下强大的 shell, 由于大多数 Linux 产品安装,以及默认使用bash shell, 但是丝毫不影响极客们对 zsh 的热衷, 几乎每一款 Linux 产品都包含有 zsh,通常可以用 apt-get、urpmi 或 yum 等包管理器进行安装。

Zsh 具有以下主要功能

  • 开箱即用、可编程的命令行补全功能可以帮助用户输入各种参数以及选项
  • 在用户启动的所有 shell 中共享命令历史
  • 通过扩展的文件通配符,可以不利用外部命令达到 find 命令一般展开文件名
  • 改进的变量与数组处理
  • 在缓冲区中编辑多行命令
  • 多种兼容模式,例如使用 / bin/sh 运行时可以伪装成 Bourne shell
  • 可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏
  • 可加载的模块,提供其他各种支持:完整的 TCP 与 Unix 域套接字控制,FTP 客户端与扩充过的数学函数
  • 完全可定制化

2、安装 zsh

1.安装 zsh

##对于一般的 Ubuntu 系统,配置好正确的源之后,就能直接键入以下命令安装:
sudo apt-get install zsh

##对于一般的 centos系统,配置好正确的源之后,就能直接键入以下命令安装
yum install zsh -y

2.配置 zsh

zsh 的配置是一门大学问,这里不赘述,直接给出一个配置文件,大家可以下载后放入 zsh 配置文档直接使用。(我的一个法国朋友手配的,相当顺手)

把. zshrc 拷贝到相应用户的 home 目录即可
(也可以把你的 bash 的配置文件 (~/.bash_prorile 或者~/.profile 等) 给拷贝到 zsh 的配置文件~/.zshrc 里,因为 zsh 兼容 bash)

image-20220405082339734

3.取代 bash,设为默认 shell

sudo usermod -s /bin/zsh username

或者

chsh -s /bin/zsh
或者
chsh -s `which zsh`
  • 如果要切换回去 bash:
chsh -s /bin/bash
  • 当然你实在不愿意把 zsh 当成默认的 shell, 而又想使用它, 那么你可以每次进入是都使用zsh进入, 而输入exit退出

image-20220404195439817

4.安装 oh-my-zsh(推荐)

实验环境
centos 7
oh-my-zsh
实验软件

链接:https://pan.baidu.com/s/1iHxfRBG1iS0NhbIDKy7QxA?pwd=voqf
提取码:voqf
2022.4.4-oh-my-zsh

image-20220405082432114

oh-my-zsh简介

之前是因为看到这篇文章:终极 Shell——Zsh 才选择使用 zsh,被它的自动完成、补全功能吸引了。官网:www.zsh.org

选择 oh-my-zsh, oh-my-zsh 是基于 zsh 的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。

在 Github 上找关于 zsh 的项目时发现的,试用了一下觉得很方便,不用像上面文章里面提到的那么复杂,配置一些插件的名称即可使用相应的功能。

Oh My Zsh 是一个开源的、社区活跃的 ZSH 的增强工具,用于管理 ZSH 的配置,拥有数百个强大的插件和漂亮的主题,开箱即用。使用 OhMyZsh 会让你的终端看起来非常酷炫,并且将即大地提高你使用命令行的效率。

项目地址是:

https://github.com/ohmyzsh/ohmyzsh

前置条件
  • 类 Unix 操作系统如 MacOS、Linux、BSD;如果是在 Windows,需要 WSL2,但 cygwin 或 msys 最好也要安装
  • 系统中要先有 zsh,最好是 5.0.8 或更新的版本
  • curl 或 wget
  • git,推荐 v2.4.11 或更高版本
1.基本安装

直接用 zsh 会很蛋疼,因为 zsh 功能很强大但是太复杂,所以需要 oh-my-zsh 来将它简单化

🍀 方法1:从github下载包

直接用 git 从 github 上面下载包

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

备份已有的 zshrc, 替换 zshrc

cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

直接使用脚本安装

cd oh-my-zsh/tools
./install.sh
🍀 方法2:shell命令直接安装

你可以直接直接使用如下命令安装

curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

wget

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

其本质就是下载并执行了 github 上的 install.sh 脚本, 该脚本位于oh-my-zsh/tools/install.sh

🍀 使用 curl,wget 或类似工具通过命令行进行安装。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

⚠️ 注意:

注意,如果报 raw.githubusercontent.com|151.101.228.133|:443... 失败:拒绝连接“
#wget 后面加 --no-check-certificate
wget --no-check-certificate

#或者安装ca-certificates

app-get install ca-certificates -y
#或者
apt-get install ssl-cert
2.配置主题

oh-my-zsh 集成了大量的主题, 位于 oh-my-zsh/theme

作者表示,在 Oh My Zsh 的早期,就已经重点关注对主题的支持,现在已经捆绑了一百五十多个主题,来看几个主题。

(1) 常见主题
  • robbyrussell(默认主题):

    image-20220405080613195
  • afowler:

    image-20220405080644852
  • geoffgarside:

    image-20220405080717793
  • mikeh:

    image-20220405080743131
(2) 配置主题
  • 选择自己喜欢的主题,编辑 ~/.zshrc 文件,修改其中关于主题的环境变量:

    ZSH_THEME="robbyrussell"
    
    source ~/.zshrc
    
  • 使用不同的主题,只需要修改该环境变量即可:

    ZSH_THEME="agnoster" # (this is one of the fancy ones)
    # 参考 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
    
  • 如果你觉得主题太多你可以选择使用随机模式, 来由系统随机选择

    ZSH_THEME="random" ## (...please let it be pie... please be some pie..)
    
    source ~/.zshrc
    
    image-20220404200326959
  • 可以设置随机主题列表,从这个列表中随机选择一个:

    ZSH_THEME_RANDOM_CANDIDATES=(
      "robbyrussell"
      "agnoster"
    )
    
  • 如果只想禁用某些主题,只需要将其添加为忽略即可:

    ZSH_THEME_RANDOM_IGNORED=(pygmalion tjkirch_mod)
    

详细的主题信息, 可以参见 zsh 主题介绍

(3) 安装oh-my-zsh-powerline-theme主题-2022.4.4(测试成功)
  1. 下载主题

    https://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme
    
  2. 配置主题

    (1)将powerline.zsh-theme复制到
    cp oh-my-zsh-powerline-theme/powerline.zsh-theme ~/.oh-my-zsh/themes/
    
    (2)执行脚本
    sh install_in_omz.sh
    
    (3)配置~/.zshrc
    ZSH_THEME="powerline"
    source ~/.zshrc
    
  3. 验证image-20220404203211817

3.配置插件

Oh My Zsh 附带了大量的插件,可以直接使用,详细的参考官网。

image-20220405080253677

image-20220405080310454

(1)启用插件

修改配置 .zshrc 文件即可启用插件。zshrc 文件可以在 $HOME 目录中找到。用文本编辑器打开,会列出你想要加载的所有插件的地方。

➜  ~ vim .zshrc
plugins=(git bundler macos rake ruby)

source ~/.zshrc

请注意,插件配置由空格(空格、制表符、新行…)分隔,不要使用逗号。每个插件都有 README 文件,详细地描述了如何使用。

详细的插件信息, 可以参见 zsh 插件 Plugins 介绍!

(2)安装zsh-syntax-highlighting(错误命令自动检测)-2022.4.5(测试成功)
  1. 配置方法

    • 下载插件包

      cd ~/.oh-my-zsh/plugins/
      git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
      
    • 注释${ZSH_HIGHLIGHT_STYLES[path]:=underline}

      ➜  main git:(master)vim /root/.oh-my-zsh/plugins/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh
      

      image-20220405073814508

    • 修改配置文件

      ➜  ~ vim .oh-my-zsh/oh-my-zsh.sh
      source $ZSH/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
      
      #生效
      ➜  ~ source ~/.zshrc
      
  2. 验证

    image-20220405073936021

(3)安装自动补全或者提示:zsh-autosuggestions-2022.4.5(测试成功)
  1. 配置方法

    • 下载插件包

      cd ~/.oh-my-zsh/plugins/
      git clone https://github.com/zsh-users/zsh-autosuggestions
      

      ⚠️ 注意:我这里直接克隆这个仓库是报错的,因此去github直接将这个仓库给下载并上传上来了;

      image-20220405074652044

    • 修改配置文件

      ➜  ~ vim .oh-my-zsh/oh-my-zsh.sh
      source $ZSH/plugins/zsh-autosuggestions-master/zsh-autosuggestions.zsh
      
      #生效
      ➜  ~ source ~/.zshrc
      
  2. 验证

    image-20220405074627847

(4)fzf 模糊搜索
oh-my-zsh默认支持。此插件一般用来快速定位目录。命令提示通过autosuggestions 即可自动记忆。
4.更新
  • 默认情况下, 您将被提示检查每几周的升级. 如果你想我 ZSH 自动升级本身没有提示你, 修改 `~/.zshrc
disable_update_prompt = true

image-20220404170746441

  • 禁用自动升级, 修改~/.zshrc
disable_auto_update = true

当然你也可以选择手动更新

  • 如果你想在任何时间点升级(也许有人刚刚发布了一个新的插件,你不想等待一个星期?) 你只需要运行:
omz update
5.卸载

如果你想卸载oh-my-zsh, 只需要执行uninstall_oh_my_zsh zsh, 从命令行运行. 这将删除本身和恢复你以前的 bash 或者 zsh 配置.

uninstall_oh_my_zsh zsh
7.目前正在使用

因为oh-my-zsh-powerline-theme主题,后面会带一些时间戳,因此不方便粘贴到文档上,因此这里使用默认的主题"robbyrussell".

image-20220404204713116

image-20220404204927833

8.打包自定义的zsh到其他机器(推荐)!-2022.4.5(测试成功)
  1. 拷贝已经定制好的zsh文件

    ➜  ~ ls -al .zshrc
    -rw-r--r-- 1 root root 3933 Apr  4 20:44 .zshrc
    ➜  ~ ls .oh-my-zsh
    cache  CODE_OF_CONDUCT.md  CONTRIBUTING.md  custom  lib  LICENSE.txt  log  oh-my-zsh.sh  plugins  README.md  SECURITY.md  templates  themes  tools
    ➜  ~ mkdir hg-zsh-2022.4.5
    ➜  ~ cp .zshrc hg-zsh-2022.4.5
    ➜  ~ cp -R .oh-my-zsh hg-zsh-2022.4.5
    ➜  ~ tar zcvf hg-zsh-2022.4.5.tar.gz hg-zsh-2022.4.5
    
  2. 上传定制好的文件到新机器上

    ➜  ~ rm -rf .zshrc
    ➜  ~ rm -rf .oh-my-zsh
    ➜  ~ tar xf hg-zsh-2022.4.5.tar.gz
    ➜  ~ cd hg-zsh-2022.4.5
    ➜  ~ mv .zshrc .oh-my-zsh ~
    ➜  ~ source .zshrc
    
  3. 验证

    image-20220405082252644

9.总结
  • 如果没有设置默认终端启动为zsh(有时在服务器上开发,不便粗暴的设置),启动终端,在终端输入zsh进入。退出时输入exit.

  • 如果你也使用zsh推荐安装oh-my-zsh。可以自定义自己的插件,提高工作效率。

  • zsh-autosuggestions:自动补全提示已输入命令

  • zsh-syntax-highlighting:检测命令输入错误

  • fzf:可不用,根据个人习惯。
    上传定制好的文件到新机器上

    ➜  ~ rm -rf .zshrc
    ➜  ~ rm -rf .oh-my-zsh
    ➜  ~ tar xf hg-zsh-2022.4.5.tar.gz
    ➜  ~ cd hg-zsh-2022.4.5
    ➜  ~ mv .zshrc .oh-my-zsh ~
    ➜  ~ source .zshrc
    
  1. 验证

    [外链图片转存中…(img-LJzK667U-1649118523700)]

9.总结
  • 如果没有设置默认终端启动为zsh(有时在服务器上开发,不便粗暴的设置),启动终端,在终端输入zsh进入。退出时输入exit.
  • 如果你也使用zsh推荐安装oh-my-zsh。可以自定义自己的插件,提高工作效率。
  • zsh-autosuggestions:自动补全提示已输入命令
  • zsh-syntax-highlighting:检测命令输入错误
  • fzf:可不用,根据个人习惯。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值