İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

Kabuk (SHELL) nedir? Nasıl Kullanılır?

CreMieu-X' - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
05/2010
Nereden:
Burbank
Mesajlar:
5.532
Konular:
4316
Teşekkür (Etti):
99
Teşekkür (Aldı):
573
Ticaret:
(0) %
02-02-2011 11:05
#1
Kabuk (SHELL) nedir? Nasıl Kullanılır?
Shell (Kabuk) nedir?
Lİnux'un türetildiği UNIX sistemlerinde komutları yorumlamak ve yönetmek için kullanılan programa kabuk denir. Bir başka değişle bilgisayar ekranımızın yönetimini pencereler ve simgeler ele geçirmeden önce bilgisayarlarımızı çalıştırmak için kullandığımız komutları yazdığımız bir tür paneldir.

Bütün LINUX dağıtımlarında bir kabuk bulunur. Bir başka değişle Kabuk bir LINUX sistemin olmazsa olmazıdır.

Peki kabukla ne yapabiliriz?
Programları, Dosya sistemlerini çalıştırabilir, Bilgisayar kodunu derleyebilir, Bir sistemi işletebiliriz. Kısacası bilgisayarımızı en etkili şekilde yönetebiliriz.

Kabuk yaygın kullanıcı arabiriminden (GUI) daha az sezgiseldir. Ancak doğru komutlar ve ne yaptığını bilenler için GUI den çok daha etkili kullanılabilir. Bu noktadan baktığımızda Kabuk basit şekliyle bir komut dili yorumlayıcısıdır.
Microsoft işletim sistemlerindeki DOS komutlarını çalıştırabilmek için kullandığımız yorumlayıcıya ( cmd.exe) benzer. Fakat çok daha etkilidir. Şöyleki; Microsoft işletim sistemlerinin kendine has bencilliğini çoğu zaman farketmesek de sistemimizi sınırlı bir çerçevede kullanmamıza müsade eder.

Kabuk ise LINUX'u LINUX yapan en temel etmendir. Kabuk yardımıyla işletim sistemimizin çekirdeğine kadar etkiyip, sistemimizi kendi ellerimizle yapılandırabiliriz.

Kabuğumuzun Yorumlayıcısını Açmak...
Artık nerdeyse bütün LINUX dağıtımlarında GUI ile kabuğa geçişimiz kolaylaşmıştır. LINUX sistemimizde Kabuğumuzu başlatmak için 2 yol kullanabiliriz.

Birincisi; Görünen kısayol menüsünden Shells (Kabuklar), New Terminal (Yeni Terminal), Terminal window (Terminal Penceresi) Xterm veya benzer komutları ararız.

İkincisi
; Panel menümüzü kullanırız. Örneğin UBUNTU'muzda Terminalimizi çalıştırmak için Application>Accessories>Terminal ( Ubuntu Türkçe versiyonunda; Uygulamalar>Donatılar>Uçbirim) yolunu kullanırız.

Bütün durumlarda artık GUI mizden bağımsız olarak kabuğumuzu kullanacağız. LINUX'de farklı terminal emülatör programları mevcuttur. Bunlardan bahsedecek olursak;

xterm: X window sistemi için genel bir terminal emülatör programıdır. Menüleri bulunmaz.
gnome-terminal: GNOME ile gelen varsayılan Terminal emülatör programıdır. xterm'den daha fazla sistem kaynağı tüketir. Buna rağmen terminal sekmelerini veya pencerelerini açabilir, kesebilir, yapıştırabiliriz ve terminal profillerini ayarlayabileceğimiz yararlı menüler barındırır.
konsole: KDE masaüstü ortamıyla gelen emülatör programıdır. konsole ile çoklu dil metin kodlamasını ve metnini farklı renklerle görüntüleyebiliriz.

