fbpx

ARİDOSHİKA

Ulaşabildiğin her yerde

Neden Linux (reis) ?

Gerçekten ’Neden Linux ?’ Bu soruya cevap vermeden önce bir miktar Linux’u yüzeysel bile olsa
tanımak gerekmektedir.
Linux 1992 yılında Linus Torvalds tarafından başlatılan bir projedir. Temel olarak 1970’lerden beri
süregelen Unix işletim sisteminin evlerde yaygın olan i386 (PC) tabanlı makinalarda çalışmasını he-
deflemiştir. Bu başlangıcın devamında proje birçok kişi tarafından desteklenmiş ve şu anda binlerce
yazılımcının bir şekilde ilgilendiği dev bir proje halini almıştır.
Linux diye bildiğimiz dağıtımların hepsi, Linux kerneli (çekirdeği) ve onun etrafındaki GNU yazılım-
lardan oluşan bir Unix sistemidir aslında. O zaman asıl sorumuz neden Unix olacaktır ?
Unix temelde Windows ve DOS kullananlarımızın komut satırı diye bildiği ortamdan ve X-Windows
sisteminden oluşur. Bu ikisinin de geçmişi hem DOS’tan hem de Windows’tan çok daha eskilere dayanır.
Unix’in 1970’lerden beri temel aldığı en önemli özellik çok görevli (multi-task) ve çok kullanıcılı (multi
user) olmasıdır. Bütünleşik bir işletim sistemi olan Unix, bu iki özelliğini hem komut satırı ortamında hem
de GUI ortamı olan X-Windows’da korur. Dahası X-Windows’da yapabileceğiniz hemen herşeyi komut
satırından (konsoldan) gerçekleştirebilirsiniz.
Az önce bahsettiğimiz gibi Unix’in temel özelliği çok görevli ve çok kullanıcılı olmasıdır. Bu sebeple
Unix’de çok ciddi bir kullanıcı kısıtlaması vardır. Kullanıcılar, ancak izinleri olan harddisk alanında,
izinleri olan komutları, kullanmalarına izin verilen hafıza miktarında ve hatta CPU gücü ile yaparlar. Bir
kullanıcının bir programının çökmesi bir başka kullanıcıyı ve makinanın genel işletimini engellemez.
Otuz yıldır geliştirilen bu özellikler Unix’i diğer işletim sistemlerinden ayırmakta ve dünyanın en çok
tercih edilen sunucu platformu yapmaktadır.
İşte bu noktada Unix’le tanışıklığı biraz daha ilerlemiş bazıları ’iyi de kullanması kesinlikle daha zor,
bir çok işi konsoldan yapıyorsunuz, Windows gibi GUI’den herşeyi halletmek varken, 2006 senesinde ben
niye konsolu kullanayım’ diyebilir.
Burada bir şeye açıklık getirmek lazım. Konsol, dinazorluktan, ya da eski kafalılıktan hala kullanılan
bir şey değildir. Konsol kullanılmaktadır, zira bir sistem yöneticisinin işlemleri en hızlı ve en kolay yoldan
yapmasının yolu konsoldur. Konsoldan bir iki satır ile hallettiğiniz bir emri GUI’den yapmak genelde çok
daha uzun zamanınızı alır. Belki daha da önemlisi, konsol ’ne yapması gerektiğini bilenler’ içindir, şuraya
buraya tıklayayım da nasıl olsa hallederim bu işi diyerek sistemi kurcalayanlar için değil.
Bir başka önemli nokta da Unix’in gücünü biraraya gelmiş binlerce küçük programdan alıyor olmasıdır.
Bu kurs süresince size bu programları ihtiyacımız doğrultusunda nasıl birbiri ile ilintileyeceğimizi, nasıl
istediğimizi gibi sonuçlar alacağımızı göstereceğiz.
Kısa bir örnek ls komutu olabilir. DOS ortamındaki dir komutunun karşılığı olan ls komutu size
basitçe bir dizinin içeriğini gösterir. Diyelim ki bu dizin uzun ve içeriğini sayfa sayfa görmek istiyoruz. Bu
noktada herhangi bir text dosyasını bize sayfa sayfa gösteren more komutu ile ls komutunu birleştiririz. En
basitinden ls -al — more dediğinizde ls komutunun çıktısı takip edebileceğiniz gibi sayfa sayfa karşınıza
gelir. Mesela ls komutu bir dizindeki dosyaları gösterirken, ls — wc -l komutu ls komutunun çıktısını
wc (wordcount) komutuna gönderek o dizinde kaç dosya olduğunu gösterir. Görüyorsunuz iki alakasız
komutla ls komutuna yeni fonksiyonlar kazandırdık. Dahası bir dizinde kaç dosya olduğunu bilgisayara
saydırdık. Kolaylıkla bir başka komutu da bu sisteme ekleyip, her dosyayı bizim için teker teker yazıcıya
yollamasını sağlayabilirdik veya başka bir şey. Birkaç kelimelik bu tür komutlarla yapabileceğiniz şeylerin
ne kadar derine gidebildiğini görseniz şaşarsınız. Dahası bir kabuk ortamı gibi bir sahte-programlama dili
ile birleştirildiğinde bu komutlar gerçekten uygulama düzeyinde işlerin altından kalkabilirler.
Linux kullanmayı öğrenmenizin sebeplerinden biri işte budur. Gerektiği gibi bilgisayarınızı kontrol
edebilmeniz, ona istediğiniz işlemleri yaptırabilmeniz. Kendinizi ona değil onu kendinize uydurabilmeniz.

 

