Make ~/.bash_history a symlink to /boot/config/ssh/.bash_history


Recommended Posts

The bash command history will be lost after a reboot. Instead I like to see a symlink to the usb flash drive to have a persistent history.

 

Workaround in my Go-File until this is not realized:

# -------------------------------------------------
# Persistent bash history
# -------------------------------------------------
if [[ ! -L ~/.bash_history ]]; then
  rm ~/.bash_history
  ln -s /boot/config/ssh/.bash_history ~/.bash_history
fi

 

  • Like 2
  • Thanks 1
Link to comment
43 minutes ago, SimonF said:

Or use a path to a cache only share if they have a cache drive?

Not possible and not worth it.

(there isn't a dir present on a pool which is used by Unraid, not everyone has a pool, not everyone is using a pool as cache, not all use the name "cache", a pool is not usable all the time, ....)

 

Again, we are talking about 0 to 500 (?) writes per year. Most users never use the terminal at all. I don't really understand why this is even worth a discussion.

Link to comment
17 minutes ago, mgutt said:

I don't really understand why this is even worth a discussion.

Flash is vulnarable and UNRAID is picky about it. I had the bad experience of a killed usb flash, I have no intention to redo the procedure.

So, USB-2 speed, no writes unless really necessary (and a history is the least important thing to risk my precious flash drive)

 

Free UNRAID from beeing Flash-Bound(and really BOUND!), and we can talk about it.

 

Link to comment
  • 1 year later...
On 8/6/2022 at 12:12 AM, MAM59 said:

although working, I think it is a bad idea.

 

Using a path to the flash ends up into continous writes to the flash drive setting it to a higher risk of failure.

 

Use a path to the cache drive or something instead.

 

I realize this is an old thread and everyone may already be aware, but this is incorrect.   It would not be continuous writes to the flash drive.  Bash history is stored in memory until you logout/exit the shell...at that point it is written to disk.    So it's a single write per shell session.

Link to comment

Hurray thread necromancy!

 

For what it's worth, I'm 100% with @mgutt on this one. I'm really not sure why USB was even brought up; I can think of very little that would write less.

If you really wanted you could write it to RAM and copy it to flash once an hour or something, but still miniscule. 

 

For what it's worth: +1, I like the idea. Probably wouldn't use it too much myself, but seems like a nice little QoL add.

Link to comment

The idea is what brought me here, I hate losing command history after reboots....very, very irritating    I haven't had a chance to reboot to validate, but I'm very excited about it...it's the little things in life 🙂

 

fwiw: You don't need to do anything special to write it to ram, history is already stored in memory.  It does not write to disk until you logout of the session.   This can be validated by looking at your .bash_history  file it will have the time/date of when you last logged out of a session.   You can also vi the file and you'll not see any of the commands from your current session.

Link to comment
  • 5 months later...
On 10/3/2023 at 7:27 AM, broncosaddict said:

Bash history is stored in memory until you logout/exit the shell...

Is there a way to write history immediately instead of waiting until logout/exit?? I often have multiple SSH sessions open simultaneously and don't really exit/logout on each (remote client restarts or something), but want all their history.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.