发生了什么

发生了什么

我试图将 Python 版本 3 设为 Ubuntu 的默认版本,

我使用了 nano ~/.bashrc 并添加了这个答案的第一行。

在此处输入图片描述ctrl然后它就把我的终端弄乱了。现在,当我单击我的终端或尝试通过+ alt+ 访问时t,终端确实打开/运行。我只能使用我的终端与 ubuntu 对话,我该如何解决这个问题?

请指教!

请注意,终端图标存在,但单击时终端不会打开。如何让终端打开并运行?

更新:我从中删除了该行.bashrc。但是,我仍然无法打开终端。我也在我的 ubuntu 上看到了这个标志。

在此处输入图片描述

说:检查更新 ubuntu 18.04 时出现问题

答案1

sudo apt-get --reinstall install python3-minimal 

我也尝试了很多方法,但是这个简单的事情解决了我的问题。

答案2

笔记:~/.bashrc此答案涵盖了仅因更改或而导致损坏的情况~/.bash_aliases,无论是通过成功创建python不同 Python 解释器的别名,还是意外引入语法错误或其他故障命令。但这个问题与另一个最近被问到的问题,以及在此处描述的案例中进行的其他更改的信息,表明该问题很可能是由于全局 Python 解释器实际上被更改而发生的(并且在这种情况下可能确实发生了),而不是由于对 的任何更改而发生的~/.bashrc

曾经使用过一种alias基于的技术来python运行不同的 Python 解释器,特别是当系统python是 Python 2 而另一个解释器是 Python 3 时,并且没有做出其他重大改变,只需按照此答案中的步骤即可解决问题。 更改了指向/usr/bin/python的内容(无论是使用ln还是使用update-alternatives)或卸载了与 Python 相关的软件包的读者更有可能通过程序员自己对这个问题的回答

根据您的描述,我假设问题出现之前您所做的唯一修改是编辑~./bashrc如果是这种情况,那么您没有更改 Ubuntu 系统的默认 Python 版本。

相反,您编辑~/.bashrc并添加了一个别名,以便在交互式 Bash shell 中python3运行python3.7,或者尝试这样做。也许该别名在稍后的 中破坏了某些内容~/.bashrc,或者您​​在编辑时犯了一些错误~/.bashrc,而问题与该别名没有直接关系。无论哪种情况,现在只要您启动交互式 Bash shell,它几乎都会立即退出。

解决方案是备份损坏的内容~/.bashrc以供日后参考,然后复制/etc/skel/.bashrc到您的主目录,覆盖它并恢复默认行为。在您的环境中,有多种方案可以获得有效的 shell,但您不需要其中任何一种,因为您不需要 shell 来将您可以读取的文件复制到您可以写入的目录中。您可以使用图形文件浏览器执行复制。

你运行一个图形终端应用程序,通过按Ctrl+ Alt+来启动它T,因此除非你的终端自动启动到分离发生问题的 Ubuntu 系统,我假设您还可以在出现问题的系统上运行图形文件浏览器。我不确定您说的“我只能使用我的终端与 ubuntu 对话”是什么意思。起初我以为这可能是一个 WSL 系统,而终端是一个 Windows 应用程序,在这种情况下需要不同的解决方法。但如果是这样,你可能不会通过按Ctrl+ Alt+来启动它T

尽管如此,如果您无法在此系统上运行图形文件浏览器,那么仍然可以相当轻松地解决这个问题。如果是这样,那么我建议您在问题中添加有关为什么会这样的详细信息。

为了解释为什么我建议在覆盖之前备份当前存在的损坏内容.bashrc:这样您就可以准确地找出问题所在,并确保您可以恢复所做的任何其他自定义。

详细信息如下。

发生了什么

在您的问题中,您展示了一张截图Prvt_Yadav 的回答如何将 python3.7 设为默认并表示您已nano ~/.bashrc完成答案顶部所示的修改。该更改包括添加以下行:

alias python3=python3.7

这定义了一个 shell 别名。Shell 别名不会影响整个系统的行为,也不会影响您尝试运行脚本时发生的情况。它们不会影响图形程序的行为(除非它们影响 shell,shell 会影响终端,而某些终端是图形化的)。此外,您.bashrc在主目录中编辑的文件特定于您的用户帐户,因此不会影响其他用户。别名定义所做的只是使您在 shell 中运行的以 开头的命令的行为python3就像它们以 开头一样python3.7

