Technical Note - Changing Your Shell

Summary

ALERT! This document is for advanced users only

Changing your shell from tcsh to bash or zsh is allowed, but comes with many caveats. We strongly recommend against changing your shell. If you are determined to do so, this document will outline some of the pitfalls.

Details

Changing your shell

You can change your login shell by visiting the change-finger-info web page. Now, when customising your shell, you will now need to edit ~/.bashrc or ~/.zshrc (depending on which shell you have selected).

Pitfalls (using bash)

need is not defined

Your ~/.bashrc file must start with the following lines:
#
. /etc/bash.bashrc

You will also want to include some need packages. At the very least you will want to add:
need SYSfirst   # which should be the first one
need SYSlast

You may also want to get the default printer to track whichever printer is "closest" to you by adding:
PRINTER=$NEAR_2UP_PRINTER
export PRINTER

~/.bashrc is not run for scripts

This means that you can't use aliases in scripts (not that you should have done this anyway!), nor will any of your environment variables be set correctly when the ~/.xtools, ~/.xsession run or window manager runs.

This will cause problems with applications run from window manager menus or started when you log in. To fix this problem, you should copy the following into your ~/.xsession file:

#!/bin/bash
. ~/.bashrc
exec startkde

Don't forget to make it executable: chmod u+x ~/.xsession

~/.bashrc is not run for a login shell

This means that it will not run when you SSH from a remote machine. You need to add the following to the end of your ~/.profile file.

case $0 in
    -bash)
        . $HOME/.bashrc
        ;;
esac

Using zsh

zsh is more sensible about what startup files it runs and when it runs them (than bash) so the main thing you must remember to do is include some need packages in your ~/.zshenv. At the very least you will want to add:
need SYSfirst   # which should be the first one
need SYSlast