Führen Sie den Befehl in Bash aus, ohne den Verlauf zu speichern

Antworten:

54

Fügen Sie vor dem Befehl ein Leerzeichen ein. Befehle, die mit einem Leerzeichen beginnen, werden nicht in den Verlauf aufgenommen:

root@ubuntu-1010-server-01:~# echo foo
foo
root@ubuntu-1010-server-01:~# history 
    1  echo foo
    2  history 
root@ubuntu-1010-server-01:~#  echo bar
bar
root@ubuntu-1010-server-01:~# history 
    1  echo foo
    2  history 

Mann Bash

  HISTCONTROL
         A  colon-separated  list of values controlling how commands are
         saved on the history list.  If  the  list  of  values  includes
         ignorespace,  lines  which begin with a space character are not
         saved in the history list.  A value of ignoredups causes  lines
         matching  the  previous history entry to not be saved.  A value
         of ignoreboth is shorthand for ignorespace and  ignoredups.   A
         value  of erasedups causes all previous lines matching the cur
         rent line to be removed from the history list before that  line
         is  saved.   Any  value  not  in the above list is ignored.  If
         HISTCONTROL is unset, or does not include a  valid  value,  all
         lines  read  by the shell parser are saved on the history list,
         subject to the value of HISTIGNORE.  The second and  subsequent
         lines  of a multi-line compound command are not tested, and are
         added to the history regardless of the value of HISTCONTROL.
ooshro
quelle
1
Besser als meine Antwort von $ HISTIGNORE gewesen wäre. +1
Matt Simmons
1
lerne jeden Tag etwas Neues.
David Rickman
1
Normalerweise setze ich dies /etc/profileals HISTCONTROL=ignorebothund exportiere die Variable HISTCONTROL.
ewwhite
Das scheint bei mir nicht zu funktionieren? Es scheint in die Geschichte zu schreiben, schließt aber nur den Raum davor ein. 486 echo test 487 history 488 echo testspace 489 history
Peter
Ignoriere diesen letzten Kommentar, es sieht so aus, als ob es in Ubuntu funktioniert, aber nicht in Debian / anderen Betriebssystemen.
Peter
3

Erwähnenswert ist auch der Trick, die aktuelle Anmeldesitzung anstelle des normalen Beendens zu beenden (wodurch keine Chance zum Speichern des Verlaufs besteht). Dies ist besonders nützlich, wenn Sie sich bei einer freigegebenen Klimaanlage anmelden, anstatt sich daran zu erinnern, ein Leerzeichen als Präfix zu verwenden. Sie können die Sitzung einfach beenden, indem Sie sie beenden. Der einfachste Weg zu töten ist, indem Sie diesen Befehl ausführen:

kill -9 0

Pid 0 bezieht sich immer auf die PID des aktuellen Prozesses, sodass Sie im Grunde ein tödliches Kill-Signal an sich selbst senden. Ich verwende dies auch oft, anstatt normal zu beenden, da ich beim normalen Beenden häufig Sitzungen unterbrochen habe, wahrscheinlich aufgrund einer falschen Konfiguration.

haridsv
quelle
1

Eine andere Lösung besteht darin, die Verlaufsdatei auf ein Verzeichnis festzulegen:

export HISTFILE=/
Perleone
quelle