All the packages included on the CD-ROM are discussed
somewhere in the book, complete with an icon in the margin to let you
know it's there.
But here's a quick listing of what each program
does and where the book talks about it.
If you don't have the disc or just want another way to get them,
many of the programs and other files are available on the Internet
or via email.
There's a
*
next to the names of those files in the listings
that follow.
Article
52.7
tells how to get them online.
Many of the programs listed here are shell scripts.
All shell scripts are
theoretically portable from one platform to another; however,
they might have dependencies on programs that either aren't
installed on your system, or behave somewhat differently from what the programmer expected.
So beware that
you might have to tweak the shell
scripts a little to make them work correctly on your system.
-
.emacs_ml *
-
The
.emacs_ml
file contains a listing of
Mike's favorite Emacs commands.
If you like them, put them in
your own
$HOME/.emacs
file.
Article
32.7
.
-
.enter.csh *
-
.enter.csh
is an example of a C shell script you might want to
run when your C shell enters a particular directory.
It is meant to be used
with an alias (which can be found in the
csh_init
file) and
with a
.exit.csh
script.
A sample
.exit.csh
script is
also included on the disc.
Article
14.14
.
-
.enter.sh *
-
.enter.sh
is an example of a Bourne shell script you might want to
run when your Bourne-type shell (including
ksh
and
bash
)
enters a particular directory.
It is meant to be used
with a shell function (which can be found in the
sh_init
file) and
with a
.exit.sh
script.
A sample
.exit.sh
script is
also included on the disc.
Article
14.14
.
-
.exit.csh *
-
.exit.csh
is an example of a shell script you might want to
run when your C shell leaves a particular directory.
It is meant to be used
with an alias (which can be found in the
csh_init
file) and
with a
.enter.csh
script.
A sample
.enter.csh
script
is also included on the disc.
Article
14.14
.
-
.exit.sh *
-
.exit.sh
is an example of a shell script you might want to
run when your Bourne-type shell (including
ksh
and
bash
)
leaves a particular directory.
It is meant to be used
with a shell function (which can be found in the
sh_init
file) and
with a
.enter.sh
script.
A sample
.enter.sh
script
is also included on the disc.
Article
14.14
.
-
80cols *
-
The
80cols
file simply contains 80 digits on a single line.
You can use this file to determine whether your screen is 80 columns
wide, with:
cat 80cols
Article
42.6
.
-
! *
-
The
!
command (pronounced
bang
) creates temporary
files to be used with programs that require filenames in their
command lines.
For example, to
diff
two files after sorting
them, you might do:
diff `! sort file1` `! sort file2`
Article
9.18
.
-
addup *
-
addup
is a shell script that uses
awk
to add up the
values in a specified column of its input.
Article
49.7
.
-
age_files *
-
The
age_files
shell script reports the size of the files
in a given directory by age.
Article
16.25
.
-
ascii *
-
ascii
is a shell script that searches a listing of the ASCII
character set and returns the ASCII decimal
value of a specified character.
Article
51.3
.
-
awf *
-
awf
(Amazingly Workable Formatter) is an
nroff -man
or
nroff -ms
clone written entirely in (old)
awk
.
It is slow and has many restrictions, but does a decent job on most
manual pages and simple
-ms
documents.
It is also a text formatter that is simple enough to be tinkered with,
for people who want to experiment.
Article
43.17
.
-
GNU bash, Version 1.14.6
-
bash
is the GNU Project's Bourne Again SHell, an interactive shell
with Bourne shell syntax.
It also includes interactive command-line
editing, job control on architectures that support it,
csh
-like
history features and brace expansion, and a slew of other stuff.
Article
8.2
.
-
behead *
-
The
behead
shell script removes all lines in a file
up to the first blank line.
This effectively removes the header from
files saved from
mail or news (
1.33
)
.
Article
35.5
.
-
bitmaps *
-
The Poskanzer Bitmap Collection
is a collection of monochrome bitmaps, for use as background
patterns,
clip-art, etc.
They are stored in
X11 (
1.31
)
bitmap format, and most of them are compressed. If you need them in
some other format, use the
netpbm
package, which is also
included on the Power Tools disc. Article
43.25
.
-
bkedit *
-
bkedit
is a shell script for making a backup copy of a file
before starting the
vi
editor on it.
Article
44.11
.
-
bsdtar
-
bsdtar
is very similar to
tar
, but can
remap long filenames to unique 14-character filenames on
systems that have a 14-character filename limit.
bsdtar
can only read archives, it cannot create
archives. Article
52.8
.
-
bsplit
-
bsplit
enables you to split binary files into manageable
pieces.
Users who
are familiar with
split
will have no problem with
bsplit
,
as the usage of
bsplit
is exactly like the
split
program.
Article
35.9
.
-
cal_today *
-
cal_today
is a simple shell script that runs
cal
and
marks today's date.
Article
48.7
.
-
calen
-
calen
generates a calendar for a whole year or for a
certain range of months within a year in 132 columns.
Article
48.8
.
-
catsaway *
-
The
catsaway
shell script is included here as an example of
using a loop to repeat a command until it fails.
Article
44.10
.
-
center *
-
center
is an
awk
script that centers each line of a file.
Article
35.8
.
-
cgrep *
-
cgrep
is a context-
grep
Perl script for showing the given
string with several lines of surrounding text.
Article
27.13
.
-
cgrep.sed *
-
cgrep.sed
is a context-
grep
sed
script for showing the given
string with several lines of surrounding text.
It can also match a pattern that's spread across several lines.
Articles
27.11
,
34.17
.
-
checksed *
-
The
checksed
shell script runs the
sed
commands in a
file called
sedscr
on the specified files, showing the edits with
diff
and a pager program.
Article
34.3
.
-
chmod_edit *
-
The
chmod_edit
shell script
adds write permission to a file, places you in your
favorite editor, and then removes write permission again.
Article
22.9
.
-
chunksort *
-
The
chunksort
script sorts multiline records that are
separated by blank lines.
Article
36.7
.
-
cleanup *
-
cleanup
is an example of a shell script to be run by
cron
.
By combining multiple
find
conditions, the
find
command
is run only once instead of multiple times.
Article
23.22
.
-
cleanup.sed *
-
cleanup.sed
is a
sed
script to be run on
troff
input
files.
It converts double quotes to "curly" quotes, two dashes to
em-dashes, and places a no-space character before constant-width font
changes.
It should be called with
sed -f cleanup.sed
.
Article
43.21
.
-
Clear *
-
The
Clear
shell script can be used to execute VT100 escape
sequences.
It is also linked to the names
NOG
(to cancel
an alternate character set);
Graphics
(to enable graphics mode);
C132
(to enable 132-column mode);
C80
(to enable 80-column
mode);
Revvid
(to enable reverse video);
Normal
(to
re-enable normal video);
ToStatus
(to write a message to the
terminal status line); and
ClrStatus
(to clear the status line).
Article
41.9
.
-
cls *
-
cls
is a compressed directory lister
that can list directories in nice columns and
indicate "long" names that have been truncated.
It is also linked to the names
clf
,
cls2
, and
clf2
.
Article
16.6
.
-
cols *
-
The
cols
shell script displays output in columns.
It is also linked to the
c2
,
c3
,
c4
,
c5
,
c6
,
c7
, and
c8
commands, to force it to display the
respective number of columns.
Article
35.16
.
-
count.it *
-
count.it
reports the difference in word length between two
files.
Article
29.6
.
-
count_types *
-
count_types
is a shell script that reports the number of
files of each type, as reported by the
file
command.
Article
16.24
.
-
cpmod
-
cpmod
allows you to copy modes, ownerships, and times
from one file to others, without affecting the data.
Article
22.16
.
-
crontab *
-
The
crontab
shell script provides interactive editing of your
crontab
entries.
This script is meant for systems that
do not already provide interactive
crontab
file editing.
Article
40.15
.
-
crush *
-
crush
is a
sed
script that removes blank lines
from text and sends the result to standard output.
Article
25.11
.
-
csh_init *
-
The
csh_init
file is a collection of C shell commands and alias
definitions that are shown throughout the book.
Most of these are also available as Bourne-type shell functions
in the
sh_init
file.
In its distribution
form, each set of commands is commented out and needs to be explicitly
uncommented before you can use them; this is because many of the
definitions override or conflict with one another.
You can copy or
source (
44.23
)
the file into your
shell setup file (
2.2
)
,
and then enable the
definitions that you want.
Articles
2.15
,
7.5
,
7.6
,
7.8
,
7.11
,
10.7
,
10.8
,
14.9
,
14.14
,
15.5
,
16.26
,
17.23
,
21.14
,
22.2
,
22.9
,
25.17
,
29.8
,
30.20
,
43.8
,
47.5
,
and
50.8
.
-
csh_logout *
-
The
csh_logout
file contains a set of commands for
removing temporary files.
C shell users can input these commands
into their
~/.logout
file.
Article
21.3
.
-
csplit
-
The
csplit
program splits a file according to context.
csplit
is part of the
textutils
package.
Article
35.10
.
-
cut+paste
-
cut
and
paste
are public domain versions of AT&T's
cut
and
paste
commands. They are part of the GNU
textutils
package. Articles
35.14
and
35.18
.
-
cvtbase
-
cvtbase
is a program for converting from one base to another.
Supported bases are decimal, hexadecimal, octal, and binary.
Article
49.5
.
-
del *
-
del
is a shell script that prompts you for the removal
of the specified files.
Unlike
rm -i
,
del
prompts
you only once for all files when there are more than three to remove.
Article
23.6
.
-
delete
-
The
delete
program is a replacement for
rm
that
allows files to be recovered later on.
Instead of actually
deleting files,
delete
marks them for deletion by adding
a
.#
prefix.
To recover the file, use
undelete
.
To delete the files for real, use
expunge
or
purge
.
To list all the files in the
current directory that are marked for deletion, use the
lsdel
command.
Article
23.9
.
-
GNU diff, diff3, sdiff, and cmp Utilities
-
The GNU versions of
diff
,
diff3
,
sdiff
,
and
cmp
provide all the
features of BSD's versions, but with some additional features.
Articles
28.1
,
28.2
,
28.4
,
and
28.11
.
-
dir_path *
-
dir_path
is a shell script that shows all directories
with the same name.
Article
16.21
.
-
dirtop *
-
The
dirtop
shell script uses VT100 escape sequences to
make an
ls
directory listing that stays at the top of the window
while you work.
Article
21.10
.
-
doublespace *
-
doublespace
is a
sed
script that double-spaces text and
sends the result to standard output.
Article
25.12
.
-
ediff
-
ediff
is a program that translates
diff
(
28.1
)
output into
English.
Article
28.8
.
-
elookfor *
-
The
elookfor
script is similar to the
lookfor
script,
but faster.
It finds all files in the given directory tree
that contain the given string(s), using
egrep
.
Article
17.21
.
-
GNU emacs, Version 19.3.1
-
GNU
emacs
is the GNU incarnation of the
advanced,
self-documenting, customizable, extensible real-time display editor
Emacs.
Chapter 32, GNU Emacs
.
-
GNU expand
-
GNU
expand
converts TAB characters into the
corresponding number of spaces.
expand
is part of the
textutils
package.
Article
41.4
.
-
Expect, Version 5.22
-
Expect is a program to control interactive applications, such as
telnet
and
passwd
,
that prompt you to type something at the prompt.
You can write simple Expect scripts to automate these interactions.
Then the Expect script can run the "interactive" program
non-interactively.
Expect is part of the
Tcl/tk
package.
Article
9.26
.
-
exrc *
-
The
exrc
file is a collection of
vi
and
ex
commands
that are shown throughout the book.
In its distribution
form, each set of commands is commented out and needs to be explicitly
uncommented before you can use them; this is because many of the
definitions override or conflict with one another.
You can copy
this file into your
.exrc
file (
4.9
)
,
and then enable the
definitions that you want.
Articles
30.23
,
30.32
,
31.5
,
31.9
,
31.12
,
31.13
,
and
31.16
.
-
fgrep, Version 1.1
-
Although maligned for its slowness,
fgrep
has several features
that make it worth installing.
This is one of the fastest
fgreps
that we've been able to find.
Article
27.6
.
-
GNU File Management Utilities (fileutils), Version 3.13
-
The GNU file utilities have significant advantages over their
standard UNIX
counterparts, such as greater speed, additional options, and fewer
arbitrary limits.
Programs included are:
chmod
,
chgrp
,
chown
,
cp
,
dd
,
df
,
du
,
install
,
ln
,
ls
,
mkdir
,
mkfifo
,
mknod
,
mv
,
rm
,
rmdir
,
and
touch
.
Most of these programs are covered throughout the book.
-
GNU find, Version 4.1
-
GNU
find
has several enhancements over the standard
find
command found on most systems.
Among other things, it has the
option to measure times
from the beginning of today rather than from 24 hours ago, and
it has user-settable maximum search depth.
Articles
17.1
and
17.23
.
find
is also distributed with the GNU
xargs
program,
which is used to execute a command with many arguments.
Its
-0
option works with GNU
find
to avoid
problems with the standard
xargs
.
Articles
9.21
and
9.22
.
Finally, the package includes the GNU
locate
program, which lists files in a database that match a pattern
(similar to the
"fast
find
"
on many systems).
Article
17.18
.
-
findcmd *
-
findcmd
searches your path and prints any program's
filename that contains the given substring.
Article
16.10
.
-
findtext *
-
The
findtext
shell script prints the names of specified
files that are text files (i.e., human-readable).
Article
16.26
.
-
flip *
-
flip
is a Perl script
that reverses the text in a given file line-by-line.
That is,
the first line in the file switches position with the last, the second
line in the file switches with the next-to-last, and so on.
Article
25.19
.
-
GNU fmt
-
fmt
neatens text into paragraphs that are (by default) no longer
than 72 characters.
This GNU version has several other formatting features.
Article
35.2
.
-
fmt.sh *
-
fmt.sh
is a shell script that uses
sed
and
nroff
to
simulate the behavior of the
fmt
command.
It is meant for
systems that are not distributed with
fmt
already installed.
Article
35.3
.
-
formprog *
-
formprog
is a shell script for filling in forms.
It looks for
a template file (argument 1) and prompts the user for information,
placing the completed form into an output file (argument 2).
Article
45.22
.
-
ftpfile *
-
ftpfile
is a shell script for anonymously
ftp
'ing a file.
It is included on the disc as an example of a here document.
Article
8.18
.
-
GNU awk (gawk), Version 3.0.3
-
gawk
is a version of
awk
from the Free Software Foundation.
It has many more features than the original
awk
.
Article
33.12
.
-
getmac *
-
getmac
is a shell script for printing a
troff
macro definition in the specified macro package.
Article
43.20
.
-
getopt
-
getopt
is a public-domain implementation of the System V
getopt
program.
Not to be confused with the library routine, this
program helps scripts parse their options/flags/arguments.
Article
44.18
.
-
glimpse and agrep
-
glimpse
is an indexing and query system that lets you search huge
amounts of text (for example, all of your files) very quickly.
Part of the
glimpse
package is
agrep
,
a standalone utility for fast text searching.
agrep
is similar to the other members of the
grep
family,
but it is much more general (and usually faster).
The enhancements
over other
grep
s include
the ability to search for approximate patterns.
Article
27.8
.
-
GNU gnroff, Version 1.10
-
gnroff
is the GNU version of the
nroff
text formatter.
gnroff
is part of the
groff
package.
Article
43.17
.
-
grabchars
-
grabchars
gets one or more keystrokes from the user without requiring
them to press RETURN.
It was written to make all types of shell scripts
more interactive.
Article
45.32
.
-
GNU grep, Version 2.0
-
GNU
egrep
(also linked to
grep
) is about
twice as fast as stock UNIX
egrep
.
Article
27.9
.
-
GNU groff, Version 1.10
-
groff
is the GNU version of the
troff
text formatter.
Included are implementations of
troff
,
pic
,
eqn
,
tbl
,
refer
, the
man
macros and the
ms
macros,
and drivers for PostScript,
TeX dvi format, and typewriter-like devices.
Also included is a
modified version of the Berkeley
me
macros, and an enhanced version
of the
X11 (
1.31
)
xditview
.
Article
43.16
.
-
GNU gzip, Version 1.2.4
-
GNU
gzip
allows compression of files.
In addition to the
gzip
program itself, the package includes
gunzip
and
gzcat
.
Article
24.7
.
-
head *
-
The
head
shell script simulates the behavior of the
head
command distributed with many versions of UNIX.
It is meant for
systems that do not have the
head
program already installed.
Article
25.20
.
-
hey *
-
hey
is a shell script for people who use systems other than
UNIX-and type non-UNIX commands on a UNIX
system.
It prints a snide remark to remind you of your mistake, then runs
the UNIX command you intended to use.
Article
16.15
.
-
hgrep, Version OctR88
-
hgrep
is a trivial, but cute, front-end for
grep
.
It takes the
results of
the
grep
and highlights the word that was searched for.
Article
27.20
.
-
index, Version 1.0
-
index
allows you to maintain multiple databases of textual
information, each
with a different format.
With each database,
index
allows you to
add entries, delete entries, edit existing entries, search for
entries using full regular expressions, and run all or part of
the database through a user-configured filter.
Articles
48.11
and
48.12
.
-
ipl, Version 1.0
-
ipl
is a two-dimensional graphic production system.
It produces scatter plots,
line plots, bar graphs, range displays, pie graphs, US/Canada
maps, schedule charts, boxes, arrows, text, etc.
ipl
produces
PostScript output, based on a user-supplied control file.
It also includes a table beautifier that is useful for taking plain text
tables, spreadsheet output, etc. and setting them in a nice font.
Article
49.9
.
-
ispell, Version 3.1.20
-
ispell
is a fast screen-oriented spelling checker that shows
your errors in the context of the original file, and suggests possible
corrections when it can figure them out.
Compared to UNIX
spell
, it
is faster and much easier to use.
ispell
can also handle languages
other than English.
Article
29.2
.
-
jot
-
jot
is a simple tool that allows you to print sequential or
random data.
It can be very useful for constructing loops
in shell scripts.
Article
45.11
.
-
lensort *
-
lensort
sorts lines from shortest to longest.
Article
36.8
.
-
less, Version 3.21
-
less
is an extremely flexible pager and
is preferred by many to
pg
or
more
.
less
has all of the functionality of
more
,
in addition to backwards scrolling, bookmarks, searching
(forward and backward, single, and multi-file), and
many other useful features.
Article
25.4
.
-
lf *
-
lf
is actually five commands linked to the same script.
Each command results in calling the
ls
command with a different
set of command-line options.
In addition to
lf
, there is also
ll
,
lg
,
lm
, and
lr
.
Article
16.7
.
-
lndir
-
lndir
is a safe way to duplicate a directory
structure elsewhere on the filesystem.
It's necessary because a
cd
into a straight symbolic link actually
changes to the directory pointed to by the link, which can be confusing or
even dangerous if the link is in a sensitive area of the filesystem.
lndir
recursively re-creates
a directory structure, making symbolic links to all the files in the
directory.
Article
18.7
.
-
logerrs, Version 1.0 *
-
The
logerrs
script sends errors to a log file as well
as to standard error.
Article
13.16
.
-
longlines *
-
The
longlines
file contains several lines with 200 columns of
text.
You can use this file to test whether line wrapping is working
correctly, or to adjust windows to a particular size,
with:
cat longlines
Article
42.6
.
-
look
-
look
is a fairly fast, fairly portable version of
look
.
Article
27.18
.
-
lookfor *
-
The
lookfor
script finds all files in the given directory tree
that contain the given string(s).
Article
17.21
.
-
ls_today *
-
ls_today
is a shell script to print the names of files
that have been created or edited today.
Article
16.18
.
-
make_print *
-
make_print
is an example Makefile
for printing a series of files that have changed.
It is meant to be renamed
makefile
or
Makefile
and run
with
make
.
Article
21.9
.
-
manindex *
-
manindex
simulates the behavior of the
apropos
command
found on many systems.
It generates an index that you can later
search using the following alias:
alias apropos "grep -i /!$
indexfile
"
Article
50.3
.
-
motd.diff *
-
motd.diff
is a shell script to be called from your
.login
file.
It only displays lines in the message-of-the-day that have
changed since the previous login.
Article
2.14
.
-
namesort *
-
The
namesort
program sorts a list of names by the last name.
Article
36.9
.
-
netpbm, Version 1mar94
-
netpbm
is the latest version of
pbmplus
, the
Extended Portable Bitmap Toolkit.
netpbm
converts various image formats to and from
portable formats, and therefore to and from one another.
In addition to the converters, the package includes some simple tools
for manipulating the portable formats.
Article
43.25
.
-
nextday *
-
The
nextday
shell script returns the name of
the next day of the week, to supply to the
at
command.
It can also be linked to the name
nextweekday
, in which
case the next weekday is returned (for example, on Friday
nextweekday
will return
Monday
).
Article
40.10
.
-
no_run *
-
The
no_run
file contains an example of a shell script that
you can enter into your private
$HOME/bin
directory and link to the names
of programs that you might not want to run on some systems.
It's
meant for use on a network where you have the same home
directory on several machines of different architectures.
After editing the script, you can link it to the names of the
commands that are run differently (or not at all) on some systems.
Of course, the directory that you install and link the scripts
in (such as
$HOME/bin
) must be in your path before any
system-wide executables.
Article
8.8
.
-
nom *
-
nom
("no match") supplies the names of the files in the current directory
that
don't
match the given shell wildcards.
For example, to
edit all files in the current directory that don't end in
.o
,
try:
vi `nom *.o`
Article
15.9
.
-
offset *
-
The
offset
shell script indents text for printing or other uses.
Article
35.7
.
-
oldlinks *
-
oldlinks
is a shell script that prints the names of "stale"
symbolic links.
Article
16.28
.
-
opttest *
-
opttest
is a shell script for parsing
getopt
output.
It's
meant to demonstrate
getopt
's behavior.
Article
44.18
.
-
paircheck *
-
paircheck
is an example script for making sure that
strings in a file have matching counterparts.
paircheck
checks that each
.TS
in a given
troff
file has a
corresponding
.TE
; but it's easy to modify to check other
kinds of pairs.
Article
29.9
.
-
patch, Version 2.1
-
patch
is Larry Wall's program for distributing source patches to
files.
By using
diff
files (generally "context"
diff
s),
patch
can
intelligently apply patches to a file even if modifications have been
made to the source in the meantime.
patch
is used extensively to
communicate source changes throughout the world.
Article
33.9
.
-
pcal, Version 4.3
-
pcal
generates PostScript to produce landscape or
portrait calendars for any month and year.
By default,
pcal
simply prints an empty calendar.
Its real power is in its
ability to place "events" in appropriate days on the calendar, thus
allowing the user to create personalized calendars.
Article
48.9
.
-
perl, Version 5
-
perl
(Practical Extraction and Report Language) is an
interpreted language optimized for scanning arbitrary text files,
extracting information from those text files, and printing reports
based on that information. It has exceptionally powerful string, file,
and system routines to quickly create almost any utility. An added
debugger makes
perl
an attractive alternative to
awk
or
gawk
.
perl
5 is a new and improved version of
perl
4.
Article
37.5
tells some of what's new.
-
phone *
-
phone
is a shell script that displays lines in a file
called
phone
,
matching the given string to standard output.
It is also linked
to the name
address
, in which case it returns matching lines in a
file named
address
to
stdout
.
Article
48.2
.
-
pipegrep *
-
pipegrep
searches through the output of a series of commands,
printing the command that produced each line of output.
Article
27.13
.
-
pstext
-
pstext
is a utility for converting text files to PostScript
files - usually for a PostScript printer.
It includes options for printing "landscape" mode, for
specifying a font, and for specifying a point size.
Article
43.22
.
-
psutils, Version 1.17
-
psutils
is a collection of utilities for manipulating
PostScript documents: rearranging pages, printing only some pages, and
so on.
Articles
43.23
and
43.24
.
-
pushin *
-
pushin
is a
sed
script that removes any extra
white space characters in a file and sends the result to
standard output.
Article
25.13
.
-
qcsh *
-
The
qcsh
file has a shell function that lets you use C shell features
such as the
curly brace (
{}
) operators (
9.5
)
from either the Bourne or Korn shell.
Article
15.3
.
-
qsubst
-
qsubst
is designed for substituting strings in (large) files.
It
accepts a list of filenames and two strings.
For each of the files,
qsubst
modifies it in-place to replace
string1
with
string2
wherever the user approves the change.
Article
33.10
.
-
qterm
-
qterm
is a program that queries terminals to find out what kind of
terminal is responding.
It is useful to "automagically" define your
terminal type.
It prints the name of the terminal
(such as "vt100") to standard output.
(This name is hopefully compatible
with a
termcap/terminfo
name on your system.)
Article
5.5
.
-
rcs, Version 5.7.0
-
rcs
(Revision Control System) is a set of
commands for managing multiple revisions of files.
rcs
automates the storing, retrieval, logging,
identification, and merging
of revisions.
rcs
is useful for text that
is revised frequently; for example
programs, documentation, graphics, papers, and form letters.
Article
20.14
.
-
rcsegrep.fast *
-
rcsegrep.fast
is a shell script (written mostly in
nawk
)
that searches the most recent revision of one or more RCS files
for a given string.
It's fast because it reads the RCS file directly.
Only recommended when you have a lot of files to search;
use
rcsgrep
otherwise.
Article
27.10
.
-
rcsgrep *
-
rcsgrep
is a shell script that searches revisions
of RCS files for a given string.
Can also be called through links named
rcsegrep
and
rcsfgrep
.
Article
27.10
.
-
rcsrevs *
-
rcsrevs
is a shell script that lists all the revision numbers
archived in an RCS file.
Article
20.15
.
-
recomment *
-
The
recomment
shell script runs
fmt
(
30.37
)
on files with
lines that are commented out, with wrapped lines recommented.
Article
35.4
.
-
redo *
-
redo
is a utility that allows you to browse through, edit,
and execute commands on your C shell history list.
It is a C shell
script that is sourced in using an alias.
This alias appears in the
csh_init
file.
Article
11.14
.
-
relink *
-
relink
is a
perl
script for relinking multiple
files, similar to the
rename
script.
Article
18.14
.
-
ren
-
ren
is a program that can rename many files
according to search and replacement patterns, ala
VMS (but better).
ren
checks for replacement name collisions and
handles
rename chains gracefully.
Article
18.11
.
-
rename *
-
rename
is a
perl
script for renaming multiple files.
Article
18.10
.
-
rot
-
rot
rotates a file, so that lines become columns, and vice versa.
Without any options, the file will be rotated clockwise.
Article
35.23
.
-
runsed *
-
The
runsed
shell script runs the
sed
commands in a
file called
sedscr
on the specified files, overwriting
the original files.
Article
34.3
.
-
runtime *
-
runtime
repeatedly executes
time
on a given command
and then reports the average time taken over those iterations.
The actual output of the command is discarded.
Article
39.4
.
-
sc, Version 6.21
-
sc
is a spreadsheet calculator based on
rectangular tables, much like a
financial spreadsheet.
Article
49.8
.
-
screen, Version 3.7.2
-
screen
is a window manager that allows you to handle several
independent screens (UNIX
pty
s (
41.8
)
)
on a single physical terminal.
Articles
12.9
and
3.7
.
-
screensize *
-
The
screensize
file contains 69 lines of text, starting at 69
and ending at 1.
You can use this file to determine how many rows are displaying on
your screen, with:
cat screensize
Article
42.6
.
-
script.tidy *
-
script.tidy
uses
sed
to clean up files generated
with the
script
program.
Article
51.6
.
-
search.el *
-
The
search.el
file contains a set of Emacs search commands.
To use
these commands, use the
load-file
command in your
$HOME/.emacs
file to point to this file.
Article
32.8
.
-
sedman *
-
sedman
is a
sed
script for formatting
simple manual pages.
Article
43.19
.
-
sh_init *
-
The
sh_init
file is a collection of Bourne-type shell function
and alias definitions that are shown throughout the book.
Most of these are also available as C shell functions
in the
csh_init
file.
In its distribution
form, each set of commands is commented out and needs to be explicitly
uncommented before you can use them; this is because many of the
definitions override or conflict with one another.
You can copy or
source (
44.23
)
the file into your
shell setup file (
2.2
)
,
and then enable the
definitions that you want.
Articles
2.15
,
7.5
,
7.6
,
7.8
,
7.11
,
7.12
,
14.9
,
14.14
,
15.5
,
16.26
,
16.27
,
17.4
,
17.23
,
22.2
,
22.9
,
25.17
,
29.8
,
30.20
,
43.8
,
and
50.8
.
-
sh_logout *
-
The
sh_logout
file contains a set of commands for
removing temporary files.
Bourne-type shell users can input these commands
into their logout file (such as
.bash_logout
).
Article
21.3
.
-
GNU Shell Archive Utilities (sharutils), Version 4.2
-
The GNU
sharutils
package is a set of tools to create and unpack
shell archives.
sharutils
makes it easier to ship sources around
by email. The package includes
shar
,
unshar
,
uuencode
,
uudecode
,
mail-files
,
mailshar
, and
remsync
.
-
GNU Shell Utilities (shellutils), Version 1.11
-
GNU Shell Utilities is a package of small shell programming utilities.
These utilities are generally more robust and have more features
than the system-supplied alternatives.
Programs included are:
basename
,
date
,
dirname
,
env
,
expr
,
false
,
groups
,
id
,
nice
,
nohup
,
pathchk
,
printenv
,
printf
,
sleep
,
stty
,
tee
,
test
,
true
,
tty
,
uname
,
who
,
whoami
,
and
yes
.
Most of these programs are covered throughout the book.
Note that because
nice
,
stty
, and
uname
require facilities
that are not available on all systems, they are only
installed when appropriate.
-
showmatch *
-
The
showmatch
shell script shows the strings in a given
file that match the specified regular expression.
Article
26.6
.
-
sl *
-
sl
is a Perl script for showing the actual filenames for
symbolic links.
Article
18.8
.
-
sls
-
sls
is a program designed to overcome the limitations of the standard
UNIX
ls
program, providing a more consistent interface to file inode
information.
It is particularly designed for use by shell scripts to
make obtaining information about files easier.
It uses
printf
-style
format
strings to control the sorting and output of file information.
Article
16.29
.
-
smiley
-
smiley
is a "smiley server."
It can explain any smiley it knows,
or print one it knows at random.
Article
51.12
.
-
squoze *
-
squoze
is a utility for shrinking a huge directory.
Article
24.16
.
-
stat
-
stat
prints out the contents of an inode
(as it appears to the
stat(2)
system call) in
a human-readable format.
Article
21.13
.
-
stree *
-
stree
is a shell script that prints a simple directory tree.
Article
16.19
.
-
stripper *
-
stripper
is a simple shell script for stripping any
binary files in
$HOME/bin
that aren't already stripped.
Article
24.13
.
-
su *
-
The
su
shell script is a front-end to the system-wide
su
, for versions of
su
that don't
set your home directory or username properly in the new shell.
Article
22.22
.
-
GNU tar, Version 1.11.2
-
GNU
tar
is upwards compatible with the standard
tar
supplied with your operating system.
It adds
many new features including remote devices, compression,
multi-volume archives, the ability to extract to standard output,
the ability to extract using wildcards,
interactive confirmation, the ability to extract only "missing" files, and
the ability to store only files newer than a given date.
Article
19.6
.
-
tcap
-
tcap
is a utility that gives shell scripts access to
termcap
escape sequences, similar to
tput
.
It is generally distributed under the name
tc
.
We have
renamed it here to avoid confusion with the standard
tc
command
that is distributed under many operating systems.
Article
41.10
.
-
Tcl/tk, Versions 4.2p2/7.6p2
-
Tcl is a widely used shell-like language.
It's on the disc mostly because of
expect
, which is integrated on top of Tcl.
But Tcl is also very useful on its own.
tk
is a scripting language
that lets you integrate a graphical user interface on top of your
application.
Article
9.26
.
-
tcsh
-
tcsh
is a version of the Berkeley C shell, with the addition of a
command line editor; command and filename completion, listing, etc.;
and several small additions to the shell itself.
Article
8.3
.
-
termtest *
-
termtest
is a shell script that quickly sends repeated
characters to the screen.
You can use it to test your terminal
connection, by scanning for line noise or dropped characters.
Article
42.7
.
-
GNU Text Utilities (textutils), Version 1.20
-
The GNU text utilities are a collection of utilities for viewing,
manipulating, rendering, and combining text files. Programs included
are:
csplit
,
cut
,
paste
,
expand
, and
unexpand
.
-
tgrep
-
tgrep
only searches through files that contain text.
It is
useful for searching through directories that contain both
binary and text files.
Article
27.13
.
-
tm, Version 1.1 *
-
The
tm
script gives the current time in countries all over the world.
Article
6.7
.
-
tpipe
-
tpipe
is a simple utility program that can be used to split a UNIX
pipeline into two pipelines.
Like
tee
,
tpipe
transcribes its standard input to its standard
output.
But where
tee
writes an additional copy of its input to a
file,
tpipe
writes the additional copy to the input of another
pipeline that is specified as the argument to
tpipe
.
Article
13.11
.
-
tputinit
-
tputinit
is a shell script for simulating the terminal
initialization commands generated by
tput init
.
It
can be used on systems with older versions of
tput
that
don't support the
init
keyword.
Article
5.12
.
-
triplespace *
-
triplespace
is a
sed
script that triple-spaces text and
sends the result to standard output.
Article
25.12
.
-
twin
-
twin
is used to compare two similar files.
They will be displayed side-by-side with any mismatched lines
shown in reverse video.
Article
28.5
.
-
GNU unexpand, Version 1.20
-
GNU
unexpand
converts space characters into TABs
at 8-column tabstops.
unexpand
is part of the
textutils
package.
Article
24.6
.
-
vgrep *
-
The
vgrep
shell script supplies a list of filenames that
don't contain the given string.
It's sort of a
grep -v
for complete files instead of for individual lines.
Article
15.8
.
-
vis
-
vis
is a program
that repeatedly executes a specified command and refreshes the display
of its output on the screen.
Article
51.7
.
-
vtree, Version 1.2
-
vtree
gives a visual directory tree,
designed to show the layout of a
directory tree or filesystem.
It has options to show the amount of
storage being taken up in each directory, count the number of inodes,
etc.
Article
16.20
.
-
watchq *
-
watchq
is a
daemon script (
1.14
)
that monitors the queues for several
printers and sends messages to users when errors occur.
Article
38.11
.
-
whereiz *
-
whereiz
lists all executables in your path that match the
given name.
Article
4.10
.
-
which
-
which
is an improved version of the standard
which
utility.
This version returns
the full expansion of
the command argument, be it either an alias, a shell function, or the
path to an executable file.
Article
50.8
.
-
wordfreq *
-
wordfreq
reports the number of times each word appears in a
given file.
Article
29.7
.
-
GNU xargs, Version 4.1
-
The GNU version of the
xargs
utility is used
to execute a command with many arguments.
Its
-0
option works with GNU
find
to avoid
problems in the standard
xargs
.
xargs
is part of the GNU
find
package.
Articles
9.21
and
9.22
.
-
xgrep *
-
Most
grep
-like programs search for lines that match a regular
expression, then outputs the entire lines.
xgrep
is a
sed
script that retrieves only the matching
text - not (necessarily) a whole line.
Article
43.21
.
-
xtail
-
xtail
watches the growth of files.
It is similar to
tail -f
, but can be used to
watch many files at once.
Article
25.18
.
-
zap *
-
zap
interactively allows you to kill processes by running
ps
and then querying you about killing each process reported by
ps
.
Comes with the script
pick
, which lets you choose from its
command-line arguments.
Article
38.13
.
-
zloop *
-
zloop
is a shell script for running a command on a set of
compressed files.
Article
24.10
.
-
zmore *
-
The
zmore
shell script runs
more
on compressed files.
It is also linked to the names
zpg
and
zless
.
Other links named
vmore
,
vpg
, and
vless
show
"unprintable" characters in a way you can see them without affecting
your screen.
Finally, links named
rcsmore
,
rcspg
and
rcsless
page through the latest revision of an RCS file - without
creating a working file.
Article
25.5
.
-
zvi *
-
zvi
is a shell script for running the
vi
editor on compressed files.
It is also
linked to the programs
zex
and
zed
for
running
ex
or
ed
on compressed files,
respectively.
Article
24.11
.