zoukankan      html  css  js  c++  java
  • Linux环境变量

    本文地址:http://www.cnblogs.com/archimedes/p/linux-envionment-variables.html,转载请注明源地址。

    1.什么是环境变量

    bash shell用一个称作环境变量的特性来存储有关shell会话和工作环境的信息,它允许你在内存中存储数据,以便运行在shell上的程序和脚本访问

    在bash shell中,环境变量分为两类:全局变量和局部变量

    (1)全局环境变量

    全局环境变量不仅对shell会话可见,对所有shell创建的子进程中需要获得父进程信息的程序来说非常有用。Linux系统在你开始bash会话之前就设置了一些全局环境变量

    系统环境变量的一律用全大写字母以区别与普通用户的环境变量

    查看全局变量,可以使用printenv命令(由于结果太多,不写出来)

    要显示单个环境变量,可以使用echo命令。当引用环境变量时,必须在环境变量的名称前放置一个$符:

    wu@ubuntu:~/Ccode$ echo $HOME
    /home/wu

    (2)局部环境变量

    局部环境变量只能在定义它们的进程中可见,查看局部环境变量的列表有点复杂,在Linux系统中并没有这样的一个命令只显示局部环境变量

    set命令会显示某个特定进程设置的所有环境变量,当然也包括全局变量

    2.设置环境变量

    (1)设置局部环境变量

    一旦启动了bash shell,你就能创建在这个shell进程内可见的局部变量了,你可以通过等号来给环境变量赋值,值可以是数值或字符串:

    wu@ubuntu:~$ test=testing
    wu@ubuntu:~$ echo $test
    testing

    如果要给变量赋一个含有空格的字符串,必须用单引号来界定字符串的开始和结尾:

    wu@ubuntu:~$ test=testing a long string
    a: command not found
    wu@ubuntu:~$ test='testing a long string'
    wu@ubuntu:~$ echo $test
    testing a long string

    (2)设置全局环境变量

    创建全局环境变量的方法是先创建一个局部环境变量,然后再把它导出到全局环境中

    这个过程通过export命令来完成:

    wu@ubuntu:~$ echo $test
    testing a long string
    wu@ubuntu:~$ export test
    wu@ubuntu:~$ bash
    wu@ubuntu:~$ echo $test
    testing a long string

    (3)删除环境变量

    可以使用unset命令来删除环境变量:

    wu@ubuntu:~$ echo $test
    testing a long string
    wu@ubuntu:~$ unset test
    wu@ubuntu:~$ echo $test

    wu@ubuntu:~$

    3.默认shell环境变量

    1、BASH :记录当前bash shell的路径。

    2、BASH_SUBSHELL  :记录当前子shell的层次。BASH_SUBSHELL是从0开始计数的整数。

    3、BASH_VERSINFO  :是一个数组包含六个元素,这六个元素显示bash的版本信息。

    4、BASH_VERSION  :显示shell版本的信息。

    5、DIRSTACK  :记录了栈顶的目录值,初值为空。

    6、GLOBLGNORE :是由冒号分割的模式列表,表示通配时忽略的文件名集合。

    7、GROUPS   :记录当前用户所属的组。

    8、HOME :记录当前用户的家目录,由/etc/passwd的倒数第二个域决定。

    9、HOSTNAME  :记录主机名。

    10、HOSTTYPE和MACHTYPE :都是记录系统的硬件架构。

    11、IFS  :用于设置指定shell域分隔符,默认情况下为空格。

    12、OLDPWD   :记录旧的工作目录。

    13、OSTYPE  :记录操作系统类型。

    14、PATH  :环境变量,显示当前PATH环境变量的内容。

    15、PPID :是创建当前进程的进程号,即当前进程的父进程号

    16、PS1  :提示符变量,用于设置提示符格式,用于设置一级shell提示符环境变量。

    17、PS2  :用于设置二级shell提示符环境变量。

    18、PWD :记录当前路径

    19、REPLY  :REPLY变量与read和select有关。

    20、SECONDS:记录脚本从开始到结束耗费的时间。

    21、SHELL :显示当前所用的shell

    22、SHELLOPTS  :记录了处于“开”状态的shell选项列表,它只是一个只读变量。

    23、SHLVL   :记录了bash嵌套的层次,一般来说,我们启动第一个Shell时。  $SHLVL=1。如果在这个Shell中执行脚本,脚本中的$SHLVL=2 。

    24、TMOUT  :用来设置脚本过期的时间,比如TMOUT=3,表示该脚本3秒后过期。

    25、UID : 已登用户的ID

    26、USER :显示当前用户名字

    4.设置PATH环境变量

    PATH定义了命令行输入命令的搜素路径,如果找不到命令,它会产生一个错误:

    wu@ubuntu:~$ myprog
    myprog: command not found

    可以添加新的搜素目录到现有的PATH环境变量,无需从头定义,PATH中的目录之间是用冒号分隔的,所以你只需引用原来的PATH值,然后再给字符串添加新的目录就行

    5.可变数组

    环境变量一个很好的功能就是它们可作为数组使用,要给某个环境变量设置多个值,可以把值放在括号里,值与值之间用空格隔开:

    wu@ubuntu:~$ mytest=(one two three four five)
    wu@ubuntu:~$ echo $mytest
    one

    只有第一个值显示出来了。要引用一个单独的数组元素,必须用代表它在数组中位置的数值索引值,数值要用方括号括起来:

    wu@ubuntu:~$ echo ${mytest[2]}
    three

    要显示整个数组变量,可用星号作为通配符放在索引值的位置:

    wu@ubuntu:~$ echo ${mytest[*]}
    one two three four five

    你也可以改变某个索引位置的值:

    wu@ubuntu:~$ mytest[2]=seven
    wu@ubuntu:~$ echo ${mytest[*]}
    one two seven four five

    你甚至可以用unset命令来删除数组中的某个值,但是要小心:

    wu@ubuntu:~$ unset mytest[2]
    wu@ubuntu:~$ echo ${mytest[*]}
    one two four five
    wu@ubuntu:~$ echo ${mytest[2]}

    wu@ubuntu:~$ echo ${mytest[3]}
    four

    最后,可以在unset命令后跟上数组名来删除整个数组:

    wu@ubuntu:~$ unset mytest
    wu@ubuntu:~$ echo ${mytest[*]}

    wu@ubuntu:~$

  • 相关阅读:
    python中装饰器使用
    python文件读取操作、序列化
    Xshell使用教程
    Hadoop基础(三):基于Ubuntu16搭建Hadoop运行环境搭建
    UBUNTU的默认root密码是多少,修改root密码
    Ubuntu16.04设置静态ip
    Scala 基础(十六):泛型、类型约束-上界(Upper Bounds)/下界(lower bounds)、视图界定(View bounds)、上下文界定(Context bounds)、协变、逆变和不变
    物联网初探
    电脑不能安装虚拟机--解决办法
    vbox虚拟机和vm虚拟机 虚拟机网络不通的解决方法
  • 原文地址:https://www.cnblogs.com/wuyudong/p/linux-envionment-variables.html
Copyright © 2011-2022 走看看