sudo !!
to rerun last command as sudo.
history
can be paired with !5
to run the fifth command listed in history.
I believe it’s the fifth oldest - I think !-5
will get you the fifth impost recent, but I was shown that and haven’t put it into practice.
The most common usecase I do is something like history | grep docker
to find docker commands I’ve ran, then use !
followed by the number associated with the command I want to run in history.
@papertowels@lemmy.one I’ve been working in the bash shell since 1993 and did not know sudo !!
was a thing. Good lord, I no longer have to press up, press crtl-left a bunch of times, then type sudo enter space anymore. And I can give it an easy-to-remember alias like ‘resu’ or ‘redo’! Ahahaha, this changes everything! Thank you!!
cd
then ls
then cd
then ls
maybe I’ll throw a ls -a
I really like that cd
command. :P
Hm I wonder, is it really a command? I thought it is just a function of the shell to change the working directory.
tldr
because I am too impatient to read through man pages or google the exact syntax for what I want to do.
There are exactly three kinds of manpages:
- Way too detailed
- Not nearly detailed enough
- There is no manpage
I will take 1 any day over 2 or 3. Sometimes I even need 1, so I’m grateful for them.
But holy goddamn is it awful when I just want to use a command for aguably its most common use case and the flag or option for that is lost in a crowd of 30 other switches or buried under some modal subcommand. grep
helps if you already know the switch, which isn’t always.
You could argue commands like this don’t have “arguably most common usecases”, so manpages should be completely neutral on singling out examples. But I think the existence of tl;dr is the counterargument.
Tangent complaint: I thought the Unix philosophy was “do one thing, and do it well”? Why then do so many of these shell commands have a billion options? Mostly /s but sometimes it’s flustering.
I went a little overboard and wrote a one-liner to accurately answer this question
history|cut -d " " -f 5|sort|uniq -c|sort -nr|head -5
Note: history
displays like this for me
20622 2023-02-18 16:41:23 ls
I don’t know if that’s because I set HISTTIMEFORMAT='%F %T '
in .bashrc, or if it’s like that for everyone.
If it’s different for you change -f 5
to target the command. Use -f 5-7
to include flags and arguments.
My top 5 (since last install)
2002 ls
1296 cd
455 hx
427 g
316 find
g
is an alias for gitui. When I include flags and arguments most of the top commands are aliases, often shortcuts to a project directory.
Not to ramble, but after doing this I figured I should alias the longest, most-used commands (even aliasing ls
to l
could have saved 2002 keystrokes :P) So I wrote another one-liner to check for available single characters to alias with:
for c in a b c d e f g h i j k l m n o p q r s t u v w x y z; do [[ ! $(command -v $c) ]] && echo $c; done
In .bash_aliases I’ve added alias b='hx ${HOME}/.bash_aliases'
to quickly edit aliases and alias r='source ${HOME}/.bashrc'
to reload them.
Yup! Migrated from VSCodium; wanted to learn a modal editor but didn’t have the time or confidence to configure vim or neovim. It’s been my go-to editor for 2+ years now.
I’ve been using vi (just the basics) for ~4 years, I don’t think I could be arsed to pick up the keybindings the other way around lol. I’ve heard very good things about Helix, of course