
认识终端并打造自己的 ZSH
本文最后更新于 2025-02-22,文章最后更新时间据此已超过 30 天,文章内容可能已经过时。
本文内容基于 macOS Sonoma 14.5,如有需要请根据自己实际变化进行调整。
1. 什么是终端
我们总在说在终端中如何操作,那么终端到底是什么呢?为什么它会有这么大的权利?
要说清终端是什么,我们先来看看操作系统的组成。简化来说,操作系统分为两个部分,一部分称作内核,另一部分成为用户交互界面。内核部分负责系统的全部逻辑操作,由海量命令组成,这一部分是系统运行的命脉,不与用户接触;交互界面则是开机之后所有我们所看到的东西,比如窗口,软件,应用程序等等。
你可以在“终端”中使用命令行高效执行命令、运行工具以及运行 shell 脚本。 例如,若要查看默认文件夹中的文件列表,请键入 List 命令 ls
,然后按下 Return 键。 完成后,选取“编辑”>“清除屏幕”来清除列表窗口。
2. zsh 是什么
ZSH(Z Shell)是 Bash 的一个替代品,提供了许多新功能和改进。以下是ZSH的一些主要功能:
自动补全:ZSH提供强大的自动补全功能,可以根据命令历史和当前上下文智能地补全命令、文件名和参数。
插件和主题:ZSH支持插件和主题,可以扩展其功能和外观,并根据个人喜好进行定制。
强大的别名功能:ZSH允许用户创建复杂的别名和快捷方式,以提高工作效率。
更好的文件名扩展:ZSH支持更强大的文件名扩展功能,如通配符匹配和模式匹配。
更强大的历史命令管理:ZSH允许用户更方便地浏览和搜索历史命令,并提供了更多的历史命令操作选项。
3. 安装或切换至 ZSH
macOS Catalina 及之后版本
从 macOS Catalina 开始,Mac 使用 zsh 作为默认登录 Shell 和交互式 Shell。你还可以在较早版本的 macOS 中将 zsh 设置为默认 Shell。
如果你当前使用的并不是 zsh,可以按照下方参考进行更改
https://support.apple.com/zh-cn/102360
在“终端”中,输入 $ chsh -s path
,其中 path 是在 etc/shells 中列出的某个 shell 路径,例如 /bin/zsh、/bin/bash、/bin/csh、/bin/dash、/bin/ksh、/bin/sh 或 /bin/tcsh。
macOS Catalina 之前版本
而相比 Bash 来说,Zsh 也拥有许多更强大的功能:更智能的自动补全、命令选项提示、更丰富的主题,等等。在之前版本,我们可以手动安装 zsh 后再将 macOS 的默认 Shell 切换到 zsh,熟悉一下新版 Shell 的功能。
# 使用安装 zsh
# 如果未安装 brew, 请使用搜索引擎
brew install zsh
# 设置zsh为你的默认shell
chsh -s /usr/local/bin/zsh
4. 武装 ZSH
4.1 安装 oh-my-zsh
oh-my-zsh 是一个开源社区框架,用于管理 Zsh 配置。它捆绑了数以千计的有用功能、辅助工具、插件、主题和一些让你大呼过瘾的东西...
自动安装
# 使用 wget 进行安装
sh -c "$(wget https://cdn.jsdelivr.net/gh/ohmyzsh/ohmyzsh@master/tools/install.sh -O -)"
# 使用 curl 安装
sh -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ohmyzsh/ohmyzsh@master/tools/install.sh)"
# 下载时可指定(清华大学镜像)
REMOTE=https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git sh -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ohmyzsh/ohmyzsh@master/tools/install.sh)"
手动安装
# 克隆至本地路径
git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
# 如果网络不通畅,可使用(清华大学镜像)进行更新
git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git ~/.oh-my-zsh
# 如果您之前修改过部分配置,请备份原有 ~/.zshrc
cp ~/.zshrc ~/.zshrc.bak
# 以默认模板作为基础生成新配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
后续操作
# 如果您使用的是 Github 原版,
# 为了使后续更新方便可将仓库地址切换至清华镜像源
git -C $ZSH remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git
4.2 安装几个有用的插件
oh-my-zsh 在安装完成后会默认启用 git 插件,默认可用的插件可查看
1. zsh-syntax-highlighting
此插件为 zsh 提供语法高亮功能。当命令在 zsh 提示符下输入到交互式终端时,它能高亮显示这些命令。这有助于在运行命令前对其进行审查,尤其是捕捉语法错误。
# 克隆
git clone https://ghproxy.com/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
# 其他安装方法可参考
https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
2. zsh-autosuggestions
此插件可以在键入命令时按右方向键→可自动补全命令
# 克隆
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 将插件添加至 ~/.zshrc 中
plugins=( [plugins...] zsh-autosuggestions)
# 重启终端自动启用或手动激活
source ~/.zshrc
# 其他安装方法可参考
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
3.我的参考
plugins=(git
macos
docker
zsh-syntax-highlighting
zsh-autosuggestions
)
4.3 相关争议
对于 oh-my-zsh 启动速度相关争议,有关文章可参考:
zsh 和 oh my zsh 冷启动速度优化:https://blog.skk.moe/post/make-oh-my-zsh-fly/
5. 美化 zsh
5.1. 内置主题
你可以在
中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes
目录下,不需要再下载。
ls ~/.oh-my-zsh/themes
5.2. powerlevel10k (以下简称 p10k)
根据 Slant 的
显示 . zsh 中最好看的主题仍然是
安装
# 复制至本地
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# (使用 Gitee 镜像)
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# 将 ~/.zshrc 中主题配置修改为
ZSH_THEME="powerlevel10k/powerlevel10k"
# 重启终端或手动生效
source ~/.zshrc
配置 p10k
首次打开后会自动进入配置流程,按照步骤即可定制属于自己的主题。如果不小心错过了配置流程,可直接重启终端或手动输入 p10k configure
重新开启配置教程。
6. 更新
你可以通过简单的 omz update
命令自动升级 oh-my-zsh
7. 卸载与清空
....TODO