How do you recall your most used commands?

For example, things you do often but not often enough to make a muscle memory? On Linux systems with Bash, I just use bash aliases. If I do it more than once, It gets an alias or a script; cause I won’t remember next time. Example of my current desktop aliases :


<span style="color:#323232;">alias fuck='sudo $(history -p !!)'
</span><span style="color:#323232;">alias hstat='curl -o /dev/null --silent --head --write-out '''%{http_code}n''''
</span><span style="color:#323232;">alias ls='ls -la --color=auto'
</span><span style="color:#323232;">alias pwgen='&lt; /dev/urandom tr -dc "_A-Z-a-z-0-9#+=$" | head -c${1:-15};echo;'
</span><span style="color:#323232;">alias rsync='rsync -ah --info=progress2'
</span><span style="color:#323232;">
</span>

And in my bashrc I have the following settings and functions which come in handy when heads down in the terminal:


<span style="color:#323232;"># append to the history file, don't overwrite it
</span><span style="color:#323232;">shopt -s histappend
</span><span style="color:#323232;">
</span><span style="color:#323232;"># for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
</span><span style="color:#323232;">HISTSIZE=1000
</span><span style="color:#323232;">HISTFILESIZE=2000
</span><span style="color:#323232;">HISTTIMEFORMAT="%Y-%m-%d %T "
</span><span style="color:#323232;">
</span><span style="color:#323232;">####
</span><span style="color:#323232;">function stopwatch() {
</span><span style="color:#323232;">    local BEGIN=$(date +%s)
</span><span style="color:#323232;">    echo Starting Stopwatch...
</span><span style="color:#323232;">
</span><span style="color:#323232;">    while true; do
</span><span style="color:#323232;">        local NOW=$(date +%s)
</span><span style="color:#323232;">        local DIFF=$(($NOW - $BEGIN))
</span><span style="color:#323232;">        local MINS=$(($DIFF / 60))
</span><span style="color:#323232;">        local SECS=$(($DIFF % 60))
</span><span style="color:#323232;">        local HOURS=$(($DIFF / 3600))
</span><span style="color:#323232;">        local DAYS=$(($DIFF / 86400))
</span><span style="color:#323232;">
</span><span style="color:#323232;">        printf "r%3d Days, %02d:%02d:%02d" $DAYS $HOURS $MINS $SECS
</span><span style="color:#323232;">        sleep 0.5
</span><span style="color:#323232;">    done
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="color:#323232;">function md() {
</span><span style="color:#323232;">  pandoc "$1" | lynx -stdin;
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="color:#323232;">function weather() {
</span><span style="color:#323232;">  ( IFS=+; curl wttr.in/$(curl -s http://ipwho.is/ | jq .postal););
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span>

So what do you do to remember or recall your most used commands?

datavoid,

Up up up up up up up up up up up up up up up up up up up up up

mreiner,

CTRL+R to search previous commands can help cut down on the number of times you have to scroll up!

Ephera,

I’m using Fish, rather than Bash, and it has type-ahead suggestions, which help a lot.

So, I’ll type rsync and then it’ll show inline that I typed rsync -ah --info=progress2 a long time ago. And then I’ll be like, oh wow, this past-me-guy was very smart, I’ll be having the same.

Obviously, this is an imperfect system. If you run another rsync command without these flags, it won’t directly show these flags next time, because it’s not the most recent entry in history.
But it’s rare that I know I’ll want to run a command again in a few months, so it’s still really helpful.
And of course, there is nothing stopping me from creating aliases and scripts as well.

TehPers,

I use nushell, same thing with the suggestions. With nushell, you can also press up/down to traverse through the command history for commands starting with what you typed. For example, you could type ls and press up a bunch to go through ls | where size > 2kb, ls | where type == ‘directory’, etc (if you’ve executed those before).

comicallycluttered,

Same with fish. It actually shows anything if you just put in one part of the command, so you don’t need to specify the exact starting command (in case you might not remember).

Example (which I use regularly):

install, then up (and up and up, and so on), and I see everything I’ve ever used that has install somewhere in it.

So I’ll get results ranging from sudo apt install foo to sudo nala install foo to flatpak install foo.

It’s incredibly helpful.

MangoKangaroo,

I usually lean on fish autocomplete to remember things for me. Should I write stuff down? Yes. But I’m lazy, so this method is okay. Until I’m on a different machine and end up completely lost.

lnxtx,
@lnxtx@feddit.nl avatar

fish FTW! Write a fragment of the command used before and press the up key <3

MangoKangaroo,

I didn’t even know about arrowing up for partially-entered commands; I’ve just been relying on the first autocomplete that pops up. Thanks for that!

Icarus, (edited )

I don’t do much with bash since I primarily do windows admin, but I run into the same issue with powershell.

I have a document in VSCode that I store frequently used commands and any kind of notation/documentation I need to take advantage of it in the future. It’s a lot of one or two liners for stuff I know I’m going to forget, like the once a month hyperv cluster update command 😂.

Similarly I’ve added functions to the powershell local and global profiles on my computer/group policy. (contextually similar to bashrc, bash_profile, that load when launching interactive or non interactive shells, as well as user context) That way i can easily execute repeptive commands without having to think!

Basically, I think we all have the same problem and we’ve forgotten more than we know lol

bedrooms,

Me:

  • write it in a StackOverflow answer
  • or in a markdown notebook
  • keep it in zsh history search

but despite all my attempts of keeping records, whenever I need them,

  • ask ChatGPT
GammaGames,

What does your fuck alias do?

And for my answer: If it’s for a specific tool, I make a helper script. I have one for git and docker

Penguincoder,

Reruns the last command with sudo (root) cause I fuck up not remembering to sudo quite often.


<span style="color:#323232;">$ ncdu -rLx /
</span><span style="color:#323232;">Warning: error scanning 
</span><span style="color:#323232;">some directory sizes may not be correct
</span><span style="color:#323232;">
</span>

<span style="color:#323232;">$ fuck                                                                                                                                                                                                     
</span><span style="color:#323232;">sudo ncdu -rLx /                                                                                         
</span><span style="color:#323232;">[sudo] password for 
</span><span style="color:#323232;">
</span>
Bitrot,
@Bitrot@lemmy.sdf.org avatar

I put them in notes in Joplin.

Penguincoder,

I want to like Joplin and considered using it, but I don’t like the electron base it is. And then converting my existing KB to a new format yet again… ugh.

jarfil,

I’ve found Joplin to be “acceptable” to share notes from mobile. When sharing through a shared drive, it saves each note as a separate markdown file, so it technically is greppable plain text, my only gripe is it puts all the files in a single dir. I think it can also import them, or you could add notes directly to the dir.

Over time, I’ve migrated most of my KB to some sort of markdown: Zim Wiki, DokuWiki, Joplin.

I still have some locked up in MediaWiki dumps, probably should spin one up and migrate it all.

furrowsofar,

I make a bash script for the whole process and document everything in Zim Wiki. I would only make an alias if I want to supply options to an existing command. Just how I do it.

Penguincoder,

Yeah I have actual notes and processes in my personal wiki too. I don’t like having to look up that one command that I only ever rarely use, like the I need to know if this webpage is serving a 200 or not… what did I do last time??

furrowsofar,

Zim is a desktop Wiki so no serving issues. The other thing I do is just list my script directory or grep it. If I know I have a script I can often find it that way.

jarfil,

+1 for Zim Wiki. Write down all the process, document with concise high level explanations and keywords, then use the search function.

I also add a settings file to all my bashrc:

gist.github.com/jarfil/da3a5a45bf10e1803d18

It’s a mix of some aliases from across several distros, some from as far back as 4DOS and a part for Cygwin, a somewhat complex prompt colorizer that highlights remote/local and root/user shells, and some other stuff that’s piled up over the years.

ercas,

.bashrc.d and github.com/dvorka/hstr

  • All
  • Subscribed
  • Moderated
  • Favorites
  • operating_systems@beehaw.org
  • random
  • meta
  • Macbeth
  • All magazines