linux下的环境变量

1、全局变量
要查看全局变量,可以使用env或printenv命令。

env
printenv
要显示个别环境变量的值,可以使用printenv命令,但是不要用env命令。
$ printenv HOME
/home/Christine
$
$ env HOME
env: HOME: No such file or directory

也可以使用echo显示变量的值
echo $HOME

在变量名前加上$,可以让变量作为命令行参数
$ ls $HOME

2、局部环境变量
在Linux系统并没有一个只显示局部环境
变量的命令。 set命令会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量
以及用户定义变量
set
所有通过printenv命令能看到的全局环境变量都出现在了set命令的输出中。
但在set命令的输出中还有其他一些环境变量,即局部环境变量和用户定义变量。

3、用户定义变量
设置局部用户定义变量
$ echo $my_variable
$ my_variable=Hello
$
$ echo $my_variable
Hello

如果要给变量赋一个含有空格的字符串值,必须用单引号来界定字符串的首和尾。
$ my_variable=Hello World
-bash: World: command not found
$
$ my_variable="Hello World"
$
$ echo $my_variable
Hello World
$

变量名、等号和值之间没有空格

设置了局部环境变量后,就能在shell进程的任何地方使用它了。但是,如果生成了另外一个
shell,它在子shell中就不可用。
如果你在子进程中设置了一个局部变量,那么一旦你退出了子进程,那个局部环境
变量就不可用。
可以通过将局部的用户定义变量变成全局变量来改变这种情况

先创建一个局部环境变量,然后再把它导出到全局环境中 export my_variable
$ my_variable="I am Global now"
$
$ export my_variable
$
$ echo $my_variable
I am Global now
$
$ bash
$
$ echo $my_variable
I am Global now
$
$ exit
exit
$
$ echo $my_variable
I am Global now
$

在定义并导出变量my_variable后, bash命令启动了一个子shell。
子shell随后改变了这个变量的值。但是这种改变仅在子shell中有效,并不会被反映到父shell中。
子shell甚至无法使用export命令改变父shell中全局环境变量的值。


4、删除环境变量
删除已经存在的环境变量,可以用unset命令完成这个操作。
在unset命令中引用环境变量时,记住不要使用$。
$ echo $my_variable
I am Global now
$
$ unset my_variable
$
$ echo $my_variable
$

和修改变量一样,在子shell中删除全局变量后,你无法将效果反映到父shell中。


5、设置 PATH 环境变量
把新的搜索目录添加到现有的PATH环境变量中,PATH中各个目录之间是用冒号分隔的。
只需引用原来的PATH值,然后再给这个字符串添加新目录就行了。
PATH=$PATH:/home/christine/Scripts

6、环境变量的持久化
/etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行
这个启动文件。
在文件的最后一行添加   export PATH=$PATH:.

用户HOME目录中的.bashrc
如果你的bash shell不是登录系统时启动的(比如是在命令行提示符下敲入bash时启动),那
么你启动的shell叫作交互式shell。交互式shell不会像登录shell一样运行,但它依然提供了命令行
提示符来输入命令。
如果bash是作为交互式shell启动的,它就不会访问/etc/profile文件,只会检查用户HOME目录
中的.bashrc文件


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值