前两天登录Ubuntu的时候发现登录界面不对劲,之前从来没有看到过。
输入密码后屏幕全紫,鼠标光标消失。过一段时间后登录界面再次出现。
经过一轮网上冲浪找资料,我意识到上次更改环境变量的时候,把以下这段也放进 /etc/profile 了。。。
source ~/.bashrc
这是用来执行环境变量的,由于开机需要进入 /etc/profile ,放进去就会递归执行这段且没有终点,详细的执行顺序可看下面的链接。
ubuntu18.04开机循环输入密码无法进入桌面_会哭的孩子有奶喝-CSDN博客_ubuntu1804输入密码进入不了桌面
网上给出的解决方法是:通过 Ctrl+Alt+F1(F1-F6均可) 进入命令行窗口,然后进入 /etc/profile 把那段删去。我实践之后给出的解决方法是:目的是正确的,但是通过命令行窗口进不去 /etc/profile 。以下是解决的过程,本人是Ubuntu菜鸟,若有说错的地方还望指正。直接看结论的可以跳到第5点。
1. 首先通过 Ctrl+Alt+F3 (其他的如F4也可以)进入命令行窗口,输入root和密码。
login:root
Password:
密码输入正确后,将会不停输出:
-bash: /usr/bin/locale-check: □ □ □ □ □ □
-bash: /usr/bin/groups: □ □ □ □ □ □
2. 见没有停下,就通过 Ctrl + c 中断
3. 输入:
/usr/bin/sudo vi /etc/profile
这里参考了:
Ubuntu由于修改etc/profile文件导致开机无法登陆问题解决办法(仅供参考)_lp542718520的专栏-CSDN博客_ubuntuprofile语法错误 无法开机
但是返回
-bash: /usr/bin/sudo: □ □ □ □ □ □
查了一下,发现是字符的问题。于是设置为英语:
3. 输入:
export LANGUAGE="zh_US:en"
参考以下链接,但是把前面的中文删去了。
Linux(ubuntu)命令行下显示方框的问题_weixin_33755847的博客-CSDN博客
4. 再输入2. 里的命令,输出的是:
-bash: /usr/bin/sudo: Argument list too long
意思是:参数列表过长。
这和下面链接中的错误方式一致(也是这里让我意识到错误所在)。
Linux:-bash: /usr/bin/lesspipe: Argument list too long的问题解决办法_windyxh的博客-CSDN博客
不同的是,我是在开机的时候碰上的,所以现在甚至不能进入 /etc/profile 。
惆怅之时,我突然想到之前装机时,通过启动盘可以找到系统的文件。所以:
5.
- 插入启动盘
- 开机,进入bios界面(我这边是反复按F12进入,不同的电脑可能不同)
- 选择启动盘的系统,按 Enter进入
- 选择第一项: "Try Ubuntu without installing"
6. 进入系统后,点击文件,找到Ubuntu系统中存放 /etc 的位置,因为路径和Ubuntu里的有些不同。我是这样找的:
7. 通过 Ctrl+Alt+t 进入终端,然后通过 cd 进入该位置,再运行 2. 的命令(sudo前面的路径可以去掉):
sudo vi ./profile
- 然后将光标移到该行,输入 dd 删去
- 输入 :wq! 退出
- 重启电脑
这样就可以成功进入Ubuntu了。
若能给到帮助,麻烦点个赞,不胜感激。