PATH是指环境变量,使用指令echo$PATH即可检查当时环境变量,假如需要修改能够在后面进行追加。比方想将/etc/apache2/bin添加为环境变量,可写为:
PATH=$PATH;
/etc/apache2/bin
然后回车即可。
1.1环境变量的意义
环境变量一般是指操作系统中指定操作系统运行环境的一些参数。它相当于一个指针,想要检查变量的值,需要加上“$”。
1.2环境变量的分类
1.2.1按作用的范围分
在Linux中的变量,能够分为环境变量和本地变量:
1)环境变量:相当于全局变量,存在于所有的Shell中,具有继承性;
2)本地变量:相当于局部变量只存在当时Shell中,本地变量包含环境变量,非环境变量不具有继承性。
1.2.2按生存周期分
1)永久:需要修改配置文件,变量永久收效;
2)暂时:使用export界说,封闭Shell后失效。
linuxpath环境变量设置
Linux环境变量是一个包括值的目标。简略来说,它是一对数据目标及其各自的值。假如对编程言语了解的话,那么这个环境变量是很好了解的,就类似于编程言语中的变量。Linux环境变量的履行与变量在编程言语中具有相同的作业。都是用于界说一个变量值,能够在其它地方能够运用它。
假如对编程编程言语不了解的话,则能够将linux变量了解为一个存储值的一个容器,用于保存称号以及对应的变量值。此值能够是文件体系中一切可履行文件的位置、应运用的默许编辑器或体系区域设置,或许一个大局默许的值。
那么就举个例子来了解一下这个环境变量,比方通常在Linux体系中履行ls指令,ls根本指令用于列出目录的内容。在linux中履行指令时,需求键入该指令的完整途径。才能够找到对应的履行文件,由于ls指令位于/bin目录中,因而用户应履行/bin/ls指令以列出当时目录中的文件。那么Linux环境变量的魔力来了。Linux有一个PATH变量。在PATH变量的帮助下,不需求完整途径。bashshell会主动在用户的PATH变量中列出的目录中搜索用户刚刚在指令行中键入的指令。当匹配的指令找到shell时,将运转它。经过这种方法,环境变量提供了一种在Linux中的多个应用程序和进程之间共享配置设置的简略方法。
第一部分:查看环境变量
怎么展示环境变量
printenv或env指令可用于列出linux环境变量。coreutils包中包括printenv和env。运用printenv指令显示linux环境变量。
[root@sharplee~]#printenv
or
[root@sharplee~]#env
第二部分:怎么设置环境变量
1,设置暂时环境变量
运用export指令来设置暂时环境变量,这个变量是只存在于设定环境变量的会话中,其它会话窗口是不会有该变量的,一旦会话结束或许会话退出,从头连接会话,该环境变量就不存在了,假如还需求运用的话还得继续设定该环境变量。比方PATH环境变量,是一个可履行文件的环境变量途径。下面就来设置一个环境变量加在PATH途径上,能够在任何地方履行该途径下的脚本,就不用在履行时还需求带上脚本途径。下面就来创立一个脚本途径。
[root@sharplee~]#mkdirtestPath
接下来在这个testPath目录下创立一个可履行脚本testscript.sh。
[root@sharpleetestPath]#echo”echo大乐学IT”>>testscript.sh
下面把这个可履行脚本的途径添加到PATH环境变量中去,能够在任何地方履行testscript.sh脚本。
[root@sharpleetestPath]#exportPATH=”${PATH}:/root/testPath”
接下来给这个可履行文件加一下履行权限。
[root@sharpleetestPath]#chmod+xtestscript.sh
最后来验证一下这个环境变量是否收效。
[root@sharplee~]#testscript.sh
接着在新建一个会话,看一下该指令是否收效。
说明这个暂时环境变量只在当时会话中收效,其它会话是不会收效的。那么怎么设置环境变量让其它会话也收效呢?
2,设置环境变量永久的
经过上面能够看出,暂时变量仅在当时会话上可用。那怎么能让这个变量在多个会话上都能用呢?能够设置环境变量永久化。出于安全原因,假如对linux体系没有充分的了解,主张不应界说大局环境变量。例如,一般都是将testPath添加到特定用户的PATH变量中。在这种情况下,请在本地界说它。因为这样的话就不会让体系上的一切其他用户也在其PATH中具有它。
以下文件应用于体系上的局部环境变量:~/profile、~/.bash_profile、~/.bash_login和~/.bash_logout。接下来,添加上面设置的testPath进入到~/.bash_profile中。
[root@sharplee~]#vi~/.bash_profile
编辑完成之后,履行”source~/.bash_profile”使其立马收效。下面来测验一下,设置完环境变量之后,脚本是否能够正常履行。
最后,新登录一个会话,看是否还能进行脚本的履行。
从上图能够看出从头登录一个会话也是能够履行脚本的,PATH环境变量中也包括脚本的履行途径。那假如咱们换个用户登录,看一下是否还能履行呢?
换个用户登录是履行不了脚本的。说明这种方法只能针对具体的用户永久化,有没有针对用户永久化的呢?
3,设置环境变量大局永久化
root权限需求大局设置linux环境变量。RHEL维护和管理大量文件中的环境变量。可是,能够不用留意或许包括环境变量的一切文件。按照RHEL主张,只应关注在某些特定文件中设置环境变量。以下文件应用于在体系上界说大局环境变量:/etc/profile、/etc/bash.bashrc和/etc/environment。/etc/profile.d目录用于界说大局脚本。下面就在/etc/profile.d目录下创立一个大局脚本,启动时就会运转该脚本。接着在/etc/profile中添加一个“exportPATH=”${PATH}:/root/testPath“”指令,即可在任何用户下都能履行该脚本了。
[root@sharpleeprofile.d]#echo”echo大乐学IT,测验大局环境变量”>>testglobal.sh
下面就来测验一下,这个大局脚本途径。是不是在一切用户下都能履行。
总结:经过上面几种方法都能够设置环境变量,第一种是暂时环境变量,只在当时会话中运用,第二种是用户会话永久化,针对具体的用户的会话做环境变量永久化,特定用户不管开了多少会话窗口都能够履行,最后一种是针对一切用户的大局环境变量,就是一切用户能够共享的,在/etc/profile文件中设置环境变量,在一切用户中都能运用。可是强烈主张运用第一种,第二种方法,第三种方法一般不主张运用涉及安全问题。