Download Latest Version futil-2.4.tgz (62.9 kB)
Email in envelope

Get an email when there's a new version of Linux Utility Scripts

Home
Name Modified Size InfoDownloads / Week
archive 2010-12-12
futil 2010-05-01
README.txt 2010-12-12 33.2 kB
futil-2.4.tgz 2010-12-12 62.9 kB
Totals: 4 Items   96.0 kB 0
futil README
$Revision: 1.15 $

License
-------

Distributed under the terms of the Academic Free License, v2.1.
See the LICENSE.txt file for the terms and provisions.

Installation
------------

Using your usual login name, unpack the futil tar archive, change into the
extracted folder, and run the install.sh script.

For example, assuming the tar archive file is in your home directory and
you want the futil scripts to reside in ~/futil, do this:

	$ cd ~						# Change to your home directory
	$ tar -zxf ./futil-2.4.tgz	# Unpack the futil archive
	$ cd futil					# Change to the extracted futil folder
	$ ./install.sh				# Run the install script

This will create symlinks in your ~/bin directory, which will link to the
scripts in the unpacked futil folder.

Conversely, run ./uninstall.sh to remove the symlinks to uninstall the package.

IMPORTANT: Make sure ~/bin is in your $PATH. If not, then add it. Otherwise,
you will not gain access to the futil scripts at the shell command line.

Availability and Support
------------------------

See the project homepage at http://sourceforge.net/projects/futil

Description
-----------

The futil package includes various scripts to make using and managing a
Linux system more productive and efficient.

Indentation Style
-----------------

One tab = four spaces

Sudo Privilege
--------------

Some of the scripts use sudo(8) to switch to root, therefore you must have
sudo privilege for the operations to succeed. If a script requires sudo
privilege, it will say so in the DESCRIPTION section at the top of the script.

Contents
--------

archive        - Takes a compressed tar snapshot of the current working directory
base64         - Encode/decode ASCII/base64 text from stdin or the command line
biggest        - List keywords ordered by length
chpass         - Change UNIX login password on multiple hosts
cm2in          - Convert centimeters to inches
connect        - kermit(1) script to bring serial port 0 on-line
count          - Return a vector based on start, stop, and step values
create         - Create a comment header and start editing a source code file
cvss           - Show the status of the files in a CVS workarea
diskmon        - Display disk space stats at a specified periodic interval
dumpschema     - No frills approach to generating a listing of schema tables.
dumptables     - No frills approach to generating a compendium of database tables
fails2csv      - Extract ssh login failures as comma separated values
ffunlock       - Remove Firefox lock file
fnedit         - Find regex or string within files and edit the files
fwlog          - Monitor the firewall messages and display just the essential info
httpcode       - Display info about the supplied HTTP status code(s)
imback         - "I'm back": Re sync to network after resume from suspend
installmod     - Install the named CPAN Perl module
ip2name        - Lookup DNS names for the supplied IP addresses
kill-evolution - Kill lurking evolution(1) processes
lanmon         - Monitor the LAN for client activity
linkhere       - Make a symlink in ~/bin to a file in "."
lspm           - List manually installed CPAN Perl modules and versions
mhp            - Modify Headers parser
mm2in          - Convert millimeters to inches
mntshare       - Mount a Windows network share folder
newwin         - Open a new xterm(1) window with your favorite settings
pcvs           - pserver adapted cvs(1) command
phpinfo        - Run php_info() function to list the PHP config info
prman          - Format and print man(1) page(s) to a Postscript printer
prsrc          - Format and print source file(s) to a Postscript printer
prtxt          - Format and print text files(s) to a Postscript printer
psgrep         - Locate process by string in ps(1) sorted list
pstty          - Display processes associated with a specified pty
purl           - Parse URL strings to display the individual parameters
pushrc         - Push your basic ~/.rc files to remote host(s)
pushsshk       - Push your ssh public key(s) to remote host(s)
pushxauth      - Push the authority records for local X displays to a remote host
rdc            - Forward a remote desktop connection to a remote LAN via ssh
rpmgrep        - Search for installed RPM(s) using regex
scale          - Write a scale line (or fixed length comment) to stdout
scanlog        - Scan secure log for ssh login cracking attempts
shellfns       - Some handy functions for your shell
sortbyid       - Sort passwd or group entries on stdin in ascending order
sortbyip       - Sort IP addresses on stdin in ascending order
spinloop       - Run some children in a tight loop to put load on the processor
startwf        - Configure and start WLAN interface using profile names
sysbackup      - Backup key operating system configuration files
syserr         - C program that displays the error message for a system error number
systray        - Launch common system configuration applications by keyword
taillog        - Tail a remote server's logfile in real-time
vnc            - Forward a vnc connection to remote LAN via ssh
wt             - "Who's there?" on the LAN

