टर्मिनल पर आउटपुट छोड़ने के बिना मैं शीर्ष कैसे छोड़ सकता हूं?


30

topजिस तरह से क्विट lessकरता है, स्क्रीन पर उसके आउटपुट को पीछे नहीं छोड़ता, मुझे कैसे मिलता है ?

मेरे पास यह संस्करण है:

procps-ng version 3.3.9

कैसे एक विकल्प का उपयोग करने के बारे में, जैसे htop?
डार्कहार्ट

जवाबों:


48

जब आप इसे इस तरह से शुरू करते हैं ...

top && clear

... स्क्रीन q से बाहर निकलने के बाद साफ़ करता है।

यह अधिक कार्य करता है less:

tput smcup ; top ; tput rmcup

( smcupद्वितीयक स्क्रीन पर स्विच करता है, जहां topकमांड निष्पादित होता है और जब आप top rmcupसामान्य स्क्रीन पर वापस स्विच छोड़ते हैं)


आप शीर्ष कमांड को ऐसा करने के लिए उपनाम दे सकते हैं ( मैं एक स्थायी बैश उपनाम कैसे बनाऊं? )


3
clearलगता है कि सभी को मिटाया जा सकता है, लेकिन स्क्रैचबैक बफर की आखिरी स्क्रीन भी (इसलिए इस मामले में शीर्ष की आखिरी स्क्रीन को छोड़कर) - कम से कम xfce4- टर्मिनल और क्यूटर्मिनल में। tputजवाब के लिए अच्छा काम करता है, विशेष रूप से एक उपनाम मेंtop
Xen2050

2
जल्दी ठीक करने के लिए Ctl + L को न भूलें।
jpaugh

ओह दिलचस्प; मैं सोच रहा था कि lessआखिरी आउटपुट बफर से पूरी तरह गायब क्यों हो गया।
मोनिका

कुछ अन्य सुझाव: 1. दूर-सुपीरियर-लेकिन-नहीं-में-इन का उपयोग करें htop, और 2. कमांड को एक साथ मिलाएं ताकि आपको उन्हें हर बार मैन्युअल रूप से चेन न करना पड़े।
at१18 को

@flith मैं अन्य उपयोगकर्ताओं के जवाब चोरी करने नहीं जा रहा हूं ;-)
रिनविंड

31

विडंबना यह है कि 1 , इस था संक्षिप्त के व्यवहार top। 3.3.8 में, topस्क्रीन को साफ किया, लेकिन पिछले या बाद के संस्करणों में नहीं। देखें Red Hat बग # 977561 :

स्क्रीन क्लीयरिंग टर्मिनल जोड़तोड़ में बदलाव का एक अप्रत्यक्ष परिणाम है जो जिम वार्नर ('टॉप' टूल के लेखक) द्वारा प्रस्तुत किया गया था ताकि व्यापक रूप से टर्मिनल अनुप्रयोगों में से कुछ द्वारा उत्पन्न SIGWINCH संकेतों के साथ 'टॉप' टूल को बाढ़ से दबाया जा सके। यह मैं था जिसने बाढ़ के मुद्दे की सूचना दी और उन्होंने इसे हल करने के लिए अपना सर्वश्रेष्ठ प्रदर्शन करने की कोशिश की और 8 अलग-अलग कमिट्स के रूप में इस मुद्दे के लिए एक फिक्स जारी किया। स्क्रीन क्लियरिंग शुरू करने वाले कमिट में निम्नलिखित हैश हैं: 'dedaf6e1a81738ff08ee8e8523871e12f555ad6d'।

बग रिपोर्ट के कारण, जिम ने फिर से यह तय किया कि 3.3.9 में आउटपुट को फिर से साफ़ न करें ।

topइसे नियंत्रित करने के लिए कोई विकल्प या कॉन्फ़िगरेशन सेटिंग्स नहीं है, AFAICT, यह पूरी तरह से हार्डकोडेड व्यवहार है। आप https://gitlab.com/procps-ng/procps/issues/ पर एक सुविधा अनुरोध दर्ज करना चाह सकते हैं ।

