this post was submitted on 18 Jan 2024
138 points (94.2% liked)

Programmer Humor

19817 readers
64 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
top 32 comments
sorted by: hot top controversial new old
[–] [email protected] 16 points 11 months ago* (last edited 11 months ago) (3 children)

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.

[–] [email protected] 7 points 11 months ago (1 children)

Have you tried Atuin? It's amazing.

[–] [email protected] 3 points 11 months ago

I did try it for a bit. IIRC it slowed me down more than I cared for. Maybe worth trying again, though.

[–] [email protected] 3 points 11 months ago (1 children)

I'm annoyed when my thirteen bash instances don't share history, but I'd probably be a lot more annoyed if they did.

[–] [email protected] 2 points 11 months ago (1 children)

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.

[–] [email protected] 1 points 11 months ago

Ooh. I like that. I'm gonna try that, thanks.

[–] [email protected] 2 points 11 months ago (1 children)
[–] [email protected] 2 points 11 months ago

Fortunately I have my hourly backups! 😅

[–] [email protected] 15 points 11 months ago (1 children)

I just start every command with a space, don't see the issue.

[–] [email protected] 13 points 11 months ago* (last edited 11 months ago) (2 children)

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.

[–] PoolloverNathan 2 points 11 months ago* (last edited 11 months ago)

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

[–] [email protected] 1 points 11 months ago

it also depends on the shell, in zsh it persists on local history but does not get written to history file

[–] zemja 12 points 11 months ago (2 children)

Can somebody please tell me what history -c is?

[–] [email protected] 9 points 11 months ago (3 children)

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.

[–] zemja 11 points 11 months ago

Fuck, I just cleared my history.

[–] [email protected] 5 points 11 months ago (1 children)
[–] [email protected] 3 points 11 months ago
[–] [email protected] 4 points 11 months ago (1 children)

dont you also need history -w to save it?

on ubuntu -c doesnt actually clear it unless you also use -w

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 6 points 11 months ago* (last edited 11 months ago)

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!

[–] [email protected] 6 points 11 months ago (1 children)

Can someone explain, I don't get it.

[–] [email protected] 5 points 11 months ago (2 children)

If you clear your history, you feel like a SpongeBob popsicle for some reason? That's what I'm reading. Gotta be it.

[–] [email protected] 1 points 11 months ago

Clean and shiny! Brand spanking new!

[–] [email protected] 1 points 11 months ago (1 children)

Weird, I clear my history very frequently and never once felt like a SpongeBob popsicle.

[–] [email protected] 2 points 11 months ago (1 children)

Same, but I just assumed I was the weird one. Maybe we are mainstream!

[–] [email protected] 1 points 11 months ago

Cool! Do you also have a function that wipes the history file when exiting the terminal?

[–] [email protected] 6 points 11 months ago (1 children)

Welp, just did this to see what -c does...

Excuse me whilst I cry myself to sleep

[–] [email protected] 0 points 11 months ago
[–] [email protected] 6 points 11 months ago (1 children)

Don't fucking do this in zsh, it does NOT do the same thing that it does in bash.

[–] [email protected] 2 points 11 months ago (1 children)
[–] [email protected] 0 points 11 months ago (1 children)
[–] [email protected] 1 points 11 months ago