LICENSE.txt    - the Academic Free License, v2.1
README.txt     - This file
install.sh     - Installs the futil symlinks in ~/bin
uninstall.sh   - Removes the futil symlinks from ~/bin

Abbreviations
-------------

ARP            - Address Resolution Protocol
CPAN           - Comprehensive Perl Archive Network
CTS            - Clear to Send
CVS            - Concurrent Versions System
DNS            - Domain Name Service
EUID           - Effective User ID (see the setuid man page)
LAN            - Local Area Network
RDC            - Remote Desktop Connection
regex          - Regular Expression(s)
RPM            - Red Hat Package Manager
RTS            - Request to Send
SMB            - Server Message Block (the Windows file sharing protocol)
ssh            - Secure Shell
sudo           - Switch User and Do
vnc            - Virtual Network Computing
VPN            - Virtual Private Network
WEP            - Wireless Encryption Protocol
WLAN           - Wireless Local Area Network

Details
-------

archive

	Takes a compressed tar(1) snapshot of the current working directory,
	and saves it to an archive area.

	Notes:

	The script uses sudo(8) to switch to EUID root. Therefore, you must
	have sudo privileges for the operation to succeed.

	To restore the files from the archive to the current working directory,
	preserving the original owner, group, access time, and permissions,
	use a tar(1) command like the following:

	tar --atime-preserve --bzip --extract --preserve-permissions \
	--file /export/backups/archive/archive-archive-pid3473.tbz

base64

	A Perl script, which converts ASCII text input to base64, or base64
	input to ASCII text.

	Note: Work in progress.

biggest

	A Perl script, which lists the supplied keywords in order by length.

	Example:

		biggest a, bb, ccc, dddd, eeeee, ffffff, ggggggg, ...

	Output will look like the following:

		7 ggggggg
		6 ffffff
		5 eeeee
		4 dddd
		3 ccc
		2 bb
		1 a

chpass

	Calls passmass(1) to change the login password on multiple hosts.

	The process is:

	1. Read the ~/.chpass file for a list of hosts

	2. If -nocheck is specified, skip to step 3. Otherwise, attempt to
	ssh(1) to each host and confirm that it's possible to login.

	3. If the user OKs proceeding, then collect the current and new login
	passwords.

	4. Use passmass(1) to login to each host in ~/.chpass, run passwd(1),
	and change the password.

cm2in

	Converts centimeters to inches (or polygon dimensions in centimeters
	to inches).

	Example 1:

		cm2in 2.54

	Output will look like:

		1.0 in

	Example 2:

		cm2in 2.54 25.4 254.00

	Output will look like the following:

		1.0 x 10.0 x 100.0 in

connect

	A quick kermit(1) wrapper that opens a connection to serial port 0.

	Example:

		connect

	Result:

		Connects to serial port 0, at 38,400 BAUD, with RTS/CTS
		flow control.

