On Tue, Jan 31, 2012 at 12:08 PM, Ivan Yosifov <iyosi...@gmail.com> wrote: > On Mon, 2012-01-30 at 20:16 +0200, Pierre Gaston wrote: >> On Mon, Jan 30, 2012 at 8:01 PM, Ivan Yosifov <iyosi...@gmail.com> wrote: >> > Hi everyone, >> > >> > I got an admittedly basic question but I'm really at my wits' end with >> > this. >> > >> > How do I enable infinite command history ? >> > >> > One simple suggestion I've seen online is to set HISTSIZE and >> > HISTFILESIZE to a large number. This is not what I need, I want >> > genuinely unconstrained history file growth. >> > >> > Another idea I've seen is to unset HISTSIZE and HISTFILESIZE. This >> > doesn't seem to work, the history file is being cropped to the default >> > of 500 lines. >> > >> > I'm probably missing something obvious but any help is appreciated. I'm >> > running Bash 4.1.5 (Debian Squeeze). >> >> I don't think there is a way. >> But do you plan to use bash normally? >> Setting HISTFILESIZE to 2147483647 gives you 68 years of history at >> one command per seconds >> (I hope I got my math right) >> with say 5 chars per commands it's something like 5GB of history. > > On Mon, 2012-01-30 at 20:16 +0200, Pierre Gaston wrote: > On Mon, Jan 30, 2012 at 8:01 PM, Ivan Yosifov <iyosi...@gmail.com> > wrote: >> > Hi everyone, >> > >> > I got an admittedly basic question but I'm really at my wits' end > with >> > this. >> > >> > How do I enable infinite command history ? >> > >> > One simple suggestion I've seen online is to set HISTSIZE and >> > HISTFILESIZE to a large number. This is not what I need, I want >> > genuinely unconstrained history file growth. >> > >> > Another idea I've seen is to unset HISTSIZE and HISTFILESIZE. This >> > doesn't seem to work, the history file is being cropped to the > default >> > of 500 lines. >> > >> > I'm probably missing something obvious but any help is appreciated. > I'm >> > running Bash 4.1.5 (Debian Squeeze). >> >> I don't think there is a way. >> But do you plan to use bash normally? >> Setting HISTFILESIZE to 2147483647 gives you 68 years of history at >> one command per seconds >> (I hope I got my math right) >> with say 5 chars per commands it's something like 5GB of history. >> > Thank you for stating it clearly. I suppose I'll either use the above > number or mess a bit with the source. > > My actual use case for this is as follows: > > Sometimes I run some useful and non-trivial command that I don't want to > bother writing down somewhere separate but I want to be able to find > later by grepping the history file. For example, more than a year ago I > used a pipeline to convert a .flac music file to .mp3. I still remember > the the name of the song involved so I could easily find the command > with grep (if the history file still had it, of course). > > On the other hand, I do a lot of work from the shell anyway. So the > history file gets flooded with trivia like make invocations, cd <some > autocompleted name that could be 200 characters long>, etc, etc. > > In the end, I had set HISTFILESIZE to some supposedly large number and a > year later I couldn't find the flac->mp3 command any more, so I wanted > the history rotation turned off entirely. I got hundreds of GB of free > hdd space so I absolutely don't care about the size of the history file. > Maybe my limit wasn't large enough (wasn't 2147483647 though was still > "big") or maybe I messed up something else and it didn't work. > > >
Consider looking at http://mywiki.wooledge.org/BashFAQ/088, and archiving old history files. A history file that large will considerably slow down bash. Also, you may want to look into HISTIGNORE and related variables, to avoid storing those trivial commands.