Genel Yönleriyle Bilinmesi Gereken Linux Komutları

#1
Genel Yönleriyle Bilinmesi Gereken Linux Komutları

Linux, Unix tabanlı bir işletim sistemi olduğu için her ikisi de kullanım açısından benzerlikler içerir. Günümüzde bir çok işverenin istekleri arasında Unix bilgisinin olması yer almaktadır. Eğer Linux mantığını anlar ve komutlarını rahatlıkla kullanabilirseniz sizin de bir Unix bilginiz vardır demektir. Hatta bazı komutlar IBM AIX ile bile aynıdır. Bu yüzden Linux en çok tercih edilen işletim sistemlerinden biridir.

Image

Dosya Tipleri
Linux'ta 3 değişik dosya tipi vardır. Bunlar sıradan dosyalar, dizinler ve aygıt dosyalarıdır. Sıradan dosyalar çalışabilir programlardan veya datalardan oluşur. Dizinler diğer dosyaları ve dizinleri barındıran dosyalardır. Aygıt dosyaları ise tape, disk sürücüleri, CD-ROM sürücüleri, modemler, network kartları, tarayıcılar ile ilgili dosyalardır. Yani bu aygıtlara erişim bu dosyalar üzerinden olur. Hatta bilgisayarın hafızası bile bir dosya ile ifade edilir.

touch, echo, cat komutları
Birçok text editörü ile dosya yaratılabilr. Ancak bunun en basit yolu bir terminalin komut satırında

$ touch dosyam

komutunu işletmektir. Bu komut sayesinde adı dosyam olan içi boş bir dosya yaratılır. Şayet içinde birtakım yazılar olan bir dosya yaratmak istiyorsak o zaman echo komutuyla yönlendirme yapmalıyız:

$ echo içi dolu dosya

Bu komut işletilince standat çıkış olan ekrana "içi dolu dosya" yazacaktır. Tabi bu çıktıyı ekran yerine bir dosyaya yönlendirirsek o zaman içinde "içi dolu dosya" yazan bir dosya yaratılacaktır. Aşağıda bunu göreceğiz.

$ echo içi dolu dosya > dosyam

Bu komut işletilince terminal penceresinden bir görüntü alamayız, ancak dosyam isimli bir dosya yaratılmıştır ve içinde "içi dolu dosya" yazar.

Dosyaların içeriğini görmek için kullanılan birkaç komut vardır. Ayrıca bir text editörü açarak da dosyaların içeriği incelenebilir. Örneğin terminalde

$ cat dosyam

komutunu işletirsek dosyam isimli dosyanın içeriği ekrana basılır. Eğer dosyanın uzunluğu bir ekran görüntüsüne sığmayacak kadar uzunsa dosyanın sonu gelene kadar görüntü kayacaktır ve ekranda sadece son ekrana sığan satırları kalacaktır. Bunu sayfalara bölerek görüntülemek için komut satırında bazı ek komutlar yazmalıyız. Buna daha sonra değineceğim.

Dosyanın içindeki veriyi kaybetmeden üzerine ekleme yapmak için yine echo komutu kullanılabilir. Bu durumda yönlendirmeyi ( >> ) işaretini kullanarak yapmalıyız.

$ echo bu ikinci satırdır >> dosyam

Bu komuttan sonra dosyam isimli dosyanın içinde yazılanları listelersek

$ cat dosyam

içi dolu dosya

bu ikinci satırdır

bu görüntüyle karşılaşırız.

ls komutu

Dosyaların listelenmesi için ls komutu kullanılır. Mesela bulunduğunuz dizinde bu komutu işletin ve bulunduğunuz dizinde neler var neler yok görün.

$ ls

aylar dosyam gunler mevsimler muzik

Benim çalışma dizinimdeki dosya ve dizinler bunlar. Burada birçok dosya ve dizin olsa ve bize m ile başlayanlar lazım olsa yapmamız gereken ls komutuna parametreler ekleyerek bunu belirtmektir.

$ ls m*

mevsimler muzik

Unix'te her dizinin iki özel dosyası vardır. Bunlar .(dot) ve ..(dot-dot) dosyalarıdır. Normal olarak bu dosyalar gizlidir ve ls komutu parametresiz kullanılırsa görülemezler.

$ ls -a

. .. aylar dosyam gunler mevsimler muzik

-a parametresiyle gizli dosyalar da görülebilir. Dosya ve dizinler hakkında daha ayrıntılı bilgi almak için ise bir parametreye daha gerek vardır. ls komutu -a ve -l parametreleriyle beraber kullanılırsa dosyalar hakkında geniş bilgi elde edilir. Bu ayrıntılı bilgi dosya tipi, kullanıcı izinleri, dosyanın sahibi, dosyanın grubu, dosyanın yaratılma tarihinden ibarettir. Bir örnek vermek gerekirse,

