Linux/Mac如何配置zsh并使用Oh-my-zsh?让你的终端更加好用
本文最后更新于 2024年11月2日 凌晨
前言
现在,越来越多的人趋向使用zsh取代原本的bash作为自己的终端Shell。的确,Zsh才是适用于现代的Shell:
- 更丰富的命令提示
- 更鲜明的演示标记
- 更强大的插件支持
本文章同步发布在:
什么是zsh
和bash一样,zsh也是终端内的一个命令行解释器,简称:shell。顾名思义就是机器外面的一层壳,用于人机交互。接收用户或其他程序的命令,把这些命令转化成内核能理解的语言。
具体表现为其作用是用户输入一条命令,shell 就立即解释执行一条。不局限于系统、语言等概念、操作方式和表现方式等。比如:我们使用的cd
、wget
、curl
和mount
等命令。
传统的shell(如:bash),命令和显示的文字以单色为主;而zsh不仅支持彩色字体,还支持命令填充:
原本需要输入路径全面,现在zsh可以通过按Tab
键来自动填充:
远程辅助
提供远程辅助(QQ:198330181),可以远程辅助的人群:
- 打赏捐赠用户,即:捐赠一杯咖啡以上的用户。
上诉条件满足其一即可。远程辅助保证能运行服务器,如果需要其他Linux指导或其他问题(如:搭建网站等),额外商务需求,定制价格另算。
远程辅助,仅仅为额外功能;主要是太多人,图文教程都不看、B站视频也不看就直接 来问我们,我们又没那么多时间,一遍一遍重复博客和视频内容,所以出“远程辅助”服务。
一切博客教程,均可自己按图索骥,不用担心没有远程辅助就不能实现。^_^
视频教程
最近没什么好做的视频,就做了该期教程的对应视频教程:
觉得教程有用的话,记得视频投币、点赞嗷~B站视频地址
判断当前Shell
如何判断当前Shell是不是Zsh呢?其实很简单,终端内输入:
1 |
|
图中可以看到,我的Shell是
/bin/zsh
,也就是Zsh;如果你的事/bin/bash
,说明你的是bash,可以看接下来的步骤安装zsh并激活。
如何安装zsh
默认情况下:
- macOS Catalina(mac10.15系统)系统开始,默认使用zsh。即使是macOS High Sierra(mac10.13系统)系统也自带zsh
- Linux一般默认使用bash,需要手动安装(ArchLinux默认zsh)
所以,本目录下主要Linux如何安装zsh,macOS Catalina以后的Mac用户可以直接跳到Oh-my-zsh的配置。
旧版本macOS
旧版本的macOS也是有自带zsh,你可以在终端内输入:
1 |
|
显示的内容,正常是:
1 |
|
可以看到,其中的/bin/zsh
就是zsh了。我们只需要设置zsh为终端默认shell即可,终端输入:
1 |
|
此时,按Command+Q退出终端后重启终端,就可以使用zsh的终端了。zsh设置过于复制,但是我们可以使用Oh-my-zsh来快速配置,可以看后文Oh-my-zsh的配置方法。
Linux安装zsh
一般情况下,Linux是不自带zsh的,你可以使用命令查看,终端输入:
1 |
|
正常情况下,应该是没有/bin/zsh
的:
解决方法很简单,使用apt或者yum安装即可:
如果你的Linux是基于Debian/Ubuntu,使用apt作为Linux软件包管理器,终端输入:
1 |
|
如果你的Linux是基于Centos/Redhat,使用yum作为Linux软件包管理器,终端输入:
1 |
|
安装后,重新使用cat /etc/shells
命令查看:
之后,设置为默认shell
并重启终端:
1 |
|
这样,zsh就已经配置成功了;重新启动Shell,就是zsh
了。
但是zsh设置过于复杂,但是我们可以使用Oh-my-zsh来快速配置,可以看后文Oh-my-zsh的配置方法。
Oh-my-zsh
Oh-my-zsh简称:omz
。
什么是Omz
zsh的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,一些极客为了让更多人受益,开发了Oh-my-zsh这个插件,用来简化zsh的配置,让zsh更加容易上手。
安装Omz
Oh-my-zsh十分简单,可以看看项目地址:https://github.com/ohmyzsh/ohmyzsh。
官方配置非常简单,但是因为项目官方脚本在GitHub的原因,国内访问可能有点困难,为此给大家提供四个方法配置。
以下方法,四选一哦。个人推荐脚本配置安装或者脚本增强安装:
- 脚本配置安装:使用Shell脚本,直接配置Oh-my-zsh,并配置国内更新源(后续使用和官方一样,且可以更新)。
- 脚本增强安装:使用Shell脚本,加上定制化配置文件配置Oh-my-zsh,同时激活部分使用插件(如:代码高亮、历史代码提示填充等),并配置国内更新源。(提供给加入爱发电电圈用户)
官方配置安装
Linux/Mac打开终端,输入官方提供的脚本:
1 |
|
为了保证脚本能顺利运行,你的Linux/Mac
服务器需要:
- 提前安装
git
、curl
- 可以成功连接GitHub
- 如果有
~/.zshrc
文件,最好提前备份
手动配置安装
其实,手动配置重复的内容就是我写的脚本配置:
- 在oh-my-zsh的github主页,手动将zip包下载下来。
- 将zip包解压,拷贝至~/.oh-my-zsh目录。
- 执行
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
或手动复制~/.oh-my-zsh/templates/zshrc.zsh-template
内文件内容到~/.zshrc
内。(如果没有~/.zshrc文件,可以手动创建) - 重启终端或终端输入
source ~/.zshrc
使配置生效
【推荐】脚本配置安装
考虑到官方方法,需要连接GitHub;如果你的设备无法有效访问GitHub。可以使用我配置的脚本:
1 |
|
为了保证脚本能顺利运行,你的Linux/Mac
服务器需要:
- 提前安装
curl
、unzip
- 如果有
~/.zshrc
文件,最好提前备份,否则本脚本自动更改原本的.zshrc
文件为zshrcBak
【推荐】脚本增强安装
Oh-my-zsh国内一键配置脚本,并自动添加和激活zsh-syntax-highlighting和zsh-autosuggestions等插件。相当于脚本配置安装
的增强版。
目前,该脚本仅提供给爱发电有发电的用户,参考:https://afdian.net/p/7ad890cabedb11ecb5d152540025c377
Omz
自动填充
这边主要使用到zsh的Tab
功能,举个例子,当我们需要使用cd
命令,前往Downloads文件夹,传统Bash书写方法:
1 |
|
而使用zsh,我们可以只输入cd
或者部分内容,按Tab
看提示:
粘贴自动转义
使用Oh-my-zsh,默认是使用自动粘贴转义。但是这样容易出差错。为此,如果需要关闭自动转义,可以打开~/.zshrc
文件,添加DISABLE_MAGIC_FUNCTIONS=true
字段:
Tips
zsh的强大不仅仅如此,还可以安装更多强大插件,感兴趣可以自己进行探索。而Oh-my-zsh的使用也不仅仅如此,可以自行阅读开发者文档:https://github.com/ohmyzsh/ohmyzsh
比如:
Oh-my-zsh换皮肤
Oh-my-zsh默认使用的是robbyrussell:
但是,我习惯使用steeef皮肤,在~/.zshrc
文件内进行更改:
我是使用Mac的文档编辑器打开该文件,其实可以用终端vim命令打开,更加方便
替换主题后效果:
其他主题:https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
多用户使用同一zsh配置
bash
不同用户都是读取/etc/bash
文件作为环境配置文件,而zsh
,默认是使用$HOME
下的配置文件。那么,如果Linux上有多个用户怎么办?每次都要配置一遍?
原则上要,但是我们可以使用软连接,镜像某个用户的zsh
配置到其他用户配置,这边演示镜像pi用户的zsh配置到root用户。
首先,创建软连接:
1 |
|
之后,更改pi用户就会自动映射给root用户,使两边zsh的配置一样。而所限于oh-my-zsh的配置,你需要开启ZSH_DISABLE_COMPFIX
。
1 |
|
加上ZSH_DISABLE_COMPFIX=true
这条数据: