天天看点

Linux 环境变量PATH设置

首先是设置全局环境变量,对所有用户都会生效:

  • etc/profile: 此文件为系统的每个用户设置环境信息。当用户登录时,该文件被执行一次,并从 /etc/profile.d 目录的配置文件中搜集shell 的设置。一般用于设置所有用户使用的全局变量。
  • /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。/etc/environment 中不能包含命令,即直接通过

    VAR="..."

    的方式设置,不使用 export 。
  • /etc/bashrc: 当 bash shell 被打开时,该文件被读取。也就是说,每次新打开一个终端 shell,该文件就会被读取。

只对单个用户生效:

  • ~/.bash_profile 或 ~/.profile: 只对单个用户生效,当用户登录时该文件仅执行一次。用户可使用该文件添加自己使用的 shell 变量信息。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系统一般是 ~/.profile 文件。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
  • ~/.bashrc: 只对单个用户生效,当登录以及每次打开新的 shell 时,该文件被读取。

读取顺序:

/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件

/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。

~/.profile :  在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息。

/etc/bashrc : 为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。

~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

PASH环境变量的设置方法:

方法一:用户主目录下的.profile或.bashrc文件(推荐)

登录到你的用户(非root),在终端输入:

$ sudo gedit ~/.profile(or .bashrc)

可以在此文件末尾加入PATH的设置如下:

export PATH=”$PATH:your path1:your path2 ...”,注意等号(=)两边不要有空格

保存文件,需要重启才会生效(修改 /etc/profile、/etc/environment 也是如此)。但可以使用命令

source ./.profile

使其立即生效。

该方式添加的变量只对当前用户有效。

方法二:系统目录下的profile文件(谨慎)

在系统的etc目录下,有一个profile文件,编辑该文件:

$ sudo gedit /etc/profile

在最后加入PATH的设置如下:

export PATH=”$PATH:your path1:your path2 ...”

该文件编辑保存后,重启系统,变量生效。

该方式添加的变量对所有的用户都有效。

方法三:系统目录下的 environment 文件(谨慎)

在系统的etc目录下,有一个environment文件,编辑该文件:

$ sudo gedit /etc/environment

找到以下的 PATH 变量:

PATH="<......>"

修改该 PATH 变量,在其中加入自己的path即可,例如:

PATH="<......>:your path1:your path2 …"

各个path之间用冒号分割。该文件也是重启生效,影响所有用户。

注意这里不是添加export PATH=… 。

方法四:直接在终端下输入

$ sudo export PATH="$PATH:your path1:your path2 …"

这种方式变量立即生效,但用户注销或系统重启后设置变成无效,适合临时变量的设置。

使用 export 设置的变量,只对当前终端 Shell 有效,也就是说如果新打开一个终端,那这个 export 设置的变量在新终端中使无法读取到的。适合设置一些临时变量。

注 意:方法二和三的修改需要谨慎,尤其是通过root用户修改,如果修改错误,将可能导致一些严重的系统错误。因此笔者推荐使用第一种方法。另外嵌入式 Linux的开发最好不要在root下进行(除非你对Linux已经非常熟悉了!!),以免因为操作不当导致系统严重错误。

下面是一个对environment文件错误修改导致的问题以及解决方法示例:

问题:因为不小心在 etc/environment里设在环境变量导致无法登录

提示:不要在 etc/environment里设置 export PATH这样会导致重启后登录不了系统

解决方法:

在登录界面 alt +ctrl+f1进入命令模式,如果不是root用户需要键入(root用户就不许这么罗嗦,gedit编辑会不可显示)

/usr/bin/sudo /usr/bin/vi /etc/environment

光标移到export PATH** 行,连续按 d两次删除该行;

输入:wq保存退出;

然后键入/sbin/reboot重启系统(可能会提示need to boot,此时直接power off)

继续阅读