社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
我一直以来都在用Ubuntu系统,每当我装一些软件的时候,我都会本能的Google去看怎么配置这些烦人的环境变量。有的时候,还会出现很多的错误。因为我不明白到底在配置什么,我只是本能的Copy到我的一些文件中,它就可以工作了,但是我不明白其原理,所以出错了以后我会花很多时间来重新Google,甚至把先前所有的东西都删掉,因为我也不知道具体哪里出错了。因此,我决定学习一下,把这个东西搞定。
我为环境变量画了一张思维导图,我会对照上面的序号解释并例举一些例子。
设置局部环境变量:用等号给环境变量赋值,值可以是数字或字符串。
$ user=xlinsist
## 设置含有空格的字符串时,必须加单引号
$ dog='i love xlinsist blog'
设置全局环境变量:用等号给环境变量赋值,值可以是数字或字符串。
## 设置过程与局部变量类似,只不过我们需要加export命令
$ dog='i love xlinsist blog'
$ export dog
##上面的dog就为全局变量了
警告:在环境变量名称、等号和值之间没有空格。
显示环境变量非常简单,无论是局部环境变量和全局环境变量都用这种方法就行。但是,这会涉及到可见性的问题,现在先不用管它,下面我会解释的。
## 显示上面设置的dog环境变量
$ echo $dog
全局环境变量可以在定义它们的进程创建的子进程中使用。而局部环境变量只能在定义它们的进程中使用。
如果我将上面的human设置为全局环境变量,那么启动的新bash shell中就会存在human环境变量。
## 删除环境变量
$ unset human
当我们在删除全局环境变量时,如果是在子进程中删除了环境变量,那么父进程中的全局环境变量依然有效。
当我安装Java的时候,我总会把bin目录写入到几个文件当中,现在,让我们看一看这些文件到底起什么样的作用。
当我们在登录Linux系统启动bash shell时,默认情况下bash在几个文件中查找命令。这些文件称作启动文件。bash shell会依次处理下面几个文件:
系统上的每个用户在登录时都会执行/etc/profile这个文件,你可以打开你自己系统上的这个文件,这个文件中会执行一些脚本并且导入一些全局环境变量供我们使用,例如PATH,你可以自己显示一下PATH环境变量。
由于我们现在的操作系统都集成了桌面环境,你可以认为输入你的开机密码后就进入bash shell从而会执行/etc/profile这个文件。如果你觉得没什么不同的话,你可以Ctrl + Alt + F1,就会进入一个bash shell界面,你这时候可以输入用户名和密码登录到你的系统。我的操作系统Ubuntu 14.04的,具体的快捷键可能不同。
大多数的Linux发行版本可能用上面剩下的三个文件中的一个,我的Ubuntu系统中用的是$HOME/.profile。这些文件的目的只不过是为每个用户定制自己需求。和/etc/profile没什么不同。
Linux中常用的一些变量
图片来源:http://www.cyberciti.biz/faq/linux-list-all-environment-variables-env-command/
上面的这些变量,也就是当你登录系统时,启动文件已经帮你加载好的变量。
这里我要说一下,PATH变量很重要。它值的含义是命令的搜索路径。每个路径用冒号分开,shell从这些路径中寻找可执行的命令。比如,我把java的bin目录赋值给PATH环境变量,我就可以在任何目录中执行Java命令了。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!