重命名并添加到 $PATH

重命名并添加到 $PATH

我知道我可以使用命令在 bash 终端上添加 $PATH 的路径PATH=$PATH:foo。我也知道我可以使用以下命令为 bash 创建别名alias a=b 但只知道我注意到 bash 的别名不是全局别名,并且某些工具可能无法找到(这是非常合理的,如果文档说工具只是搜索路径中的另一个依赖项)。

那么,如何向路径中添加不同名称的内容,以便其他命令行工具可以轻松找到它?我可以想到我的问题至少有三种用途[g++9作为默认值(这可以通过更新替代方案来解决),python 3作为默认值而不是2],但是当我尝试安装时出现了我的主要问题巴泽利斯克作为 bazel 因为tensorflow通过源配置构建需要bazel,对于我在默认目录中安装的信息,这bazelgo~/go/bin/bazelisk

答案1

您可以分两步完成:

  1. 确保您的路径以要在其中提供“别名”的目录开头。例如,我们可以使用目录bin/中的目录$HOME
export PATH=$HOME/bin:$PATH
  1. 将别名放入该目录中,如下所示符号链接。例如,python要创建别名python3,请运行
ln -s $(which python3) $HOME/bin/python

笔记:

  • 您不需要这样做root
  • 执行此操作时要小心。做一些“奇怪”的事情就像ln -s /bin/cat $HOME/bin/ls和邻居说话并称汽车为鱼一样会适得其反。
  • 您的“别名”目录不需要特殊名称。我们并不是在这里发明一个新概念,我们只是直接使用$PATH工作原理。
  • 如果您的“别名”目录位于最后,则它将不起作用$PATH,它必须位于第一个。
  • 不要替换whichcommand -v.command -v行为不当:它将打印别名、打印没有路径的 shell 内置命令,在无法创建符号链接的情况下,它将成功给出错误结果,而which会可靠地返回空字符串并将退出状态设置为1,允许 shell 脚本使用if alias=$(which python3) ; then ln -s $alias ~/bin/python ; fi.或者通过使用失败set -e; alias=$(which python3); ln -s $alias ~/bin/pythoncommand -v如果使用别名和 shell 内置命令,则使用会给出错误的结果。

相关内容