UNIX - Bir Giriş,
Hiç Bilmeyene/Çok az bilene Basit Unix
1. Amaç
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
http://ftp://ftp.bilkent.edu.tr/pub/INFO/Turkce/css/unix-all.css ile erişilebilir.
--------------------------------------------------------------------------------
2. Dosyaların listesini nasıl elde edebilirim ?
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.
-u:Dosyalara en son erişim zamanlarına göre sıralanmasını sağlar.
Ö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
--------------------------------------------------------------------------------
3. Bir dosyayı başka bir yere ya da isme nasıl kopyalayabilirim?
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.
--------------------------------------------------------------------------------
4. Nasıl dizin oluşturabilirim, ve silebilirim?
mkdir dizin_ismi --> dizin oluşturur
rmdir dizin_ismi --> ici boş olan bir dizini siler.
--------------------------------------------------------------------------------
5. Dosyaları ya da dizinleri başka bir yere nasıl taşıyabilirim?
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
--------------------------------------------------------------------------------
6. Dosyaları nasıl silebilirim?
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.
--------------------------------------------------------------------------------
7. Sahip olduğum bir işlemi nasıl kesebilirim?
kill (-sinyal) PID
PID numaraları ps komutu ile görünür. Bir çok sinyal tanımlanabilir. Bunlardan -9 islemi öldürür.
--------------------------------------------------------------------------------
8. Yerini bilmediğim bir dosyayı nasıl bulurum?
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
--------------------------------------------------------------------------------
9. Şifremi nasıl değiştirebilirim?
Ş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.
--------------------------------------------------------------------------------
10. Şifreler konusunda bir sınırlama var mıdır?
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.
--------------------------------------------------------------------------------
11. Bir dosyanın izinlerini nasıl değiştirebilirim?
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