linux - अधिक सुरुचिपूर्ण "पीएस ऑक्स | grep-v grep "




(6)

जब मैं प्रक्रियाओं की सूची और 'grep' को उन लोगों के बारे में grep हूं जो मेरे लिए दिलचस्प हैं, तो grep स्वयं परिणामों में भी शामिल है। उदाहरण के लिए, टर्मिनल सूचीबद्ध करने के लिए:

$ ps aux  | grep terminal
user  2064  0.0  0.6 181452 26460 ?        Sl   Feb13   5:41 gnome-terminal --working-directory=..
user  2979  0.0  0.0   4192   796 pts/3    S+   11:07   0:00 grep --color=auto terminal

आम तौर पर मैं ps aux | grep something | grep -v grep उपयोग करता हूं ps aux | grep something | grep -v grep ps aux | grep something | grep -v grep अंतिम प्रविष्टि से छुटकारा पाने के लिए ... लेकिन यह सुरुचिपूर्ण नहीं है :)

क्या आपके पास इस समस्या को हल करने के लिए एक और अधिक सुरुचिपूर्ण हैक है (सभी कमांड को एक अलग लिपि में लपेटने के अलावा, जो भी बुरा नहीं है)


अस्वीकरण: मैं इस उपकरण के लेखक हूं, लेकिन ...

मैं px उपयोग करता हूँ:

~ $ px atom
  PID COMMAND          USERNAME   CPU RAM COMMANDLINE
14321 crashpad_handler walles   0.01s  0% /Users/walles/Downloads/Atom.app/Contents/Frameworks/Electron Framework.framework/Resources/crashpad_handler --database=
16575 crashpad_handler walles   0.01s  0% /Users/walles/Downloads/Atom.app/Contents/Frameworks/Electron Framework.framework/Resources/crashpad_handler --database=
16573 Atom Helper      walles    0.5s  0% /Users/walles/Downloads/Atom.app/Contents/Frameworks/Atom Helper.app/Contents/MacOS/Atom Helper --type=gpu-process --cha
16569 Atom             walles   2.84s  1% /Users/walles/Downloads/Atom.app/Contents/MacOS/Atom --executed-from=/Users/walles/src/goworkspace/src/github.com/github
16591 Atom Helper      walles   7.96s  2% /Users/walles/Downloads/Atom.app/Contents/Frameworks/Atom Helper.app/Contents/MacOS/Atom Helper --type=renderer --no-san

एक समझदार कमांड लाइन इंटरफ़ेस के साथ प्रक्रियाओं को ढूंढने के अलावा, यह कई अन्य उपयोगी चीजें भी करता है, प्रोजेक्ट पेज पर अधिक जानकारी।

आसानी से स्थापित लिनक्स और ओएस एक्स पर काम करता है:

curl -Ls https://github.com/walles/px/raw/python/install.sh | bash

आप ps कमांड में फ़िल्टर कर सकते हैं, उदाहरण के लिए

ps u -C gnome-terminal

(या खोज के साथ / proc के माध्यम से खोजें आदि)


एक और विकल्प है कि आपके .bash_profile (या अन्य फ़ाइल जिसे आप बाश उपनाम रखते हैं) को संपादित करने के लिए एक फ़ंक्शन बनाने के लिए जो परिणामों से बाहर 'grep' greps है।

function mygrep {
grep -v grep | grep --color=auto $1
}

alias grep='mygrep'

grep -v grep पहले होना चाहिए अन्यथा आपका - रंग --color=auto कुछ कारणों से काम नहीं करेगा।

यह काम करता है यदि आप बैश का उपयोग कर रहे हैं; यदि आप एक अलग खोल वाईएमएमवी का उपयोग कर रहे हैं।


खोज पैटर्न में किसी चरित्र को घेरे रखने के लिए ब्रैकेट का उपयोग करके grep प्रक्रिया को शामिल नहीं किया जाता है क्योंकि इसमें मेलिंग रेगेक्स नहीं होता है।

$ ps ax | grep 'syslogd'
   16   ??  Ss     0:09.43 /usr/sbin/syslogd
18108 s001  S+     0:00.00 grep syslogd

$ ps ax | grep '[s]yslogd'
   16   ??  Ss     0:09.43 /usr/sbin/syslogd

$ ps ax | grep '[s]yslogd|grep'
   16   ??  Ss     0:09.43 /usr/sbin/syslogd
18144 s001  S+     0:00.00 grep [s]yslogd|grep

सामान्य तकनीक यह है:

ps aux | egrep '[t]erminal'

यह terminal युक्त लाइनों से मेल खाएगा, जो egrep '[t]erminal' नहीं करता है! यह यूनिक्स के कई स्वादों पर भी काम करता है।


pgrep प्रयोग करें। यह अधिक विश्वसनीय है।





grep