Zsh

使用仍在執行的 zsh 恢復覆蓋的 .zshrc

  • May 29, 2021

在執行錯誤的命令後,我不小心覆蓋了我的.zshrc文件,其中包含數百行配置。但是,我仍然有 5 個終端在此事件之前打開了 zsh,因此它們不受影響。但是,我打開的任何新 shell 都會失去整個 zsh 配置,並且我沒有備份。

我可以簡單地繼續使用這 5 個終端,但我認為必須有某種形式的方法來從記憶體中提取 zshrc,因為表面上 zsh 在執行時將文件載入到記憶體中並將其儲存在那裡直到它被殺死。我試過這個:

sudo dd if=/dev/mem bs=1M count=256|hexdump -C > ramfile

但我得到的只是與我的 zshrc 無關的數據。

任何解決方案將不勝感激。

我會建議使用/proc/PID/fd/目錄,但 zsh 在解析後關閉指向其配置的文件描述符。據此,我最好的猜測是您的原始文件已經消失了。

但是,有一些方法可以轉儲 zsh 的目前配置,這可能會幫助您重建它。想到另一個問題的答案:

所有鍵綁定:

for m ($keymaps) bindkey -LM $m

所有 ZLE 使用者小元件

zle -lL

所有 zstyle:

zstyle -L

載入的模組:

zmodload -L

所有變數:

typeset -p +H -m '*'

載入模組後zsh/parameters,還將包括別名、選項、函式……

引用自:https://unix.stackexchange.com/questions/651839