Taking Control: More BASH Tips

Between the numerous servers I manage via ssh and my personal machines I spend a lot of time in the BASH shell and, as with anyone and who uses a tool for a long time, I have discovered numerous shortcuts to getting things done efficiently. I wrote a couple months ago about using ! and $ to manipulate previous commands. This time I am going to talk about moving the cursor around in the current command and manipulating the window.

CTRL + l
Before we get started let’s clean up by clearing our screen. Control and l will clear the screen without modifying any of the text on your current line. It is very helpful for keeping your terminal clean or preparing it for a large amount of output that your next command may bring.

CTRL + r
This is probably one of the most frequently used control combinations. Control and r allows you to pull up a command from your history by typing in and having it match the last used command with those characters. For example, if you used a command yesterday that had very complex syntax and can’t remember what it was, you could hit ctrl+r and then start typing the part of the command that you know.

j2consulting:~ user1$ echo The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
(reverse-i-search)`fox': echo The quick brown fox jumps over the lazy dog.

CTRL + a and CTRL + e
There are many times when you need to jump to the beginning of the line to fix a command and then jump back to the end to finish what you were typing. Control and a as well as Control and e take care of this for you. Say I wanted to use print instead of echo in the previous example. I could hit the up arrow, CTRL+a, change echo to printf “, CTRL+e, add \n” and be done.

j2consulting:~ user1$ echo The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
j2consulting:~ user1$ printf "The quick brown fox jumps over the lazy dog.\n"
The quick brown fox jumps over the lazy dog.

ESC, ALT, CTRL + b and ESC, ALT, CTRL + f
In addition to these there are commands to move back and forward one word at a time. I don’t frequently use these because they have mixed success depending on which terminal emulator is used. If you are on a mac on the local terminal esc and then b will move you back one word and esc then f will move you forward one word. If you are on a mac and ssh’d into a system CTRL + the left arrow will move you back one word and CTRL + the right arrow will move you forward one word. I have also read about ALT + b and ALT + f working on different systems. Experiment with this one but because of the inconsistency I tend not to depend on it.

There are more control commands available and I will be looking at those in my next post. Until then happy BASHing.

  1. Just need to say your article is as astonishing. The clearness for ones publish is just great and i could suppose you are an expert in this subject. Well along with your permission please let me take hold of your feed to remain updated along with forthcoming publish. Thanks a new million and also please carry on the fulfilling work.

  1. No trackbacks yet.