You are on page 1of 73

Open Source Enterprise Centre GNU/Linux Sertikasyon Program Linux 101 Ders Notlar

Son Gncelleme: 9 Subat 2007 u

c Iindekiler
1 Linux, Knoppix ve bu eitim g 1.1 Neden Linux ? . . . . . . . 1.2 Knoppix Linux . . . . . . . 1.3 Bu eitim neleri ieriyor? . g c hakknda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 7 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 10 10 10 10 10

2 bashe giri s 2.1 Kabuk . . . . . . . . . . . . . . . . 2.2 bash mi kullanyorsunuz? . . . . . 2.3 bash hakknda . . . . . . . . . . . 2.4 cd kullanm . . . . . . . . . . . 2.5 Yollar . . . . . . . . . . . . . . . . 2.6 Mutlak Yollar . . . . . . . . . . . . 2.7 Greli/Bal yollar . . . . . . . . . o g 2.8 .. kullanm . . . . . . . . . . . . 2.9 .. kullanm, devam . . . . . . . 2.10 Greli/Bal Yol Ornekleri . . . . . o g 2.11 . Kavram . . . . . . . . . . . . . 2.12 cd ve ana dizin . . . . . . . . . . . 2.13 Dier Kullanclarn Home Dizinleri g 3 Linux Komutlarnn Kullanm 3.1 ls tanm . . . . . . . . . . . . 3.2 Uzun dizin listeleri . . . . . . . . 3.3 Uzun dizin listeleri, devam . . . . 3.4 Dizinlere bakmak . . . . . . . . . 3.5 Ozyineli listeler ve inode listeleri 3.6 inodelaranlamak, blm 1 . . . ou 3.7 inodelaranlamak, blm 2 . . . ou 3.8 inodelaranlamak, blm 3 . . . ou 3.9 mkdir . . . . . . . . . . . . . . . 3.10 mkdir -p . . . . . . . . . . . . . . 3.11 touch . . . . . . . . . . . . . . . . 3.12 echo ve ynlendirme . . . . . . . o 3.13 echo ve ynlendirme . . . . . . . o 3.14 cat ve cp . . . . . . . . . . . . . . 3.15 mv . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

4 Linkler yaratmak ve dosyalarsilmek 4.1 Katbalantlar (hard links) . . . . . g 4.2 Katbalantlar, devam . . . . . . . g 4.3 Sembolik balantlar . . . . . . . . . g 4.4 Sembolik balantlar, devam . . . . g 4.5 Sembolik Balantlar, Ayrntlar . . . g 4.6 Sembolik Balantlar, Ayrntlar . . . g 4.7 Sembolik Balantlar, Ayrntlar . . . g 4.8 Sembolik Balantlar, Ayrntlar . . . g 4.9 Sembolik Balantlar, Ayrntlar . . . g 4.10 Sembolik Balantlar, Ayrntlar . . . g 4.11 rm . . . . . . . . . . . . . . . . . . . 4.12 rmdir . . . . . . . . . . . . . . . . . 4.13 rm ve dizinler . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

5 joker karakterler, Giri s 5.1 Joker karakterler (wildcards), Giri . . . . s 5.2 Joker karakterler, Giri, devam . . . . . . s 5.3 Uyumazlklar(non-matches) Anlamak . . s 5.4 UyumazlklarAnlamak, devam . . . . . s 5.5 Joker karakter szdizimi: * . . . . . . . . . o 5.6 Joker karakter szdizimi: ? . . . . . . . . . o 5.7 Joker karakter szdizimi: [] . . . . . . . . o 5.8 Joker karakter szdizimi: [!] . . . . . . . . o 5.9 Joker karakter ile ilgili uyarlar . . . . . . 5.10 Joker karakter ile ilgili uyarlar, devam . 5.11 Tek Trnak ile Cift Trnan Kyaslanmas g 6 D zenli Ifadeler u 6.1 Dzenli ifade nedir? . . . . . . . . . . u 6.2 Glob kyaslamas . . . . . . . . . . . . 6.3 Basit bir dizi paras . . . . . . . . . . c 6.4 Basit karakter dizisi parasnanlamak c 6.5 Metakarakterler . . . . . . . . . . . . . 6.6 [] Kullanm . . . . . . . . . . . . . . . 6.7 [] Kullanm . . . . . . . . . . . . . . 6.8 Farkllaan szdizimi . . . . . . . . . . s o 6.9 * metakarakteri . . . . . . . . . . . 6.10 Satr Bave Satr Sonu . . . . . . . . . s 6.11 Tam Satr Dzenli Ifadeler . . . . . . . u

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

11 11 11 11 11 11 12 12 12 12 13 13 13 13 13 13 13 14 14 14 14 15 15 15 15 15 16 16 16 17 17 17 18 18 18 18 18 18 19 19 19 20 20 20 20 20 21 21 21 21 22 22 22 22 23 23 ii

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

7 FHS ve dosyalarbulmak 7.1 Dosya Sistemi Hiyerari Standard . . . . s 7.2 Iki Bamsz D.S.H.S Kategorisi: . . . . . g 7.3 /usr dizinindeki ikincil hiyerari . . . . . . s 7.4 Dosyalarbulmak . . . . . . . . . . . . . . 7.5 PATH . . . . . . . . . . . . . . . . . . . . 7.6 PATHi dzenlemek . . . . . . . . . . . . u 7.7 which hakknda her ey . . . . . . . . . s 7.8 nd . . . . . . . . . . . . . . . . . . . . . 7.9 nd ve joker karakterler . . . . . . . . . . 7.10 nd ile kuk byk harf ayrmyapmadan uc u u 7.11 nd ve dzenli ifadeler . . . . . . . . . . . u 7.12 nd ve trler . . . . . . . . . . . . . . . . u 7.13 nd ve mtimelar . . . . . . . . . . . . . . 7.14 -daystart seenei . . . . . . . . . . . . . . c g 7.15 -size seenei . . . . . . . . . . . . . . . . c g 7.16 Bulunan dosyalarn ilenmesi . . . . . . . s 7.17 locate . . . . . . . . . . . . . . . . . . . . 7.18 updatedb kullanm . . . . . . . . . . . . . 7.19 slocate . . . . . . . . . . . . . . . . . . . . 8 S re (process) Kontrol u c u 8.1 xeyesbalatmak . . . . . . . . . . . . s 8.2 Sreci durdurmak . . . . . . . . . . . u 8.3 fg ve bg . . . . . . . . . . . . . . . . . 8.4 & Kullanm . . . . . . . . . . . . . 8.5 Birden ok sayda arkaplan sreci . . . c u 8.6 Sinyallere giri . . . . . . . . . . . . . s 8.7 SIGTERM ve SIGINT . . . . . . . . . 8.8 Byk lm . . . . . . . . . . . . . . . u u ou 8.9 nohup . . . . . . . . . . . . . . . . . . 8.10 ps komutu ile sreleri listelemek . . . u c 8.11 Hem ormanhem de aalargrebilmek g c o

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . aramak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

8.12 8.13 8.14 8.15

u ve l ps seenekleri c top kullanm . . . . . nice . . . . . . . . . . . renice . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

23 23 24 24 24 25 25 25 26 26 26 26 26 26 26 27 27 27 27 27 28 28 28 28 28 29 29 29 29 30 30 30 30 31 31 31 31 31 32 32 32 32 32 33 33 33 33 34 34 34 35 35 35 35 36 36 iii

9 Yazileme s 9.1 Daha uzun bir boru hatt . . . . . . 9.2 Metin ileme kasrgasbalyor! . . . . s s 9.3 echo . . . . . . . . . . . . . . . . . . 9.4 cat, sort ve uniq . . . . . . . . . . . 9.5 wc, head, ve tail . . . . . . . . . . . 9.6 tac, expand ve unexpand . . . . . . . 9.7 cut, nl ve pr . . . . . . . . . . . . . . 9.8 tr, sed ve awk . . . . . . . . . . . . . 9.9 od, split, ve fmt . . . . . . . . . . . . 9.10 Paste, join, ve tee . . . . . . . . . . . 9.11 Ynlendirme (redirection) Kasrgas o 9.12 >> Kullanm . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

10 Sistem ve a dk mantasyonu g o u 10.1 Linux sistem dkman tipleri . . . . . . . o u 10.2 Klavuz sayfalar . . . . . . . . . . . . . . 10.3 Klavuz sayfalar, devam . . . . . . . . . 10.4 Klavuz sayfa blmleri . . . . . . . . . . ou 10.5 Coklu klavuz sayfalar . . . . . . . . . . . 10.6 Doru klavuz sayfaybulmak . . . . . . . g 10.7 apropos ile ilgili herey . . . . . . . . . . . s 10.8 Klavuz Yolu (MANPATH) . . . . . . . . 10.9 GNU bilgisi . . . . . . . . . . . . . . . . . 10.10Linux Dkmantasyon Projesi . . . . . . . o u 10.11LDPye genel bak . . . . . . . . . . . . . s 10.12Mail Listeleri . . . . . . . . . . . . . . . . 10.13Haber gruplar . . . . . . . . . . . . . . . 10.14Satcrmalar ve uunc-parti web siteleri c u 10.15Linux danmanlar . . . . . . . . . . . . . s 10.16Yazlm ve donanm salayclar . . . . . g 10.17Gelitiricilerin kaynaklar . . . . . . . . . s 11 Linux izin modeli 11.1 Bir kullanc, bir grup . . . . . . . . . . 11.2 ls -l incelemesi . . . . . . . . . . . . . 11.3 Ben kimim? . . . . . . . . . . . . . . . . 11.4 Hangi gruplarn uyesiyim? . . . . . . . . 11.5 Kullancve Grup HaklarnDeitirmek . gs 11.6 Sahipliin Ozyineli Olarak Deitirilmesi g gs 11.7 chmod Komutuna Giri . . . . . . . . . s 11.8 kullanc/grup/dierleri Parack Yaps g c 11.9 Izinleri Sfrlamak . . . . . . . . . . . . . 11.10Saysal Kalplar . . . . . . . . . . . . . . 11.11Saysal izin ifadelerinde szdizim yaps . o 11.12umask . . . . . . . . . . . . . . . . . . . 11.13suid ve sgidye giri . . . . . . . . . . . . s 11.14suid . . . . . . . . . . . . . . . . . . . . 11.15suid/sgid uyarlar . . . . . . . . . . . . 11.16suid ve sgidnin deitirilmesi . . . . . . gs 11.17Izinler ve dizinler . . . . . . . . . . . . . 11.18Dizinler ve sgid . . . . . . . . . . . . . . 11.19Dizinler ve silme ilemi . . . . . . . . . . s 11.20Ozel ilk basamak . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

12 vi Editr o u 12.1 Via balang . . . . . . . . . . . s c 12.2 Dosya ama, kaydetme ve kma c c 12.3 Vida yazma . . . . . . . . . . . . 12.4 Silme ve kopyalama . . . . . . . . 12.5 Arama ve eletirme . . . . . . . s s 12.6 Dier dosyalarn metne eklenmesi g 12.7 Kabuk komutlarnn altrlmas c s

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

36 36 37 37 37 38 38 38 38 38 39 39 39 39 40 40 40 40 41 41 41 41 41 42 42 43 43 43 44 44 44 44 45 45 45 45 46 46 46 46 46 47 48 48 48 49 49 49 50 50 51 51 52 52 52

13 Linux hesap ynetimi o 13.1 /etc/passwd dosyas . . . . . . . . 13.2 /etc/passwd hakknda ipular . . c 13.3 /etc/shadow dosyas . . . . . . . . 13.4 /etc/group dosyas . . . . . . . . . 13.5 Gruplara ilikin notlar . . . . . . . s 13.6 Elle kullancve grup yaratma . . . 13.7 /etc/passwd dosyasndzenlemek . u 13.8 /etc/shadow dosyasndzenlemek . u 13.9 Parola belirleme . . . . . . . . . . 13.10/etc/group dosyasndzenlemek . u 13.11Home dizin yaratma . . . . . . . . 13.12Hesap ynetim aralar . . . . . . . o c

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

14 Kullancortamnayarlama 14.1 fortune programna giri . . . . . . . s 14.2 logini anlamak . . . . . . . . . . . . 14.3 Interaktiiin test edilmesi . . . . . . g 14.4 /etc/prole ve /etc/skel . . . . . . . . 14.5 export . . . . . . . . . . . . . . . . . . 14.6 Deikenlerin ihra iin iaretlenmesi . gs c c s 14.7 Export ve set -x . . . . . . . . . . . . 14.8 set ile deikenlerin ayarlanmas . . gs 14.9 Unset ve FOO= fark . . . . . . . 14.10Komutlarn almalarnetkilemek iin c s c 14.11env kullanm . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . ihra c . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ilemi s . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

15 Midnight Commander (MC) 15.1 Dizin panelleri arasnda gezinme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.2 Fare destei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . g 15.3 FTP ilemleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s 16 Linux Dosya Sistemi 16.1 Blok Aygtlar . . . . . . . . . . . . . . . 16.2 Tm Diskler ve Blmler . . . . . . . . u ou 16.3 fdisk Kullanm . . . . . . . . . . . . . . 16.4 fdisk Kullanm, Devam . . . . . . . . . 16.5 Fdisk ve Otesi . . . . . . . . . . . . . . . 16.6 Dosya Sistemlerini Yaratmak . . . . . . 16.7 Dosya sistemlerini mount etmek . . . . . 16.8 Takas blm oluturmak ve kullanmak ou u s 16.9 Mount edilmi dosya sistemlerini grmek s o 16.10Mount Seenekleri . . . . . . . . . . . . c 16.11fstab, Giri . . . . . . . . . . . . . . . . s 16.12Ornek bir fstab Dosyas . . . . . . . . . 16.13Ornek bir fstab, Devam . . . . . . . . . 16.14Dosya sistemlerini Unmount Etmek . . . 16.15fsckya Giri . . . . . . . . . . . . . . . . s 16.16fsck ile Ilgili Problemler . . . . . . . . . 16.17ext2 Dosya Sistemi . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

iv

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

16.18ext3 Dosya Sistemi . . . 16.19ReiserFS Dosya Sistemi 16.20XFS Dosya Sistemi . . . 16.21JFS Dosya Sistemi . . . 16.22VFAT Dosya Sistemi . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

52 53 54 54 54 54 54 54 55 55 55 55 56 56 56 56 57 57 57 57 58 58 58 58 58 59 59 59 59 60 60 60 60 60 60 61 61 61 61 62 62 62 62 62 63 63 63 63 64 64 64 64 65 65 65

17 Sistemi Balatmak s 17.1 MBR . . . . . . . . . . . . . . . . . . . . . . . 17.2 Cekirdek Al Ilemi . . . . . . . . . . . . . c s s 17.3 /sbin/init Program . . . . . . . . . . . . . . 17.4 LILOyu Inceleyelim . . . . . . . . . . . . . . 17.5 LILO Kullanm . . . . . . . . . . . . . . . . . 17.6 LILO Hakknda Onemli Not . . . . . . . . . . 17.7 GRUBInceleyelim . . . . . . . . . . . . . . . 17.8 GRUB Kullanm . . . . . . . . . . . . . . . . 17.9 dmesg . . . . . . . . . . . . . . . . . . . . . . 17.10/var/log/messages . . . . . . . . . . . . . . . 17.11Tek-kullancModu . . . . . . . . . . . . . . . 17.12Tek-kullanc(Single-user) Modunu Kullanmak 17.13Calma Seviyelerini Deitirmek . . . . . . . s gs 17.14Sistemi Dzgn Kapatmak . . . . . . . . . . u u 17.15Sistemi Aniden Kapatmak . . . . . . . . . . . 17.16OntanmlCalma Seviyesi . . . . . . . . . . . s 18 Calma Seviyeleri s 18.1 Tek-kullancModu . . . 18.2 Calma Seviyeleri . . . s 18.3 elinit Komutu . . . . . . 18.4 Calma Seviyesi Etiketi s 18.5 now ve halt . . . . . 18.6 init Kongrasyonu . . u

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

19 Dosya Sistemi Kotalar 19.1 Kotalara Giri . . . . . . . . . . . . s 19.2 Cekirdek Destei . . . . . . . . . . g 19.3 Dosya Sistemi Destei . . . . . . . g 19.4 Kotalarn Kongrasyonu . . . . . u 19.5 Kotalarn Kongrasyonu, Devam u 19.6 quota Komutu . . . . . . . . . . . 19.7 KotalarGrntlemek . . . . . . . ou u 19.8 edquota . . . . . . . . . . . . . . . 19.9 edquota, Devam . . . . . . . . . . 19.10edquotayAnlamak . . . . . . . . . 19.11Deiiklikler Yapmak . . . . . . . . gs 19.12KotalarKopyalamak . . . . . . . . 19.13Grup Kstlamalar . . . . . . . . . 19.14repquota Komutu . . . . . . . . . . 19.15repquota Seenekleri . . . . . . . . c 19.16KotalarGrntlemek . . . . . . . ou u 19.17Mhleti Belirlemek . . . . . . . . . u 19.18KotalarAlta Kontrol Etmek . . c s 20 Sistem Loglar 20.1 syslogdye Giri . . . . . . . . . . . s 20.2 LoglarOkumak . . . . . . . . . . . 20.3 LoglarKuyruktan Takip Etmek . . 20.4 Log Dosyalarngrep ile Kullanmak 20.5 Log Dosyalarnn Ozeti . . . . . . . 20.6 syslog.conf . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

20.7 syslog.conf, Devam . . . . . . . . . 20.8 Yeniden Ykleme ve Ek Bilgiler . . u 20.9 Gvenlik Notu . . . . . . . . . . . u 20.10logrotate . . . . . . . . . . . . . . . 20.11Ileri Balk: klogd . . . . . . . . . . s 20.12Ileri Balk: Alternatif Loglayclar s

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

65 65 66 66 66 66

vi

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

1
1.1

Linux, Knoppix ve bu eitim hakknda g


Neden Linux ?

Bu eitime geldiinize gre hepinizin kafasnda u aa be yukar olumu bir Linux kri vardr. Hatta g g o c s g s s s muhtemelen bazlarnz Linux kurmutur bile. Fakat kurmu olanlarnzn bile kafasnda Neden Linux ? s s sorusu vardr. Gerekten Neden Linux ? Bu soruya cevap vermeden nce bir miktar Linuxu yzeysel bile olsa c o u tanmak gerekmektedir. Linux 1992 ylnda Linus Torvalds tarafndan balatlan bir projedir. Temel olarak 1970lerden beri s sregelen Unix iletim sisteminin evlerde yaygn olan i386 (PC) tabanl makinalarda almasn heu s c s deemitir. Bu balangcn devamnda proje birok kii tarafndan desteklenmi ve u anda binlerce s s c s s s yazlmcnn bir ekilde ilgilendii dev bir proje halini almtr. s g s Linux diye bildiimiz datmlarn hepsi, Linux kerneli (ekirdei) ve onun etrafndaki GNU yazlmg g c g lardan oluan bir Unix sistemidir aslnda. O zaman asl sorumuz neden Unix olacaktr ? s Unix temelde Windows ve DOS kullananlarmzn komut satr diye bildii ortamdan ve X-Windows g sisteminden oluur. Bu ikisinin de gemii hem DOStan hem de Windowstan ok daha eskilere dayanr. s c s c Unixin 1970lerden beri temel ald en nemli zellik ok grevli (multi-task) ve ok kullancl (multi g o o c o c user) olmasdr. Btnleik bir iletim sistemi olan Unix, bu iki zelliini hem komut satr ortamnda hem uu s s o g de GUI ortam olan X-Windowsda korur. Dahas X-Windowsda yapabileceiniz hemen hereyi komut g s satrndan (konsoldan) gerekletirebilirsiniz. c s Az nce bahsettiimiz gibi Unixin temel zellii ok grevli ve ok kullancl olmasdr. Bu sebeple o g o g c o c Unixde ok ciddi bir kullanc kstlamas vardr. Kullanclar, ancak izinleri olan harddisk alannda, c izinleri olan komutlar, kullanmalarna izin verilen hafza miktarnda ve hatta CPU gc ile yaparlar. Bir u u kullancnn bir programnn kmesi bir baka kullancy ve makinann genel iletimini engellemez. co s s Otuz yldr gelitirilen bu zellikler Unixi dier iletim sistemlerinden ayrmakta ve dnyann en cok s o g s u tercih edilen sunucu platformu yapmaktadr. s Ite bu noktada Unixle tankl biraz daha ilerlemi bazlar iyi de kullanmas kesinlikle daha zor, s g s bir ok ii konsoldan yapyorsunuz, Windows gibi GUIden hereyi halletmek varken, 2006 senesinde ben c s s niye konsolu kullanaym diyebilir. Burada bir eye aklk getirmek lazm. Konsol, dinazorluktan, ya da eski kafallktan hala kullanlan s c bir ey deildir. Konsol kullanlmaktadr, zira bir sistem yneticisinin ilemleri en hzl ve en kolay yoldan s g o s yapmasnn yolu konsoldur. Konsoldan bir iki satr ile hallettiiniz bir emri GUIden yapmak genelde ok g c daha uzun zamannz alr. Belki daha da nemlisi, konsol ne yapmas gerektiini bilenler iindir, uraya o g c s buraya tklayaym da nasl olsa hallederim bu ii diyerek sistemi kurcalayanlar iin deil. s c g Bir baka nemli nokta da Unixin gcn biraraya gelmi binlerce kuk programdan alyor olmasdr. s o u u u s uc Bu kurs sresince size bu programlar ihtiyacmz dorultusunda nasl birbiri ile ilintileyeceimizi, nasl u g g istediimizi gibi sonular alacamz gstereceiz. g c g o g Ksa bir ornek ls komutu olabilir. DOS ortamndaki dir komutunun karl olan ls komutu size s g basite bir dizinin ieriini gsterir. Diyelim ki bu dizin uzun ve ieriini sayfa sayfa grmek istiyoruz. Bu c c g o c g o noktada herhangi bir text dosyasn bize sayfa sayfa gsteren more komutu ile ls komutunu birletiririz. En o s basitinden ls -al more dediinizde ls komutunun kts takip edebileceiniz gibi sayfa sayfa karnza g c g s gelir. Mesela ls komutu bir dizindeki dosyalar gsterirken, ls wc -l komutu ls komutunun ktsn o c wc (wordcount) komutuna gnderek o dizinde ka dosya olduunu gsterir. Gryorsunuz iki alakasz o c g o ou komutla ls komutuna yeni fonksiyonlar kazandrdk. Dahas bir dizinde ka dosya olduunu bilgisayara c g saydrdk. Kolaylkla bir baka komutu da bu sisteme ekleyip, her dosyay bizim iin teker teker yazcya s c yollamasn salayabilirdik veya baka bir ey. Birka kelimelik bu tr komutlarla yapabileceiniz eylerin g s s c u g s ne kadar derine gidebildiini grseniz aarsnz. Dahas bir kabuk ortam gibi bir sahte-programlama dili g o s s ile birletirildiinde bu komutlar gerekten uygulama dzeyinde ilerin altndan kalkabilirler. s g c u s Linux kullanmay renmenizin sebeplerinden biri ite budur. Gerektii gibi bilgisayarnz kontrol og s g edebilmeniz, ona istediiniz ilemleri yaptrabilmeniz. Kendinizi ona deil onu kendinize uydurabilmeniz. g s g

1.2

Knoppix Linux

Bu kurslar boyunca Knoppix adnda bir datm kullanacaz. CDden boot eden bir datm olan Knoppix g g g iin bilgisayarnzda harddiskiniz olmas bile gerekli deil, zira 96MB ve ust RAMnz varsa Knoppix c g u harddiskinizi kullanmaz bile. Dahas Knoppix ile yaptnz bir yanllkla harddiskinizdeki bilgilere zarar g s c u verme ihtimaliniz ok duktr. Iletim sistemini ise bozamazsnz zaten, unk o CD Romda yazlamaz c us u s bir halde duruyordur.

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

Ote yandan yaklak 2GB yazlm ykl olan Knoppix cdsi hemen hemen btn ihtiyalarnza ces u u uu c vap verebilecek zelliklere sahiptir. Burada yaptmz ileri, eve gittiinizde kolayca deneyebilir, Linux o g s g kurulumu yapmadan (ileride onu da yapacaz) Linux kullanabilirsiniz. g Bilgisayarnzdaki donanmlar tanmas, Usb-diskinizden, ethernet kartnza kadar onlar tanyp kullanabilmesi Knoppixin en nemli yanlarndan biri. Dahas daha altan dili Trke olarak seebillir ve o c s u c c kullanabilirsiniz. Ethernet, kablomodem, DSL ve seri modem ile Internete kabilen Knoppix datm c g sadece renme amal deil, kullanm asndan da esizdir. Belki tek amaz/problem, ulkemizde ok og c g c s c c sayda bulunan winmodem tabir edilen PCI modemlerle uyumsuz olmasdr. Yukarda saydmz dier g g yntemlerle ve external modemlerle Internete kmakta ve ilemlerinizi yapmakta bir sorun yaamazsnz. o c s s Btn bu sebeplerle biz de Knoppix datmn kullanacaz eitim boyunca. uu g g g Gelelim eitimin ieriine. g c g

1.3

Bu eitim neleri ieriyor? g c

Linux Temellerine hogeldiniz. Bu kurda sizlere bash (Linuxdaki standart kabuk -shell-)i tantracak, s s ls, cp, mv gibi standart Linux komutlarnn tm potansiyelini nasl kullanabileceinizi gsterecek, Liu g o nuxun izin ve sahiplik modellerini ve daha birok kavram anlatacaz. c g Bu kurun sonunda, Linux temelleri konusunda salam bir zemin elde etmi olacak ve hatta baz temel g s Linux sistem ynetim grevlerini renmeye hazr halde olacaksnz. Btn bu serinin sonunda ise bir o o og uu Linux sistem yneticisi olmak iin gerek duyabileceiniz btn bilgilere sahip olacaksnz. o c g uu

2
2.1

bashe giri s
Kabuk

Eer daha nce bir Linux sistemi kullandysanz sisteme girdiinizde aadakine benzer bir komut satr g o g s g ile karlaacanz bilirsiniz: s s g
$

Bu komut satr ok farkl grnebilir. Sisteminizin uzerinde allan makina (hostname) bilgisini, c ou c s iinde bulunduunuz dizini veya her iki bilgiyi birden yanstyor olabilir. Ancak nasl grnrse grnsn c g ou u ou u kesin olan bir ey vardr: Bunu grntleyen programa kabuk (shell) denir ve ok byk ihtimalle s ou u c u u sisteminizde sizi karlayan bash kabuudur. s g

2.2

bash mi kullanyorsunuz?

bash kullanp kullanmadnz u ekilde kontrol edebilirsiniz: g s s


$ echo $SHELL /bin/bash

Eer ustteki ifade bir hata verirse veya yukardaki rnee benzemeyen bir sonu verdiyse, bashten g o g c farkl bir kabuk kullanyor olabilirsiniz. Bu durumda bile bu eitimin byk bir blm hala geerli g u u ou u c olacaktr, fakat basha gei yapmanz bu eitim srecinde sizin iin nemli bir avantaj olacaktr. (chsh cs g u c o komutunu kullanarak kabuu deitirmek iin gerekli bilgi iin eitim serimizin 2. Blmne bakn.) g gs c c g ou u

2.3

bash hakknda

Bourne-again shell ifadesi iin bir tr ksaltma olan Bash, pek ok Linux sistemde ntanml kabuk olac u c o rak karnza kar. Kabuun grevi verdiiniz komutlara uyarak Linux sisteminizle etkileime gemenizi s c g o g s c salamaktr. Komut vermeyi bitirince kabua exit ya da logout komutu ile kendini sonlandrmasn syleg g o yebilirsiniz, hemen ardndan karnza login ekran gelir. Bu arada, kabuk ile alrken Control-D tu s c s s kombinasyonuna basarak da bash kabuunu sonlandrabilirsiniz. g

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

2.4

cd kullanm

Sizin de farkna varm olabileceiniz gibi bash komut satr dnyann en heyecan verici eyi saylmaz. s g u s Isterseniz imdi de biraz dosya sistemi iinde gezinmek iin bash kullanalm. Komut satrnda iken s c c aadaki komutu verin ($ karakterini yazmadan): s g
$ cd /

Bu komut ile bash kabuuna / iinde almak istediimizi sylemi olduk. Bu ayn zamanda kk g c c s g o s o (root) dizin olarak da bilinir; dosya sistemindeki tm dizinler bir aac olutururlar ve / bu aacn en u g s g tepesinde ya da bu aacn kk kabul edilir. g o u cd komutu o anda almakta olduunuz dizini belirler. cd komutunun bir ad da halihazrda allan c s g c s dizin (current working directory) dir.

2.5
$ pwd /

Yollar

bash kabuunun halihazrda alt dizini grmek iin yazlabilecek komut: g c s g o c

Yukardaki rnekte, cd komutuna cevap olarak gelen / elemanna yol (path) denir ve cd komutuna o gitmek istediimiz yeri syler. Burada, / eleman mutlak yol (absolute path) olarak kullanlm. Gidilecek g o s olan dizinin, dosya sistemi aacnda, kkten itibaren ifade ediliine mutlak yol denir. g o s

2.6

Mutlak Yollar

Birka mutlak yol rnei: c o g


/dev /usr /usr/bin /usr/local/bin

Grdunz gibi btn mutlak yol ifadelerinin ortak noktas / ile balamalardr. Ornein /usr/local/bin o ug u uu s g yolunu yazarak, cd komutuna nce / dizinine gitmesini, oradan usr dizinine, daha sonra da usr dizininin o altnda local ve onunda altnda bin dizinine gitmesi syleniyor. Mutlak yol ifadeleri, her zaman / den o balayarak kullanlr. s

2.7

Greli/Bal yollar o g

Dier yol tr greli yoldur. Bash, cd ve dier komutlar bu tr yollar daima iinde bulunduunuz dizine g uu o g u c g gre yorumlar. Greli yollar kesinlikle / ile balamaz. Yani eer /usr dizini iinde isek: o o s g c
$ cd /usr

/usr/local/bin dizinine gitmek iin: c


$ cd local/bin $ pwd /usr/local/bin

yazabiliriz.

2.8

.. kullanm

Greli yollarn iinde bir ya da daha ok .. dizini bulunabilir. .. dizini zel bir dizindir ve bulunduunuz o c c o g dizinin ustndeki dizini gsterir. Yukardaki rnekten devam edecek olursak: u o o
$ pwd /usr/local/bin $ cd .. $ pwd /usr/local

Grdunz gibi imdi iinde bulunduumuz dizin /usr/local dizinidir. Bu ekilde iinde bulunduuo ug u s c g s c g muz dizine gre geriye doru gidebiliriz baka bir deyile yukar doru kabiliriz. o g s s g c 3

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

2.9

.. kullanm, devam

Ek olarak, iinde bulunduumuz dizinin de yer ald yani bir ust dizini temsil eden .. dizinini de c g g kullanabiliriz. Ornein: g
$ pwd /usr/local $ cd ../share $ pwd /usr/share

2.10

Greli/Bal Yol Ornekleri o g

Greli yollar biraz karmak grlebilir. Burada sonuta varlacak hedef dizinin grlmedii bir ka rnek o s ou c ou g co mevcuttur. Bu komutlar yazldktan sonra hangi dizin ierisine gidileceini tahmin etmeye alnz: c g c s
$ cd /bin $ cd ../usr/share/zoneinfo $ cd /usr/X11R6/bin $ cd ../lib/X11 $ cd /usr/bin $ cd ../bin/

Simdi bunlar bir de yazarak nereye gittiine baknz ve doru tahmin edip etmediinizi gzlemleyiniz. g g g o

2.11

. Kavram

cd konusunu bitirmeden nce birka kuk eyden daha bahsetmek gerekmektedir. Ilk olarak, . ile o c uc s temsil edilen ve halihazrda bulunduunuz dizin anlamna gelen zel bir sembol daha vardr. Bu dizin g o cd komutuyla birlikte kullanlmaz, genellikle bulunduunuz dizindeki baz programlar altrmak iin g c s c kullanlr:
$ ./program

Yukardaki rnekte halihazrda allan dizin (ardndan) program isimli (altrlabilir) dosya alo c s c s c s trlacaktr.

2.12
$ cd

cd ve ana dizin

Ana dizinimizi deitirmek isteseydik yle yazabilirdik: gs so

Parametresiz kullanmda cd, kullancy home dizininine gtrecektir. root kullanclar icin home dizini ou /root ve dier kullanclar iin ise /home/kullanc ad seklindedir. Peki ya acaba kendi home dizinimiz g c ierisinde bir dosya belirlemek istersek ne yapmak gerekir? Mesela bir dosya argmann program koc u mutuna parametre olarak gondermek isteyelim. Eer dosya kendi home dizinimiz ierisinde yer alyorsa, g c yazlabilecek komut aadaki ekilde dunlebilir: s g s us u
$ ./program /home/knoppix/dosyam.txt

