Re: How to enable infinite command history

2012-01-31 Thread Ivan Yosifov
On Mon, 2012-01-30 at 20:16 +0200, Pierre Gaston wrote:
> On Mon, Jan 30, 2012 at 8:01 PM, Ivan Yosifov  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 
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 , 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. 





Re: How to enable infinite command history

2012-01-31 Thread DJ Mills
On Tue, Jan 31, 2012 at 12:08 PM, Ivan Yosifov  wrote:
> On Mon, 2012-01-30 at 20:16 +0200, Pierre Gaston wrote:
>> On Mon, Jan 30, 2012 at 8:01 PM, Ivan Yosifov  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 
> 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  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.



Re: How to enable infinite command history

2012-01-31 Thread Dennis Williamson
On Jan 31, 2012 11:08 AM, "Ivan Yosifov"  wrote:
>
> On Mon, 2012-01-30 at 20:16 +0200, Pierre Gaston wrote:
> > On Mon, Jan 30, 2012 at 8:01 PM, Ivan Yosifov 
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 
> 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  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.
>
>
>

I have the same use case. Try one of my logging functions at
http://stackoverflow.com/945288/26428 By setting it up to use a separate
logging file, you can accumulate as much history as you like. It also saves
the current directory and other information. The Bash history file will
still function normally.