Yorumlarınızdan, tam olarak bir kabuğun ne olduğu konusunda kafanız karışmış gibi görünüyor . Çekirdek sistemi yönetmekten sorumludur. Programları yükleyen ve çalıştıran, dosyalara erişen, bellek ayıran vb. Bölümdür. Ancak çekirdeğin kullanıcı arayüzü yoktur; onunla sadece bir aracı olarak başka bir program kullanarak iletişim kurabilirsiniz.
Kabuk, bir komut istemi basan, sizden bir girdi satırı okuyan ve ardından dosyaları işlemek veya diğer programları çalıştırmak için bir veya daha fazla komut olarak yorumlayan bir programdır. GUI'nin icat edilmesinden önce, kabuk bir işletim sisteminin birincil kullanıcı arayüzü olmuştur. MS-DOS'ta kabuk çağrıldı command.com
ve çok az kişi farklı bir tane kullanmaya çalıştı. Ancak Unix'te, kullanıcıların seçebileceği çok sayıda kabuk vardır.
3 tipe ayrılabilirler. Bourne uyumlu kabuklar, orijinal Bourne kabuğundan elde edilen sözdizimini kullanır . C kabukları, orijinal C kabuğundan gelen sözdizimini kullanır . O zaman kendi sözdizimini icat eden veya bazı programlama dillerinden birini ödünç alan ve genellikle ilk iki türden daha az popüler olan geleneksel olmayan mermiler vardır.
Yerleşik bir komut, kabuğun kendisini başka bir programın yüklenmesi ve çalıştırılması için bir istek olarak yorumlamak yerine gerçekleştirdiği bir komuttur. Bunun iki ana etkisi var. Birincisi, genellikle daha hızlıdır, çünkü bir programın yüklenmesi ve çalıştırılması zaman alır. Elbette, komutun çalışması ne kadar uzun sürerse, yükleme süresi genel çalışma süresiyle karşılaştırıldığında ne kadar az önemliyse (yükleme süresi oldukça sabittir).
İkincisi, yerleşik bir komut kabuğun iç durumunu etkileyebilir. Bu nedenle, gibi komutların yerleşik cd
olması gerekir , çünkü harici bir program kabuğun geçerli dizinini değiştiremez. echo
Verimlilik için yerleşik olan diğer komutlar da olabilir, ancak harici komutlar olmamalarının gerçek bir nedeni yoktur.
Hangi komutların yerleşik olduğunu kullandığınız kabuğa göre değişir. Bir liste için belgelerine bakmanız gerekecektir (örneğin, bash
yerleşik komutları , kılavuzunun 4. Bölümünde listelenmiştir ). type
Bir komut yerleşik (kabuk POSIX uyumlu ise) ise POSIX gerektirdiğinden komut söyleyebilirim type
yerleşik olması. Eğer which
kabuğunuzdaki bir yerleşik değilse, o zaman muhtemelen kabuğunuzun yerleşik yapılarını bilmeyecek, ancak sadece harici programları arayacaktır.