"Enter"a basıp içeriğe geçin

Linux Değişkenleri

Linux’ta sistem (çevre) değişkenleri ve kullanıcı değişkenleri olmak üzere 2 farklı tipte değişkenler vardır.

Sistem (çevre) değişkenleri, işletim sistemi tarafından verilen hazır değişkenlerdir.  Kullanıcı değişkenleri kullanıcılar tarafından oluşturulan değişkenlerdir. Değişkenler kullanılırken başına $ konulur.

Sistem (çevre) değişkenleri

Çevre değişkenleri, bir komutun, adresin vb yerini tutan değişkenlerdir. Sistem başlatıldığında otomatik oluşturulurlar.

env : tanımlı tüm çevre değişkenlerini listeler

Önemli çevre değişkenleri :
Bazı sistem değişkenleri:
$BASH : Shell yolunu gösterir
$SHELL :Shell yolunu gösterir
$BASH_VERSİON :bash versiyonunu gösterir
$HOME : ev dizinini gösterir
$PWD : mevcut dizini gösterir
$REPLY : read ile klavyeden son girilen değeri basar.
$USER : kullanıcı adı
$$ : şuanki scriptin PID değerini verir  //bash script konusunda göreceğiz.

cat $HISTFILE : Yazdığımız tüm komutların kaydı tutulur. cat $HISTFILE diyerek bu komutları yazdırabiliriz. echo $HISTFILE diyerek kayıtların tutulduğu konumu görebiliriz.

$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.

Kullanıcı değişkeni tanımlama

Kullanıcı değişkenleri, sadece o terminal veya scriptte kullanılmak üzere oluşturulmuş değişkenlerdir.

ad=ilhan
echo $ad #ilhan yazar

dizin=/home/ubuntu/Desktop/dizin diyerek, bir dizini değişkene atayabliriz
artık dizin gerektiren tüm argümanlarda bu ifadeyi kullanabiliriz.

#değişkenlerin ilk karakteri harf,işaret vb olmaması gerekir.

d1=$d2 diyerek değişkenleri birbirine atayabiliriz.

echo ${ad:2} ad değişkeninin 2. karakterinden itibaren yazar. karakterler 0’dan başladığı için 0 ve 1. karakterleri yani i ve l harflerini yazmaz. han yazar
echo ${ad:1:3} ad değişkeninin 1 ile 3. karakterleri arasını yani lha yazar

echo ${#ad} : a değişeninin içindeki değerin uzunluğunu verir. (bu örnekte 5)

Değişkenin içindeki stringden bir harfi kaldırmasını isteyebiliriz.
echo ${ad/h} ilhan kelimesinden gördüğü ilk h harfini kaldırdı //ilan
echo ${ad/*} dersek h harfi ve sonrasını siler //il
echo ${ad/h/k} h harfini k yapar

Bazen değişkenin içinin dolu olup olmadığını bilemeyebiliriz.
Bu durumda şöyle bir ifade kullanabiliriz

echo ${a:-boş}

eğer a değişkeni doluysa (bu örnekte ilhan vardı) içindeki değeri yazar, eğer boş ise boş yazar

echo ${a:=furkan} diyerek yazdırma sırasında değer verebiliriz

echo ${a:?hata} diyerek, eğer içi boş ise hata mesajı vermesini sağlayabiliriz.

Eğer değişkenimiz bir string ise echo ${ad^*} diyerek ilk harfi büyük yazmasını sağlayabiliriz. // İlhan
Tüm harfleri büyütmek için echo ${ad^^}
^ yerine , koyarsak küçültür

bir dosyanın içindeki bir satırı, grep kullanarak değişkenimize atayabiliriz.

Eğer değişken değil de bir sabit tanımlamak istiyorsak, başına readonly ifadesini koyarız
readonly a=10 # a sabiti 10 olarak ilklendirildi ve artık değiştirilemez

Bu tip değişkenlerin ömrü, atandığı terminal ekranı veya script kapanana kadardır.

Çevre değişkeni tanımlama

Kendimiz de çevre değişkeni tanımlayabiliriz

export isim=”ilhan” dersek isim değişkenine ilhan stringini atamış oluruz. Ve bu değişken sadece bulunduğu terminal yada scriptte çalışmaz, bilgisayar kapanana kadar shell üzerinde işlendiği için her yerde kullanılabilir. Eğer bilgisayar yeniden başladığında da kalıcı olmasını istiyorsak:
sudo nano /etc/environment   diyerek sonradan tanımlanan değişkenlerin tutulduğu dosyayı yazma modunda açarız.

sudo dememizin sebebi, environment dosyasının sadece yöneticilere açık olmasıdır. sudo diyip şifremizi girerek kendimize yetki verdik. Çıkan ekrandaki metin editörüyle dosyanın içine değişkenimizi tanımladık. ctrl+x diyip enter’a basarak kaydettik. sudo ve nano komutlarına şimdilik takılmayın. Sonraki yazılarda detaylı şekilde işleyeceğiz.

Değişkeni sisteme işledik.Artık bilgisayar kapansa da ad değişkenimiz kalır

Denemek için bilgisayarı yeniden başlatıyorum.


isim değişkeni silinmiş, ama ad değişkeni, environment dosyasına işlediğimiz için duruyor.

declare -x isim diyerek export durumunu kaldırabiliriz.

 

 

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir