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タイプのシステムには/local
ORを含む並列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.d
man ldconfig