zoukankan      html  css  js  c++  java
  • linux环境变量设置 以及 source命令 Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程 Linux 设置环境变量

     定制环境变量 
      环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell。环境变量文件:/etc/profile。 环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例来说明。 

    建议修改用户级别的环境变量,不建议修改系统级别的环境变量

     1. 显示环境变量HOME 
      $ echo $HOME
      /home/terry
      
      2. 设置一个新的环境变量WELCOME 
      $ export WELCOME="Hello!"
      $ echo $WELCOME
      Hello!
      
      3. 使用env命令显示所有的环境变量 
      $ env
      HOSTNAME=terry.mykms.org
      PVM_RSH=/usr/bin/rsh
      SHELL=/bin/bash
      TERM=xterm
      HISTSIZE=1000
      ...
      
      4. 使用set命令显示所有本地定义的Shell变量 
      $ set
      BASH=/bin/bash
      BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")
      BASH_VERSION='2.05b.0(1)-release'
      COLORS=/etc/DIR_COLORS.xterm
      COLUMNS=80
      DIRSTACK=()
      DISPLAY=:0.0
      ...
      
      5. 使用unset命令来清除环境变量 
      set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下: 
      $ export TEST="Test..." #增加一个环境变量TEST
      $ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
      TEST=Test...
      $ unset $TEST #删除环境变量TEST
      $ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了
      
      6. 使用readonly命令设置只读变量 
      如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下: 
      $ export TEST="Test..." #增加一个环境变量TEST
      $ readonly TEST #将环境变量TEST设为只读
      $ unset TEST #会发现此变量不能被删除
      -bash: unset: TEST: cannot unset: readonly variable
      $ TEST="New" #会发现此也变量不能被修改
      -bash: TEST: readonly variable
      
      7. 用C程序来访问和设置环境变量 
      对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。 
      
      ◆ getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL。 
      
      ◆ setenv()在程序里面设置某个环境变量的函数。 
      
      ◆ unsetenv()清除某个特定的环境变量的函数。 
      
      另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。

          8.修改配置文件

          通过在控制台输入export命令的方式配置的环境变量只在当前控制台下作用。当你启动另一个shell时候将消失

          而修改配置文件则是一个一劳永逸的方法,尽管一般不这么用。

          #vi /etc/profile (对系统下所有用户起作用)

          # vi /home/funway/.bashrc (对funway这个用户起作用)

    source命令用法:
    source FileName
    作用:在当前bash环境下读取并执行FileName文件中的shell命令。

    我现在的工作中,经常将要配置的环境变量写在一个文件中,例如xt300.env, 然后执行命令

    source xt300.env

    由于是只在当前shell中执行,所以source设置的环境变量只改变当前shell的环境。

    你新打开一个控制台,会发现它的环境变量并不会有source新设置的内容。

    1.当前用户级别的环境变量

    vim  ~/.profile

    source ~/.profile 使其生效

     输出结果

    在python中调用环境变量

    one = os.environ.get('ABC')

    print(one)

    结果为:123

    2.系统级别的环境变量

    sudo vim /etc/profile 

    source /etc/profile   使其生效

  • 相关阅读:
    linux内核启动汇编部分详解
    linux内核zImage详解
    Linux内核zImage怎么来的?
    Linux内核编译make做了什么?
    关于makefile的几点经验
    note
    tmp0000
    tmp
    SSL学习与总结
    C++学习笔记
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/8696972.html
Copyright © 2011-2022 走看看