count

	A useful function within shell programs, as a for-loop primer.

	Example 1: Loop from 1 to 100.

		for i in `count 1 100`; do
			echo Loop iteration $i
		done

	Example 2: Count from 2 to 20 by twos.

		$ count 2 20 2
		2 4 6 8 10 12 14 16 18 20

create

	A Perl script, which creates comment header templates, sometimes
	with prototype code, for various coding types including .c, .cpp,
	.exp (expect), .java, .php, .pl, .pm, .py, .sh, and .tcl.

	Note: If the named file already exists, the header template will be
	prepended to the existing file content.

	If the file doesn't exist, then it will be created, with the template
	content at the beginning

	In either case, the resulting file will be brought up in $EDITOR
	automatically, so you can start editing it further.

	Example:

		create myscript.pl

	Creates a Perl-style template for "myscript.pl" and brings it up
	in $EDITOR.

cvss

	Lists the status of CVS files in the current working directory
	and below.

	Example:

		cvss

	Output will look like:

		File: cvss.sh           Status: Up-to-date

	Tip: Try the "-lm" option, to see just the files with "Locally
	Modified" status

diskmon

	Displays the disk space stats at the specified periodic interval.

	The interval may be specified in the ~/.futilrc file (1,800 sec or
	30 min by default), or may be specified directly on the command line.

	Example:

		diskmon 20

	This displays the disk space stats every 20 seconds.

	On Cygwin, the output will look like:

		diskmon: Display a disk stats snapshot every 1800 seconds.

		Fri Aug  1 10:54:59 PDT 2008
		Filesystem           1M-blocks      Used Available Use% Mounted on
		C:\cygwin\bin            41685     14638     27047  36% /usr/bin
		C:\cygwin\lib            41685     14638     27047  36% /usr/lib
		C:\cygwin                41685     14638     27047  36% /
		c:                       41685     14638     27047  36% /cygdrive/c
		d:                       30711       486     30225   2% /cygdrive/d
		h:                      844339    777159     67180  93% /cygdrive/h

		...

dumpschema

	A no frills approach to generating an HTML listing of schema tables.

	This script will dump a MySQL or Oracle database schema so a webpage of
	properties is produced.

	Process:

	1. Make a list of the database tables in the tables.txt file.

	2. Run dumpschema to produce a query.sql output file.

	3. Invoke a SQL client using the query.sql file as input and get HTML out.

	See the dumpschema script's comment block for futher information.

dumptables

	No frills approach to generating a compendium of database tables.

	This script will dump a MySQL or Oracle databaesetables so a webpage of
	their elements is produced.

	Process:

	1. Make a list of the database tables in the tables.txt file.

	2. Run dumptables to produce a query.sql output file.

	3. Invoke a SQL client using the query.sql file as input and get HTML out.

	See the dumptables script's comment block for further information.

ffunlock

	Removes the Firefox web browser lock file.

	This script is useful when the Firefox browser has terminated
	abnormally, leaving its lock file behind, which prevents a subsequent
	browser instance from running.

	Example:

		ffunlock

	Output will look like:

		Lock file found:
		lrwxrwxrwx  1 username usergroup 15 Dec 10 16:43 /home/username/.mozilla/firefox/abcdef5b.default/lock -> 127.0.0.1:+1235
		Do you want to delete it? (y/[n])

	Or:

		No lock file found.

fnedit

	Find a regex or literal string in files and then edit them.

	This script combines egrep(1) searches with $EDITOR invocations.

	For example, say you want to edit all files that contain the string
	#include "api_errno.h", then run fnedit this way:

		fnedit "#include \"api_errno\\.h\"" *.c *.h

	The above will launch $EDITOR with the list of files that contain
	the string. Furthermore, the string can be a regular expression,
	allowing the full power of regex to be applied.

httpcode

	Display info about the supplied HTTP status code(s).

	Always wanted more info at your finger tips about what those pesky
	HTTP status codes really mean? Then httpcode is your friend!

	Example:

		httpcode 303

	Output will look like:

		WATS.ca - web accessibility technical services | HTTP Status Codes (and what they mean)

		HTTP Code 303:
		See Other/Redirect

		A preferred alternative source should be used at present.

