The command line utility “grep” is one of the most powerful and useful tools in Linux. Its most common use is to filter results from everyday commands. For instance, if you want to see all the hostnames your system has mapped out in /etc/hosts you can simply run:

$ cat /etc/hosts
CODE

But if you know you’re just looking for a specific hostname, you can pipe the output through grep:

$ cat /etc/hosts | grep head
 10.3.1.254   head-ib  head-ib.cluster
 10.2.1.254   head-mgmt  head-mgmt.cluster
 10.2.1.253   head-ipmi  head-ipmi.cluster
 10.1.1.254   head  head.cluster
CODE

This limited the search results to lines that contained the word “head,” which represents this cluster’s head node.

Another very useful grep technique is to find every instance of a word or pattern within every file in a directory or even sub-directories:

$ grep -R “words to search for” /path/to/search/in/
CODE

This will scan every file within the path you specify and find any instance of the word or words you listed.

These two examples are just the beginning of what you can do with grep. To get the full manual for the grep command, simply type:

$ man grep
CODE