Skip to content

在macOS中配置PATH

在macOS中,如果没有在PATH路径下配置程序路径,那么就无法在任何路径下执行程序,以MySQL客户端为例,报错如下:

txt
bash: command not found: mysql

我们以MySQL为例,介绍如何把程序启动路径配置到PATH中。

1. bash

首先,找到MySQL客户端启动程序所在目录:

txt
/usr/local/mysql

然后,在命令行中执行以下命令:

bash
vim ~/.bash_profile

打开BASH配置,在最后添加如下两行:

txt
export MYSQL_HOME="/usr/local/mysql"
export PATH="$MYSQL_HOME/bin:$PATH"
  • 第一行:export MYSQL_HOME="/usr/local/mysql"

    • export:这是一个命令,用来将一个变量设置为环境变量,环境变量可以在当前 shell 会话及其子进程中使用。

    • MYSQL_HOME:这是一个自定义的变量名,通常用它来指代 MySQL 的安装根目录。

    • "/usr/local/mysql":这是 MySQL 的安装路径。

    • 整行解释:这行代码定义了一个名为 MYSQL_HOME 的环境变量,并将其值设置为 /usr/local/mysql。这样,我们就可以在后续的命令中直接使用 $MYSQL_HOME 来引用这个路径,而不是每次都手动输入完整的路径。

  • 第二行:export PATH="$MYSQL_HOME/bin:$PATH"

    • PATH:这是一个非常重要的系统环境变量,它包含了操作系统在查找可执行文件时会去搜索的一系列目录。当输入一个命令(比如 ls),系统就会按照 PATH 变量中列出的顺序,在每个目录下寻找这个命令。

    • $MYSQL_HOME/bin:这会展开为 $MYSQL_HOME 变量的值,然后加上 /bin。所以,它的完整路径是 /usr/local/mysql/bin。MySQL 的所有可执行文件(如 mysqlmysqldumpmysqladmin)都存放在这个目录下。

    • ::在 Linux/Unix 中,冒号是用来分隔 PATH 变量中不同目录的。

    • $PATH:这里的 $PATH 指的是 PATH 变量的旧值,也就是在执行这行命令之前,PATH 已经包含的所有目录。

    • 整行解释:这行代码将 /usr/local/mysql/bin 目录添加到了 PATH 环境变量的最前面。这意味着,当输入 mysql 命令时,系统会首先在 /usr/local/mysql/bin 目录下查找,然后才去查找其他目录。

配置完成后,保存退出VIM。之后,在命令行中运行如下命令,使配置生效:

bash
source ~/.bash_profile

之后,我们就可以在任意位置的命令行中运行mysql命令了:

bash
mysql -u root -p

2. zsh

上面只是在bash中配置了PATH路径,如果我们使用zsh运行mysql命令,仍然会报错如下:

txt
zsh: command not found: mysql

这是因为我们没有在zsh中配置PATH路径。

Zsh (Z shell) 和 Bash (Bourne Again Shell) 都是功能强大的 Unix shell,它们在 Linux 和 macOS 等操作系统中扮演着命令行解释器的角色。Bash 已经存在很长时间了,是许多 Linux 发行版的默认 shell,而 Zsh 则是更现代、更具可定制性的选择,macOS 从 Catalina 版本开始也将 Zsh 作为默认 shell。

同样地,使用如下命令打开zsh配置文件:

bash
vim ~/.zshrc

然后在最后加上PATH配置,同上,保存退出后,使用如下命令使配置生效:

bash
source ~/.zshrc

之后,就可以在zsh shell中运行mysql命令了。