Let's here them!
For further actions, you may consider blocking this person and/or reporting abuse
Let's here them!
For further actions, you may consider blocking this person and/or reporting abuse
Susan Githaiga -
Roseanne -
Mr. Algorithm -
Madza -
Top comments (77)
Oh my, I love this topic! Here comes a wall of text:
Using
!!
redo the last command, which is specially useful for those times you forgot to run that big annoying command as sudo, you can just runsudo !!
this time.Also, if you just
cd
without arguments, you end in your home. Sometimes thats useful.On the same theme of
cd
, you cancd -
to go to last directory. I love this! Also works withgit checkout -
to go to the last branch!Another one is that if you use bash or zsh (and probably fish?) in emacs mode, which is the default, there are some commands that are very helpful:
Control + w
Deletes one word behind, like control + backspace on some editorsControl + k
Deletes everything from cursor to the end of the line. Maybe only the start of your command was right and you don't want to retype a bunch of things.Control + u
Deletes everything from cursor to the start of the line. Maybe only the end of your command was right.Control + y
Paste the last thing you deleted using the above commands. A god send.Honorable mentions:
Control + e
andControl + a
go to the end of the line/start of the line, respectivelyControl + p
is the same as up arrow, useful if you think the arrow keys are far awayControl + n
is the same as down arrow. Ditto aboveControl + m
is the same as hitting enterControl + i
is the same as tab (completion)I particularly use control + p a lot!
And as a side note, if you don't want to go
sudo !!
like I suggested initally, you can always go up in history (control+p
or up arrow, you name it), cut everything withcontrol+u
, writesudo
and then paste it withcontrol+y
. Really good commands here!And you can always customize what key presses do with
bind
in bash andbindkey
in zsh.If you are on bash, you can see all commands with
bind -P
andbind -p
. To set different things, you can run (or put in config file, eg,.bashrc
) something likebind '"\C-f":clear-screen'
.If on zsh though, just
bindkey
is enough to list them, andbindkey "^F" clear-screen
to remap.I personally use
control + f
as clear screen for so long, that when I'm at a computer that does not have it I feel lost initially, which is arguably a downside to customization of hotkeys, specially for commands that already have a simple command, like clear screen. Maybe you should not use the mapping I do! 😅!!
is nice, but it's really only the beginning. If you force yourself a bit to use more complex expansions even when they slow you down at first, you'll quickly end up making your life infinitely easier with things like!?vim?:gs/foo/bar
ormv some_long_file_name.jpeg !#:$:r.jpg
(although that last one could also be done easily withrename "s/jpeg$/jpg/" some_long_file_name.jpeg
, of course)Even simple things like
mv file.{txt,md}
already feels nice to do.rename
is a good program, by the way!But the most game changing learning was on how to do some shell scripting. How to use grep, regexes, sed, cut, cat and even for loops. Simply a whole new dimension opens up to you, and it's all in your hands.
Add
awk
to that ...control + l
is a native hotkey for clearing screen. Maybe you would want to switch to that?Yes, but when I started using tmux, I remapped
control + l
to something else (switch to right pane). That's when I remappedcontrol + f
. Pretty much a sequence of changing native hotkeys that just pile up for me when I'm not with my computer... 😅Customizing things sure is nice, but having standards are probably nicer. We should always proceed with care when customizing!
Amazing write up!! You have listed down all my favourites and few I didn’t know before. Thanks.
I always forget how to bind keys, so I need to fallback to Ctrl+R, on a VPS or un-setup machines.
I tried selfish
Thanks a lot
I'll go first
Ctrl+R Autocomplete with Bash is a Life Saver
Ben Halpern ・ Jan 17 '17 ・ 1 min read
Tack on fzf and you have gold.
Seconded on fzf, only external CLI utility that I will recommend
what? fzf is the gold!
(joke)
Using Ctrl+O after going back in the history (either with arrow keys or Ctrl+R) will populate the next prompt with the next item in the history. Great if you have multiple commands you want to execute one after the other repeatedly.
Yep that would be my #1 too - control-R all the way! Oh and I use
cd -
all the time ...If you are going to take the time to setup your command line real nice, then you need a dotfiles repo, if you have a dotfiles repo you need to stow.
2 minutes to stow
Waylon Walker ・ Jan 9 ・ 1 min read
I always thought the stow docs jump right into the weeds and make it sound very complicated, but It's pretty simple if you worry less about the implementation.
TL;DR. The first step of being master of any command:
tldr.sh/
if, during development, you
you should use bash or powershell to automate whatever you're doing.
Computers are way better than keeping stuff in mind than people. I'm writing scripts for every non-throwaway project by now
Latest one for the appwrite hackathon goes
This little bit of code saves me at least 1 minute whenever I want to bring up or down my dev server. Took like 5 to write. And I have to memorise only a few commands instead of several. Totally worth it
Yep. I even write scripts for the simplest of tasks now:
These micro-scripts can seem like a waste of time while writing them, but after calling them 10 or 20 times, you've already saved more time than it took to set them up.
set -e
Will also exit a skript if a command inside fails
No it won't. Look at the script again ;)
fish!
fishshell.com/
I have a series of 7th articles with a lot of them for ZSH:
dev.to/equiman/series/11407
Another to config zsh + power level 10 on macOS:
iTerm2 + Oh My Zsh! + Powerlevel10K best terminal combination for Geeks!
Camilo Martinez ・ Sep 25 '18 ・ 5 min read
But the most useful for me is config the fingerprint reader to use on the terminal when asking for a password:
How to use MacOS's Touch ID on Terminal
Camilo Martinez ・ Oct 8 '19 ・ 1 min read
git diff
more of a git tip but it saves me time and trouble seeing if/what differences I have between my branch and main.Only 1 thing,
Learn a liitle bit of shell scripting, it changes how one works with a terminal/CLI
Knowing a bunch of things and putting them together to improve your workflow as developer everyone should strive for.
My Favorite Bash Tips, Tricks, and Shortcuts
Yechiel Kalmenson ・ Jan 11 '21 ・ 3 min read