bash’e giriş ( güç kalkanları devrede mi ? )

Kabuk

Eğer daha önce bir Linux sistemi kullandıysanız sisteme girdiğinizde aşağıdakine benzer bir komut satırı
ile karşılaşacağınızı bilirsiniz:

 

 

Bu komut satırı çok farklı görünebilir. Sisteminizin üzerinde çalışılan makina (hostname) bilgisini,
içinde bulunduğunuz dizini veya her iki bilgiyi birden yansıtıyor olabilir. Ancak nasıl görünürse görünsün
kesin olan bir şey vardır: Bunu görüntüleyen programa ”kabuk” (shell) denir ve çok büyük ihtimalle
sisteminizde sizi karşılayan bash kabuğudur.

bash mi kullanıyorsunuz?
bash kullanıp kullanmadığınızı şu şekilde kontrol edebilirsiniz:

Eğer üstteki ifade bir hata verirse veya yukarıdaki örneğe benzemeyen bir sonuç verdiyse, bash’ten
farklı bir kabuk kullanıyor olabilirsiniz. Bu durumda bile bu eğitimin büyük bir bölümü hala geçerli
olacaktır, fakat bash’a geçiş yapmanız bu eğitim sürecinde sizin için önemli bir avantaj olacaktır. (chsh
komutunu kullanarak kabuğu değiştirmek için gerekli bilgi için eğitim serimizin 2. Bölümüne bakın.)

bash hakkında

”Bourne-again shell” ifadesi için bir tür kısaltma olan Bash, pek çok Linux sistemde öntanımlı kabuk ola-
rak karşınıza çıkar. Kabuğun görevi verdiğiniz komutlara uyarak Linux sisteminizle etkileşime geçmenizi
sağlamaktır. Komut vermeyi bitirince kabuğa exit ya da logout komutu ile kendini sonlandırmasını söyle-
yebilirsiniz, hemen ardından karşınıza login ekranı gelir. Bu arada, kabuk ile çalışırken Control-D tuş
kombinasyonuna basarak da bash kabuğunu sonlandırabilirsiniz.

 

”cd” kullanımı

Sizin de farkına varmış olabileceğiniz gibi bash komut satırı dünyanın en heyecan verici şeyi sayılmaz.
İsterseniz şimdi de biraz dosya sistemi içinde gezinmek için bash kullanalım. Komut satırında iken
aşağıdaki komutu verin ($ karakterini yazmadan):

 

 

Bu komut ile bash kabuğuna / içinde çalışmak istediğimizi söylemiş olduk. Bu aynı zamanda kök
(root) dizin olarak da bilinir; dosya sistemindeki tüm dizinler bir ağacı oluştururlar ve ”/” bu ağacın en
tepesinde ya da bu ağacın kökü kabul edilir.
cd komutu o anda çalışmakta olduğunuz dizini belirler. cd komutunun bir adı da ”halihazırda çalışılan
dizin (current working directory)” dir.

Yollar

bash kabuğunun halihazırda çalıştığı dizini görmek için yazılabilecek komut:

 

 

Yukarıdaki örnekte, cd komutuna cevap olarak gelen / elemanına yol (path) denir ve cd komutuna
gitmek istediğimiz yeri söyler. Burada, / elemanı mutlak yol (absolute path) olarak kullanılmış. Gidilecek
olan dizinin, dosya sistemi ağacında, kökten itibaren ifade edilişine mutlak yol denir.

Mutlak Yollar

Birkaç mutlak yol örneği:

 

 

Gördüğünüz gibi bütün mutlak yol ifadelerinin ortak noktası / ile başlamalarıdır. Örneğin /usr/local/bin
yolunu yazarak, cd komutuna önce / dizinine gitmesini, oradan usr dizinine, daha sonra da usr dizininin
altında local ve onunda altında bin dizinine gitmesi söyleniyor. Mutlak yol ifadeleri, her zaman / den
başlayarak kullanılır.

