Terminal gerçekten nasıl temizlenir?


385

Geçerli Ubuntu terminalini temizlemek için clearkomutu verebilir veya Ctrl+ tuşlarına basabilirim L, ancak bu yalnızca önceki çıktıyı yukarı kaydırır ve fare kaydırma veya PgUPve PgDowntuşlarını kullanırsanız , önceki komutun çıktısının ve geçerli komutun çıkışının nerede başladığını ayırt etmek zordur.

Terminali gerçekten temizlemenin bir yolu var , bu yüzden önceki komut sonuçlarını görmeyeceğim?


11
Ctrl + L tuşlarına iki kez basın, boşalın !
Pandya

Yanıtlar:


456

Evet, aradığınız komut

reset

Aksine clear, ya Ctrl+ L, resetaslında tamamen yeniden ilklendirecektir terminali , bunun yerine sadece ekranı temizlemenin. Ancak, kabuğu yeniden başlatmaz (bash). Bu, bash devletinin tıpkı sadece ekranı temizliyormuşsunuz gibi olduğu anlamına gelir .

@Wallacoloo yorumlarda da belirtildiği gibi, bu komut aynı şeyi daha hızlı yapmalıdır:

tput reset

Diğer cevaplardan:

  • Bir ayarlayabilirsiniz klavye kısa için resetolduğu gibi, terminale ile açıklanabilir towolf .

  • Eğer çalıştırıyorsanız Kubuntu , ve terminal Konsol, sen gitmek gerekir Düzen → Temizle tarihinin beri reset, orada aynı şekilde çalışmıyor UncleZeiv notlar gibi .


9
Muhtemelen çoğu kullanıcı için önemli değil, ancak davranışı resetterminale bağlıdır.
cthom06

2
Şahsen ben vurduğumda kaydırma boyunca bir şey "yukarı" bırakıldığını umursamıyorum ^L. Göremiyorum (istediğim bu!), Hissetmiyorum ve birdenbire orada olanı geri yüklemem gerekecek - sorun değil. resetaksine, çok daha zor bir araçtır - Terminalde bir şeyler ters gittiğinde kullanacağım - garip kaçış dizileri ekranı tamamen kazara mahvederken.
ulidtko

14
@ ulidtko: Birbirini takip eden programların tonlarca çıktılı program oturumunu çalıştırdığınızda farketmez. Geri kaydırırsanız, hangi uygulamanın bir şey yazdırdığı konusunda kafanız karışır. Bu durumlarda daha karmaşık çözümlerin kullanılabileceğini gayet iyi biliyorum, ancak yine de hızlı ve kirli hata ayıklama oturumlarında sıklıkla karşılaşılan bir senaryo.
--Zeiv amca

7
Orada da var tput resetgözle görülür aynı işlevi gören, ama (oysa anlık tamamlar resetistemi ekrana gelmeden önce yaklaşık 2 saniye kadar sürebilir).
Ponkadoodle

1
Bu, benim putty.exe penceresinin yeniden boyutlandırılmasına neden oluyor, bu olmadan temizlemesi iyi olurdu.
void.pointer

100

Bir süre bunu arıyordum ve bunu yayınlayan bir deha buldum:

clear && printf '\e[3J'

Tüm ekran arabelleğini temizler, çok temiz. OS X üzerinde çalışır ve çoğu * nix terminalinde iyi çalıştığına inanır.

Meraklı için, bu bölüm '\e[3J'bir terminal kaçış komutudur.


2
Hmm, xterm, Konsole ve Linux VT'de çalışıyor, ancak gnome-terminalinde yok ...
Ruslan

1
Teşekkürler, Mac'imde harika çalışıyor - Gerçekten Bash stilini çok özledim reset.
JohnnyCoder

9
Teşekkürler, bu çok kullanışlı! Ne printf '\e[3J'demek istiyorsun? Tamponu nasıl temizler?
Filip Spiridonov

4
Aliasing dikkatli olun reset- sadece terminali temizlemek daha fazla yapar. Örneğin, yanlışlıkla terminali bozan (örneğin, yazılan karakterlerin yankılanmasını engeller) rastgele çöp içeren bir ikili dosya yazdırırsanız reset, genellikle bunu çözebilirsiniz. tabiki \overridetakma ad, gölgeli bir komutun nasıl yapıldığını bildiğiniz sürece iyidir .
RubyTuesdayDONO

4
Bu, bazı SSH'lere Winders aracılığıyla erişirken Putty kaydırma işleminin geri alınması için çalışan tek cevaptır.
dhaupin

45

Ayrıca, GNOME terminalinde bir kısayol atayarak Düzenle → Klavye Kısayolları seçeneğine gidebilirsiniz . Kullandığım Shift+ Ctrl+ Alt+ C.

sıfırlayın ve kısayolu temizleyin


+1. Menubar'ı daima saklı tutuyorum; Bu yüzden yıllarca ve yıllarca cüceyi kullandıktan sonra bile, bunu aramayı hiç düşünmedim. Thanks :-)
Stefano Palazzo

3
“Sıfırla” benim için hiçbir şey yapmaz ve “Sıfırla ve Temizle” her şeyi temizler ancak istemi yeniden göstermez. Bu menü girişlerinin hiçbiri bir terminaldeki “reset” komutu gibi davranmaz.
Hibou57

