Kabuk Nedir
Temelinde, bir kabuk, komutları çalıştırmaya yarayan basit bir makro
işlemcisidir. Burada makro işlemcisi terimi, metinlerin ve sembollerin
daha geniş ifadeler oluşturmak üzere genişletilmesi işlevini yerine
getiren anlamındadır.
Bir Unix kabuğu, hem bir komut yorumlayıcısı hem de bir programlama
dilidir. Bir komut yorumlayıcı olarak, GNU araçlarından zengin bir
demeti barındıran bir arayüzdür. Programlama dili özellikleri ise bu
araçları birarada kullanabilmeyi mümkün kılar. Komutları içeren
dosyalar oluşturulabilir ve bu dosyaların kendileri birer komut haline
gelebilir. Bu yeni komutlar /bin
dizinindeki sistem komutları gibi kullanıcılara ve gruplara ortak
kullandıkları işlemleri otomatikleştiren özelleştirilebilir ortamlar
sağlayabilir.
Kabuklar etkileşimli ya da etkileşimsiz kullanılabilirler. Etkileşimli
kipte, girdi klavyeden kabul edilirken, etkileşimsiz kipte bir dosyadan
okunur.
Bir kabuk, GNU komutlarını hem eşzamanlı hem de eşzamansız çalıştırabilir.
Kabuk, başka bir girdi kabul etmeden önce eşzamanlı komutların işlemlerini
bitirmesini bekleyebileceği gibi, eşzamansız komutlara paralel olarak
kabuğun ek komutları okumasını ve çalıştırmasını sağlayabilir.
Yönlendirme yapıları ile bu komutların giriş ve çıkışlarının kolayca
denetlenmesini mümkün kılar. Üstelik, komutların çalıştırıldığı
ortam üzerinde de denetimi sağlar.
Kabuklar ayrıca ayrı araçlar üzerinden sağlanması sakıncalı olan ya da
imkansız olan işlevselliği sağlamak üzere yerleşik komutların
(yerleşikler - builtins) küçük bir demetini barındırır. Örneğin, cd, break, continue ve exec) komutları doğrudan kabuğun kendisini etkilediğinden kabuk dışında gerçeklenemezler.
history, getopts, kill veya pwd
yerleşikleri ise, diğerlerine karşın ayrı araçlar olarak
gerçeklenebilirdi ama yerleşik komutlar olarak kullanılması daha
faydalıdır. Tüm kabuk yerleşikleri kılavuzun ileri bölümlerinde
anlatılmıştır.
Komutlar icra edilirken kabuğun esas gücü (ve karmaşıklığı) kabuğun
gömülü programlama dilinden gelir. Diğer yüksek seviyeli programlama
dilleri gibi kabuk da değişkenler, akış denetim yapıları, işlevler içerir
ve ayrımlama yapabilir.
Kabuğun özellikleri programlama dilini güçlendirmekten ziyade özellikle
etkileşimli kullanımı kuvvetlendirmeyi öne çıkarır. Bu etkileşim
özellikleri iş denetimi, komut satırı düzenlemesi, komut geçmişi ve
takma adlardır. Bu özelliklerin herbiri kılavuzun ileri bölümlerinde
açıklanmıştır.
|