Twitter'da takip et
Ana Sayfa

TerminalBazı sunucu sağlayıcıların önerdikleri paketler ile birlikte shell erişimine izin verdiklerine mutlaka rastlıyorsunuzdur. Peki nedir bu shell dedikleri ve ne işe yarar? Çok kısaca özetlemek gerekirse; shell sunucunuz üzerinde komut satırı üzerinden işlemler gerçekleştirebilmenize olanak sağlayan bir yazılımdır. Shell ekranını, Windows’da “Başlat > Çalıştır” ile karşınıza çıkan kutuya “cmd” (win9x için “command”) yazdığınızda karşınıza çıkan siyah ekranın Linux versiyonu olarak düşünebilirsiniz. Windows’daki komut satırı ile küçük benzerlikler gösterse de çok daha gelişmiş özellikler barındırır, ki bu sayede de işini bilen birisi için Linux ile işletilen bir bilgisayarı herhangi bir arayüze gerek kalmadan yönetmek çok kolaydır.

Sunucu sağlayıcılar, bir ihmal ya da kasıt sonucunda tüm sistemi etkileyecek sonuçlarla karşı karşıya kalmamak için, kullanıcılara sağladıkları shell erişiminde genellikle kısıtlamalara giderler. Fakat çoğu kez kulanıcılara kendi yetki alanlarında tüm dosya işlemlerini sınırsızca gerçekleştirebilecek ve sunucu bilgisayarda kurulmuş olan yardımcı programları kullanabilecek kadar yetki sağlanmaktadır.

Shell erişimi, sunucuların tercihine bağlı olarak, TELNET veya SSH üzerinden gerçekleştirilebilir. Hiçbir şifreleme yeteneği olmayan TELNET hem kullanıcılar hem de sunucular açısından oldukça güvensiz olduğu için genellikle tercih edilmezken, benim kullandığım DreamHost’da olduğu gibi, sunucu sağlayıcınız her iki metodu da destekleyebilir. Eğer sunucunuz TELNET ile erişime izin veriyorsa, başka hiç bir araca ihtiyaç duymadan, her Windows kurulumu ile birlikte gelen TELNET istemcisini kullanarak bağlanabilirsiniz (“Başlat > Çalıştır > telnet”). Bununla birlikte, yıllardır düzeltilmeyen bir geri-silme tuşu (backspace) problemi olan bu araç yerine, ücretsiz ve açık kaynak kodlu bir yazılım PuTTY‘i kullanmanızı tavsiye ederim. Ben de, hem TELNET hem de SSH erişimlerini destekleyen ve kararlı yapısı ile birçok kişinin favorisi olan, PuTTY’i kullanıyorum.

Shell ve Linux konusunda sözü fazla uzatmak istemiyorum, isterseniz internette yapacağınız küçük bir arama ile istemediğiniz kadar bilgiye ulaşabilirsiniz :) Bunun yerine küçük bir iki örnek vererek shell’in doğru kullanıldığında hayatınızı nasıl kolaylaştıracağını anlatmak daha doğru olacaktır diye düşünüyorum.

Başlamadan önce

Komut satırı üzerinden gerçekleştireceğiniz işlemler sırasında yapacağınız bir yanlış geri dönüşü olmayan hatalara ve bunların sonucunda da telafi edilemeyecek veri kayıplarına neden olabilir. Bu yüzden, eğer komut satırı ile daha önceden tecrübeniz yoksa, sunucunuzda denemeler yapmadan önce kendi bilgisayarınız üzerinde Linux çalışan (live) CD’leri ile pratik yapmayı düşünebilirsiniz. Eğer sunucunuzda çalışmayı tercih ederseniz, geçici bir dizin oluşturarak denemelerinizi orada gerçekleştirmenizi öneririm. Sunucunuz üzerinde geçici bir dizin oluşturmak için aşağıdaki komutu kullanabilirsiniz;

$ mkdir temp

daha sonra da bu dizinin içerisine girerek denemelerinizi burada gerçekleştirebilirsiniz.

$ cd temp

Herhangi bir komutu gerçekleştirmeden önce nerede olduğunuzdan emin olmak için “pwd” komutunu kullanabilirsiniz.

$ pwd

pwd komutu size aşağıdakine benzer bir şekilde sunucunuzda nerede bulunduğunuzu gösterecektir;

/home/adiniz/temp

Üstteki durumda “temp” dizini içerisindesiniz demektir. Dizin içeriğini listelemek için “ls” komutundan yararlanabilirsiniz.

$ ls -al

ve birkaç küçük ipucu;

  • Tab tuşu shell kullanımına hız kazandırır;
    Tab tuşu ile dosya ve dizin adlarının otomatik olarak tamamlanmasını sağlayabilirsiniz. Örneğin wp-admin/ dizinini yazarken wp-a yazdıktan sonra tab tuşuna tıklarsanız shell dizin adını sizin için otomatik olarak tamamlayacaktır.
  • Yazdığınız komutların geçmişi kaydedilir;
    Shell kullanırken kullandığınız komutların geçmişi kaydedilir ve isterseniz klavyenizdeki yukarı ok tuşunu kullanarak en son kullandığınızdan başlayarak bunları görebilirsiniz. Bu sizi aynı uzun komutları tekrar yazma zahmetinden kurtararak zaman kazandırır.
  • “.” ve “..” ifadeleri;
    Bir dizin altındaki içeriği listelerken karşılaşacağınız “.” ve “..” ifadeleri, sırası ile, bulunduğunuz dizinin ve bir üst dizinin yolunu simgelerler. Bunları dosya işlemleri sırasında da kullanabilirsiniz, örneğin;
    $ mv ../abc/dosya.uzanti .
    komutu bir üst dizin altında bulunan abc dizini içerisindeki dosya.uzanti isimli dosyayı bulunduğunuz dizine taşıyacaktır.
  • man sayfaları;
    Kullanımını merak ettiğiniz bir yazılımın/komutun kullanım klavuzuna “man” komutu ile ulaşabilirsiniz. Örneğin unzip komutunun kullanım klavuzuna;
    $ man unzip
    ile ulaşabilirsiniz.
  • Herhangi bir ekrandan komut satırına geri dönmek için;
    CTRL+Z tuş kombinasyonunu kullanabilrisiniz. Eğer bu çalışmazsa CTRL+X deneyebilirsiniz. Her ikisi de çalışmazsa son çare olarak, shell’den çıkış yapmanıza neden olacak, CTRL+D kombinasyonunu kullanabilirsiniz.