@ Hibou57 dediği gibi, "Sıfırla" için klavye kısayolum hiçbir şey yapmıyor gibi görünüyor. Bu işlev 14.04'te bozuldu mu?
Michael Martin-Smucker

“Bu işlev 14.04'te bozuldu mu?”: 12.04 ile aynıdır.
Hibou57

1
@ Hibou57 "Sıfırla ve Sil" komutunun istemi yeniden görüntülemesi beklenmiyor, ancak daha sonra Enter tuşuna basarsanız istemi yeniden görüntülemesi gerekir. Bu senin için uygun mu?
Don Hatch,

19

Cevabımı stackoverflow'tan gönderme .

Yalnızca yeni satırlar eklemek yerine net ekran yapmak için aşağıdaki komutu kullanın ...

printf "\033c"

evet bu bash komut isteminde bir 'printf'.

Muhtemelen bir takma isim tanımlamak isteyeceksiniz ...

alias cls='printf "\033c"'

açıklama

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

Böylece bu <ESC>c, terminali sıfırlamak için VT100 çıkış kodudur. İşte terminali kaçış kodları hakkında birtakım bilgiler verilmiştir.

Düzenle

İşte bunu yapmanın birkaç yolu var ...

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

KDE

Yukarıdakiler KDE konsolunda (Konsole olarak adlandırılır) çalışmaz, ancak umut vardır! Ekranı ve geri kaydırma arabelleğini silmek için aşağıdaki komut sırasını kullanın ...

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

Veya KDE'de şu takma adı kullanabilirsiniz ...

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

Kaydırma temizleme komutunu buradan aldım .


18

bu komutu çalıştır:

reset

Bu, yeni bir terminal başlatmakla aynı etkiye sahiptir.


6
Macunu kullanırken, çalıştıktan sonra reset, hala yukarı kaydırıp önceki şeyleri görebiliyorum. Bu PuTTY ile değil de bir sorun resetmu?
Svish

@svish - bu sadece bir macun uygulaması meselesi veya kararı.
belacqua

@jgbelacqua, :) Deal
Svish

MAC OS Terminali'nde çalıştı
Bira

2
@Bira Hayır, resetmacOS 10.14 Mojave'daki geri kaydırma işlemini temizlemez. seq 100; resetScrollback'i hala orada görmeyi deneyebilirsin . MacOS terminalinde Cmd+Kekranı ve kaydırma işlemini silebilir.
Johnny Wong,

8

Benim favorim printf "\ec". Bu aynı zamanda olabilir printf "\033c"veya printf "\x1bc". Bu, terminal çıktısı için ekranı ve tamponu mucizevi bir şekilde temizleyen bir ansi kaçış dizisidir (çalıştığım çoğu standart terminal için görünüyor - Ubuntu-benzeri üzerinde gnome-terminal, terminatör, xterm, vs. gibi çalıştığını biliyorum. linux'lar)

Bunun Linux Mint ve Ubuntu 14.04'te çalıştığını biliyorum, bu yüzden insanların neden böyle şeyler eklediğini ve hazırladığını bilmiyorum clear && echo -ne "\033c. printf "\ec"her zaman benim için çalıştı.

Ayrıca, benim içinde .bashrcböyle bir bağ var:

bind -x '"\C-t": printf "\ec"';

Şimdi ctrlther zaman basarım.


Windows anahtarını kullanarak bir eşlemenin nasıl oluşturulduğunu biliyor musunuz? Bu snippet gerçekten harika, Mac'teki Command-K gibi çalışır. Teşekkür ederim.
Niloct

@ Terminalin onu destekleyip desteklemediğini görebilirsiniz xev(sadece xevbir x oturumu içine bir terminal yazın ). Söyleyebileceğim kadarıyla, urxvt desteklemiyor; Bir tty denemedim, ancak desteklenmeyeceğinden eminim. Ayrıca xterm veya gnome-terminal'in bunu desteklediğinden şüpheliyim. Ansi-kaçar ile zor. Şerefe ve geç cevap için özür dilerim.
dylnmc

Tamam @ dylnmc, takdir ediyorum. Yorumunuz için teşekkürler.
Niloct

5

Gerçekten de buna bağlı olarak, Konsoleörneğin kullanıyorsanız bile resetilk satırın üstünden kaydırmanıza engel olmuyor. Bu durumda kullandığınız terminalin bir özelliğini kullanmanız gerekir. İçin Konsole, bu kadar Edit > Clear History.


3

Kubuntu ile başarılı olmak için aşağıdakileri buldum:

alias clc="echo -en '\033c\033[3J'"

Sen kullanabilirsiniz clsWindows gelenekle tutmak için Matlab sürümünü kullanın clcveya kendi biri. İyi şanslar!



2

@ Hibou57 cevabına başka bir alternatif:

# The Octal Way
alias clear="echo -e '\033c\c'"

VEYA

# The Hex Way
alias clear="echo -e '\x1b\c'"

Temel olarak bu tamamen aynı etkiye sahip olacak, ^[karakterini yazacak (terminalinizi temizler) ve izleyen yeni satırı çıkarmaz.


Hafif düzeltme: sadece karakter değil , karakterin ardından gelen ^[karakteri (ESC) yazdırır . Kombine olarak, bunlar sıfırlamaya neden olan "RIS" terminal koduna eşittir. Daha fazla bilgi: xfree86.org/4.8.0/ctlseqs.htmlc^[
jwd

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.