Это очень странное поведение. В последнее время, когда я пытаюсь найти процесс в консоли 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
terminal
command-line
makeMonday
источник
источник
grep
и трубу, это в конечном итоге работает. О_ООтветы:
Глядя на ваш вывод,
grep
в сообщении об ошибке , кажется, есть лишний пробел . Я предполагаю, что это происходит от еще нажатой Opt/Altклавиши после ввода символа трубы (так что вы в основном печатаете Opt- Spaceвместо просто Space). Попробуйтеps aux |grep foo
(без пробела между трубой иg
).источник
_
. Так что в терминале я просто пропустил это. Спасибо :)Мой ответ может показаться странным, но у меня был такой эффект и со старой клавиатурой, когда я набирал слишком быстро. Просто попробуйте набрать его еще раз, переместите курсор перед буквой «g» в grep, удалите пробел, который можно было ввести с помощью все еще нажатой ALT/Optionклавиши, снова нажмите клавишу пробела и запустите командную строку.
Другой обходной путь - снизить частоту повторения клавиатуры в Системных настройках, если вы не печатаете десятью пальцами. :-)
источник