मैं सूक्ति टर्मिनल इतिहास को कैसे साफ़ करूँ?


59

जब हम clearआदेश या टर्मिनल में Ctrl+ का उपयोग करते हैं L, तो यह टर्मिनल को साफ कर देता है लेकिन हम अंतिम उपयोग किए गए आदेशों को देखने के लिए अभी भी स्क्रॉल कर सकते हैं। क्या टर्मिनल को पूरी तरह से खाली करने का कोई तरीका है?


यह टर्मिनल पर निर्भर है, और उत्तरों में से कोई भी पता नहीं है।
थॉमस डिकी

जवाबों:


69

आप उपयोग कर सकते हैं tput reset

इसके अलावा resetऔर tput resetआप शेल स्क्रिप्ट का उपयोग कर सकते हैं।

#!/bin/sh
echo -e \\033c

यह नियंत्रण वर्णों Esc-Cको कंसोल पर भेजता है जो टर्मिनल को रीसेट करता है।

Google कीवर्ड: लिनक्स कंसोल कंट्रोल सीक्वेंस

man console_codes कहते हैं:

अनुक्रम ईएससी सी एक टर्मिनल रीसेट का कारण बनता है, जो कि आप चाहते हैं कि क्या स्क्रीन सभी की गड़बड़ी है। Thet-adv। "इको ^ वी ^ ओ" केवल G0 को चालू करेगा, लेकिन इस बात की कोई गारंटी नहीं है कि टेबल पर G0 अंक a) है। कुछ वितरणों में एक प्रोग्राम रिसेट (1) होता है जो सिर्फ "इको ^ [सी" करता है। यदि कंसोल के लिए आपकी टर्मफ़ॉइट प्रविष्टि सही है (और एक प्रविष्टि rs1 = \ Ec है), तो "tput रीसेट" भी काम करेगा।


1
रीसेट और ट्रूट रीसेट के बीच अंतर क्या है?
टूथरोट

tput resetresetउबंटू 16.04 से कम तेज है , कम से कम
इवान रोड्रिगेज टोरेस

5
-1, आप अभी भी बफर को देख सकते हैं यदि आप ऊपर स्क्रॉल करते हैं
जोओ पिमेंटेल फेरेरा

15

आप resetकमांड का उपयोग कर सकते हैं , जो टर्मिनल सेटिंग्स को रीसेट कर देगा।


15

मुझे पता है कि आप एक सूक्ति टर्मिनल पर हैं, लेकिन मैंने सोचा कि मैं दूसरों के लिए एक टिप का जवाब दूंगा जो मैक पर हो सकता है (मेरे जैसे):

यदि आप उपयोग कर रहे हैं Terminal.appया iTerm.appफिर Control+Lस्क्रॉल करेंगे तो टर्मिनल खाली दिखता है, लेकिन Cmd+Kवास्तव में टर्मिनल / स्पष्ट स्क्रॉल-बैक रीसेट करेगा।

या, यदि आप अपने टर्मिनल के लिए कीबोर्ड प्राथमिकताएँ सेट करने में सक्षम हैं, तो आप Ctrl+Kइनपुट echo -e \\033cजैसा कुछ निर्दिष्ट कर सकते हैं जैसा कि ऊपर बताया गया था।


2
Cmd+Kसब मुझे चाहिए था ty
गौरव गांधी

9

एंथोन का जवाब केडीई कंसोल में काम करता है, लेकिन urxvt नहीं। Urxvt में, मैं स्क्रॉलबैक को साफ़ करने के लिए कुछ वर्षों के लिए रीसेट का उपयोग कर रहा हूँ (इसके साथ अन्य सभी काम करता है), और संतुष्ट नहीं था कि यह कोनसोल में काम नहीं करता था। तो अब लिनक्स के लिए मेरे पास एक नया उपनाम है:

alias allclear='clear; echo -e "\033c\e[3J"'

लेकिन यह ओएस एक्स पर काम नहीं करता है।

tput reset किसी भी संदर्भ में काम नहीं करता है AFAICT।

केडीई कंसोल में, ctrl- shift- kस्क्रॉलबैक को साफ़ करता है (वर्तमान शेल प्रॉम्प्ट सहित, इसलिए यह पूरी तरह से खाली है)। ओएस एक्स पर iTerm या Apple के टर्मिनल में, cmd- shift- kभी स्क्रॉलबैक को साफ़ करता है। इस सुविधा को urxvt में जोड़ने के लिए, इसे ~ /।

urxvt*keysym.C-S-K: command:\033c

