पीएस ऑक्स लंबे समय के लिए उपयोगकर्ता नाम एक प्लस चिह्न दिखाता है


18

मैं एक आउटपुट प्राप्त करने की कोशिश कर रहा हूं ps auxताकि ऐसा लगे:

giovanni     28331  4381  0 15:43 ?       00:00:00 sshd: giovanni@pts/1
giovanni     28346 28331  0 15:43 pts/1   00:00:00 -bash
giovanni     28646 28346  0 15:43 pts/1   00:00:00 ./example.sh

हालाँकि, इस कमांड को Ubuntu 14.04 LTS पर चलाने पर, इसके बदले निम्नलिखित मिलते हैं:

giovan+     28331  4381  0 15:43 ?       00:00:00 sshd: giovanni@pts/1
giovan+     28346 28331  0 15:43 pts/1   00:00:00 -bash
giovan+     28646 28346  0 15:43 pts/1   00:00:00 ./example.sh

तो मैं इन प्लस संकेतों को कैसे हटा सकता हूं और इसके बजाय मुझे पूरे उपयोगकर्ता नाम को दिखाने के लिए आदेश दे सकता हूं?


1
यह दिलचस्प है, मेरा उपयोगकर्ता नाम एक ही लंबाई है और छोटा नहीं है
जेमी

जवाबों:


24

के अनुसार man ps, ps -aux" मानक (UNIX) सिंटैक्स का उपयोग करके सिस्टम पर हर प्रक्रिया को देखना है "। मुझे आउटपुट प्रदर्शित करने के लिए उपयोगकर्ता-परिभाषित प्रारूप सेट करने का कोई तरीका नहीं मिला।

हालांकि BSD सिंटैक्स में , आप कॉलम की चौड़ाई सेट कर सकते हैं जैसे user:<width>:। निम्नलिखित को आपको एक ही जानकारी देनी चाहिए, उपयोगकर्ता नाम कॉलम की चौड़ाई 20 (या किसी अन्य मान) पर सेट करते हुए:

ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm

(बहुत) लंबे नाम के साथ आउटपुट:

USER                   PID %CPU %MEM    VSZ   RSS TT       STAT  STARTED     TIME COMMAND

.........................................................................................

root                  3826  0.0  0.1  77828  4788 ?        Ss   08:15:55 00:00:00 cupsd
lp                    3831  0.0  0.0  63156  2224 ?        S    08:15:56 00:00:00 dbus
lp                    3832  0.0  0.0  63156  2220 ?        S    08:15:56 00:00:00 dbus
root                  4822  1.7  5.1 446964 210416 tty8    Ss+  08:38:00 00:03:27 Xorg
root                  4923  0.0  0.1 174652  4412 ?        Sl   08:38:02 00:00:00 lightdm
tantemarievanhier     5181  0.0  0.1 544216  4796 ?        Sl   08:38:08 00:00:00 gnome-keyring-d
tantemarievanhier     5228  0.0  0.0  40492  2740 ?        Ss   08:38:08 00:00:00 init
tantemarievanhier     5369  0.0  0.0  41816  3064 ?        Ss   08:38:09 00:00:02 dbus-daemon
tantemarievanhier     5376  0.0  0.0  10616   316 ?        Ss   08:38:09 00:00:00 ssh-agent

7 की कॉलम चौड़ाई सेट करना:

ps axo user:7,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm

USER     PID  %CPU %MEM    VSZ   RSS TT       STAT  STARTED     TIME COMMAND

.........................................................................................

tantem+  6623  0.0  0.0 287228  3820 ?        Sl   08:39:00 00:00:00 unity-webapps-s
tantem+  6679  0.0  0.4 676856 18640 ?        Sl   08:39:20 00:00:00 update-notifier
tantem+  6721  0.0  0.1 541224  7056 ?        Sl   08:40:20 00:00:00 deja-dup-monito
tantem+  6743  0.0  0.5 810616 21888 ?        Sl   08:41:55 00:00:00 unity-scope-hom
tantem+  6758  0.0  0.2 717256 10352 ?        Sl   08:41:55 00:00:00 unity-files-dae
tantem+  6760  0.0  0.5 607208 22920 ?        Sl   08:41:55 00:00:00 unity-scope-loa
tantem+  6784  0.0  0.2 350676  9060 ?        Sl   08:41:56 00:00:00 unity-music-dae

सुविधा कारणों से, आप निम्न पंक्ति को इसमें जोड़ सकते हैं ~/.bashrc:

alias psaux='ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm'

