`
hyz301
  • 浏览: 374935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决Ubuntu环境变量错误导致无法正常登录

 
阅读更多

 一、问题产生

 

配置JDK时,按照搜索到的一篇文章中的做法,修改了/etc/profile文件里的内容。在原内容保持不变的基础上,大致添加了以下内容:

export JAVA_HOME=....

export PATH=....

然而,重启再次试图登录X windows时,发生错误。输入密码后没有反应,仍然停留在Login界面。图形界面登录不进去,只好Ctrl+Alt+F1进入CLI试试。

 

二、定位问题

 

进入命令行界面,暂时还不知道问题的原因。与平时不同的是,登录命令行系统返回欢迎信息的后面,还报了很多错误。

  

很自然的目光首先停留在最长的那些行上面:

The command could not be located because '/usr/bin:/bin' is not included in the PATH environment variable.

意思是:找不到命令,因为'/usr/bin:/bin'没有被包含在环境变量PATH中。

这就是问题产生的原因:环境变量PATH错误。联想到修改/etc/profile文件时确实对PATH进行过操作,所以解决问题的最简单的方法就是让/etc/profile恢复到修改之前的状态。

 

看完错误信息,打算清屏进行下一步工作,输入:clear。同样报错:

Command 'clear' is available in '/usr/bin/clear'

The command could not be located because '/usr/bin' in not included in the PATH environment variable.

clear:command not found

又试了几个其他常用的命令:ls, vim,cat等,错误原因相同,均指向环境变量PATH.

 

三、PATH作用

 

LinuxPATH,在windows下配置过JDK的也肯定注意到windows也有path,这个PATH到底是做什么用的呢? 下面解释一下:

      当我们在命令行(Linux下的terminal或者tty1~6windows下的cmd中)输入一个命令时,实际上执行的是一个程序。比如使用 ls 命令,实际上是运行 ls 这个程序,它的功能是列出当前目录下的内容。但是,默认情况下搜寻要运行的程序时,仅是在当前目录下寻找的。而我们平时使用的命令不论在哪个目录下都能执行,难道是每个目录下都有这些命令的拷贝?当然不是,这样对空间的浪费太严重了。

    现在操作系统采取的普遍做法是,通过PATH变量指定命令存放的位置。一旦使用某个命令时,按照PATH中制定目录的顺序去搜寻指令对应的程序。所以正常情况下,使用echo $PATH查看环境变量PATH的内容如下:

分号 ":" 表示分隔符,分隔各个目录。

由于PATH错误,我在使用指令时系统不能正常到存放指令的目录中去寻找,因此会提示:Command not found.

 

四、解决方法

 

很人性化的是,系统会提示我们要使用的指令存放的正确位置,比如使用clear时提示的:Command 'clear' is available in '/usr/bin/clear'clear命令是存放在'/usr/bin'目录下的。

要编辑/etc/profile,正常情况下使用的命令是:sudo vim /etc/profile

现在,系统找不到sudo 命令,也找不到vim命令,所以只能人工指定它们的绝对路径了。sudo vim 都是存放在'/usr/bin'目录下的,所以sudovim的绝对路径分别是:/usr/bin/sudo   /usr/bin/vim

因此要编辑/etc/profile要使用的命令应该这样写: /usr/bin/sudo  /usr/bin/vim  /etc/profile

只需要把自己之前添加的内容删除掉就可以了(最好是能修改成正确的,搞不定也要至少恢复原状吧),然后保存重启系统。

  

正常状态下重启使用:sudo reboot

当然现在也不行,要使用 /usr/bin/sudo /sbin/reboot

 

第二篇文章:

 

 Ubuntu下配置Android的环境时,想像在Windows中那样在终端中直接启动adb,以为LinuxWindows一样,将adb的路径添加到环境变量中,于是将adb的路径也export/etc/profile中,可杯具了,重启系统后,无限循环登录界面,经多方查找资料找到了解决办法。

办法如下:

1. 进入了登录界面后,不用输入密码,按住Ctrl+Alt+F1(听说F1F6都行)

2. 进入了ubuntu的命令行界面,先输入用户名回车,然后输入密码回车(纯新手,不懂,习惯的直接密码了,折腾了很久)

3.1 输入sudo vi /etc/profile,打开了profile文件,将多余的语句删除掉,输入:wq回车保存,输入 sudo reboot重启。

3.2 另一方法:

在桌面中操作,

进入了命令行界面,输完用户名和密码;

输入startx,进入了桌面界面,使用Alt+T打开终端,在终端中输入sudo gedit /etc/profile编辑环境变量,将多余的语句删除掉,点保存后关掉,在终端中输入sudo reboot 重启。

在登录界面输入密码就OK

分享到:
评论

相关推荐

    Ubuntu Linux 环境变量PATH设置.doc

    假设由于在 `/etc/environment` 文件中错误地设置了 `export PATH` 导致系统无法正常登录。可以通过以下步骤解决问题: 1. 在登录界面按下 `Alt + Ctrl + F1` 进入命令模式。 2. 如果不是 root 用户,需要使用 `...

    在Ubuntu上修改环境变量,安装,下载

    ### 在Ubuntu上修改环境变量,安装Java及其对Android开发的影响 在进行软件开发,特别是针对Android平台的应用开发时,确保操作系统环境配置正确无误至关重要。本文档详细介绍了如何在Ubuntu系统上修改环境变量,...

    解决Ubuntu14.0464位下abaqus6.11.3与Fortran无法连接的问题.pdf

    在Ubuntu14.04 64位系统中,如果遇到Abaqus 6.11.3与Fortran编译器无法正常连接的问题,可以通过以下几个步骤来解决: 首先,Abaqus是一款有限元分析软件,广泛用于工程模拟、复杂多物理场分析以及计算流体力学等...

    在ubuntu虚拟机下关于缺少头文件<gnu/stubs.h>的解决办法

    他们遵循了一本书中的步骤,试图通过配置环境变量来解决这个问题,但仍然遇到了`fatal error: no input files`这样的错误信息,并且在尝试编译一个简单的`hello.c`文件时也出现了错误提示。 #### 解决方案 为了...

    ubuntu profile environment bashrc 添加环境变量

    Ubuntu Profile 环境变量设置详解 在 Linux 操作系统中,环境...Ubuntu Profile 环境变量的设置非常重要,我们需要谨慎地进行修改,避免系统错误。同时,我们也需要了解相关的知识点,以便更好地使用 Linux 操作系统。

    ubuntu12.04_roo用户无法使用_chrome_浏览器

    根据提供的文件信息,问题的核心在于root用户在Ubuntu 12.04系统下无法正常运行Google Chrome或Chromium浏览器。这一现象可能由多种原因造成,包括权限问题、文件损坏或配置错误等。以下是对解决方案的详细分析: #...

    Ubuntu 上配置DirectFB环境(亲测可用)

    本教程详细介绍了如何在Ubuntu系统上配置DirectFB环境,并提供了针对Ubuntu 10.04的测试和问题解决指导。 首先,安装Ubuntu系统时要特别注意源的设置。建议直接使用官方源,不要删除原有源,以防安装过程中出现问题...

    Ubuntu usr/java/jdk1.8.0_181环境配置

    错误的路径会导致JDK无法正常启动。 - 修改root用户密码时要谨慎操作,确保密码安全。 - 如果遇到权限问题,可以使用`sudoroot`命令切换到root用户后再进行操作。 #### 总结 通过上述步骤,可以在Ubuntu系统中成功...

    Ubuntu16.04+Qt5.5+Opencv2.4.10环境搭建

    - 配置环境变量,包括QTDIR、PATH、MANPATH和LD_LIBRARY_PATH,以确保系统能够识别Qt相关的工具和库。 - 安装OpenGL相关的库和工具,如libgl1-mesa-dev、libglu1-mesa-dev和freeglut3-dev,这些都是为了确保在Qt...

    Ubuntu下eclipse环境搭建

    需要注意的是,这个压缩包不能在Windows系统下解压,否则可能会导致错误。 3. 安装Android SDK Android SDK提供了开发Android应用所需的开发工具和平台库。在Ubuntu系统中,首先需要下载Android SDK的压缩包到本地...

    ubuntu16安装Floodlight

    在这个步骤中,如果你遇到了"PacketStreamer.java:428: error: cannot find symbol"的错误,这通常是由于编译时缺少依赖或者代码引用错误导致的。为了解决这个问题,我们需要仔细检查项目的`pom.xml`文件,确保所有...

    Ubuntu10.10下kgdb环境搭建

    ### Ubuntu10.10下kgdb环境搭建详解 #### 前言 随着Linux操作系统在嵌入式领域的广泛应用,内核级别的调试成为了许多开发者必须掌握的一项技能。不同于用户空间的应用程序,内核级别的调试更加复杂,因为它发生在...

    windows下Ubuntu安装总结.pdf

    - 在编辑配置文件或进行环境变量设置时,务必小心谨慎,错误的配置可能导致系统无法正常工作。 由于【部分内容】中可能存在OCR技术原因导致的错误,具体细节需根据实际情况调整,但以上提供的安装和配置过程为...

    ubuntu android 环境搭建

    - 在32位Ubuntu系统下编译Android 2.2及更低版本时,可能会遇到使用4.4版本的GCC/G++导致的错误。此时可以将`/usr/bin/gcc`和`/usr/bin/g++`的链接指向4.3版本: ```bash sudo rm /usr/bin/gcc sudo ln -s /usr/...

    ubuntu下qxdm安装使用方法

    4. **配置 libusb 库路径**:将编译好的 `libusb-1.0.*` 文件复制到 QXDM 的安装目录下,并添加环境变量 `export LD_LIBRARY_PATH=./`。 #### 九、总结 通过以上步骤,您可以在 Ubuntu 12.04 系统下顺利安装并使用 ...

    android2.2在ubuntu下编译总结

    - 实验室网络环境的特殊性,导致直接安装双系统时无法正常访问外网,从而无法下载编译所需的各种工具。而在 VirtualBox 上安装 Ubuntu 可以直接利用 Windows XP 的网络连接,无需额外配置即可实现网络访问。 #### ...

    Ubuntu下pycharm无法导入类的解决方法

    这不仅会影响编码效率,还可能导致项目无法正常运行。本文将详细介绍如何解决Ubuntu环境下PyCharm无法识别并导入特定类或模块的问题。 #### 错误现象描述 当用户尝试在PyCharm中导入如Flask等第三方库中的类时,...

    Ubuntu安装Oracle所需包

    在Ubuntu系统上安装Oracle数据库可能涉及一系列步骤,包括配置环境、安装依赖包和解决可能出现的问题。以下是关于这个过程的一些详细知识点: 1. **环境准备**: 在开始安装Oracle之前,确保你的Ubuntu系统是最新...

    荣品king 4418/6818 三星6818开发板 ubuntu 开发说明文档

    3. **环境配置**:设置环境变量,确保编译过程顺利进行。 4. **源码获取**:从指定路径获取荣品提供的Ubuntu源码包,通常包含在`ubuntu`目录下。 #### 四、源码解压与编译 1. **解压源码**: - 将`ubuntu_6818....

Global site tag (gtag.js) - Google Analytics