Sisteme girdiğiniz zaman Linux size bir kabuk tahsis eder ve kabuk üzerinde
değişkenler tanımlayabilmenize izin verir. Kabuk içinde bir kabuk betiği
(script) çalıştırılınca sistem tarafından bir alt kabuk daha yaratılır.
Bu andan itibaren iki kabuk çalışır, birisi sisteme girdiğiniz anda tahsis
edilen, diğeri de programın çalıştırılabilmesi için sistem tarafından
çağırılan. Program bittiği anda alt kabuğun işlevi sona erer ve sistem
tarafından öldürülür.
Bir kabuk altında tanımlanan değişken o kabuğa özgüdür. Bir kabuk altında
erişilebilen değişkene diğer bir kabuk erişemez. Fakat bash kabuğu altında
bir çevre değişkeni yaratılırsa, sistem tarafından her alt kabuğa bu çevre
değişkeni kopyalanır. Böylece bir değişken yaratılır, ama her alt kabuk
tarafından kullanılabilir. bash kabuğunda yaratılan çevre değişkenlerinin
normal değişkenlerden tek farkı, bu değişkenin diğer alt kabuklar tarafından
tanınmasıdır.
Bir çevre değişkeni belirtmek için export komutu kullanılır.
Aşağıdaki örnekte dosyam isimli çevre değişkeni
tanımlanıyor.
$ export dosyam="internet.97.txt"
$ echo $dosyam
internet.97.txt
Bu esnadan sonra tüm kabuklar altında bu değişken tanımlı olacaktır.
env komutu yardımıyla sistemde öntanımı yapılan veya
sonradan tanımlanan tüm değişkenler ekrana listelenir.
$ env
HOME=/home/gorkem
SHELL=/bin/bash
LS_OPTIONS=--8bit --color=tty -F -b -T 0
PS1=\h:\w\$
PS2=>
LOGNAME=gorkem
OSTYPE=Linux
Sisteme girdiğiniz anda tanımlanan bazı komutlar ve açıklamaları aşağıda
verilmiştir:
HISTFILE: Tüm yazdığınız komutlar
.bash_history adlı bir dosya içinde tutulur. Her
kullanıcının kendi ev dizinleri içinde kullanıcıya özgü bu dosyadan
vardır. $HISTFILE değişkeni ile dosyanın ismi
değiştirilebilir.
$ echo $HISTFILE
/home/gorkem/.bash_history
$ HISTFILE="komutlar"
$ echo $HISTFILE
komutlar
PATH: PATH değişkeninde bir komut yazıldığı anda sistem tarafından
aranacak olan patika listesi görüntülenir. Örnek olarak who komutu
/usr/bin/ dizini altındadır ve bu bilgi PATH değişkeninde saklı
tutulur. Kullanıcının yaptığı programları çalıştırabilmesi için PATH
değişkeninde bulunduğu dizini de tanımlaması gerekir.
PATH değişkeninde her dizin iki nokta üstüste işareti ile birbirinden
ayrılır. Örnek olarak /usr/local/bin:/usr/bin dizisi sırasıyla
/usr/local/bin ve /usr/bin patikalarına karşılık gelir.
Kullanıcı PATH değişkenine yeni girdiler ekleyebilir. Aşağıdaki örnekte
bunun nasıl uygulandığı görülüyor. Kullanıcı kısaca PATH değişkeninin
sonuna kendisinin istediği patikayı veya patikaları ekler.
$ echo $PATH # PATH degiskenini ekrana bas
$ export PATH=$PATH:/usr/net # buna /usr/net patikasini ekle
SHELL: O an kullanılan kabuğun patika ismini verir.
Kabuk programları genellikle /bin dizini altında
tutulurlar. Her kabuğun patika ismi sistemdeki
/etc/shells dosyasında bulunmalıdır.
HOME: Kullanıcının ev dizinini gösteren patikayı
ekrana basar. Her kullanıcının ev dizini, sistemde hesap açılırken
sistem görevlisi tarafından belirlenir. Linux Slackware dağıtımı
altında bu dizin öntanımlı olarak /home 'dur.
Aşağıdaki örnek kullanıcının ev dizinine ait patikayı ekrana basıyor.
$ echo $HOME
/home/gorkem
LOGNAME: Sistemdeki kullanıcı hesabınının ismini tutar.
Her kullanıcı için farklı bir değerde olur.
TERM: Kullanıcının halen üzerinde çalıştığı terminal
tipini görüntüler. vi ve pico
gibi editörler çalıştırıldıkları anda TERM çevresel değişkenine bakarlar.
Bu sayede ekran ile ilgili bilgileri önceden düzenleyebilirler.
Aşağıdaki komut önce halihazırdaki TERM değişkenini görüntülüyor, ardından
değişkene başka bir değer atıyor.
$ echo $TERM
linux
$ export TERM=vt100
$ echo $TERM
vt100
PS1 ve PS2: Ekranda komut satırının başına gelecek olan
karakterleri belirlerler. Komut isteminin en başındaki yazı bu iki değişken
yardımıyla değiştirilebilir. PS1, birinci satırın karakterlerini tutarken
satıra sığmayan komutlar bir satır aşağı geçeceklerinden ikinci satırın
karakterlerini de PS2 belirler. Aşağıdaki satır, bu iki değişkenin
öntanımlı olan "$" işaretini bir kelimeyle değiştiriyorlar.
$ export PS1='-> '
-> export PS2='>'
->
Önceden tanımlanan kodlar yardımıyla komut satırı değiştirilebilir.
Her kodun başında \ karakteri vardır. Bu kodların herbiri örneğin o
anki saati, makinanın ismini veya bulunduğunuz dizini ekrana yazabilirler.
Örneğin \h ve \w kodları sırasıyla çalışılan makinanın ismini ve çalışma
dizinini gösterirler. Bu örnekte PS1 değişkeni bu iki kod yardımıyla
değiştiriliyor.
$ export PS1='\h:\w\$ '
linux:~$ # yeni komut satiri goruntusu
linux:~$ cd /tmp
linux:/tmp$ # calisma dizinini de gosteriyor
Aşağıda, sıkça kullanılan kodların bir listesi görülüyor.
- \t, saat
- \d, tarih
- \s, kabuk ismi
- \w, çalışma dizini
- \u, kullanıcı ismi
- \h, makina ismi