Let me teach you about reverse-i-search in bash…
Yep, thats a good one. Another one,
ALT + .inputs the last argument from your last command, pressing it multiple times cycles thorough your past arguments.Nice, 30 years and I didn’t know this one. I always use the
$!for the last argument.I’ve never heard of
$!but we use Macs at work.Alt+.doesn’t work so I’ve been using$_.
Yeesh, I just learned something new. Thanks!
I don’t even want to think about how much effort this has saved me.
I was just about to ask how the hell anyone remembers or knows all these commands, thanks for the info! I am trying to learn Linux and get used to using the Terminal more often.
You can also just grep through your
.bash_history
And in fish
Huh. And here I had aliased “history | grep” to hgrep and was using that.
This thread is full of great solutions that I know I will ignore…
Ctrl-R
Try it. Please, I beg you.
To be even more efficient while being lazy, try oh-my-bash. You can start typing the beginning of a command and use arrow up to cycle through only those, instead of the whole history. So if you had a very long mount command and don’t want to type it again, type mount and up arrow until it can be found. Not very useful for ls -al but very appreciated on longer commands.
I personally use fzf to do basically the same thing, I just have to press ctrl-r before I start to type, and it does fuzzy matching to your history and shows more than one alternative at a time
In addition to ctrl-r, there is also fish! Fish does something similar to Ctrl-R, but in an easier to use way. Start typing a command, and then press the up arrow. It will cycle through your history, but only the history that includes the text you’ve started typing.
This can be enabled in bash by putting these two lines in
~/.inputrc"\e[A": history-search-backward "\e[B": history-search-forward
Very useful tip: i have ls aliased to eza which is ls with eyecandy, I have la aliased to eza -a and I have cd aliased to cd && eza which makes navigating folders very easy. I also aliased … to cd … for convenience. I know a lot of people are purists about the terminal but i think this is a good ballance between convenience and simplicity. Doesnt do a lot of the cursed stuff ricers like to do.
cdis azoxidealias for me. If I need to navigate by folder content, I haveyazionyLove convenient aliases. Would aliasing … cause “…/previous/file” to become " cd …/previous/file" and ruin some commands? I guess not. I also use eza :D
Only if it’s a global alias, I think (those are useful for stuff like
alias -g DN=/dev/null)
I also recommend Atuin, the better shell history that works with most shells and can replace both up arrow and ctrl-r
I like the retro text adventure charm of running a verbose
ls -laafter everycd. It’s like entering a new room and reading its description for possible exits and items!I aliased cd | ls -la to cd so it lists the folder contents eveytime
cd -will bring you to the last directory you were in.I just alias
ls -lahtolsl.Yeah
lk = ls -larthfor me becauselkis right next to each other.
ls -alhtry that. -h means human-readable file sizesI leave ls alone and instead do
alias l='ls -latrF'I do sometimes just want to use the plain version, especially if I’m in a small terminal window for some reason. But I think my brain likes scanning 1D lists more than 2D grids, no matter whether I’m in a terminal or using a graphical file manager.
Plain version is the one to pipe output for further processing. ls | wc -l
$ sudo apt install sl
Try sl instead of ls, you’ll thank me later
ls, ctrl+R
Significantly less up arrows











