定制环境变量 
  环境变量是和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环境变量设置 以及 source命令 Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程 Linux 设置环境变量的更多相关文章

  1. linux下系统启动时,几个配置文件 /etc/profile、~/.bash_profile 等几个文件的执行过程,先后顺序

    1. 在登录Linux时要执行文件的过程如下: 在刚登录Linux时, 首先启动 /etc/profile 文件, 然后再启动用户目录下的 ~/.bash_profile. ~/.bash_login ...

  2. 【转】Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程

    原文网址:http://blog.csdn.net/ithomer/article/details/6322892 在登录Linux时要执行文件的过程如下:在刚登录Linux时,首先启动 /etc/p ...

  3. bash命令检测Shell脚本中的语法错误和查看详细执行过程

    (1).bash命令检测Shell脚本中的语法错误 bash -v [脚本] [root@youxi1 ~]# vim a.sh #/bin/bash sum=$[$1+$2] echoo $sum ...

  4. 给.sh文件添加执行权限linux

    chmod是权限管理命令change the permissions mode of a file的缩写.. u代表所有者,x代表执行权限. + 表示增加权限. chmod u+x file.sh 就 ...

  5. linux下 /etc/profile、~/.bash_profile ~/.profile的执行过程

    关于登录linux时,/etc/profile.~/.bash_profile等几个文件的执行过程. 在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/profile ...

  6. [转] linux下 /etc/profile、~/.bash_profile ~/.profile的执行过程

    分类: linux 2015-03-13 16:24 1572人阅读 评论(0) 收藏 举报linuxprofile关于登录linux时,/etc/profile.~/.bash_profile等几个 ...

  7. Linux必学的60个命令

    inux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想 ...

  8. 【转】linux 必须掌握的60个命令

    Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要 ...

  9. Linux必学的60个命令【转载】

    Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存  [转载地址]http://blog.chinaunix.net/uid-16728139-id-3154272.ht ...

随机推荐

  1. hdu5246 超级赛亚ACMer

    Problem Description 百小度是一个ACMer,也是一个超级赛亚人,每一个ACMer都有一个战斗力.包含百小度.
所谓超级赛亚人的定义,是说假设在对抗中刚好接近极限状态,那就会激发斗志 ...

  2. 〖Linux〗Qt5.2.0+gsoap开发Android的NDK程序遇到错误的解决

    1.  error: cannot convert ‘int*’ to ‘hostent**’ for argument ‘5’ to.. 原因分析: 缺少的宏定义,导致使用了错误的函数原型. 被调用 ...

  3. spring mvc异常的处理

    1.全局处理 <!-- 总错误处理 --> <bean id="exceptionResolver" class="org.springframewor ...

  4. awk 取列后对数值进行判断取出大于1的数值

    [root@dataline-prod nginx]# tail -2 access.log 122.238.119.177 - - [26/Oct/2018:18:20:25 +0800] &quo ...

  5. UpdatePanel的用法详解

    摘自:http://www.cnblogs.com/shangxia/articles/2281782.html 一.UpdatePanel的结构 <asp:ScriptManager ID=& ...

  6. HDUOJ----1181 变形课

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submi ...

  7. 微信小程序四(设置底部导航)

    好了 小程序的头部标题 设置好了,我们来说说底部导航栏是如何实现的. 我们先来看个效果图 这里,我们添加了三个导航图标,因为我们有三个页面,微信小程序最多能加5个. 那他们是怎么出现怎么着色的呢?两步 ...

  8. 【js】js中的||和&&

    逻辑与&&和逻辑或||操作符可以应用于任何类型的操作数,而不仅仅是布尔值. 几乎所有语言中||和&&都遵循“短路”原理, 如&&中第一个表达式为假就不会 ...

  9. 【php】基础学习4

    这部分主要包括php面向对象的程序设计,具体如下: <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta http ...

  10. bootstrap 多元素共用 popover

    <div class="popover fade bottom in small" role="tooltip" id="gPopover&qu ...