我不小心破坏了 /bin/bash

我不小心破坏了 /bin/bash

我刚刚开始使用Linux。我正在使用 Ubuntu,我认为我犯了一个非常严重的错误。我制作了一个脚本,出于某种愚蠢的感觉,我决定将其移动到我的/bin文件夹中,但我不小心输入了

mv /home/kenny/script /bin/bash

现在我已经失去了我的狂欢,不知道该怎么办。每次运行 bash 时,我都会收到“符号链接太多”错误。

我可以做什么来恢复我的 /bin/bash?

答案1

你可以尝试跑步来/bin/sh代替。

之后,重新安装 bash:

sudo apt-get install --reinstall /bin/bash

这应该可以解决您的错误。

答案2

ubuntu系统本身使用的主要shell是/bin/dash.

所以尝试运行它。它没有像完成这样的交互式使用功能,但就基本 shell 功能而言,它是一个完整的 shell。

您已经评论了/bin/sh缺少的内容,这是指向 的符号链接/bin/dash
链接或dash二进制文件丢失。

但我预计 Ubuntu 没有它就做不了多少事情dash,而且它似乎仍在运行 - 所以我们可以希望希望/bin/dash是存在的。
也许系统中的某些脚本是使用 来运行的dash,但指定为使用sh,但现在缺少了。

/bin/sh您可以通过以下方式重新创建指向的符号链接/bin/dash

sudo ln -s -r /bin/dash /bin/sh

系统本身不需要bash- Ubuntu 系统中的所有脚本都应该以dash.

默认情况下,只有交互式终端运行 bash,并且当自定义脚本以 行开头时,需要使用 bash #!/bin/bash

其他可以尝试的 shell:

  • /bin/zsh
  • /bin/csh
  • /bin/tcsh
  • /bin/mksh
  • /bin/lksh

答案3

检查一下你是否有 bash /usr/bin/

如果是这样,如果它像我的发行版一样,那么/bin是一个链接到/usr/bin/;因此,希望您/bin/bash的 mv 崩溃了,并且可以从/usr/bin/

相关内容