Use echo statements.
Run bash -n script to check for syntax errors.
Use the command set -v to get a verbose dump of each line the shell reads. Use set +v to turn off verbose mode.
Use the command set -x to see what each command expands to. Again, set +x turns this mode off.

.forward(mail file)
.bashrc(My bash login config file)
.bash_logout(My bash logout config file)
.aliases(command mapping file)
.vimrc(vim text editor config file)
.gvimrc(vim X/gui config file)

man pages

man diff
man sdiff
man indent
man wget

.forward file

"|IFS=' ' && exec /opt/bin/procmail -f || exit 75 #johnston" 

# To forward mail during holidays, etc type a line with the address 
# you want to forward mail to. To disable it you can just comment it out 
# with a #. I use # for a comment line and ## for a disabled command line.
# PS you could always telnet to borg and remotely edit this file anyway.

# forwards mail and leaves a copy on this server
##\johnston, me@hotmail.com

.bashrc file

# (.bashrc)
# $Id: .bashrc,v 1.6 2003/08/07 15:40:14 johnston Exp johnston $
#
# bash web manual : http://www.gnu.org/manual/bash-2.05a/
#
# This file sets the behaviour for the shell bash.
# If commands exist in a .bash_profile or .bash_login, it is recommended
# that they be moved into this file according to the conventions used below.
#
if [ "$PS1" = "" ]     # is shell interactive?
then
	interactive=0
else
	interactive=1
fi

# setup subshells
# (including login shell)
#
# set default terminal types
#
# Set default network, dialup, switch, and unknown terminal types.
network_term=vt100
dialup_term=vt100
switch_term=vt100
unknown_term=dumb

#
# setup system variables
#
# Do not remove the following line; doing so may cause some programs
# to fail.
if [ -r /etc/shinit/bashrc ]
then
   . /etc/shinit/bashrc
fi

#
# setup shell variables
#
# Set the size of the history list.
HISTSIZE=20

# * Change prompt to display directory and NL
PS1="\h:\w\n\\$ "

#
# setup shell session
#
# Limit size of core files.
##ulimit -S -c 0

#
# setup aliases
#
if [ -f $HOME/.aliases ] && grep "=" $HOME/.aliases > /dev/null
then
    . $HOME/.aliases
fi

#
# setup functions
#
if [ -f $HOME/.functions ]
then
    . $HOME/.functions
fi

case $SHLVL in
  1) # setup login shell

    #
    # setup environment
    #
    if [ -f $HOME/.environment ]
    then
        . $HOME/.environment
    fi
    ##EDITOR="/usr/bin/vi"
    EDITOR="/opt/bin/vim -X"
    EXINIT="set autoindent shell=/bin/bash noterse"
    MORE="-s"
    export EDITOR EXINIT MORE
    CVSROOT="$HOME/CVSROOT"
    export CVSROOT
    TEXINPUTS=.:$HOME/lib/latex/tex/latex//:/opt/TeX/texmf/tex/latex//:
    export TEXINPUTS
    BSTINPUTS=.:$HOME/lib/latex/tex/bibtex//:/opt/TeX/texmf/bibtex/bst//:
    export BSTINPUTS
    BIBINPUTS=.:$HOME/lib/latex/tex/bibtex//:/opt/TeX/texmf/bibtex/bib//:
    export BIBINPUTS
    MANPATH=$MANPATH:/opt/TeX/man:$HOME/man
    export MANPATH


    #
    # setup login shell variables
    #
    # Ingore eof.  Type logout/exit to leave the shell.
    IGNOREEOF=

    # Do not remove the $SYSPATH entry from the PATH variable; doing so
    # may cause some programs to fail.
    PATH="$HOME/bin:$SYSPATH:/pub/bin:."
    export PATH
    # Change pager to less
    PAGER="less -I"
    export PAGER
    LW="learnctr-lw"
    export LW
    
    #
    # setup packages
    #
    export JAVA_SERVLET_TYPE=tomcat
    PACKAGES="$SYSPKG"
    setup_packages

    #
    # setup login session
    #
    if [ $interactive -eq 1 ]
    then
        # Set terminal type.
        ts
        # Enable ^Z option.
        stty susp ^Z
        ## stty erase ^H
        # Allow messages from other users.  Be informed of new mail.
        mesg y ; biff y
        # Check for news.
        ##rn -c -s || echo There is news.
        # Show how long the system has been up.
        uptime
        echo
        date
        echo
        ## check for new mail
        nfrm
    fi

    #show my self-reminders on login
    if [ -f $HOME/.to_do ]
    then
        echo ""
        echo "Things to do:"
        cat $HOME/.to_do
        echo ""
    fi
    ;;
