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