ubuntu忽然不能登录,输入密码正确一直返回登录界面
问题描述
由于配置eclipse命令启动,我修改了 /etc/environment 文件的内容,用命令 shutdown -r -now 重启后,输入密码正确一直返回登录界面。
查了下网上资料:系统启动先调用profile中的环境,后调用environment中的环境;在profile中设了和environment同名的环境时,profile要继承environment环境,不然会引起environment中相关的环境失效,并且profile中的环境变量是有顺序的,顺序反了也会出问题。
也就是我修改的/etc/environment一定出了问题。
在VM下,怎么修改回来?网上找了半天,没遇到具体的方法,花费了番功夫,终于尝试解决了这个问题。
解决方案步骤
1、Ctrl + Alt + F1 进入命令行tty1
2、使用用户名(我的是lsk)密码登录
3、使用完整的vi路径命令: /usr/bin/vi /etc/environment 进行 vi命令行模式 (command mode/一般模式)
4、输入 i 进入文本输入模式 (input mode/编辑模式)
5、干掉自己配置的语句
6、按 Esc 键 回到 命令行模式
7、输入 : 进入末行模式 (last line mode/指令列命令模式)
8、输入w ! /usr/bin/sudo tee %完成修改 (注意是:w空格!空格/usr/bin/sudo空格tee空格% ,因为 /etc/environment 是readonly,所以需要使用这个命令)
9、输入 :q!退出vi,再输入exit退出,按ctrl + alt + F7 重新进入桌面
注:在tty1下,使用cd命令是可以的,其他的类似ls/sudo/vi都要全路径才行
附加:vi的三种模式
命令行模式 (command mode/一般模式)
任何时候,不管用户处于何种模式,只要按一下“ESC”键,即可使Vi进入命令行模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。
在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
文本输入模式 (input mode/编辑模式)
在命令模式下输入插入命令i(insert)、附加命令a
(append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按"ESC"键即可。
末行模式 (last line mode/指令列命令模式)
末行模式也称ex转义模式。
Vi和Ex编辑器的功能是相同的,二者主要区别是用户界面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以按回车键结束的正文行。Vi有一个专门的“转义”命令,可访问很多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。
作者:Eric Li
出处:http://www.cnblogs.com/ericli-ericli/
除转载文章外,随笔版权归作者和博客园所有,欢迎转载,转载请标明出处。
如果您觉得本篇博文对您有所收获,觉得作者还算用心,请点击右下角的 [推荐],谢谢!