Mac路径变量配置

2023年 9月 23日 53.9k 0

位置:/Users/用户名/.bash_profile

以下为我的配置,仅供参考

# 这个路径是你安装的jdk版本的路径
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
# MySQL文件夹路径
export MySQL_HOME=/usr/local/mysql
# 这个路径是你rocketmq解压后的文件夹路径
export RocketMQ_HOME=/usr/local/rocketmq-all-5.1.2-bin-release

export Python3_9=/Users/xcdh/Library/Python/3.9

# 定义一个数组,包含要添加到 PATH 的路径
paths=(
  # jdk-1.8
  "$JAVA_HOME/bin"

  # mysql
  "$MySQL_HOME/bin"

  # rocketmq
  "$RocketMQ_HOME/bin"

  # Python3_9
  "$Python3_9/bin"
)

# 创建一个临时变量,用于存储数组中所有路径
new_path=""

# 循环遍历数组并将路径依次添加到临时变量中
for item in "${paths[@]}"; do
  if [ -d "$item" ] && [[ ":$new_path:" != *":$item:"* ]]; then
    new_path="$new_path:$item"
  fi
done

# 移除可能存在的前导冒号
new_path="${new_path#:}"

# 设置新的 PATH 变量
export PATH="$new_path:$PATH"

之后添加新的路径变量时,直接在paths数组中添加一行代码即可,函数会执行将数组路径依次添加到PATH中

问题一:mac配置文件.bash_profileexport PATH=/usr/local/mysql/bin:$PATH是什么意思?

这行命令是在Unix/Linux系统的shell中用来修改环境变量 PATH 的命令。

