1.环境变量是什么?
在Windows系统中,很多软件都必须通过"高级系统设置"设置"环境变量",那么环境变量究竟是什么呢?通俗说就是指定一个或多个目录,运行软件的时候,相关的程序会按照指定的目录寻找相关文件,比如很多软件安装时会添加库路径。
设置环境变量对于一般人最实用的功能就是:不用拷贝dll文件或其他库
文件到系统目录中,而PATH环境变量就是相关软件搜索dll文件或其他库文件的路径;
Linux系统下同样如此,如果你下载并按照了应用程序,使用时出现"command not found"的提示内容,那么你不可回避的要设置环境变量PATH。
2.Ubuntu中环境变量相关文件
本人使用Ubuntu 16.04 LTS操作系统,Ubuntu中主要有如下几个文件可以设置环境变量
- /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
- /etc/environment:在登录时操作系统使用的第二个文件,系统在读取你的profile前,设置环境文件的环境变量,该设置方法和Windows7/8类似,不作重点介绍。
- ~/.profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
- /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
- ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
3.Linux环境变量配置的三个方法
Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境的定义。用户可以对自己的环境进行定制,其方法就是修改相应的系统环境变量。
(1).shell(针对shell):终端命令行中临时使用,关闭终端窗口后失效,且只对当前shell(BASH)有效(临时)。重新打开终端窗口是没有任何作用的。
export PATH="$PATH:/my_new_path" #export [-fnp] 变量名=变量设置值
(2).修改~/.bashrc(针对用户):针对特定用户,这种方法比较安全,可以把使用这些环境变量的权限控制到用户级别,如果需要给某个用户权限使用这些环境变量,只需要修改用户主目录下的.bashrc文件就可以了。
vi ~/.bashrc
export PATH="$PATH:/my_new_path" #export 变量名=变量设置值
source /etc/profile #. /etc/profile 执行profile文件也会立即生效
(3).修改/etc/profile(针对全局):针对所有用户和shell长久有效。如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,但注意可能会给系统带来安全性问题。
$ vi /etc/profile
export PATH="$PATH:/my_new_path" #export 变量名=变量设置值
使用source /etc/profile
source /etc/profile #. /etc/profile 执行profile文件也会立即生效
4.常见环境变量:
PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:是指当前用户的邮件存放目录。
SHELL:是指当前用户用的是哪种Shell。
HISTSIZE:是指保存历史命令记录的条数。
LOGNAME:是指当前用户的登录名。
HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
5.环境变量设置注意:
(1).Linux系统认定的相同名字的环境变量,后写入的先起作用。
(2).":"表示并列含义
(3).使用env命令显示所有的环境变量。在命令提示符下收入env就行了。set命令显示所有本地定义的shell变量。
(4).LInuxprofile文件在系统启动时将被运行。大家可以在里面加入其他命令,但是一定要正确,不然系统无法启动。
6.profile文件的重要性
在UNIX/Xenix系统中有两个对用户而言必不可少的文件——etc目录下的profile文件和用户主目录($HOME)下的.profile文件,前者是系统文件,对系统下全体用户起作用,后者是用户自己的"私人"文件。
这两个文件的功能类似DOS系统下的Autoexec.bat文件,不同之处在于Autoexec.bat文件可以为空,而这两个文件内容不仅不能为空,而且必须存在。他们在用户登录(Login注册)时,被系统自动执行,为用户设置工作环境,若使用得当,可发挥强大作用。