zoukankan      html  css  js  c++  java
  • [转]Linux中的环境变量

    原地址: http://blog.chinaunix.net/u1/54098/showart.php?id=428504

    inux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

    什么是环境变量

    环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。许多用户(特别是那些刚接触Linux的新手)发现这些变量有些怪异或者难以控制。其实,这是个误会:通过使用环境变量,你可以很容易的修改一个牵涉到一个或多个应用程序的配置信息。 

    重要的例子

    下表罗列了一些Linux系统使用的变量并说明了它们的用处。在表格后面将列举一些变量例值。

    变量 说明
    PATH 这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如lsrc-update或者emerge)不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。
    ROOTPATH 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。
    LDPATH 这个变量包含了一系列用冒号隔开的目录,动态链接器将在这些目录里查找库文件。
    MANPATH 这个变量包含了一系列用冒号隔开的目录,命令man会在这些目录里搜索man页面。
    INFODIR 这个变量包含了一系列用冒号隔开的目录,命令info将在这些目录里搜索info页面。
    PAGER 这个变量包含了浏览文件内容的程序的路径(例如less或者more)。
    EDITOR 这个变量包含了修改文件内容的程序(文件编辑器)的路径(比如nano或者vi)。
    KDEDIRS 这个变量包含了一系列用冒号隔开的目录,里面放的是KDE相关的资料。
    CONFIG_PROTECT 这个变量包含了一系列用空格隔开的目录,它们在更新的时候会被Portage保护起来。
    CONFIG_PROTECT_MASK 这个变量包含了一系列用空格隔开的目录,它们在更新的时候不会被Portage保护起来。

    下面你可以找到所有这些变量定义的范例:

    代码 1: 定义范例

    PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
    ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
    LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
    MANPATH="/usr/share/man:/usr/local/share/man"
    INFODIR="/usr/share/info:/usr/local/share/info"
    PAGER="/usr/bin/less"
    EDITOR="/usr/bin/vim"
    KDEDIRS="/usr"
    CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf "
    /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ "
    /usr/share/texmf/tex/platex/config/ /usr/share/config"
    CONFIG_PROTECT_MASK="/etc/gconf"

    对于bash shell
    关于环境变量命令介绍:
    1.echo 显示某个环境变量值 echo $PATH
    2.export 设置一个新的环境变量 export HELLO="hello" (可以无引号)
    3.env 显示所有环境变量
    4.set 显示本地定义的shell变量
    5.unset 清除环境变量 unset HELLO
    6.readonly 设置只读环境变量 readonly HELLO

    常见的环境变量 
               PATH:决定了shell将到哪些目录中寻找命令或程序
               HOME:当前用户主目录
               MAIL:是指当前用户的邮件存放目录。
               SHELL:是指当前用户用的是哪种Shell。
               HISTSIZE:是指保存历史命令记录的条数
               LOGNAME:是指当前用户的登录名。 
                HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境            变量中来取得的。
               LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 
               PS1:是基本提示符,对于root用户是#,对于普通用户是$。
               PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比            如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。 
                    # PS1=" Hello,My NewPrompt :) "


    使用修改.bashrc文件进行环境变量的编辑,只对当前用户有用。
                
    使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。 


      
    如何设置Shell环境变量?
    Shell 设置 添加 去除 显示当前值 注解
    sh NAME=value1
    export NAME
    NAME=value2:$NAME unset NAME set(internal)或者env(exported) 如果需要子进程也看到该环境变量,需要使用export
    ksh NAME=value1
    export NAME
    NAME=value2:$NAME unset NAME set(internal)或者env(exported) 如果需要子进程也看到该环境变量,需要使用export
    csh setenv NAME value1 setenv NAME value2:$NAME unsetenv NAME set 不需要使用export
    bash NAME=value1 NAME=value2:$NAME unset NAME set或者env 如果需要子进程也看到该环境变量,需要使用export

  • 相关阅读:
    年末反思
    Flink运行时架构
    Phoenix 启动报错:Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.
    Clickhouse学习
    Flink简单认识
    IDEA无法pull代码到本地,Can't Update No tracked branch configured for branch master or the branch doesn't exist.
    第1章 计算机系统漫游
    简单的 Shell 脚本入门教程
    开源≠免费 常见开源协议介绍
    MySQL 视图
  • 原文地址:https://www.cnblogs.com/foxhengxing/p/1963601.html
Copyright © 2011-2022 走看看