陈斌彬的技术博客

Stay foolish,stay hungry

Ubuntu 修改环境变量导致无法登陆系统

解决办法:

由于无法登录, 所以我们得从命令行下将前面我们错误修改的环境变量改正过来。

  1. 在登录界面,按 Ctrl + Alt + F1 进入命令行模式。(Ctrl+Alt+F1-F6 可以分别启动6个不同命令行, Ctrl+Alt+F7 可以切换回 UI 界面)
  2. 使用 vim 或者 vi 来更改环境变量,以我上面所述为例: sudo vim /etc/environment 由于环境变量的原因, 很多时候系统已经无法直接调用 sudo 或者 vim 这样的命令,所以我们必须使用绝对路径: /usr/bin/sudo/usr/bin/vim/etc/environment
  3. 接下来就将环境变量修改为正确的,然后保存,退出,重启。

Ubuntu环境变量位置

Ubuntu Linux 系统环境变量配置文件:

/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

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

~/.profile: 在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的 .bashrc 文件。

/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 ...”

保存文件,注销再登录,变量生效。 该方式添加的变量只对当前用户有效。

方法二:系统目录下的 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 …"

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

注 意:方法二和三的修改需要谨慎,尤其是通过 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)

个人最近使用较多的为 ~/.profile

sudo gedit ~/.profile

然后添加:export PATH="$PATH:mtpath"

重启系统即可

在没有环境变量启效时,完整路径运行程序。

查看环境变量:echo $PATH