Come posso eliminare i comandi salvati dal Terminale?


16

Come tutti sapete, Mac OS X memorizza tutti i comandi eseguiti dal Terminale nel Terminale stesso, tuttavia, desidero eliminare (ad esempio) gli ultimi 3 comandi dal terminale. Come posso fare questo?

Risposte:


12

Mac OS non memorizza nulla da nessuna parte.

bash, che è la shell che viene eseguita nel terminale, memorizza la cronologia dei comandi.

La cronologia dei comandi del terminale è memorizzata in un file nascosto nella directory dell'utente chiamata .bash_history

Ciò significa che il file è: /Users/{username}/.bash_history

Devi abilitare "Mostra file di sistema" per vederlo (dal menu "Visualizza" nel Finder).

Il file è solo un elenco testuale di tutto ciò che si digita nella shell. Puoi aprirlo in TextEdit o nel tuo editor preferito.


Probabilmente dovresti chiudere Terminal.appper scaricare tutte le modifiche recenti nel file prima di apportare modifiche, oppure potrebbe essere sovrascritto da una versione Terminal.appin memoria.


2
I comandi non vengono archiviati al volo ma solo quando la shell esce o quando viene richiesto di farlo (ad es. history -aO history -w). Di solito gli ultimi comandi non sono ancora nel file.
— Matteo,

Spiacenti, volevo aggiungere che probabilmente dovresti chiudere tutte le istanze di terminal.app prima di modificare questo file. Fisso.
— Nome falso

19

Non è una funzionalità Mac OS ma una funzionalità shell. Supponendo che tu stia utilizzando bash (impostazione predefinita):

  • la cronologia dei comandi è memorizzata e persistente in un file (di solito ~/.bash_history)
  • puoi elencare e modificare la cronologia con il historycomando

Con man bash(nella SHELL BUILTIN COMMANDSsezione) troverai la descrizione delle diverse opzioni.

Puoi:

  • elenca le voci della cronologia

    $ history
  • elimina l'intera cronologia

    $ history -c
  • cancella una data voce

    $ history -d offset

entrambe le risposte sono corrette, ho scelto la prima .. grazie fratello ..
— JAHelia,

nel fare la storia -c, dice fc: event not found: -c. Quindi ho aperto manualmente il file, cancellato il contenuto. Closed and reopened the terminale la storia non esiste ora.
— curioso

2

Per l'utente Mac Terminal

elimina la cronologia dei comandi bash con il seguente comando $ echo '' > ~/.bash_history

Per l'utente Mac zsh

elimina la cronologia dei comandi zsh con il seguente comando $ echo ''> ~/.zsh_hostory


Nota che questo eliminerà l'intera cronologia e non solo le ultime tre righe.
— John N,

0

Oltre a Modifica testo, Inoltre, se sei una vecchia scuola, usa 'vi' per modificare il file e rimuovere i comandi offensivi. Editor di riga di comando simili sono emacs (che condivide i collegamenti di modifica con OS X) o nano (che ha semplificato la navigazione e l'aiuto visivo su come salvare ed uscire dall'editor senza bisogno di un foglio di riferimento) .


1
Questo sarebbe coperto da "Puoi aprirlo in TextEdit, o nel tuo editor preferito ", che è nella risposta accettata.
— John N,

Preferiamo che le risposte siano indipendenti. In questo momento è più un commento che una risposta, puoi aggiungere almeno il nome del file da modificare?
— Nohillside
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.