GNU/Linux >> Linux Esercitazione >  >> Linux

Rigenerare .bashrc dalla shell corrente?

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 di declare -p in bash --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 in bash --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?
Linux
  1. Lo scopo di .bashrc e come funziona?

  2. Funzioni nelle variabili Shell?

  3. Completamento automatico di Bash con Xubuntu e Xrdp da Windows?

  4. Procedura:cronologia Bash/shell illimitata?

  5. Bash non legge .bashrc a meno che non venga avviato manualmente

.bashrc vs .bash_profile

Script bash:utilizzo del comando script da uno script bash per la registrazione di una sessione

Apri Vim dall'interno di uno script di shell Bash

a partire da apachectl bash

Directory corrente dello script Shell?

Esegui uno script di shell nel nuovo terminale dal terminale corrente