Linux 和 Windows 系统相似,在安装许多软件的时候是需要去配置环境变量。同样,在 Linux 里也是需要去配置相应的环境变量。而在 Linux 中的环境变量主要是系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是用户使用系统时加载的环境变量。
- 系统级
/etc/profile
文件:当用户登录时,操作系统为用户定制的用于登录到系统的每个用户的第一个文件,通常是调用/etc/bash.bashrc
文件。/etc/environment
文件:在登录时操作系统调用的第二个文件,在读取profile
之前,系统用于设置环境文件的环境变量。- 用户级(文件主要是在
/home
目录下) ~/.profile
:每个用户都可以调用来输入自己使用的shell
信息,不过在用户登录时,该文件只执行一次。~/.bashrc
: 包含登录用户的专用bash shell
的bash
信息。也就是说每开一个shell
,该文件都会被读取一次。- 临时的
- 针对当前
shell
的环境变量。
简单来说,环境变量就是指定一个目录,软件在运行的时候,相关程序会按照该目录来查找相关文件。
前面是从系统和用户级来划分环境变量。 若按照变量的生存周期来划分,那么变量就可以分为:
- 永久的:需要修改配置文件,变量永久生效。
- 临时的:使用
export
命令来声明就行,变量在关闭shell
的时候失效。
若按照环境变量自身的信息来划分,则可以分为:
- 当前
shell
进程私有用户自定义变量。此时变量只在当前shell
中有效 shell
自身的內建变量- 从自定义变量导出的环境变量
变量的设置方法:
/etc/profile 文件中添加变量(永久的)
用 vim 编辑器编辑 /etc/profile
文件来增加变量,将作用于 Linux 下所有用户,且具有永久性。(此方法谨慎使用!)
修改 ~/.profile 文件(对单一用户生效(永久的))
这种方法较为安全,可以把使用这些环境变量的权限控制到用户级别,主要是针对某一特定的用户,如果需要给某个用户权限使用这些环境变量,只需要修改其个人用户主目录下的 .profile
文件就可以了。
eg:编辑shiaynlou
用户目录(/home/shiyanlou)下的 .profile
,即 /home/shiyanlou/.profile
文件。
5.2.3 直接运行export
命令定义环境变量(临时的)
在控制台中设置,不赞成这种方式,这种设置只对当前的 shell 起作用,换一个 shell 设置就无效了。 在 shell 的命令行下直接使用 [export 变量名=变量值] 来定义变量。
在每个用户的 home
目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。zsh
的配置文件是 .zshrc
,相应 Bash
的配置文件为 .bashrc
。它们在 etc 下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。因此在退出当前 shell
后,临时的自定义环境变量不会在新打开的 shell
中出现。
添加一个自定义的变量
$ export shiyanlou="shiyanlou001"$ echo $shiyanlou
注:使用 echo
输出变量时需要在变量名前面加 $
符号
$export shiyanlou="shiyanlou001"
$echo $shiyanlou
实验楼整理梳理。
原文地址:http://blog.51cto.com/2833481/2154921