This document is an attempt to summarise the many command-line based tools available to a GNU/Linux based operating system. This guide is not a complete listing (I doubt it's possible to document all available programs), this document lists many tools which are available to GNU/Linux systems and which are, or can be useful to the majority of users.
For some of the tools that are harder to use, or perform a more complex task, there are several mini-tutorials (or mini-guides; Chapter 20) within this document.
Please note that the word “tool” is used interchangeably with the word “command”, both have the same meaning (at least in this guide). For a more detailed explanation, read about the UNIX Tools Philosophy here: Chapter 3 or visit the links in the appendix, the Section called The UNIX tools philosophy further reading in Appendix A.
To find out which tools are bash specific: To find out which tools are bash specific you can type:enable -a
Why would you want to learn how to use the command-line (and available tools)? The Command Line-Interface (CLI), while difficult to learn, is the quickest and most efficient way to use a computer for many different tasks. The CLI is the normal method of use for most UNIX system administrators, programmers and some power users. While a GUI is better suited to some tasks, many operations are best suited to the CLI.
The major motivation behind learning the GNU/Linux CLI is the authors idea that, with software in general, the more time spent learning something equals less time spent performing that particular task (authors opinion only).
This guide is aimed at beginners to intermediate users who want to learn about the command-line tools available to them. Advanced users may wish to use it as a command reference, however this document aims to list commands of interest, as judged by the authors opinion, it is not designed to be completely comprehensive, see the appendix, the Section called General Further Reading in Appendix A for further information. Or if you are not looking for a command reference guide, but a more gentle introduction to GNU/Linux you may be interested in the Introduction to Linux guide authored by Machtelt Garrels.
This guide could also be considered a summarised version of the Linux Cookbook. If you are looking for a book with more detailed descriptions of each tool have a look at the Linux Cookbook Homepage, also check out the command list from "Linux in a Nutshell 3rd Edition" for an index of 300+ commands and their explanations.