पीएस कमांड का पूरा आउटपुट देखना


163

जब मैं ps -auxअपने लिनक्स सर्वर पर कमांड चलाता हूं, जिसमें मैं पोटीन का उपयोग करके जुड़ा हुआ हूं, तो कुछ प्रक्रियाएं मेरे वर्तमान विंडो चौड़ाई में फिट होने के लिए बहुत लंबी हैं। क्या कोई विकल्प है?

-- अपडेट करें --

मुझे डाउनग्रेड करने के लिए खेद है, मैंने सोचा कि दूसरों को उत्तर उपयोगी भी नहीं मिलेगा, इसलिए मैंने डाउनग्रेड किया।

यहां आपके द्वारा मांगी गई जानकारी है।

hadoop-user@hadoop-desk:~$ echo $TERM
xterm

hadoop-user@hadoop-desk:~$ stty -a
speed 38400 baud; rows 47; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

hadoop-user@hadoop-desk:~$ echo $COLUMNS
158

एक तरफ के रूप में, आपने बहुत कम जानकारी प्रदान की है, इसलिए आपको अब तक मिले सभी उत्तरों को नकारना नहीं चाहिए। हम आपकी मदद करने की कोशिश कर रहे हैं। आप के उत्पादन में पोस्ट करना चाहिए echo $TERM, stty -aऔर echo $COLUMNSअपने प्रश्न में।
आलोक सिंघल

कोशिश करो stty ocrnlऔर / या stty sane?
आलोक सिंघल

29
ps axuwwइसका जवाब है;) कम से कम मेरे लिए। दोगुना wwकर दिया।
क्रूरसत्तात

जवाबों:


145

यह संभावना है कि आप एक पेजर का उपयोग कर रहे हैं जैसे कि lessया mostजब से आउटपुट ps auxस्क्रीनफुल की तुलना में अधिक लंबा है। यदि ऐसा है, तो निम्न विकल्पों के कारण (या बल) लंबी लाइनों को छंटनी के बजाय लपेटने का कारण होगा।

ps aux | less -+S

ps aux | most -w

यदि आप निम्न में से किसी भी आदेश का उपयोग करते हैं, तो लाइनें लिपटी नहीं होंगी, लेकिन आप अपने तीर कुंजी या अन्य आंदोलन कुंजियों का उपयोग बाईं और दाईं ओर स्क्रॉल करने के लिए कर सकते हैं।

ps aux | less -S    # use arrow keys, or Esc-( and Esc-), or Alt-( and Alt-) 

ps aux | most       # use arrow keys, or < and > (Tab can also be used to scroll right)

लाइन्स हमेशा के लिए लिपटे रहे moreऔर pg

जब ps auxएक पाइप में उपयोग किया जाता है, तो wविकल्प अनावश्यक है क्योंकि psकेवल स्क्रीन चौड़ाई का उपयोग करता है जब आउटपुट टर्मिनल पर होता है।


21
कृपया ध्यान दें कि लिनक्स में अभी भी कर्नेल कोड में हार्ड-कोडेड 4096 अक्षरों की सीमा है: देखें stackoverflow.com/questions/199130/…
Mariano Paniga

3
@MarianoPaniga: आपने उस टिप्पणी के साथ मेरी जान बचाई।
19

अधिकांश? क्या आपका मतलब और है?
माइक फुरलेंडर

@ मायकेफ्लेंडर: नहीं, mostएक और पेजर है। मैंने अपने उत्तर में एक लिंक जोड़ा।
अगली सूचना तक रोक दिया गया।

@DennisWilliamson wपाइप का उपयोग करते समय सिस्टम-निर्भर होने के लिए आवश्यक नहीं होने के बारे में आपका बयान । दोनों ओपनएसयूएसईपी लीप 15.0 और उबंटू 18.04 पर, टर्मिनल चौड़ाई द्वारा छंटनी ps aux | grep <something>के उत्पादन पर कार्य जैसे आदेश ps
pkeller

149

auxwwझंडे का उपयोग करना , आपको अपनी टर्मिनल विंडो और शेल स्क्रिप्ट दोनों में आउटपुट का पूरा रास्ता दिखाई देगा।

darragh@darraghserver ~ $uname -a
SunOS darraghserver 5.10 Generic_142901-13 i86pc i386 i86pc

darragh@darraghserver ~ $which ps
/usr/bin/ps<br>

darragh@darraghserver ~ $/usr/ucb/ps auxww | grep ps
darragh 13680  0.0  0.0 3872 3152 pts/1    O 14:39:32  0:00 /usr/ucb/ps -auxww
darragh 13681  0.0  0.0 1420  852 pts/1    S 14:39:32  0:00 grep ps