Fakat yukardaki rmekte olduu gibi her zaman tam yolu yazmak ok verimli olmayabilir. Neyse ki o g c (tilda) karakteri yardmyla ayn ii daha kolay bir ekilde halletmek mmkndr. Syle ki: s s u u u o
$ ./program /~/dosyam.txt

2.13

Dier Kullanclarn Home Dizinleri g

Kabuk iin komutunun, kullancnn home dizini anlamna geldiini sylemitik. Bunun yannda, yine c g o s kullanlarak baka kullanclarn da home dizinlerine erimek mmkndr. Ornein, knoppixin home s s u u u g dizininde yer alan ogrencidosyasi.txt isimli dosyaya erimek istiyorsak aadaki komut yazlabilir: s s g
$ ./program ~knoppix/ogrencidosyasi.txt

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

3
3.1

Linux Komutlarnn Kullanm


ls tanm

Simdi ls komutuna hzlca gz atacaz. Muhtemelen ls komutunu nceden biliyorsunuz ve sadece onu o g o yazmann halihazrda bulunduunuz dizinin ieriini listeleyeceini biliyorsunuz: g c g g
$ cd /usr $ ls bin doc etc

games

include

info

lib

local

man

sbin

share

src

X11R6

-a seeneini belirterek bir dizindeki dosyalarn tmn, gizli dosyalar . ile balayanlar da dahil c g u u u s olmak uzere grebilirsiniz. Aadaki rnekte de grebileceiniz gibi, ls -a . ve .. zel dizin linklerini de o s g o o g o gsterir: o
$ ls -a . .. bin local man doc etc games include sbin share src X11R6 info lib

3.2

Uzun dizin listeleri

ls komut satrnda bir ya da birden fazla dosya ya da dizin belirtebilirsiniz. Eer bir dosya belirtirseniz, ls g sadece o dosyay gsterecektir. Eer bir dizin belirtirseniz, ls bu dizinin ieriini gsterecektir. -l seenei, o g c g o c g dosya haklarn, sahibi olan kii ve gruplar, deiiklie urad zaman ve boyut bilgilerini grmek s gs g g g o istediinizde iinize yarayacaktr. g s

3.3

Uzun dizin listeleri, devam

Aadaki rnekte -l seeneini /usr dizininin tam bir listesini almak iin kullanyoruz. s g o c g c
$ ls -l /usr toplam 706 drwxr-xr-x 2 drwxr-xr-x 4 drwxr-xr-x 3 drwxr-xr-x 2 drwxr-xr-x 63 lrwxrwxrwx 1 drwxr-xr-x 124 drwxrwsr-x 9 drwxr-xr-x 6 drwxr-xr-x 2 drwxr-xr-x 194 drwxrwsr-x 4 drwxr-xr-x 6

root root root root root root root root root root root knoppix root

root root root root root root root staff root root root knoppix root

303104 73728 2048 8192 32768 10 217088 2048 2048 53248 24576 2048 2048

2003-03-23 2003-03-23 2002-07-04 2003-03-23 2003-03-22 2002-08-08 2003-03-23 2001-05-12 2002-08-21 2003-03-22 2003-03-23 2003-03-23 2003-02-13

21:10 19:50 18:54 16:36 19:14 15:02 21:10 02:04 22:09 22:20 20:30 18:47 08:36

bin doc etc games include info -> share/info lib local man sbin share src X11R6

Ilk stun listedeki her eleman iin izinleri gsterir. Bu bilgiyi nasl yorumlamanz gerektiini birazdan u c o g aklayacaz. Bir sonraki kolon ise her bir dosya sistemi nesnesinin sahip olduu linkleri gsterir, daha c g g o o u u u sonra deinmek uzere bu zellii imdilik geeceiz. Uunc ve drdnc stunlar ise srasyla dosyann g o g s c g c u sahibini ve ait olduu grubu belirtir. Beinci stun ise dosya bykludr. Altnc stun son mdahale g s u u u ug u u u edilen tarih veya mtimedr. Son stunda ise nesnenin ismi vardr. Eer nesne bir sembolik link ise, u g > iareti ve devamnda sembolik linkin iaret ettii adresi grrsnz. s s g ou u u

3.4

Dizinlere bakmak

Bazen bir dizinin iine deil de kendisine bakmak istersiniz. Bu gibi durumlar iin -d seeneini kullanac g c c g bilirsiniz, bu sayede ls dizinlerin iine deil kendilerine bakar. c g
$ ls -dl /usr /usr/bin /usr/X11R6/bin ../share drwxr-xr-x 194 root root 24576 2003-03-23 20:30 ../share lrwxrwxrwx 1 root root 12 2003-03-23 21:05 /usr -> /KNOPPIX/usr drwxr-xr-x 2 root root 303104 2003-03-23 21:10 /usr/bin drwxr-xr-x 2 root root 20480 2003-03-22 18:36 /usr/X11R6/bin

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

3.5

Ozyineli listeler ve inode listeleri

Bir dizinin kendisine bakmak iin -d kullanabileceinizi grdnz ancak -R ile tam tersini de yapabilirsiniz c g o u u yani sadece bir dizinin iinde deil zincirleme olarak o dizinin iinde bulunan tm dizinlerin ve onlarn c g c u da iinde bulunan ve... Bu ekilde mevcut tm dizinlerin iine bakabilirsiniz! Bunun ktsn burada c s u c c gstermiyoruz unk byle bir komutun kts epey uzun olur ancak siz kendi sisteminizde hemen ls -R o c u o c ve ls -Rl komutlarnn deneyip sonucu grebilirsiniz. o Son olarak, -i seenei dosya sistemindeki nesnelerin inode numaralarn gstermek iin kullanlabilir: c g o c
$ ls -i 6603072 6603184 6603296 /usr bin 6603408 games doc 6603524 include etc 6603644 info 6603776 lib 6603888 local 6604004 man 6604116 sbin 6604230 share 6604346 src 6602956 X11R6

3.6

inodelar anlamak, bl m 1 ou

Bir dosya sistemindeki her nesneye zgn bir indeks numaras verilir, bu indekse de inode denir. Bu o u biraz nemsiz, ya da gereksiz detay gibi grnebilir ama bir ok dosya sistemi ilemini anlamann temeli o ou c s o ug u g us inode mantn anlamay gerektirir. Ornek olarak, her dizinde grdunz . .. balantlarn duneg lim. Gerekte .. dizininin ne olduunu tam olarak anlayabilmek iin /usr/localn inode numarasna bir c g c bakalm:
$ ls -id /usr/local 6603888 /usr/local

/usr/local dizininin inode numaras 6603888 imi, imdi de, /usr/local/bin/.. in inode numarasna s s bakalm:
$ ls -id /usr/local/bin/.. 6603888 /usr/local/bin/..

3.7

inodelar anlamak, bl m 2 ou

Grdunz gibi, /usr/local/bin/.. ile /usr/localn inode numaralar ayn! Aa kan bu bilgiden vao ug u cg c rabileceimiz nokta u: Eskiden, /usr/local dizinin kendisi olarak dunrdk. Ama imdi, kefettik ki g s us u u s s aslnda 6603888 inodeu dizinin kendisi, ayrca da bu inodea iaret eden iki tane de dizin tanm (linki) s var. Hem /usr/local, hem /usr/local/bin/.. de 6603888 inodeuna iaret ediyor. s

3.8

inodelar anlamak, bl m 3 ou

Aslnda ls -dl komutu ile 6603888 numaral inodea ka kere balant yapldn, baka bir deyile ayn c g g s s yeri gsteren ka farkl ismin dosya sisteminde mevcut olduunu grebiliriz: o c g o
$ ls -dl /usr/local drwxrwsr-x 9 root staff 2048 2001-05-12 02:04 /usr/local

Soldan ikinci stuna bakacak olursak grrz ki /usr/local (inode 6603888) dizinine 9 balant (link) u ouu g vardr. Benim dizinimde bu inodea bal olan birka yolu gstermem gerekirse: g c o
/usr/local /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/.. /usr/local/share/.. /usr/local/src/..

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

3.9

mkdir

Yeni dizinler yaratmak iin kullanlan mkdir komutuna hzl bir gz atalm. Aadaki rnek /tmp altnda c o s g o 3 yeni dizin yaratr, tic, tac ve toe.
$ cd /tmp $ mkdir tic tac toe

Varsaylan olarak, mkdir komutu ust dizinleri sizin iin yaratmaz; yaratlmas istenilen dizinin tm c u yolunda sondan bir nceki dizine kadar btn dizinlerin var olmas gereklidir. Bunun anlam /de/ne/me o uu dizinlerini yaratmak istiyorsanz, u ayr mkdir komutu altrmalsnz: c c s
$ mkdir de/ne/me mkdir: de/ne/me dizini oluturulamyor: Byle bir dosya ya da dizin yok s o $ mkdir de $ mkdir de/ne $ mkdir de/ne/me

3.10

mkdir -p

Ancak, mkdirin faydal opsiyonu -p ile mkdiri dizin yolunda var olmayan ust dizinleri yaratmasn salayabilirsiniz, aada grldii gibi: g s g ou g
$ mkdir -p de/ne/me2

mkdir komutu hakknda daha detayl bilgi almak iin man mkdir yazarak mkdirin yardm sayfasna c bavurabilirsiniz. Bu yntem burada bahsedilen hemen hemen her komut iin geerli olacaktr, (rnek s o c c o olarak man ls), sadece cd komutu bash kabuunun iinde geldii iin bunun dnda kalr. g c g c s

3.11

touch

Simdi kopyalama, yeniden adlandrma, dosya ve dizin tamak iin kullanlan cp ve mv komutlarna gz s c o atacaz. Buna balamadan nce /tmp de bir dosya oluturmak iin touch komutunu kullanacaz: g s o s c g
$ cd /tmp $ touch benikopyala

touch komutu varolan bir dosyann mtime deerini gnceller (ls -l ktsndaki 6. stunu hatrlayn). g u c u touch komutuna parametre olarak verilen dosya mevcut deilse bo bir yeni dosya yaratlacaktr. Yug s kardaki komutun sonucunda sfr boyutlu bir /tmp/benikopyala oluturmu oluyorsunuz. s s

3.12

echo ve ynlendirme o

Simdi artk dosya varolduuna gre bu dosyaya biraz veri ekleyelim. Bunu echo komutu ile yapabiliriz, bu g o komut kendisine geilen argmanlar alp bunu standart ktya basar. Once echo komutunun kendisine c u c bir gz atalm: o
$ echo "ilk dosya" ilk dosya

3.13

echo ve ynlendirme o

Ve imdi ayn echo komutunu bu sefer kt ynlendirme teknii ile kullanalm: s c o g


$ echo "ilkdosya" > benikopyala

Yukarda grdunz byktr iareti kabua echonun ktsn benikopyala isimli bir dosyaya ynleno ug u u u u s g c o dirmesini syler. Bu dosya eer mevcut deilse yaratlr, yok eer mevcut ise uzerine yazlr. ls -l komut ile o g g g benikopyala dosyasnn 9 byte byklunde olduunu grebiliriz unk ilkdosya szcklerini, boluk u u ug g o c u o u s karakterini ve yenisatr karakterini barndrr:
$ ls -l benikopyala -rw-r--r-1 knoppix knoppix 9 2003-03-25 16:33 benikopyala

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

3.14

cat ve cp

Terminalde dosyann ieriini grntlemek iin cat komutunu kullann: c g ou u c


$ cat benikopyala ilkdosya

Simdi cp komutunun en basit eklini kullanarak benikopyala dosyasnn benikopyaladi isimli bir kop s yasn karabiliriz: c
$ cp benikopyala benikopyaladi

Detayl olarak incelersek grrz ki bu ikisi gerekten de birbirinden ayr dosyalardr, inode numaralar ouu c farkldr:
$ ls -i benikopyala benikopyaladi 8919 benikopyaladi 8901 benikopyala

3.15

mv

Simdi benikopyaladi dosyasn benitasidi olarak isimlendirmek iin mv komutunu kullanalm. Bu sefer c inode numaras ayn kalmakla birlikte bu inode numarasna sahip olan dosya ismi deimi olacaktr. gs s
$ mv benikopyaladi benitasidi $ ls -i benitasidi 8919 benitasidi

Tanan (move) bir dosyann inode numaras, sz konusu dosya kaynak dosya ile ayn dosya sistes o minde bulunduu srece ayn kalr. Bu eitimin 3. blmnde dosya sistemlerini daha detayl olarak g u g ou u inceleyeceiz. g

4
4.1

Linkler yaratmak ve dosyalar silmek


Kat balantlar (hard links) g

Daha nce dizin girileri ve inodelar arasndaki ilikiden bahsederken balant terimini kullanmtk. o s s g s Aslnda Linux altnda iki tip balant eidi vardr. Daha nce tarttmz balantlar kat balantlard. g c s o s g g g Sistem uzerindeki herhangi bir inode herhangi bir miktarda kat balantya sahip olabilir, ve tm kat g u balantlar ortadan kalkana kadar da sistem uzerinde var olmaya devam edecektir. Yeni kat balantlar g g ln komutu kullanlarak yaratlabilir:
$ $ $ $ cd /tmp touch ilklink ln ilklink ikincilink ls -i ilklink ikincilink 8940 ilklink 8940 ikincilink

4.2

Kat balantlar, devam g

Grebildiiniz gibi, kat balantlar bir dosyay ilikilendirmek iin inode seviyesinde almaktadr. Linux o g g s c c s sistemlerde, kat balantlarn baz kstlamalar vardr. Bir kstlama, sadece dosyalara kat balantlar g g yapmaya izin verir, dizinlere vermez. . ve .. sistem tarafndan yaratlm dizinlere ilikilenmi kat s s s balantlar olmasna ramen bu dorudur. root kullancs bile olsanz, kendinize ait dizinlere ilikilenmi g g g s s yeni kat balantlar yaratamazsnz. Kat balantlarn ikinci kstlamas da dosya sistemleri arasnda gei g g cs yaplamamasdr. Bunun anlam, / ve /usr dizinleri farkl dosya sistemlerinda bulunuyorsa /usr/bin/bash dizininin iinde /bin/bash dizininin iindeki bir dosyaya kat balant yapamazsnz. c c g

4.3

Sembolik balantlar g

Pratikte, sembolik balantlar kat balantlardan ok daha sk kullanlrlar. Sembolik balantlar zel g g c g o bir tip dosya olup baka bir dosyaya dorudan inode uzerinden deilde ismi ile ilikilenirler. Sembolik s g g s balantlar bir dosyann silinmesine engel olmazlar, hedef dosya ortadan kaybolursa, sembolik balant g g kullanlamaz hale gelir ya da krlr. 8

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

4.4

Sembolik balantlar, devam g

Bir sembolik balant ln komutuna -s parametresi verilerek yaratlabilir. g


$ ln -s ikincilink ucunculink $ ls -l ilklink ikincilink ucunculink -rw-r--r-2 knoppix knoppix 0 2003-03-25 16:39 ilklink -rw-r--r-2 knoppix knoppix 0 2003-03-25 16:39 ikincilink lrwxrwxrwx 1 knoppix knoppix 10 2003-03-25 16:40 ucunculink -> ikincilink

ls -l ktsnda sembolik balantlar normal dosyalardan u ekilde ayrdedilebilir. Birincisi, bu ktdaki c g c s c ilk stun dosyann bir sembolik balant olduunu belirtmek iin l karakterini farkedebilirsiniz. Ikincisi, u g g c sembolik balantnn boyutu ilikilendii hedef dosyasnn karakter saysn verir (yukardaki rnekte g s g o c u u ikincilink). Uuncs, son kolon hedef dosyann ismini grntler. ou u

4.5

Sembolik Balantlar, Ayrntlar g

Sembolik balantlar genelde kat balantlardan daha esnektir. Dizinler de dahil olmak uzere herhangi bir g g c s eit dosya sistemi nesnesi iin sembolik balant yaratmanz mmkndr. Ayrca, sembolik balantlarn c g u u u g yrtlmesi yollara bal olduu iin, mkemmel bir ekilde baka bir dosya sistemi uzerinde yer alan uuu g g c u s s nesneye de sembolik balant oluturabilirsiniz. Fakat bu durum da sembolik balantnn anlalmasn g s g s biraz zorlatrabilir. s

4.6

Sembolik Balantlar, Ayrntlar g

/tmp isimli dizin altnda, /usr/local/bin isimli dizine sembolik balant yaratmak istediimiz bir durum g g dunnz. Bu durumda yazmamz gereken: us u u
$ ln -s /usr/local/bin bin1 $ ls -l bin1 lrwxrwxrwx 1 knoppix knoppix 14 2003-03-25 16:42 bin1 -> /usr/local/bin

Ya da alternatif olarak:
$ ln -s ../usr/local/bin bin2 $ ls -l bin2 lrwxrwxrwx 1 knoppix knoppix 16 2003-03-25 16:43 bin2 -> ../usr/local/bin

4.7

Sembolik Balantlar, Ayrntlar g

Grdunz gibi, her iki sembolik balant da ayn dizini gstermektedir. Fakat, eer ikinci sembolik o ug u g o g balant baka bir dizin ierisine tanrsa, bu balant bal yol yznden krlm (broken) olacaktr. g s c s g g u u s
$ ls -l bin2 lrwxrwxrwx 1 knoppix knoppix 16 2003-03-25 16:43 bin2 -> ../usr/local/bin $ mkdir yenidir $ mv bin2 yenidir $ cd yenidir $ cd bin2 bash: cd: bin2: Byle bir dosya ya da dizin yok o

/tmp/usr/local/bin dizini mevcut olmad iin, artk bin2 balants ile dizin deitiremeyiz. Bir g c g gs baka deyile bin2 balants artk krlmtr. s s g s

4.8

Sembolik Balantlar, Ayrntlar g

Bu yzden bazen bal yol bilgisi ile sembolik link yaratmaktan kanmak iyi bir kir olabilir. Fakat u g c sembolik linklerin kullanl olduu bir ok durum da vardr. /usr/bin altnda yer alan bir program iin s g c c baka bir isim yaratmak istediiniz bir rnei ele alalm: s g o g
$ ls -l /home/knoppix/.Xdefaults -rw-r--r-1 knoppix knoppix 893 2000-02-28 03:26 /home/knoppix/.Xdefaults

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

4.9

Sembolik Balantlar, Ayrntlar g

root kullancs olarak, .Xdefaults iin xd adnda baka bir isim yaratmak istiyor olabilirsiniz. Bu c s o rnekte, komut satrlarnda yer alan # iaretinden de aka anlald gibi root haklarna sahibiz. s c c s g
# cd /home/knoppix # ln -s /home/knoppix/.Xdefaults xd

4.10

Sembolik Balantlar, Ayrntlar g

Bu zm alacak olsa da, her iki dosyay da /usr/local/bin altna tamaya karar verdiimiz anda bu co u c s s g durum problem yaratacaktr:
$ mv /home/knoppix/.Xdefaults /home/knoppix/xd /usr/local/bin

Cunk sembolik balantmz iin tam yol kullanm durumdayz, xd halen /home/knoppix/.Xdefaults u g c s dosyasn gstermektedir ki bu balant artk mevcut deildir, yani krlmtr. Bal yol ve tam yollarn her o g g s g ikisinin de ok faydal olduu durumlar vardr. Sonuta kendi uygulamanza en uygun olan tipi semeniz c g c c gerekmektedir. Genellikle bal yol ya da tam yol dzgn bir ekilde alr. Bu durumda aadaki rnek g u u s c s s g o c s alacaktr:
$ cd /home/knoppix $ ln -s .Xdefaults xd $ ls -l xd lrwxrwxrwx 1 knoppix

knoppix

10 2003-04-11 14:54 xd -> .Xdefaults

4.11

rm

Artk cp, mv ve ln komutlarnn nasl kullanldn biliyoruz, imdi nesneleri dosya sistemi uzerinde g s kaldrmay renmenin zaman gelmitir. Normalde bu ilem rm komutuyla yaplmaktadr. Dosyay kalog s s drmak iin basite bunlar komut satrnda belirlemek gerekmektedir. c c
$ cd /tmp $ touch dosya1 dosya2 $ ls -l dosya $ ls -l dosya1 dosya2 -rw-r--r-1 knoppix knoppix 0 2003-03-25 16:53 dosya1 -rw-r--r-1 knoppix knoppix 0 2003-03-25 16:53 dosya2 $ rm dosya2 $ ls -l dosya1dosya2 ls: dosya2: Byle bir dosya ya da dizin yok o -rw-r--r-1 knoppix knoppix 0 2003-03-25 16:53 dosya1

4.12

rmdir

Dizinleri kaldrmak iin iki seeneiniz var. Dizinin altndaki btn nesneleri yok edebilir ve sonra rmdir c c g uu kullanarak dizinin kendisini kaldrabilirsiniz:
$ $ $ $ mkdir benimdir touch benimdir/dosya1 rm benimdir/dosya1 rmdir benimdir

4.13

rm ve dizinler

rm komutunun zyineli seeneklerini kullanp rme belirttiiniz dizini ierdii nesnelerle birlikte kaldro c g c g masn syleyebilirsiniz: o
$ rm -rf benimdir

Genel olarak bir dizin aacn kaldrmak iin tercih edilen rm -rf dir. rm -f kullanrken dikkatli olun, g c c u unk bunun gc iyi veya kt niyetli olarak kullanlabilir. u u ou

10

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

5
5.1

joker karakterler, Giri s


Joker karakterler (wildcards), Giri s

Gnlk Linux kullanmnda ok defa bir operasyonu tek seferde birden fazla nesne iin altrmak isteu u c c c s yebileceiniz (rm gibi) durumlarla karlaabilirsiniz. Byle durumlarda, aadaki gibi btn dosyalar g s s o s g uu komut satrna yazmak ok gereksizdir: c
$ rm dosya1 dosya2 dosya3 dosya4 dosya5 dosya6 dosya7 dosya8

5.2

Joker karakterler, Giri, devam s

Bu problemi zmek iin, Linuxun kendi iinde yer alan joker karakter desteinin getirdii avantajdan co c c g g yararlanabilirsiniz. Ayn zamanda (tarihsel nedenlerden dolay) globbing olarak da adlandrlan bu destek, joker karakter modelini kullanarak tek seferde birden fazla dosyay belirlemenize olanak salar. g Bash ve dier Linux komutlar joker karakter modeline bakarak ve dosya sistemi uzerinde bu modele uyan g dosyalar bularak komutu yorumlar. Bu durumda diyelim ki bulunduumuz dizinde dosya1, dosya2, ... , g dosya8 isimli dosyalar varsa bu dosyalar aadaki ekilde yok edebilirsiniz: s g s
$ rm dosya[1-8]

Ya da daha basite ismi dosya ile balayan btn dosyalar yok etmek istediinizde aadaki gibi c s uu g s g yazabilirsiniz:
$ rm dosya*

5.3

Uyumazlklar (non-matches) Anlamak s

Veya /etc iinde yer alan ve ismi g ile balayan tm nesneleri listelemek istediinizde aadaki gibi c s u g s g yazabilirsiniz:
$ ls -d /etc/g* /etc/gateways /etc/gconf /etc/gdm /etc/ggi /etc/gimp /etc/gnome /etc/gnome-vfs-2.0 /etc/gnome-vfs-mime-magic /etc/gpm-root.conf /etc/grep-dctrl.rc /etc/groff /etc/group /etc/group.org /etc/gs.Fontmap /etc/gshadow /etc/gtansrc /etc/gtk /etc/gtk-2.0 /etc/guid-resolv.conf

Peki ya acaba herhangi dosya sistemi nesnesi ile uyumayan bir yol belirlendiinde ne olacaktr? s g Aadaki rnekte, /usr/bin altnda yer alan, asdf ile balayan ve jkl ile biten btn dosyalar listelemek s g o s uu istiyoruz:
$ ls -d /usr/bin/asdf*jkl ls: /usr/bin/asdf*jkl: Byle bir dosya ya da dizin yok o

5.4

Uyumazlklar Anlamak, devam s

Bu durumu yle aklayabiliriz. Normalde mevcut dosya sisteminde yer alan bir ya da daha fazla nesne ile so c uyuan bir model belirlediimizde kabuk, yazdmz modeli her uyuan nesne bolukla ayrlacak ekilde s g g s s s listeler. Fakat model herhangi bir nesne ya da nesnelerle uyumuyorsa, kabuk ifadeyi olduu gibi brakr. s g Ve sonuta ls, /usr/bin/asdf*jkl dosyasn bulamaz ve hata verir. Buradaki kural udur: Kullanlan model, c s sadece modelin belirledii nesne ya da nesneler sistemdeki nesnelerle uyuuyorsa almaktadr. g s c

5.5

Joker karakter szdizimi: * o

Artk joker karakterlerin nasl altn anladmza gre, biraz da joker karakterlerin szdizimine gz c s g g o o o atalm. joker karakterler arasnda birka zel karakter kullanabilirsiniz; ite bunlardan bir tanesi: co s
*

11

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

Yldz (asterix) * iareti sfr veya daha fazla karakterle eleecektir. Bunun anlam * olan yere herhangi s s s bir ey gelebileceidir. Ornekler: s g /etc/g* belirtimi /etcnin altnda g ile balayan tm nesnelerle eleir. s u s s /tmp/my*1 beliritim /tmpnin altnda my ile balayan ve 1 ile biten tm nesnelerle eleir. s u s s

5.6
?

Joker karakter szdizimi: ? o

Soru iareti ? herhangi bir tek karakterle eleir. Ornekler: s s s dosyam? belirtimi dosyam ile balayp bir tane daha karakter ieren nesnelerle eleir. s c s s /tmp/notlar?txt belirtimi hem /tmp/notlar.txt, hem /tmp/notlar txt dosyasyla eleir, eer mevs s g cutlarsa.

5.7
[]

Joker karakter szdizimi: [] o

Bu joker karakterler ? ile benzerdir, ancak daha fazla kesinlikte ayrm yapma ansn verir. Bu joker s karakterleri kullanmak iin, [] arasnda elemek istediiniz tm karakterleri koymalsnz. Sonuta elde c s g u c edilen eleme bu karakterlerin herhangi birinin tek elemesini verecektir. - (eksi) iaretini bir aralk s s s s s vermek iin kullanabilirsiniz, hatta birden fazla aral birlikte kullanabilirsiniz. Ornekler: c g dosyam[12] belirtimi dosyam1 ve dosyam2 ile eleecektir. Wildcard, allan dizindeki en bu doss s c s yalardan en az bir tanesi mevcut olacak ekilde geniletilecektir. s s [Cc]hange[Ll]og belirtimi Changelog, ChangeLog, changeLog, ve changelog ile eleecektir. Grds s o u g u unz gibi, keli parantez joker karakterlerini kullanmak kuk / byk harf elemelerindeki os uc u u s s kombinasyonlar yakalamak iin faydal olacaktr. c ls /etc/[0-9]* komutu /etc nin altnda rakamla balayan tm dosyalar listeler. s u ls /tmp/[A-Za-z]* komutu /tmp nin altnda kuk ya da byk hare balayan tm dosyalar uc u u s u listeler.

5.8
[!]

Joker karakter szdizimi: [!] o

[!] yaps [] yapsna benzemektedir. Ancak bu sefer [] parantezde yer alan karakterle eletirme yerine, s s parantezler ierisinde bulunmayan karakterler ile eletirme yaplmaktadr. c s s Ornekler:
rm dosyam[!9]

bu komut ismi dosyam9 olan dosya dndaki tm dosyalar yok eder. s u

5.9

Joker karakter ile ilgili uyarlar

Burada joker karakter kullanrken dikkat edilmesi gereken baz noktalara deineceiz. Bash wildcard ile g g ilgili karakterler (?, [, ], *) yazld zaman buna gre zel bir ilem yapacandan, bir komuta parag o o s g metre geirirken bu karakterler kullanlacaksa dikkat edilmelidir. Ornein, [fo]* ifadesini ieren bir dosya c g c yaratmak istediimizde aadaki yazl olan komut yapmak istediimiz eyi gerekletirmeyecektir: g s g g s c s
$echo [fo]* > /tmp/yenidosyam.txt

Eer [fo]* modeli, dizin ierisinde herhangi bir dosya ile eleiyorsa, bu durumda /tmp/yenidosyam.txt g c s s dosyas ierisinde grmeyi beklediiniz [fo]* ifadesi yerine bu eleen dosyalar greceksiniz. O halde c o g s s o co u zm nedir? Bunun iin gerekli zmlerden birisi karakterlerinizi tek trnak ierisinde yazmanzdr. Bu c co u c yaklam, kabua bu karakterler uzerinde hi bir joker karakter ilemi yapmamas gerektiini anlatr. s g c s g
$echo [fo]* > /tmp/yenidosyam.txt

12

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

5.10

Joker karakter ile ilgili uyarlar, devam

Bu yaklam kullandnzda yeni dosyanz beklediiniz gibi [fo]* karakter dizimini ierecektir. Alternatif s g g c olarak, ters bl (backslash) kullanarak karakterlerinizin bash iin, joker karakter yerine normal karakter ou c anlamna gelmesini salayabilirsiniz. (escape characters) g
$ echo \[fo\]\* > /tmp/yenidosyam.txt

Yukarda anlatlan her iki yaklamda ayn ekilde alacaktr. Ters bl (backslash) karakterinin bu s s c s ou ekilde kullanmndan da bahsettiimize gre, eer karakter olarak backslash (\) kullanmak istiyorsanz s g o g bunu tek trnak iinde ya da \\eklinde yazabileceinizi syleyebiliriz. c s g o

5.11

Tek Trnak ile Cift Trnan Kyaslanmas g

Cift trnan da tek trnakla ayn ekilde alacan bilmelisiniz, fakat unu da belirtmek gerekir ki cift g s c s g s trnak tek trnaa benzer bir ekilde alsa da kabuunu baz snrl geniletme ilemlerine izin verir. Bu g s c s g s s yzden, yukarda da gsterilen joker karakter olarak da anlaml ifadeleri komut olarak kullanacaksanz u o en iyi seim tek trnak olacaktr. Eer joker karakter geniletmesine ilikin daha ayrntl bilgi edinmek c g s s istiyorsanz komut satrnda man 7 glob yaznz. Trnak kullanmna ilikin daha fazla bilgi edinmek s istiyorsanz komut satrnda man 8 glob yazarak QUOTING balkl blm okuyunuz. s ou u

6
6.1

D zenli Ifadeler u
D zenli ifade nedir? u

Dzenli ifadeler (regex veya regexp de denir) yaz kalplarn ifade etmek iin kullanlan zel bir u c o biimdir. Linux sistemlerinde, arama ve deitirme ilerinde olduu kadar yaz kalplarnn bulunmasnda c gs s g da dzenli ifadeler kullanlr. u

6.2

Glob kyaslamas

Dzenli ifadelere bakarken dzenli ifade szdiziminin (sentaksnn) nceki eitimdeki (bu blmn sou u o o g ou u nundaki Kaynaklar balnn altndaki Blm 1e bakn) dosya ismi alm (globbing) kurallarna bens g ou c zediini dunebilirsiniz. Ancak sakn bunu sizi aldatmasna izin vermeyin; bu iki kavram ancak ve ancak g us c ok yzeysel olarak birbirlerini andrrlar. Dzenli ifadeler de dosya ismi alm kurallar da her ne kadar u u c balangta benzer gibi grnseler de aslnda ok farkl kurallara sahip ve farkl durumlarda kullanlan s c ou c iki sistemdir.

6.3

Basit bir dizi paras c

Uyarmz yaptktan sonra dzenli ifadelerin en basit trne bakalm, basit dizi paras. Bunun iin u uu c c grep komutunu kullanacaz. Bu komut bir dosyann ieriini tarayp belli bir dzenli ifade kalbna uyan g c g u ksmlar bulur. grep, dzenli ifade kalbna uyan her satr basar ve buna uymayan satrlar da grmezden u o gelir:
$ grep bash /etc/passwd root:x:0:0:root:/home/root:/bin/bash knoppix:x:1000:1000:Knoppix User:/home/knoppix:/bin/bash

Yukarda, grep programna ilk parametre olarak bir dzenli ifade geildiini ve ikinci parametre olarak u c g bir dosya ismi verildiini grebilirsiniz. Grep /etc/passwd dosyasndaki her satr okur bash olarak verilmi g o s basit karakter dizi parasnn o satrda mevcut olup olmadna, baka bir deyile o satrn kendisine verilen c g s s dzenli ifade kalb ile eleip elemediine bakar. Eer bir eleme sz konusu olursa ilgili satr basar, u s s s s g g s s o olmazsa bir sonraki satra geer c

