Neredeyse tüm insan icatlarının bir etkileşim/iletişim ara birimi bulunmaktadır. Araba, uçak, fayton, jakarlı tekstil makinesi, armül tezgah, sunucu, işletim sistemi vs.
Nix sistemlerin iletişim ara birimi ise kabuktur. Bu uygulama, çeşitli komut veya parametrelerini girerek, belirli bir sonuç alabileceğimiz ortamı sağlar. Bir Unix veya Linux işletim sistemi çalışmaya başladığı andan itibaren, kapanana kadar çalışmayı sürdürür. İşletim sistemi açıldığında, login ekranını görüntüler ve kullanıcı adımızı yazdığımızda getty uygulaması “passwd” ekranını getirir. Getty uygulaması aslında, /dev dizininde bulunan tüm aygıt, medya veya kullanıcı oturumlarına “session” oluşturur. Passwd ekranında şifremizi girdikten sonra, getty /etc/passwd dosyasını tarar ve eşleşme gerçekleşirse, login uygulaması, passwd dosyasından aldığı ev dizinini tarayıp, bizi ev dizinimize yönlendirir. Kabuk ev dizininde bulunan, kullanıcıya özel dosyaları (.login, .history, .home vs) okur ve bize çalışma ortamımızı sağlar. Kullanıcı “ls” komutunu verdiğinde, kabuk “/usr/bin” dizininden bu komutu bize getirip, çıktıyı ekranımıza verir.
(cron uygulaması, insan etkileşimi olmadan çalışmaktadır, bu sebeple cron ile çalıştıracağımız bir dosyada, kabuğu #!/bin/csh şeklinde yazmamız gerekir)
Aynı şekilde login uygulaması, passwd üzerinde tanımlanan kabuğa (csh, sh, tcsh vs) bizi yönlendirir.
Tüm kabuk sürümlerinde özel anlamlara sahip olan kelimeler/karakterler vardır. Kabuk programlamada do, done, for ve while gibi sözcükler döngüyü, if, then, else ve fi gibi sözcükler ise koşullu denetimi sağlar. Her kabuk sürümünün, kendine özgü ayrılmış sözcükleri bulunmaktadır.
Bağımsız değişken tanımlama
Csh kabuğunda değişkeni şu şekilde tanımlarız
#set degiskenim=tanimladim#echo $degiskenimtanimladim
Kabuk Programlama
Kabuk bize bir çalışma ortamı sağladığı gibi, aynı zamanda bir programlama dilidir. Kabuğu bir yazım dili olarak kullanıp, sistemin yönetilmesini, gerekli işlemleri yapmasını, sistemin akışını sağlayabiliriz.
Kabuk Çeşitleri
- Bourne
- Posix
- C
- Korn
- TC
- Bourne Again
- Z