शीर्ष कमांड - प्रदर्शित कॉलम को कैसे कम करें


17

क्या हम किसी शीर्ष कमांड में विशिष्ट कॉलम प्राप्त कर सकते हैं, उदाहरण के लिए मैं केवल मेमोरी उपयोग और सीपीयू उपयोग कॉलम में रुचि रखता हूं।

मैं शीर्ष कमांड के प्रदर्शित कॉलमों को केवल उपरोक्त दो कॉलमों तक कैसे कम कर सकता हूं?


3
क्या ओएस? क्या topसंस्करण? दर्जनों शीर्ष कार्यान्वयन हैं।
स्टीफन चेज़लस

कृपया हमें अपना OS और शीर्ष संस्करण प्रदान करें ( top -h)।
स्लम

जवाबों:


19

नोट: मान लें कि आपके पास top(procps) का यह संस्करण है । आप इस कमांड से देख सकते हैं:

$ top --version
    top: procps version 3.2.8
usage:  top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

प्राप्स अक्सर topफेडोरा / सेंटोस / आरएचईएल और अन्य वेरिएंट के साथ शामिल किए जाने का संस्करण है।

कॉलम बदलना

यदि आप मैन पेज topदेखते हैं , तो आपको "2b। SELECTING और ORDERING कॉलम" शीर्षक वाला एक खंड दिखाई देगा। विभिन्न क्षेत्रों / स्तंभों के लिए टॉगल दृश्यता के लिए कीबोर्ड शॉर्टकट हैं।

उदाहरण के लिए:

  f,o     . Fields/Columns: 'f' add or remove; 'o' change display order
  F or O  . Select sort field
  <,>     . Move sort field: '<' next col left; '>' next col right

आप कुंजी का उपयोग कर सकते हैं f, जबकि में topएक माध्यमिक स्क्रीन जहाँ आप जो कॉलम दृश्य या नहीं चालू किए जाने की जानी चाहिए निर्दिष्ट कर सकते हैं पाने के लिए:

उदाहरण के लिए:

Current Fields:  ANOPQRSTUVbcdefgjlmyzWHIKX  for window 3:Mem
Toggle fields via field letter, type any other key to return 

* A: PID        = Process Id                                      * W: S          = Process Status
* N: %MEM       = Memory usage (RES)                              * H: PR         = Priority
* O: VIRT       = Virtual Image (kb)                              * I: NI         = Nice value
* P: SWAP       = Swapped size (kb)                               * K: %CPU       = CPU usage
* Q: RES        = Resident size (kb)                              * X: COMMAND    = Command name/line
* R: CODE       = Code size (kb)
...

और भी हैं, ये सिर्फ एक नमूना हैं। जब आप अपने इच्छित स्तंभों को टॉगल कर रहे हों, Escतो चयन स्क्रीन से बाहर निकलने के लिए उपयोग करें ।

कॉन्फ़िगरेशन सहेजना

आप अपने परिवर्तनों को सहेजने के लिए Shift+ Wका उपयोग कर सकते हैं ताकि वे डिफॉल्ट हों:

  W         Write configuration file

फ़ाइल यहाँ संग्रहीत है $HOME/.toprc, और इस तरह दिखता है:

$ more .toprc 
RCfile for "top with windows"       # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
Def fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
    winflags=129016, sortindx=19, maxtasks=0
    summclr=2, msgsclr=5, headclr=7, taskclr=7
Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
    winflags=63416, sortindx=13, maxtasks=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
    winflags=65464, sortindx=13, maxtasks=0
    summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX
    winflags=65464, sortindx=12, maxtasks=0
    summclr=3, msgsclr=3, headclr=2, taskclr=7

अधिक विवरण के लिए मैन पेज का खंड 5 देखें, "5. फ़ाइलें"।