6.4

Basit karakter dizisi parasn anlamak c

Genellikle eer belli bir karakter dizisini aryorsanz bunu herhangi bir zel karakter kullanmadan g o olduu gibi yazabilirsiniz. Ancak ve ancak aradnz karakter dizisinin iinde +, ., *, [, ], ve karakterleg g c rinden biri ya da birka var ise o zaman bunlar trnak iine almanz ve bunlardan nce tersbl karakteri c c o ou basmanz gerekir. Birka basit rnee daha bakalm: c o g 13

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

/tmp (/tmp karakter dizisini arar) [kutu] ([kutu] karakter dizisini arar) komik (*komik* karakter dizisini arar) ld o (ld.so karakter dizisini arar) s

6.5

Metakarakterler

Dzenli ifadeler ile alrken yukardaki rneklerde incelediimiz aramalardan ok daha karmak aramau c s o g c s lar metakarakterleri kullanarak gerekletirebilirsiniz. Bu metakarakterlerden biri . (nokta) karakteridir c s ve bu herhangi bir karakter anlamna gelir:
$ grep dev.hda /etc/fstab /dev/hda1 swap swap defaults 0 0 /dev/hda2 /mnt/hda2 auto noauto,user,exec 0 0

Bu rnekte grdunz gibi programn /etc/fstab dosyasna bakarak urettii ktda dev.hda gibi bir o o ug u g c karakter dizisi mevcut deildir. Ancak grep programnn arad dev.hda karakter dizisi deil dev.hda g g g kalb idi. Hatrlarsanz . herhangi bir karakter anlamna geliyordu. Grdunz gibi . metakarakteri o ug u ilevsel olarak komut satrndaki dosya ismi alm mekanizmasndaki ? metakarakterine benzemektedir. s c

6.6

[] Kullanm

Eer . semboln kullanarak yaptmzdan daha zel bir eleme isteseydik [ ve ] sembollerini (keli g u u g o s s os parantez karakterleri) kullanarak belli bir karakter kmesini gsterebilirdik: u o
$ grep dev.hda[10] /etc/fstab /dev/hda1 swap swap defaults 0 0

Grdunz gibi bu szdizim kural da tpk dosya ismi almlarndaki [] zelliine benzemektedir. o ug u o c o g s Ite dzenli ifadelerle ilgili dikkat etmeniz gereken noktalardan biri daha: Szdizimi olarak benzer grnen u o ou ama birebir ayn olmayan baz kurallar dzenli ifadeleri renmeyi gletirebilir. u og uc s

6.7

[] Kullanm

