根据一些用户的请求,我决定将所有中间步骤和结果添加到我的初始帖子中,以便用户可以更好地引导我完成解决方案。这是在标题下添加的补充内容在问题下方。以下补充,有一个部分称为,“解决,”我添加了为解决此问题而采取的额外步骤:
问题:
今天,当我尝试继续在命令行 shell 中运行代码时,我注意到 Fedora 21 中的 shell 实际上没有识别任何命令(i686 上的内核 4.1.13-100.fc21.i686(tty2) ))。我想如果我重新启动并重新引导系统,问题应该会解决。然而,令我惊讶的是,我注意到登录后系统没有启动。我尝试在屏幕变黑时按 CTRL+ALT+F2 进行诊断,以查看它实际上在哪里停止工作。我看到的最后一行完全停止了:
等待普利茅斯启动屏幕退出
当 shell 中的诊断模式实际上不接受任何命令时,您介意让我知道如何通过以下方式解决此问题吗?
-bash: <...>: 未找到命令
我唯一能想到的是一些我不知道或弄乱我的 .bashrc 的可能的自动更新(通过使用以下命令我无法再在其中看到它:)
sudo gedit ~/.bashrc
补充:
只有在按进入诊断模式后我才能登录到我的系统Ctrl+Alt+F2
就在之后重新启动并登录主启动,在正常情况下会失败。
i686 (tty2) 上的Fedora 版本 21(二十一)内核 4.1.13-100.fc21.i686+PAEdebug
在此模式下,会出现登录提示
本地主机登录:
输入我的用户名后,它会显示:
密码:
输入我的密码后,它会显示:
上次登录: 3 月 30 日星期三 15:33:54 在 tty2 上
[bbenjamin@localhost ~]$
无论如何,这里的命令都不会被 shell 识别。错误信息通常是:
-bash: <...>: 未找到命令
其中 <...> 基本上是任何命令。我唯一一次成功地让 shell 实现大多数命令是当我运行以下代码时(如答案中所述):
PATH=/usr/bin:/usr/sbin
之后至少我可以查找并查看我的文件、文件夹和程序(因为大多数命令都已实现。)
然而,我仍然需要正常登录,以便我可以使用 Fedora 的所有图形和其他功能,这在诊断模式下是不可能的。为了实现这一点,我特别需要打开 .bashrc 文件并永久修复其问题(假设我可以以某种方式访问其原始版本。)为此,我需要运行如下命令
(sudo) gedit ~/.bashrc
但是,我收到如下错误消息:
无法初始化服务器:无法连接:连接被拒绝
(gedit:1397):Gtk-警告**:无法打开显示:
或者运行这样的命令:
~/.bash_profile
这会产生错误消息:
bash:/home/bbenjamin/.bash_profile:权限被拒绝。
现在,从答案中得知,我不应该运行后一个命令,因为它不可执行。相反,我应该以以下格式运行它:
source ~/.bashrc
之后我不知道如何继续。
但是,我也不知道为什么前一个命令(sudo) gedit ~/.bashrc
不起作用。我记得我总是根据需要对 .bashrc 文件进行一些细微的更改。这次我不知道我是如何对其进行更改的,它导致了此处解释的所有问题。所以现在,我的问题是是否有一个基于命令行的方法,我可以打开 .bashrc 并查看其中并进行所需的更改永久因此,我的系统登录会适当地引导我进入正常的图形模式,在该模式中我可以看到并使用所有 Fedora 功能。
解决
我了解到,一旦我进入诊断登录失败后立即通过命令模式Ctrl+Alt+F2
,我可以暂时修复混乱的文件.bashrc通过运行命令PATH=/usr/bin:/usr/sbin
。然后我可以看看我的内心.bahsrc通过运行命令行来创建文件cat .bashrc
。直到那时我才看到文件的内容,其中我在文件中添加了多个路径。由于我按照时间顺序将添加的文件记录在先前路径的底部,因此我知道有问题的路径是最后一个路径。现在,为了解决这个问题,我必须实际修改该文件。这是通过命令行实现的,nano .bashrc
之后出现一个新页面,在其中我有机会通过添加注释掉有问题的行#在它的前面。最后,我保存了更改并退出。我必须做的最后一步是使用新修改后的系统重新启动.bashrc通过命令行输入文件telinit 6
,之后日志记录被证明是成功的。
答案1
听起来你在你的文件中放入了一些东西~/.bashrc
,导致PATH
其设置方式不包括/usr/bin
,而这是大多数程序实际存在的地方。如果你运行这个:
PATH=/usr/bin:/usr/sbin
大多数命令应该开始工作 - 然后您可以编辑~/.bashrc
和修复PATH
在那里重置的任何内容。 (而且,实际上 - 你想设置PATH
而~/.bash_profile
不是~/.bashrc
- 参见如何正确添加路径到PATH?)
(顺便说一下,请注意,任何 Fedora 更新都不会扰乱这一点,因为更新不会更改主目录中的文件。有时,当您运行更新的软件时,该软件可能会更新其自己的配置文件,但这不适用于〜/.bashrc。)
在您的编辑中:gedit
文本编辑器仅在图形模式下工作。在文本模式下,您需要一个基于文本的编辑器。其中最简单的可能是nano
.安装它
dnf安装纳米
然后使用nano
if 代替gedit
。实际的编辑功能会略有不同,但非常简单。