使用Linux操作系统(比如Ubuntu)的时候,经常会碰到环境变量的问题。环境变量是什么?有什么用?系统一开始如何确定环境变量的值?后续怎么设置?代码里面又可以如何获取和修改?这些疑问是任何一个开始玩Linux的同学需要掌握的。
在C语言程序中,我们常会用到局部变量和全局变量,局部变量的作用范围是该程序的一个局部区域,而全局变量是该程序的所有部分。但是还有一种变量作用范围更大:在整个“环境”(即整个系统)中都起作用,这样的变量被称为环境变量。
怎么查看当前有哪些环境变量呢?很简单,一个命令搞定:
env
执行此命令之后,你将会看到一大堆环境变量的名字及其具体的值,例如:
vincent @ ubuntu-16.04 $ env XDG_SESSION_ID=122 TERM=xterm-color SHELL=/bin/bash SSH_CLIENT=183.5.244.135 5130 22 USER=vincent MAIL=/var/mail/vincent PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin:/usr/games:/usr/local/games SHEVL=1 HOME=/home/vincent LANGUAGE=en_US: LESSOPEN=| /usr/bin/lesspipe %s .....
上面的每一行,都是一个环境变量与其值,比如USER=vincent,此处环境变量的名字为USER,其值为vincent。
仔细观察发现,环境变量一般都是大写的,每个变量所代表的含义也都不尽相同。那如果想要修改一个环境变量的值,该怎么做呢? 答案是敲入如下命令:
export XXX= ... ...
其中,XXX 是某环境变量的名字,由于每个变量的含义不同,因此赋值号=右边的内容就会有所不同。比如设置PATH环境变量:
export PATH=$PATH:/home/vincent/test
这句话的意思,是在PATH环境变量原来的值的基础上,追加一个路径,然后再赋值给PATH。
以上方法修改的环境变量,是临时生效的,要想永久有效,就必须将以上命令写入shell的配置文件~/.bashrc里面去。也就是说,将以上命令,添加到 ~/.bashrc文件的末尾就可以了。
当然,编辑了配置文件,别忘了让系统重新加载它,使之生效:
source ~/.bashrc