यह उत्तर है कि लिनक्स बैश का उपयोग करने वाला कोई भी व्यक्ति प्यार करेगा यदि वे उसी परिणाम की उम्मीद कर रहे हैं जैसा कि वे एक मैक पर प्राप्त करेंगे कमांड + के दबाकर। मैं आगे गया और इसे नीचे दिए गए फ़ंक्शन को जोड़कर एक स्टैंडअलोन कमांड में बदल दिया। /etc/bash.bashrc (तब सर्वर से लॉग आउट करें, वापस लॉग इन करें और यह आदेश के माध्यम से काम करेगा): allclear(){'echo "क्लियरिंग टर्मिनल और स्क्रॉलबैक ..." `` 1.5 `` साफ़ करें; इको-ई "\ 033 सी \ ई [3 जे" ` }` संपादित करें: काम करने के लिए स्वरूपण नहीं मिल सकता है। अगर कोई इसे संपादित करने में सक्षम है तो यह पठनीय है, मैं इसकी सराहना करूंगा।
केलॉ

3

मुझे यह नेट पर सालों पहले मिला था, और मेरे लिए अच्छा काम करता है। यह पूरी तरह से कोई स्क्रॉल इतिहास के साथ टर्मिनल को साफ करता है।

echo -e "\e[3J"

2

मैंने F12निम्नलिखित प्रत्येक गोले में स्क्रीन को साफ़ करने के लिए मैप किया : बैश , csh और फिश शेल । मेरी कमांड पिछले सभी से अलग है क्योंकि यह आपके द्वारा पहले से ही चालू लाइन में टाइप किया गया है।
(नोट: नीचे सभी कॉन्फ़िगरेशन टर्मिनल पर निर्भर हैं, लेकिन मुझे उम्मीद है कि वे लगभग हर जगह काम करेंगे)

दे घुमा के

फ़ाइल खोलें ~/.inputrcऔर निम्न पंक्ति डालें:

"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"

उपलब्ध बाध्यकारी नया कुंजी करवाने के लिए, या तो एक नया टर्मिनल खोलने के लिए या टाइप Ctrl+ Xतो Ctrl+ Rवर्तमान टर्मिनल में .inputrc फ़ाइल को फिर से लोड करने के लिए।

स्पष्टीकरण
फ़ाइल ~ / .inputrc bash टर्मिनल की कुंजी बाइंडिंग को नियंत्रित करती है।

लाइन के बारे में:

  1. लाइन का पहला भाग, "\e[24~"कुंजी को मैप करता है F12
  2. C-k( Ctrl+ X) को मार-अंगूठी (बैश की प्रतिलिपि और अतीत स्मृति) साफ करता है।
  3. अंतरिक्ष अगले आदेश में एक बीप से बचा जाता है।
  4. C-u( Ctrl+ U) को मार-अंगूठी करने के लिए वर्तमान पंक्ति भेजता है और मिटाने में।
  5. echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\nटर्मिनल के लिए दो समूहीकृत आदेशों भेजता है। वे द्वारा अलग किए जाते हैं ;और समाप्त हो जाते हैं \n
    • echo -ne '\\ec\\e[3J'स्क्रीन को साफ करता है।
    • history -d $((HISTCMD-1))इतिहास में प्रवेश करने से इन दोनों आदेशों से बचा जाता है।
  6. C-y( Ctrl+ Y) को मार-अंगूठी द्वारा संग्रहीत चिपकाता C-uआदेश।
  7. C-?( Ctrl+ ?) के बराबर है Backspaceऔर अंतरिक्ष ऊपर चरण 3 में डाला निकाल देता है।

संदर्भ:

csh

कमांड बलो टाइप करें। हर नए टर्मिनल के लिए कुंजी बंधन को लोड करने के लिए इसे
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
आपकी .cshrcफ़ाइल में भी डाला जा सकता है ।
(हाँ, यह बाश की तुलना में बहुत सरल है)

मछली का खोल

कमांड बलो टाइप करें।
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
आप fish_user_key_bindingsहर नए टर्मिनल में कुंजी बंधन को लोड करने के लिए फ़ंक्शन को संपादित और सहेज सकते हैं ।
(हाँ, यह बाश की तुलना में बहुत सरल है)


2

[उबंटू 16.04]

.Bash_history फ़ाइल उपयोगकर्ता के घर निर्देशिका में बनाई गई है एक बार टर्मिनल बंद कर दिया है

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

आप इसे मैन्युअल रूप से हटा सकते हैं:

  • आपकी फ़ाइलें ब्राउज़र।

  • टर्मिनल: याद रखें कि टर्मिनल बंद करते समय एक नई .bash_history फ़ाइल बनाई जाएगी (इसके डिफ़ॉल्ट कॉन्फ़िगरेशन में आधारित)।

या यदि आप bashrc से जुड़ी किसी फ़ाइल में आवश्यक कार्यक्षमता को सहेजते हैं, तो आप एक कस्टम फ़ंक्शन को कॉल कर सकते हैं .. यदि आप अपना कोड वहां डालना पसंद करते हैं, तो आप bashrc को संपादित कर सकते हैं, लेकिन अगले उदाहरण एक अलग फ़ाइल में हैं

ईमानदारी से यह मेरे लिए उपयोगी नहीं है, लेकिन अगर आप चाहें तो इससे पहले कि आप ऐसा कर सकते हैं, कमांड इतिहास को हटा

दें:।

blotout() {
    HISTSIZE=0
    rm $HOME/.bash_history
    exit
}

फिर मेरी फ़ाइल के नाम और पथ को जोड़ने के तल पर
.bashrc # यह बैश के लिए कॉन्फ़िगरेशन फ़ाइल है (मुझे लगता है)

# existent code
#...
#..

# import user customizations
source $HOME/.bash_custom

और बस यही।

लेकिन, ठीक वही करने के लिए जिसे आप चाहते हैं कि आपको अपनी कस्टम फ़ाइल में इस फ़ंक्शन की आवश्यकता हो और इसे लिंक करें:

refresh() {
        tput reset
        H=HISTSIZE
        HISTSIZE=0
        HISTSIZE=H
}

या बस फ़ंक्शन को .bashrc में रखें यदि आप चाहते हैं, लेकिन इस तरह से आपको फ़ंक्शन के बाद एक निर्यात विवरण की आवश्यकता है तो मुझे यकीन नहीं है और यदि फ़ाइल अपडेट की गई है तो संभवतः आपके कार्यों को खो दिया है .. मुझे इसके बारे में भी यकीन नहीं है: डी।
याद रखें आपको .bashrc या अपनी 'कस्टम' फ़ाइल को संपादित करते समय टर्मिनल को फिर से शुरू करना होगा।


1

मेरे लिए, CentOS 7 के खिलाफ PuTTY का उपयोग करते हुए, स्क्रॉलबैक में केवल स्पष्ट कमांड को छोड़ देता है, लेकिन "स्पष्ट और स्पष्ट" चल रहा है, एक ही समय में स्पष्ट कमांड के दो उदाहरण पूरी तरह से स्क्रॉलबैक को साफ़ करता है और मुझे स्क्रॉलबार के साथ छोड़ देता है। उसकी कोशिश करो। यह एक अजीब समाधान है, लेकिन इनमें से किसी ने भी स्क्रोलबैक को प्रभावी ढंग से साफ नहीं किया है, और यह करता है।


0

~/.inputrcपूर्ण समाशोधन को बांधने के लिए इसमें जोड़ा गया F12:

"\e[24~":'!echo -ne \047\\0033\\0143\047\r'

0

फेडोरा 30 में, इतिहास को हटाना $ HOME / .bash_history फ़ाइल को हटाकर किया जाता है। कीबोर्ड के माध्यम से टर्मिनल इतिहास फ़ाइल को साफ़ करने का सबसे आसान तरीका है:

  • प्रेस Alt+ F4के माध्यम से एक सूक्ति टर्मिनल विंडो को बंद करने, खिड़कियों के माध्यम से साइकिल Alt+ Tabया Alt+ Shift+ Tabके रूप में की जरूरत है। (सभी टर्मिनल विंडो बंद होनी चाहिए क्योंकि .bash_history फ़ाइल बनाई या अपडेट की जाती है जब वे बंद होती हैं।)
  • Alt+ दबाएं F2
  • (GNOME) फ़ाइलें एप्लिकेशन (जिसे पहले Nautilus के रूप में जाना जाता था) को खोलने के nautilusलिए Enterकुंजी टाइप करें और दबाएं ।
  • छिपी हुई फाइलों को दिखाने के लिए Ctrl+ दबाएँ H
  • टाइप करें .bash_history(जो विंडो खुलने के तुरंत बाद सर्च बार में दिखना चाहिए; अन्यथा, सर्च बार को Ctrl+ के माध्यम से एक्सेस किया जा सकता है L)।
  • फ़ाइल का चयन करने के लिए डाउन एरो की दबाएं, जो केवल खोज परिणाम होना चाहिए।
  • फ़ाइल को स्थायी रूप से हटाने के लिए Shift+ दबाएं Delete। (यदि आप Deleteइसके बजाय अनमॉडिफाइड कुंजी का उपयोग करते हैं , तो .bash_history फ़ाइल अभी भी ट्रैश फ़ोल्डर के माध्यम से सुलभ होगी।)

-2
cat /dev/null > ~/.bash_history && history -c && exit

कम से कम आप अपने उत्तर को समझा और स्वरूपित कर सकते हैं।
विरोधाभास

(1) यह स्पष्ट नहीं है कि ओपी पिछले कमांडों के शेल की मेमोरी (इतिहास) को हटाना चाहता है (सवाल टर्मिनल के बारे में है )। आप इसे नहीं देख सकते हैं, लेकिन history -cपिछले दो उत्तरों में प्रस्तुत किया गया है, और प्रश्न के सही उत्तर नहीं होने के कारण उन्हें हटा दिया गया है। (2) जबकि टर्मिनल विंडो को बंद करने (शायद) पिछले आदेशों के टर्मिनल की स्मृति को मिटा देगा, यह अब तक स्पष्ट से कि ओपी कि करना चाहती है। ... और PS एक एकल exitआदेश टर्मिनल विंडो बंद करने की गारंटी नहीं है।
जी-मैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.