$ ls -al

-rw-r-r- 1 predator user1 2156 jul 19 1998 .
-rw-r-r- 1 predator user1 2246 jul 19 1998 ..
-rw-r-r- 1 predator user1 147 jul 19 1998 .profile
-rwxr-xr- 1 predator user1 186 jul 25 1998 aylar
-rwxrwxrwx 1 predator user1 296 jul 22 1999 dosyam


pwd, cd , cd.. komutları

Unix dosya-dizin hiyerarşisi içinde hareket ederken cd ve cd.. komutları kullanılır. Bulunan dizini öğrenmeye yarayan komut da pwd (print working directory)' dir.

$ pwd

/home/predator/deneme

$ cd..

$ pwd

/home/predator

Sanırım yukarıdakiler Linux'un dosa çok benzer bir yapıda olduğunun kanıtıdır. Ancak aralarında çok farklılıklar da vardır. Mesela dosya isimleri 255 karaktere kadar olabilir. Hatta dosya ismi olarak benim.dosyam.deneme ya da benim_deneme_dosyam verilebilir. Ancak dosyalara isim verilirken dikkat edilmesi gereken bazı hususlar vardır. Bazı derleyiciler giriş dosyalarının bazı kurallara uygun olmasını ister. Mesela bir derleyici kendisine ilişkilendirilen dosyanın uzantısının belirli bir karakter olmasını ister. Bunları listelemek gerekirse :

Uzantı program gereklilik

.c c program dosyaları evet

.f fortran program dosyaları evet

.pl perl program dosyaları hayır

.h include dosyaları hayır

.gz gnu gzip ile sıkışmış dosya evet

.Z sıkıştırılmış dosya evet

.zip pkzip ile sıkıştırılmış dosya evet



Bu tabloya göre dosyaların karışmaması için uygun olan dosya ismini vermek oldukça mantıklı ve birçoğu gereklidir.

cp, mv, rm komutları
Dosyaları kopyalamak için kullanılan komut cp komutudur. Örnek vererek kullanımını açıklarsak :

$ ls

dosyam gunler

olduğunu varsayalım. cp komutuyla dosyam adlı dosyayı dosyam_yedek olarak aynı yere kopyalamak için

$ cp dosyam dosyam_yedek

komutu işletmek gereklidir. Kopyalamanın gerçekleşip gerçekleşmediğine bakmak için

$ ls

dosyam dosyam_yedek gunler

kontrolünü yapabilirsiniz. Bu yaptığımız kopyalamada hedef olarak bir dizin belirtmediğimiz için aktif dizin olan bulunduğumuz dizine kopyalama olmuştur. Dosta olduğu gibi target belirterek de kopyalama yapabiliriz. Mesela

$ cp dosyam /home/guest/temp/dosyam_yedek

komutuyla bulunulan dizindeki dosyam isimli dosyayı kök dizinden itibaren /home/guest/temp dizinine kopyaladık. Şimdi de orada olup olmadığını kontrol edelim.

$ pwd

/home/predator

$ cd /home/guest/temp

$ ls

dosyam_yedek

Kopyalama işleminde aynı anda iki dosyayı birden bir dizine kopyalayabiliriz. Mesela aşağıdaki komutla bunu gerçekleştireceğiz,

$ pwd

/home/predator

$ cp dosyam gunler /home/guest/temp

Bu komut ile dosyam ve gunler isimli iki dosya belirtilen dizine kopyalandı. Burada dikkat edilmesi gereken nokta hedef olarak bir dizinin belirtilmesidir.

Dosyaların kopyalanmasından başka ihtiyaçlar da vardır. Mesela bir dosyaya başka bir dizinin altında ihtiyaç varsa bu dosyayı gerekli dizine kopyalayıp sonra da ilk dosyayı silmektense bu dosyayı ihtiyaç olunan yere taşımaya yarayan bir komut vardır. Bu komutla istendiği taktirde yer değiştiren dosyanın ismi de değiştirilebilir. İsminden de anlaşılacağı gibi bu komut mv komutudur. Mesela uzun bir dosya ismine sahip bir dosyamız olsun. Bunun içini açıp bir satır yazı eklemek için her defasında ismini yazmaktansa buna kısacık bir isim verilebilir.

$ mv cok_uzun_dosya_ismi kısa

Yukarıdaki komutla uzun bir dosyanın yerini değiştirmeden sadece ismini değiştirdik. Bu aslında tam bir rename işlemidir. Şimdi de kısa isimli dosyayı /home/guest/temp dizini altına taşıyalım.

$ mv kısa /home/guest/temp