imback

	Useful to bounce the active network interface and re sync to the
	network timehost, following resume from suspend state.

	Example:

		imback eth1

	Output will look like:

		Stopping eth1
		Starting eth1
		Syncing to Internet timehost
		sudo ntpdate -u time.nist.gov
		Looking for host time.nist.gov and service ntp
		host found : time.nist.gov
		11 Dec 05:55:26 ntpdate[1343]: adjust time server 192.43.244.18 offset -0.013870 sec

	Notes:

	1. "imback" stands for "I'm back!"

	2. "eth0" is assumed by default.

	3. "time.nist.gov" is assumed as the network timehost by default.

installmod

	Installs the named CPAN Perl module; requires sudo privilege.

	Note: installmod uses sudo(8), because storing into the /usr/lib/perl5
	area will often require it. Therefore, you must have sudo(8) privilege
	for the operation to succeed.

	Example 1:

		installmod Net::SSL

	Example 2:

		installmod Bundle::CPAN

ip2name

	Looks up the supplied IP address(es) and returns the canonical
	names as comma-separated values, which may then be imported into a
	spreadsheet program if desired.

	Example:

		ip2name 216.109.117.107 216.109.117.108 216.109.117.109

	Output will look like:

		216.109.117.107,p22.www.dcn.yahoo.com
		216.109.117.108,p23.www.dcn.yahoo.com
		216.109.117.109,p24.www.dcn.yahoo.com

kill-evolution

	Sometimes if the evolution(1) personal information manager dies,
	it isn't possible to restart it successfully until its supporting
	processes are killed, too. This script kills the lurkers, so evolution
	can be restarted cleanly.

	Example:

		kill-evolution

	Output will look like:

		Killing processes:
		123 456 789

	Or:

		No lurkers!

lanmon

	Runs tcpdump(1) in promiscuous mode to monitor the LAN, while
	filtering out localhost transactions. This results in a display of
	remote client transactions.

	Note: lanmon uses sudo(8), because managing the local network interface
	will require it. Therefore, you must have sudo(8) privilege for the
	operation to succeed.

	Example:

		lanmon

	Output will look like:

		tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
		listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
		03:47:38.716661 arp who-has host1 tell server1.foo.com
		03:47:39.716427 arp who-has host1 tell server1.foo.com
		03:47:40.716199 arp who-has host1 tell server1.foo.com
		...

linkhere

	Very useful script, which will set a symlink in your ~/bin directory
	to point to the named object in the current working directory.

	This allows you to effectively add executable files to your ~/bin
	directory, which reside somewhere else. Furthermore, if the files
	are in your CVS workarea, then you can work on them, and execute
	them from the shell command line, too. So who says "You can't have
	your cake and eat it too?"

	Example:

		linkhere myscript.pl

	Output will look like:

		Linking /home/username/bin/myscript -> ./myscript.pl

	Now, type "myscript" at the shell command line, and it will execute
	directly.

lspm

	List all the locally installed Perl modules.

	Example:

		lspm

	Output will look like:

		Compress::Zlib,1.40
		Crypt::SSLeay,0.51
		DBD::Oracle,1.16
		libwww-perl,???
		Perl,5.8.3
		Time::HiRes,1.68
		Time::Local,1.11
		XML::LibXML,1.58
		XML::LibXML::Common,0.13
		XML::NamespaceSupport,1.09
		XML::SAX,0.12
		XML::Twig,3.17

	Note: Not all the installed Perl modules will be listed, just the
	ones locally installed by the "perl -MCPAN" package.

mhp

	Modify Headers parser: Uncompresses and parses the exported data
	from the Firefox Modify Headers add-on and extracts the <header>
	elements, one element per line. The resulting output can be sorted,
	manually edited, and otherwise manipulated, then compressed back,
	and re-imported to the Modify Headers add-on.

