grep:找不到命令[重复]


18

这个问题在这里已有答案:

这是一种非常奇怪的行为。最近,每当我试图在控制台上找到一个进程时ps aux | grep foo,它就会返回一个grep: command not found。好吧,这可能是我改变并做错的事情,但问题是,经过几次尝试,它突然知道是什么grep

MM:.dev$ ps aux | grep foo
-bash:  grep: command not found
MM:.dev$ ps aux | grep foo
-bash:  grep: command not found
MM:.dev$ ps aux | grep foo
-bash:  grep: command not found
MM:.dev$ ps aux | grep foo
MM            70953   0,0  0,0  2699108    744   ??  Ss   10:32AM   0:08.77 foo bar
MM             3756   0,0  0,0  2423356    204 s004  R+   10:12AM   0:00.00 grep foo

任何想法为什么会发生这种情况?

正如所建议的那样,这是我type grep在两者之后输入时得到的,一个失败,一个失败:

MM:.dev$ ps aux | grep foo
-bash:  grep: command not found
MM:.dev$ type grep
grep is /usr/bin/grep
MM:.dev$ ps aux | grep foo
MM             5694   0,0  0,0  2433796    676 s006  S+   10:47AM   0:00.00 grep foo
MM:.dev$ type grep
grep is /usr/bin/grep

奇怪。您是每次都重新键入命令还是只是在命令历史记录中向后滚动?
nohillside

我正要写那个。当我向后滚动它不起作用。如果我把它写回来,它也不起作用。但是,如果我向后滚动并删除grep管道,它最终会起作用。O_O
makeMonday 2015年

Answers:


36

查看输出,grep错误消息之前似乎有一个额外的空格。我认为这是Opt/Alt在输入管道符号后来自一个静止按下的键(所以你基本上是在输入Opt- Space而不仅仅是Space)。尝试ps aux |grep foo(管道和之间没有空格g)。


2
就是这样:D通常,我使用emacs,当我不小心输入Opt + Space时,我可以看到类似的内容_。所以在终端,我只是错过了。谢谢:)
makeMonday 2015年

哦,我的上帝......经常发生在我身上,就是这样。多么傻!
Marc-AlexandreBérubé于2017年

这已经发生过很多次了,非常感谢你的回答,真的很感激,我一定会从现在开始打字!多年来我一直在想这个!
esaruoho

6

我的回答可能听起来很奇怪,但是当我键入太快时,我也会用旧键盘产生这种效果。只需再次尝试输入,用光标移动grep的字母“g”,删除可能用静态按键输入的空格,ALT/Option再次点击空格键并启动命令行。

另一种解决方法是在“系统偏好设置”中降低键盘重复率,如果您没有用十个手指键入。:-)


就是这样!@patrix也提出了这个建议。我没有意识到愚蠢,但有时候我只想输入太快。谢谢。
makeMonday 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.