十二. Linux系统的环境变量的功能

原创 2016年06月01日 10:20:12

1.  查看当前所有环境变量的命令: env  和 export,set, declare 。env  和 export两个命令列出的环境变量一样,不过export有其他额外的功能。

2.  系统中一些重要的环境变量:

(1)HOME : 代表使用者的家目录。我们可以使用 #cd  ~ 去到使用者的家目录,或者利用 cd就可以直接回到使用者家目录了 有很多程序都可能会取用到这个变量的值。


(2)SHELL : 告知我们,目前这个环境使用的 shell是哪个程序,如果是 bash 的话,预设是/bin/bash  。

(3)HISTSIZE : 这个与『历史命令』有关,亦即是, 我们曾经下达过的指令可以被系统记录下来,而记录的『笔数』则是由这个值来设定的。

(4)MAIL : 当我们使用 mail 这个指令在收信时,系统会去读取的邮件信箱档案 (mailbox)。

(5) PATH : 就是执行文件搜寻的路径,目录与目录中间以冒号(:)分隔, 由于档案的搜寻是依序由 PATH 的变量内的目录来查询,所以,目录的顺序也是重要的喔。

(6)LANG : 这个重要!就是语系档案啰~很多数据都会用到他, 举例来说,当我们在启动某些 perl的程序语言档案时,他会主动的去分析语系数据文件, 如果发现有他无法解析的编码语系,可能会产生错误喔!一般来说,我们中文编码通常是 zh_TW.Big5 或者是 zh_TW.UTF-8,这两个编码偏偏不容易被解译出来,所以,有的时候,可能需要修订一下语系数据。

(7)RANDOM : 这个玩意儿就是『随机随机数』的变量啦!目前大多数的 distributions 都会有随机数产生器,那就是 /dev/random 这个档案。 我们可以透过这个随机数档案相关的变量 ($RANDOM)来随机取得随机数值喔。在 BASH 的环境下,这个 RANDOM 变量的内容,介于 0~32767 之间,所以,你只要 echo $RANDOM 时,系统就会主动的随机取出一个介于 0~32767 的数值。万一我想要使用 0~9 之间的数值呢?呵呵~利用 declare 宣告数值类型, 然后这样做就可以了。
# declare  -i  number=$RANDOM*10/32767  ;  echo  $number
8         <== 此时会随机取出 0~9 之间的数值喔。

3.  set 命令查看所有变量,包括环境变量和自定义变量

4. 特殊变量:

(1)$ :(关于本 shell 的 PID)


(2)? :(关于上个执行指令的回传码)『上个执行的指令所回传的值』, 上面这句话的重点是『上一个指令』与『回传值』两个地方。当我们执行某些指令时, 这些指令都会回传一个执行后的代码。一般来说,如果成功的执行该指令,则会回传一个 0 值,如果执行过程发生错误,就会回传『错误代码』才对!一般就是以非为 0 的。
                                       

5.  自定义变量转成环境变量命令: export 

(1)自定义变量与环境变量的区别就在于可否被子进程所引用。

(2)当我们登入 Linux 并取得一个 bash 之后, 你的 bash 就是一个独立的程序, 被称为 PID 的就是。 接下来你在这个 bash 底下所下达的任何指令都是由这个 bash 所衍生出来的, 那些被下达的指令就被称为子程序了。 我们可以用底下的图示来简单的说明一下父程序与子程序的概念:


(3)如上所示, 我们在原本的 bash 底下执行另一个 bash , 结果操作的环境接口会跑到第二个 bash 去(就是子程序) , 那原本的 bash 就会在暂停的情况 (睡着了, 就是 sleep) 。 整个指令运作的环境是实线的部分! 若要回到原本的 bash 去, 就只有将第二个 bash 结束掉 (下达 exit 或 logout) 才行。

(4)因为子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自定义变量啦,所以你在原本 bash 的自定义变量在进入了子程序后就会消失不见, 一直到你离开子程序并回到原本的父程序后, 这个变量才会又出现。

(5)换个角度来想, 也就是说, 如果我能将自定义变量变成环境变量的话, 那就可以让该变量值继续存在于子
程序了。故执行: #export   变量名称

6.  变量的有效范围:环境变量可以被子进程引用,自定义变量则不可以。

     环境变量=全域变量
     自定义变量=区域变量

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux 下三种方式设置环境变量

1、在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。 2、那么什么是环境...
  • chengly0129
  • chengly0129
  • 2017年04月18日 16:17
  • 874

C获取linux系统环境变量方法(Environment Variables)

主要有三种方法,都很简单。 1 一个单纯c语言获取的方式 #include #include int main(){ char *pathvar = getenv("PATH");...
  • sole_cc
  • sole_cc
  • 2014年12月28日 14:55
  • 1486

Linux下配置Java环境变量

转载来自:http://my.oschina.net/fhd/blog/335156 一般来说,我们都会把Java安装到 /usr/local 目录 或者 /opt 目录下。这里假设java安装...
  • shehun11
  • shehun11
  • 2016年05月27日 13:03
  • 3359

linux添加环境变量的方法总结

linux对环境变量有无双引号、或者变量用不用{}括起来并不敏感,小小的看了下profile文件,似乎系统如果发现变量没有引号,会自动加上。 但变量前必须加$符号,类似于perl 三种添加...
  • dream2009gd
  • dream2009gd
  • 2013年02月03日 20:06
  • 2343

linux 用户环境变量介绍

先来介绍以下linu中的环境变量 Linux 的变量可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。...
  • h70614959
  • h70614959
  • 2013年06月13日 18:15
  • 8895

Linux下display环境变量的作用

通过设置DISPLAY环境变量,可以将图形界面显示在其他的机器或者vm上。 例如,在vncserver :1上运行如下shell脚本: export DISPLAY=:2 java -jar j...
  • ytfrank2012
  • ytfrank2012
  • 2015年01月28日 13:57
  • 910

linux下修改环境变量问题

按变量的生存周期来划分,Linux变量可分为两类,它们的修改方法如下: (1)永久的:需要修改配置文件,变量永久生效。 常见的配置文件包括: (1-1)/etc/profile:对所有用户生效;此文件...
  • zhanyongjia_cnu
  • zhanyongjia_cnu
  • 2016年03月02日 15:10
  • 592

Linux C打印所有的环境变量

1、在终端显示环境变量执行env命令nii@mmch:~/code$ env LC_PAPER=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 XDG_SESSION_ID=4 ...
  • u010889616
  • u010889616
  • 2015年08月31日 14:18
  • 1653

Linux 常用环境变量及作用和环境变量文件的详细介绍及其加载执行顺序

前言: 1. 环境变量是操作系统环境设置的变量,适用于整个系统的用户进程; 2. 环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值; 3. 若要重复适用,则最好在.profile中定义;...
  • u010533843
  • u010533843
  • 2017年02月11日 20:58
  • 846

linux 加载环境变量

1 +++++在主目录下添加环境变量的路径++++ 方法一: 1>在主目录下vi .profile 2>添加要添加的环境变量的路径 如: 3> 设置完成后还要sourc...
  • u010981277
  • u010981277
  • 2013年12月11日 10:03
  • 1761
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十二. Linux系统的环境变量的功能
举报原因:
原因补充:

(最多只允许输入30个字)