Terminal penceremizi açtığımızda karşımıza ilk gelen çıktı aşağıdaki gibidir.
Kod:
kullanıcıadı@bilgisayaradı:~$
İlk olarak kullanıcı adımız belirtilmiştir. @ (amphora)'dan sonra gelen kısım bilgisayar adımızı belirtir. ~ (tilde) işareti ise o anda bulunduğumuz dizinin yerine kullanılmıştır. eğer /usr adındaki dizinimizi açmış olsaydık ~ yerine /usr yazacaktı.
Kod:
kullanıcıadı@bilgisayaradı:/usr$
gibi...
en son karakter ise açılmış olan hesabımızın yetki seviyesini belirtir.
Ayarlarla oynanmadığı müddetçe genel olarak $ (dolar) işareti karşımıza çıkacaktır. $ işareti normal bir kullanıcı için varsayılan işarettir. bir diğer adıyla sınırlı kullanıcı oturumunda bulunduğumuzu gösterir.
# (hash) ise diğer adıyla diyez, kök kullanıcı (root) için varsayılan işarettir.
Buna karşın istediğimiz herhangi bir karakteri görüntülemek için istemimizi değiştirebiliriz.

Acaba hangi kabuğu kullanıyorum?
Hangi kabuğu kullandığımızı anlamak için terminal penceremizde
Kod:
echo $SHELL
yazalım.
Not: Kabuk komutlarımız büyük küçük harf duyarlıdır. bir komutu yazdığımızda istediğimiz çıktıyı alamadıysak **** karakterlere, boşluk bırakıp bırakmadığımıza ve de komutların tam karşılığı olacak şekilde büyük küçük harflere dikkat edip komutu tekrarlayalım.

Yukardaki komutumuzun çıktısına kendi sisteminden örnek verecek olursam;
Kod:
ozmo@Ubuntero:~$ echo $SHELL
/bin/bash
anlaşılacağı üzere bash kabuğunu kullanmaktayım.

Peki nedir Bash kabuğu ve Başka kabuklar varmı?
Tam bir sayı verememekle birlikte oldukça fazla kabuk mevcuttur. Fakat genelde kullanılan kabuklardan bahsedelim.

bash (eskiden sh) Kabuğu:
Bash kabuğu ilk UNIX sistemlerinde hem sh ve ksh kabukları, hem de bazı csh özellikleri için orjinal olarak geliştirilen özellikleri içerir. Çoğu LINUX sisteminde varsayılan kabuktur.
Her kabuğun kendine özgü programlama dili yapısı vardır. Bash kabuğu ise güçlü programlama özellikleriyle karmaşık programların rahatça yazılmasına izin verir. Mantıksal operatörler, döngüler, değişkenler ve modern programlama dillerinde bulunan pek çok özellik bash kabuğunda da vardır ve işleyiş tarzları da hemen hemen aynıdır.
Bash çeşitli uyumluluk kiplerinde çalıştırılabilir, böylece farklı kabuklar gibi davranabilmektedir. Örneğin bir Bourne kabuğu (bash +B) veya bir POSIX uyumlu kabuk (bash --posix yazın) olarak davranabilir. Bu şekilde adı geçen kabuklardaki onlara özgü konfigürasyon dosyalarını okuyabilir, doğrudan bu kabuklar için yazılmış olan kabuk script lerini çalıştırabiliriz.

Not: LINUX sistemlerde defalarca yazmanın zor olacağı karmaşık işlemleri çok hızlı gerçekleştirmek için döngüler ve case deyimleri gibi programlama yapılarını kullanarak komutları bir dosyada bir araya getirebiliriz. İşte bu sebeple bir dosyada toplanan ve çalıştırılan komutları içeren programlara kabuk scriptleri denir.

tcsh (eskiden csh) Kabuğu:
C Kabuğunun (csh) açık kaynak versiyonudur. Bu kabuk çoğu Berkeley UNIX sistemlerde varsayınlan kabuk olarak kullanılır. Bu kabukla birlikte dahil edilen TENEX ve TOPS-20 işletim sistemlerinin özellikleri tcsh içindeki T'den sorumludur. Orjinal csh kabuğunun komut satırı düzenleme ve geçmişin işleyişi gibi özelliklerin çoğu hem tcsh'te hem de diğer kabuklarda bulunan bir özelliktir. bir başka değişle gerçekte csh kabuğunu başlatmak csh uyumlu kipte tcsh kabuğunu başlatmaktır.

ash Kabuğu:
UNIX sh kabuğunun ufak bir versiyonudur. sh kabuğunun çoğu özelliğini barındırmaz. komut geçmişleri gibi...
ash kabuğu daha az sistem kaynağına sahip gömülü sistemler için güzel bir kabuktur. bash kabuğunun boyutunun yaklaşık yedi de biri kadar bir boyutu vardır. (bash kabuğu yaklaşık 712k'dır.ask kabuğu ise 100k'lık bir boyuta sahiptir).

