Eseguire un comando terminale senza salvarlo in .bash_history su OS X?


19

Questo sito dice che su Linux è possibile aggiungere un spacecomando prima di un terminale per tenerlo fuori .bash_history.

Questo non sembra funzionare per Mac OS X. Qualcuno sa come eseguire un singolo comando sul Terminale senza salvarlo nella cronologia?

Non voglio cancellare la storia.

inserisci qui la descrizione dell'immagine


aggiungendo un `` (spazio) prima che un comando terminale non lo manterrà fuori dalla storia
warren,

2
@warren No, lo fa. Devi solo abilitare la funzione in bash.
Goweon,

@firebat - destra: ma dal momento che è qualcosa che si deve attivare, si può o non può funzionare ovunque :)
Warren

Risposte:


24

Aggiungi la seguente riga a ~ / .bashrc

export HISTCONTROL=ignorespace

Quindi source ~/.bashrcper aggiornare le impostazioni

Questo dovrebbe abilitare quella funzione in bash. Se non funziona, potresti doverlo aggiungere a ~ / .bash_profile invece di ~ / .bashrc poiché OS X li carica in modo leggermente diverso da quello che penso Linux.


Come posso usare due opzioni con quello? Voglio usare export HISTCONTROL=erasedups,ignorespacema penso che la sintassi non funzioni ...
Cwd,

2
export HISTCONTROL=erasedups:ignorespace
Goweon,

2
Ma penso che sia in realtàexport HISTCONTROL=ignoredups:ignorespace
Goweon il

3
L'impostazione "ignoredups" ignora le righe ripetute. Digitare "ls" venti volte di seguito finisce per trovarne solo uno nella storia. Tuttavia, digitando "ls" e poi "ps" e poi di nuovo "ls", verranno memorizzati "ls" e "ps" ogni volta, a meno che non si abbia bash 3 e si imposta "cancellati". Se impostato, nessun duplicato viene inserito nella cronologia bash. - cyberciti.biz/faq/bash-for-loop-array
cwd

1
Questo non funziona per me. Ho provato entrambi export HISTCONTROL=erasedups:ignorespace ed export HISTCONTROL=ignoredups:ignorespacee perfino export HISTCONTROL=ignoredups:ignoreboth. Ma quello che ottengo è una singola voce per ogni sessione piuttosto che tra le sessioni: ad esempio, se un comando è già presente .bash_historyall'inizio di una sessione ed è nuovamente digitato, verrà aggiunto alla cronologia (anche se solo una volta per quella sessione) . Come posso assicurarmi che un comando che è già in `.bash_history all'avvio di Terminal non venga aggiunto se inserito di nuovo?
orome,

1

Se non sei preoccupato di mantenere attiva la sessione, questo potrebbe funzionare:

kill -9 $$

Ucciderà la sessione corrente invece di disconnettersi, il che [teoricamente] significa che la tua cronologia non verrà salvata.

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.