• linux下环境变量设置[转]


    linux下环境变量设置

    一、什么是环境变量?
    Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。

    二、定制环境变量 
    环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。环境变量又可以被所有当前用户所运行的程序所使用。对于bash来说,可以通过变量名来访问相应的环境变量。
    下面通过几个实例来说明

    1.设置一个新的环境变量NAME
    $ export NAME="RaidCheng"
    $ echo $NAME
    RaidCheng

    2.使用env命令显示所有的环境变量 
    $ env

    3.使用set命令显示所有本地定义的shell变量或者设置变量 

    语  法:set [+-abCdefhHklmnpPtuvx]
    补充说明:set指令能设置所使用shell的执行方式,可依照不同的需求来做设置

    4.使用unset命令来清除环境变量 
    $ export NAME="RaidCheng"
    $ echo $NAME
    RaidCheng
    $ unset NAME
    $ echo $NAME

    5.使用readonly命令设置只读变量 
    $ export NAME="RaidCheng"
    $ readonly NAME
    $ unset NAME
    -bash: unset: NAME: cannot unset: readonly variable
    $ NAME="New" #会发现此也变量不能被修改
    -bash: TEST: readonly variable

    6. 显示某一个环境变量,如显示HOME 
    $ echo $HOME 
    /home/terry 
    三、常见的环境变量 
    PATH      路径变量,决定了shell将到哪些目录中寻找命令或程序

    LD_LIBRARY_PATH,  添加库默认加载路径,加入此环境变量的目的是允许系统从用户自定义的目录中加载库(有点像Windows中的dll)。这样如果你有一个软件,需要依赖很多库,但又不想破坏系统原有的纯净,则可将所有库放入一个文件夹内,然后将该文件夹添加至LD_LIBRARY_PATH环境变量

    HOME      当前用户主目录

    HISTSIZE    历史记录数
    LOGNAME     当前用户的登录名 
    HOSTNAME    指主机的名称
    SHELL      前用户Shell类型 
    LANGUGE     语言相关的环境变量,多语言可以修改此环境变量
    MAIL      当前用户的邮件存放目录 
    PS1       基本提示符,对于root用户是#,对于普通用户是$
    PS2       附属提示符,默认是“>”

    四、通过C程序来访问和设置环境变量 
    对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。 

    getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL

    setenv()在程序里面设置某个环境变量的函数

    unsetenv()清除某个特定的环境变量的函数

    另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量:

    #include 
    extern char**environ;
    int main ()
    {
    char**var;
    for (var =environ;*var !=NULL;++var)
    printf ("%s \n ",*var);
    return 0;
    }

    五、环境变量文件
    通过修改一些相关的环境定义文件来修改环境变量,比如对于fedora,与环境相关的文件有/etc/profile和~/.bash_profile和~/.bashrc等。修改完毕后重新登录一次或运行命令source xxx就生效了。 /etc/profile中设置的环境变量对整个系统有效。~/.bashrc和~/.bash_profile中设置的变量只对某一个用户有效。

    六、恢复环境变量

    linux环境变量设置错误后,如何恢复解决方案:在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 后回车

     

    七、linux中profile与bashrc的区别


    Ubuntu 的相关目录下
    /ect/ /root /home/myuser
    profile .profile .profile 
    bash.bashrc .bashrc .bashrc
    profile.d

    Fedora的相关目录
    /ect/ /root /home/myuser
    profile      profile 
    bashrc   .bashrc bashrc
    profile.d                     profile.d

    说明:myuser 是你添加创建的用户
    在网上找了半天也不能包括所有的,所以只能比较个大概。

    bashrc与profile的区别

    要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。

    交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

    bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在许多bashrc和profile文件,下面逐一介绍:

    /etc/pro此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行.

    并从/etc/profile.d目录的配置文件中搜集shell的设置.

    /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。有些linux版本中的/etc目录下已经没有了bashrc文件。

    ~/. pro每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该

    文件仅仅执行一次!默认情况下,它设置一些环境变量,然后执行用户的.bashrc文件.

    ~/.bashrc:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取.

    另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.

    某网友总结如下:

    /etc/profile,/etc/bashrc 是系统全局环境变量设定
    ~/.profile,~/.bashrc用户家目录下的私有环境变量设定
    当登入系统时候获得一个shell进程时,其读取环境设定档有三步
    1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如
    /etc/profile.d和/etc/inputrc
    2然后根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取
    ~/.profile,这三个文档设定基本上是一样的,读取有优先关系
    3然后在根据用户帐号读取~/.bashrc
    至于~/.profile与~/.bashrc的不区别
    都具有个性化定制功能
    ~/.profile可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
    ~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/freedesert/p/2481448.html
Copyright © 2020-2023  润新知