linux的环境变量

什么是环境变量?环境变量是能够影响在计算机上运行的进程的一系列的动态的值。Environment variables are a set of dynamic values that can affect the way running processes will behave on a computer.

在linux系统中,每进程都有自己私有的环境变量集合。在默认情况下,进程继承了父进程的环境的副本,除非父进程在创建子进程时做了点外在的改变。运行的进程可以访问用来配置的环境变量的值。环境变量的例子有很多。简单的查看环境变量的办法是进入一终端
$env    
各个系统的命令可能有所不同,使用set命令也可以得到类似的结果,最终的结果可能也有所不同,以下是我的输出
SSH_AGENT_PID=2109
HOSTNAME=zhuangyao.seu.edu.cn
SHELL=/bin/bash
TERM=xterm
DESKTOP_STARTUP_ID=
HISTSIZE=1000
XDG_SESSION_COOKIE=ea7d2bc5c35eda3fbfa14b004685cc00-1193665798.521911-1781399160
GTK_RC_FILES=/etc/gtk/gtkrc:/home/secularbird/.gtkrc-1.2-gnome2
WINDOWID=60828178
USER=secularbird
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
GNOME_KEYRING_SOCKET=/tmp/keyring-VlEi6b/socket
SSH_AUTH_SOCK=/tmp/ssh-hMqXRr2059/agent.2059
SESSION_MANAGER=local/unix:/tmp/.ICE-unix/2059
USERNAME=secularbird
MAIL=/var/spool/mail/secularbird
PATH=/usr/local/bin:/usr/bin:/bin:/home/secularbird/bin
DESKTOP_SESSION=default
QT_IM_MODULE=xim
GDM_XSERVER_LOCATION=local
INPUTRC=/etc/inputrc
PWD=/home/secularbird
XMODIFIERS=@im=SCIM
LANG=en_US.UTF-8
GDMSESSION=default
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=2
HOME=/home/secularbird
GNOME_DESKTOP_SESSION_ID=Default
LOGNAME=secularbird
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-QaqxAddHkL,guid=041f4d6f9d661041c1ea30004725e507
LESSOPEN=|/usr/bin/lesspipe.sh %s
DISPLAY=:0.0
GTK_IM_MODULE=scim-bridge
G_BROKEN_FILENAMES=1
COLORTERM=gnome-terminal
XAUTHORITY=/tmp/.gdm6U5T0T
_=/usr/bin/env

当我们要访问其中的一个时,可以使用echo命令
$echo $PATH
/usr/local/bin:/usr/bin:/bin:/home/secularbird/bin
现在我们的到了系统的搜索路径,如果输出是证明你还没有设置该环境变量

如何设置呢
$export VARIABLE=value  # for Bourne, bash, and related shells
$setenv VARIABLE value  # for csh and related shells
在linux上,变量可以在没有export的情况下赋值,在这种情况下定义的变量能够被set命令显示出来,但是不会被子进程所继承。
$VARIABLE=value


一些常用的环境变量名举例
USER
    登录用户的名字(一些BSD派生的程序使用)
LOGNAME
    登录用户的名字(一些System-V派生的程序使用)
HOME
    用户的注册目录,由login(1)在密码文件password(5)中设置。
LANG
    当没有被LC_ALL或者更多的独特的环境变量像LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME,cf. locale的名字用于locale类项
PATH
    shell和其他很多程序用来查找路径名不完整文件的一系列的目录前缀。这些前缀用‘:‘分开。
PWD
    当前的活动的 目录。由一些shell设置
SHELL
    用户注册的shell的路径名
TERM
    准备输出的终端类型。
PAGER
    用户偏好的文本显示工具
EDITOR/VISUAL
    用户偏好的编辑文本文件的工具


   
参考资料
http://linux.die.net/man/7/environ
http://en.wikipedia.org/wiki/Environment_variable
原文地址:https://www.cnblogs.com/zelos/p/3402900.html