I want to share a few tips for better Bash productivity. You will be surprised that not a single one of them is “Just install zsh”.
CTRL+R is cool, but you know what is even cooler? The ability to complete commands from history with up/down arrows. For example, enter
cd, press up and it gets autocompleted with
cd ~/your/last/directory/change/. This little snippet below must be put into
~/.inputrc and you are good to go.
Execute previous command
This one is also history related, and I use it countless times every day. Use
!! to get the most recent command. For example,
sudo !! will execute your previous command as sudo. Also
!$ can be handy, because it allows to re-use last parameter from previous command. I actually use an even quicker shortcut for this:
ESC+.. However the shortcut may be terminal/OS dependant.
Jump between current and previous directory
Change your directory to the last directory you were in with a simple
cd -. This way you can quickly switch between two working directories.
Display file size in a human readable format
If you have executed a command that returns files together with file sizes, there is a great chance, that adding
-h option to the command will return the file sizes in a more readable format. Take for an example the good old
ls -la. By default it returns file size in bytes. Just add “h” to the options
ls -lah, and you have file sizes in megabytes.
I hope that everyone nows about
CTRL+arrows to jump between words, but there are a few other shortcuts that are as important as
CTRL+arrows. Full list can be found online, e.g., on Wikipedia: Bash#Keyboard_shortcuts.
CTRL+ajump to the beginning of line
CTRL+ejump to to the end of line
CTRL+wwill delete a word backwards
CTRL+zpause a command
CTRL+lclear the screen
CTRL+dexit current shell
Quickly transfer your key to a remote host for a password-less login
This is not a tip for every day situations, but occasionally it saves a few commands. Use
ssh-copy-id user@remote_host to quickly copy the identity file to the remote host to enable password-less login. Passwords should be avoided for ssh anyway.