Skip to content

dinghb/classic-shell-scripting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

      Code and Data for Classic Shell Scripting
		    [10-Jun-2005]

============== About the book

This directory contains all of the source code from Classic Shell Scripting, cataloged in this BibTeX database entry:

@String{pub-ORA-MEDIA           = "O'Reilly Media, Inc."}
@String{pub-ORA-MEDIA:adr       = "1005 Gravenstein Highway North,
				   Sebastopol, CA 95472, USA"}

@Book{Robbins:2005:CSS,
  author =       "Arnold Robbins and Nelson H. F. Beebe",
  title =        "Classic Shell Scripting",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xxii + 534",
  year =         "2005",
  ISBN =         "0-596-00595-4",
  ISBN-13 =      "978-0-596-00595-5",
  LCCN =         "????",
  bibdate =      "Fri Apr 15 07:42:17 2005",
  URL =          "http://www.oreilly.com/catalog/shellsrptg/",
  acknowledgement = ack-nhfb,
}

At the time of writing this, the US Library of Congress Catalog Number (LCCN) value has not yet been assigned, so its value is temporarily a string of question marks.

A Bell Labs ref-style entry with similar data is

%author    Arnold Robbins
%author    Nelson H. F. Beebe
%title     Classic Shell Scripting
%publisher O'Reilly Media, Inc.
%city      Sebastopol, CA 95472, USA
%date      2005
%pages     xxii + 534
%url       http://www.oreilly.com/catalog/shellsrptg/
%isbn      0-596-00595-4
%isbn13    978-0-596-00595-5

A refer-style entry looks like this ("man sortbib" describes the one-letter keys):

%A Arnold Robbins
%A Nelson H. F. Beebe
%T Classic Shell Scripting
%I O'Reilly Media, Inc.
%C Sebastopol, CA 95472, USA
%D 2005
%P xxii + 534
%X URL:    http://www.oreilly.com/catalog/shellsrptg/
%X ISBN:   0-596-00595-4
%X ISBN13: 978-0-596-00595-5

Because the 10-digit International Standard Book Number (ISBN) number space established in 1972 is running out of assignable numbers, effective 1-Jan-2007, it is replaced by a 13-digit value conforming to the European Article Numbering (EAN) system. To convert to the new system, existing ISBNs get the prefix 978-, and a final check digit that usually differs from the one in the old 10-digit system. Library catalogs and online booksellers started using the new 13-digit form in mid-2005, and you'll see much more of it in the future. New books have the ISBN-13 code printed at the bottom of the bar code on the back cover, without the embedded field-separator hyphens. Until the changeover date, the ISBN-10 is printed at the top of the bar code.

============ Code license

From the preface to the book, section Code Examples, p. xix:

``The code in this book is published under the terms of the GNU
General Public License (GPL), which allows copying, reuse,
and modification of the programs.  See the file COPYING included
with the examples for the exact terms of the license.''

The COPYING file is in the same directory as this README file.

========== Data files

The book's data files used in examples are available in two subdirectories:

$ ls dat
danish          is-sort-stable  my-friends  spanish-english
french-english  latin-numbers   sort-test

$ ls etc
chown-files  final.password  passwd-3  u1.passwd  unique2
dupids       old-new-list    passwd-4  u2.passwd  unique3

The /usr/dict/words file used in the book is from Sun Solaris 9, so we cannot distribute it here. Your system may have a file of that name, or it may have instead /usr/share/dict/words or /usr/share/lib/dict/words.

============= Shell scripts

The book's shell scripts are available as *.sh files in the sh subdirectory; when they get installed in a bin directory in the PATH, the .sh suffixes get stripped (this practice is common in the "make install" step in Unix Makefiles).

$ ls sh
build-all.sh                   looper-intsig.sh
debug-trap.sh                  looper.sh
desgml.sh                      merge-systems.sh
dexml.sh                       myspell.sh
diskhogs.sh                    pathfind.sh
english.sfx                    probreport.sh
err-trap.sh                    puser.sh
filesdirectories.sh            puzzle-help.sh
french.sfx                     show-identical-files.sh
getpubkey.sh                   simple-top.sh
iso8859-1-to-html-with-sed.sh  spell-with-aspell.sh
iso8859-1-to-html.sh           spell-with-ispell.sh
kp-spell.sh                    taglist.sh
looper-2.sh                    wf.sh

============ awk programs

The book's awk scripts are available as .sh files in the awk subdirectory:

$ ls awk
irand.awk  ofmt.awk   split.awk     test-good-irand.awk
join.awk   spell.awk  splitout.awk

============ Manual pages

Document for the book's larger programs are availabe in a variety of input and output formats in the man subdirectory:

$ ls man
Makefile        build-all.sok   myspell.ps     pathfind.pdf
build-all.html  build-all.texi  myspell.sok    pathfind.ps
build-all.info  myspell.html    myspell.texi   pathfind.sok
build-all.man   myspell.info    pathfind.html  pathfind.texi
build-all.pdf   myspell.man     pathfind.info
build-all.ps    myspell.pdf     pathfind.man

================= Software packages

Because we anticipate that at least three of the book's programs may be of wide interest, we have packaged them separately and given them their own Web and FTP sites (they each lead to the same physical directory):

ftp://ftp.math.utah.edu/pub/build-all
ftp://ftp.math.utah.edu/pub/myspell
ftp://ftp.math.utah.edu/pub/pathfind

http://www.math.utah.edu/pub/build-all
http://www.math.utah.edu/pub/myspell
http://www.math.utah.edu/pub/pathfind

Consult those locations for the latest versions, which may have evolved further from the frozen code at the book's Web site, and have the advantage of autoconfigure support.

You can fetch, verify a digital signature, unpack, build, validate, and install a distribution from one of those locations like this example:

$ wget http://www.math.utah.edu/pub/build-all/build-all-1.05.tar.gz
$ wget http://www.math.utah.edu/pub/build-all/build-all-1.05.tar.gz.sig
$ pgp build-all-1.05.tar.gz.sig
$ tar xfz build-all-1.05.tar.gz.sig
$ cd build-all-1.05
$ ./configure && make all check install

If your system lacks GNU tar, then that step is a bit more complex:

$ gunzip < build-all-1.05.tar.gz.sig | tar xf -

====================== Bibliographic database

Bibliography entries for the bibliography in the book were extracted from BibTeX entries in assorted database files maintained by the second author, and manually reformatted into Docbook/XML in the book's source files. The BibTeX entries are collected into a single database file with associated support files available at these locations:

ftp://ftp.math.utah.edu/pub/css.*
http://www.math.utah.edu/pub/tex/bib/index-table-c.html#css

================================ Uniform Resource Locators (URLs)

The book contains more than 150 Web addresses, some of which you may wish to visit, but probably don't care to retype. Here is a list of them, in lexicographical order by chapter:

Foreword

Preface
	http://www.cygwin.com/
	http://www.delorie.com/djgpp/
	http://www.mks.com/
	http://www.mkssoftware.com/products/tk/ds_tkpdev.asp
	http://www.opengroup.org/austin/papers/backgrounder.html
	http://www.opengroup.org/austin/papers/posix_faq.html
	http://www.oreilly.com/catalog/shellsrptg/
	http://www.research.att.com/sw/tools/uwin/
	http://www.unix.org/version3/
	http://www.unix.org/version3/online.html
	http://www.unix.org/

Chapter 1 --- Background
	http://netpbm.sourceforge.net/
	http://www.bell-labs.com/history/unix
	http://www.opengroup.org/publications/catalog/

Chapter 2 --- Getting Started
	ftp://ftp.gnu.org/gnu/gettext/
	http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Ousterhout's+dichotomy
	http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html
	http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt

Chapter 3 --- Searching and Substitutions
	ftp://ftp.cs.arizona.edu/agrep/agrep-2.04.tar.Z
	ftp://ftp.gnu.org/gnu/less/
	ftp://ftp.gnu.org/gnu/sed/
	ftp://rtfm.mit.edu/pub/faqs/editor-faq/sed
	http://sed.sourceforge.net/
	http://www.dreamwvr.com/sed-info/sed-faq.html
	http://www.tgries.de/agrep/337/agrep337.zip

Chapter 4 --- Text Processing Tools
	ftp://ftp.astron.com/pub/file/
	ftp://ftp.gnu.org/gnu/a2ps/
	ftp://ftp.gnu.org/gnu/coreutils/
	http://www.cups.org/
	http://www.lprng.org/
	http://www.marx-brothers.org/
	http://www.math.utah.edu/pub/lptops/
	http://www.math.utah.edu/pub/tgrind/
	http://www.math.utah.edu/pub/vgrind/

Chapter 5 --- Pipelines Can Do Amazing Things
	ftp://ftp.ox.ac.uk/pub/wordlists/
	ftp://ibiblio.org/pub/docs/books/gutenberg/etext96/pgw*
	ftp://qiclab.scn.rain.com/pub/wordlists/
	http://www.gutenberg.net/
	http://www.math.utah.edu/pub/sgml/
	http://www.math.utah.edu/pub/tex/bib/sgml.html
	http://www.math.utah.edu/pub/tex/bib/sgml2000.html
	http://www.math.utah.edu/pub/tex/bib/sqlbooks.html
	http://www.openoffice.org/
	http://www.phreak.org/html/wordlists.shtml
	http://www.tldp.org/

Chapter 6 --- Variables, Making Decisions, and Repeating Actions

Chapter 7 --- Input and Output, Files, and Command Evaluation

Chapter 8 --- Production Scripts
	http://www.info-zip.org/
	http://www.iso.ch/cate/d26780.html

Chapter 9 --- Enough awk to Be Dangerous
	ftp://ftp.gnu.org/gnu/gawk/
	ftp://ftp.gnu.org/gnu/texinfo/
	ftp://ftp.whidbey.net/pub/brennan/mawk-1.3.3.tar.gz
	http://awka.sourceforge.net/
	http://cm.bell-labs.com/who/bwk/awk.tar.gz
	http://mathworld.wolfram.com/AckermannFunction.html

Chapter 10 --- Working with Files
	ftp://ftp.geekreview.org/slocate/
	ftp://ftp.gnu.org/gnu/findutils/
	ftp://ftp.gnu.org/gnu/wget/
	ftp://ftp.gnupg.org/gcrypt/gnupg/
	ftp://ftp.internic.net/rfc/rfc1321.txt
	ftp://ftp.mktemp.org/pub/mktemp/
	http://math-www.uni-paderborn.de/pgp/
	http://pgp.mit.edu/
	http://pgp.mit.edu:11371/pks/lookup?op=get&search=KEYID-GOES-HERE
	http://pgp.zdv.uni-mainz.de/keyserver/pks-commands.html#extract
	http://sunrpms.maraudingpirates.org/HowTo.html
	http://sunsolve.sun.com/
	http://web.mit.edu/network/pgp.html
	http://www.cerberussystems.com/INFOSEC/stds/fip180-1.htm
	http://www.cl.cam.ac.uk/PGP/pks-commands.html#extract
	http://www.cosy.sbg.ac.at/~andi/SUNrand/pkg/random-0.7a.tar.gz
	http://www.gnupg.org/
	http://www.keyserver.net/en/
	http://www.math.utah.edu/pub/checksum/

Chapter 11 --- Extended Example: Merging User Databases
	http://linux.oreillynet.com/pub/a/linux/2002/05/09/uid.html

Chapter 12 --- Spellchecking
	ftp://ftp.gnu.org/gnu/aspell/
	ftp://ftp.gnu.org/gnu/non-gnu/ispell/
	ftp://labrea.stanford.edu/pub/dict/words.gz
	http://aspell.net/
	http://ficus-www.cs.ucla.edu/geoff/ispell.html
	http://www.math.utah.edu/pub/pawk/
	http://www.math.utah.edu/pub/tex/bib/index-table-s.html#spell
	http://www.tuhs.org/

Chapter 13 --- Processes
	ftp://ftp.cs.toronto.edu/pub/jdd/xcpustate/
	ftp://ftp.groupsys.com/pub/top/
	http://gridengine.sunsource.net/
	http://procps.sourceforge.net/
	http://supercluster.org/maui/
	http://supercluster.org/silver/
	http://www.apple.com/acg/xgrid/
	http://www.gnqs.org/
	http://www.ibm.com/servers/eserver/pseries/library/sp_books/loadleveler.html
	http://www.magnicomp.com/sysinfo/
	http://www.openpbs.org/
	http://www.platform.com/products/LSFfamily/
	http://www.scri.fsu.edu/pub/dqs
	http://www.sun.com/bigadmin/scripts/submittedScripts/quicktop.ksh.txt

Chapter 14 --- Shell Portability Issues and Extensions
	ftp://ftp.cwru.edu/pub/bash/bash-3.0-patches/
	ftp://ftp.gnu.org/gnu/bash/bash-3.0.tar.gz
	ftp://ftp.ncftp.com/ncftp/
	http://web.cs.mun.ca/~michael/pdksh/
	http://www.research.att.com/sw/download
	http://www.star.le.ac.uk/~tjg/rc/
	http://www.zsh.org/

Chapter 15 --- Secure Shell Scripts: Getting Started
	http://www.cerias.purdue.edu/
	http://www.courtesan.com/sudo
	http://www.faqs.org/faqs/unix-faq/faq/part4/section-7.html:

Appendix A --- Writing Manual Pages
	http://docs.sun.com/
	http://www.gnu.org/software/texinfo/
	http://www.math.utah.edu/pub/chkdelim/
	http://www.math.utah.edu/pub/dw/
	http://www.math.utah.edu/pub/man2html/
	http://www.math.utah.edu/pub/man2texi/
	http://www.tldp.org/
	http://www.troff.org/

Appendix B --- Files and Filesystems
	ftp://ftp.cs.wisc.edu/pub/paradyn/fuzz/
	ftp://ftp.cs.wisc.edu/pub/paradyn/technical_papers/fuzz*
	ftp://ftp.gnu.org/gnu/glibc/
	ftp://ftp.internic.net/rfc/rfc2279.txt
	ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/
	http://aa.usno.navy.mil/faq/docs/UT.html
	http://ethesis.helsinki.fi/julkaisut/oik/julki/pg/parviainen/
	http://lpf.ai.mit.edu/Links/prep.ai.mit.edu/patent-list
	http://www.boulder.nist.gov/timefreq/general/misc.htm
	http://www.cl.cam.ac.uk/~mgk25/ieee02-optical.pdf
	http://www.columbia.edu/kermit/
	http://www.ibm.com/linux/
	http://www.iso.ch/iso/en/CatalogueListPage.CatalogueList
	http://www.math.utah.edu/pub/dosmacux/
	http://www.math.utah.edu/pub/tex/bib/index-table.html
	http://www.npl.co.uk/time/time_scales.html
	http://www.openbsd.org/cgi-bin/man.cgi?query=getconf&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html
	http://www.openssh.org/
	http://www.ssh.com/
	http://www.zdnet.com/zdnn/stories/news/0,4586,2673461,00.html

Appendix C --- Important Unix Commands

Bibliography
	http://cm.bell-labs.com/cm/cs/awkbook
	http://cm.bell-labs.com/cm/cs/tpop
	http://cm.bell-labs.com/cm/cs/upe
	http://plan9.bell-labs.com/7thEdMan
	http://www.cs.bell-labs.com/cm/cs/pearls/
	http://www.opengroup.org/onlinepubs/007904975
	http://www.oreilly.com/catalog
	http://www.standards.ieee.org/
	http://www.w3.org/TR/REC-xml/

Glossary
	ftp://ftp.example.com/pub/xml/README
	ftp://ftp.gnu.org/gnu/rcs/
	ftp://ftp.isi.edu/rfc/
	http://lpf.ai.mit.edu/Links/prep.ai.mit.edu/patent-list
	http://patft.uspto.gov/netahtml/srchnum.htm
	http://www.bell-labs.com/history/unix/business.html
	http://www.ida.liu.se/~petfr/princprog/envpaper.pdf
	http://www.ietf.org/internet-drafts/
	http://www.jclark.com/
	http://www.openafs.org/
	http://www.transarc.ibm.com/
	http://www.unix.org/version3/

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors