Sto lavorando a un progetto client che è ospitato su Digital Ocean su un server Ubuntu, ci sto lavorando con alcuni altri sviluppatori e sono una specie di nuovo e ho creato un sacco di comandi ed è davvero disordinato. Come posso rimuovere la cronologia dei comandi fino a un certo punto?
Ad esempio, vorrei rimuovere tutti i comandi che ho digitato oggi e lasciare prima tutti i comandi precedenti, è possibile?
È più facile per gli altri sviluppatori trovare i comandi precedenti senza passare in rassegna tutti i miei. È possibile cancellare bash_history fino a un certo punto, ad esempio solo la cronologia di oggi? Se sì, come?
Si prega di avvisare!
Grazie!
Risposta accettata:
Le righe nella cronologia di Bash vengono salvate come semplici righe di testo senza alcuna meta-informazione come un timestamp di chiamata. Quindi non è possibile cancellare automaticamente tutta la cronologia dei comandi in un solo giorno, perché semplicemente non puoi più dire quale comando è stato eseguito e quando.
Se vuoi semplicemente rimuovere l'intera cronologia dei comandi della tua sessione Bash corrente (ovvero tutto ciò che è ancora solo in memoria e non ancora scritto sul disco), puoi cancellare il buffer della cronologia in memoria o sostituirlo con la vecchia cronologia il contenuto del file dal disco.
-
La cancellazione del buffer della cronologia risulterà in una cronologia in memoria vuota per la sessione corrente, il che significa che non verranno visualizzati comandi se si preme ↑ , ecc. Una volta che esci dalla sessione Bash, tutti i nuovi comandi inseriti dopo la cancellazione verranno aggiunti al file della cronologia e nella sessione successiva vedrai di nuovo la cronologia completa, con solo l'intervallo tra l'inizio dell'ultima sessione e manca il comando clear.
history -c
-
La sostituzione dell'attuale buffer della cronologia in memoria con il contenuto del file della cronologia dal disco avrà lo stesso risultato finale della cancellazione del buffer della cronologia, tranne per il fatto che nella sessione corrente avrai accesso alla vecchia cronologia dei comandi anziché a un elenco vuoto.
history -r
Se questo non ti è utile perché vuoi mettere in ordine le voci di sessioni precedenti o solo di una sessione parziale, il metodo chirurgico è ciò di cui hai bisogno:
Sincronizza il tuo attuale buffer della cronologia in memoria con il file della cronologia sul disco, quindi apri quel file in un editor di testo e rimuovi manualmente tutte le voci incriminate.
Correlati:quali cartelle includere nel backup?Per aggiungere manualmente la cronologia dalla sessione corrente al file della cronologia (perché avviene automaticamente solo quando esci dalla sessione), esegui prima questo:
history -a
Successivamente, apri il file della cronologia di Bash ~/.bash_history
nel tuo editor di testo preferito (dato che sei su un server, ti suggerirei ad es. nano
) e modifica l'elenco dei comandi come preferisci. Il file elenca tutti i comandi registrati in ordine cronologico, i comandi più recenti per ultimi. Rimuovi semplicemente le righe offensive e salva il tuo lavoro.
Dopodiché, dovresti ricaricare la cronologia modificata nel buffer della cronologia in memoria utilizzando il comando seguente, per evitare che le vecchie voci dalla memoria vengano aggiunte al file della cronologia riordinato quando esci dalla sessione:
history -r