esac

.bash_logout file

#(.bash_logout)
# write logout time to log file
if [ -f ~/.lout ]
then
    date >> ~/.lout
    echo "  Bye-Bye Geoffrey" >> ~/.lout
fi

.aliases file

alias e='cd cs2110/a4_SortMerge; vi SortMerge.java'
alias c='clear; javac -g TestSortMerge.java'
alias r='clear; java TestSortMerge inputData'
alias ?='nfrm'
alias calendar='/usr/dt/bin/dtcm'
alias distill='/opt/Acrobat3/bin/distilld'
alias f='who | fgrep hlfx57'
alias gcc='gcc -std=c99 -Wall -pedantic'
alias gmake='clear;gmake'
alias home='netscape http://www.cs.dal.ca/~johnston/index.html &'
alias i='echo $SSH_CLIENT'
alias indent='indent -bli0 -i3'
alias j='jobs'
alias jindent='java -classpath $CLASSPATH:$HOME/lib/java/Jindent/Jindent.jar:. Jindent -p $HOME/lib/java/Jindent/Dal.jin -fr'
alias junits='java -classpath $CLASSPATH:$HOME/lib/java/junit3.8.1/junit.jar:. junit.swingui.TestRunner'
alias junitt='java -classpath $CLASSPATH:$HOME/lib/java/junit3.8.1/junit.jar:. junit.textui.TestRunner'
alias l='/usr/bin/ls -al|less'
# using a linux ls in my bin 'cos I like colour
alias ls='~/bin/ls -p --color'
alias m='wnewmail -i 150'
alias nl='nl -ba'
alias o='who | sort | less'
alias p='pine -i'
alias q='lwq -Punix-lab ; lwq -Pmaclab-lw ; lwq -Plc'
alias s='$HOME/bin/slirp -P -b 115200'
alias ss='screen'
alias t='cat ~/.plan'
alias u='du -k |sort -n'
alias v='/usr/ucb/printenv |less'
alias vi='vim -X'
alias w='cat /var/log/apache/access_log | fgrep johnston | fgrep html'
alias ww='w|wc -l'
alias www='cat /opt/apache-1.3.27/logs/referer_log |grep johnston | more'

.vimrc file

" Based on Bram Moolenaar's version
" This must be first, because it changes other options as a side effect.
set nocompatible
"set backspace=indent,eol,start " backspacing over everything in insert
set bs=2		" allow backspacing over everything in insert mode
set noautoindent	" always set autoindenting off
set nobackup		" do not keep a backup file, use versions instead
set nowrap		" don't wrap lines

"behave xterm
set selectmode=mouse

set viminfo='20,\"50	" read/write a .viminfo file, don't store more
			" than 50 lines of registers
set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set noerrorbells        " errorbells: damn this beep!  ;-)
set noignorecase        " ignore the case in search patterns?  NO!
set showmatch           " Show the matching bracket for the last ')'?
set showmode            " Show the current mode?  YEEEEEEEEESSSSSSSSSSS!
set showcmd		" display incomplete commands
set incsearch		" do incremental searching
set laststatus=2        " Always display a status line at the bottom of window.
"set expandtab           " expand tabs to spaces
"set mouse=a
" At the beginning of a line, take 'shiftwidth' spaces, else 'tabstop' spaces
 set smarttab


 
