我知道如何运行我创建的脚本。但是,我需要通过终端更改目录并运行我的脚本,这是一个痛苦的问题。
我需要运行已进入Desktop的slowloris
脚本,现在将目录更改为Desktop并运行。
然后我又有另一个根;现在将目录更改为root并运行它。
我的问题是:
如何通过从任何路径键入./script
来运行任何shell脚本,就像我们通过从任何路径提供msfconsole
从任何路径启动Metasploit一样。
答案 0 :(得分:4)
一个选项就是输入脚本的路径:
~/Desktop/script
这很好用,但有点笨拙。
这是PATH
环境变量的用途。这是$HOME/bin
的用途。
$HOME/bin
。将所有可执行脚本放入其中(如果需要 ** ,则使用chmod +x script
使其可执行)。这样,就有一个地方可以查找您想要运行的脚本。$HOME/bin
添加到您的PATH
。我把我放在前面:PATH="$HOME/bin:$PATH
,但如果你愿意,可以把它放在后面。.profile
或.bash_profile
(或可能的.bashrc
)文件以设置PATH
。但要注意不断增长的PATH。作为tripleee noted,一旦命令安装在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 script
或chmod 755 script
。我倾向于保持我的脚本不可写。这样,我必须通过版本控制系统进行正式的更改过程。这意味着不受控制的变化的危险性会降低。
答案 1 :(得分:0)
您必须将脚本复制或链接到$ PATH上的目录中。通常/usr/bin
和/usr/local/bin/
位于路径上,因此这些是将脚本链接或复制到的好位置。
ln -s /path/to/your/script /usr/local/bin
如果您不是root用户,则需要sudo
该命令或以root用户身份运行它。