Mac 安装 Oh My Zsh

13,134 阅读1分钟

1 了解 Shell

1.1 Shell 是什么?

Shell(壳)是操作系统的用户界面,它允许用户与计算机进行交互并执行各种命令。Shell 接受用户输入的命令,并将其解释为操作系统能理解的指令,然后执行这些指令并返回相应的输出结果。

在类 Unix 操作系统中,常见的 Shell 包括 Bash(Bourne Again Shell)、Zsh(Z Shell)、Ksh(Korn Shell)等。每种 Shell 都有自己的特点和功能,用户可以根据自己的喜好和需求选择合适的 Shell 来使用。

Shell 的主要功能包括:

  1. 命令解释:接受用户输入的命令,并将其解释为操作系统能够执行的指令。

  2. 环境控制:管理用户的工作环境,包括环境变量、工作目录等。

  3. 脚本编程:Shell 脚本是一系列命令的集合,可以编写脚本来自动化执行一系列操作。

  4. 管道和重定向:Shell 允许将命令的输出作为另一个命令的输入,同时支持输出重定向到文件或其他设备。

  5. 通配符和通配符扩展:Shell 支持使用通配符来匹配文件名,并对通配符进行扩展以匹配多个文件。

1.2 常用 Shell 有哪些?

  • bsh: 原始的Unix shell(Bourne Shell),由Stephen Bourne开发,是许多现代shell的基础。

  • Bash: Bourne Shell的扩展版本,大多数Linux系统的默认shell,功能全面,适合脚本编程和交互式使用。

  • Fish: 用户友好的交互式shell,支持语法高亮、自动建议和现代化特性。

  • Csh: 最早的C语言风格shell,语法类似C语言,通常在一些旧版本的 Unix 系统中使用。

  • Tcsh: Csh的增强版,增加了命令行补全和历史替换等特性。

  • Ksh: 强大的KornShell,提供了命令历史、别名、作业控制和强大的脚本编程能力,广泛用于商业 Unix 系统和一些 Linux 发行版中。

  • Dash: 轻量级的Bourne Shell替代,专为快速启动和低内存使用而优化,通常作为系统脚本的默认shell。

  • Zsh: 高度可定制的shell,支持强大的补全功能、插件和主题,适合高级用户和开发者使用。

关系: Bourne Shell是原始的Unix shell,Bash是其后继者并添加了新功能;Fish、Csh和Tcsh是不同风格和功能的C语言衍生版本;Ksh是另一种流行的衍生版本;Dash是轻量级的Bourne Shell变体;Zsh则是Bourne Shell的现代化扩展。

2 了解 Zsh

2.1 Zsh 是什么?

Zsh(Z Shell)是一种功能强大的 Unix shell,它是 Bourne Shell 的现代化扩展,具有许多增强的功能和特性。Zsh 提供了比标准的 Bourne Shell(sh)和其衍生品 Bash 更多的定制选项和功能,使得它成为了许多 Unix 和类 Unix 系统用户的首选 Shell。

主要功能:

  1. 高级自动补全:Zsh 提供了强大的命令和文件名自动补全功能,可以根据用户的输入智能地匹配命令、文件名和参数。

  2. 丰富的插件支持:通过 Oh My Zsh 等框架,Zsh 可以轻松地安装各种插件,提供语法高亮、历史搜索、主题定制等功能。

  3. 强大的通配符扩展:Zsh 支持更多复杂的通配符模式,用于匹配文件名和路径,比如递归匹配、排除匹配等。

  4. 定制化程度高:Zsh 允许用户对其行为和外观进行高度定制,包括定制提示符、别名、函数等。

  5. 模块化:Zsh 是一个模块化的 Shell,它可以加载各种模块来扩展其功能,例如完成源码控制、网络传输等操作。

2.2 安装

在 macOS Catalina(10.15.7)和之后的版本中,默认 shell 已从 Bash 更改为 Zsh,因此新的 macOS 系统通常会推荐或默认使用 Zsh。如果使用的是较旧的 macOS 版本,需要手动安装。

