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.bashrc
ma potresti averlo fatto comunque. Rimuovi le variabili che bash imposta automaticamente (controlla il manuale e guarda l'output dideclare -p
inbash --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_completion
invece).declare -f
-
Stampa gli alias. Questi possono probabilmente essere usati così come sono.
alias
-
Stampa le opzioni della shell. Confronta con l'output di
shopt
inbash --norc
per 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
.bashrc
anziché 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?