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.