Maybe tmux or screen could be of use.


On Sun, Jan 5, 2014 at 8:50 PM, Mike Miller <mbmiller+l at gmail.com> wrote:

> On Sun, 5 Jan 2014, Erik Anderson wrote:
>
>  I'm curious to hear about *why* you are separating your HISTFILEs,
>> though. My guess is that you have a set of different ssh session "types",
>> and you want to be able to isolate history entries for each function. Is
>> that correct?
>>
>
>
> I'll have maybe 10 connections open to the server at once and each of them
> will be for my work on some project.  So every connection is of its own
> type -- there is no sort of classification scheme, if that's what you were
> asking.
>
> Every time the command prompt returns, it writes the previous command to
> the HISTFILE:
>
> export PROMPT_COMMAND='history -a'
>
> So I have to use separate HISTFILEs or else the commands from different
> projects will be interlaced.  If I don't write every command immediately to
> a histfile, when the sessions are killed by power failure or network
> outage, I'll lose all the command histories.
>
> I have ways to work around the tty issue using history commands, copying
> files, etc.  But I can also get the tty I want, if it is unused, by
> occupying the lower /dev/pts/ numbers.
>
> This is working great for me, and I would recommend it strongly to others.
> I'm sharing the relevant lines from my .bashrc below.  It would be great if
> anyone has anything to add or to correct.  Thanks.
>
> Mike
>
>
>
> # Use multi_history?  Change to "yes" if you will often have multiple
> # interactive bash shells running simultaneously on this system.  This
> # will cause you to save multiple history files, one per shell -- see
> # HISTFILE info below.
> multi_history=yes
>
>
> ##############################################
> #
> # HISTORY settings
> #
> ##############################################
>
> # append to the history file on exit, don't overwrite it
> shopt -s histappend
>
>
> # If $multi_history=yes, then tty is used to create a different
> # $HISTFILE for every tty.  This will be a big advantage for people
> # who have multiple interactive bash shells running simultaneously.
> # It is not recommended for people who only run one at a time.
>
> # if requested, add the tty to the name of the history file
> if [ "$multi_history" = "yes" ]; then
>
>    export HISTFILE=~/.bash_history$(tty | sed 's|/|_|g')
>    if [ ! -s $HISTFILE ] ; then
>       if [ -s ~/.bash_history_init ] ; then
>          cp -fp ~/.bash_history_init $HISTFILE
>       else
>          echo -e "#1\ncd" >> ~/.bash_history_init
>          chmod 600 ~/.bash_history_init
>          cp -fp ~/.bash_history_init $HISTFILE
>       fi
>    fi
> fi
>
> # immediately write every new command to the history file
> export PROMPT_COMMAND='history -a'
>
> # don't put duplicate lines in the history nor lines beginning with a space
> export HISTCONTROL=ignoreboth
>
> # For setting history length see HISTSIZE and HISTFILESIZE in bash(1)
> # Save 10,000 lines of history but 100,000 lines in the history file:
> export HISTSIZE=10000
> export HISTFILESIZE=100000
>
> # commands to ignore and not add to history (recommendation: do not
> # add "cd" to this list because doing so makes it hard to track the
> # default directory where commands were executed)
> HISTIGNORE='ls:laf:jobs:bg:fg'
>
> # set time format for history file display
> # in saved file, it uses seconds since 1/1/1970, but those can be converted
> # for viewing using this command (where 1234567890 is the date in seconds):
> # date +"%F %T" -d @1234567890
> export HISTTIMEFORMAT="%F %T%t"
>
>
>
> ##############################################
> #
> # Prompt settings
> #
> ##############################################
>
> # somone wrote, "color prompt is turned off by default to not distract
> # the user: the focus in a terminal window should be on the output of
> # commands, not on the prompt"
> # Mike Miller disagrees -- when looking at the scrollback in the
> # command window, the focus often is on the prompt because the prompt
> # shows where the commands are.
> force_color_prompt=yes
>
> if [ -n "$force_color_prompt" ]; then
>    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
>       # We have color support; assume it's compliant with Ecma-48
>       # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
>       # a case would tend to support setf rather than setaf.)
>       color_prompt=yes
>    else
>       color_prompt=no
>    fi
> fi
>
> if [ "$color_prompt" = yes ]; then
>    if [ "$multi_history" = "yes" ]; then
>       # add tty info to prompt for multi_history
>       PS1="\[\e]0;\u@\h : $(tty) : \w\a\]\n\[\e[32m\]\u@\h\[\e[34m\]:\[\e[36m\]$(tty)
> \[\e[33m\]\w\[\e[0m\]\n\$ "
>    else
>       PS1='\[\e]0;\u@\h: \w\a\]\n\[\e[32m\]\u@\h
> \[\e[33m\]\w\[\e[0m\]\n\$ '
>    fi
> else
>    if [ "$multi_history" = "yes" ]; then
>       # add tty info to prompt for multi_history
>       PS1='\n\u@\h $(tty) \w\n\$ '
>    else
>       PS1='\n\u@\h \w\n\$ '
>    fi
> fi
> unset color_prompt force_color_prompt
>
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20140105/67d3b95c/attachment-0001.html>