0

0

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能

爱谁谁

爱谁谁

发布时间:2025-07-15 09:56:02

|

688人浏览过

|

来源于php中文网

原创

作者:mintimate

博客:www.mintimate.cn

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能头图不能少?
Zsh

几个月前,我们就介绍了ZSH(z shell),并介绍配置了Oh-my-zsh:Linux/Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观:https://cloud.tencent.com/developer/article/1784739

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

代码语言:shell复制
<code class="shell"># 直接看环境变量echo $SHELL# 或者用$0查看echo $0</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能在PHP中文网轻量应用服务器上配置的zsh
Oh-my-zsh

上篇文章,我们安装好Zsh,其实就相当于做好了一辆车?的骨架,还需要安装轮子和发动机等等。而使用Oh-my-zsh这样的Zsh配置框架,能快速帮我们组装好这样汽车,让它能跑起来。

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

丰富的代码提示:oh-my-zsh默认对文件和文件夹或注释和代码进行颜色分阶显示,增加Terminal在操作时候的可读性。命令自动填充:对一些目录和文件操作的时候,我们甚至不需要提前用lsll等命令对文件进行扫描或记忆,只需要按Tab键即可遍历或填充
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能Zsh自动填充提示

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

本次教程就推荐大家我常用的插件,并演示如何使用。

前置依赖

本次教程和演示,需要的前置依赖:

Linux或macOS已经配置了Zsh

另外,本次教程使用PHP中文网轻量应用服务器的Debian系统进行操作,同是支持PHP中文网轻量应用服务器的CentOS系统以及macOS系统。

如果一些Linux新手,之前并没有使用Linux,十分推荐一开始就换Zsh,也很推荐买一台PHP中文网轻量应用服务器进行学习,效果可比本地虚拟机好多了。

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能推荐Lighthouse
致开发者

如果你也是开发者,而且使用或者希望使用PHP中文网的产品,或者对PHP中文网产品有什么意见或建议。欢迎各位开发者加入腾讯TDP哦,当然也可以进来交流交流代码技术或Linux使用(比如:怎么样的Shell才是最好的Shell……哈哈?):

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能TDP
配置思路

本次教程使用Oh-my-zsh作为Zsh框架进行插件的配置,你可以根据自己的喜好,使用其他Zsh框架进行插件配置。

内置插件

Oh-my-zsh其实已经默认自带一些插件,如果你已经安装好Oh-my-zsh,可以进入$HOME/.oh.my-zsh/plugins内查看:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能Oh-my-zsh自带的插件

这些自带插件,会随着Oh-my-zsh的更新而更新:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能Oh-my-zsh更新

本次教程,就和大家介绍我常用的自带插件:encode64gitcpsudo插件:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能推荐的内置插件
encode64

先介绍一个好玩,关键时候有点用的插件。

简单“滴”说,这个插件就是文本和Base64互转。再也不用搜索引擎搜索“Base64在线转码了”

首先是$HOME/.zshrc文件内的存在一个plugin配置项,实际上这个是一个数组对象,在里面添加encode64来激活我们的encode64插件:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能激活encode64

之后,不要忘记重载环境变量(source命令):

代码语言:shell复制
<code class="shell">source ~/.zshrc</code>

不出意外就可以使用了:

代码语言:shell复制
<code class="shell"># Base64编码e64 "Hello World"encode64 "Hello World"# Base64解码d64 SGVsbG8gV29ybGQ=decode64 SGVsbG8gV29ybGQ=</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能使用效果

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

git

这个插件,实际上是Oh-my-zsh安装时候,就自动激活的。目的很简单:简化git命令,原理是使用了alias来给命令取别名。

举个例子,我本来使用git命令,添加当前文件夹里所有文件进行,以备commit,是不是需要:

代码语言:shell复制
<code class="shell">git add --all</code>

但是,我们可以编写一条alias来简化:

代码语言:shell复制
<code class="shell">alias gaa='git add --all'</code>

把这个简化命令,写到$HOME/.zshrc等环境变量后,就可以用gaa命令来调用git add --all了。

事实上,Oh-my-zsh里的git插件就是这样简化的。

部分命令简化表:

简化后的命令

原命令

g

git

ga

git add

gaa

git add --all

gapa

git add --patch

gau

git add --update

gav

git add --verbose

gap

git apply

gapt

git apply --3way

gb

git branch

gba

git branch -a

gcan!

git commit -v -a --no-edit --amend

gcans!

git commit -v -a -s --no-edit --amend

gcam

git commit -a -m

