Stuff on the Unix Power Tools CD
Recently I started reading O'Reilly's Unix Power
Tools book. It comes with a CD containing all the programs
mentioned in the book. I don't like having to keep CDs, and
besides, it wasn't mine, so I decided to make sure all the
software on there was easily accessible on the web. Having
done that I can throw the CD away :-).
This page is intended for anyone else who has the book and CD,
to be reassured that all the useful stuff is available in a
reasonable manner and without having to fight with the oddball
'installer' included on the disc.
Here's an alphabetical listing of the disc's contents - see also
O'Reilly's listing of the
Unix Power Tools CD (which has download links for all the
programs in the form that they were stored on the CD). For each
program there is either a link to a reasonably recent,
downloadable version or else a reason why it's not featured on
any site like Freshmeat.
(Very many of the programs on the disc are not 'good enough' in
one way or another to merit a
Freshmeat entry. Please don't take this as criticism of
the programs' quality: in many cases they are intended more as
examples to learn from than as general-purpose tools you can
install and use. In other cases, they are useful tools but their
documentation is a mention in some section of the Power Tools
book, so they aren't able to stand alone as packages. And many
of them work well but duplicate functionality which is now a
standard part of Linux systems (especially the GNU tools). I
myself have written lots of small tools
which don't meet the Freshmeat standard. So don't think I
am bashing the programs' authors if I describe something as
'trivial'.)
- 80cols: few screens today are less than 80
columns.
- !: useful but untidy, I previously wrote from which does the same thing,
will merge them later
- addup: trivial
- age_file: use ls -l
- ascii: trivial
- awf: just use groff
- bash: GNU bash
- behead: trivial
- bitmaps: the Poskanzer Bitmap Collection. There ought to be a home on themes.org for this kind of thing... I'm still trying to find a place that will adopt these icons.
- bkedit: let vi do this
- bsdtar: use GNU tar; 14-character renaming probably not needed
- bsplit: use GNU split
- calen: not much point when we have cal, pscal, etc.
- cal_toda: let cal do this
- catsaway: it's only an example
- center: hardcoded 80 width
- cgrep: GNU grep does this
- cgrep_se: ditto. Matching a pattern across several lines is useful, but needs its own tool.
- checksed: trivial, not general enough
- chmod_ed: let the editor do this
- chunksor: maybe useful, but more efficient
in Perl, and too much shouting in documentation
- cleanup: example code only
- cleanup_: I doubt this is needed any more.
- clear: clear already exists on Linux, the
other commands are non-portable
- cls: probably not much use
- cols: probably rs could do the same job most of the time
- count_it: trivial
- count_ty: ditto
- cpmod: use GNU chmod --reference
- crontab: 'meant for systems that do not already provide interactive crontab editing' - Linux has a crontab command.
- crush: trivial
- csh_init: crusty and obsolete
- csh_logo: csh users or sysadmins can do this for themselves. It's just example code anyway.
- cvtbase: non-free
- date_mon: not general, and perl with Date::Manip does the job miles better
- delete: added to Freshmeat as athena-delete
- del: why?
- diff: GNU diff
- dir_path: trivial
- dirtop: /usr/5bin/echo hardcoded, I give up.
- doublesp: trivial
- ediff: part of Emacs
- elookfor: trivial with find+grep
- emacs: GNU emacs
- _emacs_m: let Emacs include 'favourite commands'
- _enter_c: example shell aliases, not worth packaging
- _enter_s: ditto
- _exit_cs: ditto
- _exit_sh: ditto
- exrc: let the vi maintainers collect macros
- fgrep: GNU grep
- fileutil: GNU fileutils
- findcmd: kludgy, no decent docs
- find: GNU find
- findtext: trivial with file(1) or perl's -T
- flip: use GNU tac
- fmt_sh: 'meant for systems that are not distributed with fmt'
- formprog: flaky
- ftpfile: example code; use wget instead
- gawk: GNU awk
- getmac: obscure troff stuff, obsolete
- getopt: use GNU getopt
- glimpse: already has a page: glimpse
- grabchar: todo
- grep: GNU grep
- groff: GNU groff
- gzip: GNU gzip
- head: use GNU textutils
- hey: flaky
- hgrep: perhaps too trivial? todo
- index: added to Freshmeat: index
- ipl: superseded by ploticus
- ispell: already out there: ispell
- jot: added to Freshmeat: jot. This is
the Athena port to Linux; NetBSD also maintains a port.
- lam: as for jot, added to Freshmeat: lam.
- lensort: trivial with Perl
- less: already out there: less
- lf: trivial, really just aliases
- lndir: broken (GNU's cp -s is just as functional but dies where lndir makes broken symlinks)
- logerrs: use tee and redirection
- longline: kinda pointless, terminal emulators should let you adjust them by specifying the size wanted
- lookfor: use find | xargs grep
- look: included in util-linux
- ls_today: trivial
- make_pri: example
- manindex: Linux has apropos
- motd_dif: trivial, shouting
- namesort: trivial
- netpbm: already out there: netpbm
- nextday: use a Perl oneliner with Date::Manip
- nom: I think bash's globs can do this, somehow
- no_run: requires editing the script, so not
neatly packageable
- offset: trivial
- oldlinks: use GNU ls --color
- opttest: use getopt(1)
- pairchec: requires editing the script
- patch: already out there: patch
- pcal: added to Freshmeat: pcal
- perl5: already out there: perl
- phone: trivial, use index or some other database instead
- pipegrep: no documentation
- pstext: use enscript or similar
- psutils: already out there: PSUtils
- pushin: use tr or perl or whatever
- qcsh: bash already has {} and other useful features
- qsubst: added to Freshmeat: qsubst
- qterm: todo
- rcs: already out there: RCS
- rcsegrep: kludgy, worse than rcsgrep
- rcsgrep: too flaky
- rcsrevs: standard RCS tools will do this kind of thing
- recommen: biased against it by shouting in usage instructions
- redo: C shell implementations should have this already
- relink: trivial
- ren: added to Freshmeat: ren. Apparently a newer
version of this program is called mmv.
- rename: this is Larry Wall's rename script
which comes with perl5 and is well known. For common cases use ren instead.
- rot: added to Freshmeat: rot
- rs: as for jot and lam, added to Freshmeat:
rs.
- runsed: pointless, use perl -i
- runtime: trivial
- sc: added to Freshmeat
- screen: already out there: screen
- screensi: too small for my screen!
- script_t: should be included with the
'script' program, if it is still needed
- search_e: why?
- sedman: argh, not another half-working manpage formatter
- sharutil: GNU sharutils
- shelluti: GNU shellutils
- sh_init: too miscellaneous
- sh_logou: more shell examples
- showmatc: why not grep? or perl?
- sls: use GNU ls or stat(1)
- sl: use ls -l
- smiley: non-free
- squoze: obsolete on modern filesystems
- stat: there are three different
implementations of this strewn across the 'net. Two of them are
hopefully merging and becoming part of GNU fileutils.
- stree: there must already be lots of tools for this
- stripper: trivial, just run strip
- su: wrapper for broken 'su's, not needed
- tar: GNU tar
- tcap: no documentation, probably tput already does the job
- tcsh: already out there: tcsh
- termtest: trivial, obsolete
- textutil: GNU textutils
- tgrep: GNU grep already does this
- tknew: already out there: Tcl/Tk
- tm: pointless
- tpipe: done by tctee from Perl Power Tools
- tputinit: for 'systems with older versions of tput'
- triplesp: trivial
- twin: GNU diff does this better
- vgrep: GNU grep -L does this
- vis: non-free
- vtree: todo
- watchq: trivial, lpq output is too variable for it to work well
- whereiz: flaky
- which: already out there: which
- wordfreq: trivial
- xgrep: use perl
- xtail: todo, maybe integrate into GNU tail
- zap: use top(1)
- zloop: trivial
- zmore: less filters already do this
- zvi: trivial, let the vi people handle this stuff
Edward Avis
Last modified: Wed Sep 26 18:02:33 BST 2001