"colours in xterm
 " Farben im xterm
" map  :se t_Co=16:se t_AB=[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm:se t_AF=[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm



" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal g`\"" |
    \ endif

endif " has("autocmd")


"abBREVIATIONS
"==================================================================

" typos
iab anf and
iab adn and
iab ans and
iab johsnton johnston
iab teh the
iab thre there

" abbreviations & acronyms
iab bcs Bachelor of Computer Science Degree
iab gweb http://www.cs.dal.ca/~johnston/
iab Yruler * * * * 1 * * * * 2 * * * * 3 * * * * 4 * * * * 5 * * * * 6 * *_* * 7 * * * * 8
iab rg regards,Geoff
iab psvm public static void main(String[] args) {
iab sop System.out.println("
iab sopd if (DEBUG) System.out.println("DEBUG " +
iab #d #define
iab #i #include
iab #l -----------------------------------------------------------------
iab #b /****************************************************************
iab #e ****************************************************************/
iab su regards,Geoff-- "I've had a wonderful time, but this wasn't it."     - Groucho Marx (1895-1977)

" Enable automatic color syntax highlighting on startup
" Set the colours for vim on "xterm"
" if &term=="xterm"
set t_Co=16
set t_AB=[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
set t_AF=[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
" endif

syn on

" ===================================================================
" ASCII tables - you may need them some day.  Save them to a file!
" ===================================================================
"
" ASCII Table - | octal value - name/char |
"
" |000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
" |010 bs |011 ht |012 nl |013 vt |014 np |015 cr |016 so |017 si |
" |020 dle|021 dc1|022 dc2|023 dc3|024 dc4|025 nak|026 syn|027 etb|
" |030 can|031 em |032 sub|033 esc|034 fs |035 gs |036 rs |037 us |
" |040 sp |041  ! |042  " |043  # |044  $ |045  % |046  & |047  ' |
" |050  ( |051  ) |052  * |053  + |054  , |055  - |056  . |057  / |
" |060  0 |061  1 |062  2 |063  3 |064  4 |065  5 |066  6 |067  7 |
" |070  8 |071  9 |072  : |073  ; |074  < |075  = |076  > |077  ? |
" |100  @ |101  A |102  B |103  C |104  D |105  E |106  F |107  G |
" |110  H |111  I |112  J |113  K |114  L |115  M |116  N |117  O |
" |120  P |121  Q |122  R |123  S |124  T |125  U |126  V |127  W |
" |130  X |131  Y |132  Z |133  [ |134  \ |135  ] |136  ^ |137  _ |
" |140  ` |141  a |142  b |143  c |144  d |145  e |146  f |147  g |
" |150  h |151  i |152  j |153  k |154  l |155  m |156  n |157  o |
" |160  p |161  q |162  r |163  s |164  t |165  u |166  v |167  w |
" |170  x |171  y |172  z |173  { |174  | |175  } |176  ~ |177 del|
"
" ===================================================================
" ASCII Table - | decimal value - name/char |
"
" |000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
" |008 bs |009 ht |010 nl |011 vt |012 np |013 cr |014 so |015 si |
" |016 dle|017 dc1|018 dc2|019 dc3|020 dc4|021 nak|022 syn|023 etb|
" |024 can|025 em |026 sub|027 esc|028 fs |029 gs |030 rs |031 us |
" |032 sp |033  ! |034  " |035  # |036  $ |037  % |038  & |039  ' |
" |040  ( |041  ) |042  * |043  + |044  , |045  - |046  . |047  / |
" |048  0 |049  1 |050  2 |051  3 |052  4 |053  5 |054  6 |055  7 |
" |056  8 |057  9 |058  : |059  ; |060  < |061  = |062  > |063  ? |
" |064  @ |065  A |066  B |067  C |068  D |069  E |070  F |071  G |
" |072  H |073  I |074  J |075  K |076  L |077  M |078  N |079  O |
" |080  P |081  Q |082  R |083  S |084  T |085  U |086  V |087  W |
" |088  X |089  Y |090  Z |091  [ |092  \ |093  ] |094  ^ |095  _ |
" |096  ` |097  a |098  b |099  c |100  d |101  e |102  f |103  g |
" |104  h |105  i |106  j |107  k |108  l |109  m |110  n |111  o |
" |112  p |113  q |114  r |115  s |116  t |117  u |118  v |119  w |
" |120  x |121  y |122  z |123  { |124  | |125  } |126  ~ |127 del|
"
" ===================================================================
" ASCII Table - | hex value - name/char |
"
" | 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel|
" | 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si |
" | 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb|
" | 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us |
" | 20 sp | 21  ! | 22  " | 23  # | 24  $ | 25  % | 26  & | 27  ' |
" | 28  ( | 29  ) | 2a  * | 2b  + | 2c  , | 2d  - | 2e  . | 2f  / |
" | 30  0 | 31  1 | 32  2 | 33  3 | 34  4 | 35  5 | 36  6 | 37  7 |
" | 38  8 | 39  9 | 3a  : | 3b  ; | 3c  < | 3d  = | 3e  > | 3f  ? |
" | 40  @ | 41  A | 42  B | 43  C | 44  D | 45  E | 46  F | 47  G |
" | 48  H | 49  I | 4a  J | 4b  K | 4c  L | 4d  M | 4e  N | 4f  O |
" | 50  P | 51  Q | 52  R | 53  S | 54  T | 55  U | 56  V | 57  W |
" | 58  X | 59  Y | 5a  Z | 5b  [ | 5c  \ | 5d  ] | 5e  ^ | 5f  _ |
" | 60  ` | 61  a | 62  b | 63  c | 64  d | 65  e | 66  f | 67  g |
" | 68  h | 69  i | 6a  j | 6b  k | 6c  l | 6d  m | 6e  n | 6f  o |
" | 70  p | 71  q | 72  r | 73  s | 74  t | 75  u | 76  v | 77  w |
" | 78  x | 79  y | 7a  z | 7b  { | 7c  | | 7d  } | 7e  ~ | 7f del|
" ===================================================================
" Yet another example for an autocommand:  [980616]
"  au VimLeave * echo "Thanks for using Vim"version". --Sven Guckes@vim.org!"
" ===================================================================
" Last but not least...
" =====================================================
" The last line is allowed to be a "modeline" with my setup.
" It gives vim commands for setting variable values that are
" specific for editing this file.  Used mostly for setting
" the textwidth (tw) and the "shiftwidth" (sw).
" Note that the colon within the value of "comments" needs to
" be escaped with a backslash!  (Thanks, Thomas!)
"       vim:tw=70 et sw=4 comments=\:\"

"-------------------------------------------------------------
""useful stuff
" to remove the ^M from MS-Dos files
" :1,$s/{Ctrl+V}{Ctrl+M}//{Enter}

.gvimrc file

" Based on Bram Moolenaar's version
	
" Make external commands work through a pipe instead of a pseudo-tty
"set noguipty

" set the X11 font to use
set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

" Make command line two lines high
set ch=2

" Make shift-insert work like in Xterm
map  
map!  

  " I like highlighting strings inside C comments
let c_comment_strings=1

colors murphy

  " Switch on syntax highlighting.
syntax on

  " Switch on search pattern highlighting.
set hlsearch

" Do incremental searching.
set incsearch

" Set ignorecase on.
set ignorecase

  " Hide the mouse pointer while typing
set mousehide


" Turn off Xim server (support for foreign character sets)
set imdisable

" Set nice colors
  " background for normal text is light grey90
  " Text below the last line is darker grey
  " Cursor is green
  " Constants are not underlined but have a slightly lighter background
highlight Normal guibg=lightyellow
highlight Cursor guibg=Green guifg=NONE
  " turned off by me highlight NonText guibg=grey80
highlight Constant gui=NONE guibg=grey95
highlight Special gui=NONE guibg=grey95

set background=dark

Last updated on 15 Aug 2003
by johnston@cs.dal.ca