搜索
简帛阁>技术文章>如何让你的脚本可以在任意地方都可执行?

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

大家好,我是良许。

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

它们是怎么做到的?

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

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

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

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

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

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

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

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

$ source ~/.bashrc

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

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

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

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

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

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

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

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

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

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

2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 公众号「良许Linux」后台回复「资料」免费获取

方法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一样,需要将用户登出再重新登录即可,然后我们的目的就可以达成了。

小结

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

看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!

  1. 关注原创公众号「良许Linux」,第一时间获取最新Linux干货!
  2. 公众号后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
  3. 关注我的博客:lxlinux.net
大家好,我是良许。我们知道,Linux下写完一个脚本,通常情况下我们需要到脚本所在目录,才可以执行这个脚本。但是大家有没注意到,像ls、cd、pwd这样命令,它们程序是位于/bin目录下,但
们知道,Linux下写完一个脚本,通常情况下我们需要到脚本所在目录,才可以执行这个脚本。但是大家有没注意到,像ls、cd、pwd这样命令,它们程序是位于/bin目录下,但是我们却可以系统
<bodyonload"要执行函数();">注意:脚本是加再尾部,不能onload里,脚本函数或代码被执行时候需要保证图片被完整载入加尾部这样写:1、windowonload函数
我们写批处理时候,我们经常使用echo(Alt+7)来发出一个简单声音,但是我们编写一个复杂点批处理文件时候可能需要得到不同警示声音,我们可以使用mplay32来实现,他为我发音后然后
管Windows图形界面早已经取代了无趣DOS字符界面(废话,Vista呼之欲出了),不过日常操作中,还是有很多时候需要用到命令提示符。比如批量重命名文件时、执行字符命令时、命令行下恢复系统
相信大家听说自动化流水线、自动化办公等专业术语,尽量少人工干预情况下,机器就可以根据固定程序指令来完成任务,大大提高了工作效率。今天小编来为大家介绍几个Python自动化脚本,也希望可以大大
最近做一个webterminal需求,自己也写了demo,使用websocket+stomp进行前后端通讯,其中遇到一个问题,就是我前后端连接正常及ssh连接也正常了,但是我需要把ssh连接返
redis官网上洋洋洒洒大概提供了200多个命令,貌似看起来很多,但是这些都是别人预先给你定义好,但却不能按照自己意图进行定制,所以是不是感觉自己还是有一种被束缚感觉,有这个感觉就对了。
两步操作1本机上生成ssh公钥,将其添加码云/github账户,操作如下图打开gitbush窗口,,输入sshkeygentrsaC“您邮箱地址”生成新sshkeygen:$sshkeyge
将头部标签<metanameviewportcontentwidthdevicewidth,initialscale10/>,改为<metanameviewportcontent