c Keli parantezlerin anlamn [ karakterinden hemen sonra bir karakteri koyarak tersine evirebilirsiniz. os Bu durumda keli parantezlerin iindeki karakterler deil de onlarn dnda geriye kalan dier karakteros c g s g kullanrken dosya alm lerden herhangi biri yakalanr. Bu arada ltfen dikkat edin: dzenli ifadelerde [] u u c kurallarnda [!] kullanyorduk:
$ grep dev.hda[^10] /etc/fstab /dev/hda2 /mnt/hda2 auto noauto,user,exec 0 0

6.8

Farkllaan szdizimi s o

Keli parantezler iindeki szdiziminin farkl olduuna dikkatleri ekmekte fayda var. Mesela keli paos c o g c os rantez iinde bir . karakteri yazarsanz bu gerekten de nokta karakterini yakalamak istediinizi gsterir c c g o tpk yukardaki rneklerde 1 ve 2 karakterlerinin elemesinde olduu gibi. Keli parantezlerin dnda o s s g os s ise . nokta karakteri herhangi bir karakterin yerine geer ve bana c s karakteri gelmedii srece zel olarak nokta karakterinin yakalanmasn zorunlu klmaz. Bundan faydag u o lanarak /etc/fstab dosyasnda dev.hda ieren tm satrlar u komut ile bulabiliriz: c u s
$ grep dev[.]hda /etc/fstab

Alternatif olarak yle de yazabilirdik: so


$ grep "dev\.hda" /etc/fstab

Her iki dzenli ifade de /etc/fstab dosyasndaki herhangi bir satr ile elemeyecektir. u s s

14

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

6.9

* metakarakteri

Baz metakarakterler kendi balarna herhangi bir ey ile elemezler ancak bunun yerine kendilerinden s s s s o nce gelen karakterin anlamn deitirirler. Bunlardan biri de * (yldz) karakteridir ve kendinden nce gs o gelen karakterin sfr ya da daha ok tekrar eden eklini yakalar. Birka rnee bakacak olursak: c s co g ab*c (abbbbcyi yakalar ama abqcyi yakalamaz) ab*c (abcyi yakalar ama abbqbbcyi yakalamaz) ab*c (acyi yakalar ama cbayi yakalamaz) b[cq]*e (bqeyi yakalar ama ebyi yakalamaz) b[cq]*e (bccqqeyi yakalar ama bcccyi yakalamaz) b[cq]*e (bqqcceyi yakalar ama cqeyi yakalamaz) b[cq]*e (bbbeeeyi yakalar) .* (herhangi bir karakter dizisini yakalar) foo.* (foo ile balayan herhangi bir karakter dizisini yakalar) s ac satr ab*c regex ile eleir unk * metakarakteri kendisinden nce gelen ifadenin sfr defa tekrar s s c u o etmesine (yani hi bulunmamasna) izin verir. Sunu da eklemek gerekir ki * metakarakteri temel olarak c * glob karakterinden daha farkl bir ekilde yorumlanmaktadr. s

6.10

Satr Ba ve Satr Sonu s

Burada ayrntl olarak inceleyeceimiz ve srasyla satr ba ve satr sonunu ifade eden son metakarakterg s ler ve $ metakarakterleridir. Dzenli ifadenizin en banda metakarakterini kullanarak modelinizin satr u s banda bulunmasn zorlayabilirsiniz. Aadaki rnekte # karakteri ile balayan herhangi bir satrla s s g o s eletirme yapmak iin # dzenli ifadesini kullanyoruz: s s c u
$ # # # grep ^# /etc/apt/sources.list See sources.list(5) for more information, especialy Remember that you can only use http, ftp or file URIs CDROMs are managed through the apt-cdrom tool.

6.11

Tam Satr D zenli Ifadeler u

g s g ve $ metakarakterleri tm satr ile eletirme yapmak iin birlikte kullanlabilir. Ornein, aadaki u s s c o rnekte yer alan dzenli ifade ierisinde herhangi bir sayda dier karakterlerin yer ald, # ile balayan u c g g s ve . karakteri ile sonlanan bir satrla eletirmeyi salayacaktr: s s g
$ grep ^#.*\.$ /etc/fstab # CDROMs are managed through the apt-cdrom tool.

Yukardaki rnekte, $ karakterinin kabuk tarafndan yorumlanmasn engellemek iin tm ifadeyi tek o c u trnak karakterleri arasnda yazdk. Tek trnak olmasayd, daha grep yorumlamadan $ karakteri dzenli u ifade ierisinden yok olacakt. c

7
7.1

FHS ve dosyalar bulmak


Dosya Sistemi Hiyerari Standard s

Dosya Sistemi Hiyerari Standard linux sistemi uzerindeki bir dizinin planlamasn belirleyen bir bels gedir. D.S.H.S, datm-bamsz yazlm gelitirmeyi daha basit hale getirmek iin ortak bir planlama g g s c salamak amacyla ortaya atlmtr. D.S.H.S aadaki dizinleri belirlemektedir. (Direk olarak D.S.H.S g s s g spesikasyonundan alnmtr): s / (kk -root- dizini) o

15

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

/boot (al ykleyiciye -boot loader- ait statik dosyalar) c s u /dev (aygt dosyalar) /etc (zerinde allan -host- makinaya ait sistem kongrasyonu) u c s u /lib (paylalan temel ktphaneler ve ekirdek modlleri) s uu c u /mnt (bir dosya sistemini geici olarak balamak iin balant noktas) c g c g /opt (Sonradan eklenebilen -add-on uygulama yazlm paketleri) /sbin (gerekli ikili/alabilir -binary- sistem dosyalar) c s /tmp (geici dosyalar) c /usr (ikincil hiyerari) s /var (deiken bilgiler) gs

7.2

Iki Bamsz D.S.H.S Kategorisi: g

D.S.H.S planlama belirlemesi iki bamsz dosya kategorisi olduu krini temel alr; paylalabilir g g s paylalamaz, ve deiken - statik. Paylalabilir bilgi ana makinalar (hosts) tarafndan paylalabilir s gs s s ancak paylalmayan bilgi verilen ana makinaya zgdr (kongrasyon dosyalar gibi). Deiken bilgi s o u u u gs dzenlenebilir ve deitirilebilirken statik bilgi deitirilemez (fakat bu kural sistem kurulumu ve bakm u gs gs iin geerli deildir.) c c g Aadaki tablo, bu kategoriler iine girebilecek dizin rnekleri ile bu 4 olas kombinasyonu zetlemeks g c o o tedir. Yine bu tablo da D.S.H.Sden alnmtr. s
+---------+-----------------+-------------+ | | shareable | unshareable | +---------+-----------------+-------------+ |static | /usr | /etc | | | /opt | /boot | +---------+-----------------+-------------+ |variable | /var/mail | /var/run | | | /var/spool/news | /var/lock | +---------+-----------------+-------------+

7.3

/usr dizinindeki ikincil hiyerari s

/usr altnda, root dosya sistemine ok benzeyen ikincil bir hiyerari greceksiniz. Makina akken /usr c s o c dizinin olmas gerek art olmadndan bu dizin bir a uzerinde paylalabilir (paylalabilir) ya da bir s g g s s CD-ROM iinden balanabilir (statik). Bir ok Linux kurulumunda /usr dizinin paylam kullanlmasa c g c s da root daki birincil hiyerari ile /usr deki ikincil hiyerari arasndaki fark gzetmenin faydasn alglamak s s o c o ok nemlidir. Burada D.S.H.Ssi ile ilgili sylenecekler bu kadardr. Dkmann kendisi olduka kolay anlalr o o u c s olduundan daha ayrntl bilgi iin kullanabilirsiniz. Eer dkman okursanz Linux D.S.H.Ssi hakknda g c g o u daha bir ok ey reneceinizin kesin olduunu syleyebiliriz. c s og g g o

7.4

Dosyalar bulmak

Linux sistemleri ilerinde yzlerce dosya barndrmaktadr. Her ne kadar bu dosyalarn yerlerini kaybetc u meyecek kadar usta olsanz bile, byk bir ihtimalle bir tanesini bulmak iin arasra yardma ihtiya duyau u c c caksnz. Linuxte dosyalar bulmak iin birka tane farkl ara yer almaktadr. Aadaki konu balklar c c c s g s bu aralar gstermekte ve iiniz iin gerekli olan doru arac bulmanza yardmc olmaktadr. c o s c g

16

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

7.5

PATH

Bir program komut satrnda altrdnzda, kabuk aslnda bir grup dizin arasnda yazdnz komutu c s g g aramaktadr. Ornein, ls yazdnzda, kabuk gerekte bu komutun /usr/bin altnda yer aldn bilemez. g g c g Onun yerine dizinlerin tutulduu ve birbirlerinden iki nokta ile ayrld PATH evre deikenine bavurur. g g c gs s PATHin iinde yazl olan deeri grmek iin aadaki gibi yazabiliriz: c g o c s g
$ echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin: /usr/local/sbin:/usr/local/bin:/usr/games:.

PATH deikeninin sahip olduu bu deere gre (sizdeki deikenin deeri farkl olabilir, kabuk yazlan gs g g o gs g ls komutu iin ncelikle /usr/local/bin daha sonra /usr/bin altnda arama yapacaktr. Byk bir ihtimalle c o u u ls /usr/bin altnda yer almaktadr, bu yzden kabuk burada komut arama ilemini bitirecektir. u s

7.6

PATHi d zenlemek u

Elemanlar atayarak kendi PATH deikeninizi deitirebilirsiniz: gs gs


$ PATH=$PATH:~/bin $ echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin: /usr/local/sbin:/usr/local/bin:/usr/games:.:/home/knoppix/bin

Ayrca, her ne kadar mevcut olan PATH deikenini kullanmak kadar kolay olmasa da PATH deikeni gs gs ierisinden baz elemanlar silmeniz de mmkndr. Bunun iin en iyi yol, olmasn istediiniz yeni PATH c u u u c g deerinin yazmaktr: g
$ PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:~/bin $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/knoppix/bin

7.7

which hakknda her ey s

Aradnz programn PATH ile verilen dizinlerden birinde olup olmadn which komutu ile bulabilirsiniz. g g Ornein, aadaki komut ile Linux sistemimizin saduyuya sahip olup olmadn sorgulayabiliriz: g s g g g
$ which sagduyu

Aadaki rnekte ise ls komutunun nerede bulunduunu grebiliriz: s g o g o


$ which ls /usr/bin/ls "which -a"

Son olarak -a seeneine dikkat etmelisiniz. Bu seenek kullanldnda which komutu PATH deikec g c g gs ninde tanml tm dizinlerde aradnz programn olup olmadn gsterir: u g g o
$ which -a ls /bin/ls whereis

Eer bir programn yerini renmek dnda onunla ilgili daha ok bilgiye erimek istiyorsanz whereis g og s c s komutunu denemelisiniz:
$ whereis ls ls: /bin /bin/ls /usr/share/man/man1/ls.1.gz

Buradan grrz ki ls program iki dizinde bulunmaktadr, /bin and /usr/bin. Buna ek olarak ouu /usr/share/man dizininde de ls ile ilgili bir man sayfas olduu bilgisini ediniriz. man ls yazdnzda g g karnza gelen sayfa yukarda belirtilen sayfadr. whereis ayn zamanda kaynak arama, alternatif arama s yollar tanmlama ve srad girdileri arama gibi zelliklere de sahiptir. Detayl bilgi iin ltfen whereis s o c u man sayfasn inceleyin. 17

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

7.8

nd

nd alet antanzdaki aralardan biridir. nd komutu ile artk sadece program dosyalar ile snrl dec c g ilsiniz, her trl dosyay ok eitli kriterlere gre arayabilirsiniz. Ornein /usr/share/doc dizini ve alt u u c c s o g dizinlerinde README dosyasn bulmak iin u komutu vermeniz yeterlidir: c s
$ find /usr/share/doc -name README /usr/share/doc/aalib1/README /usr/share/doc/adduser/examples/README /usr/share/doc/afio/README

7.9

nd ve joker karakterler

-name parametresine deer geerken dosya almndaki (glob) joker karakterleri kullanabilirsiniz ancak g c c bu durumda onlar ift trnak iine almanz veya nlerine ters bl (backslash) koymanz gerekir (ki bash c c o ou tarafndan almayp nd komutuna olduklar gibi gnderilebilsinler). Ornein uzantya sahip README c o g dosyalarn bulmak iin u komutu verebiliriz: c s
$ find /usr/share/doc -name README\* /usr/share/doc/LANG/fr/xtel/README_IMINITEL.txt.gz /usr/share/doc/a2ps/README.gz /usr/share/doc/aalib1/README

7.10

nd ile k uk b y k harf ayrm yapmadan aramak uc u u

Elbette arama yaparken byk kuk harf ayrm yapmak istemeyebilirsiniz: u u uc


$ find /usr/share/doc -name [Rr][Ee][Aa][Dd][Mm][Ee]*

Veya daha basit olarak:


$ find /usr/share/doc -iname readme\*

Grdunz gibi -iname seenei byk kuk harf ayrmn ortadan kaldrr. o ug u c g u u uc

7.11

nd ve d zenli ifadeler u

Eer dzenli ifadelere alksanz -regex seeneini kullanarak belli bir kalpla eleecek ekilde dosya g u s c g s s s isimlerini arayabilirsiniz. -iname seeneine benzer ekilde -iregex seenei ile de byk kuk harf ayrm c g s c g u u uc yaplmasn engelleyebilirsiniz.

7.12

nd ve t rler u

-type seenei ile belli tipte dosyalar uzerinden arama yapabilirsiniz. Bu seenee geebileceiniz argmanc g c g c g u lar unlardr: b (blok cihaz), c (karakter cihaz), d (dizin), p (isimlendirilmi boru), f (normal dosya), s s l (sembolik balant) ve s (soket). Ornein /usr/bin dizinindeki vim szcun ieren sembolik linkleri g g o ug u c aramak iin: c
$ find /usr/bin -name *vim* -type l /usr/bin/evim /usr/bin/gvim /usr/bin/gvimdiff /usr/bin/rgvim /usr/bin/rvim /usr/bin/vimdiff

7.13

nd ve mtimelar

-mtime seenei dosyalar son gncelleme zamanlarna gre aramanz salar. mtime seeneine verilen c g u o g c g deer 24-saatlik zaman periyodu formatndadr ve genellikle + (verilen zamandan sonra) veya - (verilen g zamandan nce) ile kullanlr. Ornein u senaryoya bir bakalm: o g s

18

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

$ ls -l ? -rw------- 1 root root -rw------- 1 root root -rw------- 1 root root -rw------- 1 root root $ date Mon Jan 7 18:14:52 EST

0 0 0 0

Jan Jan Jan Jan

7 6 5 4

18:00 18:00 18:00 18:00

a b c d

2002

Son 24 saat iinde oluturulmu dosyalar arayabilirsiniz: c s s


$ find . -name \? -mtime -1 ./a

Veya iinde bulunduunuz 24 saatten nce oluturulmu dosyalar arayabilirsiniz: c g o s s


$ find . -name \? -mtime +0 ./b ./c ./d

7.14

-daystart seenei c g

Eer ek olarak -daystart seeneini de kullanrsanz zaman periyodlar 24 saat ncesinden deil gnn g c g o g u u balama anndan balar. Ornein dn ve evvelki gn oluturulmu dosyalar listelemek iin: s s g u u s s c
$ find . -name \? -daystart -mtime +0 -mtime -3 ./b ./c $ ls -l b c -rw------- 1 root root 0 Jan 6 18:00 b -rw------- 1 root root 0 Jan 5 18:00 c

7.15

-size seenei c g

-size seenei dosyalar byklk kriterine gre aramanz salar. Aksi belirtilmedii srece -size seenec g u u u o g g u c g ine 512-bytelk bloklar cinsinden byklk verildii kabul edilir ancak bunun sonuna bir tak eklemek u u u g ileri kolaylatrabilir ve daha doal klabilir. Kullanabileceiniz taklar unlardr: b (512-bytelk blok), s s g g s c (byte), k (kilobyte), ve w (2-bytelk szck). Bunlara ek olarak + neki ile verilen byklkten daha o u o u u u byk dosyalar ve - neki ile de daha kuk dosyalar arayabilirsiniz. Ornein /usr/bin dizini iinde boyu u u o uc g c 50 bytetan kuk olan dosyalar bulmak isterseniz: uc
$ find /usr/bin -type f -size -50c /usr/bin/bison.yacc /usr/bin/kdvi /usr/bin/krdb /usr/bin/pydoc2.1 /usr/bin/pydoc2.2 /usr/bin/rgrep /usr/bin/texi2pdf

7.16

Bulunan dosyalarn ilenmesi s

Pekok deiik kritere gre arayp bulduunuz onca dosya ile ne yapacanz merak ediyor olmalsnz! nd c gs o g g komutu bulduu dosyalar uzerinde ilem yapma kabiliyetine de sahiptir ve bunun iin -exec seeneinden g s c c g faydalanr. Bu seenek argman olarak ; ile sonlandrlan ve altrlabilir bir komut alr ve her {} grc u c s o du yere de bulmu olduu dosya ismini koyarak ilgili komutu altrr. Bunun anlamann en kolay yolu ug s g c s u rnee bakmak: s o g
$ find /usr/bin -rwxr-xr-x 1 -rwxr-xr-x 1 -rwxr-xr-x 1 -rwxr-xr-x 1 -type f -size -50c -exec ls -l {} ; root root 29 2002-04-04 12:29 /usr/bin/bison.yacc root root 30 2001-12-01 07:14 /usr/bin/kdvi root root 27 2000-09-24 14:46 /usr/bin/krdb root root 45 2002-07-29 22:39 /usr/bin/pydoc2.1

19

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

-rwxr-xr-x -rwxr-xr-x -rwxr-xr-x

1 root 1 root 1 root

root root root

48 2002-07-29 23:19 /usr/bin/pydoc2.2 31 2001-11-28 17:36 /usr/bin/rgrep 36 2002-09-07 10:08 /usr/bin/texi2pdf

Grdunz gibi nd komutu bir hayli gl bir komuttur. UNIX ve Linuxun yllarca sren gelitio ug u uc u u s rilmesi boyunca bu komut da gelitirilmitir. nd komutunun daha pek ok faydal seenei vardr. Ilgili s s c c g man sayfasnda bunlar bulabilirsiniz.

7.17

locate

Simdiye dek which, whereis ve nd komutlarn ele aldk. nd alrken biraz vakit getiini farketmi c s c g s sinizdir unk uzerinde her dizine tek tek girip bakmak zorundadur. locate komutu ise bir veritabann c u kullanarak ileri biraz hzlandrabilir. Bu komut yol isminin herhangi bir ksm ile eleme yapabilir sadece s s s dosya ismine bakmak zorunda deildir. Ornein: g g
$ locate bin/ls /bin/ls /bin/lspci /sbin/lsmod /sbin/lspci /sbin/lspnp /usr/bin/lsattr /usr/bin/lsdev /usr/bin/lsof /usr/bin/lspgpot /usr/bin/lss16toppm /usr/sbin/lsof /usr/sbin/lsusb

7.18

updatedb kullanm

Pekok Linux sistemi periyodik olarak veritabann gncelleyen bir sre (process) altrr. Eer sistec u u c c s g miniz yukardaki komuta aadaki gibi bir hata ile cevap verirse o zaman bir veritaban oluturmak iin s g s c uptadedb komutunu altrmanz gerekir: c s
$ locate bin/ls locate: /var/spool/locate/locatedb: No such file or directory $ su Password: # updatedb

updatedb komutunun iini tamamlamas uzun bir sre alabilir. Eer grltc bir harddiskiniz varsa s u g uu u u tm dosya sistemi indekslenirken banz epey aryabilir. u s g

7.19

slocate

Pek ok Linux datmnda locate komutu yerine artk slocate komutu kullanlmaktadr. Genellikle locate c g isimli bir sembolik balant olduu iin hangisini kullanaym diye tereddt etmenize gerek yoktur. slocate g g c u secure locate yani gvenli locate anlamna gelmektedir. Bu komut kulland veritabannda dosya u g ve dizin izinlerini de depolar ve bylece normal kullanclar eriim izninine sahip olmadklar dizine bao s kamazlar. slocate komutunun kullanm ekli locate komutunda olduu gibidir ancak kt bilgisi komutu s g c c s altran kullancya gre deiebilir. o gs

8
8.1

S re (process) Kontrol u c u
xeyes balatmak s

Sre kontroln renmek iin nce bir sre balatalm: u c u u og c o u c s


$ xeyes -center red

xeyes penceresinin birden aldn ve krmz gzlerin fareyi takip ettiini greceksiniz. Bu arada bir c g o g o ey daha farkedeceksiniz: Komut satrna dnmediinizi. s o g 20

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

8.2

S reci durdurmak u

Komut satrna geri dnebilmek iin Control-C tu kombinasyonuna basmalsnz (genellikle Ctrl-C veya o c s s C eklinde gsterilir): o
^C $

bash komut satrna geri dndnz ancak xeyes penceresi de kayboldu. Aslnda ii yapan sre tamao u u s u c men sonlandrlm, ldrlm durumda. Control-C ile srei ldrmek yerine Control-Z ile durdurabis o u u us u c o u lirdik:
$ xeyes -center red ^Z [1]+ Stopped $

xeyes -center red

Simdi gene bash komut satrna dndnz ama bu sefer xeyes penceresi durmas gereken yerde duru o u u yor. Ancak fare ile oynarsanz greceksiniz ki gzler sizi takip etmiyor artk, donup kalm durumdalar. o o s Eer xeyes penceresi uzerine baka bir pencereyi srkleyip sonra ekerseniz greceksiniz gzler yeniden g s uu c o o c izilmiyor bile. Sre hibir ey yapmyor u anda yani Durmu (Stopped) halde. u c c s s s

8.3

fg ve bg

Sreci durdurulmu olmaktan karmak ve yeniden alr hale getirmek iin onu bash komutlarndan u s c c s c biri olan fg komutu n plana ekebiliriz: o c
$ fg xeyes -center red ^Z [1]+ Stopped $

xeyes -center red

Simdi de yine bir bash komutu olan bg ile sreci arkaplanda altralm: u c s
$ bg [1]+ xeyes -center red & $

Harika! xeyes sreci u anda arkaplanda alyor ve bizim de karmza kullanabileceimiz bir komut u s c s s g satr geldi.

8.4

& Kullanm

Eer xeyes dorudan arkaplanda altrmak isteseydik (Control-Z ve sonra da bg kullanmak yerine), g g c s xeyes komutunun sonuna & (ampersand) eklememiz yeterli olacakt:
xeyes -center blue & [2] 4386

8.5

Birden ok sayda arkaplan s reci c u

Simdi arkaplanda bir krmz ve bir de mavi xeyes srecimiz var. Bunlar bash komutlarndan biri olan u jobs komutu ile listeleyebiliriz:
$ jobs -l [1][2]+ 4205 Running 4386 Running xeyes -center red & xeyes -center blue &

21

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

Sol stundaki saylar bash kabuunun bu sreleri balatrken onlara atad sre numaralardr. Iki u g u c s g u c numaral sre (baka bir deyile job) yannda bir + (art) sembol vardr ve bu da srecin u anda u c s s u u s c s almaktan olan sre olduunu gsterir yani fg komutunu verirseniz nplanda almaya balayacak u c g o o c s s olan sre budur. Tabi eer isterseniz numarasnn vererek baka bir sreci de nplana ekebilirsiniz. fg 1 u c g s u o c komutu krmz xeyes srecini nplana ekecektir. Bir sonraki stun ise sre IDsini yani pid numarasn u o c u u c gsterir karmzdaki listede (bunun gelmesini de jobs komutuna verdiimiz -l seeneine borluyuz). Son o s g c g c olarak her iki sre (job) da Running yani alyor durumda ve bunlar balatan komut satrlarn da u c c s s en sada grebilirsiniz. g o

8.6

Sinyallere giri s

Sreleri ldrmek, durdumak ya da devam ettirmek iin, Linux iletim sistemi sinyal olarak bilinen u c o u c s o zel bir iletiim ekli kullanr. Bir srece belli bir sinyal yollayarak o sreci sonlandrabilir, durdurabilir, ya s s u u da baka eyler yapabilirsiniz. Aslnda Control-C, Control-Z, ya da fg, bg gibi komutlar kullandnzda s s g yaptnz tam da budur bash kabuunun belli bir srece belli bir sinyal gndermesini salamaktasnzdr. g g u o g Bu sinyaller kill komutuna sre numaras (pid) verilerek de gnderilebilir: u c o
$ kill -s SIGSTOP 4386 $ jobs -l [1]- 4205 Running [2]+ 4386 Durduruldu (sinyal)

xeyes -center red & xeyes -center blue

Grdunz gibi kill komutu isminin artrd ekilde illa ki bir sreci ldrmek zorunda deildir. o ug u c g s g s u o u g -s seenei kullanlarak kill komutunun bir srece herhangi bir sinyali gndermesi salanabilir. Linux c g u o g srelerine SIGINT, SIGSTOP ya da SIGCONT sinyallerinden biri gnderildiinde sras ile bunlar u c o g sonlandrr, durdurur ya da devam ettirir. Bir srece yollayabileceiniz baka sinyal trleri de vardr; u g s u bunlardan bazlar uygulamann zelliklerine gre yorumlanacaktr. Belli bir srecin hangi sinyale kar o o u s nasl tepki vereceini renmenin en gzel yolu ilgili sreci balatan komutun man sayfasna bakp oradaki g og u u s SIGNALS blmn okumaktr. ou u u

8.7

SIGTERM ve SIGINT

Eer bir sreci ldrmek (sonlandrmak) isterseniz pek ok seeneiniz vardr. Aksi belirtilmedii srece g u o u c c g g u kill komutu SIGTERM sinyalini gnderir ve bu Control-C ile yollanabilen SIGINT sinyalinden farkl o olmakla birlikte benzer sonu uretir: c
$ kill 4205 $ jobs -l [1]- 4205 Sonlandrld [2]+ 4386 Durduruldu (sinyal)

xeyes -center red & xeyes -center blue

8.8

B y k l m u u ou

Sreler hem SIGTERM hem de SIGINT sinyallerini dikkate almayp grmezden gelebilirler; bunu ya u c o bilerek ve isteyerek yaparlar ya da bir ekilde durmu veya taklmlardr. Bu gibi durumlarda bir balyoz s s s kullanmak gerekebilir ve devreye SIGKILL sinyali girer. Bir sre SIGKILL sinyalini grmezden gelemez: u c o
$ kill 4386 $ jobs -l [2]+ 4386 Durduruldu (sinyal) $ kill -s SIGKILL 4205 $ jobs -l [2]+ 4205 Sre durduruldu u c

xeyes -center blue

xeyes -center blue

8.9

nohup

Belli bir ii (sreci) balattnz terminal o iin kontrol terminali olarak adlandrlr. Baz kabuklar s u s g s o ntanml olarak (bash deil) siz logout komutu ile terminalden knca arkaplandaki ilere SIGHUP g c s sinyalini yollayp onlarn sonlanmasna yol aarlar. Eer siz terminalden logout komutu ile ktnzda c g c g srelerinizin bu ekilde sonlandrlmasn istemiyorsanz o zaman sreci balatrken nohup seeneini u c s u s c g kullanmanzda fayda vardr: 22

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

$ nohup make & $ exit

8.10

ps komutu ile s releri listelemek u c

Yukarda kullandmz jobs komutu iinde bulunduumuz mevcut bash oturumunda balatlan sreleri g c g s u c listeliyordu. Sisteminizdeki tm sreleri grmek iin kullanmanz gereken komut ise ps komutudur ve bu u u c o c komuta a ve x seeneklerini vermeniz gereklidir. c
$ ps ax PID TTY 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? STAT S SW SWN SW SW SW TIME 0:04 0:00 0:00 0:01 0:00 0:00 COMMAND init [keventd] [ksoftirqd_CPU0] [kswapd] [bdflush] [kupdated]

Bu komutun kts olan listenin ancak kuk bir ksmn yukar yazdk unk genellikle bu liste ok c uc c u c daha uzun olur. Bu liste size makinann o anda ne yaptnn bir fotorafn verir ancak gz atlacak pek g g o c ok veri vardr iinde. Eer ax seeneklerini kullanmadan ps komutunu altracak olsaydnz sadece size c g c c s ait ve belli bir terminalin kontrol altndaki sreleri grrdnz. ps x size tm sreleri gsterir, belli u u c ou u u u u c o bir terminal tarafndan kontrol edilmeyenler dahil. Eer ps a eklinde kullanm olsaydnz o zaman da g s s belli terminallere bal ve herkese ait sreleri grrdnz. g u c ou u u

8.11

Hem orman hem de aalar grebilmek g c o

Her sre ile ilgili farkl bilgileri de listeleyebilirsiniz. forest (orman) seenei sre hiyerarisini grmeu c c g u c s o nizi ve sisteminizdeki birok srecin arasndaki ilikiyi alglamanz salar. Bir sre baka bir sre c u s g u c s u c balattnda bu yeni srece ocuk (child) sre denir. forest seenei kullanlarak elde edilen bir ps s g u c u c c g c ktsnda ebeveyn sreler yani ocuk sreleri balatan sreler solda grnrken ocuk sreler de saa u c c u c s u c ou u c u c g doru dallanacak ekilde listelenirler. g s
$ ps x --forest PID TTY STAT 318 ? S 444 ? S 2932 ? S 495 ? S 493 ? S 462 ? S TIME 0:00 0:00 0:00 0:00 0:00 0:10 COMMAND /bin/sh /etc/X11/xinit/xinitrc \_ kwrapper ksmserver --restore kdeinit: kio_uiserver /usr/bin/kdesud kdeinit: kcookiejar kdeinit: kicker

8.12

u ve l ps seenekleri c

u ve l seenekleri a ve x seeneklerine eklenebilen seeneklerdir ve sreler hakknda daha ok bilgi c c c u c c almanz salarlar: g
$ ps au USER root root root root root knoppix knoppix PID %CPU %MEM 237 0.0 0.4 238 0.0 0.4 239 0.0 0.4 240 0.0 0.4 3606 0.0 0.5 5054 0.5 0.8 5195 0.0 0.5 VSZ 3196 3196 3196 3196 3128 3128 3508 RSS 1168 1168 1168 1168 1440 2096 1532 TTY tty1 tty2 tty3 tty4 ttyp1 ttyp0 ttyp0 STAT S S S S S S R START 10:21 10:21 10:21 10:21 11:10 11:30 11:32 TIME 0:00 0:00 0:00 0:00 0:00 0:00 0:00 COMMAND /bin/bash /bin/bash /bin/bash /bin/bash /bin/bash /bin/bash ps au

-login -login -login -login

8.13

top kullanm

Eer kendinizi srekli ps komutunu altrr ve neler olup bittiini anlamaya alr durumda bulursanz g u c s g c s ihtiyacnz olan esas komut top komutudur. top komutu srekli gncellenen bir sre listesi basmann u u u c yan sra zet bilgi vermeyi de ihmal etmez: o 23

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

$ top 11:34:16 up 1:13, 0 users, load average: 0.43, 0.21, 0.12 47 processes: 45 sleeping, 2 running, 0 zombie, 0 stopped CPU states: 3.0% user, 1.8% system, 0.0% nice, 95.2% idle Mem: 255680K total, 249136K used, 6544K free, 10624K buffers Swap: 393552K total, 43852K used, 349700K free, 37780K cached PID 309 5050 3849 5282 1 2 3 4 5 USER root knoppix knoppix knoppix root root root root root PRI 14 11 10 13 8 9 19 9 9 NI SIZE RSS SHARE STAT %CPU %MEM 0 204M 132M 6644 S 2.5 52.9 0 11316 10M 9356 R 0.7 4.2 0 38532 36M 13612 S 0.5 14.7 0 1016 1016 808 R 0.5 0.3 0 52 48 28 S 0.0 0.0 0 0 0 0 SW 0.0 0.0 19 0 0 0 SWN 0.0 0.0 0 0 0 0 SW 0.0 0.0 0 0 0 0 SW 0.0 0.0 TIME 2:23 0:01 0:45 0:00 0:04 0:00 0:00 0:01 0:00 COMMAND XFree86 kdeinit kword top init keventd ksoftirqd_CPU0 kswapd bdflush

8.14

nice

Her srecin bir ncelik derecesi vardr ve Linux buna gre srecin alma hzn ayarlar. Bir srecin u o o u c s u o nceliini bu srecin isminin bana nice yazp balatmak suretiyle ile ayarlayabilirsiniz: g u s s
$ nice -10 xmms /cdrom/Demos/Audio/opensource.ogg

Oncelik ayarna nice dendii iin buna yksek bir deer verdiiniz takdirde dier srelere nezag c u g g g u c ket sergilediinizi, onlara CPU iin ncelik tandnz hatrlamak zor olmayacaktr. Aksi belirtilmedii g c o g g srece, sreler 0 ncelikli olarak balarlar, yani yukarda oggnin 10 ile balatlmas demek, oggnin u u c o s s CPUya ne kadar ihtiyac olursa olsun ncelii dier srelere tanmas ve bylece onlarn normal hzda o g g u c o c s altrlmasna izin vermesi demektir. Srelerin nice derecesini ps ve top komutlarnn yukardaki u c c ktlarndaki NI stununda grebilirsiniz. u o

8.15

renice

Nice komutu, sadece altrdnz anda, bir komutun nceliini belirler. Eer almakta olan bir komuc s g o g g c s tun nceliini deitirmek isterseniz renice kullanmanz gerekir. o g gs
$ ps l 3849 F UID PID PPID PRI 000 1000 3849 456 10 $ renice 10 3849 3849: eski ncelik 0, yeni o $ ps l 3849 F UID PID PPID PRI 000 1000 3849 456 17 NI VSZ RSS WCHAN STAT TTY 0 59556 44208 select S ? o ncelik 10 NI VSZ RSS WCHAN STAT TTY 10 59556 44208 select SN ? TIME COMMAND 1:03 kword TIME COMMAND 1:02 kword

Yaz ileme s

Ynlendirme Bir komutun ktsn bir dosyaya ynlendirmek iin > operatrn kullanrz, yle ki: o c o c ou u so
$ echo "dosya" > kopyasi

Ckty ynlendirmeye ek olarak, olduka gl bir kabuk zellii olan pipe (boru)lar da kullanabiliriz. o c uc u o g Balantlar kullanarak bir komutun ktsn dierine girdi olarak vermemiz mmkn. Su rnee bir bakn g c g u u o g
$ echo "merhaba dunyali" | wc 1 2 16

karakteri soldaki komutun ktsnn sadaki komuta girdi olarak verilmesini salamaktadr. Yukarc g g daki rnekte echo komutu merhaba dunyali cumlesini sonunda bir satr sonu ile birlikte basar. Normalde o bu ktnn terminalde gzkmesi lazm fakat yaptmz balant onu wc komutuna ynlendirdi ve bylece c o u g g o o satr, kelime ve karakter (boluk ve satr sonu dahil) saylarn rendik. Bir boru rnei Ite bir baka s og o g s s o rnek: 24

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

$ ls -s | sort -n

Bu durumda, ls -s normalde mevcut dizinin listesini her dosyann boyu dosya isminden nce geo lecek ekilde terminal ekranna basacakken biz bu kty borudan geirip sort -nye ynlendirdiimiz iin s c c o g c karmza ktnn saysal olarak sralanm ekli gelmektedir. Ev (home) dizininizdeki byk dosyalar s c s s u u bir bakta tespit etmek iin gerekten gzel bir yntem! s c c u o Aadaki nekler biraz daha karktr ancak boru mekanizmas ile ne kadar gl ve becerikli ilemler s g o s uc u s gerekletirilebildiini gstermeleri bakmndan faydaldr. Simdiye dek grmediiniz baz komutlarla c s g o o g karlaabilirsiniz, bunun sizi yavalatmasna ltfen izin vermeyin. Bunun yerine boru mekanizmasn s s s u yani bir ktnn bir sonraki programa girdi olarak nasl geildiini anlamaya odaklann. Bylece bunc c g o lardan gnlk Linux kullanmnzda bolca faydalanabilirsiniz. Sktrlmlar aan boru hatt Nomalde u u s s c sktrlm bir dosyay amak ve arivi zmek iin unu yaparsnz: s s c s co c s
$ bzip2 -d linux-2.4.16.tar.bz2 $ tar xvf linux-2.4.16.tar

Bu yntemin dezavantaj diskinizde sktrlmam bir ara dosya barndmasdr. tar yazlm dorudan o s s g standart girdiden okuyabildii iin (yani buna parametre olarak illa ki diskteki bir dosyay gemeniz g c c gerekmedii iin) yukardaki sonucun aynsna yle bir boru hatt kullanarak, daha pratik ve ekonomik g c so bir ekilde eriebiliriz: s s
$ bzip2 -dc linux-2.4.16.tar.bz2 | tar xvf -

Vay canna! Sktrlm ariv (tarball) dosyamz bir anda alverdi ve arada ortaya kan geici bir s s s c c c dosyaya da ihtiya duymadk. c

9.1

Daha uzun bir boru hatt

Bir baka rnee bakalm: s o g


$ cat dosyam.txt | sort | uniq | wc -l

cat komut ile myle.txt dosyasnn ieriini elde edip bunu sort komutuna girdi olarak veriyoruz. c g sort komutu bu girdiyi alnca tm satrlar alfabetik olarak sralyor ve urettii kty boru uzerinden u g c uniq komutuna aktaryor ve bu program da tekrar eden satrlar iptal ediyor (yani birbirinin ayns olan satrlardan sadece bir tane grnyor) ve bu sonucu wc -l komutuna veriyor. wc komutunu daha nce ou u o grmtk, -l seenei ile birlikte kullanldnda bu komut sadece ve sadece satr saysn verir. Birka o us u c g g c test dosyas oluturup bu boru hattnn etkilerini inceleyebilirsiniz. s

9.2

Metin ileme kasrgas balyor! s s

Simdi standart Linux metin ileme komutlarnn uzerinden frtna gibi geeceiz. Bu blmde bir hayli s c g ou youn bir ierik aktardmz iin her komuta dair detayl bir sr rnek veremeyeceiz bu yzden de g c g c uu o g u sizden buray okuduktan sonra ilgili komutlarn man sayfalarna bakmanz istiyoruz. Bunlar inceleyin ve deiik seeneklerle oynayn, renmenin en gzel yolu budur. Genel kural olarak bu komutlar kendisine gs c og u verilen metin dosyalarnn ieriini uygun ekilde ileyip ekrana basarlar, dosyann kendisine kalc olarak c g s s mdahale etmezler. Bu frtna turundan sonra girdi ve kt ynlendirmeye biraz daha detayl bakacaz. u c o g Evet, tnelin ucundaki greceksiniz :) u sg o

9.3

echo

echo kendisine verilen argmanlar terminale basar. -e seeini kullanrsanz escape dizisi olarak tabir u c g ettiimiz zel karakter kombinasyonlarnn da dzgn olarak yorumlanmasn salarsnz, misal: echo -e g o u u g foo nfoo komutu ekrana nce foo basar, bir satr aa iner baka bir deyile yenisatr karakteri basar ve o s g s s sonra yine bir kez foo basar. -n seeneini kullanrsanz ktya en sonra otomatik olarak eklenen yenisatr c g c karakterinin baslmasn engelleyebilirsiniz.

25

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

9.4

cat, sort ve uniq

cat: cat komutu bir dosyann ieriini terminal ekranna basar. Bir boru hattna ilk girdiyi vermek iin c g c faydal bir komuttur, misal cat foo.txt vesaire vesaire. sort: sort komutu komut satrnda kendisine belirtilen dosyann ieriini alfabetik olarak sralayp bac g sar. Elbette sort komutu da boru uzerinden kendisine aktarlan girdiyi kabul edecek ekilde tasarlanmtr. s s man sort ile bu komutun ne kadar farkl sralama ileri iin pratik ekilde kullanlabileceini grebilirsiniz. s c s g o uniq: uniq sralanm bir dosyay ya da boru hatt uzerinden kendisine yollanan veriyi alr ve bunun s iindeki birbirinin ayns olan satrlar ayklar. c

9.5

wc, head, ve tail

wc: wc komut satrnda kendisine belirtilen dosyay (ya da boru hattndan gelen veriyi) okur ve bu dosyann satr, szck ve byte saysn ekrana basar. man wc ile detayl bilgi edinebilirsiniz. o u head: head komutu bir dosyann ya da boru hattndan gelen verinin ilk on satrn basar. -n seenei c g ile ka satr baslacan belirleyebilirsiniz. c g tail: Bu komut bir dosyann ya da boru hattndan akan verinin son on satrn basar. -n seenei ile c g ka satr baslacan belirleyebilirsiniz. c g

9.6

tac, expand ve unexpand

tac: tac da tpk cat komutu gibidir, u farkla ki okuduunu tersten basar. Yani son okunan satr ilk s g olarak baslr, dosyann ilk satr ise en son baslr. expand: expand komutu girdideki tab karakterlerini boluk karakterine dntrr. -t seenei ile tab s o us u u c g duraklarn belirleyebilirsiniz. unexpand: unexpand girdideki boluklar tab karakterine dntrr. -t seenei ile tab duraklarn s o us u u c g belirleyebilirsiniz.

9.7

cut, nl ve pr

cut: cut komutu belli bir dosyadaki ya da girdideki karakterle ayrlm alanlar ekip karr. s c c nl: nl girdideki her satrn bana sra ile artan bir say ekler. Ozellikle program kaynak kodu trnden s uu dosyalara gz atarken ya da bunlarn ktsn alrken faydaldr. o c pr: pr komutu bir dosyay sayfalara bler, yazc ktlarnda faydaldr. o c

9.8

tr, sed ve awk

tr: tr bir tr karakter dntrme aracdr, girdideki belli karakterleri ktdaki baka karakterlere tasvir u o us u c s etmek iin kullanlr. c sed: sed ok gl, veri akn ilemeye ynelik (stream-oriented) metin editrdr. c uc u s s o ou u awk: awk kolay kullanml, satr tabanl bir metin ileme dilidir. s

9.9

od, split, ve fmt

od: od komutu girdiyi alp sekizlik ya da onaltlk biimde basar. c split: split komutu byk bir dosyay alp bunu kuk dosyalara ayrr. u u uc fmt: fmt paragraf kenarlar toplanacak ekilde paragraf yeniden biimlendirir. Bu yetenek birok text s c c editr ierisinde yer alsa bile bilinmesi gereken komutlardan bir tanesidir. o c

9.10

Paste, join, ve tee

paste: paste iki ya da daha fazla dosyay girdi olarak alr, giri dosyalarndan gelen ardl satrlar birbiri s s ardna ekler ve sonu satrlarn kt yapar. Text tablolar ve kolonlar yaratmak iin olduka kullanldr. c c c c s join: join de paste komutuna benzese de tek bir satrda birleecek eyleri eletirmek iin, her girdi s s s s c satrnda bir alan kullanr. tee: tee kendi girdisini hem dosyaya hem de ekrana basar. Bir eyin logunu tutmak ama ayn zamanda s c kty ekranda da grmek istediinizde bu komut gayet kullanl olabilir o g s

26

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

9.11

Ynlendirme (redirection) Kasrgas o

Bash komut satrlarnda kullanlan >a benzer olarak, bir dosyay komuta ynlendirmek iin < de kullao c nabilirsiniz. Bir ok komuta girdi olmas iin komut satrlarnda dosya ad belirleyebilirsiniz. Fakat baz c c komutlar sadece standart girdiden alnan girilerle almaktadr. s c s Bash ve dier kabuklar herele kavramna destek verirler. Bu yntem sizin belli bir gzc deer g o o u g ile sonlanm ve komut armndan sonra gelen satrlarda bir komuta girdi belirtmenize olanak salar. s c g g Ornein: g
$ sort <<END > elma > armut > muz > END armut elma muz

Bu rnekte, END ile sonlanan ve girdinin bittiini ifade eden kelimeyi ve bundan nce de elma, armut o g o ve muz kelimelerini yazdk ve sort program bu girdinin sralanm ekli ile geri dnd. ss o u

9.12

>> Kullanm

>> kullanmnn << ile benzerlik gstereceinin dunecek olasanz da aslnda bu ikisi birbirinden o g us farkldr. >> basite kty > nin yapt gibi dosyaya yazmak yerine dosyann sonuna yazar. Ornein: c c g g
$ echo merhaba > dosyam $ echo oradakiler. > dosyam $ cat dosyam oradakiler.

O da ne! merhaba kelimesini kaybettik. Aslnda az nce kastettiimiz: o g


$ echo merhaba > dosyam $ echo oradakiler. >> dosyam $ cat dosyam merhaba oradakiler.

idi. Bu daha iyi deil mi? g

10
10.1

Sistem ve a dk mantasyonu g o u
Linux sistem dk man tipleri o u

Temel olarak bir Linux sisteminde u eit dkman kayna vardr: klavuz sayfalar (manual pages), c c s o u g bilgi sayfalar (info pages) ve /usr/share/doc iinde bulunan uygulamalar ile gelen dkmanlar. Bu c o u blmde, dardan yardm almadan nce bu u kayna nasl inceleyeceimizi ve onlardan nasl yaou s o c g g rarlanabileceimizi greceiz. g o g

10.2

Klavuz sayfalar

Klavuz dosyalar, ya da man sayfalar UNIX ve Linux referans dkmanlarnn temellerini oluturur. o u s Ideali herhangi bir komut, kongrasyon dosyas veya ktphane dosyas hakknda man sayfasna bakarak u uu bilgi edinebilmenizdir. Pratikte ise Linux zgr bir yazlmdr ve baz man sayfalar daha yazlmam o u s veya ok nceden yazlm olup gncelliini yitirmi olabilir. Yine de man dosyalar yardma ihtiyacnz c o s u g s olduunda ilk baklmas gereken adreslerdir. g Bir man sayfasna ulamak iin basite man ve istediiniz bal yazn. Ekrana kan dkmandan s c c g s g c o u c kmak iin qya basmanz gerekir. Mesela ls komutu hakknda bilgi almak iin: c c
$man ls

yazmanz gerekir. 27

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

10.3

Klavuz sayfalar, devam

Bir man sayfasnn plann bilmek ihtiyacnz olan bilgiye hzlca ulamanza yardmc olabilir. Bir man s sayfasnda genellikle aadaki blmleri bulacaksnz: s g ou NAME Komutun ismi ve bir satrlk aklamas c SYNOPSIS Komutun nasl kullanlaca g DESCRIPTION Komutun fonksiyonalitesi hakknda derinlemesine aklama c EXAMPLES Komutun nasl kullanlacana ynelik neriler g o o SEE ALSO Ilgili balklar (genellikle man sayfalar) s

10.4

Klavuz sayfa bl mleri ou

Klavuz sayfalarn ieren dosyalar, /usr/share/man (baz eski sistemlerde ise /usr/man) dizininde buluc nur. Bu dizindeki klavuz sayfalarnn yaplandrlmas aadaki gibidir. s g man1 Kullanc Programlar man2 Sistem Programlar man3 Ktphane fonksiyonlar uu man4 Ozel dosyalar man5 Dosya biimleri c man6 Oyunlar man7 Ceitli, dier s g

10.5

Coklu klavuz sayfalar

Baz balklar birden fazla blmde bulunur. Bunu gstermek iin, bir balk iin varolan tm klavuz s ou o c s c u sayfalarn gsteren whatis komutunu kullanalm: o
$ whatis printf printf (1) printf (3) - format and print data - formatted output conversion

Bu durumda, man printf dorudan blm 1 de bulunan sayfaya gidecektir (User Programs). Eer g ou g bir C program yazyor olsaydk blm 3deki sayfa daha fazla ilgimizi ekerdi (Library functions). Ozel ou c bir blmdeki bir klavuz sayfasn komut satrnda belirterek arabiliriz. printf(3) iin unu yazabiliriz: ou c g c s
$ man 3 printf

10.6

Doru klavuz sayfay bulmak g

Kimi zaman verilen balk iin doru klavuz sayfay bulmak zordur. Bu durumda man -k kullanarak s c g klavuz sayfalarn NAME blmnnde arama yapabilirsiniz. Bunun bir altdizi aramasi olduuna dikkat ou u u g edin. Dolaysyla man -k ls benzeri bir komut, ok fazla kt verecektir. Bir rnekle bunu grelim: c c o o
$ man -k manual Gnome (1) [gnomine] apropos (1) c2man (1) - manual page for Gnome gnomine 1.4.0.4 - search the manual page names and descriptions - generate manual pages from C source code

10.7

apropos ile ilgili herey s

Bu rnek aslnda birden fazla ey anlatyor! Oncelikle, apropos komutu man -k ile tam olarak ayn ii o s s yapar. (Bir sr olarak, man -k komutu verdiinizde arka tarafta apropos komutunun altn syleyelim) g c s g o Ikinci nemli nokta ise makewhatis komutu. Bu komut Linux sistemindeki tm klavuz sayfalar tarar, o u whatis ve apropos komutlarnn veritabann oluturur. Genellikle, bu i, root tarafndan periyodik olarak s s tekrarlanr ve veritabanlarnn gncel tutulmas salanr: u g
# makewhatis

man komutu ile ilgili daha fazla bilgi alabilmek iin klavuz sayfasna bakabilirsiniz: c
$ man man

28

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

10.8

Klavuz Yolu (MANPATH)

man program, balang olarak ilgili sayfalar /usr/share/man, /usr/local/man, /usr/X11R6/man, ve bir s c ihtimal /opt/man dizinlerinde arar. Baz durumlarda, bu baklacak yollara yeni bir tane dahe eklemek gerekebilir. Bunun iin, /etc/man.conf dosyasn, bir yaz editryle ap, aadaki gibi bir satr eklemek c ou c s g yeterlidir:
MANPATH /opt/man

Bu ekleme ile, /opt/man/man dizini altndaki klavuz sayfalarda bulunacaktr. Ama bu yeni klavuz sayfalarn whatis komutunun veritabanna eklemek icin makewhatis komutunu yeniden altrmak gec s rektiini unutmayn. g

10.9

GNU bilgisi

Klavuz sayfalarnn bir eksii, yardml metinleri (hypertext) desteklememeleri. Bu durumda, bir dosyag dan dierine kolaylkla atlamak mmkn olmuyor. Bunu farkeden GNU uzmanlar, yeni bir dokmang u u u tasyon yntemi gelitirdiler: info (bilgi) sayfalar. Birok GNU program artk info sayfalar biiminde o s c c kapsaml bir dokmantasyonla geliyor. info sayfalarn okumaya info komutuyla balayabilirsiniz: u s
$ info

info komutunun bu sekilde kullanlmas, sistemde ulalabilen sayfalarn bir indeksini getirir. Bu s c ktnn iinde ok tularyla hareket edebilir, yldz simgesi ile iaretlenmi olan balantlar enter tuuyla c s s s g s izleyebilir, ya da q tuu ilekabilirsiniz. Buradaki tular Emacsdeki gibidir, dolaysyla Emacs editrne s c s ou alknsanz, ilemlerinizi kolayca yapabilir, ynnz rahatlkla belirleyebilirsiniz.Komut satrndan zel s s o u u u o bir info sayfas da arabilirsiniz: c g
$ info diff

info sayfalar hakknda daha fazla bilgi elde etmek isterseniz, info sayfasini okumanz neririm. Su o ana kadar bahsettiimiz temel kullanm yntemleriyle, bu ii basite yapabilirsiniz: g o s c
$ info info /usr/share/doc

Linux sisteminizde son bir yardm kayna daha var. Cou programlar, farkli formatlardaki ek belgeg g lerle datlyor. Bu formatlardan bazlar, dzyaz (text), PDF, PostScript, HTML vb. dir. Sisteminizdeki g u /usr/share/doc dizinine (baz eski sistemlerde /usr/doc) girdiinizde, hepsi belli bir uygulamayla gelmi, g s uzunca bir dizin listesi greceksiniz. Bu dokmanlari incelemek baz cevherleri ortaya karmanz da o u c salayabilir. Man sayfalarnda veya info sayfalarnda bulamayacanz detaylara, ancak baz eitmenlerde g g g veya ilave teknik dokmanlarda rastlayabilirsiniz. Hzl bir aramayla, okunabilecek ne kadar ok malzeme u c olduunu grebilirsiniz. g o
$ cd /usr/share/doc $ find . -type f|wc -l

10.10

Linux Dk mantasyon Projesi o u

Sistemde bulunan dokmanlara ek olarak, internet uzerinde de Linux konusunda ok iyi kaynaklara u c ulaabilirsiniz. Linux Dokmantasyon Projeside, bir grup gnllnn, btnlemi ve zgr bir Linux s u o u u u uu s s o u dokmantasyon seti oluturmak iin almaya karar vermesiyle balam. Bu projenin varolu amac, u s c c s s s s Linux dokmantasyonunun paralarn, kullanm ve arama yaplmas kolay, ortak bir platformda birleu c s tirmektir. Linux Dkmantasyonu Projesine http://www.linuxdoc.org/ adresinden ulaabilirsiniz. o u s

10.11

LDPye genel bak s

LDP aadaki balklar ieriyor: s g s c Rehberler - geni kapsaml kitaplar, rnein The Linux Programmers Guide s o g HOWTO kaynaklar - konuya zel, derinlemesine kaynaklar, rnein DSL HOWTO o o g 29

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

SSS (Ska Sorulan Sorular) - en sk sorulan sorular ve cevaplar, rnein Brief Linux FAQ c o g Klavuz sayfalar - komutlara zel yardm sayfalar (Linux sisteminizde man komutuyla ulatnz o s g dosyalarn aynlardr). Hangi blmde aratrma yapmanz gerektiini bilmiyorsanz, arama kutularn kullanabilirsiniz. Byou s g o lece konu balna gre arama yaparak bilgiye ularsnz. LDP bunlara ek olarak Linux Gazette ve s g o s LinuxFocus gibi baz balant ve kaynak listesi de sunuyor. Ayrca ilgili mail listelerine ve haber arivlerine g s de LDP uzerinden ulaabilirsiniz. s

10.12

Mail Listeleri

Linux gelitiricileri iin en nemli ortak alma ortam mail listeleridir. Cou zaman projeler, birbis c o c s g rinden ok uzakta yaayan, neredeyse dnyann iki ayr ucundaki kiilerin ortak almasyla oluuyor. c s u s c s s Mail listeleri, bu gelitiricilere, proje uzerinde alan dier kiilerle iletiim kurma, tartma ve bilgi s c s g s s s alveriinde bulunma olana salyor. Bu mail listelerinden en bilineni ekirdek gelitiricilerinin Linux s s g g c s Kernel Mailing List adl listesidir. Adresi: http://www.tux.org/lkml/. Gelitirme ortamna salad destein yansra, mail listeleri, normal kullanclar iin de, soru sorma s g g g c ve uzman kiilerden veya dier kullanclardan cevap alma aracdr. Ornein, farkl Linux datmlar, s g g g yeni uyelerine destek amacyla mail listeleri oluturmulardr. Kullandnz datmn mail listelerine s s g g ulamak iin, datcnzn web sayfasn kullanabilirsiniz. Yukarda verdiimiz adresten, Linux ekirdek s c g g c gelitiricilerinin listesinde LKML FAQ (Linux ekirdek gelitiricileri mail listesi, Ska Sorulan Sorular) s c s c ksmn incelerseniz, liste uyelerinin sk sk ayn sorunun sorulmasn pek ho karlamadklarn grecek s s o siniz. Bu yzden, sorunuzu listeye gndermeden nce liste arivlerini incelemeniz daha doru bir yntem u o o s g o olacaktr. Dahas, bu yntem size vakit kazandracaktr. o

10.13

Haber gruplar

Internet haber gruplar, mail listelerinin bir benzeridir ama e-mail yerine NNTP denen (Network News s Transfer Protocol) A Haberleri Aktarma Iletiim Kural temeline dayanr. Haber gruplarna katlmak g iin slrn veya pan gibi bir NNTP istemcisi kullanmak gerekiyor. Haber gruplarnn ilk akla gelen avanc taj, sadece istediiniz zaman tartmalara katlyor olmanz.Bylece sizin dnzda gelien tartmalar g s o s s s elektronik posta kutunuzu doldurmuyor. Genele hitap eden listeler comp.os.linux ile balar. Listeye LDPnin sitesinden, s http://www.linuxdoc.org/linux/#ng adresiyle ulaabilirsiniz. s Mail listeleri gibi, haber gruplar da arivlenir. Populer bir haber grubu arivi sitesi olarak Deja News s s o rnek gsterilebilir. o

10.14

Satc rmalar ve uunc -parti web siteleri c u

Farkl Linux datmlarnn web sitelerinden, gncellenmi dokmanlar, kurulum talimatlar, donanm g u s u uyumluluk/uyumsuzluk aklamalar ve daha birok konuda destek alnabilir. Ornek siteler: c c Redhat Linux Debian Linux Gentoo Linux SuSE Linux Caldera Turbolinux

10.15

Linux danmanlar s

Baz Linux danmanlar, hem ucretsiz hem de ucretli olarak Linux dokmantasyonu salyorlar. Bu s u g danmanlardan bazlarn aada grebilirsiniz: s s g o LinuxCare Mission Critical Linux 30

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

10.16

Yazlm ve donanm salayclar g

Son yllarda birok yazlm ve donanm rmas, urnlerine Linux desteini eklediler. Bu rmalarn sitelec u g rinden, hangi donanmlarn Linuxu desteklediini, yazlm gelitirme aralarn, alm kaynak kodlarn, g s c c s baz donanmlarn Linux uyumu iin hazrlanm srclerini ve daha birok bilgiyi alabilirsiniz. Bu c s uu u c hareketin rnekleri yle sralanabilir: o so IBM ve Linux Compaq ve Linux SGI ve Linux HP ve Linux Sun ve Linux Oracle ve Linux

10.17

Gelitiricilerin kaynaklar s

Tm bunlara ek olarak, baz yazlm ve donanm rmalar, Linux gelitiricileri ve sistem yneticileri iin u s o c c ok iyi kaynaklar oluturmu durumdalar. Bunlarn iinde en baarl olanlardan birisi, yazlm/donanm s s c s rmas IBMin developerWorks Linux ortamdr.

11
11.1

Linux izin modeli


Bir kullanc, bir grup

Bu blmde, Linuxun izin ve sahiplik modelini inceleyeceiz. Daha nce grdumz uzere, her dosyann ou g o o ug u sahibi olan bir kullanc ve bir grup vardr. Linuxun izin modellerinin znde bu vardr. Dosyalarn sahibi o u olan kullanc ve gruplar, ls -l komutuyla listeleyebilirsiniz:
$ ls -l /bin/bash -rwxr-xr-x 1 root root 579816 2002-09-12 00:51 /bin/bash

Bu rnekte, /bin/bash altrlabilir dosyasnn sahibinin root kullancs ve root grubu olduunu o c s g gryoruz. Linux izin modeli, herbir dosya iin belirlenen u ayr izin katmanndan oluur. Bu u katman, ou c c s c dosya sahibinin izinleri, grubun izinleri ve tm dier kullanclarn izinleridir. u g

11.2

ls -l incelemesi

ls -l komutumuzun ktsn inceleyelim. c


$ ls -l /bin/bash -rwxr-xr-x 1 root root 579816 2002-09-12 00:51 /bin/bash

Ilk -rwxr-xr-x blm, dosya izinlerinin sembolik gsterimidir. Bataki tire (-) karakteri dosyann tipini ou u o s belirtir. Bu rnekteki dosya normal bir dosyadr. Dier dosya eitleri ve onlar ifade eden karakterler o g c s yledir: so c d dizin l sembolik balant c character special device b block special device p fo s socket U g adet ul grup c u
$ ls -l /bin/bash -rwxr-xr-x 1 root root 579816 2002-09-12 00:51 /bin/bash

c u Dosya tipini belirten karakteri takip eden u adet ul harf grubu gryoruz. Ilk ul grup dosc c u ou yann sahibinin haklarn, ikinci grup dosyann sahibi olan grubun haklarn, son ul grupta dier tm c u g u kullanclar iin geerli olan haklar simgeler. c c rwx r-x r-x Burada, r har, dosyann ieriinin okunmasna izin verildii anlamna gelir. w har dosyaya yaz c g g yazlabileceini (bu ayn zamanda deiiklik yapma ve silme ilemlerini de kapsar), x har de dosyann g gs s c s altrlabileceini gsterir. Tm bunlar biraraya getirdiimizde gryoruz ki, rneimiz olan dosyay g o u g ou o g herkes okuyabilir ve altrabilir ama sadece sahibi (root) dosyann deitirilmesi konusunda hak sahibic s gs dir. Dolaysyla, tm kullanclar bu dosyay kopyalama hakkna sahipken, sadece rootun gncelleme ya u u da silme hakk vardr. 31

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

11.3

Ben kimim?

Bir dosyann sahibi olan kullancy ve grubu deitirmeyi grmeden nce, halihazrda calan kullancnn gs o o s kim olduunu renme ve grup uyelikleri hakknda bilgi alma yntemini inceleyelim. Eer bilgisayar g og o g atktan sonra su komutunu hi altrmadysanz, bilgisayar acarken girdiginiz kullanici olarak devam c cc s ediyorsunuz demektir. Eer sk sk su komutunu altryorsanz, o anda hangi kullancyla altnz g c s c s g hatrlamayabilirsiniz. Bu durumda whoami komutunu kullanabilirsiniz:
# whoami root # su knoppix $ whoami knoppix

11.4

Hangi gruplarn uyesiyim?

Hangi gruplara uye olduunuz renmek iin groups yazmanz yeter: g og c


$ groups knoppix dialout fax voice cdrom floppy tape sudo audio dip video games users usb

Bu rnekteki kullanc, knoppix, dialout, fax, voice, cdrom, oppy, tape, sudo, audio, dip, video, games, o users, usb gruplarna uyedir. Dier kullanclarn grup bilgilerini de renebilirsiniz. Bunun iin, groups g og c komutuna argman olarak kullanc adlarn vermelisiniz: u
$ groups root daemon root : root daemon : daemon

11.5

Kullanc ve Grup Haklarn Deitirmek gs

Bir dosyann ya da baka bir dosya sistemi nesnesinin sahip olduu kullanc ya da grubu deitirmek s g gs iin srasyla chown ve chgrp komutlarn kullanabilirsiniz. Bu komutlarda herbiri bir isim ve bunu takip c eden bir ya da daha fazla dosya ismi ile kullanlr.
# chown root /etc/passwd # chgrp users /etc/passwd

Ayrca isterseniz chown komutunun alternatif bir kullanm ile tek seferde dosya sahibini ve sahip olduu grubu deitirebilirsiniz. g gs
# chown root.users /etc/passwd

superuser olmadnz srece chown komutunu kullanmamalsnz ancak dosyann ait olduu grubu sag u g hip olduunuz gruplardan birisi olarak belirlemek amacyla chgrp komutunu normal kullanc durumunda g da kullanabilirsiniz.

11.6

Sahipliin Ozyineli Olarak Deitirilmesi g gs

chown ve chgrp komutlarnn her ikisi de bir dizin aacndaki tm dosya ve dizinlerin sahip olduklar g u kullanc ve gruplar zyineli olarak deitirmek amacyla -R opsiyonuna sahiptirler. Ornein: o gs g
# chown -R knoppix /home/knoppix

11.7

chmod Komutuna Giri s

chmod ve chown komutlarnn herhangi bir dosya sistemi nesnesinin ait olduklar grup ve kullancy deitirdiini syledik. Ayrca dosya ve dizinler uzerinde tanml ve ls -l listelemesiyle grdumz dosya gs g o o ug u sistemi nesnelerinin yazma-okuma-altrma izinlerini de chmod komutu ile deitirebiliyoruz. chmod iki c s gs ya da daha fazla parametre almaktadr: izinlerin nasl deieceini belirleyen durum parametresi (mode), gs g bunu izleyen ve izin ileminin uzerinde uygulanaca dosya ya da dosyalarn isimleri. Syle ki: s g o

32

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

$ chmod +x Desktop/KNOPPIX.desktop

Yukardaki rnekte durum parametremiz +x olarak belirlenmitir. Tahmin edeceiniz gibi +x bu sz o s g o konusu dosyay hem kullanc hem de grup ya da baka herhangi birisi iin altrlabilir hale getirecektir. s c c s Eer bir dosyann tm altrlma izinlerini kaldrmak istiyorsak, yapmamz gereken: g u c s
$ chmod -x Desktop/KNOPPIX.desktop

11.8

kullanc/grup/dierleri Parack Yaps g c

Su ana kadar chown komutunun tm rneklerinde izinler user, group ve other eklinde tanmlanan her u u o s c nesne iin de uyguland. Genellikle bu ulden bir ya da ikisi iin izin belirlenmesi daha uygundur. Bunu c c u c yapmak iin bu ulden birisini temsil eden sembolik karakter ile birlikte izin tipini + ya da - olarak c c u belirtiriz. u karakterini user, g karakterini group ve o karakterini other iin kullanrz: c
$ chmod go-w Desktop/KNOPPIX.desktop

Yukardaki rnekte KNOPPIX.desktop dosyasna yazma hakkn dosyann ait olduu grup ve dier o g g herhangi bir kullanc ya da grup iin kaldrdk. Ama dosyann sahibi olan kullanc iin bu hakk c c deitirmedik. gs

11.9

Izinleri Sfrlamak

Izin bitlerini a kapamak iin hepsinin birden sfrlayabiliriz. = operatrn kullanarak, chmod kocg c ou u mutuna ilgili dosya iin sadece belirlediimiz haklar vermek ve bunlar dndaki haklar da vermemek c g s istediimizi syleyebiliriz. g o
$ chmod =rx Desktop/KNOPPIX.desktop

Yukarda ulnn tamam iin KNOPPIX.desktop dosyas uzerinde okuma ve altrma hakkn verc u u c c s c u u dik ama write hakkn vermedik. Ulnn belli birtanesi iin haklar ayarlamak istiyorsanz aadaki c s g o rnekte gsterildii gibi= operatrnden once bu ulden ilgili olan belirttiiniz sembol yazabilirsiniz. o g ou c u g u
$ chmod u=rx Desktop/KNOPPIX.desktop

11.10

Saysal Kalplar

Su ana kadar chmod komutu ile dosya haklarn dzenlemek iin hep sembolik kalplar kullandk. Oysa u c bu i iin ok sk kullanlan bir baka yntem daha var, 4 basamakl bir sekizli sistem says. Bu saysal s c c s o izin ifadelerinde herbir basamak bir izin grubunu ifade eder. Ornein 1777 ifadesinde, 777 rakamlar g dosyann sahibi olan kullancnn, grubun ve dier kullanclarn izinlerini ifade eder. Bataki 1 ise zel g s o izinleri ifade eder, bu zel izinler konusuna bu blmn sonunda gireceiz. Aadaki tabloda bu sekizli o ou u g s g sistem saylarnn nasl yorumlandn gryorsunuz: g ou
kalp rakam rwx 7 rw-6 r-x 5 r--4 -wx 3 -w-2 --x 1 ---0

11.11

Saysal izin ifadelerinde szdizim yaps o

Saysal ifadeler ounlukla, bir dosya uzerindeki haklarn tamamyla ilgili bir dzenleme yaplacaksa c g u kullanldr. Aadaki rnei inceleyecek olursak: s s g o g
$ chmod 0755 Desktop/KNOPPIX.desktop $ ls -l Desktop/KNOPPIX.desktop -rwxr-xr-x 2 knoppix knoppix 124 2003-04-25 09:56 Desktop/KNOPPIX.desktop

bu rnekte -rwxr-xr-x ifadesine denk gelen 0755 kalb kullanlm. Yani dosyann sahibi olan kulo s lanc tm haklara sahipken, gruba ve dier kullanclara sadece okuma ve altrma haklar veriliyor. u g c s 33

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

11.12

umask

Bir ilem yeni bir dosya yarattnda, o dosyayla ilgili haklar da, kendisine en uygun olacak ekilde s g s belirler. Genellikle herkesin okuyabilecei ve yazabilecei kalp olan 0666 belirlenir ve bu kalp aslnda g g tahmin edilenden ve istenenden daha fazla toleransldr. Neyse ki, Linux yeni bir dosya yaratldnda g umask dediimiz yapya danr. Dosyaya balangta verilen haklar, umask deerine baklarak, daha g s s c g gereki ve gvenilir bir seviyeye durlr. Komut satrnda umask yazdnzda o andaki umask ayarnz c c u us u u g grebilirsiniz: o
$ umask 0022

Linux sistemlerde umask standart olarak 0022 olarak ayarlanmtr. Bu dier kullanclarn dosyas g larnz (eer ulaabilirlerse) okuyabilecei ama deitiremeyecei anlamna gelir. Yeni dosyalarn daha g s g gs g gvenli olmas iin umask ayarn deitirebilirsiniz: u c gs
$ umask 0077

Bu umask deeri, dosyann grubunun ve dier kullanclarn, yeni dosya uzerinde hibir hakka sag g c hip olmamalarna sebep olur. Bu umask deeri gruba ait kullanclarn ve dierlerinin yeni yaratlan g g dosyalar uzerinde ntanml olarak herhangi bir izne sahip olmalarn engeller. Peki o halde bu umask o nasl alr? Dosyalar uzerinde i yaparken kullanlan dzenli (normal) izinlerden farkl olarak umask c s s u dediimiz deer hangi izinlerin OLMAYACAGINI belirler. Izin-saysal karlk tablomuza bakp 0077 g g s umask deerinin ne anlama geldiini zmeye alalm: g g co c s
_zin say I rwx 7 rw-6 r-x 5 r--4 -wx 3 -w-2 --x 1 ---0

Tabloya gre 0077 ifadesinin son iki rakam rwxrwx izin durumuna karlk gelmektedir. Simdi de o s ltfen umask deerinin hangi izinlerin iptal edileceine dair bilgi ierdiini hatrlayn. Bu bilgileri birlikte u g g c g dunrsek grrz ki grup ve dier izinler kapatlrken kullanc izinlerine dokunulmayacaktr. us u ouu g

11.13

suid ve sgidye giri s

Makineyi atnzda ve bir oturum atnzda yeni bir kabuk sreci balar. Bunu zaten biliyorduk, ama c g c g u s bununla ilgili bilemeyeceiniz birey daha var ki, o da bu yeni kabuk sreci (aslnda bash) sizin kullanc g s u bilginizle alr. Bylece, sizin sahibi olduunuz dosya ve dizinlere ulaabilir. Aslnda, bizler kullanc c s o g s olarak, bizim admza ilemler yapan programlara tam anlamyla balyz. Cunk kullanc bilgilerimizi s g u verdiimiz programlar, dosya sisteminde, bizim iznimizin olmad herhangi bir nesneye ulaamayacaktr. g g s Ornein, normal kullanclar passwd dosyasna yazma hakkna sahip deildir, unk root dndaki tm g g c u s u kullanclarn yazma hakk kaldrlmtr: s
$ ls -l /etc/passwd -rw-r--r-1 root users 1239 2003-04-25 10:19 /etc/passwd

Oysa ki, normal kullanclarn da, en azndan dolayl olarak, bu dosya uzerinde deiiklik yapmaya gs ihtiyac olabilir, rnein ifrelerini deitirecekleri zaman. Ama normal kullanclar bu dosya uzerinde o g s gs yazma hakk yoksa nasl olacak bu ilem? s

11.14

suid

Linux izin modelinde suid ve sgid isimli iki zel bit vardr. Eer altrlabilir bir dosyann suid o g c s biti ayarlanmsa, o dosya, o anda altran kullanc deilde, asl sahibi olan kullancnn adyla alts c s g c s rlyormu gibi olur. Simdi /etc/passwd dosyasyla ilgili problemimize geri dnelim. passwd altrlabilir s o c s dosyasna baktmzda sahibinin root kullancs olduunu grrz: g g ouu 34

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

$ ls -l /usr/bin/passwd -rwsr-xr-x 1 root

root

24680 2002-04-07 17:59 /usr/bin/passwd

Burda grdumz bir detay daha var. Dosya sahibi olan kullancnn izinlerini ifade eden ulde o ug u c u x yerine s har bulunuyor. Bu s har, ilgili dosya iin suid ve altrlabilirlik bitlerinin ayarlandn c c s g belirtiyor. Bu nedenle, passwd komutu altnda, o anda altran kullanc deil de root kullancs tac s g c s g rafndan altrlyormu gibi olacaktr ve passwd komutu root haklaryla alnca, /etc/passwd dosyasn c s s c s da bir problem olmadan dzenleyebilecektir. u

11.15

suid/sgid uyarlar

suidnin nasl altn grdk, sgidde ayn ekilde alr. Programlarn, o anda alan kullancnn c s g o u s c s c s deilde programn uzerindeki grup haklarna gre almasna dayanr. g o c s suid ve sgid hakknda birka nemli ipucu verelim. suid ve sgid bitleri ls -l listelemesinde x harnin co bulunduu yerde bulunurlar. Eer hem x hemde suid bitleri aktifse, listede s (kuk harf olarak) grlr. g g uc o uu Ama, x biti aktif deil, suid biti aktifse S (byk harf olarak) grntlenir. g u u ou u Bir baka nemli nokta: suid ve sgid bitleri birok durumda ok kullanl gibi grnselerde, baz diks o c c s ou katsiz kullanmlarda sistemin gvenliinde nemli aklara sebep olabilirler. Bu yzden ne kadar az suidli u g o c u program olursa o kadar iyidir. passwd komutu da, suidye kesin olarak ihtiya duyan birka programdan c c biridir.

11.16

suid ve sgidnin deitirilmesi gs

suid ve sgid bitlerinin ayarlanmalar ve iptal edilmeleri u ana kadar grdumz izin ayarlar ile ayndr. s o ug u Ornein suid bitinin ayarlanmas yledir: g so
# chmod u+s /usr/bin/program

Burada da bir dizin uzerinden sgid bitinin kaldrlmasn gryoruz. Biraz ileride de sgid bitinin dizinler ou uzerindeki etkilerini inceleyeceiz. g
# chmod g-s /home/knoppix

11.17

Izinler ve dizinler

Su ana kadar normal dosyalarn izinlerinden bahsettik. Konu klasrler olunca, iler biraz deiiyor. o s gs Klasrler de izin konusunda ayn kalplar kullanrlar, ama yorumlanmalar biraz farkldr. Bir klasr iin, o o c read hakk o klasrn ieriinin grntlenebilmesi, write hakk klasr iinde dosya yaratlabilmesi, ou c g ou u o c execute hakk da klasr iindeki altdizinlere ulalabilmesi anlamna gelir. execute biti ayarlanmamsa, o c s s klasr iinde ulalabilir olmayan dosya sistemi nesneleri olduu anlamna gelir. read biti ayarlano c s g mamsa, klasr iinde grntlenemez nesneler vardr. Bu nesneler ancak, disk uzerindeki tam yolu s o c ou u bilindiinde ulalabilir. g s

11.18

Dizinler ve sgid

Bir dizinin sgid biti ayarlanmsa, bu dizinin grup bilgileri, iinde yaratlan herhangi bir dosya sistemi s c nesnesine de yansyacaktr. Bu zellik, ayn gruba uye olan birka kullancnn kullanaca bir dizin aac o c g g oluturulacanda, kullanl olacaktr. Syle ki: s g s o
# mkdir /home/grupalani # chgrp benimgrubum /home/grupalani # chmod g+s /home/grupalani

Burada, benimgrubum uyesi olan tm kullanclar /home/grupalani altnda dosya veya dizin yarata u bilir ve bu yeni dosya ve dizinlerin grubu, otomatik olarak benimgrubum atanacaktr. Yeni nesnelerin, benimgrubum uyesi olan dier kullanclar tarafndan okunabilirlik, yazlabilirlik ve altrabilirlik ayar g c s lar, o dosyann yaratcs olan kullancnn umask deerine baldr. g g

35

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

11.19

Dizinler ve silme ilemi s

Linux dizinleri standart ayarlar aslnda gnlk kullanmda ok ideal ayarlar deildir. Normal olarak, u u c g bir klasre ulama hakk olan kiinin o klasr iindeki bir dosyay silme veya yeniden adlandrma hakk o s s o c olmas beklenir. Bireysel kullanclarn dizinleri byledir ve en uygunu da budur. o Ancak birok kullancnn eritii ve kulland klasrler iin zellikle /tmp ve /var/tmp, bu uygulac s g g o c o mann baz zararlar olabilir. Tm kullanclarn erime hakk olmas, ayn zamanda silme veya deitirme u s gs hakk olmas anlamna da gelir, yani bir kullanc dierinin dosyalarn, sahibi olmad halde, silebilir veya g g deitirebilir. Bu nedenle /tmp klasrn onemli iler iin kullanmamakta fayda var, unk herhangi bir gs ou u s c c u kullanc rm -rf /tmp/* yazarak tm dosyalar silebilir. u Neyse ki Linux, yapkan bit zelliiyle bu problemi de zyor. /tmp dizinini yapkan biti ayars o g co u s lanmsa (chmod +t ile), bu dizindeki dosyalar sadece root, dizinin sahibi (genellikle root) ya da o s dosyann sahibi silebilir veya yeniden adlandrabilir. Tm Linux datmlarnda, /tmp dizininin yapkan u g s biti ayarlanmtr, ancak grldu gibi sadece /tmp dizininde deil birok yerde yapkan bit ie yaras o u ug g c s s maktadr.

11.20

Ozel ilk basamak

Bu blm sona erdirmeden nce, saysal ifadelerde bahsi geen ilk basamaktan bahsedelim. Grdunz ou u o c o ug u gibi ilk basamak yapkan bitlerin, suid ve sgid bitlerinin ayarlanmas iin kullanlyor: s c
suid sgid stickymode basamak on on on 7 on on off 6 on off on 5 on off off 4 off on on 3 off on off 2 off off on 1 off off off 0

Bir gruba (workgroup) ait bir dizinin izinlerin, 4 basamakl saysal ifadelerle ayarlanmas ile ilgili olarak u rnee bakalm: s o g
# chmod 1775 /home/groupfiles

12

vi Editr o u

Tm Linux sistemlerinde, kullanclarn zevklerine hitap eden eitli metin editrleri vardr. Bunlarn u c s o arasnda, Unix sistemler iin zel olarak tasarlanm olan vi editr en ok kullanlan editrlerin banda c o s ou c o s gelir. Vi, balangta karmak grnse de hz ve verimi ile her kullancnn iini byk lude kos c s ou s u u o c laylatracak bir editrdr. En ok kullanlan komut takmlarn rendikten sonra vidan vazgemenin s o u c og c ne kadar g olduunu greceksiniz. uc g o

12.1

Via balang s c

PC editrlerin byk ounluunda klavye, editr komutlarn almak ve baslan tular ekrana gndermek o u u c g g o s o iin kullanlan iki gruba ayrlmtr. Kullanc ayn anda hem komut iletip hem de yaz yazabilir. Bu tip c s s editrler geni bir klavye haritasna sahip olduklar iin, rnein fonksiyon tularn veya klavyenin en o s c o g s sandaki saysal tular da kullanyor olabilirler. vi n tasarm aamasnda bu durumdan kanlm, g s s c s standart d klavyesi olan bilgisayarlarn da var olabilecei dunlerek klavye uzerinde kullanlmas s g us u gereken tularn saysn mmkn olduunca indirilmesine allmtr. Burada karmza vi editrnn s u u g c s s s ou u c s alma aamasnda u ayr ilev geliyor. Birincisi, bilgisayara komutlarn girdisi srasnda kullanlan s c s komut modu, ikincisi yaz yazarken kullanlan yaz modu ve satr modu. Komut modunda klavye uzerinde grevi olan tm tular, bilgisayar komut vermek iin kullanlyor. o u s c Yaz modunda ise dier editrlerdekine benzer ekilde yaz yazmak mmkn oluyor. Klavye modunu g o s u u deitirdiinizde klavye tularnn ilevleri de hemen deiiyor. vi editrn ilk altrdnz anda komut gs g s s gs ou u c s g moduna girersiniz. Bu anda her tua ait bir komut altrlmaya hazrdr (rnein j bir karakter aa, k s c s o g s g bir karakter yukar gider). Bu anda kullanc yaz moduna gemek isterse i tuuna basabilir. Yaz moduna c s iken klavyeden girilen her karakter ekranda grnr. Bundan sonras daktilo kullanmaya benzer. Tekrar ou u 36

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

komut moduna gemek iin ESC tuu yardmc olur. Bir dosya yazarken veya dzeltmede bulunurken her c c s u iki yazm stili arasnda srekli gidip geldiinizi farkedeksiniz. Bunlara ek olarak dosya ilemleri veya eleme u g s s yaparken iki mod da kullanlmaz. Linux kullancs vi uzerinde alrken en alt satrda vi mesajlarn c s grr ve gerektii zaman satr modunda komutlar girer. Satr moduna gemek iin : (iki nokta ustste) ou g c c u karakteri kullanlr. Bu tua basldnda ekrann en altnda bir satr alr ve vi sizden bir komut girmenizi s g c bekler. vi komutunu yazp entera bastktan sonra tekrar editr komut moduna geersiniz. o c

12.2

Dosya ama, kaydetme ve kma c c

Bir vi oturumunu 4 ayr ekilde aabilirsiniz. Yeni ve bo bir dosya iin: s c s c


$vi

varolan bir dosya iin: c


$vi dosya_adi

imlecin, alacak dosyada n numaral satrda durmas iin: c c


$vi +n dosya_adi

imlecin, aranan bir kalbn ilk bulunduu yerde durmas iin: g c


$vi +/"aranan kalp" dosya adi

via ilk girdiiniz anda komut modunda olursunuz. Yaz moduna gemek iin i veya a tuuna basn. g c c s Bu andan itibaren zamannzn byk bir ksmn geireceiniz yaz moduna atlarsnz. Bkana kadar u u c g yazp nce ESC tuuna, ardndan iki kere Z tuuna basn. Bu komut dizisi nce dosyay kaydedecek, o s s o sonra da vi editrnden kmanz ve kabua dnmenizi salayacaktr. vi a yeni balayanlarn yaptklar ou c g o g s en sk hatalardan biri yaz modundan komut moduna geerken ESC tuuna basmamalardr. w komutu c s ZZ komutuna benzer alr, hafzada halihazrda bulunan dosyay, editrden kmadan diske kaydeder. c s o c o Eer isimsiz bir dosyada uzerinde alyorsanz (rnein vi dosya adi yerine sadece vi yazarak editre g c s o g girmiseniz) dosyay sabit diske yazmak iin w satr komutunu kullanmalsnz. Bunun iin: s c c
:w benimdosyam

yazp satr moduna geerek komutu girmelisiniz. c Vi editrnden kmak iin :q yazn. ou c c

12.3

Vida yazma

Simdi vi yardmyla bir dosya uzerinde denemeler yapalm. Aadaki komutlar kabuk satrnda iken s g yazn:
$ vi deneme

Ekran silinecek ve solda karakterlerinin bulunduu bir grntyle karlaacaksnz. Yaz moduna g ou u s s gemek iin i tuuna basn ve birka satr metin girin. Tekrar komut satrna dnmek iin ESC tuuna c c s c o c s basn. Simdi klavyenizdeki yn tularyla metin iinde gezinebilir yada : tuu ile satr moduna geebilir o s c s c siniz.

12.4

Silme ve kopyalama

Yaz modunda iken backspace tuu yardmyla, komut modunda iken ise x komutu ile istediiniz kadar s g har silmeniz mmkndr. dd komutu ise imlecin uzerinde bulunduu satr siler ve alttaki tm satrlar u u u g u bir satr yukar alr. Ilgili komutlar ksaca listelemek istersek: dd bulunduu satrn tmn siler ndd g u u u n satr siler D satr imleten itibaren siler dw bir kelime siler dG dosyann sonuna kadar siler p son c silinen karakteri imleten sonra ekle P son silinen karakteri imleten nce ekle u son deiiklii geri al x c c o gs g imlecin bulunduu karakteri sil X imleten nceki karakteri sil nX imleten ncek n karakteri sil Silinen g c o c o karakter veya karakter gruplarnn hafzaya kaydedildiini sylemitik. Bu hafza geici bir tampon vazifesi g o s c grr. yy komutu uzerinde bulunduu satr kopyalar. Eer komuttan nce say girilirse o kadar satr ou g g o kopyalanr. Ardndan kullanc metin uzerinde istedii yere gelip p tuuna basarak hafzadaki satrlar g s imlecin bulunduu satrn altndan itibaren basar. yy komutu yerine Y de tercih edilebilir. g 37

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

12.5

Arama ve eletirme s s

vida alrken arama yapmak isteyebilirsiniz. Eer uzerinde altnz metin uzun ise belirli bir kec s g c s g lime veya kelime gruplarn aramak ok zaman alabilir. Komut modunda iken / karakterine basarak c arama/tarama moduna gein. Ekrann en alt ksmnda bir satr alacaktr. Aramak istediiniz kelimeyi c c g yazn ve ENTER tuuna basn. vi editr imlecin bulunduu yerden itibaren girilen anahtar szcu metin s ou g o ug iinde tarayacaktr. Eer aranan kelime bulunmusa satr imlecini bunun uzerine konumlandrr. / koc g s mutu dosyann sonuna doru arama yaparken ? komutu baa doru gider. Ayn kelimeyi tekrar aratmak g s g iin n tuuna basn. Arama ilemi, / komutu yardmyla yaplmsa ileri doru, ? komutu yardmyla c s s s g yaplmsa geriye doru tekrar balayacaktr. Metindeki baz kelimeleri deitirmek istediinizde ise s s g s gs g komutu yardmnza koacaktr: s
:[x,y]s/eski_ifade/yeni_ifade/tercih

komutu x ve y numaral satrlara arasnda, eski ifade kalbn, yeni ifade kalbyla deitirecektir. Tercih gs ksmna gireceiniz c karakteri her deitirme ileminden nce kullancdan onay isterken, i karakteri, g gs s o arama ve deitirme srasnda byk-kuk harf ayrm yaplmamasn salar. gs u u uc g

12.6

Dier dosyalarn metne eklenmesi g

Imlecin bulunduu yerden itibaren ikinci.txt dosyasn halihazrda altnz metne kopyalamak icin: g c s g
:r ikinci.txt

12.7

Kabuk komutlarnn altrlmas c s

vi altnda iken kabuk komutlarn, hatta kabuun kendisini bile altrmak mmkndr. :! ile komut g c s u u u ismini girebilirsiniz. Aadaki komut vidan kmadan ls komutunu altracak ve sonucu ekrana veres g c c s cektir.
:!ls -la

Bunun yansra komut ktsn ekran yerine uzerinde altmz metine aktarmak iin aadaki vi c c s g c s g komutunu kullann:
:r! ls -al

13
13.1

Linux hesap ynetimi o


/etc/passwd dosyas

Bu blmde Linuxun hesap ynetimi mekanizmasn inceleyeceiz. Sistemdeki tm kullanclarn bilgiou o g u lerinin bulunduu /etc/passwd dosyasyla balayalm. less /etc/passwd yazarak, kendi sisteminizdeki g s dosyay grntleyebilirsiniz. Bu dosyadaki herbir satr, bir kullanc hesabn belirtir. /etc/passwd dosou u yasndan bir ornek satr ele alalm:
knoppix:x:1000:1000:Knoppix User:/home/knoppix:/bin/bash

Grdunz gibi, bu satrda ok fazla bilgi yokmu gibi duruyor. Aslnda /etc/passwd dosyasndaki o ug u c s her satr : ile ayrlm birka paradan oluur. s c c s Ilk ksm kullanc adn belirtir (knoppix), ikinci blmde bir x har gryoruz. Eski Linux sistemleou ou rinde, bu ksmda ifrelenmi bir halde parolalar bulunurdu ve bu parolalar kullanc giriinde onaylama s s s iin kullanlrd. Ama yeni Linux sistemlerinin neredeyse tamamnda, ifreler baka bir dosyada tutuluyor. c s s c u Uunc alandaki (1000) ifadesi, kullancnn numarasn, drdnc alandaki (1000) ifadesi de, bu kulo u u lancnn bal olduu grubu belirtir. Biraz sonra (1000) numaral grubun nerede tantldn da greceiz. g g g o g Beinci blm, bu hesabn dzyaz olarak bir aklamasn ierir, bu rnekte, aklama kullancnn s ou u c c o c tam ad olarak verilmi. Altnc blmde, kullancnn home dizininin yeri belirtilir. Son olarak, yedinci s ou ksmda o kullanc iin standart olarak alacak olan kabuu ifade eder. Bu kabuk kullanc bilgisayara c c g girdiinde otomatik olarak alan kabuktur. g c

38

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

13.2

/etc/passwd hakknda ipular c

Eer dikkat ettiyseniz, /ets/passwd dosyasnda, sizin bilgisayara girerken kullandnz hesap dnda g g s birok hesap daha olduunu grmsnzdr. Bunun sebebi, farkl Linux bileenlerinin, gvenlii artc g o us u u u s u g trmak amacyla, kendilerine ait kullanc hesaplar bulunmasdr. Bu sistem hesaplarnn kullanc numaralar 100den kuktr ve birounda standart kabuk alannda /bin/false ifadesi yeralr. /bin/false uc u c g program bir hata mesaj verip kmaktan baka hibirey yapmad iin, bu sistem hesaplarnn normal c s c s g c kullanclar tarafndan kullanlmasn engeller. Bu hesaplar sadece sistem ii kullanm iindir. c c

13.3

/etc/shadow dosyas

Kullanc hesaplarna ait bilgilerin /etc/passwd dosyasnda tutulduunu grdk.Linux sisteminde bu dosg o u yayla ortak alan bir dosya daha vardr: /etc/shadow dosyas. Bu dosya /etc/passwd dosyas gibi herkes c s tarafndan okunabilir bir dosya deildir. Bu dosyann ierii, sadece root tarafndan grntlenebilen, g c g ou u ifrelenmi parola bilgilerinden ibarettir. Bu dosyadan alnm bir satr inceleyelim: s s s
knoppix:$1$inZ2aQ4f$Us10Oa1moVCgbwXsx.a.E.:12167:0:99999:7:::

Yine herbir satr ayr bir kullanc hesabyla ilgili bilgileri ieriyor ve herbir blm : ile ayrlm duc ou s rumda. Ilk ksm bu parola bilgisinin hangi kullancya ait olduunu belirtir. Ikinci ksmda ise kullancnn, g parolas ifrelenmi bir halde bulunur. Dier alanlarn aklamalarn da aadaki tabloda bulabilirsiniz: s s g c s g 3. Alan 1/1/1970ten, son ifre deiimine kadar geen gn says. s gs c u 4. Alan Parola deitirebilme izni verilene kadar geen gn says (serbest deiiklik iin 0dr) gs c u gs c 5. Alan Sistemin, kullancdan parolasn deitirmesini isteyecei zamana kadarki gn says (-1 : gs g u asla) 6. Alan Kullancnn, parolann geersiz kalaca gunden, ka gn nce uyarlaca (-1: uyar yok) c g c u o g 7. Alan Parolann iptalinden, hesabn sistem tarafndan otomatik iptal edilmesine kadar geen gn c u says (-1: iptal yok) 8. Alan Hesabn iptal edildii gn says (-1: hesap hala aktif) g u 9. Alan Daha sonra kullanlmak uzere ayrlmtr. s

13.4

/etc/group dosyas

Simdi de, /etc/group dosyasna gzatalm. Linux sistemindeki tm grup bilgileri bu dosyada tutulur. o u Ornek bir satra bakalm:
knoppix:x:1000:

/etc/group dosyasndaki satrlarn anlamlarn inceleyelim. Ilk ksm grubun adn barndryor. ikinci cunc ksmda, bu gruba ait olan grup alanda ise bir parola grnts olarak x karakteri bulunur. U u ou uu numarasn verir. Bu rnekte bo olarak gzken drdnc blmde de bu gruba uye olan kullanclarn o s o u o u u ou isimleri vardr. /etc/passwd dosyas ile ilgili olarak verdiimiz rnekte, grup numaras olarak 1000 vard. Bu, knoppix g o kullancsnn, knoppix grubunun bir uyesi olduu anlamna geliyor. Ama /etc/group dosyasnda, knoppix g grubunun bilgilerinin arasnda uye olarak knoppix kullancsnn belirtilmediine dikkat edin. g

13.5

Gruplara ilikin notlar s

Baz sistemlerde, tm yeni kullanc hesaplar iin yeni bir grup alr ve yeni kullanc bu grupla ilikilenu c c s dirilir. Hatta o kullanc ve grubun numaralar dahi ayn verilir. Baz sistemlerde ise, tm yeni kullanc u hesaplar, bir standart users (kullanclar) grubuna uye yaplr. Bu fark tamamen sahip olduunuz g sistemde, sizin tercihinize kalmtr. Her kullanc iin birde grup oluturulmas, kendi dosyalar uzerins c s deki eriim haklarn daha kolay ayarlayabilmesi ve gvendii kiileri kendi grubuna uye yapabilmesi s u g s kolaylklarn da yannda getirir.

39

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

13.6

Elle kullanc ve grup yaratma

Simdi kendi kullanc ve grubunuzu yaratma ileminin nasl yaplacana bakalm. Bunu renmenin en s g og iyi yolu, sistemde elle yeni bir kullanc yaratmaktr. Balamadan nce EDITOR deikeninizin, en cok s o gs kullandnz editr olarak ayarlanp ayarlanmadn kontrol edelim: g o g
# echo $EDITOR vim

Eer ayarlanmamsa, aadaki komutla EDITOR deikeninizi ayarlayabilirsiniz: g s s g gs


# export EDITOR=/usr/bin/emacs

Simdi unu yazn: s


# vipw

Simdi /etc/passwd dosyasn, setiiniz editrle alm durumda greceksiniz. Sistemdeki passwd c g o c s o ve group dosyalarn dzenlemek istendiinde vipw ve vigr komutlarnn nemini kavramak gerekir. Bu u g o komutlar, sistem iin kritik olan passwd ve group dosyalarn aarken ekstra tedbirli olurlar ve ilem c c s sonrasnda doru biimde kapatlmasn (kilitlenmesini) salarlar. Bylece hayati nemi olan bu dosyalar g c g o o zarar grmez. o

13.7

/etc/passwd dosyasn d zenlemek u

Yukardaki komutlar yazdktan sonra /etc/passwd dosyanz karnza geldi. Simdi alttaki satr ekleyin: s
deneme:x:3000:3000:Deneme kullanicisi:/home/deneme:/bin/false

Bu satr sayesinde, sisteme deneme adl ve numaras 3000 olan bir kullanc eklemi olduk. Bu kuls lancy henz yaratmadmz ama numaras 3000 olan gruba uye yaptk. Istersek bu kullancy users u g grubuna da ekleyebilirdik. Bunun iin grup numaras olarak 3000 deilde, o grubun numarasn vermec g miz gerekirdi. Yeni kullancmz iin Deneme kullanicisi bilgisini ekledik, home dizinini /home/deneme c olarak belirledik ve standart kabuunu da /bin/false olarak ayarladk. Kabuk ayarn gvenlik amacyla g u /bin/false olarak setik. Eer bir test kullancs deilde normal bir kullanc yaratyor olsaydk, standart c g g kabuk olarak /bin/bash girecektik. Simdi deiiklikleri kaydedelim ve kalm. gs c

13.8

/etc/shadow dosyasn d zenlemek u

Simdi, bu yeni kullancmz iin /etc/shadow dosyasna yeni bir giri yapmamz gerekiyor. Bunun iin c s c vipw -s yaznca, daha nceden setiimiz editr, /etc/shadow dosyasyla birlikte karmza gelecektir. o c g o s Simdi, varolan kullanclardan (parolas olan ve standart sistem kullanclarndan daha uzun olan) bir tanesinin bilgilerini ieren satr kopyalayn: c
knoppix:$1$inZ2aQ4f$Us10Oa1moVCgbwXsx.a.E.:12167:0:99999:7:::

Buradaki kullanc adn, yeni oluturduunuz kullanc ad ile deitirin ve dier tm bilgilerin ayn s g gs g u kaldna (ifrelenmi parolann grnts dahil) dikkat edin. g s s ou uu
deneme:$1$inZ2aQ4f$Us10Oa1moVCgbwXsx.a.E.:12167:0:99999:7:::

Simdi kaydedip kn. c

13.9

Parola belirleme

Tekrar komut satrna dnm durumdasnz. Simdi, yeni kullancmz iin bir parola belirleme zaman: o us c
# passwd deneme Enter new UNIX password: (deneme kullanicisi icin bir parola girin) Retype new UNIX password: (deneme kullanicisi icin belirlediginiz parolay tekrar girin)

40

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

13.10

/etc/group dosyasn d zenlemek u

/etc/passwd ve /etc/shadow dosyalarn dzenledik. Simdi /etc/group dosyasnda yaplmas gereken ayaru lar inceleyelim. Bunun iin komut satrna unu yazalm: c s
# vigr

/etc/group dosyanz, editrle birlikte alm ve dzenlemelerinize hazr olarak karnzda duruyor. o c s u s Eer yeni yaratlan kullancy, varolan gruplardan birine uye yapacaksanz, bu dosyaya yeni bir grupla g ilgili bilgiler girmenize gerek yoktur. Ama yeni deneme kullancs iin bir grup yaratacaksanz aadaki c s g satr dosyaya eklemeniz gerekiyor:
deneme:x:3000:

imdi kaydedip kn. s c

13.11

Home dizin yaratma

s Ilemimiz bitmek uzere. Simdi de yeni kullancmzn home dizinini yaratmak iin aadaki komutlar c s g yazalm:
# # # # cd /home mkdir deneme chown deneme.deneme deneme chmod o-rwx deneme

Artk kullancmzn home dizini olmas gereken yerde ve hesap kullanma hazr. Eer bu hesab g kullanacaksanz, vipw ile deneme kullancsnn standart kabuk bilgisini /bin/bash olarak deitirmeniz gs gerekiyor. (Hatrlarsanz, gvenlik iin bu bilgi /bin/false olarak ayarlanmt) u c s

13.12

Hesap ynetim aralar o c

Bir kullancnn yaratlmasn ve ilgili ayarlarn nasl yaplacan grdk. Yeri geldike Linuxta vag o u c kit kazandrc eitli hesap ynetim ilerini greceiz. Ayrca unutmayn ki, bir komut hakknda bilgi c s o s o g aradnzda, klavuz sayfalar yardmnza koacaktr. g s newgrp: Standart ayarlar gerei, bir kullancnn yaratt dosya uzerindeki haklar ayarlanrken o g g kullancnn /etc/passwd dosyasndaki grup bilgileri de dikkate alnr. Eer o kullanc baka gruplara da g s uye ise, newgrp thisgroup yazarak, o anda bal olduu grubu thisgroup olarak deitirebilir. Bylece yeni g g gs o yaratt bir dosyann izinleri belirlenirken bu thisgroup grubu dikakte alnr. g chage: Bu komut /etc/shadow dosyasndaki parolann eskimesi ve deitirilmeye zorlanmas ile ilgili gs srelerin grntlenmesi ve deitirilmesi iin kullanlr. u ou u gs c gpasswd: Genel amal bir grup ynetim aracdr. c o groupadd/groupdel/groupmod: /etc/group dosyasna grup ekleme, silme ve dzenleme yapmak iin u c kullanlrlar. useradd/userdel/usermod: /etc/passwd dosyasna kullanc ekleme, silme ve dzenleme yapmak iin u c kullanlrlar. Bu komutlarn ayrca ok yararl baka fonksiyonlar da vardr. Bunun iin klavuz sayfalarna c s c bakabilirsiniz. pwconv/grpconv: passwd ve group dosyalarn, yeni nesil glgeli parola biimine dntrmekte kulo c o us u lanlrlar. Ancak artk Linux sistemlerinin tamamnda glgelenmi parola yntemi kullanldndan, bu o s o g komutlara hibir zaman ihtiyacnz olmayacaktr. c pwunconv/grpunconv: passwd, shadow ve group dosyalarn eski tip, glgelenmemi parola biimine o s c dntrmeye yararlar. Bu komutlara da hibir zaman ihtiyacnz olmayacaktr. o us u c

14
14.1

Kullanc ortamn ayarlama


fortune programna giri s

Kullandnz kabuun pek ok seenei vardr ve bunlar kendi keynize gre ekillendirebilirsiniz. Ancak g g c c g o s imdiye dek bu deiiklikleri kalc hale getirip her login oluunuzda otomatik olarak gerekleecek ekilde s gs s c s s nasl ayarlayabileceinize deinmedik. Simdiye dek bunlar her seferinden komut satrndan elle girmeniz g g

41

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

gerekiyordu. Bu blmde ise balang dosyalarn dzenleyerek ortamnz nasl zelletirebileceinize ou s c u o s g deineceiz. g g Balang olarak giri annda ilgin mesajlarla karlama iini ayarlayalm. Ornek bir mesaj grmek s c s c s s s o iin fortune komutunu altrn: c c s
$ fortune Dont Worry, Be Happy. -- Meher Baba

.bash prole Simdi yle bir ayarlama yapalm ki fortune komutu her login olduumuzda bir kere alsn. En o g c s sevdiiniz metin dzenleyiciyi kullanarak home dizininizdeki .bash g u prole dosyasn an. Eer byle bir dosya mevcut deilse yaratmaktan ekinmeyin. En baa u satr c g o g c s s yazn:
fortune

Simdi kabuktan kn ve tekrar girin. xdm, gdm ve kdm gibi bir grnt yneticisi kullanmyorsanz c ou u o sisteme giri yapar yapmaz elenceli bir mesaj ile karlaacaksnz: s g s s
login: Password: You will have good luck and overcome many hardships. $

login kabuu bash balatldnda home dizininizdeki .bash prole dosyasn okur ve oradaki her kog s g mutu komut satrndan girilmiesine altrr. Buna dosyay okuma (sourcing) denir. sc c s Bash, nasl balatldna bal olarak farkl davranr. Eer bir login kabuu olarak balatlrsa s g g g g s yukardaki gibi davranr yani nce sistem genelinde tanmlanm olan /etc/prole dosyasnda yazlanlar o s sonra da size zel /.bash o prole dosyasn okur ve buradaki komutlar uygular. Bash kabuunu login kabuu olarak altrmann iki yntemi vardr. Birinci yntem siz sisteme giri g g c s o o s yaptnzda (login) uygulanan yntemdir yani -bash isimli sre altrlr. Bunu sre listesinde de g o u c c s u c grebilirsiniz: o
$ ps u USER knoppix PID %CPU %MEM 5065 0.1 0.8 VSZ RSS TTY 3136 2128 ttyp0 STAT START S 11:04 TIME COMMAND 0:00 /bin/bash

Greceiniz liste muhtemelen ok daha uzun olacaktr ancak en azndan bir tane COMMAND stunu o g c u grmelisiniz ve bunun altnda da kabuunuzun ismi yazmal, bizim rneimizde /bin/bash yazd gibi. o g o g g

14.2

logini anlamak

Bash kabuuna login kabuu olarak almasn sylemenin bir yolu daha vardr: login komut satr g g c s o seeneini kullanarak. Bu seenek bazen terminal ykncleri (xterm gibi) tarafndan atklar bash c g c o u u u c oturumlarnn al esnasnda login mekanizmasn altrmak iin kullanlr. c s c s c Sisteme girdiinizde, kabuunuzun birka kopyas daha alyor olacaktr. Bu kabuklar login ile g g c c s balatlmadka veya srecin adnda bir tire (dash) olmadka, gerek anlamda sisteme giri kabuklar s c u c c s olmayacaklardr. Eer bir kabuk sizden bir bilgi isteme veya bir bilgi bekleme durumuna geerse interaktif g c kabuk olarak adlandrlr. Eer kabuk, sisteme giri kabuu deil ama interaktif olarak alrsa, /etc/prole g s g g c ve /.bash prole dosyalarn tanmayacak, kaynak olarak /.bashrc dosyasna bakacaktr. interactive login prolerc yes yes sourceignore yes no ignoresource no yes sourceignore no no ignoreignore

14.3

Interaktiiin test edilmesi g

rsh ve scp gibi komutlar altrldnda, kabuunuz gerekten interaktif olmad halde /.bashrc dosc s g g c g yasn kaynak olarak seebilir. Bu nemlidir, unk fortune komutundaki gibi grevi sadece ekrana birey c o c u o s yazmak olan komutlarla interaktif olmayan bu kabuk oturumlarn kolaylkla kirletebilirsiniz. Bu yzden, u balang dosyasndaki bir yazy ekrana yazdrmadan nce, halihazrda almakta olan kabuun PS1 s c o c s g deikenini kontrol ederek, gerekten interaktif bir kabuk olup olmadn denetlemek faydal olacaktr: gs c g 42

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

if [ -n "$PS1" ]; then fortune fi

14.4

/etc/prole ve /etc/skel

Sistem yneticisi olarak /etc/prole dosyasyla ok yakn ilikileriniz olacaktr. Her ne kadar ilk girite o c s s tm kullanclar tarafndan kullanlyor olsa da, bu dosyay alr konumda tutmak nemlidir. Ayrca u c s o yeni yaratlm kullanc hesaplarnn sisteme ilk girilerinde hereyin doru almasn salamak iin de, s s s g c s g c bu dosya gl bir aratr. uc u c Ama bazen, yeni kullanclar iin standartlar belirlemek isterken, bir yandan da deiiklikler yapma c gs hakkn o kullanclara vermek istersiniz. Bu durumda /etc/skel dizini devreye girer. Yeni bir kullanc hesab amak istediinizde kullandnz useradd komutu, /etc/skel dizini altndaki tm dosyalar, yeni c g g u yaratlan kullancnn home dizinine kopyalar. Dolaysyla, /etc/skel dizininin altna yardmc .bash prole ve .bashrc dosyalar koyarak, yeni kullanclarnza iyi bir balang sunabilirsiniz. s c

14.5

export

Kabuk deikenleri, tm yeni alan kabuklarda ayn ekilde kullanlmak amacyla iaretlenebilirler. Bu gs u c s s ilem ihra (export) iin iaretlenme olarak adlandrlr. Kendi kabuunuzda da ihra iin iaretlenmi s c c s g c c s s deikenlerin listesini grebilirsiniz. gs o
$ export declare -x HOME="/home/knoppix" declare -x HZ="100" declare -x LANG="tr_TR" declare -x LANGUAGE="tr" declare -x LOGNAME="knoppix" declare -x MAIL="/var/mail/knoppix" declare -x OLDPWD declare -x PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin: /usr/local/sbin:/usr/local/bin:/usr/games:." declare -x PWD="/home/knoppix" declare -x SHELL="/bin/bash" declare -x SHLVL="2" declare -x TERM="xterm" declare -x USER="knoppix"

14.6

Deikenlerin ihra iin iaretlenmesi gs c c s

Eer bir deiken ihra iin iaretlenmemise, yeni alan kabuklar bu deikenin ayarlarn gremeyecekg gs c c s s c gs o tir.Ancak, bir deiken export built-inine (ihra yerleiine) geirilerek kolaylkla iaretlenebilir: gs c sg c s
$ FOO=foo $ BAR=bar $ export BAR $ echo $FOO $BAR foo bar $ bash $ echo $FOO $BAR bar

Bu rnekte FOO ve BAR deikenleri ayarlanm durumdalar ama sadece BAR deikeni ihra iin o gs s gs c c iaretlendi. Yeni bir kabuk oturumu aldnda, FOO deeri kaybolacaktr. Bu yeni kabuk oturumu s c g g kapatldnda, orjinal kabuun hala hem FOO hemde BAR deerlerini koruduu grlecektir: g g g g ou
$ exit $ echo $FOO $BAR foo bar

43

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

14.7

Export ve set -x

Bu yap sayesinde, /.bash prole veya /etc/proleda yaratlan ve ayarlanan deikenler ihra iin gs c c iaretlendiinde, tekrar ayarlanmalarna gerek kalmaz. Ama baz deikenler ihra iin iaretlenemezler, s g gs c c s sistemin kalcl iin, bunlarn /.bashrc dosyasna ve prole konmas gerekir. Bu tercihler set yerleik g c s o zelliiyle (built-in) ayarlanr.: g
$ set -x

-x, kabuun altrd tm komutlar ayn zamanda ekrana da yazmasn salar: g c s g u g


$ echo $FOO + echo foo foo

Bunlar baz beklenmedik benzerlikleri ve kabuk davranlarn anlamamzda yardmc olur. -x tercihini s iptal etmek iin set +x yapmak yeterlidir. set yerleiiyle ilgili tm tercihleri bash klavuz sayfasnda c sg u bulabilirsiniz.

14.8

set ile deikenlerin ayarlanmas gs

set yerleii tercihe bal olarak, deikenlerin ayarlarnn yaplmas iinde kullanlabilir. Ancak bu tip sg g gs c kullanmlarda zorunlu deildir. Ornein set FOO=foo kabuk komutu FOO=foo ile tamamen ayn ii g g s yapar. Bir deikenin ayarlarnn iptal edilmesi de unset yerleii ile yaplabilir: gs sg
$ FOO=bar $ echo $FOO bar $ unset FOO $ echo $FOO

14.9

Unset ve FOO= fark

Aradaki fark sylemek her ne kadar zor olsa da, bu komutlar bir deikenin deerini sfrlamakla ayn o gs g ey deildir. Bunu anlamann bir yolu, set yerleiini, halihazrdaki tm deikenleri listelemesei iin s g sg u gs c parametresiz olarak armaktr: c g
$ FOO=bar $ set | grep ^FOO FOO=bar $ FOO= $ set | grep ^FOO FOO= $ unset FOO $ set | grep ^FOO

set yerleiini parametresiz olarak armakla export yerleiini kullanmak hemen hemen ayndr. sg c g sg Aradaki temel fark, set yerleii sadece ihra iin iaretlenmi olanlar deil, tm deikenleri listeler. sg c c s s g u gs

14.10

Komutlarn almalarn etkilemek iin ihra ilemi c s c c s

Cevre deikenlerini ayarlayarak, komutlarn almalarn etkilemek mmkndr. Yeni kabuk oturumlar gs c s u u u gibi, kabuk penceresi uzerinden altrdnz programlar da, sadece ihra iin iaretlenmi deikenleri c s g c c s s gs grebilecektir. Ornein man komutu, yaz dosyasnda bir sayfadan dierine geerken kullanaca program o g g c g iin PAGER deikenine bakar. c gs
$ PAGER=less $ export PAGER $ man man

Pager deikeninin less olarak ayarlanmas, man komutunun ekranda dosyann sadece bir sayfasn gs grntleyeceini, bir sonraki sayfaya gemek iin space tuunu bekleyeceini gsterir. Ama PAGER ou u g c c s g o deikenini cat olarak ayarlarsak, tm yaz dosyasnn tamam, ara vermeksizin, bir kerede grntlenegs u ou u cektir.
$ PAGER=cat $ man man

44

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

14.11

env kullanm

Biraz nceki ilemde, eer PAGER deikenini tekrar less olarak deitirmeyi unutursanz, man (ve o s g gs gs daha birok komut) grntleyecekleri yaz dosyalarn, bir kerede ara vermeden gsterecektir. PAGER c ou u o deikeninin sadece bir kereliine cat olarak ayarlanmasn isterseniz, env komutunu kullanmalsnz: gs g
$ PAGER=less $ env PAGER=cat man man $ echo $PAGER less

Bu durumda PAGER deikeni cat deeriyle birlikte ihra edilecektir, ancak kabuk oturumundaki gs g c PAGER deeri deimeden kalacaktr. g gs

15

Midnight Commander (MC)

Midnight Commander (MC), Norton Commander benzeri bir dosya yneticisi ve dizin grntleyicisidir. o ou u Yeni balayanlarn ok sevecei birok zellik ve ipucu ile, MC en hzl ve en kullanl ara kabul edilir. s c g c o s c Aslnda MCnin klavuz sayfas 2500 satra yakndr ama biz burada en nemli kullanm alanlarn ino celeyeceiz. Hemen hemen tm Linux datmlaryla birlikte gelen, dosya tama, kopyalama veya silme g u g s ilemlerini, hem yerel makinede, hemde ftp ile network uzerinden en hzl gerekletirmenizi salayacak s c s g olan MCyi altrmak iin komut satrna: c s c
$mc

yazmak yeterli. MCdeyken Ctrl-o seenei ile tekrar komut satrna dnebilir, yine ctrl-o ile mcye c g o geebilirsiniz. Ustte F9 tuu ile ulaabileceiniz men ubuu grnr. Ok tularyla bu men ubuunda c s s g uc g ou u s uc g gezinebilir, enter tuu ile de o seenee girebilirsiniz. Ekrann altnda da, MCde ska kullanlan fonksiyon s c g c tularyla ulaabileceiniz tercihler bulunur. Bazen bu tercihler siz ilgili tua bastnzda almayabilir. s s g s g c s Bu, fonksiyon tu takmnn farkl zellikler iin ayarland anlamna gelir. Bu durumda ilgili deiiklikleri s o c g gs yapmanz gerekecektir. Ayarlar Men ubuundan Options sekmesini seip Conguration ksmna girdiinizde yapabileceiniz u c g c g g ayarlar grebilirsiniz. Tab tuuyla tercihler arasnda gezip space tuuyla da tercihi aktif hale getirebilir o s s veya aktif olan bir tercihi iptal edebilirsiniz. Buradaki ayarlardan bir tanesi lynx-like motion dur. Bu tercih aktif olduunda bir dizinin iine girmek iin sa ok tuu, bir nceki dizine dnmek iinde sol ok g c c g s o o c tuu kullanlabilir. Bylece enter tuuna bal kalmaktan kurtulmu olursunuz. s o s g s

15.1

Dizin panelleri arasnda gezinme

Grntnz temel olarak iki ayr paraya blnm gibidir. Sada ve solda bulunan bu paneller buou u u c o u us g lunduunuz dizinlerinin ieriklerini grntlemenizi salar. Bir panelden dierine tab tuuyla geebilirsig c ou u g g s c niz. Aktif olan panel, iaretlenmi olandr ve herhangi bir operasyonda kaynak olarak bu iaretli dosya s s s alnacaktr. Kopyalanacak iaretli dosya dier paneldeki dizine kopyalanacaktr. Tab tuuyla paneller s g s arasnda gezinip, yukarda anlattmz gibi, ilgili hedef dizini bulduktan sonra tekrar tabla eski dosg yaya dnp F5 ile kopyalama ilemini gerekletirebilirsiniz. Tm kopyalama ilemleri iin kullancdan o u s c s u s c dorulama istenecektir, o yzden bir hata olduunda geri dn yaplmas kolaydr. Ayrca insert tuu g u g o us s yardmyla birden fazla dosyay seebilir, - veya + tularna basarak, joker karakterler yardmyla toplu c s dosya transferleri gerekletirebilirsiniz. F6 yeniden adlandrma / tama, F5 kopyalama, F8 silme iindir. c s s c Yeni bir dizin yaratmak iinde F7yi kullanabilirsiniz. Dosya dzenleme c u F4 ile iaretli dosyann ierisine girebilir ve ilgili haklara sahipseniz dosya uzerinde dzenleme yapas c u bilirsiniz. F4 size mcedit programn aracaktr. Kullanm ok basit olan bu programla, dosya uzerinde c g c ilgili deiiklikleri yaptktan sonra F2 ile kaydedip F10 ile mceditten kabilirsiniz. gs c

15.2

Fare destei g

Midnight Commander, fare destei de salar. Dosyalar iaretlemek, bir dizinin iine girmek, veya bir g g s c menuyu amak iin fare ile tklamanz yeterlidir. Caltrlabilir dosyalar da iki kere tklayarak altrac c s c s bilirsiniz. Ama yine de klavyenin ok daha kullanl olacan greceksiniz. c s g o

45

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

15.3

FTP ilemleri s

Sol ya da sa panelin mensnden FTP balantsn seerek, alan pencereye FTP adresini girdiinizde, g uu g c c g panellerden birinin FTP uzerinden ulaabileceiniz bir alan gstermesini ve yerel makineniz ile bu FTP s g o alan arasnda dosya transferleri yaplmasn salayabilirsiniz. g

16
16.1

Linux Dosya Sistemi


Blok Aygtlar

Bu blmde linux dosya sistemini ayrntl inceleyeceimizden bir sistem yneticisinin bilmesi gereken tm ou g o u detaylardan haberdar olacaksnz. Balang olarak blok aygtlar ile giri yapacaz. Bir linux sisteminde en s c s g c ok bilinen blok aygtlardan birtanesi de IDE srcsdr. Sistemde /dev/hda olarak temsil edilmektedir. uu uu u Eer sisteminiz SCSI src ile alyorsa bu durumda ilk sabit srcnz /dev/sda olacaktr. g uu u c s uu u u Yukarda belirtilen blok aygtlar disk iin soyut bir arayz tekil eder. Kullanc programlar srcnc u s uu u u zn IDE ya da SCSI olmas ile ilgilenmeksizin disk ile iletiiminde bu blok aygtlar kullanrlar. Program u s temelde disk uzerindeki alan, bitiik desteler eklinde ve rastgele-eriilebilir 512lik byte bloklar eklinde s s s s adresler (bler). o

16.2

T m Diskler ve Bl mler u ou

Linux altnda, mkfs olarak adlandrlan zel bir komuta belirli bir blok aygt komut satr parametresi o olarak vererek dosya sistemleri yaratrz. Teorik olarak tm diski /dev/hda veya /dev/sda gibi belli bir dosya sistemine ev sahiplii yapacak u g ekilde tek bir blok aygt olarak kullanmak mmkn olsa da (bir tanesi tm diski temsil edecek ekilde) s u u u s pratikte bu kullanm neredeyse hi tercih edilmez. Bunun yerine tm blok aygtlar, blm (partition) c u ou denilen daha kuk ve ynetimi daha kolay paralara ayrlrlar. Blmler, fdisk denilen ve her disk uc o c ou uzerinde saklanan blm tablosunu yaratmaya ve dzenlemeye yarayan bir ara ile oluturulmaktadr. ou u c s Blm tablosu tm diskin nasl blneceini tam olarak belirler. ou u ou g

16.3

fdisk Kullanm

fdisk kendisine verilen seenekleri yardmyla kullanlabilir. Bu seenekleri ve fdisk hakknda ayrntl c c bilgiyi man fdisk yazarak alabilirsiniz. Fdiski altrmak iin bir aygt ismini de vermeniz gerekir Simdi gelin hem fdiski kullanalm hem de c s c bir blm nce silip sonra yeniden yaratalm: ou uo
# fdisk /dev/hda The number of cylinders for this disk is set to 4865. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)

g imiz ilemi yapabiliriz. Tm komutlar listelemek iin m yazp entera basarsak aadaki gibi bir s u c s g liste greceiz o g
Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes

46

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

s t u v w x

create a new empty Sun disklabel change a partitions system id change display/entry units verify the partition table write table to disk and exit extra functionality (experts only)

Command (m for help):

fdisk ile belli bir aygt uzerinde yer alan blmler hakknda dorudan bilgi almak iin -l parametresi ou g c aygt ad ile birlikte kullanlr. Yani:
# fdisk -l /dev/hda Disk /dev/hda: 40.0 GB, 40020664320 bytes 255 heads, 63 sectors/track, 4865 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot /dev/hda1 * /dev/hda2 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 Start 1 1024 1024 2317 2398 4514 End 1023 4865 2316 2397 4513 4865 Blocks 8217216 30860865 10385991 650601 16996738+ 2827408+ Id 7 f b 82 83 83 System HPFS/NTFS Win95 Extd (LBA) Win95 FAT32 Linux swap Linux Linux

Bu rnekte gryoruz ki sistemimizde hda6, hda7 ve hda8 adnda ve linux ile ilikili 3 adet blm o ou s ou yeralmaktadr. Bu blmlerden hda6 ile belirtilen linux swap dosya sistemini, hda7 root denilen ana ou dizinlerin yer ald dosya sistemini ve hda8 de uunc bir dosya sistemini temsil etmektedir. Daha da g c u yukarda da windows ile ilikili dosya sistemlerini grmekteyiz. Tabloda her blmn balad ve bittii s o uu u s g g silindir numaralar da ayrntl olarak grlmekte ve her blmde yer alan bir dosya sistemi iin de id ou ou c numaras verilmektedir. Linux ile ilikili dosya sistemleri 83 nolu id ile belirlenir. s Son olarak yine ayn amaca ynelik ve daha grsel bir men sunan cfdisk aracn da kullanabilirsiniz. o o u Bu ara size bir menu salamakta ve yapmak istediiniz tm ilemleri bu men ile kolaylkla yapmanza c g g u s u olanak salamaktadr. Sisteminizde bu program varsa sadece cfdisk yazarak altrabilirsiniz: g c s
# cfdisk

PClerin ilk zamanlarnda blm yapc programlar sadece drt blm oluturmaya (bunlara birincil ou o ou s -primary- deniyordu) izin veriyorlard. Bu ok snrlaycyd, o yzden uzatlm(extended) blm diye c u s ou bir yntem ile bu snrlama ald. Uzatlm blm, birincil blme ok benzer ve yine drt blmlk o s s ou ou c o ou u snrlamann iinde kalrlar. Fakat uzatlm blmlerin iine istediiniz kadar mantksal (logical) blm c s ou c g ou koyabilirsiniz, bylece drt blm snr da alm olur. o o ou s s

16.4

fdisk Kullanm, Devam

Command (m for help): p Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders Units = cylinders of 15120 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 14 105808+ 83 Linux /dev/hda2 15 49 264600 82 Linux swap /dev/hda3 50 70 158760 83 Linux /dev/hda4 71 2184 15981840 5 Extended /dev/hda5 71 209 1050808+ 83 Linux /dev/hda6 210 348 1050808+ 83 Linux /dev/hda7 349 626 2101648+ 83 Linux /dev/hda8 627 904 2101648+ 83 Linux /dev/hda9 905 2184 9676768+ 83 Linux Command (m for help):

Bu rneimizde, hda1den hda3e kadar birincil blmleri grmekteyiz. hda4 ise hda5ten hda9a kadar o g ou o mantksal srcleri ieren uzatlm bir blmdr. O halde demek ki hda4 blmn tek bana bir dosya uu u c s ou u ou u u s 47

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

sistemi barndracak ekilde kullanamyoruz. Grldu gibi bu uzatlm blm hda5ten hda9a kadar s o u ug s ou olan blmler iin bir tayc vazifesi grmektedir. Ayrca grldu gibi her blm bir id ya da ou c s o o u ug ou blm tipi denilen bir deere sahiptir. Yeni bir blm yarattnz zaman bu blm tipi nin dzgn ou g ou g ou u u ayarlandndan emin olmanz gerekmektedir. Linux dosya sistemi barndracak olan blmler iin blm g ou c ou tipi olarak 83 deeri doru bir seim olacaktr. Linux swap dosya sistemini barndracak blmler iin g g c ou c de bu deer 82 olmaldr. g fdisk komutunda t parametresini kullanarak blm tipini ayarlayabilirsiniz. Linux ekirdei al ou c g c s srasnda disk uzerindeki dosya sistemlerini ve swap aygtlarn otomatik tanmak iin blm tipi ayarlarn c ou kullanmaktadr.

16.5

Fdisk ve Otesi

fdisk ile yapabileceimiz yeni disk yaratmak (n komutu ile), deiiklikleri diske yazmak (w komutu ile) ve g gs daha birok ilemin olduunu syleyebiliriz. Hatrlarsanz m yazarak yardm alabiliyorduk. Eer fdisk kulc s g o g lanm konusunda tecrbesizseniz size, ierisinde nemli saylabilecek bilgi iermeyen ayr bir disk uzerinde u c o c bu program kullanarak kavramaya almanz neririz. Bir defa blmleri yaratp diske yazdnzda, c s o ou g yeni blm blok aygtlarnz kullanma hazr demektir. Bu yeni blok aygtlar yeni linux dosya sistemlerini ou saklamak amacyla kullanacaz. g

16.6

Dosya Sistemlerini Yaratmak

Bir blok aygt dosyalar barndrmak amacyla kullanlmadan nce, bu aygt uzerinde yeni bir dosya sistemi o yaratmamz gerekmektedir. Bu ilem iin mkfs komutunu kullanrz. Kullanacamz mkfs, yaratmak s c g istediimiz dosya sisteminin tipine gre deimektedir. Bu rnekte, bo ve kullanlmayan blok aygt olan g o gs o s /dev/hda8 uzerinde ext2 dosya sistemi yaratmak iin mke2fs kullanyoruz: c
# mke2fs /dev/hda8 mke2fs 1.32 (09-Nov-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 354112 inodes, 706852 blocks 35342 blocks (5.00%) reserved for the super user First data block=0 22 block groups 32768 blocks per group, 32768 fragments per group 16096 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

Yukardaki rnekte az nce de sylediimiz gibi mke2fs komutu /dev/hda8 uzerinde ext2 dosya sistemi o o o g yaratt.

16.7

Dosya sistemlerini mount etmek

Bir dosya sistemini oluturduktan sonra onu mount edebiliriz. s


# mount /dev/hda8 /mnt/usrDeneme

Bir dosya sistemini mount etmek iin, disk blm blok aygtn ilk argman olarak ve bir mount c ou u u (balama) noktasn ikinci argman olarak belirtmek gerekir. Yeni dosya sistemi artk szkonusu balant g u o g noktasndan eriilebilir olacaktr. Bu ayn zamanda /mnt dizini altndaki dosyalar saklama etkisi de yapas bilir. Szkonusu dosya sistemi umount ilemine tabi tutulduunda artk buradaki eski dosyalar grnmezo s g ou ler. umount komutunu kullandktan sonra /mnt altndaki yeni balanma noktasna eklenen yeni dosya ve g dizinler artk yeni dosya sisteminde yeralr. 48

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

16.8

Takas bl m oluturmak ve kullanmak ou u s

Takas aygt olarak kullanlmak uzere bir disk blm oluturduysak, bunu mkswap komutu ile dzenle ou u s u yebiliriz. Doal olarak bu komutun argman blm blok aygt olacaktr. g u ou Not: Burada mkswap PATH deiskeninin gsteridii dizlerin altnda ntanml olarak yer almayabilir. g o g o Bunun iin /sbin dizini de PATH deikenine eklemek ya da komutu /sbin/mkswap eklinde kullanmak c gs s gerekecektir.
# mkswap /dev/hdc6

Geleneksel dosya sistemlerinin aksine takas blmleri mount edilmez. Bunun yerine swapon komutu ou ile aktif hale getirilirler.
# swapon /dev/hdc6

Normalde, Linux sisteminizin balang betikleri, otomatik olarak takas blmlerini etkin hale getis c ou recektir. Bu yzden swapon komutu takas blmlerini o an kullanmak istediinizde kullanlr. Mevcut u ou g takas aygtlarn grmek iin, cat /proc/swaps komutunu vermeniz gerekir. o c

16.9

Mount edilmi dosya sistemlerini grmek s o

Hangi dosya sistemlerinin mount edildiini grmek iin mount komutunu tek bana altrn. g o c s c s
$ mount /dev/hda7 on / type xfs (rw) none on /proc type proc (rw) none on /proc/bus/usb type usbdevfs (rw) none on /dev type devfs (rw) none on /dev/pts type devpts (rw,mode=0620) none on /mnt/cdrom type supermount (ro,dev=/dev/hdc,fs=auto,--,iocharset=iso8859-1, codepage=850,umask=0) none on /mnt/floppy type supermount (rw,sync,dev=/dev/fd0,fs=auto,--,iocharset=iso8859-1, codepage=850,umask=0) /dev/hda5 on /mnt/win_d type vfat (rw,iocharset=iso8859-1,codepage=850,umask=0) automount(pid1505) on /misc type autofs (rw,fd=7,pgrp=1505,minproto=2,maxproto=4) automount(pid1526) on /net type autofs (rw,fd=7,pgrp=1526,minproto=2,maxproto=4) /dev/hda1 on /mnt/win_c type ntfs (ro,iocharset=iso8859-1,umask=0)

Benzer bilgilere cat /proc/mounts yazarak da erimeniz mmkn. Baz Linux sistemlerinde devfs s u u sistemi kullanldndan, bu komutun ktsnn ilk satrnda root blm blok aygtnn uzun bir yolu g c ou bulunmaktadr. Root dosya sistemi, kernel tarafndan al srasnda otomatik olarak mount edilmekc s tedir. Devfs aygt-ynetim dosya sistemini kullanan yeni sistemlerde /dev altnda artk blm ve disk blok o ou aygtlarnn eskiden kullanlan isimleri bulunmamaktadr. Mesela /dev/ide/host0/bus1/target0/lun0/part7 /dev/hdc7 nin asl addr ve /dev/hdc7 asl blok aygtna bir sembolik linktir. Sisteminizin devfs kullanp kullanmadn /dev/.devfsd dosyasnn olup olmadna bakarak grebilirsiniz. Eer varsa devfs aktif g g o g demektir.

16.10

Mount Seenekleri c

mount seeneklerini kullanarak mount edilecek dosya sisteminin eitli zelliklerini zelletirmek mmc c s o o s u kndr. Mesela ro seeneini kullanarak bir dosya sitemini sadece okunabilir (read only) halde yaratau u c g bilirsiniz.
# mount /dev/hda8 /mnt/usrDeneme -o ro

/dev/hda8 in /mnt altna bu seenek ile mount edilmesi sonucunda /mnt altnda hi bir dosya c c deitirelemez, sadece okunabilir. Eer dosya sisteminiz zaten okuma/yazma modunda mount edilmise gs g s ve bunu sadece okunabilir moda deitirmek istiyorsanz sistemi nce umount sonra da tekrar mount gs o etmek yerine remount seeneini kullanabilirsiniz. c g 49

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

# mount /mnt/usrDeneme -o remount,ro

Dikkat ediniz burada blm blok aygt belirtmedik. Cunk dosya sistemi zaten mount edilmi haldedir ou u s ve mount komutu /mnt/usrDeneme nin /dev/hda8 ile ilikili olduunu zaten bilmektedir. Dosya sistemini s g tekrar yazlabilir hale getirmek iin tekrar remount kullanyoruz: c
# mount /mnt/usrDeneme -o remount,rw

Sunu belirtmek gerekir ki eer herhangi bir sre /mnt altndaki dosya ya da klasrlerden bir tanesini g u c o kullanyorsa remount komutlar dzgn olarak almayacaktr. Yani bir mount edilen bir dosya ierisinde u u c s c sadece ls komutnu altryor olsak bile bu durumda iken umount almayacaktr: c s c s
# cd usrDeneme/ # ls buBolumHakkinda.txt deneme/ # umount /mnt/usrDeneme/ umount: /mnt/usrDeneme: device is busy

Linux altnda tm mount seenekleri hakknda ayrntl bilgi almak istiyorsanz man mount yazmanz u c yeterlidir.

16.11

fstab, Giri s

Su ana kadar el yordamyla mount ilemin nasl yapabileceimizi grdk. Genel olarak belli bir kurala gre s g o u o dzenli bir ekilde mount etmeniz gereken bir dosya sistemi olduunda el yordamyla mount etmek biraz u s g karmak ve zor bir ilem haline gelecektir. Ayrca baz dosya sitemleri iin de, mesela /var dosya sistemi, s s c zaten el yordamyla mount ilemi imkanszdr. Sonuta el yordamyla mount yerine eer varsa byle s c g o dosya sistemlerini al srasnda otomatik bir ekilde mount etmek gerekir. Bunu sisteme yaptrmak iin c s s c yapmamz gereken tek ey /etc/fstab dosyasna uygun satrlar eklemek olacaktr. Bir dosya sisteminin s al srasnda otomatik olarak mount edilmesini tercih etmeseniz bile, /etc/fstab dosyasna yazlacak c s satrlar ile bu ilemin ok kolay bir ekilde yaplabileceini sylemeliyiz. s c s g o

16.12

Ornek bir fstab Dosyas

Gelin rnek bir /etc/fstab dosyasn inceleyelim: o


# cat /etc/fstab # <fs> <mountpoint> <type> <opts> <dump/pass> /dev/hda7 / xfs defaults 1 1 none /dev/pts devpts mode=0620 0 0 none /mnt/cdrom supermount dev=/dev/hdc,fs=auto,ro,--,iocharset=iso8859-1, codepage=850,umask=0 0 0 none /mnt/floppy supermount dev=/dev/fd0,fs=auto,--,iocharset=iso8859-1, sync,codepage=850,umask=0 0 0 /dev/hda8 /mnt/usrDeneme ext3 noauto,noatime 1 2 /dev/hda1 /mnt/win_c ntfs iocharset=iso8859-1,ro,umask=0 0 0 /dev/hda5 /mnt/win_d vfat iocharset=iso8859-1,codepage=850,umask=0 0 0 /dev/hda6 swap swap defaults 0 0 # /proc should always be enabled proc /proc proc defaults 0 0

Yukardaki /etc/fstab dosyasnn iinde aktif haldeki (banda # iareti olmayan) her satr bir blm c s s ou blok aygt, bir balanma noktas, bir dosya sistemi eidi, dosya sistemi balanrken kullanlan dosya g c s g sistemi seenekleri ve iki adet saysal alan iermektedir. c c Birinci saysal alan dump back up komutuna yedeklenecek dosya sistemlerini bildirir. Eer sistemig nizi yedeklemeyi dunmyorsanz tabi ki bu sayy gz ard edebilirsiniz. Son say ise dosya sistemi us u o btnlun kontrol eden fsck tarafndan kullanlmaktadr ve bu programa al srasnda dosya sisteu u ug u c s minin hangi srada kontrol edilmesi gerektiini anlatr. fsck birka noktada tekrar deineceiz. g c g g /dev/hda8 yazl satr incelediimizde ext3 dosya sistemine sahip olduunu ve /mnt/usrDeneme g g altndan mount edildiini grmekteyiz. Ayn satrda /dev/hda8 in mount seeneklerine baktmzda g o c g unlar grmekteyiz: noauto, al srasnda bu dosya sisteminin otomatik olarak mount edilmemesi ges o c s rektiini syler. Bu seenek olmadan /dev/hda8 al srasnda /mnt/usrDeneme altna otomatik olarak g o c c s mount edilecektir. 50

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

noatime seenei ile de disk uzerindeki atime (son eriim zaman) kaydnn tutulmamas salanmakc g s g tadr. Bu bilgi genelde gerekli deildir ve bu zelliin kaldrlmas dosya sistemi uzerinde performans g o g artna neden olmaktadr. nodiratime mount seenei ile de dizinler uzerindeki atime gncellemesini de s c g u iptal edebilirsiniz.

16.13

Ornek bir fstab, Devam

# <fs> <mountpoint> <type> <opts> <dump/pass> /dev/hda7 / xfs defaults 1 1 none /dev/pts devpts mode=0620 0 0 none /mnt/cdrom supermount dev=/dev/hdc,fs=auto,ro,--,iocharset=iso8859-1, codepage=850,umask=0 0 0 none /mnt/floppy supermount dev=/dev/fd0,fs=auto,--,iocharset=iso8859-1, sync,codepage=850,umask=0 0 0 /dev/hda8 /mnt/usrDeneme ext3 noauto,noatime 1 2 /dev/hda1 /mnt/win_c ntfs iocharset=iso8859-1,ro,umask=0 0 0 /dev/hda5 /mnt/win_d vfat iocharset=iso8859-1,codepage=850,umask=0 0 0 /dev/hda6 swap swap defaults 0 0 # /proc should always be enabled proc /proc proc defaults 0 0

Simdi de /proc yazl satra bir gz atalm. Buradaki default seeneine dikkat edin. Eer bir dosya sis o c g g temin standart mount seenekleri ile mount etmek isterseniz defaults seeneini kullanmalsnz. /etc/fstab c c g dosyasnda birok alan yer ald iin seenek alanmz bo brakamayz. Ayrca /dev/hda6 satrna da c g c c s gz atalm. Bu satr /dev/hda6y swap aygt olarak belirlemektedir. Swap aygtlar dier dosya sistemo g leri gibi mount edilmediinden, mount noktas ksmna swap yazldn grmekteyiz. /etc/fstab dosyas g g o sayesinde /dev/hda6 swap aygtmz al srasnda otomatik olarak aktif hale gelecektir. c s Aadaki gibi yazmak yerine, yukarda olduu gibi bir /etc/fstab ierisinde /dev/cdrom kullanarak s g g c CD-ROM srcy mount etmek daha kolay hale gelecektir. uu u u
# mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro

artk yle yazlabilir: so


# mount /dev/cdrom

/etc/fstab dosyasn kullanmak user seeneinin verecei avantajdan yararlanmamz salar. user c g g g mount seenei, sisteme ilgili dosya sisteminin herhangi bir kullanc tarafndan mount edilebileceini c g g bildirir. Ayrca users ile de tm kullanclarn ilgili aygt mount edebileceiniz belirleyebiliriz. CD-ROM u g gibi tanabilir aygtlar iin bu zellik ok kullanldr. Bu mount seenei olmasayd sadece root kullanc s c o c s c g CD-ROM srcy mount edebilirdi. uu u u

16.14

Dosya sistemlerini Unmount Etmek

Genelde sistem yeniden balatldnda ya da kapatlrken mount edilmi tm dosya sistemleri otomatik s g s u olarak unmount edilir. Bir dosya sistemi unmount edilecei zaman geici bellekte bekleyen herhangi bir g c dosya sistemi bilgisi diske yazlr. Ayrca el yordam ile de istenirse unmount ilemi gerekletirilebilir. Bir dosya sistemini unmount s c s etmeden nce bu sistem uzerinde herhangi bir sre tarafnda alm ya da kullanlan dosya olmadndan o u c c s g emin olmalyz. Bu durum salandnda aygt adn ya da balama noktasn parametre olarak girerek g g g unmount komutunu kullanabiliriz.
# umount /mnt

veya
# umount /dev/hdc6

unmount sonrasnda, /mnt altnda nceden mount edilmi sistemin kapsad dosyalar yeniden belio s g recektir.

51

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

16.15

fsckya Giri s

Eer sistemimiz bir ekilde kilitlenir ya da bozulursa, sistem dzgn bir ekilde dosya sistemlerini unmount g s u u s etmeyi baaramayacaktr. Bu durumda dosya sistemi gvensiz bir durum ierisine girmi olur. Sistem s u c s tekrar balatldnda fsck bu dosya sistemlerinin dzgn bir ekilde unmount edilmediini saptayacak ve s g u u s g /etc/fstab ierisinde listelenen dosya sistemlerinin btnlun kontrol etmek isteyecektir. c u u ug u Sunu nemle belirtmek gerekir ki, fsck tarafndan kontrol edilecek bir dosya sisteminin /etc/fstab o dosyasnda yer alan satrnda, pass alannda (son alan) sfr olmayan bir say olmaldr. Tipik olarak kk dosya sisteminin passno deeri 1 saysdr ki bu kk dizinin ilk olarak kontrol edilecek dosya sistemi o g o olacan belirler. Kontrol edilecek dier tm dosya sistemlerinin de passno alanna benzer ekilde 2 ya g g u s da daha byk bir deer verilmelidir. u u g Bazen sistemin yeniden balatlmas srasnda fscknn ksmen zarar grm bir diski tam olarak onas o us ramadn grrz. Byle durumlarda sistemi tek kullanc alr hale getirerek fscky el yordamya g ouu o c s c s altrmak gerekir. Bu kullanmda kontrol edilecek blok aygt fsckya parametre olarak gndeririz. fsck o dosya sistemi tamiratn gerekletirirken ksmi dosya sistemi zararlarn dzeltip dzeltmeyeceini sorac s u u g caktr. Genel olarak bu sorulara y (yes) cevab vererek fscknn sistemi onarmasn salamalyz. g

16.16

fsck ile Ilgili Problemler

Disk uzerinde yer alan bilgilerin btnlunn kontrol edilebilmesi iin fsck btn diski taramaktadr. u u ug u c uu Bu problemlerden bir tanesidir. Ozellikle ok byk dosya sistemlerinde fscknn almasnn bir saatten c u u c s daha da uzun srmesi beklenen bir durumdur. u Bu problemi zmek iin journaling denilen yeni bir dosya sistemi gelitirilmitir. Journaling dosya co c s s sistemi disk uzerindeki dosya sistemi ierisinde yaplan deiikleri disk uzerinde gnlk dosyasna kayde c gs u u der(log le). Sistemde meydana gelen bir arza durumunda dosya sistemi srcs bu gnlk dosyasn uu uu u u aratrr. Bu dosya son deiiklerin tam bilgisini tuttuu iin sadece bu ksmlarn hatalar iin kontrol s gs g c c edilmesi yeterlidir. Bu yeni tasarm sayesinde dosya sisteminin byklune bal olmakszn, fscknn u u ug g kontrol etme ilemi sadece birka saniye srmektedir. Bu yzden Linux camiasinda journaling dosya s c u u sistemlerinin poplaritesi artar hale gelmitir. u s Simdi gelin Linuxun deiik dosya sistemlerine bir gz atalm. gs o

16.17

ext2 Dosya Sistemi

Uzun yllardr ext2 dosya sistemi linux iin standart haline gelmi durumdadr. Bu dosya sistemi birok c s c uygulama iin iyi bir performans sergilese de yukarda bahsettiimiz journaling yeteneine sahip deildir. c g g g fscknn almas ok uzun zaman alacandan byk dosya sistemleri iin ext2nin bu zellii uygunsuzc s c g u u c o g luk yaratr. Buna ek olarak her ext2 dosya sisteminin tayabilecei inode says snrl olduundan, ext2 s g g dosya sisteminin baz yapsal kstlamalar vardr. Tm bu bilgilerle ext2 iin olduka salam ve verimli u c c g ancak non-journalised bir dosya sistemidir diyebiliriz. Yer ald ekirdekler: 2.0+ g c journaling yetenei: yok g mkfs komutu: mke2fs mkfs rnei: mke2fs /dev/hdc7 o g ilgili komutlar: debugfs, tune2fs, chattr performans ile ilgili komut seenekleri: noatime, nodiratime c

16.18

ext3 Dosya Sistemi

Bu dosya sistemi diski ext2 ile ayn ekilde biimlendirir ancak journaling yeteneini de kazandrr. s c g Aslnda tm Linux dosya sistemleri ierisinde ext3 en kapsaml journaling desteine sahip olandr. Sau c g dece dkman zelliklerini (metadata) kaydetmek yerine ayrca tm dkman zellikleri art bilgilerin o u o u o u o de journaling kaydn tutar. Bu zel journaling yetenei sadece fscknn almasn ksaltmakla kalmaz o g c s ayrca bilgi btnlunn salanmasna da yardmc olmaktadr. Bu yzden bilgi btnlunn en nemli u u ug u g u u u ug u o o ncelie sahip olduu sistemler iin en iyi dosya sistemi ext3 olacaktr. Fakat baz durumlar iin bu bilgi g g c c btnlu performans etkilemektedir. Buna ek olarak ext3 dosya sistemi diski ext2 ile ayn ekilde u u ug s

52

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

biimlendirdii iin yukarda bahsedilen ext2 snrlandrmalarndan nasibini almaktadr. Eer olduka c g c g c salam genel amal ve journalised yeteneine sahip bir dosya sistemine ihtiya duyuyorsanz ext3 iyi bir g c g c seim olacaktr. c Yer ald ekirdek: 2.4.16+ g c journaling: metadata, ordered data writes, full metadata+data mkfs komutu: mke2fs -j mkfs rnei: mke2fs -j /dev/hdc7 o g ilgili komutlar: debugfs, tune2fs, chattr performans ile ilgili mount seenekleri: noatime, nodiratime c dier mount seenekleri: g c * data=writeback (disable journaling) * data=ordered (the default, metadata journaling and data is written out to disk with metadata) * data=journal (bilgi ve dosya ozellikleri btlu iin tam data journaling. Yazma perfor u u ug c mansn yarya durr) us u ext3 kaynaklar: * Andrew Mortons ext3 page * Andrew Mortons excellent ext3 usage documentation (recommended) * Advanced lesystem implementors guide, part 7: Introducing ext3 * Advanced lesystem implementors guide, part 8: Surprises in ext3

16.19

ReiserFS Dosya Sistemi

ReiserFS dosya sistemi kuk dosya performans, ok iyi genel performans, ve kolay leklendirilebilirlik uc c oc (blmlenebilir) amacyla tasarlanm ve dierlerine nazaran olduka yeni bir dosya sistemidir. ReiserFS ou s g c dosya sistemi uzun sren fsckdan kurtulmak amacyla dosya zellikleri (metadata) gnlu kullanr. u o u ug Ancak gnlk gereklemesi (implementation) sistem kilitlenmesi durumunda son deiiklerin yapld u u c gs g bilginin bozulmasna izin verir. Genel olarak ReiserFS ok iyi bir performans sergilemektedir. Ancak c baz dosya sistemi ykleri iin garip performans davranlar sergilemektedir. Buna ek olarak ReiserFSin u c s fsck arac henz balang aamasnda olduundan bozulmu bir dosya sisteminden bilgi kurtarmakta u s c s g s zorlanabilirsiniz. ResiserFSin yeni olmasndan kaynaklanan bu konular yznden bu dosya sisteminin u u geliimi halen devam etmektedir. Hz ve leklendirilebilirlii yznden birok kii tarafndan tercih s oc g u u c s edilmektedir. Yer ald ekirdekler: 2.4.0+ (2.4.16+ nerilen) g c o gnlk tutma(journaling): dosya zellikleri (metadata) u u o mkfs komutu: mkreiserfs mkfs rnei: mkreiserfs /dev/hdc7 o g performans ile ilgili mount seenekleri: noatime, nodiratime, notail c ReiserFS Kaynaklar: * The home of ReiserFS * Advanced lesystem implementors guide, Part 1: Journalling and ReiserFS * Advanced lesystem implementors guide, Part 2: Using ReiserFS and Linux 2.4

53

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

16.20

XFS Dosya Sistemi

XFS dosya sistemi SGI tarafndan Linuxa port edilmi, gnlk tutan bir dosya sistemidir. XFS henz s u u u mevcut ekirdee yerletirilmemitir. XFS hakknda geni bilgi almak iin http://oss.sgi.com/projects/xfs c g s s s c sayfasn ziyaret edebilirsiniz. XFSe giri iin Advanced lesystem implementors guide, Part 9: Introdus c cing XFS dkmann okuyabilirsiniz. o u

16.21

JFS Dosya Sistemi

JFS yksek performansl gnlk tutan ve Linuxe IBM tarafndan port edilmi bir dosya sistemidir. u u u s JFS IBM enterprise sunucular tarafndan kullanlr ve yksek performans iin dizayn edilmitir. JFS de u c s mevcut kernel ierisine henz yerletirilmemitir. JFS projesi web sitesinde bu dosya sistemi hakknda c u s s daha ayrntl bilgi bulabilirsiniz.

16.22

VFAT Dosya Sistemi

VFAT dosya sistemi Linux dosyalarn depolayabileceiniz gerek bir dosya sistemi deildir. Daha ziyade g c g DOS ve Windows FAT tabanl iletim sistemleri ile dosya paylamna ve deiimine olanak salayan DOS s s gs g uyumlu bir dosya sistemi srcsdr. VFAT dosya sistemi srcs standart Linux ekirdei ierisinde uu uu u uu uu c g c yer almaktadr.

17

Sistemi Balatmak s

Bu blmde Linux sistem al ileminden bahsedilmektedir. Burada boot ykleyicisi kavramn, alta ou c s s u c s c ekirdek ayarlarn nasl yapacamz ve al log dosyalarn nasl inceleyeceimizi greceiz. g c s g o g

17.1

MBR

Sistemin yklendii datma bakmakszn al ilemi tm Linux makinalarda birbirine benzemektedir. u g g c s s u Aadaki rnek hardiske bir gz atalm: s g o o
+----------------+ | MBR | +----------------+ | Partition 1: | | Linux root (/) | | containing | | kernel and | | system. | +----------------+ | Partition 2: | | Linux swap | +----------------+ | Partition 3: | | Windows 3.0 | | (last booted | | in 1992) | +----------------+

Ilk olarak bilgisayarn BIOSu harddiskinizin ilk birka sektorn okumaktadr. Bu sektrler ierisinde c u u o c Master Boot Record ya da MBR denilen ok kuk bir program yer almaktadr. MBR Linux c uc c ekirdeinin (yukardaki rnekte blm 1) yerinin bilgisini saklamaktadr. Bylelikle ekirdei bellee g o ou o c g g ykler ve balatr. u s

17.2

Cekirdek Al Ilemi c s s

Bundan sonra greceimiz (her ne kadar ok hzl bir ekilde gese de ) aadakine benzer bir satr o g c s c s g olacaktr:
Linux version 2.4.16 (root@time.flatmonk.org) (gcc version 2.95.3 20010315 (release))

54

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

Bu satr ekirdek almaya balad zaman ekrana bast ilk satrdr. Ilk ksm ekirdein srmn, c c s s g g c g uu u u bundan sonra gelen satr ekirdei yazan kiinin kimliini (genellikle root), sonraki ksm derleyiciyi ve c g s g sonra da yazld saat dilimini (timestamp) belirtmektedir. g Bundan sonra gelen satrlarda ise sistemde yer alan donanma bal olarak ilemci, disk kontrol edici, g s PCI veriyolu, diskler, ses kartlar, seri portlar, disket srcler, USB aygtlar, a adaptrleri ve muhtemel uu u g o dier donanmlarla ilgili bunlarn durumlarn gsteren raporlar yer alacaktr. g o

17.3

/sbin/init Program

Cekirdek yklemesini tamamlad zaman init denilen bir program armaktadr. Bu program sistem u g c g kapatlncaya kadar almaya devam eder. Aada da greceiniz gibi programa verilen process ID her c s s g o g zaman 1 deerini alr. g
$ ps --pid 1 PID TTY TIME CMD 1 ? 00:00:04 init.system

init program bundan sonra birtakm betikler (script) altrarak datmn geri kalan ksmn da c s g balatr. Bu betikler geleneksel olarak /etc/rc.d/init.d dosyasnda yer alr ve sistemin sunucu adn belirs leyen, dosya sistemini hatalara kar denetleyen, genel dosya sistemlerini mount eden, a uygulamalarn s g balatan, yazc servislerini balatan ve bunun gibi ilemleri gerekletirecek baz servisleri altrrlar. s s s c s c s Betiklerin almas tamamlandnda, init getty adnda ve giri ekrann getiren bir program altrr. c s g s c s

17.4

LILOyu Inceleyelim

Su ana kadar al ilemine genel bir bak yapm olduk. Simdi ilk ksm, MBR ve ekirdein yklenmesini c s s s s c g u biraz daha ayrntl inceleyelim. MBRnin bakm boot loader sorumluluundadr. x86 tabanl Linux g sistemleri iin en popler iki boot loader LILO (LInux LOader) ve GRUB (GRand Unied Bootloader) c u dr. Bu ikisi ierisinde LILO daha eski ve daha ok bilinen boot loader dr. Sistemde LILOnun hazr c c olduu zaman bu durum alta LILO boot: eklinde bildirilir. Sunu belirtmek gerekir ki, genelde g c s s sistem duraklamadan kongurasyon ayarlar yaptndan, bu satr grebilmek iin shift tuuna basmanz g o c s gerekebilir. LILO komut satrnda bundan daha fazla birey yazmayacaktr. Ancak eer < tab > tuuna basarsanz s g s karnza mevcut ekirdeklerin ya da dier iletim sistemlerinin yer ald bir liste gelecektir. Bunlardan s c g s g bir tanesini yazarak ya da < enter > tuuna bakarak istediinizi balatabilirsiniz. Alternatif olarak sadece s g s < enter > tuuna basarsnz ve ntanml olarak listedeki ilk seenek balatlm olur. s o c s s

17.5

LILO Kullanm

Nadir olarak al srasnda ekirdee bir seenek gndermek isteyebiliriz. En ok bilinen bu seeneklerden c s c g c o c c bazlar root=alternatif bir root dosya sistemi belirlemek iin, init=alternatif bir init program belirlemek c iin (mesela kongrasyonu bozulmu bir sistem iin init=/bin/sh) ve mem=sistemdeki hafza miktarn c u s c belirlemek iin (rnein Linuxun sadece 128MByi otomatik olarak alglad durum iin mem=512M). c o g g c Bu seenekleri LILO al komutuna gnderebilirsiniz. c c s o
LILO boot: linux root=/dev/hdb2 init=/bin/sh mem=512M

Eer dzenli olarak komut satr seenekleri kullanmak istiyorsanz, bunlar /etc/lilo.conf dosyasna g u c yazabilirsiniz. Bu dosyann format lilo.conf (5) klavuz sayfasnda aklanmaktadr. c

17.6

LILO Hakknda Onemli Not

GRUB incelemeye gemeden nce LILO hakknda bilinmesi gereken birey daha olduunu sylemec o s g o liyiz. /etc/lilo.conf dosyasnda deiiklik yaptnz zaman ya da yeni bir ekirdek yklediiniz zaman gs g c u g liloyu altrmanz gerekmektedir. LILO program MBRyi yeniden yazarak yeni ekirdein tam yerini c s c g de ierecek ekilde yaptnz deiikleri geerli hale getirir. c s g gs c Buradaki rnekte LILOyu aklamal (verbose) mod ile altryoruz: o c c s

55

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

# lilo -v LILO version 21.4-4, Copyright (C) 1992-1998 Werner Almesberger lba32 extensions Copyright (C) 1999,2000 John Coffman Reading boot sector from /dev/hda Merging with /boot/boot.b Mapping message file /boot/message Boot image: /boot/vmlinuz-2.2.16-22 Added linux * /boot/boot.0300 exists - no backup copy made. Writing boot sector.

17.7

GRUB Inceleyelim

GRUB boot loader LILOdan sonra gelen ve gelecek nesil boot loader olarak grebileceimiz bir uygulao g madr. LILOnun komut satr sistemi yerine men arayz salamaktadr. Ancak sistem yneticileri iin u u u g o c bu farklar ok nemli deildir. GRUB LILOnun destek verdiinden daha fazla iletim sistemine destek c o g g s vermektedir. Al mensnde ifre tabanl baz gvenlik ayarlar sunmaktadr ve ynetimi de kolaydr. c s uu s u o GRUB genellikle grub-install komutu ile yklenmektedir. Bir kez kurulduunda, GRUBn menu g u s /boot/grub/menu.lst dosyas dzenlenerek ynetilebilir. GRUB kurulumu ve ynetimi bu dkmann u u o o o u faaliyet alannda olmadndan bu ilemler iin GRUB info sayfalarn okumanz neririz. g s c o

17.8

GRUB Kullanm

Cekirdee parametre vermek iin boot menusunde iken e tuuna basmanz gerekir. Bu size yklemek is g c s u tediiniz ekirdek adn girmenize ya da ekirdee gnderilecek parametreleri girmenize olanak salar. g c c g o g Dzenleme ilemini bitirdiinizde, < enter > tuuna ve sonra da b tuuna basarak yaptnz yeni u s g s s g deiiklikler ile birlikte sistemi balatabilirsiniz. gs s LILO ile GRUB arasndaki bahsedilmesi gereken nemli bir deiiklik ise GRUBun yeni bir ekirdek o gs c yklendiinde ya da kendisi kongre edildiinde tekrar kurulmaya ihtiya duymamasdr. Bunun nedeni u g u g c GRUBn Linux dosya sistemiyle interaktif almas, LILOnun ise sadece yklenecek olan ekirdein c s u c g yerini tutmasdr. Bu tek zellik yeni bir ekirdek ykledikten sonra lilo yazmay unutan sistem yneticio c u o lerinin bouna i yapm hissiyle sinirlenmelerine engel olmaktadr s s s

17.9

dmesg

Cekirdek ve init betiklerinden (script) gelen al mesajlar genelde ok abuk gemektedir. Bir hata c s c c c mesajn farketseniz bile siz daha mesaj alglayamadan o kaybolacaktr. Bu durumda neyin yanl gittiini s g anlayabilmek iin (ayrca nasl dzelteceinize dair kir sahibi olmak iin ) al ilemi tamamlandktan c u g c c s s sonra bakabileceiniz iki yer vardr. g Eer hata ekirdek yklenirken ya da donanm aygtlar aratrlrken meydana gelmi ise dmesg g c u s s komutu ile ekirdein log dosyasnn bir kopyasn ekrana getirebilirsiniz. c g
# dmesg | head -1 Linux version 2.4.16 (root@time.flatmonk.org) (gcc version 2.95.3 20010315 (release))

Burada grdunz gibi ekirdein yklenmesi srasnda yazd ilk satr ortaya kt. Gerekten de o ug u c g u g c c eer dmesg komutunu ktsn bir sayfa grntleyiciye koyarsanz ekirdein alta yazd btn g c ou u c g c s g uu mesajlar ve ayn anda ekirdein konsola yazd btn mesajlar grebilirsiniz. c g g uu o

17.10

/var/log/messages

Bilgi iin baklacak ikinci yer ise /var/log/messages dosyas olacaktr. Bu dosya ktphanelerden, dier c uu g arka plan srelerden ve ekirdekten gelen bilgileri giri olarak alan syslog arka plan sreci (daemon) u c c s u tarafndan kaydedilmektedir. messages dosyasndaki her satr tarihlendirilmitir. Bu dosya alta init s c s betiklerinin almas srasnda meydana gelen hatalar incelemek iin iyi bir dosyadr. Ornein kerneldan c s c g gelen son birka mesaj grmek iin: c o c
# grep May 1 May 1 May 1 kernel /var/log/messages | 21:17:29 localhost kernel: 21:17:29 localhost kernel: 21:17:29 localhost kernel: tail -3 hdc: ATAPI 52X CD-ROM drive, 128kB Cache, DMA Uniform CD-ROM driver Revision: 3.12 SCSI subsystem driver Revision: 1.00

56

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

17.11

Tek-kullanc Modu

Cekirdee al srasnda parametre gnderilebileceini artk biliyoruz. En sk kullanlan paramereler g c s o g den birtanesi sistemi single-user modunda amaya yarayan s parametresidir. Bu mod sadece root dosya c sisteminin mount edilmesini, en az sayda init betii (script) almasn ve bir login ekranndan ziyade g c s bir kabuk balatlmasn salar. Ayrca a ayarlar kongre edilmez ve bylece harici etkilerin iinizi s g g u o s engellemesi ihtimali ortadan kalkar.

17.12

Tek-kullanc (Single-user) Modunu Kullanmak

O halde byle bir mod ile sistemde nasl alacaz? Bu soruya cevap verebilmek iin Linux ile Windows o c s g c arasndaki ok nemli bir farka deinmek gerekiyor. Windows normalde konsolda yerlemi ve ayn anda c o g s s tek bir kullancnn kullanaca ekilde tasarlanmtr. Yani efektif olarak her zaman single-user modda g s s c s almaktadr. Dier yandan Linux daha ziyade uzaktaki kullanclara a uygulamalar sunmak ya da g g kabuk ve X oturumlar salamak amacyla kullanlr. Durum byleyken sistemde yaplacak olan dosya g o sistemi yaratma ve dzenleme ilemleri, sistemin CDden gncellenmesi, kurulum ve yedekleme ilemleri u s u s ve buna benzer bakm ilemleri srasnda bu ekstra deikenler tercih edilmeyecektir. Byle durumlarda s gs o single-user moda gemek gerekir. c

17.13

Calma Seviyelerini Deitirmek s gs

Aslnda single-user moda gemek iin sistemin yeniden balatlmas gerekmemektedir. init program sistec c s min o andaki modunu ya da alma seviyesini ynetebilmektedir. Linux iin standart alma seviyeleri c s o c c s aadaki ekilde sralandrlabilir: s g s 0: Bilgisayar kapat 1: ya da s: tek-kullanc modu 2: ok-kullanc, a yok c g 3: ok kullanc, text konsol c 4: ok-kullanc, grak konsol c 5: 4 ile ayn 6: Bilgisayar yeniden balat s Bu alma seviyeleri datma gre deiebilir bu yzden kullandnz datmn dkmann incelec s g o gs u g g o u mek gerekir. single-user moda gemek iin, inite alma seviyesini deitirmesi gerektiini belirten telinit c c c s gs g komutunu kullanmalsnz.
# telinit 1

Yukardaki tabloda da grebileceiniz gibi ayn yntemle sistemi yeniden balatabilir ya da kapatabio g o s lirsiniz. telinit 0 sistemi kapatacak, telinint 6 ise yeniden balatacaktr. telinit komutu ile alma seviyes c s sinin deitirmeye kalktnzda init scriplerinden bazlar almaya balayacak belli servisleri aacak ya gs g c s s c da kapatacaklardr.

17.14

Sistemi D zg n Kapatmak u u

Dikkat ederseniz eer sistemde o anda baka kullanclarda varsa sistemi bu ekilde kapatmak o kulg s s lanclar iin ok zararl olabilir. shutdown komutu bunun iin alma seviyelerini daha dzenli bir ekilde c c c c s u s deitirecek bir metod sunar. kill komutunu dier srelere sinyal gnderme zelliine benzer bir ekilde gs g u c o o g s shutdown komutu da sistemi kapatmak yeniden balatmak ya da tek-kullanc moduna gemek iin kuls c c lanlabilir. Ornein 5 dakika iinde tek kullanc moduna gemek iin: g c c c
# shutdown 5 Broadcast message from root (pts/2) (Tue Jan 15 19:40:02 2002): The system is going DOWN to maintenance mode in 5 minutes!

Eer Control+c tuuna basarsanz tek-kullanc moduna gemeyi salayan bu komutu kaldrabilirsiniz g s c g de. Bu grdunz mesaj sistemde o anda alan tm kullanclarn terminallerinde belirecektir . Bylece o ug u c s u o bu kullanclar yaptklar ii kaydedecek ve dzgn bir ekilde sistemden kabilecek zaman bulabileceks u u s c lerdir. (tabi bu 5 dakikann yeterli olup olmayaca ayr bir tartma konusu. g s 57

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

17.15

Sistemi Aniden Kapatmak

Eer sistemde alan tek kullanc siz iseniz belli bir sre belirtmek yerine now parametresini kullanag c s u bilirsiniz. Ornein sistemi hemen o anda yeniden balatmak iin: g s c
# shutdown -r now

Bu rnekte -r reboot after shutdown bir sonraki rnekte greceimiz -h halt after shutdown o o o g anlamna gelir. Bu durumda artk Control+c tuuna basma ansnz olmayacaktr unk artk kapatma s s c u ilemine balanmtr. Son olarak bahsedeceimiz -h parametresi ise yle kullanlr: s s s g so
# shutdown -h 1 Broadcast message from root (pts/2) (Tue Jan 15 19:50:58 2002): The system is going DOWN for system halt in 1 minute!

17.16

Ontanml Calma Seviyesi s

Bu ana kadar grdklerimizle Linux sistemi iin init programnn nemini kavradmz tahmin ediyorum. o u c o g /etc/inittab dosyasn dzenleyerek initi kongre edebilirsiniz. Bununla ilgili aklama inittab(5) klavuz u u c sayfasnda aklanmaktadr. Biz bu dosyada sadece bir noktaya deineceiz: c g g
# grep ^id: /etc/inittab id:3:initdefault:

Buna gre benim sistemimde alma seviyesi 3 ntanml alma seviyesidir. Eer sisteminize alr o c s o c s g c almaz grak ekranda giri yapmak istiyorsanz bu deeri deitirebilirsiniz (genelde4 ya da 5). Bunu c s g gs yapabilmek iin sadece dosyadaki ilgili satr deitirmeniz yeterlidir. Ancak unutmaynz ki eer bu deeri c gs g g geersiz bir say ile deitirirseniz daha nce anlattmz init=/bin/sh a bavurmanz gerekecektir. c gs o g s

18
18.1

Calma Seviyeleri s
Tek-kullanc Modu

Bundan nceki blmde de sylediimiz gibi ekirdee al srasnda parametre gnderilebileceini artk o ou o g c g c s o g biliyoruz. En sk kullanlan parametrelerden bir tanesi sistemi single-user modunda amaya yarayan s c parametresidir. Bu mod sadece root dosya sisteminin mount edilmesini, en az sayda init scripti almasn c s ve bir login ekranndan ziyade bir kabuk balatlmasn salar. Ayrca a ayarlar kongre edilmez ve s g g u bylece harici etkilerin iinizi engellemesi ihtimali ortadan kalkar. o s

18.2

Calma Seviyeleri s

Aslnda single-user moda gemek iin sistemin yeniden balatlmas gerekmemektedir. init program sistec c s min o andaki modunu ya da alma seviyesini ynetebilmektedir. Linux iin standart alma seviyeleri c s o c c s aadaki ekilde sralandrlabilir: s g s 0: Bilgisayar kapat 1 ya da s: tek-kullanc modu 2: ok-kullanc, a yok c g 3: ok kullanc, text konsol c 4: ok-kullanc, grak konsol c 5: 4 ile ayn 6: Bilgisayar yeniden balat s

58

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

18.3

elinit Komutu

single-user moda gemek iin, inite alma seviyesini deitirmesi gerektiini belirten telinit komutunu c c c s gs g kullanmalsnz.
# telinit 1

Yukardaki tabloda da grebileceiniz gibi ayn yntemle sistemi yeniden balatabilir ya da kapatabiliro g o s siniz. telinit 0 sistemi kapatacak, telinint 6 ise yeniden balatacaktr. telinit komutu ile alma seviyesinin s c s deitirmeye kalktnzda init betiklerinden bazlar almaya balayacak belli servisleri aacak ya da gs g c s s c kapatacaklardr.

18.4

Calma Seviyesi Etiketi s

Dikkat ederseniz eer sistemde o anda baka kullanclarda varsa sistemi bu ekilde kapatmak o kug s s lanclar iin ok zararl olabilir. shutdown komutu bunun iin alma seviyelerini daha dzenli bir ekilde c c c c s u s deitirecek bir metod sunar. kill komutunu dier srelere sinyal gnderme zelliine benzer bir ekilde gs g u c o o g s shutdown komutu da sistemi kaptmak yeniden balatmak ya da tek-kullanc moduna gemek iin kuls c c lanlabilir. Ornein 5 dakika iinde tek kullanc moduna gemek iin: g c c c
# shutdown 5 Broadcast message from root (pts/2) (Tue Jan 15 19:40:02 2002): The system is going DOWN to maintenance mode in 5 minutes!

Eer Control+c tuuna basarsanz tek-kullanc moduna gemeyi salayan bu komutu kaldrabilirsiniz g s c g de. Bu grdunz mesaj sistemde o anda alan tm kullanclarn terminallerinde belirecektir . Bylece o ug u c s u o bu kullanclar yaptklar ii kaydedecek ve dzgn bir ekilde sistemden kabilecek zaman bulabileceks u u s c lerdir. (tabi bu 5 dakikann yeterli olup olmayaca ayr bir tartma konusu. g s

18.5

now ve halt

Eer sistemde alan tek kullanc siz iseniz belli bir sre belirtmek yerine now parametresini kullanag c s u bilirsiniz. Ornein sistemi hemen o anda yeniden balatmak iin: g s c
# shutdown -r now

Bu rnekte -r reboot after shutdown bir sonraki rnekte greceimiz -h halt after shutdown o o o g anlamna gelir. Bu durumda artk control+c tuuna basma ansnz olmayacaktr unk artk kapatma s s c u ilemine balanmtr. Son olarak bahsedeceimiz -h parametresi ise yle kullanlr: s s s g so
# shutdown -h 1 Broadcast message from root (pts/2) (Tue Jan 15 19:50:58 2002): The system is going DOWN for system halt in 1 minute!

18.6

init Kong rasyonu u

Bu ana grdklerimizle Linux sistemi iin init programnn nemini kavradmz tahmin ediyorum. o u c o g /etc/inittab dosyasn dzenleyerek initi kongre edebilirsiniz. Bununla ilgili aklama inittab(5) klavuz u u c sayfasnda aklanmaktadr. Biz bu dosyada sadece bir noktaya deineceiz: c g g
# grep ^id: /etc/inittab id:3:initdefault:

Buna gre benim sistemimde alma seviyesi 3 ntanml alma seviyesidir. Eer sisteminize alr o c s o c s g c almaz grak ekranda giri yapmak istiyorsanz bu deeri deitirebilirsiniz (genelde4 ya da 5). Bunu c s g gs yapabilmek iin sadece dosyadaki ilgili satr deitirmeniz yeterlidir. Ancak unutmamalyz ki eer bu c gs g deeri geersiz bir say ile deitirirseniz daha nce anlattmz init=/bin/sh a bavurmanz gerekecektir. g c gs o g s

59

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

19
19.1

Dosya Sistemi Kotalar


Kotalara Giri s

Kotalar size disk kullanm iin kullanc ya da grup olarak izlemeniz gereken yolu belirleyen bir Linux c o zelliidir. Bir kullanc ya da grubun diski haksz bir biimde kullanmasn ya da doldurmasn engellemek g c asndan gayet kullanl bir zelliktir. Kotalar sadece root kullancs tarafndan aktif hale getirilebilir c s o ya da kullanlabilir. Bu blmde kotalar nasl ayarlayacanz ya da efektif bir ekilde kullanacanz ou g s g anlatmaya alacaz. c s g

19.2

Cekirdek Destei g

c Kotalar dosya sisteminin bir zellii olduundan ekirdein desteine ihtiya duyarlar. Oncelikle ekiro g g c g g c deinizde kota desteinin olup olmadn belirlemeniz gerekmektedir. Bunun iin grep komutunu kullag g g c nabilirsiniz:
# cd /usr/src/linux # grep -i quota .config CONFIG_QUOTA=y CONFIG_XFS_QUOTA=y

Eer bu komut daha az bir bilgiyle dnerse (mesela CONFIG QUOTA ayarlanmamtr eklinde) ekirdei g o s s c g kota destei verecek eklide yeniden derlemeniz gerekmektedir. Bu aslnda zor bir ilem olmasa da bu g s s kursun konusu dnda olduundan burada sz etmeyeceiz. s g o g

19.3

Dosya Sistemi Destei g

Kota ynetimini ayrntl incelemeden nce unu belirtmeliyiz ki kota destei 2.4.x ekirdek serisinde o o s g c henz tamamlanmamtr. ext2 ve ext3 dosya sistemlerinde kotalar ile ilgili problemlere rastlanmakta u s ve ReiserFS dosya sisteminde desteklenmedii grlmektedir. Bu eitimde rnekler XFS dosya sistemi g ou g o temel alnarak uygulanmaktadr. Cunk bu dosya sisteminin kotalar dzgn bir ekilde destekledii u u u s g bilinmektedir.

19.4

Kotalarn Kong rasyonu u

Sisteminizde kotalar ayarlamaya balamak iin, kotalar aktif hale getirilmi bir ekilde etkilenen dosya s c s s sistemlerini /etc/fstab dosyas iinde dzenlemelisiniz. Buradaki rnekte ext3 dosya sistemimiz kullanc c u o ve grup kotalar aktif hale getirilmi bir ekilde mount edilmektedir: s s
# grep quota /etc/fstab /dev/hda8 /mnt/usrDeneme ext3 usrquota,grpquota,noauto,noatime 1 2 # mount /mnt/usrDeneme

19.5

Kotalarn Kong rasyonu, Devam u

Unutmaynz, usrquota ve grpquota seenekleri kotalar aktif hale getirmek iin gerek art deildir. Koc c s g talarn aktif hale getirldiinde quotaon komutunu kullanarak emin olabilirsiniz. g
# quotaon /mnt/usrDeneme/

Ileride ihtiya duyabileceinizi tahmin ederek, kotalarn aktif halini bozmak iin de quotao komutunu c g c kullanabileceinizi syleyebiliriz: g o
# quotaoff /mnt/usrDeneme/

Ama u an iin bu eitimde yer alan rnekleri deneyecekseniz kotalarn aktif hale gelmi olduundan s c g o s g emin olunuz.

60

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

19.6

quota Komutu

quota komutu o anda mount edilmi tm dosya sistemleri iin kullancnn disk kullanmn ve limitlerini s u c gsterir. -v seimi kotalarn kullanlabildii ama kullanc iin alan ayrlmad dosya sistemlerini gsterir. o c g c g o
# quota -v Disk quotas for user root (uid 0): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 0 0 0 3 0 0

Birinci kolon, bloklar kolonu, listelenen her dosya sisteminde o anda root kullancnn ne kadar miktarda disk alan kullandn gsterir. Ondan sonra gelen kolonlar, kota ve limit kolonlar, disk alan iin o g o c anda yer alan limitleri temsil eder. Daha sonra kota ve limit arasndaki fark ve grace kolonunun anlamn aklayacaz. Dosyalar kolunu root kullancnn ilgili dosya sisteminde ne kadar dosyaya sahip olduunu c g g gsterir. Ondan sonra gelen kota ve limit kolonlar dosyalar uzerindeki limitleri temsil eder. o

19.7

Kotalar Gr nt lemek o u u

Herhangi bir kullanc nceki rnekte de grdumz gibi kendine ait kotalarla ilgili raporu grntleyebio o o ug u ou u lir. Ancak dier kullanc ve gruplarn kotalarnda sadece root kullancs bakabilir. Diyelim ki /usr/users g altna mount edilmi bir /dev/hdc1 dosya sistemimiz, ve ali ve veli adnda da iki tane kullancmz olsun. s Oncelikle ali kullancsnn disk kullanmna ve limitine bakalm:
# quota -v ali Disk quotas for user ali (uid 1003): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 4100 0 0 6 0 0

Bu rnekte gryoruz ki alinin kotalar sfra ayarlanmtr ki bu da hi bir limiti olmad anlamna o ou s c g gelir.

19.8

edquota

Diyelim ki ali isimli kullancya kota vermek istiyoruz. Bu durumda kullanmamz gereken komut edquota olacaktr. Kotalar dzenlemeye balamadan nce /usr/users uzerinde ne kadar alanmz olduunu u s o g grelim: o
# df /usr/users Filesystem 1k-blocks Used Available Use% Mounted on /dev/hdc1 610048 4276 605772 1% /usr/users

Bu 600MB lk alann ksmen ok byk bir dosya sistemi olmadn sanrm siz de grebiliyorsunuz. c u u g o Bu sebeple ali kullancsna belli bir alandan daha fazlasn kullanamayaca bir kota vermek mantkl bir g yaklam olacaktr. edquota komutunu altrdnz zaman komut satrnda belirlediiniz her kullanc s c s g g ve grup iin geici bir dosya yaratlacaktr. c c

19.9

edquota, Devam

edquota komutu sizi, bu geici dosya araclyla kotalar ekleyebileceiniz ve/veya dzenleyebileceiniz c g g u g belli bir editr ierisinde altrr. o c c s
# edquota ali Disk quotas for user ali (uid 1003): Filesystem blocks soft hard inodes soft hard /dev/hdc1 4100 0 0 6 0 0

Yukardaki kota komutunun ktsna benzer olarak bu geici dosyadaki blocks ve inodes kolonc c lar ali kullancsnn kulland disk alann ve dosya saysn belirtmektedir. Blok ve inode saylarn g deitiremezsiniz. Bunu yapmaya altnz zaman sistem size engel olacaktr. soft ve hard kolonlar gs c s g grdumz gibi ali kullancsnn deerleri u anda limitsiz kotalarn gstermektedir. (0 demek limit o ug u g s o yok demektir. )

61

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

19.10

edquotay Anlamak

soft kstlamas dosya sistemi uzerinde ali kullancsnn kendisine tahsis ettii kullanlacak maksimum disk g alannn miktarn belirler. (bir dier deyile sahip oldugu kotasn belirler). Eger ali kullancs kendisine g s verilen bu soft kstlamasn aacak kadar fazla alan kullanrsa, e-mail ile bu kota hakknda bir uyar s alacaktr. Hard kstlamas sistemdeki bir kullancnn aamayaca snr belirler. Eger ali kullancs bu s g snr da aacak bir ilem yapmaya kalkarsa disk kotas ald (disk quota exceeded) eklinde bir mesaj s s s s alacak ve yapmak istedii ilem tamamlanmayacaktr. g s

19.11

Deiiklikler Yapmak gs

O halde burada ali kullancsn soft ve hard limitlerini deitirerek dosyay kaydedebiliriz. gs
Disk quotas for user ali (uid 1003): Filesystem blocks soft hard inodes soft hard /dev/hdc1 4100 10000 11500 6 2000 2500

quota komutunu da altrarak yaptmz deiiklikleri gzlemleyebiliriz: c s g gs o


# quota ali Disk quotas for user ali (uid 1003): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 4100 10000 11500 6 2000 2500

19.12

Kotalar Kopyalamak

Hatrlarsanz bu dosya sisteminde bir de veli kullancsn olduunu kabul etmitik. Eer bu kullancya g s g ali kullancs ile ayn kotay vermek istiyorsak edquota ile -p parametresini kullanarak bu komuta bundan sonra gelen tm kullanclar iin ali kullancsn prototip olarak kullanmasn syleyebiliriz. Grup u c o kullanclarn kotalarn ayarlamak iin bu yntem ok kullanl olacaktr. c o c s
# edquota -p ali veli # quota veli Disk quotas for user veli (uid 1003): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 0 10000 11500 1 2000 2500

19.13

Grup Kstlamalar

edquota komutunu kullanarak dosyalarn disk uzerinde kulland alan belli bir grubu temel alarak g kstlayabiliriz. Mesela users grubunun kotasn dzenlemek iin: u c
# edquota -g users Disk quotas for group users (gid 100): Filesystem blocks soft hard inodes soft hard /dev/hdc1 4100 500000 510000 7 100000 125000

Simdi de users grubunun dzenlenmi yeni kotasn grmek iin de: u s o c


# quota -g users Disk quotas for group users (gid 100): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 4100 500000 510000 7 100000 125000

19.14

repquota Komutu

Sistemde ok fazla sayda kullancmz varsa, quota komutunu kullanarak her kullancnn kotasn gc o rntlemek bizi canmzdan bezdirebilir. repquota komutu dosya sitemindeki kotalar gzel bir ekilde u u u s raporlamaya yarar. Ornein, /usr/users uzerindeki tm kullanc ve gruplarn kotalarn grmek iin: g u o c
# repquota -ug /usr/users *** Report for user quotas on device /dev/hdc1 Block grace time: 7days; Inode grace time: 7days

62

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------root -- 0 0 0 3 0 0 john -- 0 10000 11500 1 2000 2500 jane -- 4100 10000 11500 6 2000 2500 *** Report for group quotas on device /dev/hdc1 Block grace time: 7days; Inode grace time: 7days Block limits File limits Group used soft hard grace used soft hard grace ---------------------------------------------------------------------root -- 0 0 0 3 0 0 users -- 4100 500000 510000 7 100000 125000

19.15

repquota Seenekleri c

Burada bahsetmekte yarar greceimiz bir ka tane daha repquota seenei vardr. repquota -a kota o g c c g ayar aktif olan mevcut olan-mount edilmi okunabilir-yazlabilir dosya sistemlerini raporlamaya yaras yacaktr. repquota -n isimlerde uidleri gidleri zmeyecektir. Bu uzun listeleri grntlerken zaman co ou u kazandracaktr.

19.16

Kotalar Gr nt lemek o u u

Eer sistem yneticisi iseniz, sistemdeki kotalarn geilmediinden emin olmak iin bunlar grntleg o c g c ou u menin bir yolunu arayacaksnz. Bunun iin kolay yntemlerden bir tanesi warnquota komutunu kullanc o maktr. Bu komut sistemde kotalarn geen kullanclara kendilerini uyaran bir mail gnderir. Benzer c o olarak warnquota cron-job gibi almaktadr. c s Bir kullanc kendi soft limitini at zaman quota komutunun ktsnda grace kolonunda kotann s g c alma mhleti, yani bu dosya sisteminde ne kadar zamandr kotann alm olduu belirecektir. s u s s g
Disk quotas for user jane (uid 1003): Filesystem blocks quota limit grace files quota limit grace /dev/hdc1 10800* 10000 11500 7days 7 2000 2500

Ontanml olarak, bloklar ve inode lar iin bu mhlet 7 gndr. c u u u

19.17

M hleti Belirlemek u

equota komutu kullanarak bir dosya sistemi iin kota ama mhletini belirleyebilirsiniz. c s u
# edquota -t

Bu yazm sizi aadaki gibi bir geici dosyann editr ierisine atacaktr: s g c ou c
Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hdc1 7days 7days

Dosya iindeki yaz olduka aklayc niteliktedir. Kotalarn aan kullanclarnza uyar gnderildikc c c s o ten sonra bunu farketmeleri ve gerekli dosyalar silmeleri iin yeterli zaman brakmay unutmamalsnz. c

19.18

Kotalar Alta Kontrol Etmek c s

Kotalar al srasnda da kontrol edebilirsiniz. quotacheck komutunu altran bir betik (script) dosc s c s yasn kullanarak bunu yapabilirsiniz. Quota mini howto belgesinde bunun iin rnek bir betik yer alc o maktadr. quotacheck komutu ayn zamanda bozulmu kota dosyalarn onarma yeteneine de sahiptir. s g Bu konuda daha fazla bilgi almak iin quotacheck (8) klavuz sayfasn inceleyebilirsiniz. c Bundan nce quotaon ve quotao komutlarndan bahsetmitik. Al betiinizin ierisine quotaon eko s c s g c leyerek kotalarn aktif hale gelmesinin salayabilirsiniz. Kotalarn desteklendii btn dosya sistemlerinde g g uu aktif hale gelmesini isterseniz -a seeneini kullannz. c g
# quotaon -a

63

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

20
20.1

Sistem Loglar
syslogdye Giri s

syslog sorumlusu (daemon), sistemde alan programlardan gelen mesajlar ile olgun bir istemci-sunucu c s mekanizmas sunar. Syslog bir program sorumlusundan (daemon) ya da programdan gelen mesajlar alr, o nceliine ve tipine gre kategorize eder ve ynetici kongrasyonu kurallarna gre raporlar. Loglar g o o u o ynetebilmek asndan bu yntem olduka salamdr ve btnlk arzetmektedir. o c o c g uu u

20.2

Loglar Okumak

Simdi gelin syslog tarafndan kaydedilmi bir log dosyasn ieriini inceleyelim. Sonra da syslog kon s c g grasyonunun nasl yaplacana dnebiliriz. FHS log dosyalarnn /var/log ierisinde yer almas geu g o c rektiini belirlemektedir. Burada tail komutunu kullanarak son on mesajn grntleyeceiz: g ou u g
# cd /var/log # tail messages Jan 12 20:17:39 Jan 12 20:17:40 Jan 12 20:17:40 Jan 12 20:17:41

bilbo bilbo bilbo bilbo

Jan 12 20:17:41 bilbo Jan 12 20:17:41 bilbo Jan 12 20:17:41 bilbo Jan 12 20:17:41 bilbo Jan 12 20:41:58 bilbo Jan 12 20:41:58 bilbo

init: Entering runlevel: 3 /usr/sbin/named[337]: starting BIND 9.1.3 /usr/sbin/named[337]: using 1 CPU /usr/sbin/named[350]: loading configuration from /etc/bind/named. /usr/sbin/named[350]: no IPv6 interfaces found /usr/sbin/named[350]: listening on IPv4 interface lo, 127.0.0.1#53 /usr/sbin/named[350]: listening on IPv4 interface eth0, 10.0.0.1# /usr/sbin/named[350]: running gnome-name-server[11288]: starting gnome-name-server[11288]: name server starting

Yaz ileme konusundan hatrlayacaksnz ki tail komutu bir dosyadaki son satrlar grntler. Bus ou u rada grdumz gibi bilbo isimli nameserver sistemde en sona yakn zamanda almaya balamtr. o ug u c s s s Eer IPv6 konulandracak olsaydk named daemonnn hi bir IPv6 arayz bulamadn farkedecekg s c u u g tik. Ayrca tm bunlara ek olarak yine bu dosyada bir kullancnn gnome-name-serverdan hemen nce u o GNOME altrdn anlamaktayz. c s g

20.3

Loglar Kuyruktan Takip Etmek

Tecrbeli bir sistem yneticisi bir log dosyasnn kn gzlemlemek iin tail -f komutunu kullanacaktr. u o c s o c
# tail -f /var/log/messages

Yukardaki kullanm sayesinde bir servis altrrken ya da durdururken kendisinden gelen mesajlar da c s grme ansmz olacaktr. Debug ilemi iin bu ok kullanl bir yntemdir. Hatta baz sistem yneticileri o s s c c s o o ortaya kan mesajlar o anda hemen grebilmek iin bir terminalde srekli bu komutu alr halde c o c u c s kullanmaktadrlar. Mesela bir terminalde yukardaki komutu yazp baka bir terminalde de httpd servisini s kapatalm:
# service httpd stop Shutting down httpd2: # [ OK ]

Simdi ilk terminale dnersek en alt satra eklenen u mesaj da greceiz: o s o g


..... ... May May

1 23:11:00 localhost CROND[3827]: (mail) CMD (/usr/bin/python -S /var/lib/mailman/cron/qrunner) 1 23:11:25 localhost httpd: httpd shutdown succeeded

64

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

20.4

Log Dosyalarn grep ile Kullanmak

log dosyalarn incelemek iin bir baka yararl yntem de grep komutunu kullanmak olacaktr. Yukarda c s o bahsedilen durum iin httpd ile birlikte grep kullanarak durumu iceleyebiliriz: c
# grep httpd /var/log/messages

Ya da httpd ile ilgili olarak gelen son 3 mesaj da u ekilde grebiliriz: s s o


[root@localhost erman]# grep httpd /var/log/messages| tail -3 May 1 23:11:25 localhost httpd: httpd shutdown succeeded May 1 23:14:15 localhost httpd2: httpd2: Could not determine the servers fully qualified domain name, using 127.0.0.1 for ServerName May 1 23:14:18 localhost httpd: httpd2 startup succeeded

20.5

Log Dosyalarnn Ozeti

Aada genelde /var/log altnda yer alan syslog tarafndan kullanlan ve belirlenen log dosyalar zets g o lenmitir. s messages: Genel sistem programlar ve daemonlar tarafndan uretilen bilgi ve hata mesajlar secure: Ekstra gvenlik amacyla messages dosyasndaki mesajlardan ayr tutulan ve ifre dorulama u s g ile ilgili hata ve bilgi mesajlar maillog: Mail ile ilikli hata ve bilgi mesajlar s cron: Cron ile ilgili hata ve bilgi mesajlar spooler: UUCP ve haberlerle ilgili hata ve bilgi mesajlar

20.6

syslog.conf

Simdi artk syslog kongrasyon dosyas olan /etc/sylog.conf dosyasn inceleyebiliriz. (Not: Eer sys u g log.conf dosyanz yoksa bile bilgi edinmek iin bu ksm yine de okuyun ama baka bir syslog da kullanyor c s olabilirsiniz.) Bu dosyaya gz gezdirdiimizde yukarda bahsedilen ortak log dosyalarnn her biri iin bir o g c satr olduunu greceksiniz. Ayrca bunun dnda baka satrlar da olacaktr. Aada belirlendii gibi g o s s s g g dosyann format kullanc.ncelik eklindedir. o s

20.7

syslog.conf, Devam

Kullanc Alan: Mesaj ureten alt sistemi belirler. Bu alan ile ilgili geerli anahtar szckler auth, authp c o u riv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp ve local0 dan local7e kadar olan anahtar g szcklerdir. Oncelik Alan: Mesajn minimum seyrekliini belirler. Bunu anlam ilgili mesaj en az beliro u tilen seyreklikte ya da daha fazla sayda bu kuralla elecektir. Oncelikle ilgili anahtar szckler debug, s o u info, notice, warning, err, crit, alert ve emerg anahtar szckleridir. o u Aksiyon Alan: Aksion alannda ya bir dosya ad, ya tty (/dev/console gibi), ya banda @ iareti s s ile belirlenmi baka bir makina ad ya da mesajn o anda sistemde olan herkese gnderilecei anlamna s s o g gelen * iareti olmaldr. En ok kullanlan aksiyon ise bir dosya addr. s c

20.8

Yeniden Y kleme ve Ek Bilgiler u

Umarz bu kongrasyon syslog sisteminin esnekliini ve gcn anlamanza yardmc olmutur. Deiu g u u u s g iklik yapmadan nce daha ayrntl bilgi iin syslog.conf (5) klavuz dosyasn okumanz tavsiye ederiz. s o c Ayrca syslogd(8) klavuz dosyas da bir ok ayrntdan bahsetmektedir. c Unutmaynz ki kongrasyon dosyasnda yaptnz deiikliklerin etkin olmas iin syslog arka plan u g gs c srecini (daemon) bir ekilde bilgilendirmeniz gerekmektedir. Ona bir SIGHUP gndermek bu i iin u s o s c yeterli olacaktr. Ve bunu kolaylkla yapmak iin de killall komutu kullanabilirsiniz: c
# killall -SIGHUP syslogd

65

Istanbul Bilgi Universitesi, Bilgisayar Bilimleri Blm ou u

20.9

G venlik Notu u

Sunu belirtmek gerekir ki syslogd tarafndan yazlan log dosyalar eer mevcut deillerse otomatik ola g g rak yaratlrlar. Sizin o andaki umask ayarnzdan bamsz olarak dosya herkesin okuyabildii (worldg g readable) ekilde yaratlacaktr. Eer gvenlik konusu sizi ilgilendiriyorsa dosyalar sadece root kuls g u lancsn okuyabilecei ve yazabilecei ekilde chmod ile izinlerini deitirmelisiniz. Buna ek olarak aada g g s gs s g anlatlacak olan logrotate program uygun izinlerle yeni log dosyalar oluturacak ekilde kongre edis s u lebilir. syslog deamon her zaman iin mevcut olan bir log dosyasnn o andaki zelliklerini muhafaza c o edeceinden, dosya yaratldktan sonra bir daha bunu dunmenize gerek kalmayacaktr. g us

20.10

logrotate

/var/log altnda yer alan log dosyalar srekli byyecektir ve sistemi doldurma potansiyelleri vardr. logu u u rotate gibi loglar otomatik arivleyen ve yneten bir programn kullanlmas tavsiye edilen bir durumdur. s o logrotate gnlk bir cron-job olarak alr ve log dosyalarn evirme, sktrma, silme ya da mail atma u u c s c s o zellikleri katmak iin kongre edilebilir. c u Ornein ntanml bir logrotate kongrasyon dosyas loglar 4er haftalk backlogs halinde tutarak g o u haftalk olarak evirebilir (dosyaya bir seri numaras ekleyerek bunu yapar) ve bu backloglar yer kac zanmak amacyla sktrr. Buna ek olarak program syslogdye, artk log dosyalarnn bo olduunu ve s s g bu dosyalarn sonuna uygun ekleme yapmasn salamak amacyla bir SIGHUP gndermesini salayacak g o g ekilde kongre edilebilir. s u logrotate hakknda daha fazla bilgi almak iin, ierisinde programn aklamas ve kongrasyon dosc c c u yasnn szdiziminin (syntax) yer ald logrotate(8) klavuz sayfasn inceleyebilirsiniz. o g

20.11

Ileri Balk: klogd s

syslog konusunu kapatmadan nce hevesli okuyucular iin bir ka ayrntdan bahsedilebilir. Bu ipular o c c c syslog ile ilgili balklar incelereken rahat kavramanza yardmc olabilir. s Oncelikle unu belirtmek gerekir ki; syslog arka plan sreci (deamon) aslnda ierisinde klogd adnda s u c baka bir arka plan srecin de yer ald syslogd paketinde yer almaktadr. klogdnin ii ekirdekten bilgi s u g s c ve hata mesajlarn almak, kategorize etme ve raporlama iini yapmas iin syslogdye gndermektir. klogd s c o tarafndan alnan mesajlar sizin dmesg komutuyla elde edeceklerinizle tamamen ayndr. Fark ise; dmesg o anda buer da yer alan uyary aynen yazarken kylogd bu mesajlar syslogdye gnderir. Bylece buer o o boaltlsa bile artk bu mesajlar kaybolmayacaktr. s

20.12

Ileri Balk: Alternatif Loglayclar s

Ikinci olarak syslogd paketine alternatif olacak baka log programlar olduunu belirtmeliyiz. Alternatier s g daha verimli ve daha kolay kongre edilebilmek ve daha fazla zellik iermek amacyla ortaya kmtr. u o c c s Eer syslogdnin sizin iin yeterince iyi olmadn dunrseniz en popler olanlardan Syslog-ng ve g c g us u u Metalogunda yer ald bu alternatieri deneyebilirsiniz. g c u Uunc olarak logger komutunu kullanarak mesajlar kendi betiiniz ierisinde loglayabilirsiniz. logg c ger(1) klavuz sayfasnda daha fazla bilgi bulabilirsiniz.

66

You might also like