-
Son zamanlarda terminalde olan her şeyin şu dört unsurun birleşimi olduğunu düşünmeye başladım
- işletim sisteminin rolü
- shell'in rolü
- terminal emülatörünün rolü
- çalışan programın rolü (
top,vim,catvb.)
-
Programlar şaşırtıcı derecede tutarlı davranır
- POSIX çoğunlukla terminal emülatörünün, işletim sisteminin ve shell'in nasıl çalıştığını tanımlar, ancak tek tek programların nasıl davranacağına dair bir standart yoktur
- Buna rağmen terminal programları genel olarak tutarlı bir şekilde davranır
-
Bu kurallar betimleyicidir, buyurucu değildir
- Amaç, terminal programı yazarlarını bu kurallara uymaya ikna etmek değildir
- Yeni bir terminal programı kullanırken bekleyebileceğiniz temel kuralları bilmek faydalıdır
-
Programın sorumluluğunun net olmadığı durumlar vardır
- Örneğin,
Ctrl-Dile bir REPL'den çıkmak, programın bunu açıkça uygulamasını gerektirir
- Örneğin,
Kural 1: Etkileşimsiz programlar Ctrl-C basıldığında çıkmalıdır
- Etkileşimsiz programlar varsayılan olarak
Ctrl-Cbasıldığında sonlanır - Etkileşimli programlarda
Ctrl-Cfarklı bir rol oynar
Kural 2: TUI'ler q basıldığında çıkmalıdır
lessveyahtopgibi TUI programlarıqbasıldığında kapanır
Kural 3: REPL'ler boş satırdayken Ctrl-D basıldığında çıkmalıdır
- Çoğu REPL, boş satırdayken
Ctrl-Dbasıldığında kapanır
Kural 4: 16'dan fazla renk kullanılmamalıdır
- Terminal programları, varsayılan 16 ANSI rengi dışındaki renkleri neredeyse hiç kullanmaz
Kural 5: readline tuş atamalarını kabaca desteklemelidir
- Çoğu program
readlinetuş atamalarını destekler
Kural 5.1: Ctrl-W son sözcüğü silmelidir
Ctrl-Wson sözcüğü silmeyen program neredeyse yoktur
Kural 6: Pipe'a yazarken renkler devre dışı bırakılmalıdır
- Çoğu program, pipe'a yazarken renkleri devre dışı bırakır
Kural 7: - stdin/stdout anlamına gelir
-
Dosya adı yerine
-verilirse stdin'den okur veya stdout'a yazar -
Bu kuralları öğrenmek zaman alır
- Kuralın nerede geçerli olduğunu öğrenmek, istisnaları tanımak ve kalıpları bilinçsizce kavramak gerekir
- Bu kuralları açıkça yazmak, başkalarının daha hızlı öğrenmesine yardımcı olabilir
1 yorum
Hacker News yorumu
Kullanıcının varsayılan ön plan ve arka plan renklerine saygı gösterilmeli
Command Line Interface Guidelines tavsiye ediliyor
-kabulü, pipe içinde renklerin devre dışı bırakılması gibi kurallar içeriyorKomut satırı araçları için ek kurallar
sysexits.hçıkış kodları kullanılmalı--helpve man sayfaları bulunmalıreadline/emacs tuş kısayolları hakkında bilgi
rlwrapprogramı kurularak satır düzenleme işlevi eklenebilirRenk kullanımıyla ilgili tavsiyeler
GHCi'de Ctrl-D kullanıldığında ortaya çıkan sorun
:qkomutu kullanılmalı~karakterinin home dizini olarak ele alınmasına dair açıklamaProgramlar home dizinine dosya eklememeli
CLI tutarlılığına dair görüş
Uzun süre çalışan süreçler SIGHUP alındığında yapılandırmayı yeniden yüklemeli
SSH bağlantılarında faydalı ipucu
~.kullanılarak SSH oturumu kapatılabilir