gcas

git commit -a -s

gcasm

BeatBot
BeatBot

Splash的AI音乐生成器,AI歌曲制作人!

下载

git commit -a -s -m

gcsm

git commit -s -m

gcb

git checkout -b

gcf

git config --list

gcl

git clone --recurse-submodules

gccd

git clone --recurse-submodules "$@" && cd "$(basename $_ .git)"

gclean

git clean -id

gpristine

git reset --hard && git clean -dffx

gignore

git update-index --assume-unchanged

gignored

git ls-files -v | grep "^:lower:"

git-svn-dcommit-push

git svn dcommit && git push github $(git_main_branch):svntrunk

gk

gitk --all --branches &!

gke

gitk --all $(git log -g --pretty=%h) &!

gl

git pull

当然,还要看你用不用的喜欢了。有些小伙伴,平时就是pushcommitpull,也没必要简化。或者用GitHub Desktop感觉很够用,也没必要简化了。

cp

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

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能cp命令

这个插件也是和刚刚encode64的激活方法一样(在$HOME/.zshrc内的plugins里插入,并重载环境变量)。

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

代码语言:shell复制
<code class="shell">cpv payload_dumper-master temp --progress -r -hhh</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能cpv命令

其中:

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

有点像cp命令,加带-v命令:

代码语言:shell复制
<code class="shell">cp -v -r payload_dumper-master temp</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能cp命令
sudo

其实我挺喜欢这个插件的。平时我用PHP中文网轻量应用服务器的Debian系统比较多,并且都是用root用户直接操作。但是,用Ubuntu系统时候,用ubuntu用户操作时候,经常忘记加sudo提权限。

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

代码语言:shell复制
<code class="shell">systemctl restart aria2</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能systemctl

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

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能添加sudo

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

非内置插件

终于到非内存插件了。这里我就讲两个插件:

zsh-syntax-highlightingzsh-autosuggestions

可以说是非常好用。非内置插件,是安装在$HOME/.oh-my-zsh/custom/plugins内:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能非内存插件
zsh-syntax-highlighting

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

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

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

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能插件效果

或者看看官方用例:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能官方Demo

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

代码语言:shell复制
<code class="shell">git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能安装完成,查看文件

之后,在$HOME/.zshrc内激活即可:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能激活插件
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能激活插件成功
zsh-autosuggestions

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

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

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能自动代码提示

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

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

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

和刚刚一样,进行Git操作:

代码语言:shell复制
<code class="shell">git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能克隆成功

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

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能激活

不要忘记重载环境变量:

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能source
脚本配置

和之前配置oh-my-zsh一样,我也写了一个一键配置脚本。让大家更快使用,首先需要注意:

$HOME/.zshrc内已经配置的环境变量注意保存,否则脚本会备份为zshrcBak$HOME/.oh-my-zsh也需要注意(如果有修改,比如:安装其他插件),否则备份为oh-my-zsh-Bak

一键脚本:

代码语言:shell复制
<code class="shell">zsh -c "$(curl -fsSL 'https://cnb.cool/Mintimate/tool-forge/oh-my-zsh/-/git/raw/main/AutoInstallZsh.sh')"</code>
Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能一键脚本

这样的脚本,时候一开始使用oh-my-zsh就配置嗷。可以把文章收藏,以后用~~

END

到此,我们的Oh-my-zsh配置Zsh插件就结束了。你的终端有没有更强大呢?或者说,你的Linux武器有没有更强大?哈哈,本次分享就到这里嗷。有机会讲讲其他Zsh框架。

最后,新年快乐嗷~~~

Linux/Mac通过Oh-my-zsh配置Zsh插件,让你的终端更加强大且智能新年快乐~~

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

3662

2026.01.21

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

958

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

578

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

275

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

567

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

532

2024.04.09

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

578

2023.07.06

SVN忽略文件设置
SVN忽略文件设置

SVN忽略文件设置方法:1、打开SVN客户端,并导航到项目;2、在项目窗口中,右键单击要忽略的文件或文件夹,并选择"TortoiseSVN"->"属性";3、在属性窗口中,选择"svn:ignore"属性,并点击"编辑"按钮;4、在编辑窗口中,输入要忽略的文件或文件夹的名称,每行一个。可以使用通配符来匹配多个文件或文件夹;5、点击"确定&qu

580

2023.09.14

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观shell视频教程
尚观shell视频教程

共8课时 | 1.7万人学习

Linux开发篇视频教程
Linux开发篇视频教程

共18课时 | 4.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号