一、问题产生
配置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作用
Linux有PATH,在windows下配置过JDK的也肯定注意到windows也有path,这个PATH到底是做什么用的呢? 下面解释一下:
当我们在命令行(Linux下的terminal或者tty1~6,windows下的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'目录下的,所以sudo和vim的绝对路径分别是:/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,以为Linux和Windows一样,将adb的路径添加到环境变量中,于是将adb的路径也export到/etc/profile中,可杯具了,重启系统后,无限循环登录界面,经多方查找资料找到了解决办法。
办法如下:
1. 进入了登录界面后,不用输入密码,按住Ctrl+Alt+F1(听说F1~F6都行)
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下环境变量的设置 有助于学习Ubuntu的环境变量
本文详细说明了ubuntu下环境变量的设置。希望对读者有所帮助!
ubuntu环境变量设置问题,几种环境变量设置的区别
ubuntu_eclipse启动设置,jdk环境变量,其他设置
Ubuntu Linux 环境变量PATH设置.doc
在Ubuntu上修改环境变量,安装,下载
(sudo gedit /etc/profile ) 编辑文件,加入环境变量,把路径改为相应的路径,重启。
解决Ubuntu域名无法解析方法 要的抓紧下啊
linux 编程变量设置 linux环境变量设置错误后,如何恢复解决方案:在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 后回车 在Ubuntu中有如下几个文件可以设置环境变量 1、/etc/profile:...
主要介绍了ubuntu 下JDK环境变量配置方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
主要介绍了Ubuntu下android adb环境变量配置方法,本文给出了操作步骤,按步骤操作即可,需要的朋友可以参考下
本文件是经过个人参照各种资料,自己独自摸索出来的一种在ubuntu 12.04下配置JSP的开发环境。 包括Tomcat Mysql在ubuntu12.04下的安装
Ubuntu 密码错误,无效 Ubuntu默认没有开启root用户
Ubuntu 9.10 拨号错误解决方法
xshell4无法链接ubuntu12.04的解决方案
Ubuntu Server将环境变量修改为英文,防止中文乱码.docx
子进程 post-installation script 返回了错误号 1 在处理时有错误发生,debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: 资源暂时不可用等错误的解决方法
android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb 配置文件 ubuntu环境android adb ...
该文档介绍了如何解决Ubuntu系统下拖动鼠标左键无法选中的问题。
默认情况下,其他设置的一些环境变量,执行用户的 .bashrc 文件。 ~/.bashrc: 该文件包含专用于登陆用户的 bash shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该该文件被读取。 ~/.bash_logout: 当...