जब हम clear
आदेश या टर्मिनल में Ctrl+ का उपयोग करते हैं L, तो यह टर्मिनल को साफ कर देता है लेकिन हम अंतिम उपयोग किए गए आदेशों को देखने के लिए अभी भी स्क्रॉल कर सकते हैं। क्या टर्मिनल को पूरी तरह से खाली करने का कोई तरीका है?
जब हम clear
आदेश या टर्मिनल में Ctrl+ का उपयोग करते हैं L, तो यह टर्मिनल को साफ कर देता है लेकिन हम अंतिम उपयोग किए गए आदेशों को देखने के लिए अभी भी स्क्रॉल कर सकते हैं। क्या टर्मिनल को पूरी तरह से खाली करने का कोई तरीका है?
जवाबों:
आप उपयोग कर सकते हैं 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 रीसेट" भी काम करेगा।
tput reset
reset
उबंटू 16.04 से कम तेज है , कम से कम
मुझे पता है कि आप एक सूक्ति टर्मिनल पर हैं, लेकिन मैंने सोचा कि मैं दूसरों के लिए एक टिप का जवाब दूंगा जो मैक पर हो सकता है (मेरे जैसे):
यदि आप उपयोग कर रहे हैं Terminal.app
या iTerm.app
फिर Control+L
स्क्रॉल करेंगे तो टर्मिनल खाली दिखता है, लेकिन Cmd+K
वास्तव में टर्मिनल / स्पष्ट स्क्रॉल-बैक रीसेट करेगा।
या, यदि आप अपने टर्मिनल के लिए कीबोर्ड प्राथमिकताएँ सेट करने में सक्षम हैं, तो आप Ctrl+K
इनपुट echo -e \\033c
जैसा कुछ निर्दिष्ट कर सकते हैं जैसा कि ऊपर बताया गया था।
Cmd+K
सब मुझे चाहिए था ty
एंथोन का जवाब केडीई कंसोल में काम करता है, लेकिन 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
allclear(){
'echo "क्लियरिंग टर्मिनल और स्क्रॉलबैक ..." `` 1.5 `` साफ़ करें; इको-ई "\ 033 सी \ ई [3 जे" ` }
` संपादित करें: काम करने के लिए स्वरूपण नहीं मिल सकता है। अगर कोई इसे संपादित करने में सक्षम है तो यह पठनीय है, मैं इसकी सराहना करूंगा।
मैंने 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 टर्मिनल की कुंजी बाइंडिंग को नियंत्रित करती है।
लाइन के बारे में:
"\e[24~"
कुंजी को मैप करता है F12।C-k
( Ctrl+ X) को मार-अंगूठी (बैश की प्रतिलिपि और अतीत स्मृति) साफ करता है।C-u
( Ctrl+ U) को मार-अंगूठी करने के लिए वर्तमान पंक्ति भेजता है और मिटाने में।echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n
टर्मिनल के लिए दो समूहीकृत आदेशों भेजता है। वे द्वारा अलग किए जाते हैं ;
और समाप्त हो जाते हैं \n
।
echo -ne '\\ec\\e[3J'
स्क्रीन को साफ करता है।history -d $((HISTCMD-1))
इतिहास में प्रवेश करने से इन दोनों आदेशों से बचा जाता है।C-y
( Ctrl+ Y) को मार-अंगूठी द्वारा संग्रहीत चिपकाता C-u
आदेश।C-?
( Ctrl+ ?) के बराबर है Backspaceऔर अंतरिक्ष ऊपर चरण 3 में डाला निकाल देता है।संदर्भ:
कमांड बलो टाइप करें। हर नए टर्मिनल के लिए कुंजी बंधन को लोड करने के लिए इसे
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
आपकी .cshrc
फ़ाइल में भी डाला जा सकता है ।
(हाँ, यह बाश की तुलना में बहुत सरल है)
कमांड बलो टाइप करें।
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
आप fish_user_key_bindings
हर नए टर्मिनल में कुंजी बंधन को लोड करने के लिए फ़ंक्शन को संपादित और सहेज सकते हैं ।
(हाँ, यह बाश की तुलना में बहुत सरल है)
[उबंटू 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 या अपनी 'कस्टम' फ़ाइल को संपादित करते समय टर्मिनल को फिर से शुरू करना होगा।
मेरे लिए, CentOS 7 के खिलाफ PuTTY का उपयोग करते हुए, स्क्रॉलबैक में केवल स्पष्ट कमांड को छोड़ देता है, लेकिन "स्पष्ट और स्पष्ट" चल रहा है, एक ही समय में स्पष्ट कमांड के दो उदाहरण पूरी तरह से स्क्रॉलबैक को साफ़ करता है और मुझे स्क्रॉलबार के साथ छोड़ देता है। उसकी कोशिश करो। यह एक अजीब समाधान है, लेकिन इनमें से किसी ने भी स्क्रोलबैक को प्रभावी ढंग से साफ नहीं किया है, और यह करता है।
फेडोरा 30 में, इतिहास को हटाना $ HOME / .bash_history फ़ाइल को हटाकर किया जाता है। कीबोर्ड के माध्यम से टर्मिनल इतिहास फ़ाइल को साफ़ करने का सबसे आसान तरीका है:
nautilus
लिए Enterकुंजी टाइप करें और दबाएं ।.bash_history
(जो विंडो खुलने के तुरंत बाद सर्च बार में दिखना चाहिए; अन्यथा, सर्च बार को Ctrl+ के माध्यम से एक्सेस किया जा सकता है L)।cat /dev/null > ~/.bash_history && history -c && exit
history -c
पिछले दो उत्तरों में प्रस्तुत किया गया है, और प्रश्न के सही उत्तर नहीं होने के कारण उन्हें हटा दिया गया है। (2) जबकि टर्मिनल विंडो को बंद करने (शायद) पिछले आदेशों के टर्मिनल की स्मृति को मिटा देगा, यह अब तक स्पष्ट से कि ओपी कि करना चाहती है। ... और PS एक एकल exit
आदेश टर्मिनल विंडो बंद करने की गारंटी नहीं है।