Özel Kabuk Değişkenleri

Next: Sisteme Giriş Dosyaları Up: Bash Kabuğu Previous: Özel Kabuk Tanımları

# Özel Kabuk Değişkenleri

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 programı (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.98.txt"
    $ echo $dosyam
    internet.98.txt

Bu esnadan sonra tüm alt 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 ':' 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:~/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.

    $ echo $SHELL
    /bin/bash

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.

    $ echo $LOGNAME
    gorkem

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ı başlangıcı 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\$ '
    $                        # yeni komut satiri goruntusu
    $ cd /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

Next: Sisteme Giriş Dosyaları Up: Bash Kabuğu Previous: Özel Kabuk Tanımları