本文最后更新于 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 插件,默认可用的插件可查看 https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins,可根据需要启用或安装自定义插件

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. 内置主题

你可以在 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载。

ls ~/.oh-my-zsh/themes

5.2. powerlevel10k (以下简称 p10k)

根据 Slant 的 https://www.slant.co/topics/7553/~theme-for-oh-my-zsh 显示 . zsh 中最好看的主题仍然是 https://github.com/romkatv/powerlevel10k/

安装

# 复制至本地
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