2

だから私はちょうどbashrcにエコーし、そこにあるものをすべて削除しました。しかし、私のシェルは閉じられていないかリロードされていないので、bash のソースは古いものです。現在の bashrc ファイルのソースを確認する方法はありますか?

4

2 に答える 2

4

setbash コマンド(引数なしで、現在の環境変数と関数をダンプします) およびalias(同様に、エイリアスをダンプします)を使用して、現在の bash シェルの環境のかなり完全なダンプを取得できます。これらは、多くの古い .bashrc ファイルを再構築するのに役立ちます。

ただし、これらは古い .bashrc 自体を表示するのではなく、その結果を表示することに注意してください。たとえば、デフォルトのシステム PATH が/usr/bin:/bin:/usr/sbin:/sbinで、古い .bashrc が含まれている場合

PATH="$PATH:/opt/X11/bin"

これは正味の結果を表示するだけです:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

それを新しい .bashrc にコピーし、システム PATH が更新された場合 (たとえば、 を含めるため/usr/local/bin)、.bashrc は更新を消去します。

setしたがって、 andの出力aliasをそのまま新しい .bashrc として使用するべきではありません。しかし、それらを使用して、以前そこにあったものを思い出すことができます。また、定義した複雑な関数などを書き直す必要を避けるために使用することもできます。

于 2013-02-22T22:31:38.340 に答える
3

いいえ、基本的に。Bash はログイン スクリプトの内容を評価しますが、保持しません。env(コマンドを使用して) 現在の環境を調べることで、それらの一部を再構築できる場合がありますが、そのほとんどは失われています。Bash は高度なリフレクションを提供しません。

これを学習経験と考えて、バックアップを作成し、今後バージョン管理で重要な構成を維持するように動機付けてください.

于 2013-02-22T20:22:51.737 に答える