.bashrc sovrascritto ma ancora di provenienza: come può essere recuperato?


19

Di solito quando trovo un comando che voglio alias, lo faccio eco al mio .bashrc in questo modo:

[up button pressed to last command, then line edited so that it reads]
$echo "command-i-just-did" >> ~/.bashrc

Potrebbe esserci un modo migliore per farlo. Ma comunque, proprio ora ho sovrascritto l'intero file .rc usando un singolo chevron. Tuttavia, poiché il .bashrc è ancora attuale, sta ancora accettando i miei vecchi alias (per ora ovviamente). Quindi c'è un modo per recuperarlo?


6
echo "set -o noclobber" > ~/.bashrc(ricorda di aggiungere una seconda parentesi angolare)
hhaamu


1
Per il futuro: esegui il backup dei tuoi file in modo che questo non sia un problema. Potresti anche prendere in considerazione la creazione di un file separato per questi componenti aggiuntivi rapidi e l'approvvigionamento da qualche parte come in .bashrc. Fornisce una rete di sicurezza di base e puoi accenderla e spegnerla facilmente se necessario.
Joe,

2
È possibile salvare le impostazioni correnti, ma se in essa .bashrcfosse presente una logica che dipendesse da variabili locali come host, utente, ecc., È probabilmente irrecuperabile. La vera risposta è ripristinare dal backup più recente. Hai un backup recente giusto?
jw013,

Risposte:


22
  • alias senza parametro restituisce le definizioni degli alias attualmente definiti.
  • declare -f genera le definizioni delle funzioni attualmente definite.
  • export -p genera le definizioni delle variabili attualmente definite.

Tutti quei comandi definiscono le definizioni di uscita pronte per essere riutilizzate, puoi reindirizzare le loro uscite direttamente a una nuova ~/.bashrc.

Tutti gli elenchi conterranno molti elementi definiti altrove, ad esempio /etc/profilee /etc/bash_completion. Quindi dovrai ripulire manualmente l'elenco.


3
Vorrei anche suggerire di iniziare dall'impostazione predefinita .bashrcper il tuo sistema. In Debian è disponibile /etc/skeloppure puoi creare un nuovo utente, se puoi, per ottenere un nuovo marchio .bashrc.
enzotib,

1
sete declare(senza argomenti) visualizzare tutto questo in una volta.
rozcietrzewiacz,

@enzotib, ottima idea. mi chiedevo dove risiedesse il .bashrc predefinito ...
ixtmixilix

1

typeset -f > .bashrc dovresti farlo, a condizione che tutto ciò che avevi fossero alias.


Il functionscomando non esiste per me 4.2.10(2)-release. Probabilmente intendi declare -f.
Chris Down,

In realtà, intendevo "comporre -f"
Paul Tomblin il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.