| ![[Photo of the Author]](../../common/images2/NicoGolde.jpg)  Nico Golde
 <nico/at/ngolde.de>
 
 Yazar hakkında:
 
 
    Nico henüz bir öğrenci. Birkaç yıldan beri Linux ile oldukça ilgilenmiş ve üstelik  Open Source Project'de
almış olduğu görevler var.
 
 Türkçe'ye çeviri:
 Ceyhun Elmas <ceyhun.elmas(at)linuxfocus.org>
 
 İçerik:
 | 
 
| Renkli Kabuklar -- ANSI Renk Kodları Kullanımı   Özet:
 
    ANSI destekli terminallerde (xterm, rxvt ya da konsol gibi ...) yazılar siyah/beyaz dışında farklı renklerde görünebilir.
Bu yazıda kalın ve renkli yazılar anlatılacak.
    
_________________ _________________ _________________
 
 | 
     
Genel
   Gerçek hayatta her Linux kullanıcısı Bash ile yüzleşir. Genelde ilk izlenim bunun çok sıkıcı göründüğü yönündedir.
Aslında bunu değiştirmenin pek çok yolu bulunuyor. Örneğin renk özellikleri kazandırmak
 bu sıkıcı görüntüyğ epeyce değiştirecektir.
   
    
    Yazımda Bash kabuğunu kullandım. Çıkış özellikleri terminallere  göre farklı özellikler gösterebilir, bu
yazıda ANSI terminal kullandım.
     
Kabuk yapılandırması
     Renk yapılandırmaları kişisel yapılandırma dosyası olan
~/.bashrc ya da genel yapılandırma dosyası olan  /etc/bashrc'de yapılır.
 Prompt görünümü  bashrc içindeki PS1 değişkeniyle yapılır.
    
    
Genellikle giriş şu şekilde olmalıdır:
| 
~/.bashrc: PS1="\s-\v\$ "
\s kabuk için bulunulan yer ve  -\v sürüm içindir. İmlecin sonuna $ koyuyoruz.
Bu eğer sıkıcı gelirse (Linux dağıtımlarının çoğunda bu benimsenmiş değerdir) aşağıdaki gösterim de kullanılabilir : 
~/.bashrc: PS1="\u@\h \w \$ "
 | 
    Böylece Linux imleclerinin çoğunda olduğu gibi böyle görünür :
    user@ current_directory $
     
