O'Reilly logo

bash Cookbook by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 7. Intermediate Shell Tools I

It is time to expand our repertoire. This chapter's recipes use some utilities that are not part of the shell, but which are so useful that it is hard to imagine using the shell without them.

One of the over-arching philosophies of Unix (and thus Linux) is that of small (i.e., limited in scope) program pieces that can be fit together to provide powerful results. Rather than have one program do everything, we have many different programs that each do one thing well.

That is true of bash as well. While bash is getting big and feature-rich, it still doesn't try to do everything, and there are times when it is easier to use other commands to accomplish a task even if bash can be stretched to do it.

A simple example of this is the ls command. You needn't use ls to see the contents of your current directory. You could just type echo*to have filenames displayed. Or you could even get fancier, using the bash printf command and some formatting, etc. But that's not really the purpose of the shell, and someone has already provided a listing program (ls) to deal with all sorts of variations on filesystem information.

Perhaps more importantly, by not expecting bash to provide more filesystem listing features, we avoid additional feature creep pressures on bash and instead give it some measure of independence; ls can be released with new features without requiring that we all upgrade our bash versions.

But enough philosophy—back to the practical.

What we have here ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required