GNU/Linux >> Linux の 問題 >  >> Linux

現在のシェルから.bashrcを再生成しますか?

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

承認された回答:

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

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

  • 読み戻すことができる形式ですべての変数を印刷します。これには、整理しなければならない多くのノイズが含まれます。環境変数(declare -xでマークされています ).bashrcで定義しないでください とにかくそうしているかもしれません。 bashが自動的に設定する変数を削除します(マニュアルを確認し、declare -pの出力を確認してください。 bash --norcで 。

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

    declare -f
    
  • エイリアスを出力します。これらはおそらくそのまま使用できます。

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

    shopt
    
  • 完了設定を印刷します(状況依存の完了システムを使用している場合)。これらのほとんどは、おそらく完了システムから来ています。調整したものを見つけるのは少し難しいかもしれません。

    complete
    
  • .bashrcでキーバインディングを定義している場合は、キーバインディングを印刷します .inputrcではなく 。これにはデフォルトのバインディングが含まれます。

    bind -p
    

今後は、すべてのファイルをバックアップし、構成ファイルをバージョン管理下に置きます。

関連:Linux – EPELリポジトリのメタデータをプルできませんか?
Linux
  1. Bashシェルのカスタマイズ

  2. Bashrcが現在のシェルがインタラクティブであるかどうかをチェックするのはなぜですか?

  3. シェル変数の関数?

  1. Unix シェルのヒント:ログイン シェルを Bash からその他に変更する

  2. Linux シェルから、現在とは異なる作業ディレクトリでプログラムを実行するにはどうすればよいですか?

  3. シェルスクリプトの現在のディレクトリ?

  1. .bashrcの目的とそれはどのように機能しますか?

  2. 現在のターミナルから新しいターミナルでシェルスクリプトを実行する

  3. 方法:無制限の Bash/シェル履歴?