コマンドを誤って実行した後、.zshrc
何百行もの構成を含むファイルを誤って上書きしました。ただし、このイベントの前にzshが開いている端末も5つあるため、影響を受けません。しかし、私が開く新しい殻完全なzsh構成が失われ、バックアップがありません。
この5つの端末を使い続けることもできますが、何か方法があると思います。メモリからzshrcを抽出する、表面的にzshは実行中にファイルをメモリにロードし、ファイルが終了するまでそこに保存します。私はこれを試しました:
sudo dd if=/dev/mem bs=1M count=256|hexdump -C > ramfile
しかし、私が得るのは私のzshrcとは関係のないデータだけです。
どんな解決策でも大変感謝します。
答え1
ディレクトリを使用することをお勧めしますが、/proc/PID/fd/
zshは解析後にその設定を指すファイル記述子を閉じます。これは私の推測では、ファイルの元の形式が消えたということです。
ただし、zshの現在の構成をダンプして再構築するのに役立つ方法があります。私は別の質問に対する答えを考えました。
すべてのキーバインディング:
for m ($keymaps) bindkey -LM $m
すべてのZLEユーザーウィジェット
zle -lL
すべてのzスタイル:
zstyle -L
ロードされたモジュール:
zmodload -L
すべての変数:
typeset -p +H -m '*'
モジュールをロードした後は、
zsh/parameters
エイリアス、オプション、関数も含まれます。
答え2
自分に答えてください
上書きされたzshの復元中に見つけた他のいくつか:
zshrc コピーがまだ存在することを確認してください。
私の場合、これは起こりませんでしたが、偶然にどこかにバージョンがある場合.zshrc
(特に選択したコードエディタが自動的に特定の場所にファイルを保存する場合)小さいどこかに存在する可能性は依然として残っている。これを見つけるには、次のコマンドを実行します。
sudo find . -name ".zshrc"
次の特定の場所を確認してください。
- Vim / Viユーザーの場合(構成によっては-またはを含めること
/var/tmp
が~/.vim/sessions
できます~/.local/share/nvim/swap
) - Atomユーザーの場合 -
~/.atom/recovery
- Emacsユーザーの場合 - デフォルトでは
~/.zshrc~
availableというファイルがあります。 - 平均 -
/tmp
手動で追加されたパスを復元する
このスクリプトは、次に追加されたすべてのディレクトリを印刷します$PATH
。
import subprocess
paths = subprocess.check_output("echo $PATH", shell=True, text=True)
list = paths.split(":")
for item in list:
print("export PATH=" + item + ":$PATH")
一部のパラメータを復元
set
すべてのパラメータを一覧表示し、必要なパラメータを渡すために使用されますgrep
。例:デフォルトエディタ(EDITOR
)とポケットベル(PAGER
)
答え3
私は同じ問題に直面しました。幸いなことに、 ~/.zshrc.backup ファイルには、私の .zshrc ファイルの以前の内容が含まれています。復元する内容をコピーしました。以前に実行していた.zshrcのタブを閉じていない場合は、~/.zshrc.backupを確認することをお勧めします。 (アップルシステム)
答え4
私も同じ問題があり、ファイルの正確な文字列を覚えていました。コンテンツを見つけて復元するには、次の方法を使用します。
grep -i -a -B100 -A100 'text in the deleted file' /dev/sda1