Letztes Jahr habe ich bereits zur Bash und der Vermeidung von bestimmten History-Einträgen geschrieben. Die dort angesprochene HISTCONTROL-Varible lässt sich allerdings auch mit anderen Werten füllen, nämlich auch mit ignoredups.
Hier geht es darum, Duplikate in der History zu verhindern. Das kann gerne mal nervig werden, wenn insbesondere ein Kommando mehrmals hintereinander ausgeführt wird. Dieses ignoredups-Flag sorgt dann einfach dafür, dass die Bash diese Mehrfachaufrufe nicht in die History aufnimmt, was das ganze viel übersichtlicher macht.
Möchte man ignorespace und ignoredups setzen, kann man dies entweder mittels export HISTCONTROL=ignorespace:ignoredups verketten oder gleich mit ignoreboth umsetzen, was (wie der Name schon sagt) beides ignoriert.
Im Ergebnis muss dann
export HISTCONTROL=ignoreboth
in die ~/.bashrc eingetragen werden und das Terminal neugestartet werden, um die neue Konfiguration auch zu laden. Im history-Kommando sollten ab dann keine neuen Duplikate mehr aufgenommen werden.
Bleibt noch abschließend zu klären, was der Unterschied zum manchmal erwähnten erasedups ist: während bei ignoredups sinnbildlich if (lastline != newline) { addToHist(newline); } ausgeführt wird, sucht und löscht erasedups alle vorhandenen Duplikate in der gesamten History. Wird eher selten empfohlen.
Weitere Infos hierzu in der man bash.