bashコマンドを使用せずに〜/ .bashrcを復元する
パスを追加したときにタイプミスがあったと思います。パス~/.bashrc
をソースした後は、bashコマンドを使用できなくなりました。
今、私は通常の状態に戻したいのです~/.bashrc
が、私が見つけた議論のほとんど(たとえば、間違って編集された.bashrcを修正する方法?)は、bashコマンドを使用する必要があります。cp
clam@cuerei:~# cp /etc/skel/.bashrc ~
cp: /home/cltam/script/lib/libc.so.6: version `GLIBC_2.17' not found (required by cp)
~/.bashrc
bashコマンドを使用せずに復元する方法を教えてください。
ありがとうございました。
回答
cp
これはbashコマンドではなく、外部プログラムです。これが失敗する理由です。実際のbashコマンドは、ライブラリやパスの変更による影響を受けません。したがって、逆のことが必要です。つまり、bashコマンドのみを使用します。
次を使用して、ファイルの内容を完全に削除できます。
true > ~/.bashrc
または、他のコンテンツで上書きします。
echo "" > ~/.bashrc
または、ライブシェル内の不適切な変更を一時的に元に戻すこともできます。
unset LD_LIBRARY_PATH LD_PRELOAD LD_AUDIT
export PATH=/bin:/usr/bin
cp /etc/skel/.bashrc ~
または、組み込みのシェルだけを使用して、ファイルの内容を1行ずつコピーすることもできます。
while IFS="" read -r line; do
echo "$line";
done < /etc/skel/.bashrc > ~/.bashrc
現在、システムにログインしていますか?その場合は、別のシェルに切り替えて、ファイルを編集できます
> chsh
> vi ~/.bashrc
動的にリンクされたプログラムに使用されるライブラリパスを壊しました。これらには、プログラムの実行に必要なすべてのコードが含まれているわけではありませんが、起動時に共有ライブラリから一部をロードします。
一部のプログラムは、この問題を回避するためにコンパイルされます(たとえば、rootとして実行されているプログラムや、ブートプロセスの非常に早い段階で必要なプログラムの場合)。彼らは伝統的に配置されている/sbin
と/usr/sbin
。正確に何があるかは、インストールされているものによって異なります。
私のMacでは、利用可能なエディターがないように見えますが、システムにはある可能性があります。
@Peter Cordesの提案に従って、編集を元に戻すには、LD_LIBRARY_PATHを設定解除します。
どうもありがとうございました!