Linux环境变量配置总结

来源:互联网 发布:求100以为的质数 java 编辑:程序博客网 时间:2024/06/01 07:19

          在 Linux系统 下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“ command not found ”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量 PATH 的设置问题,而 PATH 的设置也是在 linux 下定制环境变量的一个组成部分。

        Linux 是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

        环境变量是和 Shell 紧密相关的,用户登录系统后就启动了一个 Shell 。对于 Linux 来说一般是 bash ,但也可以重新设定或切换到其它的 Shell 。根据发行版本的情况, bash 有两个基本的系统级配置文件: /etc/bashrc 和 /etc/profile 。这些配置文件包含两组不同的变量: shell 变量和环境变量。前者只是在特定的 shell 中固定(如 bash ),后者在不同 shell 中固定。很明显, shell 变量是局部的,而环境变量是全局的。环境变量是通过 Shell 命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于 bash 这个 Shell 程序来说,可以通过变量名来访问相应的环境变量,通过 export 来设置环境变量。

具体方法总结(方便忘了查找):

1. 在/etc/profile文件中添加变量对所有用户生效(永久的)Linux变量可分为两类:需要修改配置文件,变量永久生效。使用export命令行声明即可,变量在关闭shell时失效。
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。例如:编辑/etc/profile文件,添加CLASSPATH变量# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。
2. 在用户目录下的.bash.profile文件中增加变量
对单一用户生效(永久的)

用VI在用户目录下的.bash.profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash.profile
# vi /home/guok/.bash.profile
添加如下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行#source /home/guok/.bash_profile不然只能在下次重进此用户时生效。
3. 直接运行export命令定义变量
只对当前shell(BASH)有效(临时的)

在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

4.Linux给大家提供了自动设置环境变量的方法,那就是更改 .bashrc 文件。 一般说来,有两个文件可以提供这种“进入系统时自动设置”的功能,一个是 /etc/bashrc,另一个是 ~/.bashrc。其中/etc/bashrc是被每个用户执行的,而~/.bashrc只被当前用户执行。所以/etc/bashrc只有root用户能更改,而~/.bashrc是各个用户私有的文件。 "~"指的是用户的home目录。在建立用户时,Linux会为其分配一个目录以供该用户使用。比如对"hjk41",该目录

是"/home/hjk41"。一般用户只能更改这个目录里的文件,这样各个用户之间不会互相干扰。因而 ~/.bashrc文件在这里就是 "/home/hjk41/.bashrc",如果有另外一名叫"hjk42"的用户,那么他的 .bashrc文件就是 "/home/hjk42/.bashrc"。
这样,各个用户有自己独立的".bashrc"文件,可以根据需要自行更改,而不会互相干扰。 /etc/bashrc文件则是共享的,整个Linux中只有一份。一般来说,用户的"~/.bashrc"开头都会调用/etc/bashrc,因此更改/etc/bashrc会影响到所有用户,这个文件一般是root用户管理的。

总之,Linux在用户登录时,会执行相应的.bashrc文件,比如我登录时,就会执行 /home/hjk41/.bashrc ,而这个文件先调用 /etc/bashrc。下面是一个简单的 .bashrc: if [ -f /etc/bashrc ]; then . /etc/bashrc fi export PATH=$PATH:/home/hjk41/bin 前面三行的意思是“如果/etc/bashrc这个文件存在,那么就执行它”,最后一行是我自己加的,用于修改PATH变量。这样每次登录时,环境变量PATH都会自动修改为我需要的样子。 "env" 列出所有环境变量 "source ~/.bashrc" 在更改.bashrc文件后,执行条命令可以使更改立即生效(否则要等下次登录才能看到效果)。



转自:http://blog.csdn.net/yanbober/article/details/8278878

0 0