Несмотря на то, что этот вопрос старый, я думал, что каждый заслуживает более надежного ответа:
ps axo pid=,stat=
Это испустит два столбца с разделителями пробелов, первый из которых является PID, а второй из них его состояние.
Я не думаю, что даже GNU ps обеспечивает способ фильтрации по состоянию напрямую, но вы можете надежно сделать это с помощью awk
ps axo pid=,stat= | awk '$2~/^Z/ { print }'
You теперь список PID, которые являются зомби.
ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }'
Предоставление списка идентификаторов Zombie с разделителями строк.
Теперь вы можете указать, что состояние больше не нужно отображать, поэтому его можно отфильтровать.
ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }'
работать с этим списком с помощью простого цикла оболочки
for pid in $(ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }') ; do
echo "$pid" # do something interesting here
done
ps является мощным инструментом, и вам не нужно ничего делать, чтобы получить информацию о процессе из него.
Вам нужна версия vim, которая имеет +clipboard в своей версии. Установите пакет vim-gnome, и все будет в порядке. (И вам не нужно использовать gvim для использования буфера обмена, он все равно работает при запуске vim в терминале.)
"+y использует специальный регистр и является частью функции clipboard vim. Поскольку ваша версия vim не поддерживает буфер обмена (-clipboard означает, что функция буфера обмена недоступна), вам нужно использовать что-то еще.
Вы можете попробовать этот плагин, который не зависит от функция clipboard и должна работать в чистой версии vim. Кажется, что это зависит от одной из программ screen, xclip, tmux.