将 bash 脚本添加到路径

新手上路,请多包涵

我想在 linux PATH 中添加一个小脚本,这样我就不必在它物理放置在磁盘上的地方实际运行它。

该脚本非常简单,就是通过代理提供 apt-get 访问权限,我是这样制作的:

 #!/bin/bash
array=( $@ )
len=${#array[@]}
_args=${array[@]:1:$len}
sudo http_proxy="http://user:password@server:port" apt-get $_args

然后我将其保存为 apt-proxy.sh,将其设置为 +x (chmod),当我在放置此文件的目录中时,一切正常。

我的问题是:如何将此 apt-proxy 添加到 PATH 以便我实际上可以将其称为真正的 apt-get ? [从任何地方]

寻找仅命令行的解决方案,如果您知道如何通过 GUI 来做这很好,但 不是我正在寻找的

原文由 Mansueli 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 716
2 个回答

尝试这个:

  • 将脚本另存为 apt-proxy (没有 .sh 扩展名)在某个目录中,例如 ~/bin
  • 添加 ~/bin 到您的 PATH ,输入 export PATH=$PATH:~/bin
  • 如果您永久需要它,请在 ~/.bashrc 中添加最后一行。如果您使用的是 zsh ,请将其添加到 ~/.zshrc 中。
  • 然后你可以用你的参数运行 apt-proxy 它会在任何地方运行。

请注意,如果您 export 特定窗口中的 PATH 变量,它将不会在其他 bash 实例中更新。

原文由 jlhonora 发布,翻译遵循 CC BY-SA 3.0 许可协议

您想将该 目录 定义为路径变量,而不是实际的二进制文件,例如

PATH=$MYDIR:$PATH

其中 MYDIR 定义为包含二进制文件的目录,例如

PATH=/Users/username/bin:$PATH

你应该把它放在你的启动脚本中,例如.bashrc,这样每次调用shell进程时它都会运行。

请注意,顺序很重要,并且对 PATH 进行评估,以便如果在路径变量的较早条目中找到与您的名称匹配的脚本,那么您将执行该脚本。因此,您 可以 将脚本命名为 apt-get 并将其放在路径的前面。我不会这样做,因为它令人困惑。您可能想改为调查 shell 别名。

我还注意到您说它在当前目录中运行良好。如果您的意思是您的路径中有当前目录( . ),那么这是一个潜在的安全风险。有人可以将一些通用实用程序的木马变种(例如 ls )放在一个目录中,然后让您进入 cd to 该目录并无意中运行它。

原文由 Brian Agnew 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题