Take the 2-minute tour ×

The same command is listed in my history again and again. How can I avoid this? I know it's possible via HISTCONTROL but I haven't found the right way.

share|improve this question
I created a related question: askubuntu.com/questions/205520/…. Dups in the history is useful to see the context of a command. What you want to omit dups sometimes when you print the history. –  justingordon Oct 24 '12 at 1:34

5 Answers 5

up vote 25 down vote accepted

From the bash man page:



So put the following line in your ~/.bashrc:

export HISTCONTROL=ignoreboth:erasedups

share|improve this answer
Do you want me to add HISTCONTROL=ignoreboth in the bottom of ~/.bashrc? –  karthick87 Dec 2 '10 at 20:11
@karthick It doesn't matter where you put it, the bottom is fine though. –  Alvin Row Dec 2 '10 at 20:12
On my installation of Ubuntu 12.04 I had to make this modification in ~/.bash_login Most of the time it would work if .bashrc is modified but that's not the case all the time. –  ck- Jun 29 '12 at 11:06

Stick this in your ~/.bashrc:

export HISTCONTROL=ignoredups

You could instead use ignoreboth. This it shorthand for both ignorespaces (commands starting with spaces) and ignoredups (duplicates).

I prefer ignoredups on its own as I find the default behaviour of ignoring commands with spaces at the front quite annoying when I copy a command off a website and it doesn't get saved because I accidentally copied in a space too.... But to each their own.

share|improve this answer
Still duplicates exist..What may be the problem??imgur.com/fXeLQ.png –  karthick87 Dec 10 '10 at 18:19

Add the following to your ~/.bashrc:

export HISTCONTROL=ignoredups

To do this, you can use this command:

nano ~/.bashrc
share|improve this answer
export HISTCONTROL=erasedups
share|improve this answer

re: "How to copy all those commands from history without numbering?"

alias hist='history | sed '\''s/^[ 0-9]* //'\'''
share|improve this answer

Your Answer


