वास्तविक के लिए एक टर्मिनल स्क्रीन साफ़ करें


382

clearटर्मिनल पर कमांड का उपयोग करने से उपयोगकर्ता केवल यह सोचकर मूर्ख बना देता है कि स्क्रीन साफ़ हो गई है ... आप अभी भी पिछले कमांड से आउटपुट देख सकते हैं जब आप माउस का उपयोग करके स्क्रॉल करते हैं। इससे जीवन मुश्किल हो जाता है जब आप पाठ की सुनामी में डूब रहे हैं।

विभिन्न समाधान (एस्केप कोड इत्यादि) जो इंटरनेट पर पाए जा सकते हैं, केवल स्पष्ट कमांड क्या करती है, इसकी विविधताएं हैं।

तो आप वास्तविक के लिए लिनक्स में एक टर्मिनल की सामग्री को कैसे साफ़ करते हैं?


44
मैं इसे "प्रोग्रामर द्वारा आमतौर पर उपयोग किए जाने वाले सॉफ़्टवेयर टूल" के रूप में वर्गीकृत करूंगा (एफएक्यू में मान्य के रूप में उल्लिखित)।
ऑटोडिडैक्ट

5
आप वास्तव में पूछ रहे हैं "मैं टर्मिनल के स्क्रॉल-बैक बफर को कैसे साफ़ कर सकता हूं?" जो शेल (बैश) या उबंटू से स्वतंत्र है।
अगली सूचना तक रोक दिया गया।

@ spiderplant0 शायद क्योंकि AskUbuntu इस समय के लिए सही जगह है -। यह पूछे जाने पर अस्तित्व में नहीं था, इसलिए यह विषय के रूप में बंद हो गया, भले ही ऐसा नहीं है।
जेकलूम

1
यह एक अधिक सामान्य प्रश्न है, जो न केवल उबंटू या बैश को प्रभावित करता है, जैसा कि @ डेनिस ने उल्लेख किया है। मैं इस विषय को "" असली के लिए
उबुन्टु

कई अलग-अलग टर्मिनल प्रकार हैं जिनके साथ आप बैश चला सकते हैं (शब्द " बैश टर्मिनल " व्यर्थ है)। "समाशोधन" उन सभी पर लागू नहीं होता है - कभी-कभी, निकटतम सन्निकटन कागज को फाड़ने के लिए होता है और बिन / बिखरना / जलना / नष्ट करना जो आप नहीं चाहते हैं।
टोबे स्पाइट

जवाबों:


500

केवल नई पंक्तियों को जोड़ने के बजाय एक स्पष्ट स्क्रीन करने के लिए निम्न आदेश का उपयोग करें ...

printf "\033c"

हाँ, यह बैश प्रॉम्प्ट पर एक 'प्रिंटफ' है।

आप शायद एक उपनाम को परिभाषित करना चाहते हैं ...

alias cls='printf "\033c"'

व्याख्या

\033 == \x1B == 27 == ESC

तो यह <ESC>cटर्मिनल को रीसेट करने के लिए VT100 एस्केप कोड है जो बन जाता है। यहां टर्मिनल एस्केप कोड के बारे में कुछ और जानकारी दी गई है।

संपादित करें

यहाँ यह करने के कुछ अन्य तरीके हैं ...

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

केडीई

उपरोक्त केडीई कंसोल (कोनो कंसोल) पर काम नहीं करता है, लेकिन आशा है! स्क्रीन और स्क्रॉल-बैक बफर को साफ़ करने के लिए कमांड के निम्नलिखित अनुक्रम का उपयोग करें ...

clear && echo -en "\e[3J"

या शायद केडीई पर निम्नलिखित उपनाम का उपयोग करें ...

alias cls='clear && echo -en "\e[3J"'

मैं से स्क्रॉल वापस समाशोधन आदेश मिला है यहाँ


4
यह वास्तव में टर्मिनल विशिष्ट है। "\033c"है ESC cजिसके लिए "पूर्ण रीसेट (आरआईएस)" VT-XXX एस्केप अनुक्रम है। लगभग सभी टर्मिनल जो लोग वास्तव में इन दिनों का उपयोग करते हैं वे VT संगत हैं, लेकिन यदि आप कभी भी अपने आप को एक अजीब टर्मिनल का उपयोग कर पाते हैं, तो यह काम नहीं कर सकता है। @ vpit3833 का उत्तर TERM के सही ढंग से सेट होने पर काम करने की अधिक संभावना है।
लॉरेंस गोंसाल्वेस

2
printfएक बैश बिलिन है (यह सच है कि यह एक अलग बाइनरी भी है, लेकिन बिल्डिंस की पूर्वता है और अधिकांश आधुनिक गोले हैं printf)।
अगली सूचना तक रोक दिया गया।

