Shell - Kabuk Nedir? Pek çok bilgisayarda komut satır arayüzü vardır. Bundan dolayı siz pek çok bilgisayarda komut satırı denen bir pencere açıp bilgisayardan yapmasını istediğiniz şeyi, komut şeklinde yazabilirsiniz. Açtığınız her pencerede sizin yazdıgınız her karakteri okuyup bilgisyarın donanımının anlayacağı gerçek komutlara çeviren bir program çalışır. İşte bu programa komut çevirici veya shell denir. Unix/Linux sitemlerde pek çok shell var. Kabuk Programlama Nedir? Kabuk programları, shell de çalıştırılmak üzere komutlar topluluğu içeren bir text dosyasıdır. Gelişmiş kabuklar bir betik dosyasının içindeki daha fazla karmaşık veya uygun komut topluluğunu destekler. Pek çok durumda bu betik dosyasının içeriği komut satırına yazılabilir ve sonuç çalışan betik aynı olabilir. Unix sistemlerde pek çok kabuk ortaya çıktığından beri betikler bu kabuklardan herhangi biri ile yazılabilir. Her kabuk farklı sözdizimine ve farklı yeteneklere sahip olduğundan, her kabul betiğinin doğru davranış gösterebilmesi için hangi kabukta yorumlanacağının tanımlanması gerekmektedir. Bu tanımlama betiğin ilk satırında yapılır. Kabuk Betikleri Niçin Yazılır? Bazı insanlar kabuk betiklerine hey bu başka bir programlama diline benziyor. Kullandığım programlama dili ile aynısını yapabilirim diye düşünebilir. Pek çok şeyi yapabilirler ama kabuk betikleri basit görevleri daha kolay bir şekilde yapmaktadır. Örneğin, resimlerinizin bulundugu bir klasöre bakıp, onlardan birini rastgele seçen ve onu masaüstü resmi olarak atayan bir program istediniz. Bunu yapması için bir C programı yazmalısınız. Bundan dolayı çeşitli sistem API'lerini kullanmalısınız. Sonra masaüstü resim ayarları için Xwindows API'lerini öğrenmeniz gerekir. Program hatalarını temizlemelisiniz, derlemelisiz ve sonrada hataları arayıp durmalısınız. X ile gelen önceden yapılmış araçları kullanan 5 satırlık bir kabuk betiği yazarsınız ( eger fantezi yaparsanız 12 satırlık da olabilir. ) bu işilemi daha basit bir yöntem ile yapabilirsiniz. Eğer mesajlarınıza bakmak ve bilgisayardan belli bir kritere göre sınıflandırılmış 5 mesajınızın kopyasını size e-posta ile göndermesini isterseniz, /var kayıt mesajlarını açan ve yazdığınız algoritma ile kriterler mesajları bulan, onları sayısını alıp hafızaya kaydeden, sonra tcp portu açıp mail sunucunuza bağlanan ve smtp ile mesajlarınızı gönderen ve açtığı portu kapayan bir C programı yazmalısınız veya for döngüsü grep, wc, sort kullanan ve sonuçları sendmail'e yollayan 7 satırlık bir betik yazabilirsiniz. Özetle; Kabuk betikleri yazmanın arkasında nokta sadece aynı komutları, defalarca tekrar tekrar yazmadan ve yüzüncü kez çalıştırdığınızda yazım hataları için endişelenmeden tekrar tekrar çalıştırabilmek değil, fakat tekerleği yeniden keşfetmek yerine Unix/Linux ile birlikte gelen pek çok kullnılışlı aracı kullanmaktır. Shell Türleri sh bash csh vs.. Diğer bir kaynak:Shell nedir? Basitçe, bir shell hesabı aldığınızda sürekli ve yüksek hızda(T1, T3, Kablo vs.) internete bağlı bir bilgisayarınız olacak diyebiliriz. Ancak sheller sadece bunun için kullanılmaz, en azından sadece bu özelliklerinden dolayı bir shell almak gerekmez. IRC için düşünüldüğünde bir irc sunucusu kurmak, eggdrop kurmak yada bir bouncer kurmak için sheller ideal olabilir. Bunun yanında shell hesabınızın olduğu bilgisayarlar donanım ve yazılım olarak üst seviye bilgisayarlardır. Asıl önemli olan bu ekstra özelliklerinden faydalanabilmektir. Örneğin bir web siteniz var diyelim ve sitenizi bir hosttan diğer bir hosta geçireceksiniz. Bir kaç ftp komutuyla yaklaşık 10MB'lık bir siteyi en fazla bir kaç dakika içinde yeni hostunuza gönderebilirsiniz. Kendi bilgisayarınıza linux kurmak yerine linux kurulu bir shell alıp neredeyse tüm uygulamaları kullanabilirsiniz. CGI, PHP, TCL, ASP türü programları rahatlıkla ve ekstra hiç bir kurulum gerekmeden shell hesabınızda çalıştırabilirsiniz. Shellerde genellikle Unix, Linux ve FreeBSD gibi işletim sistemleri kullanılır. Bunun yanında WinNT yada Win2000 sunucuları da bulabilme imkanınız var. BP çalıştırmanıza izin veren ve bedava olan bir shell bulma olasılığınız yolda giderken beşyüz milyon bulma olasılığınızla aynı. Siz shelle bağlıyken BP çalıştırmanıza izin veren sheller var ancak siz bağlantınızı kesince çalıştıdığınız uygulamalar ve programlar kapatılıyor. Dolayısıyla eggdrop veya bouncer kurup çalıştıramıyorsunuz. Çoğu bedava shellde BP çalıştırılmasına izin verilmiyor. Bedava sheller genelde program derleme, script çalışıtırma, yazılan bir programın veya scriptin farklı platformlarda denenmesi için kullanılıyor. Kısaca shell şu işlere yarayabilir: Shell hesabınıza FTP ve TELNET ile bağlanabilirsiniz. Yüksek hızda internete bağlandığı için büyük dosyaları veya acil indirilmesi gereken dosyaları kısa sürede shell hesabınıza indirir daha sonra zaman bulduğunuzda shell hesabından kendi bilgisayarınıza çekebilirsiniz. Kendi bilgisayarınızda derleyemediğiniz büyük programları shell hesabınıza gönderip burada kısa sürede derleyebilirsiniz. PHP, CGI gibi dilleri rahatlıkla çalıştırabilirsiniz. Kendi IRC sunucunuzu kurabilirsiniz E-mail gönderip alabilirsiniz Web sitesi kurabilirsiniz BNC kurabilirsiniz Eggdrop kurabilirsiniz. Ancak hemen belirtelim, bir shell hesabı almadan ve bir eggdrop kurmadan önce mutlaka orta seviye IRC bilginizin olması gerekir. Eğer IRC konusunda pek fazla bilginiz yoksa ve linux türü işletim sistemlerine yabancıysanız bu işe kalkışmadan önce biraz daha beklmenizde fayda olaktır. -