What does the |
symbol они мочатся in sudo ps -ef | grep processname
command?
Also хан anyone please explain this command? I have used this command only for getting the PID and killing that process, but I also saw sudo ps -ef | grep processname | grep -v grep
and I am under the impression that -v grep
is like killing the previous generated PID for grep
. If that's so how does it work?
ps -ef | grep processname
Это сначала работает sudo ps -ef
и передает вывод второй команде.
Вторая команда фильтрует все строки, которые содержат слово "processname".
ps -ef | grep processname | grep -v grep
списки все строки, содержащие processname
и не содержащий grep
.
Согласно man grep
-v, --invert-match
Invert the sense of matching, to select non-matching lines. (-v
is specified by POSIX.)
Согласно man ps
ps displays information about a selection of the active processes.
-e Select all processes. Identical to -A.
-f Do full-format listing. This option can be combined with many
other UNIX-style options to add additional columns. It also
causes the command arguments to be printed. When used with -L,
the NLWP (number of threads) and LWP (thread ID) columns will be
added. See the c option, the format keyword args, and the
format keyword comm.
Можно объединить параметры -ef
средства то же как -e -f
.
На самом деле ps -ef | grep processname
перечислите все случаи названного процесса processname
.
Это называется pipe
. Он дает выходные данные первой команды в качестве входных данных для второй команды.
В вашем случае это означает:
Результат sudo ps -ef
подается на вход grep processname
sudo ps -ef
:
. Здесь перечислены все процессы запущены. Введите man ps
в термине для более.
grep processname
Итак, этот список процессов подается в grep, который просто ищет программу, определенную в programname
.
Набрав sudo ps -ef | grep firefox
в моем терминале, вы получите:
parto 6501 3081 30 09:12 ? 01:52:11 /usr/lib/firefox/firefox
parto 8295 3081 4 15:14 ? 00:00:00 /usr/bin/python3 /usr/share/unity-scopes/scope-runner-dbus.py -s web/firefoxbookmarks.scope
parto 8360 8139 0 15:14 pts/24 00:00:00 grep --color=auto firefox
Im, собирающийся пытаться ответить на это с простым ответом practial:
канал |
позволяет Вам сделать потрясающий материал в оболочке! Это - один единственный оператор, что я рассматриваю самое полезное и могущественное.
как насчет того, чтобы считать файлы в каталоге? простой:
ls | wc -l
.. перенаправьте вывод ls
к wc
параметр остроумия -l
для строк
или подсчет строк в файле?
cat someFile | wc -l
, что, если я хочу искать что-то? 'grep' может искать происшествия строк:
cat someFile | grep aRandomStringYouWantToSearchFor
Вы просто перенаправляете вывод команды, оставленной Канала праву команды на канал.
еще один уровень: как часто делает что-то occure в файле?
cat someFile | grep aRandomStringYouWantToSearchFor | wc -l
можно использовать | почти для всего:)
fortune | cowsay
Я использовал эту команду только для того, чтобы получить PID и убить этот процесс
blockquote>Другие ответы уже ответили на ваш главный вопрос, но я также хотел бы рассмотреть этот вопрос;
В общем уничтожение процесса часто является избыточным и оставляет ресурсы, выделенные процессом, в грязном состоянии, вы часто можете просто прекратить его;
Кроме этого, просто используйте
pkill
, чтобы убить / завершить процесс.pkill
поддерживает указание точного имени процесса или регулярного выражения:pkill -x foo # Terminates process foo pkill ^foo$ # Terminates process foo pkill -9 -x foo # Kills process foo pkill -9 ^foo$ # Kills process foo