ubantu环境变量

1. 查看环境变量

  1. 我们都知道,系统去找命令时是按环境变量从前到后检测的,那么这些变量都是哪来的,从哪儿能看到呢?

  2. 查看当前环境变量,终端输入:

    # 查看当前环境变量
    [jade@localhost ~]$$PATH
    # 输出为
    bash:/home/jade/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jade/software/nodejs/bin::/opt/s21/python367/bin:/home/jade/software/nodejs/bin::/home/jade/bin:/home/jade/.local/bin:: 没有那个文件或目录
    

2. 和环境变量有关的文件:

系统级别(修改后对本机上的所有用户生效)

  1. /etc/profile —— 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置;
  2. /etc/environment —— 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量;
  3. /etc/bashrc —— 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取;

用户级别(修改后只对当前用户生效)

  1. /home/jade/.profile —— 用户jade的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc文件;(注:jade为当然登录的用户,每个用户都有自己的家目录,即在/home文件夹下。)
  2. /home/jade/.bashrc —— 用户jade的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取;

3. 对当前环境变量进行分析:

  1. 分别查看这几个文件的内容

    # 查看文件
    cat /etc/profile
    # 输出(这里只列出和环境变量有关的命令)
    export PATH="$PATH:/opt/s21/python367/bin:/home/jade/software/nodejs/bin:"
    
    # 查看文件
    cat /etc/environment
    # 输出(这里只列出和环境变量有关的命令)
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jade/software/nodejs/bin:"
    
    # 查看文件
    cat /etc/bashrc
    # 输出(这条和环境变量无关,只是一条快捷命令,可忽略)
    alias pycharm='sh /home/jade/pycharm-2019.1.2/bin/pycharm.sh'
    
    # 查看文件
    cat /home/jade/.profile
    # 输出(这里只列出和环境变量有关的命令)
    PATH="$PATH:$HOME/bin:$HOME/.local/bin:"
    
    # 查看文件
    cat /home/jade/.bashrc
    # 输出(这里只列出和环境变量有关的命令)
    export PATH="/home/jade/anaconda3/bin:$PATH"
    
  2. 由以上,可以分析出环境变量的组成:

    /home/jade/anaconda3/bin:  ----->来自于 /home/jade/.bashrc
    
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jade/software/nodejs/bin:  ----->来自于 /etc/environment
    
    :/opt/s21/python367/bin:/home/jade/software/nodejs/bin: ----->来自于 /etc/profile:
    
    :/home/jade/bin:/home/jade/.local/bin:: 没有那个文件或目录 ----->来自于 /home/jade/.profile
    
  3. 那么,加载先后顺序或者叠加规则已经出来了:

    先加载/etc/environment-----> /etc/profile -----> /home/jade/.profile -----> /home/jade/.bashrc
    至于/etc/bashrc是在哪个位置,由于对我没有影响(因为里面没有涉及到环境变量),这里不做定论.不过根据用户级的文件读取顺序,可以猜测是在/etc/profile之后,读者们可以自行实验
    
上一篇:Jade学习(四)之结合node如何编译执行


下一篇:jade直接写类似JavaScript语法的东西,不需要写script