Bu bölumde, temel ve çok karşılaşılan unix komutlarının basit kullanımları anlatılacaktır. Internet üzerindeki bilgisayarların önemli bir kısmının işletim sisteminin unix ve unix türevleri (ultrix, linux, solaris vb) olduğu düşünülürse, unix bilmeyenlerin de yollarını bulabilecek kadar temel bazı bilgilere sahip olmaları yararlı olacaktır. Unix ile ilk kez karşılaşanlar her zaman için (Unix'te) küçük/büyük harflerin FARKLI olduğunu akıllarında bulundurmalıdırlar.
Bu bölümdeki bilgiler aslında daha geniş bir dökumanın ilk bölümünden yapılan bir alıntıdır. unix ile ilgili daha ayrıntılı bilgiler içeren orijinal dökümana ftp://ftp.bilkent.edu.tr/pub/INFO/Turkce/css/unix-all.css ile erişilebilir.
ls komutu ile. Aşağıda bu komutun temel kullanımı verilmiştir.
ls (secenekler) (dosya veya dizin...)
Bazı seçenekler:
· -F: Dosya isimleri sonunda * ; dizin isimleri sonunda / işaretleri görüntülenerek birbirinden ayırt edilmelerini sağlar.
· -R: Belirlenen bir dizin içindeki dosyalar yanısıra varsa tüm alt dizinler içerikleriyle birlikte listeler.
· -a: . ile başlayan dosyalar dahil dizinin tüm içeriğini listeler. (.login , .rc gibi)
· -l: Dosyalar hakkında daha ayrıntılı bilgi verir.
· -m: Dosya isimleri virgüllerle birbirinden ayrılarak listelenir.
· -p:Dizinlerin / işaretiyle simgelenmesini sağlar.
· -s:Blok cinsinden dosyaların boyutunu verir.
Örnek :
ls -l sezen*
--w-rw--w- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w-rw--w- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
--w-rw--w- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w-rw--w- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
cp komutu ile yapılır. Kullanımı :
cp -[secenek] dosya başka_bir_dosya_ismi
Örnek :
cp sezen.html s.html // sezen.html'i s.html'e kopyalar.
cp s.html ~/tmp // s.html'i HOME dizinimdeki /tmp dizininin altına kopyalar
cp -r ~/tmp ~/dump // HOME dizindeki tmp dizinini dump dizininin altına kopyalar.
cp -[secenek] dosya başka_bir_dosya_ismi
Örnek :
cp sezen.html s.html // sezen.html'i s.html'e kopyalar.
cp s.html ~/tmp // s.html'i HOME dizinimdeki /tmp dizininin altına kopyalar
cp -r ~/tmp ~/dump // HOME dizindeki tmp dizinini dump dizininin altına kopyalar.
· mkdir dizin_ismi --> dizin oluşturur
· rmdir dizin_ismi --> ici boş olan bir dizini siler.
mv komutu ile dosyaları başka bir dizine, hatta dizinleri başka dizinlere taşıyabilirsiniz. Bu işlemin sonunda orjinal dizinin içindeki dosyalarin isimlerinde bir değisiklik olmaz. mv komutu DOS'taki rename ve move komutuna benzer, ancak onlardan çok daha beceriklidir.
Kullanımı :
mv dosya1 dosya2
Unix'te dosyaları silmek için rm komutu kullanılır. Aslında rm'nin yaptığı şey dosyanın sahip olduğu linklerden birini çıkarmaktır. Eger dosyanın sadece bir link'i varsa sonuçta dosya silinir.
DİKKAT : Unix'te DOS'takine benzer bir UNDELETE komutu yoktur (mimarilerinin farkli olmasından dolayı) bu sebeple dosyalarınızı silerken çok dikkatli olmanız gerekir. Eğer bir dosya'yı yanlışlıkla silerseniz, system sorumlunuza başvurun, belki backup'lardan dosyanızı geri getirebilir.
Kullanımı :
rm -[secenekler] Dosya_ismi_1 Dosya_ismi_2 ...
Seçenekler :
-e : Dosyanın silinmesinden sonra ekrana bilgi verir.
-f : Sormadan write-protected dosyaları siler.
-i : Dosyayı silmeden önce bunun doğruluğunu sorar.
-r : Recursive olarak alt dizinleri siler.
-R : -r ile aynidir.
Örnek :
rm sezen* // bulunduğumuz dizindeki sezen ile başlayan tüm dosyaları siler
rm -rf tmp // tmp dizinini ve alt dizinlerini uyarmadan siler.
Seçenekler :
-e : Dosyanın silinmesinden sonra ekrana bilgi verir.
-f : Sormadan write-protected dosyaları siler.
-i : Dosyayı silmeden önce bunun doğruluğunu sorar.
-r : Recursive olarak alt dizinleri siler.
-R : -r ile aynidir.
Örnek :
rm sezen* // bulunduğumuz dizindeki sezen ile başlayan tüm dosyaları siler
rm -rf tmp // tmp dizinini ve alt dizinlerini uyarmadan siler.
kill (-sinyal) PID
PID numaraları ps komutu ile görünür. Bir çok sinyal tanımlanabilir. Bunlardan -9 islemi öldürür.
Find programı ile bulabilirsiniz.
Kullanımı :
find <yol tanımı> <seçenekler>
Seçenekler:
-name isim:aranılacak dosyanın ismi.
-perm izin:izinleri oktal olarak belirlenmiş dosyaların aranılması.
-links n:linke sahip dosyalar.
-user kullanıcı:Belirli bir kullanıcıya ait dosyaların aranması.
-group isim:Belirli bir gruba dahil dosyaların aranması.
-atime n:n gün içinde erişilen dosyalar.
-mtime n:n gun içinde işlem gören dosyalar.
-ctime n:n gun içinde değiştirilen dosyalar.
-print :bulunan dosyaların ekranda görüntülenmesini sağlar.
Örnek :
Bulunduğum dizinden itibaren tüm alt-dizinlerdeki "sezen" ile başlayan
dosyaları bulmak için
find . -name "sezen*" -print
./faq/sezen_aksu_88.html
./faq/sezen_aksu_soyluyor.html
./sezen
./sezen/sezen
./sezen/sezen.c
Not 1 : Burada arayacağım dosyada wildcard kullandığım için " " işaretini
kullandım. Eğer dosyanın tam ismini biliyorsaniz buna gerek yoktur.
Not 2 : Eğer bir aramayi root'tan ( / ) başlatırsaniz çok büyük
olasılıkla bazi dosyaları okumaya izininiz olmadığı için size bunu
belirten bir uyarı mesajı verilecektir, ve bu mesajlar arasında aradığınız
şey ekrana yazılsa bile bunu gözden kaçırabilirsiniz. Bu sebeple çıktıyı
bir dosyaya yöneltip, daha sonra o dosyayı okumanızda fayda vardır.
Örnek :
find / -name gzip -print > gzip.listesi
Kullanımı :
find <yol tanımı> <seçenekler>
Seçenekler:
-name isim:aranılacak dosyanın ismi.
-perm izin:izinleri oktal olarak belirlenmiş dosyaların aranılması.
-links n:linke sahip dosyalar.
-user kullanıcı:Belirli bir kullanıcıya ait dosyaların aranması.
-group isim:Belirli bir gruba dahil dosyaların aranması.
-atime n:n gün içinde erişilen dosyalar.
-mtime n:n gun içinde işlem gören dosyalar.
-ctime n:n gun içinde değiştirilen dosyalar.
-print :bulunan dosyaların ekranda görüntülenmesini sağlar.
Örnek :
Bulunduğum dizinden itibaren tüm alt-dizinlerdeki "sezen" ile başlayan
dosyaları bulmak için
find . -name "sezen*" -print
./faq/sezen_aksu_88.html
./faq/sezen_aksu_soyluyor.html
./sezen
./sezen/sezen
./sezen/sezen.c
Not 1 : Burada arayacağım dosyada wildcard kullandığım için " " işaretini
kullandım. Eğer dosyanın tam ismini biliyorsaniz buna gerek yoktur.
Not 2 : Eğer bir aramayi root'tan ( / ) başlatırsaniz çok büyük
olasılıkla bazi dosyaları okumaya izininiz olmadığı için size bunu
belirten bir uyarı mesajı verilecektir, ve bu mesajlar arasında aradığınız
şey ekrana yazılsa bile bunu gözden kaçırabilirsiniz. Bu sebeple çıktıyı
bir dosyaya yöneltip, daha sonra o dosyayı okumanızda fayda vardır.
Örnek :
find / -name gzip -print > gzip.listesi
Şifre değiştirmek icin passwd programı kullanılır. Bazı systemlerde yppasswd olarak ta geçebilir. Bu komut'u yazdıktan sonra sizden ilk olarak eski şifreniz ardından yeni şifreniz sorulacaktır. Daha sonra tekrar yeni şifreniz kontrol amacı ile sorulur. Eğer bir hata yapmadiısaniz şifreniz değiştirilir.
Unix şifreleri genelde 5-8 harf arasında olur. 8 harften uzun bir şifre girseniz bile 8 harften sonrası dikkate alınmaz. Şifrelerinizi seçerken güvenlik açısından bazı şeyleri gözönünde bulundurmanız gerekir. Örnegin isim,soyisim,isim-soyisim kombinasyonları,çok kullanılan sözcükler vs. kötü şifrelerdir. Çünkü bazı programlar bu olasılıkları deneyerek kullandığınız şifreleri bulabilir. Esasen iyi seçilmiş bir şifrenin bulunabilme olasılığı son derece düşüktür.
chmod izin modu dosya : Bir dosyaya verilen izinlerin değiştirilmesi.
ls -l [dosya] yazdığınızda en solda görülen bilgiler, o dosyanin
izinlerini gosterir.
Örnek :
ls -l sezen*
--w-rw-r-- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
Görüldüğü gibi en soldaki kısım 10 tane alandan oluşmaktadır. Bunların
ilk'i dosyanın niteliğini ( dizin yada dosya ) sonraki 9'u da o dosyanın
izinlerini gosterir.
Eğer en soldaki alan "d" ile başlarsa bu onun bir dizin oldugunu, "-"
ile başlarsa normal bir dosya olduğunu gösterir (bu arada unix'te her dizin
özel bir dosyadır ! )
Bu ilk karakterden sonra gelen 9 karakter de kendi aralarında 3 gruba
bölunur.
?lk 3 Alan : Kullanıcı izinlerini
Sonraki 3 Alan : Grup ile ilgili izinleri
En Sağdaki 3 Alan : Diğer kullanıcılarla ilgili izinleri gösterir.
Herbir bölüm de 3'e bölünür :
r : Read ( okuma ) hakkı;
w : Write ( yazma ) hakkı;
x : Execute ( calistirma ) hakkı.
Örnek :
-rw-r--r-- 1 e065247 B386 533 Oct 24 21:35 sen_aglama.html
gibi bir dosya bu dosyanın herkes tarafından okunabilir olduğunu, ama
sadece o dosyanın sahibi tarafından yazılabilir olduğunu gösterir.
chmod programında kullanılan izin modlari iki türlü belirtilebilir :
1- Nümerik olarak :
r'nin değeri : 4
w'nin değeri : 2
x'in değeri : 1 dir.
Örnekler :
ORANTILI IZIN KODLARI
------------------------------------------------
Orantili kod - Izin durumu -
------------------------------------------------
0400 - Dosya sahibi için okuma -
0200 - Dosya sahibi için yazma -
0100 - Dosya sahibi için calistirma -
0040 - Gruptakiler icçn okuma -
0020 - Gruptakiler için yazma -
0010 - Gruptakiler için calistirma -
0004 - Diğerleri için okuma -
0002 - Diğerleri için yazma -
0001 - Diğerleri için calistirma -
------------------------------------------------
ls -l
--w-rw--w- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w-rw--w- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
chmod 0220 sezen* // Kullanıcıya ve grub'a yazma hakkı verelim
ls -l
--w--w---- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w--w---- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
2- Karakter olarak :
u:Dosyanın sahibi.
g:Grup
o:Diğerleri
a:Herkes
+:Izin vermek
-:Izinleri kaldırmak.
=:Belirli bir izin atamak üzere.
chmod go+r sezen* // Ek olarak gruba'a ve diğerlerine okuma hakkı verelim
ls -l
--w-rw-r-- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w-rw-r-- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
ls -l [dosya] yazdığınızda en solda görülen bilgiler, o dosyanin
izinlerini gosterir.
Örnek :
ls -l sezen*
--w-rw-r-- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
Görüldüğü gibi en soldaki kısım 10 tane alandan oluşmaktadır. Bunların
ilk'i dosyanın niteliğini ( dizin yada dosya ) sonraki 9'u da o dosyanın
izinlerini gosterir.
Eğer en soldaki alan "d" ile başlarsa bu onun bir dizin oldugunu, "-"
ile başlarsa normal bir dosya olduğunu gösterir (bu arada unix'te her dizin
özel bir dosyadır ! )
Bu ilk karakterden sonra gelen 9 karakter de kendi aralarında 3 gruba
bölunur.
?lk 3 Alan : Kullanıcı izinlerini
Sonraki 3 Alan : Grup ile ilgili izinleri
En Sağdaki 3 Alan : Diğer kullanıcılarla ilgili izinleri gösterir.
Herbir bölüm de 3'e bölünür :
r : Read ( okuma ) hakkı;
w : Write ( yazma ) hakkı;
x : Execute ( calistirma ) hakkı.
Örnek :
-rw-r--r-- 1 e065247 B386 533 Oct 24 21:35 sen_aglama.html
gibi bir dosya bu dosyanın herkes tarafından okunabilir olduğunu, ama
sadece o dosyanın sahibi tarafından yazılabilir olduğunu gösterir.
chmod programında kullanılan izin modlari iki türlü belirtilebilir :
1- Nümerik olarak :
r'nin değeri : 4
w'nin değeri : 2
x'in değeri : 1 dir.
Örnekler :
ORANTILI IZIN KODLARI
------------------------------------------------
Orantili kod - Izin durumu -
------------------------------------------------
0400 - Dosya sahibi için okuma -
0200 - Dosya sahibi için yazma -
0100 - Dosya sahibi için calistirma -
0040 - Gruptakiler icçn okuma -
0020 - Gruptakiler için yazma -
0010 - Gruptakiler için calistirma -
0004 - Diğerleri için okuma -
0002 - Diğerleri için yazma -
0001 - Diğerleri için calistirma -
------------------------------------------------
ls -l
--w-rw--w- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w-rw--w- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
chmod 0220 sezen* // Kullanıcıya ve grub'a yazma hakkı verelim
ls -l
--w--w---- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w--w---- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
2- Karakter olarak :
u:Dosyanın sahibi.
g:Grup
o:Diğerleri
a:Herkes
+:Izin vermek
-:Izinleri kaldırmak.
=:Belirli bir izin atamak üzere.
chmod go+r sezen* // Ek olarak gruba'a ve diğerlerine okuma hakkı verelim
ls -l
--w-rw-r-- 1 e065247 B386 603 Oct 24 22:14 sezen_aksu_88.html
--w-rw-r-- 1 e065247 B386 607 Oct 24 22:23 sezen_aksu_soyluyor.html
Başlıca 2 yolu vardır;
· du komutu : du komutu bununduğunuz dizinden itibaren tüm alt dizinleri tarayarak block cinsinden ne kadar yer kapladığını gösterir. Block büyüklükleri genelde 512 byte'tır bu sebeple çıkan sayıyı iki'ye bölerek o dizinin nekadar yer kapladığını görebilirsiniz. En aşağıdada toplam miktar belirtilir.
Örnek :
/home/e065247/m>du
72 ./.m
8 ./m
8 ./ch
496 ./temp
632 .
72 ./.m
8 ./m
8 ./ch
496 ./temp
632 .
· quota komutu : quota komutu toplam olarak nekadar yer kapladığınızı ve sizin ne kadar yazma hakkınızın olduğunu gosterir. Aynı zamanda eğer geçici disk sınırınızı aştıysanız, kalan gün miktarı vs. gibi bilgileri de gösterir.
Örnek :
/home/e065247/m>quota
Disk quotas for user e065247 (uid 517):
Filesystem blocks quota limit grace files quota limit grace
/home211 2748 3000 5000 302 1000 1500
Disk quotas for user e065247 (uid 517):
Filesystem blocks quota limit grace files quota limit grace
/home211 2748 3000 5000 302 1000 1500
w [seçenekler]
w komutu sistemin yükü, ve çalışanların faaliyetleri konusunda bazı bilgiler verir. Komutu çalıştırdıktan sonra çıkan bilgilerden ilki, sistem hakkındadır : sistem saati, o anda kaç kişinin açık olduğu, ve sistemin yükü gibi.. Sistem yükü genelde 0 ile 40 arasında değisen bir değer ile gösterilir. Eğer sistemin yükü 0-5 arasında ise fazla yüklü olmadığını söyleyebiliriz o anda sistemin. Ancak bazı çok kullanıcılı ya da ağır işlerin yapıldığı makinlerde bu sayı 5 ten çok cok fazla olabilir.
Bu ilk satırın ardından gelen satırlarda sıralar halinde kullanıcılarla ilgili bilgiler bulunur.
Örnek :
/home/e065247/m>w e065247
01:09AM up 10 hrs, 40 users, load average: 2.44, 5.04, 5.33
User tty login@ idle JCPU PCPU what
e065247 pts/5 11:50PM 1 5 5 telnet
e065247 pts/7 11:56PM 0 1 0 w
e065247 pts/12 11:50PM 0 0 0 telnet
01:09AM up 10 hrs, 40 users, load average: 2.44, 5.04, 5.33
User tty login@ idle JCPU PCPU what
e065247 pts/5 11:50PM 1 5 5 telnet
e065247 pts/7 11:56PM 0 1 0 w
e065247 pts/12 11:50PM 0 0 0 telnet
cat [dosya_ismi] [dosya_ismi] ...
Bir dosyanın içine bakmaya yarar. Dosyanın içeriği hiç bir şekilde durmadan ekrandan akıp geçer. Boyları küçük olan dosyalara bakmak için kullanilabilir, ancak büyük dosyalara bakmak için ugun değildir. Ancak başka amaçlar için de kullanılabilir örnegin :
cat file1 >> file2
komutu file1 dosyasının içeriğini file2 dosyasının arkasına kopyalar. Bu işlem sonunda file1'in içeriğinde bir değisiklik olmaz.
- o -
pg seçenekler (dosya..)
Seçenekler:
-numara:Her defasında göruntülenecek satırların sayısını gösterir.
-p dizgi:Normal olarak sayfanın en alt satirinda (:)işareti oluşarak
kullanıcının return a basması beklenir.
-c:Her bir sayfa görüntülenmeden önce ekran temizlenir ve imleç baslangıç
konumuna döner.
-e:Her dosyanın sonunda kullanıcının return a basması gerekmez.
-n:Normal olarak komutlar yeni satir karakteri ile son bulur.Otomatik
olarak komut sonunun belirlenmesine olanak sağlar.
-s:msg lerin görüntülenmesini sağlar.
+satir no:Belirli bir satırdan itibaren dosya görüntülenmek isteniyorsa
doğrudan satır numarası yazmak sureti ile bu sağlanır.
+/kalip/:Belirlenen kalıbı içeren ilk satırı bulmak amacıyla bu tür bir
tanım yapılabilir.
- o -
more [dosya_ismi] [dosya_ismi] ...
Bir dosyanın içeriğini ekranda görmek için kullanılır, ancak cat'ta
olduğu gibi dosya'nin iceriği ekrandan kayıp gecmez. Her sayfanın sonunda
ekranın sol alt köşesinde --More--(x%) şeklinde bir yazı belirir.
Buradaki x' dosyanın yüzde kaçının görüldüğünü gösterir. Bu dosyanın
büyüklüğü hakkında size bilgi verebilir. --More--(x%) yazısını gördükten
sonra aşağıdaki tuş'ları kullanabilirsiniz.
SPC : Arka sayfaya geçilmesini sağlar.
K : K herhangi bir tam sayıdır. Bu sayı kadar ileriye gidilmesini sağlar
Kb : K sayısı kadar geri dönülmesini sağlar.
Ks : K sayısı kadar ileri gidilir, ancak aradaki satırlar görüntülenmez.
= : Bulunduğunuz satır numarası verilir.
/ : Dosyada arama yapmak için kullanılır.
v : vi editörünü çağırır.
q : programdan çıkar.
-p dizgi:Normal olarak sayfanın en alt satirinda (:)işareti oluşarak
kullanıcının return a basması beklenir.
-c:Her bir sayfa görüntülenmeden önce ekran temizlenir ve imleç baslangıç
konumuna döner.
-e:Her dosyanın sonunda kullanıcının return a basması gerekmez.
-n:Normal olarak komutlar yeni satir karakteri ile son bulur.Otomatik
olarak komut sonunun belirlenmesine olanak sağlar.
-s:msg lerin görüntülenmesini sağlar.
+satir no:Belirli bir satırdan itibaren dosya görüntülenmek isteniyorsa
doğrudan satır numarası yazmak sureti ile bu sağlanır.
+/kalip/:Belirlenen kalıbı içeren ilk satırı bulmak amacıyla bu tür bir
tanım yapılabilir.
- o -
more [dosya_ismi] [dosya_ismi] ...
Bir dosyanın içeriğini ekranda görmek için kullanılır, ancak cat'ta
olduğu gibi dosya'nin iceriği ekrandan kayıp gecmez. Her sayfanın sonunda
ekranın sol alt köşesinde --More--(x%) şeklinde bir yazı belirir.
Buradaki x' dosyanın yüzde kaçının görüldüğünü gösterir. Bu dosyanın
büyüklüğü hakkında size bilgi verebilir. --More--(x%) yazısını gördükten
sonra aşağıdaki tuş'ları kullanabilirsiniz.
SPC : Arka sayfaya geçilmesini sağlar.
K : K herhangi bir tam sayıdır. Bu sayı kadar ileriye gidilmesini sağlar
Kb : K sayısı kadar geri dönülmesini sağlar.
Ks : K sayısı kadar ileri gidilir, ancak aradaki satırlar görüntülenmez.
= : Bulunduğunuz satır numarası verilir.
/ : Dosyada arama yapmak için kullanılır.
v : vi editörünü çağırır.
q : programdan çıkar.
Linux, öncelikle i386 ve üstü işlemcili PC'ler üzerinde çalışması için tasarlanmış, ve GNU Public License'a göre bedava dağıtılan bir Unix türevi işletim sistemidir. Ancak Linux, DecAlpha, SunSparc ve PowerPC gibi ortamlarda da çalışabilmektedir. Linux ana kernel'i, Linus Torvalds tarafından yazılmıştır. Daha ayrıntılı bilgi, Türkiye Linux Topluluğu Web Sitesi'nden alınabilir. Adresi : http://www.linux.org.tr