fedora "bash:: команда не найдена" для `ps aux | grep dnf`

Я установил Fedora 23, и эта ошибка произошла, когда я хочу использовать grep в режиме пользователя su:

[root@alifed alireza]# ps aux |‌ grep dnf bash: ‌: command not found... 

У вас, странно, есть символ форматирования Unicode 200C , «нулевой ширины без участия», после | в вашей команде.

Откуда у вас этот пример? Я предполагаю, что вы копируете и вставляете его непосредственно из какой-то документации, и по какой-то причине этот странный символ форматирования попал туда – я точно не знаю, почему, поскольку я не могу придумать вескую причину.

Ошибка bash дает вам буквально правильную. При замене символа видимым представлением ошибка становится очевидной:

 [root@alifed alireza]# ps aux |200C grep dnf bash: 200C: command not found... 

Оболочка думает, что вы передаете вывод ps aux в команду с именем unprintable character с grep dnf качестве аргументов. Но, конечно, нет никакой команды от этого имени, так что это говорит вам об этом.

Почему я подозревал, что это проблема? Поскольку стандартный синтаксис ошибки bash

 $ noncommand bash: noncommand: command not found... 

и в сообщении об ошибке, о котором вы сообщали, есть пробел, где должна отсутствовать команда. Если ps или grep отсутствовали, это скажет вам bash: ps: command not found или bash: grep: command not found . И, поскольку вы вставляли точную команду и ошибку в свой вопрос, а не перепечатывали ее (удивительный – всегда лучшая практика!), Я смог проверить результаты и скопировать. (Это случается, как и не-root, кстати, – su – красная селедка).