![我的 $PATH 怎么了?](https://linux22.com/image/1603619/%E6%88%91%E7%9A%84%20%24PATH%20%E6%80%8E%E4%B9%88%E4%BA%86%EF%BC%9F.png)
我正在尝试通过添加目录来使我的个人 cmake 安装成为用户的默认选项PATH
,但我很困惑,我希望得到一些帮助。
我远程登录到某个 Linux 环境。如果我输入,echo $0
我会得到-tcsh
输出。我在网上找到的所有内容都说 tcsh 中的 PATH 变量是用空格分隔的,但如果我输入,echo $PATH
我会得到一个用 分隔的目录列表:
。这类似于 bash。
如果我输入PATH=foo
,我会得到Command not found
。如果我尝试set PATH = foo
,我可以echo $PATH
得到foo
。这类似于 tcsh。
如果我输入,which cmake
我会得到/bin/cmake
。如果我使用set PATH = foo
将我个人的 cmake 安装添加到 的开头PATH
,我仍然会得到/bin/cmake
。这似乎PATH
根本没有被使用。
我如何which cmake
找到我的安装,以及我遗漏了什么导致上述情况让我如此困惑?
答案1
tcsh 中的空格分隔搜索路径是$path
。请注意,变量名区分大小写。
> echo $path
/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin
> echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin
添加新路径的工作方式如下:
set path = ($path /usr/local/sbin)
它还修改$PATH
变量以使其匹配。
请记住,要覆盖系统二进制文件,$path
必须首先添加。