2
@ SDX2000 ठीक है ... मुझे पता है कि आप उबंटू निर्दिष्ट करते हैं, और मैंने माना कि ये सभी "आधुनिक" टर्मिनल एमुलेटर पर समान व्यवहार करेंगे। मैंने शुरू में अपने मैक के टर्मिनल पर परीक्षण किया और यह वहां रीसेट नहीं हुआ, लेकिन इसने मेरे सेंटोस लिनक्स पर रीसेट कर दिया।
nhed

12
इको-एन "\ 033 सी"
जोनाथन रेइनहार्ट

2
$ 0.02 कुछ साल बाद, लेकिन मैं CU में एक छात्र हूं। मेरे ऑपरेटिंग सिस्टम के प्रोफेसर से पूछा और उन्होंने कहा कि यह एएनएसआई से बचने के क्रम का एक उदाहरण था: en.wikipedia.org/wiki/ANSI_escape_code यह इन-बैंड सिग्नलिंग का एक उदाहरण है।
एबगार्डन

216

कोशिश करो reset। यह टर्मिनल स्क्रीन को साफ करता है, लेकिन पिछले कमांडों को तीर या जो भी आपके पास महत्वपूर्ण बंधन के माध्यम से पहुँचा जा सकता है।


3
धन्यवाद! लेकिन यह प्रॉम्प्ट सहित हर बात को साफ करता है। एक समाधान के लिए मेरा जवाब देखें जो ऐसा नहीं करता है।
ऑटोडिडैक्ट

5
@ SDX2000 दोनों ने संकेत दिया और फिर शेल ने एक नया निर्माण किया। रीसेट करने के लिए एक नुकसान यह है कि यह थोड़ा धीमा लगता है (शायद इसलिए कि यह ईएससी सी से अधिक उत्सर्जन करता है) लेकिन यह अधिक पोर्टेबल है।
लॉरेंस गोंसाल्वेस

@ स्पष्टीकरण के लिए धन्यवाद धन्यवाद ... मैंने रीसेट करने की कोशिश की लेकिन यह इतना धीमा था कि मैंने अनुमान लगा लिया कि सब कुछ ठीक हो गया। मैं अभी भी उपयोग करना पसंद करूंगा ESC cक्योंकि मैं शायद एक भी उबंटू उपयोग के अलावा किसी भी टर्मिनल का उपयोग नहीं करूंगा। हालांकि resetकिसी दिन काम आ सकता है जब मैं एक रिमोट मशीन को सीरियल पोर्ट आदि के माध्यम से डिबग कर रहा हूं
ऑटोडिडेक्ट

1
@ SDX2000 रीसेट उन मामलों के लिए भी आसान है, जहां आपका टर्मिनल बुरी तरह से खराब हो जाता है क्योंकि आपने कुछ (या बाइनरी फ़ाइल को catted) मार दिया था और यह आपके शब्द को एक खराब स्थिति में छोड़ दिया था। कभी ऐसी अवस्था में पहुँचें जहाँ आपका संकेत दिखे, लेकिन आपकी टाइपिंग नहीं, और जब आप नए प्रांप्ट में प्रवेश करते हैं, तो उसके नीचे की बजाय पिछले प्रांप्ट के बगल में दिखाई देता है? रीसेट ठीक करता है। यह वास्तव में मैं कभी भी इसके लिए उपयोग करता हूं ... मुझे अपनी स्क्रॉल-बैक बफर को साफ़ करने की आवश्यकता / इच्छा नहीं है।
लॉरेंस गोंसाल्वेस

4
resetमेरे साथ जुड़ी एक-सेकंड की देरी मेरे लिए असहनीय है।
जोनाथन रेनहार्ट


7

मेरे द्वारा पढ़े गए किसी भी उत्तर ने पुत्तर में काम नहीं किया, इसलिए मुझे इस लेख पर एक टिप्पणी मिली :

"विंडो-> व्यवहार" के तहत आपके कनेक्शन के लिए सेटिंग्स में, आपको एक सेटिंग मिलेगी "सिस्टम मेनू ऐप्पल ऑन एएलटीज़"। फिर CTRL + L, ALT, l (यह एक कम केस L है) स्क्रीन को स्क्रॉल करेगा और फिर स्क्रॉलबैक बफर को क्लियर करेगा।

(ओपी के लिए प्रासंगिक है क्योंकि मैं एक उबंटू सर्वर से जुड़ रहा हूं, लेकिन यह भी स्पष्ट रूप से प्रासंगिक है कि आपका सर्वर क्या चल रहा है।)


@ डेनिस विलियमसन की एक 3 साल पुरानी टिप्पणी ने मुझे इस उत्तर की ओर अग्रसर किया।
TecBrat

