Quindi ho stupidamente inavvertitamente distrutto ~/.bashrc. Se ho terminali aperti con le impostazioni che erano precedentemente presenti, c'è un modo per esportare le impostazioni correnti in un nuovo .bashrc? (Ho provato set > ~/.bashrc da uno di detti terminali con una certa misura di successo, ma chiedendosi se esiste un modo più magico.)
Risposta accettata:
Una cosa che puoi provare è recuperare il tuo .bashrc dalla memoria di un'istanza in esecuzione di bash. Su Linux, esegui gcore PID per eseguire un dump di memoria di un processo specificato dal suo PID. Se questo ha una possibilità di funzionare dipende da come bash gestisce la sua memoria; Non ho controllato il codice sorgente per vedere se è possibile. Non funziona per me su Debian jessie amd64.
Se ciò non funziona, puoi salvare le impostazioni correnti, ma non puoi ripristinare il modo in cui sono state impostate, quindi molte informazioni andranno perse. Se avevi una configurazione che dipende dalla macchina, dal tipo di terminale, ecc., recupererai solo le impostazioni per tutte le istanze di bash ancora in esecuzione.
-
Stampa tutte le variabili in una forma che può essere riletta. Ciò include un sacco di rumore che dovrai risolvere. Variabili d'ambiente (contrassegnate con
declare -x) non dovrebbe essere definito nel tuo.bashrcma potresti averlo fatto comunque. Rimuovi le variabili che bash imposta automaticamente (controlla il manuale e guarda l'output dideclare -pinbash --norc).declare -p -
Stampa tutte le funzioni. Ciò include funzioni non definite dall'utente, ad esempio funzioni definite dal sistema di completamento (per le quali si desidera
. /etc/bash_completioninvece).declare -f -
Stampa gli alias. Questi possono probabilmente essere usati così come sono.
alias -
Stampa le opzioni della shell. Confronta con l'output di
shoptinbash --norcper vedere cosa hai cambiato.shopt -
Stampa le impostazioni di completamento (se utilizzi il sistema di completamento sensibile al contesto). La maggior parte di questi provengono probabilmente dal sistema di completamento; trovare quelli che hai sintonizzato potrebbe essere un po' difficile.
complete -
Stampa le associazioni dei tasti, se hai definito le associazioni dei tasti nel tuo
.bashrcanziché in.inputrc. Ciò include le associazioni predefinite.bind -p
D'ora in poi, esegui il backup di tutti i tuoi file e metti i file di configurazione sotto il controllo della versione.
Correlati:Linux – Impossibile estrarre i metadati del repository EPEL?