您的位置:首页 > 运维架构 > Linux

Linux环境变量知识整理

2013-01-15 14:20 288 查看
原文: http://hi.baidu.com/inbi_/item/210fd6fd8b89471de3e3bd3d
环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境。在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的。本文主要是讲解Linux常用的环境变量和环境变量的设置。

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

#echo $PATH

显示PATH设置。

#env

显示当前用户变量。

#set

显示当前Shell变量。

#export

显示当前导出成用户变量的shell变量。

#a=abc

定义一个Shell变量。

#export a=abc

定义一个Shell变量,并导出成用户变量。

#unset a

清除环境变量

#readonly a

设置只读环境变量

二、常见的环境变量

PATH      决定了shell将到哪些目录中寻找命令或程序

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。

四、其它

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

export set env区别baidu一下就知道了。

补充:开启启动Xwindow,有些Linux发行版不会加载SHELL环境变量,因为Xwindow有自已的会话设置。例如gnome,有~/.gnomerc 或 /etc/X11/Xsession.d/55gnome-session_gnomerc。

详解Linux系统修改环境变量PATH路径的方法

原文: http://os.51cto.com/art/200912/168844.htm
电脑中必不可少的就是操作系统。而Linux的发展非常迅速,有赶超微软的趋势。这里介绍Linux的知识,让你学好应用Linux系统。比如要把/etc/apache/bin目录添加到PATH中,方法有三:

1.#PATH=$PATH:/etc/apache/bin

使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效

2.#vi /etc/profile

在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)

这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变

3.#vi ~/.bash_profile

修改PATH行,把/etc/apache/bin添加进去

这种方法是针对用户起作用的

注意:想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:

如果修改了/etc/profile,那么编辑结束后执行source profile 或 执行点命令 ./profile,PATH的值就会立即生效了。

这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前 shell进程中执行的,所以我们能看到PATH的改变。

这样你就学会Linux系统下修改环境变量PATH路径的方法。

        环境变量是 和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对 于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例来说明。

1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.注:在这里我们设定是为所有用户可使用的全局变量。

2)/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

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

注:~在LINUX下面是代表HOME这个变量的。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如我用的是Ubuntu,我的用户文件夹下默认的就只有~/.profile文件。

4)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(注:这个文件是 .开头的,所以在文件夹中被隐藏了)那么我们如何添加自己定义的环境变量呢?用记事本打开这个文件,然后在里面最后写上:xiaokang=kangkang然后保存,这样每次打开一个新的terminal的时候,我们这个变量就生效了。记住,如果你已经打开一个terminal,然后你修改了这个文件,那么在这个terminal下是不会生效的。一般情况用户最好在这里进行修改,但是有时候会覆盖父级的变量,比如PATH是ROOT设定的,但是如果你在这个文件里面写了PATH=xx,那么将来所有的PATH都成了xx了,所以我们应该在这个文件中写为:
PATH=$PATH:xx这样就把原来的和你自己的一起加上了。而且注意在LINUX系统下用:分割,而不是windo的;3和4都是在用户目录下的,他们唯一的不同是: .bash_profile只能在登录的时候启动一次。在我的Ubuntu里面这个3文件似乎没有。

5)~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是\"父子\"关系.

~/.bash_profile 是交互式、login 方式进入 bash 运行的

~/.bashrc 是交互式 non-login 方式进入 bash 运行的

通常二者设置大致相同,所以通常前者会调用后者。
        好的,总结一下他们的执行方式:当你登录并且登录shell是bash时,bash首先执行/etc/profile文件中的命令(如果该文件存在),然后它顺序寻找~ /.bash_profile,~/.bash_login或~/.profile文件,并执行找到的第一个可读文件中的命令.当登录bash退出时,它 将执行~/.bash_logout文件中的命令.
        当启动一个交互的bash时,它将执行~/.bashrc文件中的命令(如果该文件存在并且可读).当非交互地启动以运行一个shell脚本时,bash将查找bash_env环境变量,确定执行文件的名称.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: