3 puan yazan GN⁺ 2024-12-14 | 1 yorum | WhatsApp'ta paylaş
  • 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, cat vb.)
  • 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-D ile bir REPL'den çıkmak, programın bunu açıkça uygulamasını gerektirir

Kural 1: Etkileşimsiz programlar Ctrl-C basıldığında çıkmalıdır

  • Etkileşimsiz programlar varsayılan olarak Ctrl-C basıldığında sonlanır
  • Etkileşimli programlarda Ctrl-C farklı bir rol oynar

Kural 2: TUI'ler q basıldığında çıkmalıdır

  • less veya htop gibi TUI programları q bası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-D bası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 readline tuş atamalarını destekler

Kural 5.1: Ctrl-W son sözcüğü silmelidir

  • Ctrl-W son 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

 
GN⁺ 2024-12-14
Hacker News yorumu
  • Kullanıcının varsayılan ön plan ve arka plan renklerine saygı gösterilmeli

    • Renk kullanılacaksa, varsayılan arka plan ve ön plan renklerinden bağımsız olarak okunabilir olmalı
    • Bilgi yalnızca renkle aktarılmamalı
    • Emoji dikkatli kullanılmalı
    • Kaydırılan çıktıda önemli bilgiler silinmemeli
    • Kullanıcıya renk ve görsel öğeleri seçebileceği ayarlar sunulmalı
  • Command Line Interface Guidelines tavsiye ediliyor

    • Ctrl-C ile çıkış, stdin için - kabulü, pipe içinde renklerin devre dışı bırakılması gibi kurallar içeriyor
  • Komut satırı araçları için ek kurallar

    • Terminal türü varsayılmamalı
    • Terminal olmayabileceği varsayılmalı
    • Argümanlar ve çıktı yapısında yaygın teamüllere uyulmalı
    • Standart sysexits.h çıkış kodları kullanılmalı
    • İkili dosyanın içinde --help ve man sayfaları bulunmalı
  • readline/emacs tuş kısayolları hakkında bilgi

    • macOS'ta Ctrl-E, Ctrl-W, Ctrl-U kullanılabilir
    • rlwrap programı kurularak satır düzenleme işlevi eklenebilir
  • Renk kullanımıyla ilgili tavsiyeler

    • 16 renkten fazlası kullanılmamalı
    • Renkler yapılandırılabilir olmalı
  • GHCi'de Ctrl-D kullanıldığında ortaya çıkan sorun

    • Çıkmak için :q komutu kullanılmalı
  • ~ karakterinin home dizini olarak ele alınmasına dair açıklama

    • Shell'de çalışır ama POSIX API'de çalışmaz
  • Programlar home dizinine dosya eklememeli

    • XDG_CONFIG_HOME'a saygı gösterilmeli
  • CLI tutarlılığına dair görüş

    • CLI, GUI'den daha tutarlıdır
    • Bu özelliği GUI'ye taşımak zordur
  • 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