mm2in

	Convert millimeters to inches.

	Example 1:

		mm2in 25.4

	Output will look like:

		1.0 in

	Example 2:

		mm2in 25.4 254 2540

	Output will look like:

		1.0 x 10.0 x 100.0 in

newwin

	Open a new xterm(1) window with your favorite settings.

	Example:

		newwin

	This invokes a new xterm(1) window with your favorite settings.

	Since the default xterm settings are clunky, unconventional, and
	ultimately lacking, use newwin as is or customize the settings the way
	you like them. By default, the window size will be 95 cols x 35 rows,
	the xterm scrollbar will be placed on the right-hand side, there will
	be 8K lines scrollback buffer, and the visable alert will be enabled.

mntshare

	Mount a remote Windows Share for local access by Linux.

	Example:

		mntshare corp/george //filer/share

	This mounts the Windows UNC "//filer/share" locally as
	"/mnt/filer/share", using the Windows "corp" domain and user "george".

	Notes:

	1. mntshare uses sudo(8), because performing a mount operation
	will require it. Therefore, you must have sudo(8) privilege for the
	operation to succeed.

	2. It also uses the smbmount(8) command. On Ubuntu, this requires the
	smbfs package to be installed. On Fedora, it requires the samba-client
	RPM to be installed.

	3. You will also be prompted to supply your Windows password.

	4. mntshare doesn't apply to Cygwin.

pcvs

	Command line access to a pserver-based CVS repository on the local
	network or the Internet.

	Anonymous or authenticated access may be used; anonymous access
	is assumed by default.

	The following environment variables apply:

		PCVSHOST    The CVS server hostname ("cvs.sourceforge.net" assumed)
		PCVSUSER    The CVS username ("anonymous" assumed)
		PCVSROOT    The CVSROOT ("/cvsroot" assumed)
		PCVSPROJECT The CVS project name (none assumed)

	Command usage is just like the cvs(1) command, but the above
	environment variable values will be used automatically.

	Example:

		PCVSPROJECT=futil; export PCVSPROJECT
		cd futil/pcvs
		pcvs status

	Output will look like:

		cvs status: Examining .
		===================================================================
		File: pcvs.sh           Status: Up-to-date

		Working revision:    1.1.1.1
		Repository revision: 1.1.1.1 /cvsroot/futil/futil/pcvs/pcvs.sh,v
		Sticky Tag:          (none)
		Sticky Date:         (none)
		Sticky Options:      (none)

phpinfo

	Writes an HTML page to stdout that describes the local PHP installation
	in great detail.

prman

	Formats and spools a man(1) page to the default printer in Postscript
	format.

	You may give the man section followed by one or more man page names
	to be printed (see Example 2).

	Note: The $MANPATH environment variable provides the colon-separated
	list of directories to search.

	Example 1:

		prman 1 cat echo ls

	Output will look like:

		Printing man page /usr/share/man/man1/cat.1
		Printing man page /usr/share/man/man1/echo.1
		Printing man page /usr/share/man/man1/ls.1
		3 man pages sent to the printer

	Example 2:

		prman -s 3 malloc

	Output will look like:

		Printing man page /usr/share/man/man3/malloc.3
		1 man pages sent to the printer

prsrc

	Formats and spools the named source file(s) to the default printer
	in Postscript format.

	Output will be line wrapped, will include line numbers, indented using
	1 tab = 4 spaces, and will be formatted in Courier 9pt font by default.

	If $PRINTER is set in the shell environment, then the output will
	be sent to that printer. Otherwise, it will be sent to the system
	default printer (if any).

	Example:

		prsrc prsrc.sh

	Output will look like:

		1 files sent to the printer

