20

如何让你的脚本可以在任意地方都可执行?

 3 years ago
source link: http://developer.51cto.com/art/202005/616891.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

我们知道,在 Linux 下写完一个脚本,通常情况下我们需要到脚本所在的目录,才可以执行这个脚本。但是大家有没注意到,像 ls 、cd 、pwd 这样的命令,它们的程序是位于 /bin 目录下,但是我们却可以在系统的任意位置都可以执行这些程序。

aAbUja3.jpg!web

它们是怎么做到的?

那是因为这些命令对应的程序所在路径被加到了 Path 环境变量里。所以我们如果把自己的脚本路径加到了这个变量里,我们也可以实现在任意地方执行自己脚本的效果。

下面我们来介绍三种方法来达到这个目的。

方法1:将脚本所在路径添加到 `.bashrc` 文件里

我们知道,Bash 在运行起来之后,会先加载 .bashrc 文件。所以,我们可以把脚本路径添加到 .bashrc 文件,然后就能达到目标。

假设,我现在脚本放在 /home/alvin/scripts 目录下,脚本名称是 hello.sh ,运行的结果就是打印一句 hello world 。

0290d7224bc2e4b1039b45d5950afb04.jpg

然后,我们再把下面这句代码加到 .bashrc 最后:

export PATH="/home/alvin/scripts:$PATH" 

2yENnuQ.jpg!web

最后,再使用 source 命令使我们的修改生效:

$ source ~/.bashrc 

现在,我们就可以在任何地方使用我们自己的脚本啦~

b1fac38286add29b4a0c863f86581889.jpg

方法2:将脚本所在路径添加到 `.profile` 文件里

.profile 文件是一个环境变量配置文件,用户在登录系统的时候加载此文件来配置环境变量。所以我们可以在这个文件里添加我们的路径,使得脚本在任意地方都可以使用。

我们可以在 .proflie 文件末尾加入下面这句代码:

export PATH="$PATH:$HOME/scripts" 

然后,我们需要退出终端再重新登录使修改生效。

如果你使用 Ubuntu 及其衍生发行版,那么就需要修改 .pam_environment 文件,而不是 .profile 文件。同样地,在该文件末尾加入这么一句代码:

PATH DEFAULT=${PATH}:/home/@{PAM_USER}/scripts 

最后,同样重新登录使能修改。

这时,大家就可以在任何地方都可以执行你的脚本了。

方法3:将脚本所在路径添加到环境变量里

这个方法大家应该都能想到,比较简单粗暴,直接改环境变量文件。该文件一般位于 /etc 目录下,文件名是 environment 。

sudo vim /etc/environment 

我们找到文件里的这么一句配置:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin" 

我们只要在这句话后面再加上我们的脚本路径即可。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/alvin/scripts" 

跟方法2一样,需要将用户登出再重新登录即可,然后我们的目的就可以达成了。

小结

本文介绍三种不一样的方法,使得我们自己写的脚本在任何地方都可以直接使用。方法很简单,但学会了会省不少时间!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK