突然grep命令停止工作。当我执行ls -l~ / grep显示我的主目录中的一个文件时。但此文件已存在多年。如果我给命令grep - >指向/ bin / grep并使用/ bin / grep它工作正常。任何人都可以建议。
谢谢,
此致 希夫
答案 0 :(得分:0)
您可以删除主目录中的零字节文件。它没有做任何事情。 (我不知道它是怎么到达那里的。)问题是PATH
中的第一个条目,“。”,指向你所在的目录。所以当你在你的主目录中时, shell(我认为是bash)在当前目录中查找grep
,并找到那里无法执行任何操作的文件。
我认为拥有“。”是一个坏主意。在你的道路上。如果您来自Windows世界,这很方便,而且很自然,但这意味着执行的内容可能会根据您所在的目录而改变(如您所见)。这也意味着,如果你在一个多用户系统上,有人可以将一个可执行文件放在他们的一个目录中,然后当你cd
进入他们的目录时,突然间你正在执行他们的代码,这可能是不是你想要的,也可能是危险的。
相反,请从PATH
中删除“。:”(点冒号)。当您需要在当前目录中运行脚本时,请在其名称中添加“./”以执行它。 “/ bin”和“/ usr / bin”通常应位于列表的前面。有些人喜欢将“/ usr / local / bin”放在列表的前面或其他位置。
您可以通过编辑.profile或.bash_profile或.bashrc来更改PATH
。这取决于你如何设置shell。小心将PATH
中的每个目录路径与一个“:”字符分开。