• UNIX下的环境变量--转载


     所有环境变量名都是大写
    小写,系统会当作shell script自定义变量,而不会当作环境变量

    [root@mac-home macg]# echo $path
                                                                            
    [root@mac-home macg]# echo $PATH
    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin



        export不跟参数——显示所有环境变量
    # export
    declare -x G_BROKEN_FILENAMES="1"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="mac-home"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
    declare -x LOGIN="macg"
    declare -x LOGNAME="macg"
    declare -x declare -x MAIL="/var/spool/mail/macg"
    declare -x OLDPWD="/etc/init.d"
    declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin"
    declare -x PWD="/home/macg"
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="2"
    declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
    declare -x TERM="vt100"
    declare -x USER="macg"

        显示全部环境变量,也可以用set
    $ set
    BASH=/bin/bash
    COLORS=/etc/DIR_COLORS
    COLUMNS=132
    HOME=/home/mac
    HOSTNAME=machome
    HOSTTYPE=i386
    IFS=$' '
    INPUTRC=/etc/inputrc
    LANG=en_US.UTF-8
    LESSOPEN='|/usr/bin/lesspipe.sh %s'
    LINES=49
    LOGNAME=mac
    PS4='+ '
    PWD=/home/mac
    REMOTEHOST=192.168.1.100
    SHELL=/bin/bash
    SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
    SHLVL=1
    SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
    SUPPORTED=en_US.UTF-8:en_US:en
    TERM=vt100              
    UID=500
    USER=mac                            
    _=expect


        显示单个环境变量用echo …  
    [root@mac-home macg]# echo $PATH      当前环境PATH(优先搜索,缺省搜索)
    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/macg/bin    由一系列冒号分隔的路径组成
    [root@mac-home macg]# echo $HOME      当前用户主目录
    /root  
    [root@mac-home macg]# echo $USER      当前用户名
    macg    
    [root@mac-home macg]# echo $PWD       当前目录
    /home/macg   
    [root@mac-home macg]# echo $SHELL     当前用户shell
    /bin/bash   
    [mac@machome ~]$ echo $TERM           当前终端形式,Linux 终端大多数用'vt100'或'linux'作为vt100                            终端类型。
    千万别用export …那是重置变量


        环境变量操作

    •     现有系统环境变量修改

        赋值
        export

    •     新建环境变量

        必须到/etc/profile里定义和export
        赋值
        export


        最简单的PATH环境变量的修改
    [mac@test1 ~]# echo $PATH
    /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mac/bin
    [mac@test1 ~]# PATH=$PATH:/sbin
    [mac@test1 ~]# echo $PATH
    /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mac/bin:/sbin
    [mac@test1 ~]# export PATH


        设置一个变量,直接用名称,而不需要加'$':
    PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin         


        export 环境变量,不能带$

    [mac@test1 ~]$ export $PATH
    -bash: export: `/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mac/bin:/sbin':not a valid identifier
    [mac@test1 ~]$ export PATH




        export命令

    PATH=$PATH:/some/directory
    export PATH   
    export PATH=$PATH:/some/directory    同时修改和export变量
    export TERM PATH SHELL HOME    一次将4大环境变量放入环境中



        由于export变量的父子传递特性,如果想一直保持一个在unix环境变量,必须到/etc/profile 或/etc/bashrc 或~/.bashrc ~/.profile
    再其他地方定义和export都不会成功


       Source 命令——修改/etc/profile立刻生效
    vi /etc/profile   
    source /etc/profile    这样,刚刚写进去的环境变量就生效了
    其实退出shell再登进去,应该/etc/profile就生效



       环境变量改变以后,退出后重新su入,环境没改变,为什么?

    修改/etc/profile,加下面环境变量:
    JAVA_HOME="/usr/java"
    export JAVA_HOME

    重新退出,重新登入,
    [mac@demo1 ~]$ su
    Password:
    [root@demo1 mac]# export
    declare -x HOSTNAME="demo1.ntrackertest.com"
    declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/
    X11R6/bin:/home/mac/bin"
    没找到新加的变量JAVA_HOME
     解决问题:比如用su - ,才能调入新的环境变量

    [mac@demo1 ~]$ su -
    Password:
    [root@demo1 ~]# export
    declare -x HOSTNAME="demo1.ntrackertest.com"
    declare -x JAVA_HOME="/usr/java"
    PATH="/usr/java/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:
    /bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:."



    为什么root执行好多命令都说command not found
    你一定是telnet上来,然后su成root的吧,改改你的su命令格式,应该是su -


       不能用PATH=/some/directory,因为这将删除 $PATH 中其他的所有目录,必须作添加,PATH=$PATH:/some/directory


       请不要在'.bashrc'中设置 PATH ,否则会导致 PATH 中目录的意外增长。因为每次打开一个新的 shell新的终端 ,'.bashrc'都会作用。


       env VAR=value commmand           只想在执行某条指令时临时改变系统shell变量,又不想真正改变系统设置

     # /usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg
    -----------------------------------------------------------------------
    ERROR: Mrtg will most likely not work properly when the environment
           variable LANG is set to UTF-8. Please run mrtg in an environment
           where this is not the case. Try the following command to start:

           env LANG=C /usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg
    -----------------------------------------------------------------------
     # env LANG=C /usr/local/mrtg-2/bin/mrtg /home/macg/www/mrtg/cfg/mrtg.cfg
    2007-02-15 18:47:44, Rateup WARNING:

           更改提示符 的经验

     

    首先系统提示符是系统变量$PS1

     

    改变unix提示符: 为当前目录pwd

    # PS1='pwd'

    pwd     

    shell变量赋值,不需要带$

    提示符错误,成了字符串了

    pwdPS1='pwd#'

    pwd#   

    仍是字符串,因为’ ‘不能扩展

    只不过多了#

    pwd#PS1="$(pwd)#"

    /home#       

     

    /home#cd /etc

    /home#       

    必须在双引号下,命令才能扩展        

    $()里面命令的输出

     

    pwd命令只执行一次不随着当前目录改变而更改

    #PS1=$PWD

    /export/home/macg

     

    必须用系统变量$PWD

    才能使提示符随着目录changed 而更改

    /export/home/macg ls –l

     

    /export/home/macgPS1="$PWD >"

    /export/home/macg >

    发现还缺一个提示符

     

    必须加一个>


        Redhat下改提示符为"[\u@\h]:$PWD>$"
    $PS1="[\u@\h]:$PWD>$"
    [macg@machome]:/export/home/macg>$  

    原文地址:http://blog.sina.com.cn/s/blog_6151984a0100ej4v.html

  • 相关阅读:
    windows下安装mysql-5.7.11-winx64
    memset库函数
    [转]全面解析《嵌入式程序员应该知道的16个问题》
    Cent OS 7 下 Redis 5.0.5 安装与配置
    SVN+TortoiseSVN的Windows版安装和配置
    工具和环境--目录(随时更新)
    Linux安装和配置Nodejs和NPM
    Windows10命令提示符窗口大小导致执行效率不同问题
    Windows安装Nodejs和npm以及创建项目
    WebStorm 2019.3.2安装与配置
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4272583.html
Copyright © 2020-2023  润新知