Linux环境变量设置

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

       环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。许多用户(特别是那些刚接触Linux的新手)发现这些变量有些怪异或者难以控制。其实,这是个误会:通过使用环境变量,你可以很容易的修改一个牵涉到一个或多个应用程序的配置信息。

一、环境变量相关操作(只应用于当前,要永久保存需要写入到相关文件。)

#echo $PATH              显示PATH设置。
#env                            显示当前用户变量。
#set                             显示当前Shell变量。
#export                        显示当前导出成用户变量的shell变量。
#a=abc                        定义一个Shell变量。
#export a=abc             定义一个Shell变量,并导出成用户变量。
#unset a                      清除环境变量
#readonly a                 设置只读环境变量

二、常见的环境变量

PATH 这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如ls、rc-update或者emerge)不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。

LD_LIBRARY_PATH 这个环境变量就是告诉程序,运行时在哪些路径搜索非默认的共享库。当执行函数动态链接.so时,如果此文件不在缺省目录下‘/usr/local/lib’ and ‘/usr/lib’.那么就需要指定环境变量LD_LIBRARY_PATH

ROOTPATH 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。

LDPATH 这个变量包含了一系列用冒号隔开的目录,动态链接器将在这些目录里查找库文件。

MANPATH 这个变量包含了一系列用冒号隔开的目录,命令man会在这些目录里搜索man页面。

INFODIR 这个变量包含了一系列用冒号隔开的目录,命令info将在这些目录里搜索info页面。

HOME 当前用户主目录

HISTSIZE 历史记录数

LOGNAME  当前用户的登录名 

HOSTNAME 指主机的名称

SHELL  前用户Shell类型 

LANGUGE  语言相关的环境变量,多语言可以修改此环境变量

MAIL 当前用户的邮件存放目录 

PS1 基本提示符,对于root用户是#,对于普通用户是$

PS2 附属提示符,默认是“>”

三、Linux环境变量设置文件
/etc/profile      全局用户,应用于所有的Shell。

/$HOME/.profile     当前用户,应用于所有的Shell。

/etc/bash_bashrc   全局用户,应用于Bash Shell。

~/.bashrc        局部当前,应用于Bash Sell。

  当你进入系统的时候,linux 就会为你读入系统的环境变量,这些环境变量存放在什么地方,那就是环境变量的文件中。Linux 中有很多记载环境变量的文件,它们被系统读入是按照一定的顺序的。

1. /etc/profile :

此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d 目录的配置文件中搜集shell 的设置。

这个文件,是任何用户登陆操作系统以后都会读取的文件(如果用户的shell 是csh 、tcsh 、zsh ,则不会读取此文件),用于获取系统的环境变量,只在登陆的时候读取一次。

假设用户使用的是BASH ,那么

2. /etc/bashrc :

在执行完/etc/profile 内容之后,如果用户的SHELL 运行的是bash ,那么接着就会执行此文件。另外,当每次一个新的bash shell 被打开时, 该文件被读取。

每个使用bash 的用户在登陆以后执行完/etc/profile 中内容以后都会执行此文件,在新开一个bash 的时候也会执行此文件。因此,如果你想让每个使用bash 的用户每新开一个bash 和每次登陆都执行某些操作,或者给他们定义一些新的环境变量,就可以在这个里面设置。

3. ~/.bash_profile :

每个用户都可使用该文件输入专用于自己使用的shell 信息。当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc 文件。

单个用户此文件的修改只会影响到他以后的每一次登陆系统。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么它在每次登陆的时候都会去获取这些新的环境变量或者做某些特殊的操作,但是仅仅在登陆时。

4. ~/.bashrc :

该文件包含专用于单个人的bash shell 的bash 信息,当登录时以及每次打开一个新的shell 时, 该该文件被读取。

单个用户此文件的修改会影响到他以后的每一次登陆系统和每一次新开一个bash 。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么每次它新登陆系统或者新开一个bash ,都会去获取相应的特殊的环境变量和特殊操作。

~/.bash_logout :

当每次退出系统( 退出bash shell) 时, 执行该文件。

用户登录后加载profile和bashrc的流程如下:
(1)/etc/profile-------->/etc/profile.d/*.sh
(2)$HOME/.bash_profile-------->$HOME/.bashrc---------->/etc/bashrc

  bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh,随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本, 而.bashrc脚本会执行/etc/bashrc脚本 至此,所有的环境变量和初始化设定都已经加载完成.

四、其它

  在用户目录下用ls -a,能看见很多“.”开头的隐藏文件。如果不是用户建立的,那么这些文件都是环境设置文件。有其它Shell的设置文件,也有软件设置的文件。比如:.lftp,它就是lftp软件的设置文件。如果安装了x-window的话,菜单和桌面设置都在.local里面。这些大家用久了自然就知道了。

 

posted @ 2013-04-12 18:56  uriboyka  阅读(334)  评论(0)    收藏  举报