[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

[Photo of the Author]
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�

ansi colors

�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 :
nico@ebrain:~$

\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:
nico@ ebrain: ~$

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\] "

[ nico@ebrain:~ ]
 

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.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Nico Golde, FDL
LinuxFocus.org
�eviri bilgisi:
de --> -- : Nico Golde <nico/at/ngolde.de>
de --> en: Jürgen Pohl <sept.sapins(at)verizon.net>
en --> tr: Ceyhun Elmas <ceyhun.elmas(at)linuxfocus.org>

2004-05-07, generated by lfparser version 2.46