誤って/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システム自体が使用するデフォルトのシェルは/bin/dash

だから実行してみてください。完成などのインタラクティブな使用機能はありませんが、基本的なシェル機能に関する限り、完全なシェルです。

/bin/sh欠落しているコンテンツについてコメントしました。これへのシンボリックリンクは次のとおりです/bin/dash
リンクまたはdashバイナリがありません。

しかし、私はUbuntuがそれなしで多くのことをすることができるとは思わず、dashまだ実行しているようです。だから我々は/bin/dash希望があることを望むことができます。
システムはusingとして実行されていますが、dashusingとして指定されており、sh今は欠落しているスクリプトがある可能性があります。

/bin/sh以下が指すシンボリックリンクを再作成できます/bin/dash

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

システム自体では必要ありませんbash。 Ubuntuシステムのすべてのスクリプトはdash

デフォルトでは、対話型端末のみがbashを実行し、カスタムスクリプトがlineで始まる場合は必須です#!/bin/bash

試してみる他のシェル:

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

答え3

bashがあることを確認してください/usr/bin/

もしそうなら、私のディストリビューションと同じなら、への/binリンクがありますので、MVがクラッシュして次から入手できることを願っています/usr/bin//bin/bash/usr/bin/

関連情報