Genel

Kabuk Programlama

Unix / Linux sistem yöneticilerin işlerini kolaylaştıran olmazsa olmaz kabuk programlamayı göz atalım ve öğrenelim.

Alışkanlıktan dolayı ben csh kabuğunu kullanıyorum.Fakat kabuk scriptleri sh kabuğu kullanarak yazağım. Csh harici sık kullanılan sh ve bash kabukları da var. Bir de bildiğim kadarı ile çok kullanılmayan ksh ve tcsh var. Tcsh csh’ın geliştirilmiş hali. Ben alışkanlıklarımdan vazgeçmeyerek sh kullanarak yazıyorum. Öncelikle standart merhaba dünyamızı diyelim.

#!/bin/sh
echo “Hello world”

Burada ilk yazdığımız satır shebang. Her kabuk programlama dilinde olmak zorunda. /bin/csh csh kabuğunun hangi dizinde olduğunu belirtiyor. Nerde olduğunu öğrenmek için;

which csh
which sh

komutunu yazarak kabuğun yerini öğrenebiliriz.

Merhaba dünya demek için grafik arayüz de iseniz bir çok alternatif var. Eğer siyah ekranda iseniz nano, piko, vi veya ee kullanabilirsiniz. Ben alışkanlık ve kolay kullanımı olduğu için ee “linux dağıtımlarında aee diye geçer” kullanıyorum. ( vi’den nefret ediyorum :/ )

ee merhaba.sh diyerek dosyamınızı açalım ve yukarıda yazdığımız “Hello world” kodunu yazalım.

dosyanın çalışması için gerekli izinleri verelim.

chmod +x merhaba.sh

val# ./merhaba.sh
Hello world!

Kabuk programlama aslında siyah ekranda verdiğimiz komutların belli bir düzene uyarak çalışmasını sağlar. Mesela cron ile her gece logları, temp dosyalarını silmek isteyebiliriz ve bunu her gece yapacağımıza bir sh yazabiliriz. Tabi yine de bu kadar basit değil, fonksiyonlar, değişkenler de atayabiliriz kabuk programlama ile.

Sık kullanılan değişkenler ise şu şekildedir.

Home              : Bağlı olduğunuz kullanıcının ev dizinini gösterir.

#!/bin/sh
echo $HOME

Çıktı;
val# ./merhaba.sh
/root
User             : Bağlı olduğunuz kullanıcının kim olduğunu gösterir
val# ./merhaba.sh
val
Shell             : Kullandığınız kabuğu gösterir
val# ./merhaba.sh
/bin/csh
Diğer programlama dillerinde olduğu gibi kendimiz de değişken tanımlayabiliriz.
#!/bin/sh
adim=”val resnick”
echo $adim
Aynı şekilde komutları da değişken olarak kullanabiliriz.
Örnek;
#!/bin/sh
dosyalar=$(ls  /usr | grep b)
echo $dosyalar
Bu betiğin çıktısı /usr dizini altındaki içinde b harfi geçen dosya ve klasörler olacaktır.
Sonra devam edelim.

Bir cevap yazın

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