Chapter 1. Introduction

Table of Contents
Who would want to read this guide?
Who would not want to read this guide?
Availability of sources
Conventions used in this guide
Resources used to create this document

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.

Each tool description provides a quick overview of it's function and some useful options for that individual tool.

The tools listed that require a GUI, usually the X windowing system, are those listed in the Graphics Tools section. All other tools are completely command-line-based and do not require a GUI to run.

If you are looking for information on GUI based tools you will need to look elsewhere.

Also note that a few of the tools in this guide are bash (the Bourne-Again-SHell) specific, tools specific to other shells are not listed in this document.

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.

Where a mini-guide was considered unncessary, detailed descriptions that explain in detail how a particular tool works, and some examples of how to use it are provided.

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

Who would want to read this guide?

Anyone who is interested in learning about the tools (also known as commands) available to them when using their GNU/Linux based operating system.

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.