Ayrıca hedef dizinde de ismi farklı olmasını istersek:

$ mv kısa /home/guest/temp/kısa2

komutunu kullanabiliriz. Kısa2 yerine istediğiniz ismi verebilirsiniz.

Dosyaları silmek için rm komutu kullanılır. Bu komutu kullanırken dikkat edilmelidir. Zira windowstaki gibi bir çöp sepeti burada yoktur. Bu komutu kullanırken iki kere düşünün.

$ ls

dosyam dosya_yedek gunler

$ rm *

$ ls

Burada üç tane dosyamız vardı (!) , artık yok. Çünkü bir joker karakter yardımıyla o dizinde bulunan bütün dosyalar silindi. Bunları kurtarmanın da bir yolu yoktur.

mkdir, rmdir komutları
Dizin oluşturmak için kullanılan komut mkdir komutudur. Bir komutta bir dizin oluşturulduğu gibi birden fazla dizin de bir komut ile oluşturulabilir. Mesela bulunulan dizinde 1 isimli bir dizin oluşturalım:

$ mkdir 1

Bulunulan dizinde iki tane dizin oluşturmak için se yine aynı komutu dizin isimlerini birbirinden ayrı yazarak oluşturabiliriz.

$ mkdir usr1 usr2

Eğer oluşturulan dizinlerin birbirinin içinde yani iç içe olmasını istiyorsak bunu bir parametreyle komuta belirtmeliyiz.

$ mkdir �p tmp/tmp2

Buradaki �p parametresi dizinlerin iç içe oluşturulacağının ifadesidir. Yukarıdaki komutla bulunulan dizinde tmp isimli bir dizin ve onun altında da tmp2 isimli bir dizin oluşturulmuştur.

Dizinleri silmek için rm komutu kullanılamaz. Çünkü rm sadece dosya siler. Dizinleri silmek için rmdir komutu kullanılmalıdır. Bu komutun çalışması için dizinin altındaki her şey silinmelidir. Eğer bu komut hoşunuza gitmezse , ben rm komutunu kullanmak istiyorum derseniz size bir iyilik düşünülmüş. rm komutu �r parametresiyle kullanılırsa işaret edilen dizini siler.




Linuxda Genel Komutlar.

help
Kabuk komutlarının listesini gösterir. Bu komutların herbiri için help komut_ismi komutu ile yardım alabilirsiniz.

komut_ismi --help
Söz konusu komut ile ilgili yardım iletisi basar (varsa).

man başlık
Sistemdeki kılavuz (man) dosyaları. Bir komut hakkında olabildiği gibi bir dosya ya da bir işlev hakkında da olabilir.

apropos başlık
söz konusu başlıkla ilgisi olan komutların listesi.

ls
O an bulunulan dizinin içeriğini listeler.

ls -al | more
O an bulunulan dizindeki bütün dosyaları gösterir (. ile başlayan gizli dosyaları da) Komut burada more komutuna yönlendirilmiştir, bu sayede çıktının bir ekrandan fazla olması durumunda bir ekranlık çıktıdan sonra devamını göstermek için bir tuşa basmanız gerekir.

cd dizin
dizin dizinine geçilir; dizin verilmezse ev dizinine geçilir.

cp kaynak hedef
Bir yerdeki dosya ya da dizinleri başka bir yere kopyalamak içindir. Unix'lerde genelde bu tür komutlarda her zaman kaynak önce hedef sonra yazılır.

mcopy kaynak hedef
DOS'tan Unix'e ya da tersine (disketi bağlamanız şart değil) bir dosyayı başka bir yere kopyalar. Aynı mantıkta çalışan mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat gibi komutlar da vardır.

ln hedef [isim]
Sözkonusu hedef e sabit bağ oluşturur. Sözkonusu dosyalar iki yerde de var gibi gözükür, herhangibir değişiklik diğerini de etkiler, biri silindiğinde diğeri kalır. Sabit bağların kısıtlamaları, bağ dosyası ile asıl dosyanın aynı dosya sistemi içinde olması gerekliliği ve dizinlerle özel dosyalara sabit bağ verilememesidir.

ln -s hedef [isim]
hedef 'e bir sembolik bağ dosyası (isim verilmezse hedef ile aynı isimde) oluşturur. Sembolik bağda hedef 'in nerede bulunacağının bilgisi vardır. Sembolik bağlar dizinler için de kullanılabilir. Tek sorunu hedef silindiğinde bağ bozulmuş olur.

rm dosya ...
Verilen dosya ları siler. Sileceğiniz dosyanın sahibi olmanız gerekir.

mkdir dizin
dizin dizinini oluşturur.

rmdir dizin ...
Belirtilen dizin 'ler boşsa silinir.

