An Overview of GNU Software

An Overview of GNU Software

As a Red Hat Linux user, you may not realize the extent to which Red Hat Linux (and, for that matter, all Linux distributions) relies on GNU software. Nearly all tasks you perform in a Red Hat Linux system involve one or more GNU software packages. For example, the GNOME GUI and the Bash shell are both GNU software. If you rebuild the kernel or develop software, you do so with the GNU C and C++ compiler and the make utility; both are parts of the GNU software packages that accompany all Linux distributions. If you edit text files with the ed or Emacs editor, you are again using a GNU software package. The list goes on and on. It’s a safe bet that when you are using any Linux system, you are running some GNU software all the time.

One way to appreciate the extent of GNU software in Linux is to take stock of various GNU software packages. Table 8-1 briefly describes some of the well-known GNU software packages that come with Red Hat Linux. You can browse the table to get a feel for the types of tasks you can perform with GNU software.

Table 8-1: Well-Known GNU Software Packages

Software Package



Generates shell scripts that automatically configure source-code packages


Generates files for use with Autoconf


The default shell—command interpreter—in Red Hat Linux. (Bash is compatible with the UNIX sh shell and offers many extensions found in csh and ksh shells.)


An interactive calculator with arbitrary precision numbers


A package that includes several utilities for working with binary files: ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings, and strip


A chess-playing program that regularly beats many good players

GNU C Library

For use with all Linux programs


Copies file archives to and from disk or to another part of the file system


Compares files, showing line-by-line changes in several different formats


A line-oriented text editor


An extensible, customizable full-screen text editor and computing environment


A package that implements the following Linux commands: chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, sync, touch, and vdir


A package that includes the find, locate, and xargs utilities


A utility program designed to enable users of UNIX systems (including Red Hat Linux) on the Internet to get information about one another


The GNU Project’s implementation of the AWK programming language that conforms to the definition of the language in the POSIX 1003.2 Command Language and Utilities Standard


Compilers for C, C++, Objective C, and other languages


Source-level debugger for C, C++ and Fortran


A replacement for the traditional dbm and ndbm database libraries


A set of utilities that enables software maintainers to internationalize a software package’s user messages


An interpreter for the Postscript and Portable Document Format (PDF) languages


An X Window System application that provides a graphical front end to Ghostscript, and enables users to view Postscript or PDF files in a window


The GNU Image Manipulation Program is an Adobe Photoshop-like image-processing program


Provides a GUI for a wide variety of tasks that a Linux user might perform


A graphical spreadsheet (similar to Microsoft Excel) that works in GNOME and can work with Excel 95 format files

grep package

Includes the grep, egrep, and fgrep commands that are used to find lines that match a specified text pattern


A document formatting system similar to troff


A GUI toolkit for the X Window System (used to develop GNOME applications)


A GNU utility for compressing and decompressing files


Formats C source code by indenting it in one of several different styles


A page-by-page display program similar to more, but with additional capabilities


A library for image files in the Portable Network Graphics (PNG) format


An implementation of the traditional UNIX macro processor that is commonly used to create the sendmail configuration file


A utility that determines which files of a large software package need to be recompiled, and issues the commands to recompile them


A set of programs that enables users to read, write, and manipulate files on a DOS file system (typically a floppy disk, but also Windows partitions of hard drives)


A package for displaying and updating text on text-only terminals


A GNU version of Larry Wall’s program to take the output of diff and apply those differences to an original file to generate the modified version


The Revision Control System is used for version control and management of source files in software projects


A stream-oriented version of the ed text editor


A package that includes shar (used to make shell archives out of many files), unshar (to unpack these shell archives), as well as uuencode and uudecode utilities (some open source software installers need uudecode)


A package that includes the following utilities, which are part of the Bash shell: basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostname, id, logname, nice, nohup, pathchk, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami, and yes


A tape archiving program that includes multivolume support; the capability to archive sparse files, handle compression and decompression, and create remote archives; and other special features for incremental and full backups


A set of utilities that generates printed manuals, plain ASCII text, and online hypertext documentation (called Info), and that enables users to view and read online Info documents


A set of utilities such as cut, join, nl, split, tail, wc, and so on, for manipulating text


A utility that reports the user, system, and actual time a process uses

The remainder of this chapter introduces you to several categories of GNU utilities.