运维-linux(ubuntu)环境变量管理(持续更新)

注:本教程以Ubuntu16.04操作,请细看。如果看完还不明白,联系我,我给你发红包。

一、查看环境变量:

  • 方法1:直接用$PATH命令:
wafa@ubuntu:~$ $PATH
bash: /home/king/bin:/home/king/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/go-gtk/gtk:/snap/bin:.:/usr/local/go/bin: No such file or directory
  • 方法2:用export命令。如终端命令行输入export后,结果中的PATH就是环境变量:
king@ubuntu:~$ export
declare -x CLUTTER_IM_MODULE="ibus"
declare -x COMPIZ_BIN_PATH="/usr/bin/"
declare -x COMPIZ_CONFIG_PROFILE="ubuntu"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-BQwiluABuc"
declare -x PATH="/home/wafa/bin:/home/wafa/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/go-gtk/gtk:/snap/bin:.:/usr/local/go/bin"
declare -x PWD="/home/wafa"
declare -x DEFAULTS_PATH="/usr/share/gconf/ubuntu.default.path"
...
  • 方法3:使用env 命令打印所有的环境变量
wafa@ubuntu:~$ env
XDG_VTNR=7
LC_PAPER=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
XDG_SESSION_ID=c2
PATH=/home/wafa/bin:/home/wafa/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/go-gtk/gtk:/snap/bin:.:/usr/local/go/bin
  • 方法4:用echo $PATH(同法一)

二、了解环境变量

     环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。

     个人理解(比较通俗):你输入命令时,系统会自动的去指定的路径下去寻找你输入的指令文件。因此,配置好环境变量 后只要输入程序的名称,系统就会自动搜索到你程序的位置,而不会再出现command not found这样的问题了。

三、和环境变量有关的文件:

  1. /etc/profile —— 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置;
  2. /etc/environment —— 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量;
  3. /etc/bashrc —— 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取;
  4. /home/king/.profile —— 用户king的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc文件;(注:king为当然登录的用户,每个用户都有自己的家目录,即在/home文件夹下。)
  5. /home/king/.bashrc —— 用户king的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取;
    认识以上5个文件之后,我们设置环境变量的方法也就有了。
注:前3个针对所有的用户,需要sudo权限设置,后两个针对当前用户。

四、环境变量的添加与删除

请认真阅读以上步骤及5个文件,这样后面就很好理解了。

1. 对所有用户都生效:

1). 方法一:直接sudo权限编辑/etc/enviroment文件,
/etc/environment文件,其内容如下:

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

注:作用域:全局的,永久性的。在环境变量PATH中添加你要添加的路径即可,注意以“:”分隔分个路径。

2). 方法二:修改/etc/profile文件。此文件不保存环境变量信息,但在登录时,系统会根据此文件内容对环境变量进行设置。

export PATH=$PATH:/usr/local/sbin:/usr/local/bin:
export PATH=/usr/local/share:$PATH

注:$PATH指代添加your path前的环境变量。即在第一行的基础上再另外添加的环境变量。作用域:全局的,永久性的。

3). 方法三:修改/etc/bashrc。这个文件同样不是为了保存环境变量,只是在使用bash shell时进行设置而已,所以设置方法和二中一样:

export PATH=$PATH:/usr/local/sbin:/usr/local/bin:
export PATH=/usr/local/share:$PATH

注:作用域:全局的,永久性的。
对于/etc/bashrc文件,修改的作用于用户,但对于~/.bashrc文件,修改的仅仅作用于当前用户。这种修改的作用也是永久性的。

2.仅对当前用户生效

1). 方法一:修改~/.profile文件。本质和修改/etc/profile一样,但这种仅仅修改了当前用户自己的配置文件。作用域:当前用户,永久性的。

2). 方法二:修改~/.bashrc文件。本质和修改/etc/bashrc一样。不保存环境变量,只是在当前用户使用bash shell时进行设置而已。作用域:当前用户,永久性的。设置同修改/etc/bashrc一样。

3. 临时生效

1). 方法一:在Terminal中使用shell命令

export PATH=$PATH:[your path1]:[your path2]:[...] 

2). 方法一:在Terminal中使用shell命令

export PATH=[your path1]:[your path2]:[...]:$PATH  

注:上面两种方法是暂时的生效。关闭终端设置也就失效了。作用域:仅限于当前终端,其他终端中这个设置不会启作用。

五、设置生效

  1. 输入env命令查看所有环境变量。

  2. 输入echo $PATH 命令查看PATH环境变量
    这时我们就可以在PATH变量后看到相关的修改了。

  3. 是否发现有的设置后设置并没有及时生效???
    你猜的对,这样就可以生效了:
    法一:你需要考虑重启或者注销后重新登录了(请思考:哪个需要重启,哪个需要重新登录?等我后续闲了再给你答案。)
    法二:使用source命令。在命令行输入:

source [file name]  

注:
1、[file name]为你修改的文件名字的路径,绝对路径和相关路径都可以。
2、以上方法只需要一种即可,但要根据个人需要选择适用的方法。
3、使用export命令设置的环境变量是临时性质且局部的,因此只需要关闭这个Terminal就好了。

是不是没有你想象的那么难???

    原文作者:粑粑易帜python攻城狮
    原文地址: https://www.jianshu.com/p/0a70d5fb8aba
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