Man*_*eli 25 linux bash shell path
我想在Linux PATH中添加一个小脚本,所以我不必在它实际放置在磁盘上的地方运行它.
脚本非常简单,就是通过代理提供apt-get访问,我就是这样做的:
#!/bin/bash
array=( $@ )
len=${#array[@]}
_args=${array[@]:1:$len}
sudo http_proxy="http://user:password@server:port" apt-get $_args
Run Code Online (Sandbox Code Playgroud)
然后我将其保存为apt-proxy.sh,将其设置为+ x(chmod),当我在放置此文件的目录中时,一切正常.
我的问题是:如何将这个apt-proxy添加到PATH,所以我实际上可以称之为真正的apt-get?[从任何地方]
寻找命令行的解决方案,如果你知道GUI如何做它很好,但不是我想要的.
jlh*_*ora 44
试试这个:
apt-proxy(没有.sh扩展名)在某个目录中,例如~/bin.~/bin到您的PATH打字export PATH=$PATH:~/bin~/.bashrc.如果您正在使用zsh,请将其添加到其中~/.zshrc.apt-proxy你的参数,它将在任何地方运行.请注意,如果您export在特定窗口中使用PATH变量,则不会在其他bash实例中更新.
您希望将该目录定义为路径变量,而不是实际的二进制文件
PATH=$MYDIR:$PATH
Run Code Online (Sandbox Code Playgroud)
where MYDIR定义为包含二进制文件的目录,例如
PATH=/Users/username/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
您应该将它放在启动脚本中,例如.bashrc,以便每次调用shell进程时它都会运行.
请注意,顺序很重要,并且评估PATH,以便在路径变量的早期条目中找到与您的名称匹配的脚本,那么您将执行该脚本.因此,您可以将脚本命名为apt-get并将其放在路径的前面.我不会这样做,因为它令人困惑.您可能希望调查shell别名.
我还注意到你说它在当前目录下工作正常.如果你的意思是你的路径(.)中有当前目录,那么这是一个潜在的安全风险.有人可以将一些常用实用程序的木马变体(例如ls)放在目录中,然后将您带到cd to该目录并无意中运行它.
| 归档时间: |
|
| 查看次数: |
57880 次 |
| 最近记录: |