[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A snapshot
From: |
Tim Visher |
Subject: |
Re: A snapshot |
Date: |
Wed, 3 Jun 2020 11:14:33 -0400 |
On Wed, Jun 3, 2020 at 7:47 AM <norm@dad.org> wrote:
> Greg Wooledge <wooledg@eeg.ccf.org> writes:
> >On Sat, May 16, 2020 at 09:10:07AM -0700, norm@dad.org wrote:
> >> I would like to create a file -- call it "snapshot" -- that will record
> things
> >> like the current command history and the value of all shell and env
> variables.
> >> And, then, at a later time, possibly from a different terminal and
> invocation
> >> of bash, access the file, so that to the extent practicable, it will be
> as
> >> though I continued the bash session at the time of snapshot's creation.
> >
> >Well... there are several things you'll need to save in a machine-readable
> >format. The challenge is thinking of everything.
> >
> >The 'declare -p' command gets you machine-readable copies of all shell
> >and environment variables, but not functions. The 'declare' commands
> >gets you variables and functions, but is missing the distinction between
> >shell and environment variables. I'd probably go with 'declare -p' for
> >the variables, and then pick up the functions separately.
> >
> >So, then 'declare -pf' for functions.
> >
> >'alias' for aliases.
> >
> >'shopt -p' for shell options.
> >
> >I'll let you figure out how to get shell history. Maybe setting HISTFILE
> >to a temporary file, and keeping that separate from the other settings?
> >History is just a mess, and is not one of the things I've spent a lot of
> >time trying to wrap my head around.
> >
> >Maybe 'stty -a' to save the terminal state? But I doubt you'd want to
> >restore the terminal in a nonstandard state anyway.
> >
> >Of course, you will lose all running child processes, but I'm assuming
> >you've already come to terms with that.
>
> Thank you and Mr. Maroloccio very much. I now have bash functions that save
> and restore snapshots. They don't save everything but they save all that I
> need.
>
> Once I read the bash man page carefully enough, saving and restoring the
> command history was trivial ("history -w" and "history -r" do it.). But I
> had
> to read the possibly relevant parts of the man page, several times before I
> found what I needed.
>
I'd be very interested to see the source of your history capture process.
I've been wanting to do this for quite a while but couldn't figure out how
to get the history commands to properly work.