我知道如何运行我创建的脚本。但是要在终端中更改目录并运行我的脚本,这是一件痛苦的事情。
我需要运行的 slowloris
脚本在桌面上,现在需要更改目录到桌面并运行。
然后我在根目录有另一个脚本,现在需要更改目录到根目录并运行该脚本。
我的问题是:
如何仅通过在任何路径输入./script
来运行任何 shell 脚本,就像我们通过在任何路径中输入 msfconsole
来启动 Metasploit 一样。
一种选择是直接输入脚本的路径:
~/Desktop/script
PATH
的用途。而$HOME/bin
也是为此而设立的。$HOME/bin
。把所有可执行脚本放进去(如果需要,使用chmod +x script
使它们变成可执行文件)。这样,你只需在一个地方寻找要运行的脚本。$HOME/bin
添加到PATH
中。我把它放在前面:PATH="$HOME/bin:$PATH
,但如果你喜欢,也可以放在后面。.profile
或.bash_profile
(或可能是.bashrc
)文件以设置PATH
。不过要注意不要让PATH
无限增长。PATH
上的目录中,您就不再需要输入 ./script
,而只需输入 script
。这与您输入 ls
而不是 /bin/ls
等完全相同。一旦程序安装在您的 PATH
目录中,它(对于许多用途)与系统提供的命令无法区分。$HOME/bin
目录中。PATH
上。然而,最好不要将程序添加到以下任何一个中:
/bin
- 存放系统启动时所需的基本命令。/usr/bin
- 存放系统安装的软件和应用程序的可执行文件。/sbin
- 存放只有管理员可用的命令。/usr/sbin
- 存放只有管理员可用的系统命令。通常还有/usr/local/bin
,适合存放没有系统提供的广泛使用的命令。
†† 最好使用chmod a+x,go-w script
;您的脚本不应该被其他人写入。 您甚至可以简单地使用chmod 555 script
或chmod 755 script
。 我倾向于保持我的脚本不可写。 这样,我必须通过版本控制系统进行正式更改过程。 这意味着减少了未受控制的更改的危险。
script
而不是./script
。 - tripleee$PATH
环境变量中。这样,您可以在任何地方运行slowloris
而不需要./slowloris
(因为./表示“从此目录运行”)。我想向您指出一个很好的例子!https://askubuntu.com/questions/60218/how-to-add-a-directory-to-the-path - amc您需要将脚本复制或链接到$PATH上的目录中。通常,/usr/bin
和/usr/local/bin/
都在路径上,因此这些是将脚本链接或复制到的好位置。
ln -s /path/to/your/script /usr/local/bin
如果您不是root用户,则需要使用sudo
命令或以root用户身份运行该命令。
./script
,只需输入 script
即可。 - dlmeetei
/usr/local/bin
。然后,只需确保你的脚本是可执行的(例如chmod +x <脚本名>
)。 (在选择“脚本名”时,建议使用which 脚本名
或type 脚本名
来检查是否已经有其他程序使用了该名称)。将脚本所在位置添加到路径中,并使其可执行后,你可以通过输入“脚本名”在任何地方运行它。 - David C. Rankinsh scriptname.sh
运行脚本,而任何带有bash扩展名的脚本都不能保证以这种方式运行。 - Charles Duffy