The Advanced Bash Scripting Guide is both a reference and a tutorial on shell scripting. This comprehensive book, the equivalent of 1,000+ print pages, covers almost every aspect of shell scripting. It contains 382 profusely commented illustrative examples, a number of tables, and a cross-linked index/glossary. Not just a shell scripting tutorial, this book also provides an introduction to basic programming techniques, such as sorting and recursion. Included scripts are the Game of Life, a Perquackey variant, a Morse code trainer, and an implementation of the Gronsfeld Cipher. This book is suited for both individual study and classroom use. It covers Bash, up to and including version 4.2. Note that users of miniaturized single-board computers running Linux, such as the Raspberry Pi and the Beagle Bone, would find this Guide useful for learning and running Bash scripts to explore and expand the capabilities of these small, but powerful machines.
cgi-util is a fast, easy to use C library for creating CGI programs. Functions are available for initialization (parsing), grabbing fields (by string, integer, double or boolean value), embedding HTML files, and more. It accepts both POST and GET request methods and has extensive error handling.
spim is a self-contained software simulator for running R2000/R3000 assembly language programs. It reads and can immediately execute files containing assembly language code. spim also provides a debugger and simple set of operating system services. spim provides both a simple, textual interface and a fancier, graphical interface. The package includes complete source code and documentation.
Xclasses is a C layout library for the X Window System. All objects (called gadgets) are font sensitive, i.e. their size changes with the size of the used screen font and the size of the window. All this is done by Xclasses itself. The user may choose any kind of font style and size.
cvsroot is a script to help keep track of multiple sites when using CVS, and in particular the CVSROOT and CVS_RSH environment variables for those sites. It creates a $HOME/.cvsroot file, with shortcut names representing the different CVS sites. The new environment variables appropriate to the site selected will then be set, and a new shell will be spawned to keep the variables. In this way, you do not have to keep setting the environment yourself, and can rely on the script to keep track of things for you.
skill sends signals to processes given any combination of user names, ttys, commands, and pids. snice changes the priority of processes (given the same). They are similar to kill(1) and renice(8), but the commandline is order-independent. There are also verbose, search, and interactive modes of operation.