rm -r dosya ...
Dosya ve dizinleri ve dizinlerin içindeki dizinleri ardarda siler. Root olarak kullanırken dikkat edin, çünkü herşeyi silebilirsiniz!.

cat dosya | more
Bir dosyayı sayfa sayfa görüntülemek için kullanılır.

less dosya
Önceki komuta eşdeğerdir, biraz daha fazla özellikleri vardır

vim dosya
Bir metin dosyasını düzenlemek için kullanılır. Aynı türden nano, joe, mcedit gibi metin düzenleyicileri de kullanabilirsiniz, ancak vim ile UTF-8 kodlu metinleri de düzenleyebilirsiniz. Diğerleri bunu yapamaz.

find / -name "dosya"
dosya adlı dosyayı en üst dizinden itibaren aramaya başlar. Dosya ismi, * ve ? gibi arama karakterleri de içerebilir. Örneğin benim sistemimde "fazlames*" dizgesi ile fazlamesai.net.txt ve fazlamesai.org.txt dosyaları bulunuyor.

locate dosyaismi
find gibidir, fakat düzenli olarak oluşturulan bir veritabanına bağlıdır, sistemdeki son değişikliklerden haberi olmayabilir.

touch dosya
dosya isimli dosyanın tarih bilgilerini deşiştirir. Eğer bu dosya yoksa sıfır bayt uzunluğunda oluşturur.

xinit
Pencere yöneticisi olmayan bir X oturumu açar.

startx
Pencere yöneticili bir X oturumu açar. DOS'daki win komutu gibidir.

startx -- :1
1 numaralı ekranda X oturumu açar, ilk ekran 0 dır ve komut için öntanımlıdır. Ekranlar arasında <Ctrl><Alt><F7-F8 ...> ile geçiş yapabilirsiniz.

xterm
Basit bir X uçbirimi açar. Daha hafif sürümleri (rxvt, aterm, eterm gibi) bulunur ve tercih edilir.

shutdown -h now
Sistemi durdurur. ATX sistemlerde ayrıca makinayı kapatır.

halt
shutdown -h now ile aynıdır. Sistemi durdurur.

reboot
shutdown -r now ile aynıdır. Sistemi yeniden başlatır .





En çok kullanılan ve yararlı linux komutları

Halihazırdaki dizini gösterir.
.. Önceki dizini gösterir.
~ Aktif kullanıcının ev dizini
cd .. Önceki (üst) dizine geç.
ls .. Önceki (üst) dizinin içeriğini göster.
CTRL-C Çalışan bir programı keser (komut satırına düşürür).
TAB Komut/dosya ismi tamamlama
apropos <kelime> İçinde "kelime" geçen tüm kılavuz sayfalarını tarar.
cat "Dosya"nın içindekileri ekrana basar.
cd "Dizin"e geçer.
cd .. Üst dizine geçer.
chsh Kabuk değiştir.
cp <dosya1> <dosya2> dosya1'i dosya2'ye kopyala.
cp /home/ali/mesaj.txt /tmp /home/ali/mesaj.txt dosyasını /tmp dizini altına kopyala.
echo <karakter dizisi> "Karakter dizisi"ni ekrana bas.
PATH Çalıştırılabilir dosyaların yerini gösteren değişken
echo $PATH Bir dosya çalıştırılmadan önce nereye bakılacağını gösterir.
SHELL Altında çalışılan kabuk.
echo $SHELL Çalışan kabuğu gösterir.
finger <kullanıcı> "Kullanıcı" hakkında ayrıntılı bilgi verir.
ln İki dosya ya da dizin arasında sembolik bağ kurar.
ls Dosya ve dizinleri göster.
ls /etc /etc altındaki dosya ve dizinleri göster.
ls -l Dosya ve dizinler hakkında geniş bilgi ver.
ls -al Saklı (. ile başlayan) dosyaları da göster.
mkdir Dizin yarat.
mkdir ~/gecici Aktif kullanıcının ev dizini altında "gecici" adında bir dizin yarat.
more <dosya> "Dosya"nın içeriğini ekrana yazdırır.
mv Bir dosya ya da dizini taşır.
mv re1.gif /tmp re1.gif dosyasını /tmp dizinine taşı.
mv linax.txt linux.txt linax.txt dosyasının adını linux.txt olarak değiştir.
passwd Şifreyi değiştirir.
pwd Üzerinde çalışılan dizini gösterir (working directory).
rm Bir dosyayı siler.
rm -f <dosya> Dosyayı silmeye "zorlar".
rm -rf <dizin> Bir dizini ve içindeki alt dizinleri siler.
telnet <makina> telnet bağlantısını açar.
who Sistemde kimlerin bulunduğunu söyler.
xf86config X Window grafik ekranını yapılandırır:
 
Üst