Ctrl + karakter klavye kısayolunu kullandığımda neden terminalde ^ C, ^ V vs. görünüyor?


26

Bazen, komutların çıktısından kopyalanan metni yapıştırırken, yanlışlıkla Ctrl+ + cyerine Ctrl+ Shifttuşlarını kullanacağım c.

Yani komut satırı onu şöyle yorumluyor ^C...

Bu neden? Komut satırı neden controlgirişi olarak yorumluyor ^?

Yanıtlar:


35

Aslında "^ C" karakter dizisini eklemez. Bu yalnızca aşağıdaki gibi yazdırılamayan ASCII kontrol karakterlerinin bir gösterimidir:

  • ^C → ETX (Metnin sonu, bir öldürme sinyali gönderir), ASCII 0x03
  • ^D → EOT (İletim sonu, girişi sonlandırır), ASCII 0x04
  • ^H→ BS (Geri \bAlma), ASCII 0x08
  • ^J→ LF (Satır besleme \n), ASCII 0x0A
  • ^L → FF (Form besleme, yeni sayfa, terminali temizler), ASCII 0x0C
  • ^M→ CR (Satır \rbaşı , ), ASCII 0x0D

Bu, yalnızca klavye kullanılarak eklenebilecek olası ASCII kontrol karakterlerinin küçük bir özetidir; tam bir listesini burada bulabilirsiniz .

Bence hatırlanması gereken en önemli şeyler Ctrl+ C, Ctrl+ Dve Ctrl+ L.


Kabinin ^"kontrol" sembolü olarak kullanılması, terminallerin sadece metin olduğu zamanki grafik öncesi zamanlara dayanıyor ve ben de ondan önce kartlarımız ve kağıtlarımız olduğunda, terminal olmadığına inanıyorum. Şairin neden sembol olarak seçildiğini bilmek isterim .
Paddy Landau,

8

Çünkü CTRL+ KEYcombos, terminal tarafından yazdırılamaz ASCII karakterleri olarak yorumlanır ve yazdırılamayanlar olarak, onları temsil etmek için bir yol gerekir.

ANSI destekli VT terminallerinden kaynaklanan kongre, bir caret ( ) ve ile temsil eden CTRL+ KEYcombo'yu temsil etmektir .CTRL^KEYKEY


5

Bir terminale / terminalden kopyalayıp yapıştırırken, sırasıyla Ctrl+ Insertve Shift+ kısayollarını kullanmak en iyi yöntemdir Insert.

Eğer bir X grafik ortamında dikkat edeceğiz olsa Bunlar terminal kullanımı için daha geleneksel kısa kesimler vardır Ctrl+ Insertve Shift+ Insertaynı bağlanırlar Ctrl+ Cve Ctrl+ V.

Çoğu terminalde Ctrl+ C(ile temsil edilir ^C) bir işlemin yürütülmesini durdurmak için kullanılır, bu nedenle bu kısa yolla yapıştırma çalışmaz.

Hızlı kopyalama ve yapıştırma için, kopyalamak istediğiniz metni vurgulayarak X'in birincil arabelleğini kullanabilir ve ardından yapıştırmak istediğiniz yere orta tıklayarak kullanabilirsiniz. Klavyeye gerek yok.


2
Üzgünüm, ama soruyu yanlış anladın. OP, ^CCTRL + C (veya CTRL + başka bir harfe) basarken dize veya benzerlerin neden göründüğünü bilmek istedi . Cevabınızın mükemmel olacağı terminaldeki şeylerin doğru şekilde nasıl kopyalanıp yapıştırılacağıyla ilgili değil.
Byte Commander

@ByteCommander, haklısın! Özür dilerim, cevabımı şu anda olduğu gibi bırakacağım, sanırım soru çoktan cevaplanmış gibi görünüyor :) Birisi bunun üzerine çıkıp, yazdıklarını faydalı bulabilir.
Keefer Rourke

-2

Sen gerektiğini kullanıyor Ctrl+ Cve Shift+ Ctrl+ C, komut satırında, aynı şeyi yapmak (çünkü Ctrl+ Cdaha kolay Shift+ Ctrl+ C). GUI'nin bazı tuş vuruşlarını yakaladığı ve özel bir şey yaptığı bazı grafik ortamlarda bu doğru olmayabilir, ancak tuş vuruşları gerçekten komut satırına gönderilirse, hiçbir fark yoktur. Bu nedenle Ctrl+ tuşuna basmak C, ^ C harfini küçük harf C yerine büyük harf C olarak gösterebilir. Komut satırı, hangisine bastığınızı belirlemez (ve büyük harflerin okunması daha kolay olduğu tahmin edilir). Bu, harfler için geçerlidir; diğer karakterler için, Shiftbir etkisi olabilir.)

Basılması Ctrl- CASCII tablosundaki büyük harfli konumunun 64 altında bulunan ASCII kodunu (ve ASCII tablosundaki küçük harfli konumundan 96 daha az) gönderir. Bu yüzden Ctrl- c(küçük harf) basıldığında ASCII kod 3 gönderilir (bu, sermayenin C67 ASCII kodundan 64 küçüktür ). Birçok ortamda, Alttuş 3takımını basılı tutabilir ve ardından tuşa basabilirsiniz (ve ardından 3tuşu bırakın ve sonra Alttuşu bırakın ) ve aynı efekti elde edebilirsiniz.

^ C ile ilgili olarak, ^, " Ctrl" tuşu için iyi bilinen bir kısa yoldur . Benzer şekilde, M- " Alt" tuşunun kısaltmasıdır . Err, evet. M, daha sonra Altne gelirse basıp basılı tutarak veya bazen de basıp Esc(ve bırakarak Esc) ve sonra da sonra gelenlere basılarak girilen "Meta" kelimesini ifade eder . Vikipedi "Kontrol Anahtarı" konulu makalesinde: "Gösterim" bölümünde "Geleneksel gösterim" olarak açıklanmaktadır. Bu aynı zamanda Caret Notation ( Vikipedi, Caret notasyonundaki makalesi , Unix StackExchange: ryvnf'in Caret Notation hakkındaki sorusu ) olarak da bilinir .

Son soruya gelince, komut kabuğu bir şapka olan hiçbir şeyi “yorumlamak” değildir. Başka bir deyişle, kabuk hiçbir şey okumaz ve bir şapka olduğuna inanır. Olan, kabuğun, çıkış için iyi bilinen bir nota kullanmasıdır. Başka bir örnek olarak, "daha az" olarak bilinen çağrı cihazını caret notasyonunu çalıştırarak görebilirsiniz:dd if=/dev/zero bs=64 count=1 | less

("Nano" metin düzenleyicisi ayrıca ^ G, aka Ctrl- tuşlarına basıldıktan sonra gösterilen çevrimiçi yardımın tam ekranları da dahil olmak üzere çevrimiçi yardımında düzeltme işareti kullanır g.)


4
DevRobot, özellikle bir GUI terminali anlamına gelen Ctrl-C (veya daha çok Shift-Ctrl-C) kopyalama ve yapıştırma bağlamında kullanılmasını istiyor. Mutlaka hatalı değilsin ama açıklamaların kesinlikle bir GUI kullanıcısı perspektifinden gelen biri için kafa karıştırıcı.
RM:
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.