स्क्रीन के अंदर स्क्रॉल करें, या आउटपुट रोकें


381

मैं अपने कमांड लाइन कार्यों के लिए स्क्रीन का उपयोग सर्वरों के प्रबंधन के दौरान करता हूं जहां मैं काम करता हूं। मैं आमतौर पर छोटे कमांड (ज्यादातर फाइल-सिस्टम कार्य) चलाता हूं, लेकिन कभी-कभी मैं अधिक व्यापक कार्य (जैसे डीबीए) चलाता हूं।

उत्पादन उन कार्यों का मेरे लिए महत्वपूर्ण है। चूंकि मैं अपने कार्यों के लिए उबंटू और ओएस एक्स (दोनों टर्मिनल विंडोज) का उपयोग करता हूं, फिर भी मुझे स्क्रीन का उपयोग करने की आवश्यकता है, स्क्रॉलिंग उपलब्ध नहीं है, इसलिए किसी भी लंबे आउटपुट (एक चयन से 500-पंक्ति तालिका) मेरे लिए अदृश्य है। माउस-व्हील प्रश्न से बाहर है।

जब मैं कहता हूं "स्क्रॉल मेरे लिए अदृश्य है, तो मेरा मतलब है:

स्क्रॉल करते समय Mac OS X में स्क्रीन का उपयोग करते हुए शीर्ष

मैं दो विकल्पों के बारे में सोच रहा था:

  1. एक निश्चित कमांड के आउटपुट को रोकें ( थपथपाते हुए सोचें )। जब आउटपुट शुरू होता है, तो यह मुझे पढ़ने देता है कि क्या हो रहा है, फिर मैं "एंटर" दबाता हूं, फिर आउटपुट तब तक जारी रहता है जब तक कि दिखाने के लिए अधिक कुछ नहीं होता।

  2. स्क्रीन के अंदर स्क्रॉल करें। लेकिन मुझे नहीं पता कि क्या यह संभव है।

बेशक, मुझे नहीं पता कि क्या वे विकल्प वास्तव में संभव हैं । यदि वे हैं, तो उन्हें कैसे प्राप्त किया जा सकता है? अन्य विकल्प अच्छी तरह से प्राप्त होंगे।

जवाबों:


525

स्क्रीन का अपना स्क्रॉल बफर है, क्योंकि यह एक टर्मिनल मल्टीप्लेक्स है और कई बफ़र्स के साथ सौदा करना है ।

शायद वहाँ एक बेहतर तरीका है, लेकिन मैं "कॉपी मोड" का उपयोग करके स्क्रॉल करने के लिए उपयोग किया जाता हूं (जिसका उपयोग आप स्क्रीन का उपयोग करके पाठ को कॉपी करने के लिए कर सकते हैं, हालांकि इसके लिए पेस्ट कमांड की भी आवश्यकता होती है):

  • अपनी स्क्रीन उपसर्ग संयोजन (हिट C-a/ control+ Aडिफ़ॉल्ट रूप से), तो हिट Escape

  • तीर कुंजी ( और ) के साथ ऊपर / नीचे जाएं ।

  • जब आप काम कर रहे हों, तो स्क्रॉल बफर के अंत में वापस जाएं qया Escapeप्राप्त करें।

(यदि इसके बजाय qया Escapeआप हिट करते हैं Enterया Returnफिर कर्सर को हिलाते हैं, तो आप कॉपी करने के लिए टेक्स्ट का चयन करेंगे, और हिटिंग Enterया Returnएक सेकंड इसे कॉपी करेंगे। फिर आप C-aइसके बाद पेस्ट कर सकते हैं ]।)

बेशक, आप हमेशा उपयोग कर सकते हैं moreऔर less, दो आमतौर पर उपयोग किए जाने वाले पेजर, जो कुछ कमांड के लिए पर्याप्त हो सकते हैं।


5
इसके अलावा, कुछ भी कॉपी किए बिना q क्विट कॉपी मोड दबाएं (और यह एक कम बटन प्रेस है)। यह vi स्पष्टीकरण में हो सकता है लेकिन लिंक अब टूट गया है।
नाथनेल फ़र्ले

3
[Esc] दबाने पर भी कॉपी मोड से बाहर निकल जाता है।
सोलापाजो डी एरियेरेज़

7
पेज-अप करने का कोई तरीका?
सुंगगुक लिम

10
स्क्रॉल बफ़र vi- जैसी कमांड का समर्थन करने लगता है: स्क्रॉलिंग पेज अप / डाउन के लिए Cb और Cf।
ताऊको

3
कॉपी मोड में मेरे पेजअप और पेजडाउन बटन काम करते हैं। पहले प्रेस केवल एक पंक्ति को आगे बढ़ाता है लेकिन उसके बाद यह सामान्य की तरह पृष्ठ बनाता है।
एलिय्याह

170