तब तक, आप clearमैन्युअल रूप से सुझाए गएtput रिनविंड की तरह , या स्टीलड्राइवर की तरह उपयोग कर सकते हैं।


दिलचस्प बात यह है कि उपर्युक्त प्रतिबद्ध में भी सुझाव दिया गया स्टील कमांडर का अच्छा विवरण है, क्योंकि यह वास्तव में वही है जो मूल रूप से कोड में किया गया था:

कई टर्मिनल एमुलेटर में उपयोग किए गए एक स्क्रॉलबैक बफर कुछ आकार परिवर्तन कार्यों के बाद उपयोगकर्ता के लिए एक वास्तविक असुविधा हो सकती है। शीर्ष के प्रदर्शन को ठीक से प्रस्तुत करने के लिए अतिरिक्त कीस्ट्रोक की आवश्यकता होती है।

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

हम परवाह नहीं करते हैं कि आप उन्हें क्या कहते हैं या जब तक वे काम करते हैं, तब तक वे क्या कहते हैं। और ये सच में करते हैं! हालांकि, सलाह दी जाती है कि कुछ दुष्प्रभाव हैं, जिनमें से कई को भी लाभकारी माना जा सकता है:

  • दर्ज करें

  • बाहर निकलें_ca_mode / rmcup / te पुनर्स्थापित करता है स्क्रॉलबैक बफर (लेकिन यह भी पूर्व-शीर्ष स्क्रीन सामग्री को पुनर्स्थापित करता है) (जो कि पूर्व प्रोग्राम के अंतिम परिणामों से अलग है) (जहां अंतिम रेंडर की गई स्क्रीन को अछूता छोड़ दिया गया था)

... जो tput smcupऔर tput rmcupआज्ञाओं के अनुरूप हो ।


1 अप्रचलित xkcd।


दिलचस्प रूप से BSD टॉप (जैसे MacOS पर) टर्मिनल को भी साफ करता है
डिजिटल ट्रामा

15

वह व्यवहार जिसे आप कम से देख रहे हैं, उसे htop नामक विकल्प में बनाया गया है। आप इसे स्थापित कर सकते हैं:

sudo apt-get install htop

विशेष रूप से, जब आप htop को बंद करते हैं, तो अपनी मूल स्क्रीन सामग्री को संरक्षित करने से पहले इसे वैकल्पिक स्क्रीन मोड पर स्विच करना होता है। यह प्रॉप्स के शीर्ष पर कई अन्य संवर्द्धन भी करता है। एक बार स्थापित होने के बाद, आप इसे एक नियमित उपयोगकर्ता के रूप में चला सकते हैं:

htop

प्लस htopबहुत रंगीन है, माउस सपोर्ट वगैरह जोड़ता है
WinEunuuchs2Unix

4

आप उपयोग कर सकते हैं watch:

watch top -b

-n1यदि आप इस व्यवहार को बदलना चाहते हैं, तो यह प्रत्येक दो सेकंड में अपडेट करने के लिए डिफ़ॉल्ट है, उदाहरण के लिए एक सेकंड के लिए उपयोग करें। छोड़ने के लिए watch, सामान्य के बजाय Ctrl+ दबाएँ ।CQ

एक और दृष्टिकोण एक नई टर्मिनल विंडो खोल रहा है, जैसे xterm:

xterm -e top

यह बर्ताव करता है वास्तव में की तरह topसामान्य रूप से करता है, खिड़की बंद कर देता है जब आप छोड़ने topके साथ Qऔर निश्चित रूप से यह टर्मिनल आप से यह शुरू में कोई उत्पादन छोड़ देता है। &पृष्ठभूमि में इसे शुरू करने के लिए इस कमांड के अंत में जोड़ें और तुरंत टर्मिनल को फिर से जारी करें।


1

जैसा कि रिनविंड का उत्तर बताता है, clearकमांड topस्क्रीन से आउटपुट को साफ करता है ।

बाहर निकलने के बाद topआप स्क्रीन से आउटपुट क्लियर करने के लिए Ctrl+ Lका भी उपयोग कर सकते topहैं। हालाँकि, कमांड के बाद भी आप पुराने topआउटपुट को देखने के लिए स्क्रीन को स्क्रॉल कर सकते हैं ।

