常用脚本的非sudo替代/ usr / local / bin

我习惯将常用脚本放在/usr/local/bin这样我就可以在终端的任何地方执行它们。

例如,我创建一个名为1的shell脚本,使用chmod +x 1将其设置为可执行文件并将其放在/usr/local/bin ,在脚本中我在第一行输入#!/bin/sh ,然后我的命令。 从那以后,通过打字可以非常方便地使用并快速执行

1 Enter

在终端上,从任何文件夹里面。

我的问题是,我目前正在一台无法做sudo的计算机上工作,我也不能指望得到它,所以我不能将我的脚本放在/usr/local/bin

我有什么选择? 是否有另一条路径具有相同的“从任何地方运行”function,我可以在没有sudo情况下访问,或者以其他方式实现相同的function?

这篇文章接受的答案是

对于用户范围的脚本,请在主目录中使用bin /。

我尝试了,但我的主目录中没有bin文件夹,当我创建一个文件夹时,我仍然无法从其他任何地方运行该脚本。

我正在使用Ubuntu 12.04 LTS。

我有什么选择? 是否有另一条路径具有相同的“从任何地方运行”function,我可以在没有sudo的情况下访问,或者以其他方式实现相同的function?

怎么做?

在您的家中创建一些目录,以保存通常命名为bin的常规脚本。

 mkdir ~/bin 

现在将脚本移动到bin

 mv somescript ~/bin 

现在如何让它从各处进行调整?!

您必须将bin添加到PATH

打开你的.bashrc

 gedit .bashrc 

并添加此行:

 export PATH=$PATH:/home/username/bin 

不要忘记用您的用户名替换用户名

保存并退出,然后获取bashrc

 source .bashrc 

现在你很好,你可以像以前一样运行你的脚本! 但你必须注意到这只与你的用户有关。

注意:最好重命名除1,2之外的脚本,因为这些名称可能会遇到一些问题


更新:

您可以这样做,只需在您的家中创建bin目录,然后source ~/.profile而不是~/.bashrc 。 由于将〜/ bin添加到PATH已经在.profile列出了

 # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi 

除了https://askubuntu.com/a/643030/218015之外,您还可以在.bashrc中定义一个别名,用于经常使用的小任务。 例如

 alias ll='ls -l' alias ls='ls --color=auto' 

将创建一个“命令”ll,它正在执行ls -l并且ls将在定义别名后被着色。 https://wiki.ubuntuusers.de/alias正在提供更多示例和设置方法。