現在のシェルで.bashrcを再生成する

現在のシェルで.bashrcを再生成する

だから私は愚かに誤って〜/.bashrcを破った。以前の設定で端末を開くと、現在の設定を新しい.bashrcに再エクスポートする方法はありますか? (上記のターミナルの1つでこの方法を試してみましたset > ~/.bashrcが、ある程度成功しましたが、より魔法のような方法があるかどうか疑問に思いました。)

答え1

.bashrc試すことができる1つの方法は、実行中のbashインスタンスのメモリから復元することです。 Linuxでは、PIDで指定されたプロセスのメモリダンプを取得するには実行します。これが機能できるかどうかは、bashがメモリを管理する方法によって異なります。可能であることを確認するためにソースコードを確認していません。 Debian jessie amd64 では動作しません。gcore PID

それでも問題が解決しない場合は、現在の設定を保存できますが、設定した方法で復元できないため、多くの情報が失われます。構成がシステム、端末の種類などによって異なる場合は、まだ実行中のbashインスタンスの設定のみを復元できます。

  • すべての変数を読みやすい形式で印刷します。これには、処理する必要がある多くのノイズが含まれます。環境変数(ラベル付きdeclare -xあなたの.bashrcしかし、とにかくあなたはすでにそうしています。 bashによって自動的に設定された変数を削除します(マニュアルを確認してdeclare -pbashの出力を確認してくださいbash --norc)。

    declare -p
    
  • すべての機能を印刷します。これには、完成システムで定義した機能(必要な機能. /etc/bash_completion)など、ユーザーが定義していない機能が含まれます。

    declare -f
    
  • 別名を印刷します。これらはそのまま使用できます。

    alias
    
  • シェルオプションを印刷します。 inの出力とshopt比較してbash --norc変更された内容を確認してください。

    shopt
    
  • 完成設定を印刷します(状況に合った完成システムを使用している場合)。これらのほとんどは完成システムからのものかもしれません。すでに調整したアイテムを見つけるのは少し難しいかもしれません。

    complete
    
  • .bashrc。代わりに存在する場合は、デフォルトのバインディングが含まれます.inputrc

    bind -p
    

これからすべてのファイルをバックアップし、構成ファイルをバージョン管理に入れます。

答え2

.bashrcからデフォルト値を取得できます/etc/skel/.bashrc
プロセスによって開かれたファイルを回復する方法もありますが、bashプロセスによって永久に開かないため、そうでは/proc/PID/fd/<files>ありません。.bashrc

関連情報