bash – history Funktionalität „Leerzeichen“
Heute bin ich über eine kleine bash Funktionalität gestolpert. Normalerweise werden alle eingegebenen Befehle auf der Bash Shell in der Historie gespeichert und können ja über den „history“ Befehl oder über Angabe der „Zeilennummer“ mit einem Ausrufezeichen wiederholt werden.
Beispiel
$ history 826 [2018-02-08 19:25:05] date 827 [2018-02-08 19:25:22] history 828 [2018-02-08 19:37:18] top $ !826 date Do 8. Feb 19:44:22 CET 2018
Wenn nun aber vor dem eigentlich Befehl ein Leerzeichen mit auf er bash eingegeben wird taucht der Befehl NICHT in der history auf. Der Befehl ist auch nicht über die „Pfeil hoch“ Tasten verfügbar.
$ cal $ history 826 [2018-02-08 19:25:05] date 827 [2018-02-08 19:25:22] history 828 [2018-02-08 19:37:18] top 829 [2018-02-08 19:44:22] date 830 [2018-02-08 19:50:23] history
Man beachte bei der Eingaben von „cal“ den Minimal größeren Abstand.
Dies kann sehr hilfreich sein wenn man aus irgendwelchen Gründen ein PW in der Kommandozeile eingeben möchte ohne das dieses in der Historie landet.
Ich habe versucht das selbe mit einer csh zu reproduzieren. Hat nicht funktioniert.
3 Comments
Hab das eben mit Bash ausprobiert:
500 history
501 date
502 history
Das liegt an der Einstellung deiner .bashrc
Dort gibt es dan Parameter HISTCONTROL
Sinnvolle Einstellung:
HISTCONTROL=ignoreboth:erasedups
# don’t put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
# konsekutive gleiche Befehle
# und solche, denen man ein Leerzeichen voranstellt2 werden nicht gespeichert
#(ignoreboth), ebenso nicht-konsekutive, jedoch gleiche Befehle (erasedups).
By the way – damit zeigt hist an wann ein Befehl ausgeführt wurde:
HISTTIMEFORMAT=’%F %T ‚
@CKL, vielen Dank für die Info