如何从Unixterminal的任何path运行.sh脚本?

我知道如何运行我创build的脚本。 但是,我需要通过terminal改变目录并运行我的脚本,这是一个痛苦的问题。 我需要运行到桌面的slowloris脚本,现在改变目录到桌面并运行。

然后我有另一个根; 现在将目录更改为root并运行该目录。

我的问题是: 如何通过从任何pathinput./script来运行任何shell脚本,就像我们从任何path启动Metasploit一样,通过从任何path给予msfconsole

Solutions Collecting From Web of "如何从Unixterminal的任何path运行.sh脚本?"

一个选项是简单地键入脚本的路径:

 ~/Desktop/script 

这工作正常,但有点笨拙。

这是PATH环境变量的用途。 这是$HOME/bin的用途。

  1. 创建一个目录$HOME/bin 。 把所有的可执行脚本放在里面(如果需要,可以用chmod +x script使它们可执行)。 这样,有一个地方可以查找要运行的脚本。
  2. $HOME/bin添加到您的PATH 。 我把它放在前面: PATH="$HOME/bin:$PATH ,但是如果你喜欢,你可以把它放在后面。
  3. 更新.profile.bash_profile (或可能的.bashrc )文件来设置PATH 。 但是要注意不断增长的PATH。

正如tripleee 指出的那样 ,一旦命令安装在PATH目录中,就不会再输入./script ,而只是script 。 这与你输入ls而不是/bin/ls等一样。一旦程序被安装在你的PATH目录中,它就(用于很多目的)与系统提供的命令不可区分。

我的$HOME/bin目录中有大约500个脚本和程序。

请注意,这不需要任何特殊的权限。 如果您有管理员对您计算机的访问权限,并且您认为其他用户可能会发现您的命令有用,则可以将这些脚本/程序安装在PATH上系统提供的其中一个目录中。 但是,通常最好不要将程序添加到以下任一项中:

  • /bin
  • /usr/bin
  • /sbin
  • /usr/sbin

通常/usr/local/bin通常是适用于非系统广泛使用的命令的地方。


**对我们来说chmod a+x,go-w script会更好; 你的脚本不应该被其他人写。 你甚至可以简单地使用chmod 555 scriptchmod 755 script 。 我倾向于保持我的脚本不可写。 这样,我必须通过版本控制系统进行正式的更改。 这意味着不受控制的变化的危险性较小。

您必须将脚本复制或链接到$ PATH上的目录。 通常/usr/bin/usr/local/bin/位于路径上,因此这些是将脚本链接或复制到的好位置。

 ln -s /path/to/your/script /usr/local/bin 

如果您不是root用户,则需要sudo该命令或以root用户身份运行该命令。