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.