PuTTY: कमांडलाइन से स्पष्ट स्क्रॉलबैक


27

जब मैं PuTTY के माध्यम से अपने सर्वर से जुड़ता हूं, तो मैं दृश्यमान स्क्रीन को clearकमांड से साफ कर सकता हूं ।

हालाँकि, मैं अभी भी पुराने सामान को देखने के लिए PuTTY के GUI में पीछे की ओर स्क्रॉल कर सकता हूँ। मैं PuTTY की स्पष्ट स्क्रॉलबैक सुविधा से अवगत हूं , लेकिन इसके लिए माउस क्लिक की आवश्यकता है।

मैं वही "क्लियर स्क्रॉलबैक" ऑपरेशन करना चाहता हूं, लेकिन कमांडलाइन से।

क्या यह संभव है?

मैं इस साइट को पढ़ता हूं , जो ऐसा संकेत देता है।

हालाँकि, मेरे प्रयोग विफल रहे हैं। उदाहरण के लिए:

printf '\033[3J'

कुछ नहीं करता, मेरे लिए।

मैं CSI 3 Jउस दूसरी कड़ी का अर्थ नहीं समझ पा रहा हूँ , हालाँकि ...


आप किस संस्करण का उपयोग कर रहे हैं? पृष्ठ पुट्टी 0.59 और इसके बाद के संस्करण में काम करता है। मेरे पास पुटी 0.60 है और यह मेरे लिए काम करता है। ध्यान दें कि यह केवल स्क्रॉलबैक बफर को साफ करता है, यह स्क्रीन को साफ नहीं करता है। (यदि मेरे पास एक स्क्रॉल बार है जिसे मैं वास्तव में स्क्रॉल कर सकता हूं, तो इस क्रम का उपयोग करें, मैं नोटिस करता हूं कि स्क्रॉल बार अक्षम हो गया है क्योंकि स्क्रॉल करने के लिए अचानक कुछ भी नहीं है। लेकिन वर्तमान में प्रदर्शित स्क्रीन जगह में बनी हुई है।)
बावी_एच

@Bavi_H: आह, धन्यवाद - मुझे एहसास नहीं था कि यह वर्तमान में प्रदर्शित पाठ को प्रभावित नहीं करेगा। मैं देख रहा हूँ कि यह भी काम कर रहा है। पूर्ण समाधान मैं चाहता हूं clear && printf '\033[3J'। अगर आप कोई जवाब देंगे तो मैं उसे स्वीकार करूंगा।
jwd

जवाबों:


32

CSI 3 Jस्क्रॉलबैक बफ़र को खाली करने का क्रम PuTTY 0.59 में जोड़ा गया था। ( इस सुविधा के लिए इच्छा अनुरोध पृष्ठ पर "फिक्स्ड-इन" लाइन देखें, या PuTTY परिवर्तन पृष्ठ पर जाएं और खोजें CSI 3 J)।

जैसा कि jwd ने बताया है, आप printf '\033[3J'इस क्रम को PuTTY को भेजने के लिए एक कमांड लाइन पर प्रवेश कर सकते हैं । ज्ञात हो कि यह केवल स्क्रोलबैक बफर को साफ करता है, यह स्क्रीन को साफ नहीं करता है। यदि आपके पास एक स्क्रॉल बार है जिसे आप वास्तव में स्क्रॉल कर सकते हैं, तो इस क्रम का उपयोग करें, आप देखेंगे कि स्क्रॉल बार अक्षम हो गया है क्योंकि स्क्रॉल करने के लिए अचानक कुछ भी उपलब्ध नहीं है। लेकिन वर्तमान में प्रदर्शित स्क्रीन यथावत बनी हुई है।

जैसा कि jwd ने बताया है, आप स्क्रीन और स्क्रॉलबैक बफर दोनों का उपयोग करके साफ़ कर सकते हैं clear && printf '\033[3J'


और नियंत्रण कोड के बारे में कुछ प्रकाश पढ़ने की मांग करने वालों के लिए: xfree86.org/4.8.0/ctlseqs.html (: यह एक के तहत हैCSI P s J
jwd

11

यदि आप पुट्टी के सिस्टम मेनू में उपलब्ध विकल्प का उपयोग करने के Ctrl+Lलिए आदी हैं, जैसा कि मैं हूं Reset terminal, तो आप इसे सक्षम करने में मददगार हो सकते हैं Configuration -> Window -> Behavior -> "System menu appears on ALT-Space"

फिर जब आप हिट करते हैं Alt+Space, तो इसके लिए विकल्प "Clear scrollback"को ट्रिगर किया जाता है L(लोअरकेस; कोई बदलाव नहीं)। इस प्रकार, reset + clearकी आकर्षक-स्मरक संयोजन हो जाता है Ctrl+Lऔर Alt+Space Lकिसी भी परेशान mousing या अपने खोल इतिहास में मनमुताबिक।


काम करता है और याद रखना आसान है :)
व्योमवुड

बुरा नहीं है, हालांकि FYI करें: आप किसी स्थान के साथ कमांड को उपसर्ग करके अपने शेल इतिहास को अव्यवस्थित करने से भी रोक सकते हैं।
jwd

6

एक स्क्रिप्ट फ़ाइल बनाएं और इसे पथ-शामिल फ़ोल्डर में रखें:

$cat > /usr/local/bin/cls
#!/bin/bash
clear
printf '\033[3J'

बचाने और बाहर निकलने के लिए CTRL + d दबाएं

फ़ाइल पर अनुमति बदलें:

chmod a+x /usr/local/bin/cls

अब आप cmd cls :-) का उपयोग कर सकते हैं


1

मेरे लिए समाधान '\ 033 \ 143' वर्णों को प्रेषित करना था:

printf ( "\ 033 \ 143");

यह टर्मिनल स्क्रीन को साफ करता है और कर्सर को ऊपरी बाएं कोने में वापस रखता है।


1
(1) प्रश्न एक कमांड-लाइन (यानी, शेल) कमांड के लिए पूछता है। यह एक शेल कमांड नहीं है, यह सी कोड की एक पंक्ति है; जैसे, यह इस सवाल का जवाब नहीं है। (२) यह पोस्ट थोड़ी उपयोगी होगी यदि आपने कहा कि \143चरित्र क्या है, और यह इस प्रश्न से कैसे संबंधित है, आदर्श रूप से उद्धरण के साथ।
स्कॉट

1
सोच रहे लोगों के लिए, यह "पूर्ण रीसेट" एस्केप कोड ( ESC c) से मेल खाती है । ASCII cका मूल्य है 99जो अष्टाधारी है 143। यह केवल FYI करें, स्क्रॉलबैक क्लीयर करने के अलावा अन्य चीजों का एक गुच्छा करेगा।
15

1

पोटीन में एक विकल्प है जहां आप डिफ़ॉल्ट स्क्रॉल बैक व्यवहार को अनचेक कर सकते हैं। बस "स्क्रॉल मिटाए गए पाठ को स्क्रॉलबैक में" विकल्प को अनचेक करें।

पोटीन सेटिंग्स छवि

इसके बाद जब आप स्पष्ट कमांड जारी करेंगे तो यह स्क्रीन को मिटा देगा और पिछली स्क्रीन की सामग्री को वापस स्क्रॉल में नहीं डालेगा।

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