Göreli/Bağıl yollar

Diğer yol türü göreli yoldur. Bash, cd ve diğer komutlar bu tür yolları daima içinde bulunduğunuz dizine
göre yorumlar. Göreli yollar kesinlikle / ile başlamaz. Yani eğer /usr dizini içinde isek:

 

“..” kullanımı

Göreli yolların içinde bir ya da daha çok .. dizini bulunabilir. ”..” dizini özel bir dizindir ve bulunduğunuz
dizinin üstündeki dizini gösterir. Yukarıdaki örnekten devam edecek olursak:

 

Gördüğünüz gibi şimdi içinde bulunduğumuz dizin /usr/local dizinidir. Bu şekilde içinde bulunduğu-
muz dizine göre ”geriye” doğru gidebiliriz başka bir deyişle ”yukarı” doğru çıkabiliriz.

“..” kullanımı

Ek olarak, içinde bulunduğumuz dizinin de yer aldığı yani bir üst dizini temsil eden ”..” dizinini de
kullanabiliriz. Örneğin:

 

Göreli/Bağıl Yol ,Örnekleri

Göreli yollar biraz karmaşık görülebilir. Burada sonuçta varılacak hedef dizinin görülmediği bir kaç örnek
mevcuttur. Bu komutlar yazıldıktan sonra hangi dizin içerisine gidileceğini tahmin etmeye çalışınız:

 

Şimdi bunları bir de yazarak nereye gittiğine bakınız ve doğru tahmin edip etmediğinizi gözlemleyiniz.

”.” Kavramı

cd konusunu bitirmeden önce birkaç küçük şeyden daha bahsetmek gerekmektedir. İlk olarak, ”.” ile
temsil edilen ve ”halihazırda bulunduğunuz dizin” anlamına gelen özel bir sembol daha vardır. Bu dizin
cd komutuyla birlikte kullanılmaz, genellikle bulunduğunuz dizindeki bazı programları çalıştırmak için
kullanılır:

 

Yukarıdaki örnekte halihazırda çalışılan dizin (ardından) program isimli (çalıştırılabilir) dosya çalış-
tırılacaktır.

cd ve ana dizin

Ana dizinimizi değiştirmek isteseydik şöyle yazabilirdik:

 

Parametresiz kullanımda cd, kullanıcıyı home dizininine götürecektir. root kullanıcılar icin home dizini
/root ve diğer kullanıcılar için ise /home/kullanıcı adı seklindedir. Peki ya acaba kendi home dizinimiz
içerisinde bir dosya belirlemek istersek ne yapmak gerekir? Mesela bir dosya argümanını program ko-
mutuna parametre olarak gondermek isteyelim. Eğer dosya kendi home dizinimiz içerisinde yer alıyorsa,
yazılabilecek komut aşağıdaki şekilde düşünülebilir:

 

Fakat yukarıdaki örmekte olduğu gibi her zaman tam yolu yazmak çok verimli olmayabilir. Neyse ki
̃(tilda) karakteri yardımıyla aynı işi daha kolay bir şekilde halletmek mümkündür. Şöyle ki:

 

Diğer Kullanıcıların Home Dizinleri

Kabuk için ̃ komutunun, kullanıcının home dizini anlamına geldiğini söylemiştik. Bunun yanında, yine
̃ kullanılarak başka kullanıcıların da home dizinlerine erişmek mümkündür. Örneğin, knoppix’in home
dizininde yer alan ogrencidosyasi.txt isimli dosyaya erişmek istiyorsak aşağıdaki komut yazılabilir:

Linux Komutlarının Kullanımı

”ls” tanımı

Şimdi ls komutuna hızlıca göz atacağız. Muhtemelen ls komutunu önceden biliyorsunuz ve sadece onu
yazmanın halihazırda bulunduğunuz dizinin içeriğini listeleyeceğini biliyorsunuz:

$ cd /usr

$ ls

bin doc etc games include info lib local man sbin share src X11R6
-a seçeneğini belirterek bir dizindeki dosyaların tümünü, gizli dosyalar –. ile başlayanlar– da dahil
olmak üzere görebilirsiniz. Aşağıdaki örnekte de görebileceğiniz gibi, ls -a . ve .. özel dizin linklerini de
gösterir:

$ ls -a
. .. bin
doc etc games include info lib local man sbin share src X11R6

 

Gelicek yazı serisinde devam edelim ls komutunda kaldıgımız yerden …

1 thought on “ls komutunu bilenler için linux 101

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.