/bin/bash に対して、対応するファイルまたはディレクトリ接続が閉じられていません。

/bin/bash に対して、対応するファイルまたはディレクトリ接続が閉じられていません。

SSHを使用してサーバーに接続しようとしました(認証には問題ありません)。

わかります:

/bin/bash: No such file or directory
Connection to xxx closed.

以前は本当に愚かなことをしてシステムを壊すまで、すべてがうまく機能していましたが、今は接続することもできません。

私はこのサーバーにUbuntu 16.04をインストールしました。私が望むものが/usr/local/lib64にインストールされているのを見ましたが、以前のバージョン(12.04)では/usr/lib64にあったのでそうしました。

mv /usr/local/lib64 /usr/

その後は何も機能しません。できません。ls動作する唯一のコマンドはcd終了して再接続しようとすると、このエラーが発生します。今は接続できないので再インストールもできませんね。

助けてくれてありがとう。

答え1

まだUbuntu 16.04をどこにもインストールしていませんが、Linuxシステムレイアウトの現在の傾向に基づいて、ここで何が起こっているのかはかなりよく推測できます。

/binとの/usr/bin間の古い区別。つまり、使い捨てUSBフラッシュドライブもオペレーティングシステム全体をインストールするのに十分な大きさであるため、従来は外部のシングルユーザーモードツールと他のすべてのツールを区別する必要はありません。/lib/usr/lib/usr/usr

多くのソフトウェアが依然としてこの区別を信じているため(たとえば、現在のUnixまたはLinuxタイプのシステムには/localORを含む並列ORツリーがないため、完全に抜け出すことはできません)。たとえば、out to など、シンボリックリンクディレクトリにすべてをインストールして区別します。 (その逆も同様です。重要ではありません。)/share/usr/local/usr/share/usr/usr/usr/bin/bin

したがって、mvコマンドで実行する作業は「blowaway」であり、/usrおそらくシステムの統合OSインストールディレクトリへのシンボリックリンクです。これは/usr/binそのようなものを置き換えるだけでなく、効果的に行われます/bin

つまり、/usr/local/lib64/bin/bash果敢な「修正」を実行する前はなかったので、もはやa/usr/bin/bashまたはaはありません/bin/bash

解決策:ボックスを次に起動します。構造モードそして/usrツリーを以前の状態に復元します。復元方法を理解するには、既存の稼働中のUbuntu 16.04システムを参照するために必要な場合があります。

元の質問に関しては、あなたのmv命令は決して良い解決策ではありませんでした。明示的なパスなしでプログラムを/usr/local/lib64実行するには、そのプログラムをシェルに追加します。PATH変える。 Ubuntuでは編集を意味することもできます~/.bash_profile

ディレクトリについて話しているので、実行可能ファイルではなくライブラリを扱っている可能性があります。この場合、ディレクトリがグローバルライブラリキャッシュに追加されるようにlibエントリを追加する必要があります。詳細より。/etc/ld.so.conf.dman ldconfig

関連情報