请访问原文链接:macOS Zsh 使用 oh-my-zsh 打造高效便捷的 shell 环境,查看最新版。原创作品,转载请保留出处。
作者主页:www.sysin.org
抄袭者 macz、qq_23930765、hanzheng260561728 请远离本站!!!
—。
在 Unix/Linux 的世界里,人机交互的工具就是 shell 了,由于各个发行版的系统默认 shell 都是 bash,所以 bash 的知名度是最高的。其实还有一款效率远超 bash 的 shell,叫做 zsh。zsh 同样历史悠久,发布于 1990 年,只比 bash 晚一年,而且 zsh 相比 bash 有很多功能上、性能上的改进。想要了解两者具体有那些差别,可以查看这篇文章。
zsh 虽然很优秀,但在初期配置上太过繁琐,流行率一直不高 (sysin),直到 github 上 oh-my-zsh 项目的出现,使大家使用 zsh 的便捷性大大提高,从 macOS Catalina 版开始默认使用 zsh,使得 zsh 得到了更加广泛的关注。
很重要的一点,zsh 完全兼容 bash,如果你的 bash 脚本开头是以 !#/bin/bash 的话,在 zsh 下还是完全兼容 bash 的。
Mac 系统内置了几种 shell:
1 | cat /etc/shells |
1. 使用 zsh 作为默认 shell
从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。您还可以在较低版本的 macOS 中将 zsh 设置为默认 Shell。
1 | chsh -s /bin/zsh |
2. 安装 oh-my-zsh
自动安装
1 | sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
也可以手动安装:
手动安装
下载 oh-my-zsh
1 | git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh |
备份原有 ~/.zshrc(如果有)
1 | cp ~/.zshrc ~/.zshrc.bak |
从模板创建 zsh 配置文件
1 | cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc |
3. 更改 zsh 主题
主题样式这里查看。
1 | vi ~/.zshrc |
快速修改:
1 | sed -i '/^ZSH_THEME=.*/c ZSH_THEME="ys"' ~/.zshrc |
注:主题文件在 ~/.oh-my-zsh/themes 目录
4. 命令自动补全
默认 oh-my-zsh 命令自动补全功能如下:
- 自动列出目录
输入 cd 按 tab 键,目录将自动列出,在按 tab 可以切换
- 自动目录名简写补全
要访问 /usr/local/bin 这个长路径,只需要 cd /u/l/b 按 tab 键自动补全
- 自动大小写更正
要访问 Desktop 文件夹,只需要 cd de 按 tab 键自动补全,或者查看 README.md,只需要 cat rea 自动更正补全
- 自动命令补全
输入 kubectl 按 tab 键即可看到可用命令
- 自动补全命令参数
输入 kill 按 tab 键会自动显示出进程的 process id
小技巧:
可以忽略 cd
命令,输入 ..
或者 ...
和当前目录名都可以跳转。
上述功能不需要额外的插件。
另外还有一些插件来增强命令补全,可根据需要启用:
Homebrew 的补全功能:解决 brew 及 brew 安装的(部分)指令仍然没有补全功能的问题。
Clone the repository inside your oh-my-zsh repo:
1
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
Add it to
FPATH
in your.zshrc
by adding the following line beforesource "$ZSH/oh-my-zsh.sh"
:1
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
Note: adding it as a regular Oh My ZSH! plugin will not work properly (see #603).
或者也可以通过 brew 安装:
1 | brew install zsh-completions |
zsh-autosuggestions:作用是根据历史输入命令的记录即时的提示,然后按键盘 → 即可补全。
(个人不推荐这个插件。)
1 | git clone https://github.com/sangrealest/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions |
编辑 ~/.zshrc,找到 plugins=(git) 这一行,修改为:
plugins=(git zsh-autosuggestions)
退出终端重新打开生效。
增强的实时自动命令补全插件:Incremental completion on zsh
(该插件对性能似乎有一点点影响,请根据需要启用 (sysin)。)
作用如图:
1 | mkdir $ZSH_CUSTOM/plugins/incr |
5. 别名 alias
我们看下 git 的别名:
1 | cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh |
1 | ...... |
自定义别名,在~/.zshrc
中,最下面直接写即可。
1 | Example aliases |
1 | echo 'alias ll="ls -lahFT"' >> ~/.zshrc |
更强大的 alias 命令,比如下面命令,当你在 zsh 环境下输入 hello.py 即可直接用 vim 打开文件编辑,一个 tgz 的文件即可自动解压缩。
1 | alias -s py=vim |
6. 语法高亮插件
插件名称:zsh-syntax-highlighting
作用:命令错误会显示红色,直到你输入正确才会变绿色,另外路径正确会显示下划线。
安装:
1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |
配置启用插件:
编辑 ~/.zshrc
以下部分加入插件的名字
plugins=( [plugins…] zsh-syntax-highlighting)
source ~/.zshrc
生效。
7. 相关网站
如果文章中使用的内容或图片侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有所帮助,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!
赞赏一下