zoukankan      html  css  js  c++  java
  • 关于四个环境变量的问题 这个讲的很清楚

    永久设置环境变量的几种方法

    环境变量简介

    bash shell用一个叫做环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息.环境变量的使用大大方便了程序或者shell中运行的脚本查找和访问内存中存储的数据和系统信息.

    环境变量分为全局环境变量局部环境变量,标准的命名方式是:全局变量名用大写字母命名,局部变量用小写字母命名.

    这里主要介绍全局环境变量.

    bash shell中操作环境变量

    声明:在bash shell中对环境变量所做的所有操作只对当前shell有效,退出后再打开,之前的所有设置全部消失.

    这里介绍如何在bash shell中查看/添加/删除环境变量

    查看所有全局环境变量有两个命令:envprintenv.直接输入这两个参数其中一个就行

    查看某个环境变量,常用两种方式:printenv 环境变量名或者echo $环境变量名.比如查看环境变量HOME的值:


    yan@yanubuntu:~$ printenv HOME
    /home/yan
    yan@yanubuntu:~$ echo $HOME
    /home/yan

    短暂性添加(export)或者删除(unset

    ## 添加变量名(创建一个之前没有的环境变量)
    export DOWNLOAD=/home/yan/download
    ## 添加新路径(如果某个环境变量已经存在,我们要为这个环境变量添加路径)
    export PATH=/home/yan/anaconda2:$PATH
    
    ##删除变量名
    yan@yanubuntu:~$ printenv DOWNLOAD
    /home/yan/download
    yan@yanubuntu:~$ unset DOWNLOAD
    yan@yanubuntu:~$ printenv DOWNLOAD

    可以看到,PATH变量包含了多个值/路径,每个值之间用冒号:隔开(注意windows下面用的是分号;隔开).

    前面提到了,在bash shell中对环境变量的所有操作都是暂时性的,退出当前shell就无效了.如何使得对环境变量的设置永久有效?首先得认识以下几个文件:

    • /etc/profile (对所有用户)

    • /etc/environment (对所有用户)

    • ~/.profile (当前用户)

    • ~/.bashrc (当前用户)

    设置/etc/profile (所有用户)

    实际上,当我们登录Linux系统时,bash作为默认的shell,它会在几个文件中查找命令.这些文件称为启动文件或者环境文件.其中,/etc/profile文件就是系统默认的bash shell的第一启动文件.其中就涉及到了系统环境变量的读取文件.所以,可以直接打开/etc/profile文件,使用export命令在文件中添加系统环境变量.

    这个文件的特点是:系统中所有用户登录时都会执行这个启动文件.所以,里面添加的所有环境变量都系统中的所有用户有效.

    举个例子,我要将新安装的anaconda2中的python解释器作为系统默认的python解释器,为此,我需要将路径/home/yan/anaconda2/bin添加到PATH环境变量中.可以使用以下命令打开/etc/profile文件:

    yan@yanubuntu:~$ sudo gedit /etc/profile

    打开后在文件最后面添加以下语句:

    export PATH=/home/yan/anaconda2/bin:$PATH

    特别的:

    在某个环境变量添加新的值和添加一个新的环境变量相比(以PATH为例),多了一个$PATH:.

    网上有人说的不错,这个有点类似于i=i+1的味道.

    所以有两种写法:

    export PATH=/home/yan/anaconda2:$PATH
    export PATH=$PATH:/home/yan/anaconda2

    保存退出,然后在bash中执行source /etc/profile命令使其生效,或者重启系统使其生效.

    yan@yanubuntu:~$ source /etc/profile

    设置/etc/environment(对所有用户)

    参考Ubuntu环境变量——添加与删除,/etc/environment文件是登录Linux系统时的第二启动文件

    使用以下命令打开/etc/environment文件:

    yan@yanubuntu:~$ sudo gedit /etc/environment

    发现里面只有一行内容:

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

    也就是只定义了PATH环境变量的值,同样的例子,我们可以将/etc/environment文件内容改为:

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/yan/anaconda2/bin"

    也就同样添加了anaconda2路径到PATH环境变量.同样需执行source命令或者重启系统使其生效.

    同样,修改/etc/environment文件也是对所有登录用户有效.

    设置~/.profile

    设置~/.profile文件同样可以达到永久设置环境变量的目的,但是它只是对当前用户有效.

    我们知道,Linux中的~就代表了当前用户的主目录,比如此时,~/.profile就相当于/home/yan/.profile.

    其中yan是我的登录用户名.因此,当前Linux系统中创建了几个用户,就有几个~/.profile文件.当然,对于个人笔记本而言,一般只有一个登录用户.

    既然搞清楚了,同样的例子,使用以下命令打开~/.profile文件:

    yan@yanubuntu:~$ sudo gedit ~/.profile

    同样在/.profile文件最后添加export命令,下面是/.profile文件内容,很短:

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
    # exists.
    # see /usr/share/doc/bash/examples/startup-files for examples.
    # the files are located in the bash-doc package.
    ​
    # the default umask is set in /etc/profile; for setting the umask
    # for ssh logins, install and configure the libpam-umask package.
    #umask 022
    ​
    # if running bash
    if [ -n "$BASH_VERSION" ]; then
     # include .bashrc if it exists
     if [ -f "$HOME/.bashrc" ]; then
     . "$HOME/.bashrc"
     fi
    fi
    ​
    # set PATH so it includes user's private bin directories
    PATH="$HOME/bin:$HOME/.local/bin:$PATH"
    export PATH=/home/yan/anaconda2/bin:$PATH

    同样保存后执行source命令或者重启系统使其生效.

    设置~/.bashrc文件

    最后还有一个/.bashrc文件,修改这个文件同样可以达到永久设置环境变量的目的,实际上,这个文件是被上面的/.profile件执行的,以上~/.profile文件中有这两句:

    if [ -f "$HOME/.bashrc" ]; then
     . "$HOME/.bashrc"

    好了,同样的,使用gedit编辑器打开~/.bashrc文件并在文件末尾加入export命令,保存后执行source命令或者重启系统使其生效.

    同样,设置~/.bashrc文件修改的环境变量也只对当前用户有效.

    永久设置ubuntu(我用的ubuntu16.04),修改以上任意一个文件都可以(其实还没总结完,好像还可以修改/etc/bash.bashrc,/root/bashrc等目录等可以,没去试,就试了以上几个,够用就行).当为了不影响系统上的其他用户,最好还是修改自己的~/.profile文件或者~/.bashrc文件吧.




    作者:运动小爽
    链接:https://www.jianshu.com/p/12fbfa8c7489
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    剑指 Offer 13. 机器人的运动范围
    32个触发事件XSS语句的总结
    CSS实现垂直居中的5种方法
    微信、QQ浏览器X5内核问题汇总
    值得关注的顶级开发者社区
    HTML5本地数据库(WebSQL)[转]
    按首字母排序汉字
    jQuery 源码中的 camelCase
    jQuery中的quickExpr
    手绘计划
  • 原文地址:https://www.cnblogs.com/shixun/p/13355918.html
Copyright © 2011-2022 走看看