当前位置: 首页 > 知识库问答 >
问题:

将bash脚本添加到路径

梅宏盛
2023-03-14

我想在linux路径中添加一个小脚本,这样我就不必在磁盘上实际运行它。

这个脚本非常简单,是关于通过代理提供apt-get访问权限的,我是这样做的:

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

然后我将其保存为apt代理。sh,将它设置为x(chmod),当我在这个文件所在的目录中时,一切都正常工作。

我的问题是:如何将这个apt-代理添加到PATH中,这样我就可以实际调用它,就好像它是真正的apt-get一样?[从任何地方]

寻找命令行唯一的解决方案,如果你知道如何做的GUI很好,但不是我要找的。

共有3个答案

左丘弘致
2023-03-14

作为最后一步,在遵循@jlhonora提出的解决方案表之后(https://stackoverflow.com/a/20054809/6311511),更改文件夹“~/bin”中文件的权限。您可以使用以下选项:

chmod -R 755 ~/bin
邹俊拔
2023-03-14

您希望将该目录定义为path变量,而不是实际的二进制文件,例如。

PATH=$MYDIR:$PATH

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

PATH=/Users/username/bin:$PATH

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

请注意,顺序很重要,并且PATH的计算是这样的,如果在path变量的较早条目中找到了与您的名字匹配的脚本,那么这就是您要执行的脚本。因此,您可以将脚本命名为apt-get,并将其放在路径的前面。我不会那么做,因为这很混乱。您可能想调查shell别名。

我还注意到,您说它在当前目录下运行良好。如果您的意思是在路径中有当前目录(),那么这是一个潜在的安全风险。有人可能会将某个常见实用程序的特洛伊木马变体(例如,ls)放在一个目录中,然后让您转到该目录的cd,并无意中运行它。

微生旻
2023-03-14

试试这个:

  • 将脚本另存为某些目录中的apt proxy(不带.sh扩展名),如~/bin
  • ~/bin添加到您的路径中,键入导出路径=$PATH:~/bin
  • 如果您永久需要它,请在~/中添加最后一行。bashrc。如果您正在使用zsh,请将其添加到~/。zshrc
  • 然后,您可以使用参数运行aptproxy,它将在任何地方运行

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

 类似资料:
  • 问题内容: 我想在Linux PATH中添加一个小脚本,因此不必在实际放置在磁盘上的地方实际运行它。 该脚本非常简单,它是关于通过代理赋予apt-get访问权限的,我使它像这样: 然后,我将其保存为apt-proxy.sh,将其设置为+ x(chmod),当我位于该文件所在的目录中时,一切正常。 我的问题是:如何将此 apt-proxy 添加到 PATH, 以便实际上可以将其称为真正的apt-ge

  • 问题内容: 我有一个相对简单的问题,试图将内联脚本添加到React组件。到目前为止,我有: 我也尝试过: 两种方法似乎都无法执行所需的脚本。我猜这是我所缺少的简单事情。有人可以帮忙吗? PS:忽略foobar,我有一个真正的ID正在使用中,而我不想共享。 问题答案: 编辑:事情变化很快,这已经过时了-查看更新 您是否想在每次渲染此组件时一次或一次将该组件安装到DOM中时一次又一次地获取并执行脚本?

  • 问题内容: 我有一个相对简单的问题,试图将内联脚本添加到React组件中。到目前为止,我有: 我也尝试过: 两种方法似乎都无法执行所需的脚本。我想这很简单,我很想念。有人可以帮忙吗? PS:忽略foobar,我确实有一个真正的ID正在使用,而我不想共享。 问题答案: 编辑:事情变化很快,这已经过时了-查看更新 您是否想在每次渲染此组件时一次或一次将该组件安装到DOM中时一次又一次地获取并执行脚本?

  • 我正在从Bash脚本启动一个名为 的Java代码。Bash 脚本启动 Java 代码,然后运行 Java 代码。在Java程序结束时,我想发送一个信号回到Bash脚本以终止。请记住,Bash 脚本在 PID = 1 的情况下运行。我必须杀死PID 1过程。 我设置了bash脚本,使其在无限循环中运行,并< code >等待终止信号: 我正在使用Docker实例,信号是< code>sigterm。

  • 问题内容: 是否可以通过shell脚本将用户添加到sudoers文件中?我一直在环顾四周,仍然找不到任何东西。 问题答案: 您可以简单地(当然具有提升的特权)直接访问文件: (请注意用户名和第一个之间的制表符) 或者,对于脚本: 然后保存到,然后从终端窗口运行。 要添加多个用户,请将脚本更改为此。 然后,像这样运行脚本(假设您将其另存为): 即,以空格分隔。 要从文件中读取名称: 也应以空格分隔。

  • 问题内容: 我将稍微简化一下情况。假设我有一个名为Lab的模型。 该字段query几乎总是与该字段相同。因此,我希望在Django管理界面中的字段中输入文本后自动填写该字段。此任务必须由jQuery脚本执行。 因此,如果我举一个例子:你想通过Django管理界面向数据库添加一个新实验室。你单击添加按钮,你将进入带有两个字段的空白表格。你手动使用诸如的值填写该字段,ABCD然后该字段应自动以相同的值