grep: команда не найдена [дубликат]

19

Это очень странное поведение. В последнее время, когда я пытаюсь найти процесс в консоли ps aux | grep foo, он возвращает a 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
makeMonday
источник
Странный. Вы каждый раз вводите команду заново или просто прокручиваете назад в истории команд?
холме
Я собирался написать это. Когда я прокручиваю назад, это не работает. Если я напишу это обратно, это тоже не сработает. Но если я прокручиваю назад и удаляю grepи трубу, это в конечном итоге работает. О_О
makeMonday

Ответы:

38

Глядя на ваш вывод, grepв сообщении об ошибке , кажется, есть лишний пробел . Я предполагаю, что это происходит от еще нажатой Opt/Altклавиши после ввода символа трубы (так что вы в основном печатаете Opt- Spaceвместо просто Space). Попробуйте ps aux |grep foo(без пробела между трубой и g).

Nohillside
источник
2
Вот и все: D Обычно я использую emacs, и там, когда я случайно набираю Opt + Space, я вижу что-то похожее _. Так что в терминале я просто пропустил это. Спасибо :)
makeMonday
Боже мой .. так часто случалось со мной, и это было просто так. как глупо!
Марк-Александр Берубе
это случалось со мной так много раз, большое спасибо за ваш ответ, очень ценю это, теперь я буду набирать grep !! Я размышлял об этом много лет!
esaruoho
6

Мой ответ может показаться странным, но у меня был такой эффект и со старой клавиатурой, когда я набирал слишком быстро. Просто попробуйте набрать его еще раз, переместите курсор перед буквой «g» в grep, удалите пробел, который можно было ввести с помощью все еще нажатой ALT/Optionклавиши, снова нажмите клавишу пробела и запустите командную строку.

Другой обходной путь - снизить частоту повторения клавиатуры в Системных настройках, если вы не печатаете десятью пальцами. :-)

Garex
источник
Вот и все! @patrix предложил это тоже. Глупо с моей стороны не осознавать, но иногда я просто хочу печатать слишком быстро. Благодарю.
makeMonday