Bunun aksine bash
, ssh
parola istemi gibi hiçbir özel terminal giriş kütüphanesi kullanmaz readline
. Çizgi düzenleme özellikleri, yalnızca temel POSIX TTY çizgi düzenleme özellikleridir.
Yani "pişmiş" modda (ham değil), kanonik modda bir POSIX TTY'niz var ve kullanılabilir olan tek satır düzenleme çekirdek tarafından sağlananlar. Bakın stty(1)
ve bunu fark edin
kill = ^U
. Bu aynı zamanda geri alma karakterinin tanımlandığı yerdir ( erase = ^?
). Kelime silme ( ^W
), kör yazmadığınızda kullanışlıdır.
lnext = ^V
kontrol kelimesini almak için kontrol-v yazdıktan sonra herhangi bir şey (kontrol-c dahil) yazabilirsiniz.
Kör olarak yapmaya çalıştığınız şeyi hata ayıklamak için, koşun cat
veya cat > /dev/null
terminalinizde . Stuff yazın, sonra neyin işe yarayıp neyin düzenlemediğini görün.
readline
(tarafından kullanılır bash
) ham karakteri okur ve kullanıcı alanında satır düzenlemesini yapar. Varsayılan ciltlemeleri, her ikisinin de sağladığı düzenleme özellikleri alt kümesi için varsayılan TTY kontrol karakterleriyle uyumludur.
readline, basit bir TTY'nin basit satır düzenlemesinin ötesine geçiyor. (örneğin, bir TTY yalnızca satırın sonundaki karakterleri silebilir, bu nedenle hiçbir ^a
ve delete
sol / sağ ok yoktur)
Ne zaman bash
ön planda bir komutu çalıştırır (varsayılan çünkü), ilk kurallı moduna TTY'yi koyar. Böylece çalışan stty -a
(yönlendirme olmadan) her zaman kanonik modda kendi terminalini görecektir. Ancak, girişi bash
üzerinde çalışan bazı TTY'lerden girişi yönlendirirseniz , hangi terminal ayarlarının bash + readline uygulandığını görebilirsiniz. Örneğin ham modu stty -a < /dev/pts/12
gösterir -icanon
çünkü bash
o terminalde bir çalışma var. (Başka bir sekmeye geçtim ve koştum tty
, ardından ilk terminalden bu aygıt dosyası yolunu kullandım). Koştum Eğer cat
bu diğer terminalde, ben görmek istiyorum icanon
kanonik modu için.
İlgili: TTY parçalanmış
https://www.gnu.org/software/libc/manual/html_node/Canonical-or-Not.html
https://en.wikipedia.org/wiki/POSIX_terminal_interface