[英]Add a bash script to 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
然后我将其保存为 apt-proxy.sh,将其设置为 +x (chmod),当我在放置此文件的目录中时,一切正常。
我的问题是:如何将此apt-proxy添加到PATH以便我可以实际调用它,就好像它在真正的 apt-get 中一样? [从任何地方]
寻找仅命令行的解决方案,如果您知道如何通过 GUI 来做这很好,但不是我正在寻找的。
试试这个:
apt-proxy
(没有.sh
扩展名),例如~/bin
。~/bin
到你的PATH
,输入export PATH=$PATH:~/bin
~/.bashrc
添加最后一行。 如果您使用的是zsh
,请将其添加到~/.zshrc
。apt-proxy
,它会在任何地方运行。 请注意,如果您在特定窗口中export
PATH 变量,它不会在其他 bash 实例中更新。
您想将该目录定义为路径变量,而不是实际的二进制文件,例如
PATH=$MYDIR:$PATH
其中MYDIR
定义为包含二进制文件的目录,例如
PATH=/Users/username/bin:$PATH
你应该把它放在你的启动脚本中,例如 .bashrc 以便它在每次调用 shell 进程时运行。
请注意,顺序很重要,并且对 PATH 进行评估,以便如果在路径变量的较早条目中找到与您的名字匹配的脚本,那么您将执行该脚本。 因此,您可以将脚本命名为apt-get
并将其放在路径的较早位置。 我不会这样做,因为它很混乱。 您可能希望改为调查 shell 别名。
我还注意到你说它在你当前的目录中工作正常。 如果你的意思是你的路径中有当前目录( .
),那么这就是一个潜在的安全风险。 有人可以将某个通用实用程序(例如ls
)的某些特洛伊木马变体放在一个目录中,然后让您cd to
该目录并在不经意间运行它。
将可执行文件的别名添加到 ~/.bash_profile 文件中,然后从任何地方使用它,或者您可以获取包含您需要从任何地方运行的可执行文件的目录,这将为您解决问题。
作为最后一步,在遵循@jlhonora ( https://stackoverflow.com/a/20054809/6311511 ) 提出的解决方案后,更改文件夹“~/bin”中文件的权限。 你可以使用这个:
chmod -R 755 ~/bin
添加到@jlhonora 您在 ~./bashrc 或 ~./zshrc 中的更改不会反映,直到您执行 source ~./zshrc 或 source./bashrc,或重新启动您的电脑
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.