grep:コマンドが見つかりません[複製]


19

これは非常に奇妙な動作です。最近、コンソールでプロセスを見つけようとするとps aux | grep foo、が返されますgrep: command not found。OK、それは私が変更して間違ったことでしたが、問題は、数回の試行後、それが突然何であるかを知っていること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

回答:


38

出力を見るとgrep、エラーメッセージの前に余分なスペースがあるようです。これはOpt/Alt、パイプ記号を入力した後、まだ押されたキーから来ていると思います(したがって、基本的にはOpt-のSpace代わりに入力していますSpace)。試してくださいps aux |grep foo(パイプとの間にスペースを入れないでくださいg)。


2
それだけです:D通常、私はemacsを使用していますが、誤ってOpt + Spaceと入力すると、に似たものが表示され_ます。だから、ターミナルでは、私はそれを見逃していました。ありがとう:)
makeMonday

なんてこった、私に頻繁に起こりました、それは単にそれでした。なんて馬鹿げている!
マルクアレクサンドルベルベ

これは私に何度も起こりました、あなたの答えに感謝します、本当に感謝します、私はこれから| grepと入力することを確認します!! 私は何年もこれについて疑問に思っていました!
エサルオホ

6

私の答えは奇妙に聞こえるかもしれませんが、あまりにも速く入力したときに、古いキーボードでもこの効果がありました。もう一度入力して、カーソルでgrepの文字「g」の前に移動し、押されたままのALT/Optionキーで入力できた空白を削除し、スペースキーをもう一度押してコマンドラインを起動します。

別の回避策は、10本の指で入力していない場合は、システム環境設定でキーボードのリピートレートを下げることです。:-)


それでした!@patrixもそれを提案しました。気付いていないのは愚かなことですが、時には速すぎて入力したいこともあります。ありがとう。
makeMonday
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.