GNU/Linux'ta Daha Renkli Terminaller

GNU/Linux terminallerinde (terminal emülatörlerinde) renkli karakterler kullanmak için birkaç farklı yöntem bulunmaktadır. Bunlardan en bilineni NCurses ve türevleri olsa gerek. Diğer bir yaygın yöntem de terminale onun için anlamlı çeşitli özel kodlar göndermektir (rastlantıya bakın ki bu yazının konusu da bu özel kodlardır). Terminal ekranlarında renkli çıktılar almak sadece filmlerde güzel bir sahne çekmek için değil aynı zamanda çıktıların daha kolay okunması için de önemlidir. Örneğin bir derleme işleminin çıktısında tamamlanan işlemler yeşil, uyarılar sarı ve hatalar kırmızı olarak renklendirilse takibi daha kolay olacaktır (bkz: colorgcc).

Şimdi basit bir örnekle kaçış karakterlerini renkli karakterler oluşturmak için nasıl kullanacağımıza bakalım:



echo -e "\033[44;37;5m Merhaba \033[0m Dünya"

  • echo Ekrana herhangi bir karakter dizisi basmak için kullanılabilir.
  • -e echo komutunun kaçış karakterlerini aktifleştirmeye yarayan parametresi.
  • \033 kaçış karakterlerini kullanmaya başladığımızı söylemek için kullanıyoruz.
  • [ terminale gönderdiğimiz mesajın parametrelerini girmeye başladığımızı bildiriyoruz.
  • ; Parametreleri birbirinden ayırmak için kullanıyoruz.
  • 44;37;5m yazıların rengi, özellikleri ve arkaplan rengini ayarlamak için kullanılan örnek değerlerdir. Renk kodları belli bir sıraya bağlı kalınmadan kullanılabilir yani önce arkaplan rengini veya yazı rengini ayarlamış olmanız bir farklılık göstermeyecektir çünkü renk kodları farklıdır. m ile ise yazıya çeşitli ek özellikler kazandırılabilir, ayrıca terminale gönderdiğimiz özel mesajın sonlandığını da bildirmektedir. Kullanılabilecek kodların bir kısmını aşağıdaki listelerden görebilirsiniz:


Yazı renkleri

30  Siyah
31  Kırmızı
32  Yeşil
33  Sarı
34  Mavi
35  Mor
36  Camgöbeği
37  Beyaz


Arkaplan renkleri

40 Siyah
41 Kırmızı
42 Yeşil
43 Sarı
44 Mavi
45 Mor
46 Camgöbeği
47 Beyaz


Yazı özellikleri

0 Tüm özellikleri öntanımlılara döndür
1 Kalın yaz
4 Altıçizili yaz
5 Yanıp söndürerek yaz
7 Video renklerini tersine çevir

Yukarıdaki listelerden yararlanarak ve deneme yaparak, bundan sonra yazacağınız BASH betiklerini renklendirebilirsiniz (örnek bir kullanımı identi.ca göndergeci'nde görebilirsiniz).

Elbette terminale kaçış karakterleri göndererek yapabilecekleriniz sadece çıktıları renklendirmekle sınırlı değil. Yazılacakların terminal ekranının tam olarak neresinde görünmesini istiyorsanız oraya da yazdırabilirsiniz. Yalnız bu tip imlecin veya çıktıların yerini değiştiren kodları kullanmadan/kullandıktan önce/sonra ekranı temizlemek iyi olacaktır. Ekranı temizlemek için şu iki (veya sizin keşfettiğiniz başka bir) komuttan yararlanabilirsiniz:

clear
echo -e "\033[2J"

Terminalde çıktıyı konumlandırmak için gerekenleri yine basit bir örnek üzerinde inceleyelim, aşağıdaki komut terminalin onuncu satırının beşinci sütunundan başlayarak Merhaba Dünya yazacaktır:

echo -e "\033[10;5H Merhaba Dünya \033[0m"



Eğer daha fazlasını istiyorsanız aşağıdaki anahtar ifadelere ve komutlara bakabilirsiniz:




tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"

yes "$(seq 232 255;seq 254 -1 233)" | while read i; do printf "\x1b[48;5;${i}m\n"; sleep .01; done

// renkli-merhaba.cpp
// g++ renkli-merhaba.cpp -o renkli-merhaba
// ./renkli-merhaba

#include >iostream<
#include >cstdlib<

int main()
    {
    system("clear");
    std::cout << "\033[32;1mRenkli Merhaba\033[0m" << std::endl;
    }



Kaynaklar:

  1. Terminal colour highlights
  2. Colour on text terminal
  3. Konsol Programlarında Çıktı Renklendirme ve GotoXY


Yorumlar

Bu blogdaki popüler yayınlar

Mızıka Tabları Nasıl Okunur

Muhtar Kellesi

conio.h