Terminalde Ctrl + L


41

Yanlışlıkla terminalde ctrl+ Lyazdım ve terminal pencerem bir 'ekran' boyutunda atladı. "Düzenle" -> "Klavye kısayolları" bölümündeki klavye kısayollarına baktım ve bu kısayolu bulamadım.

ctrl+ Ne yapar Lve nerede tanımlanır?

Yanıtlar:


58

ctrl+ Lsadece terminal ekranını temizleyin.

Komutun klavye kısayolu eşdeğeridir clear -x. ref

Bu özellik bash, bu yüzden gnome-terminalinde klavye kısayolları altında bulamadın . Kimden man bash:

clear-screen (C-l)
          Clear the screen leaving the current line  at  the  top  of  the
          screen.   With  an  argument,  refresh  the current line without
          clearing the screen.

Bash Klavye Kısayollarının ayrıntılı bir listesine bakın .


Oh, bu açıklıyor.
Parto

3
Yine de sadece bash değil; Ctrl-L form besleme karakteridir. Çok yaygın değil, ancak bazen kaynak kodunda kodun "sayfalarını" ayıran ^ L göreceksiniz. Bir yazıcının onu kontrol karakteri olarak yorumlaması daha mantıklı geldi.
Joshua Taylor,

@JoshuaTaylor haklısın. İlişkili wiki'sini Sayfa sonu
souravc

1
^ L, ascii tablosundaki form besleme karakteridir, ancak buna göre işlem yapan bir program tarafından alınmadıkça hiçbir şey yapmaz (bu bağlamda bash veya terminal emülatörü).
alexis

1
Varsayılan komutunun eşdeğer olmadığını Not clearbu bilgilerin terminal geçmişi silmez çünkü komut ederken, cleareklemek sürece, yapar -xbu yüzden gibi bir argüman: clear -x.
jirislav

18

Kullandığınız kabuk engellemiyorsa, terminalinize bir "Form-feed" karakteri yazıyorsunuzdur. Terminal uygulaması tuş vuruşunu bir şekilde engellemez veya kullanmazsa, Ctrl+ Harf, eksi 64 (1) harfinin ASCII koduna çevrilir. 65 'A' ASCII kodudur, 'L' 12. harf -> kod 76'dır. Kabuk kodun ne yapacağını bilmiyorsa, onu yazdırır.

Bir FF karakterinin yazdırılması, satır yazıcıda yeni bir sayfa ve terminalde net bir ekran sonuçlandı (evet, o zamanlar 300 baud'da bir VT-52 kullandım ).

Yani Ctrl+ L12, FF'dir. Aynı şekilde, Ctrl+ Ibir TAB, ve Ctrl+ Gzili çalar - eğer terminal veya kabuk bunu engellemezse, örneğin Ctrl+ gibi C.

Diğer cevabını Uyarı: bash gibi görünüyor yapmak yolunu kesmek CTRL- Lve yapmak clear. bashYazarların, ASCII kodunun eski terminallerde yaptığı gibi aşağı yukarı aynı işlemi yapan bir komutla ilişkilendirildiğine dair hoş bir dokunuş !

Öte yandan, zshkombinasyonumda CTRL- Iolarak TABve CTRL- Holarak Backspace(2) olarak çalışır .

Eski güzel ASCII ... (L harfinin 4. sütunda, satır 12'de, ASCII kodunun 4 * 16 + 12 = 76 olduğunu unutmayın).

Vikipedi Commons görüntü

Orijinal görüntü burada , ASCII üzerine wikipedia makalesinden .


Dipnotlar:

(1) Ctrlgerçekten bit 7'yi temizlemek için kullanılır.

(2) bu "kelimeyi silmeyi başaramaz" kaynağını bazen şaka yapıyormuş gibi "bu kötü bir fikirdi ^ H ^ H ^ Çok iyi bir fikir değil" ... (normalde kötüden daha güçlü bir kelime ile!)


1
Güzel. Bu çizelgeyi bu arada nasıl kullanırım? L harfinin 12. satırda ve 4. sütunda olduğunu görebiliyorum. Sonra 124'ten eksi 32'ye mi geliyor veya ASCII kodunu nasıl hesaplıyorsunuz?
Parto

@AvatarParto ups, 65 yerine 32 yazdı. Cevap düzeltildi. Tablo ikilidir, bu yüzden kod sütun * 16 + satırdır.
Rmano

1
Kelimenin ^Hveya harflerin takılması ^W, üstünü çizememeniz güzeldir. :)
Blacklight Shining

8

Control-Lyakalanan ve (aslında tarafından bash tarafından yorumlanır kütüphaneye komut satırında interaktif düzenleme kolları,). @Souravc yazdığı gibi , işleve bağlıdır .readlineclear-screen

Anlamına dikkat edin Control-L: ASCII karakter tablosunda Form Beslemesi olarak tanımlanır, ancak bazı programlar buna göre yorumlamadıkça bu hiçbir şey ifade etmez. Terminal, form beslemesi gördüğünde ekranı temizlemez; çünkü bir ^ L dosyasını bir dosyaya kaydederek ve dosyayı yazdırarak doğrulayabilirsiniz cat. Ne zaman bash/readlinegörür ^L, bu yürütür clear-screenişlevi. Bu, terminal emülatörünüz tarafından anlaşılan bir karakter dizisi gönderir (termcap veya terminfo ile tanımlandığı şekilde) ve ekranı temizleme etkisine sahiptir.

Çok eski yazıcılarda, ^Lkağıt bir sonraki sayfada basmaya başlar, bu nedenle "form feed" adı verilir. Ancak modern terminaller ve terminal emülatörleri, kontrol komutlarının başlayan (kaçış) ile başlayan çok karakterli "kaçış kodları" olduğu daha yeni bir ANSI standardını izler ^[. Bash sizin gördüğünde ^L, muhtemelen iki komut dizisini gönderiyor ESC [ H ESC [ Jüstüne hamle ekranın sol ve altındaki her şeyi temizler, (dolayısıyla bütün ekranı).


Aslında dizisi ESC [ ESC [ Jederken de, komut geçmişini temizler CTRL + L dizisi yok. Terminale gönderilen dizisi ziyade ESC [ H ESC [ 2 Jbir bu komutla kendiniz deneyin devam edin,: printf "\033[H\033[2J".
jirislav

0

Herkes zaten Ctrl+ ' Lnın ne olduğunu ve ne yaptığını çok iyi açıkladı , ancak kimse komutun nasıl "tersine çevrileceğini" açıklamadı, burada yaptığınız işe geri dönmenizi sağlamak için yazabileceğiniz birkaç komut:

history

size yazdığınız son 20 komutu verecektir.

tail --lines=20 /var/log/dpkg.log

gerçekleştirdiğiniz herhangi bir paket kurulumunun son 20 satırını size verecek

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.