1在/etc/profile文件中添加变量对全部用户生效(永久的)shell
用VI在文件/etc/profile文件中增长变量,该变量将会对Linux下全部用户有效,而且是“永久生效”。bash
例如:编辑/etc/profile文件,添加CLASSPATH变量ide
# vi /etc/profile命令行
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib进程
注1:profile文件在系统启动时将被运行。你们能够在里面加入其余命令,可是必定要加正确,否则的话系统会启动不起来的。字符串
2在用户目录下的.bash_profile文件中增长变量对单一用户生效(永久的)it
用VI在用户目录下的.bash_profile文件中增长变量,改变量仅会对当前用户有效,而且是“永久的”。class
例如:编辑guok用户目录(/home/guok)下的.bash_profile登录
# vi /home/guok/.bash.profile变量
添加以下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注2:若是修改了/etc/profile,那么编辑结束后执行source profile 或 执行点命令 ./profile,PATH的值就会当即生效了。这个方法的原理就是再执行一次/etc/profile shell脚本,注意若是用sh /etc/profile是不行的,由于sh是在子shell进程中执行的,即便PATH改变了也不会反应到当前环境中,可是source是在当前 shell进程中执行的,因此咱们能看到PATH的改变。
注3:变量重复定义时,之后面的设置为先。
例如:在peofile文件默认对PATH变量都有设置PATH=¥¥¥¥¥¥¥,在之后可能在对PATH设置,通常都加在profile文件的最后PATH=······(打个比方)。而系统之中认定的PATH=·······¥¥¥¥¥¥¥¥¥,也就是说相同名字的环境变量,后写入的先起做用(通俗地讲)。
注四、特殊字符介绍。
例如在profile中有以下内容,经过如下内容说明特殊符号的用法。
export A=/q/jing:aaa/cc/ld
export B=.:/liheng/wang export A=/cd/cdr:$A
: 表示并列含义,例如A变量值有多个,用:符号进行分离。
. 表示你操做的当前目录。例如pap命令会查找B环境变量。
在/home键入B命令,系统首先在/home目录下(即当前路径)查找关于 B 的内容,若是没有在/liheng/wang目录下查找关于B的内容。 $ 表示该变量本次定义以前的值,例如$A表明/q/jing:aaa/cc/ld。也就是说 A=/cd/cdr:/q/jing:aaa/cc/ld
注五、常见的环境变量
PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:是指当前用户的邮件存放目录。
SHELL:是指当前用户用的是哪一种Shell。
HISTSIZE:是指保存历史命令记录的条数。
LOGNAME:是指当前用户的登陆名。
HOSTNAME:是指主机的名称,许多应用程序若是要用到主机名的话,一般是从这个环境变量中来取得的。
LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户能够修改此环境变量。
PS1:是基本提示符,对于root用户是#,对于普通用户是$。
PS2:是附属提示符,默认是“>”。能够经过修改此环境变量来修改当前的命令符,好比下列命令会将提示符修改为字符串“Hello,My NewPrompt :) ”。
# PS1=" Hello,My NewPrompt :) "
3直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,须要使用的话还须要从新定义。