स्क्रीन को वास्तव में साफ़ करने के लिए, जैसे कि topआउटपुट को वापस स्क्रॉल नहीं किया जा सकता है, resetकमांड का उपयोग करें :

top && reset

एक अन्य विकल्प यह है कि "ASCII स्प्लैश स्क्रीन" (यदि आपके पास एक है) चलाकर एक नए सत्र का "ताज़ा रूप" दिया जाए। मेरे मामले में मैं चला जाएगा:

top && reset && now && screenfetch

अब रीसेट करें

  • मेरी nowस्क्रिप्ट मौसम, कैलेंडर ( cal) और toiletफैंसी समय के साथ बुलाती है ।
  • screenfetch उबंटू लोगो और मशीन आँकड़े पेंट करता है।

1
मैं आवश्यकता के बिना .bashrc नियमित रूप से फिर से चलने की सलाह नहीं export PATH=...:$PATHदूंगा क्योंकि आमतौर पर उस फ़ाइल की तरह लाइनें होती हैं और इसे कई बार चलाने से अनावश्यक रूप से विस्तार होगा PATH। इसके अलावा, फोन करने neofetchमें .bashrcमानक व्यवहार (हालांकि यह कल्पना दिखता है) नहीं है। उदाहरण के लिए, जब मैं फिर से दौड़ता हूं तो मेरा .bashrcकुछ भी स्पष्ट नहीं होता है।
पर्लडक

CTRL + L और एक जैसा clearव्यवहार करना: for i in {1..200}; do echo "line $i"; doneदो अलग-अलग, ताज़ी खिड़कियों में प्रयास करें । फिर CTRL+Lविंडो 1 में हिट करें और विंडो 2 clearमें टाइप करें। अब दोनों विंडो (माउस व्हील) में वापस स्क्रॉल करें। में CTRL+L-window आप सभी लाइनों देख सकते हैं (अपने पुस्तक बफर के आधार पर) में जबकि clear-window आप कर सकते हैं केवल स्क्रॉल वापस एक स्क्रीन। यह है: clearस्क्रॉलबैक बफ़र को साफ़ करता है, जबकि CTRL+L$ window_height बार ENTER(aka newline) दबाने के समान है ।
पर्लडक

1
@PerlDuck neofetchएक अच्छी पकड़ है लेकिन यह एक व्युत्पन्न है जिसका मुझे अनुमान है screenfetch। मैं इसका उपयोग खुद को याद दिलाने के लिए करता हूं कि मैं उबंटू में हूं क्योंकि मेरे पास दोहरी बूट है और विंडोज बैश में एक अलग छप स्क्रीन है। मैं .bashrcसंदर्भ निकालूंगा। जैसा कि clearऔर Ctrl+ Lमेरी बात यह थी कि वे समान थे कि वे दोनों topस्क्रॉल बैक बफर में आउटपुट छोड़ते हैं ।
WinEunuuchs2Unix

2
मुझे लगता है कि हर किसी की अलग-अलग चीजें होती हैं .bashrc। कोशिश करो curl wttr.in/Edmonton?0, यह कमाल है। curl wttr.in/:helpसहायता प्राप्त करने के लिए उपयोग करें । मेरे पास एक /etc/update-motd.d/स्क्रिप्ट में एक समान कॉल है इसलिए मुझे कंसोल या एसएचएस (हर टर्मिनल विंडो के लिए नहीं) से लॉग इन करते समय सूचित किया जाता है। यदि आप इसे पसंद करते हैं, --silent --max-time 3तो कर्ल कॉल में जोड़ें ताकि इंटरनेट धीमा होने पर इसे हमेशा के लिए न लें।
पर्लडक

@PerlDuck curl wttr.in/Edmonton?0भयानक है! बहुत बहुत धन्यवाद। मैं toiletअपने छप स्क्रीन पर समय प्रदर्शन के बाद इसे निचोड़ने की कोशिश करूँगा :)
WinEunuuchs2Unix
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.