O'Reilly logo

Using csh & tcsh by Paul DuBois

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Displaying Your Location in the Prompt

csh and tcsh differ in the facilities they provide for putting information in your prompt. First, I'll show commands that work for either shell, but are intended primarily for csh users. Second, I'll discuss tcsh's special formatting facilities for the prompt string. For both shells, I'll show some typical prompt settings. You can, of course, experiment to find a setting that better suits your preferences.

Using csh To Display Your Location

To add the hostname to your prompt, set the prompt variable in your ˜/.cshrc file as follows:

set prompt = "`hostname`% "

If a command other than hostname displays the machine name on your system, make the appropriate substitution.

To include the current directory name in your prompt, create a setprompt alias that sets the prompt using the current location. (setprompt uses the cwd variable, which always holds the pathname of your current working directory.) Then, alias the directory-changing commands (cd, pushd, popd ) so that they invoke setprompt. Add the following commands to your ˜/.cshrc file so that your prompt will be a % character preceded by the pathname of your current directory:

alias setprompt 'set prompt = "$cwd% "'
setprompt
alias cd 'cd \!*;setprompt'
alias pushd 'pushd \!*;setprompt'
alias popd 'popd \!*;setprompt'

Note that setprompt is executed after it is defined. This is necessary to set the prompt to the proper initial value. Otherwise, the prompt would not be set until you changed directory ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required