Unix Grep命令停止工作

Unix Grep命令停止工作,unix,Unix,突然,grep命令停止工作。当我使用ls-l~/grep显示我的主目录中的一个文件时。但是这个文件已经存在很久了。如果我给出指向/bin/grep并带有/bin/grep的grep-->命令,该命令工作正常。谁能推荐一下吗 谢谢 问候,, Shiv您可以删除主目录中的零字节文件。它什么也没做。(我不知道它是怎么来的。)问题是,PATH,“”中的第一个条目指向您所在的目录。因此,当您在主目录中时,shell(我假设是bash)会在当前目录中查找grep,并找到该目录中的文件,而该文件无法执行任何操

突然,grep命令停止工作。当我使用ls-l~/grep显示我的主目录中的一个文件时。但是这个文件已经存在很久了。如果我给出指向/bin/grep并带有/bin/grep的grep-->命令,该命令工作正常。谁能推荐一下吗

谢谢

问候,,
Shiv

您可以删除主目录中的零字节文件。它什么也没做。(我不知道它是怎么来的。)问题是,
PATH
,“”中的第一个条目指向您所在的目录。因此,当您在主目录中时,shell(我假设是bash)会在当前目录中查找
grep
,并找到该目录中的文件,而该文件无法执行任何操作

我认为在你的道路上拥有“…”是个坏主意。如果您来自Windows世界,这是很方便、自然的,但这意味着执行的内容可能会根据您所在的目录而变化(正如您现在看到的)。这也意味着,如果你在一个多用户系统上,有人可以将一个可执行文件放在他们的一个目录中,然后当你
cd
进入他们的目录时,你突然执行了他们的代码,这可能不是你想要的,而且可能是危险的

相反,从
路径中删除“.”(点冒号)。当需要在当前目录中运行脚本时,请在其名称中添加“/”以执行该脚本。“/bin”和“/usr/bin”通常应位于列表的前面。有些人喜欢将“/usr/local/bin”放在列表的最前面,或者其他一些东西


您可以通过编辑.profile或.bash\u profile或.bashrc来更改路径。这取决于您如何设置shell。请小心用一个“:”字符分隔
path
中的每个目录路径。

我的主目录中的文件grep是一个零字节文件。请检查
path
环境变量:
echo$path
。这应该列出您希望在其中找到可执行文件的所有且仅限于的目录。您的主目录通常不应该在列表中。您好,Mars,它正在返回长列表。:/bin:/usr/bin:/…等。你能建议我需要搜索哪个目录吗。但是上面提到的这个文件grep也存在于我的主目录中。你能给我一些建议吗。Thanksys Mars echo$路径没有返回我的主目录,其中包含名为grep present的零字节文件。但为什么现在grep命令不起作用呢。你能告诉我hi Mars吗,你是说有人更改了该文件中的.profile或.bash\u profile或.bashrc路径值。如果是,我们怎么知道是谁改变了这一点。请帮忙。谢谢,可能零字节文件是新的。也许您以前从未尝试过从主目录运行grep。您可以轻松地检查文件的所有权和上次访问时间(如果它们仍然存在)。找到做某事的客户更困难——也许不可能。如果你真的认为事情就是这样,并且想知道是谁干的,你需要对这个主题做一些更深入的研究,也许是针对你的两个特定操作系统。虽然我可能错了,但这很可能不是小事。我不知道。