虽然在PATH中找不到命令

时间:2015-02-02 09:52:11

标签: bash uss

shtcsh我可以毫无问题地致电netstat。但是,有了Bash,我收到了消息:

bash: netstat: command not found

所有shell的PATH变量完全相同:

PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/J6.0/bin:/EXEX/exec:/bin:/usr/sbin:/etc:/usr/lpp/perl/bin:.:/usr/lpp/ported/bin:.:.

Netstat位于/ bin目录中,因此应该包含在PATH ...

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我们还没有足够的信息来说明这里出了什么问题,但是我会走出困境并建议你的路径不是你想象的那样,更不用说你引用的路径了非常不标准,很可能不是你想要的。

你说的是你的道路......

引用的路径在分解时看起来像这样:

/usr/lpp/Printsrv/bin
/usr/lpp/java/J6.0/bin
/EXEX/exec
/bin
/usr/sbin
/etc
/usr/lpp/perl/bin
.
/usr/lpp/ported/bin
.
.

当前工作目录(.)三次不会导致问题,但看起来确实有些奇怪。

您错过了标准目录/usr/bin。如果你有/usr/sbin,那么你应该/sbin以保持一致性。

我无法想象为什么你会把/etc放在你的道路上。该目录中永远不应该存在可执行文件。

你的道路实际上是什么......

贝壳之间应该没有区别。你不太可能在这里发现了一个shell中的bug,所以我们假设你的路径并不完全相同,并试图弄清楚它为什么会这样......

所有shell都应该告诉你,你的路径与两个命令同时存在:

# The PATH variable
echo "$PATH"

# The PATH environment variable
env | /bin/grep PATH

记住有两种变量。内部变量和环境变量。 PATH应该是一个环境变量。

我不确定你是如何找到以下一行的:

PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/J6.0/bin:/EXEX/exec:/bin:/usr/sbin:/etc:/usr/lpp/perl/bin:.:/usr/lpp/ported/bin:.:.

如果这是从.profile.bashrc获取的,则应将其导出以确保将PATH设置为环境变量。

export PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/J6.0/bin:/EXEX/exec:/bin:/usr/sbin:/etc:/usr/lpp/perl/bin:.:/usr/lpp/ported/bin:.:.