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.
Angst is an active sniffer, based on libpcap and libnet. It dumps into a file the payload of all the TCP packets received on the specified ports. It implements two methods for active sniffing. Angst is able to monitor ARP requests, and after enabling IP forwarding on the local host, it sends ARP replies mapping all IPs to the local MAC address. Also, it can flood the local network with random MAC addresses (like macof), causing switches to send packets to all ports.
auto nice daemon activates itself in certain intervals, and renices jobs according to their priority, and CPU usage. Jobs owned by root are left alone. Jobs are never increased in their priority. It is very flexible. The renice intervals can be adjusted, as well as the default nice level, and the activation intervals. A priority database stores user/group/job tuples along with their renice values for three CPU usage time ranges. The strategy for searching the priority database can be configured. Linux, OpenBSD, FreeBSD, Digital UNIX, Solaris, and IRIX are supported.
BFBTester is good for doing quick, proactive security checks of binary programs. BFBTester will perform checks of single and multiple argument command line overflows and environment variable overflows. It can also watch for tempfile creation activity to alert the user of any programs using unsafe tempfile names.
DNRD is a proxy DNS daemon. It supports several forward servers for redundancy and/or load-balancing. DNS queries for specific domains can be forwarded to a specific group of DNS servers (with redundancy and load balancing) for that domain. It is very useful in VPN and dialup environments but can also be used as a DNS cache or ad-blocker for networks and workstations.
Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and (optionally) DHCP to a small network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP/TFTP for network booting of diskless machines.
e3 is a full-screen, user-friendly text editor with an interface similar to that of either WordStar, Emacs, Pico, Nedit, or vi. It's heavily optimized for size and independent of libc or any other libraries, making it useful for mini-Linux distributions and rescue disks. The assembler version supports Linux, FreeBSD, OpenBSD, NetBSD, Win9x, QNX, Atheos, BeOS, ELKS, and DOS. There is also a separately distributed version written in C which supports some other Unix versions and CygWin. It is also possible to use regular expressions by using child processes like sed. e3 has a built in arithmetic calculator.
Euphoria is a simple, flexible, easy-to-learn programming language. It lets you quickly and easily develop programs for Windows, Linux, FreeBSD, NetbSD, OpenBSD, and Mac OS X. Although Euphoria provides subscript checking, uninitialized variable checking, and numerous other run-time checks, it is extremely fast and has the ability to compile to transparently compile native executables via C code.