当您运行图形终端程序时,终端会运行一个 shell。除非您已将图形终端程序配置为其他行为,否则此 shell 就是您已配置 Ubuntu 为您提供的非图形登录的 shell。除非您已更改该 shell,否则它是/bin/bash

当交互式bashshell(以及一些非交互式 bash shell)启动时,它来源一些启动文件,也就是说,它会读取这些文件并尝试运行其中的所有命令。这些文件取决于您如何运行 shell,但通常(并且,对于从桌面会话打开的图形终端运行的 shell,基本上总是如此)它们包括.bashrc您主目录中的文件。

因为.bashrc来源,而不是在单独的 shell 进程中作为脚本运行,它能够为启动它的 shell 设置环境,这是它的目的。但这也意味着在其中运行的命令(如)exit会影响该 shell。 中的错误有多种方式.bashrc会导致您的 shell 立即退出(并非所有错误都像 的存在那样明显exit)。

当您的图形终端运行的 shell 退出时,您的终端窗口/选项卡将关闭(除非您已将终端配置为其他行为)。在大多数情况下,这会导致完全退出终端应用程序。

如何修复

解决问题所需的只是恢复 的未损坏副本.bashrc。实际上,只需重命名(或删除) 就足够了~/.bashrc,但如果没有该文件,您的 shell 可能不会像您预期的那样运行。由于将未损坏的文件从 复制到您的主目录并不困难/etc/skel/.bashrc,我建议您这样做。这是在新创建用户帐户时复制到用户主目录的文件。

假设您的图形文件浏览器(通常是 Nautilus)可以工作,您可以使用它来复制文件。这不需要任何提升的权限。

  1. 在图形文件浏览器窗口中打开您的主目录。
  2. 显示隐藏文件。Ctrl+H将在基本上所有图形文件浏览器中执行此操作。(除非它们已经显示,在这种情况下Ctrl+H会重新隐藏它们。)
  3. 重命名.bashrc。我建议将名称更改为.bashrc.old
  4. 打开另一个图形文件浏览器窗口或选项卡并转到/etc/skel
  5. 从那里拖到.bashrc您的主目录。
  6. 尝试打开终端应用程序。问题应该已经解决。

然后你就可以找出问题所在了。例如,你可以使用命令diff来比较两个文件。你也可以在文本编辑器中打开重命名后的旧文件。

我假设您有一个图形文件浏览器,因为您有一个图形终端。只要您安装带有图形界面的 Ubuntu 版本,它就会有一个图形文件浏览器。在“原始”Ubuntu 系统中,它是 Nautilus,但在 Xubuntu 中它是 Thunar,在 Kubuntu 中它是 Dolpin,在 Lubuntu 中它是 PCManFM,等等。

同样,您也应该有一个图形文本编辑器。在“原始”Ubuntu 系统中,它是 Gedit,但在 Xubuntu 中它是 Mousepad,在 Kubuntu 中它是 Kate,在 Lubuntu 中它是 Leafpad,等等。您实际上可以~/.bashrc在图形文本编辑器中进行编辑,并尝试通过这种方式解决问题,而不必先从 中恢复它/etc/skel/。但我不建议这样做。相反,我建议您在继续执行任何其他操作之前重新获得使用交互式 shell 的能力。

一个警告

假设你没有遵循该答案中的任何其他说明,并且只是编辑了~/.bashrc,并且没有做任何其他修改来改变你的默认 Python 版本,为了改变命令的行为,你所做的实际上是最安全的事情之一python3

这是因为,如果操作正确,它只会影响您以交互方式运行时运行哪个解释器python3(以及何时python3从像在交互式 shell 中一样的文件运行时.bashrc,在定义别名的位置下方)。

因此,如果您决定继续更改与 Python 相关的命令的行为,我建议您对涉及运行的任何事情都要格外小心update-alternatives。基本上,您不应该update-alternatives在 Ubuntu 中使用技术来更改系统 Python 解释器。同样,您不应该手动修改中的文件来/usr/bin更改 Python 的默认版本。(有些评论者认为您已经做了这些事情,也许是因为不幸的是,人们经常这样做,导致 Ubuntu 系统崩溃。)

相关内容