我的搜索路径上有一个 /usr/sbin (echo $PATH)。
我在这个目录中有我的 lsof 可执行文件。如果我只是在提示符上键入 lsof,为什么会得到 lsof: command not found。我正在使用 csh。
你用的是csh还是tcsh?
这会产生什么输出?(如果您没有 tcsh,请在第一行更改tcsh
为csh
并注释掉该where
命令。)
#!/bin/tcsh -f
echo 'PATH:'
echo "$PATH" | tr ':' '\n' | sed 's/^/ /'
echo "% which lsof"
which lsof
echo "% where lsof"
where lsof
ls -lgd /usr/sbin /usr/sbin/lsof
您可以尝试使用rehash
,因为我似乎记得csh
使用哈希来查找可执行文件。尝试/usr/sbin/lsof
还可以让您判断这是否是问题(或者可能会告诉您问题实际上是什么)。
还要检查目录的权限,lsof
以/usr/sbin
确保它们是可执行/可搜索的(尽管这不太可能是个问题)。
如果做不到这一点,您可能应该等到这个问题被推到它所属的 SU 上:-)