具体来说,这个命令执行了以下操作:

  • export:这是一个shell命令,用于将后面的变量设置为环境变量,以便在当前shell会话中和后续子进程中都可用。

  • PATH=/usr/local/mysql/bin:$PATH:这部分命令将 /usr/local/mysql/bin 添加到现有的 PATH 环境变量中。$PATH 是一个特殊的变量,它代表了当前 PATH 环境变量的值。通过在新的路径 /usr/local/mysql/bin 前面加上 $PATH,你实际上将这个路径添加到了 PATH 变量的前面,这意味着系统将首先搜索 /usr/local/mysql/bin 来查找可执行文件,然后再搜索原来的路径。

    例如,如果原来 PATH 包含 /usr/bin:/bin,那么执行这个命令后,新的 PATH 将会是 /usr/local/mysql/bin:/usr/bin:/bin,这样,系统会首先查找 /usr/local/mysql/bin 目录中的可执行文件,然后才是 /usr/bin/bin 目录。

  • 这种操作通常用于将自定义或特定的目录添加到 PATH 环境变量中,以便系统可以方便地找到和执行这些目录中的可执行文件。在这个例子中,/usr/local/mysql/bin 目录可能包含MySQL数据库的相关命令,通过将其添加到 PATH 中,你可以在命令行中轻松地运行这些MySQL命令而无需输入完整的路径。

    问题二:/usr/bin:/bin中间的冒号是什么?

    在Unix和Linux系统中,路径(Path)通常由冒号(:)分隔的一组目录路径组成。在 /usr/bin:/bin 这个字符串中,冒号就是用来分隔不同目录路径的字符。

    具体来说,这个路径字符串表示了两个目录路径:/usr/bin/bin。这两个目录通常用于存储可执行文件,比如系统命令和工具。当你在命令行中输入一个命令时,系统会根据 PATH 环境变量中定义的路径顺序来搜索这些目录,以找到要执行的命令的可执行文件。

    例如,如果你输入了命令 ls,系统会在 PATH 中的每个目录中查找是否存在名为 ls 的可执行文件。如果 /usr/bin 目录中有 ls 可执行文件,那么系统会执行该文件。如果不在 /usr/bin 中找到,系统将继续在 /bin 目录中查找。

    使用冒号来分隔路径是一种Unix和Linux系统的约定,它使得系统可以轻松地管理和查找可执行文件,同时允许用户自定义他们的 PATH 环境变量以包含其他目录。

    问题三:mac如何在终端查看当前 PATH 环境变量?

    要在终端中查看当前 PATH 环境变量的值,你可以使用 echo 命令,如下所示:

    echo $PATH
    

    在执行这个命令后,终端会显示当前的 PATH 环境变量的值,通常是一系列用冒号分隔的目录路径,每个路径表示一个可执行文件的搜索位置。

    例如,你可以得到类似以下的输出:

    /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    

    这表示 PATH 包含了五个目录路径,系统会按照它们的顺序来查找可执行文件。

    问题四:export PATH=/usr/local/mysql/bin和export PATH=/usr/local/mysql/bin:$PATH有什么区别

    export PATH=/usr/local/mysql/binexport PATH=/usr/local/mysql/bin:$PATH 都用于修改 PATH 环境变量,以包含 /usr/local/mysql/bin 这个目录,但它们之间有重要的区别。

  • export PATH=/usr/local/mysql/bin
    这个命令将 PATH 环境变量的值设置为 /usr/local/mysql/bin。这意味着现有的 PATH 值将被完全替换为 /usr/local/mysql/bin。如果之前 PATH 中包含其他目录,它们将被移除而不再可用。

  • export PATH=/usr/local/mysql/bin:$PATH
    这个命令将 /usr/local/mysql/bin 目录添加到现有的 PATH 值的前面,通过使用 $PATH 将原有的 PATH 值附加在新目录的前面,以冒号分隔。这样,/usr/local/mysql/bin 目录会成为 PATH 中的第一个搜索路径,然后才是原有的 PATH 值。

  • 通常情况下,将新目录添加到 PATH 的前面是一个常见的做法,因为这样可以确保新的目录中的可执行文件具有更高的优先级,而不会被系统中其他目录中的同名可执行文件所覆盖。

    例如,如果原始的 PATH 包含了 /usr/bin:/bin,那么执行以下命令:

    export PATH=/usr/local/mysql/bin:$PATH
    

    新的 PATH 将会是 /usr/local/mysql/bin:/usr/bin:/bin,这样,系统会首先查找 /usr/local/mysql/bin 目录中的可执行文件,然后再搜索 /usr/bin/bin 目录。这确保了你可以方便地运行 /usr/local/mysql/bin 目录中的命令而无需输入完整的路径。

    问题五: PATH=/usr/local/mysql/bin:$PATH和export PATH=/usr/local/mysql/bin:$PATH有什么区别?

    PATH=/usr/local/mysql/bin:$PATHexport PATH=/usr/local/mysql/bin:$PATH 这两个命令都用于修改 PATH 环境变量,但它们之间存在重要的区别:

  • PATH=/usr/local/mysql/bin:$PATH
    这个命令将当前Shell会话中的 PATH 环境变量设置为 /usr/local/mysql/bin 目录加上原有的 PATH 值。但这个修改仅在当前Shell会话中生效,不会影响其他Shell会话,也不会在用户注销或重新登录后保留。

  • export PATH=/usr/local/mysql/bin:$PATH
    这个命令也将当前Shell会话中的 PATH 环境变量设置为 /usr/local/mysql/bin 目录加上原有的 PATH 值,并且使用 export 命令将这个修改后的 PATH 变量导出为环境变量。导出的环境变量将在当前Shell会话中以及在后续的子进程中可用,而不仅仅局限于当前Shell。

  • 总之,主要的区别在于 export 命令。如果你希望修改的 PATH 环境变量在当前Shell会话和其后的子进程中都可用,通常会使用 export PATH=/usr/local/mysql/bin:$PATH 这种方式。如果只需要在当前Shell会话中临时修改 PATH,那么可以使用 PATH=/usr/local/mysql/bin:$PATH,但这种修改通常不会持续到其他会话或系统重启。

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论