prtxt

	Formats and spools a text file to the default printer in Postscript
	format.

	Output will be line wrapped, indented using 1 tab = 4 spaces, and
	will be formatted in Courier 9pt font by default.

	If $PRINTER is set in the shell environment, then the output will
	be sent to that printer. Otherwise, it will be sent to the system
	default printer (if any).

	Example:

		prtxt prtxt.sh

	Output will look like:

		1 files sent to the printer

psgrep

	Runs ps(1), displays processes ordered and indented by by parent-child
	relationships, configures a simple regex string search, and pipes
	the output through $PAGER. The search string hits are highlighted
	and researchable as well.

	Example:

		psgrep 'k*'

	Output will look like:

				UID        PID  PPID  C STIME TTY          TIME CMD
		root         1     0  0 02:58 ?        00:00:01 init [5]
		root         2     1  0 02:58 ?        00:00:00   [ksoftirqd/0]
		root         3     1  0 02:58 ?        00:00:10   [events/0]
		root         4     3  0 02:58 ?        00:00:00     [khelper]
		root        16     3  0 02:58 ?        00:00:00     [kacpid]
		root       164     3  0 02:58 ?        00:00:00     [kblockd/0]
		...

	All strings starting with 'k', such as those shown above, will be
	highlighted and researchable.

pstty

	Display processes associated with a specific interactive session (pty).

	The processes will be ordered and indented by parent-child relationships.

	Example:

		pstty 1

	Output will look like:

		root   4535  4534  0 03:00 pts/2    00:00:00       /bin/ksh
		root   4834  4535  0 03:14 pts/2    00:00:00         xclock
		root   4872  4535  0 03:23 pts/2    00:00:01         vi README.txt
		...

	Tip: Use the w(1) command to display candidates of interest for pstty.

purl

	purl parses the URLs in one or more named files (or stdin) separating
	the individual parameters to make them easier to see.

pushrc

	Push common .rc configuration files to one or more remote systems.

	Note: Transport occurs using scp(1), so the remote system must be
	running the ssh service (sshd).

	The following files will be pushed (if present):

		.bash_logout, .bash_profile, .bashrc, .exrc, .ksh_dirfns,
		.kshexit, .kshinit, .ksh_lpna, .kshrc, .mailrc, and .profile

	Tip: Use pushsshk first, to push your ssh public key(s) to the
	remote systems, so you will not have to type in your password over
	and over again.

pushsshk

	Push your ssh(1) public key(s) to one or more remote systems.

	Note: Transport occurs using scp(1) and ssh(1) is used also; so the
	remote system must be running the ssh service (sshd).

	Example:

		pushsshk remote-host ...

	Tip: Generate your ssh key pair(s) first using the ssh-keygen(1)
	command.

	For example, to create a DSA key pair:

		ssh-keygen -t dsa

	Follow the prompts; once the key pair is created, then run pushsshk
	to distribute the public key to the remote systems.

pushxauth

	Push the authority records for local X displays to a remote host.

	Example:

		pushxauth remote-host

rdc

	Opens a remote desktop connection (rdc), to a Windows system on a
	remote LAN, using ssh forwarding.

	You probably know how to use the Linux rdesktop(1) command. What's
	less obvious is how to run rdesktop to access a Windows system on a
	remote LAN, using a secure connection. With ssh forwarding, this is
	possible but it's non-trivial to configure. That's where this script
	comes in handy.

	Process overview:

	1) Run rdc to open an authenticated and encrypted ssh connection
	to the remote gateway.

	Note: A username on the gateway server is required, and you will
	have to authenticate by providing the password for that username.

	2) The gateway will create a standard connection to the remote
	Windows system, and forward the rdc packets to it.

	3) In another local window or shell, you open a connection to the
	remote Windows system by connecting to the localhost sshd ("rdc
	connect").

	4) The RDC desktop appears on your local machine and you proceed
	with using the remote desktop as usual.

	Custom configuration:

	Modify the script default settings to meet your network environment
	requirements. The script makes the following assumptions by default:

	local_port=3389        # The port that Windows listens to for RDC connections
	network=192.168.1      # The network address of the remote LAN
	server_port=3389       # The port localhost listens to for RDC connections
	gateway=GATEWAY        # The canonical hostname of the remote gateway
	gateway_user=USERNAME  # The username on the remote gateway

	Usage example:

		rdc 101		# Open a connection to 192.168.1.101 remote system
		rdc connect # Connect locally to the established RDC connection

	Tip: Local firewall configuration can be an issue. Make sure your
	firewall accepts loop-back connections for $server_port in particular.

