linux环境变量

来源:互联网 发布:sql语言培训 编辑:程序博客网 时间:2024/04/30 07:06

全局环境变量:在sehll会话和该shell创建的子shell进程中都可见。使用export导出全局环境变量后,当前shell和它的所有子shell都可以访问变量。

局部环境变量:只在创建他们的shell中可见。子shell看不到父shell创建的环境变量。

要注意定义环境变量名字、等号、值之间不能有空格。

查看全局环境变量

[admin@v035114 ~]$ printenvHOSTNAME=v035114.sqa.cm4TERM=linuxSHELL=/bin/bashHISTSIZE=1000SSH_CLIENT=10.13.44.34 57803 22SSH_TTY=/dev/pts/2STORM_HOME=/home/admin/qihao/storm-0.7.1USER=adminLS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:MAIL=/var/spool/mail/adminPATH=/opt/taobao/java64/bin:/home/admin/qihao/storm-0.7.1/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/admin/bin:/usr/sbinINPUTRC=/etc/inputrcPWD=/home/adminJAVA_HOME=/opt/taobao/java64LANG=en_US.ISO_8859-1HISTCONTROL=ignoredupsSHLVL=1HOME=/home/adminLOGNAME=adminCVS_RSH=sshSSH_CONNECTION=10.13.44.34 57803 10.232.35.114 22LESSOPEN=|/usr/bin/lesspipe.sh %sG_BROKEN_FILENAMES=1_=/usr/bin/printenv


 可以使用set命令查看环境变量,既包含全局的,也包含局部的环境变量。

 使用unset命令删除环境变量

[admin@v035114 ~]$ nihao=nihaoma[admin@v035114 ~]$ export nihao[admin@v035114 ~]$ echo $nihao nihaoma[admin@v035114 ~]$ unset nihao[admin@v035114 ~]$ echo $nihao[admin@v035114 ~]$

在子shell中删除全局定义的环境变量,那么只在当前shell中失效,在父shell中该环境变量依然有效

[admin@v035114 ~]$ test=nihao[admin@v035114 ~]$ export test[admin@v035114 ~]$ echo $testnihao[admin@v035114 ~]$ bash[admin@v035114 ~]$ echo $testnihao[admin@v035114 ~]$ unset test[admin@v035114 ~]$ exitexit[admin@v035114 ~]$ echo $testnihao[admin@v035114 ~]$ 

 

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

[admin@v035114 ~]$ cat /etc/profile# /etc/profile# System wide environment and startup programs, for login setup# Functions and aliases go in /etc/bashrcpathmunge () {        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then           if [ "$2" = "after" ] ; then              PATH=$PATH:$1           else              PATH=$1:$PATH           fi        fi}# ksh workaroundif [ -z "$EUID" -a -x /usr/bin/id ]; then         EUID=`id -u`        UID=`id -ru`fi# Path manipulationif [ "$EUID" = "0" ]; then        pathmunge /sbin        pathmunge /usr/sbin        pathmunge /usr/local/sbinfi# No core files by defaultulimit -S -c 0 > /dev/null 2>&1if [ -x /usr/bin/id ]; then        USER="`id -un`"        LOGNAME=$USER        MAIL="/var/spool/mail/$USER"fiHOSTNAME=`/bin/hostname`HISTSIZE=1000if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then    INPUTRC=/etc/inputrcfiexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRCfor i in /etc/profile.d/*.sh ; do    if [ -r "$i" ]; then        if [ "$PS1" ]; then            . $i        else            . $i >/dev/null 2>&1        fi    fidoneunset iunset pathmungeo


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

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

[admin@v035114 ~]$ cat .bash_profile # .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then        . ~/.bashrcfi# User specific environment and startup programsexport JAVA_HOME=/opt/taobao/java64export STORM_HOME=/home/admin/qihao/storm-0.7.1export PATH=$JAVA_HOME/bin:$STORM_HOME/bin:$PATH:$HOME/bin:/usr/sbinexport HISTCONTROL=ignoredups


~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
 
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的

# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then    . ~/.bashrcfi# User specific environment and startup programsexport JAVA_HOME=/opt/taobao/java64export STORM_HOME=/home/admin/qihao/storm-0.7.1export PATH=$JAVA_HOME/bin:$STORM_HOME/bin:$PATH:$HOME/bin:/usr/sbin    


 命令别名 : 为公共命令(以及他们的参数)创建别名,减少打字~ 例如常见的ll命令~

[admin@v035114 ~]$ alias alias l.='ls -d .* --color=tty'alias ll='ls -l --color=tty'alias ls='ls --color=tty'alias vi='vim'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'