Tarih hakkında birkaç not STTY
Diğer cevap ve ilgili yorumlardaki bazı yanlışlıkları açıklığa kavuşturmak komutla :
DEC VT05 gibi daha önceki terminaller veya VT50 ve bu yalnızca desteklenen büyük harf karakterden önce tele yazıcılar. Bunun anlamı, onlardan hiçbir küçük harf girilememesi veya büyük harflerden başka bir harf görüntüleyememesidir.
Unix büyük / küçük harfe duyarlıdır ve çoğu komut küçük harflidir, orada bir sorun olduğunu görebilirsiniz. Bu nedenle, bunları idare etmek için özel termio / termios modları vardır (ve bu terminaller çoktan gitmiş olsa bile hala modern Unices'te bulunmaktadır).
termio / termios, Unix'te tty sürücüsünü kontrol etmek için sırasıyla daha eski ve daha yeni arayüzlerdir. Bir terim (ler) deioctl
, bir seri hattaki elektrik sinyallerinin giriş ve çıkış karakterlerine nasıl işleneceğini ve yankı gibi sürücünün dahili davranışını belirten giriş, çıkış, kontrol bayrakları ... hat editörü ... Bunların çoğu modern Unix VGA konsolları veya sözde terminaller gibi sanal terminaller için geçerlidir.
Komut hattı arabirimi termio(s)
olanstty
komut.
Büyük harfli terminalleri işlemek için üç termio(s)
bayrak bulunur:
IUCLC
(Büyük Harf Küçük Harfe Gir): Gelen karakterler girdiğinde küçük harfe dönüştürülür. Bu A
terminal tarafından gönderilen bir olarak kabul edilir anlamına gelir a
. Bu, bununla birlikte, şimdi LS
VT50'ime yazabileceğim ve kabuğun okuyacağı anlamına ls
geliyor /dev/ttyX
. Şimdi stty
komutu da çalıştırabilirim .
- Şimdi,
IUCLC
tek başına ve terminal ile echo
, ben yazarken LS
, sürücü ls
gösteremediği terminale (ne yazdığımı görebiliyorum) geri gönderecek , bu yüzden de ihtiyacımız varOLCUC
(Küçük Harfe Büyük Harfe Çıkar), yani terminale göndermeden önce küçük harfleri büyük harfe dönüştürmeliyiz.
- Şimdi Unix'i bir VT50'den çalıştırabiliriz, ama şimdi büyük harfli karakterler girmek istiyorsak? Bu,
xcase
yerel bayrağın devreye girdiği yerdir . Bu, (yalnızca standart giriş modunda) A
yazarak bir büyük harf gönderilmesine izin verir \A
ve çıktıda bir büyük harf A
olarak oluşturulur \A
. (Linux'ta uygulanmayan)
stty
Komut tekabül vardır iuclc
, olcuc
ve xcase
ayarları ve üçü için bir takma ad: lcase
. Peşinde olsun varsayılan ayar ve hangi stty sane
olduğulcase
kapalı.
Yani, bir VT50'deyken, yapmanız gereken tek şey çalıştırmak:
stty lcase
her şeyi yapabilmek. Ama bekleyin, bunu sadece büyük harf gönderebildiğinizde nasıl yaparsınız? Burası STTY
için takma ad olarak bir komuta ihtiyacınız stty
var ve bu yüzden takma ad olarak stty
destekleniyor .LCASE
lcase
Böyle bir SANE
takma ad yoktur, çünkü stty sane
terminaliniz büyük harf olduğunda yapmak istemezsiniz .
Normal bir terminalde (yanlışlıkla veya herhangi bir modern terminalde) çalıştırıyorsanız stty lcase
veya stty olcuc
yanlışlıkla çalıştırıyorsanız , normale dönmek için xterm
girmeniz gereken yer burasıdır stty sane
. Ama bunun için bir STTY
komuta ihtiyacınız yok . Yazdığınızda stty sane
, yankılanmış görürsünüz , ancak bu yalnızca çevrilecekSTTY SANE
olan görüntülenen metindir (girilen komut değil), yine stty sane
de çalıştırılacak komuttur.
Bunlar iuclc
, olcuc
, xcase
bayraklar POSIX tarafından belirtilmesi için kullanılan (ve Linux üzerinde uygulanan neden ciddiye Aranızda hiç) eğlence için daha (başka bir Linux sistemine o eski terminal herhangi bağlanan şüphe dahi bu muhtemelen), ancak kaldırılmıştır POSIX: 2001.