如何从终端中的任何路径 运行 .sh 脚本?
How to run a .sh-script from any path in a terminal?
我知道如何 运行 我创建的脚本。但是我需要通过终端和 运行 我的脚本更改目录是一件很痛苦的事情。
我需要 运行 已进入桌面的 slowloris
脚本,现在将目录更改为桌面和 运行。
然后我在根目录下还有一个;现在将目录更改为 root 和 运行 that.
我的问题是:
如何通过从任何路径输入 ./script
来 运行 任何 shell-脚本 就像我们通过给出 [=13= 从任何路径启动 Metasploit ] 来自任何路径。
您必须将脚本复制或link 到 $PATH 上的目录中。通常 /usr/bin
和 /usr/local/bin/
在路径上,所以这些是 link 或将脚本复制到的好位置。
ln -s /path/to/your/script /usr/local/bin
如果您不是 root,您将需要 sudo
该命令或 运行 作为 root 用户。
一个选项是简单地键入脚本的路径:
~/Desktop/script
这很好用,但有点笨拙。
这就是 PATH
环境变量的用途。这就是 $HOME/bin
的用途。
- 为自己创建一个目录
$HOME/bin
。将所有可执行脚本放入其中(如果需要,请使用 chmod +x script
使它们可执行 ††)。这样一来,就可以在一个地方查找您想要 运行. 的脚本
- 将
$HOME/bin
添加到您的 PATH
。我把我的放在前面:PATH="$HOME/bin:$PATH
,但如果你愿意,你可以把它放在后面。
- 更新您的
.profile
或 .bash_profile
(或可能 .bashrc
)文件以设置 PATH
。不过,请注意不断增长的 PATH。
与 tripleee 一样,一旦命令安装在 PATH
上的目录中,您就不再键入 ./script
,而只需键入 script
。这与您键入 ls
而不是 /bin/ls
等完全一样。一旦程序安装在您的 PATH
上的目录中,它(出于许多目的)就无法与系统提供的程序区分开来命令。
我的 $HOME/bin
目录中有大约 500 个脚本和程序。
请注意,这不需要任何特殊权限。如果您对您的计算机具有管理员访问权限,并且您认为其他用户可能会发现您的命令有用,那么您可以将 scripts/programs 安装在 PATH
上系统提供的目录之一中。但是,通常最好不要将程序添加到以下任何一个:
/bin
/usr/bin
/sbin
/usr/sbin
这里有often/usually /usr/local/bin
适合放置系统没有提供的广泛使用的命令
††最好用chmod a+x,go-w script
;你的脚本不应该被其他人写入。您甚至可以简单地使用 chmod 555 script
或 chmod 755 script
。我倾向于让我的脚本不可写。这样,我必须通过版本控制系统进行正式的更改过程。这意味着不受控制的更改的危险较小。
我知道如何 运行 我创建的脚本。但是我需要通过终端和 运行 我的脚本更改目录是一件很痛苦的事情。
我需要 运行 已进入桌面的 slowloris
脚本,现在将目录更改为桌面和 运行。
然后我在根目录下还有一个;现在将目录更改为 root 和 运行 that.
我的问题是:
如何通过从任何路径输入 ./script
来 运行 任何 shell-脚本 就像我们通过给出 [=13= 从任何路径启动 Metasploit ] 来自任何路径。
您必须将脚本复制或link 到 $PATH 上的目录中。通常 /usr/bin
和 /usr/local/bin/
在路径上,所以这些是 link 或将脚本复制到的好位置。
ln -s /path/to/your/script /usr/local/bin
如果您不是 root,您将需要 sudo
该命令或 运行 作为 root 用户。
一个选项是简单地键入脚本的路径:
~/Desktop/script
这很好用,但有点笨拙。
这就是 PATH
环境变量的用途。这就是 $HOME/bin
的用途。
- 为自己创建一个目录
$HOME/bin
。将所有可执行脚本放入其中(如果需要,请使用chmod +x script
使它们可执行 ††)。这样一来,就可以在一个地方查找您想要 运行. 的脚本
- 将
$HOME/bin
添加到您的PATH
。我把我的放在前面:PATH="$HOME/bin:$PATH
,但如果你愿意,你可以把它放在后面。 - 更新您的
.profile
或.bash_profile
(或可能.bashrc
)文件以设置PATH
。不过,请注意不断增长的 PATH。
与 tripleee PATH
上的目录中,您就不再键入 ./script
,而只需键入 script
。这与您键入 ls
而不是 /bin/ls
等完全一样。一旦程序安装在您的 PATH
上的目录中,它(出于许多目的)就无法与系统提供的程序区分开来命令。
我的 $HOME/bin
目录中有大约 500 个脚本和程序。
请注意,这不需要任何特殊权限。如果您对您的计算机具有管理员访问权限,并且您认为其他用户可能会发现您的命令有用,那么您可以将 scripts/programs 安装在 PATH
上系统提供的目录之一中。但是,通常最好不要将程序添加到以下任何一个:
/bin
/usr/bin
/sbin
/usr/sbin
这里有often/usually /usr/local/bin
适合放置系统没有提供的广泛使用的命令
††最好用chmod a+x,go-w script
;你的脚本不应该被其他人写入。您甚至可以简单地使用 chmod 555 script
或 chmod 755 script
。我倾向于让我的脚本不可写。这样,我必须通过版本控制系统进行正式的更改过程。这意味着不受控制的更改的危险较小。