web-dev-qa-db-fra.com

Comment remplacer / réparer un / bin / sh et / bin / dash

J'ai corrompu mon/bin/sh et je ne sais pas comment le remplacer. J'ai accidentellement copié dessus. Comment puis-je réparer cela?

J'utilise Ubuntu Server 11.10, pas de X.

mise à jour: J'ai essayé le correctif proposé par Eliah mais je pense que j'ai copié aussi/bin/dash!

mise à jour: SORTIE DE 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
3
Joel

Dans toutes les versions à distance récentes d'Ubuntu, /bin/sh n'est qu'un lien symbolique vers /bin/dash. Donc, assurez-vous que tout ce qui s'appelle actuellement /bin/sh est sauvegardé quelque part si c'est important, puis supprimez-le et créez un nouveau lien.

Pour supprimer ce qui est actuellement /bin/sh et restaurer /bin/sh en ce qu'il est supposé être, exécutez ces commandes:

cd /bin
Sudo rm sh
Sudo ln -s dash sh
2
Eliah Kagan

En supposant que vous ayez encore bash, utilisez bash comme sh.

Sudo ln -s bash /bin/sh

Puis réinstallez Dash

Sudo apt-get install --reinstall dash
0
geirha