Artık denemelerimize başlayabiliriz. Yazının “WordPress’i FTP kullanmadan güncellemek” bölümüne ikinci sayfadan ulaşabilirsiniz.

Sayfalar: 1 2

“Sunuculardaki “Shell” nedir ve ne işe yarar?” başlıklı yazıya 13 yorum yapılmış

  1. Fatih Arslan demiş ki:
    18 February 2007, 1:08 am

    Güzel bir yazı olmuş ellerinize sağlık. Benim için bu büyük bir kriter, Shell(bash) desteği vermeyen bir sunucu ile aram kötü olurdu herhalde. Ayrıca ek olarak dosyaları düzenlemek için

    vim dosya.txt

    şeklinde Vim ile düzenleyebilirsiniz. Kendisi Linux camiasının en güzel, en nadide uygulamalarından biridir. İşinize yarayabilir. Bir de Linux altından bağlanmak için

    ssh isim@alanadı.com

    şeklinde konsoldan giriş yapabilirsiniz. Openssh paketini yüklemek şartıyla tabi.

  2. ali demiş ki:
    18 February 2007, 1:36 am

    Evet, shell erişiminin hayatlarını nasıl kolaylaştırabileceğini farkeden herkes bu olanağı sağlamayan sunuculara soğuk bakmaya başlıyor ister istemez :)

    Yazıyı konu ile ilk tanışacakları hedefleyerek yazdığım için olabildiğince sade tutmaya çalıştım, bu yüzden birçok araca değinmedim. vim gerçekten iyi bir düzenleyici olsa da ben bana kullanımı daha kolay gelen nano’yu tercih ediyorum (sunucularda genellikle her ikisine de yer veriliyor). Yine, Linux kullanıcılarının Windows kullanıcılarına kıyasla, SSH’ın ne anlama geldiğinin ve nasıl kullanılacağının daha çok farkında olacaklarını farzederek çok detaya yer vermemiştim, ayrıntı için teşekkür ederim ;)

  3. osman demiş ki:
    18 February 2007, 7:00 am

    evet gerçektende çok güzel birşey bu shell. ben bugünden sonra hosting alırken mutlaka shell desteğine bakacağım.

  4. Exxon Valdez demiş ki:
    20 February 2007, 6:14 pm

    Bir de, sunucuda ssh varsa büyük olasılıkla rsync de vardır ki, bu uygulama sayfa yayınlama, dosya yollama işlemlerini bayağı bir hızlandırır.

  5. ali demiş ki:
    22 February 2007, 10:42 am

    Exxon:
    Evet, hatta SVN’de varsa, bu desteği veren yazılımları kurmak ve güncellemek de oldukça hızlanacaktır. Yakın zamanda WordPress Codex’inde, WordPress’in SVN aracılığı ile yüklenmesi ve güncellenmesi üzerine bir makale yayınlandı, burada yayınladığım makaleden faydalanmayı düşünenlerin oraya da bakmalarında yarar var.

  6. Bir Dost demiş ki:
    23 February 2007, 6:50 pm

    Arkadaşlar Merhaba,

    Acemiblogcu’ dan daha acemi bir blog kullanıcısı olan ben, birkaç gün önce kendi wordpress tabanlı sitemi açmış bulunuyorum ve içerik olarak bilgilerimi paylaşmak istesemde, konuları kısa şekilde anlatamamak gibi bir özürüm olduğu için bir çok yazıyı yarıda kesiyorum ve yazmayı bırakıyorum. Fakat ilk gönderdiğim postlarım yukarıda bahsi geçen konularla ilgili(benim postlarım daha önce yazılmış:) ve bu tesadüften faydalanarak acemiblogcu’ nun izniyle burada hafif duyuru amaçlı sitenin adresini vermek istiyorum. Yukarıdaki bahsi geçen konuyla ilgili bir kaç ipucu yazmıştım projeler.org adresinde. Yeni başlayanlar için çok işe yaramayacak olsada ilerde eminim saatlerinizi harcayacağınız konular arasında.. Ayrıca anlatım tarzım ve cümleler ile ilgili eleştirilerinizi yorum olarak yazarsanız gelecek yazılarıma(eğer imkan olursa) çok büyük katkıda bulunmuş olursunuz. Bu tür yorumları muhtemelen yayınlamam konu dışı olacağı için fakat hepsi kabulümdür :) Yazılmış konu ile ilgili sorularınız ise cevabıyla beraber yayınlacaktır elbette.

    Hayırlı günler…

  7. nurah demiş ki:
    7 August 2009, 2:36 pm

    ssh ile shel araindaki fark ne ?

  8. ali demiş ki:
    16 August 2009, 1:04 am

    ssh ile shel araindaki fark ne ?

    “SSH” ile sunucuya bağlanıp “Shell” üzerinden işlem yapıyorsunuz.

  9. Webkantin demiş ki:
    22 January 2013, 5:42 pm

    Çok teşekkürler güzel anlatım olmuş.

Görüşünüzü bildirin

XHTML: Bu etiketleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>