1. 包管理器安装

  • Ubuntu:使用 apt 包管理器进行安装,命令为 sudo apt install zsh
  • Fedora:使用 dnf 包管理器进行安装,命令为 sudo dnf install zsh
  • macOS:使用 Homebrew 包管理器进行安装,命令为 brew install zsh

2. 官网安装

👉 Zsh 官方网站

2.3 使用

查看系统安装的 Shell

cat /etc/shells

查看当前使用的 Shell

echo $SHELL 

切换当前使用的 Shell

chsh -s /shell/path

其中 /shell/path 是要切换到的新 shell 的路径,例如 /bin/zsh/bin/bash 等。

3 Oh My Zsh

Oh My Zsh 是一款针对 zsh shell 的社区驱动的框架,提供了丰富的主题、插件和配置管理功能,让你可以轻松地定制和管理你的命令行环境。

3.1 安装

curl 命令

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

wget 命令

sh -c "$(wget -qO- https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

fetch 命令

sh -c "$(fetch -o - https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

上述地址安装失败,可替换为以下地址安装

https://github.com/ohmyzsh/ohmyzsh/tree/master/tools/install.sh

3.2 编辑配置文件

安装完成后,可以在终端中使用以下命令来打开 Oh My Zsh 配置文件进行编辑,~/.zshrc 为隐藏文件,使用快捷键 command + shit + . 显示/隐藏系统隐藏文件。

open ~/.zshrc

1. 修改主题

ZSH_THEME="random",主题选择

2. 兼容 Bash 环境变量

.bashrc.zshrc 都是 shell 配置文件,它们分别用于 Bash 和 Zsh。如果想要在使用 Zsh 时也应用 Bash 的配置,可以在 .zshrc 文件中添加 source ~/.bashrc 来实现。当打开一个新的终端窗口或标签页时,也将应用相同的配置。

.bashrc 环境配置

# Java环境
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export CLASS_PATH=$JAVA_HOME/lib

# Gradle环境
export GRADLE_HOME=/usr/local/opt/gradle@7
export PATH=$PATH:$GRADLE_HOME/bin

# Flutter镜像(Pub get)
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export FLUTTER_GIT_URL=https://gitee.com/mirrors/Flutter.git

# Flutter环境
export FLUTTER_ROOT=/Users/admin/Desktop/Flutter/v2.0.3/Flutter
export PATH=$PATH:$FLUTTER_ROOT/bin

# Android环境
export ANDROID_HOME=/Users/admin/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/build-tools
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools

# Pythod环境
export PYTHONPATH=/usr/local/lib/python3.9/site-packages:$PYTHONPATH

.zshrc 环境配置

...

ZSH_THEME="ys"

...

# 兼容 bash 相关环境变量
source ~/.bashrc

# 指令自动补全插件
source ~/.oh-my-zsh/custom/plugins/incr/incr*.zsh

3. 重载资源

在修改.zshrc 配置文件后,使用以下命令或者新建终端页面重新加载资源:

source ~/.zshrc

3.3 插件安装及使用

1. 安装插件

1. 使用 Homebrew 安装

brew install autojump 

2. 使用 git 安装

Oh My Zsh 的插件目录位于 ~/.oh-my-zsh/plugins

cd ~/.oh-my-zsh/plugins/

git clone git://github.com/wting/autojump.git ~/.autojump

进入 autojump 目录,并运行安装脚本:

./install.py

2. 启用插件

编辑 .zshrc 配置文件,在 plugins 配置项中添加 autojump 插件,修改后需要重载资源

plugins=(
git
autojump
zsh-autosuggestions
zsh-syntax-highlighting
)

3.4 卸载

1. 运行以下命令来卸载 Oh My Zsh

uninstall_oh_my_zsh

2. 删除用户主目录下的 .oh-my-zsh 目录

rm -rf ~/.oh-my-zsh 

3. 删除 .zshrc 配置文件