Professional Documents
Culture Documents
Can Uur Ayfer, mer Ayfer 1. Bask: Eyll 2003 2. Bask: Ekim 2004 3. Bask: Temmuz 2006 Yayn ynetmeni: Mustafa Arslantunal Dzelti: Suat zdemirci Sayfa dzeni: Mehmet ztrk Kapak illstrasyonu/tasarm: Mehmet ztrk Datm sorumlusu: Hseyin stnel Bask: Ayhan Matbaas Tel: (0212) 629 01 65
Bu kitabn btn yayn haklar Pusula Yaynclk ve letiim San. ve Tic. Ltd. tine aittir. Yaynevimizin yazl izni olmakszn ksmen veya tamamen alnt yaplamaz, kopya edilemez, oaltlamaz ve yaynlanamaz. Pusula Yaynclk ve letiim San. ve Tic. Ltd. ti. nn Cad. Emektar Sok. No: 24/B Gmsuyu-Beyolu/STANBUL Tel. : (0212) 252 42 80 pbx Faks : (0212) 293 15 44 e-posta : pusula@pusula.com web : www.pusula.com
mer Ayfer
1981 ylnda Ankarada dodu. Orta renimini Bilkent niversitesi Hazrlk Okulunda (BUPS) tamamlayp Purdue niversitesinde Bilgisayar Mhendislii eitimine balad. ylda tamamlad mhendislik eitimi srasnda, lise yllarnda tant UNIX iletim sistemindeki deneyimine LINUXu da ekleyerek kendini hzla gelitirdi. Halen San Fransiscoda bir biyoteknoloji irketinde Bilimsel Yazlm Uzman ve Sistem Yneticisi olarak grev yapmaktadr. omer@ayfer.net
ok deerli nerileriyle ve bulduu hatalarla kitabn daha yararl olmasn salayan Sayn S. Satuk B. Ercilasuna sonsuz kranlarmzla... mer, Uur
indekiler
00. Balarken Neden LINUX? 01. UNIX Dnyasnn Veliaht Prensi... LINUX... UNIX Dnyasnn Veliaht Prensi LINUX UNIX letim Sistemi ok , ok Kazan UNIX Her Yerde Ayn UNIX... ok yi Tasarmlanm Bir letim Sistemi Biraz da Tarih... LINUX Douyor LINUX eitleri Bir de Free BSD UNIX Varm... UNIX Gelenei UNIXi UNIX Yapan zellikler LINUXu LINUX Yapan zellikler Neden Mandriva LINUX? Neden ngilizce Kurulum? LINUXu Gerekten renmek steyenlere tler Mandriva LINUX Kurulum ncesi Hazrlklar Kurulum ncesi Bilinmesi Gerekenler Nasl Bir Bilgisayar Gerekli? Disk Blmleri (Partition) Bilgisayarlarn Al Sreci (Boot Sreci) Disk Dosya Sistemleri (File Systems) X Window
1 1 3 4 4 4 5 5 6 9 11 13 13 14 14 15 15 17 17 17 17 18 20 21 22
X Window Pencere ve Masast Yneticileri (Window Managers, Desktop Managers) LINUX ekirdei (LINUX Kernel) root LINUXta Disk simlendirmesi 02. Mandriva LINUX Kurulumu Varsaymlar Kurulum 03. LINUXla lk Tanma: KDE Masast Yneticisi lk Tanma LINUX Bilgisayarlarn Almas LINUX Bilgisayarlarn Kapatlmas lk Login Mandriva LINUX Uygulamalar KDE Ayarlar Grsel Ayarlar (Look and Feel) Men Ayarlar leri Dzey KDE Ayarlar Kullanc Ynetimi: UserDrake Dosya Yneticisi: Konqueror Genel Sistem Ynetimi Aralar: Mandriva Control Center Ofis Uygulamalar OpenOffice.org Grafik Uygulamalar The Gimp Dierleri Kiisel Uygulamalar Ximian-Evolution Gnome-Card Internetle lgili Uygulamalar Kmail Konqueror FTP stemcisi (gFTP)
25 27 27 28 31 31 32 69 70 70 72 75 82 82 82 83 85 88 90 91 104 104 108 108 109 109 109 111 112 112 113 114
Web Sayfas Hazrlama Aralar oklu Ortam (Multimedya) Uygulamalar XMMS CD Player Ve Yzlerce Uygulama Yazlm... Kopete Annda Mesajlama Yazlm K3B Gambas Eclipse Digikam Wine Bundan Sonras Konsolda LINUX Kullanm Konsol Kavram logout: Sistemden k Isnma Hareketleri Ne Var Ne Yok? Ben Kimim? ifrenizi Deitirmek stediinizde... mdaaaat!.. G... Daha Fazla G... LINUX Dosya-Dizin Yaps Dosya-Dizin simleri Her Horoz Kendi plnde... Neredeyim? Yuvaya Dn Ne Var Ne Yok? (Ama Bu Kez Daha Bir Merakla...) Dosyalar ve Dizinler Dosya Yaratmak cat Komutu cp Komutu (copy) Dizin Kopyalamak Dizin Yaratmak alma Dizinini Deitirmek Dosya Silmek
115 116 116 117 117 117 118 119 120 121 121 123 124 124 129 131 131 133 133 135 136 138 138 140 141 142 142 148 149 149 152 153 154 155 156
Dizin Silmek Dosya / Dizin Ad Deitirmek Dosya / Dizin Yeri Deitirmek LINUXta Eriim Yetkileri Yazma, Okuma, Program altrma Yetkileri Dizinlere Eriim Haklar umask: Dosya ve Dizinlerin Varsaylan Eriim Yetkileri Suid Biti ve suid Programlar Sticky Bit Dosyalarn ve Dizinlerin Sahibini Deitirmek Dosyalarn ve Dizinlerin Gruplarn Deitirmek Dosyalarn ve Dizinlerin Sahibini ve Grubunu Birlikte Deitirmek bash Kabuk Program Dosya sim Kalplar Ortam Deikenleri PATH Ortam Deikeni Dier nemli Ortam Deikenleri Ortam Deikenlerinin Kalc Olarak Deitirilmesi bash Balang Dosyalar bash History ! Arac Kendi Komutlarnz: Aliases 04. Editrler: Kedit vs. ve En nemlisi: vi vi: Visual Editor vi Bir Kelime lemci Deildir! Beenseniz de Beenmeseniz de, vi renmelisiniz! Dosya Amak / Yaratmak vi Editrnn Durumlar Ekleme Durumu Komut Durumu Dosya Aarken Karlaabileceiniz Sorunlar mle Dolatrma Komutlar Ekleme Komutlar
156 157 157 158 158 163 164 166 167 168 168 169 170 172 174 175 175 176 177 178 179 180 183 185 185 185 186 187 188 188 189 190 192
Yaz Silmek Yanllkla Silerseniz... Metin Bloklarnn Yerini Deitirmek Metin Bloklarn Kopyalamak Son Komutu Tekrarlamak Metin Eklemenin / Deitirmenin Birka Deiik Yolu Metin inde Dolamak Metin inde Arayarak Dolamak Bulup Deitirmek Metnin inde Satr Numaralarn Kullanarak Dolamak Tu Ksaltmalar vi Balatrken Verebileceiniz Komutlar Dosya lemleriyle lgili Komutlar vi inden UNIX Komutu Vermek Birden Fazla Dosyay Pepee letmek .vimrc Dosyas Daha Ayrntl Bilgi in... gvim 05. nemli LINUX Kavram ve Komutlar nemli LINUX Kavramlar Standart Giri ve Standart k Giri ve k Ynlendirmek STDERR ekirdek: Kernel Dosya Sistemleri fsck Sreler eytanlar (Daemons) Sre ldrmek Link Kavram ve ln Komutu Pipe Kavram Biraz Nefes Alalm Kullanl LINUX Komutlar cal
192 193 193 196 197 197 198 200 200 202 203 204 205 206 206 207 207 209 211 211 211 213 214 216 217 225 226 230 231 232 235 237 238 238
sleep watch wc tail more less top which zip unzip gzip gunzip bzip2 06. evreyi Tanyalm /dev Dizini /etc Dizini lost+found Dizinleri
239 239 239 240 241 241 242 244 244 245 245 246 246 249 252 254 256 257 258 261 264 265 267 268 270 273 274 275 277 278 280 280 281
07. bash Kabuu ve Kabuk Programlar Komut Satrnn Yorumlanmas ve Parametreler Kabuk Deikenleri (ya da Ortam Deikenleri) Programlar Arka Planda altrmak n Planda alan Programlar Arka Plana Atmak Kabuk Programlama lk Kabuk Program rnei kinci Kabuk Program rnei 08. Diskler, Disketler ve mount Komutu mount Edilmi Diskleri Grmek Yeni Disk Takma Dosya Sistemi Tipleri fsck: Dosya Sistemi Kontrol Program supermount CD Kullanm Disket Kullanm
umount Komutu Baka UNIX Bilgisayarlardaki Diskleri Kullanmak mount lemlerini Otomatik Olarak Yapmak (fstab) Baka Bir Windows Bilgisayarnn Diskini Kullanmak Dosya Sistemi Yaratmanz Gerekirse... 09. nemli LINUX Komutlar find grep tar Komutu ve tar Dosyalar tar Komutu ile Yedekleme tar Komutunu Kullanrken Dikkat Edilmesi Gereken Noktalar rsh xargs at date, hwclock lynx cut tee script split 10. Sistem Ynetimi Sistem Hakknda Sistemin Almas Sistemin Kapatlmas Disklerin Ynetimi fdisk mkfs mount showmount lsof Bellek Ynetimi Kullanc Ynetimi Kullanc Hesaplar
281 282 282 283 284 287 287 295 298 301 304 305 308 310 313 314 315 316 317 317 321 323 323 328 329 331 332 332 333 335 336 339 339
Kullanc Gruplar Kullanc Disk Kotalar Log Dosyalarnn Ynetimi A Ynetimi TCP/IP Ayarlar Yazc Ynetimi Yedekleme Periyodik lerin Ynetimi LILO Ynetimi Webmin root ifresini Unuttuunuzda... 11. Yazlm/Paket Ynetimi Paket Kavram Paket Bamll (Dependency) Paket Yneticileri (Package Managers) Yazlm Depolar (Media, Repositories) Yazlm Gncelleme Yazlm Ykleme Mandriva rpm Paket Yneticisi - rpmdrake ile Ykleme urpmi - Gerek Paket Yneticisi rpm Paketlerinden Yazlm Ykleme Kaynak rpm Paketlerinden (src-rpm) Yazlm Ykleme Kaynak Kodundan Derleyerek Kurulum letim Sisteminin ve Uygulama Programlarnng Gncellenmesi ekirdek Gncellemeleri (Kernel Updates) 12. Gvenlik Sistem Gvenlii Kolay Tahmin Edilebilecek ifre Kullanmayn ve Kullandrmayn Sistem Gvenlii ile lgili Haberleri zleyin Olabildiince Gvenli letiim Yapan Yazlmlar Kullann Gvenlikle lgili Yamalar zleyin ve Uygulayn Gereksiz Yazlm Yklemeyin Gereksiz Servisler almasn Gereksiz Portlar Ak Olmasn
345 348 351 354 354 361 363 366 370 375 381 385 385 386 386 387 388 388 388 392 394 397 398 400 403 407 407 408 408 408 409 409 409 412
Bilgisayarnzdaki Tm Servisler Dnyaya Ak Olmasn Log Dosyalarnza Bakn Sisteminizi Yedekleyin 13. Yar arl LINUX Sunucu ve Servis Yazlmlar Yararl LINUX Sunucu Yazlmlar ftp Sunucusu apache Web Wunucusu postfix e-Posta Sunucusu procmail samba Sunucusu named (DNS) Sunucusu ssh Sunucusu (Secure Shell) NIS Sunucusu (Network Information Services) iptables Ate Duvar DHCP Sunucusu MySQL ve PostgreSQL Veritaban Sunucular squid Proxy Sunucusu ppp evirmeli A Sunucusu EK: Sonsz GNU Genel Kamu Lisans GNU Public License (GPL)
413 416 416 419 420 420 422 425 428 429 429 432 433 433 434 436 437 439 441 450
Balarken
Neden LINUX?
00
Neden LINUX?
Bedava da ondan diyeceimizi sanyorsanz yanlyorsunuz! Yantmz: LINUX iyi bir iletim sistemidir de ondan... Evindeki bilgisayar elence iin kullananlardansanz, bilgisayar nternette dolamak, oyun oynamak, internet sohbetlerine katlmak iin kullanyorsanz bu kitab satn alp paranz ve zamannz boa harcamayn! Benim iim bilgisayarlarla; 2000li yllarn ykselen yldz iletim sistemini renmek istiyorum diyorsanz bu kitab aln; LINUX rendiiniz iin piman olmazsnz. Yok eer bilgisayar internet ve intranet servisi vermek iin kullananlardansanz, gvenilir ve gvenli sunucu hizmetleri vermek istiyorsanz bu kitab almalsnz! LINUX veya UNIX iletim sistemlerini renerek mesleinizde ok deerli bir ilerleme kaydedebilirsiniz. LINUXun bedava olmas genel kansnn ve birok yerde n plana karlmasnn tersine, bu LINUXun ok da nemli bir zellii deildir. LINUXun bizce en nemli zellii gvenilir ve gvenli olmasdr. Zaten Google, Yahoo gibi dnyann en byk internet sunucularn ileten kurulularn yatrmlarn LINUX zerine kurmu olmalar da bundandr. Hatta Microsoft bile uzun sre Hotmail servisini FreeBSD (aslnda FreeBSD, LINUX deildir, ancak gerek felsefesi gerekse teknolojisi edeerdir) ile vermitir. LINUX bir iletim sistemidir. nsanlar kullansn diye insanlar tarafndan gelitirilmi bir programdr. Kitab da vardr, dkmantasyonu da, destei de...
Bir de stne stlk bedavadr... te bu kitab LINUXun korkulacak bir yazlm olmadn vurgulamak iin yazdk. LINUX; daha dorusu UNIX; felsefesi ve gelenekleri olan bir iletim sistemidir. rendikleriniz yllarca geerliliini korur. letim sistemi kk, basit ama iini ok iyi yapan programlardan oluur. ok hzldr. Az kaynakla ok i yapabilir. Bu sayede eski bilgisayarlar, geri planda web sunucusu, e-posta sunucusu, gvenlik baraj (firewall) gibi nemli ilerde deerlendirilebilmektedir. Ama Windows iletim sistemini kullanmas kolay! szlerini ok duyuyoruz. Evet, masast uygulamalar ve ev kullanm iin yerinde bir sz; ama sunucu hizmetleri ve gvenilirlik gerektiren ciddi iler sz konusu olduunda Windows tabanl sistemlerin yneticileri iin hayat gerekten ok zor oluyor. Bunu deneyerek rendik. rnein Bilkent niversitesinde 10 kadar Windows tabanl sunucudan oluan byke bir a ayakta tutmak iin sistem yneticilerine nbet yazmak, vardiyal i programlar dzenlemek gibi ilerle urarken, bu sunucular UNIX ortamna geirerek normal mesai saatlerinde alan tek yneticiyle daha iyi hizmet verdik. LINUX, ak sistem bir iletim sistemidir; yani, kaynak koduna her isteyen eriebilir. Bu sayede, yazlm hatalar ok ksa srede bulunabilmekte ve dzeltme yamalar birka saat iinde dnyada yaynlanmaktadr. Szn ksas; LINUX gvenli, gvenilir, tutarl, hzla gelien, her tr yeni teknolojiye ok ksa srede uyum salayan, ciddi, profesyonel bir iletim sistemidir. Bu kitap LINUXu retmek iin yazlmamtr. LINUX retmek iin ktphane yazmak lazm... Bu kitap, LINUX denizine atlamak isteyenlerin ayaklarn slatp, varsa korkularndan arndrmak iin yazlmtr. LINUX dnyasna ho geldiniz...
01
ok , ok Kazan
UNIX iletim sistemi, bilgisayar bilimcilerinin ok kullancl (multi-user) ve ok ili (multi-tasking) adn verdikleri alma koullarn salar. Bir baka deyile; UNIX altnda alan bir bilgisayar, birden fazla kullanc birbirlerinden bamsz olarak ve ayn anda kullanabilir. Bu birlikte kullanm srasnda, bilgisayarn kaynaklarn (merkezi ilem birimini, ana belleini
(RAM), disk-teyp gibi yan bellek birimlerini, yazclarn) paylarlar. UNIX, bu kaynaklarn kullanmn, paylamdan kaynaklanan performans dmelerini en aza indirgeyecek ekilde dzenlemeye alr. Bir kullancnn ayn anda birden fazla i yapabilmesi de bir baka kolaylktr. Bilgisayarnzda uzun bir i balattnz varsayalm; ancak bu i, her birka dakikada bir sizin klavyeden mdahale etmenizi gerektirsin. Bu durumda, bu uzun ii balatp yemee gidemezsiniz. Tek i dzeninde kullanm iin tasarlanm bir iletim sistemi kullanyorsanz (MS-DOS gibi), sz konusu programn yapt i tamamlanncaya kadar bilgisayarn karsnda oturmak zorundasnz. Eer bu ii UNIX altnda alan bir bilgisayarda yapyorsanz, uzun programnz bir yandan alrken, siz te yandan (gene ayn ekran ve klavyeyi kullanarak) bir baka i yapabilirsiniz. rnein, bu tr beklemelerde internet zerinde bir gezintiye kabilirsiniz. imdi Eeee... Bunda ne var? Windows iletim sisteminde de bunu yapabiliyorum. diyorsunuz herhalde. Evet, doru, ksmen yapabilirsiniz. Bir de binlerce dosyadan oluan, toplam bir-iki Gigabytelk bir dizini silerken ikinci bir i yapmay deneyin bakalm neler oluyor! Windows XP-Professional Edition altnda dizin silerken dier tm servisler duruyor! LINUX altnda ise durmuyor!
leriyle dimdik ayakta duruyor. 36 yandaki yal UNIX, (belki de sadece olgun demek daha doru) gnmz bilgisayarlarna ok kolay uyum salad. Bundan sonraki gelimelere de rahata ayak uydurabilecek gibi grnyor. Bilgisayar dnyas, yaklak 50 yllk tarihinin son 30-35 ylnda, iletim sistemlerine ait birok rnek grd geirdi. Bunlardan bazlar ok baarl oldu, bazlar zel uygulamalara hizmet etti ve mrn tamamlad, bazlar piyasaya kamadan yok oldu, unutuldu gitti. letim sistemleri genellikle donanm reticileri tarafndan, rettikleri bilgisayar modelleri iin zel olarak gelitirildiler. Sz konusu donanm modelleri ortadan kalktka, bu bilgisayarlarn iletim sistemleri de sahneden ayrldlar. UNIX iin byle olmad; nk belirli bir marka veya model donanm iin tasarmlanmamt. Donanm modelleri gelitike, UNIX bu yeni platformlara uyarland ve eski deneyim, yazlm birikimleri zarar grmeden yeni bilgisayar nesillerine tand. Bu uyumluluun yararn gren bilgisayar reticilerinin neredeyse tamam, iletim sistemi repertuarlarna UNIXi eklemek zorunluluunu hissettiler. Hatta birok bilgisayar reticisi dev firma, kendi UNIX trevlerini gelitirdiler. AIX (IBM), ULTRIX (DEC), HPUX (HP), SINIX (SIEMENS) gibi...
Biraz da Tarih...
1960l yllarda kullanlan bilgisayarlar, ancak Sral Dzeninde (Batch Processing) alabilmekteydi. Bir dier deyile, kullanclar ve programclar, bilgisayarda yapmak istedikleri ile ilgili komut ve/veya programlar bilgisayarn operatrne teslim ederler ve srann kendi ilerinin yaplmasna gelmesini beklerlerdi. Bu sra artk onbe dakikada m yoksa gnde mi gelir, bilinmezdi. Bu yllarda, nemli kurulu (AT&T, MIT niversitesi ve General Electric) bir arada yrttkleri bir projeyle ilk Zaman Paylaml letim Sistemi (time sharing operating system) zerinde almaya baladlar. Proje, bir bilgisayarn bir anda birden fazla kullancya hizmet etmesini salayan, kullanclarn bilgisayar programnda olup bitenleri izleyebilecei ve programlarla etkileimli (interactive) olarak alabilecekleri bir ortam yaratmaya ynelikti. almalar sonunda MULTICS iletim sistemi ortaya kt. (MULTiplexed Information and Computing System) Her ey akademik olarak ok iyiydi; fakat, MULTICS yazlm, o zamanki bilgisayarlar iin biraz byk ve hantal kalyordu.
MULTICS ekibiyle birlikte alan ve uzay aratrmalarnda kullanlan benzetim (simulasyon) yazlmlar retmekte olan Ken Thompson hayatndan pek memnun deildi. Proje arkadalar, onun zerinde alt programlarn sistem kaynaklarn ok zorladndan srekli ikayet ediyorlard. Bu yzden, Thompson, sadece bakalarnn bilgisayar kullanmad zamanlarda alabiliyordu. Bu byle devam edemezdi. Thompson, almalarn kendisine ait olan eski ve kk bir DEC PDP-7 bilgisayarnda tamamlamaya karar verdi. Ama bu bilgisayarn iletim sistemi de gereksinimlerini karlamyordu; bu yzden kendi istekleri ve gereksinimleri dorultusunda bir iletim sistemi gelitirmeye koyuldu. MULTICSin yararl bulduu ve beendii zelliklerinin tmn kulland. Hatta, o kadar ki, yeni iletim sisteminin adn MULTICSden esinlerek UNICS koydu. Bu ismin sonradan UNIXe dntrld Brian Kernighan (C Programlama dilini ve UNIXi yaratan ekibin nemli isimlerinden) tarafndan anlatlmaktadr. 1970 ylnda UNIX iletim sisteminin ilk srm DEC PDP-7 modeli bir bilgisayarda tamamlanmt. letim sistemi, programclar iin yararl olacak ekilde tasarmlanm ve zellikle metin ileme yetenekleri (text processing) olduka gelimiti. 1971 ylnda Bell Labs irketi UNIX iletim sistemini, yeni metin ileme sistemlerinde kullanlacak standart olarak kabul etti. 1972 Haziran aynda gelindiinde, artk dnyada 10 kadar bilgisayar UNIX iletim sistemi ile almaktayd. Bu arada, Dennis Ritchie ve Brian Kernighan, C programlama dili zerindeki almalarn byk lde tamamlamlard. 1973 ylnda, UNIX iletim sistemi, C programlama diliyle batan yazld. Bylece bilgisayar tarihinin yksek seviyeli bir dil ile yazlm olan ve donanmdan bamsz ilk iletim sistemi ortaya km oldu. 1974 ylndan balayarak, AT&T irketi, bu yeni iletim sistemininin kaynak programlarn, bata Columbia niversitesi olmak zere birok niversite ve yksek okula CRETSZ olarak datt. UNIX iletim sisteminin nlenemez ykselii balamt. (Aslnda o tarihlerde bu ykselii imdiki gibi nlemek isteyen kimse olduunu da sanmyoruz.) 1975 ylna gelindiinde, AT&T, UNIX Srm 6y kullanmaktayd ve artk UNIX kullanmak isteyenler, kk de olsa bir lisans creti demek zorundayd. UNIX, standart bir C ktphanesi ile birlikte datlmaya baland. Bylece; C dili, UNIX iletim sistemi iin yazlm gelitirmek isteyenlerin renmesi gereken bir dil olarak yaygnlat.
1977 ylnda, Berkeley niversitesi, ilgilenenlere UNIX zerindeki birikimlerini, 1BSD: 1st Berkeley Software Distribution adl bir rn olarak datmaya balad. 1978 ylnda Bill Joy ve zalp Babaolu (University of California-Berkeleyde yksek lisans rencisi) UNIX iletim sistemine sanal bellek (virtual memory) zelliini eklediler. Artk UNIX tam bir iletim sistemi olmutu. (Ref: Unix Administration Guide for System V, Rebecca Thomas, ISBN 013-942889-5) 1979 ylnda, AT&T yedinci srm piyasaya kard. UNIXin yaratclarndan Ken Thompsonun Berkeley niversitesinde ders vermeye balamasyla AT&T ve Berkeley ekipleri UNIXi hzla gelitirmeye baladlar. Sonunda, ABD Savunma Bakanlna bal DARPA (Defence Advanced Research Projects Agency: leri Savunma Aratrma Projeleri) blm, UNIX iin bir bte ayrmaya karar verdi. 1979da UNIX artk iyice yaygnlamt. niversite yllarnda UNIX renen, kullanan ve beenen renciler UNIXi sanayiye tamaya ve donanm reticileri, tasarm aamalarnda UNIX iletim sistemini de gz nnde bulundurma zorunluluunu hissetmeye baladlar. 1980 yl sonunda, byk bilgisayar reticilerinin hepsi, hi deilse baz modellerinde, UNIX kullanmaya baladlar. 1983 ylnda MIT niversitesinden Richard Stallman zgr yazlm (free software) kavram etrafnda GNU organizasyonunu kurdu. Bu organizasyon; bilimin hzl gelimesini, bilim adamlarnn yaptklar aratrmalarn sonularn makaleler eklinde yaynlamalarna, baka bilim adamlarnn da bunlardan yararlanarak yeni aratrmalara ynelmesi eklinde aklanabilir. GNU organizasyonu yazlm dnyasnda da benzeri ekilde paylam olmas durumunda, biliim dnyasndaki zaten hzl olan gelimelerin insanlk yararna daha da hzlanacan savunuyor. Richard Stallman, zgr yazlm tanmlarken zgr szcn Bir yazlm istediiniz gibi kullanma, kopyalama ve datma zgrl, Bir yazlm istediiniz gibi deitirme, gelitirme zgrl,
Gelitirilmi yeni yazlm da istediiniz gibi oaltma ve datma zgrl olarak tanmlyor. Stallmana GNU ne demek; neyin ba harfleri? diye sorulduunda GNU is not UNIX! yantn vermi. Ancak bir biliimciye yaraacak, zdevinimli (recursive) bir yant!
LINUX Douyor
1991 ylnda Hollandal stad Prof. Andrew S. Tanenbaum, rencilerinin iletim sistemlerinin ayrntlarn ve ilevlerini daha iyi grebilmeleri hatta gelitirebilmeleri iin 8086 serisi mikroilemciler iin MINIX iletim sistemini gelitirdi. Kodu tamamen ak ve dolaysyla herkesin kullanabilecei ve gelitirebilecei bu minik iletim sistemi tamamen UNIXden esinlenilmiti. O yllarda internet zerinde MINIX kullanc ve programclarnn eitli teknik tartmalarn yrttkleri haber gruplar vard. Bir gn bu gruba yle bir mesaj geldi:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix Im doing a (free) operating system (just a hobby, wont be big and professional like gnu) for 386(486) AT clones. This has been brewing; since april, and is starting to get ready. Id like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). Ive currently ported bash(1.08) and gcc(1.40),and things seem to work. This implies that Ill get something practical within a few months, and Id like to know what features most people would want. Any suggestions are welcome, but I wont promise Ill implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - its free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as thats all I have :-(.
Helsinki niversitesi rencilerinden Linus Torvalds bu mesajnda MINIX kullanclarna seslenerek, zetle hobi olarak 386 ve 486 serisi kiisel bilgisayarlara ynelik yeni ve cretsiz bir iletim sistemi zerinde altn ve artk bir yerlere gelmeye baladn sylyordu. GNU C derleyicisini ve bash kabuk kodunu yeni ortama aktarmay baardn ve artk birka ay iinde pratik baz sonular almay umduunu da ekliyordu. MINIX kullanclarndan bu yeni iletim sistemi hakkndaki grlerini bildirmelerini isteyen Torvalds, gelebilecek nerilerin hepsini dikkate alamayacan da belirtirken o zamanki disk arabirim standard olan AT disk arabirimi dnda diskleri destekleyecek modlleri byk olaslkla hibir zaman gelitirmeyeceini de eklemiti. Linus Torvalds bu yeni iletim sistemine kendi adndan esinlenerek LINUX adn verdi. Eyll 1991de ilk srm olan LINUX 0.01 Nette yerini ald. 20 gn gibi ksa bir sre iinde o kadar ok deiiklik ve dzeltme geldi ki, 5 Ekim 1991 de Linus Torvalds 0.02 srmnn datmna balad. Haftalarla llen srelerle dier srmler takip etti. LINUXun kodu kollektif olarak gelitiriliyordu. Birileri disket srclerini destekleyen kodu gelitirirken bakalar da o zamanlarn en gelimi grafik standartlar olan VGA (640 x 480, 256 renk) destei zerinde alyordu. Herkes bir ucundan tutmu, her iki- haftada bir yeni srm kartlyordu. Ayn tarihlerde, Richard Stallman ve kurduu FSF (Free Software Foundation, Ak Yazlm Dernei), GNU iletim sistemi ad altnda bir araya getirdii birok zgr yazlm ile yeni bir projeyi hayata geirmekteydi. Bu iletim sisteminin en nemli eksiklerinden biri yeterince olgun bir ekirdee (kernel) sahip olmamasyd. te Torvaldsn yaratt ve hzla gelimekte olan Linux, bu nemli eksii kapatarak ve Genel Kamu Lisans (GPL: GNU General Public License) altnda korunarak bu projeye katld. Bu iki proje, o gn bugndr, birlikte GNU/Linux iletim sistemi olarak anlmaktadr.
Genel Kamu Lisansna sahip yazlmlar ngilizce free szcyle tanmlanrlar. Bu free szc bedava anlamnda kullanlmamtr; zgr anlamnda kullanlmtr. GNU lisans altndaki bir rnn creti olabilir ama mutlaka zgr olmaldr. zgrlkten kastedilen; rnn zgrce kullanlmas, zellikle kaynak kodunun serbeste datlmas ve bu kaynak kod zerinde serbeste gelitirmelerde bulunulabilmesidir. GKL lisansna sahip bir program gelitirildiinde, yeni ve gelimi srm de otomatik olarak GKL altnda olacaktr; yani kodu gelitirenler yeni kaynak kodlarn da isteyen herkese gene zgr olarak vermelidir.
10
GKLnn Trke tam metnini bu kitabn sonundaki eklerde bulacaksnz; ancak sabrsz okuyucular iin ana hatlaryla GKL mant yledir:
GKL ile datlan programlarn kaynak kodu isteyen herkese ak olmaldr. steyen herkes bu kaynak kod zerinde istedii deiiklii yaparak daha gelimi veya farkl bir rn elde edebilir; ancak bu yeni rn de GKL altnda olmaldr. Bir yazlm rnn (program, dokmantasyon, kavram, tasarm) GKL altnda serbeste databilirsiniz ancak bu rn zerinde emei geenlerin isimlerini deitiremez veya yok edemezsiniz. Daha ayrntl bilgi isteyenler bu kitabn sonundaki GKL metnini okuyabilir veya www.gnu.org adresine bavurabilir.
LINUX eitleri
Aslnda tek eit LINUX vardr; o da GNU-LINUXtur. LINUX dnyasna bir kez ayanz attktan sonra srekli olarak Mandriva LINUX, Mandrake LINUX, Debian LINUX, Suse LINUX, Gelecek LINUX, Ubuntu LINUX, RedHat LINUX... duyacaksnz. Bu isimler, LINUX eitlerinin isimleri deil, eitli GNU-LINUX datmlarnn isimleridir. Datm szc zerinde durulmas gereken bir szck, nk artk bu szc ok duyacak ve ok kullanacaksnz.
Aslnda, FSFin kurucusu Richard Stallman, GNU/LINUX iletim sisteminin yalnzca LINUX olarak anlmasndan hakl olarak ok ikayetidir. LINUX sadece ekirdein addr. Ancak, GNU/LINUX kullanclar, gelitiricileri ve konuyla ilgili yazanlar uzun yllardr ksaca LINUX demeyi tercih ettiler. Artk bu alkanl deitirmek olanaksz hale geldi. Biz de, Stallmann affna snarak, doru ad GNU/LINUX olmasna ramen, bu kitabn konusu olan iletim sistemini LINUX adyla anacaz. LINUX dediimizde sadece ekirdekten deil, tm iletim sisteminden sz ediyor olacaz.
Bildiiniz gibi zerinde hibir uygulama program olmayan bir iletim sistemi fazla ie yaramaz. Olas tm uygulama programlarn da iletim sistemi reticisinden bekleyemezsiniz. Bu durumda birilerinin iletim sistemini yaygn kullanlan uygulama programlaryla birlikte paketleyip bir datm
11
oluturmas gerekir. rnein Microsoft, XP iletim sisteminin datm paketini olutururken iine XP iletim sisteminin yansra Internet Explorer, Outlook, MediaPlayer, Wordpad gibi bir sr uygulama paketini de yerletirir. Eer standart paketin iinde yer almayan uygulama programlarna gereksiniminiz varsa, onlar ayrca satn alrsnz. te Mandriva, RedHat, SuSE, Debian, Ubuntu gibi firma ya da kurulularn kendi LINUX datm paketlerini hazrlarken yaptklar da aynen budur. Her datm kuruluu kendi kurulum yazlmn gelitirir, datm paketinde yer almasn uygun grd uygulama programlarn pakete ekler (rnein web tarayc olarak Mozilla Firefox, Netscape, Galeon, Konqueror gibi yazlmlar, masa st ynetimi iin KDE, GNOME gibi yazlmlar seip datmlarna yerletirir) ve datm piyasaya srer. Gerek LINUX, gerekse birok uygulama yazlm GKL ile datlan zgr yazlmlar olduu iin bunlarla oluturulan datm paketleri de GKL ile datlr. Neredeyse hibirine para demek zorunda olmazsnz. Mandriva datmn m beendiniz; gider www.mandriva.comdan en son srm datm indirirsiniz. Eer internet balantnzn hz uygun deilse ya da yannda kada baslm kurulum klavuzu istiyorsanz o zaman az bir bedel deyip datmn CD ve kitaplarndan oluan bir paket smarlayabilirsiniz. eitli LINUX datmlar arasnda kk ve nemsiz farklar olmasna ramen bazlar dierlerine gre daha baarldr. rnein, kurulum programnn tanyabildii donanm unsurlar (ses kart, video kart gibi) zenginlii asndan en beenilen datm SuSEdir. Kurulum asndan en kolay olarak nitelendirilen datm Mandrivadr. Kurulum srasnda en fazla seenek sunan datm ise RedHat olarak kabul edilir. Biz bu kitap iin kurulumu en kolay olan Mandrivay setik. Bir kez kurulduktan sonra, tm datmlar neredeyse birbirinin ayn LINUX bilgisayar oluturur. rnein, Mandriva datmnda Apache web sunucusu ile ilgili dosyalar /var/www dizini altna yerletirilirken ayn dosyalar bir baka datmda /home/httpd dizini altna yerletirilebilir. Sonuta her ikisi de web sunumunu Apache ile yapar, Apache ayar dosyalarnn isimleri ve ierikleri ayndr ama yerleri deiiktir.
12
Datmlar arasnda gzleyeceiniz farklara bir baka rnek de, LINUX ayarlarn grafik arabirimlerle yapmak iin datm firmalarnn gelitirdikleri yazlmlardr. rnein Mandrivanin Mandriva Control Center isimli grafik arayzl destek program yeni balayanlar iin byk kolaylktr. Szn ksas, LINUX renmek ve kullanmak asndan datmn Mandriva m olduu, yoksa Debian m olduu pek fazla farketmez. Ancak size nerimiz sk sk datmnz deitirmemenizdir. LINUX yzlerce dizin iine yerletirilmi binlerce dosyadan oluan byk bir iletim sistemidir ve eitli denetim dosyalarn elinizle koymu gibi bulabilmek nemlidir. Sk sk datm deitiren sistem yneticilerinin ortak sknts, aradklarn kolay bulamamalardr.
UNIX Gelenei
ok geni bir aratrmac kitlesi tarafndan gelitirilmesine ramen UNIX, ilk tasarmland gnlerdeki zelliklerinden pek uzaklamamtr. Bunun en nemli nedeni, bu aratrmaclarn yazl olmayan geleneklere bal kalm olmalardr. Belki de UNIX, baarsn bu geleneksellemeye borludur. (Japonlarn ekonomik mucizesinin de geleneklere ballk olduu sylenmez mi?) rnein, dizinlerdeki dosyalarn detayl listesini veren ls komutunun 100 Megabytedan byk dosyalarda ortaya kan hatas hala dzeltilmemektedir. Her ne kadar ok tutucu bir tablo izmi olsak da, 1990l yllarda iki ayr UNIX ekol olutuundan sz etmek gerekmektedir: Berkeley niversitesinin yrtt BSD ekol ve AT&T irketinin yrtt AT&T UNIX (SVR4: System 5 Release 4) ekol. Bu iki tip UNIX, kullanclar asndan
13
pek nemli farkllklar gstermese de, sistem yneticileri asndan ok farkldrlar. 1992 ylndan balayarak AT&T UNIXi gelitiren ekipler, BSD UNIXin stn zelliklerini AT&T UNIX ile birletirerek SVR4 UNIXi ortaya kardlar ve BSD ekolne gre nemli bir stnlk kazandlar.
14
lizce olarak kaleme (pardon, klavyeye) almak zorundasnz. Bunun iin de ngilizce LINUX terminolojisini bilmelisiniz. Bir baka nemli zellii hzl ve srekli gelimesidir. Her hafta LINUX iin yeni ve ok kullanl bir yazlm ortaya atlmaktadr. Bunlar kimi zaman gvenlikle ilgili, kimi zaman yeni bir internet servisiyle ilgili olmaktadr. Bu yazlmlar ounlukla da zgr olmaktadr. Rahatlkla, lisans endiesi olmadan bilgisayarnza kurup deneyebilirsiniz. LINUX gvenlidir. Hereyden nce virs derdi yok denecek kadar azdr. UNIX iletim sisteminin ok kullancl ortamlarda iletim sisteminin kendini kullanclara kar korumak iin kulland standart gvenlik yntemleri, sistemleri virslere kar da rahatlkla koruyabilmektedir. LINUX bilgisayarlar krmak kolay deildir. Kaynak kodunun ak olmas sayesinde LINUX iletim sisteminin yeni eklenen modlleri yzbinlerce merakl tarafndan didik didik edildii iin gvenlik gedikleri ok abuk bulunmakta ve dzeltilmektedir. Daha saymaya devam edersek kitaba bir trl balayamayacaz.
Bu cmle ORACLE veritaban ynetim sistemi yazlmnn Trkeletirilmi bir srmnn hata mesajlarndan birisidir. te bu yzden ngilizce datm...
15
eviri yapmak zor itir. Hele szck says, karakter says gibi snrlamalar varsa... Aslnda Mandriva datm, gerek kurulum gerekse kullanm aamalarnda Trkeyi gayet gzel destekleyen bir pakettir. Trke destei derken yalnzca Trkeye zg karakterlerden sz etmiyoruz; mesajlaryla, aklamalaryla, balklaryla Trke desteinden sz ediyoruz. Bu gl destee ramen kitabmzdaki tm rnekleri, tm ekran grntlerini ngilizce kurulum ve kullanm iin verdik. Bunun en nemli nedeni ngilizcenin bilgisayar dnyasnn standart dili olmas ve bu ile ciddi olarak uraanlarn ngiliz dilini olmasa bile bu dildeki bilgisayar terimlerini bilmesinin kanlmaz bir zorunluluk olmasdr. letim sisteminizi kurduunuzda baka hibir yazlm, kitap veya nternet kaynana gereksinim duymayacanza emin olabilseniz sorun olmayacaktr ama ne yazk ki gerekler byle deil. Hadi LINUXunuzu Trke LINUX olarak kurdunuz diyelim... GIMP uygulamasn ne yapacaksnz, Java VM paketini ne yapacaksnz? Gnn birinde zmeye uratnz bir sorunla ilgili olarak LINUX tartma listelerinde bir Japon ya da Yeni Zelandal tarafndan yazlm notlarda Check your file system; make sure that the partition table is correct; make sure that your users are all configured to use the bash shell gibi cmleler greceksiniz. Gerek genel bilgisayar terimlerinin, gerekse LINUX terimlerinin ngilizcesini biliyorsanz bu notlardan yararlanarak sorununuzu zme ansnz ok yksektir. Eer bu gibi ngilizce belgelerde yazlanlar size hibir ey ifade etmiyorsa zmn Trke destek sitelerine ve yardm belgelerine yansmasn beklemek zorundasnz demektir. Aslnda yle bir dnrseniz ana dili ngilizce olanlarn da bilgisayar bana oturduklarnda ileri zor: http, apache, ftp, telnet, file system, mouse, root gibi szckler (ya da bizim dnyamzda szcklemi ksaltmalar) onlara da pek bir ey ifade etmemektedir. rnein UNIX dnyasnda pek yaygn kullanlan root szcnn gnlk ngilizcedeki root szcyle yakndan uzaktan bir ilgisi yoktur.
16
Szn ksas: Biliim dnyasnn kendine zg bir dili var ve bu dil tarihsel nedenlerle ngilizceden tremi. Bu dili konuamayanlarn ve yazamayanlarn da biliim dnyasnda baar ans yok denecek kadar az; onun iin ya bilingilizce reneceksiniz ya da bu iten vazgeeceksiniz. Pusula Yayncln ngilizce-Trke Ansiklopedik Biliim Szl (ISBN 975-6477-03-2) elinizin altnda olursa kendinizi daha rahat hissedebilirsiniz.
17
Fare. A balants iin bir Modem veya Ethernet arabirimi, ADSL. CD srcs olan bir bilgisayar iinizi grecektir. Daha gl bir bilgisayar elbette daha keyifli olacaktr. LINUXu diski bo bir bilgisayara; daha dorusu bilgisayarn bo bir diskine kurmak daha gvenli olacaktr; ancak art da deildir. Eer bilgisayarnzda tek bir disk varsa; bu diskte de 3-4 GByte bo blm (partition) varsa LINUXu bu bo alana kurabilirsiniz. Byk olaslkla bilgisayarnzda u anda Windows ailesinden bir iletim program kurulmu durumdadr ve doal olarak diskinizde bo bir blm yoktur. Dikkat edin; bo yer demiyoruz, bo blm diyoruz. Disk Blmleri (Partition) Fiziksel bir diski, rnein 4 blme ayrarak, sanki 4 ayr diskmi gibi kullanmak olasdr. Her diskin stnde bir blmlendirme tablosu (partition table) kaytldr. Bu tablo blmlenmemi disklerde bile vardr nk blmlenmemi disk aslnda tek blml bir disktir. Disk blmlendirmenin nemli birka yarar vardr. lk bata, kapasitesi kullanlan iletim sisteminin destekleyebildii disk kapasitesini aan ok byk diskleri paralamakta kullanlr. rnein, 30 Gbyten stndeki diskler Windows 98 ikinci srme kadar sorun yaratmaktayd. Disk blmlendirme disk yedeklemeyi de kolaylatrr. imdilik bunun ayrntlarna girmeyelim; bylece kabul edin ltfen. Disk blmlendirmenin bu aamada bizim iin en nemli yarar bir diske birden fazla iletim sistemi ykleyebilme olanan yaratmasdr. rnein iki blme ayrlm bir diskin ilk blmnde Windows ailesinden bir iletim sistemi; ikincisinde de LINUX yer alabilir. Windows ykl diskleri veri kaybetmeksizin sonradan blmlendirmek kolay deildir; daha dorusu standart Windows aralaryla bunu yapamazsnz. Bu i iin Partition Magic diye ayr bir Windows uygulama yazlm vardr, onu kullanabilirsiniz.
18
Windows 9x ve Windows ME srmleri ile NT tabanl Windows 2000 ve Windows XP srmlerinin disk formatlama yntemleri farkl olabilmektedir. NTFS (NT File System) ad verilen disk format ile Windows 9x serisinin kulland FAT16 ve FAT32 formatlarnn veri bloklarn disk zerinde yerletirilme yntemleri ok farkldr. Piyasada sonradan disk blmleyebilen birok yazlm olmasna ramen NTFS serisi formatlar da sorunsuz destekleyen Partition Magic yazlmn neririz. Aslnda daha da iyisi LINUX iin bilgisayarnza ek bir disk takmanzdr. Eer mevcut diskinizi eski iletim sistemini ve veri/program dosyalarn bozmadan blmlendirecekseniz diskinizde LINUXa ayrabileceiniz en az 34 Gbytelk bo alan olmaldr. Blmlendirme iini yaparken diskte iki yeni blm (eskisiyle birlikte toplam 3 blm) oluturmalsnz. Eski iletim sistemini ieren ilk blmn ardndan 128-256MB aras bir takas alan blm (swap partition) oluturup kalan blm LINUXa ayrabilirsiniz. Takas alan, LINUX tarafndan ana bellein yetmedii durumlarda yardmc ana bellek gibi kullanlacaktr. Ortalama bellek eriim srelerinin mikrosaniyelerden milisaniyelere frlamas yznden takas alann kullanmak zorunda kalan yazlmlarn almas ok ama ok yavalayacaktr; ama te yandan bu yavalk programlarn hi almamasndan daha iyidir. Eer Windows iletim sisteminizi korumak istiyorsanz ve tek bir diskle alyorsanz, blmlemeden sonra diskinizin haritas yle olabilir. Windows iin ayrlan blm (Ne kadar gerekiyorsa) Takas alan* LINUX dosya sistemleri iin ayrlan blm (3-4 Gbyte)
Eer LINUX iin ayr bir disk kullanacaksanz ya da diskinizdeki eski iletim sistemini korumak istemiyorsanz bu diskin blm haritas yle olabilir:
Takas alan* LINUX dosya sistemleri iin ayrlan blm (3-4 Gbyte)
* Takas alannn ana bellein iki kat olmas nerilir. Ancak disk kapasitesini uygun deilse 256 MBa kadar inilebilir.
LINUX iin ayr bir disk kullanma olananz varsa, bu diskin blmlemesini ve takas alan yaratlmas iini LINUXun kurulumu srasnda yapabilirsiniz.
19
Takas alan iin yaklak olarak bilgisayarn hafzasnn iki kat civarnda bir yer ayrlr. 256 Mbyte gnmz bilgisayarlar iin son derece uygun bir takas alan kapasitesidir. Her disk zerinde yaplm olan blmlendirmeye ilikin bilgiler o diskin belli bir alannda Blmlendirme Tablosu (Partition Table) ad altnda kaydedilir. Blmlenmemi diskler aslnda tek bir blm olarak dzenlenmi gibi deerlendirilirler; yani onlarn da birer blmlendirme tablosu vardr. Bir diskin blmlendirmesi deitirilirse, yeni harita blmlendirme tablosuna kaydedilmelidir. Blmlendirmeyle ilgili dzenlemeleri ve yeni tablonun kaydedilmesi iini blmlendirme ilemlerini yaparken kullanacanz programlar (fdisk gibi) yapacaktr. LINUXun kurulmas srecinde bilmenizde yarar olan nemli kavramlardan biri de boot srecidir. Bilgisayarlarn Al Sreci (Boot Sreci) Boot szc ngilizcedeki boot strapping deyiminin ksaltlmdr. Boot strapping deyimi ise bir insann botlarnn backlarndan ekerek kendini havaya kaldrmas anlamnda bir benzetmedir. Aslnda bir bilgisayarn al srecini gerekten andran ok ho bir benzetmedir bu... Kapalyken belleinde hibir program ykl olmayan bir bilgisayarn, koca bir iletim sistemini bellee ykleyip ie yarar hale gelmesi sreci gerekten ilgintir. Bilgisayar ilk atnzda BIOS (Basic Input-Output System) entegre devresinde (ROM: Read Only Memory) kaytl olan kk bir program, iletim sistemi yklemekte kullanlabilecek disket, disk gibi aday yan bellekleri belirler. Genellikle ncelik disket srcsndedir. Eer disket srcde bir disket takl deilse CD src kontrol edilir; CD de takl deilse birincil kontrol kanalndaki (Primary IDE Channel) ilk disk kontrol edilir. Bu sray sisteminizin Setup mensndeki aralarla deitirebilirsiniz. BIOS, iletim sisteminin yklenecei yan bellek birimini belirledikten sonra, yan bellein tipine gre nceden bir standart olarak belirlenmi bir adresteki kayd bellee okur. Master Boot Record (MBR) ad verilen bu kayt 446 byte uzunluunda bir program ierir. Diskte ykl olan iletim siste-
20
minin bir paras olan bu kck program iletim sisteminin disk zerinde nasl yayldn bilen bir program olduu iin artk iletim sisteminin ekirdek modllerinin (kernel) bellee yklenmesi kolaydr. LINUX iletim sisteminin MBR iine kaydettii iletim sistemi ekirdei ykleme program olan LILOya (LInux LOader) ileride daha ayrntl bir ekilde deineceiz. LILO, sistemin deiik disklerinde ve blmlerinde ykl olan deiik iletim sistemlerinin her birini ayr ayr ykleyebilir. Bu sayede bilgisayarnzda LINUX yklenmeden nce ykl olan iletim sistemlerini kaybetmezsiniz. Disk Dosya Sistemleri (File Systems) Her iletim sistemi bilgisayarn diski zerinde kaydedilecek dosya ve dizinlerin disk zerindeki fiziksel yerleimlerini dzenleyebilmek iin kendine gre bir dosya yaps sistemi kullanr. Genel olarak dosya sistemi olarak adlandrlan bu yaplar disklerde dosya ve dizin yaratlmas, bunlara hzl bir ekilde eriilmesinin salanmas, silinen dosyalarn kulland alanlarn geri kazanlmas gibi ilerin halledilmesine ynelik olduka karmak veri yaplardr. Windows ailesinde iletim sisteminin srmne gre FAT16, FAT32 ve NTFS gibi dosya sistemleri kullanlr. LINUX altnda biimlendirilecek (formatlanacak) diskler zerinde yaratlacak dosya sistemleri iin birden fazla seeneiniz vardr. inde bulunduumuz yllarda en salkl ve gelimi dosya sistemleri reiser-fs ve ext3 dosya sistemleridir. Yksek performans gereken uygulamalar iin kurulan ve kesintisiz g kaynayla desteklenen sistemler iin en uygun ve en popler disk dosya sistemi ise ext2 dosya sistemidir. Reiser-fs ve ext3, Journalized file systems ad verilen bir kategoriye ait dosya sistemleridir. Bu dosya sistemlerinin en nemli zellii, bilgisayarn g kesintisi gibi nedenlerle kapanmas durumunda disk dosya sisteminde bozukluk olmamas; dolaysyla bilgi kayb olmamasdr. Dosya sistemi zerinde birok kaydn yedekli tutulmas nedeniyle doal olarak biraz yavatr. Bilgisayarnz bir kesintisiz g kaynayla desteklenmiyorsa disklerinizi Reiser-fs veya ext3 kullanarak dzenlemenizi neririz. imdi de LINUX kullanrken olduka sk karlaacanz baz nemli kavramlardan sz etmek istiyoruz. Bu kavramlar batan biraz olsun tanrsanz, gerek kurulum, gerekse kullanm srasnda ok rahat edersiniz.
21
X Window Bildiiniz gibi grafik kullanc arabirimleri kiisel bilgisayar pazarna uzun yllar nce Apple Macintoshlarla girdi. Ekranda bir fareyle dolamak, ekranda yazlarn ve resimlerin birlikte grlebilmesi, hatta yazlarn da resim olarak deiik yaz tipleriyle yazlabilmesi doal olarak bilgisayar kullanmn ok byk lde kolaylatrd. Kolaylatrmak bir yana, yepyeni uygulama alanlarna yol at. Genel kannn aksine ilk grafik kullanc arabirimi Macintoshla ortaya kmad; ama Apple bu kavram kiisel bilgisayarlara tayan ilk firma oldu. Massachusetts Institute of Technology (MIT) niversitesinde 1984 ylnda balatlan Athena projesi 1986da ilk rnlerini vermeye baladnda X Window (ksaca X) adyla anlmaya balamt. Belki inanmayacaksnz ama UNIX dnyasnn grafik kullanc arayz hala bu X zerine kuruludur. Elbette o gnden bugne ok ey deiti ama temel ilkeler hala ayn. UNIXin gelenekselliki felsefesi sayesinde o ilk yllarda yazlm olan programlarn neredeyse tamam hala yeni X srmleri ile uyumludur.
X Window, veya LINUX dnyasnda daha yaygn olarak kullanlan adyla Xorg standard bilgisayarn ekrannda grafik eler oluturabilmek iin kullanlan bir yazlm alt yaps ve bu alt yapya hkmetmek iin gelitirilmi bir
22
yazlm ktphanesidir. Bu nedenle X (veya Xorg) tek bana kullancnn pek bir iine yaramaz. Xin mekanizmasn anlamak iin kavram ok iyi sindirmelisiniz: X Sunucusu, X stemcisi ve X Protokol. X Sunucusu (X Server): X Sunucusu genellikle ok yanl anlalan bir terimdir. X Sunucu hereyden nce bir yazlmdr. X grafik kullanc arabirimi hangi bilgisayarn ekrannda grafik grnt oluturacaksa o bilgisayarda bir X Sunucu yazlm almaldr. X Sunucu yazlm ekrann eitli grafik uygulamalar arasnda paylalmasn salayan; bir baka deyile grafik ekranda bir anda birden fazla pencere almasn ve bu pencerelerin iinde yaz-resim grntlenmesini salayan, klavye ve farenin denetimini stlenen yazlmdr. X stemcisi (X Client): Yazlma amacna hizmet edebilmek iin bir ekrana grafik izme gereksinimi duyan, fare ve klavyeden komut kabul edecek uygulama yazlmlarna X istemcisi denir. rnein zaman akrepli yelkovanl bir saat resmiyle gstermek isteyen bir uygulama program ve Netscape web taraycs birer X istemcisidir. X istemcileri, grafik ekranda bir deiiklik yapmak istediklerinde bu isteklerini grafik ekran denetleyen X sunucusuna iletirler. X sunucusu da, denetlemekte olduu grafik kart ile grp grnt deiikliinin monitre yansmasn salar. arpc bir ey syleyelim mi? X sunucusu ile X istemcisi farkl bilgisayarlarda alyor bile olabilirler. X Protokol: X istemcilerinin grafik birimlere izim yapma isteklerini X sunucularna aktarmak iin kullanlan protokoldr. X istemcileri, X sunucularndan izim ilerini yapmalarn isteyebilecekleri gibi; X sunucularn, denetledikleri grafik arabirimler hakknda bilgi gndermelerini de isteyebilirler (renk zenginlii, znrlk gibi). X Protokol tek bir bilgisayar zerinde alan X sunucusu ile X istemcileri arasnda yrtlebilecei gibi TCP/IP zerinden farkl bilgisayarlar arasnda da yrtlebilir. Nasl yani? diyorsanz ksacas yle: Ankarada Bilkent niversitesinde yer alan bir bilgisayar zerinde alan CAD yazlmnn grafikleri Boazii niversitesindeki bir bilgisayarn ekranna alnabilir. Byle bir durumda X sunucusu Boazii niversitesindeki bilgisayarda; X istemcisi olan CAD yazlm da Bilkent niversitesindeki bilgisayarda alyor olacaktr.
23
Evet! Birka yldr size yeni teknoloji diye sunulan iletim sistemlerinde buna birazck benzer bir i yapabilmek iin fazladan birka bin dolar demeniz gerekiyor! Oysa X, 1985den beri bu ii mkemmel bir ekilde cretsiz ve zgr olarak yapyor. X istemcileri, bir grafik izmek istediklerinde ember iz, mavi kare iz, kesikli izgi iz, Times Roman yaz tipiyle u karakterleri gster gibi temel X komutlarn X protokol ile bir X sunucusuna gnderirler. Eer yazlmn alma mant asndan gerekliyse, nce bu grafiklerin nasl bir ekranda izileceklerini de renebilirler. Bu istekleri alan X sunucusu, istemcinin tanmlanm yetkileri uygunsa bu grafik unsurlar kendi denetiminde olan ekrana izer. Farenin hareketleri ve klavyede baslan tular hakknda gereken bilgiler de X sunucusu tarafndan istemciye gnderilerek uygulama yazlmnn davran denetlenebilir. Bir X sunucusu birden fazla bilgisayarda alan X istemcilerinin pencerelerini barndrabilir. Yani kendi ekrannzda be deiik pencere iinde, be deiik corafi blgede yer alan be deiik bilgisayarda alan be deiik grafik uygulama programnn ekranlarn barndrabilirsiniz. Ynetmekle sorumlu olduklar sunucuda nemsiz bir parametre deitirdikten sonra veya yeni bir program ykledikten sonra sistemi Restart etmek iin ya da yedekleme balatmak iin gece yars irkete giden NT sistem yneticilerinin kulaklar nlasn...
24
Bu ekranda grdnz her bir pencere, farkl bir bilgisayarda almakta olan uygulama programlarna aittir. Bir baka deyile, drt ayr bilgisayarn ekran tek bir ekrana toplanabilmektedir.
25
pencere yneticilerini dorudan kullanmazlar. Kullancnn dorudan iletiimde bulunduu yazlmlar masa st yneticileridir. X altnda alan pencere yneticileri altnda eitli ikonlar, men sistemleri ile kullanclara daha kullanl ve anlaml ekran grntleri sunan X uygulamalarna masa st yneticisi denir. LINUX dnyasnn en nemli masa st yneticileri KDE ve GNOME yazlmlardr. Masa st yneticileri, pencere yneticileri altnda alr. Pencere yneticileri de X altnda... Bu kitaptaki tm ekran grntleri KDE masa st yneticisi kullanlarak hazrlanmtr. LINUXun kurulumunun bir aamasnda sizin de bir masa st yneticisi semeniz gerekecektir. Bu kitapla uyumlu olmas asndan KDE semenizi neririz. Zaten istediiniz zaman deitirme ansnz olacaktr.
Yukardaki rnek KDE ekrannda dikkatinizi ekmek istediimiz iki ge var: Biri terminal penceresinin yar saydam olmas dieri de n plandaki pencerenin bir Windows-98 bilgisayarna ait olmas. Yar saydam uygulama pencereleri, uygun fon resimleri ve renklendirmeyle ok ho masa st grntleri verebilmektedir. www.kde-look.com adresinde yzlerce deiik masa st temas bulabilirsiniz.
26
n plandaki Windows ekranna gelince... Evet, LINUX altnda Windows iletim sistemini altrabileceiniz gibi birok Windows uygulamasn da kullanabilirsiniz. Bu i iin VMWare, Win4Lin ve Wine gibi LINUX yazlmlar vardr. Ancak, Wine hari hepsi cretlidir.
root
UNIX dnyasna yeni girenlerin ksa bir sre iin de olsa almakta zorluk ektikleri iki anlaml bir UNIX terimidir. Eer insanlardan (kullanclardan) bahsedilirken kullanrsa, root szc (ruut okunur) sper kullanc yani sistem yneticisi anlamna gelir.
27
Tm UNIX ve LINUX kurulumlarnda ad root olan bir kullanc vardr. Bu kullanc sistemdeki tm kaynaklar kullanmaya, tm dosya ve dizinlerde her trl deiiklii yapmaya yetkilidir. root szc disklerden, dizinlerden sz ederken kullanlrsa bir UNIX bilgisayardaki disk dosya sisteminin en st noktas anlamna gelir. Aslnda bu noktann adnn okunuu root dur ama yazl / dr. Windows iletim sisteminde her diskin C:\, D:\ ile gsterilen kendi root dizinleri olmasna karn UNIXde durum biraz farkldr. En nemli fark, zerinde ka disk takl olursa olsun her UNIX bilgisayarda tek bir / dizini olmasdr. kinci nemli fark da, root dizinin semblnn \ deil, normal blm iareti olan / olmasdr.
28
SCSI ok esnek bir arabirim standarddr. Sabit disklerden teyplere, tarayclardan yazclara kadar birok donanmda kullanlabilmektedir. SCSI arabirim denetim modlleri de (driver) bir o kadar esnektir. Bu nedenle yeni disk teknolojileri ile ilgili ekirdek modlleri genellikle SCSI arabirim srclerine eklenmektedir. rnein son yllarda hzla yaygnlaan SATA disk arabirim standard da LINUX iletim sisteminde bir SCSI arabirimi gibi denetlenmekte; bunun iin de SATA disk srcler sistemde sda, sdb gibi isimler altnda grnmektedir.
sda1 sda2 sda3 SATA-1 SATA-2 SATA-3 Ana Kart SATA-4 sdd1 sdc1 sdd2 sda4 sdb2 sdb1
Kurulum ncesi bu kadar teori yeter. imdi Mandriva LINUX datmnn CDsini ve bir tane bo disketi hazr edip kuruluma balayabilirsiniz.
29
30
02
Varsaymlar
Bilgisayarnzda donanm zellikleri olarak Birincil IDE kanalna master olarak taklm 20 Gbyte kapasiteli bir disk src, kincil IDE kanalna master olarak taklm bir CD src, 1024 x 768 znrlkte en az 256 renk destekleyen bir grafik kart, Bir ses kart (ya da ana kart zerinde btnleik bir ses arabirimi) ve hoparlr, 128 MByte bellek, Tekerli bir fare, Bir ADSL balants, Bir disket src, olduunu varsayyoruz. Ayrca, sisteminizde Windows XP ykl olduunu, buna ramen 10 GByte bo yer olduunu, bu diskteki deerli dosyalar yedeklemi olduunuzu ve Partition Magic veya edeeri bir programla diskinizi blme ayrm olduunuzu varsayyoruz. 10 GByte (WinXP blm) 512 MByte (Takas alan)* 9.5 GB (LINUX iin ayrlan alan)
* Takas alan olarak ana bellein (RAM) iki kat nerilir. Daha fazla olmasnda bir saknca yoktur.
31
MBytelk blmnde takas alan olarak ayrlm bir alan ve son blmnde de LINUX iin ayrlan alan.
Gelimi iletim sistemlerinde bilgisayarn bellei, alan programlar arasnda dinamik olarak paylatrlr. letim sistemi, bellee gereksinim duyan programlara bellek verir; ii biten bellek alanlarn da geri alr. Ancak, yle anlar olur ki, alan programlarn istedikleri toplam bellek, sistemin sahip olduu bellekten fazladr. Modern iletim sistemleri bu durumlarda almakta olan programlar arasndan uygun grdkleri birini ya da birkan bellekten diske tayarak kalan programlara yer aar. Biraz sonra bellekte kalmay baaran programlar diske indirip, az nce diske tanm olan programlar bellee geri alp altrmaya kald yerden devam ettirir. Btn bu iler saniyenin kk kesirlerinde yaplabilse de bilgisayarn almasn byk lde yavalatr. Bu sanal bellek (virtual memory) uygulamas aslnda yukarda anlattmzdan elbette daha karktr ama ilke olarak bu ekilde; bellekteki programlarn zaman zaman diske atlarak bellek kazanmaya allmas, bellek yetersizliinden programlar tamamen durdurmak zorunda kalmaktansa sistemi yavalatmak daha iyidir dncesidir. Bellekten diske ve diskten bellee program paralarnn tanp durmas iin diskte ayrlan alana takas alan ad verilir.
Kurulum
Evet, hazrsanz balayalm... Sisteminizin BIOS ayarlarndan ncelikli boot srcsn CD-ROM src olarak semeyi unutmadan Mandriva datm CDlerinden Install etiketli olan ilkini srcye takp bilgisayarnz anz. Birka saniye iinde ekrannzda...
32
Kuruluma devam etmek iin Enter tuuna basnz. Mandriva LINUX datmn kurmann tek yolu CDden kurmak deildir. LINUXunuzu bir diskten veya a zerinden eriebildiiniz bir bilgisayardan da kurabilirsiniz. Hangi kurulum yntemi seilmi olursa olsun baladktan sonra gerisi ayn olduu iin biz CDden kurulumu anlatacaz. nce Mandriva LINUXu hangi dille kurmak ve kullanmak istediinize ilikin seiminizi yapmalsnz. Karnza gelecek listeden English American seebileceiniz gibi Turkish de seebilirsiniz. LINUXunuzun dilini Turkish olarak belirlerseniz tm kurulum ekranlar ve daha sonra da iletim sisteminin pek ok metni karnza Trke olarak gelecektir. Ancak Mandriva datmnn Trkeletirmesi henz tamamlanmad iin baz ekranlar/mesajlar ngilizce olacaktr. Biz LINUXunuzu ngilizce olarak kurmanz ve kullanmanz neririz. Eer bilgisayar ve LINUX terimlerinin ngilizcesini biliyorsanz veya renirseniz zaten sorun yok. Yok eer bilmiyorsanz, renmeye balamann tam zamandr. UNIX ve LINUXla ilgili btn kitap ve dokmanlar Trkeletirilemedii iin ve buna da pek olanak olmad iin LINUXa zg terimlerin ve kavramlarn ngilizcesini renmek zorundasnz.
33
Bu dil seme ekrannn sol tarafndaki liste kurulum boyunca orada kalacak ve kurulumun hangi aamasnda olduunuzu gsterecektir. Halen iinde bulunduunuz kurulum aamas beyaz renkli bir butonla gsterilir.
Bu da lisans anlamanz... zet olarak Mandriva LINUX datmnn ve logolarnn telif hakknn Mandriva S.A irketine ait olduunu, bu ekranda Accept seimini yapp Next butonunu tklamakla bu lisans anlamasn kabul etmi olacanz belirtiyor. Bu yazlmlar kullanmanzdan ya da kullanamamanzdan dolay urayabileceiniz hibir zarardan kendilerinin sorumlu tutulamayacan vurguluyor. Ayrca, datm paketindeki yazlmlarn ok byk bir ounluunun ve paketin kendisinin Genel Kamu Lisans (GNU General Public License) ile datldn belirtiyor. GKL size biraz garip gelebilir. Bu lisans ile datlan programlar hi kimseye para demek zorunda kalmadan kullanabilir ve istediiniz kadar kopyalayp istediiniz gibi databilirsiniz. Microsoft yneticilerinin GKL lafn duyunca neden bir ho olduklarn imdi anlyor musunuz?
34
LINUX bilgisayarnzn kurulumu srasnda yaplacak gvenlik ayarlarnn dzeyi soruluyor. Standard semenizi neririz. Daha yksek gvenlik dzeyleri yeni renenler iin biraz fazla gvenli oluyor. kinci kutuda, sisteminizde alacak birtakm gvenlik denetim yazlmlarnn raporlarn kime gnderecei soruluyor (Security Administrator). Bu kutuya kurulumun ileri aamalarnda kendinize aacanz hesabn adn girebileceiniz gibi bakasna ait bir elektronik posta adresi de girebilirsiniz. nerimiz buraya kendi hesap adnz (cayfer gibi) girmenizdir.
35
Kurulumun nemli bir aamas... Diskinizin blmlemesiyle ilgili seimlerinizi yapmak zeresiniz. Eer diskinizin tamamn LINUXa ayrabilecekseniz Erase entire disk seimini yapnz. Eer diskinizin blmlenmesi LINUX kurulumu iin hazrsa; yani, bir tanesi takas alan olmak, dieri LINUX kurulmak zere en az iki blm tanmlysa Use existing partitions seimini yapabilirsiniz. Eer disk blmlemeyi kendi kontrolnz altnda yapacaksanz (-ki bu seimi neririz) Custom disk partitioning seimini yapnz. Bundan sonraki ekran grntleri 20 GB diski olan, diskin ilk 10 GBytenda Windows XP kurulu olan bir disk iin verilecektir. Bu noktada amacnz, ekrandaki blmleme haritasn aada grnen ekle benzer bir ekle getirmek olacaktr. Yeni blmleme haritasnda en az iki yeni blm yer almaldr: 1. Takas alan, 2. LINUX blm. Disk blmleme haritas Windows XP Blm Takas Alan LINUX Blm
ncelikle Takas Alann yaratmanz neririz. Takas Alan tm UNIX iletim sistemlerinde olduu gibi LINUXta da ok nemlidir. zel bir neden yoksa, takas alan olarak ayracanz disk alannn boyu, bilgisayarnzn ana belleinin iki kat kadar olsa yeter.
36
Disk blmlemesini LINUXa uygun bir ekle getirmek iin: Varsa Windows blm iin bir mount point tanmlamanz, Bir takas alan blm yaratmanz ve blm tipini Swap olarak atama nz, Kalan alan iin de mount point olarak /; File system type (dosya sis temi tipi) olarak da Journalised FS tanmlamanz gerekmektedir.
Bu ileri yapmak iin emasnda ilgili disk blmn tkladktan sonra soldaki menden Resize (boyunu deitir) Mount point (balant noktas) ve stteki listeden File system type (dosya sistemi tipi)
37
seimlerini ve ayarlarn yapmanz gerekmektedir. Bu ilemleri yaparken nce bir disk blmn tklayp semek, sonra da ayarlarn yapmak gerekmektedir. Bu ilemler srasnda disk blmlerini silmek iin Delete, boyutlarn deitirmek iin Resize, bo disk alanna yeni blm yaratmak iin de Create butonlarn kullanabilirsiniz. Eer birden fazla fiziksel diskiniz (disk birimi) varsa, blm haritasnn st tarafnda hda, hdb (ya da sda, sdb) gibi balklar greceksiniz. Hangi diskin blmlemesini yapmakta olduunuza dikkat etmelisiniz. Done butonunu tklayncaya kadar yaptnz hi bir deiiklik diske ya da disklere kaydedilmeyecektir, rahat rahat alabilirsiniz. rnein takas alann yaratmak iin ekrandaki blmleme haritasnda bo disk alann tklayp ardndan Create butonunu tklaynz. Sonra File System Type kutusunda Linux Swap seip, bu blm iin ayracanz alan iin Size in MB ayarn yaklak 512ye getiriniz ve OK butonunu tklaynz. Takas alann ayrdktan sonra LINUX iletim sisteminin yerleecei blm tanmlamalsnz. Bunun iin, haritada kalan bo alan zerine tklayp Create butonunu tklaynz. Diskin kalan alannn tamamn LINUXa ayrmak iin Size in MB srgsn en saa ekiniz. Filesystem types kutusunda Journalised FS: ext3 seili olsun, Mount point kutusunda da / iareti olsun. Amacnz aadakine benzer bir blmleme haritas elde etmek olmal: 1. Hi ellenmeyecek bir Windows blm (tabii varsa), 2. Ana bellein iki kat kadar bir takas alan ve 3. Diskin kalan kadar bir LINUX blm.
38
Blm eridi
Bilgisayarnzda birden fazla disk src varsa, yukardaki harita ekrannda bu disklerin blmleme tablolarn hda, hdb, hdc, hdd gibi balklar altnda greceksiniz. LINUX iin kullanmay dndnz diskte bir Windows blmne gereksiniminiz yoksa, o diskte yalnzca bir takas alan ve LINUX blm yer alabilir.
Disklerinizin blmlemesini tamamladnzda disk ya da disklerinizin saysna ve eski iletim sistemini korumak isteyip istememenize gre aadaki blmleme haritalarndan birini elde etmi olmalsnz:
Tek Disk, Tamam LINUXa Ayrlm
Kapasite
39
Kapasite
Dosya Sistemi Tipi (fs Type) Win98 FAT32 swap Journalised FS:ext 3
Her ne ise
Disk ve Blm hda, had1 hda, hda5 hda, hda6 hda, hda7
Kapasite
Dosya Sistemi Tipi (fs Type) Journalised FS:ext 3 swap Journalised FS:ext 3 Journalised FS:ext 3
Kapasite
Dosya Sistemi Tipi (fs Type) Win98 FAT32 swap Journalised FS:ext 3
Blmleme tablonuz hazr olunca Done butonunu tklaynz. Yeni blmleme tablonuzun diske kaydedileceine ilikin Partition table of drive hda is going to be written to disk! diye bir mesaj alacaksnz. Ok tklayp devam ediniz.
40
imdi yeni tanmlanan LINUX blm formatlanacaktr. Bu formatlama, bilgisayarnzn hzna bal olarak 10-20 saniye iinde tamamlanacaktr. Eer diskinizde ayrabileceiniz 2 GigaByte kadar fazladan yer varsa, Mandriva datm CDlerini bu aamada diske olduklar gibi yklemek iyi bir fikir olacaktr.
41
Kurulum CDlerinin kopyas diskinizde yer aldnda eitli eksik programlar yklemek ya da baz paketleri silip yeniden yklemek istediinizde kolaylk olacaktr. Eer CD kopyalar diskinizde bulunmazsa, datm iinden bir program yklemek istediinizde, programn iinde bulunduu CDyi takmanz istenecektir. leride CD kopyalarnn diskte harcad yer sizi rahatsz ederse /var/ftp/pub/Mandrivalinux/media/ altndaki media1, media ve media3 dizinlerini silebilirsiniz. Eer CDlerin diske kopyalanmasn tercih ederseniz, nce datm CDsinden baka CDniz olup olmad sorulacak (ki buna yok - none demelisiniz) sonra CDler diske birer birer kopyalanacak, kurulum ondan sonra devam edecektir.
42
Kurulum ilemi baladnda kullanmay dndnz uygulama gruplarn semeniz istenecektir. Seimlerinizi yaparken disk kapasitenizi gz nnde bulundurmalsnz. Siz grup setike ekrann en altnda Total size bal yannda seimlerinizin diskte ne kadar yer tutaca grntlenecektir. Tipik ve bol keseden yaplm bir seim listesi rneini aadaki ekran grntsnde grebilirsiniz. Linux altnda yazlm gelitirme almas yapmay dnmyorsanz Development balkl grubu bouna semeyin deriz. Deiik masast denetim yazlmlarn denemek istiyorsanz Graphical Environment grubu altnda KDE Workstation yan sra GNOME Workstation seimini de yapmanz neririz.
43
Unutmayn! Eksikliini hissettiiniz paketleri sonradan kolayca ykleyebilirsiniz. Setiiniz uygulama yazlm gruplar arasnda bir sunucu yazlm varsa (ki byk olaslkla olacaktr), bir uyar ekran ile karlaacaksnz:
letim sistemi ne olursa olsun, sunucu servisleri altrmak tehlikelidir. Sunucu yazlmda yer alabilecek bir hata ya da zayflk sorun karabilir. Dikkat ederseniz karabilir diyoruz. Piyasada, bir sunucu yazlm almasna dahi gerek olmadan sorun kmas garantili iletim sistemleri bulunduunu belirtmemize herhalde gerek yok. aka bir yana, bu uyar ekrannda ekinmeden Next seimini yapabilirsiniz.
44
Evet... Bir kahveyi hak ettiniz. imdi bilgisayarnzn hzna bal olarak yarm saat-krk be dakika kadar beklemeniz gerekecek. Kurulum CDlerinin diske kopyalanmasn istemediyseniz arada srada CD deitirmeniz istenecektir.
45
Yukardaki ekran, LINUX sisteminizin root kullancs iin bir ifre semenizi istiyor. Hatrlarsanz ad root olan kullanc LINUX asndan zel bir kullancyd. root isimli kullanc sistemde hereyi yapmaya yetkilidir. leride sistem yneticisi yetkilerine gereksinim duyduunuzda, root kimliine brnmeniz gerekecektir.
LINUX, root kimliiyle i yapan kullanclarn ne yaptn iyi bildiini varsayar ve pek ok geri alnamayacak ileme ilikin komutlar sorgusuz sualsiz yerine getirir. Acemilii stnzden atmadan, gerekmedike root kimliine brnmemenizi neririz. Tek bir komutla kritik dosya ya da dizinleri silip tm sistemi kertebilirsiniz.
Sisteminiz bir bilgisayar ana balysa sakn ha ifresiz root kullanc (No password) seimini yapmaynz. root kullanc iin ifrenizi setikten sonra en az bir tane normal kullanc tantmalsnz. Doal olarak bu kullanc iin en iyi aday kendinizsiniz.
LINUX, gvenlik nedeniyle bilgisayar andan root kimliiyle gelen istekleri geri evirir. Bu nedenle sisteminize uzaktan erierek sistem ynetimiyle ilgili bir i yapacanzda, nce normal bir kullanc kimliiyle balanp sonra root kimliine brnmelisiniz. Bu nedenle kendinize mutlaka sradan bir kullanc hesab amalsnz.
46
root kullancnn ardndan normal kullanclar tantmanz istenecektir. Bu aamada bir tane normal kullanc tantmanz yeterli olacaktr. Naslsa sonradan istediiniz kadar kullanc tantabilirsiniz. UNIX geleneklerine gre kullanc tantm kodlar (User Name, User ID, Login Name diye de adlandrlr) kk harflerden oluturulur. Sizin de ayn gelenee uymanz neririz. Ayrca kullanc tantm kodu olarak seeceiniz karakter dizisinin en fazla 8 karakter uzunluunda olmasna ve boluk karakteri, Trkeye zg karakter ve noktalama iareti iermemesine de dikkat ediniz. Kullanclar iin setiiniz kullanc tantm kodlar o kiilerin e-posta adresi olacaktr. Bu nedenle k1, u2 gibi kiiliksiz kodlar da sememelisiniz.
Bu tanttnz kullancnn sisteminiz aldnda otomatik olarak sisteme giri yapmasn isteyip istemediiniz soruluyor. Eer yantnz Evet olacaksa, bu kullanc iin balatlacak pencere yneticisini de seebilirsiniz (KDE, GNOME gibi). nerimiz sistem aldnda seilmi bir kullancnn sisteme giri yapmasn sememeniz dorultusundadr. Do you want to use this feature? seimini bo brakarak Next butonunu tklaynz.
47
Sisteminizin al srasnda yklenecek iletim sistemini seen programn (LILO: Linux Loader) yklenecei disk birimi soruluyor. First sector of drive (MBR) seip devam ediniz.
48
imdi de sra bilgisayarnzn ayrntl ayarlarnn yaplmasna geldi. Bu aamada klavye, arabirim dili (Country seenei), zaman dilimi (Timezone), grafik arabirim kart (Graphical Interface), a ayarlar (Network-LAN), gvenlik dzeyi (Security Level), al seeneklerini (Boot) seme ve deitirme ans sunuluyor. Bunlar arasnda en nemli olan Network-LAN ayardr. Aslnda bu seimlerin hepsini sonradan deitirebilirsiniz ama hazr yeri gelmiken klavye seiminde US keyboard (international) seip, More butonunu tklayp ardndan Turkish (modern Q mode) veya Turkish (traditional F mode) seiniz.
49
50
Zaman diliminizi (Timezone) Europe/Istanbul semelisiniz. Bu seimi yaptnzda iki soru sorulacaktr:
51
Hardware clock set to GMT seimi, bilgisayarnzn saat devresini Greenwich standart saatine ayarlama seimidir. Bo brakmanz neririz. Automatic time synchronization seimi de sisteminizin saatinin NTP (Network Time Protocol) protokol ile bir saat sunucusundan alnp alnmayacan belirler. Bunu da bo brakmanz neririz. Yazc ayarlar iin Printer Remote CUPS Server seimini yapnz.
CUPS, Common UNIX Printing System szcklerinin ba harfleridir (kaps diye okunur). Son yllarda kullanlmakta olan en gelimi yazc denetim sistemidir. Bir UNIX bilgisayara dorudan bal yazclar kadar a zerinden eriilebilen yazclar da byk baaryla denetleyebilir. Kurulumu da olduka kolaydr.
52
Aadaki ekran grntlerinden de kolaylkla izleyebileceiniz gibi yazcnzn otomatik tannmasn salayabilirsiniz (Auto-detect printers connected to this machine).
53
Yazcnza bir isim, belki modelini belirten bir aklama ve belki de en nemlisi yerini belirten (rnein hangi odada olduunu belirten) aklamalar girmelisiniz. ok yazcl byk bir bilgisayar anda yazcnn yerini belirten aklama notu ok yararl olmaktadr.
54
55
nternet balantnz bir ADSL Modem ile yapyorsanz, yani ADSL Modeminiz bilgisayarnzn iinde takl ise ya da USB arabirimi ile balanyorsa, bu listeden ADSL Connection seimini yapp, ADSL Servis salaycnzn size vermi olmas gereken bilgiler aracl ile kuruluma devam ediniz.
56
nternet balantnz ADSL hat zerinden bir ADSL ynlendirici (ADSL Router) ile yapyorsanz, byk olaslkla bilgisayarnz ADSL ynlendirici cihazna Ethernet arabirimi ile balanyordur. Bu durumda listeden LAN Connection seip kuruluma devam ediniz. nternet balantnz bir Kablo Modem ile yapyorsanz, yani Kablo Modeminiz bilgisayarnzn iinde takl ise ya da USB arabirimi ile balanyorsa, bu listeden Cable Connection seimini yapp, Kablo-Net servis salaycnzn size vermi olmas gereken bilgiler aracl ile kuruluma devam ediniz. Bilgisayarnz bir yerel bilgisayar ana balysa byk olaslkla Ethernet arabirimi ile balanyordur. Bu durumda listeden LAN Connection seip kuruluma devam ediniz. Eer bilgisayarnzda bir Wi-Fi Telsiz Ethernet arabirimi (Wireless Ethernet) varsa, ve Mandriva kurulum yazlm bu kart tandysa, yukardaki listede bir de Wireless Connection seenei yer alacaktr. Eer a balants iin sadece Wi-Fi arabirimi kullanacaksanz Wireless Connection seip devam ediniz. Wi-Fi arabirimi yansra Ethernet arabirimi de varsa ve bunu da kullanacaksanz LAN Connection seimiyle devam ediniz. imdi de sra bulunan Ethernet arabiriminizi semeye ve bu arabirim iin TCP/IP ayarlarna geldi...
57
Internet, TCP/IP protokol denilen bir iletiim protokolleri topluluu zerine yaplandrlmtr. Bu protokol gerei internet veya TCP/IP a zerinde yer alacak her bilgisayarn bir IP numaras olmaldr. Ayn bir lkenin telefon ebekesine balanacak her telefonun bir abone numaras olmas gerektii gibi... Bu abone numaralarna siz karar veremezsiniz, numaralar telefon hizmetini veren kurulu tarafndan datlr ve her abonenin numaras farkldr. Kendi zel telefon ebekeniz varsa, rnein irketinizde bir telefon santralnz varsa dahili abonelerin numaralarn istediiniz gibi seer ve datrsnz, ancak gene de her abonenin farkl bir numaras olmaldr. Buna benzer ekilde d dnyayla dorudan balants olmayan bir anz varsa, ierdeki bilgisayarlara, birbirlerinden farkl olmak kaydyla istediiniz IP numaralarn verebilirsiniz. Byle durumlarda genellikle 192.168.0.1 serisi IP numaralar kullanlr. Bilgisayar anzn d dnyaya balants varsa IP numaralarnn seiminde pek zgr deilsiniz demektir. Kullanabileceiniz IP numaralar iin servis salaycnzla veya a yneticinizle grmelisiniz. Aslnda TCP/IP protokolne gre IP numaralar bilgisayarlara deil, bilgisayarlarn a arabirimlerine verilir. Bir baka deyile, bir bilgisayar zerinde birden fazla a arabirimi varsa (2 Ethernet arabirimi veya bir Ethernet arabirimi + bir evirmeli a arabirimi gibi) o bilgisayar zerinde tanml iki IP numaras olmaldr. Bu aklnzn bir kenarnda bulunsun.
58
Bir bilgisayarn TCP/IP protokolyle alan bir aa balanabilmesi iin drt nemli parametrenin TCP/IP ayarlar olarak girilmi olmas gerekir. Bunlar: a. IP adresi, b. A geidinin IP adresi (Gateway, Router IP Address), c. Alt a maskesi (Subnet Mask), d. En az bir DNS sunucunun IP adresi. Bu parametreler, bilgisayarnzn balanaca aa zg parametrelerdir ve doru olarak girilmelidir. Bilgisayarnzn TCP/IP ayarlarn iki yntemle yapabilirsiniz: 1. Varsa, bir DHCP servisi zerinden otomatik olarak, 2. Tm parametreleri elle kendiniz girerek (manuel). Eer a balantnz bir ADSL ynlendirici zerinden veya Wi-Fi arabirimle kuruyorsanz ok byk olaslkla ynlendirici veya Wi-Fi eriim noktas cihaznzda (Wireless Access Point) yararlanabileceiniz bir DHCP sunucu (Dynamic Host Configuration Protocol) vardr. Bu DHCP sunucunun ayarlar doru yapldysa, yaknlardaki bir bilgisayarn istemesi durumunda kendisine olmas gereken TCP/IP ayar parametrelerini gnderecektir. rnein Wi-Fi eriim noktalar bu ekilde alr. Dizst bilgisayarnzla bir Wi-Fi eriim noktasnn kapsama alanna girdiinizde, bilgisayarnz radyo dalgalaryla DHCP istei yaynlayarak etrafta kendisine TCP/IP ayar parametreleri verebilecek bir sunucu arar. Eriim noktas da koullar uygunsa bu istemciye gerekli ayarlar yapmas iin uygun parametreleri gnderir. DHCP sunucular sadece Wi-Fi servislerde kullanlmaz. Eer a yneticisi DHCP ile otomatik ayar datma yolunu setiyse, kablolu Ethernet balantlarnda da DHCP kullanlabilir. Bir ADSL ya da KabloNet ynlendirici ya da Wi-Fi eriim noktas zerinden servis alyorsanz byk olaslkla DHCP semeniz gerekecektir. inde yer alacanz an zelliklerine gre otomatik ya da manuel kurulum seimi yaptktan sonra devam edebilirsiniz.
59
Manuel ayarlama yntemini setiinizde girmeniz gereken bilgiler: IP adresi, alt a maskesi (Netmask), DNS sunucular ve a gecidi (Gataway) adresleridir.
60
Bilgisayarnza vermek zere bir isim semelisiniz. Diyelim ki bilgisayarnza orion ismini uygun grdnz ve bu bilgisayar bilkent.edu.tr ismiyle kaydedilmi olan bir aa balyorsunuz. Bu durumda Host Name (Bilgisayar Ad) olarak orion.bilkent.edu.tr dizisini girmeli ve anzn yneticisine setiiniz isim ve IP numarasn vererek DNS (Domain Name Services) kayd yaplmasn istemelisiniz. Eer bir makinenin DNS kayd yaplmazsa dier bilgisayarlar tarafndan isimle bulunamazlar. Ayn telefon rehberinde ismi olmayan abonelere, numaralarn bilenler dnda kimsenin eriemeyecei gibi. DNS Server satrna paras bulunduunuz bilgisayar ana DNS hizmeti veren bilgisayarn IP numarasn girmelisiniz.
DNS (Domain Name Services) hizmeti veren bilgisayarlarn temel ilevi sembolik internet adreslerini saysal IP numaralarna dntren bir eit bilinmeyen numaralar hizmeti vermektir. Internet zerindeki adreslendirme sistemi tamamen saysal IP adresleri zerine kurulmutur. Web taraycnzla Hrriyet gazetesinin sayfalarna bakmak iin www.hurriyet.com.tr adresini verdiinizde birilerinin bu sembolik adresi saysal IP adresine evirmesi gerekecektir. TCP/IP paketleri sembolik isimlerle hibir yere gidemezler...
Kullanclarn bir sr saysal adres ezberlemeleri pratik olmayaca iin internet zerindeki bilgisayar alarna ve bilgisayarlara sembolik isimler verilmitir. Sembolik isimlerin hangi saysal adreslere karlk geldiinin bulunmas grevi de DNS sunucularna verilmitir. Bu sunucu, sz konusu a iinde yer alan bir bilgisayar olabilecei gibi bir st ada da yer alabilir. DNS sunucunuzun IP numarasnn ne olmas gerektiini a yneticinizden veya anza internet hizmeti veren kuruluun a yneticilerinden renebilirsiniz. Bu ekrandaki nc nemli parametre bilgisayar anzn A Geidi (Gateway, geytvey diye okunur, ok yaygn ve yanl olarak okunduu ekliyle getevey deil!) grevini stlenmi olan ynlendiricinin (router) adresidir. Bilgisayar anzn a geidi adresini servis salaycnzdan renebilirsiniz.
61
ok byk lde otomatik olan bu aamay sonuna kadar gtrmeli ve zellikle en sondaki test ilemini yapmalsnz.
Grnt kartnz ve monitr tipiniz byk olaslkla otomatik tannarak onaylamanz iin size bir neride bulunulacaktr.
62
63
Doal olarak, nerilen znrlk ve renk saysn semelisiniz. znrlk iin nerilenden yksek deerleri denemeye deebilir.
64
Sistemin allarnda X Window sisteminin otomatik olarak balatlmasn isteyip istemediiniz soruluyor. Akas, deneyimli kullanclar bu soruya No yantn verip geer. Grafik ekran gerektii zaman startx komutunu verip Xorgu kendileri balatmay tercih ederler. Ama, estetik nedenlerle, imdilik de olsa, Yes semeyi dnebilirsiniz. Aslnda kurulumla ilgili ileriniz neredeyse bitti. Ayrntl kurulum seenekleri arasnda dzenleme yapmanz gereken baka bir blm kalmad. Gene de merak ediyorsanz Security-Firewall Boot-Bootloader Services gibi seimleri yapp oralarda neler varm bir gz atabilirsiniz. Next tkladnzda karnza son kurulum ekran olan Mandriva LINUX gncelleme ekran gelecektir.
65
Internet balant hznz yksekse ve vaktiniz varsa bu gncelleme srecinden gemenizi hararetle neririz. Ancak, LINUXu yeni renmek zere kuruyorsanz bizce bu gncelleme sreciyle imdilik vakit kaybetmeyin.
66
Evet, bitti... Varsa srcden disketi ve CDyi karp Ok butonunu tklaynz. Sisteminiz yeniden balatlacak ve diskteki LINUX bellee yklenecektir.
67
TUX
LINUX iletim sisteminin gelitirilme srecinin ilk yllarnda projeye katkda bulunan programclarn ye olduklar internet tartma listesinde artk bir logoya gereksinim olduu konusunda dnceler ortaya kt. nceleri ahin, tilki, kpekbal, kartal gibi yrtc hayvanlar zerinde duruldu. Kiiliinin bir zelliinden olsa gerek, LINUXun yaratcs Linus Torvalds, yrtc bir hayvan yerine fikirlerin penguen zerine yneltilmesini nerdi. Tartmalar ilerledike karn tok, srt pek bir penguen zerinde gr birlii saland. Sonunda Larry Ewing, halen kullanlmakta olan penguen logosunu gelitirdi. Karn balklarla dolu, yeni geirmi, mutlu penguen ok beenildi. Sra bu penguene bir isim bulmaya gelmiti. Penguenlerin tylerinin desenlerinin smokine benzemesi nedeniyle, smokin szcnn ngilizcesi olan tuxedodan esinlenerek TUX ad seildi. Standart TUX resimleri yansra eitlemelerini bir arada www.linux.org/info/logos.html adresinde bulabilirsiniz.
68
03
lk Tanma LINUX Bilgisayarlarn Almas LINUX Bilgisayarlarn Kapatlmas lk Login Mandriva LINUX Uygulamalar KDE Ayarlar Kullanc Ynetimi: UserDrake Dosya Yneticisi: Konqueror Genel Sistem Ynetimi Aralar: Mandriva Control Center Ofis Uygulamalar Grafik Uygulamalar Kiisel Uygulamalar Internetle lgili Uygulamalar oklu Ortam (Multimedya) Uygulamalar Kopete Annda Mesajlama Yazlm K3B Gambas Eclipse Digikam Wine Konsolda LINUX Kullanm Konsol Kavram logout: Sistemden k Isnma Hareketleri LINUX Dosya-Dizin Yaps Dosya-Dizin simleri Dosyalar ve Dizinler LINUXta Eriim Yetkileri Yazma, Okuma, Program altrma Yetkileri Dizinlere Eriim Haklar Suid Biti ve suid Programlar Sticky Bit 69 Dosyalarn ve Dizinlerin Sahibini Deitirmek Dosyalarn ve Dizinlerin Gruplarn Deitirmek
Dosyalarn ve Dizinlerin Sahibini ve Grubunu Birlikte Deitirmek bash Kabuk Program bash Balang Dosyalar bash History ! Arac Kendi Komutlarnz: Aliases
lk Tanma
LINUX Bilgisayarlarn Almas
Eer bilgisayarnzda ykl olan tek iletim sistemi LINUX ise, bilgisayarnz amanz ve KDE (veya GNOME) Login ekran gelene kadar biraz beklemeniz yeterlidir. Eer bilgisayarnzda birden fazla iletim sistemi yklyse, LILO program hangi disk blmndeki hangi iletim sistemini yklemek istediinizi soracaktr. LILO mensndeki seenekler arasnda bir tanesi varsaylan ykleme seeneidir. LILOya siz gerekli yant vermeden bekleme sresi dolarsa bu varsaylan seim yaplm kabul edilir ve ilgili iletim sistemi yklenmeye balar. Bu davran zellikle bilgisayarnz uzaktan geri yklediinizde (reboot ettiinizde) ve elektrik kesintilerinden sonra tekrar alma durumlarnda birisinin makinenin bana gidip seim yapmasn gerektirmemesi asndan ok yararldr. LILO ile ilgili ayarlar Sistem Ynetimi blmnde LILO Ynetimi bal altnda bulacaksnz.
70
LINUXun al srasnda ekrana listeledii mesajlar ilk bata size rktc gelebilir. Normal koullarda bunlara bakmanz bile gerekmez ama sorunlu bilgisayarlarda sorunun kaynan bulmak ve dzeltmek iin bu mesajlar ok yararl olmaktadr. Bu mesajlar sayesinde al srecinin hangi aamasnda, hangi i yaplrken sorun ktn kolayca grebilir ve sorunu yaratan yazlm ya da donanm unsurunu belirleyebilirsiniz. Mavi ekrandan daha iyi deil mi? letim sistemini ykleme sreci tamamlandnda grafik login ekran grnecektir.
71
72
lirsiniz. wall komutuyla herkesin ekranna bir mesaj yollayabileceiniz gibi telefon da edebilirsiniz. Ardndan masa st denetleyicinizden Logout semelisiniz. (Bilgisayar kapatmaya niyetlendiinizde ie Start diye balamaktan daha mantkl.) Logout mensnde seenek greceksiniz: Login as a different user (Sistemden k ve baka bir kullanc olarak tekrar login ol) Turn off computer (Sistemi kapat) Restart computer (Sistemi yeniden balat) Bunlardan Login as a different user sistemle sizin, ahs olarak balantnz kesecektir. Masa stnz kapanacak ve sisteminiz yeni bir kullancnn konsoldan sisteme girmesine ve kendi istedii masa style almasna olanak verecek ekilde Login ekranna dnecektir. Sistemden ktnzda yalnzca size ait iler durdurulur. Arka plandaki servisler (web sunucusu, veritaban sunucusu gibi servisler) olduu gibi ilerine devam eder. Halt ad stnde sistemi kapatma trenini balatr. Bu seim yapldnda nce kullancya ait masa stnde alan programlar birer birer kapatlr, Sonra masa st yneticisi (KDE, GNOME gibi) kapatlr, X sunucusu kapatlr, Geri planda alan sunucu programlar (veritaban ynetim sistemleri, web ve ftp sunucular, e-posta ve dier internet servisleri gibi) birer birer kapatlr, Bilgisayarnzda ok kullancl dzen iin servis veren programlar kapatlarak sistem tek kullancl duruma getirilir, Tek kullancl durumda alan programlar kapatlr,
73
En son olarak da ekirdek program durdurulur. Eer bilgisayarnzn kasas ATX veya benzeri zellikte bir kasaysa, bilgisayarnzn g kayna da kapatlr. Yok eer kasanzn g kayna yazlmla denetlenemiyorsa ekranda artk bilgisayar anahtarndan kapatabileceinize ilikin bir mesaj grntlenir. (Power off) Bu mesaj grnce sisteminizi anahtarndan kapatabilirsiniz.
Peki bilgisayar kt diye kapattnzda ya da elektrik kesildiinde ne olur? Bu biraz da bilgisayarda hangi servislerin altna baldr. Bir kere doal olarak zerinde altnz ve henz kaydedilmemi dosyalarda yaptnz deiiklikler kaybolur. MySQL gibi veritaban sistemleri alyorsa son gncellenen birka kayttaki gncellemeler de kaybolabilir. Bunlar enerji kayplarnn doal sonulardr. Eer disklerinizi ext2 dosya sistemiyle formatladysanz kayplarnz yukarda sz edilen dosya gncelleme kayplarnn tesine gidebilir; baz dizinleri ve dosyalar da kaybedebilirsiniz. Eer nerilerimize kulak verip disklerinizi ext3 veya reiser fs dosya sistemiyle formatladysanz pek bir ey olmaz. Ancak, her durumda, sisteminiz bir dahaki alnda dzgn kapatlmam olduunu farkedip dosya sistemlerini kontrol etmek zere fsck (file system check) yazlmn tm disk blmlerini kontrol edecek ekilde otomatik ola-
74
rak altracaktr. Bu program iinden kamad bir durumla karlarsa baz dzenlemeleri yapmadan nce sistem yneticisinden izin ister. Akas byle bir durumla karlarsanz tm sorulara yes demekten baka seeneiniz de pek yoktur. Sisteminizde nemli iler yapacaksanz; hele hele bakalarna hizmet verecek servisleriniz alacaksa, kesintisiz g ve yedekleme iini ok ciddiye almanz gerekir.
lk Login
imdi login penceresinde sistemin kuruluu srasnda tanttnz normal kullancy seip ifrenizi giriniz. A balantnz alyorsa
ekran grnecektir. Eh! Bu kadarck reklam olacak elbette... Evet! LINUX iletim sistemi altnda KDE masa stnz (desktop) karnzda... (Kolay grebilmeniz iin ekrann tamam yerine sol alt kesi gsterilmitir.)
75
KDE, GNOME gibi masa st yneticileri, bir LINUX bilgisayarn kolay kullanmna yneliktir. Pek ok iinizi hi UNIX komutu kullanmadan yapabilirsiniz. Eer herhangi bir MS-Windows iletim sistemine alknsanz, setiiniz masa st yneticisini kullanmak ok kolay gelecektir. Neler yaplabildiini kefetmek iin menlerde biraz dolamanz yeterlidir. Bu kitapta masa st olarak hep KDE yazlmndan rnekler greceksiniz. GNOME yerine KDE sememizin teknik bir nedeni yok. KDE bize daha sevimli geliyor, o kadar. KDEnin hereyini anlatmak iin bu kitap kadar bir kitap daha yazmak gerekiyor. Bu nedenle KDEye almanza ynelik olarak yalnzca temel baz zelliklerine deineceiz. Gerisini kendiniz kefedebilirsiniz. KDE altnda bir uygulama program balatmak iin: 1. Uygulamann masa stnde ikonu varsa o ikona tklamal veya 2. Uygulamann sembolik mende (kicker) ikonu varsa o ikona tklamal veya 3. Uygulamay KDE mensnden semeli veya 4. KDE mensnden Run Command seip istediiniz program balatacak komutu aka yazmalsnz.
76
Masa st konlar: Kiisel dizininiz iin Konqueror Dosya Yneticisini altrmak iin Home ikonunu tklayabilirsiniz. Sembolik Men (Kicker): Sk kullanlan programlarn birer ikon olarak yer ald men blgesidir. Sk sk kullandnz, rnein web tarayc, e-posta yazlm gibi yazlmlar iin bu alana birer ikon yerletirerek sz konusu programlar KDE mensn amaya gerek kalmakszn altrabilirsiniz. Ekran Seici: KDE, sanki iki ekrannz varm gibi alabilmeniz iin bir olanak sunar. (Sanal ekran saysn istediiniz kadar arttrabilirsiniz.) Ekran seicideki iki kareden istediinizi tklayp o ekrana geebilirsiniz. Grev ubuu (Task Bar): Yukardaki rnek ekranda, almakta olan The Gimp ve Konsole yazlmlarna ilikin program ikonlar grnyor.
77
Bu uygulama programlarna ilikin pencereleri gremiyor olsanz bile grev ubuundaki ikonlarn tklayarak o pencereleri ne karabilirsiniz. KDE Mens: Masa stne veya sembolik menye yerletirilmemi uygulamalar balatmak iin KDE Men ikonunu tklayarak eitli kategorilerdeki programlar arasndan seim yapabilirsiniz Hzl Men: Linux iin gelitirilmi birok program geri planda srekli alr durumda bekleyecek ekilde gelitirilmitir. rnein, ses k iddetini ayarlamanz salayacak yazlm, gnlk i planlarnz izleyebileceiniz KOrganizer yazlm srekli arka planda alr ve hazr durumda olabilir. Bu tip yazlmlar altklar srece Hzl men alannda birer ikonla temsil edilirler. n plana karmak istediiniz yazlm iin ilgili ikonu tklamanz yeterlidir. Bu mennn sembolik menden fark zaten almakta olan bir yazlm n plana karmasdr; oysa sembolik menden bir ikon tkladnzda, ilgili program diskten yklenerek balatlr. Sembolik men ile bir yazlmn birden fazla kopyasn balatabilirsiniz; oysa hzl menden bir programn almakta olan kopyasn n plana getirirsiniz. Belki de en ok kullanacanz KDE butonu Men Butonudur. Bu butonu tkladnz anda karnzda bir men belirecektir. Bu menden yapamayacanz i yok gibidir. Gerek uygulama programlarn balatmak, gerekse sistemin her trl davrann bu mendeki yazlmlar kullanarak denetlemek olasdr. Kolay kullanm iin mendeki yazlmlar konularna gre gruplanmtr. rnein ofis yazlmlar (OpenOffice gibi), a ynetimine
78
ilikin yazlmlarn hepsi bu menden balatlabilir. KDE mensndeki gruplarn varsa, alt menleri fare imlecini men maddesi zerine getirdiinizde alr.
Uygulamay ikonlatrr. (Minimize eder.) Tm ekran uygulamaya verir. (Maksimize eder.) Bu butonu sa fare dmesiyle tklarsanz pencere ekran yanlamasna dolduracak ekilde yatay olarak geniletilir. Orta dmeyle (varsa) tklarsanz pencere ekran yukardan aa dolduracak ekilde dey olarak bytlr. Uygulama penceresini eski boyutlarna getirir. Uygulamay kapatr.
Bu butonlarn grnleri, pencere iindeki yerleri ve hatta bazen ilevleri kullandnz masa st temasna gre deiebilir, fakat temelde hepsi burada anlatlan rnee ok benzemektedir.
79
Bazen bir uygulamanzn alt sanal ekran deitirmek isteyebilirsiniz. Bu durumda sz konusu uygulamann balk ubuuna (title bar) fare ile sa tklayp nce To Desktop seip ardndan gelen listeden sanal ekrannz sein.
Gene bazen bir uygulama pencerenizin her koulda stte kalmasn ve baka uygulamalara ait pencereler tarafndan rtlmemesini isteyebilirsiniz. Byle bir durumda sz konusu uygulamann balk ubuuna (title bar) fare ile sa tklayp Always on Top seiniz. KDEnin baz ok nemli klavye ksa yollarndan sz etmeden geemeyeceiz.
KDE Masast Klavye Komutlar
Alt-Tab
almakta olan ilere ait pencereler arasnda dolamakta kullanlr. Alt tuunu basl tutarken Taba her basnzda almakta olan ilerin pencere listesinin ilerlediini greceksiniz. aretli i, ilgilendiiniz uygulama olarak karnza geldiinde Alt tuunu brakrsanz o pencere en ste gelecektir. Ben bu ii fareyle de yapyorum zaten! diyor olabilirsiniz. Doru tabi! Ama bir gn faresiz almak zorunda da kalabilirsiniz. Bu zellikler aklnzn bir kenarnda bulunsun.
80
Ctrl-Tab
Sanal ekranlar arasnda dolamak iin kullanlr. Ctrl tuunu basl tutarken her Tab basnzda sanal ekran gstergesi bir ilerler. lgilendiiniz sanal ekrana gelince Ctrl tuunu brakrsanz monitrnzde o sanal ekran grntlenecektir.
Fonksiyon tuunun numarasna karlk gelen sanal pencerenin seilmesini salar. rnein nc sanal pencereye gemek istediinizde Sanal Pencere Seicisinde nc sanal pencerenin zerine fare ile tklayabileceiniz gibi Ctrl-F3 tularn da kullanabilirsiniz. Mende olmayan uygulamalar balatmak zere komut vermek iin kullanlr.
Alt-F2
Alt-Ctrl-Esc
Pencere belirterek uygulama ldrmek iin kullanlr. AltCtrl-Esc tularna birlikte bastnza fare imleciniz bir kuru kafaya dnr. Fare imleci kuru kafa iken zerine tklayacanz pencerenin sahibi olan program ldrlr. zellikle kontroldan kan programlardan kurtulmak iin ok kullanl bir aratr. Ayn ii xkill programn kullanarak da yapabilirsiniz. Aktif penceredeki uygulamay sonlandrr.
Alt-F4
81
Eh! Artk pencerelere nasl hkmedeceinizi rendiinize gre yeni Mandriva LINUXunuz altnda ne gibi uygulama yazlmlarnz varm bir gz atalm isterseniz...
KDE Ayarlar
Grsel Ayarlar (Look and Feel) Masa st ynetici olarak KDE de semi olsanz, GNOME da semi olsanz ilevsel adan pek fazla bir fark olmayacaktr. Bu nedenle masa st ayarlarndan sz ederken yalnzca KDEden rnekler vereceiz. Masa st ayarlar iin birok deiik yol olmasna ramen yeni balayanlar iin en kolay KDE mensnden yapacanz Configuration KDE LookNFeel seimleridir.
82
Bu menden yapabileceiniz seimleri ve bunlarn masa stnzn grsel zelliklerinde neden olaca deiikliklerin hepsini anlatmamza olanak yok. stediiniz gibi kurcalayp zevkinize en uygun ekli bulunca seimlerinizi kaydedebilirsiniz. Yeri gelmiken; KDE masa st dzenlemelerinde bir tema kavram vardr. KDE iin gerek datm iinde gelen, gelekse internetten indirebileceiniz ok ho renk-desen-dzen temalar vardr. Bunlar kde.themes.org ve www.kde-looks.org adreslerinde bulabilirsiniz. Men Ayarlar KDE mensnde deiiklik yapmak istediinizde; rnein menye yeni bir program eklemek istediinizde, kullanmanz gereken program MenuDrakedir. MenuDrake programn KDE mensnden balatabilirsiniz: KDE Mens System Configuration Other Menudrake
83
nce eklemek istediiniz men maddesi iin soldaki listeden uygun bir ana balk (directory) sein ya da Add directory ile yeni bir ana balk yaratn. Daha sonra da Title ve Long title kutularna menye yeni eklediiniz programla ilgili aklamalar girin. Sonra ilgili ana bal seip Add Entry sein. Command kutusuna da bu program balatmak iin verilmesi gereken komutu yazn. Son olarak da programnza uygun bir ikon seip Save butonunu tklayn.
84
leri Dzey KDE Ayarlar Son derece kapsaml olan KDE ayar seenekleri iin menden systemConfiguration-KDE sein. Karnza kategorilere ayrlm birok seenek kacaktr: Her bir kategori isminin yanndaki ok iaretine tklayarak daha ayrntl balklara ulaabilirsiniz. Merak etmeyin, btn bu seeneklere bir yant vermek zorunda deilsiniz. Seeneklerin varsaylan deerleri sisteminizin u andaki ayarlarn yanstr ve bunlarn arasndan sadece deitirmek istediklerinizi kurcalamanz yeterlidir.
Accessibility
Engelli kullanclara sunulan seeneklerin yansra KDEde kullanlacak dil, klavye yaylm ayarlar gibi ayarlarn bulunduu seimdir. Web tarayc, e-posta istemci program gibi yazlmlarn n tanmlarnn yaplmas iin gereken bileen ayarlarn yapmak iin kullanlr. rnein, bir KDE uygulamas iinde bir URL tkladnzda, hangi web taraycsnn balatlaca; bir e-posta adresi tklandnda hangi e-posta istemcisinin balatlacann ayarlar buradan yaplr.
Components
85
Information
Aslnda buradan yapabileceiniz bir ayar deiiklii yoktur. Adndan da anlalaca gibi sisteminizle ilgili ayrntl bilgi alabileceiniz bir seimdir. Bilgisayardan iyi anlayan bir arkadanz size sisteminizle ilgili tuhaf bir ayrnt sorarsa bir dakika deyip buraya dalabilirsiniz. rnein 600 MHz sandnz merkezi ilem biriminizin aslnda 601.377 MHz frekansnda altn grp mutlu olabilirsiniz. (Bu sizi gerekten mutlu ediyorsa, bilgisayarlara kendinizi biraz fazla kaptrmsnz demektir; dikkatli olmanz neririz...)
LookNFeel
Birok okuyucunun en ok zaman harcayacan tahmin ettiimiz blm burasdr. Masa stnn, pencelerin, menlerin, ksacas alma ortamnzn grnn ve davrann buradan deitirebilirsiniz. Sisteminizi, ilk kurduunuzda karnza gelen standart KDE grnmnden kurtarp, fonda beendiiniz bir fotoraf olan, sevdiiniz renklerle donanm, hatta isterseniz pencerelerin deiik yerlerine farenin belli dmelerinin tklanmasnn tuhaf sonular dourduu bir ortam haline getirebilirsiniz. Bu kategoriyi biraz kurcaladktan sonra greceksiniz ki size belki de gereinden fazla seenek sunulmutur. Internet ve dier a konularyla ilgili, zellikle KDE paketiyle beraber gelen programlar etkileyen eitli ayarlar buradan yapabilirsiniz. Yeni balayanlar iin bu seim altnda oynayacak fazla bir ey olmadn belirtmekte yarar var. Bilgisayarnza bal eitli aygtlarn ayarlar bu balk altndadr. zellikle klavye ve fareyle ilgili seenekleri burada bulabilirsiniz. zellikle dizst bilgisayar kullanan okuyucularn ilgisini ekecek, enerji tasarrufuyla ilgili ayarlar buradadr. Ses kartnz ve sisteminizin yapaca sesli uyarlarla ilgili ayarlar.
Network
Peripherals
PowerControl Sound
86
System
Sistemin baz temel ayarlarn, rnein tarih ve saat ayarlarn buradan yapabilirsiniz. Ayrca sistem yneticisi olarak ilgilenebileceiniz Login Yneticisi gibi seenekler de buradadr. Bu kategoride deiiklikler yapabilmek iin root kullanc ifresini kullanmanz gerekecektir. Bu balk altnda, nternette dolamayla ilgili, zellikle de KDEnin standart taraycs olan Konqueror programn ilgilendiren ayarlar bulabilirsiniz.
WebBrowsing
Btn bu seenekler arasnda kendinizi kaybolmu hissetmeniz normaldir. LINUXun bunun gibi her konuda ok, ama ok seim sunmasna alsanz iyi olur.
Bu bilgisayar dnyasnda aslnda ok tuhaf terimler var. Desktop wallpaper (masa st duvar kad) teriminin ne kadar sama olduunu hi dndnz m?
KDE ayar seenekleri ile yapabileceiniz hereyi anlatmaya kalkmak mantksz olur. Gerisini size brakyoruz. Ltfen deiik seeneklerle oynamaya ekinmeyin. Defaults butonunu kullanarak hereyi eski haline dndrebileceinizi unutmayn.
Dikkatli bir kullancysanz, bunca ayar arasnda ekran znrl ve renk zenginliiyle ilgili bir ayar kategorisi olmadn farketmisinizdir. Bunun nedeni, ekrann aslnda KDE masa st yneticisi tarafndan deil X Window tarafndan ynetiliyor olmasdr. Hatrlarsanz daha nceki blmlerde LINUX ve UNIX iletim sistemlerinde grafik ekranlarn denetiminin X tarafndan yapldn, X tarafndan altrlan bir pencere yneticisinin bu grafik ekrann uygulama programlar arasnda paylalmasn denetlediini, pencere yneticisinin altrd bir masa st denetleyicisinin de kullancya alma ortam hazrladn anlatmtk. Aksi belirtilmedike KDE masa st yneticisi kwm pencere yneticisi altnda alr. Aksini nasl belirteceinizi ya da aksini belirtmenin ne gibi bir anlam olduunu merak etmek iin henz ok erken...
87
Kullanc Ynetimi
Eer LINUX bilgisayarnz sizden baka kimse kullanmayacaksa yalnzca iki kullanc tanmlamak yeterlidir: Biri root kullanc dieri ise siz! Her ne kadar sisteminize her zaman root olarak balanmanza teknik bir engel yoksa da bunu hi, ama hi tavsiye etmeyiz. LINUX, root kullancnn ne yaptn iyi bildiini varsayp verilen komutlar pek bir uyarda bulunmadan, aynen yerine getirir. Bu da olduka tehlikelidir. En kk hatanzda sistem iin son derece kritik bir dosya ya da dizini silebilirsiniz. Sistemi yalnzca siz kullanyor olsanz bile (zellikle internete bal bir bilgisayarda) ifrenizi en ge birka ayda bir deitirmenizi neririz. ifrenizi deitirmek iin KDE mensnden KDE Mens system Configuration Other Change Password
seebilirsiniz. Doal olarak nce geerli ifreyi vermeniz sonra da yeni ifreyi iki kez girmeniz istenecektir. Bu ekilde ifresi deitirilecek olan kullanc, sistemde o srada KDEyi altrmakta olan kullancdr. Yeni bir kullanc tantmak gerektiinde KDE Mens system Configuration Other UserAdministration
Seimlerini yaptnzda UserDrake yazlm balatlacak ve kullanc hesaplarnn ynetimi iin seenekler sunulacaktr. Sisteme kullanc eklemek ve karmak doal olarak sistem yneticisinin (yani root kullancnn) grev tanmna giren bir itir, bu nedenle nce sistemin root kullanc ifresini girmeniz istenir.
88
Daha sonra sistemde kaytl kullanclarn da listelendii ve yeni kullanc tantm yapmak iin gerekli aralarla donatlm bir pencere grntlenir:
LINUXta aslnda her kullanc ismiyle deil uid (User ID) denilen bir kullanc numarasyla tannr. simler yalnzca bir kolaylktr. Bu nedenle yeni hesap al srasnda bu yeni kullancya bir de kullanc numaras verilmelidir. UserDrake program, yeni eklediiniz kullanc iin daha nce kullanlmam bir numaray sradan atayacaktr. Bu nedenle zel bir nedeni olmadka uid kutusuna veri girmeniz sz konusu deildir. Kullancnn Login ad olarak tipik olarak 3-8 karakter uzunluunda ve zel karakterler (rnein Trkeye zg karakterler) iermeyen bir isim semelisiniz. Shell kutusuna ise bu kullanc sisteme balandnda kendisi iin balatlacak kabuk programn belirtmelisiniz. Varsaylan deer olarak gelen /bin/bash deerini deitirmeniz iin hibir neden gremiyoruz. Aslnda bu Command deerini kullanarak kullancnn sisteminize balandnda yapabilecei ileri snrlamak ya da sistemde tanml olmasna ramen sistemi dorudan kullanmasn nlemek olasdr ama bu ayrntlara imdilik girmeyi ok gereksiz buluyoruz. imdi soracaksnz: Sistemde tanml ama sistemi dorudan kullanamayan kullanc da neden gereksin? Gerekebilir... Diyelim kullanclarnza e-posta adresleri vermeniz gerekiyor ama bilgisayarnz dorudan kullanmalarn istemiyorsunuz. O zaman bu
89
tip kullanclar iin kabuk program olarak /bin/false tanmlarsnz. Webmail ya da POP3 zerinden kendilerine gelen e-postalar okuyabilirler ve kendileri de e-posta gnderebilirler ama bilgisayarnzn bana bile otursalar, sisteminizi kullanamazlar. Kullanc tantm yaparken verilmesi gereken bir dier nemli parametre de kullancnn kiisel dizinidir (Home Directory). Bu dizin kullancnn kiisel dosyalarn saklayabilecei, zerinde her trl yazma, okuma ve altrma yetkilerinin bulunduu bir dizindir. Ksacas bu dizinin sahibi, tanttnz kullanc olacaktr. Kullanclarn kiisel dizinleri iin kapasite snrlamas da yaplabilir. rnein bir kullancnn kiisel dizinine yerletirebilecei dosyalarn toplam bykln 100 Mbyte ile snrlamak mmkndr. Ancak bu snrlamay yapabilmeniz iin sisteminizde kota (quota) denetim yazlmnn kurulu olmas gerekir. Kota denetim sisteminin kurulmas ve denetlenmesini Sistem Ynetimi blmnde bulabilirsiniz.
90
seimlerini yaptnzda sisteminizin root kullanc ifresini girmeniz istenecek, ardndan MCC mens grnecektir.
91
Yeri gelmiken bir kolaylktan bahsetmek istiyoruz: Yukarda gsterdiimiz gibi, birka menden geerek ulalan bir program eer sk sk kullanacaksanz, bu programn ikonunu KDE mensnn sandaki panel butonlar arasna ekleyebilirsiniz. Bunun iin grev ubuunun bo bir noktasn sa tula tklayn. Karnza kan menden Panel Add to Panel Application
seimlerini yapn ve ardndan hangi mendeki hangi program panele almak istiyorsanz o program tklayn. rnein, bir AOL Instant Messenger istemcisi olan GAIM yazlmn panele eklemek iin:
92
Yazlm Ynetimi: Bilgisayara yazlm yklemek, ykl yazlmlar arasnda gerek duyulmayanlar kaldrmak ve en nemlisi iletim sistemi/yazlm gncellemelerini yapmak iin kullanlr. Linux datm CDleri binlerce yazlm ierir. Kurulum srasnda bunlarn birou bilgisayara yklenmez. rnein, kurulum srasnda zellikle semediyseniz, MySQL sunucu ve istemci programlar yklenmeyecektir. Bu yazlmlar sonradan yklemek iin install software packages seimini yapabilirsiniz. Kullanmadnz yazlmlar gereksiz gvenlik riski oluturmamak iin ya da diskte yer kazanmak iin silmenizi neririz. Uninstall software packages bu i iin idealdir. MCC Software Management ilemlerinin en nemlisidir. letim sisteminin ve Mandriva datmndaki yazlmlarn gncellemeleri bu seimle yaplr. Tm iletim sistemlerinde olduu gibi gncelleme Linuxta da ok nemlidir. zellikle gvenlikle ilgili olanlar...
93
MCC, iletim sistemi ve uygulama programlar iin gncelleme yaynlanp yaynlanmadn, yaynlandysa bunlarn hangilerinin sizi ilgilendirdiini ntanml baz sunucularla internet zerinden balant kurarak aratrr. Bu n tanml sunucular deitirmek ihtiyac duyarsanz kullanmanz gereken MCC seimidir. evrim ii sistem ynetimi: VNC (Virtual Network Connection: Sanal A Bilgisayar) tekniini kullanarak baka bir bilgisayarn masastn kendi masastnze tama iini Online Administration ile yapabilirsiniz. Akas bir baka Linux/UNIX bilgisayar ynetmek iin buna hi gerek yok ama, gene de yaptklarnzn kardaki bilgisayarn banda oturan kii tarafndan da grnebilmesi, eitim asndan ok yararl olabilmektedir. Bu ilevin asl nemi uzaktaki bir Windows bilgisayar ynetmek gndeme geldiinde ortaya kmaktadr. Evet, yanl okumadnz! Uzaktaki bir Windows bilgisayar ynetmekten sz ediyoruz. Eer bir Windows bilgisayara Remote Desktop yazlm ykl ve alr durumdaysa, Linux bilgisayarnzdan Windows masastn kendi masastnze getirip uzaktaki Windows bilgisayar kullanabilirsiniz. Donanm: Bilgisayarnzn eitli donanm elemanlarn ynetmenize yardmc olarak ilevler MCCnin Hardware bal altnda toplanmtr.
94
Yazcdan taraycya klavyeden ekran znrlne kadar deiik ayar ve seimleri burada yapabilirsiniz:
Bilgisayarn a balantlarn dzenleme, ayarlar yapma ve deitirme ilemleri Network & Internet bal altnda toplanmtr. Yeni bir a balants tanmlamak iin kullanlr. Bilgisayarnzn adn (hostname) ve DNS ayarlarn yapabileceiniz veya deitirebileceiniz seenektir. A arabiriminizin ayarlarn (IP adresi, a geidi, alt a maskesi gibi) deitirmenizi salar. A balantlarndaki trafik aklarn izlemenizi salar. Bu ilevle, gelen giden paket saylar, geli ve gidi hzlar gibi parametreleri lebilir ve grafik zerinde izleyebilirsiniz.
95
Bir a arabirimindeki ayarlar iptal etmek ve arabirimi devreden karmak iin kullanlr. Web taramalarnz iin Proxy sunucu (Vekil sunucu) ayar yapmak iin kullanlr. Bu olana ancak nternet Servis Salaycnz proxy servisi veriyorsa kullanmanz neririz. Eer bu bilgisayarn ADSL modemle veya Kablo-Modemle salanan internet balantsn baka bilgisayarlarla paylamak isterseniz gerekli ayarlar burada yapabilirsiniz. Aslnda balant paylama zellii LINUX iletim sisteminin doal bir zelliidir. Ynlendirici (router) olarak alabilen her bilgisayar balant paylam da yapyor demektir. Eh, ynlendirici olarak alabilme zellii LINUXun doasnda olduuna gre... Varsa, bilgisayarnzdaki kablosuz a arabiriminin (Wi-Fi) ayarlar iin kullanlr. Varsa, sk sk eritiiniz bilgisayarlar daha ksa veya baka isimlerle anmanz salayan /etc/hosts dosyasnn dzenlenmesini salar. Balang dzeyinde pek iinize yaramayacaktr. Sistem: letim sisteminizin eitli ilevlerini denetleyebileceiniz balklar ierir.
96
KDE mensnde dzenlemeler yapmanz salar. Bilgisayarnzn grafik ekrann denetleyecek olan pencere yneticisini semenizi salar. rnein, (eer her ikisini de yklediyseniz) KDE ve GNOME pencereleri arasnda seim yapmanz salar. Sisteminizde kurulu servislerin iinde hangilerinin almakta olduunu grebileceiniz bir seimdir. Bu listede kurulu ama almayan servisler Stopped szcyle belirtilmitir. Stop ve Start butonlarna basarak sz konusu servisin hangi komutla altrlabileceini ya da durdurulabileceini renebilirsiniz. On boot butonu basl servisler sistemin al srasnda otomatik olarak balatlan servislerdir. Biz kendi LINUX bilgisayarlarmzdaki servislerin denetimini buradan yapmyoruz. Bu kitabn daha sonraki Al Denetimi balkl blmde akladmz kavram ve yntemleri kullanyoruz.
97
Size de byle yapmanz neririz. Bylece sistemin denetimi konusunda hem daha fazla ey renmi olursunuz hem de sistemi daha rahat denetlersiniz. Yaztipi (font) konusu LINUXun daha dorusu grafik ortamda kullanlan LINUXun en berbat konusudur. Xorg sisteminin genel amal olma gereklerinden dolay yaz tipi ynetimi son derece karmak bir hale gelmitir. LINUX ve X ile ileri dzey deneyiminiz olmadka bu ayarlarla oynamamanz neririz. Bilgisayarnza yeni bir yaztipi ykleme gerei duyduunuzda yaztipi dosyalarnn ekindeki kurulum notlarn okumanz neririz. Bu yaztipi ayarlar mensndeki Get Windows Fonts butonuna basarak varsa bilgisayarnzda ykl bulunabilecek MSWindows yaztiplerini X altnda kullanlabilir hale getirebilirsiniz. Windowsu satn aldnzda, iindeki yaztiplerini de kullanma hakkn satn alm oldunuz naslsa... Windows yaztiplerini bu menden sisteme ykleyebilmek iin TTF yaztipi dosyalarn /usr/share/fonts altnda bir dizine yerletirmeniz gerekir. Bilgisayarnzn tarih ve saat ayarlarn yapmak iindir. Eer ok hassas bir ayar istiyorsanz ya da bilgisayarnzn saat donanm yeteri kadar hassas almyorsa, Network Time Protocol (NTP) kullanarak bilgisayarnzn saat ayarnn bir saat sunucusu ile yaplmasn salayabilirsiniz.
98
LINUXun seyir defterlerini izlemeniz iin bir aratr. Tm UNIXler gibi LINUX da, sistemde olup biten neredeyse her eyin kaydn tutar. Bilgisayarnzn sunucu hizmetleriyle ilgili log kaytlar genellikle /var/log dizini altnda, ilgili olduklar programn adndan oluturulmu dosyalarda ve dizinlere saklanr. rnein, e-posta sunucusu olarak alan bilgisayarlarda, e-posta alverileriyle ilgili log kaytlar /var/log/mail isimli dizinde yer alan dosyalarda biriktirilir. Bu dosyaya bilgisayarnza gelen ve bilgisayarnzdan gnderilen her e-posta mesaj iin bir kayt dlr. Zaman zaman Mandriva Linux Denetim Merkezinin bu seeneini kullanarak, ya da baka yntemlerle sisteminizin log dosyalarn incelemelisiniz. nceleri bu log kaytlar ok anlamsz, daha dorusu ince gibi gelecektir. Zamanla bu log satrlarn yorumlamay ve aralarnda bir nlem almanz gerektiren bir olay kayd olup olmadn grmeyi reneceksiniz. Bu log dosyalar doal olarak ksa srede hzla byyp diskinizi, daha dorusu /var dizinin baland (mount edildii) disk blmn doldurma eilimindedir. Srekli byyen bu log dosyalarna dosya dnm (log rotation) ilemi uygulanr. Genellikle sabaha kar otomatik olarak altrlan logrotate isimli bir yazlm, log dosyalarna bu dnm ilemini uygular. logrotate altnda /etc/logrotate.conf dosyasnda belirtilmi esaslar
99
dorultusunda birikmi log dosyalarnn isimlerini deitirip en eskisini atmaya balar. rnein dnm yapma zaman geldiinde e-posta loglarnn sakland /var/log/mail dizinindeki info, info.1, info.2, info.3, info.4, info.5 dosyalar varsa info.5 dosyas silinir; info.4n ad info.5 olarak deitirilir. Bu ekilde tm info.* dosyalarnn isimleri kaydrlr ve info isimli dosya info.1 yaplr. O andan itibaren de e-posta servisinin yeni log kaytlar info isimli dosyada biriktirilmeye devam eder. Bylece log dosyalarnn diskin tamamn kaplayacak ekilde bymeleri nlenmi olur. Bir sistem konsol penceresi amak iin kullanlr. Bilgisayarnz kullanma yetkisi olan kullanclarn hesaplarn ynetmek iin kullanlr. Sisteminizin yedeklenmesi iin kullanlacak ilevdir. sterseniz sistemin tamamn, isterseniz sadece kullanc dizinlerini yedekleyebilirsiniz. Balant Noktalar: Bilgisayarnzn disk ya da disklerindeki blmleri ynetmek iin kullanlan ilevdir. NFS (Network File Services) ve Samba (Linux kaynaklarnn Windows iletim sistemi kullanan bilgisayarlar tarafndan kullanlmasn salayan servis) servislerini iyice renmeden bu seenekleri kullanmamanz neririz.
100
Disk blmlemesini deitirmek, yeni disk taktnzda bu diskin blmlemesini yapmak iin bu ilevden yararlanabilirsiniz. (Bkz. Blm 5 - Dosya Sistemleri). DVD veya CD-ROM srcnzn hangi dizine balanmasn istediinizi belirttiiniz ayar seeneidir. Normal koullarda bu ayarlar deitirmeniz iin hi bir neden olmayacaktr. Varsaylan ayarlarla tm kullanclarn srcde takl olan CDyi kullanmaya yetkisi olacaktr. Srcye bir CD takldnda ve bu CDyi kullanan bir yazlm balatldnda src /mnt/cdrom dizinine otomatik olarak balanr. Disket srcnzn hangi dizine balanmasn istediinizi belirttiiniz ayar seeneidir. Normal koullarda bu ayarlar deitirmeniz iin hi bir neden olmayacaktr. Varsaylan ayarlarla tm kullancnn srcde takl olan disketi kullanmaya yetkisi olacaktr. Srcye bir disket takldnda ve bu disketi kullanan bir yazlm balatldnda src /mnt/floppy dizinine otomatik olarak balanr. UNIX ve trevi iletim sistemlerinde bilgisayarlar aras dizin paylam NFS (Network File System) standardnda yaplr. NFS, SUN Microsystems firmasnn UNIX dnyasna bir armaandr ve uzun yllardr baaryla kullanlmaktadr. NFS kullanarak evrenizdeki UNIX bilgisayarlarda yer alan paylama alm dizinlere erimek iin gerekli ayarlar burada yapabilirsiniz.
101
Kendi bilgisayarnzdaki disklerin baka UNIX/Linux makineler tarafndan paylalmasn istediinizde siz de bilgisayarnza NFS sunucu yazlm yklemelisiniz. Yeni balayanlar iin ok gerekli olmayan bir zellik olduu iin ksa kesiyoruz. Linux bilgisayarnzdaki disk/dizin ve yazclar a zerinden MS-Windows bilgisayarlarla paylamanz mmkndr. Bunun iin Linux bilgisayarnzda samba sunucu yazlm kurulu ve alyor olmaldr. Windows iletim sistemi, dnyada kendinden baka iletim sistemi olabilecei dnlmediinden olsa gerek, kaynak paylamn sadece kendi protokolleri ile yapabilmektedir. Samba yazlm, Linux iletim sisteminde, Microsoftun paylam iin gelitirdii SMB protokolnn kullanlabilmesini, bylece iki ynl olarak kaynaklarn paylalabilmesini salar. Ancak, samba yazlm bal bana bir kitap yazlmasn gerektirecek kadar kapsaml ve yetenekli olduu iin burada ayrntya giremiyoruz. Kald ki yeni balayanlar iin ok da gerekli deil diye dnyoruz. WebDAV olduka yeni bir dosya sistemidir. Amac, web sitelerine ilikin dosya ve dizinlerin http protokolnn yeni zelliklerini kullanarak uzaktan dzenlemektir. WebDAV hakknda daha ayrntl bilgi iin www.webdav.org adresine gz atabilirsiniz.
102
NFS ve Samba servisleriyle dizinlerin paylama almas ve bunlarla ilgili gvenlik ayarlar sistem yneticisinin sorumluluundadr ve tm ayarlar bu iki sunucu yazlmn konfigrasyon dosyalar zerinde yaplan deiikliklerle yaplr. Baz durumlarda kullanclarn kendi kiisel dizinlerini paylama ap kapatmaya yetkileri olmasn isteyebilirsiniz. Gvenlik asndan ok tehlikeli olmasna ramen kullanclarnza bu yetkiyi vermek istiyorsanz Partition Sharing seimi ile tercihlerinizi belirtebilirsiniz. Bu yetkiyi tm kullanclara verebileceiniz gibi yalnzca seilmi kullanclara da verebilirsiniz. Bilgisayarnz dardan gelebilecek saldrlara kar koruyan iptables ate duvar (firewall) yazlmn temel ayarlarn burada yapabilirsiniz. Bu ayarlar deitirmediiniz srece bilgisayarnz dardan gelebilecek her trl protokol paketine kar aktr. nanmayacaksnz ama bunun pek bir zararn grmezsiniz. Solucan (worm) ve virs bulama riski Linux kurmanzla birlikte artk ok byk lde geride kald. Ancak Linux kullanyor olmanz kendinizi savunmamanz iin bir neden olamaz. Zaman iinde iptables ate duvar programn renmek ve uygun ayarlar yapmak durumundasnz. Eer darya hibir servis vermiyorsanz bu ilevi seip Everything (No firewall) seimini kaldrmanz, bylece dardan gelebilecek beklenmedik tm paketleri bloke etmenizi neririz.
103
Bilgisayarnz aldnda iletim sisteminizin yklenmesi sreci ile ilgili ayarlar yapabileceiniz ilevler bu balk altnda toplanmtr. Balang dzeyindeki okuyucularn bu ayarlar deitirmemesini neririz.
Ofis Uygulamalar
OpenOffice.Org Yakn zamana kadar insanlar Windows iletim sistemini terkedip Linuxa gememek iin ms-office uygulamalarn mazeret olarak gsteriyorlard. Efendim, endstri standard! diyorlard. OpenOfice.org ile MS-Office dosyalarn aabileceiniz gibi dosyalarnz bu format ta da kaydedebilirsiniz. Buyrun, OpenOffice.org...
KDE Mens
Office
104
KDE Mens
Office
105
KDE Mens
Office
106
KDE Mens
Office
107
Grafik Uygulamalar
The Gimp Adobe firmasnn Photoshop isimli grafik editrne ok benzer ve onun kadar yetenekli, baarl bir yazlmdr. PhotoShop kullanmay bilen birisinin The Gimp paketini renmek iin en fazla 10-15 dakikaya gereksinimi olacaktr. Eer PhotoShop renmeye frsatnz olmadysa zlmeyin, artk gerek de kalmad! zgr yazlm kavram size herkesin 600 dolar deyerek satn ald programn yapt hereyi yapabilen bir yazlm cretsiz olarak sunuyor... Haydi i bana... KDE Mens Multi Media Graphics The Gimp
108
Dierleri Mandriva ile birlikte sisteminize yklenmi olan 20den fazla grafik ileme yazlm vardr. Kimi yalnzca ikon izmek iin, kimi fotoraf albm oluturmak iin kimi de ekrandaki grntleri kaydetmek iindir. rnein bu kitaptaki ekran grntleri KDE Mens Multi Media Graphics KSnapshot
Kiisel Uygulamalar
Ximian-Evolution Adres defteriniz, ajandanz ve isterseniz de e-posta yazlmnz. Outlook alkanl olup da bu yzden MS-Windowsdan vazgeemeyenler iin kusursuz bir uygulama yazlmdr. sterseniz bu kez Evolution programn KDE mensnden deil, bir baka yntemle balatalm; eit olsun: Klavyeden Alt-F2 tularna basn (KDE Mens Run Command iin ksa yol) karnza gelen kutuya evolution yazp gnderin.
Evolution yazlmn ilk kullannzda kiisel ayarlar iin sorulacak birka sorudan sonra e-posta, adres defteri, ajanda gibi uygulamalara eriebileceiniz ekran karnzda belirecektir.
109
110
111
112
Konqueror Netscape ve Internet Explorer alternatifi bir web taraycsdr. En nemli zellii ok hzl olmasdr. Javascript ve Java destei de bulunan bu taraycnn olsa olsa tek olumsuz taraf ille de MS-IE gerektiren web sayfalarnda baarl olmamasdr.
113
FTP stemcisi (gFTP) Son derece kolay kullanlan, dosya yneticisi grnmnde bir FTP istemcisidir. FTP sunuculardan dosya ekmek ve bu sunuculara dosya gndermek iin keyifle kullanacanza inanyoruz. Dosya transferi yapmak istediiniz FTP sunucusunun adn ya da IP adresini Host kutusuna yazdktan sonra Port olarak 21 sein, kullanc kimliinizi ve ifrenizi girip en soldaki ikonu tklayp balann. Gerisi dosyalar seip transfer ynne ilikin ok tuuna basmaktan ibarettir... KDE Mens Internet File Transfer gFTP
114
Web Sayfas Hazrlama Aralar KDE Mens Internet Web Editors Bluefish
altnda birok web sitesi hazrlama arac bulacaksnz. Bunlardan en kullanl olanlar Bluefish ve Screem programlardr. Mozillann web editrn zellikle WYSIWYG (What you see is what you get: Ne gryorsan o) web aralarndan holananlara neririz. Screem, web iine biraz profesyonelce yaklaanlar iindir.
115
Bir de nvu web tasarm arac var: WYSIWYG (What you see is what you get: Ne gryorsanz aynen yle)bir web tasarm aracdr. Linuxta FrontPage yok! diyenlere yanttr.
Elbette yegne MP3 alarnz XMMS deildir. Totem, nine, Amarak, Juk gibi ok sayda seeneiniz var.
116
CD Player Ad stnde... Bilgisayarnzda Audio CD dinlemek isterseniz kullanabileceiniz son derece baarl bir yazlmdr. Ses ayarlar iin ise Sound Mixer yazlmn balatmanz neririz.
Ve Yzlerce, Binlerce Uygulama Yazlm... Mandrake ile birlikte bu kitapta anlatmakla bitmeyecek kadar ok uygulama program yklenmi durumda. Artk bunlar kefetmek size dyor.
117
K3B
CD/DVD yazmak iin k3b var:
118
Gambas
Visual Basic merakls programclar iin Gambas var:
119
Eclipse
Java programclar iin onlarca Java gelitirme ortam var; en ok beenilenlerinden birisi de Eclipse:
120
Digikam
Saysal fotoraf makinenizle ektiiniz resimleri dzenlemek; krmz kan gzlerin rengini dzeltmek iin digikam var:
Wine
Linux iletim sistemi altnda MS Windows yazlmlarn altrmanz salar. rnein Delphi ile program yazmak zorundaysanz; ya da elektronik devrelerinizi Xilinx ile tasarlamak zorundaysanz; bir baka deyile, iiniz gerei bir Windows yazlm kullanmanz gerekiyorsa, wine iinize ok yarayacaktr:
121
122
Oyun merakls msnz? Bilgisayarnz ounlukla bir oyun makinesi olarak m kullanyorsunuz? O zaman Linux size gre deil! Her ne kadar ok sayda Linux oyunu varsa da ve birok Windows oyunu wine altna alyorsa da, Linux sizi mutlu etmeyecektir. Oyun merakllarna nerimiz, iletim sistemi ve antivirs vergilerini muntazam deyip, virs ve solucanlarla dolu bir dnyada yaamaya devam etmeleri ve gnde 2-3 kez gncelleme yapmalar, haftada bir kez bilgisayarlarna iletim sistemini yeniden kurmaya devam etmelidir. Ak kaynak kodlu Linux uygulamalarnn tamamn ya da ounu bu kitapta listelememiz olas deil. En iyisi sizin arada srada http://www.linux.org/apps adresini ziyaret ederek nemli uygulamalarn izlemenizdir:
Bundan Sonras LINUXun grafik aralarn kullanarak ilerinizin neredeyse hemen hemen hepsini yapabilirsiniz; zellikle kiisel almalarnza ynelik kelime ilem, elektronik tablolama gibi iler iin gelitirilmi uygulama yazlmlarnn neredeyse tamam X altnda alacak ekilde yazlmtr.
123
Baz temel LINUX ynetim ilemleri iinse, grafik uygulamalarla uramaya hi gerek yoktur. Ustalar birok ii dorudan LINUX komutlaryla yapmay tercih ederler. Bu tr alma hem daha fazla esneklik salar hem de yaplan iin etkilerinin hemen gzlenmesini salar. Bu nedenle konsol pencereleri LINUX ortamnn vazgeilemez unsurlarndandr. Eh, konsol deyince LINUXu dorudan kullanabilmek iin LINUX, daha dorusu UNIX iletim sisteminin komutlarn renmek gerekecektir. Bundan sonraki blmlerde KDE ve benzeri masa st yneticilerini kenara brakp konsol pencerelerinden verilebilecek LINUX komutlarna younlaacaz. Aslnda, LINUX renmeye imdi balyorsunuz.
124
stediiniz kadar konsol penceresi aabilirsiniz. Herbiri tamamen bamsz terminaller gibi alacaktr. stelik herbirinin grsel zellikleri de farkl olabilir. telnet ve ssh
Gvenliin bilgisayar dnyasnda nemli bir sorun olmad zamanlarda bir UNIX bilgisayara uzaktan erimek iin kullanlan en nemli ve yaygn ara, TCP/IP protokolleri arasnda da nemli bir yeri olan telnet uygulamasyd. telnet, temel olarak, bir bilgisayarn ynetim konsolunu uzaa tamak iini hallederdi (hala da halleder). A zerinden eriebildiiniz herhangi bir UNIX bilgisayara bir telnet istemci programyla balandnzda kullanc kodu ve ifresi sorulur; doru yantlar verilirse kullancnn karsna, sisteme konsol komutlar verebilecei bir terminal alrd. telnet yazlmlar, protokol standartlar gerei ak iletiimde bulunur; yani iletiim hattn dinleyenler, bir telnet seansnda karlkl gelip giden tm verileri grebilir. Bu zayfl ortadan kaldrmak iin ssh (Secure Shell) sunucu ve istemci yazlmlar gelitirildi. ssh ile iletiime balarken istemci ve sunucu arasnda nce bir kripto anahtar takm oluturulur (ak anahtarla ifreleme teknii ile - Public Key Encryption). Bu admdan sonra gelip giden tm veri paketleri artk ifrelidir; hatt dinleyen varsa bir ey anlamas mmkn olmayacaktr. Gvenlik kayglaryla telnet artk neredeyse tamamen terk edildi ve yerini ssh ald. Ancak, telnet ya da ssh istemcisi ile bir kez balant salandktan sonra terminal/konsol penceresinin grn ve ilevleri tpa tp ayndr.
125
LINUX altnda alan bir bilgisayara sk sk uzaktan erimek isteyeceksiniz. Uzaktan erimekten kastettiimiz, yerel a ya da internet zerinden bilgisayarnza balanmaktr. rnein, bir nedenle bir ii ya da servisi durdurup yeniden balatmanz gerekebilir; sisteminizi kapatp amanz gerekebilir. Bu gibi durumlarda bir ssh istemci yazlmyla sisteminizin ssh sunucusu servisine balanp sanki konsoldaym gibi alabilirsiniz. Bir baka deyile sisteminizin ssh servisi, uzaktaki bilgisayarda alan ssh sunucu yazlmnn kendi penceresi iinde sizin bilgisayarnza ait bir terminal altrlmasn salayacaktr. u anda size ok anlaml gelmeyebilir ama bu ssh servisi olaanst deerli bir servistir. Hi yerinizden kalkmadan yzlerce LINUX/UNIX bilgisayar denetleyebilir, ynetebilir ve kullanabilirsiniz. Oysa NT ve trevi iletim sistemi ile alan bilgisayarlarda sistem ynetimi ile ilgili ilerde ounlukla bilgisayarn bana gitmek gerekmektedir. KDE masa st yneticisinin standart terminal uygulama yazlm olan kterm yazlmn balattnzda, zaten sistemi kullanmakta olan bir kullanc olduunuz iin size kullanc kodu ve ifre sorulmaz. KDEyi balatm olan kullancnn kimliiyle alan bir terminal penceresi alr. Bu penceredeki [cayfer@notebook cayfer]$ satr, LINUXin sizden komut almaya hazr olduunu belirten hazr iaretidir. (prompt)
126
Bu hazr iaretinde, LINUXun sizden komut almaya hazr olduundan baka ok nemli bir bilgi daha vardr. Bu bilgi, $ karakteridir. imdi sk durun, hazr iaretinizde $ gryorsanz kullanmakta olduunuz kabuk program (shell) Bourne Shell veya onun bir trevi olan Bourne Again Shelldir. (bash) (Sabrl olmanz gerektii konusunda uyarmtk...)
Kabuk (Shell) kavram, UNIX kullanclarnn iyi anlamas gereken bir kavramdr. [cayfer@notebook tmp]$ benzeri bir hazr iaretinin karsna yazaca-
nz komutu irdeleyen, yaplmasn istediiniz ie ait program bellee ykleyen, gerekli parametreleri bu programa aktaran programlara kabuk program denir.
Birok iletim sisteminden (Windows gibi) farkl olarak, UNIXte, kullancnn tercihine bal olarak kullanabilecei birden fazla komut yorumlaycs (kabuk = shell) vardr. Bu kabuklara rnek olarak.
sh
csh ksh
Yeni kullanclar iin imdilik bu kadar bilgi yeter deyip devam edelim. Eer kullanmakta olduunuz kabuun (sistem yneticisinin sizin iin uygun grd kabuk) hangisi olduunu renmek istiyorsanz, hazr iaretinin karsna echo $SHELL komutunu yaznz. Greceiniz, /bin/bash benzeri bir satr, kabuk programnz olarak almakta olan program gsterecektir. /bin/bash, kabuk program olarak /bin dizini altndaki bash dosyasndaki programn almakta olduunu belirtmektedir. [cayfer@notebook cayfer]$ grnmndeki hazr iaretindeki dier yararl bilgiler ise unlardr:
127
alma dizininizin son blmnn cayfer olduu; yani alma dizininizin /home/cayfer benzeri bir yapda olduudur. (Bu alma dizini meselesi anlalmaz geldiyse hi zlmeyin, birka blm sonra bu konuya ayrntl olarak deineceiz. imdilik olduu gibi kabul edip devam edebilirsiniz.) Hazr iaretinde yer alan bu bilgiler ilk bakta size yararsz ve anlamsz gelmi olabilir. Ancak her bir terminal penceresinde farkl bilgisayarlara farkl kullanc kodlaryla bal bulunabileceinizi dnrseniz bu bilgilerin ne denli deerli olduunu kabul edersiniz. Standart LINUX sistemlerinde kullanlabilecek kabuk programlar ve bu programlarn dosya isimleri unlardr:
Kabuk Programnn Dosya Ad /bin/bash /bin/csh /bin/sh /bin/ksh Kabuk Programnn Ad
/bin/tcsh
Kullandnz kabuk program hangisi olursa olsun, temel UNIX kurallar deimeksizin geerli olacaktr. Yeni balayanlarn, eer mmknse, bash kabuk programn kullanmalarn neririz. Bu kitapta greceiniz rneklerin byk ounluu bash iin verilecektir. Hangisi olursa olsun, UNIX kabuk programlar, olduka gelimi yeteneklerle donatlmlardr, tabii bir o kadar da karmak! Kabuk programlaryla uygulama programlar bile yazlabilir. Gelimi programlama dillerinde yer alan while, if, case, call gibi programlama aralarnn hepsi u veya bu ekilde kabuk programlarnda da bulunmaktadr. rnein bash
128
Programlama, tek bana 400-500 sayfalk bir kitabn konusu olacak kadar geni bir konudur.
logout: Sistemden k
LINUX iletim sistemi ile yapmakta olduunuz ileri tamamladnzda sistemden logout ederek LINUXla kiisel balantnz kesmenizi neririz. Aslnda bu gereklilik yalnzca bir gvenlik nlemidir. Amac, bilgisayarnzn bana geebilecek birisinin ak terminal ekranlarndan sizin kimliinizi kullanarak bir eyler yapmasn nlemektir. Dikkatinizi ekmek istediimiz nemli bir konu, logout ilemiyle sistemin kapatlmas ilemlerinin birbirlerinden farkl ilemler olmasdr. Tm kullanclar logout etmi olan bir LINUX bilgisayar, arka planda yapmas iin verilmi grevlerini yerine getirmeye devam edecektir. rnein web, e-posta alp verme, veritaban sunum servisi ve ftp servisleri gibi servisler, hibir kullanc sisteme bal olmasa bile kesintisiz devam edecektir. Sistemin banda grafik ekranla alyorsanz (rnein KDE altnda) sistemle balantnz kesmek iin masa st yneticinizin mensnden Login as different user seimini kullanmalsnz.
Sisteminize bir telnet yazlmyla uzaktan balandysanz iiniz bittiinde terminalinizde veya terminallerinizde exit veya logout komutlarndan birini kullanarak kiisel balantnz kesebilirsiniz.
129
LINUX iletim sisteminde bir bilgisayar paylaan kullanclar sz konusudur. Bu durumda kullanclarn kaytl bilgilerini birbirlerine kar korumak gerekir. Bir sabah ie geldiinizde tm kaytl bilgilerinizin kaybolduunu dnebiliyor musunuz? Kullanclarn kaytl bilgilerinin yan sra, iletim sistemi, kendisini de hatal komutlara ve kt niyetli kullanclara kar korumak zorundadr. Bu koruma mekanizmasnn temelinde kullanc ad ve ifresi yer almaktadr. Her LINUX kullancs ifresini iyi korumak zorundadr. ifrenizi belki iyi koruyor olabilirsiniz; ancak logout komutunu vermeden terminalinizin bandan kalkarsanz, arkanzdan terminalin nne gelip oturan birisi, sizin kiiliinizle LINUXa verecei komutlarla, bilerek ya da bilmeyerek kaytl dosyalarnza zarar verebilir. Logout etmeniz, bilgisayar da kapatabileceiniz anlamna gelmez. Ltfen; ama ltfen, LINUX iletim sistemi ile alan bir bilgisayar iiniz bittiinde kt diye kapatmaynz. Bir LINUX bilgisayarnn salkl bir ekilde kapatlabilmesi iin bir dizi trensel ilem yaplmas gerekir.
130
Isnma Hareketleri
Ne Var Ne Yok? Bir bilgisayarn bana ilk oturduunuzda genellikle elinizin altnda hangi dosyalarn ve dizinlerin bulunduunu grmek istersiniz. LINUXta disk(ler)de bulunan dosya ve dizinlerin listesini grmek iin uygulayabileceiniz birka yntem var. En basiti doal olarak KDEnin dosya yneticisini kullanmaktr. KDE dosya yneticisini altrmak iin masa stndeki ikonunu veya KDE panelindeki ikonunu tklayabilir veya KDE mensnden Home (Personal Files) seimini yapabilirsiniz.
KDE dosya yneticisi (Konqueror) aslnda bir web taraycsdr. Dosya ve dizinleri dzenlemek, kopyalamak, silmek, tamak iin kullanlaca gibi Location: kutusuna geerli URL adresleri vererek internet web sayfalarnda dolamakta da kullanabileceiniz bir yazlmdr.
Ne var; ne yok? sorusuna grafik kullanc arabirimi kullanarak yant aramay anlatmak istemiyoruz. Bu kitabn asl amac LINUX/UNIX retmek
131
olduu iin ayn soruya LINUX komutlaryla yant aramann yolunu gstermenin daha yararl olacan dnyoruz. Bir terminal penceresi ap ls komutunu verdiinizde yukardaki grafik arayzde grntlenen listenin ilevsel olarak aynsn terminal pencerenizde greceksiniz:
Bu ekilde verilmi bir ls komutu, kiisel dizininizdeki dosya ve dizinlerin bir listesini retecektir. Bu listedeki alt dizinler isimlerinin sonunda bir / iaretiyle, altrlabilir program ieren dosyalar da isimlerinin sonunda bir * iaretiyle gsterilecektir. Basit dosyalarn (veri, yaz vs. ieren dosyalar) isimlerinin sonunda bir tantm iareti olmayacaktr. Daha kalabalk bir liste grmek iin ls /etc komutunu deneyiniz. home Dizini
LINUX ok kullancl bir iletim sistemi olduu iin her kullancnn kiisel dosyalarn saklayabilecei bir dzeni de salamak zorundadr. Bu nedenle, kullanc hesaplarnn almas srasnda her kullancnn kendi dosya ve dizinlerini yerletirebilecei bir dizin alr. Her kullanc kendi home dizininde her trl hakka sahip olur; ancak bir baka kullancya ait kiisel dizinde neredeyse hibir hakk olmaz. Apartman hayatndaki daireler gibi bir ey...
132
Ben Kimim? lk bakta ok anlaml deilmi gibi grnen bu soru, UNIX dnyasnda zaman zaman sorulmas gereken nemli bir sorudur. Eer kullandnz UNIX bilgisayar byk bir bilgisayar ann bir parasysa ve siz bu a zerinden birok bilgisayara ulaabiliyorsanz ve bu deiik bilgisayarlardaki kullanc isimleriniz (user-id) farklysa, uzun alma seanslar srasnda herhangi bir pencere iinde geerli olan kullanc kimliinizi arabilirsiniz. Korkmayn, UNIX kimlik bunalmna yol aan bir iletim sistemi deildir. O baka bir iletim sisteminin zelliidir. Hemen,
whoami ve who am i
komutlarn vererek, LINUXun sizi o anda hangi kimlikle tandn renebilirsiniz. zellikle sistem yneticileri, zaman zaman baka kullanclarn kimliine brnme gereksinimi duyarlar. Bu ii su (switch user) komutuyla yaparlar. Bir o, bir bu kullanc kimliine brndklerinde de bazen armalar olur. Byle bir durumda hemen whoami komutunu vererek o penceredeki kimliklerini renebilirler. ifrenizi Deitirmek stediinizde... UNIX altnda alan bir bilgisayara sizin adnz (yani kullanc kodunuzu demek istiyoruz) kullanarak ulaabilen herkes, size gelen elektronik postalar okuyabilir, tm dosyalarnza ve dizinlerinize eriebilir, hatta silebilir ve deitirebilir. Belki daha da kts sizin adnz kullanarak nternette su olarak nitelendirilen iler yapabilir. LINUX eriim ifrenizi sk sk deitirmelisiniz. Ne kadar sk? diyorsanz alt ayda bir deriz. Elbette ifrenizin ortaya ktn dndnz olursa hemen deitirmelisiniz. Nitekim, baz sistem yneticileri, kullanclarn belirli sklklarda ifrelerini deitirmeye otomatik olarak zorlayan nlemler alrlar. (Password aging: ifre eskitme.) Bilgisayar dnyasnda geirdiimiz sre iinde ifresini kk sar katlara yazp ekrann zerine yaptranndan, salonun br tarafndan yahu senin ifren neydi? diye bararak sorulan soruya ayn ekilde bararak yant veren kullanclar bile grdk.
133
ifre semek ve korumak ciddi bir itir. Setiiniz ifre, sizin tarafnzdan kolayca hatrlanacak, ancak bakalar tarafndan kolayca tahmin edilemeyecek bir karakter dizisi olmaldr. Einizin veya ocuunuzun ad, soyadnz, arabanzn plakas, doum tarihiniz, ifre olarak kullanlmas sakncal olan dizilerdir. ifre olarak ok karmak diziler seip, sonra da bu ifreyi unutmamak iin bir kenara yazmak da ok tehlikelidir. ifrenizi seerken, mmkn olduunca harf ve saylar kartrnz. Daha iyisi, hem byk, hem kk harfleri birarada kullannz. ifreniz ne ok uzun, ne de ok ksa olsun. 6-8 karakterlik diziler hem kolay hatrlanr, hem de klavyeden yazlrken pek hata yaplmaz.
ayfer AyfeR-1995 123456 Hehmi. x1e34TQ?w/&1+
ok kt bir ifre, hemen tahmin edilir. Eh.. Fena deil ama ifre krma programlar hemen zecektir. ok ciddiyetsiz, stelik klavyeden yazarken kolayca izlenir. Hayatta en hakiki mrit ilimdir sznn ba harfleri. Hem kolay hatrlanr, hem de tahmin etmesi ok gtr. yi bir ifre! Harika bir ifre, ama siz hatrlayabilecek misiniz bakalm?
komutunu kullanmalsnz. ifreyi deitirebilmek iin o anda geerli olan ifreyi bilmeniz gerekecektir.
134
Yeni ifreyi iki kez vermenizin istenmesi olduka mantkl deil mi? Klavyeden yazarken ekranda gremeyeceiniz bir ifreyi hatal yazarsanz, bir daha bu sisteme login etmeniz olanaksz hale gelecektir. ifrenizi unutursanz root kullancdan (sistem yneticisi) yardm alabilirsiniz. LINUX iletim sisteminde kullanc ifreleri tek ynl bir kriptolama tekniiyle ifrelenip saklanrlar. Tek ynl dememizin nedeni, bu kriptolama tekniinin geri dn, yani ifrelenmi bir diziye bakp bunun neyin ifrelenmi hali olduunu bulmann deneme-yanlma dnda bir yolu olmamasdr. Ancak root kullanc sistemde her eyi yapmaya, her dosyay ve dizini okumaya, silmeye, deitirmeye yetkili olduu iin istedii kullancnn ifresini istedii zaman deitirebilir. stelik eski ifresini de bilmesine gerek yoktur. Bu nedenle ifrenizi kaybettiinizde root kullanc size yeni bir ifre verebilir. Sisteminizin root ifrenizi unutursanz iiniz biraz zorlaacaktr. Unutulmu root ifrelerinin yenilenmesi konusunu kitabn Sistem Ynetimi blmnde bulabilirsiniz. mdaaaat!.. LINUX iletim sisteminde kullanlabilecek binlerce komut vardr. Seyrek kullanlan komutlarn genel yaplarn ve parametrelerinin hepsini hatrlamak pek kolay olmad iin, LINUX tm komutlarnn kullanm klavuzlarn standart ve evrim ii (online) olarak size sunmaktadr. Bir komutun nasl kullanlacan renmek ya da hatrlamak istediinizde,
man komut-ad
komutunu vermeniz, komut-ad adl komutun kullanm klavuzu sayfalarnn ekrannzda grntlenmesini salayacaktr. rnein, ls komutunun nasl kullanlacan, ne gibi seenekleriniz olduunu merak ederseniz,
man ls
komutunu kullanabilirsiniz.
135
G... Daha Fazla G... Yapmay dndnz i iin yetkileriniz mi yetmiyor? root olun! Elbette root kullanc kimliine brnmek iin root ifresini bilmeniz gerekiyor; ama sistemi siz kurduunuza gre biliyorsunuzdur.
root kimliine brndnzde yetkileriniz snrszdr. Ancak bu snrsz
Bir kere ne yaptnz iyi bilmelisiniz, zira LINUX, kendisine root tarafndan verilen komutlar sorgusuz sualsiz yerine getirir. Tm dizinleri silme komutunu verirseniz siler! Diski formatlama komutunu verirseniz formatlar! te yandan root kullanc iin sistemde ifreyle korunan hibir ey yoktur, root, istedii kullancnn istedii dosyasn ap deitirebilir, root istedii kullancnn ifresini deitirebilir; stelik eski ifresini bilmesine de gerek yoktur. Bu kadar yetki akas rktcdr. Geri dn olmayan hatalar yapma olasln ok arttrd iin gerekmedike root kimliine brnmeyin. Gerektiinde root olun ve iiniz bitince hemen normal kullanc kimliinize dnn.
136
komutunu verip arkasndan sorulduunda root ifresini girmelisiniz. iniz bittiinde de exit komutuyla root kimliinizi terkedin. (Aranzda politikaclar varsa bundan holanmayacaktr. root kimliine sahipken exit komutu vermek bakanlk koltuunu brakmak gibi bir ey olsa gerek). Aadaki ekranda cayfer isimli kullanc root kimliine brnmek iin su - komutunu verip mayfer isimli kullancnn ifresini deitiriyor ve ardndan /var/www/html/mayfer dizininin ve altndaki tm dosya ve alt dizinlerin sahibini mayfer yapyor.
kimliin ifresi sorulacaktr. Eer root bir baka kullanc olmak isterse ifre sorulmaz.
su komutu yalnzca root kimliine brnmek iin kullanlmaz. Kullanc kimliinizi hasan yapmak istediinizde su - hasan komutunu kullanabilirsiniz. Normal kullanclar su ile kimlik deitirmek istediinde yeni
137
su mayfer komutunu verirseniz kimliiniz mayfer olur. Ayn komutu fer mayferin kabuuna brnrsnz; yani mayferin kiisel dizinindeki mayfer olursunuz. su - mayfer olarak verirseniz gene kimliiniz mayfer olur ama bu se-
Dosya-Dizin simleri
Tm UNIXlerde olduu gibi LINUXta da dosya-dizin isimlerinde kullanlacak harflerin byk ve kk olmas farkldr ve nemlidir. rnein;
veriler.2002.dat Veriler.2002.dat
ve
apayr iki dosya olarak nitelendirilir. Olas karklklar nlemek iin nerimiz mmkn olduunca kk harflerden oluan dosya ve dizin isimleri kullanmanzdr.
138
LINUXta dosya ve dizin isimlerinde uzant (extension) kavram yoktur. Yani bir dosyann adnn uzantsna bakp o dosyann bir program dosyas olup olmadna karar veremezsiniz. Bir baka deyile LINUXta altrlabilir program dosyalarnn EXE, COM, BAT gibi uzantlar olmayacaktr. hesapla.dat isimli bir dosya pekala bir program dosyas olabilir ve altrlabilir. LINUXta dosya uzantsnn anlam olmad, dosya uzants kullanlamayaca anlamna gelmez. rnein Acrobat dokman dosyalarnn uzantlar genellikle .pdf olacaktr; C dili ile yazlm programlarn kaynak kodlarnn yer ald dosyalarn uzantlar .c olacaktr. Bu uzantlar ayn Windows dnyasndaki gibi geleneksellemi uzantlardr. LINUXtaki en nemli fark program dosyalarnn .EXE, .COM gibi uzantlar olmas gereinin olmamasdr. Bunun dnda kullanclara hayat kolaylatran dosya uzantlar her zaman yararl olmaktadr. LINUX dosya-dizin isimlerinde nokta ( . ) karakterinin zel bir anlam yoktur. Dosya ad iinde istediiniz kadar nokta kullanabilirsiniz. Ancak, nokta ile balayan dosya isimleri bir anlamda zeldir; ad nokta ile balayan dosyalar yar gizli dosyalardr. zellikle belirtmedike, dosya isimleri listelerinde bu tr dosyalar gremezsiniz.
ls komutunu -a parametresiyle kullanmadnz srece, ad noktayla ba-
layan dosyalar listede grnmez. Varl kullanclar pek ilgilendirmeyen, genellikle eitli uygulamalara ilikin kiisel tercihlerin sakland dosyalara, ls listelerinde kalabalk yapmasnlar diye noktayla balayan isimler verilir.
LINUX, Windowsdan da tandnz hiyerarik dosya-dizin yapsn kullanmaktadr. En st dzeyde bir root dizini ve bunun altnda gerektii gibi yerletirilmi olan dosya ve alt dizinler ile gene bu alt dizinler altnda yerletirilmi dosyalar ve gene alt dizinler...
139
...
Dikkat ederseniz, Windows dosya yapsndan farkl olarak root dizininin ad \ (back-slash) deil, normal / (slash) karakteridir. Ayn ekilde, bir dosyann dizinler arasndaki yerini tanmlarken, Windowstaki \ karakteri yerine / karakteri kullanlr. Bunu rneklerle gstermek gerekirse, yukardaki dosya-dizin yapsnda yer alan baz dizin ve dosyalarn tam isimleri yle yazlr:
/home/cayfer/proje /home/cayfer/prog.c /bin/cat
Her Horoz Kendi plnde... LINUX iletim sisteminde, her kullancnn kendisine ait bir kullanc dizini ya da kiisel dizini (UNIX terminolojisinde: home directory) vardr. Bu dizin, kullancnn sisteme tantm srasnda, sistem yneticisi tarafndan yaratlr. Her kullancnn kendi kullanc dizininde ve bu dizin altnda yer alan dosya ve alt dizinler zerinde snrsz yetkileri vardr. Bu dizin altnda istedii gibi dosya ve alt dizinler yaratr, bunlar siler, isimlerini ve ieriklerini deitirir vs. vs.
140
Her kullancnn kendi dizinindeki bu yetkileri, baka kullanclarn dizinleri zerinde yoktur. Bir baka deyile, ayfer isimli kullanc, omer isimli kullancnn dizinindeki dosyalar silemez, deitiremez, omer izin vermedike okuyamaz; hatta varlndan bile haberdar olamaz. Sisteme balanan her kullanc, alma dizini, kendisine ait kullanc dizini olacak ekilde almaya balar. Sistem yneticileri, kullanc dizinlerini, genellikle /home dizini altna atklar dizinler olarak dzenlediklerinden (tipik bir UNIX gelenei), cayfer isimli kullancnn login ettiinde kendini /home/cayfer gibi bir dizinde bulmas doaldr.
login : cayfer Password : [cayfer@notebook cayfer]$
Bu rnekteki notebook, kullandnz LINUX bilgisayarnn addr. Eer bilgisayarnz bir bilgisayar ana balysa, bu adn sistemin hazr iaretinde (prompt) grnyor olmas terminal pencerenizin hangi bilgisayara bal olduunu gsterdii iin ok iinize yarayacaktr. zel bir kullanc olan root kullancsnn kiisel dizini /home dizini altnda deil, / dizini altnda yer alr (/root). Her ne kadar sisteme balandnzda LINUX sizi kendi kullanc dizininize yerletirirse de, bu yerleim mutlak deildir. sterseniz cd komutu ile alma dizininizi (default directory veya current directory) deitirebilirsiniz.
Neredeyim? alma dizininizin hazr iaretinde gsterilmesini salayan kullandnz kabuk programdr. (Buradaki rnekler bash kabuu iin verilmitir.) alma
141
dizininizin tamamn hazr iareti iinde gremeyebilirsiniz. Komut satrnn ounu harcamamak iin bash kabuu hazr iareti iinde alma dizininin sadece son blmn grntler. Nerede olduunuzu hatrlatmaya yardmc olsun diye... Eer alma dizininizin tam yerini grmek istiyorsanz, yukardaki rnek ekranda da grebileceiniz gibi
pwd (print working directory)
komutunu kullanabilirsiniz. Yuvaya Dn alma dizininiz neresi olursa olsun cd komutunu parametresiz olarak verirseniz, kiisel dizininize dnersiniz.
Ne Var Ne Yok? (Ama Bu Kez Daha Bir Merakla...) ok doal olarak, bulunduunuz dizinde yer alan dosya ve alt dizinlerin bir listesini grmek isteyeceksiniz. Kullanacanz komut en basit haliyle:
ls
komutudur.
142
Bu listede dizinler, isimlerinin sonuna yerletirilen / karakterleriyle; program veya komut dosyalarysa * ile belirtilmi olarak karnza kacaktr. Herhangi bir eki olmayan isimlerse, program dosyas veya dizin olmayan sradan dosyalara aittir. Baz isimlerin sonunda @ iareti greceksiniz. Bu iaretin anlamn aklamak iin henz biraz erken; ama imdilik u kadarn syleyebiliriz: @ iaretli dosya veya dizinler, aslnda orada olmayan dosya ve dizinleri belirler. Bu liste her zaman alfabetik srada ve dosya isimlerinin izin verdii lde birden fazla stun halinde dklecektir. Bu listeye nce ilk stunu, sonra dier stunlar grecek ekilde bakmaya almalsnz.
Dosyalar ve dizinler hakknda daha detayl bilgi istiyorsanz ls -l komuform ile alacanz listenin nasl yorumlandn ltfen ok ok iyi anlaynz. balayarak anlatlanlar olduka nemlidir. tunu kullanmalsnz. ls komutunun bu formunu mutlaka deneyiniz ve bu
143
ls -l (long list)
Bu ayrntl liste, inanamayacanz kadar ok bilgi iermektedir. Bu aamada btn detaylara girmeyeceiz; sadece satrlardan birkan rnek olarak ele alp, bir fikir verecek ekilde ksaca aklayacaz. Yukardaki ekran grntsnde d ile balayan satrlar dizinlere; - ile balayan satrlar ise dosyalara ilikin bilgi satrlardr. Her satrdaki rwxr-xr-x benzeri kalplarda grdnz kodlar, kullanclarn dosya (ya da dizin) zerindeki eriim yetkilerini tanmlamaktadr. LINUXta Eriim Yetkileri balkl blmde bu rwxr-x--- gibi kodlarn ne anlama geldii daha ayrntl bir ekilde aklanacaktr. imdilik ksaca aklayalm:
144
Dosyalara Ait ls
-rw-r--r--
-l Satrlar
Bu satrn bir dosyayla ilgili olduunu (en bataki - iaretinden anlyoruz); bu dosyann sahibinin bu dosyada okuma (r: read), yazma (w: write) yetkilerinin olduunu; dier kullanclarn sadece okuma yetkilerinin bulunduunu belirtiyor. Bu satrn basit bir dosya hakknda bilgi ierdiini belirtiyor. Bu dosyann sahibinin cayfer isimli kullanc olduunu belrtiyor. Bu dosyann sahibinin cayfer grubunda olduunu belirtiyor. Dosyann uzunluunun 736 byte olduunu belirtiyor. Dosyann en son 8 Temmuz 2002de deiiklie uradn belirtiyor. Eer dosya en son iinde bulunduunuz ylda (2003) deitirilmi olsayd, bilgi satrnda yl yerine saat grnecekti. (addrbook.tar.gz dosyasnda olduu gibi.)
Jul 8 2002
bashrc.txt
Dizinler iin ls
drwxr-xr-x
Bu satrn bir dizinle ilgili olduunu (en bata d harfi var); bu dizinin sahibinin bu dizinde okuma (r: read), yazma (w: write) ve altrma (x: execute) yetkilerinin olduunu; dier kullanclarn sadece okuma ve altrma (dizin iin altrma yetkisinin zel bir anlam vardr) yetkilerinin bulunduunu belirtiyor.
145
Bu satrn bir dizin hakknda bilgi ierdiini ve bu dizinin altnda baka bir dizin olmadn belirtiyor. (link says ad verilen bu parametre dizinler iin kendi altndaki alt dizinlerin 2 fazlasn gsterir; daha dorusu bu saynn iinde dizinin kendisi ve bir stteki dizin de vardr.) Eer bu ctp208 dizinin altnda tane alt dizin olsayd, bu say 5 olurdu. Bu dizinin sahibinin cayfer isimli kullanc olduunu belirtiyor. Bu dizinin sahibinin cayfer grubundan bir kullanc olduunu belirtiyor. Bu saynn dizinler iin pek ie yarayan bir anlam yoktur. Dosya sisteminden sistemine farkllklar gsterir. Dikkate almayabilirsiniz. Merakls iin unu syleyebiliriz: Dizindeki dosyalarn listesini, bu dosyalarn diskin hangi bloklarnda yer aldn gsteren bilgileri saklamak iin kullanlan disk alan miktarn byte olarak gsterir. Dizinin en son 9 ubat (iinde bulunduunuz yln 9 ubat), saat 10:11de deiiklie uradn, rnein bu saatte bir dosya/alt-dizin eklendiini, ya da dosya/alt-dizin silindiini belirtiyor. Bir dizinin altndaki bir dosyada yaplan deiiklikler dizinin son deiiklik saat ve tarihini deitirmez. Bu deiiklik iin dosya/alt dizin silinmesi ya da eklenmesi gerekir. Dizinin adnn ctp208 olduunu gstermektedir.
Feb 9 10:11
ctp208
tiyorsanz
man ls
komutunu kullanabilirsiniz. Bu komutu verdiinizde, aada bir ksm gsterilen uzun aklamalar ekrannza listelenecektir. Bu aklamalar, kullandnz LINUX iletim sistemine ait kullanm klavuzunun ls komutu ile ilgi-
146
li blmleridir. man komutunu verdiinizde, listelenecek satrlar bir ekran sayfasndan fazlaysa, birinci sayfann listelenmesi tamamlandnda, ekrann sol alt tarafnda,
--- more ---
iareti greceksiniz. Bu mesaj, listelenen aklamalarn devam olduunu, bu sayfay okumay tamamlaynca klavyeden bir komut vererek listenin devamn grmenizin mmkn olduunu belirtmektedir.
--- more --- grndnde
basarsanz, bir sonraki sayfa, basarsanz, bir sonraki satr, basarsanz, bir nceki sayfa listelenir.
rnein:
ls -al
Tm dosya/dizinleri ve varsa gizli dosyalar da (isimleri noktayla balayan dosyalar ve dizinler) listeler.
147
ls -hl
Dosyalarn uzunluklarn daha okunakl bir biimde (Kbyte ve MByte olarak) listeler. (h: human readable) ls -Rl Dosyalar listelerken varsa alt dizinlerin ieriklerini de listeler. ls -tl Dosyalarn ayrntl listesini retirken dosya ve dizinleri son gncellenme tarihlerine gre sralar. Son altrdnz komutun hangi dosyalar deitirdiini bulmak iin ok yararl bir zellik... man
UNIX dnyasnn nemli geleneklerinden biri de evrim ii komut dkmantasyonudur. man sayfalar diye anlan (ng.: Manual ksaltmas) dosyalarda tm UNIX komutlarnn nasl kullanlacaklarn, olas parametrelerini, seeneklerini ve rneklerini bulabilirsiniz. man fsck komutunu verip, fsck komutu hakknda ok ayrntl ve gerekten ie yarayan aklamalar alabilirsiniz. Hatta man komutunun ayrntlar iin man man komutunu bile kullanabilirsiniz. rnein fsck komutunun nasl kullanlacan hatrlayamadnzda
Dosyalar ve Dizinler
Kullanclarn bir bilgisayarla yaptklar almalarn meyveleri retilen dosyalardr. izim programlar kullanarak hazrladnz izimleri bir sonraki alma adm iin dosyalarda (disk, disket veya teypte) saklamalsnz. Yazdnz programlar da ayn ekilde... Ya da sistemin davrann dzenlemek zere deitirdiiniz konfigrasyon dosyalarn... Kendinize ait kiisel dosyalarnz veya sistem denetim dosyalarn dzenlemek, kopyalarn karmak, yedeklerini almak, gnlk ilerinizin nemli bir paras olacaktr; bu nedenle LINUXun dosya kavramn uzun uzun anlatmak istiyoruz. LINUXta dosyalar, ayn Windowsda olduu gibi, ilgili olduklar uygulamaya gre dzenlenmi ve isimlendirilmi dizinlerde (directory) saklanr. LINUXun ok kullancl bir iletim sistemi olmasndan dolay, diskin veya disklerin kullanclar arasnda paylalmas, dosyalarn konular yan sra,
148
kullanclarn kimliklerine gre de gruplanmasn gerektirir. Hatrlarsanz, her kullancnn bir kiisel dizini ya da kullanc dizini olduundan daha nce sz etmitik. (home directory) Dosya ve dizinlerin kullanclar arasnda paylalmasndan dolay, bir kullancya ait dosyalarn ve dizinlerin bir eriim yetkisi mekanizmas ile dier kullanclara kar korunmas gerekmektedir. LINUXta bu koruma mekanizmas, kullanclarn sisteme tantlmas srasnda verilen kullanc ismi, kullanc numaras ve kullancnn ait olduu alma grubunun numarasna dayandrlr. Normal artlar altnda, kullanclarn kendilerine ait kullanc numarasn ve alma grubu numarasn bilmelerine gerek yoktur. Kullanc ismi ve kullanc numaras arasndaki balant, iletim sistemi tarafndan otomatik olarak salanr. Dosya Yaratmak Dosya yaratmann birok yntemi vardr: Grafik kullanc arabirimini kullanarak balatacanz herhangi bir uygulama programyla, Terminal veya konsoldan balatacanz herhangi bir uygulama program ya da LINUX komutuyla, Yazdnz bir C programn derleyerek, Eski bir dosyann kopyasn kararak, CDden veya teypten diske dosya kopyalayarak, Program ktlarn ynlendirerek (I/O Redirection) (Sabrl olun! Ne anlama geldiini anlatacaz) dosya yaratabilirsiniz. Biz en basitinden balayalm... cat Komutu UNIXte ok sk kullanlan, ok ilevli bir komuttur. Bu ilevlerden biri dz yaz ieren dosyalarn ieriini grntlemektir. En basit kullanm formu: eklindedir. Bu formda kullanld zaman, dosya_ad adl dosyay ekrana, daha dorusu, LINUX diliyle standart kt birimine (Standard Output)
cat dosya_ad (catenate)
149
gnderir. Standart kt birimi genellikle ekran olduu iin, cat komutu bir dosyay ekrana listelemek iin kullanlr. Denemek iin,
cat /etc/issue
komutunu verebilirsiniz. Eee... Hani dosya yaratyorduk? formu ise biraz daha farkldr...
cat > yenidosya cat komutu dosya yaratmak iin kullanldnda verilmesi gereken komutun
Bu formda kullanldnda, cat komutu, standart girdi biriminden (klavyeden, Standard Input) ald bilgileri, yenidosya isimli bir dosyaya ynlendirecektir. (Bir baka deyile kopyalayacaktr.) imdi isterseniz dosya1 isimli ilk kk dosyanz yaratmak zere
komutunu veriniz, daha sonra imle (cursor) yeni satrn bana geldiinde, dosyann iinde yer almasn istediiniz satrlar giriniz. rnein,
Girdiiniz satrlar tamamlannca, imle satr bandayken Ctrl ve D tularna birlikte basarak (EOF: End of File karakteri) standart giri biriminizde dosyann sonuna geldiinizi belirtin. Dosya ad verirken dizin ad belirtmediiniz iin, dosya1 adl dosya alma dizininizde yaratlacaktr. Herhangi bir hata mesaj almadysanz, dosya problemsiz yaratld demektir. Eer dosya1in yaratlp yaratlmadn kontrol etmek isterseniz iki yntem nerebiliriz:
150
Birinci yntem, cat komutuyla dosya1 dosyasndaki satrlar ekrana grntlemek olabilir. kinci yntemse, ls -l komutuyla dosyann adn, uzunluunu, ne zaman yaratldn ve sahibinin kim olduunu grebilirsiniz. ki yntemi de deneyiniz.
Eer cat komutunu parametresiz olarak verirseniz, komut pek de anlaml
olmayan bir i yapmaya, standart giri biriminden okuyup standart k bibastnz her tu, standart k birimine (ekran) kopyalanacaktr. Yanllkla debileceiniz bu durumdan kurtulmak iin, imle satr bandayken Ctrl-D tuuna basnz. Bu hareketiniz kopyalama iini sona erdirecektir. Bu ilem, diskteki dosyalarnz hibir ekilde etkilemez.
Olmad deil mi?. (Permission denied: Bu ii yapmaya yetkiniz yok!) Nedeni ak... dosya1 isimli dosyay root (/) dizininin hemen altnda yarat-
151
maya altnz ve sizin bu dizine kayt yapmaya yetkiniz olmamas da ok doal. Bu komutu root kullanc olarak vermi olsaydnz byle bir mesajla karlamayacaktnz ve dosyanz yaratlacakt. cp Komutu (copy) Bu komutun ne ie yaradn sylemeye gerek olduunu sanmyoruz; ama nasl kullanld nemli... En basit formuyla,
cp dosya1 dosya1 isimli dosyay dosya2 isimli dosyaya kopyalayacaktr.
Eer dosya2 isimli dosya yoksa, yaratlacaktr. (Tabii bu dosyann yer alaca dizinde dosya yaratmaya yetkiniz varsa...) Eer bu isimde bir dosya Byle bir durumda, eski bir dosyann zerine kayt yapmak zere olduunuz konusunda uyarlmayabilirsiniz! Dikkatli olmanz gerekir. eskiden varsa, zerine kopyalama yaplacak ve eski ierii kaybolacaktr.
dosya2 (copy)
formunda kullann. -i parametresi (interactive), eski bir dosyann zerine kayt yaplmas durumunda kullancnn Overwrite? mesaj ile uyarlmasn ve ancak y yant verilirse devam edilmesini salar.
-i parametresini kullanmay unutmaktan korkuyorsanz, kitabn alias ko-
cp -i
mutu ile ilgili blmn okuyunuz. Bu blmde eitli UNIX komutlarn kalc olarak deitirmenin, hatta kendinize zg UNIX komutlar yaratmann yollarn bulacaksnz.
152
dosya_ad isimli dosyay, dizin_ad isimli dizinin altna kopyalar. sterseniz -i seeneini gene kullanabilirsiniz.
Bu formla ilk form arasnda grn olarak hibir fark yoktur. kinci parametreyle verilen isim bir dizine aitse, verdiiniz komut ikinci formda kabul edilir ve birinci dosya bu dizinin altna kopyalanr. kinci parametreyle belirtilen isimde bir dosya varsa, ya da bu isimde hibir ey (dosya veya dizin) yoksa; komut ilk formda kabul edilerek ilk parametredeki dosyann kopyas karlr. Bir baka form:
cp dosya1, dosya2 ve dosya3 isimli dosyalar, dizin_adi isimli dizinin altna kopyalar. sterseniz -i parametresini kullanabilirsiniz.
UNIX cp komutunda, kopyalamann nereden nereye yaplacan mutlaka aka belirtmelisiniz. Yani,
eklinde bir komut kullanamazsnz. Bu ekilde yazacanz bir komut, /dizin1in altndaki dosya1 isimli dosyay, alma dizinine kopyala anlamna gelmez; hatal daha dorusu eksik bir komuttur.
cp /dizin1/dosya1
Dizin Kopyalamak LINUXta dizin kopyalamak iin gene cp komutu kullanlr; ancak zel bir parametreyle birlikte... Dizin kopyalamak iin kullanlan form: cp -r dizin1 dizin2 eklindedir. Bu formda verilen kopyalama komutu; varsa, dizinlerin alt dizinlerinin de kopyalanmasn salar. (r: recursive; zyinelemeli) yoruz:
cp komutu zerine birka ileri dzey rnek vererek bu konuyu gemek isti-
153
Dosya ve Dizin Kopyalama rnekleri cp /etc/issue /tmp/issue2 /etc isimli dizinin altndaki issue isimli dosyay, /tmp isimli dizinin altna, adn issue2 olarak deitire/etc isimli dizinin altndaki issue isimli dosyay, /tmp isimli dizinin al-
cp /etc/issue /tmp
rek kopyalar.
cp /etc/issue .
cp -r /home/cayfer/dizin1 ..
arpc bir rnek: /etc dizinindeki issue isimli dosyay gunes isimli bir baka bilgisayardaki /home dizininin altndaki cayfer dizinine kopyalar. Bu komutu verebilmeniz iin komutun verildii bilgisayarla gunes isimli bilgisayarlarn bir bilgisayar a ile birbirlerine bal olmalar ve sizin ikisine de eriim hakknz olmas gerekmektedir. Bu ve buna benzer komutlara daha sonra ayrntl olarak deineceiz. Dizin Yaratmak UNIXte dizin yaratmak iin mkdir komutu kullanlr.
154
Formu basittir:
mkdir dizin mkdir eski_dizin/yeni_dizin
(make directory)
gibi... Doal olarak, yalnzca yetkiniz olan yerlerde dizin yaratabilirsiniz. alma Dizinini Deitirmek LINUX komutlarnda bir dosyadan sz ederken; rnein cat komutuyla bir dosyann iine bakmak zere dosyann adn verirken, dosyann yer ald dizini tam olarak belirtmezseniz, dosyann o andaki alma dizininizde (working directory, current directory) bulunduu varsaylr. alma dizinini deitirmek iin kullanlan komut,
cd yeni_alma_dizini (change directory)
Pek aklama gerektirmiyor... Bir stteki dizinin altndaki proje2 isimli dizine geer.
lar isimli dizine geer.
Kullanc ad omer olan kullancnn kiisel dizinine geer (omerin home dizini). Her nerede olursa olsun, komutu veren kullancya ait dizine geer. (Yuvaya dn!)
155
Dizinler arasnda gidip gelirken, zaman zaman kaybolmanz doaldr. zellikle hazr iaretiniz (prompt) alma dizininiz hakknda bilgi vermiyorsa... Kaybolduunuzda, pwd komutu ile (print working directory) o andaki alma dizininizin hangi dizin olduunu renebilirsiniz.
Dosya Silmek Artk diskte yer almasn istemediiniz dosyalar silmek iin kullanacanz komut,
rm dosyarm dosya1 dosya2 ... dosyaN (remove)
formlarndadr. Bir seferde (tek komutta), farkl dizinlerde yer alan dosyalar da silebilirsiniz.
rm /dizin1/dosya1 /baska_dizin/dosya2 ...
sorusu sorulacak ve sadece y yantn verdiiniz dosyalar silinecektir. Dizin Silmek Artk diskte yer almasn istemediiniz dizinleri, altlarndaki dosya ve alt dizinleriyle birlikte silmek iin kullanacanz komut,
rm rm -r -r dizin dizin1 dizin2 ... dizinN (remove)
156
rm
-r
/dizin1/alt_dizin1
/baska_dizin/dizin2 ...
Bu komut formunu kullandnzda, silinecek her dizin ve altlarndaki dosyalar/dizinler iin teker teker,
rm: remove /dizin1/alt_dizin1?
Bir isim deiiklii yapmak istediinizde, doal olarak, sz konusu dosya veya dizinin yer ald dizinde, yeni isimde bir dosya ya da dizin bulunmamaldr. Dosya / Dizin Yeri Deitirmek Bu i iin kullanacanz komut gene mv (move) komutudur.
mv eskiyeri/dosya yeniyeri/dosya (move)
Bir yer deiiklii yapmak istediinizde, doal olarak, sz konusu dosya veya dizinin yer alaca yeni dizinde, ayn isimde bir dosya ya da dizin bulunmamaldr. Buraya kadar temel birka LINUX komutundan, sk sk da yetkilerden sz ettik. Artk u yetki meselesini biraz daha amann zaman geldi...
157
benzeri satrlar grmekteydiniz. Dosya ve dizinlere eriim yetki tanmlar rwxr-xr-xe benzeyen kod dizileriyle gsterilir. Bu dokuz karakterden oluan dizi aslnda er karakterlik paradan olumaktadr. (Bu rnekte rwx, r-x ve r-x)
158
lk karakter dosyann sahibinin yetkilerini, ikinci l, dosyann sahibiyle ayn kullanc grubunda yer alan kullanclarn yetkilerini, son l ise dier kullanclarn bu dosya zerindeki yetkilerini tanmlamaktadr.
r w x r w x r w x
Sahibinin Yetkileri
Her l de ayn kalptadr. Her lnn ilk pozisyonunda bir r harfinin varl, ilgili kullancnn dosyay okuma yetkisinin bulunduunu gsterir. Bu pozisyonda bir eksi iareti varsa, sz konusu kullanc tipi iin okuma yetkisi olmad anlalr. Bu mantkla,
r: Okuma yetkisi (read access), w: Yazma yetkisi (write access),
(execute access).
Dosya Eriim Yetki Kodlar rnekleri Dosya Yetki Kodu rwxrwxrwx Anlam
Bu dosyay herkes okuyabilir, herkes bu dosyaya kayt yapabilir, dosyann adn deitirebilir; hatta dosyay silebilir. Eer bu bir program dosyasysa, herkes bu program altrabilir. Bu dosyay herkes okuyabilir ve program dosyasysa altrabilir; ancak sadece sahibi bu dosyada bir deiiklik yapabilir. Bu dosya zerinde sahibi istedii tm ilemleri yapabilir; ancak dosya, dier kullanclara tamamen kapaldr.
rwxr-xr-x
rwx------
159
rw-r--r--
Bu dosya bir program dosyas deil, nk hi kimsenin altrma (execute) yetkisi yok! Sahibi dosyay okuyup yazabilir ancak dier kullanclar sadece okuyabilir. Bu dosya da bir program dosyas deildir. Dosyann sahibi ve kendisiyle ayn grupta olan kullanclarn okuyup yazma yetkileri vardr, ancak dier kullanclarn hibir ekilde erimeleri mmkn deildir. Sahibi dnda kalan kullanclar, bu program dosyasn sadece altrabilirler.
rw-rw----
rwx--x--x
Dizinler iin de rwxr-xr-- yetki kodlar sz konusudur. Dosya yetki kodlarna ok benzemekle beraber, detaylarda baz nemli farkllklar vardr. Bu farklar daha sonra aklayacaz. Diskinizdeki dosya ve dizinlerin bazlarnn yetki kodlarnda r, w ve x
harflerinden farkl olarak s, S ve t gibi kodlar da grebilirsiniz. imdilik bunlara pek aldrmayn.
Bir kez daha zetlemek gerekirse: ls -l komutu verdiinizde alacanz dosya-dizin listesinde greceiniz yetki kalplar yan sayfadaki emaya gre yorumlanmaldr:
160
Dosya/dizin ayrm yapan iaret Sahibinin bu dosya/dizin zerindeki yetkileri Sahibi ile ayn grupta olanlarn yetkileri Dier kullanclarn yetkileri
Herkese tam yetkiye rnek Sahibi ve gruba okuma/yazma yetkisi Herkesin altrabilecei bir program
Doal olarak dosya ve dizinler zerindeki yetkileri deitirmek mmkndr; ancak eriim yetkilerini deitirmeye yetkili olmanz gerekmektedir. Bu yetki sadece dosyann veya dizinin sahibi ile root kullancsnda vardr. Dosya ve dizinlerin eriim yetkilerini deitirmek iin, chmod (change mode) komutu kullanlr. Bu komut iki deiik formda kullanlabilir. Kullanm greceli olarak kolay olan formu:
u g o a + = r w x s t
% chmod
dosya_adi
formudur.
161
komutu, adres isimli program dosyasna herkes iin altrma yetkisi verir. yetkisini kaldrr.
chmod go=rx adres adres isimli dosyann grup ve dierleri iin eriim yetkisini r-x kalbna eitler.
chmod komutunun bir dier formu da (ki LINUX ustalar tarafndan genel-
likle tercih edilen formdur), yetkilerin saysal olarak gsterildii formdur. Yetki tanm gruplar aadaki tabloya gre saysal birer deerle eletirilir: 4 2 1 4 2 1 4 2 1
Sahibi (Owner)
Dierleri (Others)
162
Diyelim ki adresler dosyasnn eriim yetkilerinin rwxr-xr-x olmasn istiyorsunuz. Bu yetki kalbn er er ayrlm olarak dnp (rwx r-x r-x), yukardaki tabloya gre verilmek istenen yetkilere karlk gelen saylar l gruplar halinde toplaynz ve elde edeceiniz tane sayy yan yana getirip haneli bir say elde ediniz. Bir baka deyile: 4 2 1 4 1 4 1
5 755
chmod komutunda bu ekilde elde edilen sayy kullanarak dosya ya da dizinlerinizin eriim yetkilerini tanmlayabilirsiniz; chmod 755 adresler
Bir chmod komutu ile birden fazla dosyann eriim yetkilerini ayn anda deitirebilirsiniz:
chmod 755 *.pl *cgi
Bir dizindeki tm alt dizin ve onlarn altndaki tm dosyalarn eriim yetkilerini tek harekette deitirmek istediinizde
chmod -R 755 dizin1
163
Bir dizin iin w (write) yetkiniz varsa: O dizindeki dosyalarn yerleiminde deiiklikler yapabilirsiniz. rnein, dosyalarn adn deitirebilirsiniz veya dosyalar silebilirsiniz. Eer bir dizinde w yetkiniz varsa, fakat o dizin iindeki bir dosyaya w yetkiniz yoksa, o dosyann ieriini deitiremezsiniz, silemezsiniz veya adn deitiremezsiniz. Bir dizin iin x (execute) yetkiniz varsa: alma dizinizi bu dizin olarak deitirebilirsiniz. (cd komutunu bu dizin iin kullanabilirsiniz). Bir dizini alma dizini olarak kullanmak iin r (read) yetkisi yeterli deildir; x yetkisi de gerekir. inde gizli bilgiler olmayan ama gene de dier kullanclar tarafndan kurcalanmasn istemediiniz dizinler iin en uygun yetki dzenlemesi rwxr-xr-x (755) olarak kabul edilir. Eer bir dizininizi sizden baka kimsenin kullanmasn ve iine bakmasn istemiyorsanz, chmod go-rwx dizin_ad komutuyla o dizinin eriim yetkilerini rwx------ (700) olarak ayarlayabilirsiniz. Bir dizin iin w (write) ve x (execute) yetkiniz varsa: O dizinde yer alan bir dosyaya yazma yetkiniz olmasa bile o dosyay silebilir veya adn deitirebilirsiniz. Evet! Bu birlikte yaamas zor bir zellik! O yzden deerli dosyalarnz ieren dizinler iin kendinizden baka kimse iin yazma yetkisi vermemelisiniz. Bir baka deyile bir dizin iin verilmi olabilecek rwxrw-rw- ya da rwx---rwx gibi bir yetki kalb ok tehlikelidir. Bir nedenle bu tip bir yetki kalb kullanmak zorunda kalrsanz o dizinin sticky bitini de ayarlamalsnz. Bunun nasl yaplacan renmek iin bir iki sayfa daha sabretmelisiniz. umask: Dosya ve Dizinlerin Varsaylan Eriim Yetkileri Bu blm u aamada size fazla kark gelirse hi dnmeden atlayabilirsiniz. Aklnzda kalmas gereken tek ey, bir LINUX sistemde yeni yaratlan dosya ve dizinler iin atanacak varsaylan (default) eriim yetkilerinin umask deeriyle belirleniyor olduudur.
umask komutunu parametresiz kullanrsanz, o anda geerli olan umask de-
erini renirsiniz.
164
022
Bir rnekle anlatmak daha kolay olacak galiba: imdi; 022 saysn 0 2 2 eklinde 3 ayr say olarak dnn ve her sayy er haneli ikilik saylara (binary) evirin.
0 2 2: 000 010 010 gibi...
Bu diziyi, rw- rw- rw- ve rwx rwx rwx ablon yetki kodlar ile alt alta yazn.
umask Deerinden Varsaylan Eriim Yetkilerinin Hesaplanmas Dosyalar in Dizinler in rwx rwx rwx 000 010 010 rwx r-x r-x
Bu dzenlemede 0larn altna gelen yetkilere dokunulmamakta, ancak 1lerin altna gelen yetkiler kaldrlmaktadr. Yani, umask deerinin 022 olarak atanmasndan sonra yeni yaratlan bir dosyann eriim yetkileri rw-r--r--; bir dizinin eriim yetkileriyse rwxrxr-x olarak belirlenecektir. Kararsz kullanclara nerimiz, umask deerini deitirmemeleri ve bylece varsaylan umask deeri olan 022yi kullanmalardr.
165
Bu program kullanldnda, ifre deiiklii, sahibi root olan /etc/shadow ya, LINUXun en nemli dosyalarndan birisi olduu iin ok iyi korunmakta ve sahibi (yani root) dnda kimsenin bu dosyaya ne okuma, ne de yazma yetkisi bulunmamaktadr. te suid kavram bu soruna bir zm gesuid biti set olduu iin, passwd komutunu veren kullanclar bu program geici olarak root yetkilerine sahip olacaklardr. alt srece ve /etc/shadow dosyasna eriim sz konusu olduunda tirmektedir. passwd programnn yer ald /usr/bin/passwd dosyasnn
suid programlar nemli birer emniyet gedii olabilirler. Bir programa suid zellii vermeden nce iki kez, hatta kez dnnz. Eer, suid zellii vermek istediiniz program, kullancya bir ekilde UNIX komutu verme olana salyorsa, bu programa kesinlikle suid zellii vermeyiniz. suid zelliine sahip dosyalar, ayrntl ls listelerinde bir s harfiyle gsterilir.
-r-s--x--x 2 root root 512 Feb 24 09:56 passwd* gibi.
komutunu kullanabilirsiniz. Bu komutu kullanabilmek iin ya dosyann sahibi ya da root olmanz gerekir.
166
Sticky Bit
Eski UNIX uyarlamalarnda, disklerin ortalama eriim srelerinin ve veri transfer hzlarnn dk olduu zamanlarda, program dosyalarnn disklerden bellee yklenebilmeleri iin geen sreler kullanclar rahatsz etmekteydi. Bu yzden, sk sk kullanlan komutlar oluturan programlarn disk dosyalarna sticky zellii verilirdi. Bu zellik sayesinde, bu tip programlar, bir kez bellee yklendikten sonra, programn almas sona erdiinde bile bellekten atlmazlard; bylece, komutun bir sonraki kullanm iin program bellekte hazr olurdu. sticky zelliine sahip dosyalar, ayrntl ls listelerinde bir t harfiyle gsterilir.
-rwxr-xr-t 2 root root 512 Feb 24 09:56 ls* gibi.
Artk, gnmz UNIXlerinde sticky bit kavram bu anlamda kullanlmamaktadr. Eer Dizinlere Eriim Yetkileri blmn dikkatli okuduysanz bakalar iin yazma ve okuma yetkisi vereceiniz bir dizinde yer alan dosyalarn tehlikede olduunu farketmi olmalsnz. LINUXta bu tehlikeyi ortadan kaldrmak iin sticky bit kullanlr. Bir dizinin sticky bitini kullanarak o dizine yazma-okuma yetkileri ne olursa olsun, sz konusu dosya zerindeki asl yetkilerin, dosyann kendi yetki kalb tarafndan belirlenmesini salayabilirsiniz. Bir dizinin sticky bitini devreye sokmak iin;
chmod +t dizin_adi
komutunu kullanabilirsiniz. Bu komutu kullanabilmek iin ya dizinin sahibi ya da root olmanz gerekir.
Yukardaki paragraf pek fazla bir ey ifade etmediyse hi dert etmeyin! Sticky Bit kavram bilgisayarnz LINUX altnda altrmanz iin mutlaka bilmeniz gereken kavramlardan biri deildir.
167
Bu komutu sadece root kullanabilir! Eriim yetkileriyle ilgili olarak, zaman zaman dosya ve dizinlerin sahiplerinin deitirilmesi gerekebilmektedir. rnein, root kullanc bir nedenle, bir kullanc dizininde bir dosya ya da dizin yaratrsa ve bu yeni yaratlan dosya/dizinin o kullanc tarafndan tam yetkiyle kullanlmasn isterse, bunu salamann yolu, bu yeni yaratlan dosya/dizinin sahibini o kullanc yapmaktr. Bir dizindeki tm alt dizin ve onlarn altndaki tm dosyalarn sahiplerini tek harekette deitirmek istediinizde;
chown -R cayfer dizin1
(change group)
168
Diyelim ki /home/cayfer/stok dosyasna pazarlama grubundaki tm kullanclarn eriebilmelerini istiyorsunuz. Ama dier kullanclarn bu dosyann ieriini grmelerini istemiyorsunuz. Bu durumda /home/cayfer/stok isimli dosyann eriim yetki kalb iin en uygun seimin
rw-r-----
olduu konusunda sanyoruz ayn grtesiniz. Bir de dosyann ait olduu grubu pazarlama yaparsanz i tamamdr. Bu ii de,
chgrp pazarlama /home/cayfer/stok
gibi bir komutla halledebilirsiniz. Ancak, bu komutun alabilmesi iin sistemde pazarlama isimli bir grup tanml olmaldr. Bir LINUX sistemde tanml olan gruplar /etc/group isimli bir dosyada saklanr. Bu dosyann sahibi root kullancdr. more /etc/group komutuyla sisteminizde tanml gruplar grebilirsiniz. Yeni bir grup eklenmesi gerektiinde root bu dosyay basit bir editrle ap istedii dzenlemeleri yapabilir. Bir dizindeki tm alt dizin ve onlarn altndaki tm dosyalarn gruplarn tek harekette deitirmek istediinizde;
chgrp -R pazarlama dizin1
169
UNIX Kabuk program (shell) kavramn iyi anlamanz ok nemlidir. Kabuk programlar, sistemde alan programlar saran, bu programlarn almas iin gereken ortam yaratan ve kucaklad programlarn iletim sistemiyle iletiim kurmasn salayan yazlmlardr. Sistemde alan neredeyse her program bir kabuk iinde alr. Kabuk programlarnn nemli ilevi vardr: 1. Yazlmlarn alma ortamn belirlemek. 2. Varsa, kullanclarla iletim sisteminin iletiimini salamak. (Bu cmle biraz garip kat galiba... Evet, kullancs olmayan programlar olabilir. rnein crond geri planda sessizce alan, sistem saatini ve crontab dosyalarn gzleyen, zaman geldiinde planlanm ileri balatan bir yazlmdr. Bu yazlmn herhangi bir kullancs olmad iin kullanc-iletim sistemi iletiimi anlaml deildir.) 3. Yazlmlarn almasn denetleyebilecek kodlarn yazlabilecei bir programlama dili ortam salamak. Byk olaslkla daha iyi tandnz Windows-MSDOS dnyasndan bir benzetme yapmak gerekirse, COMMAND.COM yazlm aslnda bir kabuk programdr. UNIX kabuk programlar da aynen bu ileri yapar. Ancak, UNIX iletim sistemi ok kullancl olduu iin her program iin ayr bir kabuk gerekir. nemli bir fark da, UNIX dnyasnda ok eitli kabuk programlar olmas ve kullanclarn kendi kabuk programlarn seebilmesidir. Nitekim, bir terminal penceresi atnzda, sizi, kullanc hesabnz alrken tanmlanm olan kabuk program karlayacaktr. LINUX dnyasnn en popler kabuk program bash olduu iin eer deitirmediyseniz sisteme yaptnz her balant iin balatlacak kabuk bash olacaktr. Eer bir nedenle bash kabuk programn beenmiyorsanz, ya da teknik bir nedenle rnein csh kabuuna gereksinim duyuyorsanz, bash kabuunuz iinde /bin/csh komutunu vererek C-Shell kabuuna brnebilirsiniz.
170
UNIX Kabuk programlarnn hepsi son derece gl bir programlama dili desteine sahiptir. O kadar ki, sadece kabuk komutlar kullanarak bir bordro program bile yazmak olasdr. Bir UNIX sisteme telnet ile balandzda ya da X ekrannzda yeni bir terminal penceresi atnzda o terminal iin hemen bir kabuk balatlacak ve balatlan bu kabuk program size bir hazr iareti gsterecektir. Terminal pencerenizde verdiiniz tm LINUX komut satrlarn bu kabuk irdeleyecek, verdiiniz komuta uygun program diskten bellee ykleyecek ve varsa, verdiiniz parametreleri bu programa aktaracaktr. imdi kullancnn bir terminalden yazd komutun bash tarafndan irdelenmesi ve yerine yerine getirilmesi aamalarn bir rnekle aklamaya alalm:
cp ./a* /home/ugur
komutu verilip de Return tuuna bastnzda, komut satr nce paralanarak bileenlerine ayrlacaktr. Paralama iin boluk, virgl gibi noktalama iaretleri ve tab karakterleri ayra olarak kullanlacaktr. Satrbandaki ilk bileenin bir komut ad olduu; komut satrnn geri kalannn da bu komutun parametreleri olduu kabul edilerek komut satr zmlenmeye allacaktr.
cp
a* /home/ugur
Komut
Parametreler
Kabuk program a* parametresini ayrrken * (asterisk) karakterini grnce yle bir duralayp alma dizininde yer alan ve ad a harfi ile balayan tm dosya ve dizinlerin isimlerini bulacak ve sanki herbiri klavyeden yazlmasna komut satrna yerletirecektir. Sonra da /home/ugur karakterlerini son parametre olarak deerlendirecektir. Sonuta, ilk verdiiniz komut,
cp abc aktifler acik.doc /home/ugur
ekline dnecektir. (Tabii ki alma dizininizde abc, aktifler ve acik.doc isimli dosyalar olduunu varsayarsak.)
171
Sonra da, cp komutuna ait program dosyas PATH (path de olabilir) isimli kabuk deikeninde (shell variable) yer alan dizinlerde aranacak ve bulunursa bellee yklenerek altrlacaktr. (PATH ve path kabuk deikenleri daha sonra anlatlacaktr.) Komut satrnn geri kalan ksmysa, yani abc aktifler acik.doc /home/ugur, cp komutuna parametre olarak gnderilecektir.
Tm kabuk programlarnda dikkat edilmesi gereken nemli bir nokta var: Dosya isim kalplar (wildcards) kullanlan komutlarda, bu kalplarn almas ilemi komut altrlmadan nce yaplr ve bu alm halleri, ilgili komut programna parametre olarak aktarlr. Bir baka deyile; ltrlmadan nce kabuk tarafndan alabildii kadar alr; ondan sonra komut altrlarak bu alm dosya isimleri parametre olarak gnderilir. cp *dat /tmp gibi bir komut verdiinizde *dat parametresi komut a-
Yani, sizin *dat ve /tmp diye iki parametre ile altrmay dnerek girdiiniz bir komut, alma dizininizdeki dosyalar arasnda ka tane ad dat ile biten dosya bulunduuna bal olarak deiebilecek sayda pa-
Dosya isim kalbn, altrmak istediiniz programa kabuk tarafndan dokunulmadan gndermek istediinizde (find komutunda bu konuyu daha ayrntl olarak anlatacaz) dosya kalbnz trnaklar arasna yerletirmelisiniz.
komut *dat /tmp gibi.
172
cp cp cp
gibi... Kabuk programlarnda dosya kalplarnda kullanlabilecek joker (wilcard) karakterleri zet olarak unlardr:
Her trl karaktere uyar. Tm dosyalar seen bir kalp kullanmanz gerekirse tek bir * karakteri yeterli olacaktr. MSDOStaki gibi *.* yazarsanz, adnn iinde en az bir nokta olan dosyalar semi olursunuz; yani adnn iinde nokta olmayan dosyalar sememi olursunuz! Herhangi bir tek karaktere uyar.
a veya b veya c karakterlerinden birine uyar.
[a,b,c] [0-9]
rnekler cat kitap[1-3] > hepsi kitap1, kitap2 ve kitap3 dosyalarn pepee ekleyerek hepsi isimli dos-
yaya kopyalar.
Adnn son karakterleri .o veya .sh olan tm dosyalarn eriim yetkilerini herkes iin --x olarak deitirir. Yukardakinin ayndr. Ad iki karakterden oluan dosyalar /tmp dizinine kopyalar.
173
cp * /home/ayfer/sakla
komutu, alma dizinindeki, ad nokta ile balayanlar dndaki tm dosyalar /home/ayfer/sakla dizinine kopyalayacaktr. Eer ad nokta ile balayan dosyalar da (.login, .bashrc gibi) kopyalamak istiyorsanz,
cp .* * /home/ayfer/sakla
veya
Ortam Deikenleri
Bir LINUX bilgisayarna login ettiinizde, bir shell (kabuk) alma seans balatm olursunuz. Bu seans boyunca kullanacanz birtakm programlar almalarn dzenleyen baz deikenlerin (kabuk deikenleri) belirli deerlere sahip olmasn isteyebilirler. rnein, crontab program (sisteminizde belirli aralklarla, rnein her Pazartesi saat 23:30da, altrlmasn istediiniz programlar dzenler) EDITOR isimli bir kabuk deikeninde (ortam deikeni, shell deikeni) kullanaca editor grmek isteyecektir. Benzeri ekilde bash kabuu PATH isimli bir ortam deikeninde tam yeri belirtilmeyen komutlara ilikin program dosyalarn aramas gereken dizinlerin sral listesini bulmak isteyecektir. Geleneksel olarak ortam deikenlerinin isimleri byk harflerle yazlr. Ortam deikeni yaratma, deer verme, deer deitirme iin kullanlan komutlar kullandnz kabua gre deiecektir. bash kabuunda bir ortam deikeni yaratmak ya da deerini deitirmek iin komut satrna
DEGISKEN=2003
veya
174
export DEGISKEN=2003
gibi bir komut verebilirsiniz. O andan itibaren terminalden vereceiniz tm komutlara ait program dosyalar ncelikle /bin dizininde; orada bulunamazsa /usr/bin dizininde; orada da bulunamazsa /usr/local/bin dizininde; orada da bulunamazsa alsma dizininizde (sondaki noktaya dikkat) aranacaktr. Sz konusu program dosyas ilk olarak bu dizinlerden hangisinde bulunursa o program dosyas bellee yklenerek altrlacaktr. Eer program dosyas bu dizinlerden hibirinde bulunamazsa;
bash: xyz: command not found
hata mesajyla dllendirilirsiniz. Eer PATH deikenine yeni bir dizin ekleme gereksinimini duyarsanz; gibi bir komutla eski PATH deikeninin deerine /usr/local/prog dizinini ekleyebilirsiniz. Dikkat ettiyseniz bir ortam deikeninin deerini kullanmanz gerektiinde, o ortam deikeninin adnn bana bir $ iareti koymanz gerekiyor.
PATH=$PATH:/usr/local/prog
echo $SHELL
175
TERM: Kullandnz terminalin tipini belirler. En ok kullanlan TERM deerleri xterm ve vt100dr.
Uygulama programlarnn imlecin ekrandaki yerini denetleyebilmesi, ekrana yazlacak metinlerin renk, aydnlk olma, alt izgili grntlenme gibi zelliklerini kullanabilmesi iin kullandnz terminalin tipini bilmesi gerekir. Unutmayn, LINUX ok kullancl bir iletim sistemidir ve kullanclarn bir LINUX bilgisayar kullanabilmek iin onun nne gelip oturmas gerekmez. Uzaktan, kimbilir hangi yazlm ve/veya donanm kullanarak balanabilen kullanclarn ekran tiplerini LINUXa bildirmeleri gerekmektedir.
TERM ortam deikeni ite bu amala kullanlr. X-Window ortamnda da alan terminal programlar iin bu TERM deikenine genellikle xterm
bi platformlarda alan terminal programlaryla bir LINUX bilgisayara i grecektir. Makul terminallerin hepsi 20 yl ncesinin mkemmel terlar gibi davranacaktr.
balandnzda ise genellikle TERM deikenine vt100 deerini vermek minali olarak tarihe gemi olan DEC marka VT100 modeli terminal cihaz-
Herhangi bir anda alma ortamnz iin tanml olan ortam deikenlerini ve deerlerini grmek isterseniz
env
komutunu kullanabilirsiniz.
gibi bir komutun etkisi yalnzca o terminal iinde almakta olan kabuk kopyasnda grlecektir ve o kabuk program sona erdirildiinde (rnein pencere kapatldnda) sz konusu ortam deikeni ayarlar kaybolacaktr. Bu deiikliklerin kalc olmasn ve bundan sonra sisteme her balandnzda ve her atnz terminal penceresinde geerli olmasn istiyorsanz bunu bir yerlere kaydetmelisiniz.
176
Unutmayn! Bir terminal penceresi atnzda o pencere iin yeni bir kabuk program balatlr. Her bir kabuk da sanki siz bilgisayara yeni balanmsnz gibi davranr. Yaratacanz veya yeni deer vereceiniz ortam deikenlerinin her terminal balantnzda karnza kmasn istiyorsanz ortam deikeni atama deyimini kiisel dizininizdeki .bashrc dosyasna eknda otomatik olarak altrlr. lemeniz gerekir. Bu dosyadaki bash komutlar her bash kabuu balatld-
bash kabuk program her almaya baladnda, nce kendisini altran kullancnn kiisel dizinindeki .bashrc isimli dosyann iindeki kabuk komutlarn altrr. Bu i, kabuk program her baladnda yaplr. Atnz her pencere yeni bir kabuun altrlmasna neden olduu iin kiisel dizininizdeki .bashrc dosyasnn iindeki komutlar her terminal penceresi atnzda altrlacaktr. bash kabuk program bir ekilde durdurulduunda (rnein penceresi kapatldnda ya da exit komutu verildiinde) o kullancnn kiisel dizinindeki (varsa) .bash_logout isimli dosyada yer alan komutlar altrr. Her kabuk programnn kendine gre balang dosyalar vardr. rnein csh iin bu dosyalar .cshrc, ksh iin .kshrc gibi isimler alrlar.
Bir kabuk programnn almaya son vermesi iin ilgili pencere kapatlabilir; kullanc o kabuk programna exit veya logout komutunu verebilir. Kullanc kabuk programnn komut satr yorumlaycsna dosya sonuna gelindii anlamnda ^D (Ctrl-D) karakteri gnderebilir; ya da bir baka terminalde alan yetkili birisi (ki genellikle ancak root kullanc veya iin sahibidir) kill komutuyla kabuk programna kendini ldrmesi emrini gnderebilir. Bu kabuk balang dosyalar ii size biraz kark geldiyse hi dert etmeyin. LINUX bilgisayarnz standart iler iin kullandnz srece bu dosyalara bakmanz bile gerekmeyecektir. Ama gene de merak ettiyseniz kiisel dizininize geip (cd komutu parametresiz olarak vermeniz bunu salayacaktr)
cat .bashrc
komutunu veriniz.
177
Aklnzn bir kesinde bulunsun; Windows ve MS-DOS iletim sistemlerine benzetmek gerekirse bu kabuk balang dosyalar kiisel StartUp veya AUTOEXEC.BAT dosyalar gibidir; sadece ok daha gelimi yeteneklerle donatlmlardr.
Sistem yneticisi iseniz genellikle bashrc balang dosyasnda yapacanz bir deiikliin tm kullanclar iin geerli olmasn istersiniz. Her kullancnn kiisel dizinindeki .bashrc dosyalarn deitirmek ya da deitirmelerini istemek yerine sistemin her kullanc iin otomatik olarak altraca komutlar ieren /etc/bashrc dosyasnda gerekli deiiklikleri yapmak yeterli olacaktr.
Kabuk program sona erdiinde altrlan kiisel .bash_logout dosyasna ise gereksiz dosyalar temizleyen komutlar yerletirilebilir. Tm kullanclar iin geerli olan bir bash_logout dosyas ise gene /etc dizininde yer alabilir.
bash History
komutu saklar ve ekranda hazr iareti varken klavyenizde her yukar ok tuuna bastnzda bir nce verdiiniz komut getirilir. bash history zellikle son komutu tekrarlamak gerektiinde ok kullanldr. Diyelim ki olduka uzun bir komutu yanl yazp gnderdiniz:
178
co /home/cayfer/tez/arastirma/bulgular1 /tmp/cayfer/gecici
Yukar ok tuuna basnca son komut olan bu hatal komut ekrana gelecektir. Sola okla da en bataki o harfinin sana gelip nce backspace tuu, sonrada hatay dzeltmek zere p tuuna basp komutu tekrar gnderebilirsiniz. En son ka komutun saklanaca HISTSIZE ortam deikeninde belirtilir. Varsaylan deer son 1000 satrn saklanaca anlamnda 1000dir. Bunu deitirmek istediinizde kiisel dizininizdeki .bashrc dosyasndaki ilgili satr deitirmeniz ya da dosyann iine
HISTSIZE=750
gibi bir satr eklemeniz yeterli olacaktr. Bir kullancnn son kulland 1000 (veya HISTSIZE deikeninde belirtildii kadar) komut o kullancnn kiisel dizinindeki .bash_history isimli dosyada saklanr.
! Arac
Daha nce verilmi komutlar arasnda, c harfi ile balayan en son komutu tekrarlamak iin !c komutunu kullanabilirsiniz. Daha kesin tanmlamalar gerekirse, !ca gibi daha uzun diziler kullanabilirsiniz. Son vermi olduunuz 1000 komutu grmek iin history komutunu kullanabilirsiniz. Bu komutu verdiinizde, daha nce vermi olduunuz komutlar, birer sra numarasyla ekrana listelenir. Bu listedeki komutlardan herhangi birini tekrarlamak istediinizde ! iareti ve hemen yanna tekrarlamak istediiniz komutun sra numarasn yazp Enter tuuna basmanz yeterlidir. (!14 gibi..). bash kabuu, verilen komutlarn tamamn deil; $HISTSIZE ortam deikeninin deeri kadar komutu saklar. $HISTSIZE ortam deikeninin varsaylan deeri 400dr.
179
Birok komutu yazarken gerek komut adn, gerekse komutun parametresi olabilecek dosya isimlerinin tamamn klavyede yazmanz gerekmez. rnein, OpenOffice paketindeki kelime ilemci olan oowriter programn komut satrndan balatmak istediinizde klavyeden oowriter szcnn tamamn yazmanza gerek yoktur. dizinlerde ad oo ile balayan altrlabilir program dosyalar aranr. Bu oo yazp <tab> tuuna bastnzda PATH ortam deikeninizde belirtilmi
art salayan tek bir dosya bulunursa sanki siz klavyeden oowriter yazmsnz gibi komut otomatik tamamlanr. Yok eer ad oo ile balayan birden fazla altrlabilir program varsa, karnza bu kalba uyan dosyalarn bir listesi karlr. Bir harf daha; rnein w ekleyip gene <tab> tuu-
balayan tek komut byk olaslkla oowriter olaca iin komutunuz bash tarafndan tamamlanacaktr. Ayn kolayl dosya isimlerinde de kullanabilirsiniz. rnein:
cp
prozgui-3.04.source.tar.gz <Tab>
sil.gz
yazmanz gerektiinde klavyeden cp pr yazdktan sonra <tab> tuuna ve ad bu kalba uyan dosyann ad otomatik olarak tamamlanacaktr. bastnzda alma dizininizde ad pr ile balayan dosyalar taranacak
alias dir=ls komutu, MS-DOS alkanlklarndan kolay vazgeemeyen kullanclar iin yararl olabilir. Bu komutu verdiinizde, artk, dosya listesi
180
Ayn mantkla cp komutunun -i parametresiyle kullanlan eklini copy diye yeni bir komut olarak tanmlayabilirsiniz. ok ilgin bir ekilde klavyesi hzl olan kullanclar ska more yerine mroe yazarlar. Tularn yerleiminden olsa gerek... Siz de bu hatay ok yapanlardansanz olduka sk kullanlan more komutunu yanl yazma olaslna kar nceden nlem alp, eanlam more olan bir mroe komutu tanmlayabilirsiniz. Artk klavyeden more da yazsanz, mroe da yazsanz ayn komut alacaktr.
alias komutunu kullanarak kendi komutlarnz yaratmak ya da mevcut
almak iin isterseniz dir isterseniz ls komutunu kullanabilirsiniz. dir ve ls komutlar artk eanlaml olur.
komutlarn sizin istediiniz parametrelerle almasn istediinizde gerekli alias komutlarn kiisel dizininizdeki .bashrc dosyasnn sonuna ekleyebilirsiniz. Eer bu alias tanmlarnn tm kullanclar iin geerli olmasn istiyorsanz bu eklemeleri /etc/bashrc dosyasna yapmalsnz. imdi sorduunuzu duyar gibiyiz: Peki! Bir dosyada nasl deiiklik yapacam? Bunun yant da bir sonraki blmde...
181
182
04
LINUX iletim sistemiyle birlikte kullanlabilecek pek ok editr vardr. Bunlar KDE, GNOME gibi masa st yneticileri altnda kullanlabilecek grafik arabirimli editrler ve grafik olmayan ekranlarda kullanlabilecek konsol editrleridir. KDE ile beraber yklenen dosya editrlerini KDE Mens More Applications Editors altnda bulabilirsiniz.
183
Bunlar deneyip zevkinize uygun birini seebilirsiniz. Bu mendeki grafik kullanc arabirimli (GUI) editrlerin kullanm son derece kolaydr.
Konsol editrlerine gelince durum biraz deiir. Bunlar grafik ekranlar daha bilgisayar dnyasnda ortaya kmadan yazlm editrler olup her trl bilgisayar terminalinde alacak ekilde gelitirilmitir. imdi diyeceksiniz ki grafik ekran olmayan bilgisayar m kald ki? Kald tabii.. Kalmaya da devam edecek gibi grnyor. Niye bilgisayar denince yalnzca PC aklnza geliyor? Hi ekran olmayan bilgisayarlar bile var. Bu nedenle konsol editrleri hala profesyonel bilgisayarclarn; daha dorusu UNIXcilerin eli ayadr. Konsol editrleri arasnda en ok sevilenler pico, emacs ve vi editrleridir. Bunlar arasnda tm UNIX uyarlamalarnda standart olan vi editrdr. Bu nedenle UNIX dnyasna admn atan herkesin vi renmesi olduka nemlidir.
184
vi bir editrdr! Yalnzca basit metin dosyalar zerinde kullanldnda ie yarar. Font, kaln yaz, italik yaz gibi kavramlar vida yoktur. Yani mektuplarnz, hele tekliflerinizi ve raporlarnz vi ile yazmaya almak anlamsz olacaktr. Bu gibi iler iin OpenOffice, KOffice gibi yazlmlar daha uygundur.
Eer kelime ilemci gereksiniminiz bilimsel makalelere ynelik ve zellikle matematiksel sembollerle doluysa o zaman TeX, LaTeX, Lyx lsn renmenizi neririz. Dzleme izilebilecek ve yazlabilecek her trl dkuman uluslararas standartlarda gelitirebilirsiniz.
ca bir kitap yazmak gerekir. nce temel editr ilemlerinden balayalm isterseniz...
vi ile ilk karlaan kullanclar genellikle bu ne ya.. diye tepki gsteriyorlar. Bunlar arasnda sabrl olanlar bir sre sonra vi kullanmayanlara hayretle bakmaya balyorlar. ok gl bir editr olmasna ramen bu kitapta vi hakkndaki hereyi anlatmayacaz. Zaten pek anlatamayz da.. vi iin ayr-
185
gibi bir ekran gelecektir. Ekrann sol alt tarafnda dzenlenen (edit edilen) dosyann ad, yalnzca okuma iin ([readonly]) ald, satr says ve ka byte uzunluunda olduu belirecektir. Bu rnekte /etc/bashrc dosyasnn yalnzca okuma iin almasnn nedeni root kullanc dndakilerin bu dosya zerinde yazma yetkisi olmamasndandr.
186
Eer vi komutuna parametre olarak verdiiniz dosya diskte yoksa, yeni ve bo bir dosya yaratlarak karnza
ekran gelecektir. Bu ekrandaki ~ iaretleri, bo satrlar ile olmayan satrlar karmasn diye grntlenir.
vi Editrnn Durumlar
1. Ekleme durumu 2. Komut durumu
Ekleme Durumunda, klavyeden bastnz herey imlecin bulunduu noktadan balayarak dosyaya eklenecektir. Komut Durumunda klavyeden bastnz herey bir vi komutu olarak deerlendirilecektir.
vi editrn ekleme durumuna sokmak iin i tuuna (kk i: insert) bir kez basmanz yeterlidir.
Ekleme durumundan komut durumuna gemek iin ise Esc tuuna bir kez basmanz gerekmektedir. Esc tuuna birden fazla kez basmanz bir ey deitirmeyecektir. Yani komut durumundayken Esc tuuna basarsanz gene komut durumunda kalrsnz.
187
vi ekleme durumundayken (insert mode) ekrann sol alt tarafnda -- INSERT -- iaretini grrsnz.
Sa tarafta ise dosyann kanc satrnda ve o satrn hangi yatay pozisyonunda olduunuzu izleyebilirsiniz. Ekleme Durumu Dosyanz ekleme durumundayken (bu duruma gemek iin bir kez i tuuna basmalsnz) birka satr veri giriniz. Satrlarn sonuna geldiinizde Enter tuuyla satr ba yapabilirsiniz.
Komut Durumu Dosyay kaydetmek iin yani editre kaydet (write) komutunu verebilmek iin ekleme durumundan (hatrlarsanz en bata bir kk i harfi ile bu duruma gemitiniz) kp komut durumuna gemeniz gerekecektir. Ekleme durumundan kmak iin bir kez Esc tuuna basmanz yeterlidir. (Fazla Esc basmann bir zarar olmaz. Sisteminiz her fazla bas iin bir kez ddk alacaktr; o kadar.) Ekranda komut durumunda bulunduunuza ilikin bir iaret aramayn. Yoktur! Ekleme durumunda olmamanz komut durumunda olduunuzu gsterir. Ancak, hangi durumda bulunduunuzdan emin olmak istiyorsanz, bir kez Esc tuuna basp komut durumunda olmay garantileyebilirsiniz.
188
Tekrar deneme almanza dnersek; son bastnz Esc tuundan tr komut durumunda bulunduunuzu biliyorsunuz. Diske yazma komutu vermek amacyla : (iki nokta st ste) tuuna bastnzda, imle ekrann en alt sol kesine inecek, bastnz : karakterini burada gsterecek ve komut bekleyecektir. Komut olarak w harfini girip [w (write) komutu] Enter tuuna basnz.
komutunu verebilirsiniz. Dosyada henz kaydedilmemi deiiklikler varsa vi sizi uyaracaktr. Yaptnz deiikliklerden vazgetiyseniz, dosyay kaydetmeden kmak iin q! komutunu vermelisiniz. za dnm olmalsnz. imdi dosya isimlerini listeleme komutuyla bu yeni yarattnz dosyann adn grebilmelisiniz. (pucu: ls komutu.)
Dosya Aarken Karlaabileceiniz Sorunlar Diskte bulunduunu bildiiniz bir dosya ad vermi olmanza ramen, ekrann en altnda [New File] mesajn grebilirsiniz. Bu durumda byk olaslkla ya dosyann adn yanl yazmsnzdr ya da o dosya belirttiiniz dizin-
189
de deildir. Eer dizin belirtmediyseniz o dosya alma dizininizde de olmayabilir. Bir baka olaslk da, dosya adn yazarken byk harf-kk harf konusuna dikkat etmemi olabilirsiniz; hatrlarsanz LINUX iletim sisteminde deneme ile Deneme farkl dosya adlardr! Aadaki mesajlardan birini grrseniz:
[Read Only] File is Read only Permission denied
veya veya
sz konusu dosyaya ya da bulunduu dizine yazma yetkiniz yok demektir. Normal olarak yapabileceiniz bir ey olmadndan vi seansn bir an nce durdurup, dosyann sahibi ile grmeniz ya da uygun bir kullanc kimliine brnmeniz gerekmektedir.
File System full mesajn grrseniz, altnz disk ya da kotanz dol-
UNIX iletim sisteminde, kullanclarn disklerde kullanabilecekleri alanlarn toplam bykln snrlama (kota koyma) olana vardr. Byle bir snrlamann olup olmayacana, olacaksa her kullanc iin kotann ka megabyte olacana sistem yneticisi karar verir.
Kullanclar kotalarn doldurduklarnda bir mesajla uyarlr ve genellikle kotalarn biraz amalarna izin verilir; ancak birka gn iinde tekrar kota limitlerinin altna inmezlerse, sistem daha fazla yeni dosya yaratmalarna veya eski dosyalarn bytmelerine izin vermeyecektir.
vi editr, terminal penceresinin tamamn kullanan tam-ekran (full screen)
bir editrdr. Bu nedenle temel ilevler iin en iyi hakim olunmas gereken komutlar, imleci ekranda dolatrma komutlardr.
mle Dolatrma Komutlar Bu komutlarn verilmesi srasnda, editr komut konumunda bulunmaldr. (Yani editr yeni balatlm olmal veya ekleme konumundan kmak iin Esc tuuna baslm olmaldr. Hatrlayacaksnz, fazla Esc basmann bir zarar yoktu; dolaysyla bulunduunuz konumla ilgili bir pheniz varsa, komut durumuna gemek iin hi ekinmeden Esc tuuna basnz.)
190
Normal koullarda imleci ekranda dolatrmak iin klavyedeki ok tularn kullanabilirsiniz. Ama UNIX dnyasnda ne zaman nasl bir terminal veya terminal emlasyon program kullanacanz belli olmaz; bu nedenle ok tular bulunmayan bir terminali kullanrken gerekebilecek imle dolatrma komutlarndan sz etmekte yarar var:
vi mle Ynlendirme Komutlar Tu mle Hareket Yn
Oklar
h j k l
... Sola bir karakter. Aa bir satr. Yukar bir satr. Saa bir karakter. (Kk L harfi)
Tabii bu arada Return (veya Enter) tuu ile BackSpace tuunun da srasyla satrba ve bir geri anlamna geldiini hatrlatmakta fayda var. Birok vi komutu gibi, imle hareket komutlarnn da bana bir say koyarak, bu say kadar saa, sola, aa ve yukar hareket salanabilir.
3h 2k
Birerli admlar dnda hareket salayan ve ok kullanlan imle dolatrma komutlarndan bazlarysa:
0 $ w b
(Sfr) mlecin bulunduu satrn bana. mlecin bulunduu satrn sonuna. Bir sonraki szcn bana. Szcn bana. (Ya da bir nceki szcn bana)
191
Ekleme Komutlar Editr kullanrken en ok yaplan ilerden biri, eski bir metnin bana, sonuna ve araya satr/kelime/harf eklemektir. vi editrnde ekleme konumuna gemenin yntemlerinden birini (i komutu) daha nce belirtmitik. Yine de tekrarlamak istiyoruz:
i
mlecin, zerinde bulunduu karakterin hemen solundan balayarak, Esc tuuna basncaya kadar baslan her karakteri metne ekler. Varsa, eski metin saa doru itelenir.
mlecin, zerinde bulunduu karakterin hemen sandan balayarak, Esc tuuna basncaya kadar, baslan her karakteri metne ekler. Varsa, eski metin saa doru itelenir. mlecin, zerinde bulunduu satrn sonundan balayarak, Esc tuuna basncaya kadar, baslan her karakteri metne ekler.
Yaz Silmek Daha nce yazlm metin paralarn silmek iin kullanlan komutlar aadaki tabloda rnekleriyle zetlenmi olarak bulacaksnz:
Metin Silme Komutlar x
mlecin zerinde bulunduu tek karakteri siler. mlecin zerinde bulunduu karakter dahil, saa doru 3 karakter siler. mlecin bulunduu yerden kelime sonuna kadar siler. Eer imle szcn bandaysa, szc siler.
3x dw
192
2dw dd
mlecin bulunduu yerden balayarak 2 szck siler. mlecin bulunduu satr siler. mlecin bulunduu satr dahil, aa doru iki satr siler. mlecin bulunduu yerden satr sonuna kadar siler. (d$ komutuna edeerdir)
2dd D
d$
Yanllkla Silerseniz... Eer hatanz hemen fark ederseniz, u komutuyla (undo) son silme ilemini geri dndrebilirsiniz. Undo aslnda yalnzca son silme ilemini deil, son deiiklii geri dndrr. Undo komutunu U harfiyle (byk U) verdiinizde en son deiiklik yaplm olan satrdaki tm deiikliklerin hepsi birden geri alnr. Metin Bloklarnn Yerini Deitirmek vi editryle metin bloklarnn yerini deitirmek istediinizde kullanacanz yntem kes-yaptr yntemidir. Yerini deitireceiniz metin blounu nce bulunduu yerden, uygun bir komutla (rnein tek satr iin dd komutu gibi) silmeli (kesme ilemi), daha sonra p komutuyla (put) yeni yerine yaptrmalsnz. Eer yapmak istediiniz ilem bir metin blounu silmekse, kesme ileminden sonra baka bir yere yaptrmamanz yeterlidir. Bu ilemleri bir rnekle anlatmak daha kolay olacak: Aadaki rnek metindeki, - Ryalarnz szcyle balayan nc satr en st satra tamak istediinizi varsayalm. nce imleci bu satrn zerine getirmelisiniz. (dd komutuna hazrlk.)
193
lee alnacaktr.
Daha sonra imleci en st satra karp ardndan keserek bellee aldnz satr imlecin bulunduu satrn stne P (byk p) komutuyla yaptrabilirsiniz. Kk p ise bellekteki satr imlecin bulunduu satrn altna yaptrr.
194
Dikkat ederseniz kk bir bozukluk oldu. Yaznn estetik btnln korumak iin Ryalarnz... satrn altndaki bo satrla birlikte tamak gerekiyordu.
dd komutuyla tek satr kesmek yerine 2dd komutuyla iki satr kesseydik ve P ile bu iki satr yaptrsaydk byle olmayacakt. Neyse ok nemli deil. Oldu artk. imdi en kolay birinci satrn altna bir bo satr eklemek ve 0, 1, ... satrndan sonraki ift bo satrdan birini silmek.
Bunu yapmak iin imle birinci satrn stndeyken o (kk o) (open line) komutunu deneyin. mlecin altna yeni bir bo satr eklenecektir. Tekrar Esc tuuyla ekleme durumundan kn. Sonra imleci birini silmek istediiniz ift bo satrdan birinin zerine gtrp dd ile bir satr kesin ama hibir yere yaptrmayn. Oldu ite!
195
sterseniz imdi de vi komutlarnn birarada kullanlmasyla elde edilebilecek ilgin bir etkiyi gsterelim: Metnin herhangi bir yerinde, x ve p komutlarn pepee veya birarada kullanrsanz (xp) imlecin altndaki karakterle sandaki karakterin yerini deitirmi olursunuz. Ltfen deneyiniz! Metin Bloklarn Kopyalamak
vi editr ile metin bloklarn kopyalamak istediinizde kullanacanz yn-
tem kopyala-yaptr yntemidir. Kopyalayacanz metin blounu nce bulunduu yerde, y (yank) komutuyla (tm satr iin yy komutu veya Y gibi) geici bellee aktarmal ve daha sonra kopyalanaca yere p komutu (put) ile yaptrmalsnz.
Bu ilemleri de bir rnekle anlatmak daha kolay olacak galiba... Yukardaki rnek metindeki, Ryalarnz... szcyle ile balayan ilk satr, biraz dikkatli... szckleriyle ile balayan satrn altna kopyalamak istediinizi varsayalm: nce imleci ilk satrn zerine getirin. Sonra yy komutuyla bu satr geici bellek sahasna aln. Ekranda bir deiiklik olmayacaktr. Daha sonra imleci biraz dikkatli... satrna indirerek, p (kk p) komutu ile yeni yerine yaptrn.
196
Son Komutu Tekrarlamak Bir nedenle, son deiiklik komutunuzu baka yerlerde de tekrarlamanz gerekirse, . (nokta) komutu ile bunu yapabilirsiniz. Metin Eklemenin / Deitirmenin Birka Deiik Yolu Komut durumundayken baslacak tularla baz nemli metin deitirme ilevleri yerine getirilebilir. Bunlar arasnda ska kullanlanlar aadaki tabloda bulabilirsiniz. Komutlarn hangi ngilizce szcklerin ksaltmalar olduunu da ngilizce bilen okurlarn hatrlamalarn kolaylatrmak iin tabloya ekledik.
Baz nemli Metin Deitirme Komutlar Komut I o ngilizcesi Aklama
(Byk I) mlecin bulunduu satrn BAINA eklemeye bala. (Esce kadar) (Kk o) mlecin bulunduu satrn ALTINA bir bo satr a ve oraya eklemeye bala. (Byk O) mlecin bulunduu satrn STNE bir bo satr a ve eklemeye bala.
O s
Open above
Substitute Char mlecin bulunduu yerdeki karakteri sil ve yerine yeni metni eklemeye bala. (Esce basncaya kadar) Substitute Line mlecin bulunduu satr sil ve yerine yeni metni eklemeye bala.
197
r R
mlecin bulunduu karakteri bir sonra baslacak karakterle deitir. mlecin bulunduu noktadan itibaren, yeni metni eski metnin zerine yerletir. (Esce basncaya kadar) (Byk j) mlecin bulunduu satrla arkasndaki satr birletir. mlecin bulunduu szc, yeni girilecek szckle deitir.
J cw
Join
Change Word
Birok vi komutu, bana bir arpan yerletirerek birden fazla kez tekrar-
rnein, satr silmek iin kullanlan dd komutu, 5dd eklinde verildiinde 5 satr sil anlamna gelir. Komutlarn bu zelliini daha nceki rneklerde fark etmi olmalydnz.
Metnin inde Dolamak u ana kadar hep birka satrdan oluan dosyalarda altk. Hayat her zaman bu kadar kolay deildir. zellikle elektronik posta iin metin yazarken ya da program gelitirirken, sk sk metin iinde sayfa sayfa (bir baka deyile ekran ekran) ileri-geri gitmek gerekir. Bu ilemler iin kullanlan komutlar burada ksaca bir tablo halinde sralayacaz. Birer kere denemenizi neririz. zerinde almak iin uzun bir dosya hazrlamak yerine, sisteminizin /etc dizinindeki termcap dosyasn kendi dizininize kopyalayp bu dosya zerinde alabilirsiniz. (cp /etc/termcap ~ sonra vi termcap)
198
Ctrl-F
Ctrl-B Ctrl-D Ctrl-U Ctrl-R
Bir ekran ileri. Bir ekran geri. Yarm ekran ileri. Yarm ekran geri. Ekran yeniden dzenle. (alrken sistemden gelebilecek mesajlar ekrannzdaki grnty bozarsa bu komut, vi ekrann ekran silip yeniden oluturarak dzenleyecektir.) Ekran bir satr aa kaydr, imle yerinde kalsn. Ekran bir satr yukar kaydr, imle yerinde kalsn. (Kk z) mlecin bulunduu satr ekrann en stne gelecek ekilde ekran dzenle. (Kk z ve nokta) mlecin bulunduu satr ekrann ortasna gelecek ekilde ekran dzenle. (Kk z ve eksi ) mlecin bulunduu satr ekrann en altna gelecek ekilde ekran dzenle.
z-
H M L
RETURN
Lower Screen Ekrann en alt satrna git. Bir sonraki satrn ilk karakterine git.
199
Yukarda aklanan komutlarn baz zel kullanmlar vardr. Bunlar ender kullanlan zellikler olup, burada sadece bir fikir vermek amacyla birka rnek vereceiz:
200z RETURN 4H 5L
200. satr ekrann en stne getir. Ekrann en st satrnn 4 altndaki satra git. Ekrann en alt satrnn 5 stndeki satra git.
Metnin inde Arayarak Dolamak Diyelim ki, program yazyorsunuz ve deiiklik yapmak istediiniz satrn yeri hakknda bir fikriniz yok. Tek hatrladnz, deitirmek istediiniz satrda kayit_says++ diye bir karakter dizisi var. Bu diziyi ieren bir satr bulmak iin komut durumunda,
/kayit RETURN
yazmanz yeterli olacaktr. mle, iinde bu dizi geen ilk satrda duracaktr. Arama, imlecin bulunduu yerden ileriye doru yaplr. Eer geriye doru arama yapmak isterseniz / yerine ? karakterini kullanmanz gerekir. Diyelim ki, programn ilk rastlad kayit szc, sizin ilgilendiiniz deil ve aramaya devam etmek istiyorsunuz. Bu durumda n (next) tuuna basmanz yeterlidir. Tm arama komutunu yeniden yazmanz gerekmez. Eer aramann ynn deitirmek isterseniz n yerine N komutunu veriniz. Eer aramann halen hangi ynde olduunu hatrlamyor, fakat aramay ileriye doru yneltmek istiyorsanz / tuuna, tam tersi iinse ? tuuna basabilirsiniz. Bulup Deitirmek Diyelim ki, bulunduunuz satrda Linux diye bir szck var ve bu szc LINUX olarak deitirmek istiyorsunuz. Bu ii yapmak iin imleci i harfinin zerine gtrerek 4rINUX komutunu vermeniz yeterli olacaktr. Bu yntemde bulma grevini siz; deitirme grevini ise vi stlenmi oluyor. Her iki ii de vin yapmasn istiyorsanz, deiikliin yaplmasn istediiniz satrn zerine gelip,
:s/Linux/LINUX :s/inux/INUX
veya
200
rakter dizisini LINUX dizisiyle ve inux dizisini INUX dizisiyle deitirecektir. Bir satrdaki tm Linux karakter dizilerini LINUX olarak deitirmek iin,
:s/Linux/LINUX/g
komutunu kullanmalsnz. imdi, s komutuna birka ileri dzey rnek vererek bu komutun baka yeteneklerini de gstermek istiyoruz:
leri Dzey s Komutu rnekleri Komut :1,100s/Unix/UNIX/g Aklama
Dosyann 1. ve 100. satrlar arasnda rastlanan tm Unix dizilerini UNIX olarak deitir. Dosyann 1. ve sonuncu satrlar arasnda rastlanan tm Ugurlar Ugur Ayfer olarak deitir.
% iareti tm dosya anlamndadr.
:1,$s/Ugur/Ugur Ayfer/g
:g/Ayfer/s/Ugur/U./g
Tm dosyada Ayfer dizisini arar (g/Ayfer/); Ayfer bulduu her satrdaki tm Ugur dizilerini U. ile deitirir. Dosyadaki tm Perl dizilerini PERL ile deitirir. (\U byk harfe dntrr; & ise, aranan diziyi batan yazmamak iin kullanlan bir ksaltmadr.)
Dosyadaki tm tehleri the olarak deitirir; ancak her bir deiiklik iin kullanc onay ister. (c: confirmation)
:%s/Perl/\U&/g
201
:g/^$/d
Tm bo satrlar bulur ve siler. (^ iareti satr ba anlamna; $ ise satr sonu anlamna gelir. Bu rnekte iinde hibir karakter olmayan (ba ve sonu yanyana olan) satrlar silinecektir; boluk karakterleri ieren satrlar bu kalba uymayacandan silinmeyecektir. Eer iinde boluk karakterleri olan satrlar da silmek istiyorsanz, :g/^ *$/d komutunu kullanmalsnz. (^ iaretinden sonraki bolua dikkat!) lgn bir rnek! Bir dosyadaki satrlarn srasn ters evirir... (Son satr birinci satr, sondan ikinci satr ikinci satr,...). Nasl m? Balangc olan her satr (^) (zaten her satrn bir balangc vardr) sfrnc satra tar. (mo, move anlamndadr) Bu ksack komutun bu ii yapacana inanmyorsanz bir deneyin.
:g/^/mo0
Metnin inde Satr Numaralarn Kullanarak Dolamak de satr numaralarn kullanarak dolamanz gerekiyorsa (40. satra git, sonra 75. satra git, vs.), ekranda satr numaralarn grmek ok yararl olacaktr. Satr numaralarn ekranda grebilmek iin:
:set number vi editr, normalde ekranda satr numaralarn gstermez. Eer metnin iin-
202
:55 ve :134 komutlar da imleci srasyla 55. ve 134. satrlarn bana gtrecektir.
Tu Ksaltmalar Metninizi yazarken baz kelime ya da kalplar ok sk tekrarlamanz gerekebilir. rnein, metninizin birok yerinde Aircraft Owners and Pilots Association adl organizasyonun adn yazmanz gerekecekse,
:ab aopa Aircraft Owners and Pilots Association
komutuyla bir ksaltma (abbreviation) tanm yapabilirsiniz. Artk, klavyeden her aopa yazdnzda, sanki ak ak Aircraft Owners and Pilots Association yazmsnz gibi kabul edilecektir. Bu ksaltmann iptal edilmesini istediiniz zaman;
:unab aopa (unabbreviate)
araya metin girme konumunda anlamldr. (Tanmlam olduunuz bir kolmanz gerekir).
203
Eer sk kullandnz vi komutlarna ilikin bir ksaltma tanmlamak istiyorsanz, bu tanmlamanz map komutuyla yapmanz gerekir. rnein,
map ^Y dd
tanmlamas, Ctrl-Y tuunun, bulunduunuz satrn silinmesini salayan dd komutu ile e anlaml olarak kullanlmasn salar. Eer map komutu ile F2 fonksiyon tuuna tm bo satrlar silme komutunu tanmlamak isterseniz,
map #2 :g/^$/d
komutunu kullanabilirsiniz. map ile yaplm tanmlamalar iptal etmek iin unmap komutunu kullanmalsnz. (unmap #2 gibi) Bu tip ksaltmalarnzn kalc olmasn istiyorsanz .vimrc dosyas ile ilgili blm okuyunuz. vi Balatrken Verebileceiniz Komutlar ok nemli olmamakla birlikte, editr balatrken komut satrndan verebileceiniz birka vi komutu vardr.
vi +230 mektup1.mail vi + telefonlar
204
dosyalar diske kaydetmek ve buna benzer ilemler iin kullanlan komutlar aada sralanmtr. Bu komutlar kullanmadan nce komut durumuna gemi olmanz gerekmektedir: Komut durumuna gemek iin en az bir kez Esc tuuna basmanz gerektiini hatrlyorsunuz, deil mi?
Dosya lemleriyle lgili Komutlar Komut ZZ :q :q! :w :wq :x :w dosya2 :1,100w bolum1 :r dosya3 Aklama
Dosyay son haliyle diske kaydet ve vidan k. (:wq komut dizisine edeerdir.) Dosyada deiiklik yaplmayacak, vidan k. (quit) Yaplan deiikliklerden vazgeildi, dosyay deitirmeden vidan k. (quit) Dosyay diske kaydet. (vida kal) (write) Dosyay diske kaydet ve vidan k. (write-quit)
vidan k, deimise dosyay diske kaydet. (exit)
zerinde allmakta olan dosyay, dosya2 adyla diske kaydet. (write) zerinde allmakta olan dosyann ilk 100 satrn bolum1 isimli bir dosyaya kaydet. dosya3 adl dosyay oku ve imlecin bulunduu noktadan balayarak araya ekle. (read)
205
Bazen, vi programyla bir dosya zerinde alrken, geici olarak kabuunuza dnp, baka bir UNIX komutu altrmanz gerekebilir. Diyelim ki, zerinde almakta olduunuz dosyann iine, bir baka dosyay kopyalamanz gerekti, ama bu dosyann tam adn hatrlayamadnz. ls komutunu bir kullanabilseniz, bu dosyann adn hemen hatrlayacaksnz. Byle durumlar iin, vi, size kabuk programnza bir k olana vermektedir. Bu olanaktan yaralanabilmek iin Esc tuu ile komut durumuna geip,
!ls
komutunu veriniz. UNIXin zerafetine bir rnek: Diyelim ki, bir program iin kullanm klavuzu yazyorsunuz ve klavuzunuzun bir blmne, sz konusu programn bir ktsn eklemek istiyorsunuz. Kullanabileceiniz komut,
:r !prog
Bu komutu verdiinizde, prog isimli program altrlacak ve kts vi ile dzenlenmekte olduunuz dosyada, imlecin bulunduu noktaya yerletirilecektir. (Sanki diskten bir dosya okumusunuz gibi...) Birden Fazla Dosyay Pepee lemek
vi programn balatrken, dosya ad olarak birden fazla parametre verebi-
lirsiniz. rnein,
Bu durumda, vi nce dosya1 isimli dosyay dzenlenmek zere ekrana getirecektir. Bu dosyayla iiniz bitip de, w n komutuyla birinci dosyay (dosya1) kaydettikten sonra (write) komutuyla ikinci dosyaya (dosya2) geebilirsiniz. (next)
206
.vimrc Dosyas
.vimrc dosyas, vi programyla ilgili zel tercihlerinizi belirttiiniz dosyadr. Eer kiisel dizininizde .vimrc isimli bir dosya (dosya adnn bandaki noktaya dikkat ediniz) varsa, vi programn her balattnzda, bu dosyann iindeki vi komutlar otomatik olarak altrlacak ve bylece tercihleriniz ayarlanm olacaktr. .vimrc dosyas basit bir text dosyas olup, vi dahil her trl editrle yaratlabilir. Bu dosyada yer alabilecek baz vi komutlarna
map ^Y dd
map #2 :g/^$/d
Ctrl-Y satr sil anlamnda. F2 tuu, bo satrlar sil anlamnda. cua bir ksaltma olarak kullanlm.
207
vi Komutlar zeti
Komut A a I i O o b w e $ H S ^F Aklama Komut x Aklama
Satr sonuna eklemeye bala mlecin sana eklemeye bala Satr bana eklemeye bala mlecin soluna eklemeye bala Bu satrn stne satr ekle Bu satrn altna satr ekle Bir nceki kelimenin bana git Bir sonraki kelimenin bana git
dd d3 d$ u U r cw
mlecin bulunduu karakteri sil mlecin olduu satr sil mlecin olduu yerden 3 karakter sil mleten sonrasn sil Son deiiklii iptal et (Undo) Satr iin Undo Tek karakter deitir Kelime deitir Satrn tamamn deitir Satr bana git Ekrann sonuna git Sayfa geri (Ctrl-B) Dosyay kaydet (w yeni-isim de olabilir) k (Quit) Kaydet ve k Deiikliklerden vazge ve k Blok kopyalamak iin: Blok bana gidiniz. rnein 8yy ile tampon bellee sekiz satr alnz Kopyalayacanz yere gidip, p komutunu veriniz.
Bir sonraki kelimenin sonuna git cc ^ Satr sonuna git Ekrann bana git Sayfa ileri (Ctrl-F) Satrn tamamn deitir Dosyada diziyi bul (ileriye doru) Dosyada diziyi bul (geriye doru) Satrlar numarala Blok tamak iin: Blok bana gidiniz. rnein 8dd ile sekiz satr siliniz Tayacanz yere gidip, p komutunu veriniz.
L ^B :w :q zz :q!
208
gvim
Eer vin gcnden yararlanmak, ama grafik ortamda alyor olmann avantajlarn da kaybetmemek istiyorsanz, gvim isimli mkemmel bir editr daha var. Bu editr vin btn zelliklerini korurken ayn zamanda fare kullanmn da destekleyerek grsel birok yenilik getiriyor.
gvim, Graphical vi Improved (grsel ve gelitirilmi vi) szcklerinden elde edilmi bir ksaltmadr. Terminal ekrannzdan gvim yazarak altrabi-
Btn vi komutlar gvimde de aynen alr. Ek olarak farenizi kullanarak imlecin yerini deitirebilir ve metin zerinde deiiklikler yapabilirsiniz. Kes-yaptr tr hareketler bu sayede daha rahat olur.
Eer 3 tulu bir fareniz varsa X kullanrken pencereler iinde veya arasnda metin kopyalamak ok kolaydr. Fareyle setiiniz her metin paras otomatik olarak kopyalanr ve farenizin orta butonunu tkladnzda imlecin bulunduu yere yaptrlr. Ayrca Ctrl-C, Ctrl-V gerekmez. Eer KDE kullanyorsanz Klipper program da kes-yaptr ilemlerine bir sr ek zellik ekler. Eer tulu bir fareniz yoksa, genellikle iki tua birden basarak ayn sonuca ulaabilirsiniz. Fare ayarlarndaki emulate 3 buttons seenei bunun iindir.
Ekrannzn sa altndaki ikonuna tkladnzda nceden kopyaladnz 10 metin parasna ulaabilirsiniz. (Tabii ki bu sayy ve Klippern daha birok zelliini deitirebilirsiniz.)
gvimin en ho zelliklerinden biri, aklnza gelebilecek her trl program-
lama diline uygun yazm kural seilebilme zelliidir. Eer geleneksel dosya isimleri kullanyorsanz gvim kullanarak atnz dosyalar zaten belirtilen dosya uzantsna uygun dilin yazm kurallarna gre dzenlemeler yapacak ekilde alacaktr. rnein ad .c diye biten bir dosyay atnzda gvim dosyanz otomatik olarak C dilinin yazm kurallarna gre renklendirecektir. Bylece eitli parantez, trnak gibi aldysa kapatlmas gereken gramer unsurlar kolay al-
209
glanabilecek ekilde ekrannza gelecektir. gvim programnn Syntax mensn kullanarak bu renklendirmenin hangi programlama diline gre yaplacan seebilirsiniz.
vidan farkl olarak gvim kullanrken karnzda bir yardm mens vardr. gvim ile ilgili hereyi bu yardm mensnden ulaacanz dkmanlarn
iinde bulabilirsiniz.
210
05
211
wc komutunun kts olan satrda 3 say greceksiniz. Birincisi, programa girdi olarak verilen dosyadaki satrlarn says; ikincisi szcklerin says; sonuncusu da karakterlerin saysdr. wc komutunun biraz daha ayrntl olarak anlatmn birka sayfa ileride bulacaksnz.
Bir programa standart giriten girilen verilerin sonunu belirtmek iin Ctrl-D tuuna baslr. Bir baka deyile klavyenin dosya sonu Ctrl-D ile belirtilir. Bu nedenle yukardaki rnei denerken wc programna karakterlerini, szcklerini ve satrlarn saymas iin girdiiniz satrlar bitince imle satr bandayken Ctrl-D tuuna bir kez basmalsnz. Sadece bir kez basmanz nemlidir. ki kez basarsanz kabuk programnza da standart giriin sonuna geldiinizi belirtmi olursunuz ki bu kabuk programnzn iini bitirdiini zannedip sona ermesine ve telnet penceresinin kapanmasna yol aar. Eer yanllkla baslan Ctrl-D tuunun bash kabuunu sonlandrmamasn; onun yerine akca exit komutunun kullanlmas gerekmesini istiyorsanz rnein gibi bir komutla bash kabuunun ancak pepee sekiz tane Ctrl-D baslmas durumunda kendini ldrmesini belirtebilirsiniz. Elbette bu komutu kiisel dizininizdeki .bashrc dosyasna yerletirerek sisteme her balannzda, bir baka deyile sizin iin bash kabuunun her balatlnda bu komutun otomatik olarak almasn salayabilirsiniz. Eer IGNOREEOF ortam deikeninin tm kullanclar iin 8 deerini almasn istiyorsanz export IGNOREEOF=8 komutunu /etc/bashrc dosyasna yerletirebilirsiniz.
export IGNOREEOF=8
212
Giri ve k Ynlendirmek altrldnda rettii ktlar standart ktya (ekrana) yazan bir komut veya uygulama programnn ktlarn saklamak isterseniz standart kty bir disk dosyasna ynlendirebilirsiniz. Bunun iin program altran komut satrnn sonuna kk bir ekleme yapmanz gerekecektir:
ls -al /tmp > dosya_adi
Yukardaki komutta ls -al /tmp komutu altrlmadan nce standart kt, diskteki alma dizininde yer alacak dosya_adi isimli dosyaya ynlendirilecektir. Bu durumda ls komutunun retecei tm ktlar dosya_adi isimli dosyaya kaydedilecektir. alma dizininde dosya_adi isimli bir dosya zaten varsa ve eriim yetkileri uygunsa ls programnn kts bu dosyadaki kaytlarn zerine kaydedilecektir, yani dosyann eski ierii kaybolacaktr. Baz durumlarda, standart ktnn ynlendirilecei dosyada bulunan eski kaytlar bozmadan yenilerini bunlarn arkasna eklemek isteyebilirsiniz. Bu durumda ynlendirmeyi >> ile yapmanz yeterli olacaktr.
ls -al /tmp >> dosya_adi
almak iin gereksinim duyduu verileri standart giriten (klavyeden) okumak zere yazlm bir programn, sz konusu verileri diskteki bir dosyadan almasn salamak iin standart giri ynlendirmesi yapmalsnz. rnein,
sort < sirasiz_kayitlar
komutu, sralanacak satrlar diskteki sirasiz_kayitlar isimli dosyadan alacaktr. Verilerini standart giriten okuyup, ktsn standart k birimine gnderen programlara filtre programlar denir. sort komutu bu filtre programlara gzel bir rnek oluturur nk program standart giriten gelen kaytlar sralayp standart ka gnderir.
213
Giri ynlendirme ve k ynlendirmeyi birlikte kullanabilirsiniz. rnein sirasiz isimli dosyadaki satrlar sralayp, sralanm satrlar sirali isimli bir dosyaya kaydetmek iin aadaki komutlardan birini kullanabilirsiniz:
sort < /tmp/sirasiz > /tmp/sirali sort > /tmp/sirali < /tmp/sirasiz
STDERR UNIX programclarnn geleneksel yaklamlarndan biri, yazdklar programlarn hata mesajlarnn standart ktda deil, standart hatada (yani STDERRde) belirecek ekilde kod gelitirmeleridir. Aksi belirtilmedike STDERR, ekran ortamdr; ite bu yzden hata mesajlarn da ekranda grrsnz. STDOUT ve STDERR ayrm, gerektiinde hata mesajlarnn ayr bir ortama ynlendirilmesini salar. rnein normal bir kullanc olarak (yani root olmadan)
du -s /
214
[cayfer@cayfer /]$ du -s /
du: cannot change to directory `/bcc/mail: Permission denied du: cannot change to directory `/bcc/bcc2: Permission denied du: `/etc/cups/certs: Permission denied du: cannot change to directory `/etc/cups/ssl: Permission denied du: cannot change to directory `/etc/skel/tmp: Permission denied du: cannot change to directory `/etc/uucp: Permission denied
gibi hata mesajlar alrsnz. Bu mesajlar aslnda STDOUTa deil, STDERRe gnderilmektedir. Nitekim du komutunu, ktsn /tmp/du_raporu diye bir dosyaya ynlendirmek zere
du -s / > /tmp/du_raporu
eklinde verseniz bile bu hata mesajlar du_raporu dosyasna deil, gene ekrana grntlenecektir. /tmp/du_raporu dosyasna yalnzca diskte kaplad alan baaryla hesaplanabilen dizinlere ilikin satrlar ynlendirilecektir. Bylece; zellikle geri planda alan ilerin hata mesajlaryla terminal penceresini kirletmelerini nlemek ve kaybolmasn diye hata mesajlarn ayr bir dosyada biriktirmek iin STDERRi bir dosyaya ynlendirmek mmkndr:
du -s / > /tmp/rapor 2> /tmp/hatalar &
Yukardaki komuttaki > karakteri STDOUTu ynlendirmek istediinizi; 2> karakterleri ise STDERRi ynlendirmek istediinizi; en sondaki & ise program geri planda altrmak istediinizi belirtmektedir. Standart Giri ve Standart k kavramlarnn yan sra, LINUX iletim sisteminde, iyi kavranmas gereken birka nemli kavram daha var. Bu kavramlar, ilk okuduunuzda ok kark ya da anlalmaz gelebilir; ama LINUX sistem yneticisi olma yolunda ilerlemeyi dnyorsanz ltfen dikkatlice okuyunuz, gerek duyarsanz baka kaynaklara bavurunuz ama bu kavramlar anlamadan gemeyiniz. Bu kavramlar: ekirdek... ngilizce, daha dorusu UNIXesiyle kernel, Dosya Sistemleri; UNIXesiyle file systems, Sreler; UNIXesiyle process,
215
ekirdek: Kernel
Modern iletim sistemleri, tm ilevlerini yerine getirecek modlleriyle birlikte bellee yklenmezler. Bunun en nemli nedeni bellekten tasarruf edebilmektir. letim sistemi ne kadar az bellek kullanrsa uygulama programlarna o kadar fazla bo bellek kalacaktr. Bu nedenle modern iletim sistemleri, bellekte kalmas kanlmaz ve kernel ad verilen ekirdek modller ve bunun etrafnda gerektike bellee yklenen yan modller topluluu olarak gelitirilir. LINUX ekirdeinin temel grevleri bellek ve sreleri denetlemek ve donanm birimlerini ynetmektir. rnein, ekirdek, bilgisayara takl olan IDE disk srclerin tm teknik ayrntlarnn farkndadr. Dnme hzndan yazc kafann nasl hareket ettirileceine kadar ince ayrntlar bilir. Benzeri ekilde ses arabirimlerini, Ethernet arabirimlerini tanyp bunlar denetleyebilen yazlmlar birer ekirdek modldr. UNIX ve dolaysyla LINUX ekirdeklerinin en nemli zellii, tandklar bu evre birimlerini dier iletim sistemi modllerine ve uygulama programlarna birer zel dosyaym gibi gstermeleridir. UNIXin 30 yl akn bir sredir bilgisayar dnyasnda baaryla yer alabilmesinin en nemli nedeni ekirdein bu zelliidir. ekirdek iin IDE elektronik arabirim standardnda retilmi, 7200 rpm hznda dnen, 6 plakas ve 12 okuma-yazma kafas olan bir disk, ekirdek dnda kalan modller iin /dev dizini altnda yer alan hda isimli bir zel dosyadr (node). Benzer ekilde bilgisayarn birinci disket srcs /dev/fd0, birinci Ethernet kart /dev/eth0dr. Sistemin al srasnda ilk yaplan ilerden biri ekirdein bellee yklenmesidir. ekirdek bellee yklenince sistemin denetimini zerine alacak, al tamamlamak zere gereken modlleri kendisi ykleyecek; ii biten ya da bekleyebilecek modlleri bellekten atacaktr. Baz iletim sistemi ilevlerini yerine getiren yazlm modlleri ekirdekte yer almaldr. rnein, bellein yetmemesi durumunda disk takas alanlarnn bellek gibi kullanlmasn salayan modller her zaman gerek bellekte (RAM) bulunmaldr. Eer bu modller bellek yetmiyor diye diske atlrsa
216
bir daha onlar gerek bellee geri almak mmkn olmaz. Benzeri ekilde diskin nasl kullanldn bilen modl, bellekte yer amak iin diske atlrsa, geri yklenmesi olanaksz olacaktr. letim sisteminin baz modlleri de performans asndan her zaman bellekte yer almaldr. Sistemde yksek ncelikle alan ve hibir zaman sanal bellek ilemlerine tabi tutulmayan sreler genellikle ekirdein bir paras olacak ekilde gelitirilmitir. rnein disk kotas denetimleri, IP paket filtreleme ileri, IP paket ynlendirme ileri olabildiince yksek performans gerektiren iler olduklar iin ekirdekte yer alan programlarla yaplrlar. Ancak, her ii ekirdekte halletmek de olas deildir. Bata LINUX olmak zere, moderm iletim sistemleri, tm modlleriyle birlikte bellee yerletirilemeyecek kadar byktr. Modern LINUX srmleri bu sorunu Loadable Kernel Modules; yani yklenebilir ekirdek modlleri kavramyla zmtr. Kendi ekirdeinizi oluturmanz iin imdilik bir neden grememekle birlikte LINUXun kaynak kodlarn yeniden derleyerek kendinize zel bir ekirdek oluturmanzn mmkn olduunu belirtmeden geemeyeceiz.
Dosya Sistemleri
Microsoftun MS-DOS/Windows iletim sistemlerinde dosya ve dizinlerin yerini belirtirken A:, C: gibi src isimleri kullanlmas tercih edilmitir. Bir baka deyile, kullanclar kullandklar bilgisayara bal disklerin saysn ve isimlerini bilmek ve ilgilendikleri dizin ya da dosyalarn bu fiziksel ortamlardan hangisinde bulunduunu bilmek ve gerektiinde belirtmek zorundadr. LINUXta durum biraz, hatta olduka farkldr. imdilik, LINUX bilgisayarnzn tek bana (bir bilgisayar ana bal olmakszn) alan bir bilgisayar olduunu varsayalm. Bilgisayarnzn iki disk, bir disket, bir de CD-ROM srcs olsun. Disklerinizden ilki en az 2 paraya (partition) blnmtr. (Bir blm LINUX iletim sistemi iin, ikincisi de takas alan iin; hatrladnz m?) kinci diskiniz ise byk olaslkla tek paradr.
217
Yukardaki varsaymlarmza gre bilgisayarnzn be diski varm gibi dnebilirsiniz. (ki paraya ayrlm birinci disk ve tek para olan ikinci disk, disket src ve CD-ROM src.) MS-DOS ya da Windows kullanyor olsaydnz, bu disklere A:, C:, D:, E: ve F: isimleriyle eriirdiniz. imdi sk durun: LINUX kullanclarnn, disklerin ne ekilde ayrlm olduundan, hatta bilgisayarda ka disk srcs bulunduundan haberi olmas bile gerekmemektedir. LINUXta tm diskler ve disk blmleri (partition), disket srcler ve CD-ROM srcler, /dev dizinin altnda birer alt dizin olarak yer alr. ematik olarak gstermek gerekirse:
/
/dev/hda /usr
/dev/hdb /home
/dev/fd0 /mnt/floppy
/dev/cdrom /mnt/cdrom
Her disk ve disk paras zerinde dierlerinden bamsz bir dosya sistemi (file system) bulunmaldr. Dosya sistemi, dorudan eriimli bir veri saklama biriminde (disk, disket, CD-ROM gibi) dolu ve bo alanlarn ynetimini, dizin ve dosyalarn yaratlmasn, silinmesini ve en nemlisi bunlara hzl eriimi salayan bir veri yaps bulundurur. Bu veri yaplar disklere formatlama (bir trl biemleme demeye alamadk; zorla deil ya...) srasnda kaydedilir. zet olarak, dosyalar oluturan disk alan bloklarnn diskin fiziksel olarak nerelerinde yer aldnn, bu bloklarn kime ait olduklarnn ve eriim haklarnn sakland veri yaplarna dosya sistemi (file system) denir. LINUXta disklerinizde kullanabileceiniz birden fazla dosya sistemi seenei vardr. Biz, ext3 ad verilen sistemi kullanmanz neririz.
218
LINUXta dosya sistemleri, diskler (daha dorusu disk blmleri) zerinde, formatlama ileminden sonra mke2fs, mkreiserfs gibi komutlarla yaratlr. (Merak etmeyin; bu ii sistem kurulumu srasnda farketmeden yaptnz bile.) Hatrlarsanz LINUXunuzu kurarken root (/) dizininin hangi disk blmne balanacan belirtmitiniz. (/dev/hda6 gibi) te hiyerarik LINUX dosya yapsnn en tepe noktas bu root dizinidir. Sisteminizdeki tm disk blmleri, diskler, disket srcleri, CD-ROM srcleri, hatta baka bilgisayarlar zerinde eriebileceiniz disk/dizinler hep bu root dizinin altnda alt dizinler olarak grnr. rnein, /home dizini (kullanclarn kiisel dizinlerinin yer ald dizin) bilgisayarnzn ikinci diski zerinde olabilecei gibi / disk blmnde yer alan gerek bir alt dizin de olabilir. zellikle merak edip bakmadka bir dizinin hangi diskte yer aldn gremezsiniz. Yani ls komutu size bir dizinin hangi disk blmnde ya da srcde yer aldn sylemez. Bilgisayarnzda disk blmlerinin ve disket src gibi evre birimlerinin hangi dizinler altnda eriilebilir olduunu grmek iin mount komutunu kullanabilirsiniz. rnein, tek diskli ve bu diskte hem LINUX hem Windows barndran bilgisayarda verilen mount komutu aadaki gibi bir rapor retir:
219
Ayn komutu daha karmak disk yaps olan, rnein birden fazla diski olan ve bu diskleri de ayrca blmlendirilmi olan bir bilgisayarda verirseniz alacanz rapor aadakine benzer ekilde olacaktr:
Evet, biliyoruz! Feci bir grnt ama zamanla allyor. LINUX sistem yneticisi olmak kolay deil. aka bir tarafa; bu ilerin ounu KDE veya GNOME altnda altrabileceiniz ynetim aralaryla da yapabilirsiniz. Ancak LINUXu konsol komutlaryla kullanabilecek ekilde renmek sizin iin ok daha yararl olacaktr. LINUX dnda UNIX makinelerin bana getiinizde de i yapabilmeniz iin KDEsiz, GNOMEsuz yaamay renmelisiniz. Yararl bilgiler ieren satrlar griye boyadk. Dier satrlar yararsz deil elbette ama imdilik o satrlar anlamaya almak iin erken. Bu listeyi dikkatlice incelediinizde, bilgisayarda sadece iki fiziksel disk bulunduunu (sadece /dev/hda ve /dev/hdc serisi disklerin ad geiyor) ve bu disklerin birinci IDE kanalnn ilk diski (Primary master, hda) ve ikinci IDE kanalnn da gene ilk diski (Seconday Master, hdc) olduunu greceksiniz. Bu arada unu da belirtmek gerekir: Bu bilgisayarda baka diskler de takl olabilirdi; rnein /dev/hdd diye bir disk de olabilirdi.
220
satr, bilgisayarn birinci IDE kanalnn ilk diskinin (hda) bir numaral blmnn (hda1) bu sistemin root dizini olarak kullanldn gsteriyor. Ayrca bu disk blmnn okunabilir ve yazlabilir (rw) durumda olduunu ve ext3 dosya sistemi formatnda yaratldn gsteriyor.
satr, bilgisayarn ikinci IDE kanalnn ilk diskinin (hdc) iki numaral blmnn (hdc2) bu sistemin / dizini altndaki depo isimli bir dizine balandn gsteriyor. Yani bu diske bakmak isteyenler /depo dizinine bakmallar. Ayrca bu disk blm zerindeki dosya sisteminin ext3 olduu ve u anda okunabilir/yazlabilir durumda olduunu gsteriyor. Tabii yetkisi olanlar iin...
none on /mnt/cdrom type supermount (rw,dev=/dev/cdrom,fs=iso9660)
satr, bilgisayarn CD srcsnn (/dev/cdrom) sistemin /mnt dizinin altnda cdrom isimli bir dizine (/mnt/cdrom) balandn gsteriyor. En bataki none, CD srcde u anda bir CD bulunmadn belli ediyor. Ayrca bu dizine iso9660 dosya sistemine (standart CD dosya sistemidir) sahip CDlerin taklabilecei ve bu CDlerin oku/yaz kullanlabileceini gsteriyor; yani /mnt/cdrom, yazlabilir CDleri de destekliyor. supermount szc bu srcye bir CD takldnda LINUX ekirdeinin bu CDyi belirtilen dizine otomatik olarak balayacan gsteriyor. Srcye bir CD takp iine bakmak isteyen birisi /mnt/cdrom dizinine bakmaldr. Benzer bir mantk disket srcler iin de kullanlr.
none on /mnt/floppy type supermount (rw,dev=/dev/floppy,fs=vfat)
satr, bilgisayarn disket srcsnn (/dev/floppy) sistemin /mnt dizini altndaki floppy isimli bir dizine (/mnt/floppy) balandn gsteriyor. Yani disket takp iine bakmak isteyen birisi /mnt/floppy dizinine bakmaldr. Ayrca bu dizine vfat dosya sistemine (standart MS-DOS disket dosya sistemidir) sahip disketlerin de taklabileceini gsteriyor. supermount szc bu srcye bir disket takldnda LINUX ekirdeinin bu disketi belirtilen dizine otomatik olarak balamaya alacan gsteriyor.
221
Gene yukardaki rapora gre hda diskinin sekiz numaral blm (hda8) /home dizinine, be numaral blm /var dizinine; yedi numaral blm de /var/spool/mail dizinine balanmtr. zerinde bir dosya sistemi olan bir disk birimine veya blmne okuma veya yazma amacyla ulaabilmeniz iin, o dosya yapsnn, / dosya yapnzda bir yerlerdeki bir alt dizine mount edilmi (ilitirilmi) olmas gerekmektedir. (/ dizini, bilgisayarn almas srasnda otomatik olarak ilitirilmektedir. Eer bu / dizini, bilgisayarn almas aamasnda balanamazsa, o bilgisayar zaten alamaz.) Bir bilgisayarda mount edilmi disk ve disk blmlerini daha ksa ve anlalr ekilde grebilmek iin df komutunu da kullanabilirsiniz.
Sistemin al srasnda eitli dizinlere otomatik olarak ilitirilmesi istenen disk blmleri /etc/fstab dosyasnda belirtilir. imdilik bu dosyayla ilgili bir ey sylemek istemiyoruz; biraz erken. Sisteminize kurulum srasnda yerletirilen /etc/fstab dosyas daha uzun sre iinizi grecektir. Bu dosyann ieriini merak ediyorsanz more /etc/fstab komutuyla grebilirsiniz. LINUXtaki dosya yaplarn ters duran bir aaca benzetirsek, dosya sistemlerini ilitirme ilemini, bir aac, bir baka aacn dallarndan birine ilitirmek (monte etmek) gibi dnebilirsiniz.
222
yedek ...
proje
docs data
mp3
foto
mp3
LINUX iletim sisteminde mount komutu yalnzca balanm diskleri listelemek iin kullanlmaz. Sistem alrken disklerin balantsn zmek, yeni disk ya da disk blmlerini balamak iin de kullanlr.
mount etmek derken disklerin bilgisayara fiziksel olarak taklp karlmasndan sz etmiyoruz! O ii bilgisayar kapatmadan yaparsanz banz derde girer.
mount komutunu bu ekilde kullanabilmek iin root kullanc yetkilerine sahip olmanz gerekecektir; yani eer root kullanc deilseniz, mount komutunu yalnzca parametresiz olarak kullanmanza izin verilecektir. mount ko-
mutu hakknda daha ayrntl bilgiyi sistem ynetimi ile ilgili blmlerde bulabilirsiniz.
223
Disket srcleri ve CD-ROM srclerini de kk birer disk src olarak dnmelisiniz; bu nedenle, bu srcleri kullanlabilmeniz iin nce lp karlabilir birimler olduklarndan, bilgisayar alrken otomatik olarak / dizini altnda bir yerlere ilitirilmeniz gerekir. Disketler ve CDler, tak-
ilitirilmezler (mount edilmezler). Ancak LINUX ekirdei bu srclere bir disket ya da CD takldnda ve yeni taklan birimi kullanan bir komut verdiinizde bu birimi otomatik olarak ilitirir (supermount). Bu otomatik ilitirme ileminin baarl olabilmesi iin zerinde anlaml bir dosya yaps olan disket ya da CD takmalsnz. Yani formatsz bir disket ya da bo bir CD takarsanz doal olarak otomatik ilitirme ilemi baarl olamayacaktr. Supermount kavramnn bir nemi de root yetkileri olmayan kullanclarnn da sisteme disket ve CD takp karabilmelerini salamaktr. Biliyorsunuz, ilitirme amacyla mount komutunu yalnzca root kullanabilir.
i biten disket ve CDler (bazen de diskler) unmount edilmelidir; yani, bu birimlere takl medyalar zerindeki dosya sistemlerinin, / dosya sistemiyle balants kesilmelidir. Bir dosya yapsnnn bal bulunduu dizinle ilikisini kesmek iin:
umount /cdrom umount /dev/hdc1 umount /var/spool/mail
gibi komutlar kullanlr. Dikkat ederseniz hangi dosya sisteminin umount edileceini, isterseniz src adyla (/dev/hdc1 gibi), isterseniz de bal bulunduu dizin adyla belirtebiliyorsunuz.
umount komutunu kullanabilmeniz iin root kullanc olmanz gerekir. Nor-
mal kullanclarn CD-ROM src ve disket srcleri zebilmeleri iin eject komutunu kullanmalar gerekir.
eject cdrom eject floppy eject
224
tede sistemin kurulmas srasnda ayrdnz takas alannn (rnein nk takas alan root dahil hi kimsenin eriemeyecei bir alandr. Takas takas alanyla ilgili tek denetim ans takas ilemlerini durdurmak ve barek olmaz.
alannn ynetimi tamamen LINUX ekirdeine aittir. Sistem yneticisinin latmaktr. (swapon ve swapoff komutlar). Ancak bu ii yapmaya da pek ge-
fsck LINUX dosya sistemleri (ister ext2, ister reiserfs olsun) olduka karmak veri yaplardr. zellikle g kayb ya da reset dmesine baslmas nedeniyle kapanan sistemlerde bu dosya yapsnn bozulma, daha dorusu tutarllnn kaybolmas olasl vardr. Bir dosya sistemi iindeki tutarllk bozulduunda, sistem kullanlmaya devam edilirse sorun gittike byr. Bu nedenle LINUX, sistemin dzgn kapatlp kapatlmadn izlemek iin birtakm mekanizmalar kullanr. Dzgn olmayan bir kapatmadan sonraki ilk aln hemen banda dosya sistemleri zerinde otomatik olarak tutarllk testi balatlr ve bu test bir ekilde baaryla geilmeden sistem tam olarak almaz. Sorun karma potansiyeli olan dosya sistemleri fsck programyla test edilir. Test srasnda rastlanan sorunlarn ou fsck tarafndan otomatik olarak dzeltilir. fsck yapaca bir dzeltmenin tehlikeli olabileceini, yani dzeltmenin baarl olmama olasln hissederse yapaca deiiklik iin izin ister. Genelikle bu izinleri vermek zorundasnzdr. Dosya sistemlerinin tutarl olmas ok nemli olduu iin LINUX her dosya sistemini belli bir sayda; rnein 20 mount edite bir fsck ile kontrol eder. Bu nedenle sisteminizin baz allar altnz sreden uzun srer. Bir dosya sisteminin fsck ile kontrol edilme sresi o diskin byklne baldr. 20 GByte ve olduka dolu bir disk iin bu sre 5 dakika kadar srebilir. Srenin uzun olmas nedeniyle, birden fazla dosya sistemi kontrol edilecekse fsck kendi kendinin gerei kadar kopyasn paralel olarak balatr.
225
Tipik LINUX bilgisayarlarn ylda, bilemediniz 3-5 kez kapatlmas gerekebileceini dnrseniz, bu 20 seferde bir otomatik fsck balatlmasnn kullanclar ve sistem yneticisini pek de rahatsz etmeyeceini belirtmeliyiz.
Sreler
LINUX iletim sisteminin ok kullancl ve ok ili bir iletim sistemi olduunu imdiye kadar birka kez vurgulamtk. Burada bir daha aklamak gerekirse; LINUX iletim sisteminin denetimindeki bir bilgisayar ayn anda birden fazla kullancya hizmet edebilir. Her kullanc iin birden fazla program altrabilir; ve bu arada geri planda eitli servisler altrlarak a zerinden gelen isteklere de yant verilebilir. (Veritaban sunucusu, web sunucusu gibi) Bir LINUX bilgisayar zerinde alan iler: Kullanc programlar, Servis (sunucu) programlar ve Sistemin kendi gereksinimi iin altrlan programlardan oluur. letim sistemi, yneticisinin ve kullanclarnn belirttii iler dnda kendi ilerini de bir sr program ayn anda altrarak yrtr. rnein, at komutuyla belli bir tarih ve saatte balatlmas gereken ileri izleyen atd program gibi; bilgisayar a zerinden gelebilecek TCP/IP isteklerini deerlendiren inetd program gibi, belirli aralklarla disklere yaplan kayt ilemlerinin fiziksel olarak disklere kaydedilmesi iini dzenleyen (flushing disk buffers) update program gibi sistem yazlmlar geri planda alr. Kimi srekli alr, kimi de gerektii zaman alr, ii bitince durur. Tipik bir LINUX bilgisayarnda, kullanc programlar dnda ok sayda sistem program srekli alyor durumdadr. Bir LINUX bilgisayarnda, belirli bir anda, merkezi ilem birimini (ya da birimlerini) ve bellei paylaarak birlikte alan programlara genel anlamda sre (process) ad verilir. Sre kavram program kavramndan biraz daha deiiktir. Bir program birden fazla sreten meydana gelebilir; hatta tek bir sre olarak almakta olan bir program gerek grdnde kendisinin bir kopyasn karp onu da yeni bir sre olarak altrmaya balayabilir. Bunun en yaygn rnei web sunumu iini yapan httpd (apache) ve veritaban
226
ynetim/sunum iini yapan mysqld yazlmlardr. Sistem yneticisi, sistemin al srasnda bu programlardan birer tane balatr. Bu programlar, a zerinden istek geldike kendi kendilerinin kopyalarn karp onlar da altrmaya balarlar. (LINUX dilinde spawn ve fork) Srelerin Merkezi lem Birimi (MB) zamann paylamalar iletim sisteminin ekirdei tarafndan koordine edilir. MB paylamna ilikin nemli bir terim de zaman dilimi (time slice) kavramdr. Her sre, MBni belirli ve ksa bir sre (tipik olarak 10-100 milisaniyelik zaman dilimleri) iin kullanabilir. Zaman dilimini dolduran sreler beklemeye alnp, MB, srada bekleyen bir baka srece tahsis edilir. Bu ekilde tm sreler ayn anda alyormu gibi bir etki elde edilir. Bu srelerin birden fazla kullancya ait olmalar durumunda da, MB kullanclar arasnda paylatrlm olur. Eer bilgisayarda birden fazla MB varsa, LINUX ekirdei ileri bu MBlerine otomatik olarak databilir. LINUXun ok kullancl olma zelliinin altnda yatan temel mekanizma budur. Herhangi bir anda, bilgisayarda alan srelerin neler olduunu grmek isterseniz,
ps ax
komutunu kullanabilirsiniz.
227
ps ax komutuyla alnan alan sreler listesi genellikle ok uzundur. (Tipik olarak 300 satr kadar.) Yalnzca iinde almakta olduunuz kabukla ilgili sreleri grmek iin ps komutunu parametresiz olarak kullanabilirsiniz. Kendinize ait sreleri grmek isterseniz (farkl kabuklar iinde alyor olabilirler) kullanmanz gereken komut: ps u cayfer
gibi olmaldr. Her srecin PID (Process ID) denilen kendine zg bir numaras vardr. Bir srele bilgi alveriinde bulunmak ya da o srece mesaj gndermek isteyen dier sreler, bu numaralar kullanrlar. rnein 4261 numaral sreci kesmek (LINUX terminolojisinde ldrmek) iin bu srece kendini ldr anlamnda bir mesaj gndermek gerekir. LINUXta temel baz haberleme ileri iin numarayla ve harf dizileriyle kodlanm mesajlar vardr. rnein bir sreci ldrmek istiyorsanz o srece kendini ldr anlamnda 9 mesajn gndermeniz yeterli olacaktr. Tabii ki, bu srecin sizin sznz dinleyip intihar etmesi iin sizin ya root olmanz ya da sreci balatan kullanc, yani srecin sahibi olmanz gerekir. alan srelerin listesini daha ayrntl bir ekilde grmek isterseniz
ps alx
komutunu kullanabilirsiniz.
228
Srecin sahibinin saysal kullanc kodu. (Process ID) Sre tantm numaras. Sreci bir baka sre balattysa o srecin numaras. (Parent Process ID) (Teletype: ok eskilerden kalan bir alkanlk.) Srecin hangi terminalden balatldn belirtir.
?: Herhangi bir teminalden deil, sistemin kendisinin ptsN: (pts1, pts2 gibi) A zerinden balanm ttyN: (tty1, tty2 gibi) Seri arabirim zerinden
PPID TTY
STAT
(Status) Srecin bulunduu duruma ilikin bir kod. R (Runnable): alabilir durumda, srasn bekliyor. S (Sleeping): Uyuyor. Bir eylerin olmasn bekliyor Z (Zombie): Bu sre ile balantl tm dier sreler bitmi veya lm; bunun da bitmi olmas gerekirdi ama bir nedenle lememi. ps listesinde hl grnyor olmas zararszdr. Srecin ne kadar zamandr altn gsterir. Sreci balatan komut satrdr. (Varsa)
TIME
COMMAND
229
eytanlar (Daemons) LINUX sreleri arasnda daemon (deymn diye okunur) szcyle tanmlanan bir zel sre eidi vardr. Bunlarn normal srelerden tek fark hibir ekilde konsola ya da ekrana mesaj gndermemeleridir. Daemonlar geri planda sessizce alrlar. Eer balarna kayda deer bir i gelirse bunu /var/log/syslog dosyasna ya da kendi log dosyalarna kaydederler. Genellikle sistemin alyla birlikte balatlp sistem kapanncaya kadar srekli alrlar. Bir kural olmamakla birlikte daemon tipi srelere ilikin programlarn isimleri genellikle d harfiyle biter. (httpd, ftpd, named gibi)
Daemon, ngilizcede eytan, zebani anlamnda kullanlan bir szcktr. Geri planda sessizce ama srekli alan programlara daemon ad verilmesinin ilgin bir nedeni var: Byk fiziki Maxwell, gazlarn dinamiini kolay anlatmak iin iki blml hayali bir kutu tasarlam. Kutunun iki blm arasnda ancak bir gaz molekl geebilecek kadar bir delik olduunu ve ancak yeteri kadar kinetik enerjiye sahip molekllerin bu delikten dier tarafa geebileceini sylermi. Molekllerin kinetik enerjileri de scaklklaryla doru orantl olduu iin bir sre sonra kutunun iki blmnn ssnn eitleneceini byle aklarm. Kavram dramatize etmek iin de deliin banda bir zebaninin oturduunu ve delikten gemeye alan tm molekllerin enerji dzeylerini kontrol edip ancak yeteri kadar hzl olanlarn gemesine izin verdiini anlatrm. (Maxwellin eytan hakknda daha ayrntl bilgiyi Bilim ve Teknik dergisinin Haziran 2003 saysnda bulabilirsiniz. MULTICS iletim sistemini gelitiren ekipte yer alan ve asl meslei fizik olan Fernande J. Corbato da arka planda sessizce alp dier sreleri denetleyen programlara, Maxwellin zebanisinden esinlenerek daemon adn vermi.
Daemonlara klasik rnekler olarak httpd ve named gsterilebilir. httpd web sunucu yazlm, named ise www.pusula.com gibi alfabetik internet adreslerininin saysal IP karlklarn bulan DNS yazlmdr. Bazen daemon tipi sreler lebilirler. Bunun nedeni genellikle programn bir hatas ya da iinden klamaz bir sorun yznden sistem yneticisi tara-
230
fndan zellikle ldrlmeleridir. Byle durumlarda daemon programn yeniden balatlmas ounlukla sorunu zer. Sre ldrmek Diyelim ki balattnz bir i kontrolden kt ve istediiniz ya da beklediiniz gibi davranmyor ya da yanl i balattnz farkettiniz. Doal olarak bu ii hemen kesmek istiyorsunuz. lk denemeniz gereken Ctrl-C tuudur. Olmazsa Ctrl-D tuu... (Fazladan basacanz Ctrl-D kabuk programnz sona erdirip terminal ekrannzn kapanmasna neden olabilir.) Ctrl-C ve Ctrl-D tularyla bir sreci ldrebilmeniz iin, o srecin altrld ekrann ak olmas ve daha nemlisi o srecin sahibi olmanz gerekir. ldrmek istediiniz bir program Ctrl-C veya Ctrl-D tularyla ldremiyorsanz o programa ilikin srecin numarasn renip, srece l mesajn gndermeniz gerekir. Bunun iin: 1. Sre size ait deilse root kullanc olun. Bunun iin herhangi bir telnet penceresinden,
su -
2. Uygun bir ps komutuyla (ps ax) almakta olan srelerin bir listesini aln. 3. Bu listeye bakarak sorun karan srecin numarasn renin. (Diyelim ki 5443)
4. kill 5443 komutuyla 5443 numaral srece kendini ldr mesajn gnderin. 5. Tekrar ayn ps komutunu kullanarak srecin listeden kaybolup kaybolmadn kontrol edin. 6. Eer sorun yaratan sre hala direniyorsa,
kill -9 5443
komutuyla biraz daha sert bir emir olan kendini koulsuz ldr (geber) mesajn gnderin.
231
Gene olmad diyelim. Sreci hl ldremiyorsanz, kabuk programnz ldrmeyi deneyiniz. Hl direniyorsa, ba bozuk sreci ylece brakmay da dnebilirsiniz. Bu srecin sisteme ne kadar yk getirdiini top komutuyla grebilirsiniz. Eer bu sre performans asndan ya da bir baka ekilde sorun karmyorsa brakn ortalkta zombi gibi srnsn. Yok eer sorun karyorsa sisteminizi dzgn olarak kapatp tekrar an.
Sisteminizde denetimden km, ldremediiniz sreler varsa ve bunlar dier ileri bozuyorsa sisteminizi kapatp amaktan baka seeneiniz kalmam demektir. Ancak byle bir durumda bile bilgisayarnz elektrik anahtarndan kapatmay veya reset dmesine basmay aklnzdan dahi geirmemelisiniz! LINUX altnda alrken byle bir durumla karlama olaslnzn ok ok dk olduunu belirtmek isteriz.
Baz programlar bellekte birden fazla kopya olarak yer alr ve alrlar. Bunun en ok rastlanan rneklerinden biri ok sayda pencerede alan Mozilla ya da Netscape web tarayclardr. Bu yazlma ait srelerin hepsini birden ldrmeniz gerekirse, teker teker sre numaralarn bulup ldrmektense
killall -9
numaras deil sre ad belirtiliyor. Web taraycnzn alrken balatm olduu srelerin isimlerini bilmiyorsanz ps ax komutu iinize yarayacaktr.
mozilla-bin
232
Galiba en iyisi bir rnekle anlatmak: Farzedin ki, bilgisayarnza matlab isimli yeni bir uygulama program yklemeniz gerekiyor. Ancak, programn bir gerei olarak, program paketine ilikin dosyalarn /usr/local/matlab diye bir dizinin altna yer almas gerekiyor. Eh! Olabilir. Ancak bir sorun var! /usr diskinde, yeni programa ilikin dosyalar iin yeterli bo yer yok ve burada silebileceiniz gereksiz dosyalar da yok! te mistik ln kavram, bu problemi LINUXun anna yarar bir yntemle zmenizi salar. Yeteri kadar bo yeri olan disk blmlerinden birinde, rnein /home dizininin bulunduu disk blmnde, yeni ykleyeceiniz program iin bir dizin yaratnz: (/home dizini altnda yeni dizin yaratabilmek iin root kullanc olmanz gerekecektir.)
mkdir /home/matlab
komutunu veriniz. Bylece, gerekte /home altnda yer alan matlab dizini, ayn zamanda /usr/local altnda da varm gibi olacaktr. Bu dizini kullanrken isterseniz /home/matlab, isterseniz /usr/local/matlab dizin adreslerini kullanabilirsiniz. Bylece matlab dizinini /usr/local altnda grmek isteyen matlab yazlmn kandrm oldunuz. Link kavramnn ok ie yarayabilecei, bir ncekine benzeyen bir senaryo daha anlatabiliriz. Diyelim ki, elinizde mhsb2002 isimli bir dosya var ve muhasebe departmannn kulland muhasebe program bu dosyay mutlaka bu isimde grmek istiyor. te yandan yeni satn aldnz bir mali analiz program, ayn muhasebe verilerini acct2002 adyla grmek istiyor.
233
Sz konusu dosyann ad mhsb2002 olduu zaman muhasebe departmannn sorunu yok ama siz mali analiz programn altramyorsunuz. Analiz almalar iin dosyann adn deitirseniz, siz alabiliyorsunuz ama bu sefer muhasebe departmanndaki program kullanlamyor. Dosyann adn mhsb2002 olarak tutup, kendi analiz almalarnz iin acct2002 adl bir kopyasn karmak da dnlebilir ama ok kullancl ortamda siz analizler zerinde alrken te taraftan muhasebe personeli yeni kaytlar girip sizin analizlerinizi eskimi kaytlar zerinde yapmanza neden oluyorlar. te byle bir durumda link kavram ve ln komutu gene sizi kurtaracaktr. Bu komutla mhsb2002 dosyasn acct2002 isimli bir dosyaya baladnzda (aslnda sadece tek bir asl kopya var; o da mhsb2002. acct2002 isimli bir dosya ise aslnda yok, acct2002 asl dosyann bir baka ad), bu sayede mhsb2002 dosyasnda yaplan her deiiklik acct2002 diye tannan dosyada da aynen gzlenebilecektir. in bir baka yararl taraf da, acct2002 isimli dosyann diskte hi yer kaplamayacak olmasdr. Bu rnekler arasnda, dikkatinizi ekmi olduunu umduumuz nemli bir fark var. lk rnekte, yani matlab rneinde, ln komutunda -s diye bir parametre kullandk; oysa ikinci muhasebe rneinde kullanmadk! Eer ln komutuyla birbirlerine balanacak olan dosya sistemi elamanlar birer dizinse; -s parametresini kullanmak zorundasnz.
ln ./mhsb2002 ./acct2002
Eer ln komutuyla birbirlerine balanacak olanlar birer dosyaysa ama farkl dosya sistemlerindeyse (rnein, farkl disklerdeyse), gene -s parametresini kullanmak zorundasnz. ln komutuyla, bir dizini ve bir dosyay birbirlerine balayamazsnz. Balanacak olanlarn ikisi de dizin, ya da ikisi de dosya olmaldr.
Ayn dosya sisteminde yer alan ve -s kullanlmadan balanm olan dosyalardan birini silmeniz dierini etkilemez. Asl dosyay silseniz bile, LINUX balanty fark edip dosyay diskten gerekten silmeyecektir. LINUX her dosya iin yaplm balantlar sayar ve her silme ileminde balant saysn bir azaltr. Gerek silme ii bu balant says sfrlannca yaplr.
234
Farkl dosya sistemlerinde yer alan balantlar iin bu balant sayma iine gvenmeyiniz. Farkl dosya sisteminde balants olan bir dosyay silerseniz banz derde girer. Asl dosya silinir ve dier sistemde gerekte var olmayan bir dosyay gsteren bir balantnz kalr.
Bir dosyann gerekten var olan bir dosya m, yoksa sadece bir balant m (link) olduunu anlamak iin ls komutunu -l seenei ile kullanmanz gerekir. inde balantl dosyalar bulunan bir dizinde ls -l komutunu vererek, alacanz listede balantl dosyalar ve hangi dosyaya balantl olduklarn aka grebilirsiniz.
Bu rnek listeye gre, aslnda /etc/rc0.d diye bir dosya bulunmad, bu isimde /etc dizini altndaki rc.d dizinin altndaki rc0.d dosyasna bir balant yaplm olduu anlalmaktadr. (/etc/rc0.d rc.d/rc0.d) Dikkat ederseniz, ls -l komutunun verdii listede, gerek bir dosya (dizin) deil de, balant olan dosyalara (dizinlere) ait satrlarn banda bir l harfi bulunmaktadr. pin ucunu karmayacanza eminseniz, balantlara balant yapabilirsiniz.
Pipe Kavram
Pipe (boru) kavram, daha nce aklam olduumuz Giri/k Ynlendirme kavramyla kolayca kartrlan, bu yzden de dikkatle ele alnmas gereken bir kavramdr. Ksaca bir tekrarlamak gerekirse; k ynlendirme (>), altrlan bir programn, standart kt birimine yazaca satrlarn bir dosyaya ynlendirilmesi ilemidir. Ayn mantkla, verilerini standart giri biriminden okuyan programlar iin giri ynlendirme (<); verilerin bir dosyadan okunmasn salayan ilemdir.
--
235
Piping ilemiyse, gene bir eit ynlendirmedir; ancak, bir programn standart kts, bir baka programa standart girdi olarak ynlendirilir. Pipe kurmak iin, ayn komut satrnda en az iki program birden balatmal ve bu iki programa ilikin komutlarn arasna karakterini yerletirmeniz gerekir. imdi grep ve more komutlarn birlikte kullanarak (biliyorsunuz; pipe kurmak iin en az iki komut gerekiyor) pipe kavramnn kullanmna birka rnek verelim: (grep programn imdilik ylesine bir komut olarak dnn ltfen. grep hakknda syleyecek o kadar ok ey var ki, ona da drtbe sayfa ayrdk.)
grep ayfer * more --
Bu komut satrnda grep ve more programlar ayn anda balatlyor. ayfer ve * grep programna parametre olarak gnderiliyor. grep programnn kts ise more programna girdi olarak ynlendiriliyor. grep ayfer * komutu alma dizini iindeki dosyalarda ayfer karakter dizisini arar ve bulduu dosyalarla bu dosyalar iinde ayfer szc geen satrlar standart kt birimine listeler. Eer bu liste ok uzunsa, terminal pencerenizin iinde akar gider ve siz pek bir ey gremezsiniz.
grep programnn ok uzun olabilecek ktsn more programna girdi olarak ynlendirdiinizde more program standart giriten gelen satrlar iinde
bulunduu terminal ekranna sayfa sayfa listeleyecektir. Ekran her dolduunda sol alt kede -- more -- iareti grnecek ve listelemeye devam edilmesi iin sizin bir tua basmanz beklenecektir. Bir baka rnek:
ps ax grep in.named --
grep kendisine gnderilen satrlar arasnda, iinde in.named szc geenleri bulur ve sadece bu satrlar listeler.
ps programnn ax parametresiyle kullanldnda olduka uzun olabilecek ktsn grep programna girdi olarak gnderir,
236
`who
Bu komut satrnda birka kademeli bir ilem yaplmas istenmektedir. Ayrca bu komutta kullanlan trnak iaretinin karakter dizilerini snrlayan trnaktan olmadna, Q-Trke klavyede virglle ayn tuta yer alan ters trnak iareti olduuna dikkatinizi ekeriz.
who ve wc programlar birlikte balatlacak ve who programnn kts standart giriindeki satr, kelime ve karakterleri sayan wc programna gnderilecektir. (-l seenei yanlzca satrlarn saylmasn salyor.) wc programnn ktsysa, (who komutunun listeledii satrlarn says) trnaklar arasna
yerletirilerek; rnein kullanc varsa, Sistemde 3 kullanc var dizisine dnecektir. Bu dizi de echo programna girdi olarak transfer edilecektir. echo program ise parametrelerini aynen ekrana gnderir. Bylece ekranda Sistemde 3 kullanc var dizisinin grnmesi salanr.
Bu rnekteki komutu, kiisel dizinizdeki .bashrc dosyasna eklerseniz, sisteme her balandnzda, sistemde siz dahil, ka kiinin altn renmi olursunuz.
olacaktr. Tm LINUX konsol komutlar zaten bu formdadr. Bu formdaki [ ] karakterleri, aralarnda yer alan seenek ve/veya parametrelerin istee bal olduunu (optional) gstermektedir. rnein;
--
237
formunda verilen bir komutta -r veya -i veya -ri istee bal parametreler; dosya1 ve dosya2 ise zorunlu parametreler olarak anlalmaldr.
Parametre olarak herhangi bir yl girerseniz, o yl iin 12 aylk bir takvim listelenir.
238
sleep n
n parametresi olarak verilen saniye kadar bekler. Herhalde aklnza ilk ola-
rak byle bir komutun ne ie yarayaca sorusu gelmitir. lk bakta pek ie yaramazm gibi grnen bu komut, kabuk programlar yazmaya baladnzda (shell programming) iinize yarayacaktr.
komut komutunu, n parametresi olarak verilen saniye aralklarla srekli olarak altrr. rnein,
watch n 5 who
who komutunu her 5 saniyede bir tekrarlar. Sisteme balanmasn beklediiniz birisi varsa onu beklerken bu komut ok iinize yarayacaktr. watch
program Ctrl-C ile kesilinceye kadar alr. LINUXta programlar durdurmann tek yolu Ctrl-C deildir. Srelerle ilgili blmde almakta olan programlar durdurmann ve davranlarn denetlemenin, bir baka deyile alan srelere sinyal gndermenin yntemini renmitiniz.
wc [-lwc] [dosya]
(word count)
Parametresi olan dosyadaki satr, szck ve karakterleri sayar. Eer parametre olarak bir dosya ad belirtilmezse, standart giriteki satrlar iin bu saym iini yapar. Saym sonularn standart ka yazar.
-l seenei verilirse, yalnzca satrlar, -w seenei verilirse, yalnzca szckleri,
Hem satrlar, hem de szckleri birlikte saydrmak isterseniz, -lw seeneini kullanabilirsiniz.
239
Bir dosyann son n satrn grntler. Eer n belirtilmezse son 10 satr grntlenir. Kullanl deil mi? Hele bir de f parametresini renince bu komutu ok seveceksiniz...
f parametresiyle birlikte kullanldnda dosya sonuna geldiinde tail
program iini bitirmez ve dosyaya yeni satrlar eklendike onlar da gstermeye devam eder. En iyisi durumu bir rnekle anlatmak:
Diyelim ki sisteminiz web servisi verecek ekilde kurulmu. Eer ldrmadysanz web servisini apache isimli programla veriyor olmalsnz. apache hem performans hem gvenlik hem de gvenilirlik asndan dnyann en gelimi web sunucu yazlmdr ve tm LINUX datmlarnda standart olarak bulunur.
Bir anmz anlatmadan geemeyeceiz... Birka yl nce (2000 falan) Web sunucu gvenlii konularn tartmak iin bir liste almt. Listenin aldn duyuran ahs burada gvenlikle ilgili tartmalar yapp bilgi ve deneyim paylaacaz demiti. Birka saat sonra ayn listeye birisi Microsoft IIS gvenlii de tartlacak m? diye bir soru gnderdi. Yant ok ilginti : IISin gvenlikle ne ilgisi var ki?
Neyse, bu kadar amur atma yeter. (imdilik) rneimize dnelim... apache web sunucusu (aksi belirtilmedike) sunduu web sayfalarn ziyaret edenlerin log dosyasn tutar. (log yerine uygun bir Trke szck bulamadk.) Bu dosyada hangi saatte hangi dosyalarn hangi istemciler tarafndan istendiinin
240
kayd tutulur. Bu bilgiler birok web sitesi ileticisi iin ok deerlidir. Log kaytlar zerinde ayrntl istatistik almas yaparak en ok hangi sayfalarn ziyaret edildiini, ziyaretilerin bu sayfalarda ne kadar zaman geirdiini, en ok hangi lkeden ziyareti geldiini falan renebilirler. Apache log dosyalarnn analizi iin bir sr hazr ve zgr program bulabilirsiniz. Bunlarn en poplerlerinden biri analog isimli pakettir. (www.analog.cx) Neyse... Apachenin log kaytlarn dosyaya eklendike grmek isterseniz;
tail f /var/log/httpd/access_log
komutunu kullanabilirsiniz. Bu komut /var/log/httpd/access_log dosyasnn son 10 satrn gsterecek fakat f parametresi verildii iin dosya bitince durmayacaktr. Dosyaya yeni satrlar eklendike onlar da listelemeye devam edecektir. Bylece web sitenizin ziyaretilerini gerek zamanda izleyebileceksiniz. (Bu komutu deneyebilmeniz iin sisteminizde bir web sunucusu kurulu ve alyor olmaldr; stelik birilerinin de web sitenizi ziyaret ediyor olmas gerekir ki log dosyasna yeni kayt dlsn.)
more
Uzun metin dosyalarn; rnein log dosyalarn, ekrana sayfa sayfa listelemek iin kullanlr. Dosyann ekrana veya terminal penceresine sd kadar grntlendikten sonra sol alt kede
--More--(12%)
gibi bir satr grnr. Bu iaret dosyann yzde 12sine geldiinizi ve daha grntlenecek satrlar olduunu belirtir. Boluk tuuna basarak dosyada sayfa sayfa ilerliyebilirsiniz. Satr satr ilerlemek iin Enter tuunu, geri dnmek iinse b tuunu kullanabilirsiniz. Blme iaretiyle (/) ayn vida olduu gibi arama da yapabilirsiniz. rnein --More-- iaretinin karsna /Ayfer yazarsanz dosya iinde ilk rastlanan Ayfer dizisine kadar ilerlersiniz. Son aramay tekrarlamak iin n tuuna basmanz yeterlidir.
less
241
iin saa sola ok tularyla yatay kaydrma yapmanz da mmkndr. Ayn more komutunda olduu gibi blme iaretiyle dosyann iinde istediiniz karakter dizisini arayabilirsiniz.
top
Bilgisayarnz yavaladnda, bilgisayarnz en fazla megul eden ileri grmek iin kullanabileceiniz bir komuttur. Hem merkezi ilem biriminin kullanm oranlarn hem de takas alan kullanm oranlarn grebilirsiniz.
En st satrdaki
10:42am up 1 day, 10:35, 7 users, load average: 1.39, 1.35, 1.24
satr sistemin 1 gn , 10 saat ve 35 dakikadr almakta olduunu gstermektedir. Gene ayn satrda o anda 7 kullancnn sistemi kulland (7 telnet balants yapm tek kii de olabilir) belirtiliyor. Bu kullanc says sistemde kabuk program altran kullanc saysdr; yani bu makinedeki web sitesini ziyaret edenler ya da bu makinedeki veritaban sunucusundan yararlananlarn saysn iermez.
242
Ayn satrda ortalama yk orannn son bir dakika iinde 1.39, son be dakika iinde 1.35, son 15 dakika iindeyse 1.24 olduunu gryorsunuz. Bu ortalama yk oranlar greceli saylardr ve tipik olarak birden kktr. Zaman zaman iki, , hatta 9a kadar kmas da normaldir. Yk oranlarnz genellikle 1 civarnda deerlerde dolayorsa sisteminizi tam ve ideal kapasiteyle kullanyorsunuz demektir. Yk oranlar genellikle iki veya ten byk deerlerde dolayorsa makinenize biraz fazla ykleniyorsunuz demektir; yani artk merkezi ilem biriminizi daha hzl biriyle deitirmenin zaman gelmi demektir. Ancak st modele gemeye karar vermeden nce, top komutunun rettii rapordaki
Mem: 255428K av, 242040K used, 13388K free, 0K shrd, 54324 Kbuff Swap: 248936K av, 10352K used, 238584K free 80480K cached
satrlarn da gzlemenizi neririz. Eer takas alannn kullanm ortalamas yksekse (yukardaki rnekte grntnn alnd anda takas alannn pek kullanlmad grlmektedir) merkezi ilem birimini deitirmektense ncelikle belleinizi arttrmak daha yararl olabilir.
top, ekrann her birka saniyede bir gncelletirir. Gerek bu gncelletirme skln, gerekse rapor dzenini deitirmek iin top programna klavyeden
leri bellek kullanm oranlarna gre listeler. leri almakta olduklar srelere gre listeler. Ekrann gncelleme skln deitirmek iin kullanlr. Ekran gncelletirmek iin kullanlr.
boluk tuu
243
which
Kabuk programnzn komut satrndan bir LINUX komutu yazdnzda, bu komuta ilikin bir program dosyasnn diskten bellee yklenip almaya balayacan biliyorsunuz. Peki bu program dosyasnn hangi dizinde bulunduunu bilebiliyor musunuz? Hatrlatmakta yarar var; sisteme verdiiniz komutlara ilikin program dosyalar PATH ortam deikeninizde belirtilen dizinlerde ve belirtildii srayla aranacaktr. PATH ortam deikeninizdeki dizinleri grmek iin
echo $PATH
komutunu kullanabilirsiniz.
which komutuna, parametre olarak vereceiniz bir komutun hangi dizindeki program dosyas kullanlarak altrlacan renebilirsiniz.
Yukardaki rnekte, telnet ekrannzda ooffice komutunu vermeniz durumunda, /usr/bin dizinindeki ooffice program dosyasnn bellee yklenerek altrlaca grlyor.
zip
PC dnyasnn yakndan tandnz dosya sktrma programdr.
244
Genel formu:
zip [ -r ] zip_dosyas dosya1 dosya2 ... dosyaN
olan bu komutun rettii sktrlm dosyalar MS-DOS serisi iletim sistemi iin Phil Katz tarafndan gelitirilmi olan PKZIP programnn rettii dosyalarla uyumludur.
-r seeneiyle birlikte kullanldnda sktrlacak dosyalar arasnda dizinlerin de bulunmas durumunda, o dizinleri ve varsa, alt dizinleri de sktrarak zip_dosyas iine yerletirilecektir. Komutun tm seenekleri hakknda aklayc bilgi iin zip komutunu hi parametre kullanmadan verebilirsiniz.
unzip
gzip
Dosya sktrma programlar arasnda LINUX dnyasnda en popler olan, gzip programdr. GNU organizasyonu tarafndan genel kamu lisansyla bilgisayar kullanclarna armaan edilmitir.
245
gzip programnn kullanma mant zipe gre biraz farkldr. gzip dosya-
gzip mail2002.log
dosyas
sktrlarak
diye bir komut verildiinde alma dizininde ad log ile biten be tane dosya varsa, i bittiinde alma dizininde ad .gz ile biten be tane sktrlm dosya oluur. Bir dizindeki dosyalar ve alt dizinlerini birlikte sktrp tek bir sktrlm dosya elde etmek istediinizde kullanacanz komut gzip deil, tar komutu olmaldr. tar komutunu ileride ayr bir blmde anlatacaz.
gzip komutuyla sktrlm dosyalar amak iin kullanlr. gzip komutunun dosyalar teker teker sktrmas gibi gunzip de sktrlm dosyalar teker teker aar.
gunzip
Daha nce gzip ile sktrlm mail2002.log.gz dosyasn gunzip ile amak istediinizde;
gunzip mail2002.log.gz
bzip2 son yllarda hzla yaygnlaan bir dosya sktrma programdr. Sktrma oran konusunda GNU Lisansyla datlan gzipden daha baarl olduu sylenir. gzip ve gunzip gibi kullanlr. bzip2 buyuk_dosya bunzip2 buyuk_dosya.bz2
bzip2
246
247
248
evreyi Tanyalm
/dev Dizini /etc Dizini lost+found Dizinleri
06
yi bir bilgisayar kullancs elinin altndaki kaynaklar tanmal, o kaynaklarn kuvvetli ve zayf taraflarnn yan sra kullanm alanlarn da iyi bilmelidir. LINUX iin bu tanma sreci, Windows serisi iletim sistemlerine gre daha uzun srer. Sanldnn aksine, bu gecikme LINUXun zorluundan deil, kapsaml olmas ve esnekliinden kaynaklanmaktadr. Eh tabii, kapsaml olunca biraz da karmak oluyor ama gene de renilemeyecek kadar deil. evrenizi tanmaya balamak iin bilgisayar dnyasnn ne var ne yok? sorusu olan ls komutunu / dizininde verdiinizde
benzeri bir liste alrsnz. LINUX / dizininde pek fazla dosya ve dizin bulunmaz. Elbette siz isterseniz buraya dosya da koyabilirsiniz ama pek gerekmeyecektir; daha nemlisi geleneklere aykr decektir.
249
Tipik LINUX kullanclarnn kullanaca komutlara ait program dosyalarnn (binaries) sakland dizindir. LINUX komutlar arasnda neler var acaba? diye merak eden okuyucular bu dizindeki dosyalarn listesini alp sradan man sayfalarna bir gz atp komutlar deneyebilirler. Bu komutlar denerken root kimliini kullanmamanz hatrlatmak isteriz. root kimliiyle verdiiniz tm emirler yerine getirilecektir; tm dosya sistemini silmek buna dahildir. Normal kullanc kimliiyle ise sisteme zarar veremezsiniz; olsa olsa kendi dosyalarnz yok edersiniz ya da bozarsnz. Sistemin al srasnda kullanlan dosyalar ve en nemlisi LINUX ekirdei burada saklanr. Buradaki dosyalar pek kurcalamasanz iyi olur. ok zel bir dizindir. Bu dizin altndaki dosyalar normal birer dosya deildir. /dev dizininin dosya listesini aldnzda greceiniz dosyaya benzer eyler aslnda birer dosya deil, dmdr (node). Bunun ne demek olduunu biraz sonra anlatacaz. imdilik ksaca bu dmlerin LINUX tarafndan desteklenen donanm paralarn tanmladn belirtmekle yetinelim. Aman ad sizi yanltmasn... Evet, etc, vesaire anlamndaki etc ama aslnda sistemin en nemli dizinidir. Kullanc tanmlarnn, LINUXun ve sisteminizde alan nemli servislerin neredeyse hepsinin ayar dosyalar buradadr. /etc dizinini kaybeden bir sistem ynetici direksiyonunu kaybetmi bir srcye benzer. Kullanclarnzn kiisel dizinlerinin sakland dizindir. Genellikle burada her kullanc iin kendi kullanc adyla anlan bir dizin yer alr ve kullanclar buradaki kiisel dizinlerinde tam yetkiyle istediklerini yaparlar. Paylalan ktphanelerin sakland dizinlerden biridir. LINUX ekirdeinin otomatik olarak ilitirdii (mount ettii) birimler iin dizinler ierir.
boot
dev
etc
home
lib mnt
250
evreyi Tanyalm
net opt
Genellikle botur. AT&T (System V) UNIX ekolnden gelen sistem yneticilerinin uygulama programlarn yklemeleri iin ayrlmtr. Artk pek anlam kalmad iin genellikle botur. Tamamen LINUX ekirdeinin denetiminde bir dizindir. Aslnda bu dizin diskte de deildir. Bellein bir blm bu dizin iin disk gibi kullanlmaktadr. (Sanal disk.) Sistem yneticisinin kiisel dizinidir. root kullancnn kiisel dizininin /home altnda olmamas strateji gereidir. Genellikle sistem yneticileri kullanc kiisel dizinleri iin zel bir disk ya da disk blm ayrrlar. Sistemde meydana gelebilecek bir arza nedeniyle bu disk ya da disk blm ilitirilemezse root kendi dosyalarna gene de eriebilsin diye byle yaplr. Bu dizine de eriilemiyorsa zaten sistem yneticisinin ba ciddi dertte demektir. Genellikle sistem ynetimiyle ilgili komutlarn program dosyalarnn sakland dizindir. ounu altrabilmek iin root yetkisi gerekir. Bu nedenle bunlar kr krne denemek tehlikeli olabilir. Herkese ak bir dizindir. Genellikle geici dosyalarn kaydedilmesi iindir. Sistem yneticisi, yer gerektii zaman bu dizindeki dosyalar hi ekinmeden silebilir, hatta birok sistem yneticisi sistemlerinin al srasnda bu dizinin otomatik olarak silinmesini tercih ederler. ok ilevli bir dizindir. Adnn artrd kullanclarla pek ilgisi yoktur. Genellikle uygulama programlar ve bunlarla ilgili yazlm ktphaneleri burada saklanr. zellikle /usr/local dizini bir sistemde tm kullanclara ak uygulama yazlmlarnn yklendii dizindir. AT&T UNIX ekolnden gelen sistem yneticileri iin ayrlm olan /opt diziniyle ayn amala kullanlr. Yani sisteme yeni bir uygulama program (rnein Acrobat PDF formatndaki dosyalar HTMLye eviren pdf2html gibi bir program) ykleyecekseniz, en mantkls program dosyalarn /usr/local/bin dizinine yerletirmenizdir. /usr/lib dizini uygulama programlarna ait ktphaneler iin kullanlr.
proc
root
sbin
tmp
usr
251
var
ra gelen e-posta mesajlar, sahipleri okuyuncaya kadar bu dizin altnda saklanr. Adna e-posta gelmi olan olan her kullanc iin burada bir dosya bulunur. Bir kiiye gelen tm e-posta mesajlar bu dosyada ardarda eklenmi olarak saklanr. mail dizini aslnda /var/spool altndadr. Tm e-posta yazlmlaryla uyumlu olmas iin bu dizinden /var/maile bir balant atlmtr. (ln komutunu hatrlyor musunuz?)
/var/log: Sistemin seyir defteri. Gerek LINUXun kendisi, ge-
rekse bandan kayda deer bir eyler geen tm programlar anlarn buraya kaydeder.
land dizindir.
/dev Dizini
LINUXta tm donanm paralar birer dosya gibi kullanlr. nanmayacaksnz ama fare bile aslnda bir dosya gibi kullanlr. Sistem ve uygulama programlar herhangi bir donanm parasna erimek istediinde bu donanm parasn /dev dizininde temsil eden dme (node) eriir. Bu dmler /dev dizininde yer almakla birlikte, aslnda gerek birer dosya olmadklar iin diskte hi yer harcamazlar. Bu dmlerin her birinin birer Major ve birer Minor numaralar vardr. Bir LINUX komutu ya da uygulama program, /dev dizininde yer alan bir isim araclyla bir donanm unsuruna ulamak istediinde (rnein, diskete kayt yapmak iin /dev/floppy dmne yazmak istediinde), LINUX, bu major-minor numaralar aracl ile ekirdein (kernel) hangi modlnn harekete geirileceini anlar ve kontrolu, o donanm unsurunu tm zellikleriyle tanyp denetleyebilen bir programa geirir (device driver).
252
evreyi Tanyalm
LINUXun /dev dizinine yakndan baktnzda bu dizin altndaki dmlerin ounun gene /dev dizini altnda baka dmlere balanm olduklarn (link edilmi olduklarn) greceksiniz. Bu balantlar izlediinizde en sonda dmn kendisini bulursunuz.
Tipik bir LINUX bilgisayarnn /dev dizininde yzlerce dm yer alr. Burada yalnzca birka tanesinden sz etmek istiyoruz. Ne hepsini anlatmaya olanak var, ne de gerei var.
/dev Dizininde Yer Alan Baz nemli Dmler Dm /dev/console levi
/dev/mem
Bilgisayarn karakter tabanl ana ekrandr. Sistemde ortaya kan donanm sorunlar ve dier nemli olaylara ilikin mesajlar bu birime gnderilir. Eer ekran o srada X altnda grafik kullanc arabirimiyle kullanlyorsa ve xconsole yazlmnn alt bir pencere yoksa /dev/consolea gelen mesajlar grnmeyecektir. Sistemin ana belleidir. Fare donanmnzdr. te bu ilgin bir dmdr. Dipsiz kuyuya benzer. Buraya istediiniz kadar veri kopyalayabilirsiniz. Ne disk doldu diye ikayet eder, ne de eriim haklarndan dem vurur. Bir programn standart ktya gnderdii mesajlarn ok uzun olduunu ve bu ktlarn size gerekli olmadn dnn. Byle bir durumda telnet ekrannza ynelik gereksiz trafik yaratmamak ve hz kazanmak iin program balatrken standart ktsn /dev/nulla ynlendirirsiniz olur biter. (/usr/local/bin/uzun_prog > /dev/null gibi.)
/dev/mouse /dev/null
253
/dev/hda
IDE sabit disk. Birinci IDE arabirimdeki master disk. Birinci IDE arabirimdeki master diskin birinci blm. (partition) Disket src. CD-ROM src. Seri (RS-232) arabirim. A zerinden terminal balants iin kullanlan sanal terminal arabirimi. Teyp srcnz. Birinci Ethernet arabiriminiz.
/dev/tape /dev/eth0
/etc Dizini
Sistem yneticisinin en ok dolat dizindir. Bu dizinde birok alt dizin ve dosya bulacaksnz. Hemen hemen hepsi sisteminizin davranlarn etkileyen ayar dosyalardr. Bu nedenle yedei alnmas gereken ilk dizin /etc dizinidir. Bu dizindeki dosyalarda deiiklik yapmanz gerektiinde kesinlikle ama kesinlikle nce o dosyann bir kopyasn karmanz neririz. Bu dizindeki baz nemli dosyalara (aslnda hepsi nemli ya, neyse) biraz deinmek istiyoruz.
/etc Dizinindeki Baz nemli Dosyalar Dosya / Dizin /etc/passwd levi
Kullanc tanmlarnzn yer ald dosyadr. Sisteminize tanttnz her kullanc iin ve sisteminizde sre altrmas sz konusu olan tm zel ve tzel kiilikler iin bu dosyada bir satr yer almaldr. Baz programlar gvenlik nedeniyle gerek olmayan kullanc kimliiyle altrlr. rnein, Apache web sunucusu ya nobody ya da apache gibi bir kimlikle altrlmaldr. Bu durumlarda /etc/passwd dosyasnda bu hayali kullanclar iin de birer kayt olmaldr.
254
evreyi Tanyalm
/etc/shadow
Kullanclarnzn ifrelerinin sakland dosyadr. ifreler bu dosyada kriptolanm olarak saklanr. ifresini unutan birisinin ifresinin kriptolanm halini burada grebilirsiniz ama bir ie yaramaz. LINUXun kulland kriptolama algoritmas tersine evrilemez; yani kriptolanm bir karakter dizisinin aslnn ne olduunu bulamazsnz. LINUX, sisteme balanmak isteyen bir kullancdan ifresini aldktan sonra bu karakter dizisini kriptolar ve kriptolanm halini bu dosyadaki ifreyle karlatrarak doru olup olmadn kontrol eder. Sisteminizde tanml kullanc gruplarn ierir. Sisteminiz alrken altrlan komut dizileri (script) dosyalarn ierir. Bu dizindeki dosyalarn mantn kitabn sistem ynetimi ile ilgili blmlerinde bulacaksnz. Sisteminiz al tamamlandnda, varsa yaplmasn istediiniz ilere ilikin komutlar ieren dosyadr. rnein sisteminiz her aldnda /tmp dizininin iindeki dosyalarn ve dizinlerin silinmesini istiyorsanz bu dosyann iinde bir yere /bin/rm -r /tmp/* gibi bir komut satr ekleyebilirsiniz. Sisteminize TCP/IP zerinden erimesine izin vereceiniz ya da izin vermeyeceiniz IP adreslerinin tantld dosyalardr. Bu dosyann ayrntlarn Gvenlik blmnde bulacaksnz. Bilgisayarnzn internet servisleri ile ilgili ayarlar. FTP sunucusu olarak hizmet verip vermeyeceiniz; verecekseniz hangi port zerinden vereceiniz gibi ayarlar buradadr.
/etc dizinindeki ayar dosyalar bu kadar deil elbette. Burada yalnzca birka tanesinden rnek olarak sz ettik.
/etc/group /etc/rc.d
/etc/rc.local
ve
...
255
lost+found Dizinleri
Gnn birinde baz dizinlerde lost+found adnda bir dizin belirdiini farkedeceksiniz. ine baktnzda da adlar saylardan oluan bir sr alt dizin greceksiniz. Bir LINUX bilgisayar normal olmayan bir kapatmann ardndan aldnda veya bir disk dosya sistemi 20 kez mount edildiinde dosya sistemindeki dizin yaps otomatik olarak kontrol edilecektir. Bir baka deyile o dosya sistemi iin fsck program otomatik olarak altrlacaktr. lk bulursa onarmak iin elinden geleni yapacak, tehlikeli bulduu deiiklikler iin izninizi isteyecektir. Akas byle durumlarda istenen izni vermekten baka bir areniz de olmayacaktr.
fsck program diskteki dosya yapsnda bir gariplik, bozukluk veya tutarsz-
fsck bulduu bozukluklar giderebilirse ne ala; yok gideremezse sorun karan disk bloklarndaki kaytl verileri o dosya sisteminin lost+found dizi-
fsck genellikle sorunlu dosya sistemlerini onarmay baarr ama tabi bu sorunun derinliine baldr. fsck tarafndan lost+found dizinine atlan dos-
ya paralar iinden hasarl dosyalar ayklamaya almak samanlkta ine aramaktan farkszdr ama bazen insan bunu da yapmaya mecbur oluyor. Yeri gelmiken; bu gibi durumlara dmemek iin kendinize gvenilir bir yedekleme sistemi kurmalsnz. LINUXunuzda bu i iin gereken her trl yazlm zaten var.
256
07
LINUX iletim sistemi, kullanclarn verdikleri komutlar zmlemek ve bu komutlar yerine getirecek programlar balatmak iin kabuk (shell) programlarn kullanr. Bir baka deyile, kabuk programlar, kullanclarla bilgisayar arasndaki komut arabirimidir. Aslnda, bu tip komut arabirimleri; yani komut yorumlayclar (command interpreter), tm iletim sistemlerinde kullanlmaktadr; rnein MS-DOS iletim sisteminde bu grevi COMMAND.COM stlenmi durumdadr. LINUX iletim sisteminde, kullanclarn birden fazla kabuk program arasndan seim yapma ve beendikleri komut yorumlaycsn kullanma haklar vardr. Hatta ayn anda birden fazla kabuk program bile kullanabilirler. Bu kitapta LINUX iletim sisteminin en popler kabuk program olan bash kabuk programn anlatacaz. Ayrntlarda nemli farklar olsa bile bash bilen birisi csh, tcsh, sh, ksh gibi dier kabuk programlarn ok abuk kavrayacaktr. LINUX kullanmnda deneyim kazanp sistemin hakkn vermeye baladnzda; zellikle sistem yneticisi olma yolunda ilerledike, kabuklarn ne-
257
mi hzla ortaya kacaktr. Gerek sisteminize ileri dzey komutlar verirken, gerekse bir takm ileri otomatie balamaya baladnzda kabuklarn yararl zelliklerini kullanmaya ve daha nemlisi kabuk komutlarn kullanarak kendi komut dizilerinizi (shell script) yazmaya balayacaksnz. Bu aamada, bu blmn zellikle kabuk programlama ile ilgili ksmlar size kark gelebilir. Hele programclk deneyiminiz yoksa bu blmleri hi zlmeden atlayabilirsiniz. LINUX kullanmak iin ille de programc olmak gerekmez.
gibi bir komut verdiinizde, kabuk program, cp harflerini altrmak istediiniz programn ad olarak; eski-dosya ve yeni-dosya szcklerini ise bu cp programnn iki parametresi olarak kabul edecektir. Kabuun yapaca bir sonraki i, altrmak istediiniz bu cp programnn sakland disk dosyasn bulmak olacaktr. Bu arama iinin temelinde, sizin iin tanmlanm olan PATH kabuk ortam deikeninin o andaki deeri yatmaktadr. Bu deikenlerin deerleri tipik olarak
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/cayfer/bin
benzeri bir karakter dizisi olacaktr. Kendi PATH deikeninizi grmek isterseniz echo $PATH komutunu kullanabilirsiniz.
bash program, PATH deikeninin deeri iinde, : karakteriyle birbirle-
rinden ayrlm olan dizinleri srayla tarayp bu dizinlerin iinde, sizin al-
258
trma yetkiniz olan cp isimli bir dosya arayacaktr. Arama, dizin isimlerinin PATH deikeninde verili srasna gre yaplacaktr. rneimize gre, bash program, cp isimli dosyay nce /usr/local/bin dizininde, orada bulamazsa /bin dizininde; orada da bulamazsa /usr/bin; olmazsa /usr/X11R6/bin dizininde, gene bulamazsa /home/cayfer/bin dizininde arayacaktr. Kabuk programnz sz konusu dosyay bu dizinlerden hibirinde bulamazsa,
bash: cp: command not found
diye, komutu tanyamadna ilikin bir hata mesaj vererek yeniden komut bekleme durumuna dnecektir. Eer cp program dosyas bu dizinlerden birinde bulunursa, bu dosyann eriim yetkileri kontrol edilecektir. cayferin bu program altrmaya yetkisi varsa cp program kabuk tarafndan bellee yklenecek ve altrlacaktr. Varsa, komut satrnda verilen parametreler zmlenip (zmlemeden ne kasdettiimizi biraz sonra aklayacaz) cp programna aktarlacaktr. Yklenen program almaya baladnda kontrol artk cp programna gemitir. Parametrelerin doru srada ve sayda verilip verilmediini her program kendisi kontrol eder ve gerekirse uygun hata veya uyar mesajlar reterek, kullancy uyarr. Bir komut verildiinde o komuta ilikin hangi program dosyasnn bellee ykleneceini merak ettiinizde
which komut
komutunu kullanabilirsiniz. Byle bir eyi neden merak edeyim ki? diyorsanz bilgisayarnzda ayn isme sahip iki program dosyas olabileceine dikkatinizi ekeriz. rnein kendiniz C dili ile bc diye bir program yazabilir ve kiisel dizininize yerletirebilirsiniz. Programnz gzelce hatasz derledikten sonra altrmak iin bc komutunu verdiinizde garip eyler olduunu gzleyebilirsiniz. lk aklnza gelen acaba doru program m altryorum? olmaldr.
259
Bu soruya yant bulmak iin: komutunu verdiinizde greceksiniz ki sizin yazdnz bc program deil, /usr/bin/bc alyor. nk bash kabuu altraca komuta ilikin program dosyasn PATH deikenindeki dizinlerde ararken /usr/bin dizinindeki bc dosyas sizin kiisel dizininizdeki bc dosyasndan daha nce bulunuyor.
which bc
Byle bir durumda ya kendi programnz yerini aka belirterek; yani komut olarak
/home/cayfer/bc ./bc
veya
girerek (./bc, bu dizindeki bc anlamnda) altrmalsnz; ya da PATH deikeninizi kendi kiisel dizininiz daha nde olacak ekilde deitirmelisiniz. Kopyalama komutunu, alma dizinindeki tm dosyalar
/disk2/home2/ayfer dizinine kopyalayacak ekilde cp * /disk2/home2/ayfer
verdiinizi varsayalm ve bash kabuunun neler yapacana bir gz atalm. Bu komutu gren bash, komut ad olan cp szcn bulduktan sonra, bu komutun parametrelerini bulup karmaya alacaktr. Komut satrn tararken * karakterine rastlaynca, tm dosyalar anlamna gelen bu iaret yerine, alma dizininde yer alan tm dosya ve dizinlerin isimlerini yan yana gelecek ekilde yerletirecektir. Yani komut satr,
cp abc dosya1 dosya2 xyz x123 /disk2/home2/ayfer
satrna benzer bir ekle dntrlecektir. (alma dizininde sadece abc, dosya1, dosya2, xyz ve x123 dosyalarnn olduunu varsayarak.) Bu dn-
260
m ekranda gzleyemezsiniz; ancak bu tip dnmlerin olduunu bilmeniz ve komutlar verirken bu dnmleri dikkate almanz ok nemlidir.
Baz durumlarda kabuk programlarnn komutlarnzdaki parametreleri yorumlayp amaya almasn istemezsiniz. Byle bir gereksinim duyarsacalamasn istemediiniz parametreleri trnak iinde yazmalsnz. Eer kanz (ki find komutunu kullanrken duyacaksnz); kabuk programnn kur-
buk programnn irdelemeden komuta aktarmasn istediiniz zel karakter tek bir karakterden oluuyorsa, o karakteri trnak iine almak yerine, nne bir \ (back slash) yerletirebilirsiniz.
Bu arada, kabuk tarafndan altrlan programlarn sfrnc parametrelerinin de bulunduunu sylemeden geemeyeceiz. Bir program altrldnda, sfrnc parametresi, programn kendi addr. Bylece, her program, hangi isimle kullanldn bilebilmektedir. Bu zellie tipik rnek gzip ve gunzip komutlardr. Bu iki komuta ait program dosyalar aslnda tpatp ayn dosyadr. Aslnda gzip isimli dosya gerekten bu isimle diskte yer alrken, gunzip sadece bu dosyaya bir balant da (link) olabilir. Yani gzip komutunu da verseniz, gunzip komutunu da verseniz ayn program dosyas bellee yklenip altrlr. Bir dosyay sktrmas gerektiini mi yoksa sktrlm bir dosyay amas m gerektiini anlamak iin program sfrnc parametreye, yani hangi isimle altrldna bakarak karar verir.
dr. Hatta baz standart deikenler zaten ntanmldr. ntanml kabuk deikenleri arasnda en nemlileri unlardr:
Baz nemli bash Kabuk Deikenleri PATH HOME
Bir komut verildiinde, komut programn oluturan dosyann aranaca dizinler listesini ieren deikendir. Kullancnn kiisel dizininin adn ieren deikendir. Sisteme balandnzda kabuk program tarafndan otomatik olarak yaratlr.
261
TERM
Kullandnz terminalin tipini belirleyen deikendir. X altnda alrken genellikle xterm deerini ierir. Windows bir makinadan telnet ile balanldnda ise vt100 deeri verilmelidir; daha dorusu nerilir. X altnda alrken grafik ekran grntlerinin gnderilecei X sunucusunun adresini ve ekran numarasn iermelidir. Kendi bilgisayarnzda alrken :0.0 deerini ierir. Bir baka bilgisayarda altracanz X uygulamasnn grntsn kendi ekrannza almak istediinizde o dier bilgisayara balant kurmak iin kullandnz terminal ekrannda almakta olan kabuk programnn DISPLAY deikeninde 192.168.10.32:0 gibi bir deer olmaldr. Buradaki 192.168.10.32 yerine nnde oturduunuz grafik ekrann takl olduu bilgisayarn IP numaras veya ad gelmelidir. Kabuk programnzn, en son verilen ka komutu saklayacan gsteren deeri ierir. Kabuk programlar, her kullancnn kulland son HISTSIZE komutu kiisel dizinlerdeki .bash_history isimli dosyalarda saklar. O anda almakta olan kabuk programnn yeri ve addr. (/bin/bash gibi.) Programlarn kullandklar, paylalan ktphanelerin aranaca dizinleri srasyla gsteren bir karakter dizisi ierir. Kullanm mant PATH deikenine ok benzer; yalnzca aranan program deil, ktphanedir.
DISPLAY
HISTSIZE
SHELL LD_LIBRARY_PATH
Herhangi bir anda, kabuunuzda tanml olan deikenleri ve/veya deerlerini merak ederseniz,
env
komutunu kullanabilirsiniz.
262
Kabuk deikenleri, standart isimli birtakm deikenlerle snrl deildir. Kullandnz uygulama programlar, alma ortamn tanmlamak iin zel deikenlerin tanmlanmasn ve zel deerler verilmesini gerektirebilir. rnein Oracle istemcileri ORACLE_HOME ve ORACLE_SID isimli iki kabuk deikeni tanmlanm olmasn ister. Bir nedenle bir kabuk deikeni tanmlamak ya da tanml bir deikenin adn deitirmek gerektiinde; rnein DISPLAY deikenine 192.168.10.33:0 deerini vermeniz gerektiinde
export DISPLAY=192.168.10.33:0
komutunu kullanmalsnz. Komut satrndan istediiniz gibi kabuk deikeni tanmlayabilir ya da deerlerini deitirebilirsiniz; ancak bu deiiklik kalc olmaz. Kabuk program kapatldnda ya da ldrldnde tanmladnz deiken de kaybolur gider. Ayrca bu ekilde yaplan bir tanm, yanlzca tanmn yapld kabuk iin geerlidir. Yani, bir anda ayn bilgisayara bal olan telnet pencereniz varsa, bunlardan birinde vereceiniz export komutu yalnzca o terminal penceresinde alan kabuk iin geerli olacaktr. Tm pencereleriniz de geerli ve kalc bir kabuk deikeni tanm yapmak istiyorsanz, bu ii ya-
263
pan export komutunu kiisel dizininizdeki .bashrc dosyasna eklemelisiniz. Bu tanmn tm kullanclar iin geerli olmasn istiyorsanz, ayn eklemeyi /etc/bashrc dosyasna da yapmalsnz (nokta yok).
Diyeceksiniz ki arka planda altrmaya ne gerek var, yeni bir telnet penceresi aar, uzun ii orada balatrm ve normal almamda kullandm pencereye geri dnerim! Doru! Yapabilirsiniz. Mis gibi de alr. Geri planda i altrmak iin komut sonuna & iareti koyma fikri, yeni bir pencere amaya enenler iindir... Elbette ki her i bu ekilde arka planda altrlmaya uygun deildir. rnein, bir editr program gibi, kullancnn srekli olarak klavyeden bilgi girmesini gerektiren programlar arka planda altrlsa bile, srekli ilgi istedikleri iin bu tip bir alma anlaml olmaz. Oysa yukardaki sralama rneimizde, sralama sresince kullancdan herhangi bir bilgi istenmeyecektir. Sralama program arka planda sessizce alp iini bitirecektir. Baz programlar kullancdan bir bilgi istememekle birlikte, srekli olarak ekrana yaptklar iin gelimesini aklayan bilgiler dkerler. Bu tip bir program arka planda almak zere balattnzda, srekli olarak ekrana gelen bilgiler yznden n planda baka bir i yapmanza pek olanak kalmaz. rnein, genellikle bir dizindeki tm dosya ve alt dizinleri tek bir dosya iinde toplamak (paketlemek) iin kullanlan tar komutunu,
264
eklinde verirseniz (bu komutla ilgili detayl bilgiyi daha ileride vereceiz; imdilik komutun ne yapt ve parametrelerinin ne olduu zerinde durmaynz), program arka planda iini yapacaktr, ama bir yandan da paketledii dosyalarn isimlerini ekrana listeleyecektir. Bu ekilde her saniye yeni bir satr listelenen bir ekranda baka bir i yapmak pek kolay olmayacaktr. Ancak ayn komutu,
tar -cvf hepsi.tar /home/ayfer > /tmp/tarmesajlari &
eklinde verirseniz, ekrana gelmesi gereken tm mesajlar, /tmp dizinindeki tarmesajlari isimli bir dosyaya ynlendirilmi olacaktr. bittikten sonra tarmesajlari dosyasna bakarak paketleme iinin baaryla bitip bitmediini ve kopyalanan dosyalarn listesini grebilirsiniz. Geri planda balattnz ilerin hata mesaj retmeleri durumunda mesajlar STDERRe gidecektir. altnz ekrana zrt prt hata mesaj gelmesini istemiyorsanz program balatrken hata mesajlarn; daha dorusu STDERRi bir dosyaya ya da dipsiz kuyuya ynlendirebilirsiniz.
cp r /home/cayfer/tmp/* /yedek 2> /tmp/hatalar cp r /home/cayfer/tmp/* /yedek 2> /dev/null
Dikkat ederseniz, STDERRi ynlendirirken 2> karakterleri kullanlyor. Oysa STDOUT ynlendirilirken yalnzca > kullanlyordu.
265
cp -r /home/ayfer /disk2/home2
eklinde verdiinizi ve program n planda balattnz varsayalm. Balattktan birka saniye (ya da birka dakika) sonra iin uzun sreceini fark ettiniz ve Th! Keke arka planda balatsaydm! dediniz. Eer kabuk program olarak bash kullanyorsanz sorun deil... Klavyenizden,
^Z
(Ctrl-Z)
mesajn grrsnz. Bu mesaj, o srada n planda alan iinizin geici olarak askya alnarak durdurulduunu gstermektedir. Ancak, buradaki durduruldu ifadesi, iinizin tamamlanmadan kesildii anlamnda deildir. Buradaki durdurma, mzik kaseti alan teyplerdeki Pause dmesinin grevine benzeyen bir durdurmadr. iniz almaya ara vermi ve devam edebilmek iin sizden bir komut bekler durumdadr. Bu noktada,
bg
(Background)
komutu verirseniz, iiniz arka planda almaya devam edecektir. Ancak, o anda ekranda bir de,
[1] cp ... &
mesaj grnecektir. Bu mesajn anlam ksaca programnzn geri plana ekildiini ve geri planda alan ileriniz arasndaki numarasnn 1 olduudur. Geri plandaki 1 numaral ii tekrar n plana almak isterseniz,
fg %1 (Foreground)
komutunu verebilirsiniz. (Eer arka plana atlm tek bir iiniz varsa, % iaretini ve ardndaki numaray girmeniz gerekmez.)
266
Arka planda almak zere balatlacak, ya da sonradan arka plana atlacak ilerin says ile ilgili herhangi bir snrlama yoktur. Ancak, arka plan ya da n plan olsun, alan her iin bilgisayarn performansndan bir pay alacan unutmamalsnz. Bazen, arka planda balattnz ya da sonradan arka plana attnz ilerin hesabn arabilirsiniz. Byle bir durumda,
jobs
Kabuk Programlama
Bu blmde amacmz, okuyuculara kabuk programlamay retmek deil, sadece bu kavramn nasl bir ey olduu konusunda fikir vermektir. Aslnda olduka karmak bir i olan ve deneyim isteyen kabuk programlama, programclk deneyimi olmayan LINUX kullanclarnn pek ilgisini ekmemekle birlikte programclk temeli olan okuyuculara olduka ilgin gelebilir. LINUX kabuklar (bash, csh, tsch gibi) aslnda olduka gelimi birer programlama dilini zmleyebilecek yetenee sahiptirler. Genel amal iler iin pek kullanl olmamakla birlikte ileri dzeydeki kullanclarn ve sistem yneticilerinin en deerli aralarndandr.
csh ve bash kabuk programlama dilleri birbirlerinden olduka farkldr. Bu kitapta vereceimiz rnekler yalnzca bash kabuu iin olacaktr.
Her ne kadar LINUX kullanmak iin bash ya da bir baka kabukla programlama yapmaya gerek olmasa da LINUX/UNIX sistem yneticisi olmay dnenlerin bu ilerden biraz anlamas ok yararl olacaktr. Kabuk programlama konusunda daha fazla ayrntya girmek isteyen okuyucular iin internette bash programlama, bash programming anahtar szckleriyle bir tarama yapmalarn neririz. imdi isterseniz birka rnek kabuk programna gz atalm:
267
Yukardaki bash kabuk program iki saniyede bir toplam 100 kez ls komutunu altrp bu komutun rettii satrlar sayacaktr. imdi bu ksa bash programnn satrlarna bir gz gezdirelim:
#!/bin/bash: bash kabuk programlarnda aklama satrlar (comment) # ile balar. Bu satr ilk bakta bir aklama satr gibi grnse de aslnda
ok zel bir anlam vardr. Bir kabuk programnn ilk satr olmas; ayrca ilk iki karakterinin #! olmas, bu kabuk program dosyasndaki satrlarn /bin/bash programyla yorumlanmas gerektiini belirtmektedir. Bir kabuk programnn banda, programn hangi kabukla altrlacann belirtilmesi olduka nemlidir. Bu satr olmadnda, kabuk program yalnzca bash kabuu ile alan kullanclar tarafndan baaryla altrlabilir. Oysa bu satr sayesinde, kullancnn komutu verdii srada kulland kabuk ne olursa olsun, nce /bin/bash kabuu balatlacak, program da bu kabuk iinde altrlacaktr. Program bittiinde bu program iin balatlm kabuk da bitecek ve kullanc kendi kabuuna geri dnecektir.
COUNT=1: COUNT isimli bir deikene 1 deeri atanyor. Kabuk deikenle-
rinin isimleri genellikle byk harflerle yazlr. Bu kesin bir kural olmamak-
268
la birlikte kullanlacak deikenlerin isimlerinin LINUX komutlaryla karmamas iin yararl bir gelenektir. ya eit olduu srece tekrarlanacak bir dng balyor.
while [ $COUNT -le 100 ]: $COUNT deikeninin deeri 100den kk vedo: while kalbnn bir parasdr. Dng iindeki komut satrlar dodone deyimleri arasna yazlr. ls | wc l: ls komutu ve wc l komutlar birlikte altrlp ls komutunun ktlar wc komutuna girdi olarak ynlendirilip satrlar saylyor. sleep 2: ki saniye beklemek iin sleep komutu.
COUNT=`expr $COUNT + 1`: $COUNT deikeninin deerini bir arttran kodone: while dngsndeki deyim grubunun sonunu belirliyor. ornek1.sh isimli dosyadaki bu bash komutlarn bir program gibi altra-
mut.
bilmek iin sisteme bu dosyann altrlabilir program dosyas olduunu belirtmek gerekir. Bu komutu kimlerin kullanabileceine bal olarak
chmod a+x ornek1.sh
veya
chmod u+x ornek1.sh
veya
chmod 755 ornek1.sh
gibi bir komutla dosyann altrma yetkilerini dzenleyebilirsiniz. Son olarak da komutu altrmak iin:
./ornek1.sh
komutunu verebilirsiniz. Eer PATH deikeninizde alma dizini anlamnda . yoksa, komutun bana bu dizindeki anlamna gelen ./ iaretini koymanz; yani komutu ./ornek1.sh eklinde yazmanz gerekecektir.
269
if [ -d $DIZIN ] ; then while [ $W_DUZEY != $DUZEY ] echo -n | W_DUZEY=`expr $W_DUZEY + 1` echo +---$DIZIN `ls -l $DIZIN | sed s/^.*$DIZIN //` echo +---$DIZIN ara fi fi
done
if cd $DIZIN ; then
done
fi
cd .. fi }
270
# #
echo Balang dizini : `pwd` DEVAM=0 DUZEY=0 DIR_SAYISI=0 W_DUZEY=0 do ara while [ $DEVAM != 1 ] done #
echo Toplam $DIR_SAYISI dizin bulundu. # Program balatldndaki alma dizinine geri dn cd $CALISMA_DIZINI
Yukardaki program dikkatle incelerseniz C, PASCAL gibi genel amal programlama dillerindeki komut yaplarnn edeerlerini, hatta zyinelemeli (recursive) fonksiyonlarn dahi kullanlabildiini greceksiniz. Hatrlarsanz, bash kabuunun aslnda ok gelimi bir programlama arac olduunu daha nce de vurgulamtk. imdi bu bash programn bir UNIX komutu gibi kullanabilmek iin yapmanz gerekenleri bir gzden geirelim: ncelikle bash kodunu ieren dosyann altrlabilir bir dosya olmas gerekir:
chmod 755 chmod a+x lsx lsx
veya
271
Dosyaya herkes kolayca eriebilsin diye dosya, kodu yazan programcnn kiisel dizininden, /usr/local/bin dizinine kopyalanmaldr. /usr/local/bin dizinine dosya kopyalayabilmek iin root kullanc kimliine brnmek gerekecektir:
su cp /home/cayfer/lsx /usr/local/bin
Artk PATH deikeninde /usr/local/bin olan tm kullanclar rahatlkla yeni lsx komutunuzu kullanabilecektir.
272
mount Edilmi Diskleri Grmek Yeni Disk Takma Dosya Sistemi Tipleri fsck: Dosya Sistemi Kontrol Program supermount CD Kullanm Disket Kullanm umount Komutu Baka UNIX Bilgisayarlardaki Diskleri Kullanmak mount lemlerini Otomatik Olarak Yapmak (fstab) Baka Bir Windows Bilgisayarn Diskini Kullanmak Dosya Sistemi Yaratmanz Gerekirse...
08
imdi biraz eski bilgileri tazeleyelim: Bir LINUX bilgisayarndaki tm diskler tek bir dizin altnda; yani / dizini altnda toplanr. LINUXta, bir dosyann yeri tarif edilirken hangi diskte bulunduu deil, hangi dizinde yer ald belirtilir. Sz konusu dizinin gerekte hangi fiziksel diskte yer aldn, belirtilen dizine ilitirilmi (mount edilmi) olan disk ya da disk blm belirler.
LINUXta birinci IDE kanalnn master diski /dev/hda olarak isimlendirilir. Birinci kanaln slave diski /dev/hdb; ikinci IDE kanalnn master ve slave diskleri de srasyla /dev/hdc ve /dev/hdd olarak anlr.
Bir LINUX bilgisayarndaki her bir donanm unsuru (fare dahil) /dev dizini altnda bir dosyaya; daha dorusu bir dme ilitirilmi olmaldr. LINUX ekirdei, bu dmn zelliklerinden ilgili donanm parasn hangi ekirdek modlnn denetleyeceini anlar.
273
Varsa; SCSI diskler ise SCSI adreslerine gre /dev/sda, /dev/sdb gibi isimlerle anlr. Sistemin al srasnda disk blmlerinin hangi dizinlere ilitirilecei, yani mount edilecei /etc/fstab dosyasnda belirtilir.
LINUX, ok eitli disk formatlarn, rnein FAT16, FAT32 ve NTFS formatl diskleri grebilir. Yalnzca zerinde LINUX tarafndan tannan, geerli bir dosya sistemi bulunan evre birimleri mount edilebilir. Bunlar formatl diskler ve disk blmleri, formatl disketler, dolu CDler, DVDler ve ZIP srcs gibi zel baz donanmlardr. Teyp kasetleri ve kartular mount edilemez nk veri ierse bile teyp kasetlerinin zerinde bir dosya sistemi (file system) yoktur.
Bu mount komutu kts, listenin kolay alglanmas iin biraz ksaltlm ve yeniden dzenlenmitir.
274
Yukardaki rnekte sistemin ikinci IDE kanalndaki master diskin ikinci blmnn, yani /dev/hdc2nin / dizini olarak mount edildii ve dosya sistemi tipinin reiserfs olduu grlmektedir. Bu bilgisayar lists isimli bir baka bilgisayarn /bcc dizinini nfs zerinden kendi /bcc dizinine balam (mount etmi) grnyor. te yandan birinci IDE kanalnn ilk diskinin ikinci blmnn de /depo dizinine ilitirildii grlyor. Bu mount ileminin yaplabilmesi iin / dizini altnda /depo isimli bo bir dizinin bulunmas gerekir. Biraz kark oldu; deil mi? En iyisi bir senaryo zerinde aklamak galiba...
275
nein yedekleme amacyla kullanacaksanz, yedek isimli bir dizine ilitirmek anlaml olabilir. Bu durumda bir kereye zg / dizininiz altnda yedek isimli bir dizin yaratp bundan sonra her alta uygun mount komutunu vermeniz; daha dorusu her alta /dev/hdd1 disk blmnn /yedek dizinine ilitirilmesini salamanz yeterli olacaktr:
su mkdir /yedek mount -t reiserfs /dev/hdd1 /yedek
Bu ii yapabilmek iin root kullanc kimliine brnmeniz gerektiini sylemeye gerek yok herhalde... Eer bir hata mesaj almazsanz mount ilemi baaryla tamamlanm demektir. Tm UNIXlerde olduu LINUXta da No news is good news!; yani itiraz gelmezse iler yolunda demektir. imdi artk yeni diskinizi kullanabilirsiniz; rnein yedekleme amacyla taktnz bu diske eski disklerinizden dosyalar kopyalamaya balayabilirsiniz:
mkdir /yedek/home cp -r /home/cayfer /yedek/home
gibi...
Yeri gelmiken: Yedekleme ilerini cp komutuyla yapmak pek iyi bir yntem
deildir. lk sorun dosya-dizin okuma yetkilerinde kar. Bir dosyay kopyalayabilmek iin nce o dosyay okuyabilmeniz gerekir. Doal olarak root dnda hibir kullanc diskteki tm dosyalar okumaya yetkili deildir. Sorun kmasn diye cp komutunu root kullanc olarak verirseniz bu kez yeni kop-
yalarn sahibi root olur. Kitabn sonraki blmlerinde yedekleme ileri iin baka komutlar ve yntemlerden sz edeceiz. Dosya ve dizin kopyalarken bu yeni kopyalarn orjinallerini ayn kullancya ait olmalarn salamak serve ownership). gerekiyorsa cp komutunun -p parametresi sorunu zecektir (-p: pre-
mount komutuyla yeni diski /yedek dizinine ilitirip kullanmay baardnz ama sistemi her atnzda bu mount komutunu tekrarlamanz gerekecek. Sistemin her alnda /dev/hdd1 diskinin /yedek dizinine otomatik olarak
276
balanmas iin yaplmas gereken i /etc/fstab dosyasna uygun bir satr eklemek olacaktr. root kullanc olarak aadaki komutla /etc/fstab dosyasna yeni bir satr ekleyebilirsiniz:
cat >> /etc/fstab /dev/hdd1 /yedek reiserfs defaults 0 0
Aslnda bu satr ekleme iini vi ile yapmak ok daha mantkldr elbette; ama cat komutunu ylesine bir hatrlatmak istedik.
Artk sisteminiz her aldnda yedekleme amacyla kullandnz disk /yedek dizinine otomatik olarak ilitirilecektir.
277
Dosya Sistemi
Eski LINUX standart disk dosya sistemi. Modern LINUX disk dosya sistemi. Bir baka modern LINUX disk dosya sistemi. MS-DOS dosya sistemleri. NT Uyumlu (Win2K, XP) dosya sistemleri. CD dosya sistemleri. Windows-9x uyumlu dosya sistemleri. Datk (farkl bilgisayarlarda yer alan) dosya sistemi. (Network File System)
iso9660
Yukardaki tabloya gre, MS-DOS formatl bir disketi /mnt/floppy isimli bir dizine ilitirmek iin kullanmanz gereken
mount -t msdos /dev/fd0 /mnt/floppy
Disklerde kullandnz dosya sistemi hangisi olursa olsun gnn birinde bu dosya sistemindeki veri yapsnn bozulma olasl vardr. Dosya sistemlerini oluturan veri yaplar, disklerde kullanlan ve bo veri bloklarnn ynetimini salar. Disk dosyalarnn fiziksel olarak yerletirildii bloklarn hesabnn tutulduu, izinin srld bu veri yaplarnda, hzl eriim iin bir sr karmak teknik kullanlmaktadr. Bu veri yaplarnn gncelletirilmesi srasnda kt bir zamana denk gelebilecek bir enerji kesintisi ya da donanm arzas dosya sisteminin btnlne ve tutarlna zarar verebilir. Her ne kadar ext3 ve reiserfs dosya sistemlerinde bu olaslk byk lde azaltlm olsa da gene sfrdan byktr.
278
LINUX, sistemin al srasnda mount edilen tm disk blmlerine birer iaret koyar. Sistemin dzgn kapatlmas srecinde de baaryla zlen dosya sistemlerinden bu iaretleri kaldrr. Al srasnda mount edildi iareti ieren dosya sistemlerine rastlanrsa LINUX, bilgisayarn normal yollarla kapatlmadn, dolaysyla bu dosya sisteminin veri yaplarnda bir sorun olabilecei varsaymyla otomatik olarak o dosya sistemi iin fsck (file system check) programn altrr.
fsck, dosya sisteminde bir bozukluk grrse dzeltmeye alr, genellikle
de baarl olur. Bu dzeltmeleri yapmadan, nce bir mesajla bulduu sorunu gsterir ve sistem yneticisinden dzeltme iin izin ister:
Genellikle bu izni vermemeniz iin bir neden yoktur ve tm sorulara yes diyerek devam etmeniz gerekir. LINUX, dosya sistemlerinin ka kez mount edildiklerinin de hesabn tutar ve her 20 ilitirmede bir, o dosya sistemi iin sorun olmasa bile fsck altrr. ok fazla gerekmemekle birlikte, dosya sistemlerinin btnln kendiniz kontrol etmek istediinizde
fsck /dev/hdc1
279
gibi komutlarla bu ii yapabilirsiniz. Doal olarak bu i iin root kullanc yetkilerine sahip olmalsnz; ayrca kontrol edilecek disk blmnn sistemde herhangi bir dizine ilitirilmemi olmas gerekir. litirilmi (mounted) dosya sistemleri zerinde fsck altrmak tehlikelidir. Eer buna mecbur kalrsanz, fsck sresince, alan yazlmlarn sz konusu dosya sisteminde yer alan hibir dosya ya da dizinde deiiklik yapmayacandan emin olmanz gerekir.
supermount
Sistemin /etc/fstab dosyasna baktnzda /mnt/cdrom ve /mnt/floppy dizinlerinin /dev/cdrom ve /dev/fd0 evre birimlerinin supermount seenei ile ilitirildii dikkatinizi ekmi olmal. Bu seenekler, sz konusu evre birimlerine CD veya disket takldnda, mount komutu vermeye gerek kalmakszn taklan medyann otomatik olarak /mnt/floppy veya /mnt/cdrom dizinlerine ilitirilmesini salamaktadr. Ayn ekilde; sz konusu srclerdeki medyalar karldnda da ilgili dizinler otomatik olarak unmount edilir.
CD Kullanm
Siz deitirmediyseniz, CD srcnze ilikin /etc/fstab satrnda supermount parametresi belirtilmi olmaldr. Bu parametre sayesinde CD srcnze dolu bir CD taktnzda, o CD mount komutunu vermenize gerek kalmadan /mnt/cdrom dizinine ilitirilir. Artk o CDdeki dosya ve dizinleri /mnt/cdrom dizini altnda grebilirsiniz. Eer /etc/fstab dosyanzda /dev/cdrom ile ilgili bir satr yoksa, taktnz CDlerin iini grebilmek iin
mount -r-t iso9660/dev/cdrom /mnt/cdrom
gibi bir komut vermeniz gerekecektir. (-r parametresini kullanmanz; yani ilitirilecek dosya sisteminin yalnz okunabilir: read-only olduunu belirtmeniz art deildir; ancak hereyi kuralna gre yapmaya almak yararldr.)
280
Disket Kullanm
Siz deitirmediyseniz, disket srcnze ilikin /etc/fstab satrnda supermount parametresi belirtilmi olmaldr. Bu parametre sayesinde disket srcnze formatl bir disket taktnzda, o disket mount komutununa gerek kalmadan /mnt/floppy dizinine ilitirilir. Artk o disketteki dosya ve dizinleri /mnt/floppy dizini altnda grebilirsiniz. Eer /etc/fstab dosyanzda /dev/fd0 ile ilgili bir satr yoksa, taktnz disketi kullanabilmek iin
umount Komutu
Sisteminizde bir dizine ilitirilmi olan bir dosya sistemini zmek isterseniz umount komutunu kullanmalsnz. (Tabii ki bu ii gene yalnzca root kullanc yapabilir)
Dikkatli okuyucularn sorduunu duyar gibiyiz: Bu i ka ylda bir gerekecek ki; neden anlatyorsunuz? Evet, baz kullanclar iin bu iler hi gerekmeyebilir; ama gerektii zaman da bunlar bilmek zorundasnz. Hele diskinizdeki bir dizine ilitirmek isteyebileceiniz bir diskin bir baka bilgisayarda takl olabileceini dikkate alrsanz, bu mount-umount komutlarna tahmin ettiinizden daha abuk gereksinim duyacanza emin olabilirsiniz.
umount /yedek
umount /dev/hdd1
281
Bilgisayarnz alrken otomatik olarak eitli dizinlere ilitirilecek disk blmleri /etc/fstab dosyasnda tanmlanr.
282
Bu rnekte fstab dosyasnda dikkatinizi ekmek istediimiz bir satr var: Bu satrda, sistem alrken 139.179.14.51 IP numaral bilgisayardaki /iso/mdk91 dizininin bu makinedeki /ortak dizininine ilitirilecei belirtiliyor. Dosya sistemi tipi olarak verilmi olan nfs parametresi, sz konusu dizinin bir baka UNIX bilgisayar tarafndan paylama aldn gstermektedir. Bu rnek dosyada yer alan satrlardaki defaults szc mount ilemi srasnda kullanlacak seenekleri; ardndan gelen ve 1 veya 0 olan ilk rakam sz konusu dosya sisteminin dump komutu kullanldnda yedeklenip yedeklenmeyeceini; son rakam da fsck komutu kullanldnda sistemdeki dosya sistemlerinin hangi srayla kontrol edileceini belirtmektedir. fsck sra numaras ayn olan dosya sistemleri birlikte paralel olarak kontrol edilir. fsck sras 0 ise o dosya sistemi kontrol edilmez. sunucu makinesindeki ortak dizininin fsck srasnn 0 olmasnn nedeni, doal olarak bu dosya sisteminin fsck kontrollerinden, dosya sistemi ya da dizinin gerek sahibi olan bilgisayarn sorumlu olmasdr.
139.179.14.51:/iso/mdk91 /ortak nfs ro 0 0
komutunu veya
mount -t smbfs
kullanabilirsiniz (elbette siz bu komutu tek satrda vermelisiniz). kinci formdaki komutu; yani bilgisayarn IP adresi yerine ismini kullanabilmeniz iin, sz konusu bilgisayarn bu isimle DNS kaydnn yaplm olmas veya sizin bilgisayarnzda /etc/hosts dosyasnda bir kayd olmas gerekir.
283
Yukardaki rnek komutlarda belirtilmi olan cua kullancs ve ifresi, Windows sisteminde tanmlanm olmas gereken bir kullanc kodu ve ifresidir. Sizin Linux bilgisayarnzda bu isimle bir kullanc kayd gerekmez.
komutlaryla nce disketi formatlayp sonra zerine MS-DOS dosya sistemi oluturmalsnz. Eer -t parametresiyle dosya sistemi tipi belirtmezseniz ext2 dosya sistemi kabul edilir ve ancak LINUX/UNIX bilgisayarlara mount edilerek kullanlabilen bir disket elde edersiniz. Sabit diskleri formatlarken de benzeri bir yntem izlenir. nce,
/sbin/fdisk /dev/hdc
gibi bir komutla diskin zerinde yer alacak blmleme tablosu (partition table) oluturulur; daha sonra diskin zerindeki blm saysna gre:
/sbin/mkfs /sbin/mkfs -t -t reiserfs /dev/hdc1 ext3 /dev/hdc2
gibi komutlarla her blm zerinde yer alacak dosya sistemleri oluturulur.
/sbin/mke2fs /dev/hdc2
komutu /sbin/mkfs -t ext2 /dev/hdc2 ile edeerdir. Dolu diskler zerinde fdisk ve mkfs komutlarn denemeyiniz; tm kaytlar silersiniz.
284
LINUX iletim sistemi altnda eriim yetkileri ok iyi tanmlanmtr. root kullanc dnda hi bir kullanc sistem dizinlerine ve sistem dosyalar zerine yazmaya yetkili deildir; e-posta ekinde gelen virsl programlar normal bir kullancnn yetkileriyle altrsanz bile sisteme zarar veremezsiniz. LINUX, batan beri ok kullancl bir iletim sistemi olarak dnld ve gelitirildii iin, sistemin yetkisiz kullanclara ve hatal yazlmlara kar korunmas iyice denenmi, olgunlamtr.
285
286
09
find
Gnmzn tipik kiisel bilgisayarlarnda disk kapasiteleri artk onlarca GigaByte ile llmektedir. Bu kadar byk disklerde de doal olarak ok sayda dizin ve onbinlerce dosya yer alabilmektedir. Zaman zaman adnn yalnzca bir ksmn bildiiniz ama bulunduu dizini bir trl hatrlayamadnz dosyalar ve dizinler olacaktr. Tek tek btn dizinlere girip ls komutuyla bu dosya ya da dosyalar aramaktansa find komutunu kullanmak hayat kolaylatracaktr. rnein;
find /home/cayfer -name nerede.dat
komutu, /home/cayfer dizininden balayarak, bu dizinde ve daha derinlerdeki dizinlerde ad nerede.dat olan dosyay arar; bulursa yerini grntler.
287
Yukardaki rnekte, nerede.dat isimli iki dosya, /home/cayfer dizini altndaki tmp ve fp dizinleri altnda bulunmutur. find komutuyla yalnzca ad ya da adnn bir paras bilinen dosyalar aramak iin kullanlmaz. Dosyalar adlar dnda da zelliklerine gre aranabilir. Genel formu:
find balama-dizini kriter[ler] [-exec komut ;]
olan komutla: belirli bir tarihte deiiklie uram dosyalar, belirli bir tarihten bu yana deimi dosyalar, belirli bir boydan daha byk ya da kk dosyalar, belirli eriim yetkilerine sahip dosyalar ve dizinleri, belirli bir kullancya ait dosya ve dizinleri de arayp bulabilirsiniz. stelik, verdiiniz arama kriterlerine uyan dosyalar ve dizinler zerinde uygulamak isteyebileceiniz LINUX komutlarn da find komutuna parametre olarak verebilirsiniz.
balama-dizini: Arama ilemi, find komutunun bu ilk parametresinde
belirtilen dizinden balar ve varsa bu dizinin alt dizinleri de arama aacna dahil edilir. Eer arama ileminin, bilgisayarnza bal ve mount edilmi tm dosya yaplarnda (disk, CD ve baka bilgisayarlarn dosya sistemleri de olabilir) yaplmasn istiyorsanz, ilk parametre olarak / semboln kullannz; yani aramay tm dosya sistemlerinizin en tepesinden balatnz.
288
Bilgisayarnzn CD-ROM srcs varsa, bu srcye bir CD taklysa, bu arama aac CD-ROM srcsn de kapsayacaktr. CDlerin kapasitele-
rinin bykl ve eriim hzlarnn dklnden dolay bu arama uzun srecektir. Ayn mantkla, bilgisayar a zerinden baka bilgisayarlarn diskleri de sizin dosya sisteminize mount edilmi durumdaysa, o diskler de arama aacna girecektir. Zaman kaybna yol amamak iin, gerekmedikle aramann baka dosya sistemlerine de atlamasn nleyerek bu dertten de kurtulmak mmkndr elbette. e aramay / dizininden balatmamanz neririz. mount parametresiy-
-name [a-k]9
Dikkatinizi ektiyse, -name kriterinde dosya ad tam olarak yazldnda trnak () kullanlmyor; oysa * karakterini ieren bir kalp kullanldnda (wildcard) bu kalb trnak () iinde yazmak gerekiyor. Bunun nedeni udur: Bir komut verdiinizde, bu komut nce kabuk programnz tarafndan irdelenir. Bu irdeleme srasnda rastlanan * karakterleri dosya ad kalplarnn bir paras olarak kabul edilip, * ieren parametre bu kalba uyan dosya isimleriyle deitirilmeye allr. Oysa, kalplara uyan dosya isimmas gerekmektedir. Kabuk programlarnn irdeleme srasnda karlaalacak programa aktarmalar iin, kalp tanmlar trnak iine alnr. lerinin kabuk program tarafndan deil, find program tarafndan bulun-
-user ayfer
-group yonetim
Sahibinin ad ayfer olan dosyalar ve dizinler. Sahibi yonetim grubuna dahil olan dosyalar ve dizinler.
289
-perm 755
Diskte kaplad alan 10 blok olan dosyalar. (1 blok = 512 Byte) Diskte kaplad alan 100 Kbytedan byk olan dosyalar. Diskte kaplad alan 100 bytedan az olan dosyalar. Tam 3 gn nce deiiklie uram olan dosyalar ve dizinler. 8 gnden daha uzun bir sre nce deiiklie uram olan dosyalar ve dizinler. 8 gnden daha ksa bir sre nce deiiklie uram olan dosyalar ve dizinler. Tam 3 gn nce deiiklie uram olan dosyalar ve dizinler. 8 gnden daha uzun bir sre nce deiiklie uram olan dosyalar ve dizinler. 8 gnden daha ksa bir sre nce deiiklie uram olan dosyalar ve dizinler. 3 gnden daha ksa bir sre iinde bir ekilde eriilmi olan dosyalar ve dizinler. 3 dakikadan daha ksa bir sre iinde bir ekilde eriilmi olan dosyalar ve dizinler. 3 dakikadan daha ksa bir sre iinde deiiklie uram veya yaratlm olan dosyalar ve dizinler. Dosyalar. Dizinler.
-ctime +8 -ctime -8 -mtime 3 -mtime +8 -mtime -8 -atime -3 -amin -3 -mmin -3 -type f -type d
290
masyla ilgili sreleri kontrol eder; ancak aralarnda kk bir fark vardr:
-ctime ve -mtime parametrelerinin her ikisi de dosyann deiiklie ura-mtime dosyann ieriinde bir deiiklik yaplp yaplmadn; -ctime ise dosyann ierii yansra zelliklerinin de deiip
deimediini kontrol eder.
Bu arama kriterlerini bir arada kullanabilirsiniz. rnein, sahibi hakman olan ve son 40 gndr kullanlmam dosyalar bulmak isterseniz, kullanmanz gereken find komutu
find /home -user hakman -atime +40
/ dizininden balayarak tm dizin yapsnda core isimli dosyalar arar ve bulduklarn siler.
find komutu -exec parametresiyle birlikte kullanldnda, bulunan dosya ve dizin isimleri, { } arasna parametre olarak yerletirilecek ve -execden hemen sonra belirtilmi olan program bu parametre ile altrlacaktr. Yukardaki rnekte bulunan her bir core dosyas iin /bin/rm core komutu altrlm olacaktr. En sondaki ; parametresi ok nemlidir ve unutulmamaldr. Sondaki bu ; karakter dizisinin gereklilii tamamen find programnn yazlndan kaynaklanmaktadr.
291
komuttur. LINUX, eitli programlarn kullanm srasnda sistemin btnln tehdit eden bir problemle kalatnda (ki bu genellikle hatal yazlm programlar yznden olur) core dumped mesajyla birlikte, bellei core isimli bir dosyaya kopyalar. Bu core dosyalar, programclarn problemin nedenini bulmasna yardmc olmak amacyla yaratlr. Bu dosyalar irdeleyerek problemin nedenini bulmak pek kolay olmadndan, bu dosyalar ieriklerine bakmakszn silebilirsiniz. Bir baka nemli rnek:
find /home -user hasan -exec /bin/rm {} ; /home dizininden balayarak hasan isimli kullancya ait dosyalar arar ve
bulduklarn siler. Sisteme eriim haklar iptal edilen bir kullancya ait dosyalar tek harekette silmek iin kullanlabilir.
find /home -name *.mp3 -exec /bin/rm {} ;
duklarn siler.
find /home
/home dizininden balayarak ad tmp veya temp olan dizinleri bulur ve liste-
-type
ler.
le birletirebilirsiniz. Bunlar:
-a: -o: \!:
ve veya deil
operatrleridir. rnein:
find . -name *.tmp -a -size +1000k
292
cayfer isimli kullancnn kiisel dizininde yer alan ama cayfere ait olma-
Bu rnekteki deil anlamnda kullanlan \! operatrndeki \ iareti, ardndan gelen ! iaretinin zel bir anlam olduunu ve kabuk program tarafndan yorumlanmaya allmamas gerektiini belirtmek iin kullanlmaktadr. Hatrlarsanz, daha nce UNIX iletim sisteminde kendi komutlarnz yaratabileceinizden bahsetmitik. te bu uygulamaya bir rnek vermek iin uygun bir noktadayz.
find komutu olduka yetenekli ve ok seenekli bir komut olmakla birlikte klavyeden yazmas da olduka uzun bir komuttur. Dosyalar yanlzca adlaryla arayan, find komutundan daha ksa bir LINUX komutu yaratmaya ne dersiniz?
Aadaki bash kabuk programn herhangi bir editrle (tabii ki vi ile) kiisel dizininizde ff isimli bir dosyaya giriniz:
#!/bin/bash case $# in 1) find . -name $1 ;; echo echo 2) find $1 -name $2 ;;
Daha sonra,
chmod a+x ff
komutuyla, bu dosyann eriim yetki kalbn, tm kullanclar tarafndan altrlabilen bir komut dosyas olacak ekilde deitiriniz.
293
Bu kabuk program, nce kendini altran komut satrnda verilmi olan parametrelerin saysn kontrol ediyor. ( $#) Eer tek parametreyle balatlmsa find . -name parametre komutunu altryor. Eer iki parametreyle balatlmsa, birinci parametreyi aramann balatlaca dizin kabul edip find param1 -name param2 komutunu altryor. Eer parametre says bir veya iki deilse satrdan oluan bir hata mesaj veriyor.
ff ff ff ff
rnekler:
Yeni yarattnz ff komutunu kullanmak istediinizde komut programnn bulunamadna ilikin bir mesaj alyorsanz, alma dizininiz PATH deikeninizde yer almad iin olabilir. O zaman program ./ff komutuyla altrabilirsiniz. Yeni ff komutunuzu iyice denedikten sonra genel kullanma sokmak iin ff dosyasn /usr/local/bin altna kopyalayabilirsiniz. Ancak bu kopyalamay yapabilmek iin root kullanc yetkilerine gereksiniminiz olacaktr. locate
Birok modern Linux datmnda, arka planda alan "slocate" program genellikle gnde bir kez olacak ekilde disk(ler)inizdeki dosyalarn isimlerini indeksler. Bu sayede "locate xyz" komutunu kullanarak normalde birka dakika srebilecek find /-name "*xyz*" benzeri komutun sonucunu saniyeler iinde grebilirsiniz. Tabi bu sonu sisteminizin o andaki hali iin deil, en son indekslemenin yapld zaman iin geerli olacandan, sisteminizde ne kadar deiiklik olduuna bal olarak kimi zaman doru olmayabilir.
grep Komutu
Dosyalar adlar ve sahipleri gibi zelliklerine gre arayp bulma iini find komutu ile halledebilirsiniz. Ama bazen de dosyalar isimlerine gre deil, ieriklerine gre aramanz gerekecektir. Belli bir karakter dizisini ieren dosyalar ve/veya bir dosya grubu iinde belli bir karakter dizisi geen satrlar bulmak iin;
294
komutunu kullanmalsnz. Hemen birka rnek... inde sisteminizin tm tanml kullanclar iin birer satr yer alan /etc/passwd dosyasnda murat diye bir szck olup olmadn kontrol etmek istediinizde
grep murat /etc/passwd
komutunu kullanabilirsiniz. Bu dosyann iinde murat szc geen tm satrlar standart kt birimine listelenecektir. Ancak komutu bu rnekteki gibi kullanrsanz iinde Murat geen satrlar yakalayamazsnz. Byk-kk harf ayrm yaplmakszn arama yaplmasn istiyorsanz komutu;
grep -i murat /etc/passwd
eklinde vermeniz gerekir. inde Murat ya da murat geen satrlarn satr numaralarn da grmek isterseniz:
grep -ni murat /etc/passwd
formunu kullanabilirsiniz. Diyelim ki bulunduunuz dizinde, ad prog ile balayan dosyalar arasnda bir veya birka tanesinin iinde cayfer szcnn bulunduunu biliyorsunuz ama hangileri olduunu hatrlayamyorsunuz! te zm:
grep cayfer prog*
Ad progla balayan dosyalarda cayfer szcnn ka defa getiini renmek isterseniz grep komutunu:
grep -c cayfer prog*
295
Eer iinde belirli bir karakter dizisi geen dosyalar bir dizin aacnda arayacaksanz -r parametresi ok iinize yarayacaktr.
grep -r cayfer *
komutu cayfer karakter dizisini alma dizinindeki ve bu dizin altndaki dizinlerdeki dosyalarda arar ve iinde cayfer geen dosyalarn isimlerini listeler.
grep komutunun rettii listenin ok uzun olmas durumunda, komutu grep -r
eklinde kullanrsanz, grep komutunun rettii listeyi more komutuna ynlendirerek listenin ekrana sayfa sayfa grntlenmesini salayabilirsiniz.
cayfer * | more
komutu -v parametresinden dolay /etc/passwd dosyasndaki satrlar arasnda, iinde bash gemeyenleri listeleyecektir.
grep komutu ille de dosyalar iinde arama iin kullanlmaz. Baka programlarn rettii ktlar arasnda da arama yapabilirsiniz. rnein, sisteminizin
Baz durumlarda size bir dosyada iinde cayfer geen satrlar deil de, cayfer gemeyen satrlar gerekir.
296
internet servislerini ve balantlarn yneten xinetd isimli srecin konfigrasyonunda deiiklik yaptnzda ve bu program yeniden balatmanz gerektiinde xinetdnin sre numarasn bilmeniz gerekecektir. LINUX altnda alan bilgisayarlarda, ok mehur baz iletim sistemlerinde olduu gibi ayar deiikliklerinden sonra sistemi kapatp amak gerekmez. xinetd yazlmna kendisini yeniden balatmas iin; daha dorusu ayar dosyalarn yeniden yklemesi iin -HUP sinyalini gndermek yeterli olacaktr.
xinetd srecinin numarasn, olduka uzun olan ps e listesinde gzle aramak yerine bu listeyi grep filtresinden geirebilirsiniz.
grep komutunun gzip veya compress ile sktrlm dosyalar iinde de arama yapabilen bir varyasyonu vardr: zgrep.
Sisteminizin /var/log dizinindeki dosyalara bakarsanz bazlarnn isimlerinin 1.gz, 2.gz gibi karakterlerle bittiini grrsnz. Bunlar sistemin logrotate ileviyle belirli aralklarla sktrp arivledii log dosyalardr. (logrotate ile ilgili ayrntl bilgiyi kitabn Sistem Ynetimi blmnde bulabilirsiniz.) Bir dosya sktrldnda artk iinde okunabilir karakterler yer almayacaktr. Yani, sktrlm bir dosya iinde cayfer szcn grep ile aramak pek ie yaramaz. Bu sktrlm dosyalarda bir eyler arayacanz zaman grep komutunu kullanabilmek iin nce bu dosyalar gunzip gibi bir komutla amanz ve ondan sonra grep komutuyla ilerinde arama yapmanz gerekir. Ama durun bir dakika... LINUX kullandnz unuttunuz herhalde... grep yerine
zgrep cayfer /var/log/mail/*
297
komutuyla cayfer szcn /var/log/mail altndaki tm dosyalarda arayabilirsiniz. stelik zgrep, sktrlm dosyalar ve normal dosyalar ayrdedip arama ilemini ona gre yapacak, aradn bulursa da rapor edecektir.
LINUX dnyasnda alan birinin; hele sistem yneticisiyse, ok sk karlaaca bir kavramdr tar... Tape Archive szcklerinden tretilmitir. UNIX iletim sisteminin yazlmaya baland yllarda teyp makaralarna ya da kasetlerine dosya kaydetmek ve bu dosyalar geri indirmek iin gelitirilmitir. Artk teyp kullanm, yaygnln kaybetmi olsa da (aslnda byk sistemlerde hala en yaygn yedekleme ve arivleme ortam teyptir, ancak kk ofis ortamlarnda artk teyp srclere pek rastlanmamaktadr) tar dosya mant aynen ve daha da yaygnlaarak kullanlmaktadr.
tar dosyas hazrlamann ok basit bir mant vardr: tarlanmak istenen
Yukardaki emadaki gibi d1, ..., d5 isimli dosyalar tek bir d.tar dosyasnda birletirmek iin:
tar tar cvf cvf d.tar d.tar d? d1 d2 d3 d4 d5
veya
komutlarndan biri kullanlabilir. tar dosyalar, ya da LINUX jargonuna uygun olarak sylemek gerekirse, tar yumaklar (tar balls) son yllarda program paketlerini tamak iin en ok kullanlan yntemdir. Windows dnyasnda da ayn bu ekilde ok kullanlan bir dosya paketleme yntemi vardr: ZIP. Diyeceksiniz ki ZIP dosyalar pepee ekliyor eklemesine ama hem dosyalar sktrarak toplam paketi kltyor hem de alt dizinleri de paketin iine yerletirebiliyor.
298
Bir kere u noktada anlaalm: Windows serisi iletim sistemleri kiisel kullanm iin tasarmlanmtr ve bu kavram iinde de olduka baarldr. Oysa UNIX, 30 yldan fazla bir sredir gelitirilmektedir ve profesyonel kullanm iin tasarmlanmtr. Bu nedenle biliim dnyasnda Windowsun yapp da LINUXun yapamadklar deil, bunun tam tersi konuulur. Szn ksas
tar -cvzf web_cayfer.tgz ./public_html
komutuyla /home/cayfer/public_html dizini altndaki hereyi web_cayfer.tgz dosyas iine sktrarak paketleyebilirsiniz.
imdi tar komutunda kullanlabilecek baz nemli parametrelere ve tarn ok kullanld ilere bir gz atalm:
tar Parametreleri c Create: tar dosyas yaratlacan belirtir.
t Table of contents: Bir tar dosyasnn ieriinin listeleneceini belirtir. v Verbose: Bir tar dosyas yaratlrken ya da alrken elden geen
299
Yani, dosya yaratlyorsa sktrlarak yaratlacaktr; dosya zlyorsa, ncegunzip ile almas gerektiini belirtir.
dosyasnn adnn komut satrnda verileceini belirtir. tar dosyas yaratrken, yaratlacak dosya adnn verileceinin belirtilmesi biraz garip geldi, deil mi? Evet, haklsnz ama diskte gerek bir dosya yaratmakszn tar dosyas oluturmak olduka anlamldr. Bu ekilde kullanmn bir rneini tar Komutu ile Yedekleme bal altnda bulabilirsiniz.
alma dizininde yer alan ve isimleri dat ile biten tm dosyalar dat_dosyalar.tar adyla birletirir. Ayn ii dosyalar sktrarak yapar. Sktrma ii gzip program kullanlarak yaplr.
dat_dosyalar.tar *dat
tar -tf
dker.
aar.
tar -xvf
dat_dosyalar.tar
birinci.dat
y alma dizinine aar. Eer amak istediiniz dosya, tar dosyas oluturulurken bir dizin altnda yer alyor idiyse, bu dosyay aarken o dizini de belirtmelisiniz. (tar -xvf d.tar /home/cayfer/mail gibi.)
300
/home dizinindeki hereyi birinci SCSI teyp birimindeki kasete kaydeder (st0) ve ii bitirince kaseti baa sarar. (r: rewind) /home dizinindeki hereyi birinci SCSI teyp birimindeki kasete kaydeder (st0) ve ii bitirince kaseti kald yerde brakr. (nr: no rewind) /home/cayfer dizini hari, /home altndaki tm dosya ve dizinleri yedek.tar dosyasnda sktrarak birletirir. -cvzf yedek.tgz /home -exclude /home/cayfer /home
tar
tar programnn yaratt dosyalarn uzantlar .tar ya da .tar.gz olmak zorunda deildir. Ancak tar dosyalarn bu ekilde isimlendirmek nemli bir alkanlnz olmaldr. Aylar sonra karnza kan bir dosyann tar dosyas olduunu hatrlamayabilirsiniz; ancak isim verirken .tar veman iin hatrlarsnz.
tar programnn c, v, f gibi parametrelerinin bana - iareti koymak zorunda deilsiniz, yani tar cvf home.tar /home geerli bir komuttur.
301
elbette daha gvenli olacaktr. Artk yedekleyeceiniz dosyalarn deerine gre kendiniz bir strateji gelitirirsiniz naslsa... Yedekleme amacyla bu kopyalama iini sistem yneticisi sfatyla, yani root kimliiyle yapmanz gerektiinde sizi kk bir sorun bekliyor olacaktr:
Tipik bir UNIX bilgisayarda /home dizini altnda kullanclarn kiisel dizinleri yer alr. Normal koullarda her kiisel dizinin ve altndaki dosyalarn sahibi farkl kullanclar olacaktr. root kullanc olarak
cp -r /home /disk2
Bu durumda yedekleri geri indirmeniz gerektiinde indirilen tm dosyalarn sahiplerini yeniden dzenlemeniz gerekecektir. Zor i! Oysa, tm dosya ve dizinlerin batan gerek sahiplerinin kimliiyle yedeklenmesi ok daha anlaml olurdu. Bu nedenle cp komutunu yedekleme iin kullanmanz nermeyiz. Aslnda LINUX iletim sisteminin basit kopyalama komutu olan cp program -p parametresiyle bu sorunu ortadan kaldrabilmektedir; yani, deiik kullanclara ait dosyalar
cp -rp /home /disk2
gibi bir komutla (-p parametresini kullanarak) kopyalarsanz, kopyalanan dosyalar yeni yerlerinde asl sahipleri ve eriim zellikleriyle birlikte kopyalanr. Ancak bu zellik standart bir UNIX zellii olmad iin LINUX dndaki UNIX trevlerinin hepsinde ie yaramaz. Sistem yneticisi olarak yedek almanz gerektiinde tar kullanmaya almanz daha yararl olacaktr.
tar komutu yedekleme komutlar arasnda en kullanl olandr. Bir tar yuman zmek zere gerekli tar komutunu root kullanc kimliiyle verdiinizde bile zlen tm dosya ve dizinler orijinal sahiplerinin kimliine uygun olarak zlr. tar komutunun -f parametresini hatrlyor musunuz? Hani yaratlacak tar dosyasnn adn vereceinizi belirten parametre... Bu parametreden sz
302
ederken tar komutunu bir tar dosyas yaratmadan da kullanmak olasdr demitik. Evet; imdi bu garip olay aklamann zaman geldi: Diyelim ki bilgisayarnza ikinci bir disk taktnz ve /home dizinini bu yeni diske tamak istiyorsunuz. /home dizininizdeki dolu alan 24 GB olsun, yeni diskiniz de 40 GB olsun. cp -r /home /disk2 komutunun i grmeyeceini anlatmtk. Peki, nce:
tar
komutuyla /home dizininin /disk2 zerinde bir tar yuman olutursak, sonra da
cd /disk2 tar -xvf eski_home.tar
-cvf
/disk2/eski_home.tar
/home
komutlaryla bu yuma /disk2de asak olur mu acaba? Aslnda olmaz! nk ikinci diskinizde yeteri kadar bo yer yok! 40 GBlk disk zerine hem 24 GBlk bir tar yuman hem de bu yuman alm halini sdramazsnz! tar komutunu -z parametresiyle birlikte kullanp tar yuman kltmeyi dnebilrsiniz ama bu taklalara hi gerek yok! zm UNIXin zerafetinde yatyor. Ayn anda iki tane tar program balatp, birinin yaratt tar yuman arada hi disk kayd yapmadan, yani tar dosyas oluturmadan, ikinci tar programna pompalayabilirsiniz:
tar -cv /home/cayfer (cd /disk2; tar -x) --
Dikkat ederseniz iki LINUX komutu birlikte balatlyor: 1. tar -cv /home/cayfer 2. (cd /disk2; tar -x) Bunlardan birincisi (tar cv /home/cayfer) -f parametresi verilmeden kullanld iin, yani yaratlacak tar dosyas belirtilmedii iin, oluturaca tar yuman standart ktya gnderecektir. kinci komut bileik bir komuttur. Noktal virglle ayrlm iki komuttan oluan ve parantezler arasna yazlm olan bu bileik komut da tar komutuyla birlikte balatlacaktr.
303
Bu bileik komut, girdisini pipe ilemiyle bir nceki komutun ktsndan alacaktr. Bileik komutun ilk paras cd /disk2 olduu iin nce alma dizini /disk2 olarak deitirilecek, sonra da tar komutu x parametresiyle altrlacaktr. Bu ikinci tar komutunda da -f parametresi kullanlmad iin zlecek tar yuma standart girite aranacaktr. Birinci tar program bir yandan yuma olutururken ikinci tar program da bu yuma yeni dizine zecektir. (cd /disk2; tar -x) bileik komutu yerine tar -xC /disk2 komutu da kullanlabilirdi elbette.
tar -x
i biraz daha kartralm isterseniz: Birinci tar programn bir bilgisayarda; ikinci tar programn da bir baka bilgisayarda (ikisinin de UNIX bilgisayar olmas kaydyla elbette) altrarak yedeklemeyi bir baka bilgisayar zerine yapmaya ne dersiniz?
tar -cv /home/cayfer | rsh 192.168.1.2 (cd /yedek; tar -x)
Evet, birinci tar komutu sizin makinenizde alrken ikinci tar komutu 192.168.1.2 IP numaral bir baka makinedeki /yedek dizini alma dizini iken alacak. Bu komutun alabilmesi iin 192.168.1.2 IP numaral bilgisayarda, sizin bilgisayarnz tarafndan komut altrlmasna izin verilmi olmas gerekir ki bu da baka bir blmn konusudur. tar Komutunu Kullanrken Dikkat Edilmesi Gereken Noktalar istiyoruz.
tar komutunu kullanrken ok tekrarlanan baz hatalara dikkatinizi ekmek
tar -x
tar komutu, tar dosyas yaratrken dosya ve dizin ayrm yapmaz. Parametre olarak verilen dosya kalbna uyan her ey tar dosyasnn iine paketlenir.
304
tar -cvf yedek.tar * komutu (alma dizinindeki her eyi yedek.tar dosyas olarak birletir gibi okunan komut) aslnda tam olarak istediiniz ii yapmayacaktr. Komutun bu ekilde kullanlmas durumunda ad . (nokta) ile balayan dosyalar tar dosyasna dahil edilmeyecektir. Adlar noktayla balayan dosyalar da paketlemek istiyorsanz tm dizini tarlamak zorundasnz. Bir dizinin tmn paketlerken istemediiniz alt dizinleri -exclude parametresiyle paket dnda brakabileceinizi unutmayn. tar program, dosya zerken diskte ayn isimde bir dosya/dizin olsa bile uyarmadan zerine yenisini indirecektir. Diskteki eski dosyalarn zerine kayt yaplmamas iin -k (keep) parametresini kullanabilirsiniz.
tar program, tar dosyas yaratrken balantl dosyalar (linkleri) kopyalamaz ve bu balantlar izlemez. rnein /var/spool/mail dizini /disk2/mail dizinine linkli ise, /var dizini paketlenirken /var/spool/mail dizininde grnen ama aslnda /disk2/mail dizininde yer alan dosyalar pakete alnmaz. Alnmasn istiyorsanz -h parametresini kullanmalsnz.
rsh Komutu
rsh
Bir nceki sayfada, bir dizinin, olduu gibi bir bilgisayardan bir bakasna transfer edilmesine ilikin tar rneinde
192.168.1.2 (cd /yedek; tar -x)
eklinde bir komut kullanmtk. Ad Remote Shell szcklerinin ksaltmasndan gelen rsh komutu, bir bilgisayarn terminalinde alrken, baka bir bilgisayarda komut altrp, o komutun varsa rettii STDOUTa gidecek grnty altnz terminale alabilmek iin kullanlr. rnein, 168.4.4.2 IP adresli bilgisayarda alrken 139.179.211.10 IP adresli bilgisayardaki kiisel dizininizdeki dosyalarn listesini grmeniz gerekirse; ikinci bir terminal ekran ap, orada 139.179.211.10 bilgisayarna telnet veya ssh ile balanp ls komutunu vermeniz gerekmez. Bu uzun yntem yerine 168.4.4.2 IP adresli bilgisayarn terminal penceresinde
305
rsh
komutunu verirseniz ls /home/cayfer komutu, 139.179.211.10 IP adresli bilgisayarda altrlacak, dosya ve dizin listesi, komutu verdiiniz terminal penceresine listelenecektir.
ssh, telnet yerine kullanlabilecek, daha dorusu kullanlmasn hararetle
139.179.211.10
ls
/home/cayfer
Buraya kadar ok iyi; ama nlem alnmazsa, rsh komutu insan dehete drecek bir gvenlik riskini de yannda getirecektir. Dnsenize; yerini bile bilmediiniz bir bilgisayardan birileri sizin bilgisayarnza ynelik olarak
rsh 168.4.4.2 /bin/rm -r /etc
komutunu verirse neler olur? te bu yzden rsh komutunun altrlabilmesi iin zel izin gerekir. Bu zel izin iki ekilde verilebilir: 1. Her kullanc kendi izinlerini kendisi dzenler. 2. Sistem yneticisi tm sistem iin geerli izinleri dzenler. Kullanclar kendi kimlikleriyle ilgili izinleri dzenlemek iin kendi kiisel dizinlerinde ad .rhosts olan bir dosya (dosyann adnn bandaki noktaya dikkat!) hazrlarlar. Bu dosyada, rsh komutunun hangi bilgisayarlardan, hangi kimliklerle verilmesi durumunda komutun altrlabilecei belirtilir. rnein cayfer isimli kullanc kendi kiisel dizininde (/home/cayfer), iinde
139.179.210.4 www.abc.com.tr www.xyz.edu.tr murat omer
139.179.210.4 bilgisayarndan kullanc ad cayfer olan kullancya bu bilgisayara ynelik olarak cayfer kimliiyle rsh komutu verme yetkisi verilmi olur. Ayrca,
306
www.abc.com.tr bilgisayarndan murat ve www.xyz.edu.tr bilgisayarndan omer kimlii ile verilen rsh komutlarnn cayfer kimliiyle altrlmasna izin verilmi olur. Eer bir baka bilgisayardaki tanml tm kullanclarn sizin bilgisayarnzdaki ayn isimle tanmlanm kullanc kimlikleriyle rsh komutunu altrmalarna izin vermek istiyorsanz her kullanc dizinine teker teker .rhosts dosyas yerletirmektense bir /etc/hosts.equiv dosyas yaratp iine dier bilgisayarn ya da bilgisayarlarn IP adreslerini veya ak adlarn yazabilirsiniz. rnein, bilgisayarnzda /etc/hosts.equiv dosyas varsa ve iinde
139.179.2.123 abc.xyz.edu.tr
satrlar yer alyorsa, 139.179.2.123 ve abc.xyz.edu.tr bilgisayarnda kaytl kullanclar, sizin bilgisayarnza ynelik rsh komutu verebilirler. Sizin bilgisayarnzda da ayn adla tanml kullanclar olmas kaydyla, rsh ile gnderilen bu komut(lar) sizin bilgisayarda altrlacak, varsa komutun STDOUTa gnderecei mesajlar, rsh komutunu veren bilgisayara gnderilecektir. Hatrlarsanz, daha nce LINUXta kullanc tanmlarnn isimle deil, kullanc numarasyla tutulduunu sylemitik. Uzaktan altrlan komutlarda kullanc tanmlamas bunun bir istisnasdr. Ayn insana ait hesap adnn iki deiik bilgisayarda ayn kullanc numarasyla kaydedilmesini salamak neredeyse olanaksz olduu iin, rsh izni dzenlemelerinde numara deil, isim esas alnr.
rsh aslnda UNIXte Remote Commands (Uzaktan komutlar) olarak anlan bir komut ailesinin bir bireyidir. rsh ile ayn mantkta altrlan ve izinleri .rhosts ile /etc/hosts.equiv dosyalaryla denetlenen rcp rlogin
komutlar da birer remote command olarak kullanlabilir. ki ayr bilgisayarda yer alan dosya sistemleri arasnda dosya/dizin kopyalamak iin rcp komutunu kullanabilirsiniz. (Tabii ki .rhosts veya /etc/hosts.equiv dosyalaryla uygun izinlerin verilmi olmas kaydyla.)
307
rnein:
rcp rcp sunucu:/var/www/html/* -r /home/cayfer/public_html/* /home/cayfer 139.179.1.1:/var/www/html
gibi.
rlogin komutunu ise ifre vermeden bir baka makinedeki ayn isimli hesabnza balanmak iin kullanabilirsiniz. Ancak biz rlogin yerine ssh ko-
xargs Komutu
Kabuk programlarnn dosya ismi kalplarn ilerken karlaabilecekleri bir sorun vardr. Ama bu sorunu bir rnekle aklamak daha kolay olacak galiba... Diyelim ki bir dizin iinde 5000 dosya var ve bunlarn yarsnn isimleri *.log, gerisi de *.bak kalbnda. Siz ad *.bak kalbna uyan dosyalar silmek istiyorsunuz ve rm *.bak komutunu veriyorsunuz, ardndan da Argument list too long hata mesajn alyorsunuz. Aslnda yle bir dnnce bu hata mesajn almanz son derece normaldir. Siz rm *.bak komutunu verdiinizde, kabuk programnz alma dizininizde yer alan ve ad *.bak kalbna uyan tm dosya isimlerini bulup bunlar aralarnda birer bolukla komutunuzun rm ksmnn ardna dizmeye alacaktr. Bu kalba uyan 2500 dosya olsa ve her birinin ad 10 karakter uzunluunda olsa siz yaklak 25 Kbyte uzunluunda bir komut satr yazm gibi olacaksnz. Eh, hereyin bir snr olmal deil mi? te sizin bu komut, bash programnn komut satr iin ayrd tampon alannn dna tat iin too long mesajn alyorsunuz. UNIXte her problemin bir zm olduunu farketmisinizdir artk herhalde. te bu sorunun zm de xargs komutudur.
xargs /bin/rm --
ls *.bak
Yukardaki bileik komutun ilk paras alma dizininde yer alan ad *.bak kalbna uygun dosyalarn isim listesini retecek (binlerce dosya isminden oluan bir liste olabilir); ikinci blm de bu listedeki her bir dosya iin /bin/rm komutunu altracaktr.
308
Benzeri bir rnek daha: Diyelim ki bir dizin ve altndaki tm alt dizinlerdeki dosyalarn arasndan, iinde www.bilkent.edu.tr karakter dizisi yer alan dosyalar bulmak istiyorsunuz. lk akla gelen zm:
grep www.bilkent.edu.tr
`find .`
komutunu yazmaktr. Haydaaaa.. Bu da nerden kt diyebilirsiniz. Komutun analizi yle: nce find komutu yalnzca . dan oluan bir parametreyle balatlyor. find komutu bu haliyle alma dizini ve altndaki tm dosyalarn ve dizinlerin isimlerini listeliyor.
find komutu
` ` trnaklar arasnda yer ald iin nce bu komut altrlacak ve komutun standart ktya gnderdikleri bu trnaklar arasna yerletirilecektir. Bylece grep komutunun sonuna uzunca bir dosya ad listesi eklenmi olacaktr.
Buraya kadar her ey iyi; ancak dosya listesi ok uzunsa komut satr da bash kabuunun snrlarn aacaktr ve grep komutu altrlamayacaktr. zm iin gene xargs nereceiz:
--r
find .
mut:
309
Yukardaki komut sahibi hasan olan dosyalar arasnda adnda .dat gemeyen dosyalar silecektir.
find komutu sahibi hasan olan dosyalar listeleyecektir. Bu liste grep programna -v \.dat parametresiyle gnderilecek; -vden dolay iinde .dat geen satrlar deil; gemeyenler listelenecektir. Elde edilen bu dosya listesi de xargs araclyla /bin/rm komutuna gnderilerek dosyalar silinecektir. Bu rnekte .dat yerine \.dat yazld, yani noktann ia-
retlenmi olduu dikkatinizi ekmi olmal. Bunun nedeni udur: Eer .dat yazsaydk, bu ifade grep tarafndan herhangi bir karakter ve ardndan gelen dat olarak deerlendirilirdi. Bylece adnda sedat geen dosyalar liste dnda kalrd. Oysa basit nokta yerine \. yazmakla grepe noktay, her karaktere uyan bir joker karakter deil de, bildiimiz . olarak deerlendirmesini istediimizi belirtmi olduk.
at Komutu
at [-m] saat
Vereceiniz komutlarn belirli bir gn ve saatte balatlmasn salar. Tarih belirtmezseniz iinde bulunduumuz gn kabul edilir. Web sitenizin ana sayfasnn 31 Aralk gn tam geceyars deimesini istiyorsanz, nceden hazrlayacanz index_yeni.html dosyasnn saat tam 23:59da index.html zerine kopyalanmas iin:
at m Dec 31 23:59
komutunu kullanarak
cd /var/http/html/ /bin/cp index_yeni.html index.html
komutlarn geceyarsna bir dakika kala alacak ekilde programlayabilirsiniz. Saat belirtirken
13:30 now + 10 minutes 4pm tomorrow midnight Jun 30 4am
310
Tarih vermek istediinizde kullanmanz gereken form, aaa gg olmaldr. Burada aaa, ay isimlerinin ngilizcelerinin harfli ksaltmalarndan biri olmaldr. (Jan, Feb, ... gibi) gg ise doal olarak gndr... -m seenei ise, programn baaryla altrlmas durumunda komutu veren kullancya bir e-posta mesaj gnderilmesini salar.
at komutunu yukardaki formlardan birinde verdiinizde belirttiiniz saat-
te altrlmasn istediiniz komutlar girmenizi isteyecektir. Bu komutlar girmeniz tamamlandnda Ctrl-D tuuna basarak standart giriten girilecek verilerin bittiini belirtmelisiniz.
lacak ekilde kuyrua atyor. Ayrca bu komutun almas bitince /home/cayfer dizinindeki mesaj dosyasn da mail ayfer@ieee.org komutuyla mere e-posta olarak gnderiyor.
Aadaki rnek at komutu, /usr/local/bin/backup komutuyla /dev/hda1 diskinin yedeini alma iini gece yarsna bir dakika kala balat-
at komutuyla zamannn gelmesini beklemek zere kuyrua atlm ileri atq komutuyla grebilirsiniz.
Bu listede kuyrukta bekleyen ilerin herbirinin bir numaras (7, 8, 9) ve bekledii kuyruun ad (a) grnr. Kuyrukta bekleyen ilerin ne olduunu hatrlamak istediinizde
at -c 1
311
gibi bir komutla, rnein 1 numaral iin ayrntl komut dizisini grebilirsiniz.
Bu ayrntl dkm ilk bakta sizi dehete drebilir. nk sizin yazdnz komut satrlarnn nne bir ok kabuk komutu yerletirilmi olduunu greceksiniz. Sistem tarafndan eklenen bu komutlarn espirisi udur: Kuyrua attnz iin alma zaman geldiinde byk olaslkla siz sistemde olmayacaksnz. Dolaysyla sizin iin almakta olan bir kabuk da olmayacaktr. Eh... peki sistem verdiiniz komutu nasl bir ortamda altrsn? te bu bataki komutlar, iinizin altrlma zaman geldiinde sizin yerinize bir kabuk balatp sizin kiisel kabuk ortamnz oluturmak iindir. Bu laflar hounuza gitmediyse boverebilirsiniz. Alt taraf gece yars altrmanz gereken bir i olursa dier iletim sistemi yneticileri gibi kalkar i yerine gider, ii adam gibi elle altrverirsiniz.
at komutuyla ileri bir saatte altrlmak zere programladnz bir ii ip-
atrm n
312
komutunu kullanabilirsiniz. Burada n, almaya balamak iin zamann gelmesini bekleyen iin atq komutu tarafndan bildirilen sra numarasdr. Yani kuyruktaki bir ii iptal etmeden nce atq komutuyla o iin kuyruk sra numarasn renmeniz gerekir.
at komutunun alabilmesi iin arka planda srekli alan ve geen zaman kollayan bir yazlm olmaldr. LINUXda bu ii atd program yapar. at komutunuzun almas iin arkada atd alr durumda olmaldr. (at daemon) Eer at komutunu verdiinizde atdnin almadna ilikin bir hata mesaj alrsanz atdyi siz elinizle balatabilirsiniz. atdnin
bilgisayarnzn her alnda otomatik olarak balatlmas iin birtakm iler yapmalsnz. Bu aamada yalnzca atdnin elle balatlmasn gs-
termekle yetineceiz:
/etc/rc.d/init.d/atd start
Al srasnda otomatik balatma iini sistem ynetimiyle ile ilgili blmlerde reneceksiniz.
at komutuyla belirli bir tarih ve saat iin programlanan iler, zaman geldiinde yalnzca bir kez altrlr. Periyodik olarak, rnein, her gece yars tekrarlanmasn istediiniz iler iin at komutundan yararlanamazsnz.
Eer belirli bir iin her saat ba, her gece yars, her Pazartesi sabah 09:03de otomatik olarak balatlmasn istiyorsanz, cron yazlmndan yararlanabilirsiniz. cron yazlm dorudan bir komutla kullanlmaz. Periyodik olarak yaplmasn istediiniz ileri cron yazlmnn ayar dosyas zerinde yapacanz dzenlemelerle belirtirsiniz. Bu dzenlemeler iin de crontab -e komutu kullanlr. cron hakknda daha ayrntl bilgiyi kitabn Sistem Ynetimi blmnde bulabilirsiniz.
date, hwclock
Bazen sisteminizin saatinin yanl olduunu; biraz ileri gittiini ya da geri kaldn farkedersiniz. LINUXun saatini date komutuyla deitirebilirsiniz ama bu komut bilgisayarnzn saat devresinin ayarn deitirmeyecektir. letim sisteminin tuttuu saat ve tarihi bilgisayarn saat devresine kaydetmek iin hwclock komutunu kullanmalsnz.
313
hwclock hwclock
--systohc --hctosys
komutu ise bilgisayarn saat / takvim devresindeki zaman LINUX sistem saati olarak alr.
lynx
Bir senaryo: Yaptnz bir alma iin web adresini ezbere bildiiniz bir yerden bir dosya indirmeniz gerekti. O srada da Netscape, Konqueror veya Mozilla gibilerinden bir grafik taraycnz ak deil. Dosya indireceiniz sitenin web sayfalarnn grafik unsurlar da sizi ilgilendirmiyor.
lynx byle bir durumda ok iinize yarayacaktr. Karakter tabanl terminal
pencereleri iin yazlm kk, hzl ama yetenekli bir web taraycsdr lynx. Bellee abuk yklenmesi sayesinde indirmek istediiniz dosyaya hzla eriebilirsiniz.
314
cut
iin olduka kullanl komutlar olmakla birlikte, bazen dosyalar olduu gibi listelemek yerine baz satrlarn baz alanlarn listelemek de isteyebilirsiniz.
rnein /etc/passwd dosyasnn yalnzca hesap ismi ve kullanc ismi alanlarndan oluan bir listeye gereksinim duyduunuzda
cut -d: -f 1,5 /etc/passwd
315
Ayra belirtmezseniz ayra karakteri olarak <Tab> kabul edilir. lk 5 alan listelemek istediinizde -f1, 2, 3, 4, 5 parametresi yerine -f 1-5 parametresini kullanabilirsiniz. Elde ettiiniz liste ok uzunsa, tm LINUX komutlarnda olduu gibi cut programnn standart ktya gnderdiklerini more veya less programna ynlendirebilirsiniz.
tee
Baz durumlarda bir programn ktsn iki deiik yere ynlendirmeye gereksinim duyabilirsiniz. rnein uzun bir dosyay sralayp, sral dosyay hem less ile sayfa sayfa grntlemek hem de bu sral kaytlar bir dosyaya ynlendirmek isteyebilirsiniz.
sort adresler tee adresler.sirali less ---
komutu adresler dosyasn sralayarak sral halini tee programna ynlendirilecek; tee program standart girdisinden gelen verileri hem adresler.sirali dosyasna hem de kendi standart ktsna ynlendirecek; son olarak da less komutu bu satrlar sayfa sayfa listeleyecektir.
316
Diyelim ki ok sayda komuttan oluan bir dizi i yapmak ve bu komutlar ve aldnz yantlar sonradan incelemek zere saklamak istiyorsunuz. script program, sizi bu i boyunca, hangi komutu verdiinizi ve ne yant aldnz kada not etmekten kurtaracaktr.
script /tmp/log1
script
komutu, verildii andan balayarak Ctrl-D tuuna basncaya kadar verdiiniz tm komutlar ve bu komutlara ilikin STDOUTa gnderilen hereyi /tmp/log1 dosyasnda saklar. scripti Ctrl-D ile durdurduktan sonra bu /tmp/log1 dosyasn bir anlamda kaptann seyir defteri olarak kullanabilirsiniz.
script komutunu script -a
eklinde kullanrsanz, seyir kaytlar /tmp/log1 dosyasnn olas eski ieriine eklenir.
/tmp/log1
split
Bazen byk dosyalar kk paralara ayrmak zorunda kalrsnz. rnein 50 Mbyte uzunluunda bir dosyay bir bakasna gndermek iin e-postadan baka olananz yoksa, tek kar yol dosyay e-posta sunucularnn kabul edecei byklkte (tipik olarak 10 Mbyte) paralara blp yle gndermektir.
split komutu, dosyalar isterseniz belli byklkte paralara, isterseniz belli sayda satr ieren paralara blebilir. split -b 1m uzun_dosya parca_
uzun_dosya isimli dosyay birer megabytelk paralara (-b 1m parametresi) blecektir. Paralar oluturan dosyalarn isimleri de srasyla parca_aa, parca_ab, parca_ac, ..., parca_az, parca_ba gibi isimler ola-
caktr.
317
te yandan,
split -l 1000 uzun_dosya parca_
komutu, uzun_dosya isimli dosyay 1000er satrlk paralara (-l 1000) blecek; paralar parca_aa, parca_ab, parca_ac, ..., parca_az, parca_ba gibi isimlendirecektir. Satr uzunluklar eit deilse, doal olarak para dosyalarn byklkleri de byte lsyle ayn olmayabilecektir. Daha sonra, bu paralar tekrar birletirmeniz gerektiinde
cat parca_* > uzun_dosya
komutunu kullanabilirsiniz. Kabuk programnz parca_* dosya isim kalbn, bu kalba uyan dosyalarn isim listesine dntrrken alfabetik sralama kullanaca iin paralanm dosyalar doru srada birletirilecektir.
318
319
320
Sistem Ynetimi
Sistem Hakknda Sistemin Almas Sistemin Kapatlmas Disklerin Ynetimi Bellek Ynetimi Kullanc Ynetimi Kullanc Hesaplar Kullanc Gruplar Log Dosyalarnn Ynetimi A Ynetimi TCP/IP Ayarlar Yazc Ynetimi Yedekleme Periyodik lerin Ynetimi LILO Ynetimi Webmin root ifresini Unuttuunuzda...
10
321
UNIX sistem yneticilii bir meslektir, hem de nemli bir meslek! Internetin hzla yaylmas nedeniyle de A Ynetimi ve Sistem Ynetimi diye anlan i kollar birbirlerine iyice yaklam; hatta birlemitir. Artk sistem yneticileri a ynetiminden; a yneticileri de sistem ynetiminden anlamak zorundadr. Bir Sistem Yneticisinin ncelikli grevi sistemi ayakta tutmaktr. Bu sistem tek bir bilgisayardan oluabilecei gibi dnyaya yaylm birok bilgisayardan da oluabilir. LINUX iletim sisteminin ok gvenli olduunu defalarca tekrarladk ama sonuta insan yaps bir bilgisayar zerinde altn da unutmamak gerekir. Bir bilgisayar sisteminin dzgn almasnda; iyi servis verilmesinde belki de en nemli etken sistem yneticisidir. Yeterince iyi bir sistem yneticisi, iletim sistemi ve donanm zellikleri ne olursa olsun (Linux veya Windows; IBM veya toplama bilgisayar) baarl a hizmetleri sunmay baarabilir. Donanm arzalar, kullanc hatalar, sistem yneticisi hatalar, saldrlara yenik dme, iletiim hatalar, sahtekarlk, sabotaj gibi bir sr nedenle bir sistem kebilir. te sistem yneticileri bu klerde sistemi hzla yeniden alr duruma getirmek, k olasln azaltmak, k olduunda da zarar olabildiince kltebilmek iin almak, hem de ok almak zorundadr. Bir sistem yneticisinin ikinci ncelikli grevi ise sistemin kullanclara srekli ve gvenilir hizmet vermesini salamaktr. Bu grevin gerektirdii bir sr alt grev olmakla beraber en genel ve nemli olanlar unlardr: Sistemin kaynaklarnn verimli bir ekilde kullanlmasn salamaya ynelik nlemleri almak. letim sistemini ve uygulama programlarn gncellemek. Sistemde ykl program ve verilerin yedeklenmesi ilerini dzenlemek. Sistemin gvenliini srekli olarak denetlemek ve yeni saldr teknikleriyle yeni ortaya kan gvenlik aklarna kar nlem almak.
322
Sistem Ynetimi
Sistem Hakknda
Sistemin Almas
Sistem yneticilerinin en iyi bilmeleri gereken srelerden biri sistemin al srecidir. boot ad verilen sistemin al srecini LINUX iletim sisteminde denetleyen yazlm genellikle LILOdur. LILO; Linux Loader szcklerinden elde edilmi bir ksaltmadr. Dier bir popler al ynetici yazlm ise GRUBdur, ama bu kitapta yalnzca LILOdan sz edeceiz. Bilgisayara elektrik verilmesi ve kullancnn bir login ekranyla karlamas arasnda olup bitenleri, fazla ayrntsna girmeden de olsa, olabildiince iyi anlamanz birok sistem ynetimi konusunu kavramanza yardmc olacaktr. imdi bu al srecini adm adm gzden geirelim: 1. Bilgisayarnza elektrik enerjisi verince anakartn stndeki BIOS ipinde kaytl bulunan kk bir program almaya balar. 2. Bu program, BIOS ayarlarnza bal olarak srasyla sisteme bal disket, CD, disk srclerinin birinde iletim sistemini ykleyebilecek bir program arar. Bu program, boot sektr olarak bilinen alanda, kullanlmakta olan srcden iletim sistemini ykleyebilecek bir program olmaldr. 3. Bilgisayarnza LINUX kurduunuzda ilk diskin boot sektrne (MBR: Master Boot Record da denir) LILO yazlm yerletirilir. (Elbette, GRUB ya da bir baka boot yneticisi setiyseniz, boot sektrne setiiniz program kaydedilmi olacaktr.) 4. LILO yazlm BIOS tarafndan bellee yklenip almaya baladnda kullancya eitli al seenekleri sunabilir. rnein, zerinde hem Windows XP, hem LINUX ykl bir bilgisayarda kullancya, sistemi istedii iletim sistemiyle aabilmesi iin bir seenek listesi sunulur:
323
LILO iin gerekli ayarlar /etc/lilo.conf dosyasnda yaplr. Ancak, LILO program alt srada ortada sistemi denetleyen bir iletim sistemi olmad iin LILO, /etc/lilo.conf dosyasna eriemez. lilo.conf dosyasnda deiiklik yaparsanz, /sbin/lilo komutuyla LILOnun yeni ayarlara gre alacak ekilde yeniden hazrlanp diskin boot sektrne yazlmasn salamalsnz. 5. LILOnun sunaca seenekler arasndan LINUX setiinizi varsayarak al srecini incelemeye devam edelim... LILO, /boot dizininde vmlinuz dosyasnda bulunan LINUX ekirdiini (kernel) bellee ykler ve altrr. 6. ekirdek program, konsolun ekran kartna uygun bir grnt ayarna geer ve sisteme bal olan donanm unsurlarn tarayarak (bellek, merkezi ilem birimi, grnt kart, disk arabirimleri, ses kartlar, paralel ve seri arabirimler, a balant arabirimleri gibi) bunlar tanmaya ve ilgili src yazlmlarn (device driver) yklemeye balar. 7. ekirdek, daha sonra yine LILO ayarlarnda belirtildii ekilde root dosya sistemini (yani / dizininin olduu fiziksel diski) ilitirir (mount eder). Bu dosya sistemi ilk aamada sadece okuma iin (read-only) ilitirilir ve dizin yaps kontrol edildikten sonra, yani bu dosya sistemi iin fsck yazlm altrldktan sonra oku-yaz (read-write) kullanm iin tekrar ilitirilir. 8. Bir sonraki admda, sisteminiz ak kald sre boyunca, 1 sre numarasyla srekli alacak olan init program balatlr. Bu sre, sistemi kullanma hazr hale getirmek iin /etc/inittab dosyasnda belirtilen ayarlara gre bir dizi kabuk program altrarak sistemin alma dzeyini (run level) aama aama arttrr.
324
Sistem Ynetimi
alma dzeyleri, iletim sisteminin hangi yeteneklerinin almaya baladn belirler. Tipik bir LINUX sisteminde yedi alma dzeyi vardr: 0: Sistemin kapanma ilemlerinin balatld dzey. (Halt Level) 1: Tek kullancl alma dzeyi. (Single-user) 2: A destei olmadan ok kullancl alma dzeyi. 3: ok kullancl alma dzeyi. (Multi-user) 4: Bu alma dzeyi nedense kullanlmaz. 5: X Windowun almaya balad dzey. (Grafik kullanc arabirimi) 6: Yeniden balatma ilemlerinin balama dzeyi. (Reboot) Normal koullarda; yani baaryla almay tamamlam bir LINUX bilgisayar nc (X Window kullanlmyorsa) veya beinci dzeyde almasn srdrr. Sistemi kapatmak istediinizde
init 0 init 6
veya
komutlarndan biriyle sisteminizi sfrnc dzeye indirerek kapatabilir (halt-shutdown) veya altnc dzeye geirerek yeniden balatabilirsiniz. (reboot) Yapacanz bir yazlm veya veri bakm almas nedeniyle bilgisayarn baka kullanclara hizmet vermeksizin sadece konsoldaki kullancya hizmet verecek ekilde almasn isterseniz
init 1
komutuyla tek kullancl dzeye dnp, iiniz bittiinde
init 3
komutuyla tekrar ok kullanc dzeye geebilirsiniz. Tabi bu arada kullanclarnz sizi dvp salk dzeyinizi deitirmediyse... Sistemin al srasnda her alma dzeyinde yaplacak iler /etc/inittab dosyasna tanmlanr. Bu dosyann deseni ve ierii konusunda daha fazla ayrntya girmek istemiyoruz. Merakl okuyucular man
325
/etc/rc.d dizini altnda deiik alma dzeylerine geerken gerekli ve ilgili hizmetlerin balatlp durdurulmas iin kullanlan kabuk programlar yer alr. rnein, /etc/rc.d/rc5.d dizinindeki dosyalar, sistemin beinci alma
Sistem, beinci dzeye getiinde, /etc/rc.d/rc5.d dizinindeki kabuk programlarn, isimlerinin alfabetik srasna gre (ls komutuyla listelendikleri srada) altrmaya balar. Bunun gibi /etc/rc.d/rc3.d dizinindeki dosyalar sistemi nc dzeye karmak iin balatlacak ileri dzenleyen komut ve programlar ierir.
/etc/rc.d/rc.local dosyas, sistemin al tamamlandkan sonra varsa,
balatlacak ilere ilikin komutlar ierir. rnein sistemin al tamamlandnda birilerine bunun otomatik olarak haber verilmesini istiyorsanz /etc/rc.d/rc.local dosyasnn iine (sonuna olabilir)
echo `date` Sistem acildi | mail admin@bilkent.edu.tr
gibi bir satr ekleyerek her altan sonra admine al tarihini ve saatini bildiren bir e-posta gnderilmesini salayabilirsiniz. Sistemdeki eitli servisleri balatp durdurmak iin kullanlabilecek kodlar ieren dosyalar /etc/rc.d/init.d dizininde de yer alr. Bu dizindeki dosyalar, eitli sunucu yazlmlar balatp durduracak ekilde yazlm kabuk programlardr. Bu dosyalar devreye almak ve devreden karmak iin
chkconfig
komutunu kullanmalsnz.
326
Sistem Ynetimi
rnein, alrken artk sisteminizde web sunucusu yazlm olan httpdnin balatlmasn istemiyorsanz
chkconfig --del httpd veya chkconfig httpd off
komutunu verebilirsiniz. Apache web sunucusunun sisteminiz alrken tekrar otomatik olarak altrlmasn istediinizde
chkconfig --add httpd veya chkconfig httpd on
komutu i grecektir. Bu kitabn dzeyi asndan chkconfig yazlmnn daha fazla ayrntsna girmeyeceiz, ama merakl okuyucularn komutun man sayfalarna bir gz atmasn neririz.
/etc/rc.d/rcn.d dizinlerindeki program dosyalar aslnda birer dosya deil; /etc/rc.d/init.d dizinindeki program dosyalarna balantdr; (link) /etc/rc.d/init.d dizinindeki dosyalar sistem yneticilerinin olduka sk
olarak kullandklar aralardr. rnein, bir yazlm konfigrasyon deiiklii nedeniyle sisteminizin web sunucusu yazlmn durdurup yeniden balatmanz gerekirse (sistemi kapatp amay aklnza dahi getirmeyin; o yntem eski iletim sisteminizde kullandnz bir yntemdi) vermeniz gereken komut
/etc/rc.d/init.d/httpd restart
olacaktr. Bu linklerin isimlendirilme sistemi, alma dzeyi deiirken her bir kabuk programnn nasl bir parametreyle ve hangi srada altrlacan gsterir. Ad S ile balayanlar start parametresiyle; K ile balayanlar stop parametresiyle (kill) altrlr. Aslnda birok yazlm, konfigrasyon deiikliklerinden sonra, durdurulup tekrar balatlmak yerine bu deiikliin kendilerine bildirilmesiyle yetinir. rnein, DNS sunucunuzda yeni bir sembolik isim tantm yaptnzda na-
med isimli sunucu yazlm durdurup balatmak yerine, ps komutuyla named programnn sre numarasn renip, bu srece HUP (hang-up) mesajn gnderebilirsiniz. named yazlm, HUP mesaj aldnda konfigrasyon dosyalarn yeniden okuyacak ekilde programlanmtr.
327
Sistemin Kapatlmas
Tm UNIX bilgisayarlarda olduu gibi LINUX iletim sisteminin de adabna uygun bir ekilde kapatlmas gerekir. Her ne kadar disklerinizi ext3, reiserfs gibi dosya sistemleriyle dzenleyerek enerji kesintilerine kar nlem alm olsanz da, sistemleri dzgn kapatmak her zaman iin iyi bir alkanlktr. Bir LINUX bilgisayar kapatmann en kolay yolu, root kullancnn herhangi bir terminalden
shutdown -h now
komutunu vermesidir.
init 0
komutu da sistemin alma dzeyini sfr yapmak; yani kapatmak iin kullanlabilir. KDEnin grafik ekrann kullanarak sistemi kapatmay zaten imdiye kadar oktan kefetmi olmalsnz. Acemilik dnemlerinizde bilgisayar kapatp amaya (bir dier deyile reboot etmeye) gereksinim duyabilirsiniz. Bu gibi durumlarda
reboot
komutunu da kullanabilirsiniz.
Deneyimli sistem yneticileri sistemlerini reboot etmekten pek holanmazlar. Bir eyler aksamaya balad zaman bu aksakla hangi srecin neden olduunu bulup o sreci durdurmaya alrlar. Bu yneticiler iin sistemlerinin uzun sre kesintisiz almas (sistemin ne kadar zamandr up olduu) bir vn kaynadr. LINUX dnyasnda up sreleri genellikle aylarla llr. Windows sistem yneticilerine biraz garip gelebilir ama iletim sistemi srm gncellemeleri ve donanma mdahale dnda LINUX sistemlerini kapatmaya gerekten pek fazla gerek olmaz.
328
Sistem Ynetimi
Pek kolay kolay olmaz ama, sisteminize komut veremediiniz bir duruma derseniz tek zm bilgisayarnz anahtarndan kapatp amak olacaktr elbette. X altnda bir kilitlenme sorunu yaarsanz Ctrl-Alt-F1 tularyla grafik olmayan bir konsola geip sistemi toparlamanz genellikle mmkn olabilmektedir. Ctrl-Alt-F1 ile elde edeceiniz konsolda root olarak sisteme girip adnda X geen tm sreleri ldrmek ie yarayabilir. Eer bu da ie yaramazsa bu konsol ekranndan reboot komutunu vererek sistemin dzgnce kapatlmasn salayabilirsiniz. Yeri gelmiken; LINUX iletim sistemi altnda bu duruma genellikle donanm arzalarndan dolay dersiniz. Eer sk sk bilgisayarnz kapatp amak zorunda kalyorsanz bellek modllerinizi, CPU soutma fann ve g kaynan gzden geirmenizi neririz.
Disklerin Ynetimi
Tm bilgisayarlarn belki de en nemli kayna diskleridir. Daha dorusu en kolay tkenen ve en kolay arzalanan; bu nedenle de en ok sorun karan kaynak genellikle disklerdir. Disklerinizi ve disk blmlerinizi baaryla ynetebilmeniz iin kitabn nceki blmlerinde anlatlm olan disk blmleme ve mount kavramlarn iyi anlam olmanz gerekir. yi bir sistem yneticisi her sabah disklerinin dolu/bo oranlarn yle bir gzden geirip, gerekirse sabah temizlii yapmaldr. Daha da iyi sistem yneticileri bu ileri otomatik yapacak kabuk programlar yazp, cron ile her sabah almasn salarlar. Disklerin dolu-bo oranlarn ve durumlarn gzlemek iin en uygun komut
df -h df -k
veya
komutudur.
329
Greceli olarak hzl byyen sistem dosyalar genellikle /var/log altndaki log dosyalardr. /tmp dizini de, herkesin yazma hakk olmasndan dolay disklerin kolayca dolmasna neden olan bir dizindir. Bu dizinleri zaman zaman kontrol edip, eski ve byk dosyalar silmelisiniz.
/var/log dizinininde sistemde olup biten hereyin kaydedildii dosyalar
yer alr; bu nedenle bu dizinin diskte kaplad alan srekli artar. Her ne kadar logrotate sreci bu dosyalar dnml olarak deitirip, eskileri kaldrp atsa da, bu dizin hi deilse haftada bir gzden geirilmelidir. Bir dizinin diskte ne kadar yer harcadn merak ettiinizde
du -s /home/cayfer
330
Sistem Ynetimi
du komutu dizinde yer alan dosyalarn toplam bykln 1024 byte uzunluundablok cinsinden verir. Dikkat ederseniz du komutu, -s
(summary) parametresiyle ilgilendiiniz dizinin diskte igal ettii toplam kapasiteyi; -s parametresi olmadan kullanrsanz da alt dizinlerin toplam disk alanlarn rapor ediyor. fdisk Disklerin blmleme tablolaryla ilgili ilemler iin kullanlr.
fdisk /dev/hda
gibi bir komutla birinci IDE kanalndaki ilk diskin blmleme tablosu zerinde almaya balayabilirsiniz. Blmleme tablolaryla oynamak tehlikelidir. Ne yaptnz bilmeden dolu diskler zerinde bu komutu denememenizi neririz.
fdisk programna verilebilecek komutlar grmek iin program balattktan sonra m seimini kullanabilirsiniz.
331
mkfs fdisk ile blmlemesi yaplm disklerde disk blmleri zerine dosya sistemi yaratmak iin kullanlr. rnein:
mkfs -t reiserfs /dev/hda3
komutuyla ilk diskin nc blm zerine bo bir reiserfs dosya sistemi yaratlabilir. Ayn i:
mkfs.reiserfs /dev/hda3
komutuyla da yaplabilirdi. mkfs komutunun -t ile belirtilen parametreleri arasnda ext2, msdos gibi seenekler de bulunmaktadr. -t ile yaratlacak dosya sisteminin tipini belirtmezseniz ext2 kabul edilir. mount
mount komutuyla sisteminizde disk blmlerindeki dosya sistemlerinin
balanm olduu dizinleri grebilir; bunlar zebilir, bal olmayanlar balayabilirsiniz. Daha nce ayrntl olarak akladmz mount komutunu
332
Sistem Ynetimi
burada yalnzca disk ynetimi ile yakndan ilgili olmas dolaysyla tekrar andk. showmount -a
Bu komutla, bilgisayarnzda NFS zerinden paylama ak disklerin kimler tarafndan kullanlmakta olduunu grebilirsiniz.
Yukardaki rnek listeye gre lists makinesi zerinde paylama alm olan /bcc, /home/htpd, home/cayfer dizinleri cayfer makinesi tarafndan; /disk2/mdk9.0 dizini de loj08031 makinesi tarafndan kullanlmaktadr. NFS paylam bir UNIX bilgisayar zerindeki dizinlerin baka UNIX bilgisayarlar tarafndan mount edilebilmesini salayan servistir. Bu servisin denetimi, yani hangi dizinlerin hangi makineler iin, bunlardaki hangi kullanclar iin paylama alacann denetimi /etc/exports dosyas ile yaplr.
/projeler dizinine cayfer isimli makineden gelen balant isteklerine (mount isteklerine) okuma yazma ve tam yetkiyle eriim hakk verilmi. cayfer isimli makinenin IP adresi ncelikle /etc/hosts dosyasndaki listeden; orada yoksa DNS servisi zerinden aratrlr.
333
/bcc dizinine bcc.bilkent.edu.tr andaki tm makinelerden oku-yaz olarak eriilmesine izin verilmi.
resli makineden oku-yaz olarak eriilmesine izin verilmi ve bu eriimin root yetkisi ile yapabileceini belirtilmi. (no_root_squash parametresi.)
/pub dizinine heryerden yalnzca okumak iin izin verilmi, ancak erien herkesin kullanc kodunun nobody kabul edilmesi ve paylalan /pub dizinindeki dosya eriim yetkilerinin bu kullanc koduna gre dzenlenmesi iin gereken ayar yaplm. /pub dizinine herkese eriim hakk verilmi olmasna ramen bu dizinin altndaki /pub/ozel dizinine hibir ekilde dardan eriilememesi salanm.
/usr dizinine bilkent.edu.tr andaki tm makinelerden yalnzca okumak iin eriilmesine izin verilmi. (ro)
/etc/exports dosyasnda bir deiiklik yapldnda; rnein /home/cayfer/public_html gibi bir dizini paylama amak iin gereken
satr eklendiinde
exportfs /home/cayfer/public_html
komutuyla paylam balatabilirsiniz. Paylalmakta olan bir dizini dardan eriime kapatmak istediinizde
exportfs u /pub
tm paylamlar kapatr.
exportfs a
/etc/exports dosyasnda ad geen tm paylamlar aar. /etc/rc.d/init.d/nfs kabuk program NFS servislerini balatp durdur-
334
Sistem Ynetimi
gibi...
Eer LINUX makinenizdeki bir dizini bir Windows makinenin eriimine amak istiyorsanz NFS servisi iinizi gremeyecei iin; daha dorusu Windows iletim sistemi NFS servislerinden nasl yararlanlacan bilmedii iin; samba servisini kullanmalsnz. samba servisi bir LINUX bilgisayarn ler. ok ilgintir ki, zerinde samba alan bir LINUX makine, ayn donanm zerinde alan bir NT sunucudan performans asndan daha baarldr. Gene politikaya girdik... Burada keselim, yoksa kalp kracaz.
NT snf bir sunucu gibi almasn salar. Bir baka deyile, Windows
lsof Bilgisayarnzda bir ekilde kullanlmakta olan ak dosyalar ve soketleri listelemek iin kullanlr. (Soket, TCP/IP programlamayla ilgili bir kavramdr. Ne anlama geldiini bilmiyorsanz zerinde durmaynz.) eitli internet hizmetleri veren tipik bir LINUX bilgisayarnda bu listede 10.000den fazla dosya yer alabilir; dolaysyla listeyi gzle taramak pek anlaml deildir. lsof genellikle kts grep ve more ile filtrelenerek kullanlarak belirli bir kulla-
335
ncnn am olduu dosyalar ya da belirli bir programn kulland dosyalar gzlemek iin kullanlr.
lsof grep cayfer more ---
gibi.
Bellek Ynetimi
LINUX iletim sisteminde bellek ynetimiyle ilgili pek fazla iiniz olmayacaktr. Eksik bellekle alyorsanz, elbette ki performans sorunlarnz olacaktr. LINUX genellikle bellek eksiklii hakknda dorudan ikayet etmez. Eer takas alan (swap partition) olarak ayrdnz disk blm yetmiyorsa bellek yetersizlii ile ilgili mesaj alabilirsiniz. Takas alan, gerek bellein yetmeme durumunda iletim sisteminin diskten yararlanmas iin kullanlr. alan bir srece bellek tahsis etmek gerektiinde, ana bellekte yer kalmadysa, beklemede olan sreler kaldklar yeri ve durumu iaretleyen bilgilerle birlikte diske atlr, bylece kazanlan bellek gereksinim duyan srece tahsis edilebilir. Bu yntem doal olarak programlarn almasn ok ciddi ekilde yavalatr. Takas alan kullanmann mant, bellek yetersizlii yznden programlarn kesilmesini nlemektir; yoksa kesin bir zm deildir. Takas alannzn kullanmn sk sk gzleyip, ar kullanlmaya balanrsa sisteminizin belleini arttrmalsnz. Takas alan kullanmyla ve srelerin bellek kullanmyla ilgili bilgileri top komutuyla alabilirsiniz.
336
Sistem Ynetimi
Eer takas alan hi kullanlmyorsa bilgisayarnzda gereksiniminizden daha fazla bellek var demektir. Ziyan etmemek iin birazn o makineden skp bir bakasna takabilirsiniz. Takas alan az geliyorsa ilk akla gelen diskin takas alann bytmektir ancak bu disk blmlemesinin deitirilmesini gerektirir; bu da doal olarak nce yedekleme, sonra diski yeniden dzenleyip (formatlayp), dosya sistemlerini yeniden oluturma ve yedekleri geri ykleme demektir ki, bu ilemler alan bir sistem iin uzun sreli bir kesinti demektir. Takas alannz yetersiz kaldnda, takas alan olarak ayrlan disk blmn yeniden oluturmak yerine takas alanna ek yapmay dnmelisiniz. Bu yntem, tek bir takas alan kullanmak kadar yksek performans salamasa da sisteminizi yeniden kurmay gze alacanz zamana kadar idare edecektir. Bunun iin nce disklerinizden birinde uygun boyda bir takas dosyas yaratn:
dd if=/dev/zero of=/tmp/ek_takas bs=1024 count=100000
komutu, /tmp altnda yaklak 100 Mbyte uzunluunda ek_takas isimli bo (daha dorusu ii sfrlarla dolu) bir dosya yaratacaktr. (Dosyann blok uzunluu 1024 byte olduu iin 100.000 blok aa yukar 100 Mbyte eder.)
337
parametresi (input file) kopyalamann nereden yaplacan; of= parametresi de (output file) kopyalamann nereye yaplacan belirtir.
/dev/zero, ayn /dev/null gibi LINUXun zel bir evre birimi veya
dosyasdr. Yalnzca okunabilir. Boyu sonsuzdur; yani bu dosyadan sonsuza kadar veri okuyabilirsiniz. Ancak, okuduunuz tm veriler 0x00, yani ikil (binary) sfrlardan oluur. Yukardaki takas dosyas yaratma komutu, /dev/zero dosyasndan herbiyasna kopyalyor. Aslnda, ii tamamen ikil sfrlarla dolu 100 MBytelk bir dosya yaratyor. ri 1024 byte uzunluunda 100000 blok okuyup bunlar /tmp/ek_takas dos-
Sonra bu dosyann sahibini root kullanc yapn ve eriim yetkilerini, bu dosyaya root dnda kimsenin eriemeyecei ekilde deitirin:
chown root:root /tmp/ek_takas chmod 600 /tmp/ek_takas /tmp/ek_takas swap swap
defaults
Takas alan deiikliklerinde bile sistemi reboot etmenize gerek olmad dikkatinizi ekti mi?
/etc/fstaba eklediiniz satr sayesinde sistemi her anzda bu takas ala-
n devreye girecektir.
338
Sistem Ynetimi
gibi bir komutla, bu dosyann takas olan olarak kullanmna son verebilir ve dosyay silip /tmp altnda yer aabilirsiniz. /etc/fstab dosyasndan ilgili satr karmay da unutmayn ki bir dahaki sistem alnda sorun kmasn.
Kullanc Ynetimi
Kullanc Hesaplar
Kullanc hesaplarnn alp kapatlmasnn yansra, kullanclarn kullanabilecekleri sistem kaynaklarn belirleme ve gerekirse snrlama ileri de sistem yneticisinin nemli grevlerindendir. LINUXta kullanc hesab amann pek ok yolu vardr; nk hesap ama temelde /etc/passwd ve /etc/shadow dosyalarna birer satr eklemekten oluur.
/etc/passwd dosyas, adnnn aksine ifrelerle ilgili hibir bilgi iermez. Eskiden, tm UNIXlerde /etc/passwd dosyas kullanclarn ifre dahil her trl bilgisinin tutulduu dosya idi. Ancak, internet yaygnlatka gvenlik sorunlar da artmaya balad. Kullanm mant gerei /etc/passwd dosyasnn herkesin okuyabilecei bir dosya olmas, kt niyetli kiilerin kriptolanm da olsa kullanc ifrelerini alp baka bilgisayarlarda deneme yanlma yoluyla krma abalarna yol at. Bunun zerine /etc/passwd dosyasnn ifre hari tm zellikleri aynen korunacak ekilde ifrelerin baka dosyaya, yani /etc/shadow isimli bir dosyaya tanmas kararlatrld ve root kulla-
339
nc dnda herkesin bu dosya zerindeki tm yetkileri kaldrld. Artk modern UNIX uyarlamalarnn hemen hemen hepsi kullanc ifrelerini /etc/shadow dosyasnda saklamaktadr. Yeri gelmiken; UNIX dnyasnda kullanc hesaplarn ve ifrelerini saklamann tek yolu /etc/passwd ve /etc/shadow dosyalar deildir. Bu iki dosya, en yaygn olarak kullanlan yntemlerdir. Bir hesap amak ya da kapatmak iin bu dosyalar vi ile dzenleyebileceiniz gibi bu ii sizin yerinize yapacak zel aralar da kullanabilirsiniz. KDE ortamnda kullanc hesaplarnn ynetimi iin userdrake kullanabilirsiniz. Yeni kullanc tanmlarken terminal penceresinden komut vermeyi yelerseniz
adduser -c Can Ugur Ayfer -d /home/cayfer cayfer
komutundan yararlanabilirsiniz. Bu komutun aslnda daha birok parametresi vardr; ancak gnlk kullanmda daha fazlas pek gerekmiyor. Komutun ayrntlarn renmek isterseniz komutu parametresiz olarak verin. Kendi kullanm klavuzunu kendisi grntleyecektir. Hatrlarsanz kitabn balarnda UNIXte kullanc kodlarnn ok da anlaml olmadn, esas kimlik belirleyicisinin saysal kullanc numaras olduunu belirtmitik. te bu konu imdi gene gndeme geldi. adduser komutu, yeni tantlan kullanclara numara verme iini kendisi halleder; bunu yaparken de en son verilmi numarann bir fazlasn seer. Bir nedenle kullanclarnza kendiniz numara vererek hesap amak isterseniz, adduser komutunun -u parametresinden yararlanabilirsiniz. Bazen kodunu bildiiniz ama ak adn hatrlayamadnz; ya da tam tersine, ak adnn bir ksmn da olsa bildiiniz ama kodunu hatrlayamadnz kullanclar olacaktr. Bu gibi durumlarda
finger
komutu ok iinize yarayacaktr. Komutu finger ayfer eklinde verirseniz, kullanc ak adnda ayfer geen kullanclarn; finger -m ayfer eklinde verirseniz de, kullanc kodu ayfer olan kullancnn ayrntl bilgilerine eriirsiniz.
340
Sistem Ynetimi
Kurulum srasnda finger programnn kurulmasn zellikle istemediyseniz yukardaki finger komutu rneklerini denemek istediinizde finger: command not found mesajn alacaksnz. sterseniz, yeri gelmiken finger programn sisteminize birlikte kuralm: Bir LINUX programn kurmann en kolay yolu o programn rpm paketini (RedHat Packet Manager szcklerinin ba harfleri) bulup, paketi rpm komutuyla kurmaktr. Kurulum srasnda kurulmam rpm paketlerini Mandrake datm CDlerinden birinde bulabilirsiniz; ama tane CD olduunu dnrseniz bunlar arasnda aramaktansa nternette aramak daha kolay olacaktr. LINUX paketlerinin gncel srmlerini indirmek iin en uygun servislerden biri www.rpmfind.net sitesidir.
341
342
Sistem Ynetimi
Bulunan rpm paketleri arasnda Mandrake datm iin hazrlanm olanlardan gncel bir srme ilikin paketi sein. Eer varsa, adnda i586, i686 geen paketlerden birini sein. Adnda src geen paketler, programlarn kaynak kodlarn ieren paketlerdir. Kurulum iin bu paketi kurduktan sonra modlleri derlemek gerekecektir. Boyere derlemekle uramamak iin adnda noarch (mimariden bamsz) geen hazr derlenmi paketleri kurmak ok daha kolay olabilir. te yandan, kendi sisteminize uyarlanmas yerinde olan programlar (rnein ekran kartnza ve cpu cinsine gre daha iyi alacak ekilde derlenebilecek mplayer video oynatcs) kaynak kodlarndan derlendiinde daha baarl olabilir.
finger komutunun rpm paketini, rnein /tmp dizinine, indirdikten sonra rpm -i /tmp/finger-0.17-4mdk.i586.rpm
komutuyla kurabilirsiniz.
komutunu kullanabilirsiniz. userdel kullanici komutu /etc/passwd ve /etc/shadow dosyalarndan kullanici ile ilgili satrlar siler. Kullancnn (varsa) kiisel dizinini de silmek isterseniz -r parametresini kullanmalsnz. Alm bir kullanc hesabyla ilgili bilgileri deitirmek istediinizde
usermod parametre[ler] kullanici_adi
komutunu
343
gibi parametrelerle kullanabilirsiniz. rnein ak ad yanllkla Can Ugur Afyer olarak girilmi olan cayfer kullancsnn ak adn dzeltmek iin
usermod c Can Ugur Ayfer cayfer
komutunu verebilirsiniz. Bu arada tekrar hatrlatmadan geemeyeceiz: Ayn ii /etc/passwd dosyasn vi ya da bir baka editr ile dzenleyerek de yapabilirdiniz.
usermod komutunun olduka kullanl parametresi daha vardr. rneusermod -e 2002-12-31 cayfer
in,
komutu, cayfer isimli kullancnn ifresini 31 Aralk 2002 tarihinde geersiz klarak bu kullancnn sisteme eriim hakkna son verecektir. Hesap kapanmayacak; ancak ifre bilinmeyen bir deere deitirildii iin sistem yneticisi yeni bir ifre verene kadar bu kullanc sisteme balanamayacaktr. Kullanclar ifrelerinin geersiz klnaca tarih yaklanca sistem bu kullanclar uyarmaya balar; ancak kullanclarn bu uyary grebilmeleri iin sisteme login olmalar gerekir. Kabuk kullanmayan kullanclar (e-postalarn POP servisiyle uzaktan okuyanlar, yani sistemi dorudan kullanmayanlar) doal olarak bu uyar mesajn gremeyecektir. Bazen sistem yneticileri bir kullancnn hesabn geici olarak eriilmez hale getirmek isterler. rnein bir hesabn bir bakas tarafndan kullanldndan phelendiinizde ya da sisteminizin kullanm kurallarna uymayan kullanclarn sisteme eriim yetkilerini geici olarak kaldrmak istediinizde
usermod -L cayfer
gibi bir komutla, cayfer isimli kullancnn hesabn kilitleyebilirsiniz. Hesab kilitlenmi bir kullancnn hesabn geri amak iin
344
Sistem Ynetimi
usermod -U cayfer
komutu kullanlabilir.
Kullanc Gruplar
Dosya eriim yetkilerini yle bir gznzn nne getirirseniz ortadaki lnn dosyann sahibiyle ayn gruptaki kullanclarn yetkileri olduunu hatrlayacaksnz. Dosya/dizin ayrm yapan iaret Sahibinin bu dosya/dizin zerindeki yetkileri Sahibi ile ayn grupta olanlarn yetkileri Dier kullanclarn yetkileri
Herkese tam yetkiye rnek Sahibi ve gruba okuma/yazma yetkisi Herkesin altrabilecei bir program
Kullanclar gruplayarak dosya ve dizinlere eriim yetkilerini dzenlemek olduka kullanl bir yntemdir. rnein, ayn yazlm projesi zerinde alan tm programclar ayn gruba yerletirip, bu projeyle ilgili dizin ve dosyalarn grup eriim haklarn istediiniz gibi verebilirsiniz. Bu arada herhangi bir kullancnn birden fazla grupta yer alabileceini de belirtmekte yarar var.
345
Bu dosyadaki grup tanm kaytlarnn genel formunda nce grubun ad, sonra varsa grubun ifresi, sonra grubun saysal numaras (kullanc hesaplarnda olduu gibi aslnda nemli olan gruplarn isimleri deil, saysal kodlardr), sonra gerei kadar virglle ayrlm olarak bu grubun yelerinin isimleri yer alr. Sisteminize yeni bir grup eklemeniz gerektiinde, uygun bir grup tantm kaydn /etc/group dosyasna herhangi bir editrle ekleyebileceiniz gibi
komutunu kullanabilir veya /etc/group dosyasn edit edebilirsiniz. Bir kullancnzn hangi gruplara dahil olduunu grmek isterseniz
groups kullanici
komutunu kullanabilirsiniz.
346
Sistem Ynetimi
Gruplarnzdan birine yeni bir kullanc eklemek istediinizde en kolay /etc/group dosyasn dzenleyerek ilgili grubun tantm kaydnn sonuna bu kullancnn adn eklemektir. rnein cayfer isimli kullancy apache grubuna eklemek iin /etc/group dosyasndaki apache grubuna ilikin satr
apache:x:48:webmaster,cayfer
olacak ekilde deitirmeniz yeterlidir. Kullanc gruplaryla ilgili olarak szn etmek istediimiz nemli bir komut daha var:
chgrp grup dosya chgrp grup dizin chgrp -R grup dizin
chgrp komutu bir dosyann, bir dizinin veya altndaki hereyle birlikte bir dizinin ait olduu grubu deitirmek iin kullanlr. ok byk lde chown komutuna benzer.
Bir kullanc sisteme balandnda kendisi iin /etc/passwd dosyasnda belirtilmi olan grup kimliine sahip olur. Oysa bir kullancnn birden fazla grubun yesi olabileceini sylemitik. Bir nedenle (ki bu genellikle eriim yetkileriyle ilgili bir neden olur) kullanc kimliinizi deitirmeden grup kimliinizi deitirmek isteyebilirsiniz. O zaman
newgrp grup_ad
komutunu kullanmalsnz. Eer bu yeni grup ifre gerektiren bir grupsa, sizden grup ifresini girmeniz istenecektir. Kullanclarn bir grup kimliine brnmek iin newgrp komutu kullandklarnda ifre sorulmasn istediinizde
gpasswd grup
347
Kullanc Disk Kotalar Ne kadar hzla ucuzlasa da bilgisayar sisteminizin en deerli kayna disk kapasitesidir. Disk kapasiteleri 5 MegaByte iken de byleydi, 100 TeraByte olduunda da byle olacak. Tipik kullanc davranlarndan birisi de hibir dosyay silmemektir. Sahipleri Sakla saman gelir zaman diye dnyor olsalar gerek, MP3 ve DIVX dosyalar kiisel dizinlerinde dner dururlar. Bu gibi durumlarda sistem yneticilerinin en nemli silahlarndan biri disk kota sistemidir. Kullanclarn kullanabilecekleri disk alanlarn kstlama ilemi her dosya sistemi iin ayr ayr yaplr, ancak pratikte kullanc kiisel dizinlerinin yer ald /home dizininin yer ald dosya sisteminde kota uygulamas yapmak yeterlidir. Kota uygulamaya balamadan nce sisteminizin ekirdeinde (kernel) kota destei olduuna emin olmalsnz. Bunun iin
grep i quota /var/log/dmesg
komutunu verdiinizde
VFS: Diskquotas version dquot_6.5.0 initialized
gibi bir yant alrsanz, sisteminizin ekirdeinde kota destei var demektir. Eer kota destei olmayan bir LINUX ekirdei kullanyorsanz, kendinize disk kotas destei olan bir ekirdek hazrlayp, bu ekirdei derleyip sistemin bu ekirdekle almasn salamalsnz. ekirdek seeneklerinde deiiklik yapp yeniden derleme, bu kitabn kapsam dnda kalan ileri dzey bir itir. ekirdek derlemeniz gerekirse baka kaynaklara bavurmanz gerekecektir. Kota uygulamaya balamak iin /etc/fstab dosyasnda, kota uygulanacak dosya sistemlerine ilikin
/dev/hda3 /home ext2 defaults,usrquota 1 1
benzeri satrlar olacak ekilde bir dzenleme yapmalsnz. (usrquota parametresini eklemelisiniz.)
348
Sistem Ynetimi
Bu deiikliin ardndan ilgili dosya sistemini yeniden mount etmeniz gerekir. Bunun en kolay yolu
mount -a
komutunu kullanmaktr. (Sisteme bal kullanclarnz varsa, byk olaslkla /home dizini altndaki kiisel dizinlerini kullanyor olacaklarndan bu komut /home dosya sistemini zp tekrar balamayacaktr. Bu nedenle mount -a komutundan nce sistemde sizden baka alan kimse olmamasna dikkat etmelisiniz.) Daha sonra bu dosya sistemi iin kota sistemini alr duruma getirmelisiniz:
quotaon /dev/hda3
gibi bir komutla diskte kimin ne kadar yer harcadnn ve harcama hakk olduunun hesabnn tutulduu aquota.user dosyasnn yaratlmasn salamalsnz. Eer birden fazla disk blmnde kota uygulayacaksanz, quotacheck komutunu herbir blm iin ayr ayr vermelisiniz. imdi sra kotasn snrlamak istediiniz kullanclar iin /home dizininde oluturabilecekleri dosyalarn toplam bykln belirtmeye geldi. Bunun iin edquota komutunu kullanmak gerekiyor:
edquota cayfer
te vi kullanmanz gerektiren bir noktaya geldiniz. Zamannda uyarmtk! vi bilmeden olmaz diye...
349
edquota cayfer komutunu verdiinizde, kota editr aadaki gibi bir pencere aarak cayfer kullancs iin soft ve hard diye belirlenen iki
soft limit, geici bir sre iin kullancya ait dosyalarn toplam uzunluunun eriebilecei deerdir. Bu geici sreye LINUX terminolojisinde grace period ad verilir. hard limit ise kullancnn uzun dnemde aamayaca toplam dosya uzunluudur. Kotann alabilecei geici sre, edquota -t komutuyla deitirilmedii srece yedi gndr. Bir kullancnn kota verileri aadaki gibi olduunda
350
Sistem Ynetimi
cak geici bir sre iin (7 gn) toplamn 220 Mbytea kadar kmasna izin verilir. Bu srenin dolmasndan sonra, kullancnn yeni dosya kaydetmesine izin verilmez.
Sistemde disk kotas verilmi olan tm kullanclar, kotalarn ve bu kotalarnn ne kadarnn kullanlm olduunu grmek iin repquota komutunu kullanabilirsiniz.
repquota -a
351
/var/log/lastlog dosyas basit bir metin dosyas olmad iin more ya da less komutuyla bu log dosyasna gz atamazsnz.
Bir sorunun kaynan bulmak iin hangi log dosyasna bakmanz gerektiine karar vermek ve bu dosyalarn iindeki kaytlar yorumlamak biraz deneyim gerektirmektedir. Merak etmeyin, ksa zamanda bu dosyalar yorumlamay reneceksiniz.
aralarndan biridir. Neredeyse sistemde olup biten hereyin bu dosyalarda bir kaydn bulabilrsiniz. /var/log/dmesg dosyasnda da sisteminizin en son al srasnda olup bitenlerin kayd tutulur. Her alta bu dosya yeniden oluturulur. Al srasnda, modller ve donanm srcleri yklendike bu dosyaya kayt dlr. Bu log dosyalarnda hep olumsuz mesajlar yer almaz; baaryla tamamlanan iler de buraya kaydedilir.
less /var/log/dmesg
komutundan da yararlanabilirsiniz.
352
Sistem Ynetimi
Log dosyalarnn esas sorunu ieriklerinin yorumlanmasndan ok devaml byyen dosyalar olmalardr. Diskiniz ne kadar byk olursa olsun, log dosyalar gnn birinde bu diski de dolduracaktr. Log dosyalarnn ar bymesini nlemek iin LINUX sistemlerde logrotate isimli bir program alr.
logrotate programnn grevi arada srada log dosyalarn arivlemek, eskiyen arivleri de silip atarak /var/log dizininin ar byyp diski doldurmasn nlemektir. rnein, logrotate program messages isimli log dosyasn haftada bir kez messages.1.gz isimli bir dosyaya dntrr ve yeni
log kaytlarn yeni bir messages dosyasnda biriktirmeye balar. Bu arada varsa eski messages.1.gz dosyas messages.2.gzye, varsa eski messages.2.gz messages.3.gzye dntrlr. Tipik olarak messages.4.gz, messages.5.gzye dntrlmeden nce, varsa messages.5.gz silinir. Bylece log dosyalar her hafta dndrlm olur. Log dosyalarn dndrlmesinde kullanlacak mantk /etc/logrotate.conf dosyasnda belirtilir. logrotate.conf dosyasna kurulum srasnda yerletirilen deerler tipik bir LINUX sunucu iin son derece uygun deerler olduu iin bunlar deitirmeye gerek duymayacanz varsayarak bu konuda daha fazla ayrntya girmek istemiyoruz.
353
A Ynetimi
Tm UNIX sistemlerde olduu gibi LINUX iin de doal a yazlm TCP/IP zerine kurulmutur. Bu nedenle LINUX a ynetimi aslnda TCP/IP a ynetimidir. TCP/IP a ynetimi balbana bir kitap konusu olduu iin bu kitapta tm ayrntlara girmemize olanak yok. Bir LINUX makinenin bir TCP/IP aa nasl balanacan ve bu balantnn nasl denetleneceini ksaca anlatmakla yetineceiz.
TCP/IP Ayarlar
Bir bilgisayarn TCP/IP aa balanabilmesi iin o aa bal en az bir a arabirimi olmal ve bu arabirim iin bir IP adresi, bir a geidi (gateway), bir DNS sunucusu ve a maskesi (netmask) tanmlanm olmaldr. Eer bilgisayarnz aa Ethernet arabirimi kullanarak balayacaksanz bu ayarlar /dev/eth0 adyla eriilen a arabirimi iin yaplmaldr. Yok balantnz bir modem araclyla yapacaksanz bu ayarlar /dev/ttyS0 gibi bir isimle anlan seri arabirim veya /dev/modem adyla anlan modem arabiriminiz iin yapmalsnz. Kablo-Net veya DSL servisi zerinden yapacanz a balantlar iin servis salaycnza danmanz neririz. zellikle DSL balantlar iin zel PPPoE (Point to Point Protocol over Ethernet) yazlmn kurmanz gerekebilir. LINUXta TCP/IP ayarlar iin en kolay kullanlan aralardan biri drakconf komutuyla da balatlabilen mandriva Control Venter yazlmdr. Bunun iin: KDE Sistem Configuration Configure Your Computer Network&Internet
seimlerini yapabileceiniz gibi root kullanc yetkisiyle almakta olduunuz bir terminal penceresinden
/usr/sbin/drakconf
komutunu verebilirsiniz. Her iki yntem de bilgisayarnzn TCP/IP ayarlarn yapmak iin kullanldr.
354
Sistem Ynetimi
355
A arabiriminiz ne olursa olsun, TCP/IP ayarlarnz kontrol etmek iin en kullanl komut ping komutudur:
ping 192.168.12.1
gibi bir komutla sizinle ayn ada yer alan bir baka bilgisayara eriip eriemediinizi kontrol edebilirsiniz. ping komutunun ad, masa tenisinden esinlenilmitir. Temel olarak orda msn? sorusu gnderip evet yantn bekleyen bir programdr. Orda msn? sorusuna hibir zaman Hayr yant gelmez.
Hattnzn kalitesini; yani paket kayb olup olmadn kontrol etmek iin 1500 byte uzunluunda paketleri srekli gnderebilirsiniz:
ping -s 15000 -c 200 192.168.12.1
gibi bir komutla sizin an dnda yer alan ve alr durumda olduuna emin olduunuz bir bilgisayar pinglemeyi deneyin. Baarsz olursanz kontrol edilmesi gereken ilk ayar a geidi ayarnzdr. Bir sonraki aama DNS sunucu ayarlarnz kontrol etmek amacyla pinglenecek bilgisayarn IP adresi yerine adn kullanmak olacaktr:
/bin/ping www.sunucu.com.tr
gibi bir komutla www.sunucu.com.tr makinesini de pingleyebiliyorsanz bilgisayarnz sembolik internet adreslerinden saysal IP adreslerini zmleyebiliyor demektir. stelik a geidiniz olan ynlendiricinin ayarlarn da dorulam olursunuz.
356
Sistem Ynetimi
drakconf iin TCP/IP ayarlarn yapmak iin kullanlan en kolay aralardan biri demitik. TCP/IP ayarlaryla ustalarn yapt gibi konsoldan oynamak istediinizde kullanmanz gereken komutlardan biri ifconfig komutudur. /sbin/ifconfig eth0 192.168.10.3 netmask 255.255.255.0 broadcast 192.168.10.255
l olduunu, almaya baladndan bu yana ka paket gnderdiini ve aldn, bu transferler srasnda ne kadar iletiim hatas olduunu
/sbin/ifconfig -a eth0
komutuyla grebilirsiniz.
rin izledii yolu gzleyebilirsiniz. Bu komut, yerel anzn internete birden fazla k olduu durumlarda ok ie yarayacaktr.
357
A balantnzn genel durumu ile ilgili ayrntl bilgi almak istediinizde netstat komutu ok iinize yarayacaktr. zellikle sizin bilgisayarnzla herhangi bir TCP/IP balants olan bilgisayarlar grmek iin ok kullanl bir komuttur. /bin/netstat -s bilgisayarnzn TCP, UDP, ICMP trafik istatistiklerini listeler. Bunlarn ne anlama geldiini bilmiyorsanz hi dert etmeyin. O kadar da nemli deil. /bin/netstat -r bilgisayarnz tarafndan kullanlmakta olan ynlendirme tablosunu gsterir. Bilgisayarnz bir ynlendirici (router) olarak kullanyorsanz ok iinize yarayacaktr.
Ynlendiriciler, TCP/IP alarn belkemiini oluturur. Ynlendiriciler birden fazla bilgisayar an birbirine balamak iin kullanlr. rnein, iyerinizdeki 50 bilgisayar internete balamak istediinizde irketinizin an internet servis salayc kuruluun bilgisayar ana balayabilmek iin bir ynlendirici kullanmanz gerekir. Bir modemle basit bir PPP balants bile kursanz aslnda bu PPP balanty salayan bilgisayar bir ynlendirici olarak grev yapacaktr. Kullanlacak ynlendiricinin a arabirim says ve eitleri balant ortamna ve a gereksinimlerine gre byk eitlilik gsterse de ilke olarak hepsi ayndr: Birden fazla a zerinde oturan ve gelip giden paketleri var adreslerine gre uygun arabirime ynelten bilgisayarlara ynlendirici (router) denir. Piyasada satlmakta olan ynlendiricilerin neredeyse tamamnn salt ynlendirme ii yapacak ekilde, disksiz olarak UNIX iletim sistemiyle alabilen birer bilgisayar olduunu dnrseniz LINUX iletim sistemi ile kusursuz bir ynlendiriciyi ok ucuza kurabilirsiniz. ok sayda meslektamz bu uygulamaya arkasnda ciddi bir firma olmad gerekesiyle kar ksa da, deneyimlerimiz 30.000 ABD dolar tutarnda yksek performansl bir ynlendirici yerine 2.000 ABD Dolar karlnda iki adet PC (bir tanesi yedek olarak hazr tutulmak zere) ve LINUX iletim sistemiyle 3 internet balants olan, yaklak 5.000 bilgisayardan oluan bir aa mkemmel ynlendirme ve ate duvar (firewall) korumas salanabileceini gstermitir.
358
Sistem Ynetimi
/bin/netstat a bilgisayarnz zerinde kurulu bulunan TCP/IP balantlarn, bu balantlarn kulland port numaralarn ve bal bilgisayarn IP adreslerini veya ak adlarn listeler.
host www.mandriva.com
eklinde kullanrsanz, bilgisayarnzn TCP/IP ayarlar arasnda belirtilmi olan DNS sunucusundan www.mandriva.com bilgisayarnn IP adresi sorgulanacaktr. Eer birden fazla DNS sunucusu tantlmsa ve birinciden yant gelmezse sorgu ikinci DNS sunucusuna ynlendirilecektir.
Komutu
359
kin sorgu TCP/IP ayarlarndaki DNS sunucusuna deil, 128.12.34.1 IP adresli bilgisayara ynlendirilir. Komutu
host 64.236.16.52
eklinde bir IP adresiyle verirseniz, verdiiniz IP adresinin hangi sembolik adrese karlk geldii sorgulanr. A yneticileri zaman zaman falanca a / makine kime ait acaba? sorusuyla karlarlar. rnein abc.com diye bir adan bilgisayarnza ynelik bir saldr olduunda bu an hangi kii ya da kurulua kaytl olduunu bulma gereini hissedersiniz. Eer an bir web sunucusu var ve burada da iletiim iin e-posta adresi, telefon numaras varsa sorun olmaz. Ancak her zaman bu bilgileri bulamayabilirsiniz. Tm internet domain isimlerinin kaydettirilmesi gereinden yola karak szkonusu an adnn kimin zerine kaytl olduunu bulabilirsiniz. (Kt niyetli kiiler gerek isim ve telefonlarn vermezler ama olsun, bir ipucudur genede...) Bu i iin whois programndan yararlanabilirsiniz. (Eer yazlm ynetimi blmnde verdiimiz rnei uygulamadysanz whois program bilgisayarnzda ykl olmayacaktr.)
360
Sistem Ynetimi
Yazc Ynetimi
Genel olarak UNIX sisteminde yazc ynetimi sistem yneticilerinin pek sevmedii bir konu olagelmitir. Ancak, LINUXun yaygnlamasyla birlikte son derece baarl ve kolay kullanlan yazc denetim sistemleri gelitirilmitir. Bunlarn gnmzde en yaygn olarak kullanlan CUPSdr. (Common UNIX Printing System) Dorudan bilgisayarnza da bal olsa, bir a yazcs da olsa, yazcnz CUPS ile ynetmenizi neririz. Doal olarak ilk i yazcnzn sisteme tantlmasdr. Bunun iin Mandriva Control Center iinde Hardware ve Printers seimlerini yaparak ie balayabilirsiniz. CUPS ile hem dorudan bilgisayarnza bal (local) yazclar; hem de a zerinden eriebilen yazclar (network printer) kullanabilirsiniz.
361
CUPS sunucunuzu bir web taraycsyla ynetebilirsiniz. Bunun iin cupsd isimli daemon yazlmnn arka planda alyor olmas gerekir. Bu son cmleyi eski konular gzden geirmek iin bir frsat olarak deerlendirmek istiyoruz
cupsd yazlmnn arka planda alp almad nasl kontrol edilir? relerin listesinden, iinde cups szc geen satrlar listeleyebilirsiniz. cupsd yazlm arka planda almyorsa nasl altrlr? trabilirsiniz. (& karakterinin ilevini hatrladnz, deil mi?) cupsd yazlm ykl deilse ne yapmal? Yklemeli... Mandriva Control Center sonra Install Software... cupsd yazlmnn sistemin her alnda otomatik olarak balamas iin ne yapmal? (Her altan sonra konsoldan root /usr/sbin/cupsd & komutuyla cupsd programn arka planda alps -ax grep cupsd komutuyla sisteminizde almakta olan tm s-
--
/usr/sbin/cupsd & komutunu vermek zorunda kalmak hi de ho deildir dorusu.) chkconfig --add cups komutuyla /etc/rc.d dizinindeki dzenlemerin yaplmasn salayabilirsiniz.
olarak
Evet, artk cupsd servisi altna gre CUPS denetimini web taraycyla yapmak zere beendiiniz web taraycsn altrp URL olarak http://localhost:631 girebilirsiniz. Web tabanl CUPS yneticisi, standard http portu olan 80 numaral port zerinden deil, kendisine zel 631 numaral port zerinden servis verir.
362
Sistem Ynetimi
Yedekleme
Sistem yneticisinin en nemli grevi ya da nemli iki- grevinden biri yedeklemedir. Bilgisayarnz hi bozulmayacakm gibi kullanmal ama her dakika kecekmi gibi yedeklemelisiniz. Arzalanan bir diski deitirmek kolay ve ucuzdur; ancak uygulama yazlmlarn tekrar batan kurmak, sistem ayarlarn yeniden yapmak, zellikle de kaytl verileri yerine koymak ok zordur. Hatta bazen olanaksz olabilmektedir. Sisteminizde yaplan ilerin nemine ve eriebildiiniz donanm kaynaklarnn zelliklerine gre kendinize zg bir yedekleme stratejisi gelitirmeli ve bu stratejiye harfi harfine uymalsnz. rnein deerli dosyalarnz ve dizinlerinizi periyodik olarak bir ikinci disk zerine ya da daha iyisi, bir baka bilgisayara kopyalamalsnz. Tipik bir LINUX sisteminde en deerli sistem dosyalar /etc, /var ve /usr/local dizinlerinde yer alr. /home da zenle yedeklenmesi gereken bir dizindir.
363
Daha nceki blmlerde yedekleme iin tar komutunu nermitik. Aslnda iki nemli yedekleme arac daha vardr: dump rsync
dump byk sistemlerde zellikle teyp kasetlerine yedekleme iin kullanlr. Kullanmas biraz deneyim gerektirir. Bu yzden bu kitapta dump komutunun ayrntlarna girmeyeceiz. dump ile yedek alrken ayda bir tam yedek
alp, sonra da her gn artml yedekleme yapabildiinizi belirtmek isteriz. (incremental backup, Trkiye Biliim Dernei, Biliim Terimleri Szl, http://www.tbd.org.tr/sozluk.html) Artml yedeklemede, en son tam yedeklemeden bu yana deien dosyalar yedeklenir. Bylece yedekleme abuk biter. Gnmzn tipik sunucu disk kapasitelerinin yzlerce gigabyte olduunu ve bu kapasiteleri yedeklemenin teyp veri transfer hzlaryla saatlerce sreceini dnrseniz artml yedeklemenin ne denli nemli olduunu kabul edersiniz herhalde.
rsync diskten diske ya da yerel bir a zerinde makineden makineye yedek-
leme iin kullanlabilen ok kullanl bir aratr. Temel mant iki dizini senkronize etmektir.
Diyelim ki alakgnll bir an ynetiminden sorumlusunuz ve ortalkta baz nemli dizinlerini yedeklemek istediiniz on tane makine var. Her gece yars bu makinelerden rcp komutuyla yedeklemek istediiniz dizin ve dosyalar yedekleme makinesine kopyalayabilirsiniz. web sunucusunda
rcp rcp rcp -r /home depo:/web -r /etc depo:/web -r /var/spool/mail depo:/mail
e-posta sunucusunda
ya da
depo makinesinde rcp -r web:/home /web
364
Sistem Ynetimi
gibi komutlar vererek bu ekilde bir yedekleme yaplabilir. Ancak on makine iin bu iler olduka uzun srecektir. Onun iin rcp ile kopyalamak yerine rsync ile yalnzca deien dosyalar kopyalamay dnebilirsiniz.
depo makinesinde vereceiniz
komutuyla muhasebe makinesindeki /var/data dizinindeki dosya ve alt dizinlerle komutun verildii makinedeki /mhsb/var/data dizinindeki dosyalar ve alt dizinlerin son deiiklik tarihleri karlatrlr. Eer muhasebe makinesindeki dosya ve dizinlerin tarihi daha yeniyse, o dosyalar komutun verildii makineye (depo makinesine) kopyalanr. nemli bir nokta da u: Daha nce yedeklenmi olan mhsb:/var/data dizinindeki 2002_bilanco isimli bir dosya muhasebe makinesinden silinirse, depodaki kopyas kalacaktr, nk son deiiklik tarih-saat karlatrmas yalnzca gnderen makinedeki dosya ve dizinler iin yaplr. Aslnda bu zellik arada srada ie de yarar. Yanllkla silinmi birok dosyay bu zellik sayesinde kurtarmak mmkn olabiliyor. Ancak bu kalnt dosyalar byk dosyalarsa, o zaman da disk kapasitesi sorununa yol aabiliyor. Eer bu gibi durumlarda gnderici makinede yok olmu dosyalarn alc makineden de silinmesini isterseniz rsync komutunu --delete parametresiyle kullanabilirsiniz.
/usr/bin/rsync -az --delete muhasebe:/var/data/ /mhsb/var/data
rsync programn kullanarak makineler aras yedekleme yapabilmeniz iin hem gnderen hem alan makinelerde rsync ve rsh modlleri kurulu olma-
ldr. Yedekleme iini genellikle root yetkisiyle yapmak isteyeceiniz iin gvenlik duvarlarn amak iin yapmanz gereken iki i daha olacaktr:
1. Gnderici makine zerinde /root dizininde yani root kullancnn kiisel dizininde ad .rhosts olan bir dosya yaratmal ve bu dosyann iine
365
gibi bir satr eklemelisiniz. Burada 192.168.0.12 yalnzca bir rnek olup, dier makinenin IP numaras olarak deerlendirilmelidir. Bu satr, 192.168.0.12 IP adresli bilgisayardan gelen root ve cayfer kimlikli kullanclarn her iki makinede de tanml olmak kaydyla ayn kimliklerle kabul edilmelerini salamak iindir. .rhosts dosyasn dzenlerken liberal olmamanz neririz; nemli bir gvenlik gedii aabilirsiniz. 2. kinci olarak da /etc/pam.d/rsh dosyasnda pam_nologin.so ve pam_securetty.so satrlarnn bana birer # yerletirerek bu seimleri geersiz klmalsnz. (Bunun neden yapldn ve pamin ne olduunu aklamak biraz zor. Yeni balayanlar iin pam szcnn Password Authentication Module isminin ksaltmas olduunu ve kullanclarn zellikle a zerinden yapabilecekleri ilerde yetki ve ifre deerlendirmelerinin nasl yaplacan belirleyen bir servis olduunu aklamak yeterli olacaktr. Gvenlik konusunda deneyim kazandka pam konusunda da bilginiz ve hakimiyetiniz artacaktr.)
366
Sistem Ynetimi
Bu ekilde belirli bir plana-programa balanm iler LINUX altnda cron servisinin desteiyle yaplr.
cron servisi aslnda unsurdan oluur:
1. crond: cron daemon, geri planda pusuda yatan, yaplacak ilerin zamannn gelmesini bekleyen yazlm. 2. cron dosyalar: Her kullanc iin hangi saatlerde, gnlerde hangi ilerin yaplacann sakland dosyalar. (/var/spool/cron altnda, her kullanc iin, kullancnn adyla anlan bir dosya yer alr.) 3. crontab komutu: Kullancnn cron dosyalarn dzenlemek iin kullanaca komut.
/var/spool/cron altndaki dosyalar elle dzenlememelisiniz. Bu dosyalar-
crontab -e
Yan sayfadaki rnekte /usr/local/bin/yedekle program ki aslnda bir bash kabuu iin bir betik programdr (betik: script; Trkiye Biliim Dernei, Biliim Terimleri Szl www.tbd.org.tr) hergn sabaha kar saat
367
drtte altrlmaktadr. Bu cron dosyas root kullancsna ait olduu iin de bu yedekle betii root yetkileriyle alacaktr. Gene ayn rnee gre /home/cayfer/ping.pl betii 15 dakikada bir altrlan bir Perl programdr. Grevi baz nemli bilgisayarlara eriilebildiini kontrol etmektedir. Sz konusu Perl program pinglenemeyen bilgisayarlar bir e-postayla sistem yneticisine bildirmektedir. (Bu arada Perl dilini renmeyi dnrseniz Pusula Yayncln Perl ve MySQL ile CGI Programlama kitabn nerebiliriz.) Son crontab satr ise her geceyars 00:30da /var/www/html/traffic dizinine geilmesini ve ardndan perl gen_log.pl komutunun altrlmasn salar. imdi gelelim cron dosyasnn ayrntlarna: tlaca gn, saat ve dakikalar belirtmek iin kullanlr, altncs da ileri balatmak iin kullanlacak komutlar belirler.
cron dosyalarnda 6 bilgi alan vardr. Bunlardan ilk be tanesi ilerin bala-
368
Sistem Ynetimi
Alan
Anlam
in seilen saat bandan 0 - 59 ka dakika sonra balatlacan belirler. in hangi saatte balatlacan belirler. in hangi gnler balatlacan belirler. 0 - 23
anlamna gelir.
1 12 Say yerine * girilirse her ay anlamna gelir. 1, 6 yazlrsa i sadece Ocak ve Haziran aylarnda altrlr. 1-3 yazlrsa i yalnzca Ocak, ubat ve Mart aylarnda altrlr.
0-7
Say yerine * girilirse ne gn olursa olsun anlamna gelir. 0. ve 7. gnler Pazar kabul edilir. 1, 2 yazlrsa Pazartesi ve Sal anlamna gelir. 1-3 yazlrsa Pazartesi, Sal ve aramba gnleri anlamna gelir.
369
chkconfig chkconfig
masn salayabilirsiniz.
--add crond
crond on
te birka rnek:
15 * * * * 0 17 * * * prog1 prog1 15 dakikada bir alr.
prog1
Sistemi mahvedebilecek bir cron satr. Hergn, her saat ve her dakika yeni bir prog1 balatlacak demektir. Artk neler olaca prog1 programna baldr.
LILO Ynetimi
LILO, yani LInux LOader sisteminizin nemli bir yazlmdr. Grevi, sistemin al srasnda hangi disk blmnden (partition) hangi iletim sisteminin hangi parametrelerle bellee ykleneceini belirlemek ve ynetmektir. Ayn amaca ynelik GRUB isimli bir yazlm da LINUX dnyasnda olduka yaygn olarak kullanlmaktadr, ama bu kitapta biz yalnzca LILOdan sz edeceiz.
370
Sistem Ynetimi
LILO sayesinde istediiniz iletim sistemini istediiniz diskin istediiniz blmnden ykleyebilirsiniz; stelik bu yklenen iletim sistemi LINUX olmak zorunda da deildir. LILOyu bilmek ve ynetebilmek, zellikle sistemini bazen Windows bazen de LINUX iletim sistemiyle amak isteyen kullanclar iin nemlidir. LINUX dnyasna yeni girenlerde gzlediimiz ortak yaklam genellikle eski iletim sisteminin elinin altnda olmasn istemeleridir. LINUXu beenip, ilerini bu platforma tayanlar bir sre sonra eski iletim sistemini ieren disk blmne bir mkfs atp, o blm de LINUX disk alan olarak kullanmaya balyorlar. Neyse... Tekrarlama olacan bile bile, burada PC tr bilgisayarlarn boot srecini hatrlatmak istiyoruz. Bilgisayarn BIOS yazlm bellek, grnt kart gibi nemli baz donanm unsurlarn kontrol ettikten sonra BIOS ayarlar erevesinde disket src, CD gibi birimleri kontrol eder ve genellikle bu srclerde bir ortam takl olmad iin diskten boot etmeye karar verir. BIOS, diskten boot etmeye karar verirse birinci diskin boot sektr diye adlandrlan blgesinden bilgisayarn iletim sistemini ykleyecek yazlm bellee alr. LILO ite bu boot sektrnden yklenen yazlmdr. Sistem ilk aldnda BIOS, boot sektrnden LILOyu bellee ykler. LILO da kendi ayarlar dorultusunda kullancya iletim sistemi yklemeyle ilgili seenekleri sunar.
371
LILO yazlm /etc/lilo.conf dosyasndan ynetilir. Bu dosyada gereksinimleriniz dorultusunda deiiklik yaptktan sonra /sbin/lilo komutuyla yeni dzenlenen LILO konfigrasyonuna gre birinci diskin boot sektrlerine gerekli kaytlar yerletirilir. Her ne kadar Mandriva Linux Control Center mensndeki LinuxConf aracyla LILO konfigrasyon dosyalarn dzenlemek mmknse de bu iin temelini renmenizde yarar vardr. Bu nedenle rneklerimizi /etc/lilo.conf zerinde editrle deiiklik yapp /sbin/lilo programn altrma zerine kuracaz. ncelikle tipik bir lilo.conf dosyasna gz atalm:
boot=/dev/hda map=/boot/map install=/boot/boot.b vga=normal default=linux keytable=/boot/tr_q-latin5.klt prompt nowarn timeout=100 message=/boot/message menu-scheme=wb:bw:wb:bw # image=/boot/vmlinuz label=linux root=/dev/hda6 initrd=/boot/initrd.img append=devfs=mount acpi=off read-only other=/dev/hdd1 label=windows98 table=/dev/hdd other=/dev/fd0 label=floppy unsafe
372
Sistem Ynetimi
Dikkat ederseniz bu konfigrasyon dosyasnn banda boot= diye balayp menu-scheme= diye biten global deikenler ve ardndan image ve other parametreleriyle bloklanm gruplar yer alyor. Global parametreler arasnda nemli olanlar:
boot=/dev/hda timeout=100
LILOnun ilk diskin boot sektrne yerletirileceini belirtiyor. Sistem aldnda kullanc LILO mensnden timeout/10 saniye iince bir seim yapmad takdirde varsaylan boot konfigrasyonunun kullanlacan belirtiyor. Dikkat edin! timeout parametresi saniye cinsinden deil, saniyenin onda biri cinsinden belirtilir. timeout/10 saniye sonunda hl bir seim yaplmadysa etiketi linux olan konfigrasyonun kullanlacan belirtiyor.
default=linux
image= diye balayan bloklar LINUX iletim sistemine ait tanmlar ierir. rnein,
image=/boot/vmlinuz label=linux root=/dev/hda6 initrd=/boot/initrd.img append=devfs=mount acpi=off read-only
Bu grubun seilmesi durumunda iletim sisteminin ekirdeinin /boot/vmlinuz isimli dosyadan ykleneceini, root dizin olarak ilk diskin altnc blmnn kullanlacan (hda6), Ykleme srecinde kullanlacak sanal disk grntsnn (image) /boot/initrd.img dosyasnda yer aldn (bunun ne demek olduu, yalnzca ekirdek kodu gelitirenleri ilgilendirir),
373
letim sisteminin ekirdeine devfs=mount acpi=off parametrelerinin geirileceini, Dizinlerin salt oku mount edileceini (LINUX gerekli kontrolleri yaptktan sonra herey yolundaysa, gereken tm dizinler oku-yaz olarak yeniden mount edilir) belirtiyor. other= diye balayan bloklar LINUX olmayan iletim sistemine ait tanmlar ierir. rnein,
other=/dev/hdd1 label=windows98 table=/dev/hdd
satrlar: Bu grubun windows98 ismiyle anlacan, Bu grubun seilmesi durumunda yklenen iletim sisteminin kullanaca blmleme tablosunun (partition table) ikinci IDE kanalndaki ikinci diskten (hdd) okunacan belirtiyor. imdi diyelim ki sisteminize zerinde Windows-XP yklenmi yeni bir diski birinci IDE kanalnn ikinci diski (hdb, slave) olarak taktnz ve sisteminizi bu diskten de aabilmek istiyorsunuz. Yapmanz gereken /etc/lilo.conf dosyasna
other=/dev/hdb1 label=windows-XP table=/dev/hdb
satrlarn ekleyip
/sbin/lilo
komutunu altrmak olacaktr. Bir daha reboot ettiinizde LILO size Windows-XP yklemeyi de bir seim olarak sunacaktr. Bu ileri yapabilmeniz iin sisteminizi nce LINUX ile amanz gerektiini belirtmeye gerek yok herhalde. Aslnda sisteminizi neden XP ile ama gereksinimi duyduunuzu da anlamadk ya, neyse...
374
Sistem Ynetimi
Webmin
Bu blm okuyunca bize kzacaksnz... Madem webmin vard, ne diye bir sr komut ve ayar dosyas anlattnz? diyeceksiniz. Gerekten de webmin, LINUX iletim sistemini tek yazlmla ynetmek iin gelitirilmi web tabanl bir uygulamadr. Webmini kullanmak iin bilgisayarnzda herhangi bir web tarayc; rnein Konqueror balatp URL olarak
https://localhost:10000
375
Doal olarak root kullanc kimliiyle servise balanmanz gerekecektir. Artk webmin mensnden yararlanarak, sisteminizin neredeyse tm ynetim ilerini bu arabirim ile yapabilirsiniz. Webminin ilevlerini bu kitapta anlatmayacaz. LINUX iletim sisteminin ynetim kavramlarnn temellerini renmi olduunuza gre gerisini siz kendiniz aratrabilir ve kefedebilirsiniz.
376
Sistem Ynetimi
377
Apache web sunucusu, MySQL veritaban ynetim sistemi, Postfix e-posta sunucusu, FTP sunucusu gibi LINUXu LINUX yapan birok sunucu servisinin ayarlarn bu menden yapabilirsiniz.
378
Sistem Ynetimi
379
380
Sistem Ynetimi
381
Karnza
boot:
hazr iareti kacaktr. Bunun karsna linux single yazp Enter tuuna basnz.
boot: linux single
LINUX ekirdei bellee yklendiinde single szc ekirdee parametre olarak geirilecektir. LINUX ekirdei de bu parametreyi grnce al birinci alma dzeyi (run level 1) tamamlandnda kesecektir. LINUX alr durumda olacak ancak yalnzca konsoldaki kullancya hizmet edecektir. Yani, varsa web servisi, ftp servisi, e-posta servisi gibi hizmetleri yrten yazlmlar balatlmayacaktr. Ayrca, konsoldaki kullancnn kendisini sisteme tantmas da istenmeyecektir. root yetkileriyle bir bash kabuu balatlp kullancdan komut girmesi beklenecektir. Bu konumda
passwd
komutunu vererek o anda geerli olan kullancnn; yani rootun ifresini deitirebilirsiniz. passwd komutunu veren kullanc root olduu iin de eski ifre sorulmayacaktr. ifreyi deitirdiinizde
exit
382
Sistem Ynetimi
Meraklsna...
sistemin tek kullancl ve ifre sormadan root kullanc olarak almasn nleyebilirsiniz. Bir LINUX bilgisayarn al srasnda LILOya linux single yazarak
lilo
komutunu verirseniz, artk sistem tek kullancl dzeyde alrken bile eb!TKY-2 ifresinin girilmesini isteyecektir. Dikkatinizi ekeriz... Bu ifre sistemin root ifresi deildir; tek kullancl dzeyde ama ifresidir.
Bu ifreyi pek fazla kullanmayacanz iin unutma olaslnz ok daha yksektir. Gnn birinde, root ifresini unuttuunuz iin sisteminizi tek kullancl dzeyde amanz gerekirse bu ifreyi hatrlamayacanza bahse dosyasna bu satrlar koymanz hi nermiyoruz. gireriz. Bu nedenle, tek kullancl alma dzeyi korumas iin lilo.conf
Eer bir sistemin tek kullancl dzey ifresi ve root ifresi unutulursa yaplacak i, diski skmek ve bu diski ifreleri bilinen bir baka LINUX bilgisnda root kullancya ait satrdaki kriptolanm ifreyi bir editrle silmektir. sayara ikinci disk olarak takmak ve diskin zerindeki etc/shadow dosya-
383
384
Yazlm/Paket Ynetimi
11
Paket Kavram Paket Bamll (Dependency) Sistem Gvenlii ile lgili Haberleri zleyin Paket Yneticileri (Package Managers) Gvenlikle lgili Yamalar zleyin ve Uygulayn Yazlm Depolar (Media, Repositories) Yazlm Gncelleme Yazlm Ykleme Mandriva rpm Paket Yneticisi - rpmdrake ile Ykleme urpmi - Gerek Paket Yneticisi rpm Paketlerinden Yazlm Ykleme Kaynak rpm Paketlerinden (src-rpm) Yazlm Ykleme Kaynak Kodundan Derleyerek Kurulum letim Sisteminin ve Uygulama Programlarnn Gncellenmesi ekirdek Gncellemeleri (Kernel Updates)
Paket Kavram
LINUX dnyasnda, iletim sisteminin ekirdei de dhil olmak zere, sistem ve uygulama yazlmlar genellikle paketler halinde datlr. Bir paket iinde, sz konusu yazlm oluturan dosyalar ve bu dosyalarn nerelere, nasl kopyalanaca bilgisi yer alr. Bir bilgisayara LINUX kurmak demek; aslnda o bilgisayara pe pee binlerce paket kurmak demektir. nce kernel paketi kurulur; sonra da iletim sistemi aralar ve uygulama programlarn ieren paketler yklenir.
385
LINUX dnyasnda; RedHat ve Debian datmlar iin gelitirilmi olan 2 nemli paket eidi vardr. RedHatin kulland paket standardna RPM (RedHat Package Manager), Debian datmnn paketlerine DEB paketleri ad verilir. Mandriva LINUX, paket standard olarak RPMi semi ve kullanmaktadr. Paket Ynetici leri de bu yazlm paketlerinin kolay kurulmasn, gncellenmesini, silinmesini salayan yazlmlardr. rnein gimp yazlmn ieren RPM paketinde 1260 kadar dosya yer almaktadr. gimp yazlmn kurmak demek bu 1260 dosyay belki on deiik dizine datmak demektir. Ayrca, bir paketin kurulmas bir takm ayar dosyalarnda deiiklik yaplmasn da gerektirebilir. Bir de, en nemlisi, kurulum srasnda sistemde bulunan ktphanelerin, balantl baka yazlmlarn, yklenmek istenen yazlma uygun olup olmad sorusu vardr.
386
Yazlm/Paket Ynetimi
yklemek; gerekiyorsa sz konusu paketin baml olduu dier paketleri de bulup, onlar da yklemektir. Bir baka deyile, kullancnn gimp paketini yklemek istediini urpmi programna bildirmesi yeterlidir; gimpin baml olduu dier 90 paketi bulup nce bunlar yklemek paket yneticisi yazlmnn grevidir. Mandriva; RPM paketlerinin ynetimi iin kulland urpmi iin bir grafik nyz olan Rpmdrakeyi gelitirmitir. Bu program grubu 4 ana modlden oluur: 1. rpmdrake 2. rpmdrake-remove 3. edit-urpm-sources.pl 4. MandrivaUpdate rpmdrake, RPM paketlerinin indirip kurulma ilevini yerine getirir. Adndan da tahmin edilebilecei gibi, rpmdrake-remove, yklenmi RPM paketlerinin kaldrlmas ve silinmesi iini yapar. edit-urpm-sources.pl Perl program ise rpmdrake ve MandrivaUpdate nin kullanaca yazlm depolarna ilikin ayarlarn yaplmasn salar. MandrivaUpdate ise iletim sistemi ve uygulama yazlmlarnn gncellenmesinden sorumludur.
387
Yazlm Gncelleme
LINUX iletim sisteminin ve yazlmlarnn gncellemesi iki nedenle yaplr: ya bir gvenlik a kapatlmtr, ya da yazlm gelitirildii iin yeni srm kmtr. Evet! Gvenlik a kapatlm olabilir; sonuta LINUX kodlarn yazanlar da insanlar... u farkla ki - LINUX dnyasnda aklarn kapatlma ve gncelleme yaynlanma sresi aylarla deil, saatlerle llr. Mandriva sisteminizi gncellemek iin rpmdrake isimli program altrdnzda nce sisteminize ykl olan paketlerin yazlm depolarnda yeni srmleri olup olmadna baklacak; varsa yeni srmler kurulacaktr.
Yazlm Ykleme
Diyelim, bir dergide iinize ok yarayacak bir LINUX yazlmndan sz edildiini okudunuz. Hemen bir terminal penceresinden program altracan umduunuz komutu verdiniz, ancak command not found mesajn aldnz. Byk olaslkla o program sisteminizde kurulu deil. imdi bu yazlm sisteminize yklemek iin kolaydan zora doru eitli seenekleriniz var: 1. yazlm paket yneticisi kullanarak yklemek, 2. varsa, yazlm kendi zel kurulum programyla yklemek, 3. yazlmn rpm paketini bulup indirmek ve yklemek, 4. yazlmn kaynak kodunun rpm paketini indirip derlemek ve kur mak, 5. yazlmnn kaynak kodlarn indirip derlemek ve kurmak. Kolayndan balayalm...
388
Yazlm/Paket Ynetimi
lgilendiiniz yazlm KDENetwork-Kopete olsun... Eer 3.4.2 srmn yklemek isterseniz, yazlmn adnn yanndaki kk kutuyu tklayn. Kutucuu tkladnzda karnza aadakine benzer bir pencere kabilir:
Bu rnekte, Kopete yazlmnn yklenebilmesi iin libkdenetwork2-kopete ktphanesinin de kurulmas gerektii belirtilmekte ve bunun iin izniniz istenmektedir. Paket yneticisi kullanmann en nemli avantaj ite bu tip bamllklarn (dependency) otomatik olarak zmlenmesidir. Rpmdrake paket yneticisi, yeni yklenecek, kaldrlacak ve en nemlisi gncellenecek paketleri, media ad verilen eitli kaynaklardan izler. media ad verilen bu kaynaklar, kurulum iin kullandnz CDler ve nternet zerinden eriilebilen Mandriva yazlm depolardr (ng.: Repositories).
389
Yazlm ve gncelleme paketlerin indirilip yklenebilecei kaynaklar rpmdrake yazlmnn Configure Media ilevi ile belirtilir. CDden yaplan standart bir kurulumda, bu yazlm kaynaklar sadece 3 datm CDsinden oluur.
Normal kullanm koullarnda yazlm deposu olarak bu 3 CD pek yeterli olmayacaktr; ne de olsa bu CDlerden yazlm gncellemesi yapmak olas deildir. Bu yzden paket yneticinize gncellemeler ve CDlerinizde yer almayabilecek yazlm paketleri iin bir ka yeni yazlm deposu; yani media eklemelisiniz.
390
Yazlm/Paket Ynetimi
rpmdrake iin yeni yazlm deposu eklemek istediinizde, Official Updates (resmi gncellemeler) ve Distribution Sources (datm kaynaklar) kategori seimi yapmanz istenir. Her iki kategoriden de yazlm deposu semenizi neririz. rnein;
391
rpmdrake iin yazlm deposu tanmlarn bu ekilde tamamladktan sonra artk yeni yazlmlar yklemek; ykl yazlmlarn srm ve gvenlik gncellemelerini yapmak ok kolaylaacaktr.
392
Yazlm/Paket Ynetimi
zel Kurulum Programyla Ykleme Baz LINUX yazlmlar kendi zel kurulum programlaryla birlikte datlrlar. Bazlar da kurulum programna bile gerek olmadan, sadece program dosyasn bir dizine kopyalamakla kurulabilirler. Bu tip yazlmlarn nasl kurulaca, yazlmla birlikte datlan
INSTALL.txt README.TXT
benzeri isimli dosyalarda ya da yazlmn datld web sitesinde yer alabilecek kurulum blmlerinde anlatlr. Bu kitapta zel kurulum yntemlerini aklamak pek olas deil nk bir yazlmn nasl datlaca ve nasl kurulaca tamamen o yazlm gelitiren kii ya da ekibin tercihlerine baldr. rnein Mozilla-Firefox yazlmnn 1.5.0.2 srmn www.mozilla.com adresinden indirdiinizde, gene ayn web sitesinde Releases bal altnda Firefox yazlmnn nasl kurulaca yle anlatlmaktadr: Extract the tarball in the directory where you want to install Firefox:
tar -xzvf firefox-1.5.0.2.tar.gz
This will create a firefox subdirectory of that directory. Yani, firefox-1.5.0.2.tar.gz dosyasn /tmp dizinine indirdikten sonra
mkdir /usr/local/firefox cd /usr/local/firefox tar -xzvf /tmp/firefox-1.5.0.2.tar.gz
komutuyla Firefox web taraycsn altrabilecek duruma geleceksiniz. zel kurulum program ile yklenen yazlmlara bir rnek de Opera web ta-
393
raycsdr. Bu yazlm sktrlm tar.gz dosyas ile datlr. tar paketini atktan sonra paketin iinde yer alan ./install.sh komutu ile Opera kurulur.
cd /tmp tar -xzvf opera-8.54-20060330.5-shared-qt.i386-en.tar.gz cd opera-8.54-20060330.5-shared-qt.i386-en/ ./install.sh . . . opera
gibi bir komutla yklemeyi deneyebilirsiniz. Denemek diyoruz; nk bu paketin baml olduu baka paket(ler) varsa; rpm yazlm ykleme iini yapmayp; nce zmeniz gereken bamllklar olduunu bildirecektir. Baz yazlmlar rpm paketini indirip, rpm -i paket.rpm komutunu verdiinizde tek seferde kurulabilir; baz durumlarda da nce paketinizin baml olduu bir baka paketi; o baka paketi kurabilmek iin ise daha da nce bir baka paketi kurmanz gerekebilir. rnein amarok.kde.org sitesinden amarok yazlmnn 1.3.8 srmne ait rpm dosyasn indirip rpm komutuyla kurmak istediinizde
394
Yazlm/Paket Ynetimi
gibi amarok paketinin kurulabilmesi iin nce 10 tane ek pakete gereksinim olduuna ilikin bir mesaj alabilirsiniz. Bu durumda yaplmas gereken bu eksik paketlerin rpm dosyalarnn nternetten bulunup indirilmesi ve ncelikle bunlarn kurulmasdr. Google bu konudaki en yakn yardmcnz olacaktr. Akas, birok kullancnn LINUX iletim sistemini deneyip, ksa zamanda pes ederek terk etmesinin nedeni bu bamllk sorunlardr. Ancak, te yandan, gereksinim duyabileceiniz binlerce yazlm, urpmi ve/veya rpmdrake ile bu bamllk sorunlarn yaamadan kurulabilecek ekilde yazlm depolarnda bulunmaktadr. Yeni kullanclarn genellikle yaptklar hata Software Media Manager ile rmpdrake ve urpmi iin yazlm depolar belirtmemeleri olmaktadr. Sisteminize rpm ile yklediiniz programlar gene rpm komutu ile silebilirsiniz. rnein whois-4.5.29-1mdk.i586.rpm isimli bir rpm dosyas kullanarak kurduunuz whois programn silmek iin
rpm -e whois
komutunu kullanabilirsiniz. Sisteminize rpm programyla yaptnz btn deiiklikler (LINUX kurulumu dhil) bir veri tabannda tutulur. Bylece rpm kullanarak kurduunuz programlar arasnda koordinasyon salanabilir. rnein, bir program belli baka bir programn yeni bir versiyonu olmadan almayacaksa rpm komutu kurulum srasnda sizi uyarr. Ayn ekilde sisteminizde zaten kurulu bu-
395
lunan bir programn daha yeni bir versiyonunu kurarken eskisinin silinmesi ii de temiz bi ekilde yrtlr. rpm komutunun ok kullanlan baz parametrelerine ve ilevlerine gz atmak isterseniz: Sisteminizde kurulu olan tm rpm paketlerini listelemek iin:
rpm -qa
komutunu kullanmalsnz. Bir rpm dosyasnn paket adn renmek iin (aman dikkat! Bir rpm paketinin ad o paketin rpm dosyasnn ad deildir) kullanabileceiniz
rpm -qp opera-6.11-20021129.4-shared-qt.i386.rpm
gibi bir komut, dosya ad opera-6.11-20021129.4-shared-qt.i386.rpm olan rpm paketinin paket adnn opera-6.11-20021129.4 olduunu gsterecektir. Bir rpm paketinin iindeki dosyalar renmek iin:
rpm -qlp opera-6.11-20021129.4
396
Yazlm/Paket Ynetimi
sendeyse; yani icinde .src. dizisi geiyorsa o rpm paket, programn/uygulamann kaynak kodunu ieren rpm paketi demektir. Kaynak kodundan oluan programlarn kurulumu hazr derlenmi paketlere gre greceli olarak daha zordur. Sz konusu rpm paketleri aldktan sonra ilgili dizinlere yerleen README, INSTALL gibi dosyalar gzelce okumak ve buralardaki ilemleri srasyla uygulamak gerekir. Szn ksas: yklemek istediiniz paketin hazr derlenmi srm varsa, onu kullanmay tercih ediniz. rpm dosya isimleri programn ismi ve srm dnda, ayn zamanda makine tipini de belirtebilir. Bir program indireceiniz nternet sayfasnda ayn programn ayn srm iin dosya isminin sonunda i386, i586, arch
no-
platformda alan srmlere sahip olduu iin ve rpm paketleri belli bir tip merkezi ilem birimi iin nceden derlenmi olduundan kendi sisteminize uygun olan rpmi indirmelisiniz. Allm PCler iin bu Intel firmasnn i386 ve i586 platformudur. sminde noarch geen RPM paketleri rpmin her donanm platforma uygun tek srm olarak datld anlamna gelir.
397
Sonra
rpm --rebuild git-4.3.20-9mdk.src.rpm
Bu komut, git kaynak kod paketini aacak, gerekli tm bamllk kontrollerini yapacak, herey uygunsa kaynak kodlar derleyip /usr/src/RPM/RPMS/i586/ dizinine git-4.3.20-9mdk.i586.rpm paketini yaratacaktr. Artk
rpm -i /usr/src/RPM/RPMS/i586/git-4.3.20-9mdk.i586.rpm
398
Yazlm/Paket Ynetimi
tarball (tar yuma) olarak da anlan bu dosyalar iki farkl program kullanlarak toparlanmtr. nce tar program tarafndan paketin ierdii btn dosyalar tek bir dosya haline getirilmi, daha sonra gzip (GNU Zip) araclyla sktrlmtr. Amak iin siz de bu iki yntemi tersine kullanmalsnz. Ancak tar ve gzip ok sk olarak birlikte kullanldndan tar programna bir parametreyle ( z parametresi) gziplenmi dosyay ama yetenei eklenmitir. tar -zxvf yeni_program.tar.gz gibi bir komutla nce gziplenmi ap (z), sonra tar ap (x), btn bunlar yaparken alan dosyalarn listelenmesini salayabilirsiniz (v).
Genellikle basit bir programn bile tar yuman atnzda karnza karmakark, birok dizin ve dosyadan oluan bir gruh kacaktr. Bu kargaann iinden kolay kmanz iin program gelitiren(ler) size birka kolaylk da salam olacaklardr. Kurulum iin yaplmas gerekenler genellikle README veya INSTALL gibi isimleri olan dosyalarda anlatlr. (Dosya isimlerinin byk harf olmasnn nedeni, ls tarafndan retilecek dosya listelerinde bu dosyalarn isimlerinin st srada grnmesini salamaktr.) Genellikle ilk adm olarak programn kaynak kodlarnn sizin sisteminize uygun bir ekilde derlenmesini salamak iin, paketle birlikte datlan configure isimli bir komut kullanlr. Kurmakta olduunuz programn karakteristik zellikleriyle ilgili (rnein sistemde nereye kurulaca veya hangi tip ilemci iin optimize edilecei) bu komuta parametre olarak verilir. Olas parametreler ve deerleri iin kurmakta olduunuz yazlmn INSTALL ve/veya README dosyalarna bakmalsnz. Genellikle
cd /tmp/kaynak ./configure
gibi bir komut yeterlidir. (Bataki ./, kullandnz kabuk programna bulunduunuz dizindeki configure isimli program altrmak istediinizi belirtmek iindir.)
399
configure bilgisayarnzn zelliklerini tek tek kontrol eder, ayn zamanda baka programlara veya ktphanelere ihtiyacnz olup olmadn size bildirir. Bu aama baaryla sonulandnda kaynak kodunun bulunduu dizinde (ve eer varsa dier alt dizinlerde) Makefile isimli bir dosya yaratr. kinci adm olarak vereceiniz make komutu bu Makefile dosyasnda listelenen parametrelere gre btn programn ve modllerinin derlenmesi iim gerekli ilemleri srayla yapacaktr. Baz programlar derlemek ve kurmak iin birden fazla make komutunu pe pee kullanmanz gerekebilir. (Byle durumlarda vermeniz gereken make komutlarnn neler olduu README veya INSTALL gibi aklama dosyalarnda belirtilmi olacaktr.) rnein,
./configure make make test make install
400
Yazlm/Paket Ynetimi
letim sisteminizi ve onunla birlikte datlan uygulama programlarn gncellemek istediinizde, rpmdrake programn balatmak iin KDE mensnden KDE SystemConfiguration Packaging Mandriva Update
veya Mandriva Linux Control Center yazlmn balatmak iin KDE System Configuration Configure Your Computer
seimini yaparak Mandriva Update programn balatmalsnz. Bu program balatrken bilgisayarnzn nternet balants alr durumda olmaldr. Mandriva Update, balatldnda nceden belirlenmi Mandriva ve yanslar olan sitelere (mirror) balanp, sizin makinanzda ykl olan yazlmlarla bunlarn gncel srmlerini karlatracak ve srm gncelletirmeye aday yazlmlarn bir listesini retecektir.
401
Mandriva Update gncelletirmeleri grup altnda toplar: 1. Gvenlik gncellemeleri (Security updates), 2. Hata dzeltme gncellemeleri (Bugfixes updates), 3. Normal gncellemeler. lgilendiiniz gruptaki gncellemeleri semek ve uygulamak iin Mandriva Update ekranndaki butonlar kullanabilirsiniz. Uygulanacak gncelleme dosyasnn seilmesi iin sa tarafndaki kk kutu iinde arp iareti grnecek ekilde tklanmaldr. Eer bilgisayarnz srekli internete bal olarak alacaksa ve nemli servisleri stlenecekse, gvenlikle ilgili yazlm gncellemelerini en az haftada bir kez kontrol etmenizi ve yeni gncellemeler varsa derhal uygulamanz neririz.
402
Yazlm/Paket Ynetimi
komutunu kullanabilirsiniz. Bu ekirdek adndaki mdk kodu ekirdein Mandrake (Mandrivann eski ad) tarafndan hazrlandn ve derlendiini; smp kodu ise ekirdein Symmetric Multi Processor; yani oklu ilemci iin hazrlanm bir ekirdek olduunu belirtiyor. Aslnda yukardaki ekirdek srmn rapor eden bilgisayar tek ilemcili, ancak bu ilemcinin Hyper Threading zelliinden tr iletim sistemine iki ilemcili gibi grnyor. Mandrivann yaynlad yeni bir ekirdek srm olup olmadn renmek iin
# urpmi kernel-
komutunu kullanabilirsiniz.
Mandriva Update yazlm ile iletim sisteminizi ve uygulama yazlmlarn gncellediinizde, varsa, ekirdek gncellemeleri (kernel updates) uygulanmaz. ekirdek gncellemeleri iin sizin zellikle ekirdek gncellemelerini kontrol etmeniz ve varsa uygulamanz gerekir.
403
Uzunca bir ekirdek listesi... Bu rnek listede zel amal olmayan ekirdeklerden en son srm numarasna sahip olan kernel-2.6.12.12mdk. uname -sr komutu da ayn srm numarasn rapor ettiine gre ekirdek gncellemeye gerek yok. Ama, urpmi kernel- komutu, rnein, kernel2.6.23.3mdk gibi bir ekirdek bulunduunu rapor etseydi,
urpmi kernel-2.6.23.3mdk
gibi bir komutla ekirdeinizi gncellemeliydiniz. ekirdek gncellemesinin aktif olabilmesi iin bilgisayarnz kapatp amanz; daha dorusu iletim sistemini yeniden yklemeniz gerekir. LINUXa altka, sisteminizi kapatp amak size zor gelecek. Balangta eski alkanlklarla, her sorun ktnda iinizden bilgisayarnz kapatp a-
404
Yazlm/Paket Ynetimi
mak gelecek. Ancak bir sre sonra bunun normal olmadn, donanmnda sorun olmayan bir bilgisayarn sadece ekirdek gncellemelerinden sonra veya disk/bellek eklemek iin kapatlmas gerektiine alacaksnz. LINUX ve UNIX kullanclar, bilgisayarn kendileri iin almas gereken bir makine olduunu; kullanclarn makine iin almasnn normal olmadn bilirler. Yllardr bu ilerin iindeyiz; USB bellekteki fotoraflar gsteren bir yazlm ykledikten sonra neden bir iletim sisteminin yeniden yklenmesi gerektiini anlayabilmi deiliz.
405
406
Gvenlik
Sistem Gvenlii Kolay Tahmin Edilebilecek ifre Kullanmayn ve Kullandrmayn Sistem Gvenlii ile lgili Haberleri zleyin Olabildiince Gvenli letiim Yapan Yazlmlar Kullann Gvenlikle lgili Yamalar zleyin ve Uygulayn Gereksiz Yazlm Yklemeyin Gereksiz Servisler almasn Gereksiz Portlar Ak Olmasn Bilgisayarnzdaki Tm Servisler Dnyaya Ak Olmasn Log Dosyalarnza Bakn Sisteminizi Yedekleyin
12
Sistem Gvenlii
Internetin yaygnlamasyla bilgisayar sistem gvenlii de nemli sorunlar listesinde nce st sralara; sonunda da en ste trmand. LINUX, sistem gvenlii asndan en ansl iletim sistemidir, nk kodu herkese aktr. Bu iddia ok kii tarafndan ciddiye alnmamakla birlikte son yllarda yaanan deneyimler iddiay dorulamtr. Kapal kodlu bir iletim sisteminde bir gvenlik a bulunduunda, dzeltme yamalar ya da yeni srmn gelitirilmesi, duyurulmas ve yaynlanmas zaman almaktadr. Bu srenin aylar bulabildii grlmtr. Oysa, benzeri bir durum LINUX iletim sisteminde ortaya ktnda, yamalar veya yeni srmler birka saat iinde dnyaya yaylmaya balamaktadr. Sisteminizin gvenlii iin salt iletim sistemine gvenmek ok byk hatadr. LINUX iletim sistemi altnda virs olmaz, LINUX gvenlidir, kim-
407
se kramaz gibi inanlar tamamen yersizdir. Bal gibi virs de bular; sisteminiz de krlr... Sistem yneticilerinin en nemli grevlerinden birisi de sistemin gvenlii ile ilgili almalar disiplinli bir ekilde yapmaktr.
408
Gvenlik
(Rivest, Shamir, Adleman) ad verilen teknikle kriptolanan bu paketleri zmek olanaksz deilse de pratik zaman snrlar iinde zlemezler. Bilgisayarnza telnet kullanarak erimeyin; onun yerine ssh kullann. Ssh, tm terminal haberlemesinin kriptolu yaplanmasn salayacaktr.
409
komutunu kullanabilirsiniz.
chkconfig --list
komutuyla, chkconfig size sisteminizde alan servisleri, her alma dzeyi iin (run level) ayr ayr belirtecektir.
rnein satr mysql veritaban sunucusunun 0,1 ve 6 alma dzeylerinde almayacan, ama 2, 3, 4 ve 5. dzeylerde alr durumda olacan (olduunu) gsterir.
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
410
Gvenlik
Meraklsna...
Daha nce drdnc LINUX alma dzeyinin kullanlmadn sylemitik. Hangi alma dzeyinde hangi yazlmlarn altrlaca /etc/init-
alma dzeylerini yle bir hatrlatmak gerekirse... 0 1 Kapan dzeyi. Bu dzeyde pek alan program bulamazsnz... Tek kullancl dzey. Sistem, gerek a zerinden gerekse konsolundan birden fazla kullancya hizmet vermez. 2 ok kullancl dzey ama a zerinden dizin/dosya paylamna izin verilmez (NFS yoktur). 3 4 5 6 Sistemin tam kapasite ile alt ok kullancl dzeydir Pek kullanlmaz XFree86 pencere sisteminin alt dzeydir Reboot" dzeyidir. Yani, sistemi kapatan yazlmlarn alt dzeydir.
komutunu kullanabilirsiniz.
411
chkconfig komutuyla birtakm servislerin otomatik olarak balatlmasn saladnzda (--add seenei) ya da engellediinizde (--del seenei), komutunuzun etkisi ancak sistemin bir dahaki alnda grlr. Yaptnz deiikliin etkisini hemen grmek istediinizde; rnein mysqlin hem hemen durdurulmasn hem de bir dahaki alta almamasn salamak iin
412
Gvenlik
TCP ve UDP portlarnn ne demek olduunu bilmiyorsanz en ksa zamanda TCP/IP temellerini renmeniz gerekir. Akas, TCP/IP bilmeden sistem yneticisi olma ansnz pek yok! TCP/IP renmek iin Murat Yldrmolunun Pusula Yaynclk tarafndan yaynlanan TCP/IP isimli kitabndan (ISBN: 975-7092-25-8) yararlanabilirsiniz.
413
TCP Wrapper, temel olarak bilgisayarnza hangi bilgisayarlarn, hangi servislerle eriebileceini ya da eriemeyeceini belirlemenizi salar. TCP Wrapper, yalnzca sisteminize giren paketleri denetlemek iin ie yarar; sisteminizden kan paketler bu yazlmla denetlenemez. TCP Wrapper, /etc/hosts.allow (sisteme erimesine izin verilecek bilgisayarlar) ve /etc/hosts.deny (sisteme erimesine izin verilmeyecek bilgisayarlar) dosyalaryla denetlenir. Bu dosyalar vi ile dzenlenebilecek basit dosyalardr. Dosyalarda yapacanz deiiklikler hemen etkili olur; yani, herhangi bir yazlm; hele hele iletim sistemini yeniden balatmanz gerekmez. TCP Wrappern denetim mant yledir: 1. Sisteminize bir TCP/IP paketi geldiinde, port numarasna baklarak hangi yazlma iletileceine karar verilir.
2. Paket eer /etc/services dosyasnda tanml bir servise gnderilecekse, nce /etc/hosts.allow dosyas taranarak paketin zelliklerine uygun bir tanm olup olmadna baklr. rnein gelen bir telnet paketiyse ve /etc/hosts.allow dosyasnda in.telnetd: 139.179.14.: ALLOW gibi bir satr varsa (139.179.14. ile balayan bir IP adresinden gelmek kaydyla, tm telnet paketlerini kabul et anlamnda), paket kabul edilir. 3. /etc/hosts.allow dosyasnda, gelen pakete uygun bir satr bulunamazsa, benzeri bir tarama /etc/hosts.deny dosyasnda tekrarlanr. Bu dosyada, sisteminize erimesini istemediiniz bilgisayarlar tanmldr. 4. Eer bu dosyada da gelen pakete uygun bir kural kalb bulunamazsa, paketin ieri girmesine izin verilir.
hosts.allow ve hosts.deny dosyalarnda yer alabilecek kalp tanm satr-
gibi bir satr, IP adresi 139.179. ile balayan bilgisayarlardan gelen telnet paketlerini kabul edecektir.
414
Gvenlik
gibi bir satr, IP adresi 192.168.100.12 olan bilgisayardan gelecek telnet servisi isteklerine olumsuz yant verilmesini salayacaktr. Genellikle, salamc bir politika izlemek amacyla /etc/hosts.deny dosyasnda tek satr olur:
ALL: ALL:
Yani, nereden gelirse gelsin, hibir xinetd servis isteini kabul etme! Sisteme erimesine izin verilecek bilgisayarlar da /etc/hosts.allow dosyasnda belirtilir. Her iki dosyada da # ile balayan satrlar aklama satrlardr.
hosts.deny ve hosts.allow dosyalarna tipik birer rnek vermek gerekir-
se:
/etc/hosts.allow in.telnetd: 139.179.14. ALLOW ALL: 139.179.14.41 ALLOW ALL: 139.179.23. EXCEPT 139.179.23.45
415
TCP Wrapper ile yalnzca xinetd zerinden verilen servisleri denetleyebitrafii zerinde tam denetim salayamazsnz. rnein bu arala bilgisayarnza ynelik web trafiini (http, 80. port zerinden gelen trafik) denetleyemezsiniz nk http, xinetdnin denetledii bir servis deildir. Benzeri ekilde ftp sunucusu olarak pro-ftpd altryorsanz (-ki, standart kurulumda byle olacaktr), gene eriim denetimini TCP Wrapper ile yapamazsnz. Sisteminize ynelik ve sisteminizden kaynaklanan trafii tam olarak denetim altna almak iin iptables veya ipchains ate duvar yazlmn ne kmaktadr.
Eer sisteminizde esnek bir trafik denetim sistemi kurmak istiyorsanz rulmu bir filtreleme sisteminin denetim yazlmdr. shorewallu kurmak shorewall paketini kurmanz neririz. shorewall, iptables zerine ku-
iin Mandrake Control Center yazlmndan Security seimini yapp DrakFirewall programn balatnz. shorewall yazlmnn ayarlar en kolay, web tabanl bir sistem ynetim arac olan webmin ile yaplr.
Sisteminizi Yedekleyin
Bakalarna ait bilgisayarlara girmek nedense ok sayda hasta ruhlu insan iin bir tutkudur. Bu tip insanlar, bir bilgisayarn gvenliini krmay baardklarnda bu zaferlerini kutlamak isterler; bu yzden de sistemleri tamamen kertmek yerine baarlarn belgeleyen bir iaret brakmay yelerler. Sisteminize girildiini hissettiinizde yapabileceiniz en akllca ey diskleri formatlayp iletim sistemini batan yklemek olacaktr. Bu iin kolay bl-
416
Gvenlik
mdr; te yandan iyimser bir bak asyla da srm gncellemek iin iyi bir frsattr. Ancak; i daha nce yaplm ayarlar, yklenmi uygulama programlarn, tanmlanm kullanclar, onlarn kiisel dosyalarn yerine koymaya gelince iiniz zor olacaktr. Disiplinli ve dikkatli bir ekilde yedeklenmi bir sistemde bu dosya/dizinleri yerine koymak zaman alsa bile kolayca yaplabilir. Napolyon sistem yneticisi olsayd, eminiz ki para, para, para yerine yedek, yedek, yedek derdi.
417
Ka lemci?
UNIX ve trevi iletim sistemlerini oluturan yazlmlarn en nemli zellikleri, her birinin kendi iini, ama yalnzca kendi iini ok iyi ve hzl yapan, esnek ama gereksiz ilevleri olmayan, kk programcklar olmalardr. Bu yazlmlar; anlaml olabildii her durumda birer filtre olarak yazlmtr. Filtre olarak kullanlabilen programlar girdilerini STDINden alan, bu girdileri ileyip ktlarn da STDOUTa gnderen programlardr. Bu sayede, bu programlar pipe ( | ) ve ynlendirme ( <, > ) ilemleri ile pepee ya da birlikte altrlarak gereksinimlere gre anlaml iler yapabilen zincirler oluturulabilir. UNIXin ok nemli bir baka tasarm ilkesi de; olabildiince, tm verilerin, ayar/seenek deerlerinin basit metin dosyalarnda saklanmas ve ilenmesidir.
418
13
Yararl LINUX Sunucu Yazlmlar ftp Sunucusu apache Web Wunucusu postfix e-Posta Sunucusu procmail samba Sunucusu named (DNS) Sunucusu ssh Sunucusu (Secure Shell) NIS Sunucusu (Network Information Services) iptables Ate Duvar DHCP Sunucusu MySQL ve PostgreSQL Veritaban Sunucular squid Proxy Sunucusu ppp evirmeli A Sunucusu
Mandrake LINUXun, eitli sunucu yazlmlarn denetlemeyi kolaylatran Server Configuration isimli bir GUI (Graphical User Interface : Grafik Kullanc Arabirimi) arac vardr; ancak bu ara siz zellikle kurmadka Mandrake Control Center mensnde yer almaz. Her ne kadar bu blmde Server Configuration yazlmnn kullanmn anlatmayacaksak da, imdi bu yazlm yklemenizde yarar var. Server Configuration, Mandrake datm CDlerinizin ilkinde yer almaktadr. Yazlm yklemek iin birinci CDyi takp
rpm -ivh /mnt/cdrom/RPMS/drakwizard-1.8-1mdk.noarch.rpm
komutunu verin. Server Configuration yazlm kurulacak ve bundan sonra Mandrake Control Center yazlmn altrdnzda seenekler arasnda grnecektir:
419
Artk bu yeni arala oynayp yeteneklerini kefetmek size dyor. Biz, nemli sunucu yazlmlarna ve bunlarla neler yapabileceinize dnelim.
File Transfer Protocol, Internet protokolleri arasnda en nemlilerinden; daha dorusu en ok kullanlanlarndan birisidir. TCP/IP alarda (bir baka deyile: nternette) bilgisayarlar aras dosya transferinde kullanlr. Uygun FTP istemci programlaryla (ncftp, gftp gibi) bir FTP sunucusu ile yetkileriniz dorultusunda iki ynl dosya transferi yapabilirsiniz. Bilgisayarnzda proftpd sunucu yazlm alyorsa FTP istemcileri size dosya gnderebilir, sizden dosya ekebilir. Sizin bilgisayarnzda hesab olan
ftp Sunucusu
420
kullanclar bir FTP istemci yazlmyla sisteminize balandklarnda, kendi kullanc yetkileri erevesinde dosya ekip gnderebilirler. Eer bilgisayarnzda hesab olmayan kullanclarn da bilgisayarnzdan dosya ekip gndermelerine izin vermek istiyorsanz anonymous (kimlii belirsiz) kullanclarn eriimine izin vermeniz gerekir. FTP sunucunuzu bir anon ftp sunucusu olarak kurmak istiyorsanz /etc/proftpd.conf konfigrasyon dosyasn aadaki gibi dzenleyip /etc/rc.d/init.d/proftpd restart komutuyla FTP sunucu yazlmn durdurup tekrar balatmalsnz.
ServerName ServerType DefaultServer Port Umask MaxInstances User Group <Directory /*> AllowOverwrite </Directory> <Anonymous ~ftp> User Group UserAlias MaxClients DisplayLogin DisplayFirstChdir <Limit WRITE> DenyAll </Limit> </Anonymous> Benim Sunucum standalone on 21 022 30 nobody nogroup on ftp ftp anonymous ftp 10 welcome.msg .message
Bu arada bir hatrlatma yapmadan geemeyeceiz: Eer FTP sunucu yazlmnz olan proftpd daemonu sisteminiz aldnda otomatik olarak altrlmyorsa chkconfig proftpd on komutuyla bu sorunu halledebilirsiniz.
421
Bundan sonra yapmanz gereken kk bir i daha var: /etc/passwd dosyasna bakarsanz burada ftp diye bir kullancnn tanml olduunu fakat bu kullancnn kabuk programnn /bin/false olduunu greceksiniz. /bin/false aslnda bir kabuk deildir; balatldnda hemen duran bir programdr. Genellikle kullanclarn sisteme telnet ve ssh istemcileriyle balanmalarn nlemek iin kullanlr. ftp isimli kullancnn sisteminize balanmasn istemeyeceiniz; ama ftp ile dosya alp vermesine izin vermek isteyeceiniz iin /etc/passwd dosyasndaki kabuk tanmn deitirmeden /etc/shells dosyasnda /bin/falseun kabul edilebilir bir kabuk olduunu belirtmelisiniz. Bu ii vi ile /etc/shells dosyasna, iinde /bin/false olan bir satr ekleyerek yapabilirsiniz. (Bakn! Sonra uyarmadlar demeyin... vi renmeden olmaz!)
komutunu verirseniz birden fazla httpd sreci altn greceksiniz. Bu normaldir. Apache sunucusu, balatldnda, gelebilecek web isteklerini ayr ayr srelerle karlayabilmek iin kendisinin bir ka kopyasn birden balatr. Web istekleri artarsa, gerektii kadar kendi kopyasn balatr (UNIX dnyasnda bu kavrama spawning denir). Sre numaras en kk olan httpd srecini ldrrseniz, tm httpd sreleri lr ve bilgisayarnz artk web servisi vermez.
422
Bilgisayarnzdan web servisini balatmak iin sabrszlanyorsanz /var/www/html dizinine uygun bir index.html dosyas yerletirerek hemen yayna balayabilirsiniz. Web sitenizle ilgili tm html dosyalar bu dizinde yer almaldr. CGI (Common Gateway Interface), yani web uygulama yazlmlarnz varsa onlar da /var/www/cgi-bin dizinine yerletirebilirsiniz. Apache, hakknda bunun gibi bir kitap daha yazlmas gereken bir yazlmdr. Ayarlar olduka karmak olabilmektedir. Ancak, basit bir web servisi iin hibir ayar deitirmenize gerek olmayacaktr. Merak ediyorsanz, Apachenin ayar dosyalarn /etc/httpd/conf altnda bulabilirsiniz.
/usr/sbin/apachectl komutuyla yapmak daha dorudur. rnein web
/usr/sbin/apachectl restart
komutlarn kullanabilirsiniz. Kullanclarnz, kendi kiisel web sitelerini yaynlamak isterlerse, kendi kiisel dizinlerinde public_html dizini yaratp, altna kendi web sitelerine ilikin dosyalar yerletirirlerse, Apache sunucunuz bu sayfalar http://www.abc.com.tr/~kullanici adresinden yaynlayacaktr. Apachenin yetenekleri arasnda sanal web sunucusu hizmeti de vardr. Bir bilgisayarla birok web sitesinin yaynn yapabilirsiniz. /etc/httpd/conf/vhosts/Vhosts.conf ayar dosyasnda yapacanz deiikliklerle bilgisayarnza http://www.abc.com.tr adresiyle ile gelen isteklere ayr; http://www.xyz.org.tr adresiyle gelenlere ayr web siteleri sunabilirsiniz.
423
Web sitelerinin baars ziyareti saysyla llr. Apache web sunucusu, sunduu sayfalar kime ve ne zaman sunduunu kaydeder. Apache log dosyalarn /var/log/httpd/access.log isimli dosyada bulabilirsiniz. Gzle izlenmesi olanaksz olan bu log dosyasnn analizi ve grsel raporlar elde etmek iin webalizer yazlmn kullanmanz neririz.
Web tabanl uygulama programlarnda ok yaygn olarak kullanlan PHP programlama dili destei Apache ile birlikte kurulmaktadr. Gelitireceiniz web uygulamalarnn her trl bilgisayar donanm ve iletim sistemi platformunda alabilmesini istiyorsanz; hele yksek performans istiyorsanz; hele hele web ziyaretilerinizin her gelilerinde sitenizden yararlanabilmelerini istiyorsanz PHP renmenizi ve kullanmanz neririz. Tamam, tamam biliyoruz... Web uygulamalar ASP ile de gelitirilmekte, hem de ok yaygn
424
olarak; ama biz profesyonel i yapacak olan yazlmclara sesleniyoruz. Bu arada web uygulamalarnda tartmasz stnl olan bir betik dili olan Perl programlama dilinin de LINUX datmnzla birlikte standart olarak kuruluduunu belirtmeliyiz. Uygulamalarnzda ister PHP, ister Perl, ister C, ister Python, ister bir baka dil/ara ya da karmn kullann; artk o sizin bileceiniz i.
Virs ve spam filtreleme yapabilirsiniz (amavis, spamassassin gibi ek ve tabii ki zgr yazlmlarn destei ile), e-posta datm listeleri; yani jenerik e-posta adresleri yaratabilirsiniz. rnein web sayfanzda bilgi@abc.com.tr olarak ilan ettiiniz bir eposta adresine gelen mesajlar 5 deiik gerek e-posta adresine databilirsiniz (/etc/aliases dosyas),
425
kullanclarnz kendilerine gelen tm e-posta mesajlarn baka bir adrese ynlendirebilirler (~/.forward dosyalar). e-Posta iletim mekanizmasn ksaca anlatmak iin ok uygun bir noktaya geldik galiba: yerinizin alan adnn abc.com.tr; e-posta sunucusu olarak setiiniz bilgisayarn adnn da sunucu.abc.com.tr olduunu varsayalm. Bylece kullanclarnzn e-posta adresleri ali@abc.com.tr veya ali@sunucu.abc.com.tr olacaktr. Dnyann herhangi bir yerinden gnderilecek bir e-posta mesajnn eposta sunucunuzu bulabilmesi iin abc.com.tr alan iin e-posta sunucusunu belirten bir MX kaydnn dnyaya ilan edilmesi gerekir. MX kaytlar (Mail Exchange), ait olduklar alanlarn DNS kaytlarn tutan sunucular tarafndan tutulur ve yaynlanr. rnein abc.com.tr irketi DNS kaytlarn kendisi tutuyorsa, irketin DNS sunucusuna sunucu.abc.com.tr iin bir MX kayd girmelidir. Eer irket DNS kaytlarn kendi tutmuyorsa byk olaslkla nternet servis salaycs tutuyordur; bu durumda MX kayd SSna yaptrlmaldr. imdi artk Patagonyadan ugur@abc.com.tr adresine bir e-posta gndermek isteyen bir bilgisayar kendi DNS sunucusuna abc.com.trnin e-Posta sunucusu kim? diye sorduunda yant olarak sunucu.abc.com.tr alacaktr. Ardndan, sunucu.abc.com.tr kim? diye sorgulayp IP adresini (rnein 195.194.12.32) renecektir. e-Posta sunucunuzun IP adresini renen Patagonyadaki bilgisayar, 195.194.12.32 IP adresli bilgisayarnzla SMTP protokolnde bir grme balatacaktr. Eer 195.194.12.32, SMTP konuabilen bir bilgisayar ise (rnein postfix, qmail veya sendmail gibi bir e-posta sunum program alyorsa) aralarnda aadakine benzer bir iletiim gerekleecektir: - ben Patagonyadan falanca, sizin kullanclardan birine e-posta iletilmesini isteyecektim... - Kullancnn ad ne? - cayfer - yi... Gnder...
426
- Tamam.. Aldm.. Ben iletirim... - Kapatyorum... Grrz... Sizin sunucunuz mesajn tamamn aldktan sonra, alcnn posta kutusuna yerletirilmek zere mesaj olduu gibi procmail yazlmna iletecektir. procmail de varsa kullancnn filtrelerini (spam filtresi, virus filtresi gibi) uygulayacak; eer mesaj kabul edilecekse, /var/spool/mail dizininde kullancn adyla anlan posta kutusu dosyasnn sonuna ekleyecektir. Kullancnz, posta kutusunda kendisini bekleyen e-postalar grmek istediinde birka ey yapabilir: 1. LINUX sisteminize login olur, pine veya mail konsol komutuyla posta kutusunda kendisini bekleyen mesajlar grebilir, yantlayabilir, silebilir; 2. Bir POP3 (Post Office Protocol 3) istemcisi kullanarak (KMail, Eudora, Mozilla Thunderbird, Evolution, hatta tehlikeyi seven birisi ise Outlook) mesajlarn grebilir, yantlayabilir, silebilir; 3. Bir IMAP (Internet Message Access Protocol) istemcisi kullanarak (KMail, Eudora, Mozilla Thunderbird, Evolution, hatta tehlikeyi seven birisi ise Outlook) mesajlarn grebilir, yantlayabilir, silebilir. e-posta mesajnn sizin bilgisayarnzdan gnderilmesi durumunda da ayn senaryo tekrarlanacaktr. Mesajnz gnderen yazlm (rnein KMail), siz gnder butonunu tkladnzda mesaj, kendi ayarlarnda SMTP (Simple Mail Transfer Protocol) sunucusu olarak gsterilmi olan bilgisayara iletir. O bilgisayardaki postfix, sendmail veya qmail gibi bir servis sizin mesajnzdaki alcnn adresinde grnen alann (domain) MX kaydn DNS kana-
427
lyla sorgular. MX kayd bulunursa, kaytta belirtilen sunucu ile bir SMTP grmesi aar ve mesaj gnderir. Mesajn alcnn posta kutusuna yerletirilmesi artk kardaki e-posta sunucusunun grevidir.
procmail
nzn farknda olmadan ok sk kullanacaklar; bu nedenle hem varlndan, hem de neler yaptndan haberiniz olmas gereken bir program olduu iin sz etmeden geemedik.
sajlarn karlayan ve kullanclarn posta kutularna yerletiren yazlmdr. Eer kullanclarn kiisel dizinlerinde kendileri iin hazrladklar .procmailrc diye bir dosya varsa, bu dosyada yer alan satrlar procmaile komut (makrosu) olarak yorumlanp gelen e-posta mesaj bu komutlar dorultusunda deerlendirilir. Gelen mesaj bu kontrol sonunda zel bir posta kutusuna yerletirilebilir, pe atlabilir, bir bakasna ynlendirilebilir ya da normal posta kutusuna yerletirilebilir. Aadaki rnek .procmailrc dosyas, a. cyberspam.com adresinden gelen mesajlarn dorudan pe atlmasn (/dev/null dipsiz kuyusuna ynlendirilmesini),
428
${DEFAULT}
samba Sunucusu
letim sistemine bir uyarlamasdr. NETBIOS, LanManager ve Common Internet File System (CIFS) isimleriyle de anlan bu protokol, Windows tabanl bilgisayarlarn dosya ve yazc kaynaklarnn a zerinden paylamasn salayan protokoldur.
zerinde samba sunucusu alan bir LINUX bilgisayar, buluduu a zerinde bir NT sunucusu gibi davranr. Gerek yazc ve dosya paylam, gerekse Domain Controller ilevlerinde son derece baarldr. Samba ile LINUX bilgisayarnz bir i grubuna (Workgroup) yerletirip seeceiniz dizin ve yazclar Windows tabanl bilgisayarlar kullansn diye paylama aabilirsiniz. Samba sunucunun ayarlar /etc/samba/smb.conf dosyasndan yaplr. Olduka uzun olan bu ayar dosyasnn ayrntlarn gerek dosyann aklama satrlarnda, gerekse internette Samba Nasl szckleriyle yapacanz arama sonucunda karnza gelecek dokmanlarda bulabilirsiniz. Bir Windows bilgisayarn paylama at kaynaklara LINUX bilgisayarnzdan erimeniz gerektiinde ise, samba paketinin smbclient veya smbmount isimli yazlmn yararlanabilirsiniz. LINUX/UNIX ve Windows tabanl iletim sistemleriyle kullanlan bilgisayarlarn birlikte kullanld alarda iki iletim sistemi arasndaki paylamlar hep LINUX/UNIX iletim sistemi zerinden yapmanz neririz.
429
nternet zerinde bir bilgisayara eriebilmeniz iin aa basacanz paketlerin alc adresi blmnde kardaki bilgisayarn IP adresi bulunmaldr. Saysal IP adreslerini ezberlemek zor olduu iin nternet bilgisayarlarna sistematik bir ekilde dzenlenmi, alan adlar ieren sembolik isimler verilir. rnein sembolik adresi, tr alannn, edu alt alannda yer alan bilkent ann www isimli bilgisayar demektir. TCP/IP bir a zerinde yer alan bu bilgisayarn bir de IP adresi olmal ve birileri bu IP adresinin hangi sembolik isme karlk geldiini bilmeli ve soran olduunda da bunu bildirmelidir. DNS mekanizmas ana hatlaryla yle alr: Patagonyada web taraycsnn banda oturan bir kullanc, URL olarak http://www.bilkent.edu.tr girdiinde, o tarayc yazlmn, www.bilkent.edu.tr isimli bilgisayarn IP adresini renmesi ve http protokulunun web sayfas isteme kurallarna uygun bir paket hazrlayp, paketin alc adresi blmne bu IP adresini yerletirmesi gerekir. Bunun iin, Patagonyadaki kullancnn kulland iletim sistemi, kendi TCP/IP ayarlarnda belirtilmi olan DNS sunucusuna www.bilkent.edu.tr de kim ola ki? sorusunu; yani DNS sorgusunu gnderir. Diyelim ki, Patagonyadaki bilgisayar andan Bilkente ynelik daha nce hi bir sorgu yaplmam olsun... Bu durumda Patagonyadaki DNS sunucusu bu sorguya ne yant vereceini bilemeyecektir. Bu kez, Patagonyadaki DNS sunucusu, sorguyu kendi TCP/IP ayarlarnda belirtilmi olan bir st dzey DNS sunucusuna aktaracaktr. Sorgu bu ekilde yukar doru karken, yol zerinde biryerlerde bir DNS sunucusu www.bilkent.edu.tryi bilemem ama edu.tr adreslerini kimin bildiini biliyorum! yantn verecektir. Bu rneimiz iin edu.tr adreslerini bilen DNS sunucusu, ODTdeki bir DNS sunucusu olacaktr. Bu yant, Patagonyadaki bilgisayara geri iletilince, bu bilgisayar sorgusunu biraz deitirerek ODTdeki sunucuya bilkent.edu.tr adreslerini kim bilir? olarak yneltir. ODT bu soruya 139.179.10.13 IP adresli bilgisayara tm bilkent.edu.tr adreslerini sorabilirsin! yantn verir.
www.bilkent.edu.tr
430
Son admda da Patagonyadaki bilgisayar Bilkent niversitesinin 139.179.10.13 IP adresli DNS sunucusuna www.bilkent.edu.trnin IP adresi nedir? diye sorar, yantn alr ve http istek paketini bu adrese gnderir. Adresi zlen kaytlar, DNS sunucular tarafndan belki birazdan birileri gene sorar mantyla DNS kaesi ad verilen tampon bellekte bir sre saklanr. Bu senaryo, sorgularn aktarld hiyerarideki DNS sunucularnn ayarlarna bal olarak deiebilirse de, ana hatlaryla mekanizma bu ekilde iler. Eer hi kimsenin tanmad bir adres sorgulandysa, sorgu internetin en st dzey DNS sunucularna kadar kabilir. En st dzeydeki bu DNS sunucular (root level servers, top level servers) fazla ayrntya girmeden .com, .edu.tr gibi a alanlarna DNS servisi veren bilgisayarlarn listesini tutarlar. Yani, bu en st dzey DNS sunucular, rnein bilkent.edu.tr ann kaytlarn tutan bilgisayar ya da bilgisayarlar bilmeyebilir, ama edu.tr alannn kaytlarn tutan bilgisayar ya da bilgisayarlar bilirler. edu.tr kaytlarn tutan DNS sunucusu, bilkent.edu.tr iin kaytlar kimin tuttuunu bilir. Bilkent niversitesinin DNS sunucusu da niversitedeki tm kaytl bilgisayarlar bilir. ok sk yanl anlalan bir kavrama burada aklk getirmek istiyoruz: bir bilgisayarn sembolik adresleri zebilmesi iin o bilgisayarda DNS sunucusu yazlm almas gerekmez. Aslnda tek gereksinim olan, sz konusu bilgisayara makul bir srede yant verebilecek bir DNS sunucusunun yaknlarda biryerlerde bulunmasdr. Kk alarda (yaklak 250 bilgisayara kadar) ve daha nemlisi genellikle sorgulayan istemcilerden oluan alarda, DNS hizmeti genellikle internet servisini salayan kurulutan alnr. Eer anzda ok bilgisayar varsa ve/veya anzdaki bilgisayarlarn IP adresleri ok sorgulanyorsa kendi DNS sunucunuzu kurmanz genel a performansn arttracaktr. Kendi DNS sunucunuzu kurmanz yararl olur dediimize bakp da bu i iin yeni bir bilgisayar satn almanz gerektii sonucunu karmayn sakn. A zerindeki herhangi bir LINUX bilgisayar bu ii rahat rahat yapacaktr. DNS sunucunuzu Windows tabanl bir iletim sistemi zerinde altracaksanz; yani bir WINS sunucu kuracaksanz o zaman baka... Salt DNS ileri iin olduka gl bir bilgisayar ve iletim sistemi lisans satn almanz ve bu bilgisayarda baka i altrmamanz gerekecektir.
431
dosyalarda yaplr. DNS sunucu kurmak kolay deildir. DNS mantn iyice renmek ya da kurulmu bir sistemi inceleyip, ona bakarak almak gerekir.
432
ssh sunucunuzun ayarlarn /etc/ssh/ dizinindeki dosyalarda yapabilirsiniz. Eer paranoyak deilseniz, varsaylan ayarlar iinizi grecektir. Ancak; unutmayn; internete bal hibir bilgisayar yzde yz gvenli iletiim yapamaz!
433
LINUX altnda bu aracnz da hazr: son derece gl, yetenekli ve hzl bir ate duvar yazlm olan iptables ile /etc/hosts.deny ve /etc/hosts.allow dosyalaryla denetleyemeyeceiniz trafii de kontrol altna alabilirsiniz. rnein, 140.1.13.23 adresinden anzdaki 134.43.23.1 adresli makineye gelen SMTP paketlerini kesebilirsiniz. Anzdaki 134.43.23.1 adresli bilgisayara gelen http paketlerini yk datm yapmak zere 134.32.23.250 adresli bilgisayara ynlendirebilirsiniz.
iptables ile port dzeyinde filtreler kurabilirsiniz. rnein, gnn birinde
MS-SQL sunuculara musallat olan SQL Slammer gibi bir virsn 1434 numaral porttan saldrdn rendiinizde
DHCP Sunucusu
Bir TCP/IP ada yer alacak her bilgisayar iin, IP numaras, a maskesi (netmask), a geidi (gateway), DNS sunucusu ya da sunucularnn belirtildii ayarlarn bir ekilde yaplmas gerekir. Bu ayarlar, statik olarak elle yaplabilecei gibi, otomatik olarak da yaplabilir. TCP/IP ayarlarn otomatik yaplmasn salayan servis DHCP (Dynamic Host Configuration Protocol) servisidir. Bu servisi kullanan alarda, bilgisayarlarn TCP/IP modllerine, ayarlarn DHCP ile yaplmas gerektii belirtilirse, TCP/IP modlleri yklendiinde a arabirimine MAC adresim 03:04:de:3a:29:1f; bana IP ayarlarm verecek bir DHCP servisi var m? anlamna gelen bir paket gnderirler. Eer ada DHCP sunucusu varsa, bu sunucu yazlm, gelen istei, deiik politikalara gre deerlendirip istekte bulunan bilgisayara
434
IP adresin 192.168.23.45, a geidin 192.168.2.1, a masken 255.255.255.0, DNS sunucun da 192.168.2.240 gibi bir yant gnderir. DHCP politikalar arasnda, verilen bir IP adresinin ne kadar sreyle bir bakasna verilmeyecei, belirli MAC adresine sahip istemcilere nceden kararlatrlm IP adreslerinin verilmesi gibi kavramlar kullanlabilir. DHCP kullanp kullanmamak bir a ynetim stratejisidir. Kimi a yneticileri, kullanclarnn trafiklerini izlemek ve denetlemek istedikleri iin statik IP adresleri tahsis etmeyi tercih ederler. rnein, iptables veya benzeri bir ate duvar yazlmyla anzdaki bilgisayarlarn zerinden geen trafik zerinde snrlamalarnz varsa, DHCP ayanza ba olacaktr. Dnsenize; siz 192.168.3.2 IP adresli bilgisayara ftp trafii gelmesini istemediiniz iin iptables ayar dosyasna bir satr eklemisiniz ama bir sonraki gn, sz konusu bilgisayar DHCP servisinden bir baka IP adresi alarak alm. Linuxta are tkenmez... Siz de uygun IP adresleriyle durduramyorsanz, bir iptables filtresi kullanarak MAC adresiyle durdurursunuz. te yandan, yeni yeni yaygnlaan telsiz Ethernet teknolojisi (Wireless Ethernet, 802.11b, 802.11a, 802.11g standartlar, Wi-Fi) sizi DHCP kullanmaya zorlayacaktr. Wi-Fi hizmeti verdiiniz bir blgeye kucanda bilgisayaryla gelen bir kullancnn nce a yneticisini bulup, uygun bir IP numaras istemek zorunda olmas hi de mantkl olmaz. DHCP kulanp kullanmamak sizin kararnza kalmtr. Bu karar alrken, kullanclarnz DHCP kullanmaya zorlayamayacanz bilmelisiniz. Siz DHCP servisi verseniz de vermeseniz de, anzdaki bir kullanc bilgisayarna istedii IP adresini girebilecektir. Tahmin edebileceiniz gibi DHCP sunucu yazlm dhcpdnin ayarlar /etc/dhcpd.conf dosyasndan yaplabilir.
Dikkat ettiyseniz neredeyse tm sunucu yazlmlarn ayar dosyalar /etc dizininin altnda yer alyor. Hatrlarsanz, daha nce yedeklemeden sz ederken /etc dizininin nemini vurgulamtk. Haklymz; deil mi?
435
436
benzeri SQL komutlar gnderir ve komutun yerine getirilmesini bekler. Kaytl veriler arasndan seim yapmak iinse
SELECT firma_adi, adresi FROM musteriler WHERE tip = Bayi;
benzeri bir SQL komutu gnderip, tipi Bayi olan mterilerin kaytlar istenebilir. Verilen kriterleri salayan kaytlar bir kme olarak uygulama programna geri gnderilir. Perl dili ile MySQL kullanm hakknda ayrntl bilgiye gereksinim duyarsanz, PUSULA Yaynclk tarafndan yaynlanm olan Perl ve MySQL ile CGI Programlama (ISBN:975-7092-89-4) kitabn nerebiliriz.
437
Proxy sunucular internet hatlarndan tasarruf salar; ayrca sk sk ziyaret edilen web sitelerinin kullanclara ok daha hzl sunulmasn salar. Proxy sunucular sadece web iletiiminde kullanlmaz, FTP proxy sunucular da anlamldr. Proxy sunucusu olarak kullanlacak bir bilgisayarn ie yarar bir disk kapasitesine sahip olmas gerekir. Arkasndaki an byklne; daha dorusu arkadaki kullanc saysna ve bunlarn web davranlarnn zelliklerine bal olarak birka Gigabytedan birka yz GigaBytea kadar disk gerekecektir. Bir niversite iin, 60 GByte civarnda bir proxy sunucu disk kapasitesi i grecektir; oysa bir servis salayc iin daha fazlas gerekecektir. Proxy sunucular kullanc tarafnda genellikle istee bal olarak kullanlr. Yani istemeyen kullanclar, web tarayclarnn proxy ayarlarn yapmayarak proxy sunucunuzdan yararlanmamay seebilir. Servis verdiiniz an zelliklerine bal olarak kullanclarnz proxy sunucusunu kullanmaya zorlamak isteyebilirsiniz. Byle bir durumda squid yazlmn saydam proxy sunucusu (transparent proxy server) olarak kurmalsnz. Kurduunuz bir proxy sunucusunun yararn lmek istediinizde, sunucunun raporlarndan ve log kaytlarndan yararlanmalsnz. Kae isabet oran (Cache hit ratio), sunucunuzun baar dzeyini en iyi gsterecek olan deerdir.
squid, sorumlu olduu adaki trafii ok sk denetlemek isteyen ynetici-
ler iin nemli bir aratr. Yerel ada kopyas bulunan bir dosyay almak iin internet hattnn bouna igal edilmesini engelledii gibi, a iinde kimin hangi adrese gittiinin de ayrntl bir ekilde izlenmesine olanak salar. yerinizdeki kullanclarn btn gn chat yaptklarndan, fal ve oyun sayfalarnda dolatklarndan pheleniyorsanz, squid kurup istatistik raporlarn inceleyebilirsiniz. tor ve privoxy gibi yazlmlarla squidin yetenekleri daha da geniletilebilir. rnein privoxy ile spam filtrelemeye benzer bir yntemle web sitelerindeki reklamlar filtrenebilir.
438
balants iin bir pppd sreci balatp kendi bilgisayaryla arad bilgisayar arasnda bir ppp balants kurabilir.
Evet! Yukardaki satrlarda biraz garip laflar ettiimizin farkndayz ama ne yapalm, bu iler byle. Bu kitapta, bir bilgisayarn ppp servisini verecek ekilde kurulmas iin yaplmas gereken hereyi anlatmaya olanak yok; amacmz yol gstermek. Eer bu konuda ayrntl bilgiye gereksinim duyuyorsanz, internette ok sayda kopyasn kolayca bulabileceiniz Serial Howto ve ppp Howto dokmanlarn okumalsnz.
439
LINUX iletim sistemi ile birlikte gelen veya sonradan yklenebilen nemli a servisleriyle ilgili daha ayrntl bilgiye gereksinim duyduunuzda PUSULA Yayncln LINUX A Servisleri isimli kitabndan yararlanabilirsiniz (ISBN: 975-6477-13-x).
BUNLARI BLYOR MUYDUNUZ?
Linux Datmlar
Mays 2006 tarihinde, datlan, satlan ve desteklenen 357 deiik LINUX datm olduunu biliyor muydunuz? Evet, tam 357 deiik LINUX datmndandan sz ediyoruz... Bu kitabn birinci basksnn yaynland Temmuz 2003de datm says 135 idi. LINUXun arkasnda profesyonel destek olmadn, sorunlarn zlmesinde kullanclarn yalnz olduunu iddia edenlere ithaf olunur. LINUX datmlarn srekli izleyen, inceleyen, irdeleyip eletiren www.distrowatch.com sitesinde ayrntl bilgi bulabilirsiniz.
440
EK
This is an unofficial translation of the GNU General Public License into Turkish. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL-only the original English text of the GNU GPL does that. However, we hope that this translation will help Turkish speakers understand the GNU GPL better. Bu, GNU Genel Kamu Lisansnn (GPL) Trkeye gayrresmi evirisidir. Bu eviri Free Software Foundation tarafndan yaynlanmam olup GNU GPL kullanan yazlmlarn datm artlarn belirleme asndan hukuki balaycl yoktur. Hukuki adan yalnzca GNU GPLin ngilizce metni balaycdr. Bu eviri, Trke kullanclarnn GNU GPLi daha iyi anlayabilmeleri iin hazrlanmtr.
441
mtr. Bu Genel Kamu Lisans, Free Software Foundationun ou yazlm ve bu lisans kullanmay dstur edinen dier yazlmclarn yazlmlar iin kullanlmaktadr. (Free Software Foundationun baz yazlmlar GNU Kitaplk Genel Kamu Lisans -- GNU LGPL -- altnda datlmaktadr.) Siz de bu lisans yazlmlarnza uygulayabilirsiniz. Serbest yazlmdan bahsettiimiz zaman fiyattan deil, zgrlkten bahsediyoruz. Bizim Genel Kamu Lisanslarmz, sizin serbest yazlmlarn kopyalarn datma zgrlnz (ve isterseniz bu hizmet iin para almanz), yazlm kaynak kodlarnn size datm esnasnda veya eer isterseniz verilmesini, yazlm deitirebilmenizi, yazlmn paralarn yeni yazlmlar ierisinde kullanabilmenizi ve bunlar yapabileceinizi bilmenizi salamaktadr. Haklarnz koruyabilmemiz iin sizin haklarnz kstlama veya sizin bu haklarnzdan feragat etmenizi isteme yollarn yasaklayc baz kstlamalar getirmemiz gerekmektedir. Bu kstlamalar eer serbest yazlm datyor veya deitiriyorsanz size baz ykmllkler getirmektedir. rnein byle bir programn kopyalarn, bedava veya cret karl datyorsanz alclara sizin sahip olduunuz btn haklar salamalsnz. Onlarn da kaynak kodlarna sahip olmalarn veya ulaabilmelerini salamalsnz. Onlara da haklarn bilebilmeleri iin bu artlar gstermelisiniz. Haklarnz koruma iki aamada gereklemektedir: 1. Yazlma telif hakk alnmaktadr. 2. Yazlm lisans olarak size, hukuki olarak, yazlm kopyalama, datma ve/veya deitirme hakk tanyan bu lisans sunulmaktadr. Ayrca, yazarlarn ve bizim korunmamz iin bu serbest yazlmn herhangi bir garantisi olmadn herkesin anlamasn istiyoruz. Eer yazlm bakas tarafndan deitirilmi ve deitirilmi hali ile tarafnza ulatrlm ise alclarn, ellerinde olan yazlmn orijinal olmadn, dolaysyla bakalar tarafndan eklenen problemlerin ilk yazarlarn hretlerine olumsuz etkide bulunmamas gerektiini bilmelerini istiyoruz. Son olarak, btn serbest yazlmlar yazlm patentleri tarafndan srekli tehdit altnda bulunmaktadr. Serbest bir yazlmn datclarnn bireysel
442
olarak patent lisans almalarn ve bu yol ile yazlm mseccel hale getirmelerine imkan vermemek istiyoruz. Bunu engellemek iin, yazlm iin alnacak her patentin herkesin serbest kullanmna izin vermesi veya patentlenmemesi gerektiini ak olarak ortaya koyuyoruz. Kopyalama, datm ve deitirme ile ilgili kesin art ve kaytlar aada yer almaktadr.
443
kendisini yukarda 1. blmdeki artlar dahilinde ve aada sralanan artlarn yerine getirilmesi koulu ile kopyalayabilir ve databilirsiniz. a. Deitirilen dosyalarn grnr bir ekilde dosyalarn sizin tarafnzdan deitirildiine dair, tarihli bir bildirim iermesini salamalsnz. b. Yazlmdan veya Yazlmn bir parasndan tamamen veya ksmen itikak etmi ve sizin tarafnzdan datlan veya yaynlanan herhangi bir rnn btn nc ahslara bu Lisans artlar altnda cretsiz olarak ruhsatlanmasn salamalsnz. c. Eer deitirilen yazlm olaan kullanm altnda komutlar interaktif olarak alyor ise, yazlm, en olaan kullanm iin interaktif olarak altrld zaman uygun bir telif hakk bildirimi, garantisi olmadna (veya sizin tarafnzdan garanti verildiine), kullanclarn bu yazlm bu artlar altnda tekrar databileceklerine ve kullancnn bu Lisansn bir kopyasn nasl grebileceine dair bir bildirim yazdrmal veya gstermelidir. (stisna: Eer Yazlmn kendisi interaktif ise fakat byle bir bildirimi olaan kullanm esnasnda yazdrmyor ise, sizin Yazlm baz alan rnnz byle bir bildirimde bulunmak zorunda deildir.) Bu artlar deitirilmi eserin tamamn kapsamaktadr. Eer eserin tespit edilebilir ksmlar Yazlmdan itikak etmemi ise ve makul surette kendi balarna bamsz ve ayr eserler olarak kabul edilebilir ise, o zaman bu Lisans ve artlar, bu paralar ayr eser olarak dattnz zaman balayc deildir. Fakat, ayn paralar Yazlm baz alan bir rn btnnn bir paras olarak dattnz zaman btnn datm, dier ruhsat sahiplerine verilen izinlerin btne ait olduu ve paralarna, yazarnn kim olduuna baklmakszn btn paralarna tek tek ve mterek olarak uyguland bu Lisans artlarna uygun olmaldr. Bu blmn hedefi tamamen sizin tarafnzdan yazlan bir eser zerinde hak iddia etmek veya sizin byle bir eser zerindeki haklarnza muhalefet etmek deil, Yazlm baz alan, Yazlmdan itikak etmi veya mterek olarak ortaya karlm eserlerin datmn kontrol etme haklarn dzenlemektir. Buna ek olarak, Yazlm baz almayan herhangi bir rnn Yazlm ile (veya Yazlm baz alan bir rn ile) bir bilgi saklama ortamnda veya bir datm ortamnda beraber tutulmas dier eseri bu Lisans kapsamna sokmaz.
444
3. Yazlm (veya 2. blmde tanmland hali ile onu baz alan bir rn) ara derlenmi veya uygulama hali ile 1. ve 2. Blmdeki artlar dahilinde ve aada sralanan yntemlerden birisine uygun olarak kopyalayabilir ve databilirsiniz. a. Yaygn olarak yazlm datmnda kullanlan bir ortam zerinde, yukarda 1. ve 2. Blmde bulunan artlar dahilinde, bilgisayar tarafndan okunabilir kaynak kodlarnn tamam ile birlikte datmak. b. Herhangi bir nc ahsa, fiziksel olarak datm gerekletirme masrafnzdan daha fazla cret almayarak, yaygn olarak yazlm datmnda kullanlan bir ortam zerinde, yukarda 1. ve 2. Blmde bulunan artlar dahilinde, bilgisayar tarafndan okunabilir kaynak kodlarnn tamamn datacanza dair en az yl geerli olacak yazl bir taahhtname ile birlikte datmak. c. Size verilmi olan ilgili kaynak kodunu datma taahhtnamesi ile birlikte datmak. (Bu alternatif yalnzca ticari olmayan datmlar iin ve yalnzca siz de yazlm ara derlenmi veya uygulama bieminde ve yukarda b) blmnde anlatlan ekli ile bir taahhtname ile birlikte alm iseniz geerlidir.) Bir eserin kaynak kodu, esere deitirme yapmak iin en uygun yntem ve imkan anlamnda kullanlmaktadr. Uygulama bieminde bir eser iin, kaynak kodu, ierdii btn paralar iin ilgili kaynak kodlar, ilgili arayz tanm dosyalar ve derleme ve ykleme ilemlerinde kullanlan btn betikler anlamnda kullanlmaktadr. Bir istisna olarak, datlan kaynak kodu, genelde uygulamann zerinde alaca iletim sisteminin ana paralar (derleyici, ekirdek v.b.) ile birlikte datlan herhangi bir bileeni,eer ilgili bileen, uygulama ile birlikte datlmyorsa, iermek zorunda deildir. Eer uygulama veya ara derlenmi biemde yazlmn datm belli bir yere eriim ve oradan kopyalama imkan olarak yaplyorsa, ayn yerden, ayn koullar altnda kaynak koduna eriim imkan salamak, nc ahslarn ara derlenmi ve uygulama biemleri ile birlikte kaynak kodunu kopyalama zorunluluklar olmasa bile kaynak kodunu datmak olarak kabul edilmektedir. 4. Yazlm bu Lisansta sarih olarak belirtilen artlar haricinde kopyalayamaz, deitiremez, ruhsat hakkn veremez ve datamazsnz. Buna aykr herhangi bir kopyalama, deitirme, ruhsat hakk verme, veya datmda bulunma hkmszdr ve byle bir teebbs halinde bu Lisans altndaki btn haklarnz iptal edilir. Sizden, bu Lisans kapsamnda kopya veya hak al-
445
m olan nc ahslar, Lisans artlarna uygunluklarn devam ettirdikleri srece, ruhsat haklarn muhafaza edeceklerdir. 5. Bu Lisans sizin tarafnzdan imzalanmad iin bu Lisans kabul etmek zorunda deilsiniz. Fakat, size Yazlm veya onu baz alan rnleri deitirmek veya datmak iin izin veren baka bir belge yoktur. Eer bu Lisans kabul etmiyorsanz bu eylemler kanun tarafndan sizin iin yasaklanmtr. Dolaysyla, Yazlm (veya onu baz alan bir rn) deitirmeniz veya datmanz bu Lisans ve Lisansn Yazlm veya ondan itikak etmi btn eserleri kopyalamak, deitirmek ve datmak iin getirdii art ve kaytlar kabul ettiiniz manasna gelmektedir. 6. Yazlm (veya onu baz alan herhangi bir rn) yeniden dattnz her defada alc, ilk ruhsat sahibinden otomatik olarak Yazlm bu artlar ve kaytlar dahilinde kopyalamak, deitirmek ve datmak iin ruhsat almaktadr. Alcnn burada verilen haklar kullanmasna ek birtakm kstlamalar getiremezsiniz. nc ahslar bu Lisans mucibince hareket etmee mecbur etmek sizin sorumluluk ve ykmllnz altnda deildir. 7. Eer bir mahkeme karar veya patent ihlal iddias veya herhangi baka bir (patent meseleleri ile snrl olmayan) sebep sonucunda size, bu Lisansn art ve kaytlarna aykr olan birtakm (mahkeme karar, zel anlama veya baka bir ekilde) kstlamalar getirilirse, bu sizi bu Lisans art ve kaytlarna uyma mecburiyetinden serbest brakmaz. Eer ayn anda hem bu Lisansn artlarn yerine getiren hem de dier kstlamalara uygun olan bir ekilde Yazlm datamyorsanz, o zaman Yazlm datamazsnz. rnein, eer bir patent lisans direkt veya endirekt olarak sizden kopya alacak olan nc ahslarn bedel demeksizin Yazlm datmalarna hak tanmyorsa o zaman sizin hem bu koulu hem Lisans koullarn yerine getirmenizin tek yolu Yazlm datmamak olacaktr. Eer bu blmn herhangi bir paras herhangi bir art altnda uygulanamaz veya hatal bulunur ise o artlar dahilinde blmn geri kalan ksm, btn dier artlar altnda da blmn tamam geerlidir. Bu blmn amac sizin patent haklarn, herhangi bir mlkiyet hakkn ihlal etmenize yol amak veya bu haklarn geerliliine muhalefet etmenizi salamak deildir; bu blmn btn amac kamu lisans uygulamalar ile oluturulan serbest yazlm datm sisteminin btnln ve ilerliini korumaktr. Bu sistemin tutarl uygulanmasna dayanarak pek ok kii bu sistemle datlan geni yelpazedeki yazlmlara katkda bulunmutur; yazlm-
446
n bu veya baka bir sistemle datmak karar yazara aittir, herhangi bir kullanc bu karar veremez. Bu blm Lisansn geri kalannn dourduu sonularn ne olduunu akla kavuturmak amacn gtmektedir. 8. Eer Yazlmn kullanm ve/veya datm baz lkelerde telif hakk tayan arayzler veya patentler yznden kstlanrsa, Yazlm bu Lisans kapsamna ilk koyan telif hakk sahibi, Yazlmn yalnzca bu lkeler haricinde datlabileceine dair ak bir corafi datm kstlamas koyabilir. Byle bir durumda bu Lisans bu kstlamay sanki Lisansn ierisine yazlm gibi kapsar. 9. Free Software Foundation zaman zaman Genel Kamu Lisansnn yeni ve/veya deitirilmi biimlerini yaynlayabilir. Byle yeni srmler mana olarak imdiki haline benzer olacaktr, fakat doacak yeni problemler veya kayglara cevap verecek ekilde detayda farkllk arzedebilir. Her yeni biime ayrdedici bir srm numaras verilmektedir. Eer Yazlm bir srm numaras belirtiyor ve bu ve bundan sonraki srmler altnda datlyorsa, belirtilen srm veya Free Software Foundation tarafndan yaynlanan herhangi sonraki bir srmn art ve kaytlarna uymakta serbestsiniz. Eer Yazlm Lisans iin bir srm numaras belirtmiyor ise, Free Software Foundation tarafndan yaynlanm olan herhangi bir srmn art ve kaytlarna uymakta serbestsiniz. 10. Eer bu Yazlmn paralarn datm koullar farkl olan baka serbest yazlmlarn ierisinde kullanmak isterseniz, yazara sorarak izin isteyin. Telif hakk Free Software Foundationa ait olan yazlmlar iin Free Software Foundationa yazn, bazen istisnalar kabul edilmektedir. Kararmz, serbest yazlmlarmzdan itikak etmi yazlmlarn serbest statlerini korumak ve genel olarak yazlmlarn yeniden kullanlabilirliini ve paylamn salamak amalar dorultusunda ekillenecektir.
Garanti Yoktur
11. Bu yazlm cretsiz olarak ruhsatland iin, yazlm iin ilgili kanunlarn izin verdii lde herhangi bir garanti verilmemektedir. Aksi yazl olarak belirtilmedii mddete telif hakk sahipleri ve/veya baka ahslar yazlm olduu gibi, aikar veya zimnen, satlabilirlii veya herhangi bir amaca uygunluu da dahil olmak zere hibir garanti vermeksizin datmaktadrlar. Yazlmn kalitesi veya performans ile ilgili tm sorunlar size aittir.
447
Yazlmdaki herhangi bir bozukluktan dolay doabilecek olan btn servis, tamir veya dzeltme masraflar size aittir. 12. lgili kanunun icbar ettii durumlar veya yazl anlama haricinde herhangi bir ekilde telif hakk sahibi veya yukarda izin verildii ekilde yazlm deitiren veya yeniden datan herhangi bir kii, yazlmn kullanm veya kullanlamamas (veya veri kaybi olumas, verinin yanl hale gelmesi, sizin veya nc ahslarn zarara uramas veya yazlmn baka yazlmlarla beraber alamamas) yznden oluan genel, zel, dorudan ya da dolayl herhangi bir zarardan, byle bir tazminat talebi telif hakk sahibi veya ilgili kiiye bildirilmi olsa dahi, sorumlu deildir.
448
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Size normal ve elektronik posta ile nasl ulalabileceine dair bilgi eklemeyi unutmayn. Eer yazlmnz interaktif ise, interaktif kipte balatld zaman gsterilen ksa bir bildirim koyun. Gnomovizyon version 69, Copyright (C) yl yazarn ad Gnomovizyon comes with ABSOLUTELY NO WARRANTY; for details type `show w. This is free software, and you are welcome to redistribute it under certain conditions; type `show c for details. Gnomovizyon srm 69, Telif hakk (C) yl yazarn ad Gnomovizyon iin HBR GARANT verilmemektedir; detaylar iin `show w yazn. Bu bir serbest yazlmdr ve belli koullar altnda yeniden datlabilir; detaylar iin `show c yazn. rnekte verilen `show w ve `show c komutlar GNU Genel Kamu Lisansnn ilgili blmlerini gstermelidir. Elbette kullanlan komutlar daha farkl olabilir veya yazlmnza uyan baka yntemlerle bu bildirim yaplabilir. vereninizin (eer programc olarak alyorsanz) veya, eer renci iseniz, okulunuzun telif haklarndan feragat ettiklerine dair bir feragatname imzalamalarn isteyebilirsiniz. Aada bir rnek yer almaktadr, isimleri deitirin: Gereksizler, A.., Mehmet Herhangibiri tarafndan yazlm `AbidikGubidik yazlmnda (kapkolu evirmekte kullanlan bir yazlm) olabilecek btn telif haklarndan feragat eder. {Yn Etici mzas}, 1 April 1990 Yn Etici, Gereksizler Yetkilisi Bu Genel Kamu Lisans yazlmnzn serbest olmayan yazlmlarn ierisine dahil edilmesine imkan tanmaz. Eer yazlmnz bir kitaplk ise, serbest olmayan yazlmlarn kitaplnza balanmasna imkan tanmak isteyebilirsiniz. Eer yapmak istediiniz bu ise, bu Lisans yerine GNU Kstl Genel Kamu Lisansn kullanabilirsiniz.
eviren: Deniz Akku Kanca, 2001 Translated by: Deniz Akku Kanca, 2001
449
Sonsz Bu kitap, LINUX dnyasna ilk admnz atmanz saladysa ne mutlu bize. LINUX ve doal olarak UNIX dnyasndaki yolculuk uzun, heyecanl, keyifli ve yorucu bir deneyimdir. yi bir UNIX sistem yneticisi olabilmek iin yllarca almak gerekir. yi bir di hekimi, iyi bir cerrah olabilmek iin nasl zamana ve en nemlisi meslein aralarn iyi tanma ve kullanma becerilerini gelitirmeye gereksinim varsa; UNIX dnyasnda da iletim sisteminin aralarn iyi renmeye ve kullanma becerilerini gelitirmeye gerek vardr. Bu kitab okumakla LINUX renmediniz. Olsa olsa korkmamay rendiniz. Bu kitapta bir iki satrla anlatlan birok konunun her biriyle ilgili yzlerce sayfalk kitaplar var. Onlar da bir okuyun; ondan sonra tekrar grelim. LINUX/UNIX sistem yneticilii bir meslektir. Tek bir kitap; hele giri dzeyinde bir kitap okumakla bir meslek edinmeyi ummuyordunuz herhalde... Tm biliim konularnda olduu gibi bir iletim sistemini kullanmay okuyarak renemezsiniz. Denemeli, uramal, aratrmal, a ve uykusuz kalmalsnz. Eer LINUX dnyasna ciddi bir ekilde girmek istiyorsanz size tek bir neride bulunabiliriz: bilgisayarnzdaki LINUX dndaki tm iletim sistemlerini silin. Eskiden beri dier iletim sistemiyle yapmakta olduunuz ileri LINUX ile yapmaya aln. Unutmayn; aklnza gelebilecek her trl sorunun zm LINUXta vardr; btn mesele bu zm bulup uygulayabilmektedir. LINUX iletim sistemine bir kez altktan ve onu ynetmeyi rendikten sonra dier iletim sistemleri; zellikle de Windows ailesinin sunucu zelliine sahip olan srmleri size ok zayf gelecektir. Bugne kadar UNIX/LINUX dnyasn brakp Windows ortamna geen profesyonele hi rastlamadk ama tersini ok grdk. Gzlem sresi yazarlardan gen olan iin 3-4 yl, ihtiyar olan iin Windowsun tarihi kadar uzundur. UNIX dnyasna hogeldiniz. mer Ayfer - Can Uur Ayfer
450