• 使用Linux环境变量


    bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息。

    全局环境变量

    这对shell 会话和所有生成的子shell都是可见的。局部变量只对创建他们的shell可见。

    系统环境变量基本上都是大写的,以区分普通用户的环境变量。

    要查看全局变量,可以使用env或者printenv

    要查看个别的环境变量,使用printenv命令

    $ printenv HOME
    /home/Christine

    也可以使用echo命令来查看变量的值,这时是在引用某个环境变量的值,必须在变量前面加一个美元符号($),这能够使这个引用的变量作为命令的参数。

    全局变量可作用于进程所有的子shell。

    局部环境变量

    这只能在他们的进程中可见。Linux也默认定义了标准的局部环境变量。自己也可以定义环境变量,这被用户自定义局部变量。

    Linux系统中并没有只显示局部环境变量的命令。set命令会显示某个特定进程的设置的所有的环境变量,包括局部变量、全局变量、用户自定义变量。

    env、printenv和set命令之间的区别在于前两个命令不会对变量进行排序,也不会输出局部变量和用户自定义变量。

    设置用户定义变量

    设置局部用户定义变量

    $ echo $my_variable
    
    $ my_variable=Hello
    $
    $ echo $my_variable

    注意:

    1. 如果要给变量赋一个含有空格的字符串的值,必须使用单引号来界定,如my_variable="hello world" 。
    2. 变量名、等号和值之间没有空格。
    3. 如果生成了另外一个shell,它在子shell中就不可用了。

    所有的环境变量全部使用大写,这是bash shell的标准惯例。如果是自己创建的局部变量或者是shell脚本,请使用小写字母。

    设置全局环境变量

    在设定全局环境变量的进程所创建的子进程中,该变量都是可见的。创建环境变量的方法是先创建一个局部变量,然后再把它导入到全局变量中。

    $ my_variable="I am a Global now"
    $ 
    $ export my_variable
    $ echo $ my_variable
    I am a Global now
    $ bash
    $ 
    $ echo $ my_variable
    I am a Global now
    $ exit
    exit

    修改子shell中的全局环境变量并不会影响到父shell中变量的值,子shell甚至无法使用export命令改变父shell中全局环境变量的值,父shell的中全局环境变量依旧保留原先的值。

    删除环境变量

    使用unset命令删除,注意不要使用$。

    $echo $my_variable
    I am Global now
    $ unset my_variable
    $
    $ echo $my_variable
    
    $

    如果要用到变量,使用$,如果要操作变量,不使用$。这条规则的例外就是printenv显示某个变量的值。

    在处理全局环境变量的时候,如果你在子进程中删除了一个全局环境变量,这只对子进程有效,和修改变量一样。

    设置PATH环境变量

    PATH环境变量定义了用于进行命令和程序查找的目录,目录之间使用:进行分割,你只需引用原来的PATH的值,然后再给这个字符串添加新目录就行了。

    $ echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    $
    $ PATH=$PATH:/home/christine/Scripts
    $ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/christine/Scripts

    注意:如果希望子shell也能找到你的程序的位置,一定要记得把修改后的PATH环境导出。

    注意:对PATH变量的修改只能持续到退出或重启系统。

  • 相关阅读:
    使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
    浅谈程序猿的职业规划,看你如何决定自己的未来吧。
    [转载]DOS循环:bat/批处理for命令详解 (史上虽详尽的总结和说明~~)
    bat 批处理 字符串 截取
    window上使用GIT的个人经验(入门级)
    Android 访问 wcf
    解决 MyEclipse 10 中 JSp页面 “return false” 报错问题
    微信公共平台(码农在努力)
    Spring Cloud 中使用 Zipkin 追踪服务
    Spring Cloud Config 分布式配置中心
  • 原文地址:https://www.cnblogs.com/baishoujing/p/6472993.html
Copyright © 2020-2023  润新知