TCSH/CSH Shell设置PATH变量

时间:2020-01-09 10:46:07  来源:igfitidea点击:

我在CSH/TCSH shell中的路径是什么?
像操作系统一样,如何在Unix上的c shell(CSH)中设置或者修改路径?

PATH是环境变量。
这是用冒号分隔的目录列表,当您输入命令时,shell会其中搜索这些目录。
所有可执行文件都保存在Linux和Unix等操作系统上的不同目录中。

搜索路径是c shell(CSH/TCSH)其中查找要执行的命令的目录序列。

在C SHELL中打印当前的PATH设置

打开终端并输入以下命令以打印当前的$PATH设置。
您可以使用以下任一命令:

# use echo to display it ##
echo "$PATH"

或者

## or use printenv
printenv PATH

输出示例:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/sbin/modemZapp:/Users/Hyman/gcutil-1.8.4

C中的每个目录之间的字符都将PATH环境变量包含冒号。
您也可以使用以下$path变量:

## note lower case ##
echo "$path"
## 或者
printf "%s\n" $path

输出示例:

/usr/bin /bin /usr/sbin /sbin /usr/local/bin /opt/X11/bin /usr/local/sbin/modemZapp /Users/Hyman/gcutil-1.8.4

C shell $path变量中每个目录之间的字符是一个空格。

C Shell搜索路径包括/usr/bin,/bin,/usr/sbin以及echo命令显示的所有目录的其余部分。

方法#1:CSH/TCSH设置路径变量命令以供交互使用

您可以通过输入以下命令将名为/usr/local/bin和$HOME/bin的目录添加到搜索路径:

### *** 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/Hyman/gcutil-1.8.4 /usr/local/bin

所有目录均按照它们在搜索路径中出现的顺序进行搜索。
对于直接执行的所有shell命令,建议使用$path变量设置路径。
您可以使用相同的语法添加第二条路径:

### *** 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/Hyman/gcutil-1.8.4 /usr/local/bin /Users/Hyman/bin

方法2:Csh/Tcsh添加到$PATH

您可以使用以下语法:

## please note 'PATH' is CASE sensitivity and must be in UPPERCASE ##
setenv PATH $PATH\:/dir/path1
setenv PATH $PATH\:/dir/path1\:/dir/path2

请随时将/dir/path1替换为您要shell程序搜索的目录。
如果您在之前跳过\,则会收到一条错误消息,内容如下:

错误:$(/)中的修饰符。

如何在Unix/Linux上自动在tcsh/csh中设置路径?

您可能希望每次登录时都自动设置搜索路径,方法是在~/.login或者~/.cshrc文件中追加以下任一命令(您需要在shell提示符下执行命令):

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

有关更多信息,请参见csh(1)和tcsh(1)手册页。