如何替换/修复混乱的 /bin/sh 和 /bin/dash

如何替换/修复混乱的 /bin/sh 和 /bin/dash

我的 /bin/sh 损坏了,不知道如何替换它。我不小心复制了它。我该如何修复它?

我正在运行 Ubuntu Server 11.10,没有 X。

更新:我已尝试 Eliah 提供的修复方法,但我认为我也复制了 /bin/dash!

更新:输出cd /bin; file sh dash bash; md5sum sh dash bash

sh:   symbolic link to `dash'
dash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x5d23ca7cbab4993f295d1089b4860eb32d406fab, stripped
bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xf199a4a89ac968c2e0e99f2410600b9d7e995187, stripped
c229085928dc19e8d9bd29fe88268504  sh
c229085928dc19e8d9bd29fe88268504  dash
089ed56cd74e63f461bef0fdfc2d159a  bash

答案1

在所有较新的 Ubuntu 版本中,/bin/sh只是 的一个符号链接/bin/dash。因此,如果当前调用的内容很重要,请确保已将其/bin/sh备份到某处,然后将其删除并创建新链接。

要删除当前内容/bin/sh并恢复/bin/sh到原有状态,请运行以下命令:

cd /bin
sudo rm sh
sudo ln -s dash sh

答案2

假设您仍然有 bash,请将 bash 用作 sh。

sudo ln -s bash /bin/sh

然后重新安装 dash

sudo apt-get install --reinstall dash

相关内容