zoukankan      html  css  js  c++  java
  • 【linux】环境变量

    参考链接:

    http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html

    https://zhidao.baidu.com/question/391422737051613445.html

    https://zhidao.baidu.com/question/178454935827462924.html

    linux变量分类

    环境变量:环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量

    本地变量:本地变量,当前shell 中的变量,很显然本地变量中肯定包含环境变量。Linux 的本地变量的非环境变量不具备继承性

    环境变量相关命令

    set :用于显示与设置当前本地 变量。单独一个set 显示当前环境的所有的变量,包括环境变量和一些非环境变

    unset :用于清除变量。不管这个变量是环境变量还是本地变量,它都可以清除

    env :查看所有环境变量

    export :用于把变量变成当前shell 和其子shell 的环境变量,存活期是当前的shell 及其子shell ,因此重新登陆以后,它所设定的环境变量就消失了。如需永久化,需修改下面介绍的文件。

    source :在当前shell中执行脚本。一般直接执行一个脚本的时候,其实是在一个子shell 环境运行的,即开启了一个子shell 来执行这个脚本。source可以在当前shell中执行脚本。

    #在当前shell中设置本地变量
    myname=abc
    
    #shell脚本test.sh内容
    echo $myname
    
    #直接运行,没有输出
    ./test.sh
    
    #用source运行,输出abc
    source test.sh

    环境变量添加路径及执行顺序

    export PATH=$PATH:/home/cc/bin

    在PATH变量中添加路径/home/cc/bin,其中的冒号是路径分隔符

    两种添加路径的方式区别:

    方式1:PATH=$JAVA_HOME/bin:$PATH
    方式2:PATH=$PATH:$JAVA_HOME/bin
    路径排前面的优先
    比如 $JAVA_HOME/bin和/usr/bin下面都有java

    PATH=$JAVA_HOME/bin:$PATH 时,执行 java的时候是$JAVA_HOME/bin/java,如果没有再执行/usr/bin/java
    PATH=$PATH:$JAVA_HOME/bin 时,执行 java的时候是/usr/bin/java
    一般用户设定都是为了特殊用途,使用方式2没什么意义,所以方式1多些

    注意:如果JAVA_HOME是空的,比如被unset了,则$JAVA_HOME/bin/java就等同于/bin/java了

    环境变量相关文件

       当你进入系统的时候,linux 就会为你读入系统的环境变量,这些环境变量存放在什么地方,那就是环境变量的文件中。Linux 中有很多记载环境变量的文件,它们被系统读入是按照一定的顺序的。

    1.    /etc/profile

    此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d 目录的配置文件中搜集shell 的设置。

        这个文件,是任何用户登陆操作系统以后都会读取的文件(如果用户的shell 是csh 、tcsh 、zsh ,则不会读取此文件),用于获取系统的环境变量,只在登陆的时候读取一次。

        假设用户使用的是BASH ,那么

    2.    /etc/bashrc

    在执行完/etc/profile 内容之后,如果用户的SHELL 运行的是bash ,那么接着就会执行此文件。另外,当每次一个新的bash shell 被打开时, 该文件被读取。

        每个使用bash 的用户在登陆以后执行完/etc/profile 中内容以后都会执行此文件,在新开一个bash 的时候也会执行此文件。因此,如果你想让每个使用bash 的用户每新开一个bash 和每次登陆都执行某些操作,或者给他们定义一些新的环境变量,就可以在这个里面设置。

    3.    ~/.bash_profile

    每个用户都可使用该文件输入专用于自己使用的shell 信息。当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc 文件。

        单个用户此文件的修改只会影响到他以后的每一次登陆系统。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么它在每次登陆的时候都会去获取这些新的环境变量或者做某些特殊的操作,但是仅仅在登陆时。

    4.    ~/.bashrc

    该文件包含专用于单个人的bash shell 的bash 信息,当登录时以及每次打开一个新的shell 时, 该该文件被读取。

        单个用户此文件的修改会影响到他以后的每一次登陆系统和每一次新开一个bash 。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么每次它新登陆系统或者新开一个bash ,都会去获取相应的特殊的环境变量和特殊操作。

    5.    ~/.bash_logout

    当每次退出系统( 退出bash shell) 时, 执行该文件。

  • 相关阅读:
    迭代器和生成器
    案例:复制大文件
    案例:使用seek倒查获取日志文件的最后一行
    Leetcode165. Compare Version Numbers比较版本号
    Leetcode137. Single Number II只出现一次的数字2
    Leetcode129. Sum Root to Leaf Numbers求根到叶子节点数字之和
    Leetcode116. Populating Next Right Pointers in Each Node填充同一层的兄弟节点
    Leetcode114. Flatten Binary Tree to Linked List二叉树展开为链表
    Leetcode113. Path Sum II路径总和2
    C++stl中vector的几种常用构造方法
  • 原文地址:https://www.cnblogs.com/dplearning/p/6275047.html
Copyright © 2011-2022 走看看