Linux/Mac配置Zsh配合Oh-my-zsh激活插件,让你的终端更加实用(第二期)

1,579 阅读1分钟

「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。

作者:Mintimate

博客:www.mintimate.cn

Mintimate's Blog,只为与你分享

Zsh

几个月前,我们就介绍了ZSH(z shell)。Zsh对Bourne shell做出了大量改进,同时加入了Bashkshtcsh的某些功能。

macOS和Arch Linux都默认使用Zsh作为默认Shell,你可以在Terminal输入:

echo $SHELL

判断当前Shell是否为Zsh:

macOS上查看是否为Zsh

如果你的Shell是/bin/bash,你可以看看上篇文章:Linux/Mac如何配置zsh并使用Oh-my-zsh?让你的终端更加好用

但是,Zsh有点难配置,或者是……“轮子”有点难造。好在我们可以使用“Zsh框架”,直接拿别人造好的“轮子”,让我们的Zsh更好的“跑起来”。

Oh-my-zsh

Oh-my-zsh就是个不错的“轮子”,上次文章其实也有提到怎么安装Oh-my-zsh,以及怎么切换皮肤。

激活oh-my-zsh,可以直接直观体会到:

  • 丰富的代码提示:oh-my-zsh默认对文件和文件夹或注释和代码进行颜色分阶显示,增加Terminal在操作时候的可读性。
  • 命令自动填充:对一些目录和文件操作的时候,我们甚至不需要提前用lsll等目录对文件进行扫描或记忆,只需要按Tab键即可遍历填充。

实际上,Oh-my-zsh还支持很多丰富的插件,甚至可以说,Oh-my-zsh自带了很多丰富的插件,等着你去激活。

虽然很多人觉得Oh-my-zsh过于臃肿,以至于Terminal在启动过程中,需要花费好几秒去读取配置。但是,实际上你激活的插件适当,不是激活那么多插件,Oh-my-zsh并不会拖慢多少速度。如果实在觉得Oh-my-zsh臃肿,那么下次我介绍一下zimfw?

本次教程就推荐大家我常用的插件,并演示如何使用。另外,如果想看Oh-my-zsh自带那些插件,可以查看:github.com/ohmyzsh/ohm…

Oh-my-zsh自带插件

encode64

哈哈,是不是以为我会第一个介绍git?先介绍一个好玩,关键时候有点用的插件。

简单滴说,文本和Base64互转。

首先是$HOME/.zshrc文件内的plugin,添加encode64来激活:

激活encode64插件

之后,不要忘记重载环境变量source

不出意外就可以使用了:

# Base64编码
e64 "Hello World"
encode64 "Hello World"
# Base64解码
d64 SGVsbG8gV29ybGQ=
decode64 SGVsbG8gV29ybGQ=

base64编码

base64解码

当然,如果是一些Zsh关键字,比如"<等,记得转义哦。

现在,可以看到插件也不是很难,我们看看更多实用的插件。

git

这个插件,实际上是Oh-my-zsh安装时候,就自动激活的。目的很简单:简化git命令,使用aliases。 举个例子,我本来使用git命令,添加当前文件夹里所有文件进行,椅背commit,是不是需要:

git add --all

激活插件后,只需要:

gaa

是不是很方便?更多映射,可以查看:github.com/ohmyzsh/ohm…

比如,这里节选一些:

简化命令原Git对应
ggit
gagit add
gaagit add --all
gapagit add --patch
gaugit add --update
gavgit add --verbose
gapgit apply
gaptgit apply --3way
gbgit branch
gbagit branch -a
gbdgit branch -d
gbdagit branch --no-color --mergedgrep -vE "^([+ *]\s*($(git_main_branch)(gitdevelopbranch))\s(git_develop_branch))\s*)"xargs git branch -d 2>/dev/null
gbDgit branch -D
gblgit blame -b -w
gbnmgit branch --no-merged
gbrgit branch --remote
gbsgit bisect
gbsbgit bisect bad
gbsggit bisect good
gbsrgit bisect reset
…………

sudo

之后,我喜欢的插件是sudo插件。其实作用很简单:快捷添加sudo。

举个例子,我在Linux上,使用systemctl去操作启动,已经输入完命令,却发现自己没有在命令前,加提权的sudo,这个时候要把光标移动到最前面添加sudo么?

systemctl restart aria2

没有添加sudo

过去是这样的,但是如果使用sudo插件就不需要了。 在$HOME/.zshrc内添加sudo:

添加sudo

之后,source文件后,我们遇到上述情况,只需要按两下ESC,即可自动填充:

自动填充sudo

cp

cp插件,我平常也有使用,原理是使用rsync让你获得特性和更好的安全性:

cp插件

插件定义后,就会有一个cpv的命令。比如,我们移动文件夹:

cpv payload_dumper-master temp --progress -r -hhh

cpv移动 其中:

  • --progress:显示进度条
  • -r:递归
  • -hhh:同freedu等命令的-h

zsh-syntax-highlighting

说了那么多自带的,现在讲两个非自带,第三方的。

首先是zsh-syntax-highlighting:github.com/zsh-users/z…

这个可以说,真的是让你Terminal更加好看让你的Terminal命令更有可读性╮( ̄▽ ̄"")╭。

其实就是输入命令时候,对文件夹、文件进行下划线标识。命令使用高亮颜色标识:

效果 或者看看官方用例:

官方用例

安装方法很简单啦,毕竟我们用Oh-my-zsh框架。只需要Git到Oh-my-zsh的plugins文件夹后激活即可:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

克隆成功 之后,在$HOME/.zshrc内激活即可:

激活成功

zsh-autosuggestions

接下来是第二个第三方插件。看名字,相信大家都知道这个是干什么的了:自动给出建议?

确实是这样,有点想编译器给出代码提示,比如:

插件效果 可以看到,有灰色的提示。这个是根据你的$HOME/.zsh_history来给你命令提示。

如果你觉得这个提示就是你想要的,只需要按方向键->,即可自动填充。

安装这个插件很简单(毕竟用了Oh-my-zsh框架(*≧ω≦*))

安装成功

之后,和刚刚一样去激活即可:

激活插件

不要忘记source文件嗷:

image.png

END

到此,推荐了5个插件,你的Oh-my-zsh有没有更好用呢?或者说Z shell有没有更好用呢?

如果有小伙伴有更好的插件推荐。欢迎评论区留言哦。

改天介绍介绍轻量化的Z Shell框架~~~又挖一个坑,哈哈。