环境变量是在外壳的定义和执行时的程序是需要的一些特殊的变量。 它们可以是系统定义的或用户定义的。 系统定义的变量是由系统设置并由系统级程序使用的变量。
设置和取消设置Linux环境变量
对于如PWD命令是被用来存储当前工作目录一个非常普遍的系统变量。 用户定义的变量通常由用户设置,临时为当前shell或永久设置。 设置和取消设置环境变量的整个概念围绕一些文件集,几个命令和不同的shell。
在更广泛的意义上,环境变量可以有三种类型:
局部环境变量
为当前会话定义的一个。 这些环境变量只持续到当前会话,无论是远程登录会话还是本地终端会话。 这些变量未在任何配置文件中指定,并且通过使用一组特殊的命令创建和删除。
2.用户环境变量
这些是为特定用户定义的变量,并且在每次用户使用本地终端会话登录或用户使用远程登录会话登录时加载。 这些变量通常设置在并加载从以下配置文件: .bashrc
, .bash_profile
, .bash_login
, .profile
文件是存在于用户的主目录。
3.系统范围的环境变量
这些是系统范围内可用的环境变量,即该系统上存在的所有用户。 这些变量存在于目前在以下目录和文件系统级配置文件: /etc/environment
, /etc/profile
, /etc/profile.d/
, /etc/bash.bashrc
。 这些变量在系统每次打开电源时加载,并由任何用户本地或远程登录。
了解用户范围和系统范围的配置文件
在这里,我们简要描述上面列出的保存环境变量的各种配置文件,系统范围或用户特定。
.bashrc
这个文件是用户特定的文件,每次用户创建新的本地会话时加载,即简单的话,打开一个新的终端。 在此文件中创建的所有环境变量将在每次启动新的本地会话时生效。
.bash_profile
此文件是用户特定的远程登录文件。 每次用户远程登录时,即使用ssh会话,将调用此文件中列出的环境变量。 如果这个文件不存在,系统将查找任何.bash_login
或.profile
的文件。
/ etc / environment
此文件是用于创建,编辑或删除任何环境变量的系统范围文件。 在此文件中创建的环境变量可在整个系统中由每个用户在本地和远程访问。
/etc/bash.bashrc
系统范围bashrc
文件。 每次用户打开本地终端会话时,此文件将加载一次。 在此文件中创建的环境变量对所有用户可访问,但只能通过本地终端会话访问。 当通过远程登录会话远程访问该计算机上的任何用户时,这些变量将不可见。
/ etc / profile
系统范围的配置文件。 在此文件中创建的所有变量都可以由系统上的每个用户访问,但前提是远程调用该用户的会话,即通过远程登录。 此文件中的任何变量将无法访问本地登录会话,即当用户在其本地系统上打开一个新终端时。
注意 :使用系统级或用户级配置文件创建环境变量可以通过只从这些文件中删除它们被删除。 只是在这些文件中的每个更改后,要么注销并再次登录或只是在终端上键入以下命令以使更改生效:
$ source <file-name>
在Linux中设置或取消设置本地或会话级环境变量
本地环境变量可以用下面的命令来创建:
$ var=value OR $ export var=value
这些变量是会话范围的,仅对当前终端会话有效。 要清除这些会话范围的环境变量,可以使用以下命令:
使用env
默认情况下, "env"
命令列出当前所有的环境变量。 但是,如果与使用'-i'
开关,它暂时清除了所有的环境变量,并允许用户在当前会话中没有所有环境变量的执行命令。
$ env –i [Var=Value]… command args…
在这里, var=value
对应于您想仅此命令使用任何局部环境变量。
$ env –i bash
将给予bash shell暂时不会有任何环境变量。 但是,当你退出shell时,所有的变量都将被恢复。
2.使用未设置
另一种清除局部环境变量的方法是使用unset命令。 要临时取消设置任何本地环境变量,
$ unset <var-name>
其中, var-name
是要取消设置或清除局部变量的名称。
3.将变量名设置为“
另一种不太常见的方法是设置要清除变量的名称,以''
空)。 这将清除其活动的当前会话的局部变量的值。
注 -您还可以与播放和更改系统或用户环境变量的值,但变化将反映当前终端会话只,也不会是永久的。
了解如何在Linux中创建,用户范围和系统范围的环境变量
在部分,我们将学习如何在Linux中设置或取消设置本地,用户和系统环境变量,下面的例子:
1.在Linux中设置和取消设置局部变量
一。)在这里,我们创建了一个局部变量VAR1
并将其设置为任意值。 然后,我们使用unset去除该局部变量,并在结束时删除该变量。
$ VAR1='youcl is best Site for Linux Articles' $ echo $VAR1 $ unset VAR1 $ echo $VAR1
设置未设置的本地环境变量
湾)创建本地变量的另一种方式是通过使用export
命令。 创建的局部变量将可用于当前会话。 取消设置变量只需设置变量的值设置为''
$ export VAR='youcl is best Site for Linux Articles' $ echo $VAR $ VAR= $ echo $VAR
在Linux中导出本地环境变量
角)在这里,我们创建了一个局部变量VAR2
并将其设置为一个值。 然后按顺序运行一个命令暂时清除了所有本地和其他环境变量,我们执行'env –i'
命令。 此命令在此处通过清除所有其他环境变量来执行bash shell。 进入后'exit'
的调用bash shell中,所有变量都将被恢复。
$ VAR2='youcl is best Site for Linux Articles' $ echo $VAR2 $ env -i bash $ echo $VAR2
使用Env命令取消设置变量
2.在Linux中设置和取消设置用户环境变量
一)修改.bashrc
在您的家目录下的文件导出或设置你需要添加环境变量。 该源的文件后,以使更改生效。 然后你会看到变量( 'CD'
在我的情况),拍摄效果。 此变量将在您为此用户打开一个新终端时可用,但不能用于远程登录会话。
$ vi .bashrc
添加以下行.bashrc
底部文件。
export CD='This is youcl Home'
现在运行以下命令来接受新的更改并对其进行测试。
$ source .bashrc $ echo $CD
在Linux中设置用户环境变量
要删除此变量,只是删除.bashrc文件并重新源下面几行:
湾)要添加,当您ssh到远程系统的用户,将可用于远程登录会话(即变量),修改.bash_profile
文件。
$ vi .bash_profile
添加下面一行到.bash_profile
底部文件。
export VAR2='This is youcl Home'
当收到此文件时,变量将可用,当您ssh到此用户,但不是打开任何新的本地终端。
$ source .bash_profile $ echo $VAR2
在这里, VAR2
最初不可,但做SSH用户在本地主机上,变量可用。
$ ssh youcl@localhost $ echo $VAR2
在Bash配置文件中导出用户广泛的变量
要删除此变量,只是删除在该行.bash_profile
文件被添加的,并重新源文件。
注意 :这些变量将可每次你登录到当前用户而不是其它用户的时间。
3.在Linux中设置和取消设置系统环境变量
一。)要添加系统范围内没有登录变量(即其中一个适用于所有用户,当其中任何一个打开新的终端,但不是在机器的任何用户远程访问)添加变量/etc/bash.bashrc
文件。
export VAR='This is system-wide variable'
添加系统环境变量
然后,源文件。
$ source /etc/bash.bashrc
现在这个变量将在每个用户打开任何新终端时可用。
$ echo $VAR $ sudo su $ echo $VAR $ su - $ echo $VAR
检查系统范围的变量
在这里,同一个变量是供root用户和普通用户。 您可以通过登录其他用户来验证。
。b)如果你想要的任何环境变量可用时,您的任何计算机上的用户进行远程登录,但不能在本地计算机上打开任何新的终端,那么你需要编辑文件- '/etc/profile'
。
export VAR1='This is system-wide variable for only remote sessions'
在配置文件中添加系统范围的变量
添加变量后,只需重新源文件。 然后变量将可用。
$ source /etc/profile $ echo $VAR1
要删除此变量,请从该行/etc/profile
文件,并重新寻找它。
角)但是,如果你想添加你想成为所有可用的整个系统中的任何环境中,两个远程登录会话以及本地会话(即打开一个新的终端窗口)为所有用户,只导出变量/ etc / environment文件。
export VAR12='I am available everywhere'
在环境文件中添加系统变量
之后,只是源文件,更改将生效。
$ source /etc/environment $ echo $VAR12 $ sudo su $ echo $VAR12 $ exit $ ssh localhost $ echo $VAR12
检查所有用户的环境变量
此处,正如我们所看到的环境变量是可用于正常用户,根用户,以及在远程登录会话(这里,为localhost)。
要清除这个变量,只是删除在/ etc /环境文件中的条目,并重新源,或重新登录。
注 :当您在源文件中的更改生效。 但是,如果不是,那么您可能需要注销并再次登录。
结论
因此,这些是我们可以修改环境变量的几种方法。 如果你发现任何新的和有趣的伎俩同样提到你的意见。