庆典。用法:'。/'

时间:2012-08-17 21:07:03

标签: bash

我确实试图在网上找到答案,但遗憾的是空手而归。搜索'./'与其他关键字一起搜索会带来很多点击,但没有一个能帮助......

无论如何,正如你可能会说的那样,我对MacOs很新。我从shell运行mongo。 我进入/ bin文件夹并使用以下命令启动mongo守护程序:

  

'./的mongod'

如果我只输入'mongod',我会收到以下错误:

  

' - bash:mongod:command not found'

是什么?
  

'./'

'./mongod'中的

代表什么?为什么需要它?为什么我不能通过输入mongod来执行mongo。毕竟,我在正确的目录中。

2 个答案:

答案 0 :(得分:6)

  

毕竟,我在正确的目录

但该目录不在PATH中。问题的关键是,当shell想要执行某些操作时,它会查找目录列表(在名为PATH的变量中指定)。 当前目录不在该列表中

答案 1 :(得分:2)

正如cnicutar的回答中所解释的那样,shell会尝试将您输入的命令与PATH环境变量中列出的目录中的可执行文件进行匹配。

虽然您可以将当前目录添加到PATH,但可能这样做是个好主意。这个article提供了一些很好的理由,说明为什么Linux默认情况下不添加它:

  

它可以插入可能的安全漏洞。您无法运行命令   在当前目录中没有专门调用它们。

     

即./myscript.sh

     

阻止恶意编写恶意shell脚本,将脚本放入   一个无辜的位置,如/ tmp和获取root来运行脚本。   root会运行一个邪恶的脚本吗?如果脚本被命名为'ls'和   root做了一个列表,脚本会自动运行。