定制环境变量 
  环境变量是和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. 项目重命名&复制项目&删除项目

          项目重命名&复制项目&删除项目 CreateTime--2016年10月15日17:25:43 Author:Marydon 1.修改项目名或者复制的项目名 第一步: my ...

  2. MySQL存储过程中的3种循环【转载】

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  3. ZooKeeper做独立server执行(上)

    ZooKeeper做独立server执行(上) 作者:chszs.转载需注明.博客主页:http://blog.csdn.net/chszs 一.ZooKeeper安装及配置 版本号:ZooKeepe ...

  4. smack 4.1.2+openfire 3.10.2i

    openfire 和以往版本号配置没有多大差别就不具体介绍了,网上搜会有一大堆的图解 以下主要说一下smack 4.1.2 的开发使用,在网上看了好多文章包含stackoverflow的都没有4.1以 ...

  5. Android网络开发之WIFI

    WIFI全称Wireless Fidelity, 又称802.11b标准.WIFI联盟成立于1999年,当时的名称叫做Wireless Ethernet Compatibility Alliance( ...

  6. 通过shell定时备份数据库

    需求: 每天凌晨2:10备份数据库zhengDB到 /data/backup/db. 备份开始和结束能够给出相应提示信息. 备份后的文件标识标准为已备份时间为文件名,并打包成 .tar.gz 的形式, ...

  7. ZooKeeper安装及配置(Windows系统下)

    ZooKeeper的定义用一句话就能说清:分布式服务框架 Zookeeper -- 管理分布式环境中的数据.下面从安装开始,对这个框架进行分析. 1.安装 1. 官网下载压缩包并解压到D:\Progr ...

  8. IDEA编辑区光标样式修改

    转自:http://blog.csdn.net/aosica321/article/details/52787418 Intellj IDEA光标为insert状态,无法删除内容以前用得是社区版的ID ...

  9. HDUOJ---(2203)亲和串

    亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  10. Web 前端性能优化相关内容解析[转]

    Web 前端性能优化相关内容,来源于<Google官方网页载入速度检测工具PageSpeed Insights 使用教程>一文中PageSpeed Insights 的相关说明.大家可以对 ...