Nssg द्वारा बताए अनुसार screenबफर का उपयोग करना एक अच्छा उपाय है। आप वैकल्पिक पाठ बफ़र को स्क्रीन के अंदर xterm termcap जानकारी में अक्षम कर सकते हैं। अक्षम होने पर आप ऊपर और नीचे स्क्रॉल करने के लिए स्क्रॉल बार (और माउस व्हील) का उपयोग कर सकते हैं।

इसे अपने में जोड़ें ~/.screenrc

# Enable mouse scrolling and scroll bar history scrolling
termcapinfo xterm* ti@:te@

आप यहां और अधिक चर्चा पढ़ सकते हैं ।


1
Ctrl + A टाइप करके सेट स्क्रॉल बैक सीमा:, प्रकार "स्क्रॉल बैक 10000" या जो कुछ भी संख्यात्मक मान आप चाहते हैं
Lobi

2
इसका उपयोग करते हुए, लिनक्स टर्मिनलों (शिफ्ट + पीजी अप / डाउन होम / एंड) के विशिष्ट शॉर्टकी भी काम करते हैं, धन्यवाद।
10

4
यह टिप अकेले मुझे स्क्रीन का उपयोग कर पुनर्विचार करता है ...
मछली मॉनिटर

4
+1 स्वीकृत समाधान से अधिक सुरुचिपूर्ण।
रयान योसेफी

8
screenजब आप इसे शुरू करते हैं तो केवल आपको आउटपुट देता है - यानी, कहीं और रीटेटिंग करने का मतलब है कि आप स्क्रॉल नहीं कर सकते हैं और देखें कि पहले क्या हुआ था। लेकिन आप अभी भी स्वीकार किए गए उत्तर में समाधान का उपयोग करके पहले के आउटपुट को पुनः प्राप्त कर सकते हैं - फिर आप अपने माउस व्हील को फिर से उपयोग कर सकते हैं।
फिल

28

इन सभी उत्तरों से पता चलता है कि स्क्रीन सत्र के भीतर कैसे नेविगेट किया जाए, लेकिन -Lमैनुअल के अनुसार एक तर्क के माध्यम से एक फ़ाइल में सब कुछ संग्रहीत करने के लिए अंतर्निहित स्क्रीन कमांड है ।

-L विंडो के लिए ऑटोमैटिक आउटपुट लॉगिंग चालू करने के लिए स्क्रीन को बताता है।

तो आप कर सकते हैं:

screen -L -S testscreen

और यह एक ऐसी फ़ाइल बना देगा screenlog.#जिसमें #0 से शुरू होने वाली स्क्रीन के लिए एक नंबर है।

इसके बहुत सारे फायदे हैं और मेरे लिए सबसे महत्वपूर्ण हैं:

  1. भविष्य में संदर्भ के लिए प्रोजेक्ट फ़ोल्डर में लॉग फ़ाइल को सहेजने के बाद से मैंने क्या किया है, इसका रिकॉर्ड रखना।
  2. आप निष्क्रिय रूप से और निष्क्रिय रूप से प्रक्रिया की निगरानी कर सकते हैं:
    • tailfस्क्रीन से जुड़े बिना रियलटाइम में प्रगति की निगरानी के लिए उपयोग करें।
    • grepलॉग में निश्चित अवधि के लिए जाँच करने के लिए उपयोग करें और सूचनाएँ (ईमेल, पॉपअप, वीओआईपी, आदि) का उत्पादन करें। यह आप सक्रिय रूप से उन्हें देख के बिना कई स्क्रीन पर लागू किया जा सकता है।

1
मुझे -Lस्क्रीन के झंडे के बारे में पता नहीं था , यह बहुत उपयोगी है! +1
Kredns

1
बस अधिक जोड़ना चाहते हैं, screenlog.#उसी फ़ोल्डर में उत्पन्न होता है जहां आप screenकमांड निष्पादित करते हैं
Lê Quang Duy

3

moreउदाहरण के लिए , मुझे पाइपिंग सामग्री द्वारा मूल पेजिंग प्राप्त करने में सफलता मिली है :

ls -l | more

या, यदि आप सिंटैक्स हाइलाइटिंग जैसे उपयोग मामलों के लिए रंग आउटपुट चाहते हैं, तो आप उपयोग कर सकते हैं

ls -l --color=always | more

इसका परिणाम यह है कि मैं एक समय में एक स्क्रीन के माध्यम से आसानी से पेज कर सकता हूं। मैंने @ uther के संशोधन की कोशिश नहीं की है, ~/.screenrcलेकिन जब माउस उपलब्ध होता है, तो यह एक स्थायी समाधान के रूप में बेहतर लगता है।

इसे आज़माने के लिए, आप इस बिजीबॉक्स एमुलेटर पर जा सकते हैं और फिर ...

cd ~/bin
ls -l --color=always | more

ls -lकमांड के परिणामों के माध्यम से पृष्ठ के लिए स्पेसबार का उपयोग करें या लाइन द्वारा परिणाम पंक्ति के माध्यम से स्थानांतरित करने के लिए एंटर कुंजी का उपयोग करें।

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