The PATH is an environment variable. It is a colon delimited list of directories that your shell searches through when you enter a command. All executables are kept in different directories on the Linux and Unix like operating systems.
A search path is the sequence of directories in which the c shell (CSH/TCSH) looks for commands to execute.
Print current PATH settings in C SHELL
Open the terminal and type the following command to print the current $PATH settings. You can use any one of the following command:
# use echo to display it ## echo "$PATH"
## or use printenv printenv PATH
The character between each directory in the C shell’s the PATH environment variable has colons. You can also use the following $path variable:
## note lower case ## echo "$path" ## OR ## printf "%s\n" $path
/usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/local/sbin/modemZapp /Users/vivek/gcutil-1.8.4
The character between each directory in the C shell’s $path variable is a space. The C shell search path includes /usr/bin, /bin, /usr/sbin, and rest of the all directories displayed by the echo command.
Method #1: CSH / TCSH set path variable command for interactive use
You can add a directory called /usr/local/bin and $HOME/bin to to the search path by entering the following command:
### *** NOTE: $path is case sensitivity and must be in lowercase *** ### set path = ($path /usr/local/bin) echo $path
/usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/local/sbin/modemZapp /Users/vivek/gcutil-1.8.4 /usr/local/bin
All directories are searched in the order they appear in the search path. Setting paths with $path variable is recommended for all your shell commands that you type directly. You can add second path using the same syntax:
### *** NOTE: $path is case sensitivity and must be in lowercase *** ### set path = ($path /usr/local/bin $HOME/bin) echo $path
/usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/local/sbin/modemZapp /Users/vivek/gcutil-1.8.4 /usr/local/bin /Users/vivek/bin
Method #2: Csh/Tcsh add to $PATH
You can use the following syntax:
## please note 'PATH' is CASE sensitivity and must be in UPPERCASE ## setenv PATH $PATH\:/dir/path1 setenv PATH $PATH\:/dir/path1\:/dir/path2
Please feel free to replace /dir/path1 with the directory you want the shell to search. If you skip \ before :, you will get an error message that read as follows:
Bad : modifier in $ (/).
How do I set path in tcsh/csh automatically on Unix/Linux?
You may want to set search path automatically each time you log in by appending any one of the following command in ~/.login or ~/.cshrc file (you need to type the command at shell prompt):
## command to append path settings in ~/.login file ## echo 'set path = ($path /usr/local/bin $HOME/bin .)' >> ~/.login
## command to append path settings in ~/.cshrc file ## echo 'setenv PATH $PATH\:/usr/local/bin\:$HOME/bin\:.' >> ~/.cshrc
See csh(1) and tcsh(1) man page for more information.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
|Category||List of Unix and Linux commands|
|Firewall||Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04|
|Network Utilities||dig • host • ip • nmap|
|OpenVPN||CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04|
|Package Manager||apk • apt|
|Processes Management||bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time|
|Searching||grep • whereis • which|
|User Information||groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w|
|WireGuard VPN||Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04|