Kaçış Dizileri
     Renkli imlece kişisel özellikler eklemek için  kaçış dizileri kullanıyoruz.
    İmlece renkle kendi istediğiniz biçimi vermek için kaçış dizileri kullanıyoruz.
    kaçış dizisi kabuğu özelleştiren bir denetim yönergesidir
    Bir  kaçış dizisi genellikle ESC (adı üzerinde) ile başlar.
    Kabukta  bu böyledir : ^[  .  Bu biraz alışkanlıktan gelir,  \033 de aynı etkiyi gösterir (ESC ascii 27 desimal = 33 oktal).
   
    
    Kabukta bir kaçış dizisine girmek için ctrl-v yapmalıyız :
    CTRL-v ESC.
     
Kabuğun renklerini kullanmak
    Bir imlec örneğiyle kabuğun renklerini kullanmayı anlatacağım .
~/.bashrc: PS1="\[\033[0;32;40m\u@\h:\w\$ \]"
    Bu görüntüde tüm imlec yeşil renkte :
   
    
      
    
    
    \033 [  ile  kaçış dizisini başlatır ve renk tanımlamasına başlıyoruz.
    Takip eden 0 font genişliğinin benimsenmiş değeridir.
    Burada diğer olanaklara daha sonra değineceğim.
   Katar
    \[ and \] görüntülenen kaçış dizisi yazısının önüne geçecek ve çok fazla yer alacak.
  
    
  Sonra önplan rengi seçiyoruz (bu durumda yeşil 32).
  Arkaplan rengi siyah 40.
    İmlecden sonra başlayan yazı yeşil oluyor. Kaçış dizisini benimsenmiş değerde yani \033[0m ile kapatıyoruz.
   Önplan için arkaplan gib 8 renk bulunuyor.
     
    
    Seçenekler: kırmızı, yeşil, mavi, morciver, turkuaz ve beyaz.
   Burada renk kodları 30 (siyah), 31 (kırmızı), 32(yeşil), 33(sarı), 34 (mavi), 35(morciver), 36 (turkuaz),
    
      Arkaplan renklerinde de aynı yolu izliyoruz fakat ilk sayı olarak 4 kullanıyoruz ;
  40, 41, 42, 43, 44, 45, 46, 47  gibi. 
    
    Örnek:
~/.bashrc: PS1="\[\033[0;37;44m\u@\033[0;32;43m\h:\033[0;33;41m\w$\033[0m\]"
    
    Bu bize çok renkli bir imlec verir:
    
      
    
    
   Bu yapılandırmayı test etmek için
     export PS1="string" kullanıyoruz, sonra yapılandırmayı
   .bashrc içine alabiliriz. Şu anki imlec böyle görünüyor :
PS1="\[\033[1;34;40m[\033[1;31;40m\u@\h:\w\033[1;34;40m]\033[1;37;40m $\033[0;37;0m\] "
    
    
      
    
     
Yazı Özellikleri
    Yukarıda dediğimiz gibi kaçış dizisinden sonraki '0' imlecdeki yazı için benimsenmiş değerdir.
     Yazı özellikleri için bu değerler anlamlıdır :
    0, 1, 22, 4, 24, 5, 25, 7, 27  bu anlamlarla :
    benimsenmiş, kalın, kalın değil, altı çizili, altı çizilideğil,
    yanıp sönen-sönmeyen, ters sıralı-sırasız. 
    
   Aşağıdaki kısa betik yardımıyla renk kombinasyonlarına bakabiliriz.
#!/bin/sh
############################################################
# Nico Golde <nico(at)ngolde.de> Homepage: http://www.ngolde.de
# Last change: Mon Feb 16 16:24:41 CET 2004
############################################################
for attr in 0 1 4 5 7 ; do
    echo "----------------------------------------------------------------"
    printf "ESC[%s;Foreground;Background - \n" $attr
    for fore in 30 31 32 33 34 35 36 37; do
        for back in 40 41 42 43 44 45 46 47; do
            printf '\033[%s;%s;%sm %02s;%02s  ' $attr $fore $back $fore $back
        done
    printf '\n'
    done
    printf '\033[0m'
done
    Betik tar.gz olarak buradan yüklenebilir: 
    showansicol.tar.gz
     
Diğer Uygulama
    Bu farklı renkler kullanabilme yetisi yalnızca renkli görüntüler elde etmek için değil aynı zamanda
   konsolda program yazmada çok kullanılışlıdır.
   
    
    Renklerin her kullanılışı
    slang ya da  ncurses gibi bir kitaplık kullanır. Bu durum ikilitaban dosyasının şişmesine neden olabilir.
    Ncurses terminal tipine daha az bağlı olmasıyla bir avantaja sahiptir.
     
C ile bir örnek
    Yeşil yazılı bir  'Hello World' :
#include <stdio.h>
int main(void){
  const char *const green = "\033[0;40;32m";
  const char *const normal = "\033[0m";
  printf("%sHello World%s\n", green, normal);
  return 0;
}
    Bir diğer kullanışlı kaçış dizisi printf("\033[2J")'dir.
     Bu  system(clear) ile aynı etkiye sahiptir fakat  unistd.h başlık dosyasından vazgeçilebilir.  
    
     printf("\033[1K") ile satırı silebiliriz.
     
 Örnek bir ilklendirme betiği 
   Eğer /etc/init.d'nin  init betiklerinin başlamasında basit bir '.' yerine renkli bir doğrulama elde etmek istersek,
yine kaçış dizisi kullanabiliriz.
     
    
    Burada bir cron init script'den bir görüntü yeralıyor:
#!/bin/sh
# Start/stop the cron daemon.
test -f /usr/sbin/cron || exit 0
 case "$1" in
 start)  echo -n "Starting periodic command scheduler: cron"
     start-stop-daemon --start --quiet --exec /usr/sbin/cron
                 echo "."
;;
     cron'nun başarıyla başlatılması bir periyodla gösterilecek.  Renk özelliği  echo 'nun değiştirilmesiyle
  [Ok]'ye verilebilir :
#!/bin/sh
# Start/stop the cron daemon.
test -f /usr/sbin/cron || exit 0
case "$1" in
start)  echo -n "Starting periodic command scheduler: cron"
        start-stop-daemon --start --quiet --exec /usr/sbin/cron
echo "\[ \033[1;34;40m[ \033[1;32;40mOk \033[1;34;40m]\033[0m\]"
    ;;
    Bazı sistemlerde \033 bir "kaçış dizisi" olarak yorumlanmayabilir. Bu durumda Ctrl-v kullanılmalıdır.
   Bununla birlkte bu yapılandırmanın tüm betiklere uygulanması zaman alıcı olabilir.
     
Geribildirim
    Geribildirim, görüş ve hatalar için lütfen  "nico at ngolde.de" adresine ileti gönderin. İyi eğlenceler ...
  
 
Bu yazı için görüş bildiriminde bulunabilirsiniz
Her yazı kendi görüş bildirim sayfasına sahiptir. Bu sayfaya yorumlarınızı yazabilir ve diğer okuyucuların yorumlarına bakabilirsiniz.
<--, Bu sayının ana sayfasına gider 
2004-05-07, generated by lfparser version 2.46