rpmgrep

	List installed RPM packages on the system using a regular expression.

	Example:

		rpmgrep 'lib-[0-9][0-9]*'

	Output will look like:

		alsa-lib-1.0.3a-2
		dbus-glib-0.20-4.1
		glib-1.2.10-12.1.1
		iiimf-client-lib-11.4-43
		iiimf-protocol-lib-11.4-43
		imlib-1.9.13-19
		rhnlib-1.5-1.1
		zlib-1.2.1.2-0.fc2

scale

	A Perl script, which writes an 80-character scaled or comment line
	to stdout. It's useful for aligning text or comment blocks in your
	code. It recognizes various programming language commenting styles,
	when you supply the relevant file extension on the command line
	(see the supported extensions below). If no extension is given,
	then a simple scale line, as shown below, is output.

	Usage:

		scale [.c|.java|.php|.pl|.sh]

	Example 1:

		scale

	Output will look like:

		1---+----1----+----2----+----3----+----4----+----5----+----6--- ...

	Example 2:

		scale .c

	Output will look like:

		/************************************************************** ...

	Example 3:

		scale .py -or- scale .pl

	Output will look like:

		############################################################### ...

scanlog

	Scans the /var/log/secure file for ssh cracking attempts. The finds
	are reported on stdout.

	Note: Run scanlog using sudo(8), because the secure log permissions
	will usually require it.

	Example:

		sudo scanlog

shellfns

	A set of handy functions for your shell (bash or ksh compatible).

	Included
	--------

	attr     - Manage the immutable bit on the passwd and group files
	codiff   - Checkout $1 from RCS and diff it to ./$1
	cvsroot  - Set or display the CVSROOT and CVS_RSH environment variables
	pycat    - Expands tabs and cats file (useful for Python files)
	setcert  - Set client certificate
	setdb    - Connect to database using registered username and SID(s)
	setdsp   - Set or display the DISPLAY environment variable
	setlcl   - Set or display the locale (LC_ALL environment variable)
	tbz      - tar | bzip2
	tgz      - tar | gzip
	untbz    - bzip2 | tar
	untgz    - gzip | tar
	wh       - List filenames which have the supplied string

	Also, the dirfns.ksh file contains cd, pushd, popd, and dirs functions
	for ksh(1).

sortbyid

	Sorts lines from /etc/passwd or /etc/group on stdin, in ascending
	order by UID or GID, respectively.

	Example 1:

		sudo vi /etc/passwd
		!}sortbyid

	The /etc/passwd lines will be sorted by UID.

	Example 2:

		sudo vi /etc/group
		!}sortbyid

	The /etc/group lines will be sorted by GID.

sortbyip

	A useful script for sorting a list of IP addresses within vi(1)
	or other editors.

	Example:

		sudo vi /etc/hosts
		!}sortbyip

	The /etc/hosts lines will be sorted by IP, up to the first null line.

spinloop

	Useful for the situations where you want to put a fixed load on the
	processor, either as a testing activity itself, or as a background activity
	for testing an application or system behavior under such a condition.

	Spinloop invokes a fixed number of children processes (the default is 10),
	each running a tight loop.

	Example:

		spinloop &

	Note: Sending SIGINT to the parent process will cause it to terminate the
	children as well.

startwf

	Start a wireless connection by profile name. The profiles are defined
	in the case statement within the script to define the necessary
	values, as shown in the example below.

	Note: startwf uses sudo(8), as managing the network interface will
	require it. Therefore, you must have sudo(8) privilege for the
	operation to succeed.

	Example case statement clause:

	name)
		channel=11							# Channel number
		ip="inet 192.168.0.100"				# Static IP address
		netmask="netmask 255.255.255.0"		# Netmask
		nic=wlan0							# Wireless interface
		shk="<WEP-key-hex-string>"
		ssid="station-id"					# SSID
		;;

	Then, run the following command line:

		startwf -profile <name>

	Where <name> is the label shown for the above profile.

sysbackup

	Creates a compressed tar(1) archive, in a predefined location,
	containing copies of the most common system configuration files on your
	system. Very handy to snapshot the state of your Linux installation.

	Notes:

	1. Use sudo(8) to run sysbackup, because reading some of the system
	configuration files and writing the archive file will usually
	require it.

	2. The script will store the archive in the /export/backups/system
	directory by default. This directory must exist beforehand.

	Example:

		sudo sysbackup

	Output will look like:

		Backing up system configuration
		Backup completed
		File: /export/backups/system/system_config_backup_pid5032.tbz
		-rw-rw----  1 root root 108610 Dec 22 21:42 /export/backups/system/system_config_backup_pid5032.tbz

systray

	Systray is keyword-based application and system utility launcher. Use
	it to start any of the following:

		- The desktop calculator
		- The firewall builder app (or to save the firewall rules)
		- The system network interface selector and configuration app
		- The knotes application
		- The Red Hat Network Monitor
		- The sound config app
		- Sync to network timehost
		- Load the VPN driver module
		- Start the wallet app

	Usage: systray [calc] [fw [save]] [net] [notes] [rhn] [sound|snd]
	[time] [vpn] [wallet]

taillog

	A handy tool for monitoring the system and apache logs, over the
	network in real time. There is some investment in setting up the
	ssh key-based auth initially, but it's worthwhile afterward,
	as the command functions as if you were operating locally on the
	monitored system.

	Note: You must have ssh(1) login and sudo(8) access on the remote
	system(s) of interest. The easiest setup is to run ssh_keygen(1)
	locally, and generate an ssh authentication key pair, then run
	the pushssk script to send your ssh public key to each server of
	interest. After that, you won't have to type in a password for each
	use, but just type the command as shown below.

	Example 1:

		taillog remote.foo.com

	This will tail the /var/log/messages file on remote.foo.com.

	Example 2:

		taillog remote.foo.com access

	This will tail the /var/log/httpd/access_log file on remote.foo.com.

	Example 3:

		taillog remote.foo.com php_errors

	This will tail the /var/log/php_errors file on remote.foo.com.

vnc

	Similar to rdc above, but uses the vnc(1) client and protocol instead.

	Example:

		vnc 106

	Usage example:

		vnc 106		# Opens a connection to the 192.168.1.106 remote system
		vnc connect # Connects locally to the established vnc connection

wt

	Short for "Who's there?"

	This tool steps through a pool of IP addresses (registered within
	the script), pings each, and displays the results and the contents
	of the arp(8) cache. Using these methods, you will see which clients
	are listening and answering back on the LAN, at least for those
	clients configured to answer ping requests.

	Note: If the client's IP address is registered in the local /etc/hosts
	file, then it will also be listed by hostname, too.

	Example:

		wt

	Output will look like:

		### Trying 192.168.1.106 (hostname1)

		### Trying 192.168.1.107 (hostname2)

		### Trying 192.168.1.108 (hostname3)
		64 bytes from 192.168.1.108: icmp_seq=0 ttl=128 time=0.828 ms

		### Trying 192.168.1.109

		...

		ARP Cache:
		gateway (192.168.1.1) at 00-AA-11-22-33-0A [ether] on eth0
		hostname3 (192.168.1.108) at 00-AA-11-95-17-0D [ether] on eth0

_END_
Source: README.txt, updated 2010-12-12