Wenn ich Befehle ausführe, möchte ich manchmal einen Befehl mit den vorherigen Argumenten ausführen. Dazu können Sie diese Verknüpfung verwenden:
$ mkdir /tmp/new
$ cd !!:*
Gelegentlich breche ich anstelle von find eine einzeilige Schleife aus, wenn ich eine Reihe von Befehlen für eine Liste von Dateien ausführen muss.
for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;
Das Konfigurieren der Befehlszeilenverlaufsoptionen in meinem .bash_login (oder .bashrc) ist sehr nützlich. Im Folgenden finden Sie eine Reihe von Einstellungen, die ich auf meinem Macbook Pro verwende.
Wenn Sie Folgendes einstellen, löscht bash doppelte Befehle in Ihrem Verlauf:
export HISTCONTROL="erasedups:ignoreboth"
Ich habe auch meine Geschichtsgröße ziemlich hoch gesteckt. Warum nicht? Es scheint die heutigen Mikroprozessoren nicht zu verlangsamen.
export HISTFILESIZE=500000
export HISTSIZE=100000
Eine andere Sache, die ich tue, ist, einige Befehle aus meinem Verlauf zu ignorieren. Sie müssen sich nicht an den Befehl exit erinnern.
export HISTIGNORE="&:[ ]*:exit"
Sie möchten auf jeden Fall histappend setzen. Andernfalls überschreibt bash Ihren Verlauf beim Beenden.
shopt -s histappend
Eine andere Option, die ich benutze, ist cmdhist. Auf diese Weise können Sie mehrzeilige Befehle als einen Befehl im Verlauf speichern.
shopt -s cmdhist
Schließlich möchten Sie unter Mac OS X (wenn Sie den vi-Modus nicht verwenden) <CTRL> -S vom Scroll-Stopp zurücksetzen. Dies verhindert, dass bash es als Vorwärtssuche interpretieren kann.
stty stop ""