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 ...

Get Using csh & tcsh now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.