I legitimately back up my history file. Mostly because it likes to truncate itself randomly (though this may have been fixed in zsh, or my config, because it’s been a while). Just a systemd timer that triggers a shell script to copy it by date and rotate anything older than 100 copies.
Edit: WHY DID I SAY ANYTHING? After like 3 months of no problems, my history truncated itself to 3 entries a few minutes ago. I’ve only ever seen a few days of loss before that lol.
Have you tried Atuin? It’s amazing.
I did try it for a bit. IIRC it slowed me down more than I cared for. Maybe worth trying again, though.
I’m annoyed when my thirteen bash instances don’t share history, but I’d probably be a lot more annoyed if they did.
That’s one thing I like about zsh, or my config at least, because I use i3 and therefore tend to open lots of shells. History is mostly local until I hit return twice (two empty prompts) at which point I can get history from other sessions. It’s stuck more global at that point though aside from future history.
Ooh. I like that. I’m gonna try that, thanks.
Haha, my bad!
Fortunately I have my hourly backups! 😅
I just start every command with a space, don’t see the issue.
Was working on a server where I did not want to put some dumb command into the history, so I add a space like you do. Press up. The command is there. The fucking insult I felt.
It’s disabled by default, but you can enable it in .bashrc and then delete that edit session using a spaced command.
Edit: brain fart
it also depends on the shell, in zsh it persists on local history but does not get written to history file
Can somebody please tell me what
history -c
is?history displays a list of all commands you have run on the terminal since the history list was last cleared. It is invaluable for referring back to a big complex command or set of commands you ran at some point in the past. The -c flag clears that history.
Fuck, I just cleared my history.
What does it do again?
🤣
dont you also need history -w to save it?
on ubuntu -c doesnt actually clear it unless you also use -w
Yes, my comment only applies to the shell history in memory. -c clears history immediately, but you can still reload it from disk if you haven’t overwritten that with -w. If you tend to close your terminal windows frequently and rely on the history feature between sessions, it would benefit you to learn about the intricacies of the on-disk copy of history and how its affected by writes, appends, clears, crashes, etc. I tend to leave my terminal windows open a long time and copy any complex commands out to my PKM if I need to save them for future sessions, so I generally try not to rely on .bash_history, but it has saved my bacon on more than one occasion.
It lets you clear the bash command history, either completely or selectively. Here’s the GNU docs for the history builtin: https://www.gnu.org/software/bash/manual/html_node/Bash-History-Builtins.html#index-history
(I’m not too familiar, someone else can clarify: is this available outside bash?)
What’s interesting to me is the
-a
option, which lets you “flush” the history for the current session without ending the session. I can see that being useful!
Welp, just did this to see what -c does…
Excuse me whilst I cry myself to sleep
🥺
Don’t fucking do this in zsh, it does NOT do the same thing that it does in bash.
What does it do? 😳
the same :)
Hahahaha
Can someone explain, I don’t get it.
If you clear your history, you feel like a SpongeBob popsicle for some reason? That’s what I’m reading. Gotta be it.
Clean and shiny! Brand spanking new!
Weird, I clear my history very frequently and never once felt like a SpongeBob popsicle.
Same, but I just assumed I was the weird one. Maybe we are mainstream!
Cool! Do you also have a function that wipes the history file when exiting the terminal?