Come posso modificare la cronologia dei terminali di Mac OS X?

11

Come posso modificare la cronologia di bash in Mac OS X? Ho inserito una password in quella finestra per errore e non voglio rimuovere la mia intera cronologia.

    
posta Karthick S 05.04.2013 - 17:07
fonte

4 risposte

12

Modificare il .bash_history è solo questione di aprire il file con un editor. Ci sono un paio di modi in cui puoi ottenere questo.

  1. Nel Terminale digita solo vi ~/.bash_history , quindi modifica il file come desideri e salva. Questa opzione potrebbe essere complicata, se non sei abituato a vi , ovviamente.
  2. Rendi il file visibile seguendo le queste istruzioni, ad esempio, aprilo come qualsiasi altro file, modificarlo e salvarlo.
  3. Nel Terminale digita solo open ~/.bash_history -a /Applications/TextEdit.app . Questo comando aprirà il file con TextEdit , puoi ovviamente scegliere qualsiasi altro editor di testo. Modifica il file e salva.

Affinché le modifiche siano visibili, basta riavviare bash.

    
risposta data 05.04.2013 - 17:35
fonte
9

Nel tipo di terminale history e annotare il numero di riga. Chiamata successiva history -d noted-line-number . Puoi controllare che la riga sia cancellata usando history di nuovo.

    
risposta data 01.11.2013 - 09:51
fonte
1
nano ~/.bash_history

quando hai finito, %codice% e torna ad accettare un tizio di risposta giusta

    
risposta data 05.10.2017 - 02:28
fonte
0

Penso che la risposta di Dmitry sia ideale se fatta prima di salvare la cronologia: per impostazione predefinita, il salvataggio si verifica all'uscita dalla shell / terminale.

Se hai già salvato la cronologia in ~ / .bash_history, allora preferisco la risposta di Thecafremo, ma ti suggerisco di aggiungere una fase di uscita da Terminal per assicurarti che nessuna delle istanze di bash sia stata caricata la storia e la risparmierà. Ciò è particolarmente difficile se si dispone di più terminali e si è abilitato qualsiasi tipo di aggiornamento della cronologia command-by-command.

Sfondo:

  • bash salva la cronologia all'interno di un'istanza della shell
  • bash può scrivere questa storia in un file, che di solito accade quando si esce dalla shell / Terminal
  • bash può leggere da un file nella cronologia, che di solito accade quando apri una shell / Terminal
  • è possibile modificare il comportamento predefinito in modo che la cronologia si propaga prima, il che può migrare il tuo BAD_TEXT al file e ad altre finestre

Indipendentemente dal metodo che usi, aggiungerei un passaggio: verifica il successo!

  1. Esci da Terminal.app
  2. Riapri Terminal.app
  3. Conferma che il testo incriminato non è nella cronologia, preferibilmente in un modo che non creerà cronologia aggiuntiva. Cioè, non grep BAD_TEXT .bash_history ! Questo nuovo comando entrerebbe nella storia. Vorrei solo aprire .bash_history nel tuo editor preferito e cercare all'interno di esso per BAD_TEXT.

Questo dovrebbe darti la tranquillità di aver eliminato BAD_TEXT a prescindere dal tipo di pazzo setup di bash che potresti incontrare.

    
risposta data 22.12.2013 - 19:49
fonte

Leggi altre domande sui tag