ps auxसभी उपयोगकर्ताओं द्वारा निष्पादित सभी प्रक्रियाओं को सूचीबद्ध करता है। man psविवरण के लिए देखें। wwझंडा असीमित चौड़ाई निर्धारित करता है।

-w         Wide output. Use this option twice for unlimited width.
w          Wide output. Use this option twice for unlimited width.

मुझे निम्नलिखित ब्लॉग पर उत्तर मिला:
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/


10
यह वर्तमान स्वीकृत समाधान की तुलना में बेहतर उत्तर है क्योंकि सभी प्रणालियों (एम्बेडेड लिनक्स) में 'सबसे', 'अधिक' या 'कम' ग्रामीण शामिल नहीं हैं।
frakman1

या,ps auxf > ps.log
मार्सलो

118

सरल और सही:

ps -efww

छोटी लाइन नहीं होगी


2
यह "ww" हिस्सा है जो पूर्ण आउटपुट के लिए जिम्मेदार है
9ilsdx 9rvj 0lo

64

बस इसे बिल्ली पर फेंक दें, जो स्वचालित रूप से लाइन-लपेटता है

ps aux | cat

आप विस्तृत कर सकते हैं, लेकिन अधिक।
मर्जारोज़ा 18

10
बिजीबॉक्स जैसे हल्के लिनक्स वितरण के लिए अच्छा समाधान, जहां उन्नत उपकरण उपलब्ध नहीं हैं :)
शेर

साथ ही याद रखना आसान है!
fzn

बहुत सरल है। catकमांड हर निक्स बॉक्स पर है।
22

15

इसे कुछ wएस पास करने से डिस्प्ले की चौड़ाई कम हो जाएगी।


क्या आपने एक से अधिक जोड़ने की कोशिश की?
इग्नासियो वाज़केज़-अब्राम्स

मैं 5 से अधिक जोड़ने की कोशिश की। लेकिन किसी भी तरह यह पूरा आदेश नहीं दिखा।
बूलियन

1
एक बार जब आप 3 पर पहुँचते हैं तो आप वह सब देख रहे होते हैं जो वहाँ है। किसी भी कार्यक्रम में दिखाई देने वाली चीज़ों से परे यह कुछ भी नहीं है । आपको एक अलग समस्या है।
इग्नासियो वाज़केज़-अब्राम्स

11

यदि आप आउटपुट स्वरूप को मैन्युअल रूप से निर्दिष्ट कर रहे हैं, तो आपको यह भी सुनिश्चित करने की आवश्यकता है कि argsविकल्प आउटपुट फ़ील्ड की सूची में अंतिम है, अन्यथा इसे छोटा कर दिया जाएगा।

ps -A -o args,pid,lstart देता है

/usr/lib/postgresql/9.5/bin 29900 Thu May 11 10:41:59 2017
postgres: checkpointer proc 29902 Thu May 11 10:41:59 2017
postgres: writer process    29903 Thu May 11 10:41:59 2017
postgres: wal writer proces 29904 Thu May 11 10:41:59 2017
postgres: autovacuum launch 29905 Thu May 11 10:41:59 2017
postgres: stats collector p 29906 Thu May 11 10:41:59 2017
[kworker/2:0]               30188 Fri May 12 09:20:17 2017
/usr/lib/upower/upowerd     30651 Mon May  8 09:57:58 2017
/usr/sbin/apache2 -k start  31288 Fri May 12 07:35:01 2017
/usr/sbin/apache2 -k start  31289 Fri May 12 07:35:01 2017
/sbin/rpc.statd --no-notify 31635 Mon May  8 09:49:12 2017
/sbin/rpcbind -f -w         31637 Mon May  8 09:49:12 2017
[nfsiod]                    31645 Mon May  8 09:49:12 2017
[kworker/1:0]               31801 Fri May 12 09:49:15 2017
[kworker/u16:0]             32658 Fri May 12 11:00:51 2017

लेकिन ps -A -o pid,lstart,argsआपको पूरी कमांड लाइन मिलती है:

