Introduction

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, Section A.2.2.1.

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, Section A.2.1 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.

Who would not want to read this guide?

Anyone who is not interested in the command-line, or anyone looking for a detailed reference to all available GNU/Linux tools should look elsewhere. This is only a summary, while it does list many commands, it's not a complete listing (I don't think it's possible to make a complete listing anyway).

This document would not be of interest to those who already have an expert knowledge of the command-line interface and do require any reference information. Or those readers who require detailed lists of options for each command, the man pages are better suited to this purpose.

Availability of sources

The modifiable sources of the original book (in english), are available in LyX format (LyX Document Processor) or Machine-translated SGML (SGML markup language).

LyX is a completely free document processor based on LaTeX, downloadable from the LyX homepage.

See for the modifiable sources of this document. These are the official versions. We (the translators and current maintainers) plan to continue work on this document and add new chapters and enhancements. If you want to see the version we are currently working on (the "bleeding edge" version), check the GNU/Linux Command-Line Tools Summary Homepage from time to time (kindly hosted by Chris Karakas).

Conventions used in this guide

The following conventions are used within this guide:

italic

key combinations

admonitions

This is a note

Notes often give important information about a tool.

This is a tip

This will offer a useful switch or useful way to use a tool.

This is something important

This is something that is considered very important. Consider it like a note with extra importance, they are usually there to save the reader time.

This is a caution

This will inform you of something that you be careful about (because it could be harmful to your system).

This is a warning

This will inform you of something that you shouldn't do (because it probably will break something within your system).

code examples

    Hello World, I'm a code example. :)

command syntax

    command -options file

Note

Note that some tools do not accept options.

wildcards

access keys

To use the access keys, you have to simultaneously press a modifier key, which may vary from browser to browser. For example in NN6+/Mozilla, the modifier key is ALT, so you have to use ALT-N to go to the next page, and ALT-P to come back. In other browsers such as IE6, the access keys just give focus to the associated link, so the sequence becomes ALT-N Enter. Try it, you'll like it!

Resources used to create this document

To create the GNU/Linux Command-Line Tools Summary, I used LyX, the document processor. To convert the LyX files to DocBook SGML I used the lyxtox Scripts created by http://www.karakas-online.de/Chris Karakas.

You may also want to check out the db2lyx package, created by Dr. B Guillion, which can be used to convert LyX files to XML DocBook and XML DocBook back to LyX.

I also had assistance from various The Linux Documentation Project volunteers (see the contributors section Section 1.7 for specific details).

Feedback

Feedback is necessary for the advancement of this guide. Positive, constructive criticism is encouraged. If you have ideas, suggestions, advice, or problems with this guide, please send an email to the author Gareth Anderson.

Contributions

If you wish to make contributions it is recommended (if possible) to read the LyX file(s) for this document. They contain various notes which you can't see in the other versions.

These notes highlight the areas that need contributions, certain tools which I cannot understand, tools which have not been added, or tools which were removed. These notes also explain some of the structure of this document.

Contributors

As you may be able to see, parts of this guide are based off various advice columns on GNU/Linux, anything that has being directly quoted from an article can be found in the references, Bibliography, section of this document.

The following is a list of people who have made a significant contribution to this document, in a rough chronological order.

Chris Karakas:

William West:

Tabatha Persad/Marshall:

Rahul Sundaram:

David Lawyer:

George Harmon:

Machtelt Garrels (tille):

Michael Kerrisk: