linux环境变量

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

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

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

查看全局环境变量

[admin@v035114 ~]$ printenv
HOSTNAME=v035114.sqa.cm4
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.13.44.34 57803 22
SSH_TTY=/dev/pts/2
STORM_HOME=/home/admin/qihao/storm-0.7.1
USER=admin
LS_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/admin
PATH=/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/sbin
INPUTRC=/etc/inputrc
PWD=/home/admin
JAVA_HOME=/opt/taobao/java64
LANG=en_US.ISO_8859-1
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/admin
LOGNAME=admin
CVS_RSH=ssh
SSH_CONNECTION=10.13.44.34 57803 10.232.35.114 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_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 $test
nihao
[admin@v035114 ~]$ bash
[admin@v035114 ~]$ echo $test
nihao
[admin@v035114 ~]$ unset test
[admin@v035114 ~]$ exit
exit
[admin@v035114 ~]$ echo $test
nihao
[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/bashrc

pathmunge () {
        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
           if [ "$2" = "after" ] ; then
              PATH=$PATH:$1
           else
              PATH=$1:$PATH
           fi
        fi
}

# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then 
        EUID=`id -u`
        UID=`id -ru`
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
fi

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

if [ -x /usr/bin/id ]; then
        USER="`id -un`"
        LOGNAME=$USER
        MAIL="/var/spool/mail/$USER"
fi

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "$PS1" ]; then
            . $i
        else
            . $i >/dev/null 2>&1
        fi
    fi
done

unset i
unset 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 functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export JAVA_HOME=/opt/taobao/java64
export STORM_HOME=/home/admin/qihao/storm-0.7.1
export PATH=$JAVA_HOME/bin:$STORM_HOME/bin:$PATH:$HOME/bin:/usr/sbin
export 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 functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs
export JAVA_HOME=/opt/taobao/java64
export STORM_HOME=/home/admin/qihao/storm-0.7.1
export 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'


 

你可能感兴趣的:(linux环境变量)