29900 Thu May 11 10:41:59 2017 /usr/lib/postgresql/9.5/bin/postgres -D /tmp/4493-d849-dc76-9215 -p 38103
29902 Thu May 11 10:41:59 2017 postgres: checkpointer process   
29903 Thu May 11 10:41:59 2017 postgres: writer process   
29904 Thu May 11 10:41:59 2017 postgres: wal writer process   
29905 Thu May 11 10:41:59 2017 postgres: autovacuum launcher process   
29906 Thu May 11 10:41:59 2017 postgres: stats collector process   
30188 Fri May 12 09:20:17 2017 [kworker/2:0]
30651 Mon May  8 09:57:58 2017 /usr/lib/upower/upowerd
31288 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31289 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31635 Mon May  8 09:49:12 2017 /sbin/rpc.statd --no-notify
31637 Mon May  8 09:49:12 2017 /sbin/rpcbind -f -w
31645 Mon May  8 09:49:12 2017 [nfsiod]
31801 Fri May 12 09:49:15 2017 [kworker/1:0]
32658 Fri May 12 11:00:51 2017 [kworker/u16:0]

9

आप आउटपुट प्रारूप सेट कर सकते हैं, उदाहरण के लिए केवल कमांड और प्रोसेस आईडी देखने के लिए।

ps -eo pid,args

अधिक आउटपुट स्वरूप के लिए ps का मैन पेज देखें। वैकल्पिक रूप से, आप -wया --width nविकल्पों का उपयोग कर सकते हैं ।

यदि अन्य सभी विफल हो जाते हैं, तो यहां एक और समाधान है, (बस अपने लंबे सेमी देखने के लिए)

awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3],$0 }' /proc/[0-9]*/cmdline

1
ऑर्डर बदलें और फिर से कोशिश करें, पीआईडी,
आर्ग्स

3

पार्टी के लिए देर से आने के लिए क्षमा करें, लेकिन अभी समस्या का हल मिल गया है।

लाइनों को काट दिया जाता है क्योंकि ps $ COLUMNS के मूल्य का उपयोग करने पर जोर देते हैं, भले ही आउटपुट उस क्षण स्क्रीन न हो। जो एक बग, IMHO है। लेकिन चारों ओर काम करना आसान है, बस पीए को लगता है कि आपके पास एक सुपरवाइड स्क्रीन है, यानी ps कमांड की अवधि के लिए COLUMNS को उच्च सेट करें। एक उदाहरण:

$ ps -edalf                 # truncates lines to screen width
$ COLUMNS=1000 ps -edalf    # wraps lines regardless of screen width

मुझे उम्मीद है कि यह अभी भी किसी के लिए उपयोगी है। अन्य सभी विचार बहुत जटिल लग रहे थे :)


1

अगर काम से ऊपर समाधान में से कोई भी, psआपकी समस्या का उत्पादन नहीं है। शायद आपको लंबी लाइनों को लपेटने के लिए पोटीन सेट करने की आवश्यकता है ?

अन्यथा, हमें अधिक जानकारी की आवश्यकता है।


ओह अच्छा। कुछ अजीब सा चल रहा है।
आलोक सिंघल

1

यदि आप grepकमांड है कि आप ps aux से एक पाइप के साथ देख रहे हैं, यह स्वचालित रूप से पाठ लपेटेंगे। मैंने यहाँ कई अन्य उत्तरों का उपयोग किया है, लेकिन कभी-कभी यदि आप किसी विशिष्ट चीज़ की तलाश में हैं, तो इसका उपयोग करना अच्छा है grepऔर आप जानते हैं कि यह लाइनों को लपेट देगा।

उदाहरण के लिए ps aux | grep ffmpeg


1

मुझे यह उत्तर मिला जो कि मेरे लिए ऐसा था, जैसा कि उपरोक्त उत्तर में से किसी ने भी काम नहीं किया

/unix/91561/ps-full-command-is-too-long

असल में, कर्नेल मेरी cmd लाइन को सीमित कर रहा है।


0

दूसरों द्वारा उल्लिखित ट्रंकेशन के लिए साक्ष्य, (एक व्यक्तिगत उदाहरण)

foo=$(ps -p 689 -o command); echo "$foo"

COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtime/kernel-5732db1a-d484-4a58-9d67-de6ef5ac721b.json

^ ^ एक चर में उस लंबे आउटपुट को पकड़ता है जैसा कि विरोध किया गया है

ps -p 689 -o command

COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtim

चूँकि मैं एक डॉकर ज्यूपिटर नोटबुक से यह कोशिश कर रहा था, मुझे इसे धमाके के साथ चलाने की ज़रूरत थी।

!foo=$(ps -p 689 -o command); echo "$foo"

हैरानी की बात है कि नोटबंदी ने आपको भी अंजाम दिया है! लेकिन मेरी सभी मेमोरी = डी को अपकमिंग नोटबुक खोजने में मदद करने में खुशी हुई

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