April 24, 2019

The Linux CLI for Beginners, or, Fear Not the Linux Command Line! - page 2

Please Meet the Linux Terminal

  • December 12, 2008
  • By Akkana Peck
Now that you have a terminal open you can start entering commands. First, let's take a look at a really useful Linux command-line utility called locate. It's a very fast way of finding files on your system.

For instance, suppose somebody sent me a funny picture a while back of a squirrel with tiger stripes. I know I saved it, but I can't remember where! But it probably had "squirrel" or "tiger" or maybe both somewhere in the name.

From the desktop I can do simple filename searches, but it's a bit slow and, as you'll see, it's not as flexible. So let's try it from the command line. Type:
$ locate tiger

Don't type the $, that's just to show you that this command can be run as an ordinary user. locate tiger gets quite a few matches (Figure 3). The list is short enough that I could read through them all, but why not get the computer to do that work for me?

So what if I try:

$ locate squirrel

Eek! I'm not going to tell you how many files that found. Suffice to say that I take way too many pictures of squirrels, and finding one specific file in that mess looks way too hard.

The locate command depends on a database of every filename on your system, and most Linux distributions automatically update this database daily. It doesn't hurt to update it manually just to make sure, using the updatedb command. You need root powers to do this, which on Ubuntu you get with the sudo command:

$ sudo updatedb

It can take a few minutes, so be patient.

Pipes to the rescue

Fortunately, the Linux command line offers a way to combine these two searches. It's called a pipeline, because it uses the ASCII vertical bar character sometimes called a "pipe", which is the uppercase of the back-slash key: |.

Most basic Linux commands are set up so that you can "pipe" the output of one program into the input of another. The simplest version of a pipeline is one that uses the program "less" to display a file in screen-sized chunks. less shows you one page at a time; hitting the spacebar will take you to the next page, while q will quit. Try it for yourself in your terminal window. In case you don't have as many squirrel pictures as I do, try searching for files containing "cat":

$ locate cat | less

I bet you didn't know you had so many cat files on your system! Remember, q will get you out of less and back to the command prompt.

Okay, how do we use a pipeline to help find the tiger-squirrel picture? With the grep command, probably the single most useful command Linux offers.

Most Popular LinuxPlanet Stories