ksh Kabuğu:
ksh kabuğu sh kabuğunun atasıdır. UNIX V sistemlerin varsayılan kabuğudur. ksh'ın açık kaynak versiyonu pdksh paketinin bir parçası olarak çoğu rpm tabanlı sistemde orjinal olarak bulunur.

zsh Kabuğu:
zsh kabuğu ise sh kabuğunun klonlarından biridir. POSIX uyumludur (bash gibi). ancak yazım denetimi ve komut düzenlemeye farklı yaklaşım gibi özellikler içerir. ilk Mac OS X sistemleri zsh kabuğunu varsayılan kabuk olarak kullanmıştır. ancak şuanda varsayılan kabuk bash kabuğudur.

Buraya kadar yazdıklarım Kabuğun ne olduğu? Sistemimizde var olan kabukların neler olduğuve vs ile alakalı kısa bilgiler içermekte.

Kabuğumuzu kullanmamızı sağlayan komutlar nelerdir? ve komutlarımızı nasıl kullanırız?
Kabuğumuzu kullanırken yazdığımız komutların yanı sıra, bu komutların çalışmasını etkileyecek veya çalışmasına ekleme yapacak karakterlerde kullanırız.

Öncelikle komutun seçeneklerini nasıl kullanacağımızdan bahsedelim. Çoğu komut davranışlarını değiştirmek için ekleyebileceğimiz bir ya da birden çok seçeneğe sahiptir.

Peki bu seçenekleri nasıl kullanırım?
Öncelikle; bir komutun ne işe yaradığı, alt seçeneklerinin ne olduğu gibi bilgileri öğrenmemiz gerekmektedir. bunun için UBUNTU da man komutunu, LINUX sistemlerin genelinde ise --help komutlarını kullanabiliriz.
örneğin who komutu için terminal penceremizde bir sorgu yapalım.
Penceremizde;
Kod:
man who
veya
Kod:
who --help
yazalım ve ekrana gelen çıktıyı inceleyelim (man sudo yazdığımızda karşımıza gelen çıktıdan q tuşunu kullanarak çıkabiliriz). Gelen çıktıda bize o komutun seçeneklerini nasıl ve hangi parametrelerle kullanacağımızı anlatmaktadır.
Seçeneklerimizi kullanmak için komutumuzu yazıp boşluk bırakır, uygulayacağımız seçeneği önüne - (tire) koyarak kullanırız.
Örnek verecek olursak Terminal penceremizde who -u komutunu sorgulayalım,
Kod:
ozmo@Ubuntero:~$ who -u
ozmo tty7 2010-05-21 14:16 old 2145 (:0)
ozmo pts/0 2010-05-22 00:40 . 8216 (:0.0)
who komutu ile user adlı kullanıcının tty7'de (xwindow= X Window, pencerelerin ekranda nasıl görüntüleneceğini sağlayan, fareyi denetleyen, çekirdek (kernel) ile kullanıcı arasında durarak ekran kartları için bir sunucu görevi yapan programdır) oturum açıldığınıve oturumun 2010-05-21 tarihinde saat 14:16 da başladığını, 2145 nolu PID (kullanıcı oturum kabuğunun proses ID'si) numarasını ve (:0) ise terminal penceresi kullandığımızı göstermekte.

eğer bir komutla birkaç seçeneği birleştirip sorgulama yapmak istiyorsak komutlarımızın seçeneklerini teker teker ya da ayrı ayrı girmemizede gerek yoktur. tek bir - işaretinden sonra birden fazla seçeneği birlikte kullanabiliriz. terminal penceremizden who -uH komutunu girelim.
Kod:
ozmo@Ubuntero:~$ who -uH
NAME LINE TIME IDLE PID COMMENT
ozmo tty7 2010-05-21 14:16 old 2145 (:0)
ozmo pts/0 2010-05-22 00:40 . 8216 (:0.0)
burada who komutuna -u seçeneği ile boştaki zaman bilgilerini, -H ile de sorguladığımız çıktının başlıklarının yazılmasını (NAME, LINE, TIME gibi) talep ettik.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı