I wonder how large is your HISTFILESIZE, to get these accurate statistics?
My .bash_history weights 1.7Mo (almost 100k lines). I set a very high HISTSIZE since I don't see any reason to lose this data.
One reason might be that bash reads this whole file into memory on interactive startup and rewrites it completely when shutting down.
I second this, I think it is good practice to rotate the history file manually when it reaches several MBs. (Using zsh, the main symptoms of a large history file is sluggishness when using ^R and a lag of a few tenths of a second when closing a terminal.)
For now I don't feel any annoyance, the shell startup is instantaneous and it closes instantaneously as well. If I'm starting to feel a slow down I might rotate the log, but I guess that's not happening soon.
wow...that's quite some statistical data you gathered!
I tried this myself using this command:
cat ~/.bash_history | cut -f1 -d' ' | sort | uniq -c | sort -n -r
turns out my .bash_history is clipped at it's default size-limit (500 lines). So I'll change that to gather more data for next year. My results started with:
147 clang++
77 ls
54 cd
15 gs
14 rake
13 vim
...where gs is short for "git status" ...and thanks for the hint about the substitution! I updated it on my page.
"ls", "cd", and "git" are far more used than any other commands : 14808, 13256 and 10078 times respectively, against 3919 times for "ssh" which is just behind.
I obtained these data from my .bash_history. Here are the place of the commands that are listed in the article :
(1) About the following line I have two remarks. First, using the "-vn" of ffmpeg would accelerate the conversion by making ffmpeg ignore the video entirely. Second, substituting with '/' in the Bash expansion is not the right way to do that. "${i/.mp4}" would be "$i" without the first occurence of ".mp4". It is '%' that you want to use here.