क्या कमांड लाइन के ध्वज के माध्यम से कॉलम / फ़ील्ड को बदलने का कोई तरीका है? यह वास्तव में उपयोगी होगा, उदाहरण के लिए विभिन्न मशीनों पर शीर्ष की जाँच करने और एक मानकीकृत आउटपुट प्राप्त करने के लिए।
n

@ n-0101 - यदि आपका कोई नया प्रश्न है, तो उसे मुख्य साइट पर पूछें। टिप्पणियाँ वास्तव में उस के लिए नहीं हैं।
स्लम

2

[सेंटोस -6 | Ubuntu 12.10] यह cmd सीपीयू उपयोग द्वारा 4 शीर्ष प्रक्रियाओं को प्रिंट करता है

top -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5

उत्पादन

%CPU      %MEM      COMMAND
7.7       0.2       top
0.0       0.3       init
0.0       0.0       kthreadd
0.0       0.0       migration/0

नोट: हेड-एन 5 4 के बजाय क्योंकि हमारे पास कॉलम नाम भी है

कॉलम $ 9, $ 10, $ 12 का मतलब CPU, MEM, COMMAND है। कॉलम नंबर प्राप्त करने के लिए 'टॉप' कमांड का उपयोग करें

MEMORY USAGE द्वारा सॉर्ट करें (इसे चलाने के लिए आपका 'शीर्ष' का समर्थन करना होगा)

# this work on my centos-6 machine, NOT work on my Ubuntu 12.10
top -m -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5

यह शीर्ष का कौन सा संस्करण है?
स्लम

मैंने सेंटोस-6.4 का इस्तेमाल किया। उबंटू पर शीर्ष कमांड मेरे मेमोरी उपयोग को छाँटने के लिए समर्थन नहीं करता है।
damphat

दिलचस्प है, मैं फेडोरा (14) पर हूं, मुझे शीर्ष का संस्करण मिल रहा है। मैंने अभी अभी 5+ 6 पर CentOS पर डबल चेक किया है और वे टॉप procps का भी उपयोग कर रहे हैं। आपकी कमांड F14 पर काम नहीं करती है। यह CentOS 5 + 6 पर काम करता है। किसी के लिए बस एक FYI करें जो इस धागे के पार आता है!
स्लम

1

json फॉर्मेट में देखने और हेडर को हटाने के लिए,

top -bn 1 | grep "^ " | awk '{ printf("%s%s%s\n","{CPU:"$9",","MEM:"$10",","CMD:"$12"}"); }' | head -n 6 | tail -n +2

नीचे की तरह उत्पादन,

{CPU:6.4,MEM:0.3,CMD:gnome-terminal}
{CPU:6.4,MEM:1.9,CMD:chrome}
{CPU:0.0,MEM:0.0,CMD:init}
{CPU:0.0,MEM:0.0,CMD:kthreadd}
{CPU:0.0,MEM:0.0,CMD:ksoftirqd/0}

आप grep | awk | head | tailएक एकल में coalesced किया जा सकता है awk
रोज़ा

0

कमांड लाइन कॉन्फ़िगरेशन
मैं उपयोगकर्ता को अधिलेखित करके अपने पूरे उपयोगकर्ता को प्रभावित नहीं करना चाहता था .toprc, इसलिए मैं उपयोग-केस के प्रति एक अलग कॉन्फ़िगरेशन के समाधान के साथ आया था।
आप topअपने उपयोगकर्ता होम निर्देशिका में एक के बजाय एक कस्टम कॉन्फ़िगरेशन फ़ाइल का उपयोग कर सकते हैं ।
बस HOMEचर को कस्टम निर्देशिका में बदलें, जिसमें .toprcआपकी आवश्यकताओं के लिए फ़ाइल हो।

# TOPRC_PROFILE_DIRECTORY contains .toprc (or can be created by saving using shift+w after configuring using keybindings) 
TOPRC_PROFILE_DIRECTORY="<your-directory>"
HOME="$TOPRC_PROFILE_DIRECTORY" top
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.