इसके अलावा, यह देखते हुए कि PuTTY की "विंडो" सेटिंग में आपने "सिस्टम मेनू ALT-Space पर दिखाई देता है" को सक्रिय किया है , आप CTRL+Lतब तेजी से कर सकते हैं ALT+Space, Uजो पहले टर्मिनल विंडो को साफ करता है फिर वास्तविक के लिए स्क्रॉलबैक रीसेट करता है।
पियरे वोइसिन

6

नीचे दिए गए लिंक में बताया गया है कि कैसे उस उपनाम को स्थायी बनाया जाए ताकि आपको उसे टाइप करते न रहना पड़े।

/ubuntu/17536/how-do-i-create-a-permanent-bash-alias

ये उस लिंक पर विस्तृत चरण हैं।

  1. vim ~ / .bashrc या gedit ~ / .bashrc या क्या आप कभी भी पाठ संपादक पसंद करते हैं
  2. फ़ाइल के निचले भाग में "अन्य प्रिंट" = "उपनाम" डालें
  3. सुरषित और बहार
  4. । ~ / .bashrc (और हाँ बीच में एक जगह होनी चाहिए। ~ ~)
  5. अब देखने के लिए कि क्या सब कुछ काम किया है!

मैं इस जानकारी का कोई श्रेय नहीं लेता, बस इसे पास कर रहा हूं।


4

KDE और Ubuntu 12.04 LTS और "कॉनसोल" टर्मिनल के साथ, कोई भी पोस्ट किए गए उत्तर काम नहीं करता है। हालाँकि, डिफ़ॉल्ट कीबोर्ड शॉर्टकट CTRL + Shift + X दबाने से काम होता है! स्रोत:

https://bugs.kde.org/show_bug.cgi?id=288913


3
इसे बाद में केडीई संस्करणों में CTRL + Shift + K में बदल दिया गया है: Bugs.kde.org/show_bug.cgi?id=282593
अनुकूलित कोडर

4

इसके लिए मेरा पसंदीदा मानव हितैषी आदेश है:

reset

Xterm और VT100 पर परीक्षण किया गया। यह एक असामान्य कार्यक्रम समाप्ति के बाद भी मदद करता है। कमांड बफ़र रखता है, इसलिए अप-एरो पिछले कमांड के माध्यम से चक्र करेगा।

चियर्स: डी


3

मुझे पता है कि नई लाइनों की छपाई को रोजगार देने वाला समाधान ज्यादा समर्थित नहीं है, लेकिन अगर बाकी सब विफल हो जाता है, तो क्यों नहीं? विशेष रूप से जहां एक ऐसे वातावरण में काम कर रहा है जहां किसी और को स्क्रीन देखने में सक्षम होने की संभावना है, फिर भी कीलॉग करने में सक्षम नहीं है। एक संभावित समाधान तो निम्न उपनाम है:

alias c="printf '\r\n%.0s' {1..50}"

फिर, स्क्रीन की वर्तमान सामग्री को "साफ़" करने के लिए (या बल्कि, उन्हें छिपाएं), बस c+Enterटर्मिनल पर टाइप करें।


2

बस उस tmuxस्क्रॉल बफर को जोड़ने के लिए clear, resetया के साथ स्पष्ट नहीं है printf। आपको करने की आवश्यकता है :clear-history। देखें लिंक


-2
echo -e "\e[3J"

यह लिनक्स मशीनों में काम करता है


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

-53

इस ऐप को कंपाइल करें।

#include <iostream>
#include <cstring>

int main()
{
  char str[1000];
  memset(str, '\n', 999);
  str[999] = 0;
  std::cout << str << std::endl;
  return 0;
}

33
क्षमा करें, लेकिन यह सबसे अच्छा समाधान नहीं है। ९९ १० में १ ९९ ० नई
सुर्खियाँ बनाने

2
वास्तव में इसका कुछ मूल्य है। कुछ टर्मिनलों में, अन्य तरीकों से स्क्रीन को साफ़ करने से इतिहास को मार दिया जाएगा और आपको वापस स्क्रॉल करने की अनुमति नहीं दी जाएगी ... हालांकि 999 लाइनों के साथ मेरी उंगली थक जाएगी। गरीब आदमी।
जोशुआविद

@JoshuaDavid सवाल का पूरा बिंदु यह था कि ओपी समाशोधन के बाद वापस स्क्रॉल करने में सक्षम नहीं होना चाहता था ।
सोकोवई

@Socowi मेरी टिप्पणी इस -50 खराब-रेटेड जवाब को संबोधित कर रही थी, ओपी को नहीं। लेकिन तुम सही हो!
जोशुआ डेविड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.