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.
Software Package |
Description |
---|---|
Autoconf |
Generates shell scripts that automatically configure source-code packages |
Automake |
Generates Makefile.in files for use with Autoconf |
Bash |
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.) |
bc |
An interactive calculator with arbitrary precision numbers |
Binutils |
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 |
gnuchess |
A chess-playing program that regularly beats many good players |
GNU C Library |
For use with all Linux programs |
cpio |
Copies file archives to and from disk or to another part of the file system |
diff |
Compares files, showing line-by-line changes in several different formats |
ed |
A line-oriented text editor |
Emacs |
An extensible, customizable full-screen text editor and computing environment |
Fileutils |
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 |
Findutils |
A package that includes the find, locate, and xargs utilities |
Finger |
A utility program designed to enable users of UNIX systems (including Red Hat Linux) on the Internet to get information about one another |
Gawk |
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 |
GCC |
Compilers for C, C++, Objective C, and other languages |
gdb |
Source-level debugger for C, C++ and Fortran |
gdbm |
A replacement for the traditional dbm and ndbm database libraries |
gettext |
A set of utilities that enables software maintainers to internationalize a software package’s user messages |
Ghostscript |
An interpreter for the Postscript and Portable Document Format (PDF) languages |
Ghostview |
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 GIMP |
The GNU Image Manipulation Program is an Adobe Photoshop-like image-processing program |
GNOME |
Provides a GUI for a wide variety of tasks that a Linux user might perform |
Gnumeric |
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 |
Groff |
A document formatting system similar to troff |
GTK+ |
A GUI toolkit for the X Window System (used to develop GNOME applications) |
gzip |
A GNU utility for compressing and decompressing files |
indent |
Formats C source code by indenting it in one of several different styles |
less |
A page-by-page display program similar to more, but with additional capabilities |
libpng |
A library for image files in the Portable Network Graphics (PNG) format |
m4 |
An implementation of the traditional UNIX macro processor that is commonly used to create the sendmail configuration file |
make |
A utility that determines which files of a large software package need to be recompiled, and issues the commands to recompile them |
mtools |
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) |
ncurses |
A package for displaying and updating text on text-only terminals |
patch |
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 |
RCS |
The Revision Control System is used for version control and management of source files in software projects |
sed |
A stream-oriented version of the ed text editor |
sharutils |
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) |
shellutils |
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 |
tar |
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 |
texinfo |
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 |
textutils |
A set of utilities such as cut, join, nl, split, tail, wc, and so on, for manipulating text |
time |
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.