तो यह ps aux"सामान्य" आउटपुट है, जबकि psauxआपको पूरा नाम- संस्करण देता है।

ध्यान दें:

आप नाम स्तंभ को अंतिम स्थिति में ले जाकर पूरा नाम भी दिखा सकते हैं:

ps axo pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm,user

देता है:

 PID %CPU %MEM    VSZ   RSS TT       STAT  STARTED     TIME COMMAND         USER


 5181  0.0  0.1 544216  4548 ?        Sl   08:38:08 00:00:00 gnome-keyring-d tantemarievanhier
 5228  0.0  0.0  40492  2668 ?        Ss   08:38:08 00:00:00 init            tantemarievanhier
 5369  0.0  0.0  41816  3032 ?        Ss   08:38:09 00:00:07 dbus-daemon     tantemarievanhier

आउटपुट को कैसे प्रदर्शित करें, स्वचालित रूप से USER कॉलम की चौड़ाई निर्धारित करें

USER- कॉलम की चौड़ाई सेट करने के लिए एक और परिष्कृत तरीका है। यदि हम USER स्तंभ की चौड़ाई के लिए बहुत उच्च मान के साथ कमांड चलाते हैं, तो हम पंक्तियों को पुनर्व्यवस्थित करने के लिए एक छोटी स्क्रिप्ट का उपयोग कर सकते हैं, स्तंभ की चौड़ाई को सबसे लंबे उपयोगकर्ता नाम में समायोजित कर सकते हैं।

ऐसा करने के लिए

  • नीचे दी गई स्क्रिप्ट को कॉपी करें, इसे एक खाली फ़ाइल में पेस्ट करें, इसे सहेजें psaux_alternative.py
  • इसे अमल में लाएं
  • अपने लिए एक पंक्ति जोड़ें ~/.bashrc:

    alias psaux='/path/to/psaux_alternative.py`
    

फिर, psauxटर्मिनल विंडो में चलने से आउटपुट USER कॉलम की स्वचालित चौड़ाई के साथ प्रदर्शित होगा।

लिपी:

#!/usr/bin/env python3

import subprocess

command = "ps axo user:30,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm"
l = subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").split("\n")
minlen = sorted(set([30-len(item.split(" ")[0]) for item in l]))[0]
for line in l:
    print(line[:30-minlen]+line[30:])

यह एक बहुत अच्छा समाधान है, बहुत बहुत धन्यवाद जैकब! हालाँकि, क्या आपको लगता है कि ऐसा करने का एक उचित तरीका है? मेरा मतलब है कि हमने अभी-अभी कॉलम की चौड़ाई बढ़ाई थी, लेकिन क्या उबंटू को सबसे बड़ी उपयोगकर्ता नाम लंबाई के अनुसार स्वचालित रूप से इस चौड़ाई को बढ़ाने का कोई तरीका नहीं है?
गियोवन्नी मुनीर

@GiovanniMounir अब यह एक दिलचस्प सवाल है! और हाँ, यह संभव होना चाहिए। मैं इसे कल या परसों नवीनतम पर वापस लाऊंगा।
जैकब व्लिजम

2
@GOVanniMounir मैंने नौकरी करने के लिए एक छोटी स्क्रिप्ट बनाई। इसे चलाने से USER कॉलम की आउटपुट चौड़ाई स्वचालित चौड़ाई प्रदर्शित होगी।
जैकब व्लिजम

अद्भुत काम, जैकब! आपका बहुत बहुत धन्यवाद!
गियोवन्नी मुनीर

@JacobVlijm बहुत अच्छा! मैं एक बार फिर हर उद्देश्य के लिए अपनी स्क्रिप्ट से प्रभावित हूँ ...; डी
बाइट कमांडर

1

मैंने उसी समस्या का सामना किया। Ps मैनुअल हमें WIDE-WCHAN-COLUMN के बारे में बताता है। समानांतर परिणाम में WIDE-RUSER-COLUMN के साथ एक स्मार्ट प्रयास वांछित परिणाम में समाप्त हो गया:

$ ps -e -o ruser=WIDE-RUSER-COLUMN

क्या आप कृपया अपने उत्तर में कुछ संदर्भ जोड़ सकते हैं जो कमांड की व्याख्या करते हैं? स्वागत और धन्यवाद
α andsнιη

@ कासिया यह संपादित किया गया है।
बाइट कमांडर

@ByteCommander मैं देख रहा हूं। BTW, मैं वह व्यक्ति नहीं हूं, जिसने
नीचा दिखाया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.