açık kaynak kodlu işletim sistemi yapısı
Transkript
açık kaynak kodlu işletim sistemi yapısı
PARDUS AÇIK KAYNAK KODLU İŞLETİM SİSTEMİ YAPISI 1.1. UNIX Tarihçesi ve Gelişimi 1.1.1. Unix’in Oluşumu 1960'larda AT&T'nin Bell Laboratuarları,MIT ve General Electric'in ortaklaşa yürüttükleri bir projede “Multics” isimli bir işletim sisteminin patentini aldılar. Bell Laboratuarı bu projeden çekilene kadar iki çalışanı , Dennis Ritchie ve Ken Thompson, bu projede çalıştı. Bell Laboratuarları bu projeden çekildikten sonra bu iki kişi yeni bir projede bir işletim sistemi ortaya çıkardılar. İşletim sistemine “Multics” adından esinlenerek “Unics” ismi takıldıysa da daha sonraları bu isim UNIX olarak değiştirildi. UNIX'in en temel özelliği Dennis Ritchie tarafından yaratılan C dili ile oluşturulmasıydı. İşletim sistemleri o güne kadar sistemin mimarisine bağlı olan makine dili ile yazılmaktaydı. UNIX işletim sistemi makine dili yerine C dili temel alınarak kodlanmıştı. Bu da işletim sisteminin diğer platformlara taşınmasını kolaylaştırıyordu. UNIX işletim sistemi duyulmaya başladıktan sonra başta üniversiteler olmak üzere bir çok kişi ve kurumun ilgisini çekti. Özellikle üniversitelerin bilgisayar bilimleri bölümlerinde okuyan ve çalışan kişilerin desteği ile birlikte UNIX kısa zamanda büyük bir ilerleme kaydetti. Bunun sonucu olarak da en önemli bilgisayar işletim sistemi ünvanını eline geçirdi. 1980'lerin başında AT&T UNIX işletim sisteminden para kazanma yoluna gitti ve işletim sistemini özel lisanslar ile pazarlamaya başladı. UNIX'in ortaya çıktığı günden itibaren işletim sisteminin gelişmesine yardımda bulunan bir çok kişi bu karara karşı çıktı. Bunun üzerine amacı UNIX benzeri ve parasız dağıtılabilen bir işletim sistemi ortaya çıkarmak olan GNU projesi Richard Stallman tarafından başlatıldı.GNU'yu desteklemesi için 1984 yılında Stallman ve arkadaşları “Free Software Foundation (FSF)” projesini yarattılar. FSF'te “free” ile anlatılmak istenen bedava olan yazılımdan çok özgürce dağıtılan yazılım manasını taşımaktaydı. FSF'e göre herhangi bir amaç için kullanılabilen , kopyalanıp üzerinde gerekli değişiklik yapılabilen ve daha gelişmiş bir yazılım sistemine dahil edilebilen yazılım serbest yazılım(free software) olarak kabul edilmişti. Bu özgürlükler için temel olarak gereken şey yazılımın koduna erişimdi. Bu yüzden bu akım aynı zamanda “Kaynak Kodu Açık Yazılım – Open Source Software (OSS)” olarak da anılır.Linux günümüzde bulunan en büyük kaynak kodu açık yazılımdır. 1.1.2. Linux’un Ortaya Çıkışı AT&T UNIX işletim sistemini para ile lisanslayana kadar , UNIX üniversitelerde bilgisayar bilimi öğrencilerine işletim sistemlerini öğretmek için kullanılan bir araçtı. AT&T'nin yaptığı değişiklik sonrası üniversitelerin yeni bir işletim sistemine ihtiyacı ortaya çıktı. Bunun üzerine Andrew Tannenbaum UNIX benzeri bir işletim sistemi olan MINIX işletim sistemini ortaya çıkardı. 1990 yılında Finli bilgisayar bilimi öğrencisi Linus Torwalds Intel mimarisindeki bilgisayarlar için hafıza yönetimi yapan bir yazılım üzerinde çalışmaya başladı.Bir zaman sonra bu projesinin genişletilmiş halinin UNIX çekirdeği gibi çalışabileceğini farketti. 1991 yılında comp.os.minix haber grubuna üzerinde çalıştığı projeyi bildiren ve geliştirme için öneri isteyen bir mesaj gönderdi. Torwalds bu yeni işletim sistemine Linus'un MINIX'i olarak tanımladığı LINUX adını verdi. Unix üzerinde program geliştiren kişilerden Linux'un geliştirilmesi için yardım teklifleri gelmeye başladı. Linux'un bir önemli yanı ise GNU projesinin eksik olan bir parçasını doldurmasıydı. GNU projesi çerçevesinde yaratılacak olan Unix benzeri işletim sisteminin çoğu parçaları bitmişti. Yapılmayan en önemli parça işletim sisteminin çekirdeği idi. Bu eksikte Linux tarafından kapatılmış oldu. 1994 yılında Linux 1.0 serisi kernel GPL lisansı altında yayınlandığında , Linux 100,000 kullanıcıya erişmişti. Günümüzde Linux'un milyonlar ile belirtilen bir kullanıcı kitlesi bulunmakta. Son kullanıcı pazarında da gün geçtikçe güçlenmesine rağmen Linux günümüzde çoğunlukla sunucularda kullanılan bir işletim sistemidir. Yapılan araştırmalardan Internet'te bulunan web sunucularının büyük çoğunluğu Linux işletim sistemi üzerinde çalışmakta olduğu sonucu ortaya çıkmıştır. 1.2. Açık Kaynak Kodlu İşletim Sistemi Kurulumu 1.2.1. Hangi Linux ? Açık kaynak işletim sistemi Linux’un yüzlerce sayıda farklı sürümü (dağıtımı) vardır. Bütün Linux sürümleri, işletim sisteminin temeli olan ortak çekirdeği kullanmaktadır. Fakat farklı firma ve kuruluşlar, açık kaynak kodlu olan çekirdek üzerine kendi değişikliklerini ekleyerek işletim sistemini yapılandırmaktadırlar. Benzer şekilde Linux sürümlerinde kullanılan temel programların büyük bir kısmı da açık kaynak kodlu olduğu için ortak programlar farklı uyarlamalarla sürümlerde yer almaktadır. Açık kaynak kodlu yazılımların getirdiği bu avantajdan dolayı Internet ortamında pek çok Linux sürümü yer almaktadır. Bu sürümlerin büyük bir kısmı küçük çapta (bir ya da iki disketlik sürümler) olduğu gibi, bazı büyük Linux sürümleri geliştirilmediği için zamanla kaybolmuştur. Benzer şekilde isteyen herkes kendi Linux sürümünü hazırlayabilir. (Açık Kaynak İşletim Sistemi dersini başardığınız takdirde siz de…) Bu tecrübe ile Linux hakkında temel düzeyde pek çok bilgi edinebilirsiniz. Linux dağıtımları çeşitli amaçlara yönelik olarak hazırlanırlar. Kimi masaüstü için, kimi sunucu amaçlı, kimisi de güvenlik duvarı vb. gibi. Siz de öncelikle kendi ihtiyaçlarınızı belirleyerek, size uygun bir Linux dağıtımını seçebilirsiniz. Mesela masaüstü bilgisayarında multimedya özelliklerini kullanacaksanız o zaman sizin sunucu araçlarını içeren bir dağıtım kullanmanıza gerek yoktur. Öte yandan “Linux'un derinliklerine inmek istiyorum, sadece komut satırını kullanacağım.” diyorsanız çok büyük sürümleri kullanmanız gerekmez. Oyun amaçlı bir kullanım söz konusu ise tamamıyla grafik tabanlı ve donanım desteği geniş bir Linux dağıtımı işinizi görecektir. Dağıtımlara ait sitelerde veya başka sitelerde ki ekran görüntülerine bakabilirsiniz. Bu ekran görüntüleri size bir fikir verecektir. Aşağıda dünya üzerinde kullanılan Linux dağıtımlarından bazılarının isimleri alfabetik sırada verilmiştir. Linux’un açık kaynak kodlu bir işletim sistemi olması sebebiyle dağıtımların sayısı da oldukça fazladır. Caldera Open Centos Corel Debian Dynebolic Edubuntu EvilEntity Fedora Gentoo Kernel Knoppix Kubuntu Mandrake Mandriva Mepis METU-CC Linux OpenSuse Oralux Pardus Pc LinuxOS Puppy Redhat Slackware Suse Turkix Ubuntu Vector Xubuntu Zenwalk FreeBSD ForeSight Gelecek Nessus TrueBSD NetBSD Truva OpenBSD Turbolinux Tablo 1.1 : Bazı Linux dağıtımları. Bu kaynakta TUBİTAK-UEKAE (Türkiye Bilimsel ve Teknik Araştırmalar KurumuUlusal Elektronik ve Kriptoloji Araştırma Enstitüsü) ‘nin hazırlamış olduğu Pardus Linux 2007 sisteminin kurulumu ve kullanımını merkez alan bir anlatımla karşılaşacaksınız. Bunun yanında Red Hat Linux dağıtımının da genel özellikleri ve uygulamaları konusunda bilgi sahibi olacaksınız. Pardus projesi, TÜBİTAK - UEKAE tarafından başlatılan ve devam ettirilmekte olan, bilişim okur-yazarlığına sahip bilgisayar kullanıcılarının temel masaüstü ihtiyaçlarını hedefleyerek; mevcut Linux dağıtımlarının üstün taraflarını kavram, mimari ya da kod olarak kullanan; özerk sisteme evirilebilecek bir yapılandırma çerçevesi ve araçları ile kurulum, yapılandırma ve kullanım kolaylığı sağlamak üzere geliştirilen bir GNU/Linux ortaya koymayı hedeflemiş bir geliştirme projesidir. 1.2.2. Kuruluma Hazırlık Pardus kurulumuna başlayabilmek için bilgisayarın CD'den açılabilecek şekilde ayarlanmış olması gerekmektedir. Bu tanımı bilgisayar açılırken “BIOS Setup” menüsüne girerek yapabilirsiniz. Bu noktada, sabit diskin durumu hakkında bilgi sahibi olmanız, ve Pardus'u hangi disk bölümüne kurmak istediğinize karar vermiş olmanız önerilir. Pardus'u sabit diskin tamamını veya bir bölümünü kullanacak şekilde kurabilirsiniz. Pardus kurulum sistemi (YALI) ile kısa bir sürede bilgisayarı Pardus'la açılacak şekilde yapılandırabileceksiniz. Bunun için Pardus CD' sini yerine takın. Bilgisayarı yeniden başlattıktan bir kaç dakika sonra Pardus'un kurulum ekranı gelecektir. Resim 1.1 : Pardus 2007 kurulum ekranı (Seçenekler). Resim 1.2 : Pardus 2007 kurulum ekranı (Lisans anlaşması). Kurulum ekranında üstte görünen üç basamak, kurulumun aşamalarını ve şu anda hangi aşamada olduğunuz bilgisini verir. Ekranın sağ yanında bulunan bölümde bulunduğunuz aşamada gerçekleşen eylemler ya da dikkat edilmesi gereken konularda uyarılar bulunur. Soldaki alan gerçekleşen işlemlerin görüntülerini takip edebileceğiniz ana bölümdür. En altta ise önceki işleme dönmek ya da sonraki işleme geçmek için gezinme düğmelerinin yanı sıra kurulan sürüme ait ayrıntılı bilgileri okuyabileceğiniz “Sürüm notları” bağlantısını görebilirsiniz. Resim 1.3 : Pardus 2007 kurulum ekranı (CD Kontrolü). Resim 1.4 : Pardus 2007 kurulum ekranı (Klavye seçimi). 1.2.3. Disk Bölümlendirme ve Biçimlendirme Disk bölümlendirme işleminde ne yaptığınızı biliyor olmanız çok önemlidir. Eğer kuşkularınız varsa, bilgi kaybına uğramamak için, bu konuda bilgili bir kişiden yardım almanız önerilir. Kurulum yapılmasına onay verdiğinizde disk bölümlendirme ekranına ulaşırsınız. Bu ekranda hangi bölümlendirme yöntemini ve birden fazla sabit diskiniz varsa hangi diske kurulum yapacağınızı belirtebilirsiniz. 'Otomatik Bölümlendirme' seçeneği, diskin tamamı Pardus'a ayrılarak yapılacak kurulumlar için tasarlanmıştır. Bu seçeneği tercih ederseniz diskinizdeki bütün bilgiler SİLİNECEKTİR! Eğer diskin yalnızca bir bölümünü Pardus'a ayırmak istiyorsanız “Hayır, diskimi kendim bölümlendireceğim.” seçeneğini tercih etmelisiniz. Otomatik disk bölümlendirme seçeneği diskinizi bölümlendirip doğrudan kuruluma başlar. Diski elle bölümlendirmek istediğinizde aşağıdaki resme benzer bir ekranla karşılaşırsınız. Resim 1.5 : Pardus 2007 kurulum ekranı (Disk Bölümlendirme). Kurulum için seçtiğiniz diskin daha önceden yapılandırılmış bölümleri varsa bu ekranda tümünü görebilirsiniz. Bu bölümlerde değişiklik yapmak ya da yeni bölümler yaratmak için listenin altındaki seçenekleri kullanabilirsiniz. YALI herhangi bir disk bölümünüzün boyutunu içindeki bilgilere zarar vermeden değiştirebilir. Böylece disk bölümlerini ihtiyacınıza göre yeniden oluştururken kurulu ve çalışan sisteminiz zarar görmez. Elbette disk bölümündeki boş yerler ile sınırlı olacak, yani bir diski en fazla içindeki boş yer kadar küçültebileceksiniz. Resim 1.6 : Pardus 2007 kurulum ekranı (Disk Bölümlendirme). Resim 1.7 : Pardus 2007 kurulum ekranı (Disk Bölümlendirme). Bölümlendirme istediğiniz gibi olduğunda kurulum yapılacak bölümleri seçerek bu adımı tamamlayabilirsiniz. Bunun için bir disk bölümü seçerek 'Düzenle' düğmesine basın. Karşınıza gelecek olan pencerede aşağıdaki kısımları göreceksiniz. ¾ Pardus Sistem Dosyaları (Zorunlu): Pardus'un çalışacağı dizini oluşturur. En az 4 GB büyüklüğünde bir disk bölümünün bu seçenekle düzenlenmesi gerekmektedir. ¾ Kullanıcı Dosyaları (İsteğe Bağlı): Sisteme kayıtlı kullanıcıların kişisel dosyaları ve ayarlarının saklandığı dizinler bu seçenekle düzenlenen disk bölümünde saklanır. Bu dosyalar ve belgeler, bu seçenekle düzenlenen bir disk bölümü olmadığında Sistem'e ayrılan disk bölümü içinde saklanır. Zorunlu değildir ancak bu bilgilerin yedeklenmesi, sistem değişikliklerinde güvenli olarak saklanması için ayrı bir disk bölümü tavsiye edilir. ¾ Takas Alanı Bölümü (İsteğe Bağlı): Pardus, belleğin yetmediği durumlarda sabit disk üzerinde takas işlemi gerçekleştirmek için bir takas dosyası ya da bu iş için ayrılan bir disk bölümü kullanabilmektedir. Bu işlem için burada bir disk bölümü seçebilirsiniz. Takas Disk Bölümü kullanmadığınız takdirde Pardus tarafından Sistem için ayrılan disk bölümü altında yapılandırılacak olan bir dosya otomatik olarak kullanılacaktır. Resim 1.8 : Pardus 2007 kurulum ekranı (Disk Bölümlendirme). Resim 1.9 : Pardus 2007 kurulum ekranı (Disk Biçimlendirme). Resim 1.10 : Pardus 2007 kurulum ekranı (Disk Biçimlendirme). 1.2.4. Sistem Kurulumu Disk bölümlerini belirlediniz ve kuruluma başladınız. Kısa süre içinde masaüstü bilgisayarları için güncel ihtiyaçları karşılayan bir çok başarılı özgür yazılım bilgisayarınıza kurulmuş olacak. Bu sürede Pardus'un size sunduğu avantajlarla ilgili bilgileri ana ekranda değişen görüntülerden, hangi bileşenin kurulduğunu ayrıntılı biçimde ise işlem göstergesinin altındaki yazılardan takip edebilirsiniz. Aşağıda Pardus sistem kurulumu aşamasında görülen ekranlara ait görüntülerden bazıları verilmiştir. Resim 1.11 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). Resim 1.12 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). Resim 1.13 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). Resim 1.14 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). Resim 1.15 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). Resim 1.16 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). Resim 1.17 : Pardus 2007 kurulum ekranı (Sistem Kurulumu). 1.2.5. Sistem Yöneticisi Sistem Yöneticisi, Pardus'un kurulum sırasında sisteme eklenmiş ve en üst düzey yetkiye sahip olarak tanımlanmış ilk kullanıcısıdır. Her sistemde root adıyla sistem yöneticisi bulunur. Bu kullanıcı sisteminizin tamamına etki eden yapılandırmalar, sistem kayıtları ve benzeri yönetim uygulamalarını çalıştırmaya yetkilidir. Kolay tahmin edilemeyecek ve unutmamanız gereken bir parola belirleyerek girmeniz gerekmektedir. Bu parola daha sonra sistemle ilgili yönetici seviyesinde gerçekleştirilmesi gereken işlemler sırasında sorulacaktır. Bu kullanıcının parolasının herkes tarafından bilinmemesi, sisteminizin güvenliği ve kendi bilgilerinizin düzeni açısından yararlıdır. Resim 1.18 : Pardus 2007 kurulum ekranı (Yönetici Parolası). 1.2.6. Kullanıcı Ekleme Bu aşamada dilediğiniz kadar kullanıcıyı gerçek isim, kullanıcı ismi ve parola bildirerek sisteme ekleyebilirsiniz. Sistem tarafından tanınan her kullanıcının belgelerini ve ayar bilgilerini sakladığı kendine ait bir ev dizini olacaktır. Bu sayede hiçbir kullanıcı bir diğerinin sistemi kullanma şekline ya da bilgilerine müdahale edemez. Resim 1.19 : Pardus 2007 kurulum ekranı (Kullanıcı Ekleme). 1.2.7. Sistem Yükleyicisi Sistem Yükleyicisi, bilgisayarınız açıldıktan sonra disk üzerinde bulunan sistemleri belirleyerek açılmalarını sağlar. Pardus'un açılabilmesi ya da birden fazla sistem yüklü ise, açılışta bilgisayarınızı kullanmak için hangi sistemi tercih edeceğinizi belirlemek için bir Sistem Yükleyicisi kurulması zorunludur. Sistemi yüklemek için bilinçli olarak başka bir tercihiniz olmadığı durumlarda mutlaka sistem yöneticisini kurmayı onaylayın. Resim 1.20 : Pardus 2007 kurulum ekranı (Sistem Yükleyicisi). 1.2.8. Kurulumun Tamamlanması Bilgisayarınız Pardus'a hazır, Pardus kurulumu gelen Tebrikler ekranıyla birlikte tamamlanmış olur. Kurulum CD'sinin çıkartılması gerekmektedir.CD çıkarılır ve bilgisayar yeniden başlatılır. Sistem yükleyicisi yüklendiği için, bilgisayar açılışında açılış seçenekleri gelir, Pardus veya varsa diğer işletim sistemi (Windows gibi…) seçilerek bilgisayar istenilen işletim sistemi ile başlatılmış olur. Resim 1.21 : Pardus 2007 kurulum ekranı (Kurulumun Tamamlanması). Resim 1.22 : Pardus 2007 kurulum ekranı (Kurulumun Tamamlanması). 1.3. X-Window Kullanımı X-Window sisteminden önce UNIX terminal tabanlı ve grafik desteği olamayan bir sistemdi. X Window’un tasarlanması sayesinde grafik tabanlı uygulamalar da UNIX türevi işletim sistemlerinde boy göstermeye başladılar. X-Window Sistemi UNIX sistemler için geliştirilmiş geniş ve güçlü bir grafik ortamıdır. İlk olarak MIT (Massachusetts Institute of Technology) tarafından geliştirilmiş olmasına rağmen günümüzde bir çok firma tarafından geliştirilmektedir. Bugün tüm Linux dağıtımları ile birlikte X-Window sisteminin serbestçe dağıtılabilir sürümü olan Xfree86 gelmektedir. Bu sürümle beraber gerekli tüm çalışabilir dosyalar , kütüphaneler ve araçlar gelmektedir. 1.3.1. Temel Kavramlar 1.3.1.1. X-Sunucusu X-Window sistemi gerçekte uygulama yazılımı ile X-sunucusu adıyla anılan özel bir grafik terminali arasında gerçekleşen iletişimi sağlayan komutlar kümesidir. X-Window uygulamalarının yaptığı iş belli bir komutu TCP/IP üzerinden X-Sunucusuna göndermekten ibarettir. Gerekli şekillerin donanım yoluyla çizilmesi işlemini X-sunucusu gerçekleştirmektedir. Uygulama ve sunucu arasındaki bu iletişim sayesinde çalışan uygulamalar ile Xsunucusunun aynı sistem üzerinde bulunma gereksinimi ortadan kalkmıştır. Uygulama programını bir başka makinede çalışırken X-sunucusu ayrı bir makinde çalışıyor olabilir. Ve uygulama ile X-sunucu arasındaki iletişim TCP/IP kullanılarak yapılır. Tipik bir X-Window uygulamasının çalışmasında geçen temel adımlar aşağıdaki gibidir : ¾ X-sunucusu başlatılır ve gerekli konfigürasyon dosyaları okunur ve grafik kartı tanınır. Daha sonra gerekli tüm donanımlar grafik moduna geçirilir. ¾ X-sunucusu gelecek istekleri karşılamak için standart olarak 6000 numaralı portu açar ve gelecek istekleri beklemeye başlar. ¾ Tüm X-Window uygulamaları çıktının görüntüleneceği sunucunun IP adresi gibi bilgilerin girilebileceği standart parametrelere sahiptir. Bu parametreler sayesinde uzaktaki bir sunucuya bağlanılabilir ve programın kullandığı renk ve fontları başlangıç aşamasında belirlenebilir. ¾ Uygulama X-sunucusuna bağlantı isteğini belirtir. X-sunucusunda tanımlı kurallar çerçevesinde uygulamanın sunucuya bağlanmasına izin verilebildiği gibi uygulamanın bağlanması engellenebilir. ¾ Bağlantı kurulduktan sonra uygulama programı X-sunucusuna gerekli komutları göndererek ekranda görüntülenmesini sağlar. X-sunucularının temelde gerçekleştirdikleri görevlerden en önemlisi grafik kartını kullanma görevidir. X-sunucularının bir grafik kartını kullanabilmesi için bu grafik kartının temel özelliklerini bilmesi gerekmektedir. Günümüzde çoğu kart SVGA standardını desteklediği için , SVGA modda çalışma mantığını kullanan X-sunucusu ile sorunsuz çalışmaktadırlar. Fakat bu modda çoğu kartın özellikleri kullanılamamaktadır. Bu yüzden dünya çapında kullanılan bir çok kart için özelleştirilmiş X-sunucuları bulunmaktadır. Bu sunucular sayesinde grafik kartı daha etkili şekilde kullanılabilmekte , grafik işlemleri daha hızlı ve sunucuya daha az yük getirecek şekilde yapılabilmektedir. Ayrıca grafik kartlarının çalıştığı modların X-sunucusu tarafından bilinmesi gerekmektedir. Aksi takdirde X-sunucusu grafik kartını kullanamayacaktır. Bu yüzden grafik kartı seçerken X Window ile uyumlu olup olmadığın kontrol edilmesinde yarar vardır. X Window sistemi tarafında tanınan tüm kartların ve chipsetlerin listesi Xfree86 sürümünün internet sayfalarında bulanabilir. 1.3.1.2. Pencere Denetçileri X-Window sistemi uygulama programlarının görüntüleri üzerinde kullanıcı tarafından yapılabilecek olan boy değiştirme, pencerenin bulunduğu yeri değiştirme, simge durumuna geçirme gibi belirli işlemleri yapmak için özel yetkilere sahip programlar kullanmaktadır. Bu programlar pencerelerin yönetimi ile ilgilendiğinden “pencere yöneticileri” ismini almışlardır. Bu programlar standart X-Window dağıtımının bir parçası olmadıklarından çok farklı yetenek ve özelliklere sahip türleri bulunmaktadır. Günümüzde en çok kullanılan pencere yöneticileri arasında icewm, kwm, afterstep, sawfish ve windowmaker gelmektedir. Pencere yöneticileri temelde özel yetenek ve yetkilere sahip uygulama programlarıdır. Bu programların sağladığı bir çok özellik bulunmakla beraber, özellikler denetçiden denetçiye değişmektedir. Tüm pencere denetçilerinde olan ortak özellik uygulama çalıştırabilme özelliğidir. Tüm pencere denetçileri farklı şekilde de olsa bir uygulamanın çalıştırılabilmesi için yöntemler sunarlar. 1.3.2. X-Window Programları Komut Satırı Parametreleri X Window programlarının çoğu belli işlevler için aynı komut satırı parametrelerini kullanırlar. Bu parametreler ile çoğunlukla arka ve ön plan renkleri, kullanılacak font, açılacak pencerenin yeri ve büyüklüğü gibi bilgiler ayarlanmaktadır. En çok kullanılan parametre listesi ve açıklamaları aşağıdaki gibidir : ¾ -display bağlanılacak_sunucu : Hangi X sunucusunun kullanılacağı belirtilir. bağlanılacak_sunucu bilgisi ¾ sunucu_ismi: görüntü_numarası.ekran_numarası formatındadır. Bu bilgi verilmediği takdirde varsayılan olarak -display :0.0 parametresi verilmiş kabul edilecektir. Sunucu ismi kısmını boş olması komutun çalıştırıldığı makineye bağlanılması gerektiği anlamına gelmektedir. ¾ -geometry geometri_bilgisi : Bu parametre ile açılan pencerenin ilk büyüklüğü ve konumu belirtilir. geometri_bilgisi “genişlik x yükseklik + yatay_uzaklık + düşey_uzaklık” formatına sahiptir. (Örnek -geometry 120x60+150+50 ) ¾ -bg renk : Açılan pencerenin arka planının hangi renkte olması gerektiği bilgisi verilir. ¾ -fg renk : Açılan pencerede kullanılacak ön planın hangi renkte olması gerektiği bilgisini verir. ¾ -font font : Pencerede metinleri görüntülemek için kullanılacak font belirtilir. Font belirtilirken iki ayrı format kullanılabilir. Birinci seçenekte fontun sadece aile ismi kullanılır. (Örnek : -font helvetica ). İkinci seçenekte ise X-Window tarafından kullanılan font isimlendirme metodu kullanılabilir. (Örnek : -font adobe-courier-bold-r-normal--*-*-*-*-*-*-iso8859-9 ) 1.3.3. Pencere Denetçilerinin Seçimi Pencere denetçilerinin sayısının fazla olması ve ayrı ayrı her pencere denetçisinin belirli bir kullanıcısının olması sebebiyle tüm Linux dağıtımları birden fazla pencere denetçisi ile birlikte gelmektedir. Günümüz dağıtımları genel olarak iki farklı masaüstü sistemi kullanmaktadır. Bunlar GNOME ve KDE masaüstü sistemleridir. KDE masaüstü sistemi kendi pencere denetleyicisine sahiptir. GNOME masaüstü sistemi ise sawfish pencere denetleyicisini kullanmaktadır. Ayrıca windowmaker, icewm, fvwm gibi diğer pencere denetçileri de Linux dağıtımları ile birlikte gelmektedirler. Red Hat Linux sistemlerde kullanıcı kurulum sırasında GNOME veya KDE masaüstü sistemlerinden birini seçmiş ise varsayılan pencere denetçisi masaüstü sistemi tarafından kullanılan pencere denetçisidir. Eğer bu iki sistem birden kurulum esnasında seçilmiş ise , kurulum programı hangi sistemin varsayılan olarak kullanılmak istediğini kullanıcıya sormaktadır. Bu bilgi /etc/sysconfig/desktop dosyasında tutulmaktadır. Red Hat Linux dağıtımları her zaman GNOME masaüstü sistemini önerdikleri için bu dosyanın eksikliği veya içinin boş oluşu tercih edilen sistemin GNOME olduğunu belirtmektedir. KDE masaüstü sisteminin seçilmesi için bu dosyanın “KDE” satırını içermesi gerekmektedir. Eğer iki masaüstü sistemi de mevcut değil ise sistemde var olması muhtemel olan diğer pencere yöneticileri araştırılır ve bulunan bir tanesi çalıştırılır. X-Window sistemi çalıştırılacağı zaman hangi pencere denetçisinin çalıştırılacağı bilgisini ilk olarak kullanıcının ev dizininde bulunan .Xclients dosyasında arar. Eğer bu dosya mevcut değil ise tüm sistem için geçerli olan /etc/X11/xinit/Xclients dosyası kullanılır. Bu dosya temelde ufak kabuk programlarıdır. .Xclients dosyasına çalıştırmak istediğiniz pencere denetçisini çalıştırmak için kullanılan komutun yazılması yeterlidir. Dikkat edilmesi gereken nokta pencere denetçisini çağırırken exec çağrısının kullanılmasıdır. Örnek 1.1 : Gnome masaüstü için KDE masaüstü için Fvwm için : exec /usr/bin/gnome-session : exec /usr/bin/startkde : exec /usr/X11R6/bin/fvwm 1.3.4. X-Sunucusunun Başlatılması X-sunucusunun başlatılması için bir çok yöntem kullanılabilir. Bunlardan en basiti sunucunun komut satırından direk çağrılmasıdır. (Ör: /usr/X11R6/bin/XF86_SVGA ) Bu durumda X-sunucusu metin tabanlı konsol tarafından kullanılmayan bir konsola geçerek çalışmaya başlayacaktır. İkinci bir yöntem xinit programının kullanılmasıdır. Bu program X-sunucusunu çalıştırırken ek olarak uygulama programları da çalıştırabilmektedir. Üçüncü ve en çok kullanılan metot ise startx komutunun çalıştırılmasıdır. Bu komut temelde xinit programı çağırmadan önce hangi ayar dosyalarının kullanılacağını belirleyen bir kabuk programıdır. Kullanıcının kendi dizininde gerekli ayar dosyalarını oluşturup oluşturmadığını kontrol eder. Eğer kullanıcı gerekli dosyaları oluşturmuş ise kullanıcının dosyalarını , oluşturmamış ise sistem genelinde geçerli olan dosyaları xinit programına parametre olarak gönderir. 1.3.5. Xinit Konfigürasyon Dosyası Xinit programına bildirilen konfigürasyon dosyası temelde X-sunucusu çalıştırıldığında ek olarak çalıştırılacak programların komutlarını ve klavye ayarlarını içermektedir. Red Hat Linux dağıtımlarında her kullanıcı kendi xinit konfigürasyonunu yapabilmektedir. Bunun için kullanıcı ev dizininde .xinitrc isimli bir dosya yaratması ve gerekli komut ve ayarları bu dosyaya girmesi gerekmektedir. Kullanıcının ev dizininde .xinitrc dosyası mevcut değilse tüm sistem için geçerli olan /etc/X11/xinit/xinitrc dosyası konfigürasyon dosyası olarak kullanılacaktır. /etc/X11/xinit/xinitrc dosyası içinden kullanılacak pencere denetçisini seçmek amacıyla Xclient dosyası çağırılır. Eğer kullanıcının ev dizininde .Xclients dosyası mevcut ise bu dosya çalıştırılır. Bu doysa mutlaka çalıştırılabilir olmalıdır. Bu dosya mevcut değilse tüm sistem için geçerli olan /etc/X11/xinit/Xclients dosyası çalıştırılır. Bu sayede Xsunucusunda kullanılacak olan pencere denetçisi çalıştırma adımına gelinmiş olunur. 1.3.6. X-Sunucusunun Font ve Klavye Ayarları X-Window Sistemi temelde Linux konsollarında kullanılan klavye sisteminden farklı bir klavye kullanmaktadır. X sunucusu açılırken sistemde kullanılan klavye ile ilgili ayarları /etc/X11/Xmodmap isimli dosyadan okur. Bu dosyada tuşlar ve karşılıkları bulunmaktadır. Kullanıcılar kendi ev dizinlerinde yaratacakları .Xmodmap dosyasını kendi klavye ayarları için kullanabilirler. Tüm sistemlerde metinlerin gösterilmesi için fontlar kullanılmaktadır. Fontlat temelde ufak grafikler olarak da düşünülebilir. X Window sistemi de tüm metin görüntülenme işlemlerinde fontları kullanmaktadır. Tüm Linux dağıtımları ile beraber bir çok font gelmektedir. X Window tarafından kullanılan fontların sisteme tanıtılmasında ve kullanılmasında belirli bir standart oluşturulmuştur. Bir font belirtilirken belli özellikleri olan bir katar olarak gösterilmektedir. ( Ör : -adobe-utopia-regular-i-normal--15-140-75-75-p-79-iso8859-1 ) Bu gösterilimde özellikler tire “-“ işareti ile birbirlerinden ayrılmaktadır. Bu gösterilimin temel formatı aşağıdaki gibidir : -fndry-fmly-wght-slant-sWdth-adstyl-pxlsz-ptSz-resx-resy-spc-avgWidth-rgstryencdgn fndry : Font yapan kişi veya firmayı belirtir. (adobe , b&h,dec vs.) fmly : Fontun dahil olduğu aile ismi. (courier,times,helvetica vs.) wght : Fontun ağırlığını bildirir. (Kalın-bold,orta-medium vs.) slant : Fontun görünüşü ( italic - i , roman(normal)-r vs.) sWdth : Fontun genişliğini bildirir. (normal , genişlemiş vs.) adstly : Font için ek stil belirtir. (sans serif , serif vs.) pxlsz : Piksel genişliğini belirtir. ( 10,12,13 vs) ptSz : Fontun gösterimde kaplayacağı alanı belirtir. (100 , 120,130 vs) resx : Yatay çözünürlüğü dpi olarak belirtir. (75,100) resy : Dikey çözünürlüğü dpi olarak belirtir. (75,100) spc : Karakterler arasındaki uzaklığı belirtir. avgWidth : Font için geçerli olan ortalama karakter büyüklüğünü belirtir. rgstry : Fontun sahip registry ismi (iso8859 , misc ,oem vs) encdgn : Ulusal kodlama numarasını belirtir. (1,9 vs) İlk bakışta bu bilgilerin kullanıcı tarafından bilinmesi ve doğru şekilde kullanılması zor gözükmektedir. Bir font ile ilgili özellikleri belirtirken belirli bir özellik için sistem dahilinde geçerli olan kurallar kullanılmak istenirse bu özelliğin bulunduğu kısma yıldız “*” karakteri koyulması gerekmektedir. xfontsel programı kullanıcıya sistemde var olan fontlardan istediği fontu seçmesini sağlayan ve seçilen font için gerekli font ifadesini belirten bir yardımcı programdır. Bir X-sunucunun kullanabileceği font listesini görmek için xlsfont programı kullanılmaktadır. Bu programda diğer tüm X-Window programları gibi bağlanılacak sunucu seçimi için parametre alabilmektedir. X-sunucuları tarafından kullanılan fontlar genellikle /usr/X11R6/lib/X11/fonts dizini altında bulunan dizinlerde yer almaktadır. X-sunucuları tarafından kullanılan fontlar genellikle /usr/X11R6/lib/X11/fonts dizini altında bulunan dizinlerde yer almaktadır. Red Hat Linux 7.1 dağıtımı ile birlikte gelen Türkçe fontlar ise /usr/share/fonts/ISO8859-9 dizini altında yer almaktadır. Font dosyalarını içeren dizinlerdeki fontların X Window sistemi tarafından kullanılabilmesi için bu dizinler fonts.alias ve fonts.dir dosyalarını içermelidir. Fonts.alias dosyası dizinde bulunan fontların isimlerini daha kolay olan isimler ile kullanılabilmesini sağlar. Fonts.dir dosyası ise dizinde bulunan font dosyalarının hangi fontları içerdiği bilgisini tutar. Bu dosyaların oluşturulması için fontları barındıran dizin içinde mkfontdir komutunun çalıştırılması yeterlidir. Dizinlerde bulunan fontların X-sunucusu tarafından kullanılabilmesi için bu dizinlerde font bulunduğu bilgisinin X-sunucusuna bildirilmiş olması gerekmektedir. X-sunucusu başlangıçta okuduğu XF86Config dosyasından fontlar için kullanacağı kaynakları belirler. Fontlar için iki farklı kaynak söz konusudur. Bunlardan biri fontların bulunduğu dizinler, diğeri ise X Font Sunucusudur(xfs). Her iki kaynak aynı anda kullanılabilmektedir. Font kaynaklarını X-sunucusuna tanıtmak için XF86Config dosyasının “Files” kısmında FontPath tanımı kullanılır. Her kaynak için bir adet FontPath tanımı bulunmak zorundadır.(Dizinler ayrı ayrı kaynak teşkil etmektedirler.) Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/TrueType" #Font kaynağı olarak /usr/X11R6/lib/X11/fonts/TrueType dizinini #kullanmasını söyleyen tanım FontPath "unix/:7100" #Font kaynağı olarak yerel makinede 7100 numaralı soketi #kullanmasını soyleyen tanım. X Font Sunucusu varsayılan #olarak 7100 numaralı soketi dinler. EndSection Çalışma esnasında X sunucusu tarafından kullanılabilecek fontları değiştirmek için xset komutu kullanılabilir. Xset komutu X-sunucusu ile ilgili bir çok ayarın X-sunucusu devrede iken yapılmasına ve değiştirilmesine olanak sağlamaktadır. Örnek 1.2 : xset fp=kaynak1,kaynak2 Bu komut sayesinde X-sunucusunun fontlar için kullandığı kaynaklar komutta verilen kaynaklar olacaktır. Örnek 1.3 : xset +fp kaynak1,kaynak2 Bu komut sayesinde X-sunucusunun fontlar için kullandığı kaynaklar arasına verilen kaynaklar eklenecektir. Örnek 1.4 : xset -fp kaynak1,kaynak2 Bu komut sayesinde X-sunucusunun fontlar için kullandığı kaynaklar arasından verilen kaynaklar kaldırılacaktır. Örnek 1.5 : xset fp default Bu komut sayesinde X-sunucusunun fontlar için kullandığı kaynakların listesi ön tanımlı olan listeye geri dönecektir. Ön tanımlı olan liste XF86Config dosyasında belirtilen kaynak listesidir. Örnek 1.6 : xset fp rehash Bu komut sayesinde fontların bulunduğu kaynaklarda yapılan değişikliklerin X-sunucusu tarafından algılanması sağlanır. 1.3.7. Masaüstü Sistemleri 1.3.7.1. GNOME Masaüstü Sistemi GNOME masaüstü kullanıcıların bilgisayarlarını kolayca kullanmaları ve konfigüre etmeleri için yaratılmış bir masaüstü ortamıdır. Bu ortam masaüstü , panel ve bir çok uygulama içermektedir. GNOME projesi kaynak kodu açık bir projedir ve yüzlerce programcı tarafından CORBA ( Common Object Request Broker Architecture) ve GTK+ (GIMP Toolkit) kullanılarak geliştirilmektedir. GNOME projesi Red Hat tarafından desteklenmektedir. Bu sebepten dolayı Red Hat masaüstü sistemlerinde kullanıcı arayüzü olarak GNOME masaüstünü önermektedir. GNOME masaüstü kullanıcıya masaüstünü istediği gibi oluşturabilmesi avantajını sağlamaktadır. GNOME ile birlikte gelen GNOME oturum yöneticisi sayesinde kullanıcının yaptığı ayarlar , daha sonraki oturumlarda da geçerli olabilmektedir. GNOME ile birlikte gelen uygulamalar veya GNOME masaüstü için özel yazılmış uygulamalar oturum özelliğinden faydalanabilmektedir. Bu özellik ile belirtilen , sistemden çıkıldığında çalışan programlar yeniden sisteme girildiğinde yeniden çalıştırılacaktır. GNOME , GNU Network Object Model Enviorment kelimelerinin baş harflerinden oluşmuş bir kısaltmadır. Açık isminden de anlaşılabileceği gibi GNOME projesi GNU projesi dahilinde bir alt projedir. GNOME masaüstü sisteminin sahip olduğu yüksek ayarlanabilirlik özelliği sayesinde bu görüntüden çok farklı görüntü elde etmek mümkündür. En alt’ta bulunan ve üzerinde bir çok nesneyi barındıran yapıya “panel” denmektedir. Paneller üzerinde menü , aplet , çekmece gibi GNOME nesnelerini taşımak için kullanılan birimlerdir. Panel dışındaki bölümler ise “masaüstü” olarak adlandırılmıştır. Masaüstü programlara, web sitelerine kısayol içeren bir birimdir. 1.3.7.1.1. GNOME ve Pencere Yöneticileri GNOME günümüzde bulunan bir çok pencere yöneticisi ile çalışabilmektedir. Temelde tüm X Window programları X Window Sistemini kullandıkları için belirli standartlara uymak durumundadırlar. Bu sayede pencere yöneticileri diye ifade edilen özel uygulamalar çalışan programdan bağımsız olarak yönetim işlemini yapabilmektedir. Bu özellikten dolayı GNOME çok fazla sayıda pencere denetçisi ile çalışabilmektedir. Bu pencere denetçileri arasında Sawfish,IceWM,WindowMaker, Enlightenment, AfterStep ve FVWM2 en çok kullanılanlarıdır. GNOME masaüstünün getirdiği belli ek özellikler bulunmaktadır. Bu ek özellikler her pencere denetçisi tarafından desteklenmiyor ise bu özellikler kullanılamaz. Bu sebepten dolayı pencere denetçisi seçiminde dikkat etmek gerekmektedir. Red Hat Linux dağıtımları ile birlikte gelen GNOME masaüstü sisteminde pencere denetçisi olarak SawFish kullanılmaktadır. 1.3.7.1.2. Paneller Paneller Gnome masaüstü sisteminin en önemli parçasını oluşturmaktadırlar. Paneller temel de ana menüyü , kullanıcı menülerini , uygulama kısayollarını , apletleri ve bir kaç özel nesneyi taşımak amacıyla kullanılan birimlerdir. Paneller de tüm Gnome masaüstü sistemi gibi yüksek derecede kişiselleştirilebilir. Aynı anda birden fazla panel masaüstünde bulunabilir. Çalışma esnasına panellerin üzerinde bulunan nesneler kaldırılabilir , eklenebilir ve özellikleri değiştirilebilir. Panellerde bulunabilecek nesneler aşağıdaki gibidir : ¾ Menüler ¾ Uygulamalara Kısayollar. ( Uygulama çalıştırıcılar) ¾ Appletler ¾ Çekmeceler ¾ Özel Nesneler Panel ile ilgili herhangi bir değişiklik yapmak istendiği takdirde panelde bulunan bir boş noktaya farenin sağ tuşuna basılarak açılan menü kullanılmalıdır. Bu menü sayesinde yeni paneller yaratabilir , panelin özelliklerini değiştirebilir , panele yeni nesneler ekleyebilirsiniz. Panel üzerinde bulunan bir nesneye sağ tuş ile bastığınızda nesnenin özelliklerini değiştirebilmeyi ve nesneyi panelden kaldırabilmeyi sağlayan başka bir menü açılmaktadır. 1.3.7.1.3. Ana Menü Panelin en sol tarafında bulunan “ayak izi” simgesine sahip nesne “Ana Menü” olarak adlandırılmıştır. Bu nesne sayesinde Gnome masaüstü tarafından sağlanan tüm özelliklere erişilebilmektedir. Bu özellikler arasında uygulamaları çalıştırma , konfigürasyon araçları , sistemden çıkma , ekranı kilitleme gibi özellikler bulunmaktadır. Ana Menüye girmek için simgenin üzerine farenin sol tuşu ile basmak yeterlidir. Bu olaydan sonra ana menü açılacaktır. Ana menünün en önemli özelliklerinden biri Drag-andDrop özelliğini desteklemesidir. Ana menüden alınan bir nesne masaüstüne veya panellerin üzerine bırakılabilir. Nesne bırakıldığı birimde de menüdeki tüm özelliklerini korur. Ana menünün en önemli parçası “Programlar” alt menüsüdür. Bu alt menüden daha önceden ayarlanmış alt menüler ve menü parçaları bulunmaktadır. Bu alt menü sayesinde sistemde bulunan uygulamalara erişilebilmektedir. Programlar menüsünden farklı olarak ana menü bir kaç yararlı alt menü ve komut içermektedir. Bunların en önemlileri aşağıdaki gibidir : Sık Kullanılanlar (Favorites) : Bu alt menü normalde boş olarak gelmektedir. Bu alt menünün temel amacı kullanıcının sıkça kullandığı programlara erişmesini daha kolay hale getirmektir. Appletler : Bu alt menü sisteme yüklenmiş tüm appletlerin lisesini içerir. Bu menüden bir applet seçildiği takdirde seçilen applet panele yerleşir. KDE Menüleri : Bu alt menü sadece KDE masaüstü sistemi yüklü ise görüntülenebilmektedir. Bu alt menüde KDE masaüstünde kullanılan menüler bulunmaktadır. İstendiği takdirde bu menünün gösterilmesi engellenebilir. Panel : Bu alt menü panelin özelliklerinin değiştirilmesi , panele yeni nesneler eklenmesi gibi işlevler için kullanılmaktadır. 1.3.7.1.4. Kullanıcı Menüleri Ana menüden farklı olarak Gnome masaüstü sisteminde kullanıcı menüleri de bulunmaktadır. Ana menüden farklı olarak kullanıcı menülerinin içerecekleri kısayollar ve alt menüler kullanıcı tarafından yaratılmalıdır. Ana menüde bulunan tüm alt menüler aynı zamanda panele kullanıcı menüsü olarak da eklenebilir. Bu işlem için alt menünün üzerinde iken sağ tuş ile açılan menüden “Add this as menu to panel” seçeneğini seçmek yeterli olacaktır. Kullanıcı menülerinin isimleri, simgeleri gibi bir çok özelliği değiştirilebilmektedir. Bu işlemleri gerçekleştirmek için yapılması gereken menü üzerinden iken sağ tuş ile açılan menüden özelliklere gelip gerekli değişikliği yapmaktır. Bu değişikler ana menüden alınan alt menüler için geçerli değildir. 1.3.7.1.5. Uygulama Kısayolları Kısayollar panel üzerinde bulunan ve sistemde bulunan uygulamaları çalıştırmak için kullanılan nesnelerdir. Kısayollar GNOME projesi tarafından “Launchers” olarak anılmaktadır. Panel üzerinde bulunan tüm nesneler gibi kısayollar da belirli özellikleri sahiptir ve bu özellikler GNOME masaüstünün temel özelliklerinden olan kişiselleştirebilme kuralına uyar. Kısayol ile ilgili özellikleri ayarlamak için , kısayolun üzerinde iken sağ tuş ile çıkan menüden “Properties” seçilmelidir. Yeni bir kısayol yaratmak istediğimizde de Şekil ’de gösterilen özellikler penceresi karşımıza çıkacaktır. Kısayol özellikleri penceresi iki adet sekmeden oluşmaktadır. Bunlar “Basic” ve “Advanced” sekmeleridir. “Basic” sekmesinde aşağıdaki özellikler ayarlanabilir : Uygulamanın ismi : Bu özelliğin ayarlanması için “Name” bilgisi kullanılır. Bu özellik panel üzerindeki kısayollarda kullanılmamakla beraber, kısayolun menüye eklenmesi durumunda kullanılacaktır. Açıklama : Bu özellik programın temel işlevini belirtmek için kullanılır. Fare ile kısayol üzerine gelindiği takdirde burada girilen bilgi kullanıcıya gösterilmektedir. Çalıştırılacak Komut : Programın çalıştırılması için sistemde yürütülecek komut bilgisinin girildiği yerdir. Kısayolun Tipi : Kısayolların çoğu uygulamalar için yaratıldığından tip kısmının “Application” olarak bırakılması gerekmektedir. Uygulamadan farklı bir kısayol yaratılmak istendiğinde tip değiştirilmelidir. Simge : Kısayol için kullanılacak simgenin belirlenmesine yaramaktadır. Simgeyi değiştirmek için varolan simgenin üstüne tıklamak ve açılan pencereden yeni simgeyi seçmek yeterli olacaktır. Uygulamanın Terminalde çalışıp çalışmayacağı : X Window için yazılmamış olan tüm uygulamalar terminalde çalıştırılmak zorundadır. X Window programları için bu zorunluluk bulunmamaktadır. Kısayollar için gelişmiş özellikleri ayarlamak için “Advanced” sekmesi kullanılmaktadır. Bu sekme seçildiğinde Şekil-2 ’deki ekran karşımıza gelmektedir. Gelişmiş ayarlar sekmesinde kısayol ile ilgili aşağıdaki ayarlar yapılabilmektedir : Kullanım öncesi denetim : “Try this before using” kısmına girilen komutun düzgün çalışıp çalışmamsına bakılarak kısayolun görünür olup olmayacağına karar verilir. Seçilen dile göre isim ve açıklamanın çevirisi : GNOME masaüstü sistemi birçok dil için destek içermektedir. Bir kısayol için isim ve açıklama kısmı istendiği takdirde her dil için ayrıca yapılabilir. Belirli bir dil için isim ve açıklama girilmek istendiğinde iki harflik ülke kodu ile isim ve açıklama pencerenin alt tarafında bulunan metin kutularına girilir ve “Add/Set” tuşuna basılır 1.3.7.1.6. Appletler GNOME masaüstünde appletler panel üzerinde çalışması için yazılmış özel amaçları olan uygulamalardır. GNOME masaüstü sisteminde bir çok kullanışlı applet bulunmaktadır. Bunlardan en çok kullanılanları X Window sisteminde bulunan masaüstlerini kontrol edilmesine yarayan “Desk-Guide Applet” , diğeri de çalışan uygulamaların belli özelliklerini kontrol edilmesini sağlayan “Tasklist Applet” dir. Panel’e applet eklemek için panel üzerinde sağ tuşla açılan genel menüden “Add Applet” alt menüsüne geçilmeli ve istenen applet eklenmelidir. Bir appletin özelliklerini değiştirmek için applet üzerinde iken sağ tuş ile açılan menüden “Properties” nesnesi seçilmelidir. 1.3.7.1.7. Çekmeceler Çekmeceler küçük panellerdir. Panel üzerinde bulunabilecek olan kısayollar appletler ve çekmeceler , bir çekmece içinde de bulunabilmektedir.Çekmeceler sayesinde panel üzerindeki alan daha verimli kullanılabilir. Şekil’de açık durumda bulunan bir pencere gözükmektedir. 1.3.7.1.8. Panel Üzerindeki Nesnelerde Değişiklik Yapma Panel üzerine bulunan tüm nesnelerin belirli özellikleri bulunmaktadır ve bu özellikler istendiği takdirde kullanıcı tarafından değiştirilebilmektedir. Panel üzerindeki bir nesnenin özelliklerine ulaşmak için nesne üzerinde iken sağ tuşla açılan menüden “Properties” seçeneğinin seçilmesi yeterli olacaktır. Nesne üzerinde iken sağ tuş ile ortaya çıkan menü Şekil-1'de gösterilmektedir. Panel'e yeni bir nesle eklenmek istediğinde Panel menüsünden “Add to panel” alt menüsü altındaki seçenekler kullanılmaktadır. Bu alt menü Şekil-2'de gözükmektedir. 1.3.7.1.9. Panel İşlemleri Paneller de diğer tüm Gnome nesneleri gibi kullanıcı tarafından değiştirilebilen özelliklere sahiptir. Kullanıcı istediği takdirde varolan bir paneli yok edebilir , yeni bir panel yaratabilir ve panelin bulunduğu yeri değiştirebilir. Yeni panel yaratmak için Panel menüsünden “Create Panel “ alt menüsü seçilmelidir. Gnome masaüstü sisteminden 5 farklı panel bulunmaktadır. Bunlar : Edge Panel : Bu panel GNOME ile en çok kullanılan panel tipidir. Ekranı yatay veya dikey olarak kaplamaktadır. Hizalanmış panel (Aligned Panel ) : Bu panelin edge panelden farkı ekranı bir uçtan bir uca kaplamamasıdır. Panel üzerine yeni nesneler eklendiği takdirde panel kendi büyüklüğünü ayarlamaktadır. Ayrıca bu tip panel üzerine nesneler eklendikçe hizalama işlemini tekrarlamaktadır. Kayan Panel (Sliding Panel) : Bu panel tipinin hizalanmış panelden farkı bulunduğu köşede sabit olmayışıdır. Bu panel bulunduğu köşede hareket edebilmektedir. Üzerine yeni nesneler eklendiğinde büyüklüğü tekrar ayarlamakta fakat hizalama işlemini gerçekleştirmemektedir. Yüzen Panel (Floating Panel) : Yüzen Panelin en temel özelliği ekranda herhangi bir yere yerleştirilebilmesidir. Diğer tüm panel tipleri mutlaka bir köşede bulunmak zorundadır. Menü Paneli : Menü paneli ekranın üst kısmında yer alan ve temelde programlar , ayarlar gibi menüleri içeren bir panel tipidir. Menü paneli devamlı olarak ekranın üst kısmında bulunmak zorundadır. Bu özelliğinden dolayı bir masaüstünde sadece bir adet menü paneli bulunabilmektedir. Bir panel yaratıldıktan sonra da tipi değiştirilebilmektedir. Bu işlem için panel üzerinde iken sağ tuş ile açılan Panel menüsünden “Properties” alt menüsüne geçilmeli ve “Type” alt menüsünden istenilen tip seçilmelidir. Gnome masaüstü sistemi en azından bir adet panelin var olmasını şart koşmaktadır. Bu sebepten dolayı sistemde bir adet panel bulunduğu takdirde bu panelin silinme işlemi gerçekleştirilememektedir. 1.3.7.1.10. GNOME Masaüstü ve Dosya Yöneticisi Gnome masaüstü sisteminde bulunan masaüstü aynı zamanda Dosya yöneticisi görevini de yerine getiren programlar ile sağlanmaktadır. Gnome masaüstü sisteminde şu an kullanılan iki farklı dosya yöneticisi bulunmaktadır. Bunlardan bir tanesi “gmc” diğeri ise “Nautilus” diye isimlendirilen doysa yöneticisidir. Herhangi bir sebepten dolayı dosya yöneticisi çalışmaz ise masaüstü kullanılamamaktadır. Masaüstünün kullanımı için dosya yönetici penceresinin açık olma zorunluluğu bulunmamaktadır. Red Hat Linux dağıtımları gmc dosya yöneticisi ile birlikte gelmektedir. Fakat GNOME projesi yeni sürümlerinde nautilus dosya yöneticisini kullanmaya karar vermiştir Gnome masaüstü diğer tüm işletim sistemlerinde var olan temel özelliklerin hepsini desteklemektedir. Masaüstünde dizinler , dosyalar ve kısayollar oluşturulabilmekte , masaüstüne nesneler bırakılabilmekte , masaüstünden nesneler Gnome uyumlu uygulamalara atılabilmektedir. Masaüstü temelde kullanıcının ev dizininde bulunan bir dizindir. Gmc dosya yöneticisi temel olarak .gnome-desktop dizinini kullanmaktadır. (Şekil-1) Nautilus ise .naitulus dizini altında bulunan desktop dizinini masaüstü bilgilerini tutmak için kullanmaktadır (Şekil-2 ). Gnome masaüstü sistemi aynı anda birden fazla masaüstünü alanı ile çalışmayı desteklemektedir. Bu sayede kullanıcı daha geniş ve organize bir çalışma alanına sahip olmaktadır. Masaüstü alanı ile belirtilmek istenen bir masaüstünün belli kısımlara ayrılmasıdır. Gnome ile kullanılan bazı pencere denetçileri birden fazla masaüstünü de desteklemektedir. Gnome varsayılan olarak bir masaüstü ve 4 masaüstü alanı kullanmaktadır. Masaüstünde belli işlemler yapmak için masaüstü menüleri kullanılabilir. Bu menüler masaüstünde iken farenin sağ tuşu ile görülebilmektedir. 1.3.7.1.11. GNOME Kontrol Merkezi Gnome masaüstü sistemi , Gnome ile ilgili belli ayarların yapılmasını kolaylaştırmak amacıyla Gnome Kontrol Merkezi (Gnome Control Center) isimli bir araç ile birlikte gelmektedir. Bu araç sayesinde Gnome masaüstü sistemi ile ilgili tüm ayarlar yapılabilmektedir. Şekil 'de Gnome kontrol merkezi görünmektedir. Kontrol merkezi temelde iki ayrı bölümden oluşmaktadır. Sağ kısımda kalan bölümde ayar yapılabilecek başlıklar , sol kısımda ise genel çalışma ekranı bulunmaktadır. Ayar yapılabilecek başlıklar belli özelliklere göre kategorize edilmişlerdir. Bu kategoriler aşağıdaki gibidir : Masaüstü (Desktop) : Gnome masaüstü ile ilgili ayarlamaları barındıran başlıktır. Döküman İşleyiciler ( Document Handlers) : Dosya tiplerin tanıtıldığı ve belli tipte bulunan dosyaların hangi programlar ile açılabileceği ile ilgili ayarları barındıran başlıktır. Görünüm ( Look and Feel) : Çalışan uygulamaların belli özelliklerinin görünümü ile ilgili ayarları barındıran başlıktır. Çoklu ortam (Multimedya) : Çoklu ortam ile ilgili ayarları barındıran bölümdür. Cihazlar (Peripherals) : CD , klavye ve fare gibi cihazlar ile ilgili ayarları barındıran bölümdür. Pencere Yöneticisi Ayarları : Gnome ile birlikte kullanılan pencere yöneticisi ile ilgili ayarları barındıran bölümdür. Oturum ( Session) : Gnome masaüstü sisteminin en önemli özelliklerinden biri olan oturum ile ilgili ayarları barındıran bölümdür. 1.3.7.2. KDE Masaüstü Sistemi 1.3.7.2.1. KDE Özellikleri ve Masaüstü Ortamı Unix ‘in geliştirilme sürecinde, birçok problem ile karşılaşılmıştır. Bunlar zaman zaman kararlı çekirdeklerin, zaman zaman ise güçlü sistem yardımcı programlarının olmaması yada geliştirilmesinin zor olması olarak karşımıza çıkmıştır. Bu yüzden Unix işletim sistemi, bu konular üzerinde uzun zaman çalışmış profesyoneller ve öğrenciler dışında, kullanılması zor bir işletim sistemi olarak kalmıştır. Örneğin uzun zaman boyunca kullanıcılar, usenet servislerinden yararlanmak istediğinde, $ find /var/spool/news –name ‘[0-9]*’ –exec cat {} \ ; | more komutunu kullanmak zorunda kalmıştır. Daha sonra bu problem, tin, kNode gibi kullanımı kolay, sezgisel kullanıcı grafik arayüzleri ile çözülmüştür. Bunun yanında, programların yapılandırılması da başka bir problemdi. Çünkü çok az program için, $ ./configure && make && make install kullanılarak program derlenip kurulabiliyordu, çoğu zaman programın yapılandırma text dosyasının kullanıcı tarafından elle düzenlenmesi gerekirdi ki bu çoğunlukla uzun süren ve zor bir iş olabiliyordu. Bu şekildeki bir yapılandırmadan sonra programın yeni bir değişiklik için yeniden yapılandırılmak istenmesi, tüm konfigürasyonun yeniden düzenlenmesine sebep oluyordu. KDE bu açıdan çok farklı bir yazılım olarak karşımıza çıkmaktadır. Standart UNIX kabuğunu (SHELL) değiştirmeye çalışmamakla beraber, kullanıcının UNIX’ i kullanmasını kolaylaştırmak için gerekli ve yeterli sayıda araç sunar. Böylece kullanıcıların UNIX ortamına Çabuk ve kolay alışmalarını sağlar. KDE daha çok UNIX’e yeni başlayanlar için tasarlanmış bir arayüzdür. Bu özelliklerden birkaçını şu şekilde sıralayabiliriz, ¾ Hoş görünümlü, kullanımı kolay bir pencere ortamı ¾ Güçlü, kullanımı kolay bir dosya yöneticisi ¾ Basit merkezi yapılandırma ¾ Her durumda kullanıcıya on-line yardım ¾ Aynı zamanda, deneyimli UNIX kullanıcıları içinde KDE ‘nin sağladığı bazı olanaklarda vardır ¾ Pratik ve hızlı pencere yöneticisi ¾ Farklı uygulamalar için tutarlı bir arayüz. Böylece farklı uygulamalarda mouse’ın sağ yada sol tuşunun kullanıcının beklediğini yapıp yapmayacağını önceden tahmin etmek zorunluluğunun ortadan kalkmış olması. ¾ Birden fazla açıldığında, bellekte fazla yer kaplamayan güçlü terminal emülasyonu ¾ Güçlü sistem ve ağ yönetim araçları 1.3.7.2.2. KDE Kurulumu KDE ‘nin kurulmasından evvel, sisteminizin aşağıdaki şartları sağlaması gerekmektedir. ¾ Çalışan bir POSIX uyumlu UNIX sistemi. Örneğin, Linux, FreeBSD, Solarix, HP-UX ve MkLinux ¾ İçinde /opt/kde dizininin yaratılacağı Hard Disk alanı eğer paylaşımlı kütüphaneler kullanılacaksa en az 50 MByte yada kaynak kodları derlenecek ise /usr/src altında en az 100 MByte’lık bir alan gereklidir. ¾ Çalışan bir X11 sistemi, Eğer X11 daha önce kurulmamış ise, dağıtım cd lerinden kurulması gerekir. (Veya xfree86 web sitesinden indirilerek http://www.xfree.org) ¾ Qt kütüphaneleri sürüm 2.2 sistemde kurulu olmalıdır, ( rpm yada tar.gz formatında ftp://ftp.troll.no/pub/qt ftp sitesinden edinilebilir.) UYARI : Eğer KDE’yi önceki sürümümden güncelleme yoluyla sürümünü yükseltilecek ise eski sürümün yedeklenmesi önerilir. $ cd /opt/kde $ tar cxfz ~/KDE-old-version-backup.tar.gz 1.3.7.2.3. RedHat, Caldera ve Suse için KDE Kurulumu Sistemin gerekli olan şartları sağlamasından sonra KDE’nin kurulumuna geçilebilir. KDE’yi sisteme kurmanın en kolay yolu rpm paketlerini kullanmaktır. Bu paketler herhangi KDE mirror sitesinde /pub/kde/stable/distribution/rpm dizinlerinde bulunabilir. RPM paketleri ayrıca sunsite.unc.edu yada ftp.redhat.com dan bulunabilir. Bu dizinlerde çeşitli platformlar için olan sürümler bulunurlar (örneğin i386,alpha,sparc) . en basit olarak kurulum paketleri kde-component.architecture.rpm şeklindedir. Bu paketler içinde KDE’nin en temel kurulumu için kdesupport, kdelibs, kdebase paketlerine ihtiyaç olacaktır. Temel dağıtım (base distrubution) elde edildikten sonra, sonra istenilen veya pratik ve yaralı gözüken diğer uygulama paketleri de sisteme kurulabilir (örneğin kdeutils). Ancak buradaki önemli nokta önce temel paketlerin aşağıda görülen sıra ile sisteme kurulması ve ardından isteğe bağlı olanların kurulmasıdır. $ rpm –i kdesupport.arch.rpm # arch mimariyi belirtir ve burada i386 olabilir. $ rpm –i kdelibs.arch.rpm $ rpm –i kdebase.arch.rpm bu komutlar paketleri /opt/kde altına açacaktır. Ardından istenilen paketler kurulabilir. Bir önceki sürümden güncelleme yapılacak ise şu komutun kullanılması önerilir. $ rpm –Uvh kde-component.arch.rpm 1.3.7.2.4. tar.gz Formatında Paketlerden Kurulum Eğer Linux dağıtımı, RPM paketleri şeklinde değil de tar.gz paketleri şeklinde ise, KDE’nin mevcut sistem üzerinde yapılandırılıp,derlenmesi ve sisteme kurulması gerekir. Eğer durum böyle ise Kde’nin doğru şekilde yapılandırılması, derlenmesi ve kurulması için, aşağıda sıralanan programların sistemde kurulu olması gerekecektir, ¾ ANSI-C derleyicisi, örnek : GNU C derleyicisi ¾ ANSI-C++ derleyicisi, örnek : GNU C ++ derleyicisi ¾ Make programı ¾ Qt development version 2.2 yada daha üst sürümleri ¾ X11 development version (UYARI: genellikle include dosyaları eksik olur ! ) Bu yardımcı programları sisteme kurduktan sonra aşağıdaki paketler, ¾ Kdesupport-version.tar.gz # her durumda version geçerli sürüm numarasıdır ¾ Kdelibs-version.tar.gz ¾ Kdebase-version.tar.gz ¾ İstenilen diğer paketler Sisteme internetten yada dağıtım cd’lerinden indirilir. İkinci adım olarak dosyalar /usr/src yada /usr/local/src altına açılırlar. Bu süreç sonunda dizin yapısı şöyle olmalıdır. ¾ /usr/src/kdesupport ¾ /usr/src/kdelibs ¾ /usr/src/kdebase ¾ /usr/src/kdeutils ¾ /usr/src/……… UYARI : root kullanıcı yerine sıradan bir kullanıcı olarak işlem yapıldığında geçerli kullanıcının /usr/src dizini altına yazma ve binary çalıştırma hakkına sahip olup olmadığı kontrol edilmelidir Bu andan itibaren paketlerin derlenmesine geçilebilir, ¾ cd /usr/src/kdesupport ¾ /configure ¾ make ¾ make install her paket için bu süreç tekrarlanmalıdır. Her configure yapılandırma scripti çeşitli seçenekler sunar. Bazıları diğer paketlerle ortak iken, bazıları pakete özeldir. Bu seçeneklerin neler olduğunu öğrenmek için, $ ./configure –help komutu kullanılabilir. Örneğin bu komut kullanılarak kdelibs paketinde, 1.3.7.2.5. Başlangıç Ayarları KDE binary’lerini kurduktan sonra, KDE’yi kullanacak her kullanıcı için birkaç başlangıç scriptleri nde küçük ayarlama eklentilerin yapılması gerekmektedir. Bunlar , ¾ /etc/profile dosyasında, export PATH=$PATH:/opt/kde/bin export KDEDİR=/opt/kde ¾ Her kullanıcının ev (home) dizininde bulunan .xinitrc dosyasında, • X Windows çalıştırıldığında varsayılan başka bir pencere yöneticisi var ve kullanıcı bunun yerine KDE kullanmak istiyorsa ilgili pencere yöneticisi programı çağıran satır bulunup startkde komutu ile değiştirilmesi • Eğer halihazırda kullanılan bir pencere yöneticisi yok ise herhangi bir satıra startkde satırının eklenmesi gerekir. Bu aşamada, KDE için gerekli paketler kurulmuş, gerekli başlangıç ayarları her kullanıcı için yapılmıştır. Kullanıcı eğer isterse değişik amaçlı paketleri sistemine kurabilir. 1.3.7.2.6. KDE’nin Başlatılması Unix sistem açıldığında (booting) kullanıcı iki durumdan birisiyle karşılaşır. Sistem ya klasik, geleneksel UNIX Text mode’dunda yada Kulllanıcı Grafik Arayüzü , GUI (Graphical User Interface) ile açılır. Birinci durumda kullanıcı KDE ‘yi çalıştırmak istiyorsa sisteme girdikten sonra (logon), komut satırında startx komutu vererek X Windowsu KDE ile çalıştırabilir. İkinci durumda ise kullanıcı, sistem KDE destekli X windows grafik arayüzü ile açıldığı için ekranda kendisinden kullanıcı ismi ve ilişkili şifresini soran bir logon banner’la karşılaşacaktır. Kullanıcı sisteme girdikten sonra , KDE arayüzünü çalıştırmak için fazladan komut vermesine gerek kalmayacaktır. UYARI : X Windows X Display manager ‘ı, xdm’den xdm ile aynı fonksiyonelliğe sahip yani xdm ile uyumlu ancak KDE için daha gelişmiş desteğe ve özelliklere sahip kdm ile değiştirilmesi önerilir. Bunu gerçekleştirmek için/etc/sysconfig altında desktop dosyasına DESKTOP =”xdm “ yada DESKTOP=”gdm” (gnome) yerine DESKTOP=”kdm” yazılması gerekir. Bu çevre değişkeni, /etc/X11/prefdm scripti tarafından kontrol edilerek, xdm veya gdm yerinde kdm’in çalıştırılmasını sağlar. 1.3.7.2.7. KDE Masaüstü Bileşenleri KDE ‘nin 3 adet ana bileşeni vardır; KDE masaüstünün kendisi, Panel ve Görev Listesi (Task List) 1.3.7.2.7.1. Panel KDE çalıştırıldığında ekranın altında bulunan bölgede yer alır. Buradan programlar çalıştırılıp , sanal ekranlar arasında geçiş yapılabilir. Burada Ayrıca kullanıcının en çok kullanacağı K düğmesi yer alır. K düğmesi, KDE ile birlikte kurulmuş olan tüm uygulama programlarına erişebilecek kısayolları ve program gruplarını içinde bulundurur.Ayrıca kullanıcı yeni programları K Menu Editor’unu kullanarak buradaki listeye ekleyebilir ve hatta kullanmayacağı programları K listesinden çıkartabilir.K menu editorünu kullanarak graphics bölümüne gimp programını eklemek için, ¾ Application starter -> system -> menu editor seçilir. ¾ Sol tarafında K menüsünde halihazırda mevcut bulunan programlar ve sağ menüsünde de menüye ekleme yapmak istenilen programlar bulunmaktadır. Sol paneldeki graphics grubu mouse ile açılır ¾ Araç çubuğundan yada File menüsünden New Item seçilir. ¾ Açılan dialog box’a programa verilmek istenen isim yazılır (burada gimp) ve OK ‘e basılır. ¾ Graphics submenu de yeni yaratılan Gimp menüsüne mouse ile tıklanır. Command kısmına gimp yazılır. Ayrıca gerekirse bazı komut satırı parametreleri de buraya yazılabilir. ¾ Aynı şekilde programın çalışma dizini belirtilir , yorum satırı eklenir ve istenirse ikon değiştirilebilir. ¾ Bazı programlar terminal penceresinde çalışmak isteyebilir (örnek: pine). Bunun için, aynı dialog box üzerinde uygun seçenek işaretlenmelidir. ¾ Eğer uygulama mevcut kullanıcı değil de, başka bir kullanıcı olarak kullanılacak ise text kutusunda bu kullanıcı belirtilmelidir. (örnek: run as kullanıcı adı) ¾ Apply tuşuna basılarak, değişiklikler geçerli kılınır. Değişiklikleri iptal etmek için ise reset tuşuna basılır. 1.3.7.2.7.2. Sanal Ekranlar (Virtual Desktops) KDE çalıştırıldığında görev çubuğunun ortasında 4 adet işaretlenmiş alan görülür. Bu dört adet küçük ekran sembolü, 4 adet sanal ekrana yani masaüstüne karşılık gelir. Birden fazla masaüstünün kullanılabilmesi X Windows‘un ve KDE’nin en önemli özelliklerinden biridir. Her sanal masaüstü diğerinden bağımsız çalışan, değişen sayıda pencere ve uygulama içerebilir. 1.3.7.2.7.3. İkon Çubuğu Üzerinde birçok programa kısayolların bulunduğu bir alandır. Bu bölümdeki ikonlar sayesinde çok kullanılan programlar hızlı bir şekilde başlatılabilir ve masaüstünde gereksiz yere kısayollar bulundurmaktan kaçınılabilir. KDE, KHelpCenter, KWrite ve KDE Control Panel butonlarını varsayılan olarak sisteme kurar. İkon çubuğuna yeni ikonlar eklemek için, 1) Sırayla Application starter’a tıklanıp, Panel Menu -> Add -> Application seçilir. Ekranda Application starter en üst seviyeden itibaren tekrar görüntülenir. Kısayol oluşturulmak istenilen uygulama listede aranarak bulunur, örneğin ev dizini, yada konqueror programı seçilir. KDE panelinde yeni bir ikon belirir. Artık üstüne kliklenirse çalışabilir. Bu işi yapmanın daha basit ve başka bir yolu ise programın masaüstünden veya konqueror programından kısayolunu tut-sürükle (drag & drop) yaparak, panelde boş bir alana bırakmak olacaktır. Eğer bir dizin için tut sürükle metodu ile taşınarak kısa yol oluşturulduğunda iki durum olabilir. Bir menü diolog box açılır ve Add as A File Manager ve Add as a Quick Browser seçenekleri belirir. Eğer birincisi seçilirse, Konqueror programı o dizin ile başlar. Eğer ikincisi seçilirse, dizini paneldeki bir menü şeklinde açar. Masaüstündeki bir İkon’un sürükle&bırak metodunu kullanarak panelde kısa yolu oluşturulursa, bu panele kopyalanır. Bir döküman için ise, orijinal dosya yerinde bırakılarak panelde bir link oluşturulur. Hangi durumda olursa olsun, ikon kaldırılmak istenirse,üzerine sağ mouse tuşu ile tıklanır ve mouse işaretçisi istenen pozisyona getirilince sol mouse tuşuna tıklanarak yeni yerine taşınmış olur. Yine hangi durumda olursa olsun farketmez, ikonun silinmesi isteniyorsa, ikonun üzerine gelinip, sağ mouse tuşuna basılarak remove seçilerek ikon silinir. d) Saat ve Tarih Tüm bunlara ek olarak, KDE panelinin sağ köşesinde Saat ve Tarih bilgisi bulunur. e) Görev Listesi Panelin sanal ekranlar ve saat arasında kalan bölgesinde, çalışmakta olan her uygulama penceresi için bir düğme (buton) bulunur. Bu düğmeler ile, uygulama pencereleri arasında geçiş yapmak, küçültmek, büyütmek ve hatta sa7ğ mouse tuşu ile tıklandığında açılacak olan menüden faydalanarak, başka bir sanal ekrana taşımak, boyutlarını değiştirmek ve kapatmak mümkündür. 1.3.7.2.8. Masaüstü İle Çalışmak Bu bölümde KDE masaüstünde çalışmanın ayrıntıları anlatılacaktır. 1.3.7.2.8.1. Pencereler İle Çalışmak Herhangi bir pencerenin isim çubuğu’na (uygulamanın isminin görüldüğü yer - title bar) çift tıklandığı zaman, bir pencere yönetim ikonu ile karşılaşılır. Buradaki menü paneldeki görev listesinde bir uygulamanın düğmesine sağ mouse tuşu ile tıklandığında açılan menü ile aynıdır. Buradan, uygulama ile ilgili olarak, ¾ Taşıma, ¾ Boyut değiştirme, ¾ Küçültme, büyültme, ¾ Shading, isim çubuğuna çift tıklanarak sadece isim çubuğunun görünür kalması, ¾ Sticky, pencerenin masaüstü değiştirildiği halde her masaüstünde görünür olması, ¾ Daima ön planda çalıştırma, ¾ Pencereyi kapatma, ¾ Başka bir masaüstüne gönderme, 1.3.7.2.8.2. Yardım Almak Yardım temel olarak aslında her yerde mevcuttur. Masaüstünde yardım almak için boş bir yerine sağ tıklamak ve açılan menüden “masaüstünden yardım - (Help on Desktop)” seçmek yeterlidir. KDE panelinden, uygulama menüsü açılıp, yardım seçilebilir. Tüm yardım dosyaları HTML tabanlıdır. 1.3.7.2.8.3. Dosyaları Düzenleme Ev dizininin içeriğinin görüntülenmesi : Mouse ile, KDE Panel in sol tarafındaki K düğmesine tıklanarak Application Starter -> Home Dir seçilirse, kullanıcının ev dizininin içeriğini gösteren bir pencere açılır. Eğer gizli dosyaları ve detaylarında görüntülenmesi isteniyorsa, “Görünüm” menüsünden “Show Hidden Files” , “Settings” menüsünden “Show Directory Tree” seçilir. Dosya Yöneticisi ekranı : Dosya yöneticisinin üst bölümünde, başka yönetim pencereleri açıp kapamaya yarayan, bir yerleşim menüsü vardır (Location Menu). Hatta içeriği yazıcıdan çıkış olarak alınabilir. Sık kullanılanlarda (Bookmarks) kısa yollar (Shortcuts) oluşturulabilir. Yerleşim menüsü : Yerleşim menüsünden, Yerleşim Aç (Location -> Open Location) seçilerek bir URL yazılırsa, internette tarama (Browse) yapılabilir. Buna imkan tanıyan, diğer işletim sistemleri ve masaüstleri yerel ve uzak sistemler arasında ayrım yaparken, KDE’nin bu ayrımı yapmamasıdır. Edit Menüsü : Dosyalar üzerinde kopyalama, taşıma gibi işlemler gerçekleştiren fonksiyonlar içerir. Tools Menüsü : Kayıp dosyaları bulmak için find yardımcı programı bulunur. 1.3.7.2.9. KDE Edit Programı İle Dosyaları Düzenlemek KEdit ile metin dosyaları üzerinde düzenleme yapmak çok kolaydır. Örneğin konqueror açılarak dosyası üzerine sağ mouse tuşu ile tıklanırsa, birlikte aç seçeneğini de gösteren bir menü açılır, buradan Kedit seçilirse ,dosya Kedit programı ile ilişkilendirilmiş olur. Bundan sonra dosyaya her çift tıklandığında dosya KEdit ile açılır. Edit menüsünde dosya üzerinde kes , kopyala, yapıştır gibi çeşitli işlemler yapmak için fonksiyonlar bulunur. Aynı zamanda metin dosyası içinde arama yapmak için “Ara” (search) ve “Değiştir” ( replace) fonksiyonları bulunur. Benzer şekilde “Ayarlar” (Settings) menüsünden birçok açıdan özelleştirmek mümkündür. Örneğin font büyüklüğü buradan değiştirilebilir. Ayrıca diğer uygulamalarda olduğu Kedit’te de yardım menusu de bulunmaktadır. File Menüsünden yada araç çubuğundaki Kaydet ikonundan dosya kaydedilebilir veya yeni dosya açılabilir 1.3.7.2.10. Komut Satırı Masaüstünde kullanılabilecek iki çeşit komut satırı vardır. Bunlardan birincisi “Hızlı Komut Satırı “ (Quick Command Line) ve ikincisi “Terminal Emülasyonu” (Terminal Emulation). Birincisi, ALT+F2 tuş kombinasyonu ile çalıştırılan üzerinde komut çalıştırılabilecek küçük bir pencereyi aktive eder. Bu pencereden bir komut çalıştırıldığı zaman, çalıştırılan program tarafından standart çıkışa herhangi bir çıktı üretilmez. Bunun sebebi, bu komut satırının daha çok, X tabanlı programlar için uygun olmasıdır. Diğer tür programlar için Terminal Emülasyonu kullanılmalıdır. 1.3.7.2.11. Terminal Emülasyonu Uygulama Başlatıcı menüsünden (K Düğmesi) -> Sistem -> Terminal seçilerek klasik UNIX kabuk komutlarının ( ls, cat, less ) kullanılabileceği bir uygulama penceresi açılabilir.Seçenekler menüsünden (options) terminal ekranı özelleştirilebilir. 1.3.7.2.12. Kaybolan Dosyaların Bulunması K-Buton -> KFind ile başlatılan KFind ile dosya sistemi ile arama yapmak çok kolaydır. çalıştırıldığı zaman, “İsim & Yer” (Name & Location) seçeneği vurgulanmış olarak görünür. Erişim Tarihine (Date Modified) tıklandığı zaman, kayıt içeriği değişir. Daha önce hiçbir arama yapılmamış ise araç çubuğundaki (toolbar) bir çok ikon ve menü içeriği aktif durumda değildir. İsminin bir kısmı bilinen bir dosyayı aramak için, “Name & Location“ sekmesi seçilir. Joker karakterler arama yaparken dosya isminin olası tüm alternatiflerini kapsamak amacıyla kullanılabilir (Örneğin *.tar.gz ). Varsayılan olarak aramaya kullanıcının ev dizininden başlanır ancak aramaya başlanacak dizin “Look-in yada Browse” tıklanarak belirtilebilir. Daha karmaşık aramlar için, burada bulunan birçok değişik kriter kullanılabilir. Dosya hakkında ne kadar çok bilgi varsa buluna olasılığı o kadar artar. ¾ Date Modified : Belirlenen bir zaman aralığında erişilen dosyaların bulunması için. ¾ File Type : Dosya türü biliniyorsa. (Metin , Binary) ¾ Text String : Dosyanın içerdiği özel bir kaç kelime burada belirtilebilir. ¾ Size : Dosyanın boyutu biliniyorsa. 1.3.7.2.13. Autostart Dizini Kullanıcı KDE açıldığı zaman bazı uygulamaların otomatik olarak açılmasını yada çalışmasını isteyebilir. Bunun için Autostart Dizini kullanılır. Örneğin KDE açıldığında Netscape ‘in bu yolla açılması sağlanabilir. Aslında kullanıcı KDE’den çıkmadan önce açık olan KDE bazlı programlar (KEdit, Konqueror,....), oturum sonunda KDE kapanırken kendi durumlarını kaydederek bir sonraki oturum açıldığında otomatik olarak açılırlar. Ancak KDE, KDE bazlı programlar dışında diğer programlara böyle bir destek vermediği için (Örneğin Netscape) programlar bu şekilde davranamazlar. Bu yüzden bu tür programlar için Autostart Dizini kullanılmalıdır . Herhangi bir programı Autostart Dizini ne eklemek için bir yol olarak, ¾ Autostart dizini açılır, genellikle masaüstünde sol üst kösede bulunur. ¾ Konqueror penceresi açılır ve istenilen program aranarak bulunur. ¾ Seçilen uygulama, sürükle bırak yöntemi ile Autostart Dizini‘ne taşınır ¾ Bırakma esnasında seçenekleri gösteren bir iletişim kutusu açılır buradan uygulamanın kopyalanması yerine link yaratılması tercih edilebilir. Unutulmaması gereken, KDE bazlı uygulamalar için bunun yapılmasına gerek olmadığıdır. Bunun yerine KDE’den çıkmadan evvel, tekrar açılması istenilen program kapatılmaz. Böylece bir sonraki oturumda açılması garantilenmiş olur. 1.3.7.2.14. Masaüstüne Linkler Yerleştirmek Dosyaların masaüstüne yerleştirilmesi onlara erişim için kolaylık sağlayan tercih edilen bir uygulamadır. Bununla birlikte, bazen KEdit’i halihazırda açık olan belli bir şablona sahip bir dosya ile açmak daha kullanışlıdır. Benzer olarak, sıklıkla ziyaret edilen bir siteyi bulmak için genelde çok uzun olabilen sık kullanılanlar listesinde (Bookmarks) aramak bazen çok sıkıcı olabilir. Böylesi bir durumda masaüstünde bir tek tıklama ile ulaşılabilecek bir ikon olması çok kullanışlı olacaktır. Bu gibi işlevleri yerine getirmek için “Template” ler ve MIME Type’lar kullanılır. 1.3.7.2.14.1. Template Kullanımı Template’ler, yukarıda belirtilen işleri gerçekleştirmek için çok uygundur. Templateler aynı zamanda dosyayı belirli bir uygulama ile ilişkilendirmek için de kullanılır. Eğer uzantısı sistem tarafından tanınan türde bir dosyaya çift tıklanırsa, ilişkili uygulama çalışacaktır. Örneğin bir kullanıcı masaüstüne bir web sitesi ile ilgili bir ikon koymak isterse : ¾ Masaüstünde boş bir yere sağ mouse tuşu ile tıkladıktan sonra ¾ Açılan menüden Create New -> Internet Address (URL) seçerek ¾ Bir iletişim kutusu açılır ve URL yazmaya izin verir. Bu aşamadan sonra yeni internet kısayolu diğer masaüstü ikonları gibi üzerine sağ tıklanarak özellikler seçilerek kişiselleştirilebilir. 1.3.7.2.14.2. MIME Type Kullanımı Sistemin kolaylıkla özelleştirilebilmesine olanak tanıyan çok güçlü bir araçtır. Bir dosyaya tıklandığında, o dosya ile ilişkili olan uygulama çalışır. Örneğin html uzantılı bir dosyaya tıklandığında Konqueror programı açılarak sayfayı görüntüler. Belirli bir dosya tipi ile bir uygulama arasında bağlantı oluşturmak için Uygulama başlatıcı menüsünde bu dosya ile çalıştırılacak programın bir kaydının bulunmasına özen gösterilmeli Konqueror’la ilişkilendirilecek dosya uzantısına sahip bir dosya yaratılır. Dosyaya sağ tıklanır, ve Edit File Type seçilir. (Yada Konqueror menüsünden Edit -> Edit File Type da seçilebilir) Add düğmesi ile uygulama için dosya maskesi eklenir, ve istenilen dosya patterni kaydedilir. (UNIX’in büyük küçük harf hassasiyeti olduğu unutulmamalıdır) Bu yüzden değişik varyasyonlar eklemek ihtiyacı ortaya çıkabilir, örneğin *.MP3 ve *.mp3 gibi. MIME Type ile ilgili olarak bir tanımlamada istenirse ilgili metin kutusunda yapılabilir. Ancak zorunluluk yoktur. Uygulama Öncelik Sırası (Application Preference Order) adlandırmalı bölümde, Add düğmesine tıklanırsa, K-Menünün minyatür bir kopyası açılır. Burada dosyanın ilişkilendirileceği uygulama seçilir. Bazen bu dosya tipi başka bir uygulama tarafından da açılsın istenebilir. Örneğin kullanıcı metin dosyalarını düzenlemek için Kwrite, küçük değişiklikler yapmak için ise KEdit kullanmak isteyebilir. Bu yolla istenildiği kadar uygulama listeye dahil edilebilir. Listede birden fazla uygulama olması durumunda öncelik sırası en üstteki uygulamadadır. Sırayı değiştirmek için yukarı ve aşağı ok tuşları kullanılabilir. “Apply” tuşu ile yapılan değişiklikler onaylanıp iletişim kutusu kapanmadan geçerli kılınabilir. Bu kullanıcıya Konqueror ortamında bir test yapma olanağı sağlar. Herşey istenildiği gibi ise “OK” tuşuna basılarak değişiklikler kaydedilir ve iletişim kutusu kapanır. Yada değişikliklerden vazgeçmek amacıyla “Cancel” tuşuna basılabilir. 1.3.7.2.14.3. Trashcan Normal koşullar altında, UNIX’te dosya silmek geri dönüşü olmayan bir süreçtir. Bununla beraber, KDE dosya yöneticisi sayesinde dosyayı silmek yerine çöp kutusuna atılabilir (Move To Trashcan). Bu dosyayı masaüstünden bir tuşla ulaşılabilen Trashcan’a taşır. Trash dizininden silinen dosyalar kurtarılabilir. Dolu bir Trashcan, sağ mouse ile üzerine çift tıklanarak açılan menüden “Empty Trashcan” seçeneği seçilerek boşaltılabilir. Trashcan’den silinen dosyalar kurtarılamazlar. 1.3.7.2.15. KDE’den Çıkış KDE çıkmak için K butonuna basıldığında açılan uygulama başlatıcı menüsünden logout seçilerek KDE’den çıkılabilir. KDE’den çıkış tüm açık pencereleri kapatarak kullanıcıyı konsola yada display manager’a geri döndürecektir. 1.3.7.2.16. KDE’de Türkçe KDE de Türkçe desteği iki şekilde kullanılabilir, bunlardan birincisi KDE’nin Türkçeleştirilmesi, ikincisi ise KDE’ye Türkçe klavye desteği verilmesidir. KDE’ye Türkçe desteğinin verildiği zaman KDE masaüstü tüm uygulamaları (ve bu uygulamalardaki menüler dahil) ile birlikte Türkçeleşir. KDE’ye orijinal görüntüsünü değiştirmeden sadece Türkçe klavye desteğinin verilmesi de mümkündür. Ancak bu durumda bazı uygulamalarda font desteğinde sorun yaşanabilir. KDE sürüm 2.1.1 ‘de bu sorun halen düzeltilememiştir. 1.3.7.2.16.1. KDE’nin Türkçeleştirilmesi KDE ‘yi Türkçeleştirmek için ilk önce sistemde Öncelikle yapmamız gereken, Türkçe yazıtiplerinin X Window'a tanıtılmasıdır. X Window açılırken, hangi yazıtiplerini yükleyeceğini belirlemek amacıyla bazı öntanımlı dizinlere bakar. Bu dizinler, /usr/X11R6/lib/X11/XF86Config dosyasında belirtilmiştir. Sistemde X-Window için gerekli türkçe fontların yüklü olup olmadığı $ rpm -qa | grep ISO8859-9 XFree86-ISO8859-9-75dpi-fonts-2.1.2-16 XFree86-ISO8859-9-2.1.2-16 XFree86-ISO8859-9-100dpi-fonts-2.1.2-16 komutuyla öğrenilebilir. Eğer komut işletilince yukarıdaki liste görüntüleniyorsa Türkçe yazıtipleri (fontları) ve klavye harita (keyboard map) dosyası sisteme yüklenmiş demektir. Gerekli fontlar sisteme yüklenmemiş ise , $ rpm –i XFree86-ISO8859-9-75dpi-fonts-2.1.2-16.noarch.rpm $ rpm –i XFree86-ISO8859-9-2.1.2-16.noarch.rpm $ rpm –i XFree86-ISO8859-9-100dpi-fonts-2.1.2-16.noarch.rpm gerekli rpm paketlerinden kurulabilirler. Bu işlemlerin ardından, KDE başlangıç menüsünden (K-Buton) Control Center çalıştırılır. Burada Personalization alt-menüsünde, “Keyboard Layout” kısmında Primary Layout seçeneğinin Turkish olması sağlanır. Eğer istenirse diğer tür klavye düzenleri de alt kısımdaki listelerin başındaki onay kutuları (checkbox) işaretlenerek seçimlere eklenebilir. Shortcut sekmesinde seçilmiş olan klavye düzenleri arasında çabuk geçiş yapabilmeye olanak sağlayan klavye kısayol tanımlamaları bulunur. Varsayılan olarak bu kısayol “CTRL-ALT-K” dır. Bu durumda onay verilirse ekranın sağ alt köşesinde dil seçim kutucuğu belirir. Daha sonra, yine Personalization alt menüsü içerisindeki “Country & Language” kısmındaki Locale sekmesinde karakter seti de (Charset) ISO8859-9 olarak seçilmelidir. Yine “Country & Language” kısmındaki Language seçeneği Türkçe olarak ayarlanmalıdır. Ve son olarak Country sekmesinde ülke Türkiye seçilmelidir. Bu aşamalardan sonra KDE ve dolayısıyla X-Windows kapatılıp komut satırından tekrar başlatılarak KDE’nin ve tüm uygulamaların Türkçeleştirilmesi sağlanmış olur. 1.3.7.2.16.2. KDE’ye Türkçe Klavye ve Font Desteği Verilmesi KDE ye varsayılan klavye ve dil desteğinin yanında Türkçe klavye desteğini de vermek mümkündür. KDE yi tamamen Türkçeleştirmek yerine sadece Türkçe Q klavye desteği vermek için ise yapılması gereken sadece, Control Center – Personalization Keyboard Layout - Primary Layout seçeneğinin Turkish olarak seçilmesi ve “Country & Language” kısmındaki Locale sekmesinde karakter setini ISO8859-9 olarak seçilmek yeterli olacaktır. Bu şekilde sağlanan dil desteği ile KDE’nin varsayılan ayarlarının çoğunu değiştirmeden Türkçe-Q klavye ve dil desteği sağlanmış olur. Ancak, dil ve klavye desteği hangi şekilde sağlanmış olursa olsun, KDE’nin 2.1.1 versiyonu için, bazı uygulama programlarında Türkçe karakterlerin düzgün şekilde kullanılabilmesi için, ilgili uygulamanın font seçimlerinde Linux font seçeneğinin geçerli ve varsayılan kılınması gerekebilir. Örneğin bir KDE uygulaması olan Terminal Emulator Window, font ayarlarında varsayılan olarak normal seçeneğini kullanır. Bu font ayarı eğer Linux olarak ayarlanmaz ise bazı Türkçe karakterlerin bu uygulamada uygun şekilde kullanılamadığı görülür. 1.3.7.2.17. KDE Masaüstü Klavye Kısayolları Alt-Tab or Alt-Shift-Tab : Pencereler Arasında Geçiş Yapar. Ctrl-Tab or Ctrl-Shift-Tab : Masaüstleri Arasında Geçiş Yapar. Alt-F2 : Küçük bir Komut Satırı Açar. Alt-F3 : Pencere Menüsü. Alt-F4 : Aktif Pencereleri Kapatır. Ctrl-F{1..8} : Belirlenen Bir Masaüstüne Geçer. Ctrl-Alt-Esc : Pencere Yok Edicisi. Ctrl-Alt-Backspace :KDE’den Çıkar. Ctrl-Alt-Numpad + : Bir Sonraki Ekran Çözünürlüğüne Geçer. Ctrl-Alt-Numpad : Bir Önceki Ekran Çözünürlüğüne Geçer. 1.3.7.2.18. ¾ ¾ ¾ ¾ ¾ ¾ ¾ KDE Uygulamaları Konqueror : Web, FTP, Sabit Disk Tarayıcısı (Browser) Kicker : KDE Paneli, Taskbar, Pager, Saat, ve K-Menü yü içine alır Konsole : Tamamen yapılandırılabilir X Terminal Emülatörü Klipper : Bir Clippboard Programı, ancak kopyalananlar üzerinde değişik işlem yapmak mümkündür KDesktop : Masaüstünün Kendisi KHelpcenter : KDE’nin, man ve info sayfalarını tarayabilme özelliği olan yardım merkezi kdm : KDE Login Yürütücüsü ¾ ¾ ¾ ¾ ¾ ¾ ¾ KControl : Kontrol Paneli KWrite : Tamamen Yapılandırılabilir Metin Görüntüleyici Kappfinder : KDE bazlı olmayan uygulamaları, K-Menü ye ekleyen bir Program KSysguard : top yardımcı programının işlevselliği eklenmiş,ağ bağlantılı sistem izleyicisi Ktip : Sihirbaz KANDALF yardım programı KMenuedit : K Menu Düzenleyicisi DrKonqi : Yazılım Üreticilerine yazılım bug’larını raporlayabilen bir progman 1.3.7.2.19. KDEadmin Programları Kcron : Cron’un iş planlama yeteneğini gelişmiş bir arayüzle sunan bir program. Kuser : Grafik Kullanıcı Yöneticisi. (süper kullanıcı yetkisi gerektirir) KPackage : KDE’nin Sistemi Güncel Tutan Paket Yöneticisi. Kdat : Tape Sürücü Kullanıcıları İçin Bir Yedekleme Programı. ksysv : İşletim sisteminin servislerinin organize şekilde açılmasını sağlayan bir Sys-V-init Düzenleyici. kwuftpd : wuftpd, ftp daemon’ını yapılandırmak için bir grafik arayüz. KSysctrl : Bir Sistem-Bilgi (sys-info) yardımcı program uygulaması. 1.3.7.2.20. KDEpim Programları Korganizer : Takvim, Günlük ve İş Planlayıcı. Kab2 : KDE Adres Defteri. Kpilot : Palm Pilot ve Pc arasında eş zamanlama sağlayan bir Yardımcı Uygulama. 1.3.7.2.21. KDE Ağ Programları KMail : Çoklu mail servisleri ve Çoklu Identity’e izin veren gelişkin e-mail programı. KNode : Çoklu NNTP sunucu desteği olan güçlü bir haberci istemcisi. KSirc : KDE IRC İstemci Programı. Korn : Biff Appleti. Korn Kullanıcı için yeni mail olup olmadığını kontrol eder. KPPP : Kullanımı Kolay İnternet Dial-Up Bağlantı Programı. KTalkd : KDE Chat Programı. 1.3.7.2.22. KDE Uygulama Programları Kcharselect : Karakter Seçici. Verilen Bir Font İçin Tüm Karakterleri Görüntüler kdepasswd : KDE, UNIX şifreleri için uç birim kdessh : KDE, Secure Shell için uç birim kdf : KDE disk free uygulama yazılımı Kfloppy : KDE Floppy Disket Formatlayıcı KEdit : Küçük, Basit metin editörü KFind : UNIX find programının grafik arayüzüne sahip sürümü KArm : Planlanan iş için kalan zamanı ölçen bir task scheduler KHexedit : Hex Editörü KLjettool : HP LaserJet için Kontrol Paneli Klpq : KDE, UNIX, lpq,lprm,lpc uygulamaları için uç birim Kpm : top ve ps ‘in yeteneklerinin birleştirildiği bir KDE uygulaması 1.3.7.3. Pardus için KDE Masaüstü Sistemi Pardus, grafik ortamda kullanıcıların görsel olarak kullanacakları Masaüstü Ortamı için özgür olarak (GPL ya da başka bir Özgür Yazılım Lisansı altında) geliştirilen KDE'yi seçmiştir. KDE, Pardus için güçlü bir grafiksel ortamdır. Kullanıcı dostu programlarıyla, Pardus'u üretken bir işletim sistemine dönüştürür. KDE masaüstü kullanım kolaylığını, güçlü özellikleri, muhteşem grafik tasarımını ve Linux'un teknik mükemmelliğini katılımcı yazılım geliştirme yöntemleriyle bünyesinde birleştirir. Temel olarak masaüstü ortamı olarak görev yapsa da içerisinde barındırdığı birçok yazılım sayesinde masaüstü kullanıcılarının hemen hemen tüm ihtiyaçlarına cevap verir. Ayrıca Zemberek projesi ile birlikte KDE üzerindeki tüm yazılımlarda Türkçe imla denetimi sağlanmıştır. Pardus (ve diğer Linux dağıtımları) çok kullanıcılı işletim sistemleridir. Bir başka deyişle, birden fazla kullanıcının, farklı hesaplar yaratarak sistemi kullanabilmesini sağlarlar. Kullanıcıların birbirinden ayırt edilmesini sağlayan etmenler ise kullanıcı adları ve parolaları gibi kimlik bilgileridir. Sisteme girebilmeniz için kullanıcı adınızı ve parolanızı girerek, sisteme kendinizi tanıtmanız gerekir. Eğer geçerli bir kullanıcı adınız ve parolanız yoksa, sisteme girişiniz engellenir. NOT : Her zaman, parolanızı seçerken, bilgi güvenliğiniz açısından, (zorunlu olmamakla beraber) en az 6 karakterden oluşan, harf, rakam ve hatta *, ?, !, -, _, gibi karakterler barındıran, parolalar tercih ediniz ve parolanızı sık sık değiştiriniz. Sisteme farklı kullanıcılar ekleyebilme olanağı, farklı izin ve ayrıcalıklara sahip kullanıcıları diğerlerinden ayırt edebilmenizi, bu sayede de sistemin güvenlikle ilgili ayarlarına daha iyi hakim olmanızı, buna ek olarak, her kullanıcının kendi zevkine göre kendi ortamını özelleştirebilmesini sağlar. DİKKAT : Kullanıcı adı ve parolanızı yazarken, sistemdeki kullanıcı adlarının, parolaların, dosya isimlerinin, hemen hemen her uygulamanın, büyük/küçük harf duyarlılığına sahip olduğunu unutmayın. Yani “Pardus” ve “Pardus” her zaman farklı ifadelerdir. Bilgisayarınızı her açtığınızda, ¾ Size kullanıcı adınızı ve parolanızı sorarak, kendinizi tanıtmanızı isteyen, ¾ Girdiğiniz bilgilere göre size özel olan masaüstü ortamını açan, ¾ Açık olan oturumunuzu kapatıp, başka bir kullanıcıyla sisteme girebilmenizi sağlayan, ¾ Bilgisayarınızı yeniden başlatıp, kapatabilme özellikleri de sunan , programa KDE görüntü yöneticisi (KDM) ismi verilir. KDM, Pardus'un öntanımlı olarak kullandığı masaüstü ortamı olan KDE projesi çerçevesinde geliştirilmektedir. Pardus, kurulum sırasında, “root” isminde bir kullanıcı yaratır. “Rootroot” kullanıcısı, sistemdeki tüm yetki ve ayrıcalıklara sahip bir kullanıcıdır. Bazı kullanıcılar, zaten bir tane var (root) diyerek, başka kullanıcı yaratmak istemeyebilir, ya da sistemi sürekli “root” kullanıcısıyla kullanmak isteyebilir. Fakat bunlar tercih edilmemesi gereken davranışlardır, zira, sisteminizdeki önemli bir sistem dosyasını kazayla silerek veya değiştirerek, geri dönüşü olmayan zararlar verebilirsiniz. KDM tema desteğine de sahiptir, yani isterseniz yeni tema dosyaları indirerek, farklı görünüşe sahip KDM'lere sahip olabilirsiniz. KDM ile ilgili ayarlar Pardus Yapılandırma Merkezi – Tasma'dan yapılabilir. Örneğin hiç kullanıcı adı, parola girmeden doğrudan kendi masaüstü ortamınızın açılmasını sağlayabilirsiniz. Pardus'un masaüstü ortamına ilk defa girdiğinizde, sizi renkli kişilik, yani Kaptan Masaüstü karşılar. Kaptan Masaüstü'nün ilk görevi sizden fareyi hangi elinizle kullandığınızı öğrenmek ve gerekli ayarları tamamlamaktır. Kaptan'ın bir diğer görevi ise masaüstünüzün arkaplan resmini seçmenize yardımcı olmaktır. Listedeki resimlerden birini seçebileceğiniz gibi isterseniz “Masaüstü arkaplan resmini değiştirme” kutusunu işaretleyerek, Pardus'un öntanımlı arkaplan resmini de kullanabilirsiniz. Resim 1.23 : Kaptan masaüstü. İşlemleriniz bittikten sonra, Kaptan Masaüstü sizi gülümseyerek uğurlar. 1.3.7.3.1. Masaüstü Bileşenleri Bu bölümde önce kısaca masaüstünün ne olduğundan, nasıl kullanılabileceğinden bahsedip, ardından da masaüstünün temel bileşenlerini anlatacağız. ¾ Masaüstü, simgeler, pencereler, panel, Pardus menüsü gibi temel görsel öğeleri içinde barındıran ortamın adıdır. Kullanımı kolay, oldukça şık ve tamamen özelleştirilebilir bir yapıya sahip olan Pardus masaüstü, ¾ Programlara, dosyalara, dizinlerinize ve diğer sistem kaynaklarına kolayca erişebilmeniz için kısayollar oluşturabilmenizi, ¾ Çalışan tüm uygulamalarınızı/pencerelerinizi, aynı alana sığdırmanıza gerek kalmadan, birden çok masaüstünü, birbirleri arasında kolayca geçiş yaparak kullanabilmenizi, ¾ Sevdiğiniz bir resmi, arkaplan resmi olarak kullanabilmenizi, ¾ Panel ve Pardus menüsü yardımıyla, Pardus'ta yüklü tüm programları çalıştırabilmenizi sağlar. Şimdi gelin, bu bileşenlere birlikte göz atalım. 1.3.7.3.1.1. Panel Resim 1.24: Pardus sistem paneli. Masaüstünüzde, ekranın en altındaki çubuğa Panel adı verilir. Panelde, Pardus menüsü, sık kullanılan uygulamaların simgeleri, programcıklar (küçük programcık simgelerinin bulunduğu yere “Sistem Çekmecesi” adı verilir), ve görev çubuğu bulunur. Panel sayesinde, ¾ Pardus menüsünü ya da uygulama düğmelerini kullanarak, uygulamaları çalıştırabilir, ¾ Panelin, “Masaüstü Önizleyici” programcığını (üstteki resimde uygulama düğmeleriyle görev çubuğu arasında kalan programcık) kullanarak, diğer masaüstlerine geçiş yapabilir ve çalışma alanınızı genişletebilir, ¾ Etkin pencereler arasında geçiş yapabilir, pencereleri simge şeklinde küçültüp, büyütebilir, ¾ Saat, ses ayarı, çözünürlük ayarı gibi panele yeni özellikler katan programcıklara erişebilirsiniz. Bunları yapabilmenizi sağlayan bileşenleri açıklamadan önce, biraz panelin yapılandırılmasından bahsedelim. Resim 1.25 : Panel ve görev çubuğu ayarlarının yapılması. Panel ile ilgili tüm yapılandırmaları, görev çubuğunda boş bir yere sağ tıklayıp, açılan menüden, “Paneli yapılandır...”'ı seçerek, yapabilirsiniz. Karşınıza çıkan ekranda, sol tarafta iki seçenek bulunur. “Düzen” ve “Görev Çubuğu”. “Görev Çubuğu” seçeneğini, görev çubuğundan bahsettiğimiz bölümde anlatacağız. Bu bölümde, ilk sekme olan, “Düzen” sekmesi seçili olacaktır. Burada yaptığınız değişiklikleri, sağdaki monitör resminden takip edebilirsiniz. Yapılabilecek diğer işlemlerden bahsedersek, ¾ Panelin yerini değiştirelim: “Konum” bölümünden, ekranın 12 farklı yerine paneli konumlandırabilirsiniz. ¾ Panelin uzunluğunu değiştirelim: “Uzunluk” bölümünden, panelin ekranın kaçta kaçını kaplayacağını belirleyebilir, çubuk yardımıyla istediğiniz uzunluğu seçebilirsiniz. Eğer, “İçeriğe uyması için gerektiği kadar genişlet” kutusunu işaretlerseniz, panele daha fazla boş alan lazım olduğu takdirde, panel genişleyecektir. ¾ Panelin büyüklüğünü değiştirelim: “Boyut” bölümünü kullanarak, üzerinde “Normal” yazan, açılır menüden, önceden belirlenmiş panel boyutlarını kullanabileceğiniz gibi, “Özel” seçeneğini seçerek, panelin boyutunu, istediğiniz benek (ing. pixel) sayısına göre ayarlayabilirsiniz. NOT : Eğer birden fazla monitörünüz varsa, paneli her biri için ayrı ayrı yapılandırabilirsiniz. Hangi monitörün hangisi olduğunu anlamak için “Kimlik”'e tıklayın. Böylece ekranın ortasında bir numara belirir. Sonra, “Xinerama Ekranı”'ndan yapılandırmak istediğiniz ekranı seçebilir ya da “Tüm Ekranlar”'ı seçerek her monitör için aynı ayarları geçerli kılabilirsiniz. ¾ Paneli gizleyelim: İkinci sekme olan, “Gizleme” sekmesi sayesinde, kullanmadığınız zamanlarda, panelin kaybolmasını sağlayabilirsiniz. Burada üç adet bölüm mevcut: • “Gizleme Kipi” bölümündeki, “Otomatik Gizle”'yi seçerseniz, panel, siz imleci üstünden çektikten belli bir zaman sonra, kaybolur. • “Panel Saklama Düğmeleri” bölümünden, panelin sağ ve/veya sol yanına küçük saklama düğmeleri koyarak ve istediğiniz zaman bu düğmelere tıklayarak, panelin tıkladığınız tarafa kayarak saklanmasını sağlayabilirsiniz. • “Panel Canlandırması” seçeneğini işaretleyerek, panelin aniden değil de yavaşça kaybolmasını tercih edebilir, hatta kaybolma hızını bile belirleyebilirsiniz. ¾ Pardus menüsü ayarları: “Menüler” sekmesinde, Pardus menüsü ile ilgili ayarlar mevcuttur. Gerçi Pardus menüsünden henüz bahsetmedik ama, yine de bu ayarlara değinelim. ¾ Kenar resmini kaldıralım: “Yan resmi göster” seçeneği, Pardus menüsünde en soldaki ince “KDE” resmiyle ilgilidir. Bu seçeneği kullanarak, o resmi görünür ya da görünmez yapabilirsiniz. ¾ Yeni menüler ekleyelim: “Seçimlik Menüler” kısmından, Pardus menüsüne ekleyebileceğiniz ek menüler arasında, son kullanılan belgeler, sistem, hızlı tarayıcı ve Konqueror'daki yer imleri de vardır. ¾ Hızlı Tarayıcıyı ayarlayalım: “Hızlı Tarayıcı Menüleri”, seçimlik menülerden, Pardus menüsüne ekleyebileceğiniz, “Hızlı Tarayıcı” menüsünün ayarlarını içerir. İsterseniz, “Hızlı Tarayıcı” menüsünde gizli dosyaların gösterilip gösterilmeyeceğini ve bir defada en fazla kaç öğenin gösterileceğini belirleyebilirsiniz. ¾ En sık ya da son kullanılanları değiştirelim: “Hızlı Başlangıç Menü Öğeleri” kullanılarak, Pardus menüsünün en üstündeki kısım, en çok kullanılan ya da en son kullanılan uygulamalara ayrılabilir. “Azami Öğe Sayısı” da söz konusu bölümde, en fazla kaç adet öğe bulunabileceğini belirtir. “Görünüm” sekmesini kullanarak panelin görünümüyle ilgili ayarları yapabiliriz. ¾ İpuçları veya açıklamaları kaldıralım: Panelde, fareyle, uygulama düğmelerinin üstüne geldiğinizde, düğmelerin üzerinde, daha büyük simgelerle birlikte açıklama metinleri çıkar. “Genel” bölümündeki ilk kutucuğundaki seçili işaretini kaldırarak bu özelliği kapatabilirsiniz. Bu özelliği kapattığınız zaman, simgelerin üstünde küçük ipucu metinleri çıkar. İkinci kutucukla bunu da kapatabilirsiniz. ¾ Pardus düğmesinin ve diğerlerinin arkaplanını değiştirelim: “Düğme Arkaplanı” bölümünden, istediğiniz resmi veya rengi, Pardus menüsünün düğmesinin, uygulama düğmelerinin, panele eklenebilen, “Hızlı Gözatıcı”, “Pencere Listesi” gibi özel düğmelerin arkaplanı olarak belirleyebilirsiniz. ¾ Panel arkaplanını değiştirelim veya şeffaf hale getirelim: “Panel Arkaplanı” bölümünden, tüm panelin arkaplanını şeffaflaştırabilir ya da istediğiniz bir resmi arkaplan olarak belirleyebilirsiniz. Panele istediğiniz bir programın simgesini, özel düğme (Pardus menüsü, Masaüstü erişimi, Hızlı Gözatıcı vb..), ya da bir programcık ekleyebilirsiniz. Şimdi bunların nasıl ekleneceğini inceleyelim. Öncelikle paneldeki boş bir alana sağ tıklayıp, “Panele Ekle”yi seçin. Ardından aşağıdaki işlemleri yapabilirsiniz: ¾ Programcık ekleme: “Programcık” bölümüne girerek, bu bölümde bulunan birçok programcıktan birisini seçebilirsiniz. ¾ Uygulama ekleme: “Uygulama” bölümünden, Pardus menüsündeki herhangi bir alt menüyü ya da herhangi bir simgeyi kolayca panele yerleştirebilirsiniz. ¾ Özel düğme ekleme: “Özel Düğme” bölümünden, panele özel düğmeler ekleyebilirsiniz. Bunların dışında, “Panele Ekle” seçeneği altındaki “Panel”'i seçerek, masaüstünüze, panelinizin aynısından bir adet daha (Panel'i seçerek), ya da Konqueror'da soldaki çubuktan (Genel Yan Çubuk) koyabilirsiniz. Eklediğiniz fakat silmek istediğiniz öğeleri, yine panelde boş bir alana sağ tıklayıp, “Panelden Kaldır” seçeneğini ardından da, öğeyi eklerken takip ettiğiniz yolun aynısını takip ederek, silebilirsiniz. Şimdi de kısaca panelin bileşenlerinden bahsedelim : 1.3.7.3.1.1.1. Pardus Menüsü Pardus menüsü, pPaneldeki Pardus düğmesine tıkladığınızda açılan menünün adıdır. Bu menü bilgisayarınızda yüklü olan programlara ve her türlü sistem ayarlarına erişebilmenizi, oturumunuzu/bilgisayarınızı kapatabilmenizi, herhangi bir komutu doğrudan yazarak çalıştırabilmenizi, dosya ve dizinleri bulabilmenizi sağlar. ¾ Pardus menüsündeki simgeyi masaüstüne ekleyelim: Pardus menüsünde, masaüstüne eklemek istediğiniz öğeye sağ tıklayın, ve “Masaüstüne Öğe Ekle” seçeneğini seçin. ¾ Pardus menüsündeki simgeyi panele ekleyelim: Pardus menüsünde, panele eklemek istediğiniz öğeye sağ tıklayın ve “Ana Panele Öğe Ekle” seçeneğini seçin. ¾ Pardus menüsündeki öğeyi düzenleyelim: Pardus menüsünde düzenlemek istediğiniz öğeye sağ tıklayıp, “Öğeyi Düzenle”yi seçerseniz, “KDE Menü Düzenleyici” açılacaktır. Bu program sayesinde Pardus menüsündeki tüm uygulamaların, simgelerini, isimlerini, açıklamalarını, uygulamaya tıklanınca çalıştırılan komutları düzenleyebilirsiniz. 1.3.7.3.1.1.2. Uygulama Düğmeleri Uygulama düğmeleri sayesinde, en sık kullandığınız uygulamalara panelden, tek tıklamayla erişebilirsiniz. Uygulama düğmelerine sağ tıkladığınızda çıkan menüden: ¾ Özellikler'e girip, uygulamanın, simgesini, ismini, açıklamasını, erişim izinlerini (hangi kullanıcının çalıştırıp/değiştirip hangisinin çalıştırıp/değiştiremeyeceğini vb.), sahibini (erişim izinlerini değiştirebilen kullanıcı), desteklediği dosya türlerini, uygulamaya tıklanınca çalıştırılacak komutu değiştirebilir, ¾ “Düğmeyi Taşı” diyerek, düğmeyi panelde istediğiniz bir yere çekebilir, ¾ “Düğmeyi Kaldır” diyerek, düğmeyi panelden silebilirsiniz. Panel Menüsü de, panelde boş bir yere tıkladığınızda açılan menünün aynısıdır, yani buradan da paneli yapılandırabilirsiniz. 1.3.7.3.1.1.3. Programcıklar Programcıklar, panelde çalışan, bilgisayarın ses ayarlarını yapmak, saat ve tarihi göstermek, farklı masaüstlerine geçiş yapılmasını sağlamak gibi işlevleri olan küçük uygulamalardır. Bazıları gerçekten kullanışlı işlevler sunarken, bazıları ise sadece eğlence için yapılmıştır. Pardus'ta bazı programcıklar öntanımlı olarak çalışmaktadır. ¾ Masaüstü Önizleyici: Masaüstü önizleyici size, birden fazla masaüstünde çalışabilme olanağı sunar, bu sayede daha geniş bir çalışma alanına sahip olabilirsiniz. Bu programcıkta, numaralandırılmış kareler masaüstlerini, onların içindeki şekiller de pencereleri temsil eder. Programcığın solundaki ince tutamaca sağ tıklayarak “Masaüstü Önizleyici & Sayfalayıcı Menüsü” > “Masaüstlerini Yapılandır” yolunu izleyerek, masaüstü sayısını ve masaüstlerinin isimlerini belirleyebilirsiniz. ¾ Ses: Tahmin ettiğiniz üzere ses ayarlarını yapabilmenizi sağlar. Hoparlörlerden başka, mikrofon, CD gibi özel ayarları da yapabilir ya da sesi tamamen kapatabilirsiniz. 1.3.7.3.1.1.4. Görev Çubuğu Görev çubuğu, çalışmakta olan uygulamaları listeler ve bu uygulamalar arasında geçiş yapmanız için kolay bir yol sunar. Aktif olan bir pencereyi küçültmek için görev çubuğunu kullanabilirsiniz. Bunu yapmak için görev çubuğunda, küçültmek istediğiniz uygulamanın adına tıklayın, böylece o uygulama kaybolur. Aynı yere bir kez daha tıklayarak, o uygulamayı geri getirebilirsiniz. Görev çubuğunu, panelinizden çıkartıp, ayrı bir panel olarak, ekranınızın herhangi bir yerine yerleştirebilirsiniz. Bunu yapmak için, panelde boş bir alana sağ tıklayarak, “Panele Ekle” > “Panel” > “Harici Görev Çubuğu” yolunu izleyin. Sonra isterseniz, görev çubuğunun solundaki tutamacın üstündeki küçük oka tıklayıp, “Görev Çubuğu'nu Kaldır”'ı seçip önceki çubuğu kaldırabilirsiniz. Görev çubuğu ayarlama ekranında iki bölüm mevcuttur. Her bölüm altındaki önemli kısımlara göz atalım. ¾ “Pencereleri tüm masaüstlerinde göster” seçeneği, görev çubuğunda, tüm açık pencerelerin gösterilip gösterilmeyeceğini belirler. Bu seçenek işaretsizken, görev çubuğunuzda sadece o masaüstündeki pencereler gösterilir. Bunun altındaki “Pencereleri masaüstüne göre sırala” seçeneği işaretli olursa, görev çubuğundaki uygulamalar, her zaman, en başa 1. masaüstünün uygulamaları, sonra 2.'ninkiler sonra 3... şeklinde sıralı olur. ¾ “Sadece simge halindekileri göster” seçeneğinin ne yaptığı adından da bellidir, yani çubukta sadece küçültülmüş pencereler gösterilir. ¾ “Benzer görevleri grupla” seçeneği seçilirse, aynı uygulamaların pencereleri (örneğin birkaç tane Konqueror ya da ofis uygulaması penceresi), gruplanarak, görev çubuğunda tek bir yer kaplar, tıkladığınızda da size o uygulamaların listesi verilir. Bu sayede alandan kazanmış olursunuz. Açılır menüden de bu gruplamanın ne zaman olacağını seçebilirsiniz. Resim 1.26 : Görev çubuğu yapılandırma ekranı. Bu şekilde görev çubuğunuzu istediğiniz gibi özelleştirebilir, hareketlerinize sizin istediğiniz gibi tepkiler vermesini sağlayabilirsiniz. 1.3.7.3.1.2. Masaüstü Simgeleri Pardus'ta bir kullanıcı oluşturulduğunda, o kullanıcının masaüstüne, öntanımlı olarak bazı uygulamaların simgeleri yerleştirilir. ¾ Ev Dizini: “Sisteme giriş” bölümünde Pardus'un çok kullanıcılı bir sistem olduğundan bahsetmiştik. Bu sistemde, her kullanıcının, yalnızca kendisinin (ve tabii ki root kullanıcısının) erişebileceği bir dizini vardır: Ev dizini. Bu dizin, '/home' dizininin altındadır ve kullanıcı adınızla adlandırılmıştır. (örneğin kullanıcı adınız 'hcatak' ise, başlangıç dizininiz '/home/hcatak' dizinidir) Bu dizin kullanıcıları birbirinden yalıtarak, her birine ayrı bir çalışma alanı sağlar. Her kullanıcı, kendi belgelerini, kişisel bilgilerini, başkasının değiştiremeyeceğinden emin olarak, burada tutabilir. ¾ Sistem: Bu bölümden ağ üzerindeki diğer bilgisayarlara, sistemdeki kullanıcılara ve bilgisayardaki depolama ortamlarına (CD, USB disk, sabit disk vb) ulaşabilirsiniz. ¾ Çöp: Sildiğiniz öğeleri barındıran klasördür. Herhangi bir öğeyi, masaüstünüzden ya da Konqueror'dan buraya sürükleyerek, silebilirsiniz. Ayrıca sağ tıklayıp “Çöp Kutusuna At” diyerek de öğeleri silebilirsiniz. Çöpünüzü boşaltmak için, üzerine sağ tıklayıp “Çöp Kutusunu Boşalt” demeniz yeterlidir. Yanlışlıkla sildiğiniz bir öğeyi, geri getirebilirsiniz. 1.3.7.3.1.2.1. Masaüstüne Simge Ekleme Masaüstüne simge eklemenin birden çok yolu vardır: ¾ Pardus menüsünde bir simgeye sağ tıklayıp, “Masaüstüne Öğe Ekle”'yi seçerek, ya da öğeyi fareyle, doğrudan masaüstüne sürükleyip, “Buraya Bağ Koy” ya da “Buraya Kopyala”'yı seçerek, ¾ Masaüstünde boş bir yere sağ tıklayıp, “Yeni Oluştur” dedikten sonra, “Aygıt'a Bağlantı” diyerek (herhangi bir bellek biriminin simgesini oluşturur), “Uygulamaya Bağlantı” diyerek (sistemde yüklü olan herhangi bir uygulamaya kısayol oluşturur) ya da “Konuma (URL) Bağlantı”(bir web sitesine kısayol oluşturur) diyerek, ¾ Konqueror'dan herhangi bir öğeyi masaüstüne sürükleyip, “Buraya Bağ Koy”'u seçerek masaüstünüze simgeler ekleyebilirsiniz. 1.3.7.3.1.3. Pencereler Pencereler, uygulamaların kullanıcıya sunduğu görsel arayüzlerdir. Görsel arayüzler, kullanıcıların fare, klavye gibi araçlar sayesinde, uygulamayla iletişim kurmasını sağlarlar. KDE ortamında, tüm pencereler, aynı temel yapıya sahiptir. Bir pencerede, en üstte bir pencere başlığı, başlıkta çeşitli işlevler sunan düğmeler, ve bir çerçeve bulunur. Şimdi pencere başlığından ve pencerelerin özelliklerini nasıl değiştirebileceğimizden bahsedelim. NOT : Görsel arayüzlerin temelleri, Massachusetts Teknoloji Enstitüsü (MIT) ve Stanford Araştırma Enstitüsü'nde (SRI) atılmış, ardından buradan katılan uzmanların da katkısıyla, XEROX Parc laboratuarlarında, pencere, simge ve bunların bir işaretleme aracıyla (örneğin fare) kullanılması gibi fikirler geliştirilmiştir. Ticari bir ürün olarak, pencereleri kullanan ilk firma yine XEROX olmakla birlikte, bu kavramları kullanan ilk başarılı ürün Apple firmasının 1984'te piyasaya sürdüğü Macintosh işletim sistemidir. Apple firması aynı zamanda, “masaüstü” kavramının da yaratıcısıdır. 1.3.7.3.1.3.1. Pencere Başlıkları Pencerelerin başlıklarında, pencerenin temsil ettiği uygulamanın adı ve ek bilgiler (örneğin bir web tarayıcısında gezdiğiniz sitenin başlık bilgisi, Konqueror'da sistemin hangi dizinine göz attığınız, ya da OpenOffice'te açık olan dokümanın ismi vb..) yer alır. Bir pencere başlığında genellikle 4 adet düğme bulunur. ¾ Küçült : Sağ taraftaki ilk düğmedir. Pencerenin simge halinde, panele küçültülmesini sağlar. ¾ Geri Yükle: Ekranı kaplamayan bir pencerenin ekranı kaplamasını sağar. Aynı düğmeye tekrar tıklandığında ise pencere eski şeklini alır. ¾ Kapat : Pencereyi Kapatır. ¾ Menü : En soldaki düğmedir. Başlığa sağ tıklanınca açılan menünün aynısıdır. Bir pencereyi diğerlerinin arkasına/önüne alabilir, pencerenin, başlık ve kenarlığını kaldırabilir, başka bir masaüstüne taşıyabilir, yeniden boyutlandırabilir ve sağdaki düğmelerin yaptıklarını yapabilirsiniz. ¾ Yardım : Her uygulamada bulunmaz. Tıklandığında imlecin şekli değişir. İmlecin şekli değişikken, o pencere içindeki herhangi bir öğeyle ilgili bilgi almak için o öğenin üstüne tıklamanız yeterlidir. 1.3.7.3.1.3.2. Pencere Özelliklerinin Değiştirilmesi Pencerelerin özelliklerini, görünümle ilgili özellikler ve kullanımla ilgili özellikler olarak ikiye ayırabiliriz. ¾ Pencerelerin görünümüyle ilgili özellikleri: • Pencere temasını değiştirelim: Burada tema, bir pencerenin genel görünümünü ifade etmek için kullanılır. Pardus'ta birçok tema yüklü olarak gelir. Pencere temanızı değiştirmek için, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > ”Görünüm ve Temalar” > “Pencere Dekorasyonları” yolunu izleyin. Bu bölümünde, sekmelerin altında bulunan açılır menüye tıklayın ve istediğiniz temayı seçin. Altta görünen pencerelerden, seçtiğiniz temanın önizlemesini yapabilirsiniz. • Pencere başlığındaki yazının yerini değiştirelim: Başlık yazısının sağda, ortada ya da solda durmasını sağlayabilirsiniz. Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > ”Görünüm ve Temalar” > “Pencere Dekorasyonları” yolunu izleyin. Bu bölümünde, “Başlık Hizalaması” kısmından başlık yazısının yerini değiştirebilirsiniz. • Pencere başlığındaki düğmelerin yerini değiştirelim: Pencere başlığında gördüğünüz düğmelerin yerini/sırasını değiştirebilir hatta yeni düğmeler ekleyebilirsiniz. Bunu yapmak için, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > ”Görünüm ve Temalar” > “Pencere Dekorasyonları” yolunu izleyin. Bu bölümünde, “Düğmeler” sekmesini seçin. Önce başlığı özelleştirebilmek için 2. seçenek olan “Özel başlık çubuğu düğme konumlarını kullan” seçeneğini işaretleyin (öntanımlı olarak zaten işaretli olacaktır). Bu seçeneğin altındaki “KDE” yazan çubuk, düğmelerin şu anki yerlerini gösterir. Bu çubuktaki düğmeleri sürükleyip-bırakarak istediğiniz yere taşıyabilirsiniz. İsterseniz, bir düğmeyi, çubuğun altındaki listeye taşıyarak, başlıktan kaldırabilir ya da listedeki öğelerden birini çubuğa sürükleyerek, başlığa yerleştirebilirsiniz. Bunları yaparken, en alttaki önizleme penceresinden, başlığın yeni halini gözlemleyebilirsiniz. • Pencere başlığının renklerini değiştirelim: Pencere başlığının, metin ve arkaplan renklerini değiştirebilirsiniz. Bunun için, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > ”Görünüm ve Temalar” > “Renkler” yolunu izleyin. Burada, üstteki önizleme ekranından, başlık metni ya da çubuğuna tıklayıp, sağda “Parçacık Rengi” bölümündeki renk çubuğundan, tıkladığınız öğenin rengini değiştirebilirsiniz. ¾ Pencerelerin davranışıyla ilgili özellikler • Başlık çubuğuna çift tıklayınca yapılacak eylemi seçebilirsiniz: Öntanımlı olarak başlık çubuğuna çift tıklandığında, pencere ekranı kaplar. Bunu değiştirebilirsiniz. Bunun için, Pardus menüsü >Pardus Yapılandırma Merkezi (Tasma) >”Masaüstü Seçenekleri” >“Pencere Davranışı” yolunu izleyin. Buradan, “Eylemler” sekmesine girin. Buradaki ilk seçenek, başlık çubuğuna çift tıklandığında yapılacak eylemi belirtir. • İmleci etkin olmayan bir pencerenin üzerine götürüp, etkinleştirebilirsiniz: Bunun için, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > ”Masaüstü Seçenekleri” > “Pencere Davranışı” yolunu izleyin. Bu bölümündeki, ilk sekmede bulunan, “Yöntem” seçeneğinden, “Fare ile Odaklama”'yı seçin. 1.3.7.3.1.4. Masaüstü Arkaplanını Değiştirme Masaüstü arkaplan resmini değiştirmek için, masaüstünde boş bir alana sağ tıklayın, ardından “Masaüstünü Yapılandır...”'ı seçin. Karşınıza çıkan ekrandan masaüstü arkaplanıyla ilgili her türlü ayarı yapabilir, yaptığınız ayarları sağdaki monitör resminden görebilirsiniz. Şimdi bu ekrandan yapabileceklerimize bir göz atalım: ¾ “Masaüstü için ayarlar” bölümünden hangi masaüstünü yapılandırmak istediğinizi seçebilirsiniz. ¾ “Arkaplan” bölümündeki, • “Resim yok” bölümünden, arkaplanın tek renk, ya da çeşitli şekillerde karıştırılmış iki renkten oluşmasını sağlayabilirsiniz. • “Resim” seçeneğini seçip, yanındaki listeden ya da mavi düğmeden bir resim seçebilirsiniz. • “Slayt gösterisi” seçeneğini seçip, belirlediğiniz resimlerin belli aralıklarda arkaplan olarak kullanılmasını sağlayabilirsiniz. ¾ “Yeni Duvar Kağıdı Al” düğmesinden, KDE kullanıcıları tarafından en çok puan alan, en çok indirilen duvar kağıtlarını görebilir, bilgisayarınıza indirip kullanabilirsiniz. 1.3.7.3.2. Çeşitli Ayarlar 1.3.7.3.2.1. Yazıtipi Ayarları Sistemde gördüğünüz tüm yazıların tipini ve boyutunu değiştirebilirsiniz. Bunu yapmak için Pardus Yapılandırma Merkezi'nden “Görünüm ve Temalar” ve ardından “Yazıtipleri” bölümüne girin. Burada masaüstünün çeşitli kısımlarında kullanılan yazıtiplerinin boyutunu ve türünü ayarlayabilirsiniz. “Yapılandır” bölümünden de yumuşatma (ing. anti-aliasing) ayarlarını yapabilirsiniz. Sisteme yeni yazıtipleri eklemek için Konqueror'ı kullanabilirsiniz. Konqueror'daki adres çubuğuna “fonts:/” yazın. Burada, “Kişisel” yazan dizin, her kullanıcının, kendine ait yazı tiplerini kullanabilmesi için, “Sistem” dizini ise tüm kullanıcıların kullanabileceği ortak yazı tipleri için düşünülmüştür. Herhangi bir yazı tipi dosyasını (“.pcf.gz”, “.pfb”, “.pfa”, “.ttf”, “.gsf” gibi uzantılı dosyalar), bu dizinlerden birine kopyalayarak sisteminize yükleyebilirsiniz. İsterseniz, herhangi bir yazı tipinin dosyasının üstüne gelerek, yazı tipini görebilirsiniz. 1.3.7.3.2.2. Görünüm Ayarları Bu bölümde, masaüstü ortamı açılırken çıkan açılış ekranını, ekran koruyucuyu, düğmelerin ve menülerin renklerini, simge temasını ve stilleri nasıl değiştireceğimizi öğreneceğiz. 1.3.7.3.2.2.1. Renk Ayarları Menülerdeki yazıların, menü arkaplanlarının, standart metinlerin, bağlantıların, pencere başlık çubuğundaki metinlerin ve çubuğun arkaplanının, düğmelerdeki yazıların, düğme arkaplanlarının kısacası görünen hemen her şeyin renklerini değiştirebilirsiniz. Renkleri ayarlamak için Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > “Görünüm ve Temalar” > “Renkler” yolunu izleyin. Ekranın en üstünde gördüğünüz önizleme ekranından, istediğiniz öğeye tıklayarak rengini değiştirebilirsiniz. Bunun için öğeyi seçtikten sonra sağ taraftaki ince renk çubuğunu kullanın. Kendi zevkinize göre hazırladığınız temayı kaydetmek için, sol-alt tarafta bulunan “Şemayı Kaydet...” düğmesini kullanın. İsterseniz internetten indirdiğiniz bir şema dosyasını (.kcsrc uzantılı dosyalar) da “Şemayı Aktar...” düğmesini kullanarak bu listeye ekleyip, kullanabilirsiniz. Resim 1.27: Pardus masaüstü renkleri. 1.3.7.3.2.2.2. Simgelerin Boyutunu ve Görünüşünü Değiştirme Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > “Görünüm ve Temalar” > ”Simgeler” yolunu izleyerek, çeşitli simge temaları bulabilir istediğiniz temayı kullanmak mümkündür. Listede olmayan bir temayı listeye eklemek için “Yeni Tema Kur” düğmesini kullanın. İsterseniz “Gelişmiş” sekmesinden, masaüstündeki, paneldeki, araç çubuğundaki simgelerin boyutunu değiştirebilirsiniz. 1.3.7.3.2.2.3. Stil Ayarları Stil, düğmelerin, işaretleme kutularının, radyo düğmelerinin, açılır menülerin, sekmelerin genel görünümüne verilen addır. Pardus varsayılan olarak “Lipstik” ismindeki stili kullanır. Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > “Görünüm ve Temalar” > “Stil” yolunu izleyerek, sistemin stilini değiştirebilirsiniz. “Stil” düğmesine tıkladığınızda gelen ekranda, en üstteki açılır menüden, bir stil seçebilirsiniz. Önizleme ekranı, seçtiğiniz stili sisteminize uygulamadan önce görmenizi sağlar. Listedeki stillerden bazıları, stille ilgili ince ayarlar yapabilmenize olanak tanır. Bunun için, listeden bir stil seçtikten sonra, yandaki “Yapılandır” düğmesini kullanın. 1.3.7.3.2.2.4. Fare İmlecinin Görünümünü Değiştirme Fare imlecinin, belirli durumlarda (örneğin bilgisayar meşgulken, bir şey fareyle yeniden boyutlandırılacağı zaman, yazı yazarken..) aldığı şekillerin hepsine birden fare imleci teması denir. Pardus'ta kullandığınızdan başka fare imleci temaları da mevcuttur. Bu temaları kullanmak için, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > ”Çevre Birimleri” > “Fare” yolunu izleyin. Buradaki “İmleç Teması” sekmesinde, altta bulunan listeden, herhangi bir temayı seçebilirsiniz. İsterseniz, imleci, seçtiğiniz temanın imleçlerinin üstüne götürerek o temayı deneyebilirsiniz. 1.3.7.3.2.2.5. Sistem Tarihini ve Saati Değiştirme Tarih ve saati değiştirmenin en kolay yolu, paneldeki saat programcığına sağ tıklayıp, “Saati ve Günü Ayarla”'yı seçmektir. Bu ayarları değiştirmek için öncelikle root parolanızı girmeniz gerekli, çünkü saat ve tarih bilgileri tüm kullanıcıların ve sistemin kullandığı bilgilerdir. Resim 1.28 : Tarih ve saat ayarı. Bu ekranda, soldaki takvimden sistem tarihini/gününü sağdaki saatten de, sistem saatini yapılandırabilirsiniz. 1.3.7.3.2.2.6. Sistem Dilini ve Klavye Düzenini Değiştirme Sisteminizin dilini değiştirmek için, öncelikle, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > “Bölgesel ve Erişilebilirlik” > “Ülke/Bölge ve Dil” yolunu izleyin. Çıkan ekranda, sağ taraftaki “Dil Ekle” düğmesinden istediğiniz dili seçebilirsiniz, yalnız, Pardus, öntanımlı olarak sadece Türkçe ve İngilizce dil paketlerini yükler. Daha sonra kendiniz yeni dil paketleri yükleyerek bu ekrandan sistemin dilini değiştirebilirsiniz. Klavyenizin düzenini değiştirmek içinse, Pardus menüsü > Pardus Yapılandırma Merkezi (Tasma) > “Çevre Birimleri” > “Klavye Düzeni” yolunu izleyin. Burada, sol taraftaki listeden bir klavye düzenini seçtikten sonra, “Ekle >>” düğmesine basarak, sağdaki listeye ekleyin. Bu şekilde, sık kullandığınız düzenleri ekleyebilirsiniz. Sistemde geçerli olan düzen en üsttekidir. Bunu değiştirmek için, sağdaki listeden, kullanmak istediğiniz klavye düzenini seçin, ve ekle kaldır düğmelerinin yanındaki yukarı ok düğmesini kullanarak, en üste çıkarın. 2. DOSYA SİSTEMİ ve ÇALIŞMA MANTIĞI 2.1. Dosya Sistemi Linux işletim sisteminde dosya ve dizinler diğer Unix türevi işletim sistemlerinde olduğu gibi hiyerarşik bir yapıya sahiptirler. En üst düzeyde bulunan ve kök dizini diye adlandırılan dizin alt dizin olarak adlandırılan dizinleri içermektedir. Ayrıca bu alt dizinlerde kendi içlerinde dosya ve alt dizin içerebilmektedir. Dizin yapısı isteğe göre belirlenmiş değildir. Paketlerin düzgün şekilde çalışabilmeleri için önemli dosya ve dizinlerin yeri standartlaştırılmıştır. 2.1.1. Dosya Tipleri ve Dosyaların Sınıflandırılması Her işletim sisteminde olduğu gibi Linux işletim sisteminde de dosyalar işletim sisteminin büyük bir kısmını oluşturmaktadır. İşletim sistemi de sistemin açılması sırasında bir dosyadan bilgi okunmaktadır. Linux’ta bir dosyaya isim verirken tüm alfabetik karakterler , alt cizgi ( _ ) , rakam , nokta , virgül kullanılabilmektedir. Dosyalara isim verilirken dikkat edilmesi gereken kurallardan biri dosya isminde * , ? gibi karakterlerin bulunmamasıdır. Dosya isminin uzunluğu 256 karakteri geçmemelidir. Ayrıca bir dosyanın büyüklüğü de 2 GB ile sınırlıdır. Linux işletim sisteminde çalıştırılabilir dosyaların belli bir uzantıya sahip olması gerekmemektedir. Bir dosyanın çalıştırılıp çalıştırılamayacağı dosyanın dizinlerinden anlaşılmaktadır. Linux işletim sisteminde dosyalar birden çok tipte olabilmektedir. Örnek olarak salt metin dosyaları , çalıştırılabilir dosyalar , blok ve karakter cihaz dosyaları sayılabilir. Metin dosyaları da kendi aralarında çok fazla farklılık göstermektedirler. Bu farklılık dosyaların içeriklerinden kaynaklanmaktadır. Postscript formatındaki dökümanlar da metin dosyasıymış gibi gözükmelerine rağmen metin dosyaları için yazılmış editörler ile incelendiklerinde içerikleri anlaşılamamaktadır Linux işletim sistemi temelde 2 farklı dosya tipi bulunmaktadır : ¾ Sıradan Dosyalar ¾ Aygıt Dosyaları Aygıt dosyaları sistemde bulunan donanım ile haberleşmeyi gerçekleştiren dosyalardır. Üç farklı aygıt dosya tipi bulunmaktadır. ¾ Karakter aygıt dosyaları : Bu tip aygıt dosyası ile erişilen donanımlar bilgilerini karakter karakter iletmektedirler. ¾ Blok aygıt dosyaları : Bu tip aygıt dosyası ile erişilen donanımlar ile iletişim blok aktarma ile gerçekleştirilmektedir. ¾ Kuyruk Dosyaları Sıradan dosyalar , aygıt dosyaları dışında kalan dosyalardır. Çok fazla çeşitte sıradan dosya tipi bulunmaktadır. Bir dosyanın tipinin belirlenmesi için Linux işletim sisteminde file komutu kullanılmaktadır. Bu komut dosyayı inceleyerek tipini kullanıcıya göstermektedir. Bu komut dosyaları aygıt dosyası , sıradan dosya gibi genel olarak sınıflamak yerine dosyanın tam tipini vermektedir. 2.1.2. Dizin Hiyerarşisi Dosya sistemi, işletim sisteminin, dosyaları diskte tutabilmek için kullandığı yapılar ve yöntemlere verilen addır. Yani bir anlamda dosyaların diskteki düzenidir diyebiliriz. Bu düzen kapsamında bir hiyerarşiden bahsedebiliriz. Hiyerarşinin en üstünde kök dizini (ing. root directory) yer alır ve “/” karakteriyle gösterilir. Diğer dizinler de bu kök dizininin altında toplanmışlardır. Resim 2.1 : Linux dizin hiyerarşisi. Burada en üstte kök dizinini ve altında da çeşitli dizinleri görüyoruz. Alttaki dizinlerin içinde de kendi dizinleri ve dolayısıyla kendi hiyerarşik düzenleri olduğunu varsayabiliriz. Bu bağlamda, bu düzen ters bir ağaca benzetilebilir. Bir dizin ya da dosyanın, sistemdeki konumu, o dosya/dizinin “yol”'uyla belirtilir. Yol, kök dizininden itibaren, o dosya/dizine ulaşmak için geçilmesi gereken dizinlerin “/” işaretiyle birleştirilerek ardışık bir şekilde yazılmasıyla elde edilen ifadedir. Örneğin “/home/hcatak” yolu, kök dizinindeki, home isimli dizinin içindeki hcatak dizininin konumunu belirtir. Bu ifadede en baştaki “/” kök dizinini belirtmektedir. Aynı şekilde, “/usr/share/kde” yolu, kök dizinindeki usr dizininin içindeki, share dizininin içinde bulunan kde dizininin yerini belirtir. Sisteminizde erişilebilir her dizin/dosyanın yeri, (diğer disklerdekiler de dahil olmak üzere) bu şekilde tarif edilebilir. NOT : “/home” dizininde, her kullanıcı için ayrı ayrı tahsis edilmiş kullanıcı (ev) dizinleri mevcuttur (kaptan isimli bir kullanıcı için /home/kaptan dizini gibi..). Ev dizinlerine erişim için bir kısayol vardır, şöyle ki; bir kullanıcı, kendi ev dizinindeki metin.txt dosyasına “~/metin.txt” yolunu kullanarak erişebilir. Yani “~” işareti her kullanıcı için, o kullanıcının ev dizinini belirtir. 2.1.2.1. Bağlama ve Ayırma Kavramları Bir dosya sistemini/aygıtı erişilebilir kılmak için yapılması gereken işleme “bağlamak” (ing. mount) denir. Bağlama işlemi yapıldıktan sonra, bağlanan aygıta, “bağlama noktası” adı verilen bir dizinden erişilebilir. Bağlama noktası, olarak sistemde herhangi bir dizin seçilebilir, fakat birazdan bahsedeceğimiz üzere, öntanımlı bağlama noktaları /mnt'de bulunur. Dikkat ! : Bilgisayarınızı kapattığınız zaman sisteminize bağlı tüm aygıtlar otomatik olarak ayrılır. Eğer bilgisayarınızı doğrudan mesela fişi çekerek kapatırsanız, ayırma işlemi sırasında kaydedilecek olan bazı değişiklikler kaydedilemez, bu da sisteminizde birtakım hasarlara yol açabilir. Bu yüzden her zaman böyle durumlardan kaçının. Ayırma (ing. unmount) kavramı da adı üstünde, bir sistemi/aygıtı sistemden ayırmak için kullanılır. Ayrılma sırasında, ayrılan aygıta, yapılan birtakım değişiklikler kaydedilir. 2.1.2.2. Kök Dizini Kök dizini diğer tüm dizin ve dosyaları içeren dizindir. Kök dizinin bulunduğu disk bölümünün sahip olması gereken önemli bir özellik bulunmaktadır. Kök dizinini içeren disk bölümü sistemi tek kullanıcılı açmak için gerekli tüm dosyaları içinde barındırmalıdır. Bu işletim sistemin açılabilmesi için gerekli bir kuraldır. Kök dizininde bulunan dizinlerden ve bu dizinlerin kullanılışlarından kısaca bahsedelim: ¾ /bin : Tüm kullanıcıların kullanabildiği temel komutları (cp, mv, ls gibi..) içerir. ¾ /boot : Açılış işlemi (ing. boot) sırasında kullanılan dosyaları (çekirdek görüntüsü, sistem haritası, önyükleyici yapılandırması gibi..) içerir. ¾ /dev : Bilgisayarınızdaki, donanımlarla (sabit diskler, fare gibi..) iletişim kurulabilmesi için gereken özel aygıt dosyalarını içerir. ¾ /etc : Adı İngilizce'deki etc. kısaltmasından gelir. Dizin, bulunduğu bilgisayara özel, birçok yapılandırma bilgisini içerir. ¾ /home : Bu dizin altında, kullanıcıların kişisel verilerini, yapılandırmalarını kaydettikleri çalışma alanları olan ev dizinleri bulunur. Her kullanıcının ev dizini kendi kullanıcı adını taşır. ¾ /lib : Çekirdek modülleri ve paylaşılan kod kütüphanelerini içerir. MS Windows'ta dll uzantısına sahip olan paylaşılan kütüphane dosyaları, Linux'ta so uzantısına sahiptir. ¾ /mnt : Çeşitli dosya sistemi/aygıtların (örneğin, CD, DVD sürücünüz, diğer sabit diskleriniz gibi..) bağlama noktaları burada bulunur. ¾ /proc : Süreçler, sistem belleği, bağlı aygıtlar, donanım yapılandırmalarıyla ilgili bilgileri içeren özel bir “sanal” dosya sistemidir. Bir bilgi alma merkezi olarak görülebilir. Birçok uygulama buradaki bilgilerden yararlanmaktadır. ¾ /root : Sistem yöneticisinin (yani “root” kullanıcısının) ev dizinidir. ¾ /usr : Tüm kullanıcılarca paylaşılan verileri (örneğin programlar, komutlar, kütüphaneler, dokümanlar gibi) içeren dizindir. • /usr/bin : Normal kullanıcılar tarafından kullanılan komutlar. • /usr/sbin : Sistem tarafından kullanılan ve sistemin açılması ,kapanması ve tek kullanıcılı modda çalışması ile ilgili olmayan programlar. • /usr/lib : Programlama için kullanılan kütüphaneler. • /usr/include : C/C++ için kullanılan başlık dosyaları. • /usr/doc : Dökümanların bulunduğu dizin. ¾ ¾ • /usr/man : Man dosyaları. /var : Değişken verileri içerir.(örneğin rapor dosyaları, veritabanları, kuyrukta bekleyen yazdırılacak dokümanlar gibi) • /var/lock : Çalışan programların yarattığı kilit dosyaları. • /var/log : Log dosyaları. • /var/run : Sistemde çalışan sunucuların proses kimlik numaralarını içeren dosyalar. • /var/tmp : Geçici dosyalar. • /var/yp : NIS ile ilgili dosyalar. • /var/spool : Kuyruk dosyaları. o mail : Kullanıcıların e-postalarının tutulduğu dizin. o mqueue : E-posta kuyruğunda bekleyen e-postalar için yaratılan geçici kuyruk dosyalarının bulunduğu dizin. o lpd : Yazıcı kuyruğunda bekleyen işler için geçici dosyaların bulunduğu dizin. /tmp : Geçici dosyaları içerir. Yalnız geçici olduğu için bu dosyaları silmek tehlikeli olabilir. 2.1.3. Temel Dosya ve Dizin İşlemleri Linux işletim sisteminde dizin ve dosyalar üzerinde farklı bir çok işlem yapılabilmektedir. Bu işlemler temel olarak aşağıdaki gibidir : ¾ Yeni Dosya veya Dizin oluşturmak , silmek. ¾ Dosya ve Dizinleri listelemek. ¾ Dosya veya Dizinlerin izinlerini ayarlamak. ¾ Dosyaların içeriğini görmek. ¾ Dosyaları yazdırmak. ¾ Dosya ve Dizinleri kopyalamak ve taşımak. 2.1.3.1. Yeni Dosya ve Dizin Oluşturma 2.1.3.1.1. Yeni Dosya Oluşturma Yeni bir dosya yaratmanın en basit yolu touch komutunu kullanmaktır. Bu komut varolamayan bir dosya ismi ile çağırıldığı takdirde boş bir dosya yaratacaktır. Sırf metin içerecek dosyaların yaratılması için editörler de kullanılabilir. Touch komutu aşağıdaki yapıya sahiptir : touch [-acm] [tarih ] dosya_ismi Touch komutu dosya yaratmanın yanı sıra dosyanın son erişim ve son değişme zamanlarını düzenlemek için de kullanılabilmektedir. Varolan bir dosya ismi verildiği takdirde touch komutu dosyanın son erişim ve son değişim tarihini kendisine verilen tarih parametresi yapmaktadır. Dosyanın sadece son erişim zamanını değiştirmek için touch komutuna –a parametresinin verilmesi gerekirken , sadece değişim zamanını değiştirmek için –m parametresi verilmelidir. Bu parametreler verilmediği takdirde iki zaman bilgisi de değiştirilir. Touch komutuna tarih bilgisi verilmediği takdirde sistemin tarih bilgisi kullanılacaktır. Tarih bilgisi aşağıdaki formatta verilmektedir. MMDDhhmm[YY] : ¾ MM : Ay bilgisi ¾ DD : Gün bilgisi ¾ hh : Saat bilgisi ¾ mm : Dakika bilgisi ¾ YY : Yıl bilgisi Örnek 2.1 : Dosyanın erişim ve değişim zamanlarını 14 Şubat 2001 01:11 tarihi yapmak için : touch 0214011101 dosya_ismi Dosyanın değişim zamanını 26 Mart 1999 00:00 yapmak için : touch –m 0326000099 dosya_ismi Dosyanın erişim zamanını 23 Haziran 2001 13:25 yapmak için : touch –a 0623132501 dosya_ismi 2.1.3.1.2. Yeni Dizin Oluşturma Linux İşletim Sisteminde yeni dizin yaratmak için mkdir komutu kullanılmaktadır. Mkdir komutu temel de aşağıdaki yapıya sahiptir : mkdir [seçenekler] dizin Mkdir ile kullanılabilecek seçenekler aşağıdaki gibidir : ¾ -m izin_modu : Yeni yaratılacak dizin için geçerli olacak izinler istendiği takdirde bu parametre ile verilebilir. Bu parametre verilmediği takdirde izinler tüm sistem için geçerli olan izinlere ayarlanacaktır. ¾ -p : mkdir komutuna verilen dizini oluşturmak için gerektiğinde daha üst dizinlerinde oluşturulmasını sağlayan parametredir. Örnek olarak dizin ismi parametresi olarak /olmayan_dizin/açılacak_dizin alan bir mkdir komutu açılacak_dizin’i barındıracak olan olmayan_dizin sistemde mevcut olmadığından hata ile sonlanacaktır. Bu durumda mkdir komutu –p parametresi ile çalıştırıldığında ilk olarak olmayan_dizin sonradan ise acılacak_dizin yaratılacaktır. ¾ -v : Bu parametre ile mkdir komutunun yarattığı tüm dizinleri kullanıcıya bildirmesi sağlanır. Şekil 2.2 : Yeni dizin oluşturma işlemleri. 2.1.3.2. Dosya ve Dizinleri Silme Sistemde varolan dosya ve dizinlerin silinmesi için rm komutu kullanılmaktadır. Ayrıca dizinleri silmek için rmdir komutu da kullanılabilir. Rm komutunun temel yapısı aşağıdaki gibidir : ¾ Dosyalar için : rm [seçenekler] dosya_ismi ¾ Dizinler için : rm –r [seçenekler] dizin_ismi Dizinleri silmek için –r parametresinin kullanılmasının nedeni dizinlerin silinmesi için ilk olarak içlerinde bulunan dosya ve diğer dizinlerin silinmesi gerekliliğidir. –r parametresi ile rm komutu rekürsif olarak çalışarak belirtilen dizin altında bulunan tüm dizin ve dosyaları , son aşamada da belirtilen dizini silecektir. Eğer silinmesi istenen dizin içinde hiç bir dosya veya başka dizin barındırmıyor ise rmdir komutu ile de silinebilir. İçinde dosya veya başka dizin barındıran dizinler rmdir komutu ile silinemezler. Rm komutunun aldığı önemli parametreler aşağıdaki gibidir : ¾ -i : Rm komutunu interaktif moda sokar. Bu durumda rm komutu sileceği her dosya ve dizin için kullanıcıdan onay bekler. Root kullanıcısı için tanımlanan komut takma isimleri (alias) rm komutu her zaman bu parametre ile çalıştıracak şekilde ayarlanmıştır. ¾ -f : Rm komutu bu parametre ile çalıştırıldığında onay için hiç bir zaman kullanıcıya başvurmaz. ¾ -r : Dizinlerin içeriklerini rekürsif olarak kaldırır. ¾ -d : Belirtilen dizinin içeri boş olmasa bile dizinin silinmesini sağlar. Bu parametre yalnızca root kullanıcısı tarafından kullanılabilmektedir. ¾ -v : Yapılan her silme işlemi ile ilgili bilgiyi kullanıcıya gösterir. 2.1.3.3. Dosya ve Dizinleri Listeleme Sistemde varolan dosya ve dizinleri listelemek için ls komutu kullanılmaktadır. Temelde ls komutunun yapısı aşağıdaki gibidir : ls [seçenekler][dosya_veya_dizin_ismi] Ls komutu , dosya veya dizin ismi bildirilmediği takdirde içersinde bulunan dizinin içeriğini listelemektedir. Ls ile kullanılan temel parametreler aşağıdaki gibidir : ¾ -a : Tüm dosyaları listelemek için kullanılır. Linux işletim sisteminde isimleri “.”(nokta) ile başlayan dosyalar gizli dosyalar olarak kabul edilir ve varsayılan olarak ls çıktısında gözükmezler. Bu dosyalarında ls çıktısında gözükmesini sağlamak için –a parametresi kullanılmalıdır. ¾ -C : Ls çıktısını sütün olarak listeler. Ls komutu için varsayılan davranış şekli budur. ¾ -l : Ls çıktısını liste olarak listeler , ayrıca dosya ve dizinler hakkında izin , sahip , boyut , en son ne zaman güncellendiği gibi bilgileri de kullanıcıya belirtir. ¾ -h : Dosya boyutlarını insanların okuyabilecekleri formata sokar. Dosya boyutlarını byte olarak göstermek yerine Megabyte , kilobyte , gigabyte olarak gösterir. Byte , kilobyte ,megabyte , gigabyte arasındaki döşüm için 1024 sayısını kullanır. ¾ -H : -h parametresinden temel farkı dönüşümlerde 1024 yerine 1000 rakamı kullanılır. ¾ -o : -l parametresinden tek farkı dosya veya dizinin grup bilgisini göstermeyişidir. ¾ -R : Dizinin içeriğini rekürsif olarak listelemek için kullanılır. Bu parametre ile listeleme yapıldığı takdirde listelenen dizinin içinde bulunan alt dizinlerin içeriği de listelenir. ¾ --color : Bu parametre sayesinde ls komutu dosyanın tipine göre renklendirme yapar. (Örnek : dizinler mavi renk ile gösterilir.) Renklendirme işleminin çalışması için kullanılan terminalin bu işlemi desteklemesi gerekmektedir. Örnek 2.2 : [root@atlas /etc]# ls passwd passwd [root@atlas /etc]# ls -l passwd -rw-r--r-- 1 root root 152097 Mar 27 16:38 passwd 2.1.3.4. Dosya ve Dizinlerin İzinlerini Ayarlama Dizin ve dosyalar erişim haklarının belirlenmesi için izinler kullanılmaktadır. Linux işletim sisteminde izinler 3 farklı grup olarak verilebilmektedir : ¾ Dosyanın sahibinin izinleri ¾ Dosyanın grubunun izinleri ¾ Diğer kullanıcıların izinleri Dosyaların ve dizinlerin sahip olduğu izinleri görmek için ls komutu kullanılmaktadır. Örnek 2.3: [root@atlas /root]# ls -ld Projects/ drwxr-xr-x 3 root root 4096 Aug 25 2000 Projects/ [root@atlas /root]# ls -l smb.conf -rw-r--r-- 1 root users 10852 Jun 30 2000 smb.conf İzinler ls çıktısında ilk kısımda belirtilmekte ve 4 ayrı kısımdan oluşmaktadırlar. Bu kısımlar : ¾ Dosyanın tipini belirten kısım : İzin kısmının başında bulunan kısımdır. Bu bilgi kullanılarak dosyanın sade bir dosya , dizin , aygıt sürücüsü , veya link öğrenilebilmektedir. • Normal dosyalarda – işareti gözükmektedir. • Dizinler için d işareti gözükmektedir. • Karakter bazında işlem yapan aygıt sürücüleri için c işareti gözükmektedir. • Blok bazında işlem yapan karakter sürücüleri için b işareti gözükmektedir. • Başka bir dosyayı işaret eden link’ler için l işareti gösterilmektedir. ¾ Dosyanın sahibinin haklarını belirten kısım : Bu kısımda dosyanın sahibinin dosya üzerindeki hakları tanımlanır. ¾ Dosyanın grubunun Haklarını belirten kısmı : Bu kısımda dosyanın dahil olduğu grubun dosya üzerindeki hakları tanımlanır. ¾ Diğer kullanıcıların hakları : Sistemde bulunan tüm kullanıcıların dosya üzerindeki hakları tanımlanır. Kullanıcıların dosyalar üzerinde 3 farklı işlem yapabilmektedirler : ¾ Dosyayı okuma ¾ Dosyaya yazma ¾ Dosyayı çalıştırma Kullanıcıların hakları bu işlemlerden hangilerini yapmaya yetkili olduklarına göre değişmektedir. Yukarıda gösterdiğimiz ls çıktısını göz önüne alalım : -rw-r--r-- 1 root users 10852 Jun 30 2000 smb.conf İzinlerin başında bulunan – işaretinden dosyanın sıradan bir dosya olduğu anlaşılmaktadır. Kullanıcılar dosyalar üzerinde 3 farklı işlem yapabildiklerinden dosya üzerindeki hakları 3’lü gruplar olarak gösterilir. Dosyanın sahibi olan “root” kullanıcısının dosya üzerinde okuma ve yazma hakkı bulunmaktadır. Çalışma izni olmadığı için bu iznin belirtildiği kısımda – karakteri gözükmektedir. Dosyanın dahil olduğu grup olan “users” grubuna dahil kullanıcıların dosya üzerinde sadece okuma izni bulunmaktadır. Sistemdeki tüm kullanıcılar da dosya üzerinde okuma hakkına sahiptirler. Dizinler için çalıştırabilme hakkı , dizine geçip geçememek anlamına gelmektedir. Dizin için çalıştırma hakkına sahip olan bir kullanıcı o dizine geçebilmektedir. Dosya ve dizinlerin izinleri sahipleri tarafından değiştirilebilmektedir. İzinlerin değiştirilmesi amacıyla chmod komutu kullanılmaktadır. Chmod komutu 2 farklı şekilde çalıştırılabilmektedir : ¾ Yeni izinin sayısal değerinin verilmesi ile ¾ Yapılacak değişiklik sembolik olarak verilmesi ile İzinler 3 farklı grubun dosya üzerinde 3 farklı işlevden hangilerini yapabileceklerini belirtir. Her grup tek başına ele alınıp izinlerin değerleri toplanarak sayısal değerler elde edilir. rw-r--r-- iznini ele alalım : ¾ Dosyanın sahibinin hakları : rw• Verilen haklar için bir verilmeyen haklar için 0 konularak izinin 2’li düzendeki görüntüsü elde edilir. • rw- à 110 • 2’li tabandaki sayı 10’luk tabana çevrilerek izinin sayısal değeri elde edilir. 110 à 6 ¾ Grubun hakları • r-- à 100 à 4 ¾ Diğer kullanıcıların hakları • r-- à 100 à 4 ¾ rw-r--r-- à 110 100 100 à 644 Bir dosyanın kullanıcısına tüm hakları , grubuna okuma diğer kişilere ise hiç bir hak vermemek için chmod komutu aşağıdaki şekilde kullanılır. Kullanıcıya Tüm İzinler Gruba Okuma Diğer kullanıcılara hiç hak verilemesi rwx r---- 111 100 000 7 4 0 chmod 740 dosya_ismi İzinlerin ayarlanması için chmod komutuna verilecek parametreler sembolik olarak da verilebilmektedir. Sembolik gösterimde izinler üzerinde yapılacak değişiklikler semboller vasıtasıyla gösterilmektedir. Kullanıcı gruplarının sembolleri aşağıdaki gibidir : ¾ Dosyanın sahibi : u (user) ¾ Dosyanın Grubu : g (group) ¾ Diğer Kullanıcılar : o (others) İzinlerin sembolleri aşağıdaki gibidir : ¾ Okuma izini : r (read) ¾ Yazma izini : w (write) ¾ Çalıştırma izini : x (execute) Dosya üzerinde izinleri vermek için + , izinleri çıkarmak için – sembolleri kullanılmaktadır. Örnek 2.4 : Herkese okuma izni vermek Dosyanın sahibine tüm hakları vermek Diğer kullanıcıların tüm yazma ve çalıştırma hakkını kaldırmak Dosya sahibine tüm haklar , gruba okuma , diğer kullanıcılara okuma haklarını vermek chmod +r dosya_ismi chmod u+rwx dosya_ismi chmod o-wx dosya_ismi chmod u+rwx,g+r,o+r dosya_ismi 2.1.3.5. Dosya ve Dizinlerin Kopyalanması ve Taşınması Linux işletim sisteminde kopyalama işlemi cp komutu ile gerçekleştirilmektedir. Bu komutun temel kullanım şekli aşağıdaki gibidir : cp [seçenekler] kaynak hedef Kaynak ve hedef olarak belirtilen parametreler dosya veya dizin olabilir. Cp komutunun alabileceği temel parametreler aşağıdaki gibidir : ¾ -R : Bu parametre dizinleri kopyalamak için kullanılır. Herhangi bir dizin kopyalanacağı zaman bu parametre verilmediği takdirde cp komutu dizini kopyalamaz. Bu parametre sayesinde dizin ve içinde bulunun dosya ve alt dizinler hedef dizine kopyalanır. ¾ -p : Bu parametre kopyalanan dosya veya dosyaların izinlerin ve sahiplerinin korunmasını sağlamaktadır. ¾ -d : cp komutu varsayılan olarak bir linki kopyalarken linkin belirtmiş olduğu dosyayı kopyalamaktadır. Kopyalama işleminde dosyanın kendisinin yerine linkinin kopyalanması istendiği takdirde bu parametre kullanılmalıdır. ¾ -l : Bu parametre sayesinde kopyalama işlemi yerine link yaratma işlemi gerçekleştirilir. Bu sayede kopyalanan dosya değiştiği takdirde diğer kopyası da değişecektir. Örnek 2.5 : [root@seawolf /tmp]# ls -l ders_ornek -rw-r--r-- 1 root root 95 Aug 1 14:21 ders_ornek [root@seawolf /tmp]# cp ders_ornek ders_ornek_kopya [root@seawolf /tmp]# cp -l ders_ornek ders_ornek_link [root@seawolf /tmp]# ls -l ders_ornek* -rw-r--r-- 2 root root 95 Aug 1 14:21 ders_ornek -rw-r--r-- 1 root root 95 Aug 1 14:22 ders_ornek_kopya -rw-r--r-- 2 root root 95 Aug 1 14:21 ders_ornek_link [root@seawolf /tmp]# echo TTT >> ders_ornek [root@seawolf /tmp]# ls -l ders_ornek* -rw-r--r-- 2 root root 99 Aug 1 14:23 ders_ornek -rw-r--r-- 1 root root 95 Aug 1 14:22 ders_ornek_kopya -rw-r--r-- 2 root root 99 Aug 1 14:23 ders_ornek_link [root@seawolf /tmp]# • -s : Bu parametre ile kopyalama işlemi yerine sembolik link atma işlemi yapılmaktadır. [root@seawolf /tmp]# cp -s ders_ornek ders_ornek_sembolik [root@seawolf /tmp]# ls -l ders_ornek* -rw-r--r-- 2 root root 99 Aug 1 14:23 ders_ornek -rw-r--r-- 1 root root 95 Aug 1 14:22 ders_ornek_kopya -rw-r--r-- 2 root root 99 Aug 1 14:23 ders_ornek_link lrwxrwxrwx 1 root root 10 Aug 1 14:55 ders_ornek_sembolik -> ders_ornek [root@seawolf /tmp]# • -f : Bu parametre sayesinde kullanıcıya hiç bir soru sorulmamaktadır. Eğer hedef dosya sistemde mevcut ise bu parametre ile ilk olarak mevcut dosya silinir , daha sonra kopyalama işlemi gerçekleştirilir. • -i : Bu parametre sayesinde kopyalama işleminin hedef dosyasının mevcut olduğu durumlarda yapılacak işlem kullanıcıya sorulmaktadır. • -u : Bu parametre kullanıldığı takdirde kopyalanan dosya hedef dosyadan daha yeni ise kopyalama işlemi gerçekleştirilmektedir. • -a : Bu parametre –dpR parametrelerine denktir. Linux işletim sisteminde taşıma işlemi mv komutu ile gerçekleştirilmektedir. Bu komut aynı zamanda dosyanın isminin değiştirilmesi içinde kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir : mv [seçenek] kaynak hedef Kaynak ve hedef olarak belirtilen parametreler dosya veya dizin olabilmektedirler. Mv komutu seçenek olarak f,i,u parametrelerini kabul etmektedir. Bu parametrelerin işlevleri cp komutundaki işlevleri ile aynıdır. Örnek 2.6 : [root@seawolf /tmp]# mkdir ders_deneme [root@seawolf /tmp]# touch ders_mv_deneme [root@seawolf /tmp]# ls -l ders_mv_deneme -rw-r--r-- 1 root root 0 Aug 1 15:04 ders_mv_deneme [root@seawolf /tmp]# mv ders_mv_deneme ders_mv_deneme_1 [root@seawolf /tmp]# ls -l ders_mv_deneme ls: ders_mv_deneme: No such file or directory [root@seawolf /tmp]# ls -l ders_mv_deneme_1 -rw-r--r-- 1 root root 0 Aug 1 15:04 ders_mv_deneme_1 [root@seawolf /tmp]# mv ders_mv_deneme_1 ders_deneme [root@seawolf /tmp]# ls -l ders_deneme/ total 0 -rw-r--r-- 1 root root 0 Aug 1 15:04 ders_mv_deneme_1 [root@seawolf /tmp]# mv ders_deneme ders_deneme_1 [root@seawolf /tmp]# ls -l ders_deneme ls: ders_deneme: No such file or directory [root@seawolf /tmp]# ls -l ders_deneme_1/ total 0 -rw-r--r-- 1 root root 0 Aug 1 15:04 ders_mv_deneme_1 [root@seawolf /tmp]# mkdir ders_deneme_2 [root@seawolf /tmp]# mv ders_deneme_1 ders_deneme_2 [root@seawolf /tmp]# ls -lR ders_deneme_2/ ders_deneme_2/: total 4 drwxr-xr-x 2 root root 4096 Aug 1 15:05 ders_deneme_1 ders_deneme_2/ders_deneme_1: total 0 -rw-r--r-- 1 root root 0 Aug 1 15:04 ders_mv_deneme_1 2.1.3.6. Çalışma Dizininin Değiştirilmesi ve Bulunulan Çalışma Dizininin Öğrenilmesi Linux işletim sisteminde diğer işletim sistemlerinde de olduğu gibi bulunulan dizinin değiştirilmesi için cd komutu kullanılmaktadır. Cd ayrı bir program olarak bulunmamaktadır. Cd komutu kabuk programına gömülmüş olarak bulunur. Cd komutunun temel kullanım şekli aşağıdaki gibidir : cd [geçilecek_dizin] Geçilmesi istenen dizin parametresi verilmediği takdirde kullanıcının ev dizinine geçilir. Geçilmesi istenen dizin istendiği takdirde tam yol olarak, istendiği takdirde de göreceli yol olarak verilebilir. Tam yol ile belirtilen geçilmesi istenen dizinin kök dizininden itibaren bulunduğu yerin belirtilmesidir.(Örnek : /usr/bin , /home/halil). Göreceli yol ise içinde bulunulan dizinden geçilmesi istenen dizine gidilmesi için gereken yolu belirtir. Örnek olarak /usr dizininde iken /usr/bin dizinine geçmek için “cd bin” komut verildiğinde göreceli yol tanımlanmış olur. “cd /usr/bin” komutu kullanıldığında ise tam yol tanımlanmış olur. Geçilmek istenen dizin parametresi olarak cd komutu aşağıdaki özel karakterleri de kabul etmektedir (Bu parametreler dizinler için referanslar olduklarından diğer komutlar ile de kullanılabilir) : ¾ . : Bulunulan dizini referans eder. ¾ .. : Bir üst dizini referans eder. ¾ ~[kullanıcı_ismi] : Belirtilen kullanıcının ev dizinini referans eder. Kullanıcı ismi kullanılmadığı takdirde geçerli olan kullanıcının ev dizini referans edilir. ¾ - : Bir önce bulunulan dizini referans eder. Bu parametre sadece cd komutunda geçerlidir. İçinde bulunulan dizini öğrenmek için pwd komutu kullanılır. Bulunulan dizini öğrenmek için sadece “pwd” yazılması yeterlidir. Örnek 2.7: [root@atlas /root]# pwd /root [root@atlas /root]# cd ~halil [root@atlas halil]# pwd /users/bim/halil [root@atlas halil]# cd [root@atlas /root]# pwd /root [root@atlas /root]# cd .. [root@atlas /]# pwd / [root@atlas /]# cd . [root@atlas /]# pwd / [root@atlas /]# cd [root@atlas /root]# pwd /root [root@atlas /root]# 2.1.3.7. Dosyalara Kısayol-Bağ (Link)Tanımlanması Dosyalara farklı isimler veya farklı dizinlerden erişmek için dosyalara kısayollar tanımlanmaktadır. Kısayollar Unix türevlerinde bağ dosyaları olarak geçmektedir. Bağ dosyası yaratmak için ln komutu kullanılmaktadır. İki farklı link çeşidi bulunmaktadır. Bunlar hard-link ve sembolik (soft) link’tir. Hard-link ile yaratılmış bir bağ dosyası , diğer dosyanın tam anlamıyla bir kopyasını içerir. Dosyalardan orjinal olan silinse bile link atılmış dosyalar aynı içeriği korumaya devam ederler. Sembolik link ile yaratılmış bağ dosyaları tam anlamıyla kısayol olarak kullanılırlar. İşlevleri orjinal dosya için yönlendirme yapmaktır. Örnek 2.8 : bash-2.04$ touch ln_ornek bash-2.04$ echo "LN için örnek " >ln_ornek bash-2.04$ ln ln_ornek ln_ornek_hard bash-2.04$ ln -s ln_ornek ln_ornek_soft bash-2.04$ ls -la total 16 drwxr-xr-x 2 halil users 4096 Aug 10 04:02 . drwxrwxrwt 3 root root 4096 Aug 10 04:02 .. -rw-r--r-2 halil users 15 Aug 10 04:02 ln_ornek -rw-r--r-2 halil users 15 Aug 10 04:02 ln_ornek_hard lrwxrwxrwx 1 halil users 8 Aug 10 04:02 ln_ornek_soft -> ln_ornek bash-2.04$ cat ln_ornek_soft LN için örnek bash-2.04$ cat ln_ornek_hard LN için örnek bash-2.04$ rm -f ln_ornek bash-2.04$ cat ln_ornek_soft cat: ln_ornek_soft: No such file or directory bash-2.04$ cat ln_ornek_hard LN için örnek bash-2.04$ ls -la total 12 drwxr-xr-x drwxrwxrwt -rw-r--r-lrwxrwxrwx bash-2.04$ 2 halil users 3 root root 1 halil users 1 halil users 4096 Aug 10 04:02 . 4096 Aug 10 04:02 .. 15 Aug 10 04:02 ln_ornek_hard 8 Aug 10 04:02 ln_ornek_soft -> ln_ornek 2.1.3.8. Dosyaların İçeriklerinin Görülmesi Linux İşletim sisteminde hemen hemen her türlü dosya tipi için bir gösterici bulunmaktadır. Resim dosyaları için gimp , ee mp3 dosyaları için xmms,mpg123 gibi programlar kullanılabilmektedir. Metin tabanlı dosyaların içeriğinin görüntülenmesi için cat komutu kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir. cat [seçenekler] dosya_ismi [dosya_ismi_2,...] cat programının kabul ettiği parametreler aşağıdaki gibidir : ¾ -t : Metinin içinde geçen tab karakterini ^I olarak göstermeyi sağlayan parametredir. ¾ -e : Satır sonlarının $ karakteri olarak gösterilmesini sağlayan parametredir. ¾ -A: -e ve –t parametrelerinin beraber kullanılması ile eşdeğerdir. ¾ -n : Her satırın numaralandırılmasını sağlayan parametredir. Metin tabanlı dosyaların içeriklerinin görüntülenmesi için more komutu da kullanılabilmektedir.More komutunun diğer bir özelliği ise dosyanın içeriğini sayfa sayfa olarak göstermesidir. Her sayfa sonunda gösterme işleminin devamı için kullanıcının ENTER veya BOŞLUK tuşlarına basması gerekmektedir. BOŞLUK tuşu bir sayfa ileri , ENTER tuşu bir satır ileri gitmek için kullanılır. Aynı metin içinde gezinmek için ok tuşları da kullanılabilir. Metin içinde arama yapılmak istendiği takdirde “ / ” karakteri ile arama moduna geçilir ve bulunması istenen kelime yazılır. Kelime bulunduktan sonra , aynı kelimenin bir sonraki yerini bulmak için “n” tuşuna basılması yeterlidir. More ile aynı işi yapabilen less programı da Linux işletim sisteminde bulunmaktadır. More programından farklı birkaç gelişmiş özelliği bulunmaktadır. Bunlardan en önemlisi başlangıçta tüm dosyayı okumak zorunda olmayışıdır. Bu özellik sayesinde çalıştırılma esnasında performans artışı görülmektedir. Ayrıca hafıza kullanımı düşmektedir. 2.1.3.9. Dosyaların ve Dizinleri Aramak Linux dosya sisteminde iç içe geçmiş dizinler arasında istenen dosya ve dizinlerin bulunması güç bir olay olabilmektedir. find programı belli kriterlere göre dosya ve dizin arama işlemlerinde kullanılmaktadır. Find programının temel yapısı aşağıdaki gibidir : find [aramaya_baslanacak_dizin] [arama_kriterleri] find ile kullanılabilecek belli başlı arama kriterleri aşağıdaki gibidir : ¾ -name exp : İsim ile arama yapmak için kullanılır. Dosyanın tam ismi verilebileceği gibi , * ve ? gibi yer tutucu karakterlerde kullanılabilir. ¾ -user kullanıcı : İstenilen kullanıcıya ait dosyaların bulunması için kullanılır. ¾ -group grup : Belirtilen gruba ait dosyaların bulunması için kullanılır. ¾ -perm izin : Belirtilen izine sahip dosyaların bulunması için kullanılır. ¾ -newer dosya1 : Belirtilen dosyadan daha yeni dosyaların bulunması için kullanılır. ¾ -size [+|-] büyüklük : Belirtilen büyüklüğe sahip dosyaların bulunması için kullanılır. ¾ -anewer dosya1 : Belirtilen dosya yapılan erişimden daha sonra erişilmiş dosyaları bulmak için kullanılır. ¾ -amin [+|-] süre : Süre ile belirtilen dakika önce erişilen dosyaları bulmak için kullanılır. ¾ -atime [+|-] süre : Süre ile belirtilen gün önce erişilen dosyaları bulmak için kullanılır. ¾ -cmin [+|-] süre : Süre ile belirtilen dakika önce statüsü değiştirilen dosyaları bulmak için kullanılır. ¾ -ctime [+|-] süre : Süre ile belirtilen gün önce statüsü değiştirilen dosyaları bulmak için kullanılır. ¾ -links [+|-] sayı : Sayı ile belirtilen miktarda hard-link’e sahip dosyaları bulmak için kullanılır. ¾ -mmin [+|-] süre : Süre ile belirtilen dakika önce değiştirilmiş dosyaları bulmak için kullanılır. ¾ -mtime [+|-] süre : Süre ile belirtilen gün önce değiştirilmiş dosyaları bulmak için kullanılır. ¾ -nouser : Hiç bir tanımlı kullanıcıya ait olmayan dosyaları bulmak için kullanılır. ¾ -nogrup : Hiç bir tanımlı gruba ait olmayan dosyaları bulmak için kullanılır. ¾ -regex patern : İsmi patern ile belirtilen regular expression’a uyan dosyaları bulmak için kullanılır. Dikkat edilmesi gerek nokta regular expression dosya ismi üzerinde değil tam yol bilgisi üzerinde denenmektedir. ¾ -type tip : Aramada bulunması istenilen dosyanın tipini belirlemek için kullanılır. Tip olarak kullanabilecekler aşağıdaki gibidir : • b : Blok aygıt dosyası • c : Karakter aygıt dosyası • d : Dizin • f : Normal dosya • l : Sembolik link. • s : Soket • p : Named Pipe Sayısal argüman içeren parametreler için arama kriterleri aşağıdaki şekilde değiştirilebilir : ¾ + sayı : Sayıdan daha büyük ¾ - sayı : Sayıdan daha küçük ¾ sayı : Tam olarak sayının kendisi Örnek olarak “–mtime -8 “ kriteri ile arama yapıldığında “8 günden daha kısa süre içinde değişikliğe uğramış” dosyalar bulunacaktır. Find programı sadece dosya bulmak için kullanılmamaktadır. Bulunan dosyalar üzerinde işlem yapma yeteneğine de sahiptir. Bulunan dosyalar üzerinde yapılabilecek temel işlemler ve arama kriterine eklenmesi gereken parametreler aşağıdaki gibidir : ¾ -exec komut ; : Bulunan dosya için komut ile belirtilen komutu çalıştırır. Komut ile belirtilen argümanda bulunan {} işareti bulunan dosya ismi ile değiştirilir. ¾ -ok komut ; : Exec parametresinden tek farkı komut çalıştırılmadan önce kullanıcıdan onay istemesidir. ¾ -ls : Dosya ile ilgili belirli özellikleri listeler (ls –dils) ¾ -fls : ls çıktısını standart çıkış yerine bir dosyaya aktarılmasını sağlar. find komutu ile birlikte ayrıca aşağıdaki mantıksal öperatörler arama kriterlerini birleştirmek için kullanılabilir : ¾ -a : ve ¾ -o : veya ¾ \! : değil Örnek 2.9 : /etc dizini altında 4 günden daha kısa sürede değiştirilmiş dosyaları bulmak için : [root@seawolf /etc]# find -mtime -4 -ls |more 195841 4 drwxr-xr-x 36 root root 4096 Aug 8 07:42 . 65518 4 drwxr-xr-x 2 root root 4096 Aug 6 17:58 ./logrotate.d 198772 4 -rw-r--r-- 1 root root 199 Aug 8 07:42 ./mtab 198752 4 -rw------- 1 root root 60 Aug 8 07:41 ./ioctl.save 198748 4 -rw-r--r-- 1 root root 78 Aug 8 07:43 ./issue 198759 4 -rw-r--r-- 1 root root 77 Aug 8 07:43 ./issue.net [root@seawolf /etc]# stat ./issue File: "./issue" Size: 78 Blocks: 8 Regular File Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Device: 802 Inode: 198748 Links: 1 Access: Wed Aug 8 09:12:56 2001 Modify: Wed Aug 8 07:43:17 2001 Change: Wed Aug 8 07:43:17 2001 [root@seawolf /etc]# date Fri Aug 10 16:45:06 EEST 2001 Örnek 2) İsmi ders_find_ornek ile başlayan dosyaları bulmak için [root@seawolf /]# find /tmp -name ders_find_ornek* /tmp/find_ornek/ders_find_ornek_1 /tmp/find_ornek/ders_find_ornek_2 /tmp/find_ornek/ders_find_ornek_3 /tmp/find_ornek/ders_find_ornek_4 /tmp/find_ornek/ders_find_ornek_5 Örnek 2.10: İsmi ders_find_ornek ile başlayan dosyaları bulup silmek için : [root@seawolf /]# ls -l /tmp/find_ornek/ total 0 -rw-r--r-- 1 root root 0 Aug 10 16:47 ders_find_ornek_1 -rw-r--r-- 1 root root 0 Aug 10 16:47 ders_find_ornek_2 -rw-r--r-- 1 root root 0 Aug 10 16:47 ders_find_ornek_3 -rw-r--r-- 1 root root 0 Aug 10 16:47 ders_find_ornek_4 -rw-r--r-- 1 root root 0 Aug 10 16:47 ders_find_ornek_5 [root@seawolf /]# find /tmp -name ders_find_ornek* -exec rm -f {} \; [root@seawolf /]# ls -l /tmp/find_ornek/ total 0 [root@seawolf /]# Örnek 2.11 : /tmp altında boyu 95 byte veya ismi ders_find ile başlayanları bulmak için : [root@seawolf /]# find /tmp/ -size 95c -o -name ders_find* /tmp/ders_ornek_kopya /tmp/find_ornek/ders_find_ornek_5 /tmp/find_ornek/ders_find_ornek_4 /tmp/find_ornek/ders_find_ornek_3 [root@seawolf /]# ls /tmp/ders_ornek_kopya /tmp/ders_ornek_kopya [root@seawolf /]# Parametre örnekleri : -name “abc*” : abc ile başlayan arama ¾ -name “[a-k]95” : ismi a95,b95 gibi olan dosya arama ¾ -perm 755 : erişimi 755 olan dosya arama ¾ -size 10 : diskteki alanı 10 Blok olan dosyalar ( 1 Blok = 512 kByte ) ¾ -size +100 : 51 kByte’tan büyük dosyalar ¾ -size –45 : 45 kByte’tan küçük dosyalar ¾ -ctime 3 : 3 gün önce değişikliğe uğramış dosyalar ¾ -ctime +8 : 8 günden daha uzun bir süre önce değişikliğe uğramış olan dosyalar ¾ -ctime –8 : 8 günden daha kısa bir süre önce değişikliğe uğramış olan dosyalar ¾ -mtime 3 : 3 gün önce değişikliğe uğramış dosyalar ¾ -mtime +8 : 8 günden daha uzun bir süre önce değişikliğe uğramış olan dosyalar ¾ -mtime –8 : 8 günden daha kısa bir süre önce değişikliğe uğramış olan dosyalar ¾ -atime 3 : 3 gün önce erişilmiş dosyalar ¾ -atime +8 : 8 günden daha uzun bir süre önce erişilmiş dosyalar ¾ -atime –8 : 8 günden daha kısa bir süre önce erişilmiş dosyalar $ find /home –name “*.temp” –a -size +100 –print adı *.tmp kalıbına uyan ve büyüklüğü 100 bloktan fazla olan dosyaları bulur. 2.1.3.10. Pardus’ta Dosya ve Dizin İşlemleri 2.1.3.10.1. Dosya Yöneticisi : Konqueror Dosya yöneticisi, birçok dosya ve dizin işlemlerinin yapılmasını sağlayan programa denir. Pardus'ta kullanılan dosya yöneticisinin adı Konqueror'dır. Konqueror, dosyalarla çalışmanızı ve dosyaları yönetmenizi oldukça kolaylaştırır. KDE projesi kapsamında geliştirilmekte olan Konqueror, aynı zamanda bir web tarayıcısı olarak da kullanılabilir. Şimdi, bir dosya yöneticisi olarak Konqueror'dan ve Konqueror'ın temel kullanımından bahsedelim. Konqueror'ı birkaç değişik yolla başlatabilirsiniz: ¾ Masaüstündeki ev simgesinden ¾ Pardus menüsündeki “Kişisel Dosyalar (Başlangıç)”'tan ¾ Pardus menüsündeki “Komut Çalıştır...” bölümüne “Konqueror” yazarak Konqueror'da en üstte diğer çoğu uygulamadaki gibi menü çubuğu bulunur. Bu çubuk, açılır menülerin adlarını içerir. Bu adlara tıklayarak menüleri açabilir yine aynı şekilde tıklayarak kapatabilirsiniz. Menüleri açmak için klavyeyi de kullanabilirsiniz. Bunun için, Alt tuşuna basılı tutarak, menü çubuğundan açmak istediğiniz menünün adındaki altı çizgili harfe basmanız yeterlidir. Örneğin, Alt+K bileşimi, ilk menü olan “Konum” menüsünü açar. Menü çubuğunun altında, simgelerin olduğu çubuğa ise araç çubuğu adı verilir. Bu çubukta, en sık kullanılan işlemlerin simgeleri bulunur. Bu simgeleri kullanmak için fareyle sol tıklamanız yeterli olacaktır. Simgelerin üstüne imleçle geldiğinizde açılan ipuçlarından simgeyle ilgili bilgi alabilirsiniz. Bazı simgelerin sağ alt köşesinde küçük bir üçgen görünür. İmleci bu tip simgelerin üstünde basılı tutarsanız karşınıza o simgeyle ilgili bir menü çıkar. Bu üçgenler bunu belirtmek üzere konulmuştur. Araç çubuğuna sağ tıklayınca karşınıza araç çubuğu menüsü çıkar. Bu menüyü araç çubuğunun yerini değiştirmek, yeni simgeler eklemek, Konqueror'a yeni çubuklar eklemek için kullanabilirsiniz. Araç çubuğun altında konum çubuğu bulunur. Bu çubuk gösterilmekte olan dosya/dizini gösterir. Buraya bir dosya ya da dizin yolu girerek girdiğiniz dosya/dizini görüntüleyebilirsiniz. Bu çubukta en solda bulunan “x” işaretine basarak çubuğu temizleyebilirsiniz. Konum çubuğundan sonra gelen ikiye bölünmüş alan, bir dizinin/dosyanın içeriğinin gösterildiği ana bölümdür. Sol taraftan bir dizine seçerek, ya da sağ taraftan bir dosya/dizine çift tıklayarak içeriğini görüntüleyebilirsiniz. En altta ise durum çubuğu bulunur. Bu çubuk içeriği gösterilen dosya ya da dizinle ilgili ek bilgiler verir. İmleçle sağ taraftaki bir dosya/dizinin üzerine gittiğinizde durum çubuğu imlecin altındaki dosya/dizinle ilgili bilgi verir. 2.1.3.10.1.1. Konqueror İle Dosya Silme Dosyaları, çöpe atarak ya da doğrudan silebilirsiniz fakat çöpe atarak silmek en güvenli yoldur, çünkü bir hata yaptığınızı fark edip sildiğinizi geri almak istediğinizde bunu yapma imkanınız vardır. Bir dosya ya da dizini çöpe atmanın en kolay yolu üzerine sağ tıklayıp, “Çöp Kutusuna At” seçeneğini seçmektir. Aynı şeyi, dosya ya da dizine tıklayıp, “Düzen” menüsünden “Çöp Kutusuna At”'ı seçerek ya da klavyedeki “Delete” tuşuna basarak yapabilirsiniz. Seçili bir nesneyi doğrudan silmek içinse “Shift+Delete” tuş bileşimini kullanarak, ya da “Düzen” menüsünden “Sil”'i seçerek yapabilirsiniz. Bunlara ek olarak, bir dosya ya da dizini silebilmeniz için gerekli izinlere sahip olmanız gerekir. 2.1.3.10.1.2. Konqueror İle Dosya Kopyalama ve Taşıma Dosya ya da dizinleri aşağıdaki adımları takip ederek kopyalayabilirsiniz. ¾ ¾ ¾ Kopyalama işlemini yapmak için öncelikle kopyalamak istediğiniz dizin ya da dosyanın üzerine sağ tıklayın ve “Kopyala”'yı seçin. Aynı işlemi dosya ya da dizin seçiliyken Control+C tuş bileşimini kullanarak ya da “Düzen” menüsünden “Kopyala”'yı seçerek de yapabilirsiniz. Dosya veya dizini kopyalamak istediğiniz yere, ana bölümün sol tarafını veya konum çubuğunu kullanarak ulaşın. Ana bölümün sağ tarafındaki alanda, boş bir yere sağ tıklayarak “Yapıştır”'ı seçin. Aynı işlemi Control+V tuş bileşimini ya da “Düzen” menüsündeki “Yapıştır” seçeneğini kullanarak yapabilirsiniz. Taşıma işlemi de benzer bir şekilde yapılabilir, yalnızca ilk adımda, “Kopyala” yerine “Kes”'i seçin. Bunun için Control+X tuş bileşimini de kullanabilirsiniz. Kopyalama veya taşıma işlemini sürükleyip bırakma yoluyla da gerçekleştirebiliriz. Bunun için, kopyalamak/taşımak istediğiniz nesneye tıklayıp, farenin tuşunu bırakmadan kopyalamak/taşımak istediğiniz yere getirin ve farenin tuşunu bırakın. Konqueror size kopyalamak mı yoksa taşımak mı istediğinizi soracaktır. Hedef dizin nesnenin bulunduğu dizinden uzaksa bunun çözümü var: ¾ Kopyalamak/taşımak istediğiniz dosya/dizinin olduğu yerde, durum çubuğuna sağ tıklayın ve “Görünümü Alt/Üst Şeklinde Böl”'ü seçin. Bu işlemin kısayolu olarak Control+Shift+T bileşimini kullanabilirsiniz. Bunu yaptığınız zaman Konqueror bulunduğunuz dizinin görünüşünün bir kopyasını çıkartır. Ardından yine sol tarafı kullanın ve hedef dizine gidin. Şimdi dosyanızı sürükleyip bırakarak kopyalayabilir ya da taşıyabilirsiniz. Açtığınız ek bölümü de Control+Shift+R ile kapatabilirsiniz. ¾ Kopyalamak istediğiniz nesneye sağ tıklayın. Altta, yanında küçük siyah üçgen bulunan “Kopyala” seçeneğine girin. Açılacak menüden hedef dizini seçebilirsiniz. Taşıma işi de aynı şekilde gerçekleşir fakat onun için “Kopyala” yerine “Taşı” seçeneğini seçin. Eğer, hedef dizinde kopyaladığınız ya da taşıdığınız dosya/dizinle aynı isimden bir tane daha varsa Konqueror size ne yapılması gerektiğini soracaktır. 2.1.3.10.1.3. Konqueror İle Birden Fazla Dosya Seçilmesi Bazı durumlarda birden çok dosya ya da dizinler ilgili işlemler yapmak isteyebilirsiniz. Örneğin png ile biten, ya da içinde text geçen tüm dosyaları seçmek istediğinizde, Control++ kısayolunu kullanabilirsiniz. Açılan pencerede, “*png” png ile biten dosyaları, “*text*” ifadesi de içinde text geçen dosyaları seçmenizi sağlar. İsterseniz Control+* kısayoluyla seçilen dosyaların dışındakilerin seçilmesini sağlayabilirsiniz. Bu tip ayrıntılı seçme işlemlerini, “Düzenle” menüsündeki “Seçimi Tersini Çevir” bölümünden yapabilirsiniz. Birden fazla dosya/dizini seçmek için fareyi de kullanabilirsiniz. Bunu yapmak için, klavyede Kontrol tuşuna basılı tutarken, fareyle birden fazla dosya/dizini seçebilirsiniz. 2.1.3.10.1.4. Konqueror İle Birden Fazla Dosya Seçilmesi Konqueror'ı kullanarak yeni dosya, dizin veya kısayollar oluşturabilirsiniz. Bunun için oluşturmak istediğiniz yere gidin ve ardından sağ tarafta boş bir alana sağ tıklayıp “Yeni Oluştur” seçeneğini seçin. Açılan menüden, Dizin... Yeni bir dizin oluşturmak için kolay bir yoldur. Metin dosyası... Boş bir metin dosyası oluşturur. Bunu seçince dosyanın ismi istenir. HTML dosyası... Boş bir html dosyası oluşturur. (html, head, body etiketlerini içerir) Konuma (URL) bağlantı... Bilgisayarınızdaki herhangi bir dosya/dizine ya da bir internet sitesine kısayol oluşturur. Kısayolu “~/Desktop” konumuna oluşturursanız, kısayolun simgesi masaüstünde çıkar. Uygulamaya bağlantı... Yüklü herhangi bir uygulamanın yolu belirtilerek, o uygulamaya kısayol oluşturulur. Kısayolu “~/Desktop” konumuna oluşturursanız, kısayolun simgesi masaüstünde çıkar. Aygıta bağlantı Bilgisayarınızdaki herhangi bir aygıta kısayol oluşturur. 2.1.3.10.1.5. Konqueror İle Dosya İsimlerini ve Okuma/Yazma İzinlerini Değiştirme Bir dosya ya da dizinin ismini değiştirmenin en kolay yolu üzerine sağ tıklayıp, “Yeniden İsimlendir” seçeneğini seçmek ya da dosya/dizin seçiliyken F2 tuşuna basmaktır. Dosya ya da dizinlerin okuma yazma izinlerini değiştirebilirsiniz. Bunun için, izinlerini değiştirmek istediğiniz dosya/dizine sağ tıklayıp “Özellikler” seçeneğini seçin. Burada ilk çıkan ekrandan, dosya/dizinin ismini ve simgesini değiştirebilirsiniz. “İzinler” sekmesindense dosya/dizinin sahibini ve okuma/yazma izinlerini değiştirebilirsiniz. 2.1.4. Temel Yazıcı İşlemleri Linux işletim sistemi diğer tüm modern işletim sistemleri gibi dosya içeriklerinin yazıcıdan çıktı olarak alınmasını desteklemektedir. Linux’ta yazıcı kullanımı için lpr (Red Hat 7.x için LPRng) paketinin kurulmuş olması gerekmektedir. Kullanıcıların yazıcı kullanımında yapabilecekleri 3 farklı işlem bulunmaktadır : ¾ Yazıcı kuyruğuna çıktıyı gönderme ¾ Yazıcı kuyruğuna göndermiş olduğu bir çıktıyı kuyruktan kaldırma ¾ Yazıcı kuyruğunun durumunu görme 2.1.4.1. Printconf Programı İle Yazıcı Tanıtımı Red Hat Linux ile birlikte yazıcı yönetimi için printconf programı gelmektedir. Bu program sisteme yazıcı eklemek , var olan yazıcılar üzerinde işlem yapmak gibi işlevler için kullanılmaktadır. Program çalıştırıldığında Resim 2.1’deki ekran gözükmektedir. Bu ekranda sistem de varolan yazıcılar görülebilmektedir. Resim 2.1 : Printconf ekranı. Yeni bir yazıcı eklemek istendiğinde kullanıcının karşısına Resim 2.2’de bulunan “Edit Queue” ekranı çıkacaktır. Bu ekranın sol kısmı yazıcı tanıtımı için gerekli adımların belirtildiği ve bu adımlar arasında geçiş yapmak için kullanılan bir menü içermektedir. Ekranın sağ kısmı ise bulunulan adımda yapılabilecek ayarları göstermektedir. İlk adım olan yazıcı kuyruğuna izin verme adımında “Queue Name” ile belirtilen alana kuyruğun isminin yazılması yeterli olacaktır. İstendiği takdirde aynı yazıcı kuyruğuna birden fazla isim verilebilmektedir. Resim 2.2 : İkinci adımda yazıcı kuyruğunun tipi ayarlanmaktadır. Kuyruğun tipine göre yapılması gereken ayarlar farklıdır. 5 farklı kuyruk tipi desteklenmektedir. Bunlar : Yerel Yazıcı : Bu kuyruk tipi yazıcı bilgisayara direk bilgisayara bağlı ise kullanılmaktadır. Bu kuyruk tipi seçildiğinde Resim 2.3’deki ekran gelmektedir. Bu durumda girilmesi gereken tek ayar yazıcının bağlı olduğu arabirimdir. Resim 2.3: Başka Bir Unix Makineye Tanıtılmış Yazıcı (UNIX Queue) : Kullanılacak yazıcı başka bir unix makineye tanıtılmış ise bu kuyruk tipi kullanılmaktadır. Yapılması gereken ayarlar yazıcının tanıtıldığı sunucu ve sunucu üzerinde tanımlı olan kuyruk ismidir. Resim 2.4’de bu bilgilerin girişi için kullanılan ekran görülmektedir. Resim 2.4 : Resim 2.5 : Windows Makineye Tanıtılmış Yazıcı (Windows Printer) : Herhangi bir Windows işletim sistemine sahip makineye tanıtılmış ve paylaşıma açılmış bir yazıcı kullanılmak istendiğinde bu kuyruk tipi kullanılmalıdır. Bu seçeneğin kullanılabilmesi için sistemde Samba istemci (samba-client) paketinin kurulu olması gerekmektedir. Gerekli ayarların yapılabilmesi için Resim 2.5’deki ekran kullanılmaktadır. Windows makinede bulunan paylaşımın isimi “Share” , windows makinenin IP adresi “Host IP” ,bağlantıda kullanılacak kullanıcı ismi “User” , şifre “Password” , bağlantıda kullanılan kullanıcının dahil olduğu çalışma grubu veya ekti alanı (domain) “Workgroup” alanına girilmelidir. Novell Makineye Tanıtılmış Yazıcı (Novell Printer) : Novell işletim sistemine sahip bir makineye tanıtılmış olan bir yazıcının sisteme tanıtılmasında bu kuyruk tipi kullanılmalıdır. Bu seçeneğin kullanılabilmesi için mars-nve paketinin kurulu olması gerekmektedir. Resim 2.6’da yapılası gereken ayarların bulunduğu ekran gözükmektedir. Resim 2.7 : JetDirect Yazıcı : Ağ üzerinde bulunan yazıcılar için kullanılan kuyruk tipidir. Resim 2.7’de yapılması gereken ayarların bulunduğu ekran görülmektedir. Resim 2.7 : Üçüncü adım tanıtılacak yazıcı için kullanılacak filtrenin seçilmesidir. Filtreler yazıcı sürücüleri olarak da düşünülebilir Son adımda istendiği takdirde filtre için geçerli bir kaç seçenek ayarlanabilmektedir. Resim 2.8 : 2.1.4.2. Yazıcı Kuyruğuna Çıktı Gönderme Herhangi bir dosyayı yazıcıdan çıktı olarak alabilmek için lpr komutu kullanılmaktadır. Lpr komut , gönderilen iş hakkında bilgi toplayıp bir kontrol dosyası yaratır ve bu kontrol dosyası ile birlikte bastırılacak dosyaları yazıcı sunucusuna gönderir. Lpr komutu temel olarak aşağıdaki yapıya sahiptir : lpr [seçenekler] dosya_ismi Lpr komutu ile kullanılabilecek temel parametreler aşağıdaki gibidir : ¾ -P yazıcı : Bu parametre ile işin gönderilmek istendiği yazıcı kuyruğu belirtilir. Bu parametre kullanılmadığı takdirde printcap dosyasındaki ilk yazıcı kullanılır. ¾ -K kopya_sayısı (-# kopya_sayısı) : Bu parametre ile aynı işten kaç kopya alınacağı belirtir. Bu parametre verilmediği takdirde tek kopya alınmaktadır. ¾ -h : Gönderilen çıktıda başlık bilgisinin bulunmasını iptal eder. ¾ -J iş_ismi : Gönderilen işe isim vermek için kullanılabilir. Bu parametre kullanılmadığı takdirde gönderilen dosya ismi iş ismi olarak atanır. Eğer çıktı dosya yerine standart girişten okunuyor ise iş ismi olarak STDIN atanır. ¾ -C sınıf : Yazıcı kuyruğuna gönderilen işin öncelik derecesini belirtir. Sınıf ile belirtilen değer A ile Z arasında olmak zorundadır. A en düşük önceliği , Z en yüksek önceliği belirtir. Bu parametre verilmediği takdirde iş A öncelik değerine sahiptir. Örnek 2.12 : [root@printserv /root]# lpr -Ptest x.c [root@printserv /root]# lpq -Ptest Printer: ccmopier-test@printserv 'test' Queue: no printable jobs in queue Holding: 1 held jobs in queue Server: no server active Status: job 'halil@AONTWS4044+932' removed at 13:01:45.589 Filter_status: (of) done at 13:01:44.445 Rank Owner/ID Class Job Files Active root@printserv+16901 A 16901 x.c Size 3748 Time 15:04:28 2.1.4.3. Yazıcı Kuyruğunun Görülmesi Yazıcı kuyruğunda bulunan işleri görmek için lpq komutu kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir: lpq [seçenekler] Lpq ile kullanılan temel parametreler aşağıdaki gibidir : ¾ -Pyazıcı : Görülmesi istenen yazıcı kuyruğunu belirtir. Bu parametre veya –a parametresi kullanılmadığı takdirde printcap dosyasındaki ilk yazıcı kuyruğu gösterilir. ¾ -a : Bu parametre ile tüm yazıcı kuyruklarının durumu gösterilir. Örnek 2.13 : [root@printserv /root]# lpq -Ptest Printer: danisma@printserv Queue: no printable jobs in queue Holding: 26 held jobs in queue Server: no server active Status: job 'kindapu@ATOLYE+20' removed at 15:02:57.620 Filter_status: (of) done at 15:02:50.110 Rank Owner/ID Class Job Files Size Time hold Admin@HOST+8 A 8 Test Page 46702 11:44:26 hold hcatak@HOST2+12 A 12 Bilgisaya.doc 109735 15:42:12 hold aerdogan@160+15167 A 0 1E2008.xls 71559 14:45:24 2.1.4.4. Yazıcı Kuyruğundan İş Silme Yazıcı kuyruğuna gönderilmiş işleri kuyruktan kaldırmak için lprm komutu kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir : lprm [seçenekler] [is_numarası] Eğer iş_numarası parametresi komut verilirken verilmez ise lprm komutu kullanıcının son gönderdiği işi kuyruktan kaldıracaktır. Eğer iş numarası olarak “all” parametresi gönderilirse kullanıcının tüm işleri , eğer kullanıcı silme yetkisine sahip ise kuyruktaki tüm işler kuyruktan kaldırılacaktır. Lprm komutu ile kullanılan temel parametreler aşağıdaki gibidir : ¾ -Pyazıcı : Silme işleminin hangi kuyruktan gerçekleşeceğini bildirir. Bu parametre kullanılmadığı takdirde printcap dosyasında tanımlanan ilk yazıcı kuyruğu kullanılır. ¾ -a : Tüm yazıcı kuyruklarından kullanıcının tüm işlerini silmek için kullanılır. Örnek 2.14: [root@printserv /root]# lpq -Ptest Printer: ccmopier-test@printserv 'test' Queue: no printable jobs in queue Holding: 1 held jobs in queue Server: no server active Status: job 'hcatak@AONTWS4044+932' removed at 13:01:45.589 Filter_status: (of) done at 13:01:44.445 Rank Owner/ID Class Job Files Size Hold root@printserv+16901 A 16901 x.c 3748 [root@printserv /root]# lprm -Ptest 16901 Printer ccmopier-test@printserv: checking perms 'root@printserv+16901' dequeued 'root@printserv+16901' [root@printserv /root]# lpq -Ptest Printer: ccmopier-test@printserv 'test' Queue: no printable jobs in queue Status: job 'hcatak@AONTWS4044+932' removed at 13:01:45.589 Filter_status: (of) done at 13:01:44.445 [root@printserv /root]# Time 15:04:28 2.1.4.5. Pardus’ta Yazıcı Tanıtımı Pardus, ağ üzerinde bulunan yazıcılar ile seri ya da paralel olarak bilgisayara doğrudan bağlanan yazıcılar için CUPS adlı Genel Unix Yazdırma Sistemini öntanımlı olarak seçmektedir. TASMA içindeki Yazıcı yapılandırma aracıyla CUPS sistemine yeni yazıcılar eklemek ya da var olan yazıcıların özellikleri dışında PDF, Postscript gibi dosya biçimleri oluşturmak için kullanılan “Dosyaya Yazdırma” özellikleri de bu araçla ayarlanabilir. Pardus ¾ Yazıcılar Modülü çift tıklanarak açılır. ¾ “Yönetici Modu”na geçilir. ¾ Üst menüden “Ekle” düğmesi, açılan menüden de “Yazıcı/Sınıf Ekle” tıklanır. Resim 2.9 : Pardus yazıcı ekleme sihirbazı. ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ “Yazıcı Ekleme Sihirbazı” çalışacaktır. “İleri” düğmesi tıklanır. Yazıcı türü seçilerek “İleri” düğmesi tıklanır. Yerel Port Seçimini yaparak tekrar “İleri” düğmesi tıklanır. Yazıcı Modeli seçilir. Sürücü seçimi yapılır. Ön Sayfa seçimi yapılır. Yazıcı kota ayarları belirlenir. “Kullanıcı Erişim Ayarları” belirlenir. “Genel Bilgi” ekranı düzenlenir. “Onaylama Ekranı” ile yapılan işlemler incelenebilir, tekrar düzenlemeler yapılabilir.Bu şekilde “Yazıcı Ekleme Sihirbazı” ile yazıcı sisteme tanıtılmış olur. 2.1.5. Temel Arşivleme ve Yedekleme Komutları 2.1.5.1. Tar tar komutu sadece arşivleme yapan geleneksel bir programdır. Ancak arşivlemenin yanında komut sıkıştırma yapmaz. Eğer arşivlenen dosyanın sıkıştırılması da isteniyorsa, tar ile birlikte gzip veya compress programlarının da kullanılması gerekir. Yani tar komutu ile birlikte arşivleme işlemi yürütülürken, gzip veya compress programları da çağırılabilir (invokation). Sıkıştırma için –z switch’i kullanılırsa, tar gzip kullanarak sıkıştırma gerçekleştirir (Ancak dosyalar arşivlemeden önce tek tek sıkıştırılır). Sıkıştırılmış ve arşivlenmiş bir dosyanın, yada dosya gruplarının, tar ile açılırken sıkıştırmanın geri alınabilmesi de mümkündür Ancak, sıkıştırılırken hangi algoritmanın kullanıldığı önemlidir. Eğer –z (gzip) kullanılarak sıkıştırma yapılmış ise yine –z kullanılarak açmak mümkün olacaktır. Eğer compress ile sıkıştırma gerçekleştirilmiş ise ( –Z switch’i kullanılmış ise), yine aynı mantıkla bu switch kullanılarak açma işlemi gerçekleştirilebilir. tar programı, sıkıştırma programları çağırılarak arşivlenen dosyanın uzantısına gz uzantısını kendisi yazmayacağı için kullanıcı kendisi yazmak zorundadır (myarch.tar.gz). Ancak dosyanın uzantısının bu şekilde değiştirilmesi sadece anlaşılabilirliği sağlar, yani dosyanın uzantısının tar olarak bırakılması bunun bir tar dosyası olduğunu göstermez. Eğer sıkıştırılmış dosyanın ismi kullanıcı tarafından biliniyorsa sorun yoktur. Fakat karışıklığı önlemek için tar programının otomatik olarak yapmadığı bu işi kullanıcının yapması daha sonra bu dosyayı kullanacak olan kişiler açısından daha rahat kullanım sağlayacaktır. Aynı şekilde compress ile sıkıştırılarak arşivlenmiş dosyalar için ise dosya uzantısı Z (myarhc.tar.Z) olacaktır. Genel Form; abc:/home/username $ tar [ cxt ] [ v ] f archive_file_name directory&filenames Tar ile kullanılan önemli parametreler aşağıdaki gibidir : ¾ f : özel bir dosya ismi yada belirli bir device ismi belirtmek için ¾ c (create) : tar dosyası yarat ¾ x (extract) : tar dosyası aç ¾ t (list) : tar dosyasının içeriğini listele ¾ v (verbose) : yapılan işlemleri standart çıkışa listele ¾ M (multi-disk): birden fazla floppy’e arşivleyebilmek için ¾ r (add) : bir tar arşive dosyasına ekleme yapmak için ¾ ¾ ¾ u (update) : bir tar arşive dosyasında bazı dosyaları yenileri ile değiştirmek için u switch’i kullanılır. z (invoke gzip / gunzip) : gzip / gunzip, sıkıştırma / açma programını kullanarak arşivlemek ve açmak için Z (invoke compress / uncompress) : compress / uncompress, sıkıştırma / açma programını kullanarak arşivlemek ve açmak için Örnek 2.15 : 1. Arşivlemeye örnek; abc:/home/username $ tar cvf fıles.tar file1 file2 file3 abc:/home/username $ tar cvf files.tar file? 2. tar ile arşivlenmiş dosyaları tekrar açmaya örnek, abc:/home/username $ tar xvf files.tar 3. Bir tar dosyasına ekleme yapmaya örnek; abc:/home/username $ tar rf myarchive.tar letters 4. Bir tar dosyasını update örneği; mydir dizininde yeni yaratılmış veya yenisi ile değiştirilmiş veya yeni erişilmiş dosyaları tar dosyasında yeniler.(update) abc:/home/username $ tar uf myarchive.tar mydir 5. Dosyaları diskete arşivleme ve disketten açma örneği; abc:/home/username $ tar cf /dev/fd0 mydir Bunun yanında, bir diskete sığamayan arşivler için –M switch’i kullanılır. Arşivleme esnasında birinci disket dolduğu zaman, ikincisi kullanıcıdan istenecek ve işlem tamamlana kadar bu böyle devam edecektir. (Multiple Disk Spanning) abc:/home/username $ tar cfM /dev/fd0 mydir tar programı, aslında “ f ” switch’i kullanılmadan da kullanılabilir. Bu durumda tar programı /etc/defaults/tar adlı dosyada (dosyanın adı ve konumu UNIX türevlerine göre değişebilir.) belirtilen default device üzerinde işlem yapar. Eğer disk üstünde bir dosya üzerinde işlem yapmak istiyorsanız “ f ” switch’ini kullanmak zorundasınızdır. Bu dosyadaki device automount edilmiş local hard disk dahi olsa “ f ” switch’i kullanılmalıdır. Sıkıştırma yaparak arşivleme ve arşive açmaya birkaç örnek; ¾ gzip kullanarak, abc:/home/username $ tar –zcvf gopher.tar.gz gn-gopher/ ¾ gunzip kullanarak abc:/home/username $ tar –zxvf gopher.tar.gz ¾ compress kullanarak, abc:/home/username $ tar –Zcvf gopher.tar.Z gn-gopher/ ¾ uncompress kullanarak, abc:/home/username $ tar –Zxvf gopher.tar.Z tar doğal olarak dizinlerin arşivlendiği gibi açılmasını sağlar. Örneğin komut aşağıdaki gibi yürütülürse abc:/home/username $ tar –cvf /dev/fd0 /home/username/* ve bu başka bir bilgisayarda açılmaya çalışıldığında o bilgisayarda /home/username path’ini arayacak yoksa yaratmaya çalışacaktır. Bunu önlemek için önce çalışma dizinine geçilmeli (yani sıkıştırmanın yapılacağı dizin) sonrada absolute path yerine relative path verilmelidir. abc: $ cd /home/username abc:/home/username $ tar –cvf /dev/fd0 ./* Bu yarı gizli dosyalar hariç herşeyi arşivler. Eğer tümünü arşivlemek istiyorsanız şu komutu kullanmalısınız; abc:/home/username $ tar –cvf /dev/fd0 ./* . /.* tar programı dosya extarct ederken hedefte aynı isimli dosya olup olmadığını kontrol etmeden üstüne yazar. Bu yüzden dikkatli olunmalıdır!!!. tar arşiv dosyası yaratılırken sembolik linklerinde kapsanmasını isterseniz, bunu belirtmek zorundasınızdır. Bunun için SVR4 kullanıcıları için “ –l ” , BSD kullanıcıları için ise “ –h ” geçerlidir. Dikkat ! : gzip ile önceden sıkıştırılmış dosyalardan oluşan arşiv update edilemez veya bu dosyaya ekleme yapılamaz!!!!! Çünkü tüm arşivlenecek tüm dosyalar aynı zamanda sıkıştırılmak ve eklenmek zorundadır. 2.1.5.2. Gzip gzip programı ile sıkıştırma yapmak mümkündür. gzip ile sıkıştırılan dosya veya dosyaların sonuna “gz” extension’ı otomatik olarak eklenerek esas dosya ile yer değiştirilirler. Ancak dizin içerisindeki dosyalar tek tek sıkıştırılır. Gzcat veya “gunzip –c “ komutları ile sıkıştırılmış dosyaların içeriği görüntülenebilir. Eğer altdizinlerdeki dosyalarında beraber sıkıştırılması isteniyorsa “ –r ” switch’i kullanılmalıdır. abc:/home/username $ gzip –r ./deneme Örnek 2.16: [root@seawolf /tmp]# ls -l ders_gzip_ornek/ total 236 -rw-r--r-- 1 root root 2732 Aug 14 11:13 config.cache -rwxr-xr-x 1 root root 28099 Aug 14 11:13 config.guess -rw-r--r-- 1 root root 2781 Aug 14 11:13 config.h -rw-r--r-- 1 root root 2595 Aug 14 11:13 config.h.in -rw-r--r-- 1 root root 8372 Aug 14 11:13 config.log -rwxr-xr-x 1 root root 13830 Aug 14 11:13 config.status -rwxr-xr-x 1 root root 20257 Aug 14 11:13 config.sub -rwxr-xr-x 1 root root 85022 Aug 14 11:13 configure -rw-r--r-- 1 root root 3987 Aug 14 11:13 configure.in -rw-r--r-- 1 root root 17992 Aug 14 11:13 COPYING -rw-r--r-- 1 root root 25283 Aug 14 11:13 COPYING.LIB -rw-r--r-- 1 root root 6048 Aug 14 11:13 README [root@seawolf /tmp]# gzip -r ders_gzip_ornek/ [root@seawolf /tmp]# ls -l ders_gzip_ornek/ total 88 -rw-r--r-- 1 root root 845 Aug 14 11:13 config.cache.gz -rwxr-xr-x 1 root root 8488 Aug 14 11:13 config.guess.gz -rw-r--r-- 1 root root 746 Aug 14 11:13 config.h.gz -rw-r--r-- 1 root root 677 Aug 14 11:13 config.h.in.gz -rw-r--r-- 1 root root 1616 Aug 14 11:13 config.log.gz -rwxr-xr-x 1 root root 3508 Aug 14 11:13 config.status.gz -rwxr-xr-x 1 root root 6346 Aug 14 11:13 config.sub.gz -rwxr-xr-x 1 root root 16754 Aug 14 11:13 configure.gz -rw-r--r-- 1 root root 1400 Aug 14 11:13 configure.in.gz -rw-r--r-- 1 root root 6857 Aug 14 11:13 COPYING.gz -rw-r--r-- 1 root root 9069 Aug 14 11:13 COPYING.LIB.gz -rw-r--r-- 1 root root 2757 Aug 14 11:13 README.gz gzip ile sıkıştırılmış dosya veya dizinleri açmak için gunzip veya gzip –d parametresi ile kullanılır. Sıkıştırılmış dosyaları açmak için aynı zamanda gunzip komutu da kullanılabilir. abc:/home/username $ gzip –d compressed_file.gz abc:/home/username $ gunzip compressed_file.gz veya deneme bir dizin ise, abc:/home/username $ gzip –rd deneme.gz gzip ile sıkıştırma yaparken sıkıştırma seviyesini veya sıkıştırma hızını ayarlayabilirsiniz. Bunun için 9 seviye vardır; 1 en hızlı fakat en az, 9 en yavaş fakat en çok sıkıştıran seviyedir. abc:/home/username $ gzip –9r ./deneme abc:/home/username $ gzip –9 filename tar ile arşivlenmiş dosyalar gzip ile sıkıştırılabilir. abc:/home/username $ gzip deneme.tar gzip –l komutu ile var olan bir sıkıştırılmış dosya hakkında sıkıştırılmış boyut, sıkıştırılmamış boyut , sıkıştırma oranı ve sıkıştırılmamış dosyanın ismi bilgileri öğrenilebilir. Örnek 2.17: [root@seawolf /tmp]# ls -l /root/pam_ldap.tgz -rw-r--r-- 1 root root 92945 Apr 27 16:40 /root/pam_ldap.tgz [root@seawolf /tmp]# gzip -l /root/pam_ldap.tgz compressed uncompressed ratio uncompressed_name 92945 409600 77.3% /root/pam_ldap.tar [root@seawolf /tmp]# gzip -rl ders_gzip_ornek/ compressed uncompressed ratio uncompressed_name 9069 25283 64.2% ders_gzip_ornek//COPYING.LIB 845 2732 70.2% ders_gzip_ornek//config.cache 8488 28099 69.9% ders_gzip_ornek//config.guess 746 2781 74.1% ders_gzip_ornek//config.h 1616 8372 81.0% ders_gzip_ornek//config.log 3508 13830 74.8% ders_gzip_ornek//config.status 6346 20257 68.8% ders_gzip_ornek//config.sub 16754 85022 80.3% ders_gzip_ornek//configure 1400 3987 65.6% ders_gzip_ornek//configure.in 2757 6048 54.8% ders_gzip_ornek//README 6857 17992 62.0% ders_gzip_ornek//COPYING 677 2595 75.0% ders_gzip_ornek//config.h.in GZIP çevre değişkeni gzip programı tarafından kullanılabilecek varsayılan parametreleri tutabilmektedir. [root@atlantis /root]# echo $GZIP [root@atlantis /root]# export GZIP="-l" [root@atlantis /root]# echo $GZIP -l [root@atlantis /root]# gzip fping-2.2b1.tar.gz compressed uncompressed ratio uncompressed_name 41894 163840 74.4% fping-2.2b1.tar [root@atlantis /root]# export GZIP="" [root@atlantis /root]# gzip fping-2.2b1.tar.gz gzip: fping-2.2b1.tar.gz already has .gz suffix – unchanged 2.2. Çalışma Mantığı Linux gerçekte sadece bir işletim sistemi çekirdeğidir. Dağıtımlar Linux çekirdeğini alıp , bu çekirdek üzerinde çalışacak programları hazırlayıp tam bir işletim sistemi oluştururlar. İşletim sistemi çekirdeklerinin temel görevleri arasında donanım ile haberleşme , süreç kontrolü , hafıza yönetimi gelir. Linux işletim sistemi birden fazla kullanıcının aynı anda çalışmasına (multiuser) ve aynı anda birden fazla sürecin(proses) çalışmasına (multitasking) imkan vermektedir. Temelde belirli bir zaman diliminde işlemciyi sadece bir program kullanabilmektedir. Programların işlemciyi kullanma süreleri ve sıraları Linux çekirdeği tarafından düzenlenmektedir. Düzenleme işlemi yapılırken süreçlerin öncelik değerleri kullanılmaktadır. Öncelik değeri düşük olan programlar daha ön sıralarda yer almaktadırlar. Bir proses işlemciyi ele geçirip bir süre işini yaptıktan sonra öncelik değeri sayısal olarak artmaktadır.(Sayısal olarak büyük öncelik değeri , gerçekte düşük öncelik anlamına gelir.) Sistem yöneticisi olan “root” kullanıcısı istediği takdirde bir prosesin öncelik değerini ayarlayabilir. Bu işlem için nice programını veya çağrısını kullanabilir. Linux gelişmiş bir hafıza yönetim sistemine sahiptir. Varolan fiziksel hafızanın dışında disk üzerindeki dosya ve disk bölümlerini sanal hafıza (swap) olarak kullanabilmektedir. Linux çekirdeği sistemde varolan hafızayı süreçler arasında paylaşılacak şekilde kullanılmasına izin verir. Bir süreç askıya alındığı takdirde kendisine ayrılan kaynaklar başka bir sürece verilebilmektedir. Sistemde bulunan fiziksel hafıza yeterli olmadığı durumlarda disk üzerindeki bölümler hafıza olarak kullanılmaktadır. Temelde çalışan programın tüm verileri fiziksel hafızada bulunur. Bu yüzden fiziksel hafızanın yetmediği durumlarda , hafızada bulunan belirli kısımlar takas alanına aktarılır ve bu sayede CPU kullanacak program için hafızada gerekli yer açılır. Bu durum giriş/çıkış işlemi gerektirdiğinden sistemi yavaşlatacaktır. Tüm işletim sistemlerinde donanım ile haberleşme işletim sistemi çekirdeği sayesinde yapılmaktadır. Linux işletim sistemi geniş bir donanım desteğine sahiptir. Linux’un ilk zamanlarında donanım sürücüleri çoğunlukla gönüllü kişiler tarafından hazırlanırken günümüzde çoğu donanım üreticisi donanımı için gerekli olan Linux sürücüsünü de yazmaktadır. Linux işletim sisteminin gösterdiği gelişme sayesinde donanım üreticileri Linux’u göz ardı edemez duruma gelmişlerdir. SGI , Compaq , IBM gibi büyük firmalarda ürettikleri donanımların Linux ile çalışabilmesine büyük özen göstermektedir. Donanım erişimi için kullanılan sürücüler işletim sistemi çekirdeğine gömülebileceği gibi istendiği takdirde modül olarak da çalışma anında çekirdeğe dahil edilebilmektedir. Linux çekirdeği modüler bir yapıya sahiptir. Derleme işlemi esnasında sistemde bulunması istenen destekler seçilebilmektedir. Linux çekirdeği modül kullanabilme yeteneğine de sahiptir. Modüller çalışma esnasında çekirdeğe eklenip çıkarılabilecek çekirdek parçacıklarıdır. Çoğunlukla bir donanıma erişmek için kullanılan sürücüler modül olarak kullanılabilir. İstendiği takdirde dosya sistemi destekleri , NFS sunucu desteği gibi çekirdek parçaları da modül olarak eklenebilir. Sisteme modül eklemek için insmod , sistemde kullanılan modülleri görmek için lsmod , kullanılan modüleri çekirdekten kaldırmak için rmmod komutları kullanılabilir. 2.2.1. Sistemin Açılma Aşaması ve Çalışma Düzeyleri Tüm bilgisayar sistemleri , sistem açılımı için kullanılan özel yazılımın bulunduğu donanımlara sahiptir. PC tipi bilgisayarlar da BIOS bilgisayarın ilk olarak açılmasından ve işletim sisteminin yüklenmesinden sorumludur. BIOS yazılımı sayesinde bilgisayar açılır ve işletim sisteminin yükleneceği duruma getirilir. Her işletim sistemi mutlaka bir adet önyükleme programına (boot loader) sahiptir. Linux işletim sistemi ile en çok kullanılan önyükleme programı LILO’dur (Linux Loader). Son zamanlarda Grup isimli programda popülerliğini arttırmıştır. Bu programların temel amacı Linux çekirdeğini yüklemektir. BIOS kendi işini bitirdikten sonra işletim sisteminin yüklenmesi için önyükleme programını çağırır. Bu programlar çoğunlukla diskin MBR (Master Boot Record) olarak adlandırılan bölümlerinde bulunurlar. LILO programı iki temel yüklenme aşaması içerir. Birinci aşama olarak belirtilen aşama ikinci aşamayı yüklemek ile görevlidir. Birinci önyükleme programı (bootstrap) kendini hafıza yükler ve daha gelişmiş ikinci aşama önyükleme programını çalıştırır. Birinci aşamada çalışan kod ikinci aşamada çalışacak kodun nerede olduğunu bilmek zorundadır. Bunun için bu bilgi özel olarak bir bölgeye yazılır. Bu işlemi lilo komutu yapmaktadır. İkinci aşama için gerekli programın yeri değiştiği takdirde lilo komutu çalıştırılmalıdır. Aksi takdirde LILO programı ikinci aşamaya geçemeyecek ve işletim sistemi çalışmaya başlamayacaktır. İkinci aşamada yüklenen programın görevi işletim sistemi çekirdeğini yüklemektir. Bu programa da işletim sistemini bulacağı yer bildirilmelidir. Bu yer değiştirildiği takdirde lilo komutu yeniden çalıştırılmalıdır. İşletim sistemi çekirdeği yüklendikten sonra işletim sistemin yüklenmesini sağlayacak program çalıştırılır. Varsayılan olarak bu program init programıdır. Bu program sistemde çalışan ilk süreçtir ve diğer tüm süreçlerin çalıştırılmasını gerçekleştirir. init sürecinin süreç kimlik numarası (PID) her zaman 1(bir)’dir. [root@atlas /root]# ps ax|grep init 1 ? S 0:43 init [3] 31578 ? S 0:00 grep init 2.2.2. İş Kontrolü Linux işletim sistemi aynı anda birden fazla kullanıcının birden fazla süreç çalıştırmasına izin vermektedir. Linux işletim sisteminin bu özelliği sayesinde sistem çalışır durumda iken üzerinde çalışan birden fazla süreç bulunmaktadır. Linux işletim sistemi bu süreçlerin kontrolü ve yönetimi için belli araçlar sunmaktadır. 2.2.2.1. Çalışan Süreçleri ve Durumlarını Öğrenmek Sistemde çalışan süreçleri ve süreçlerin durumlarını öğrenmek için ps komutu kullanılabilir. Ps komutunun temel kullanım şekli aşağıdaki gibidir : ps [seçenekler] ps komutu ile kullanılabilecek seçenekler aşağıdaki gibidir : ¾ a Tüm terminallerde çalışan prosesleri listeler ¾ x Sistemdeki tüm prosesler, tty’lerde çalışanlar hariç ¾ c Proseslerin sadece komut isimlerini listeler ¾ e Komutları ile parametrelerini göstermektedir ¾ h Üstteki ek satırları göstermez ¾ j İş akışı izleme şeklinde gösterir ¾ l Çıktı detaylı şekilde verilir ¾ r Sadece o an etkili prosesleri gösterir ¾ s Sinyal şeklinde gösterir ¾ u Kullanıcıya göre gösterir ¾ v Kullanılan hafızalara göre gösterir ¾ w Parametreleri hakkında geniş ve detaylı şekilde gösterir ¾ ww w seçeneğinden daha geniş bir çıktı verir ¾ t<tty> Numarası verilen tty ilgili prosesleri gösterir ¾ O[*] Parantez içindeki parametreye göre listeyi sıralar • Ou Kullanıcı adına göre sıralar • Oc Proseslerin komutlarına göre sıralar • OU Kullanıcı ID’sine göre sıralar • Op Proses ID’sine göre sıralar • OP Ana prosese göre sıralar • Og Proses grup ID’sine göre sıralar • Oo Oturuma göre sıralar • Ot TTY’lere göre sıralar • OG TTY’deki prosesleri grup ID’sine göre sıralar • Ok Kullanıcı saatine göre sıralar • OK Sistem saatine göre sıralar • Oy Çekirdek önceliğine göre sıralar • OT Proses başlatma saatine göre sıralar • Of Uzun formatta çıktı alınırken bayraklara göre sıralar 2.2.2.2. Arka Planda Süreç Çalıştırma Sunucu süreçleri dışındaki diğer süreçler çoğunlukla ön planda çalışmaktadırlar. Sürecin ön planda çalıştırıldığı durumlarda , sürecin çalıştırıldığı terminalden süreç sonlanana kadar başka komut gönderilememektedir. Çalıştırılan süreç arka plana gönderildiği takdirde kullanıcı tekrar komut gönderebilmektedir. Bir komutu veya çalıştırılan bir programı arka plana atmanın iki yolu vardır: • Sürecin çalışması esnasında Ctrl-z tuşları ile çalışmayı kesip bg komutunu çalıştırmak • Çalıştırılacak komuttan sonra bir boşluk bırakarak & sembolünü eklemek Arka plana gönderilen bir süreci tekrar ön plana çıkarmak için fg komutu kullanılabilir. Sistemde bir kaç çalışma aynı zamanda durdurulabilir, kesilmiş çalışmaların listesini almak için jobs komutu kullanılmaktadır Örnek bir jobs komutun çıktısı aşağıdaki gibidir: [root@lnxsrv3 /root]# jobs [1]+ Stopped top [2]- Running perl script.pl & Buradaki rakamlar işlerin arka plana hangi sıra ile atıldığını göstermektedirler, ayrıca bu numaralar işi ön plana çıkarmak için fg komutuna parametre olarak gönderilebilmektedir. Rakamların yanındaki “+” işareti fg veya bg komutlar rakam verilmeden çalıştırılacaksa bu komutların başvuracakları işi göstermektedir. + işaretine sahip süreci değiştirmek için ‘jobs iş_numarası ‘ komutu kullanılabilir. 2.2.2.3. Süreçlere Sinyal Gönderme Süreçlere sinyal göndermek için kill komutu kullanılmaktadır. Sinyaller süreçle belli işleri yapmalarını bildirirler. Bazı sinyaller için varsayılan davranışlar bulunmaktadır. Varsayılan davranışı belli olmayan sinyaller için sinyal işleyici alt programlar ile sinyal alındığında yapılması gereken işlemler belirlenebilir. Ayrıca SIGKILL ( Öl sinyali) dışındaki tüm temel sinyaller , süreç tarafından yakalanabilir ve işlenebilirler. Kill komutunun temel kullanımı aşağıdaki gibidir : kill [-sinyal] PID Eğer sürece gönderilecek sinyal parametre olarak gönderilmez ise varsayılan olarak TERM(Programdan Çık) sinyali sürece gönderilir. Sinyal parametresi istendiği takdirde sinyal ismi veya sinyal numarası olabilmektedir.Kill komutu ile gönderilebilecek sinyallerin listesini almak için –l parametresi kullanılabilir. Kill komutu ile en çok kullanılan sinyaller aşağıdaki gibidir: • 1 : SIGHUP – Bazı servisler tarafından konfigürasyon dosyalarını yeniden okunması için kullanılmaktadır. • 9 : SIGKILL – Bir süreci tamamen öldürmek için kullanılır. Yakalanamayan bir sinyal olduğu için sinyali alan süreç ölmek durumundadır. • 15 : SIGTERM – Bu sinyal süreci öldürmek için kullanılır, ancak bazı durumlarda süreci öldürmekte başarılı olamayabilir., bu durumda SIGKILL kullanılır. Örnek 2.18: kill –9 14032 kill –s SIGKILL 14032 14054 Yukarıda anlatıldığı gibi kill süreci süreç numarasına göre öldürür, ama bir süreci ismine göre öldürmek için killall komutu kullanılabilir. Komutun çalıştırma şekli aşağıdaki gibidir: killall [ –Sinyal] süreç_adı Buradaki Sinyal kill komutuna ilişkin Sinyal parametresi ile aynı işlevi gerçekleştirmektedir, süreç_adı sinyal gönderilecek süreç adı. Bu komut ile sürece ilişkin tüm süreçlere sinyal gönderilmektedir. Örnek 2.19: [root@atlas /root]# ps x |grep send 654 ? S 0:49 sendmail: accepting connections 18313 ? S 0:00 sendmail: server async016.dial-up.itu.edu.tr [160.75.8.16] c 18968 ? S 0:00 sendmail: server n1.groups.yahoo.com [216.115.96.51] child w 19169 ? S 0:00 sendmail: server n4.groups.yahoo.com [216.115.96.54] cmd rea 19170 ? S 0:00 sendmail: server n4.groups.yahoo.com [216.115.96.54] child w 19173 ? S 0:00 sendmail: server n4.groups.yahoo.com [216.115.96.54] cmd rea 19211 ? S 0:00 sendmail: ./fAIGprE19211 n4.groups.yahoo.com [216.115.96.54] 19219 ? S 0:00 sendmail: server n1.groups.yahoo.com [216.115.96.51] cmd rea 19223 ? S 0:00 grep send Bu çıktıya göre sistemde çalışan sendmail(PID=654) sürecine ilişkin 7 tane çocuk süreç çalışmaktadır. $killall –9 sendmail komutu çalıştırıldığı zaman yukarıdaki tüm süreçlerin işlemleri kesilecektir. 2.2.2.4. Gecikmeli Çalışma Belli bir zamanda herhangi bir komutu çalıştırmak için at komutu kullanılabilmektedir. Bir işi arka plana atmak yerine kullanıcı istediği zamanda komut çalıştırabilir. Kullanıcı sistemi terk ettikten sonra sistem hangi komutu istenilen zaman çalıştıracaktır. Komut en basit hali ile: at seçenekler vakit at seçenekler vakit gün şeklinde çalıştırılabilir. Vakit SS:DD veya SS:DD[am/pm] şeklinde verilebilir. Eğer vakit seçeneği verilip gün seçeneği verilmez ise iş aynı gün yapılacaktır, verilen saat geçmiş ise iş ertesi gün yapılacaktır. Ayrıca vakit seçeneği olarak midnight (geceyarısı), noon (yarım) veya teatime (16:00) verilebilir. Gün seçeneği AyGünYıl veya Ay/Gün/Yıl veya Ay.Gün.Yıl şeklinde verilebileceği gibi ay_adı gün yıl şeklinde verilebilir, burada yıl seçeneğin verilme zorunluluğu yoktur. Ayrıca vakit “now + zaman_birimi” şeklinde verilebilir, zaman_birimi minutes (dakikalar), hours (saatler), days (günler) veya weeks (haftalar) olarak verilir. Aynı gün çalıştırılacak işler vakit seçeneği – today olarak verilebilir, veya ertesi gün yapılacak işler için tomorrow olarak verilebilir. Örnek 2.20: $ at 7pm at >echo “Selam” ^D (Ctrl-D) şeklinde veya isler adında bir dosya içine çalıştırılmak istenilen komutlar (her komut ayrı bir satıra) yazılarak aşağıdaki şekildeki gibi çalıştırılabilir $ at 19:00 <isler $ at 8am + 3days < isler şeklinde çalıştırılan komut ile isler dosyasındaki komutlar 3 gün boyunca sabah saat 8’de çalıştırılacaklardır. Kuyruktaki işleri izlemek için –l seçeneği kullanılabilir, -m seçeneği verilirse iş tamamlandıktan sonra kullanıcıya mesaj atılacaktır. EDİTÖRLER 3.1. Joe JOE - güçlü metin editörüdür. JOE kullanımı çok basit bir editördür. Ayrıca başka editörleri de simüle edebilmektedir. JSTAR - JOE özellikleri ilave edilmiş WordStar’ın imitasyonudur. JPICO - Pine mail sistemin PICO editörü imitasyonudur. JMACS - GNUEMACS imitasyonudur. Ve son olarak RJOE - JOE’nin kısıtlanmış versiyonudur. 3.1.1. Kullanımı Editörü çalıştırmak için, komut satırında joe yazılmalıdır, ardından sıfır ya da daha fazla dosya ismini verebilmektedir. Yeni bir dosya yazmak için ismini joe çalıştırılırken vermek mümkündür, ya da dosya yazıldıktan sonra saklanırken dosya ismi verilebilmektedir. Joe çalıştırılırken seçenekler de verilebilmektedir, bu opsiyonlar sonraki bölümde verilmiştir. Editörün içindeyken, kullanıcı metin yazabilmektedir ve özel kontrol-karakterlerini kullanarak editörün başka özelliklerinden yararlanabilmektedir. Kontrol-karakterlerin işlevlerini sonraki bölümlerde verilmiştir. Editörün içindeyken yardım menüsü için CTRL-K H tuşlarını kullanılabilmektedir. Yardım menüsü açık iken metin yazmaya devam edilebilmektedir, menüyü kapatmak için gene CTRL-K H tuşları kullanılır. JOE editörünü kullanıcıya göre klavyeyi, yardım menüsünü ayarlanabilmektedir. Bunun için JOE’nin açılış dosyasını kullanıcının ev dizinine .joerc olarak kopyalanır. Ve bu dosya içinde gerekli ayarlamalar yapılabilmektedir. 3.1.2. Komut Satırı Seçenekleri Joe editörü aşağıdaki seçenekleri çalıştırılma anında kabul etmektedir. ¾ backpath path Bu seçenek tanımlandığında dosyaların yedekleri tanımlanan klasöre alınır. ¾ beep Bu parametre verildiği takdirde yanlış komut veya imleç sınırları geçtiğinde joe bip sesini üretecektir. ¾ columns nnn Ekrandaki sütün sayısını ayarlar. ¾ exask Bu seçenek ile ^K-X ile dosya saklamadan önce ismini doğrulatılmasını ister. ¾ -help Editör yardım menüsü ile başlatılacaktır. ¾ -lightoff Blok vurgulanması herhangi bir blok komutundan sonra kalkmasını sağlar. ¾ -lines nnn Ekrandaki satır sayısını ayarlar. ¾ -marking ^K B ile işaretleme işlemi başlar ve imleç devam ettikçe seçme işlemi devam eder. Seçme işleminin sona ermesi için ^K-K kombinasyonunun girilmesine gerek yoktur. Seçme işleminin son noktası imlecin bulunduğu noktadır. ¾ -mid Eğer bu seçenek verilirse ve imleç pencere dışına çıktığında, pencere imleç ortasında kalacak şekilde kaymaya başlar. Bu seçenek kayma komutları olmayan yavaş terminallerde zorunludur. ¾ -nobackups Bu seçenek ile yedek dosyaların saklanması engellenir ¾ -nosta Bu seçenek ekranın üstündeki durum satırını kaldırır. Bu metni okumak için açıyorsanız ya da vt52 terminalini kullanıyorsanız çok yararlı olabilir. ¾ ¾ ¾ -orphan Bu seçenekle komut satırındaki fazla dosyayı ek pencere açmak yerine buffere yerleştirir. Bu joe emacs benzeri olarak açıldığında kullanışlıdır. -pg nnn Bu PgUp/PgDn (^U/^V) kullanılırken pencerenin kaç satır kayacağını belirler. Eğer -1 verilir ise yarım pencere kayar. -skiptop nnn Üstten nnn sayısı kadar satır kullanma. Tüm bu seçenekler .joerc dosyasında belirtilebilir. JOETERM kabuk değişkeni TERM değişkenini önemsememesi için ayarlanabilir. Aşağıdaki seçenekler komut satırında dosya ismin önünde tanımlanmalıdır: ¾ +nnn İmleç belirtilen satırdan başlar. ¾ -crlf Joe satır sonu olarak LF yerine CR-LF kullanır. Bu MS-DOS veya VMS dosyaları için kullanılır. ¾ -overwrite Bu seçenek ile karakterler var olan karakterlerin önüne yerleştirmek yerine üzerlerine yazar. ¾ -lmargin nnn Sol kenarı ayarlar · -rmargin nnn Sağ kenarı ayarlar. ¾ -tab nnn tab genişliğini ayarla ¾ -linums Her satır önünde numarası olacak. ¾ -rdonly Dosya sadece okumak için açılır. 3.1.3. Metin Yazımı 3.1.3.1. Temel Kullanım Dosya içinde imleç hareketlendirmek için ok tuşları kullanılabilir. Eğer herhangi bir sebebi ile ok tuşları çalışmıyorsa ileri (sağa) için ^F, geri (sola) için ^B, önceki satıra (yukarı) geçmek için ^P ve sonraki satır (aşağı) için ^N kullanılabilir. Sağ ve sol ok tuşları imleci bir karakter ileri ve geri hareket ettirir. Eğer satır başında iken sol tuşa basılırsa imleç önceki satırın sonuna geçer. Eğer herhangi bir sebeple ekranda karmaşıklık yaşandıysa (örneğin yeni mail haberi ekrana yazıldı) ^R ile görüntü güncellenebilir. İmlecin bulunduğu karakteri silmek için ^D kullanılır, imlecin arkasında bulunan karakteri silmek Backspace tuşu kullanılabilir. Ayrıca imleç satır sonunda ise ^D satır sonu işaretçisini siler. İmlecin bulunduğu satırı silmek için ^Y kullanılır veya sadece imlecin yerinden başlayarak satırı sonuna kadar silmek için ^J kullanılabilir. Satırın başına gitmek için ^A basılır. Sonuna gitmek için ^E kullanılır. ^U veya ^V ile metin ekranın yarısı kadar yukarı veya aşağıya kayar. Metnin başına veya son satırına geçmek için ^K U veya ^K V kullanılır. Eğer bir hata yapıldıysa ^_ kullanılarak geri alınabilir. Eğer fazla geri gidildiyse ^^ ile tekrarlanabilir. Metin yazılması sona erdikten sonra editörden çıkmak için ^K X tuşları kullanılır. Dosyanın ismi yoksa ismini girilmesi istenecek. Dosyayı kaydetmek istenmiyorsa ^C ile editörden çıkılabilir. 3.1.3.2. Word Wrap İle Şekillendirme Eğer ekranın sağ kenarı geçilir ise Joe son sözcüğü bir sonraki satıra geçirir. Bunun özelliğe “word wrap” adı verilmektedir.. Word wrap ^T W komutu ile pasif ya da etkin hale getirilebilmektedir. Paragrafı düzenlemek için ^K J komutu kullanılabilir. Bu komut ile imlecin bulunduğu paragraf düzenlenir ve bir satıra mümkün olduğu kadar sözcük yerleştirilir. Paragraf ve word-wrap sınırlarını ayarlamak için ^T L ve ^T R komutlar kullanılır. Satırı ortalamak için ^K A kullanılır. 3.1.3.3. Üstüne Yazma Modu Bazen bir metin yerine başka bir metin yazılması gerekir. Bunun için ^T T komutu ile üstüne yazma modu etkin olur. Bu durumda yazılan karakterler eski karakterleri silip onların yerini alır. Ayrıca Backspace sadece imleci sola hareket ettirir karakterleri silmez. Ekleme moduna geçmek için ^T T komutu çalıştırılır. Üstüne yazma modunda iken karakter eklemeye ihtiyaç varsa ^@ komutu kullanılır. 3.1.3.4. İmleç Nerede ? İmlecin bulunduğu satırı sütünü bulmak için ^K Boşluk kullanılır. Ayrıca bu komut karakterin ASCII kodunu verir. Sürekli satır ve/veya sütün numarasını görmek için .joerc başlangıç dosyası düzeltilir. 3.1.3.5. Dosya İşlemleri Dosyayı saklamak için ^K D kullanılır (başka bir isimle saklamak mümkündür). Başka bir dosyayı açmak için ^K E komutundan yararlanır. Dosya içine başka bir dosyayı eklemek için ^K E kullanılır. Metnin sadece seçilmiş parçasını saklanması aşağıda Bloklar bölümünde (3.1.3.8) ele alınmıştır. 3.1.3.6. Editörü Askıya Almak Geçici olarak Joedan çıkmak için ^K Z komutu çalıştırılır. Geri dönmek için fg komutu yürütülür. 3.1.3.7. Metin Arama Arama için ^K F komutu çalıştırıldığında aranacak metnin girilmesi istenecektir. Metin girildikten sonra birkaç seçenek gelmektedir. Enter tuşuna basıldığı takdirde metin hemen ileri (aşağıya) aranacaktır. Enter yerine aşağıdaki seçeneklerden biri kullanılabilir: ¾ B metni geri olarak arar. ¾ I büyük küçük harf ayırt etmeden arar. ¾ N Burada N bir sayıdır. Bu seçenek ile Joe N’inci sözcüğü bulur. ¾ R Yer değiştirme, bulunan sözcükleri belirtilen metin parçaları ile yer değiştirilir. Aranan her parça bulunduğu zaman yer değiştirilmesi için kullanıcıya başvurur. ^L komutu ile bir önceki arama tekrarlanır. 3.1.3.7.1. Regular Expressions Aramada kullanılabilir özel karakterler aşağıdaki gibidir: ¾ \* Bu seçenek iki karakter arasında bulunabilecek karakter sayısı sıfır veya daha fazla olarak bulunur. Mesela A\*B girildiğinde, JOE A ve onu takip eden B arasında sıfır veya fazla karakter bulunmasına izin verir. ¾ ¾ ¾ ¾ ¾ ¾ ¾ \? Bu seçenek ile sadece bir karakter bulunur. Örneğin A\?B olarak arandığı zaman JOE AxB şeklindeki metinleri bulur. \^ \$ Bu seçenekler satır başına ve sonunu işaret. Örneğin \^test\$ şeklindeki giriş ile JOE sadece “test” içeren satırları bulur. \< \> Bu seçenekler sözcük başını ve sonunu işaret eder. Örneğin \<\*is\*\> şeklindeki giriş sonucu “is” içeren tüm sözcükler bulunur. \[...] Parantez arasındaki herhangi karakter bulunur. Örneğin \[Kk]itap şeklinde giriş yapılırsa, JOE Kitap ve kitap kelimeleri bulur. Parantez arası karakterler sırası da verilebilir. Örneğin \[A-Z] herhangi büyük harf bulanacak. Eğer parantez içindeki ilk karakter ^ ise JOE verilmemiş olan karakterleri arar. \+ Bu seçenek ile \+ işaretini takip sıfır veya daha fazla karakter bulunur. Örnek olarak \[ ]\+\[ ] giriş yapıldığı zaman, (burada parantez arasındaki karakter SPACE ve TAB’tır), JOE boşluk bulur. \\ Tek bir \ işaretine denktir. \n Özel satır sonu işareti bulunur. Yer alma satırında verilebilecek özel karakterler: ¾ \0 - \9 Bu seçenek ile aranan metnin N-inci \*, \?, \+, \c ya da \[...] parçası ile yer değiştirir. ¾ \\ Tek bir \ işaretine denktir. ¾ \n Yer alma bölümünde satır sonu işaretçisidir. Bazı örnekler: Adres listesi olan bir dosyadaki kayıtlar şu şekildedir. Adres: H.Catak, Marmaris Blv., Mugla, Turkey ^K F ile arama şu şekilde gerçekleştirilir ise: Adres: \*, \*, \*, \* \$ Aranacak metin “Adres:”, virgül ile bölünmüş dört parça ve satır sonu işaretinden oluşacak. Seçenekler ekranından r tuşuna basılıp Replace (yer alma) moduna geçilir: Adres: \3, \2, \0, \1 olarak girildiğinde metin şu şekilde gelir: Adres: Turkey, Mugla, H.Catak, Marmaris Cd. 3.1.3.8. Bloklar Metnin özel bir parçasını taşınması, kopyalanması, saklanması veya silinmesi için işaretlenmiş bloklar kullanılabilir. İlk olarak imleç işaretlenecek kısmın başına getirilir ve ^K B komutu ile blok başı işaretlenir. Bu işlemden sonra imleç parçanın sonuna götürülüp ^K K komutu yürütülür. ^K B ile ^K K arasındaki metin işaretlenmesi gerekir. Bundan sonra imlecin dokümandaki istendiği yere götürülüp ^K M ile blok taşınır. Bloğu kopyalayıp imlecin bulunduğu yapıştırmak için ^K C kullanılır. ^K Y ile blok silinir. İşaretlenmiş bloğu başka bir dosyaya saklamak için ^K W kullanılır. Bloklar ile ilgili başka bir kullanışlı komut ^K / filtreleme komutudur. Filtrelemede Linux komutları kullanılır. Örneğin, eğer bir liste seçilmiş ise ^K /’dan sonra gelen sort komutu girilirse liste sıralanacaktır. Diğer ^K /’da kullanılabilecek komut tr’dir. Eğer ^K / tr a-z A-Z olarak giriş yapılırsa, işaretlenmiş metinde tüm küçük harfler büyük harf olarak değiştirilir. İşaretlemeyi kaldırmak için ^K B ^K K komutu kullanılır. 3.1.3.9. Pencereler Joe aynı zamanda birden fazla dosya ile çalışabilmekte veya dosyanın farklı bölümler ile çalışabilmektedir. Bu özelliği kullanmak için ^K O komutu ile pencere ikiye bölünür. ^K P ve ^K N komutlarıyla pencereler arasında geçilebilmektedir. ^K E pencerede yeni bir dosya başlatmak için kullanılır. ^K X ile dosya saklanırsa ya da ^C ile iptal edilirse pencere kapanır. Eğer iki pencerede bulunan bir dosyayı ^C ile iptal edilir ise sadece bir pencere kapanır, dosya değil. Aynı ekranda bir pencereden fazla olabilmektedir (^K O). Eğer pencerede fazla pencere varsa, ama pencereler kapanması istenmiyorsa, ^K I kullanılabilir. Bu komut ile sadece imlecin bulunduğu pencereyi tüm ekrana yayarak gösterilir. Diğer pencerelere geçmek için ^K P ve ^K N kullanılır. Pencerenin yüksekliğini değiştirmek için ^K G ve ^K T komutları kullanılır. 3.1.3.10. Kabuk Pencereleri “ ^K ‘ “komutu ile pencerelerden birisinde komut kabuğu açılabilir. Bu işlem kabuk komutların çıktılarını kaydetmek için çok kullanışlıdır. Kabuğu kapatmak için exit komutunu kullanılır. 3.1.4. Dosya İsimleri JOE dosya ismi için başvurduğu zaman girilebilecek seçenekler: ¾ !komut Veriyi komuttan okur ya da komuta gönderir. Örneğin, joe ’!ls’ komutu çalıştırıldığında ls komutun çıktısı joede açılacaktır. ¾ >>dosyaadi Joe dosyaadi dosyasına metni eklemiş olacaktır. ¾ dosyaadi, START, SIZE Bu dosyanın veya aygıtın belli bir bölümünü açmak için kullanılabilir. START ve SIZE onluk (ör:123), sekizlik (ör:0777) veya onaltılık (ör:0xFF) sayı düzeylerinde girilebilir. Örneğin, joe /dev/fd0, 507,2 komutu ile floppy aygıtın 507 ve 508 byteları ele alınacaktır. ¾ - Bu seçenek ile standart girişten metin alınır veya çıktı verilebilir. Örnek olarak, quota -v | joe - | mail root komutun sonucu kota bilgileri Joe ile açılır ve dosya saklandıktan sonra root’a mail ile gönderilir. 3.2. Pico Pico - PINE tarzındaki basit bir metin editörüdür. Pine mesaj editöründe olduğu gibi ekranın alt kısmında yardım menüsü ile birlikte komutların kısayolları yer almaktadır. Komutlar kontrol tuşu ile kombinasyonları kullanılarak girilmektedir. Escape tuşuna çift tıklamak Ctrl tuşun yerine kullanılabilmektedir. Yani Esc-Esc-c tuş kombinasyonu Ctrl-c kombinasyonu yerine kullanılabilir. Pico beş temel özelliği sahiptir: ¾ Arama ¾ Blok kesme/yapıştırma ¾ İmla kontrolü ¾ Dosya gezgini ¾ Paragraf hizalanması Arama imleç yerinden başlar ve dosyanın sonuna kadar devam eder. Dosyanın sonuna ulaşıldığında arama işlemine dosyanın başından devam edilir. İmlecin bulunduğu yerden daha önceki konumda aranan katar bulundu ise bu durum kullanıcıya bildirilir. Bir metin bloğu, işaretleme (ctrl-^), silme (ctrl-k) ve geri dönüştürme (ctrl-u) komutlarını kullanılarak kaldırılabilir, kopyalanabilir ya da silinebilir. Silme komutu “işaretçi” ile imleç arasındaki bloğu siler ve “kes” tampon alanına kopyalar. Geri dönüştürme imlecin yerinden başlayarak tampon alanındaki veriyi yapıştırır. İmla kontrolü ile metindeki tüm kelimeleri yazım hatalarına karşı kontrol edilmektedir.. İmla kontrolü istendiği takdirde iptal edilebilir. Dosya gezgini “Dosyayı Oku” ve “Dosyayı Yaz” işlemleri sırasında çağırılabilir. Gezgin dosya arama ve klasör hiyerarşisini içinde rahatça hareket edebilmek için tasarlanmıştır. Bulunulan klasördeki dosyalar ile dosyaların büyüklüklerini ve klasör isimleri listeler. Ekranın alt kısmında kullanabileceğiniz komutlar yer almaktadır. Bununla birlikte bulunulan klasör ismi en yukarıdaki satırda gösterilmektedir. Dosya gezgininde aynı zamanda bir kaç temel dosya işlemleri gerçekleştirilebilir: Dosya ; ¾ İsim değiştirme, ¾ Kopyalama, ¾ Silme. 3.2.1. Seçenekler Pico editörü komut satırından aşağıdaki parametreleri kabul etmektedir. ¾ +n : Bu seçenekle pico dosyayı , imleci belirtilen satıra konumlandırarak açacaktır. Dikkat edilmesi gereken dosya “+” işareti ile sayı arasında boşluk olmamasıdır. ¾ -b :Bu arama komutu ile bulunan metin parçalarının değiştirilebilmesini sağlayan seçeneği aktif eder. ¾ -d: “Delete” tuşunun kendi işlevini yapmasını sağlar. ¾ -e:Dosya ismi tamamla seçeneğini aktif eder. ¾ -h : Komut satır seçeneklerini listeler. ¾ -j : Dosya gezgininde “Goto” komutunu aktif yapar. Bu komut ile dosya gezgininde herhangi bir klasörün ismi verilerek doğrudan istenilen klasöre gidilebilmektedir. ¾ -k : Bu seçenek kullanıldığında CTRL-U ile gerçekleştirilen metin silme komutu tüm satır yerine , imlecin bulunduğu noktadan satır sonuna kadar silme işlemini yapmaktadır. ¾ -o dir : Çalışma klasörünü belirler. Bu seçenek kullanıldığında sadece belirtilen klasördeki dosyalar ile çalışmaya izin verilir-s speller İmlayı kontrol etmek için alternatif program belirler. ¾ -t :“Tool” modunu aktif hale getirir. Pico çıkışta dosyayı direk saklar, kullanıcıya dosyayı saklamak isteyip istemediği sorulmaz. ¾ -v : Dosyayı sadece okuma için açar, yazmaya izin vermez. ¾ -w : Uzun satırların belli bir sütundan sonra alt satıra geçmesini engeller. Bu sayede uzun satırlar içeren dosyalar üzerinde dosyanın içeriği bozulmadan işlem yapılabilir. ¾ -x : Ekranın alt kısmında olan menüyü kapatır. ¾ -z : Picoyu arka plana atmak için Ctrl-Z tuş kombinasyonunu aktif hale getirir. 3.2.2. Komutlar Piconun ekranın alt bölümünde Yardım Menüsü yer almaktadır.. Bu menüde komutların kısayol tuşları aşağıdaki gibidir. ¾ ^G (Ctrl-g) - Yardım metni çağır. o X (Ctrl-x) - Yardımdan çık · ^X (Ctrl-x) - Pico’dan çık. ¾ ^O (Ctrl-o) Sakla - Dosya saklanır. o ^G (Ctrl-g) - Yardım. o ^T (Ctrl-t) - Dosya gezginini aç. o Tab - dosya ismini tamamla. o ^C (Ctrl-c) - Vazgeç. ¾ ^J (Ctrl-j) - Paragrafı hizala. o ^U (Ctrl-u) - Paragraf hizalanmasını kaldır. ¾ ^R (Ctrl-r) -Dosyayı Oku. o ^G (Ctrl-g) - Yardım. o ^T (Ctrl-t )- Dosya gezginini aç. o Tab - dosya ismini tamamla. (Sadece pico -t parametresi ile açılırsa) o ^C (Ctrl-c) - Vazgeç. ¾ ^W (Ctrl-w) Nerede - Metin parçasını bul. o ^G (Ctrl-g) - Yardım. o ^C (Ctrl-c) - Vazgeç. o ^Y (Ctrl-y) - İlk satıra git. o ^V (Ctrl-v) - Son satıra git. o ^T (Ctrl-t) - Numarası verilen satıra git. o ^W (Ctrl-w) - Paragrafın başına git. o ^O (Ctrl-o) - Paragrafın sonuna git. · ^Y (Ctrl-y) Önceki sayfa. ¾ ^V (Ctrl-v) Sonraki sayfa. ¾ ^K (Ctrl-k) Metin parçasını kes. ¾ ^U (Ctrl-u) En son kesilen metin parçasını yerleştir veya yapılan paragraf hizalama işlemini geri al.. ¾ ^C (Ctrl-c) İmlecin yerine belirt.İmlecin bulunduğu satırı ve sütünü gösterir. ¾ ^T (Ctrl-t) İmla hatalarını kontrol et. 3.3. Vi ve vim Vi ve vi uyumlu olan vim ASCII metin dosyalarını düzenlemek amacıyla kullanılan oldukça gelişmiş özelliklere sahip editörlerdir. vi UNIX geleneğinin bir sembolüdür. vim ise vi ‘nin geliştirilmiş sürümüdür (vim - vi IMproved).vi ve vim arasındaki farklılıklar /usr/share/vim/vim56/doc/vi_diff.txt dosyasında ayrıntıları ile sıralanmıştır. vim, özellikle program kaynak kodlarının düzenlenmesinde oldukça faydalıdır. vim ‘in bazı özellikleri olarak, çoklu-seviyeli UNDO mekanizması, çoklu-pencere ve tampon bellek, sentaks (yazım) renklendirme (vurgulama), komut satırı düzenleme, komut durumunda dosya-ismi tamamlama, On-Line yardım sayılabilir. vim çalışırken On-Line yardım sisteminden birçok bilgi edinilebilir. On-Line yardım almak için, komut durumuna geçerek (komut durumu için, vim açıldıktan sonra ESC tuşuna basılır ve arkasından “:” (Kolon) karakteri tuşlanır.). Örnek 3.1 : ~ ~ ~ ~ ~ ~ ~ ~ :help vim bir kelime işlemci değildir, sadece bir editördür. UNIX altında kelime işlem için tex, latex, nroff, troff gibi yazılımlar kullanılır. vim editöründe iki durum söz konusudur. Birincisi, vim ilk açıldığındaki komut durumu (command mode), ikincisi ise etkileşimli durum (interactive mode). Komut durumunda TAB tuşu kullanılarak tamamı yazılmamış komut tamamlanabilir. 3.3.1. Dosya Açmak ve Oluşturmak Vim çoğunlukla düzenleme yapmak amacıyla izleyen komut kullanılarak tek dosya ile açılır; abc:/home/username $ vim [options] [filename] Ancak istenirse komut satırında birden fazla dosya aynı anda vim ile açılabilir: abc:/home/username $ vim [options] [filename-list] Örnek 3.2 : Bu bir deneme dosyasıdır Enter'a bastıktan sonra alt satıra devam edebilirsiniz son satır ~ ~ ~ ~ ~ ~ "filename [ New File ] deneme Eğer dosya listesi boş ise, vim boş tampon bellek ile açılır. Bunun yanında, aşağıdakilerden herhangi bir tanesi bir yada daha fazla sayıda dosyayı düzenlemek amacıyla açmak için kullanılabilir. ¾ $ vim : Normal açılım. Bu durumda tüm açılış ayarları varsayılan konumdadır. ¾ $ vim file1 file2…. : Dosya isimleri listesi. İlk dosya geçerli dosyadır ve tampon belleğe okunur ve imleç tamponun ilk satırına konumlandırılır. Diğer ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ dosyaya geçmek istenirse komut durumunda w ile değişiklik kaydedilip, :next (n) komutuyla ,önceki dosyaya :previous (p) komutuyla geçilebilir. $ vim - : Metin vim tamponuna standart girişten aktarılır. Metin girişini sonlandırmak için CTRL-D tuş kombinasyonu kullanılır. $ vim +150 deneme : Deneme isimli dosyayı aç ve imleci 150. satıra konumlandır $ vim + deneme : Deneme isimli dosyayı aç ve imleci son satıra konumlandır. $ vim + /vt100 termcap : Deneme isimli dosyayı aç ve imleci içinde vt100 geçen ilk satıra konumlandırır. $ vim -R : Dosyanın salt-okunur açılmasını sağlar. -R yerine view kullanılabilir. Halen tampon bellekte düzenleme yapmaya devam edilebilir. Kayıt amaçlanırsa dosya güncellenmez, ancak kayıt yapılmaya karar verilirse komut durumunda “:w!“ komutu kullanılır. Veya “:set noro” komutuyla saltokunurluk resetlenir. $ vim -gvim yada -gview : GUI sürümü, -g seçeneği de vardır. Ancak derleme aşamasında desteğin verilmiş olması gerekmektedir. $ vim -b : Binary mode. Binary yada çalıştırılabilir dosyaları düzenleyebilmek için bir kaç seçeneğin ayarlandığı (set) açılış modu. $ vim -C : Uyumluluk modu. Eğer kullanıcının ev dizininde .vimrc dosyası mevcut olsa bile, vim çoğunlukla vi gibi davranır. -N seçeneği bu modu resetler. $ vim -h : Kabuk komut satırında vim başlangıç seçenekleri için basit yardım almayı sağlar. $ vim -l : LISP mode. Lisp ve snowmatch seçeneklerini geçerli kılar (set). $ vim -m : Dosyaların üzerinde değişiklik yapma seçeneğini devre dışı bırakır. write seçeneğini resetler. $ vim -n : Takas (swap) dosyası kullanımı kaldırır. Bir problem esnasında henüz yazılanlar diske kaydedilmemiş ise kurtarılmaları mümkün olmaz. Ayrıca Komut durumunda “ :set uc=200” komutuyla set edilir. Bu komut bir kez daha verilecek olursa unset edilir. $ vim -r : Kurtarma işlemi gerçekleştirebilmek amacıyla düzenlenmekte olan dosyalara ait takas dosyalarını listeler. $ wim -r {file} : Kurtarma modu, bozulmuş dosyanın takas dosyası kullanılarak (dosya uzantısı .swp seklindedir) kurtarma işlemi gerçekleştirilir. Yardım almak için “:help recovery” komutu kullanılabilir. $ vim -T {terminal} : Vim’in -T seçeneği ile belirtilen terminal emülasyonunu kullanarak açılmasını sağlar. $ vim -x : Vim ‘in kelimeleri dosyaya yazarken kullanıcıya sorarak öğrendiği bir anahtar kelimeye göre şifreleme yapacak şekilde başlatılmasını sağlar. 3.3.2. Dosya Kaydetme ve Çıkma ESC tuşuna basıldıktan sonra “:”(colon) ile komut durumuna geçilir ve sırayla “ wq “ (write & quit ) komutları verilir. Böylece dosya kaydedilip vim’dan çıkılmış olur. 3.3.3. İmleç Dolaştırma Komutları Komut durumunda iken yön tuşları çalışmıyorsa, bu tuşlar ile text üzerinde dolaşmak mümkün olacaktır. ¾ h : sola bir karakter ¾ j : aşağı bir karakter ¾ k : yukarı bir karakter ¾ l : sağa bir karakter Return ve BackSpace tuşları sırasıyla, satırbaşı ve bir geri anlamına gelir. Birçok vim komutu gibi, imleç hareket komutları da başına sayı konularak, bu sayı kadar komutun işletilmesi sağlanabilir. Örnek 3.3: 3h : 3 karakter sola 2k : 2 karakter yukarı gibi, 3.3.4. En Çok Kullanılan Komutlardan Bazıları ¾ ¾ ¾ ¾ 0 (sıfır) : imlecin bulunduğu satırın başına git $ : imlecin bulunduğu satırın sonuna git w : bir sonraki kelimenin başına git b : bir önceki kelimenin başına git 3.3.5. Ekleme Komutları ¾ ¾ ¾ i : imlecin üzerinde bulunduğu karakterin solundan başlayarak ESC tuşuna basılıncaya kadar basılan her karakteri metine ekler. Varsa eski metin sağa doğru ötelenir. a : imlecin üzerinde bulunduğu karakterin hemen sağından başlayarak ESC tuşuna basılıncaya kadar basılan her karakteri metine ekler. Varsa eski metin sağa doğru ötelenir. A: imlecin üzerinde bulunduğu satırın sonundan başlayarak ESC tuşuna basılıncaya kadar basılan her karakteri metine ekler. Varsa eski metin sağa doğru ötelenir. 3.3.6. Yazı Silmek ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ x : imlecin üzerinde bulunduğu karakteri siler 3x : imlecin üzerinde bulunduğu karakter dahil, sağa doğru 3 karakteri siler dw : imlecin üzerinde bulunduğu yerden kelime sonuna kadar sil 2dw : imlecin üzerinde bulunduğu yerden başlayarak 2 sözcük sil dd : imlecin üzerinde bulunduğu satırı sil 2dd : imlecin üzerinde bulunduğu satırı ve altındaki satırı sil d) : imlecin üzerinde bulunduğu cümleyi sil d} : imlecin üzerinde bulunduğu paragrafı sil D : imlecin üzerinde bulunduğu satırın sonuna kadar sil d$ : imlecin üzerinde bulunduğu satırın sonuna kadar sil (D ile özdeş) dw : imlecin üzerinde bulunduğu kelimeyi sil db : imlecin üzerinde bulunduğu kelimeden bir önceki kelimeyi sil ¾ Yanlışlıkla silme işlemi yaparsanız; u (undo) komutuyla son silme işlemini geri döndürebilirsiniz. Aslında sadece son silme işlemini değil son değişikliği geri döndürür. Son sildiğimiz metin parçasını geri getirmek için p (put) komutu kullanılabilir. Ancak bu paste işlemidir. p komutu bulunulan satırın altına yapıştırır. 3.3.7. Metin Bloklarının Yerini Değiştirme vim editörü ile metin parçalarının yerini değiştirmek için, önce eski yerinden silmeli, daha sonra yeni yerine yapıştırmalısınız. dd komutu ile satır silinir. ESC’ye basılarak ve yön tuşları ile yapıştırılacak yere gidilip, p komutu ile yapıştırılır. 3.3.8. Kopyalama (Yank Komutu) Kopyalanacak metin bloğunu önce bulunduğu yerde y (yank) komutuyla veya Y ile (veya YY) copy yapılır daha sonra kopyalanacak yere put ile yapıştırılır. p bulunulan satırın altına , P ise üstüne yapıştırır. “yw” ve “yb” (bir önceki) kelimeleri kopyalar, “ y) ” cümleyi “ y} ” paragrafları kopyalar. vim’da son işletilen komut “ . ” ile tekrarlanabilir. 3.3.9. Kopyalama (Yank Komutu) ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ I (Insert) : imlecin bulunduğu satırın başına ekle o (open line) : imlecin bulunduğu satırın altına ekle O (open above) : imlecin bulunduğu satırın üstüne ekle s ( substitute char) : imlecin bulunduğu yerdeki karakteri sil ve yerine yeni metni ekle S ( substitute line) : imlecin bulunduğu yerdeki satırı sil ve yerine yeni metni ekle r ( replace char) : imlecin bulunduğu yerdeki karakteri bir sonra basılacak olan ile değiştir r ( replace text) : imlecin bulunduğu yerden itibaren yeni girilecek metni eski metin ile değiştir j (join) : imlecin bulunduğu satırın arkasındaki satırı birleştir cw ( change word) : imlecin bulunduğu sözcüğü yeni girilecek sözcükle değiştir. 3.3.10. Metin İçinde Dolaşmak ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ CTRL - F (forward) : Bir ekran ileri CTRL - B (back) : Bir ekran geri CTRL - D (down) : Bir ekran ileri CTRL - U (up) : Bir ekran geri CTRL - R (redraw) CTRL - Y : ekranı bir satır aşağı kaydır. İmleç yerinde kalsın CTRL - E : ekranı bir satır yukarı kaydır. İmleç yerinde kalsın z (enter) : imlecin bulunduğu satır ekranın en üstüne gelecek şekilde ekranı yeniden düzenle. z . : imlecin bulunduğu satırı ekranın ortasına getir. z - : imlecin bulunduğu satırı ekranın en altına getir. H (Home) : ekranın sol üst köşesine git. ¾ ¾ ¾ ¾ ¾ M (Mıd Screen) : ekranın ortasına git. L (Lower Screen) : ekranın sol alt köşesine git. 200 z (return) : 200. satırı ekranın en üstüne getir. 4H : ekranın en üst satırının 4 altındaki satıra git. 5L : en alttan 5 satır yukarı git. 3.3.11. Metin İçerisindeki Satır No’ları Görüntülemek ESC’ye basarak “ : ” ile komut moduna geçildikten sonra, : set nu tanımlaması ile satır numaraları görüntülenebilir. Yine “ : ” komut durumunda “ # ” ile imlecin hangi satırda bulunduğu öğrenilebilir. İstenilen satıra ise ESC ‘ye bastıktan sonra “:satır numarası” ile gidilebilir. 3.3.12. Tuş Kısaltmaları Çok sık tekrarlanan kelime yada kalıpları kullanmak için “ : ab kısaltma açıkform ” komutu ile kısaltma yapılabilir. Kısaltmanın iptali için ise “ : unab kısaltma ” kullanılır. : ab kısaltma açıkform : unab kısaltma Eğer sık kullanılan vim komutlarına ilişkin bir kısaltma tanımlanacak ise bu tanımlar “ : map ” komutu ile yapabilir. Örnek 3.4: : map ^Y dd bu sayede CTRL - Y ‘nin dd ile aynı işi yapılması sağlanabilir map komutu ile F2 fonksiyon tuşuna bunu yaptırmak istiyorsanız, : map #2 dd şeklinde bir tanımlama yeterli olacaktır. Sadece :map komutu ile yapılmış olan tanımlamalar listelenebilir. tanımlamalar, unmap komutuyla kaldırılabilir. : unmap # function_key_number Bu tür tanımlamaların vim’ya her girdiğinizde geçerli olması isteniyorsa, home dizininizde .exrc isimli bir dosya yaratılıp içine bu tanımlamaların yazılması gerekir. Yada komut durumunda iken :mkexrc komutu ile .exrc dosyası son değişiklikler ile yaratılabilir ve güncellenebilir. Böylece vim her açıldığında bu tanımlamalar otomatik olarak geçerli olacaktır. 3.3.13. Bazı vi Tanımları Kısaltm Arama a Seçeneği ic Varsayılan (Default) ignorecase noic magic magic ws wrpscan nows nu ai number autoindent nonm noai Açıklama Arama sırasında case-sensitivity uygulanmaz Özel karakterler geçerli kılınır Aramalar dosyanın başından itibaren yapılır Satır numaraları görüntülenir Auto indent Tablo 3.1 : Bazı vi tanımları. 3.3.14. Kayıt Arama ve Değiştirme Komut durumunda iken “ / ” ile ileri, “ ? ” ile geri aramayı yönlendirmek mümkündür. “ ^ ” karakteri satır başını, “ $ ” karakteri ise satır sonunu belirtir. örnekler: / term (ileri doğru term kelimesi aranıyor) ? term (geri doğru term kelimesi aranıyor) aramayı devam ettirmek için n (next) ile ileri doğru, N ile geriye doğru aramaya devam ettirilebilir. Bulup değiştirmek için ise komut durumuna geçilir “ : ” ve : s /termcap/TERMCAP | yazılır. s komutu için örnekler : :1,100 s/termcap/TERMCAP/g Dosyanın 1 ve 100.cü satırları arasında rastlanan tüm termcap’leri TERMCAP ile değiştir. :1, $ s/termcap/TERMCAP/g Dosyanın başından sonuna kadar aynı işi yap : % s/termcap/TERMCAP/g Tüm dosya için aynı işi yap :% s/termcap/TERMCAP/gc “ c ” onaylama (confirmation) : g/pattern1/s/pattern2/pattern3/g Tüm dosyada pattern1’i ara, bulunca o satırlardaki pattern2 ‘leri pattern3 ile değiştir : % s/pattern/\U &/g Tüm dosyadaki pattern dizilerini büyük harf yap (/U), “ & ” pattern1 anlamındadır. : g/^$/d Dosya içindeki tüm boş satırları sil 3.3.15. Dosya İşlemleri ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ZZ (:wq komutuna eşdeğerdir) :q (quit) :q! (yapılan değişiklikleri kaydetmeden çık) :w (dosyayı kaydet vi’da kal) :wq (write and quit) :x (vi’dan çık dosya değişmiş ise dosyayı kaydet) :w dosya2 (üzerinde çalışılanları dosya2’ye kaydet) :1, 100 w dosya2 (1 ile 100 ncü satırları dosya2’ye kaydet) :! (komutu ile komut satırı (shell) programları kullanılabilir) : r !prog prog bir program ise çalıştırılacak ve çıktısı vim ile edit etmekte olduğunuz dosyada imlecin olduğu yere yerleşebilecektir.Komut tamamlama burada da çalışacaktır 3.3.16. Yazım Vurgulama Sadece Linux box tty’lerde ve TERM=linux çevre değişkeni için geçerli, örneğin MS windows telnet ile bağlanıldığında, normal konsoldan sisteme girmiş yada unix box dan başka bir unix box’a telnet ile bağlanmış bir kullanıcıdan farklı olarak bazı keystrokelar (tuş işlevleri) çalışmaz. Bu gereklerin yanında /usr/share/vim/vim60z/syntax/syntax.vim dosyasının da sistemde bulunması lazımdır. Sentaks vurgulama sistemde varsayılan ayar olarak mevcuttur. Ancak dosya uzantısına bağlı olarak çalışır. Vim için tanımlanmış değişik türde dosyalar için sentaks renklendirme tanımlamaları aşağıdaki dosyalarda yapılmıştır. Ayrıca renklendirme aktif değil ise komut durumuna geçilerek “:syntax on” komutuyla aktifleştirilebilir. /usr/share/vim/vim60z/syntax/*.vim 3.4. Mcedit mcedit, UNIX sistemler için geliştirilmiş, oldukça yetenekli bir terminal metin editörüdür. mcedit, mc (Midnight Commander) yardımcı programı ile birlikte aynı paket (mc-4.5.51-32.i386.rpm ) içinde gelir ve mc ‘nin içsel (internal) editörü dür. Aynı zamanda, bir X-Window editörü olan cooledit’in terminal versiyonudur. Diğer tam ekran editörlerin sahip olduğu birçok özelliğe sahiptir. Açabileceği dosya büyüklüğü 16MB ile sınırlandırılmıştır ve binary dosyaları kusursuzca düzenleyebilmektedir (edit). Diğer özellikleri; ¾ Blok kopyalama, taşıma, silme, kesme ve yapıştırma ¾ Undo yeteneği (CTRL-U yada F9 + Edit + Undo) ¾ Pull-Down menüler, dosya ekleme (file insertion) çıkarma ¾ Macro tanımlama, regular expression (regex) kullanarak arama ve değiştirme (ve ayrıca scanf - printf arama ve değiştirme) ¾ Shift ve ok tuşlarını kullanarak MSW-MAC metin vurgulama (text highlighting) - (sadece Linux konsolu için geçerli) ¾ Insert ve Overwrite seçim düğmesi (toggle) ¾ Word wrap, çeşitli tabbing seçenekleri, çeşitli dosya tipleri için sentaks vurgulama (syntax highlighting) ¾ indent ve ispeel gibi kabuk programlarını kullanarak metin düzenleme Editörün kullanılması çok kolaydır, ve herhangi bir kullanım kılavuzu gerektirmez. Hangi tuşun ne işe yaradığını görmek için, uygun pull-down menüsüne bakmak yeterlidir. Diğer tuşlar; ¾ Shift ve ok tuşları, metin vurgulama (işaretleme) için kullanılır. (sadece Linux konsolu için geçerli) ¾ CTRL-Insert, işaretlenmiş metin bloklarını $HOME/.cedit/cooledit.clip dosyasına kopyalar (copy to clipboard). Shift-Ins ise bu blokları bu dosyadan imlecin konumlandığı noktaya yapıştırır (paste from clipboard). (sadece Linux konsol için) ¾ Shift-Del metin bloklarını $HOME/.cedit/cooledit.clip dosyasına bloğu metinden keserek kopyalar. CTRL-Del, ise aynı şekilde bloğu metinden siler. Tüm bu özellikler sadece Linux konsol için geçerlidir. Mouse ile metin bloklama yapmak mümkündür. Bunun için Shift tuşuna basılı tutularak mouse seçilecek olan metin bloğu üzerinde gezdirilerek bloklama gerçekleştirilir. İmleç istenilen yere konumlandırıldıktan sonra shift’e basılı tutularak ve sağ mouse tuşuna basılarak kopyalama yapmakta mümkündür. mcedit’in en önemli özelliklerinden biride macro tanımlayabilmesidir. Makro tanımlamak için şu adımlar izlenir; ¾ CTRL-R tuşuna basılır ve makroyu oluşturacak olan metin girilir ve tekrar CTRL-R tuşuna basılır ¾ Bu aşamada mcedit bu makronun hangi tuş ile kullanılacağını kullanıcıya sorar ve kullanıcının bu tuşu makroya atamasını bekler. Böylece makro tanımlanmış ve ilgili karaktere atanmış olur. Makronun işletilmesi için CTRL-A ve atanmış tuş kullanılır.Makro işletilmesi için aynı zamanda CTRL, META key yada ESC (yapay terminalden sisteme bağlanılmış ve mcedit çalıştırılmış ise yada terminal emülasyonunu gösteren çevre değişkeni TERM=vt100 olarak tanımlanmış ise) tuşlarından biri ve bu atanmış tuş kullanılabilir. Makro atanacak tuşun başka bir fonksiyon için kullanılıp kullanılmayacağı kontrol edilir. Bir kez tanımlandığında makro komutları $HOME/.cedit/cooledit.macros dosyasına yazılır. Aynı mcedit oturumu içinde bu makrolar tekrar kullanılacak ise bu dosya edit edilmemelidir. Çünkü mcedit makro tanımlamalarını belleğe tamponlar. mcedit makro atanmış bir tuşa, yemi makro atanmasına izin vermektedir. mcedit’in eski sürümlerinde olduğu gibi artık dosyasının bu amaçla edit edilmesine gerek yoktur. Herhangi mcedit oturumunda tanımlanmış makroların tüm mcedit oturumlarında geçerli olması isteniyorsa tüm oturumlar kapatılıp tekrar açılmalıdır. 3.4.1. Mcedit Parametreleri ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ mcedit komut satırından çalıştırılırken $ mcedit +number dosya +number parametresi kullanılırsa, ilgili dosyanın açılarak imlecin +number parametresi ile belirtilen satıra konumlandırılması dağlanabilir. mcedit -b, mcedit in siyah/beyaz ekran modu ile açılmasını sağlar mcedit -c, mceditin varsayılan (default) ekran modu siyah/beyaz olan terminallerde renkli modda açılmasını sağlar. mcedit -C =, :=, varsayılandan farklı bir renk grubu (color set) kullanılmasını sağlar. Burada anahtar kelime (keyword) normal,selected, marked, markselect, errors, reversemenu, menusel, menuhot, menuhotsel, gauge seçeneklerinden biri, renkler ise, black, grey, red, brightred, green, brightgreen, brown, yellow, blue, brightblue, magenta, brightmagenta, cyan, brightcyan, lightgray ve white olabilir. mcedit -d ,editörden mouse desteğini kaldırır. mcedit -f ,midnight commander dosyaları için arama yolunu (search path) görüntüler. mcedit -t , ancak “mc” kaynak kodu (source code), S-Lang ve terminfo veritabanı ile birlikte derlendiği zaman kullanılabilir. Bu parametre, midnight commander’ın herhangi bir terminal bilgisini yorumlarken sistem çaplı terminal veritabanı (system-wide terminal database) üzerinde tanımlı terminal bilgisi yerine TERMCAP değişkeninde tanımlı olan değerin kullanılmasını sağlar. mcedit -V ,programın sürümünü görüntüler. mcedit -x, xterm terminal modunun kullanılmasını sağlar. xterm uyumlu terminallerde çalışırken kullanılır. 3.4.2. Mcedit’in Diğer Özellikleri mcedit editörünün diğer özellikleri arasında , sentaks vurgulama (text highligthing), C dosya düzenleme (C formatter), e-mail gönderebilme sayılabilir. C dosya düzenleme herhangi bir C kaynak kodunun okunabilirlik kurallarına uyulmadan yazılması durumunda mcedit editörünün C-formatter özelliği kullanılarak kaynak kodun düzenlenmesi sağlanabilir. “C kodu”, bloklandıktan sonra sırayla F9, Command, indent C-Formatter seçilerek düzenleme yapılabilir. Ancak bunun gerçekleşmesi için, kullanıcının ev dizini altındaki $HOME/.cedit/ dizininde “edit.indent.rc” isminde çalışabilir ($ chmod 700 edit.indent.rc) bir dosya varsa işlem gerçekleştirilebilir. Bu dosya bir shell scriptidir. #!/bin/sh # Use $HOME instead of ~ if this doesn't work. # You may also have to use a different redirection # syntax for some machines. /usr/bin/indent -kr -pcs ~/.cedit/cooledit.block >& /dev/null cat /dev/null > ~/.cedit/cooledit.error Aynı şekilde, yazım hatalarını görebilmeye yarayan ispell özelliğinin kullanılabilmesi için ise yine kullanıcının ev dizini altındaki $HOME/.cedit/ dizininde “edit.spell.rc” isimli shell scriptinin varolması ve içindede aşağıdakilerin yazması gerekmektedir. #!/bin/sh # Use $HOME instead of ~ if this doesn't work. # You may also have to use a different redirection # syntax for some machines. /usr/local/bin/ispell ~/.cedit/cooledit.block >& /dev/null cat /dev/null > ~/.cedit/cooledit.error Takip eden örnekte, okunabilirlik kurallarına uyulmadan yazılmış basit bir C programının nasıl bloklanarak düzenlendiği gösterilmiştir. mcedit bu şekilde düzenlemeleri sadece C kaynak kodu için değil, shell scriptleri, perl, java ve daha birçok kaynak kodu için gerçekleştirebilir. mceditin metin renklendirme özelliği ise yine bu tür dosyalar için geçerlidir. Önemli olan dosyanın isminin ilişkili dosya türünü belirtir bir adlandırma ile yapılmasıdır ( deneme.c, test.pl gibi). Dosya türüne göre düzenleme ve renklendirme tanımlamaları /usr/lib/mc/syntax dizini altındaki .syntax dosyalarında yapılmış bulunmaktadır. Bu sentaks dosyaları kullanıcı mcediti açtığında, $HOME/.cedit/Syntax dosyası ile birlikte yorumlanır. Eğer bu dizinde($HOME/.cedit/ ) herhangi bir dosyası varsa bu dosya düzenleme kuralları için öncelikli olacaktır. 3.5. Gelişmiş Ofis Yazılımları 3.5.1. OpenOffice.org OpenOffice.org, 1980'li yılların ortalarından beri geliştirilen StarOffice'in kaynak kodlarının açılmasıyla meydana gelen oluşumun ve programın adıdır. Etkin olarak geliştirilmesi devam eden özgür yazılım projelerinin başında gelir. OpenOffice.org içinde barındırdığı programlarla çağdaş bir ofis yazılımından beklenilen görevleri rahatlıkla yerine getirmektedir. Bu görevleri de şöyle ayırabiliriz. ¾ ¾ ¾ ¾ ¾ OpenOffice.org Writer (Kelime İşlemci) OpenOffice.org Calc (Hesap Tablosu) OpenOffice.org Impress (Sunum Hazırlama) OpenOffice.org Draw (Vektörel Çizim) OpenOffice.org Base (Veritabanı) ¾ OpenOffice.org Math (Formül hazırlama) OpenOffice.org'un başlıca özellikleri; ¾ Özgür yazılım oluşu ¾ Özgür yazılımlarla uyumlu çalışabilme ¾ MS Office dosyalarını açma ve Ms Office biçiminde kaydetme ¾ Belgeleri PDF olarak kaydetme ¾ OASIS (Open Standards XML File Format) belge biçimi ¾ Sayısal imza desteği 3.5.1.1. OpenOffice.org Writer (Kelime İşlemci) Bir kelime işlemci programda (Ms Word gibi..) yapılabilen tüm işlemler bu Writer programında da yapılabilmektedir. Gelişmiş bir kelime işlemcidir. 3.5.1.1.1. Araç Çubukları ve Menüler Resim 3.1: OpenOffice.org Writer programı araç çubukları. Yukarıda görülen görüntü üzerinde “Menü Çubuğu”, “Standart Araç Çubuğu” ve “Biçimlendirme Araç Çubuğu” bulunuyor. Genel olarak çok kullanılan bu iki araç çubuğu Writer ilk açıldığında öntanımlı araç çubukları olarak yerlerini alırlar. 3.5.1.1.2. Çalışma Alanı Bu alanın hemen altında ise çalışma alanı bulunmaktadır. Bu alan yazı yazmak için kullanılan alandır. Bu alanda yazıların yazıldığı alan dışında kaydırma çubukları, çalışma alanını şekillendirmek için cetveller ve paragraf ayarları için küçük yardımcı işaretler ve sekmeler bulunmaktadır. Resim 3.2 : Çalışma alanı. 3.5.1.1.3. Alt Araç Çubuğu ve Bilgi Alanı Writer ekranında alt kısımda ise alt araç çubuğu ve bilgi çubuğu bulunmaktadır. Alt araç çubuğunda genellikle Form araç çubuğu varsayılan olarak açılır. Bilgi çubuğu ise o anda açık olan belgeyle ilgili değişik ayrıntılar (sayfa sayısı vb..) içermektedir (Resim 3.3). Resim 3.3 : Alt araç çubuğu ve bilgi çubuğu. Bu alanda “Form Araç Çubuğu” var sayılan olarak açılışta gelir. En altta bulunan bilgilendirme alanı açık olan belge hakkında birçok bilgiyi içerir. Örneğin, çalışma alanı ölçeği, sayfa sayısı gibi... 3.5.1.1.4. Biçemler ve Biçimlendirme Penceresi Bu alanların dışında görüntülenecek diğer alan ise kısayolu F11 olan “Biçemler ve Biçimlendirme” penceresidir. Bu pencere sıkça kullanılan bir penceredir. Resim 3.4: Biçemler ve Biçimlendirme penceresi. 3.5.1.1.5. Özelleştirme Kullanıcı Writer'ı kendi kullanım alışkanlıklarına göre özelleştirebilir. Bunun için “Araçlar/Özelleştir” menü seçeneği kullanılır. Bu alandan menüler, klavye, araç çubukları ve makro tanımları kolayca yapılabilir. ¾ Kullanıcı Writer menülerinde değişiklik yapmak isterse ya da kendine özel menü yapmak isterse “Menüler” seçeneğini, ¾ Klavye kısayollarını değiştirmek için ya da kısayol atamak için “Klavye” seçeneğini, ¾ Araç çubuklarında değişik yapmak isterse ya da kendi araç çubuklarını tanımlamak için “Araç çubukları” seçeneğini, ¾ Bazı işlemlere makrolar atamak veya değiştirmek için “Olaylar” seçeneğini Kullanabilir. 3.5.1.1.6. Çalışma Sayfası Genelde kelime işlemci kullananlar öntanımlı ayarlara bağlı kalmak istemezler ve birçok ayarla oynayarak kelime işlemci ve belgeyi istedikleri düzeye getirirler. Şimdi bunları nasıl yapacağımıza bakalım. İlk olarak sayfa üzerinde ne gibi değişikler yapabiliriz onu öğrenelim. Bunun içine “Biçim/Sayfa” menü seçeneğini kullanarak ilgili pencereyi karşımıza getirelim. ¾ ¾ Bu pencerede karşımıza gelen ilk seçenek Yönet seçeneğidir. Burada öntanımlı olarak kullanılan biçemi görüyorsunuz. Diğer seçeneklerde yapacağınız değişikler öntanımlı biçemin sizin istediğiniz gibi davranmasını sağlar. Sayfa seçeneğine geldiğimizde buradan kağıt boyutunu, metin yönünü ve kenar boşluklarını kolayca ayarlayabilirsiniz. Resim 3.5: Sayfa Biçem Ekranı. ¾ Arkaplan seçeneğinde belgeniz için kullanacağınız arkaplan rengini ayarlayabilirsiniz. ¾ Üst bilgi ve Alt bilgi alanlarını kullanarak sayfa içinde bunlara ayrılacak alanları ayarlayabilirsiniz. ¾ Kenarlık bölümden sayfa için kullanacağınız kenarlığın özelliklerini istediğiniz şekilde değiştirebilirsiniz. ¾ Sütun kısmında ise sayfayı kaç sütunlu kullanacağınızı belirleyebilir ve sütun ayarlarını yapabilirsiniz. ¾ Dipnot kısmında ise eğer kullanırsanız dipnotun nasıl davranacağını belirleyebilirsiniz. Buradaki ayarlamalar için çok fazla ayrıntıya girmedik. Bölümler içindeki yönlendirici ifadeler istediğiniz ayarlamayı kolayca yapmanızı sağlayacaktır. 3.5.1.1.7. Sayfa Özellikleri Oluşturduğunuz belgenin özelliklerine “Dosya/Özellikler” menü seçeneği ile ulaşabilirsiniz. Bilgilendirme amaçlı olan bu pencereden bazı tanımları da isteğinize göre yapabilirsiniz. 3.5.1.1.8. Alan Ekleme Belge içinde bazı alanların olmasını isteyebilirsiniz. Mesela sayfa numaraları, yazar adı gibi... Bunları eklemek için “Ekle/Alanlar” menü seçeneği altındaki seçeneklerden istediğinizi seçmek yeterli olacaktır. 3.5.1.1.9. Üstbilgi ve Altbilgi Ekleme Resim 3.6:Üst Bilgi ve Alt Bilgi Ekleme Belge içine üst ve alt bilgi eklemek istediğimizde “Ekle/Üst bilgi - Alt bilgi” seçeneklerini kullanabilirsiniz. Üst ve alt bilgi seçeneğine geldiğinizde çıkan “Varsayılan” seçeneği daha önce “Biçim/Sayfa” penceresinde yapmış olduğunuz üst ve alt bilgi ayarlarına göre belgenize alanları ekleyecektir. Bu ayarları değiştirmek için yine “Biçim/Sayfa” penceresindeki ayarlar bölümünü kullanmalısınız. Daha gelişmiş ayarlamaları ise biçemler yardımıyla yapabilirsiniz. İlerleyen sayfalarda biçemler konusunda nasıl yapılabileceğini ayrıntılarıyla açıklamaya çalışacağız. 3.5.1.1.10. Resim Ekleme Belge içine resim eklemek için “Ekle/Resim” seçeneğini kullanıyoruz. Bilgisayarınızdan resim ekleme isterseniz. “Dosyadan” seçeneğini seçerek resmin yerini göstermeniz yeterli olacaktır. Tarayıcıdan veya ona benzer kaynaktan resim eklemek isterseniz. “Ekle/Resim/Tara” seçeneği altında “Kaynak seç” seçeneğini seçip kaynağı göstermeniz gerekli... Karşınıza gelen iletişim penceresi üzerinde gerekli ayarları yaptıktan sonra resminizi belgenize ekleyebilirsiniz. 3.5.1.1.11. Yazıtipi Özelliklerini Belirleme Bir belge hazırlarken en çok başvurduğumuz yerlerin başında yazı tipi ayarlamalarının yapıldığı yerler gelir. Ayar seçeneklerine ulaşmak için birkaç yolumuz var. Bunlardan ilki “Biçim/Karakter” menü seçeneğini kullanmaktır. ¾ Yazı tipi: Bu seçeneğini kullanarak geçerli yazı tipini, türünü ve boyutunu belirleyebilirsiniz. ¾ Yazı tipi efektleri: Yazılarınız için renklendirme ve farklı biçimleri bu alandan belirleyebilirsiniz. Bunların birçoğuna biçimlendirme araç çubuğu üzerinde de ulaşacağınızı belirtelim. Resim 3.7:Karakter Özellikleri Ekranı. ¾ ¾ ¾ Konum: Yazılar için konumlandırmayı buradan yapabilirsiniz. Örneğin alt simge ve üst simge kullanmak ve dikey yazı yazmak gibi. Köprü: Metin içinde bir web adresine ya da yerel bir alana bağlanmış yazılar için ayarları buradan yapabilirsiniz. Arkaplan: Yazılı alan için arkaplanı buradan belirleyebilirsiniz. Yukarıda bahsettiğimiz iki konuyu içine alan ayarlamaların birçoğuna herhangi bir metin üzerinde farenize sağ tıklayıp ulaşabilirsiniz. Bu da bu ayarlara ulaşabileceğiniz diğer bir yöntem. 3.5.1.1.12. Biçemlerle Çalışmak OpenOffice.org tümden saran bir özellik olan biçemler tam olarak çalışmayı üst düzeye çıkaran bir unsur ve herkesin bu özellikten yararlanmasını isteriz. OpenOffice.org içinde her program için (Writer, Calc, Impress vb.) belirlenmiş hazır biçemler vardır. Bunlar programın kurulumda gelir ve genel olarak ihtiyaçlarınıza cevap verecek düzeydedirler. Ama herkesin kullanım alanına göre değişik ihtiyaçları olabilir. Bu durumda kendi biçemlerimizi yaratarak çalışmayı daha zevkli hale getirebiliriz. Bunu nasıl mı yapacağız? Hadi birlikte yapalım :-) Aşağıda gördüğünüz “Biçemler ve Biçimlendirme” penceresiyle baya haşır neşir olacağınızı daha önce söylemiştik. Bu pencere üzerinde listelenen biçemleri alttaki açılır listeleyici ile gruplandırabilirsiniz. Mesela o an için sadece “Numaralama” için uğraşıyorsanız. Sadece numaralama biçemlerini görürsünüz. Yukarıda simgelerle ayrılmış kısım ise çok kullanılan biçemlerin kısayolları olarak görev yapıyor. Resim 3.8 : Biçemler ve Biçimlendirme Ekranı. Yazı içinde kullandığınız başlıklar, düz yazılar, alıntı yazılar ve bunun birçok karmaşık alandan oluşan bir belge hazırlamaya başladınız diyelim. Bunlar için ayrı ayrı biçem oluşturalım şimdi... Biçemleri önceden oluşturabileceğiniz gibi, yazınızı yazarken etkileşimli olarak oluşturabilirsiniz. 3.5.1.2. OpenOffice.org Calc (Hesap Tablosu) Basit ya da en karmaşık hesaplamalar için Calc'ı kullanabilir, birçok özelliği ve veritabanı bağlantılarıyla hesaplarınızı kontrol edebilir, çeşitli raporlar, analizler, tablolar, bu verilere bağlı olarak değişkenlik gösteren çizelge ve grafikler hazırlayabilirsiniz. Resim 3.9: OpenOffice.org Calc programı genel görünüm. Genel görünüm olarak 256 sütun ve 65,536 satırdan oluşan hesap tablosu programımız Calc'da Writer'dan farklı olarak sadece “Formül Araç Çubuğunun” ek olarak yer aldığını söyleyebiliriz. Elbette, çalışma alanı da Calc'a göre düzenlenmiştir. Şimdi Calc çalışma alanına ve çalışma mantığına bakalım. ¾ Hücre : Hesap tablosu programlarının temelini oluşturur. Bütün hesaplamalar hücreler üzerinde yapılır. Resim 3.10 : Hücre tanımı. Resim 3.11: Satır ve Sütun Yukarıdaki resimde “Formül Çubuğu” üzerinde sol tarafta bulunan alanda ise hücre adresi gösterilir. ¾ Satır : Yatay olarak dizilmiş hücreler bütünü satır olarak adlandırılır. Sol kenarda bulunan sayılar satır adlarını gösterir. ¾ Sütun : Dikey olarak dizilmiş hücreler bütünü sütun olarak adlandırılır. Üst kenarda bulunan harfler sütun adlarını gösterir. Herhangi bir hücreyi seçtiğiniz zaman sol üst köşede gösterilen yer sütun ve satırların kesiştiği alan olur. Örneğin Resim 3.11’de gördüğünüz üzere seçili alanımız B2'dir. Bunun anlamı hücremiz B sütunu üstünde 2. satırdadır. Bütün seçilmiş alanlar için bu geçerlidir. Resim 3.12 : Çalışma sayfaları. Sayfanın alt tarafında bulunan sayfa seçim alanında sayfalar arasında gezinebilir, sayfa isimlerini değiştirebilirsiniz. 3.5.1.2.1. Kullanım Genel olarak biçimlendirme özellikleri Writer'la hemen hemen aynıdır diyebiliriz. O yüzden biçimlendirme özelliklerine ayrıntılarıyla değinmeyeceğiz. Şimdi Calc ile neler yapabileceğimize bakalım. 3.5.1.2.1.1. İşlevler ve Formül Ekleme Örnek üzerinden giderek Calc'a bir işlem yaptıralım. A1: 90 ve A2: 45 hücrelerinde belirtilen değerler olsun. Şimdi bu iki sayıyı toplamak için formül girelim. Formül girmek için işlev sihirbazından yararlanacağız .Buraya ulaşmak için “Ekle/İşlev” menü seçeneğini ya da formül araç çubuğunda bulunan formül simgesine tıklayabilirsiniz. Şimdi karşımıza gelen işlev sihirbazınızı kullanarak işlememizi tamamlayalım. Resim 3.13 : İşlev ekleme ekranı. Örneğimizde toplama yapacağımıza göre sol taraftaki listeden “Topla” işlevini seçiyoruz. Seçimi yaptıktan sonra “İleri” diyoruz. Bir sonraki ekranda değişkenlerimizi (sayılarımızı) seçiyoruz. Bu seçimi yapmak için imlecimiz “Sayı1” kutucuğu içindeyken çalışma alanında sayının bulunduğu hücreyi tıklamak yeterli olacaktır. Aynı şekilde ikinci sayı içinde aynı işlemi yapıyoruz. Yaptığınız işlem alt tarafta formül olarak gözükecektir. Resim 3.14 : Değişken ekleme ekranı. İşlemlerimizi bitirmek için “Tamam” düğmesini tıklıyor ve sonucu görüyoruz. Resim 3.15 : İşlem sonucu. Genel olarak işlev kullanımının mantığı bu şekildedir. Hangi sonuca ulaşmak istediğinizi biliyorsanız ve değişkenleriniz de belliyse sonuca bu yolla kolayca ulaşabilirsiniz. 3.5.1.2.1.2. Aralık Adlandırma Daha önceden bahsettiğimiz hücre adlandırması zaman zaman karşılık hale gelebilir. Bunun için bazı hücrelere veya bir aralığa farklı isim atayabilirsiniz. Yapmanız gereken atama yapmak istediğiniz hücreyi veya aralığı seçip formül araç çubuğunu sol tarafında bulunan kutucuğa gerekli adı yazmanızdır. Resim 3.16 : Aralık adlandırma. Bu işlemi tek bir hücre içinde yapabilirsiniz. 3.5.1.2.1.3. Hücre,Satır ve Sütun Ekleme Çalışma alanı içinde zaman zaman yeni hücre, satır ve sütun eklemenizi gerektiren durumlar çıkabilir. Bunun için seçili hücre içinde sağ tıklayıp “Hücre ekle” seçeneğini tıklayabilirsiniz. Bu işlemin tersini yapmak için “Hücre sil” seçeneğini kullanın. Hücre eklemek için menüden “Ekle/Hücre” seçeneğini de kullanabilirsiniz. Resim 3.17 : Hücre Ekleme. Resim 3.18: Satır Ekleme. Satır eklemek için satır numaralarının üstüne gelip sağa tıklıyoruz. Gelen menü içinden “Satır ekle” seçeneğini seçiyoruz. Tam ters işlem olarak satır silme işlemini de buradan yapabilirsiniz. Satır eklemek için kullanabileceğiniz diğer bir seçenekte “Ekle/Satır” menü seçeneğidir. Sütun eklemek için sütun harflerinin üstüne gelip sağa tıklıyoruz. Gelen menü içinden “Sütun ekle” seçeneğini seçiyoruz. Tam ters işlem olarak sütun silme işlemini de buradan yapabilirsiniz. Sütun eklemek için kullanabileceğiniz diğer bir seçenekte “Ekle/Sütun” menü seçeneğidir. Resim 3.20: Sütun Ekleme. 3.5.1.2.1.4. Sütun Genişliği ve Satır Yüksekliği Belirleme Sütun genişliği: Üst tarafta bulunan sütun harfinin üstüne gelip sağa tıkladığımızda karşımıza gelen menüden “Sütun Genişliği” seçeneğini seçiyoruz. Karşımıza gelen iletişim penceresinden genişliği “cm” cinsinden yazarak işlemimizi bitiyoruz. Bu iletişim penceresine “Biçim/Sütun/Genişlik” menü seçeneğini tıklayarak da ulaşabilirsiniz. Satır yüksekliği: Yan tarafta bulunan satır numaralarının üstüne gelip sağa tıkladığımızda karşımıza gelen menüden “Satır Yüksekliği” seçeneğini seçiyoruz. Karşımıza gelen iletişim penceresinden yüksekliği “cm” cinsinden yazarak işlemimizi bitiyoruz. Bu iletişim penceresine “Biçim/Satır/Yükseklik” menü seçeneğini tıklayarak da ulaşabilirsiniz. 3.5.1.2.1.5. Otomatik Biçimlendirmeyi Kullanma Otomatik biçimlendirmeye belli biçim özellikleriyle donatılmış hazır tablo şablonu diyebiliriz. Tablonuzu hızla bir şekilde biçimlendirmek için bu özellik çok işinize yarayacaktır. Yeni oluşturacağınız bir tabloya uygulayabileceğiniz gibi var olan tablolarınıza da uygulayabilirsiniz. Şimdi bir örnekle nasıl yapacağımıza bakalım. İlk olarak tablo alanı olarak kullanacağınız alanı seçin. Daha sonra “Biçim/Otomatik Biçimlendirme” menü seçeneğini tıklayın. Resim 3.21 : Otomatik biçimlendirme. Karşımıza gelen iletişim penceresinden istediğiniz hazır tablo biçimini seçin. Bu işlemi yaptıktan sonra seçmiş olduğunuz alan belirlediğiniz tablo biçimi ile biçimlendirilecektir. 3.5.1.2.1.6. Calc’e Çizelge (Grafik) Ekleme Zaman zaman bazı verilerin grafik olarak görüntülenmesi gerekir. Bunu da yapmamızı sağlayan araçların başında çizelgeler geliyor. Şimdi küçük bir örnekle çizelgeleri sayfamıza nasıl ekleyeceğimize bakalım. Çizelgeyi oluşturmadan önce çizelgenin verilerini oluşturmamız gerekir. Bu şekilde bir veri dizisi oluşturduktan sonra ya da var olan bir veri dizisi alanın hepsini seçiyoruz. Seçili durumdayken “Ekle/Şema” menü seçeneği ile çizelge sihirbazımız ekrana geliyor. Resim 3.22 : Otomatik çizelge ekleme ekranı. Bu ekrandaki seçmiş olduğumuz aralığı görüyorsunuz. Diğer dikkat etmemiz gereken yer ise yapmış olduğumuz tanımlamaların çizelge içinde yer alması için “İlk satır başlıklarını kullan” ve “İlk sütunu etiket olarak kullan” seçeneklerini işaretlemek olacaktır. İşaretlemezsek bu tanımlamalar çizelge içine otomatik olarak eklenmez. Sonrasında uğraşmak zorunda kalabiliriz.”İleri” diyelim. Resim 3.23 : Çizelge türü belirleme. Kullanmak istediğimiz çizelge türünü seçelim. Yan taraftaki önizleme kutucuğunu işaretleyerek ne durumda olduğunuzu görebilirsiniz. “İleri” diyelim. Sonraki ekranda seçtiğiniz çizelge türüne göre ayarlamalarımızı yapalım. Ya da olduğu gibi bırakıp “İleri” diyebilirsiniz. Resim 3.24: Çizelge tanımları. Bu ekranda gerekli açıklamalarımız yazalım ve “Oluştur” düğmesini tıklayarak çizelgemizi oluşturalım. Resim 3.25: Sayfaya eklenen çizelgenin görünümü. Çok kısa sürede çizelgemizi oluşturup belgemiz içine yerleştirdik. Çizelge için diğer ayarlara farenizin sağ tuşunu kullanarak erişebilirsiniz. 3.5.1.3. OpenOffice.org Impress (Sunu Hazırlama) Sunum hazırlamak için bütün araçlar Impress içinde hazır, sadece onları nasıl kullanacağımızı bilmemiz gerekiyor. Dakikalar içinde bir sunumuzun olabilir. Nasıl mı? Şimdi beraber öğrenelim. OpenOffice.org Impress ilk açtığınızda karşınıza sunum hazırlama sihirbazı gelecektir. Resim 3.26: OpenOffice.org Impress sunu oluşturma sihirbazı. Bu ekranda bize sunulan üç seçenekten birini seçelim. Biz sunumuzu hazırlamak için “Boş Sunu” seçeneğini seçtik. Daha sonra ileri düğmesine tıklayalım. Resim 3.27 : Sunum Oluşturma sihirbazı tasarım seçim ekranı. İkinci ekranda sunumuz için arkaplanı seçerek sunumuzun şeklini seçiyoruz. Burada sunumuzu yapacağınız ortama göre bazı özel seçenekler verilmiş. Burayı amacımıza göre seçip ilerleyelim. Resim 3.28 : Sunum türü belirleme ekranı. Üçüncü ekrana geldiğimizde sunumuzda kullanmak istediğimiz efekt varsa onu seçiyoruz. Ekran geçiş hızlarını da buradan ayarlayabilirsiniz. Sununuzun da geçişleri elle yapacaksanız “Varsayılan” seçeneğini işaretli kalması gerekir. Otomatik geçiş isterseniz “Otomatik” seçeneği altındaki süreleri ona göre ayarlamanız gerekir. Oluştur'u tıklayarak sunumumuzu oluşturacağımız ekrana ulaşabiliriz. Ana çatımızı oluşturduktan sonra bazı küçük ayarlamalar ve içeriği girmek kalıyor. Onları da hep birlikte yapalım. 3.5.1.3.1. Çalışma Alanı ve Görünümler Resim 3.29’da gördüğünüz gibi Impress çalışma alanı üçe ayrılmıştır. Soldaki alanda slaytların sıralandığı alan vardır. Slaytlar arasında geçiş yaparken bu alandan yararlanıyoruz. Ortadaki alan etkin olarak işlem yaptığımız alan diyebiliriz. Bu alan Writer ve Calc'da bulunan çalışma alanına denk düşüyor. Yaptığımız işlemlerin sonuçlarını burada görüyoruz. Sağ tarafta bulunan alan ise slaytlarımıza renk katacak hazır şablonları ve düzenleri barındırıyor. Çalışma alanın üstünde yer alan görünüm seçeneklerine de zaman zaman ihtiyacımız olacak. Konu içinde bu alanları daha ayrıntılı açıklamaya çalışacağız. Şimdi kısaca değinelim. ¾ Normal: Genel olarak çalışma yapılan alandır. ¾ Anahat: Sunum başlıklarının sıralandığı görünümdür. ¾ Notlar: Not eklemek için kullanacağınız görünümdür. ¾ Sayfa sıralayıcısı: Sunum sayfalarının sıralandığı görünüm şeklidir. ¾ Slayt Görünümü: Sunumuzu izleyebileceğiz görünümdür. Resim 3.29 : OpenOffice.org Impress genel görünümü. 3.5.1.3.2. Slaytlarla Çalışma Sunumuzu hazırlarken slaytlarla yoğun olarak çalışırız. Yeni sayfalar ekleriz, sileriz, özel animasyonlar ekleriz. Bunları yapmak için sol tarafta bulunan alanı kullanacağız. Burada neler yapabileceğimize bakalım. ¾ Yeni Slayt Ekleme: Slaytı eklemek istediğinizin yerin üstündeki slayta sağ tıklayıp “Yeni Slayt” seçeneğini seçtiğinizde yeni bir slayt sayfası eklenecektir. Diğer bir seçenekte “Ekle” menüsünden Slayt... Menüsünü seçmektir. ¾ Slayt Silme: Silmek istediğiniz slaytın üstünde sağa tıklayıp “Slaytı Sil” seçeneği ile slaytı silebilirsiniz. ¾ Yeniden Adlandır: Slaytınızı yeniden adlandırmak isterseniz işlem yapmak istediğiniz slaytın üstüne sağa tıklayıp “Slaytı Yeniden Adlandır” seçeneğini seçin. Bu menü altında bulunan diğer seçenekler, slaytımıza ekleyeceğimiz düzenleri ve animasyon seçeneklerini sağ tarafta açmaya yarıyor. O kısma daha ileride değineceğiz. Slaytı daha ileride işe yarayabilir diyerek saklamak isterseniz “Slayt Gizle” seçeneğini kullanabilirsiniz. ¾ Resim ve Şekil Ekleme : Bir slayt sadece metinlerden oluşmaz. Zaman zaman sunumu güçlendirecek bazı araçları kullanırız. Bunun için alt tarafta bulunan çizim araç çubuğundan yararlanacağız. Resim 3.30 : Çizim araç çubuğu. Araç çubuğu kendi arasında bölümlere ayrılmış durumda, ilk bölümde şekiller bulunuyor. İkinci bölümde ise resimlere yer verilmiş. Son kısımda ise bunlarla ilgili ayarlamaları yapacağınız birkaç seçenek yer alıyor. Şimdi bu alanda “Yazı sanatı” seçeneği kullanarak bir örnek yapalım. Yazı sanatını eklemek için çizim araç çubuğu üzerinde “A” düğmesine tıklıyoruz. Karşımıza gelen yazı sanatı seçeneklerinden birisini seçerek “Tamam” diyoruz. Resim 3.31: Impress Yazı Sanatı. Şimdi yazı sanatımız slaytımızın içine yerleşti. Yapmamız gereken yazıyı değiştirdikten sonra özelleştirip işlemlerimizi tamamlamak. Yazıyı değiştirmek için yazı sanatı üzerinde çift tıklayalım. Ortaya halen bulunan yazı gelecektir. Buraya istediğimiz yazıyı yazıyoruz. Şimdi yazı üzerinde özelleştirmelerimiz yapabiliriz. Özelleştirmelerimizi yapmak için yazı sanatı üzerinde sağ tıklayıp karşımıza gelen menüden “Çizgi, Alan , Metin, Konum ve Boyut seçeneklerini kullanarak yapabilirsiniz. Örneğimizi biraz özelleştirdik, bakalım nasıl gözüküyor. Resim 3.32 : Yazı sanatı örneği. Siz de istediğiniz şekilleri buradaki seçenekleri kullanarak elde edebilirsiniz. 3.5.1.3.3. Animasyonlarla ve Geçişlerle Çalışma Slaytlarımızı daha renkli hale getirmek için geçişlerimize ve yazılarımıza animasyonlar ekleyebiliriz. Siz eklemediğiniz sürece bu animasyonlar aktif olmayacaktır. Bu yüzden bunları bizim ayarlamamız gerekiyor. Şimdi nasıl yapacağımıza bakalım. İlk olarak sayfa geçişlerine animasyon ekleyelim. Sol taraftaki alandan geçiş uygulayacağınız slaytı seçin. Daha sonra sağ tarafta bulunan alandan “Slayt Geçişi” düğmesini tıklayın. Resim 3.33 : Impress slayt geçişi. Slayt geçişi altında bulunan seçeneklerden istediğinizi seçebilirsiniz. Herhangi bir seçeneğe tıkladığınızda nasıl bir geçiş olacağı önizleme ile çalışma alanı içinde gösterilecektir. Resim 3.34 : Impress slayt geçişi örneği. Yaptığımız bu işlem sadece seçili slayt için geçerlidir. Eğer bütün geçişleri bu şekilde ayarlamak isterseniz. Aşağıda bulunan “Bütün slaytlara uygula” düğmesine basabilirsiniz. O alanda bulunan diğer seçenekleri de ihtiyacınıza göre değiştirebilirsiniz. Sayfalar arasına animasyon koyabileceğiniz gibi yazılar ve diğer nesneler içinde animasyon koyabilirsiniz. Bunun için yapmamız gereken, animasyon koyacağımız nesneyi seçip, sağ tarafta bulunan özel animasyon bölüme gelmek olacaktır. Daha sonra “Ekle” düğmesiyle istediğimiz seçeneğini seçip işlemenizi tamamlayabilirsiniz. 3.5.1.3.4. Düzenlerle Çalışma Slaytlarda değişik yerleşim düzenleri kullanırız. Bunlar herkesin ihtiyacına göre değişebilir. Var olan yerleşim düzenlerinden yararlanmak için sağ tarafta olan “Düzenler” seçeneğinden yararlanabilirsiniz. Bunun için yapmamız gereken düzeni uygulayacağımız sayfayı seçmek ve istediğimiz düzene tıklamaktır. Eğer istediğiniz gibi bir düzen yoksa ve kendi istediğinize göre düzen oluşturmak isterseniz, ilk seçenek olan boş düzeni tıklayabilirsiniz. Bundan sonra istediğiniz nesneleri ekleyip istediğiniz gibi bir slayt oluşturabilirsiniz. Resim 3.35 : OpenOffice.org Impress düzen seçenekleri. OpenOffice.org Impress'te sunum oluşturmayı ve bazı ayarlamaları göstermeye çalıştık. Kullanımının kolay ve anlaşılır bir yapı da olduğunu gördünüz. Öğrendiğimiz genel kullanım özelliklerini de kullanarak güzel sunumlar hazırlayacağınızı söyleyebiliriz. 3.5.1.4. OpenOffice.org Base (Veritabanı) OpenOffice.org Base'i ilk açtığımızda bize rehberlik edecek bir sihirbazla karşılaşıyoruz. Resim 3.36 : OpenOffice.org Base veritabanı sihirbazı. Bu ilk ekranda ne yapmak istiyorsanız ona uygun bir seçenek seçmelisiniz. Biz yeni bir veritabanı oluşturmak istediğimiz için ilk seçeneği seçiyoruz. İkinci seçeneği daha önce Base ile oluşturulmuş ve kullandığınız veritabanlarını açmak için kullanabilirsiniz. Üçüncü seçeneği ise Base dışında kullandığınız bir veritabanına bağlantı yapabilirsiniz. Şimdi “Sonraki” diyerek devam ediyoruz. Resim 3.37 : Veritabanı sihirbazı ikinci adım. Karşımıza gelen ikinci ekranda veritabanımıza neler yaptırmak istediğimizi ayarlıyoruz. Yukarıdaki seçeneği “Evet” olarak seçiyoruz ki sihirbaz veritabanımızı kaydetsin. Alttaki seçeneklerimizin işaretli olmasına dikkat etmek işleri biraz daha kolaylaştıracaktır. Şimdi “Bitir” düğmesine tıklayalım ve veritabanımızı oluşturalım. Resim 3.38 : Veritabanı kaydetme ekranı. Veritabanımıza vereceğimiz ismi yazalım ve “Kaydet” düğmesine tıklayalım. Ayrıca bu ekrandan kaydetmek istediğiniz yeri değiştirebilirsiniz. Kaydet düğmesine tıkladıktan sonra önceki ekran “Veritabanını düzenlemek için aç” ve “Tablo sihirbazı kullanarak tablo yarat” seçenekleri işaretli olduğu için veritabanımız açılacak ve Tablo oluşturma sihirbazı karşımıza gelecektir. Şimdi karşımızda duran “Tablo Oluşturma Sihirbazı” ile tablomuzu oluşturalım. Bunun için küçük bir senaryo yapalım. Diyelim ki satın aldığınız malzemelerin kayıtlarını tutan bir veritabanı oluşturmak istiyorsunuz. Buna göre şimdilik bize hazır sunulan seçenekleri kullanacağız. Kategori kısmında “iş” seçeneğini seçiyoruz. Burada bulunan alanlardan işimize yarayanları seçelim. Resim 3.39 : Tablo oluşturma sihirbazı. Resim 3.40 : Tablo oluşturma sihirbazı alan belirleme ekranı. Şimdi “İleri” diyoruz ve ayarlamalarımıza devam ediyoruz. Resim 3.41 : Tablo sihirbazı tür ve biçem belirleme ekranı. Şimdiki ekranda belirlediğimiz alanların türlerini ve biçim özelliklerini belirleyeceğiniz. Burada bir tablonun özelliklerini açıklayalım. Diğerlerini de buna göre yapabilirsiniz. ¾ Alan adı: Alanın adını bu kısmında belirleyebilirsiniz. Değiştirmezseniz ilk hali kalacaktır. İstediğinize göre değiştirebilirsiniz. ¾ Alan türü: Alanda tutulacak veriye öngörülen türü belirlemenize yarar. Buna göre alttaki “Uzunluk” değerinin de değiştiğini görebilirsiniz. ¾ Otomatik değer: Seçtiğiniz alanın belli bir düzende otomatik olarak değer atlamasını isterseniz “Evet” olarak işaretlemelisiniz. Örneğin; 1,2,3,4.... gibi gitmesi için. ¾ Girdi gerekli: Bir alanın boş bırakılmasını engellemek için “Evet” olmasına dikkat etmelisiniz. Alan kutucuğunun altında bulunan + ve – düğmeleri ile yeni alanlar belirleyip çıkarabilirsiniz. Şimdi yeni bir alan ekleyelim. Resim 3.42 : Anahtar belirleme ekranı. Bu ekranda birincil anahtarımızı belirliyoruz. Birincil anahtar tablonuzda ilk dikkate alınacak alandır. Tablonuzu neye göre şekillendirmek istediğinize karar verin ve isteğiniz alanı seçin. Buna da karar verdikten sonra “ileri” diyoruz. Şimdi tablomuzu oluşturmak için son ekrandayız. Bu kısımda tablomuzu oluşturarak form tasarıma geçelim. Diğer iki seçeneğini kullanarak tablomuza veri girebilir veya tablo tasarımını seçebilirsiniz. Son seçeneği işaretlediğimize göre devam edelim. Şimdi karşımıza Form sihirbazı gelecek. Resim 3.43 : Form sihirbazı. Listeden tablomuzu seçiyoruz ve formda kullanmak istediğimiz alanları belirliyoruz. Resim 3.44 : Form sihirbazı alt form belirleme ekranı. Eğer alt form ekleme isterseniz “Alt Form Ekle” seçeneği etkin hale getirmelisiniz. Bu seçenek ana formun altında aynı alanları kullanarak farklı bir form elde etmenizi sağlar. Kullanıp kullanmamayı ihtiyacınıza göre karar vermelisiniz. Daha sonra da ekleyebilirsiniz. Biz eklemeden devam ediyoruz. Resim 3.45 : Form sihirbazı denetim belirleme ekranı. Şimdi formda kullanmak istediğimi denetim biçimi seçelim. Bize sunulan 4 seçenek var. Biz ilk seçeneği seçtik. Resim 3.46 : Form sihirbazı veri girdisi hareketi belirleme ekranı. Bu ekranda veritabanına verilerimizi girerken formun nasıl davranması gerektiğini belirliyoruz. Bu formu sadece veri girmek amacıyla kullanacaksak ilk seçeneği seçmek daha iyi olacaktır. Diğer seçenek, verilerinizi girerken öteki verilerinizi görmek isterseniz daha yararlı bir seçim olacaktır. Bir sonraki seçeneğimizde form alanın biçemini belirliyoruz. Hoşunuza giden hazır seçeneklerden birisini seçebilirsiniz. Son ekranda Forma bir isim verip, verilerimizi girmeye başlayalım. Resim 3.47 : Form sihirbazı form ismi belirleme ekranı. Bir süre bekledikten sonra formumuz veri girişi için karşınıza gelecektir. Resim 3.48 : OpenOffice.org Base formu. Bu form aracılığıyla verilerinizi kolayca girmeye başlayabilirsiniz. Kaydetme ve silme gibi işlemlerde “Form Kılavuz” araç çubuğundan yararlanabilirsiniz. Gördüğünüz gibi dakikalar içinde Base ile bir veritabanı oluşturduk ve birkaç tane de veri girdik. Gerçekten kolay bir şekilde işlemlerimizi bitirdik. Tabi ki yaptığımız tablo tasarımını ve konuyu basite indirgedik. Sizler kendi ihtiyacınıza göre daha karmaşık yapılar kullanabilirsiniz. Şimdi girdiğimiz bu verilere nasıl göz atacağımıza bakalım. 3.5.1.4.1. Sorgu Sihirbazıyla Çalışma Veritabanına girdiğimiz verileri sorgulama yaptırarak istediğimiz verilere kolayca ulaşabiliriz. Şimdi “Sorgular/Sihirbaz kullanarak Sorgu Yarat” seçeneğini tıklayalım. Resim 3.49 : Sorgu sihirbazı. Sorgu için kullanacağımız alanları seçelim. Sonraki ekranda sıralama düzenin hangi alana göre olacağını belirleyelim ve “İleri” diyelim. Resim 3.50 : Sorgu sihirbazı koşul belirleme ekranı. Bu kısımda neye göre sorgu yaptıracağımızı belirliyoruz. Biz AlacakKimliği alanından “100” koduyla satın aldığımız malzemelerin sıralanmasını istedik. Şimdi “İleri” diyelim. Sonraki ekran seçmiş olduğumuz koşula göre özet gösterim yapabileceğiniz seçenekler bulunuyor. Bütün değerleri göstermek isterseniz ilk seçenek seçili kalmalıdır. “İleri” düğmesine tıkladığımızda var olan alanlara takma adlar belirleyebilirsiniz. Resim 3.51 : Sorgu sihirbazı sorgu ismi belirleme ekranı. Son ekrana geldiğimizde sorgunu ismini belirleyip “Bitir” düğmesine bakalım ve sorgu sonuçlarını hep birlikte görelim. Resim 3.52 : Sorgu ekranı. Sorgumuzu başarılı bir şekilde yaptık ve istediğimiz değerler karşımızda duruyor. OpenOffice.org Base ile basit ve kolayca işlemlerimizi bitirdik. Ana pencereden daha önceden kaydettiğiniz form, tablo, sorgu gibi işlemleri düzenleyebilir ve ihtiyacınız olduğunda tekrar açabilirsiniz. RPM PAKETLERİ ve RPM KOMUTU İşletim Sisteminde Yeni Program Kurma, Program Güncelleme, Program Kaldırma Red Hat’ın Linux’e en önemli katkılardan biri RPM’dir. RPM Linux programların kurulmasını kolaylaştırmış ve basitleştirmiştir. RPM’den önce Linux sistem yöneticileri yazılım kurmak için TAR dosyalarını indirip program kodlarını derlemek zorunda kalıyorlardı. RPM üç parçadan oluşur: ¾ Paket dosyaları ¾ RPM veri tabanı ¾ rpm komutu. Aşağıdaki kısımlarda bu parçaları incelenecektir. 4.1.1. Paket Dosyaları Paket dosyaları TAR dosyaları gibi kurulacak dosyaları içermektedir. Ama bunun dışında kurulacak uygulama ya da servis hakkında bilgi içerirler. Mesela paket dosyası kurulacak program özelliklerini, gerekli kütüphaneleri ve varsa başka hangi paketlerin kurulu olması gerektiğini belirtir. Bu bilgiler dependency information adını taşır. Pakette bulunan diğer bilgiler aşağıdaki gibidir : ¾ Paket adı ve versiyonu. ¾ Kuruluş tarihi. ¾ Paket tanımlaması. ¾ Her içerdiği dosyanın büyüklüğü. ¾ Paketi hazırlayan kişinin veya kuruluşun kimliği. ¾ Dahil olduğu paket grubu. Paket dosyasının adı özel bir yapıya sahiptir: paket-versiyon-küçük sürüm-mimari.rpm burada : ¾ Paket dosyanın içerdiği paket adı. ¾ Versiyon paket versiyonu. ¾ Küçük sürüm paket küçük sürüm numarası. ¾ Mimari paketin tasarlandığı bilgisayar mimarisi. Örnek 4.1: gnorpm-0.95.1-2.62.i386.rpm dosyanın versiyonu 0.95.1, küçük sürüm 2.62 olan gnorpm adındaki paket i386 (Intel 386) için hazırlanmıştır. 4.1.2. RPM Veritabanı Paket kurulmadan önce, hakkındaki bilgiler /var/lib/rpm’de bulunan RPM veri tabanına işlenir. Bir programı kurmak veya kaldırmak istediğinde - RPM paket dosyasını ve RPM veri tabanını kontrol eder. Böylece RPM, komutun sistemi çelişkili bir durumda bırakıp bırakmayacağına karar verir. Eğer öyleyse RPM komutu durdurup kullanıcıya uyarı gönderir. 4.1.3. RPM Komutu Bu kısım RPM’in çalıştırılabilen parçasıdır. rpm komutunun uyguladığı işlemler: · ¾ Paket kurulumu. ¾ Paket güncellemesi. ¾ Paket kaldırılması. ¾ RPM veri tabanın sorgulanması. ¾ Paket dosyasının sorgulanması. ¾ Kaynak kodundan paket oluşturulması. ¾ Paket onaylanması. ¾ Paket dosyasının onaylanması. Paket kurulumu, güncellenmesi veya kaldırılması sırasında, rpm komutu sistemin uygun durumda kalması için bir kaç kontrol yapar. Örneğin paket kurulumunda rpm şunları kontrol eder: ¾ Paket kurulması için diskte yeterli yer var mıdır? ¾ Paket kurulabilmesi için gerekli kütüphane ve paketler kurulu mudur? ¾ Paket daha önce kurulmuş mu veya kurulum sırasında dosya çakışması olacak mı? Özel durumlarda özel anahtarlarla bu kontroller aşılabilmektedir. 4.1.4. Paket Ekleme Paket kurmak için gerekli komut şu formundadır: rpm -i paket_dosya_adı Buradaki paket_dosya_adı kurmak istediğiniz paketin adı. Eğer bir kaç paket kurmak istiyorsanız paket ismini sıralayabilirsiniz ya da * karakteri kullanabilirsiniz. Örneğin: rpm -i gnorpm-0.95.1-2.62.i386.rpm gnome-linuxconf-0.23-1.i386.rpm Bu komutla gnorpm ve gnome-linuxconf paket kurulacaktır. İlk önce kurulum şartları kontrol edilir. Eğer bu şartlardan biri tutmaz ise komut hiçbir paketi kurmaz. Bir çok sistem yöneticisi -v ve -h parametrelerini kullanır, Örnek 4.2: rpm -ivh gnorpm-0.95.1-2.62.i386.rpm gnome-linuxconf-0.23-1.i386.rpm Buradaki -v parametresi ile rpm kurulumunun durum bilgilerini verir, -h parametresi ile kurulumun ilerlemesini 50 tane # işareti ile izlenebilir. Örnek 4.3 : [root@host /root]# rpm -ivh gnorpm-0.95.1-2.62.i386.rpm gnome-linuxconf-0.231.i386.rpm Preparing... ########################################### [100%] 1:gnorpm ########################################### [50%] 2:gnome-linuxconf ########################################### [50%] Bu parametrelerin (-vh) avantajlarından birisi çok net bir şekilde paket kurulup kurulmadığını belli ederler. Örneğin birkaç paket aynı zamanda -vh parametreleri ile kurulduğunda sistem paketlerinden birisi zaten kurulu olduğunu hatasını vererek işi durdurur ise paketlerden hangileri kurulabildiğini öğrenebiliriz. RPM’in başka olanaklarından biri paketlerin FTP sunucularından kurulabilmesidir. Doğrudan anonim bir FTP sunucusundan paketi kurabilmek için: ftp://sunucu/yol şeklindeki bir tanım yapılır, burada sunucu FTP’nin sunucu adı veya IP adresi olabilir ve yol sunucudaki paketin bulunduğu dizinin yoludur. Örnek olarak anonim bir FTP sunucusundan paketi kurmak için çalıştırılacak komut: rpm -ivh ftp://ftp.itu.edu.tr/1/redhat/i386/RedHat/RPMS/gnorpm-0.95.1-2.62.i386.rpm Eğer anonim olmayan bir FTP sunucusuna bağlanmak gerekiyorsa: ftp://kullanıcı:şifre@sunucu/yol şeklinde bir tanım yapılır, burada kullanıcı ve şifre bu sunucuya bağlanma izni olan bir kullanıcı adı ve ona ait şifresidir. Eğer sunucu standart bir portun üzerinde çalışmıyor ise tanım aşağıdaki gibi yapılmalıdır: ftp://kullanıcı:şifre@sunucu:port/yol burada port sunucunun dinlediği port numarası. Red Hat Linux 6.2 ve daha üst versiyonları dosya adı bilgisinde *,? gibi karakter kullanımını desteklemektedir. Örnek olarak: rpm -ivh ftp://ftp.itu.edu.tr/1/redhat/i386/RedHat/RPMS/gnorpm* 4.1.5. Paket Kaldırma Kurulmuş bir paketi kaldırmak için: rpm -e paket_adı şeklinde bir komut çalıştırılmalıdır, burada paket_adı kaldırılacak paketin ismidir. Bu komuttaki -e parametresi rpm komutuna paket silinmesi gerektiğini belirtir. Aynı zaman paketi kaldırmak için --uninstall seçeneği kullanılabilir. Rpm komut , rpm paketi sistemden silerken kaldırılan dosyaların başka paketler tarafından kullanılıp kullanılmadığını araştırır. Eğer kullanılıyorsa işlemi durdurup sistem yöneticisine uyarı verir. Zorunlu durumlarda bu kontrol aşılabilir, bunun için --nodeps seçeneği kullanılmalıdır. Paket sistemden kaldırılırken rpm komutu kurulumdan sonra değişen konfigürasyon dosyalarını saklar. 4.1.6. Güncelleme Zaman zaman paketlerin yeni versiyonları çıkmaktadır. Çoğu zaman yeni paketler yamaları ve yeni önemli özellikleri içerir. RPM ile bir paketin paketin yeni versiyonunu kurmak için: rpm -Uvh paket_adı şekildeki komut kullanılır, burada paket_adı yeni versiyonu içeren paket ismidir. Diğer parametrelerden -v ve -h Paket Ekleme bölümünde anlatılmıştır, -U bayrağı rpm komutuna kurulmuş eski versiyonunu kaldırılması ve yeni paketin kurulması gerektiğini belirtir. RPM eski paketi kaldırırken tüm konfigürasyon dosyalarını isimlerine .rpmsave ekleyerek saklar. Eğer paket sistemde bulunmayan bir paket ise rpm komutu bu paketi de kuracaktır. Bu nedenle bir çok sistem yöneticisi -i yerine -U kullanırlar; rpm -U paket sistemde kurulu değilse kurar, eğer mevcut ise günceller. Paket güncelleme ile ilgili başka bir parametre -F parametresidir, bu bayrak sadece sistemde kurulu olan paketlerin güncellenmesini sağlar. Bu parametre ile sistemi hep güncel tutmak çok kolaylaşmıştır. Örneğin bir FTP sunucusunda bir çok paketi yeni sürümleri bulunsun,sunucuda bulunan paketlerin listesi verilerek rpm -F komutu çalıştırılır ise sistem sadece kurulu olan paketleri günceller. Örnek 4.4: rpm -Fvh gnorpm-0.95.1-2.62.i386.rpm 4.1.7. Kurulmuş Paketlerin Yenilenmesi RPM, kurulu paketin versiyonunu ve küçük sürümünü öğrenmek için kullanılabilir, bunun için: rpm -q paket_adı şeklinde komut çalıştırılmalıdır. Burada paket_adı kurulmuş paketin ismi. Bu komutun çıkışı paket ismini, versiyonunu ve küçük sürüm numarasını verir. Örnek 4.5: # rpm -q gnorpm gnorpm-0.95.1-2.62 Sistemde kurulu olan tüm paketlerin listesini ve versiyonlarını ve küçük sürüm numaralarını öğrenmek için rpm -qa komutu çalıştırılmalıdır. 4.1.8. Dosyanın Bulunduğu Yeri Belirlemek RPM kullanılarak herhangi bir dosyanın hangi pakete ait olduğunu öğrenilebilir. Bunu gerçekleştirmek için: rpm -qf dosya_adı komutu çalıştırılmalıdır, burada dosya_adı paketi belirlenecek dosyanın tam yolu içeren ismidir. Örnek olarak /etc/inittab dosyasının bulunduğu paketi belirlemek için: # rpm -qf /etc/inittab initscripts-5.00-1 4.1.9. Paket İçeriklerinin Sorgulanması rpm komutu ile paketlerin sorgulanması yapılabilmektedir. Sorgulama ile yapılabilecekler: ¾ Paket tanımın gösterilmesi ¾ Paketin içerdiği dosyaların listelenmesi ¾ Paket kurulum veya kaldırılma işlemlerin sırasında çalıştırılan scriptlerin gösterilmesi ¾ Paket içeriklerin bütünlüğü doğrulaması Aşağıdaki bölümlerde bu işlemlerin gerçeklenmesi ele alınmıştır. 4.1.9.1. Paket Tanımının Gösterilmesi Sistemde kurulu olan bir paketin tanımın gösterilmesi için: rpm -qi paket_adı şeklindeki bir komut çalıştırılmalıdır. Burada paket_adı kurulmuş paketin ismidir. Örnek olarak gnorpm paketin tanım aşağıdakine benzer bir şekilde olacaktır. Örnek 4.6 : # rpm -qi gnorpm Name : gnorpm Relocations: (not relocateable) Version : 0.95.1 Vendor: Red Hat, Inc. Release : 2.62 Build Date: Tue Oct 10 22:27:54 2000 Install date: Thu Oct 12 09:21:57 2000 Build Host: porky.devel.redhat.com Group : Applications/System Source RPM: gnorpm-0.95.1-2.62.src.rpm Size : 776600 License: GPL Packager : Red Hat, Inc. Summary : A graphical front-end to RPM for GNOME. Description : Gnome-RPM is a graphical front-end to to the RPM Package Manager (RPM). Gnome-RPM is similar to Glint, but is written using the GTK+ widget set and the GNOME libraries. Gnome-RPM is currently in development, so some features are missing, but you can currently query, install, upgrade, uninstall and verify packages using a GUI interface. Eğer paket dosyası kullanarak paketin tanımı gösterilmesi isteniyor ise: rpm -qip paket_dosya_adı şeklinde bir komut çalıştırılmalıdır. Burada paketdosya_adı paket dosyasının tam yolunu içeren ismidir. -p bayrağı paketin dosyasını sorgulamasını sağlar. 4.1.9.2. Paketin İçerdiği Dosyaları Listeleme Paketin içerdiği dosyaları listelemek için: rpm -ql paket_adı şeklinde bir komut çalıştırılmalıdır. Burada paket_adı kurulmuş paketin ismidir. Örnek olarak gnorpm paketin listelenmesinde komutun ekrana verdiği çıktı şu şeklidedir: Örnek 4.7 : [root@atlas /root]# rpm -ql gnorpm /usr/bin/gnorpm /usr/bin/gnorpm-auth /usr/doc/gnorpm-0.95.1 /usr/doc/gnorpm-0.95.1/AUTHORS /usr/doc/gnorpm-0.95.1/NEWS /usr/doc/gnorpm-0.95.1/README /usr/etc/pam.d/gnorpm-auth /usr/etc/security/console.apps/gnorpm-auth /usr/share/gnome/apps/System /usr/share/gnome/apps/System/gnorpm.desktop /usr/share/gnome/help/gnorpm/C/find-win.html /usr/share/gnome/help/gnorpm/C/gnorpm.html /usr/share/gnome/help/gnorpm/C/index.html /usr/share/gnome/help/gnorpm/C/install-win.html /usr/share/gnome/help/gnorpm/C/main-win.html /usr/share/gnome/help/gnorpm/C/other-uses.html /usr/share/gnome/help/gnorpm/C/preferences-win.html /usr/share/gnome/help/gnorpm/C/query-win.html /usr/share/gnome/help/gnorpm/C/rpmfind-win.html ... Paketin kurulum dosyası listelenmesi isteniyor ise: rpm -qlp paket_dosya_adı şeklinde bir komut çalıştırılmalıdır. Burada paket-dosya_adı paket dosyasının tam yolunu içeren ismidir. -p bayrağı paketin dosyasını sorgulamasını sağlar. 4.1.9.3. Scriptlerin Gösterilmesi Kurulum scriptlerini gösterilmesini sağlamak için: rpm -qp -scripts paket_dosya_adı şeklinde bir komut çalıştırılmalıdır. Bu komutun çıktısı aşağıdakine benzer şeklindedir. Örnek 4.8: # rpm -qp --scripts wget-1.6-2.i386.rpm postinstall script (through /bin/sh): /sbin/install-info /usr/share/info/wget.info.gz /usr/share/info/dir preuninstall script (through /bin/sh): if [ "$1" = 0 ]; then /sbin/install-info --delete /usr/share/info/wget.info.gz /usr/share/info/dir fi 4.1.9.4. Paket İçeriğinin Doğrulanması RPM sistemde kurulmuş bir paketin her dosyası için kayıt tutar. Bu kayıt dosya büyüklüğünü, sahibini, izinleri ve başka bilgileri tutar. Eğer dosya bir sembolik link ise kayıt link edilmiş dosyanın yolunu tutar, eğer bir aygıt dosyası ise kayıt major ve minor aygıt numaralarını içerir. Bu kayıtlar kullanılarak hangi dosya, eğer varsa, kurulumdan sonra değişmiştir, bunun için: rpm -V paket_adı şeklinde bir komut çalıştırılmalıdır. Bu komutun çıktısı her bir değişen dosya için bir satır içerir. Bu satır üç alandan oluşur: ¾ Durum, dosyanın durumunu belirtir. Tablo 1’de durum bayrakları açıklanmıştır. ¾ Konfigürasyon, konfigürasyon dosyaları satırında c bulunur. ¾ Dosya adı, dosyanın tam yolunu ve ismini içerir. Kod . 5 D G L M S T U Açıklama Değişiklik yok MD5 checksum değişmiştir Aygıt major ya da minor numarası değişmiştir Sahip grup değişmiştir Link yolu değişmiştir Dosya biçimi değişmiştir Dosya büyüklüğü değişmiştir Değiştirilme zamanı değişmiştir Sahip kullanıcı değişmiştir Tablo 4.1 : Paket durum bayrakları. Örnek 4.9: # rpm -V setup S.5....T c /etc/exports S.5....T c /etc/host.conf S.5....T c /etc/hosts.allow S.5....T c /etc/hosts.deny S.5....T c /etc/printcap S.5....T c /etc/profile S.5....T c /etc/services Eğer dosyaların bazıları bozulmasından şüpheleniyor ise paketin kurulum dosyası incelenebilir: rpm -Vp paket_dosya_adı şeklindeki bir komut çalıştırılmalıdır. Burada paket_dosya_adı paketin kurulum dosyanın ismidir. Tüm kurulmuş paketlerin durumlarını listelemek için: rpm --verify –a komutu çalıştırılmalıdır. 4.1.10. Kaynak RPM Paketlerinin Kurulması Sıradan RPM paketleri binary çalıştırılabilecek dosyaları içerir. Aynı zaman RPM kaynak kodlarını içeren kaynak RPM dosyalarını destekler. Bu kaynak RPM dosyaları kurulumdan önce derlenmeleri gerekir. Kaynak RPM dosya isimleri aşağıdaki şekildedir: paket_adı-versiyon-küçük_sürüm.src.rpm Görüldüğü gibi sıradan bir RPM paket isminden sadece sonunda .rpm yerine .src.rpm yazılmaktadır. Bir kaynak RPM paketi sisteme kurulduğu zaman dosyalar /usr/src/redhat dizinin altına kurulur, bu dizinin içerdiği altdizinleri şöyle: ¾ BUILD : Kaynak RPMler bu dizinde açılır. ¾ RPMS : Kaynak RPM derlendiğinde yeni RPM paketi burada saklanır. Bu dizin her mimari için ayrı bir altdizin içeriyor. ¾ SOURCE : Kaynak kod, genelde TAR dosyası olmaktadır, ve yamalar bu dizinde bulunur. ¾ SPECS : Bu dizin SPEC dosyaları içerir, SPEC dosyaları paket kaynaklar listelerini, yamaları, derlenme-zaman seçenekleri, kurulum sonrası adımları ve paket bilgilerini içerir. ¾ SRPMS : Yeni oluşturulan kaynak RPM dosyaları bu dizinde saklanır. Kaynak RPM’den binary RPM kurmak için SPEC dizinine geçilir ve aşağıdaki komut çalıştırılır: rpm -bb spec_dosya burada spec_dosya oluşturulacak RPM paketine denk bir ismi olan SPEC dosyasıdır. Bayrak Açıklama -bp Hazırlama aşaması: kaynağı açar ve yamalar -bl Dosyaların aşaması: dosyaların mevcut olmalarının kontrolü -bc Oluşturma aşaması: kurulum hazırlanması -bb Binary paket oluşturulması -ba Binary ve kaynak paketlerin oluşturulması --test SPEC dosyasının sentaksının kontrolü Tablo 4.2 : rpm komutun kaynak dosyaları ile ilgili bayraklar. Eğer SPEC dosyası bir TAR dosyasından oluşuyor ise bu dosyayı açmaya gerek yoktur. Sadece bayraklarda -b yerine -t konulur. Sıkıştırılmamış ve gzip-sıkıştırılmış TAR dosyaları rpm komutu tarafından destekleniyordur. Kurulmadan kaynak RPM’i derlemek için: rpm -recompile kaynak_paket_dosyası şeklindeki bir komut çalıştırılmalıdır. Burada kaynak_paket_dosyası kaynak RPM’in ismidir. GnoRPM ve kpackage Gnome masaüstü sistemi ile birlikte rpm paketlerinin yönetimi için GnoRPM programı gelmektedir. Bu program ile komut satırından rpm komutu ile yapılabilecek her türlü işlem grafik ortamda yapılmaktadır. Resim 4.1:Gnome RPM ekranı. GnoRPM progamı ilk açıldığında Resim 4.1’deki ekran kullanıcının karşısına gelecektir. Pencerenin sol tarafı sistemde yüklü bulunan rpm paketlerinin dahil olduğu ana grupları içermektedir. İstenilen ana grup seçilip , üzerine çift tıklandığı takdirde alt gruplar da gözükecektir. Bir alt grup seçildiği takdirde pencerenin sağ tarafında bu alt gruba dahil paketler görüntülenecektir.(Bkz: Resim 4.2) Resim 4.2: Gnome RPM paket alt grupları . Pencerenin sağ tarafında listelenen paketler için bilgi alınmak istendiği takdirde istenilen paket seçildikten sonra sorgulama (“Query”) komutu verilmelidir. Bu durumda Resim 4.3’deki ekran kullanıcının karşısına çıkmaktadır. Üst bölümde paket hakkında bilgi bulunurken , alt bölümde pakette bulunan dosyalar listelenmektedir. Resim 4.3: Paket bilgisi ekranı. Paketin içerdiği dosyalar da bir değişiklik olup olmadığını öğrenmek için “Verify” komutu verilmelidir. Bu durumda Resim 4.4’deki ekran kullanıcının karşısına çıkacaktır. Resim 4.4: Paketleri doğrulama ekranı. Yeni bir paket eklemek için giriş ekranında bulunan “Install” (yükle) komutu verilmelidir. Bu durumda Resim 4.5’deki ekran kullanıcının karşısına çıkacaktır. Resim 4.5: Paket yükleme ekranı. Kurulacak paketler arasına paket eklemek için “Add” tuşu kullanılır. Bu tuşu basıldığı takdirde Resim 4.6’daki ekran gözükecektir. Bu ekran sayesinde dosya sistemi içinde gezilerek kurulacak paket bulunabilir. Paket bulunduktan sonra “Add” tuşu ile kurulacak paketler arasına eklenir. Bu ekran sayesinde kurulacak tüm paketler bulunup seçildikten sonra bu ekran “Close” tuşu ile bu ekran kapatılır. Resim 4.6: Paket ekleme ekranı. Kurulacak paketlerin seçimi yapıldıktan sonra temelde Resim 4.7’de gösterilen ekrana geri dönülür. Bu durumda tek fark seçilmiş olan paketler ekranın sol tarafında listelenmektedir. Belirli bir paketin kurulumundan vazgeçmek için Ö işaretinin kaldırılması yeterlidir. Kurulum işlemini gerçekleştirmek için “Install” tuşuna basılması gerekmektedir. Resim 4.7: Paket kurulum ekranı. Pardus’ta Paket Yönetimi (PİSİ) PİSİ (Packages Installed Successfully as Intended), Pardus'un paket yönetim sistemidir. Paketlerin sisteme sorunsuz bir şekilde eklenip çıkarılmasını sağlar. Paket Yöneticisi Paket, bir uygulamayı ya da işletim sisteminin bir parçasını tüm bileşenleriyle toplu olarak ifade eden bir kavramdır. Uygulamaların bir yerden bir yere taşınması (Örneğin bir CD yada ağ kaynağından gelip, sisteme kurulması) sırasında bazı bileşenlerin geride unutulmamasını sağlar. Bir sistemdeki onbinlerce dosyayı, görevleri ve ait oldukları uygulamalar bazında birkaç yüz pakete ayırarak yönetilebilir kılar. Kullanıcının büyük bir sistemde neler bulunduğuna hakim olabilmesini kolaylaştırır. Bu paketleri kurup kaldırmak, çeşitli kaynaklardan temin etmek, sorgulamak, sistemdeki değişiklikleri takip etmek için, paket yöneticisi adını verdiğimiz bir uygulamaya ihtiyaç vardır. Resim 4.8 : Pardus paket yöneticisi. Neden PİSİ? Hali hazırda varolan ve geniş bir kullanım oranına sahip paket yöneticileri (RPM, DPKG ve Portage) yeterli basitlikte çalışmamaktadır. Bu varolan paket yöneticilerini istenen düzeye geliştirmektense yeni bir paket yöneticisi oluşturulmuştur. Bu paket yöneticisi TUBİTAK /UAKEA ekibi tarafından oluşturulmuştur. Pardus’ta Program Ekleme, Kaldırma ve Güncelleme Pardus'un en önemli özelliklerinden biri olan ve proje kapsamında geliştirilen, PİSİ paket yöneticisidir. Bu araç, PİSİ'yi kullanmanızı kolaylaştıracak görsel bir arayüz sunmaktadır. Sağ üst kutuda bulunan seçeneklerden kurabileceğiniz paketler, güncelleme olanakları veya sisteminizde kurulu paket listesini görüntülemeyi tercih edebilirsiniz. Resim 4.9 : Program Ekle,Güncelle ve Kaldır modülü. Programlarınızı güncellemek, yüklü bulunan programlarınızı kaldırmak ve depolarda bulunan programlardan eklemek için “Yönetici Modu”na geçmeniz gerekmektedir. Resim 4.10 : Yönetici modu. Güncellemeler için Depo Ayarları bölümünü tıkladığınızda, Pardus'un sisteminizi güncellemek için ihtiyaç duyduğu bilgileri internet vasıtası ile alabilir ve sisteminizi güncel hale getirebilirsiniz. 4.3.3.1. Adım Adım Sistem Güncelleme ¾ “Sistem Seçenekleri” kategorisinde bulunan “Program Ekle, Güncelle veya Kaldır” modülünü açmak için çift tıklayınız. ¾ İlk olarak gelecek olan uyarıyı okuyarak, “Tamam” düğmesini tıklayarak kapatın. ¾ “Yönetici Modu”na geçmek için alt tarafta bulunan düğmeyi tıklayarak, yönetici şifresi ile tekrar giriş yapınız. Resim 4.11 : Root olarak çalıştır. ¾ ¾ “Depo Ayarları” düğmesini tıklayın. Ekrana “Pisi Ayarları” gelecektir. “Tüm Depoları Güncelle” düğmesini tıklayın. Gelen ekran ile internet bağlantı hızınıza bağlı olarak güncelleme sürecektir. Resim 4.12 : Pisi ayarları. Resim 4.13 : Depolar güncelleniyor. ¾ Deponun güncel hale gelmesi ile birlikte “Hazır Güncellemeleri Göster” seçeneği ile yenilenmiş paketleri sisteminize yükleyebilirsiniz. TEMEL AĞ PROGRAMLARI VE AĞ AYARLARI Ağ Konfigürasyon Dosyaları ve Scriptleri Linux işletim sistemi de diğer tüm gelişmiş işletim sistemleri gibi ağ üzerinden haberleşmeyi desteklemektedir. Linux işletim sisteminde tüm ayarlar metin dosyalarında saklanmaktadır. Bu sayede yapılması gereken ayarlar belirli dosyaların düzenlenmesi ile kolayca yapılmaktadır. Linux işletim sisteminde ağ ayarları da dosyalarda tutulmaktadır. İstenildiği takdirde bu dosyalar düzenlenerek , istenildiği takdirde ise grafik arayüzlü programlar kullanılarak ağ ayarlarının yapılması mümkündür. Linux'ta ağ ayarları ile ilgili dosyalar ve dizinler aşağıdaki gibidir : ¾ /etc/sysconfig/network dosyası ¾ /etc/sysconfig/network-scripts dizini ¾ /etc/hosts ¾ /etc/resolv.conf /etc/sysconfig/network Dosyası Bu dosya genel ağ ayarları için kullanılan dosyadır. Bu dosya içinde sistemin ağ desteği olup olmadığı , gateway tanımı, makine ismi gibi bilgiler bulunur. Bu dosyada çoğunlukla kullanılan terimler aşağıdaki gibidir : ¾ NETWORKING : Sistemin ağ desteği olup olmadığını belirtir. Bu parametre "yes" olarak tanımlanmamış ise sistemde ağ ayarları yapılmaz. ¾ HOSTNAME : Sistemin ismini belirtir. ¾ GATEWAY : Sistemin gateway'ini belirtir ¾ GATEWAYDEV : Sistemin gateway'e ulaşmak için hangi ağ arayüzünü kullanacağını belirtir. ¾ FORWARD_IPV4 : Sistemin gelen paketleri bir arayüzünden diğer arayüzüne yönlendirme iznini belirtir. ¾ NISDOMAIN : Sistemin dahil olduğu NIS bölge ismini belirtir. /etc/sysconfig/network-scripts Dizini Bu dizin sistemde bulunan ağ arayüzleri için gerekli tanımların bulunduğu dizindir. Her arayüz için bir adet konfigürasyon dosyası bulunmaktadır. Konfigürasyon dosyalarının dışında arayüzlerin aktif ve pasif hale getirilmeleri için gerekli program parçalarını da içeren dosyalar da bu dizin içinde bulunmaktadır. Arayüzlerin konfigürasyon dosyaları ifcfg-arayüz ismine sahiptir.Bu dosyalar düzenlenerek her arayüz için gerekli ayarlar yapılmaktadır. Konfigürasyon dosyalarında kullanılan temel terimler aşağıdaki gibidir : ¾ DEVICE : Arayüzün sahip olduğu aygıt ismini belirtir. ¾ ONBOOT : Sistem açılırken arayüzün aktif hale getirilip getirilmeyeceğini belirtir. Sistem açılırken arayüzün aktif hale geçirilmesi için bu parametrenin değeri "yes" olmalıdır. ¾ ¾ ¾ ¾ BOOTPROTO : Arayüzün ağ ayarlarının yapılması için kullanılan protokolü belirtir.Eğer ağ ayarları statik olarak yapılandırılmış ise "static" , ağ ayarları bir DHCP sunucusu üzerinden alınacak ise "dhcp" , ağ ayarları bir bootp sunucusu üzerinden alınacak ise "bootp" değerini içermelidir. IPADDR : Arayüzün sahip olduğu IP adresini belirtir. NETMASK : Arayüzün sahip olduğu alt ağ maskesini belirtir. BROADCAST : Arayüzün broadcast adresini belirtir. Ip Adresi Çözücü Ayarları Linux işletim sisteminde makine ismi - IP adresi , IP adresi - makine ismi dönüşümleri için birden fazla metot kullanılmaktadır. Bu metotlar aşağıdaki gibidir : ¾ /etc/hosts dosyasının kullanımı ¾ DNS sunucu kullanımı ¾ NIS sunucu kullanımı Yukarıdaki metotlardan hangilerinin , hangi sırada kullanılması gerektiği /etc/nsswitch.conf dosyasında tanımlanmaktadır. Bu dosyada hosts ile başlayan satırda bulunan bilgiler kullanılacak metotları ve sırayı belirler. hosts: files nis dns Yukarıdaki satırda belirtilen 3 metodunda kullanılabileceği belirtilmiştir. İlk olarak /etc/hosts dosyası , eğer bulunamaz ise NIS sunucusu , yine bulunamaz ise DNS sunucusunun kullanılacağı belirtilmiştir. /etc/hosts dosyası DNS servisi kullanılmadan önce geçerli olan metottur. Bu dosya içinde makineler ile ilgili olarak makine ismi , makinenin IP adresi ve makine için kısaltma bulunmaktadır. Her makine için ayrı bir kayıt olmak zorundadır. Ağ üzerindeki bilgisayarların artmasıyla birlikte bu dosyanın kullanılması imkansız hale gelmiş ve DNS servisi geliştirilmiştir. /etc/hosts dosyasındaki satırlar aşağıdaki formata sahiptir : IP_Adresi Makine_isimleri 127.0.0.1 aontws4044.cc.itu.edu.tr aontws4044 localhost.localdomain DNS Ayarlarının Yapılması ( /etc/resolv.conf Dosyası) Linux işletim sisteminde diğer Unix türevi işletim sistemlerinde olduğu gibi DNS ayarları için kullanılan dosya /etc/resolv.conf dosyasıdır. En basit şekilde DNS ayarlarının yapılması için /etc/resolv.conf dosyası aşağıdaki şekilde düzenlenmelidir. domain alan_ismi nameserver DNS_sunucusunun_IP_Adresi domain cc.itu.edu.tr nameserver 160.75.2.20 İstenildiği takdirde birden fazla DNS sunucusu tanımı yapılabilir. Ayrıca sorgulama yapılacağı zaman aranacak alan adı listesi genişletilebilmektedir. Bunun için aşağıdaki yapı dosyaya eklenmelidir. search alan_1 alan_2 alan_3 ... Bu durumda tam alan adı verilmeden yapılan aramalarda , verilen sunucu ismine sırayla alan_1 , alan_2 alan adları eklenerek arama yapılacaktır. Örnek vermek gerekirse , resolv.conf dosyasında “search itu.edu.tr” şeklinde bir satır bulunduğunda ve isim_1 isimli sunucu için arama yapıldığında isim_1.itu.edu.tr tam alan ismi için de arama yapılacaktır. Temel Ağ Komutları ve Programları Telnet Komutu Telnet programı uzaktaki sunucu ile TELNET protokolü ile haberleşmeyi sağlayan bir programdır. Bu program sayesinde uzaktaki makinede kullanıcıya bir çalışma alanı açılır. Kullanıcının gerçekleştirdiği her işlem uzaktaki sunucuda gerçekleşir. Telnet komutunun en basit kullanım şekli aşağıdaki gibidir : telnet sunucu_ismi [port numarası] Sunucu ismi parametresi bildirilmediği takdirde telnet programı kullanıcıdan bir komut girmesini bekleyen interaktif modda açılır. Bu durumda aşağıdakine benzer bir çıktı gözükecektir. [root@seawolf /root]# telnet telnet> Bu bilgi isteminde telnet programı kullanıcıdan belli komutlar alabilmektedir. Bu komutların listesini görmek için help komutunu vermek yeterlidir. Herhangi bir telnet bağlantısı gerçekleştirmiş iken de bilgi istemi penceresine dönülebilir. Bunun için CTRL-] tuş kombinasyonunun kullanılması yeterlidir. Örnek 5.1 : telnet> help Commands may be abbreviated. Commands are: close close current connection logout forcibly logout remote user and close the connection display display operating parameters mode try to enter line or character mode ('mode ?' for more) open connect to a site quit exit telnet send transmit special characters ('send ?' for more) set set operating parameters ('set ?' for more) unset unset operating parameters ('unset ?' for more) status print status information toggle toggle operating parameters ('toggle ?' for more) slc change state of special charaters ('slc ?' for more) auth turn on (off) authentication ('auth ?' for more) encrypt turn on (off) encryption ('encrypt ?' for more) forward turn on (off) credential forwarding ('forward ?' for more) z suspend telnet ! invoke a subshell environ change environment variables ('environ ?' for more) ? print help information Bilgi istemi penceresinden iken yeni bir bağlantı yapmak için open komutu kullanılır. Bu komuttan sonra bağlanılma istenen sunucu ismi verilmelidir. Yapılmış bir bağlantıyı kesmek için close komutu verilebilir. Kullanıcı telnet programı ile uzaktaki bir sunucuya bağlandığı takdirde kendisinden kullanıcı ismi ve şifre isteyen bir ekranla karşılaşacaktır. Bu ekranda gerekli bilgileri girdikten sonra kullanıcı için sistemde tanımlı olan kabuk programı çalışmaya başlayacak ve kullanıcıdan komut bekleyecektir. Örnek 5.2 : [halil@aontws4044 halil]$ telnet atlas Trying 160.75.2.22... Connected to atlas.cc.itu.edu.tr (160.75.2.22). Escape character is '^]'. login: halil Password: Last login: Mon Aug 27 17:42:13 from dnw2kpro104 You have new mail. [halil@atlas halil]$ Ftp Komutu FTP protokolü uzaktaki sunucudan dosya transferi için kullanılan bir protokoldür. Bu protokol kullanılarak uzaktaki ftp sunucusu ile dosya transferi yapmayı sağlayan bir çok istemci bulunmaktadır. Bu istemcilerden en yaygın olanı ftp programıdır. Bir çok işletim sisteminde hemen hemen aynı komutlar ve aynı arayüze sahiptir. Ftp programının temel kullanım şekli aşağıdaki gibidir : ftp ftp_sunucusu Ftp sunucusunun ismi verilmediği takdirde ftp programı aşağıdaki bilgi istemi durumunda bekleyecektir. Bu durumda iken o veya open komutu ile yeni bir ftp bağlantısı yaratılabilir. [root@seawolf /root]# ftp ftp> Yeni bir bağlantı yaratıldığı durumda , bağlantı yapılan ftp sunucusunun gönderdiği başlık gösterilir ve kullanıcı ismi ve şifre girilmesi istenir. Örnek 5.3 : ftp> o ftp.itu.edu.tr Connected to atlantis.cc.itu.edu.tr. 220 ProFTPD 1.2.1 Server (ITU FTP Server) [atlantis.cc.itu.edu.tr] Name (ftp.itu.edu.tr:root): ftp 331 Anonymous login ok, send your complete email address as your password. Password: 230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> Eğer kullanıcı ismi ve şifre girişi sırasında bir hata meydana gelirse , user komutu ile tekrar kullanıcı ismi ve şifre girilebilir. Kullanıcı ismi ve şifre doğrulatıldıktan sonra ftp programı komut beklemek için bilgi istemi durumuna dönecektir. Bu durumda iken bir çok komut kullanılabilir. Bu komutlardan en çok kullanılanları aşağıdaki gibidir : ¾ ls : Uzaktaki sunucuda bulunulan dizinin içeriğinin görülmesini sağlar. ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ dir : ls ile aynı görevi görür. İki komutun çıktısı ftp sunucusuna göre değişebilir. cd : Uzaktaki sunucuda bulunulan dizini değiştirmek için kullanılır. get : Uzaktaki sunucudan bir dosya almak için kullanılır. mget : Uzaktaki sunucudan birden fazla dosya almak için kullanılır. Dosya isminin tam olarak verilmesine gerek yoktur. İsmi tamamlamak için *,? gibi özel karakterler kullanılabilir. put : Uzaktaki sunucuya bir dosya koymak için kullanılır. mput : Uzaktaki sunucuya birden fazla dosya koymak için kullanılır. prompt : mget ve mput komutları kullanıldığı durumlarda her işlem yapılmadan önce kullanıcıdan onay beklenir. Onay beklenmeden işlemi yapmak isteniyor ise prompt komutu off argümanı ile çağırılmalıdır. Onay verme işlemini tekrar aktif yapmak için “prompt on” komutu verilmelidir. bye : Ftp bağlantısını kapatmak için kullanılır. Nslookup Komutu Nslookup komutu DNS sunucusu ile haberleşip DNS sorgulamaları yapmak için kullanılmaktadır . En basit kullanım alanı makine isminden makine IP adresinin bulunmasıdır. Komutun temel kullanım şekli aşağıdaki gibidir : nslookup [seçenek] [sorgu] Sorgu parametresi verilmediği takdirde nslookup interaktif modda çalışmaya başlayacaktır. İnteraktif modda iken istenilen sorgulama yapılabilmektedir. Varsayılan olarak düz ve ters kayıt sorgulama işlemleri yapılır. Yani makine ismi verilirse makinenin IP adresi , makine IP adresi verilirse makinenin ismi sorgulanır. Sorgulama tipi istendiği takdirde değiştirilebilir. Temel sorgulama tipleri aşağıdaki gibidir : ¾ A : Makine isminden IP adresi sorgulaması için kullanılır. ¾ PTR : Makine IP adresinden makine ismi sorgulaması için kullanılır. ¾ NS : Verilen alan için yetkili DNS sunucularının listesini görmek için kullanılır. ¾ MX : Verilen alan veya sunucu için gönderilen e-postaları kabul eden sunucuları görmek için kullanılır. ¾ ANY : Tüm sorgulama tiplerini kullanarak gerekli bilgileri almak için kullanılır. ¾ SOA : Alandan sorumlu kişi , TTL süresi , alanın seri numarası gibi bilgileri almak için kullanılır. Sorgulama tipini değiştirmek için interaktif modda “set query=sorgu_tipi” veya “set type=sorgu_tipi” komutu verilmelidir. Örnek 5.4 : [root@seawolf /vicepaa]# nslookup Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. > ciragan.cc.itu.edu.tr Server: 160.75.2.20 Address: 160.75.2.20#53 Name: ciragan.cc.itu.edu.tr Address: 160.75.2.20 > 160.75.2.20 Server: 160.75.2.20 Address: 160.75.2.20#53 20.2.75.160.in-addr.arpa name = ciragan.cc.itu.edu.tr. > set query=NS > itu.edu.tr Server: 160.75.2.20 Address: 160.75.2.20#53 itu.edu.tr nameserver = atlantis.cc.itu.edu.tr. itu.edu.tr nameserver = ns.ulak.net.tr. itu.edu.tr nameserver = ns1.metu.edu.tr. itu.edu.tr nameserver = ciragan.cc.itu.edu.tr. > set query=soa > itu.edu.tr Server: 160.75.2.20 Address: 160.75.2.20#53 itu.edu.tr origin = ciragan.cc.itu.edu.tr. mail addr = zeynep.ciragan.cc.itu.edu.tr. serial = 2001082301 refresh = 10800 retry = 3600 expire = 604800 minimum = 86400 > set query=MX > itu.edu.tr Server: 160.75.2.20 Address: 160.75.2.20#53 itu.edu.tr mail exchanger = 10 ciragan.cc.itu.edu.tr. itu.edu.tr mail exchanger = 0 mail.cc.itu.edu.tr. > set query=ANY > itu.edu.tr Server: 160.75.2.20 Address: 160.75.2.20#53 itu.edu.tr text = "ISTANBUL TEKNIK UNIVERSITESI" itu.edu.tr mail exchanger = 0 mail.cc.itu.edu.tr. itu.edu.tr mail exchanger = 10 ciragan.cc.itu.edu.tr. itu.edu.tr nameserver = ciragan.cc.itu.edu.tr. itu.edu.tr nameserver = atlantis.cc.itu.edu.tr. itu.edu.tr nameserver = ns.ulak.net.tr. itu.edu.tr nameserver = ns1.metu.edu.tr. itu.edu.tr origin = ciragan.cc.itu.edu.tr. mail addr = zeynep.ciragan.cc.itu.edu.tr. serial = 2001082301 refresh = 10800 retry = 3600 expire = 604800 minimum = 86400 Nslookup komutunun sorgulamaları için kullandığı sunucu istendiği takdirde server komutu ile değiştirilebilir. Whois Komutu Whois komutu bir IP adresinin hangi ağa dahil olduğunu ve o ağdan sorumlu kişilerin e-posta adresleri , posta adresleri , telefonları gibi bilgileri gösteren bir komuttur. Temelde bir IP bloğu alındığı takdirde , bloğu satın alan ile ilgili bilgiler alınır ve bu bilgiler whois sunucularında tutulurlar. Whois komutu ile bu sunucular sorgulanır. Komutun temel kullanımı aşağıdaki gibidir : whois IP_adresi[@whois_sunucusu] Whois sunucuları genelde IP adresi dağıtmaya hakkı bulunan kuruluşlarda bulunur. Her sunucu belli bölgeler için geçerli bilgileri tutmaktadır. Bu sebepten dolayı her sunucudan cevap alınamayabilmektedir. Örnek 5.5 : [root@seawolf /vicepaa]# whois 160.75.2.20 [whois.crsnic.net] Whois Server Version 1.3 Domain names in the .com, .net, and .org domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information. No match for "160.75.2.20". >>> Last update of whois database: Fri, 31 Aug 2001 02:24:14 EDT <<< The Registry database contains ONLY .COM, .NET, .ORG, .EDU domains and Registrars. [root@seawolf /vicepaa]# whois [email protected] [whois.ripe.net] % This is the RIPE Whois server. % The objects are in RPSL format. % Please visit http://www.ripe.net/rpsl for more information. % Rights restricted by copyright. % See http://www.ripe.net/ripencc/pub-services/db/copyright.html inetnum: 0.0.0.0 - 255.255.255.255 netname: IANA-BLK descr: The whole IPv4 address space country: NL admin-c: IANA1-RIPE tech-c: IANA1-RIPE status: ALLOCATED UNSPECIFIED remarks: The country is really worldwide. remarks: This address space is assigned at various other places in remarks: the world and might therefore not be in the RIPE database. mnt-by: RIPE-NCC-HM-MNT mnt-lower: RIPE-NCC-HM-MNT mnt-routes: RIPE-NCC-NONE-MNT changed: [email protected] 20010529 source: RIPE route: 160.75.0.0/16 descr: ITU origin: AS9095 mnt-by: AS12777-MNT changed: [email protected] 20000809 source: RIPE role: Internet Assigned Numbers Authority address: see http://www.iana.org. e-mail: [email protected] admin-c: IANA1-RIPE tech-c: IANA1-RIPE nic-hdl: IANA1-RIPE remarks: For more information on IANA services remarks: go to IANA web site at http://www.iana.org. mnt-by: RIPE-NCC-MNT changed: [email protected] 20010411 source: RIPE Netstat Komutu netstat komutu ağ bağlantıları , yönlendirme tablosu , arayüz istatistikleri gibi ağ ile ilgili temel bilgileri göstermeye yarayan bir programdır. Temel olarak aşağıdaki gibi kullanılır : netstat [seçenekler] Hiç bir seçenek verilmediği takdirde netstat programı sistemde kullanımda olan soketler hakkında bilgi verecektir. Bu durumda yapılmış ağ bağlantıları ile ilgili olan bilgiler gözükecektir. Örnek 5.6 : [root@atlas ders_ornek]# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 atlas.cc.itu.edu.t:2012 tcp 0 0 atlas.cc.itu.edu.t:smtp tcp 0 1 atlas.cc.itu.edu:telnet tcp 0 0 atlas.cc.itu.edu.tr:www tcp 0 0 atlas.cc.itu.edu.t:pop3 Foreign Address mail.cc.itu.edu.tr:auth mail.cc.itu.edu.tr:4021 160.75.59.68:1292 212.29.64.132:6309 bio3.bio.itu.edu.t:1523 State ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED TIME_WAIT tcp tcp tcp 0 0 0 0 0 0 atlas.cc.itu.edu.t:smtp 160.75.59.205:1252 TIME_WAIT atlas.cc.itu.edu.tr:www gw-ehv01.pnl.phil:47459 TIME_WAIT atlas.cc.itu.edu.t:pop3 cascade.geop.itu.e:1243 TIME_WAIT Eğer dinleme modundaki soketlerin gösterilmesi isteniyor ise netstat –a seçeneği ile çalıştırılmalıdır. Bu durumda tüm soketler listelenecektir. [root@atlas ders_ornek]# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State ....... ....... tcp 0 0 *:www *:* LISTEN tcp 0 0 *:https *:* LISTEN tcp 0 0 *:smtp *:* LISTEN Netstat komutu çıktısının “Active Internet Connections” bölümünde bulunan sütunlar ve anlamları aşağıdaki gibidir : ¾ Proto : Soket tarafından kullanılan protokolü belirtir. Tcp , udp veya raw değerlerini içerebilir. ¾ Recv-Q : Bu soketi kullanan programa kopyalanmayan verinin büyüklüğünü byte olarak belirtir. ¾ Send-Q : Karşıdaki sistem tarafından alındığı onaylanmayan verinin büyüklüğünü byte olarak belirtir. ¾ Local Adress: Soketin yedek uçtaki IP adresi ve port numarasını belirtir. Eğer netstat programı –n seçeneği ile çalıştırılmamış ise IP adresi ve port numarası için çözümleme yapılır. ¾ Foreign Adress: Soketin uzak uçtaki IP adresi ve port numarasını belirtir. Eğer netstat programı –n seçeneği ile çalıştırılmamış ise IP adresi ve port numarası için çözümleme yapılır. ¾ State : Soketin durumunu belirtir. Soketler aşağıdaki durumlarda olabilirler : • ESTABLISHED : Soket bağlantı gerçekleştirmiş durumdadır. • SYN_SENT : Soket bağlantı kurmaya çalışıyordur. • SYN_RECV : Ağdan bir bağlantı isteği gelmiştir. • FIN_WAIT1 : Soket kapatılmış , bağlantı sonlandırılmak üzeredir. • FIN_WAIT2 : Bağlantı sonlandırılmıştır. Soket karşı ucun bağlantıyı sonlandırmasını beklemektedir. • TIME_WAIT : Soket kapandıktan sonra gelebilecek paketleri alabilmek için beklemektedir. • CLOSED : Soket kullanılmamaktadır. • CLOSE_WAIT : Karşı uç bağlantıyı kapatmıştır. Soketin kapanması beklenmektedir. • LAST_ACK : Karşı uç bağlantıyı sonlandırmış ve soketi kapatmıştır. Onay beklenmektedir. • LISTEN : Soket gelebilecek bağlantılar için dinleme konumundadır. • CLOSING : Yerel ve uzak soketler kapatılmış fakat tüm verilerini göndermemiş durumdadırlar. Tüm veriler gönderilmeden soketler kapanmazlar. Eğer netstat –e seçeneği ile çalıştırılmış ise User sütunu ile soketi kullanan programın çalıştığı kullanıcı kimlik numarası veya kullanıcı ismi bilgisini içerir. Eğer netstat –p seçeneği ile çalıştırılmış ise “PID/Program name” sütunu soketi kullanan programın süreç kimlik numarası ve program ismini gösterecektir. Her kullanıcı sadece kendi programları için bu bilgiyi alabilmektedir. Root kullanıcısı ise tüm soketler için bu bilgiyi alma hakkına sahiptir. İstendiği takdirde netstat programı sadece belli bir protokol için listeleme yapabilmektedir. TCP protokolü için –t , UDP için –u , RAW için –w ve UNIX soketleri için –x seçenekleri kullanılmaktadır. Netstat programı –i seçeneği ile çalıştırıldığında sistemdeki arayüzler ile ilgili istatistikler vermektedir. Bu istatistikler arasında gönderilen paket sayısı (TX-OK) , gönderilen paketlerde oluşan hata sayısı(TX-ERR) , gönderilen paketlerden çöpe atılan sayısı (TX-DRp) , giden paketlerde oluşan üstüne yazma hatası sayısı (TX-OVR) ve aynı bilgilerin gelen paketler (RX) için olanı bulunmaktadır. [root@atlas baykale]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 67876270 0 0 0 119418625 0 0 5 BRU lo 3924 0 1698494 0 0 0 1698494 0 0 0 LRU Arp Komutu Arp komutu sistemin arp önbelleği ile ilgili işlevlerin yapılmasını sağlar. Yapılabilecek temel işlemler arasında arp tablosunu incelemek , arp tablosundan kayıt silmek ve arp tablosuna kayıt eklemek vardır. Sistemin arp tablosunda , IP adresi – fiziksel adres çiftleri için kayıtlar bulunmaktadır. Sistemde bulunan arp tablosunu görmek için sadece arp komutunun çalıştırılması yeterlidir. İstendiği takdirde –a seçeneği de kullanılabilir. –a parametresi kullanıldığı takdirde istenilen makinenin MAC adresi istenebilir. Örnek 5.7 : [root@seawolf /root]# arp Address Hwtype Hwaddress Flags Mask Iface printserv.labs.itu.edu. ether 00:10:5A:DB:65:87 C eth0 160.75.100.254 ether 00:90:86:A1:B4:00 C eth0 [root@seawolf /root]# arp -a 160.75.100.254 ? (160.75.100.254) at 00:90:86:A1:B4:00 [ether] on eth0 [root@seawolf /root]# arp -a printserv.labs.itu.edu.tr printserv.labs.itu.edu.tr (160.75.100.17) at 00:10:5A:DB:65:87 [ether] on eth0 Arp tablosuna kayıt eklemek için –s seçeneği kullanılır. Arp tablosuna kayıt eklemek için kullanılan temel arp komutu yapısı aşağıdaki gibidir : arp –s makine_ismi MAC_adresi arp –s makine_IP MAC_adresi MAC adresi istendiği takdirde XX:XX:XX:XX:XX:XX formatında verilebileceği gibi , hiç bir ayırma işareti kullanılmadan da verilebilir. –s seçeneği ile eklenen MAC adresleri kendiliğinden silinmezler. ARP isteği ile öğrenilen MAC adresleri ise belirli bir süre sonra kendiliğinden silinirler. Örnek 5.8 : [root@seawolf /root]# arp -s 160.75.100.233 00AABBCCDD11 [root@seawolf /root]# arp -s 160.75.100.233 00:AA:BB:CC:DD:11 [root@seawolf /root]# arp Address Hwtype Hwaddress Flags Mask Iface gecici100233.labs.itu.e ether 00:AA:BB:CC:DD:11 CM eth0 printserv.labs.itu.edu. ether 00:10:5A:DB:65:87 C eth0 160.75.100.254 ether 00:90:86:A1:B4:00 C eth0 Arp tablosundan kayıt silmek için –d seçeneği kullanılır. Kayıt temel arp komutunun yapısı aşağıdaki gibidir : arp –d makine_ismi arp –d makine_IP Örnek 5.9 : [root@seawolf /root]# arp Address Hwtype Hwaddress gecici100233.labs.itu.e ether 00:AA:BB:CC:DD:11 160.75.100.254 ether 00:90:86:A1:B4:00 [root@seawolf /root]# arp -d 160.75.100.233 [root@seawolf /root]# arp Address Hwtype Hwaddress gecici100233.labs.itu.e (incomplete) 160.75.100.254 ether 00:90:86:A1:B4:00 silmek için kullanılan Flags Mask Iface CM eth0 C eth0 Flags Mask Iface eth0 C eth0 Ping Komutu Ping komutu ICMP protokolü üzerinden ECHO_REQUEST göndermek için kullanılır. Bu isteği alan sunucu isteğe cevap gönderir. Arada geçen zaman hesaplanarak kullanıcıya gösterilir. Ping komutu çoğunlukla karşıdaki makinenin ayakta olup olmadığını kontrol etmek için kullanılır. Eğer ping isteğine cevap gelmiyor ise uzaktaki makine çalışmıyor olabilir. Aynı zamanda ping komutunun çıktısından iki makine arasındaki transferin ne kadar hızlı olabileceği hakkında tahmin yürütülebilir. Daha kısa sürede cevap veren bir makine ile yapılan haberleşme , daha uzun sürede cevap veren makine ile yapılan haberleşmeden çoğu zaman daha hızlıdır. Ping komutu ile aşağıdaki seçenekler kullanılabilir : ¾ -c sayı : Sayı ile belirtilen kadar ping paketi gönderdikten sonra programdan çıkılmasını sağlar. Bu seçenek kullanılmadığı takdirde ping programı kullanıcıdan kapatma isteği gelene kadar çalışacaktır. En basit kapatma isteği CTRL-C tuşları ile verilir. ¾ -f : Çok hızlı olarak ping paketi üretilmesini sağlar. Sadece root kullanıcısı tarafından kullanılabilir. Ağ üzerinde yavaşlatıcı etken yapabileceğinden dikkatli kullanılması gerekmektedir. ¾ -i süre : Her bir ping paketinin gönderilmesi arasında geçmesi gereken sürenin ayarlanması için kullanılır. Belirtilen süre saniye cinsindendir. Bu seçenek kullanılmadığı takdirde her bir saniyede bir ping paketi gönderilir. –f seçeneği ile uyumsuzdur. ¾ -n : Bu seçenek kullanıldığı takdirde ping isteği gönderilen makineden gelen cevapların kullanıcıya gösterilmesi sırasında makinenin ismi yerine IP adresi kullanılır. ¾ -s paket_büyüklüğü : Gönderilecek ping paketinin büyüklüğünün ayarlanması için kullanılır. Varsayılan paket büyüklüğü 56 byte’tır. 8 bytelık ICMP başlık bilgisi ile paket boyu 64 byte’a çıkar. Örnek 5.10: [root@seawolf /root]# ping 160.75.2.20 PING 160.75.2.20 (160.75.2.20) from 160.75.100.40 : 56(84) bytes of data. Warning: time of day goes back, taking countermeasures. 64 bytes from 160.75.2.20: icmp_seq=0 ttl=254 time=801 usec 64 bytes from 160.75.2.20: icmp_seq=1 ttl=254 time=402 usec 64 bytes from 160.75.2.20: icmp_seq=2 ttl=254 time=365 usec 64 bytes from 160.75.2.20: icmp_seq=3 ttl=254 time=365 usec --- 160.75.2.20 ping statistics --4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/mdev = 0.365/0.483/0.801/0.184 ms Traceroute Komutu Traceroute komutu ile uzaktaki makineye giden yol hakkında bilgi alınır. Bu bilgilerden en temel olanı uzaktaki makineye giderken geçilen yönlendiricilerdir. Komutun temel kullanım şekli aşağıdaki gibidir : traceroute [seçenekler] makine_ismi Traceroute komutu varsayılan olarak UDP paketleri ile çalışır. UDP paketlerinde TTL (TimeToLive) değerlerini ayarlayarak geçilen geçitlerin ortaya çıkmasını sağlar. Bir yönlendirici üzerinden geçen paketi yönlendireceği zaman TTL değerini bir azaltır. Bu değer sıfır olduğu zaman paketi gönderen makineye ICMP “time exceeded” paketi gönderilir. Traceroute bu özelliği kullanarak yol bilgisini çıkarmaktadır. İlk olarak TTL değeri 1 olan bir UDP paketi yaratılır. Bu paket ilk yönlendiriciye geldiğinde yönlendirici kaynak makineye ICMP “time exceeded” paketi gönderir. Bu paket traceroute komutu tarafından işlenir. Daha sonra TTL değeri 2 olan bir paket gönderilir. Bu olay hedef makineye varana kadar devam eder. Başlangıç TTL değeri istendiği takdirde –f seçeneği ile ayarlanabilmektedir. UDP paketleri yerine ICMP paketleri kullanılabilmektedir. ICMP paketlerinin kullanılması için –I seçeneği kullanılmalıdır. Örnek 5.11: [root@seawolf /root]# traceroute www.metu.edu.tr traceroute to www.metu.edu.tr (144.122.199.13), 30 hops max, 38 byte packets 1 160.75.100.254 (160.75.100.254) 3.737 ms 0.863 ms 1.001 ms 2 cis7500 (160.75.3.1) 3.061 ms 1.569 ms 1.139 ms 3 ATM0-0-48-itu-ayazaga.ulus.ulak.net.tr (193.255.0.33) 4.062ms 14.875ms 9.401 ms 4 193.140.10.249 (193.140.10.249) 11.420 ms 9.836 ms 8.823 ms 5 odtu-ulus-E1.ulak.net.tr (193.140.0.6) 21.681 ms 67.849 ms 26.746 ms 6 2.asn9000.atm.metu.edu.tr (144.122.155.3) 23.340 ms 19.979 ms 23.190 ms 7 ani.cc.metu.edu.tr (144.122.199.13) 22.039 ms 25.180 ms 24.370 ms [root@seawolf /root]# traceroute -f 3 www.metu.edu.tr traceroute to www.metu.edu.tr (144.122.199.13), 30 hops max, 38 byte packets 3 ATM0-0-48-itu-ayazaga.ulus.ulak.net.tr (193.255.0.33)229.305 ms 4.603 ms 256.893ms 4 193.140.10.249 (193.140.10.249) 9.323 ms 21.810 ms 12.495 ms 5 odtu-ulus-E1.ulak.net.tr (193.140.0.6) 27.712 ms 19.829 ms 22.949 ms 6 2.asn9000.atm.metu.edu.tr (144.122.155.3) 39.968 ms 31.222 ms 29.063 ms 7 ani.cc.metu.edu.tr (144.122.199.13) 19.757 ms 19.717 ms 45.454 ms Birden fazla ağ arayüzüne sahip makinelerde hangi arayüz kullanılarak paketlerin gönderileceği belirtilebilir. Bu işlem için –i seçeneği kullanılmalıdır. –i seçeneğinden sonra kullanılacak olan arayüzün ismi verilmelidir. Temel E-posta ve Haber Grubu Araçları Pine Programı Pine programı Unix türevi sistemlerde kullanılan en popüler e-posta ve haber okuma araçlarından birisidir. E-posta dizini , uzaktaki sunucudan POP3 ve IMAP protokolleri ile e-posta okuma gibi özelliklere sahiptir. Pine komutu çalıştırıldığında Resim 5.1’deki ekran gelmektedir. Ok tuşları ile menüde gezinti yapılabilmektedir. İstendiği takdirde kısayol tuşları ile de verilmek istenen komut verilebilir. Kısayol tuşları en soldaki sütunda bulunan tuşlardır. “Help” alt menüsünde PINE ile ilgili yardım alabileceğiniz öğeler bulunmaktadır. “Compose Message” ile yeni bir eposta yazabilmektedir. “Message Index” ile açık olan e-posta kutusunun içerdiği e-posta mesajları görülebilmektedir. “Folder List” alt menüsünde ise sistemde bulunan kullanıcıya ait e-posta dizinlerinin (kutuları) listesi görülebilmektedir. Bu listeden istenilen e-posta kutusuna geçilip içerdiği e-postalar görülebilir. Resim 5.1 : Pine programı ana ekranı. Pine Programı İle E-Posta Okumak Pine e-postaların tutulabileceği birden fazla e-posta dizinini desteklemektedir. E-posta dizinleri aslında birer dosyadırlar. Dosyalar içlerinde e-postaları barındırırlar. Pine programı kullanıcının ev dizininde mail dizini içindeki e-posta dizinlerini kullanmaktadır. Ayrıca her kullanıcı için sistemde bulunan ve INBOX(gelen kutusu) olarak adlandırılan bir e-posta kutusu bulunmaktadır. Red Hat Linux İşletim sisteminde bu e-posta kutuları /var/spool/mail dizini altında tutulmaktadır. Bu dizin altında her kullanıcı için ayrı bir dosya bulunmaktadır. Pine çalıştırılırken hangi dizini açacağı bildirilmemiş ise varsayılan olarak kullanıcının gelen kutusunu açar. Pine’in hangi dizini açacağı çalıştırma esnasında “–f dizin “ seçeneği ile verilebilir. Açılan dizinin içerdiği mesajları görmek için “Message Index” alt menüsü seçilmeli veya “I” komutu verilmelidir. Bu durumda açılan e-posta dizininin içerdiği mesajlar varsayılan olarak geliş tarihlerine göre gösterilecektir. İstenilen mesaj seçilip ENTER tuşuna basıldığı takdirde mesajın içeriği görülebilir. En soldaki sütunda mesajın durumu ile ilgili bilgi verilir. “N” harfi mesajın yeni olduğunu , “A” harfi mesaja cevap verildiğini gösterir. Okunan mesaja cevap verilmediği durumlarda bilgi kısmı boş olarak bulunur. Ekranın alt kısmında kullanılabilecek komutlar ve kısaltmaları gözükmektedir. Seçili e-postayı silmek için “D” , silinmesi için işaretlenmiş epostadan silinme işaretini kaldırmak için “U” , e-postaya cevap vermek için “R” ve e- postayı başka bir adrese yönlendirmek için “F” komutları verilebilir. “J” komutu ile istenilen mesajın numarası verilerek o mesajın seçili olması sağlanabilir. Resim 5.2 : Pine mail programı. İçinde bulunulan e-posta dizinini değiştirmek için ya ana menüden “Folder List” alt menüsüne gidilmeli ya da “L” komutu verilmelidir. (Ana Menü’ye dönmek için “M” komutu verilebilir.) “Folder List” alt menüsüne geçildiği takdirde kullanıcının sahip olduğu e-posta dizinleri listelenecektir. (Bkz : Resim 5.3) Resim 5.3: Pine e-posta dizinleri ekranı. Açılması istenen e-posta dizini seçilip ENTER tuşu ile dizinin içerdiği mesajlar görülebilir. Uzaktaki bir sunucudan POP3 veya IMAP ile e-posta okumak için yapılması gereken ayarlar vardır. Bu ayarlar ana menüde bulunan “Setup” alt menüsü ile yapılmaktadır. Setup alt menüsüne girildiği takdirde yapılabilecek ayarlar için alt menüler listelenecektir. POP3 veya IMAP ayarları için “Config” alt menüsüne girilmelidir. Bu işlem içinde “C” komutunun verilmesi gerekmektedir. Config alt menüsüne girildiği takdirde Resim 5.4’deki ekran gelecektir. Bu kısımda genel ayarlamalar yapılabilmektedir. Uzaktaki sunucudan e-posta okumak için değiştirilmesi gereken ayar “inbox-path” ayarıdır. Bu ayar varsayılan olarak boş bırakıldığından sistemde geçerli olan gelen kutusu kullanılır. Resim 5.4 : Pine genel ayarlar ekranı. Uzaktaki sunucu IMAP sunucusu ise yazılması gereken bilgi {sunucu_ismi}dizin formatındadır. Dizin ismi verilmediği takdirde uzaktaki sunucuda kullanıcı için tanımlı olan gelen kutusu kullanılacaktır. Uzaktaki sunucu POP3 sunucusu ise girilmesi gereken bilgi {sunucu_ismi/pop3} formatındadır. Resim 5.5 : Pine mail programı. Uzaktaki sunucudan e-posta okumak istendiği durumlarda sunucuda geçerli olan kullanıcı ve şifresi istenecektir. (Bkz: Resim 5.5) Pine Programı İle E-Posta Okumak Yeni bir e-posta hazırlamak için ana menüden “Compose Message” seçeneği seçilmeli veya “C” komutu verilmelidir. Bu durumda Şekil 1’deki ekran gelecektir. “To” ve “Cc” bilgileri ile e-postanın gönderileceği adresler belirtilmektedir. “Subject” kısmı e-postanın konusunu içeren bir bilgi girilmesi için kullanılmaktadır. E-postaya dosya eklenecek ise “Attcahment” kısmında dosyanın yolu belirtilmelidir. Dosyayı bulmak için CTRL-T tuş kombinasyonu ile dosya gezgini açılabilir. E-postanın içeriği “Message Text “ ile belirtilen bölüme yazılmalıdır. E-posta yazım işlemi bittikten sonra CRTL-X ile e-posta gönderilebilir. E-postanın gönderilmesinden vazgeçildiği takdirde CRTL-C komutu kullanılabilir. Pine Programı İle Haber Gruplarının Kullanımı Pine haber gruplarından okuma ve haber gruplarına mesaj göndermeyi desteklemektedir. Haber gruplarının kullanılması için yapılası gereken ayarlar bulunmaktadır. Yapılması gereken en önemli ayar haber sunucusu ayarıdır. Bunun için “Setup” alt menüsünden “Config” komutu ile girilen genel ayarlar kısmında “nntp-server” kısmına haber sunucusunun ismi yazılmalıdır. Bu ayar yapıldıktan sonra Pine programı tekrar başlatıldığında “Folder List” alt menüsüne geçişte iki seçenek ortaya çıkmaktadır. Bunlardan birincisi e-posta dizinleri , diğeri ise haber sunucusundaki haber gruplarıdır. Bu ekran Resim 5.6 ’de gözükmektedir. Resim 5.6 : Pine haber grupları ekranı. Haber grupları seçildiği takdirde üye olunan haber grupları listesinin bulunduğu bir ekran kullanıcı karşısına gelecektir. Başlangıçta hiç bir gruba üye olunmadığından bu ekranda bilgi bulunmayacaktır. Bu ekran Resim 5.7’de gözükmektedir. Resim 5.7 : Pine haber grupları ekranı. Bu ekranda yeni gruplara üye olunabilir veya üye gruplardan çıkılabilir. Üye gruplardan çıkmak için çıkılacak grup seçili iken “D” (delete) komutunu vermek yeterlidir. Yeni bir gruba üye olmak için “A” (add) komutu verilmelidir. Bu komut verildikten sonra üye olunmak istenen grubunun ismi kullanıcıdan istenecektir. İstendiği takdirde grup içinde geçen bir kelime yazılıp istenilen grup Resim 5.8’de gözüken grup bulma penceresinden seçilebilir. Resim 5.8: Pine haber grubu arama ekranı. Standart Mail Programı Mail programı e-posta okumak ve göndermek için kullanılabilecek ve arayüze sahip olmayan basit bir programdır. Mail programı hiç bir parametre olmada çalıştırıldığı takdirde e-posta okuma modunda çalışacaktır. Bu durumda kullanıcının gelen kutusunda bulunan e-postalar için gönderen , geliş tarihi ve konu bilgisi içeren bir satır gösterecektir. Satırda e-postanın kaçıncı e-posta olduğu bilgisi de bulunmaktadır. Bir e-postayı okumak için numarasını girmek yeterli olacaktır. İlk sırada bulunan e-postayı okumak için ENTER tuşuna basılması yeterli olacaktır. Artı “+” karakteri ile bir sonraki e-postayı , eksi “-“ karakteri ile de bir önceki epostayı okumak mümkündür. Kullanılabilecek komut listesini almak için “?” karakteri kullanılabilir. Örnek 5.12 : [halil@atlas halil]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/halil": 1 message 1 new >N 1 [email protected] Fri Aug 31 16:19 15/654 "Deneme" & Mail programı aynı zamanda e-posta göndermek içinde kullanılabilir. E-posta gönderme modunda kullanım için en azından e-postanın gideceği e-posta adresi parametre olarak verilmelidir. Konu bilgisi –s seçeneği ile verilebilir. Eğer e-posta birden fazla kişiye gidecek ise –c seçeneğinden sonra kopyanın gitmesi istenen e-posta adresleri virgül ile ayrılarak yazılabilirler. Kopyanın kime gittiğinin bilinmesi istenmiyor ise –b seçeneğinden sonra kopyanın gideceği e-posta adresleri yazılabilir. E-posta göndermek için mail komutun çalıştırılma şekli aşağıdaki gibidir. mail e-posta@adresi [-s konu][-c Karbon_Kopya_Adresleri] [-b Kör_Karbon_Kopy a] < içerik içerik ile belirtilen dosya gönderilecek olan e-postayı içeren dosyadır. Procmail ve Procmail Konfigürasyonu Procmail Red Hat Linux işletim sistemine sahip e-posta sunucularında kullanılan ve alınan e-postaların yerel olarak dağıtılmasını sağlayan bir programdır. E-postalar sunucular arasında MTA (Mail Transport Agent) olarak adlandırılan SMTP protokolü ile çalışan programlar sayesinde dolaşır. Red Hat Linux işletim sistemine sahip sistemlerde MTA olarak sendmail programı kullanılmaktadır. Qmail , exim ve postfix programları Linux’ta yaygınca kullanılan diğer SMTP sunucularıdır. Sendmail programı bir yerel olarak dağıtılması gereken e-postayı aldıktan sonra bu epostayı yerel dağıtım aracına (LDA-Local Delivery Agent) gönderir. Red Hat Linux İşletim sisteminde bu görevi procmail yerine getirmektedir. Procmail programı e-postayı aldıktan sonra /etc/procmailrc dosyasına bakar. Bu dosyada tüm sistem için tanımlanmış procmail kuralları bulunur. Bu dosyada tanımlanan kurallar tüm kullanıcıları etkilediğinden kurallar yaratılırken dikkatli olunması gerekmektedir. Bu dosyanın bulunma zorunluluğu yoktur. Procmail daha sonra e-postanın geldiği kullanıcının ev dizininde .procmailrc dosyasını arar. Bu dosyada kullanıcının kendisi için tanımladığı kurallar bulunmaktadır. Bu dosya bulunmadığı takdirde procmail gelen e-postayı kullanıcının sistem tarafından tanımlanan gelen kutusuna yerleştirir. Bu dosya mevcut ise bu dosyadaki kurallar işlenerek e-postanın yerleştirileceği yer bulunur. E-posta hiç bir kurala uymuyor ise kullanıcının gelen kutusuna yerleştirilir. Red Hat Linux işletim sistemi ile birlikte gelen sendmail programı varsayılan yerel dağıtma aracı olarak procmail kullanmaktadır. Eğer sistemde procmail yerine başka bir LDA kullanılıyor ise procmail .forward dosyası aracılığı ile de çalıştırılabilir. Bu dosyanın temel amacı gelen e-postayı yönlendireceği adresi belirlemektir. Eğer bu dosya “|exec /usr/bin/procmail” şeklinde bir satır içerirse gelen e-posta procmail tarafından işlenir. (NOT : Belirtilen satırın çalışabilmesi için procmail programının /usr/bin dizini altında bulunması gerekmektedir.) Procmailrc Dosyası Procmail kurallarının tanımlandığı dosyalar procmailrc dosyaları olarak adlandırılırlar. Bu dosyalar değişken atamaları ve procmail kurallarını içerirler. En basit şekilde kurallar , gelen e-postanın başlığında arama yapmak için tek satırlık regüler ifadeden oluşurlar. Gelen e-postanın ilk uyduğu kural sayesinde yerleştirileceği yer bulunmaktadır. Temelde iki farklı kural tipi bulunmaktadır. Bunlar dağıtım kuralları ve dağıtım yapılmayan kurallardır. Dağıtım yapılan kurallarda tanımlanan kurallardan biri uyduğu takdirde procmail e-postanın dağıtıldığını varsayacak ve diğer kuralları işletmeyecektir. Bu durum dağıtım yapılmayan kurallarda gerçekleşmez. Eğer dağıtım yapılmayan bir kural uygun olursa procmail daha sonra bulunan kuralları da işletir. Dağıtım kuralları gelen e-postanın başlık veya gövdesinin bir dosyaya yerleşmesini , bir programa aktarılmasını veya bir başka e-posta adresine gönderilmesini sağlayan kurallardır. Dağıtım yapılmayan kurallar ise , çıktısı tekrar procmail tarafından incelenecek olan program veya filtreler ile yeni blok başlatan kurallardır. İstendiği takdirde dağıtım yapılan kuralların dağıtım yapılmayan kurallar gibi çalışması sağlanabilir. Bunun için “c” bayrağının kural başlangıcında kullanılması gerekir. Procmailrc dosyalarında açıklama satırları da kullanılabilmektedir. Açıklama satırları # karakteri ile başlamaktadırlar. Kural tanımlamaları aşağıdaki biçime sahiptir : :0 [bayraklar] [ : [kilit_dosyası] ] <sıfır veya daha fazla koşul satırı. Her koşul bir satırda > <Tam olarak bir yapılacak iş satırı> Koşul satırları “*” karakteri ile başlarlar. Bu karakterden sonraki herşey regüler ifade olarak algılanır. Bu kısımda kullanılabilecek regüler ifadeler egrep programı tarafından kullanılan regüler ifadeler ile tam olarak uyumludur. Her satırdaki koşullar “ve” işlemine tabi tutulular. Bunun anlamı tüm koşullara uygun olan e-posta ancak kurala uygun kabul edilir. Eğer hiç bir koşul satırı bulunmuyor ise tüm e-postalar kurala uygun kabul edilir. Yeni kural tanımı başlangıcında kullanılabilecek temel bayraklar aşağıdaki gibidir : ¾ H : Başlık üzerinde egrep işleminin yapılmasını sağlar. Bu varsayılan davranıştır. ¾ B : Gövde üzerinde egrep işleminin yapılmasını sağlar. ¾ D : Büyük küçük harf ayrımının yapılmasını sağlar. Varsayılan olarak bu ayrım yapılmaz. ¾ h : E-postanın başlık bilgisinin dağıtılma işlemi sırasında gönderilmesini sağlar. Bu varsayılan davranıştır. ¾ b : E-postanın gövdesinin dağıtım işlemi sırasında gönderilmesini sağlar. Bu varsayılan davranıştır. ¾ c : E-postanın karbon kopyasının çıkarılıp onun üzerinde işlem yapılmasını sağlar. Dağıtım kurallarında anlamlı bir bayraktır. Dağıtım yapılmayan kurallarda sadece blok başlatan kurallar için ayrı bir procmail prosesinin çalışmasını sağlar. ¾ f : E-postanın gönderildiği yerin bir filtre olarak algılanmasını sağlar. ¾ w : Filtrenin çıkış değerinin beklenmesini sağlar. Varsayılan olarak procmail filtre programının bitmesini beklemez. ¾ W : Filtrenin çıkış değerinin beklenmesini sağlar. Oluşan hata mesajları gösterilmez. ¾ i : Tanımlanan kural sırasında oluşacak yazma hatalarının göz ardı edilmesini sağlar. Ayrıca koşul tanımlamalarının başında aşağıdaki özel karakterler de kullanılabilir : ¾ ! : Verilen koşulun tümleyenin alınmasını sağlar. ¾ ? : Belirtilen programın çıkış kodunun kullanılmasını sağlar. ¾ < : E-postanın toplam büyüklüğünün belirtilen bytetan küçük olup olmadığını kontrol eder. ¾ > : E-postanın toplam büyüklüğünün belirtilen bytetan büyük olup olmadığını kontrol eder. Eğer kural tanımı başlangıç satırında ikinci bir “:” işareti bulunuyor ise procmail bu kural için bir kilit dosyası yaratacaktır. Bu sayede bu kural sonunda yapılacak yerleştirme sırasında dosyaya başka bir proses erişemeyecektir. Yapılacak işlem satırında ise aşağıdaki karakterler özel anlamlar taşımaktadır : ¾ ! : E-postayı belirtilen adrese yönlendirmek için kullanılır. ¾ | : Procmail’in bir program çalıştırmasını sağlar. ¾ { : Yeni bir blok başlangıcı tanımlar. Bloklar içinde yeni kurallar tanımlanabilir. İşlem satırı bu karakterler dışında kalan karakterler ile başladığı takdirde e-postanın yerleştirileceği dosya veya dizin ismi olarak algılanır. Eğer yerleştirilecek yer bir dizin ise her mesaj ayrı bir dosya içine yerleştirilir. Eğer yerleştirilecek yer bir dosya ise tüm mesajlar bu dosyanın içine yerleştirilir. Procmail tarafından kullanılan özel çevre değişkenleri bulunmaktadır. Bunların temel olanları aşağıdaki gibidir : ¾ MAILDIR : Procmail prosesinin içinde çalıştığı dizindir. Varsayılan olarak kullanıcının ev dizini kullanılır. ¾ ORGMAIL : Kullanıcının sistem tarafından tanımlanan orjinal gelen kutusudur. Varsayılan olarak “/var/spool/mail/$LOGNAME “ değerine sahiptir. Eğer e-posta bu dosyaya yazılamaz ise e-postayı gönderen kişiye hata mesajı döndürülür. ¾ DEFAULT : E-postanın yazılacağı varsayılan e-posta kutusunu içerir. Varsayılan olarak ORGMAIL ile aynı değer sahiptir. ¾ LOGFILE : Kurallar işlenirken yaratılan logların tutulacağı dosyayı belirtir. ¾ VERBOSE : Log yaratılırken ayrıntılı logların yaratılmasını sağlar. ¾ Procmail koşul satırlarında kullanılabilecek özel regüler ifadeler içerir. : ¾ ^TO_ : Varış başlık bilgileri (To,CC vs) için bir kısaltmadır. Belli bir varış adresine giden e-postaların bulunması için kullanılır. ¾ ^FROM_DAEMON : Belli başlı sunucu programlarından gelen e-postaları yakalamak için kullanılır. ¾ ^FROM_MAILER : E-posta ile işlem yapan belli başlı sunuculardan gelen epostaları yakalamak için kullanılır. Örnek 5.13 : [email protected] adresinden gelen e-postaları muglaeml dosyasına atmak için :0: * ^From.*[email protected] muglaeml E-posta bir dosyaya dağıtılacağı için kilit mekanizmasının kullanımı önerilir. Bu durumda Linux.lock dosyası e-posta Linux dosyasına yazılırken varolacaktır. Bu sayede ikinci bir procmail prosesinin aynı dosyaya yazması ve bu şekilde e-postaların iç içe geçmesi engellenecektir. Örnek 5.14 : Konu (Subject) başlık [email protected] adresine yönlendirmek için : bilgisi [linux] içeren e-postaları :0 * ^Subject:.*\[linux\] ! [email protected] Örnek 5.15 : [email protected] adresinden gelip Delivered-To başlık bilgisi [email protected] içeren e-postaların hem linux-list dosyasına yazılması hem de [email protected] adresine yönlendirmek için : :0 * ^From.*[email protected] * ^Delivered-To.*[email protected] { :0c linux-list :0 [email protected] } Yukarıdaki kural tanımı istendiği takdirde aşağıdaki şekilde de yazılabilir. :0 c * ^From.*[email protected] * ^Delivered-To.*[email protected] linux-list :0 * ^From.*[email protected] * ^Delivered-To.*[email protected] [email protected] Örnek 5.16 : Boyutu 10000 byte ile 30000 byte arasında olan e-postaların [email protected] adresine yönlendirilmesi için : :0 * > 10000 * < 30000 ! [email protected] Örnek 5.17 : Gelen her e-postanın başlıklarını baslik isimli dosyaya yazdırmak için : :0 hc: baslik Eğer başlık bilgilerinin yazdırılacağı dosya sıkıştırılmış bir dosya ise : :0 hwc: | gzip >>baslik.gz Örnek 5.18 : Gelen e-postaların yıl-ay formatına sahip dizinler içine yazılması için AYDIZINI=`date +%y-%m` #AYDIZINI ile belirtilen dizinin var olup olmadığı kontrol ediliyor. #Eğer dizin yok ise yaratılıyor. :0 Wic * ? test ! –d $AYDIZINI | mkdir $AYDIZINI #Gelen e-postalar belirtilen dizine yazılıyor. :0 $AYDIZINI Örnek 5.19 : Otomatik Cevap Verme için : #Daemon ve X-Loop başlığı kendi adresinizi içeren e-postalara cevap verilmez. #X-Loop kontrolü ile e-posta döngülerinin oluşması engellenir. :0 h c * ! ^FROM_DAEMON * !^X-Loop: [email protected] | (formail –r –I”Precedence: junk” –A”X-Loop: [email protected]”;\ echo “Gönderdiğiniz e-postayı aldım. Şu an izindeyim. Gelince e-postanızı okuyacağım.”) \ |$SENDMAIL –t Pardus’ta Ağ Ayarları ve Ağ Programları Bu bölümde ağ bağlantı programını çalıştırarak Pardus'u çeşitli yöntemlerle (kablosuz, modem ya da ethernet) internet ya da yerel ağa bağlayacak, diğer bilgisayarla iletişim kurmasını sağlayacağız. Öncelikle ağ bağlantı programını nasıl çalıştıracağınızı anlatalım. ¾ ¾ ¾ ¾ Sisteme kullanıcı hesabınızla girin. Pardus menüsünden Tasma'yı çalıştırın. İnternet ve Yerel ağ > Ağ yapılandırması simgesine çift tıklayın. Ağ yapılandırması için kullanabileceğiniz program çalışmaya başlayacaktır. Aşağıda, örnek bir ağ yapılandırması ekran görüntüsü bulunmaktadır. Resim 5.9 : Pardus ağ ayarları ekranı. Bu programı ilk defa çalıştırınca herhangi bir ağ ayarı bulunmayacaktır. İnternet ya da yerel ağ bağlantı yönteminize göre bir bağlantı seçip devam etmeniz gerekecektir. Sırasıyla ethernet kartı üzerinden (Kablonet, ADSL, vb), modem ile ya da kablosuz ağ ile bağlantı işlemlerini sırasıyla görelim. Ethernet Kartı İle Bağlantı Bu yöntemle hazır bir ağda (örneğin bir kurumdaki yerel ağa), ya da yeni bir bağlantıya (örneğin Kablonet) erişim sağlanabilir. Ethernet kartı ile bağlantı kurulabilmesi için, Pardus'un ethernet kartını tanımış olması gereklidir. Eğer ethernet kartı tanınmış ise, özellikleri ağ ayarları programında görüntülenecektir. Ethernet kartı ile ağa bağlantı kurmak için aşağıdaki işlemlerin sırasıyla yapılması yeterlidir. ¾ ¾ Ağ bağlantı programını çalıştırın. “Oluştur” düğmesine tıklayın. Karşınıza aşağıdaki pencere gelecektir. Resim 5.10 : Bağlantı türünün seçilmesi. ¾ ¾ ¾ ¾ ¾ Bu pencerede “Ethernet network”ü seçin ve “Bağlantıyı oluştur” düğmesine tıklayın. Karşınıza gelen yeni pencerede sırasıyla bağlantı ismini girin ve kullanılacak ethernet kartını seçin. Kurumunuzdaki ağ altyapınızın türüne göre DHCP ile otomatik bir IP alabilir, ya da elle IP ayarı yapabilirsiniz. Kullan düğmesine tıklayın ve bu pencereden çıkın. Ana pencerede “bağlan” düğmesine tıklayarak bağlantı kurabilirsiniz. Bu durumda bağlantı simgesinin üzerinde yeşil bir onay simgesi belirecektir. Genellikle, ADSL ya da Kablo modem üzerinden internete çıkacak olan Pardus kullanıcıları, bu bölümde anlatacağımız yöntemle internete girerken DHCP'yi seçip bir IP'nin otomatik olarak atanmasını sağlayabilir. Bunların yanında, her üç bağlantı türünü de tanımlarken, ana pencerede bulunan “Genel Ayarlar” düğmesine tıklamanız halinde, ¾ ¾ Bilgisayarın adını belirleyebilir İsim çözümlemesi için kullanılacak bilgisayarların IP numarasını girebilirsiniz. Genellikle, otomatik IP verilen ortamda, ethernet bağlantısını seçmek ve DHCP ile bilgisayarın IP almasını sağlamak yeterlidir. Resim 5. 11 : Makine adı ve DNS ayarları. Kablosuz Bağlantı Kablosuz bağlantı da ethernet bağlantısına oldukça benzer. En önemli farkı, kablosuz ağlara özgü bir adın olmasıdır. Genellikle, güvenlik amaçlı olarak bu adın bağlantı sırasında verilmesi gerekebilir. ¾ Ağ bağlantı programını çalıştırın. ¾ “Oluştur” düğmesine tıklayın. ¾ Bu pencerede “Kablosuz network”ü seçin ve “Bağlantıyı oluştur” düğmesine tıklayın. ¾ Karşınıza gelen yeni pencerede sırasıyla bağlantı ismini girin, kullanılacak kablosuz kartı seçin ve gerekiyorsa ESS ID karşısına kablosuz bağlantıya özgü adı verin. Bu aşamada, kablosuz ağın adını bilmiyorsanız “Tara” düğmesine tıklayarak mevcut kablosuz ağların bir listesini alabilirsiniz. Aynı pencerede “Bağlan” diyerek bağlantıyı kurun. Resim 5.12 : Kablosuz ağa bağlantı. Bu aşamadan sonra birkaç saniye içinde kablosuz bağlantı etkinleşecek ve internete bağlanacaksınız. Denemek için Firefox'u çalıştırın ve ilgilendiğiniz bir web sayfasına girin. Pardus’ta E-Posta İşlemleri –Kmail Kmail, Pardus ile birlikte standart olarak gelen e-posta istemcisidir. Bu bölümde Kmail hakkında bilgi verilecektir. Kmail yardımıyla e-postaları alabilmek ve bunları göndermek için öncelikle Ayarlar menüsündeki Kmail Ayarları seçeneğinden bazı ayarların yapılmış olması gerekmektedir. Öncelikle bir kullanıcı hesabı eklenmesi gerekir. Yeni bir kullanıcı eklemek için Kmail'ın Ayarlar menüsündeki Kmail ayarları seçeneğine girilir. Burada kullanıcı tanımları kısmındaki e-posta kutucuğuna e-posta adresi yazılır.. Kmail Hesap Ayarları Ağ sayfasından Kmail'e e-posta hesabının tanıtılması gerekmektedir.. Bu sayfa, Kmail'in e-posta gönderirken ya da alırken kullanması gereken sunucunun adresi ve port numarası başta olmak üzere bir çok ayarın yapılmasını sağlar. Resim 5.13 : Kmail kullanıcı ayarları penceresi. Mesaj yollama bölümünün altında, desteklenen e-posta yollama protokolleri görülmektedir. Penceredeki 'Ekle' tuşuna basılınca desteklenen iki protokolden SMTP seçilir.. Bu aşamadan sonra hesap tanımına istenen başlık yazılabilir. Makine kısmına eposta sunucusunun adresi yazılmalıdır. E-posta alma ayarlarını yaparken de sunucunun bilgilerinin belirtilmesi gerekiyor. Kullanılan protokole göre yapılan seçim POP3 ya da IMAP olabilir. Buradaki seçim kullanıcıya aittir.. Daha sonra kullanıcı adı, parola ve kullanılan makinenin adresi yazılır. Resim 5.14 : E-Posta alımında desteklenen protokoller. Yapılan Ayarların Test Edilmesi Bunun için kullanıcı kendi kendine e-posta yollamalıdır. Bunun için menüden 'Yeni Mesaj' seçeneği tıklanır. Açılan penceredeki 'Adres' kutucuğuna kullanıcı kendi e-posta adresinizi yazar ve e-postayı gönderir. Ardından yollanmış olan e-postanın tekrar kendine ulaşıp ulaşmadığını öğrenmek için Dosya menüsündeki Gönder/Al seçeneği tıklanır. Kmail Klavye Kısayolları Kısayol Sağ Ok ya da N Sol Ok ya da P + Ctrl + Ctrl Ctrl ve Yukarı Ok Ctrl ve Aşağı Ok Eylem Sonraki mesaja geçer. Önceki mesaja geçer. Sonraki okunmamış mesaja geçer. Önceki okunmamış mesaja geçer. Sonraki dizindeki okunmamış mesaja geçer Önceki dizindeki okunmamış mesaja geçer. Eğer dizin listesi seçili ise bir sonraki dizine geçer. Eğer dizin listesi seçili ise bir önceki dizine geçer. Tablo 5.1 : Kmail klavye kısayolları. İŞLETİM SİSTEMİ ÇEKİRDEĞİ Kernel Çeşitleri, Modüller ve Modül İşlemleri Tüm işletim sistemlerinin en önemli bileşenlerinden biri işletim sistemi çekirdeğidir. İşletim sistemi çekirdekleri sistem kaynaklarını kontrol eder ve işletim sisteminin diğer parçaları tarafından kullanılan servisleri sağlarlar. Linux işletim sisteminin çekirdeği çoğu işletim sistemi çekirdeğinden farklı olarak kaynak kodu olarak dağıtılmaktadır. Bu sayede sistem yöneticileri kendi sistemlerine en uygun çekirdeği derleyip kullanabilmektedir. Bu işlem sayesinde sistemin verimi ve performansı iyileştirilebilmektedir. Linux çekirdeği devamlı geliştirilen bir çekirdektir. Linux çekirdeğinin sürümleri üç sayı ile belirtilir. (Örnek : 2.4.5). Bu sayılar aşağıdaki şekilde adlandırılır. Ana (major) sürüm numarası Küçük (minor) sürüm numarası Yama seviyesi Örneğin 2.4.5 sürümlü Linux çekirdeğinde , ana sürüm numarası 2 , küçük sürüm numarası 4 , yama seviyesi 5’dir. Ana sürüm numarası birkaç yılda bir değişen bir numaradır. Çekirdek yapısı çoğunlukla her ana sürümde birbirinden farklı olabilmektedir. Bu sebepten dolayı daha önceki ana sürüm ile çalışacak şekilde ayarlanmış programların gözden geçirilmesi ve düzeltilmesi gerekebilir. Küçük sürüm numaraları daha sık olarak değişmektedir. Küçük sürüm numarası aynı zamanda çekirdeğin kararlı (stable) sürüm ve ya geliştirme (development) sürümü olduğunu belirlemek için kullanılır. Küçük sürüm numarası çift ise çekirdek kararlı sürüm , tek ise çekirdek geliştirme sürümüdür. Geliştirme sürümleri , çekirdeğe yeni özellikler eklemek için kullanılırlar. Özellikle uygulama ortamlarında kararlı sürümlerin kullanılması önerilmektedir. Yama seviyesi , çekirdekte bulunan hataların giderilmesi veya iyileştirmeler sonucu yapılan ufak değişikliklerle ortaya çıkan çekirdekleri belirtmek için kullanılır. Bazı zamanlarda bir hafta içinde birden fazla yama seviyesi değişebilmektedir. Kernel Çeşitleri Linux çekirdeği ilk olarak ortaya çıktığında tek dosyadan oluşan bir yapıya sahipti. Günümüzdeki Linux çekirdekleri ise modül adı verilen bir kaç dosyadan oluşabilmektedir. Tek dosyadan oluşan işletim sistemi çekirdekleri monolithic çekirdek olarak adlandırılır. Modül kullanımına izin veren çekirdekler ise modüler (modular) çekirdek olarak adlandırılır. Modüler Linux çekirdeklerine gerekli destekler çalışma anında eklenebilir ve çıkartılabilirler. Bu seçenek monolithic çekirdeklerde bulunmamaktadır. Monolithic çekirdekler çoğunlukla daha hızlı ve daha güvenlidirler. Modüler çekirdekler sayesinde ise daha esnek bir yapı elde edilir. Kernel Modülleri Çekirdek modülleri , çalışma esnasında çekirdeğe eklenip çıkarılabilen çekirdek parçacıklarıdır. Linux çekirdeğinin 2.2 sürümü ile beraber modüller gerektikleri anda çekirdeğe dahil edilebilmektedir. Linux çekirdeğinin 2.0 sürümünde ise modüllerin kullanıcı tarafından yüklenmesi gerekmektedir. Bu bölümde modüller üzerinde işlem yapan temel komutlar ve modüller için yapılandırma dosyası olan modules.conf dosyası anlatılacaktır. Modüllerin Sistemdeki Yerleri Çekirdek modülleri standart olarak /lib/modules dizini altında bulunmaktadır. Bu dizin altında sistemde bulunan her çekirdek sürümü için ayrı bir modül dizini bulunmaktadır. Örnek 6.1 : [root@lnxsrv3 /root]# ls -l /lib/modules/ total 16 drwxr-xr-x 4 root root 4096 Oct 1 08:13 2.4.2-2 drwxr-xr-x 4 root root 4096 Oct 1 08:12 2.4.2-2smp drwxr-xr-x 4 root root 4096 Oct 18 17:48 2.4.3-SGI_XFS_1.0.1smp drwxr-xr-x 4 root root 4096 Oct 18 17:45 2.4.9-xfs Sistemde çalışan çekirdek sürümünü öğrenmek için uname –r komutu kullanılabilmektedir. [root@lnxsrv3 /root]# uname -r 2.4.9-xfs 2.4.9-xfs çekirdeği için kullanılan modüller /lib/modules/2.4.9-xfs/kernel dizini altında bulunmaktadır. /lib/modules/2.4.9-xfs dizini içinde aynı zamanda modül bağımlılıklarını belirten dosyalarda bulunmaktadır. Bu bağımlılıklar bir modül yüklenirken göz önüne alınmaktadır. Çekirdek modüllerinin bulunduğu dizin bir kaç alt dizin daha içermektedir. Bu dizinlerden drivers dizini donanım ile haberleşmek için kullanılan modülleri içermektedir. Drivers dizinin altında bulunan modüller eriştikleri donanım türüne ait dizinler içinde bulunmaktadır. (Örnek : Ethernet kartına erişmek için kullanılan modüller net dizini altında bulunmaktadır.) Yüklenmiş Modüllerin Listelenmesi Sistemde yüklenmiş olan modüllerin listesini almak için lsmod komutu kullanılmaktadır. Örnek 6.2 : [root@lnxsrv3 /root]# lsmod Module Size Used by ipchains 43867 0 (unused) 3c59x 28811 1 (autoclean) lvm-mod 47890 2 qla2x00 303820 0 megaraid 26865 3 Lsmod çıktısında kullanılan modüllerin ismi , boyutları ve modülü kullanan diğer modüller gösterilmektedir. Sistemde yüklü olan modülleri öğrenmek için ikinci bir yol ise /proc/modules dosyasının içeriğine bakmaktır. Örnek 6.3 : [root@lnxsrv3 /root]# cat /proc/modules ipchains 43867 0 (unused) 3c59x 28811 1 (autoclean) lvm-mod 47890 2 qla2x00 303820 0 megaraid 26865 3 Kullanılmayan Modüllerin Çekirdekten Kaldırılması Yüklü fakat kullanılmayan modüllerin çekirdekten kaldırılması için rmmod komutu kullanılmaktadır. Rmmod komutunun temel kullanım şekli aşağıdaki gibidir : rmmod modül-ismi [modül-ismi2 modül-ismi3] Sistemde yüklü olup kullanılmayan ve kendiliğinden temizlenebilme özelliği (autoclean) ile yüklenmiş modülleri kaldırmak için rmmod komutuna –a parametresi verilebilmektedir. Örnek 6.4 : [root@lnxsrv3 /root]# lsmod Module Size Used by nls_cp857 4046 0 (unused) ipchains 43867 0 (unused) 3c59x 28811 1 (autoclean) lvm-mod 47890 2 qla2x00 303820 0 megaraid 26865 3 [root@lnxsrv3 /root]# rmmod ipchains [root@lnxsrv3 /root]# lsmod Module Size Used by nls_cp857 4046 0 (unused) 3c59x 28811 1 (autoclean) lvm-mod 47890 2 qla2x00 303820 0 megaraid 26865 3 Sistemde kullanımda olan bir modül kaldırılmak istendiği takdirde rmmod komutu hata verecektir. [root@lnxsrv3 /root]# rmmod 3c59x 3c59x: Device or resource busy Modülleri Yükleme (modprobe ve insmode) Bir modülü yüklemek için aşağıdaki yapıda bir komut modprobe module.o yada daha basit olarak modprobe module kullanılır. module.o derlenmiş modülü içeren nesne dosyasının ismidir. Eğer modül parametreler gerektiriyorsa bu parametreler komut satırından aşağıdaki şekilde gönderilebilir: modprobe module.o param=param1 param=param2 Eğer belirtilen modül başka modüller gerektiriyorsa modprobe otomatik olarak bu modülleri depmod komutu tarafından geliştirilen veritabanında arar ve yükler. modprobe komutu temel iki çalışma moduna sahiptir. İlki, tek bir modül ismini veya aday modül isimleri serisini kullanarak arama yapar. Bir modül serisi belirttiğiniz ve modprobe aday modülü başarıyla yüklediği zaman arama durdurulur. Aramayı tekrar başlatmak için aşağıdaki yapıda bir komut kullanılır: modprobe –t dir pattern dir /lib/modules/version dizinin bir alt dizinini, pattern ise aday modül dosyalarının isimlerini belirten ifadelerdir. Örneğin, O anda çalışan kernel sürümü 2.4.5-15 iken /lib/modules/2.4.5-15/net dizininden bir modül yüklemek için modprobe –t net ‘*’ komutu yürütülür. Diğer çalışma modunda, modprobe komutu belirtilen dizinde yer alan her aday modülü yüklemeye çalışır. Örneğin, /lib/modules/2.4.5-15/misc dizinindeki her modülü yüklemek için modprobe-a –t misc ‘*’ komutu yürütülür. Tabi her zaman her modülün yüklenmesi istenmez. Bunun yerine bir pattern belirtilerek sadece ilgili modüllerin yüklenmesi sağlanır. Bir kernel modülünü yüklemek için modprobe komutuna benzer şekilde insmod komutu da kullanılabilir. Ancak insmod komutu bağımlı modülleri yükleme girişiminde bulunmaz. Bu yüzden modprobe komutu bazı scriptlerde daha sık kullanılır. Bunun dışında kalan scriptler modprobe komutunu kullanmaktan daha ziyade kendi tarzlarında modül bağımlılıklarını (module dependency) kullanarak modülleri sisteme dahil ederler. Bu tür scriptler, veritabanı güncellemeyeceği zaman sistemin açılışı sırasında yürütülen scriptler gibi scriptlerdir. Modül Bağımlılığı ve Veritabanı Güncelleme (depmode) modprobe komutu diğer modüllere bağlı olan modüllerin doğru olarak tanımlanması için oldukça uygun bir komuttur. Ancak uygun çalışma her modülün gerektirdiği diğer modülleri tanımlayan güncel modül listelerine sahip olmayı gerektirir. depmod komutu bu güncel bilgiyi içeren bir veritabanı oluşturur. /etc/rc.d/rc.sysinit scripti sistem her açıldığında böyle bir veritabanı oluşturmak için depmod komutunu çalıştırır. depmod komutu depmod –a şeklinde çalıştırıldığında modül veritabanını tamamıyla yeniden oluşturur. Modüllerin Düzenlenmesi (/etc/modules.conf Dosyası) /etc/modules.conf dosyası depmod ve modprobe komutlarının çalışmasını kontrol eden çeşitli parametreleri belirlemek için kullanılır. Örneğin, ¾ Modüllere daha uygun isimlerle kullanmamızı sağlayan takma isimler (alias) ¾ Yüklenme aşamasında modüle kendiliğinden (default) geçecek parametreler ¾ Bir modül yüklendiği veya kaldırıldığı zaman yürütülecek kabuk komutları gibi isteklerinizi bu dosya aracılığıyla gerçekleştirebilirsiniz. Tipik bir /etc/modules.conf dosyası şöyledir: alias sound emu10k1 alias parport_lowlevel parport_pc alias eth0 3c90x alias eth1 3c90x options opl3 io=0x388 pre-install emu10k1 insmod soundcare post-remove emu10k1 rmmod soundcore Bu dosya 4 adet takma isim (alias) tanımlıyor. Örneğin, emu10k1 modülü sound ismiyle ilişkilendirilmiş. Daha sonra op13 modülü yüklendiği zaman bu modüle geçecek bir seçenek (option) tanımlanmış. Bu seçenekte giriş/çıkış portu olarak 0x388 belirtilmiş. Son olarak da emu10k1 modülü yüklendiği (pre-install) ve kaldırıldığı (post-install) zaman çalıştırılacak komutlar tanımlanmış. /etc/modules.conf dosyası şu şekilde satırlar içerebilir: ¾ Parametre tanımlama satırlarının yapısı : parameter = value şeklindedir. Parametre tanımlama satırı bir parametre tanımlar ve belirlenmiş bir değeri bu parametreye atar. İzin verilen parametre tanımlama şekilleri: • depfile = directory Depmod komutu tarafından oluşturulan modül bağımlılığı veritabanının yerini belirlemek için kullanılır. • path=directory Modüllerin aranacağı dizini belirtmek için kullanılır. • path[type]=directory Belirtilen tipte modülü içeren dizini belirtir. type değeri-t ile birlikte modprobe komutunun parametresi olarak kullanılabilir. ¾ Modüller için takma isimlerin bulunduğu satırlar. alias takma_isim gerçek_isim ¾ Bir modül yüklenmeden önce çalıştırılacak komutların tanımlandığı satır. Bu satırlar çoğunlukla yüklenecek modülün bağımlı olduğu modülleri de yüklemek için kullanılır. pre-install yüklenecek_modül komut ¾ Bir modülü yüklemek için kullanılacak komutların tanımlandığı satır. install yüklenecek_modül modülü_yüklemek_için_kullanılacak_komut ¾ Bir modül yüklendikten sonra çalıştırılacak komutların tanımlandığı satırlar. post-install modül komut ¾ Bir modül kaldırılmadan önce çalıştırılacak komutların tanımlandığı satırlar. pre-remove modül komut ¾ Bir modülü kaldırmak için kullanılacak komutların tanımlandığı satırlar. remove modül komut ¾ Bir modül kaldırıldıktan sonra çalıştırılacak komutların tanımlandığı satırlar post-remove modül komut ¾ Tanımlanan parametrelerin varsayılan parametreler üzerine yazması yerine , varsayılan parametrelere eklenmesini sağlayan keep satırı. Kernel Yapılandırması, Derlenmesi ve Kurulması Linux çekirdeği kaynak kodu ile birlikte dağıtıldığından kullanıcı tarafından sisteme özel çekirdekler oluşturulabilmektedir. Çekirdek derlenmesi için ilk yapılması gereken Linux çekirdeğinin indirilmesi ve tar dosyasının açılmasıdır. Tar dosyası açıldığında Linux çekirdeğinin kaynak kodları linux isimli bir dizinin içinde bulunacaktır. Tar dosyası açma işleminin /usr/src dizini içinde yapılması önerilmektedir. Bu takdirde çekirdek kaynak kodları /usr/src/linux dizini altında bulunacaktır. Derleme işlemine başlamadan önce isteğe bağlı olarak ekstra versiyon kodu (extraversion code) tanımı yapılabilir. Daha önceki konularda da belirtildiği gibi bu kod farklı seçenekler ile derlenmiş aynı sürüm çekirdeklerin bir birinden ayrılmasında kullanılmaktadır. Eksta versiyon kodu tanımlaması için /usr/src/linux dizini altında bulunan Makefile dosyasında değişiklik yapılması gerekmektedir. Makefile dosyasının başında çekirdek sürümü ile ilgili bilgiler bulunmaktadır. EXTRAVERSION bilgisi değiştirilerek derlenecek çekirdeğe istenen ekstra versiyon kodu eklenebilir. VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 9 EXTRAVERSION =-xfs KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) Çekirdek derleme işleminin ilk adımı çekirdekte bulunacak desteklerin belirlenmesidir. Çekirdekte yer alması istenen desteklerin belirlenmesi için aşağıdaki komutlardan herhangi biri kullanılabilir.(Not: tüm komutlar /usr/src/linux dizini içinde verilmelidir.) ¾ make config : Metin bazlı bir konfigürasyon programı çalıştırılır. Bu program sayesinde çekirdeğe verilebilecek destekler için adım adım soru sorulmaktadır. Bu yöntemin uzunluğu nedeniyle kullanılması önerilmemektedir. ¾ make menuconfig : Terminal içinde çalışan ve bir kullanıcı arayüzü oluşturan programın derlenip çalıştırılmasını sağlar. Bu programın derlenip çalıştırılabilmesi için ncurses kütüphaneleri ve başlık dosyaları sistemde bulunmalıdır. En çok kullanılan konfigürasyon komutudur. ¾ make xconfig : X-Window üzerinde çalışan bir programın derlenip çalıştırılmasını sağlar. Bu komutun çalışabilmesi için sistemde X-Window sisteminin yüklü olması gerekmektedir. Konfigürasyon aşaması için önerilen make menuconfig komutunun kullanılmasıdır. Genel başlıklar ve içerikleri aşağıdaki gibidir : ¾ Code maturity level options : Çekirdeğe eklenebilecek bazı destekler tam anlamıyla test edilmemiş , geliştirilme aşamasında olan destekler olabilir. Bu desteklerin seçenekler arasında gözükmesi isteniyor ise bu bölüm altında bulunan seçenek işaretlenmelidir. Bu kısımda yapılan bir değişiklik sadece kullanıcıya sunulan seçenekler üzerinde etkili olacaktır. Çekirdek üzerinde bir etkisi bulunmamaktadır. ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ Loadable module support : Çekirdek modülleri ile ilgili destekleri içeren bölümdür. Sistemde modül desteği kullanılmayacak ise bu bölümden kapatılması gerekmektedir. Processor type and features : Sistemde bulunan işlemci , sistemde birden fazla CPU olup olmadığı , sistemde bulunan fiziksel hafıza miktarının büyüklüğü ile ilgili ayarları barındıran bölümdür. General Setup : Genel sistem ayarlarının bulunduğu bölümdür. Bu ayarlar arasında sistem ağ desteği , sistemde çalışan tüm süreçler ile ilgili kayıt tutabilme(accounting) desteği , desteklenen çalıştırılabilir (binary) dosya tipleri , güç yönetimi (power management) , PCI ve ESA desteği bulunmaktadır. Memory Technology Devices (MTD) : Çoğunlukla gömülü ( embeded) sistemlerde kullanılan flash ve bazı chipsetlerin desteğini içerir. Çoğunlukla gerekli değildir. Paralel Port Support : Sisteme paralel port desteği vermek için kullanılan bölümdür. Plug and Play Configuration : Linux çekirdeğine “Tak ve Çalıştır” cihazlar için destek ekleyen bölümdür. Bu bölüm altında bulunan desteklerin çekirdeğe eklenmesi önerilmektedir. Block Devices : Floppy disk desteği , XT sabit disk desteği , RAM disk desteği gibi desteklerin bulunduğu bölümdür. Bu bölüm içinde en önemli olan destek RAM disk desteğidir. Özellikle SCSI sabit disk kullanıp , SCSI kart desteği modül olarak kullanılacaksa RAM disk ve Initial RAM Disk desteklerine ihtiyaç duyulmaktadır. Multi Device Support (RAID and LVM) : Eğer sistemde yazılım olarak RAID kullanılması düşünülüyor ise RAID ve kullanılacak RAID seviyesi için gerekli destek bu bölümden verilmelidir. LVM desteği sadece birden fazla diski birleştirmek için kullanılabilmektedir. Avantajı sistem çalışırken sisteme eklenen diskler yaratılan LVM disklere dahil edilebilmektedir. Bu sayede genişleme işlemi daha kolay gerçeklenebilmektedir. Networking Options : Paket filtreleme , multicast desteği , gelişmiş yönlendirici desteği , syncookie desteği gibi genel ağ desteklerinin seçilebileceği bölümdür. Telephony Support : Eğer sistemde telephony kart mevcut ise verilmesi gereken destekleri içeren bölümdür. Çoğunlukla bu desteklerin verilmesi gerekmemektedir. Bu bölümdeki destekler modem kullanımı ile ilgili değildirler. Bu bölümdeki destekler kullanılmasa bile sistemdeki modem kullanılabilmektedir. ATA/IDE/MFM/RLL support : IDE disk , cdrom gibi aygıtlar için desteklerin bulunduğu bölümdür. Sistemde IDE disk veya cdrom kullanılmayacak ise bu desteklerin verilmesi gerekmemektedir. SCSI Support : SCSI cihazlar ve kartlar için gerekli desteklerin bulunduğu bölümdür. Eğer sistemde SCSI cihaz bulunmayacak ise bu desteklerin verilmesi gerekmemektedir. Fusion MPT Device support : Sistemde Fusion MTP aygıtlar varsa verilmesi gereken destekleri içeren bölümdür. Çoğunlukla bu desteklere ihtiyaç duyulmamaktadır. ¾ I2O Device Support : I20 (Intelligent Input/Output) mimarisini destekleyen cihazlar için verilmesi gereken destekleri içeren modüldür. ¾ Network Device Support : Sistemde bulunan ağ cihazları (Örn : Ethernet kartı) ile ilgili destekleri içeren bölümdür. ¾ Amateur Radio Support : Linux’a amatör radyo desteğini içeren bölümdür. ¾ rDA (infrared) Support : Sistemde infrared cihaz bulunmaktaysa verilmesi gereken destekleri içeren bölümdür. ¾ ISDN subsystem : Eğer sistem ISDN modem içeriyorsa verilmesi gereken destekleri içeren bölümdür. Sistemde ISDN modem bulunmuyor ise bu desteğin verilmesine gerek yoktur. ¾ Old CD-ROM drivers (not SCSI, not IDE) : SCSI ve IDE olmayan eski cdromlar için verilmesi gereken destekleri içerir. Sistemde bulunan cdrom SCSI veya IDE ise bu desteğin kullanılmasına gerek bulunmamaktadır. ¾ Input Core Support : Eğer sistemde “USB Human Interface Device (HID)” (USB klavye , USB mouse vs) kullanılacak ise verilmesi gereken destekleri içermektedir. ¾ Character devices : Sanal terminaller (virtual terminals) , seri porttan bağlanan cihazlar , fare , joystick gibi destekleri içeren bölümdür. Bu bölümde ayrıca AGP desteği de bulunmaktadır. ¾ Multimedia devices : Tv ve radyo kartları için kullanılan destekleri içermektedir. Sistemde Tv veya radyo kartı bulunmuyor ise bu desteklere gerek duyulmamaktadır. ¾ File Systems : Sistemde kullanılacak dosya sistemleri , NFS CODA SMB gibi ağ dosya sistemleri , Linux olmayan disk bölümlerini(partion) kullanabilme özelliği ve dil desteği gibi destekleri içeren bölümdür. ¾ Console Drivers : Sistem konsolu ile ilgili desteklerin belirlendiği bölümdür. ¾ Sound : Linux çekirdeğine ses kartı desteği vermek için kullanılan destekleri içeren bölümdür. ¾ USB Support : USB desteği vermek için gerekli destekleri içeren bölümdür. ¾ Kernel Hacking : Çekirdeğin test edilmesi ve çekirdekte hata aranması için verilmesi gereken destekleri içerir. Genellikle kullanılmasına gerek yoktur. Çekirdekte bulunması istenen destekler belirlendikten sonra konfigürasyon programından çıkarken sorulan konfigürasyon dosyasını kayıt edeyim mi sorusuna evet cevabı verilmelidir. Çekirdek derleme işleminin ikinci adım verilen desteklerin bağımlılıklarını (dependency) bulmaktır. Bu işlem için make dep komutu kullanılmaktadır. Bu komut kullanıldığında verilen destekler için bağımlılık dosyaları yaratılacaktır. Daha önceden derlenmiş bir çekirdek yeniden derlenecekse , daha önceki derlemeden kalan dosyaların temizlenmesi gerekmektedir. Bu işlem için make clean komutu kullanılmaktadır. Çekirdeği derlemek için verilebilecek birden fazla komut bulunmaktadır. Bunlardan en çok kullanılanı make bzImage komutudur. Bu komut verildikten sonra çekirdeğin içine gömülmüş olan destekler derlenecektir. Modül olarak verilen desteklerin derlenmesi için make modules komutu verilmelidir. Modüllerin derleme işlemi bittikten sonra make modules_install komutu ile derlenen modüller /lib/modules dizini altında derlenen çekirdek ile ilgili dizine yerleştirilecektir. Çekirdek derleme işlemi bittikten sonra derlenen çekirdek ve System.map dosyasının /boot dizini altına kopyalanması gerekmektedir. Kopyalama işlemi için aşağıdaki komutlar kullanılabilir. Kopyalanan çekirdek ve System.map dosyalarına çekirdek sürüm numarasının eklenmesinde yarar vardır. (NOT : Aşağıdaki komutların /usr/src/linux dizini altında çalıştırılması gerekmektedir.) cp arch/i386/boot/bzImage /boot/vmlinuz-sürüm_numarası cp System.map /boot/System.map-sürüm_numarası Kök dizininin içinde bulunduğu disk bölümü bir SCSI diskte veya RAID kartı ile ulaşılan bir diskte ve bu diske ulaşmak için verilen donanım desteği modül olarak verilmişse Initial RAM disk oluşturulması gerekmektedir. Bu işlem için /etc/modules.conf dosyası ayarlanmalı ve aşağıdaki komut yürütülmelidir. mkinitrd /boot/initrd-sürüm_numarası.img sürüm_numarası Çekirdek derlemenin en son adımı olarak lilo.conf dosyasının ayarlanması gerekmektedir. Lilo.conf dosyasına aşağıdaki satırların eklenmesi yeterli olacaktır.(initrd satırı Initial RAM disk kullanılacak ise gereklidir. Aksi takdirde kullanılmasına gerek yoktur.) image=/boot/vmlinuz-sürüm_numarası label=linux initrd=/boot/initrd-sürüm_numarası.img read-only root=/dev/kök_dizininin_bulunduğu_disk_bölümü(Örnek : hda1,sda2 ) Lilo.conf dosyasında gerekli değişiklikler yapıldıktan sonra lilo komutu ile bu değişikliklerin LILO sistem yükleyicisi tarafından kullanılabilir hale getirilmesi gerekmektedir. İNTERNET BAĞLANTISI Modem Ayarları Bir WAN (Wide Area Network) bağlantı türü olan PPP (Point-to-Point Protocol), bir seri bağlantı (Serial Connection) üzerinden IP ( Internet Protocol ) ve diğer ağ protokollerini (örneğin IPX, DECNET, APPLETALK....) çalıştırmak üzere kullanılan bir mekanizmadır. Bu link bir null-modem kablosu (Null-Modem Cable) kullanılarak yapılan doğrudan bir seri bağlantı, telnet ile uzak sistem ile yapılmış bir bağlantı üzerinden kurulacak bir bağlantı yada modem ve bir seri varolan telefon (ve tabi ki ISDN gibi Sayısal hatlar da kullanılarak yapılabilen) hatları kullanılarak yapılan bir seri bağlantı olabilir. PPP kullanarak, bir Linux PC, bir PPP Sunucuya bağlanabilir. Böylece, sunucunun bağlı olduğu sistemdeki ağ kaynaklarına sanki o ağa direk olarak bağlıymış gibi ulaşılabilir. Ayrıca, Linux PC’ler PPP Sunucu hizmeti verecek şekilde yapılandırılabilirler. Bu sayede, diğer bilgisayarlar bu sunucuya bağlanıp (dial-up) sunucunun bağlı olduğu ağ üzerindeki kaynaklardan faydalanabilirler. PPP türdeş bir sistemdir (Peer-to-Peer). PPP kullanılarak, farklı iki tür ağı üzerlerinde ppp sunucular çalıştıran Linux PC’ler ile birbirine yada bir yerel ağ internete bağlanılabilir. Bu tür bir bağlantı, bir Wide Area Network oluşturur. Seri tabanlı PPP ile Ethernet bağlantılarının arasındaki en büyük farklılıklardan bir tanesi, tabi ki bağlantının hızıdır. Standart Ethernet bağlantısı maksimum teorik bant genişliği (Bandwith) olarak ya 10 MBps kadar (Mega Bit per Second) yada 100 MBps kadar kurulabilir. Buna karşın, basit bir analog modem ile PPP bağlantısı, 56 Kbps (Kilo Bit per Second) ‘a kadar ulaşabilen hızlarda çalıştırılabilir ( Gerçi daha yüksek hızlarda çalışan modemlerde vardır). Teknik olarak bağlanılmak için çevrilen (Dialed-into) ve bağlanmak için çeviren bilgisayar arasında bir fark yoktur. Ancak, anlaşılsın diye sunucu ve istemci şeklinde düşünmekte fayda vardır. Bir siteye bağlanmak için bir PPP sunucuyu çeviren (dial-up) makineye PPP istemci, PPP bağlantı isteklerini almak (dial-in) ve bunları yönetmek üzere yapılandırılmış (PPP kullanıcıları, bunların şifreleri, ve mümkün diğer mekanizmaların yapılandırılması) makineye ise PPP sunucu makine adı verilir. Eğer herhangi bir makinenin birden fazla seri portu varsa bu Linux makine hem PPP sunucu hem de PPP istemci olarak hizmet verebilir. Yukarıda da bahsedildiği gibi bağlantı bir kez kurulduğu zaman PPP açısından bakıldığı zaman sunucu veya istemci arasında gerçek bir fark yoktur. Kppp, gppp, wvdial İle Bağlantı Linux’ta ppp ile çevirmeli ağ üzerinden bağlantı yapmak oldukça kolaydır ve birçok yolu vardır. Ancak kurulan PPP bağlantısının türüne bağlı olarak bazı servislerden ve bazı uygulamalardan kullanılmasında sınırlamalar olabilir. Bu araçlardan bazıları şunlardır, ¾ KPPP , KDE masaüstünün bir bileşeni olan çevirmeli ağ programı ¾ WvDial, kullanımı oldukça basit olan Linux için bir PPP sürücüsü ¾ Linuxconf, aslında bir Linux makinenin PPP yanında bütün genel ayarlamalarının yapılabileceği bir yapılandırma aracı ¾ GPPP , Gnome PPP yapılandırma arayüzü Tüm bunların yanında, internete bağlanan her cihaz kendi özel ve tek (Unique) mantıksal adrese sahip olmak zorundadır. Eğer kullanılan Protokol Ailesi (Protocol Stack) TCP/IP ise bu adresler IP adresleridir. Bu adreslerin dağıtımı her ülkede dağıtımdan sorumlu kurumlar tarafından gerçekleştirilir. Bunlara ek olarak yerel ağda (LAN) kullanılacak IP adresleri herhangi bir İnternet Servis Sağlayıcıdan da( İSP ) alınabilir. IP adresleri rasgele verilen yerel ağların internete bağlanması durumunda dış ağlarda, yerel ağdaki bir yada daha fazla makineye verilmiş olan IP adreslerinin çakışacağı makinelerin bulunma olasılığı oldukça yüksektir. Böylesi bir durumda yönlendirme (Routing) problemleri oluşacağı için her iki makinede ağa bağlanamaz. Bu yüzden IP adresleri ya rasgele kullanılmamalıdır yada bu ağların diğer ağlarla bağlantısının kurulmaması gereklidir. Aynı şekilde çoğunlukla dış dünyaya bağlantı kurulması düşülmeyen ağlarda yada gerçek IP adres uzayı alınmamış yada alınmayacak LAN lar için kullanılan özel adres uzayları da vardır bunlar, ¾ Bir Adet A Class Network Address 10.0.0.0 (netmask 255.0.0.0) ¾ 16 Adet B Class Network Addresses 172.16.0.0 - 172.31.0.0 (netmask 255.255.0.0) ¾ 256 Adet C Class Network Addresses 192.168.0.0-192.168.255.0 (netmask 255.255.255.0) dır. Bu adres uzaylarına ait IP adresleri İnternette kullanılamazlar. Bu şekildeki bir yerel ağ üzerindeki bir Linux sunucu üzerindeki NIC (Network Interface Card) yapılandırılırken bu adresler kullanılarak sunucu ağa bağlanabilir. Aynı zamanda bu sunucu bir PPP client olarak yapılandırılırsa internete de bağlanabilir fakat bu Linux sunucu üzerinden LAN üzerindeki diğer makinelerin dışarıya bağlanabilmesi için Linux sunucunun, üzerinden geçen paketlerdeki özel (Private) IP adreslerini, gerçek IP adreslerine dönüştürmesi gerekmektedir (NAT) . Bunun için ise Linux sunucunun bu adreslerin birbirine eşleştirildiği tabloları oluşturması ve yönetmesi gerekir. Linux bu işlemleri IP Masquerade (IP Maskeleme) mekanizması ile gerçekleştirir. Bu şekilde çalışan Linux makinelere ise NAT (Network Adress Translator) adı verilir. PPP ile internete bağlanan makinalar, internet servis sağlayıcı tarafından bağlanan makinaya dinamik olarak IP adresi atanır. Dinamik adres ataması, bağlantı süresinde istemcinin IP adresinin sürekli değişmesi demek değildir. Dinamikten kasıt her ayrı oturum için farklı bir IP adresinin, ISP tarafından aynı ppp istemci makinaya verilebileceği ve oturum sonunda IP adresinin geçerliliğini yitireceği anlamına gelir. Dinamik adresleme mekanizmasının farklı adres atama durumu Linux olsun olmasın bir sunucunun vereceği bazı servisler için özel bir anlamı vardır. Linux sunucu üzerinde çalışan sendmail, ftpd, httpd ve bunun gibi iyi bilinen birçok TCP/IP servisi temel olarak servisi sunan sunucunun herzaman aynı IP adresi ile erişilebilir olması kabulune dayanır. Yada en azından aynı alan ismine sahip olması ( FQDN – Fully Qualified Domain Name ) ve bir alan ismi sunucusunda ( DNS – Domain Name Server ) bu isim için bir IP çözümlemesinin yani karşılığının bulunması gerekir. Dinamik IP adres atamaya bağlı olarak servisler, dökümantasyon içerisinde ilerki konularda tartışılacaktır. KPPP İle PPP Yapılandırması KPPP, ppp bağlantılarını yapılandırmak için kullanılan kolay bir araçtır. KDE kurulumu ile birlikte gelir ve KDE ortamına oldukça iyi uyum sağlamıştır. Aynı zamanda Kppp çok iyi bir yardım sistemi menüsüne sahiptir. Resim 7.1 : K menüsünden quick command çalıştırılarak komut satırına kppp yazılırsa kppp programı açılır. Programın yardım sistemine soru işareti şeklindeki buton kullanılarak erişilebilir.(Resim 7.1) Resim 7.2 : Kppp penceresinde “ Connect to: ” kısmında kullanıcı tarafından yapılandırılmış mevcut bağlantılar bulunmaktadır. “ Login ID: ve Password: “sırasıyla ISP’den alınan kullanıcı ve şifrenin yazılacağı alanlardır (Resim 7.2). Ayrıca “ Show Log Window “ bağlantının kurulma evrelerinin incelenebilmesine olanak sağlayan bir pencere açarak kullanıcıya yardımcı olur. Bağlantı kurulduktan sonra istatistikler detaylar penceresinden izelenebilir (Resim 7.3) Resim 7.3 : Setup butonu ile bağlantı yapılandırma başlatılır. Setup butonuna basılınca, gerekli tüm ayarların yapılabileceği üzerinde “Accounts, Device, Modem, Graph, Misc. , About ” sekmeleri bulanan bir kurulum penceresi ekrana gelir. (Resim 7.4) Resim 7.4 : Accounts Sekmesi İnceleyeceğimiz ilk bölüm olan Accounts sekmesi (Tab) , birden fazla dial-up yapılandırmasının listelendiği bir yapıya sahiptir ve bu kısımda istenirse varolan bir bağlantı seçilerek ayarları değiştirilebilirken aktif olan tek tuş durumundaki ” New “ tuşuna basılarak yeni bir yapılandırma oluşturmak da mümkündür. New tuşu seçildiğinde “Wizard” ve “Dialog setup” seçenekleri içeren bir başka menü açılır (Resim 7.5). Resim 7.5 : Yeni hesap açma diyalog kutusu. Wizard modunda kppp, sorular sorarak kullanıcı ile karşılıklı etkileşim yoluyla yapılandırmaya yardımcı olur. Dialog setup modunda ise, alışılagelmiş biçimde kullanıcının gerekli ayarları yapması beklenir. (Resim 7.6) Resim 7.6 : Yeni hesap penceresi. İlk olarak “Connect to :” kısmına, bağlantıya verilecek isim (örneğin ISP nin adı) , “Login ID :” kısmına, ISP’den alınan kullanıcı adı ve “Password :” kısmına ise bu kullanıcıya ait şifre yazılır. Add tuşu kullanılarak ISP nin telefonları eklenebilir ve çevrim sıraları ayarlanabilir (Resim 7.6). ISP’nin kullandığı kullanıcı doğrulama (Authentication) türü de burada ayarlanabilir. Mümkün seçenekler, PAP, CHAP, Script Based, Terminal Based dir. İkinci olarak IP sekmesinde, IP adresini Static yada Dinamik olarak yapılandırma seçeneği bulunur. ISP’ler genelde ppp bağlantıları için dinamik IP verirler. Ancak ISP nin yönlendirmesi ile Static IP ve bu IP nin ait olduğu IP uzayını tanımlayan Ağ maskesinin kullanılması da mümkündür. Resim 7.7 : Ip adresi belirleme ekranı. Ayrıca bağlantı kurulduğu zaman PPP sunucudan alınan IP adresine karşılık gelen istemci ismininde kurulan oturum boyunca kullanılması için, PPP sunucunun istemciyi yapılandırılması sağlanabilir (Resim 7.7). Bu özellikle bu tür bir bilgiye bağlı protokollerin kullanılması açısından faydalı olabilir. Fakat aynı zamanda bir takım problemlerede yol açabilir. Çok gerekmedikçe kullanılması önerilmez. Dinamik IP Adresleme varsayılandır. Böylece sunucu oturum için otomatik olarak IP adresi ve Ağ maskesini PPP sunucudan öğrenir. Gateway sekmesinde, istemcinin ait olduğu ağdan dış ağlara ulaşabilmesi için hangi geçit adresini kullanaçağının belirlendiği Default Gateway yada Static Gateway ayarları vardır. Default Gateway yani varsayılan geçit adresi ISP nin PPP sunucusu tarafından IP adresi gibi otomatik olarak yapılandırılır (Şekil 4). Static Gateway ise ISP’den öğrenilerek yapılandırılabilir. Resim 7.8: Gateway belirleme ekranı. DNS (Domain Name System) sunucularının adresleri, alan adı (domain name), DNS sekmesinden kaydedilebilir yada bağlantı esnasında ISP nin alan adı sunucularının adresleri otomatik ataması sağlanabilir. Aynı zamanda bağlantıdan önce varolan kayıtların geçersiz bırakılması sağlanabilir. UYARI: (Resim 7.8) Eğer Linux istemci makinanız halihazırda bir NIC üzerinden bir iç ağa ve bu iç ağ üzerinden dış ağlara erişebiliyorsa zaten bir Gateway yapılandırması var demektir. Eğer bu Default Gateway yapılandırması ise makinanın dış ağlara bu gateway üzerinden ulaşmaya çalışacağı anlamına gelir ve PPP sunucusunun, bağlantı esnasında kendi Default Gateway adresini ataması, halihazırda Default Gateway tanımlaması varolduğu için yapılmaz yada başka bir Default Gateway Adresi eklemez (Aslında elle birden fazla Default Gateway eklenebilir ancak çok gerekli değildir). Eğer Linux makinanın kurulmuş olan PPP bağlantısı üzerinden dış ağlara bağlanması isteniyorsa ya NIC in tanımladığı cihaz (device örneğin eth0) etkisizleştirilmeli – ifdown eth0 komutu ile kaldırılmalı – ve PPP sunucu için Default Gateway tanımlaması makinaya şu komut ile elle girilmelidir, # ifdown eth0 # route add default gw (ISP den alınan IP uzayının gateway adresi) yada # route add default gw dev ppp0 veya bağlantıdan önce eth0 arayüzü kapatılır, sonra ppp bağlantı kurulur ve eth0 arayüzü tekrar etkin hale getirilir ( ifdown eht0 – ppp0 – ifup eth0 ). Birden fazla Default Gateway ve dolayısı ile Default Route olması durumunda Linux makina yük paylaşımı gerçekleştirir. Yani iç ağdan dış ağlara giden paketler sırayla iki ayrı yoldan gönderilir. Resim 7.9’da, kernel routing tablasounda iki ayrı default gateway kaydı görülmektedir. Bunlardan birincisi eth0 arayüzünün yani NIC ‘in bağlı olduğu ağın geçit adresi (160.75.5.254), ikincisi ise ppp0 arayüzünün bağlı olduğu (160.75.8.249) geçit adresidir. Yönlendirme (routing) yapmakta olan Linux makina, www.boun.edu.tr adresine eth0 ‘a ait gateway üzerinden çıkarken, www.itu.edu.tr adresine ppp0 geçit adresinden çıkarak bağlanır (Load Balancing) ve bu zamanla değişkenlik gösterebilir. Login Script, ancak Dial sekmesinde kullanıcı onaylama tipi olarak Script-Based onaylama türü seçilmiş ise kullanılır. Login Scripti bağlantı için ISP’nin kullanıcıyı tanımlamak ve izin vermek için sorduğu sorulara otomatik cevap verebilmek için kullanılan bir seri komutlardan ve bu komutların gönderdiği cevaplardan oluşur. Komutlar seçildikten sonra, Add ve Insert tuşları kullanılarak eklenir ve remove ile kaldırılır. Resim 7.9 : Ip tablosu görüntüsü. Accounting sekmesi, kullanıcının bir bağlantı süresince gelip giden byte’lerin kaydını tutmasına izin verir. Bu sayı, İSP’nin bu şekilde yani taşınan byte sayısı üzerinden üçretlendirme uyguladığı durumlarda faydalı olur. Device Sekmesi Kppp Yapılandırmasında ikinci adım olarak “Device” sekmesini inceleyeceğiz. Bu aşama modem yapılandırmasını içerir. Burada, modem cihazının bağlantılı olduğu karakter cihazı (ttyS0,ttyS1,...) seçilebilir, akış kontrolü tipi (CRTCTS,Xon/Xoff), satır sonlandırması ve bağlantı hızı ayarlanabilir. ISP aksini söylemedikçe varsayılan yapılandırmanın kullanılması önerilir çünki basit bir modem için bu yeterlidir. Ayrıca modem için kilit dosyası ve zaman aşımı kullanımı şiddetle tavsiye edilir. Modem zaman aşımı (Modem Timeout), kppp ‘nin modemden gelecek olan cevaplar için ne kadar bekleyebileceğini belirler. (Resim 7.10) Resim 7.10 : Device sekmesi Modem Sekmesi Modemin test edilmesi ve hata belirleme için oldukça faydalıdır. Query Modem tuşu kullanılarak sisteme bağlı modemin özelliklerinin belirlenmesi ve çalışıp çalışmadığı kontrol edilibilir. Terminal butonu kullanılarak modeme bağlanılarak üzerinde çeşıtli komutlar yürütülebilir (ATDT 08225552323, ATF, ATM,ATZ,…gibi). (Resim 7.11) Resim 7.11 : Modem sekmesi. Miscellaneous Sekmesi Bu bölümde kppp ile ilgili çeşitli ve faydalı bir çok ayar bulunur. pppd Timeout alanı, kppp’nin, bir bağlantı kurabilmesi için pppd’yi nekadar bekleyeceğini belirler. Dock alanı ise, bağlantı kurulur kurulmaz, kppp’nin sedece panelde bir süreç olarak görüntülenmesini sağlar. Automatic redial alanı, bağlantının kopması durumunda yeniden bağlantı kurulup kurulmayacağını belirler. Show Clock alanında bağlantı süersi görüntülenir. The Disconnect on X-Server Shutdown ‘da ise Kppp ‘den herhangi bir sebeple çıkılırsa, ppp’nin yani bağlantının sonlandırılıp sonlandırılmayacağı belirlenir. Quit on Disconnect seçeneği bağlantı sonlandırıldığında kppp programının kapatılabilmesine izin verir.(Resim 7.12) Graph Sekmesi Kppp nin bir özelliği olarak, bağlantı süreci boyunca yerel sisteme giren çıkan paketler, byte olarak veri alışverişinin miktarları ve bağlantının verimi grafiklerle gösterilir. Graph sekmesinde bu grafiklerin hangi renklerle gösterileceği seçilebilir Resim 7.12 : Miscellaneous sekmesi Wvdial İle PPP Yapılandırması WvDial bir komut-satırı pppd sürücüsüdür ve iki ana bileşenden oluşur. Bu Bileşenler WvDialconf ve WvDial dır. Her ikiside root kullanıcı olarak çalıştırılmalıdır. Yapılandırma için ilk olarak WvDial.conf çalıştırılmalıdır. WvDialconf çalıştırıldığında bir modem ve İnternet Servis Sağlayıcı (İSS) hakkında bilgiler içeren WvDial.conf adında bir yapılandırma dosyası oluşturur. Aynı zamanda bilgisayarın seri portlarını (COM Ports) tarayarak bunlara bağlı olan modemlerı tanımaya ve ozelliklerini ve yeteneklerini belirlemeye çalışır. WvDialconf programı yapılandırma dosyasının tam yolu ve ismi ile birlikte çalıştırılmalıdır. # wvdialconf /etc/wvdial.conf wvdialconf komutunun çıktısı şekildeki gibi olabilir (Resim 7.13). Resim 7.13 : wvdial komutu çıktısı. Örnek bir wvdial.conf dosyasının içeriği ise şu şekildedir.(Resim 7.14) Resim 7.14 : wvdial.conf dosyasının içeriği Bir kere, wvdialconf programı çalıştırılıp, /etc/wvdial.conf yapılandırma dosyası oluşturulduktan sonra, yapılandırma dosyasının bir metin editörü ile düzenlenmesi gerekir. Bu aşamada dial-up bağlantı için kullanılacak ISS telefon numarası, bu ISS üzerinde geçerli bir kullanıcı adı ve şifresi ilişkili satırlarda düzenlenmelidir. Bu satırlar, ; Phone = <Target Phone Number> ; Username = < Your Login Name> ; Password = < Your Password > dır. Tabiki satırların başındaki ilk yapılandırmada dikkate alınmayacak satırları ifade etmek için kullanılan “ ; “ karakterlerinin kaldırılması gereklidir aksi takdirde girilen numara, kullanıcı adı ve şifre dikkate alınmaz. Bğlantıyı kurmak için komut satırında wvdial çalıştıtılarak bağlantı sağlanır ve varsa hatalar programın ekran çıktısından izlenerek gerekli düzeltmeler yapılandırma dosyasında yapılır. Programın çalışmasını durdurarak bağlantıyı sonlandırmak için CTRL+C tuş kombinasyonu kullanılır. Pardus’ta İnternet Bağlantısı Bu bölümde size Pardus işletim sisteminizi kullanarak nasıl internete bağlanılacağı, modem ayarları, web tarayıcısı (browser), indirme yöneticisi (download manager) vb. programlar hakkında bilgi verilecektir.. Pardus içerisinde, bu bölümde anlatılan programlar dışında aynı işi yapan başka programlar da bulabilirsiniz. Pardus Modem Bağlantısı Modem bağlantısı yapabilmek için öncelikle modemin Linux tarafından tanınmış ve çalışıyor olması gereklidir. Özellikle donanım bilgileri açık olmayan bazı modemler Linux altında çalışmadığından, bunların temin etmeden önce mutlaka Pardus donanım uyumluluğunu gözden geçirmenizi öneririz. Bir modem bağlantısı yaparken aşağıdaki adımları uygulayın: ¾ ¾ ¾ Ağ bağlantı programını çalıştırın. “Oluştur” düğmesine tıklayın. Bu pencerede “dialup network”ü seçin ve “Bağlantıyı oluştur” düğmesine tıklayın. ¾ Karşınıza gelen yeni pencerede sırasıyla bağlantı ismini, modemin kullandığı seri portu (genellikle COM1'dir) ve telefon numarasını girin. ¾ Penceredeki “Kimlik doğrulama” sekmesine tıklayarak kullanıcı adını ve parolasını girin. Şimdi “Bağlan” düğmesine tıklayarak modem bağlantısını kolayca yapmak mümkündür. Resim 7.15 : Örnek modem bağlantı penceresi. Mozilla Firefox Mozilla Firefox, Mozilla Vakfı tarafından geliştirilen ve Pardus içerisinde kurulu olarak gelen bir web tarayıcısıdır. Firefox ile internette gezinebilir, eklentileri ile bir çok ihtiyacınızı tarayıcı üzerinden halledebilirsiniz. Firefox, önceden kullanmış olduğunuz WEB tarayıcısı ile temelde aynı özellikleri taşır. Yani kullanımında her hangi bir zorluk çekmezsiniz. Ama biz burada normal bir WEB tarayıcısında olmayan özelliklerden ve ip uçlarından bahsedeceğiz. Böylece Firefox'u daha etkili ve aktif olarak kullanabileceksiniz. Resim 7. 16 : Mozilla Firefox ekranı. Sekme Özelliği Sekme özelliği, Firefox'ta bulunan en kullanışlı özelliklerden bir tanesidir. Genelde kullanıcılar internete girdiklerinde aynı anda birden fazla WEB sitesi açarlar ve bunları kullanırlar. Firefox bu durumu göz önüne alarak küçük ama hoş bir özellik eklemiş. Bu özellik sayesinde aynı pencere içerisinde birden fazla WEB sitesi açmasını sağlıyor. Bu özelliği kullanmak için Firefox'u açın ve Ctrl+t'ye basın. Aynı pencere üstünde ikinci sekmenin açıldığını göreceksiniz. Bu sekmelerin sınırı sizin sistem yapınıza göre değişmektedir. İndirme Yöneticisi Mozilla Firefox, içerisinde bir indirme yöneticisi ile beraber geliyor. Bu sayede indirdiğiniz dosyaları rahatlıkla görebilir ve yönetebilirsiniz. Bu uygulamaya Araçlar menüsündeki İndirme Yöneticisi seçeneğinden ulaşabilirsiniz. TEMEL KULLANICI ve GRUP İŞLEMLERİ Kullanıcı ve Grup Kavramları Kullanıcı Hesapları Temel olarak Linux işletim sisteminde kullanıcı bilgileri /etc/passwd dosyasında tutulmaktadır. Bu dosyada kullanıcı ismi , şifresi , kullanıcı kimlik numarası , birincil grup kimlik numarası , kullanıcı ile ilgili genel bilgiler, kullanıcının dizininin sistemdeki yeri ve kullanıcının kullandığı kabuk bilgileri bulunmaktadır. /etc/passwd dosyasındaki bir satır aşağıdaki yapıya sahiptir : kullanıcı_ismi:şifre:uid:gid:gecos:kullanıcının_dizini:kabuk sense:x:11807:100:Seref Halil Sen:/users/lnxsrv3/sense:/bin/sh Kullanıcı kimlik numarası (uid) sistem üzerinde bulunan her kullanıcı için farklıdır. İşletim sistemi tarafından yapılan temel yetkilendirme işlemlerinde bu bilgi kullanılmaktadır. Sistem yöneticisi olan root kullanıcısının kimlik numarası sıfırdır(0). Normal kullanıcıların kimlik numaraları 500'den başlamaktadır. Birincil grup numarası , kullanıcının dahil olduğu temel grubu göstermektedir. Kullanıcılar birden fazla gruba dahil olabilmektedir. Herbir kullanıcı mutlaka bir gruba dahil olmak zorundadır. Kullanıcının kişisel bilgilerinin bulunduğu alan (gecos) kullanıcının tam ismi , ofisi , ofis telefonu ve ev telefonu bilgilerini içerebilmektedir. Bu alan boş bırakılabileceği gibi istenilen bilgiler ile de doldurulabilir. Kullanıcının dizininin tanımlandığı 6. alan ise kullanıcının kişisel dosyalarını koyabileceği alanın sistemdeki yerini belirtmektedir. Kullanıcının kullandığı kabuk bilgisi , kullancı sisteme girdiği takdirde kullanacağı kabuğun sistemdeki yerini belirtir. /etc/passwd dosyası sistemde bulunan bütün kullanıcılar tarafından okunabilir olmak zorundadır. Bunun sebebi bir çok uygulamanın bu dosyayı kullanma zorunluluğudur. Bu durumda kullanıcıların şifreleri her ne kadar encrypt edilmiş olarak da olsa herkes tarafından görülebilecektir. Bu sayede şifre kırıcı programlar çalıştırılarak kullanıcıların şifrelerini elde etme imkanı doğacaktır. Bu sebepten dolayı şifreler tüm güncel libux sürümlerinde /etc/shadow dosyasında tutulmaktadır. Bu dosya sadece sistem yöneticisi konumundaki “root” kullanıcısı tarafından okunabilmektedir.Bo dosya aynı zamanda şifrenin en son ne zaman değiştirildiği , kullanıcının ne zaman geçersiz olacağı , kullanıcıların şifrelerini değiştirmeden geçirebilecekleri maksimum gün sayısı gibi ek bilgileri de içermektedir. /etc/shadow dosyasının genel yapısı aşağıdaki gibidir : kullanıcı_ismi:şifre:sp_lastchg:sp_min:sp_max:sp_warn:sp_inact:sp_expire:sp_flag ¾ ¾ ¾ ¾ ¾ ¾ ¾ sp_lastchg alanı kullanıcısının şifresini en son değiştirdiği zaman ile ilgili bilgiyi tutar. Bu alanda bulunan değer şifre değişim tarihinin 1 Ocak 1970 tarihinden kaç gün sonra olduğudur. sp_min alanı kullanıcının şifresini değiştirebilmesi için geçmesi gereken minumum gün sayısını içermektedir. Bu süre dolmadan kullanıcının şifresini değiştirmesi mümkün değildir. Eğer bu alan –1 değerini içeriyorsa şifre değiştirme işlemi için belirli bir süre geçmesi gerekli değildir. sp_max alanı kullanıcının aynı şifreyi kullanabileceği maksimum gün sayısını belirtir. Bu süre dolduğunda kullanıcının şifresini değiştirmesi gerekmektedir. Eğer bu alan 999999 değerini içeriyor ise kısıtlama geçerli değildir. sp_warn alanı kullanıcının şifresini değiştirmeden kullanabileceği maksimum gün sayısı dolmadan kaç gün önce kullanıcının uyarılması gerektiği bilgisini içerir. Kullanıcının uyarılması kullanıcı sisteme girerken yapılmaktadır. Eğer bu alan –1 değerini içeriyor ise uyarı mesajı verilmeyecektir. sp_inact alanı kullanıcının şifresinin süresi dolduktan sonra kullanıcının pasif hale getirlmesi için geçmesi gereken süredir. Bu süre içinde kullanıcının şifresi değişmediği takdirde kullanıcı pasif hale geçecektir. Eğer bu alan –1 değerini içeriyor ise pasifleştirme işlemi uygulanmamaktadır. sp_expire kullanıcının hesabının ne zaman sona ereceği bilgisini taşır. Burada bulunan değer 1 Ocak 1970 tarhinden itibaren geçmesi gereken gün sayısıdır. sp_flag alanı sonradan kullanım için düşünülmüş ve şu an kullanılmayan bir alandır. Gruplar Gruplar sistemde bulunan kullanıcılardan belirli kümeler oluşturmak için kullanılmaktadır. Gruplar sayesinde yetkiler toplu biçimde tanımlanabilmektedir. Gruplar ile ilgili bilgiler /etc/group dosyasında tutulmaktadır. /etc/group dosyası aşağıdaki formata sahiptir: grup_ismi:grup_şifresi:Grub_kimlik_numarası:üyeler grup_ismi alanını belirtilen grubun isimini tanımlamak için kullanılır. Grup şifresi alanı grubun şifresi içermektedir. Gruplar için şifre uygulaması çok fazla kullanılan bir uygulama değildir. Grup kimlik numarası grup ile ilişkilendirilmiş sayısal bir değer içermektedir. Her grupta bu değer farklı olamak zorundadır. Üyeler kısmı gruba dahil olan kullanıcıların isimlerini içermektedir. Temel Kullanıcı ve Grup İşlemleri Kullanıcı İşlemleri Kullanıcı işlemleri , sisteme yeni kullanıcıların eklenmesi , varolanlar üzerinde değişiklik yapılması ve gereksiz kullanıcıların silinmesi işlemlerini içermektedir. Kullanıcı İşlemlerinin Sistem Komutları İle Yapılması Kullanıcı Eklemek Kullanıcı eklemek için Linux sistemlerde useradd komutu kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir : useradd –d kullanıcı_dizini –e hesabın_son_kullanım tarihi –f aktif_olmama_süresi -g birinci_grup –G Gruplar –m –s kabuk –u uid kullanıcı_ismi Kullanıcı ismi dışındaki tüm parametler isteğe bağlı olarak verilebilecek parametrelerdir. Kullanıcı ismi dışındaki parametlerin anlamları aşağıdadır : -d kullanıcı_dizini : Kullanıcının şahsi dizininin sistemdeki yerini belirmek için kullanılır. Bu değer verilmediği takdirde bu değer /home/kullanıcı_ismi olarak alınacaktır. -m : Kullanıcının kişisel dizininin kullanıcının yaratılması sırasında oluşturulmasını sağlar. Red Hat sistemlerde bu parametreye gerek yoktur. Kurulum ayarları değiştirilmediği sürece sisteme kullanıcı eklenirken kişisel dizini oluşturulmaktadır. -e son kullanım tarihi : Hesabın sona ereceği tarihi içerir. Bu parametre ile aktarılacak değer AA/GG/YY formatına sahiptir. -f aktif_olmama_süresi : Hesabın şifresinin geçersiz olmasından itibaren kullanıcının pasif hale getirilmesi için geçmesi gerek süreyi içermektedir. -g grup : Kullanıcının dahil olacağı birincil grubu içermektedir. Bu değer verilmediği takdirde Red Hat Linux sistemlerde kullanıcı için kullanıcı ismi ile aynı başka bir grup yaratılacak ve bu kullanıcının birincil grubu olarak kabul edilecektir. –n parametresi ile kullanıcı için yeni bir grup açılması engellenebilmektedir. -G gruplar : Kullanıcının dahil olduğu diğer grupları göstermektedir. -s kabuk : Kullanıcının kullanacağı kabuğu belirtmektedir. -u uid : Kullanıcının kimlik numarasını belirtir. Verilmediği takdirde sistem bir sonraki müsait kimlik numarasını seçer. Örnek 8.1 : useradd halil useradd –g users halil Kullanıcı Silmek Sistemde var olan kullanıcı hesaplarını kaldırmak için userdel komutu kullanılmaktadır. Userdel komutunun temel yapısı aşağıdaki gibidir : userdel [-r] kullanıcı_ismi Sistemden bir kullanıcı kaldırılırken kullanıcının kişisel dizini silinmemektedir. Kullanıcı silinirken dizininin de silinmesi için userdel komutu –r parametresi ile çalıştırılmalıdır. Kullanıcı Bilgilerini Değiştirmek Usermod Komutu usermod komutu ile var olan bir hesap üzerinde değişiklikler yapabilirsiniz. Bu komut yardımıyla yapabileceğiniz değişiklikler aşağıdaki gibidir : usermod –d dizin –e son_kullanım_tarihi –f aktif_olmama_süresi -g birincil_grup -G gruplar –l kullanıcı_ismi –u uid kullanıcı_ismi ¾ Kişisel Dizinin Değiştirilmesi : Kullanıcının kişisel dizininin yerinin değiştirilmesi için –d parametresi kullanılmalıdır. Kullanıcının kişisel dizininde var olan dosyların yeni dizine taşınması için –m paremetresi ile birlikte kullanılması gerekmektedir. ¾ Hesabın Son Kullanım Tarihinin Değiştirilmesi : Hesabın sona ereceği tarihin değiştirilmesi için –e parametresinin kullanılması gerekmektedir. Bu parametre ile aktarılacak değer AA/GG/YY formatına sahiptir. ¾ ¾ ¾ ¾ ¾ Aktif Olmama Süresini Değiştirmek : Hesabın şifresinin geçerliliğini yitirdikten sonra , hesabı pasif hale getirmek için geçmesi gereken sürenin değiştirilmesi için –f parametresi kullanılmalıdır. Birincil Grubu Değiştirmek : Kullanıcının dahil olduğu birincil grubun değiştirilmesi için –g parametresi kullanılmalıdır. Kullanıcının Dahil Olduğu Grupların Değiştirilmesi : Kullanıcının dahil olduğu diğer grupların değiştirilmesi için –G parametresi kullanılmalıdır. Dikkat edilmesi gereken konu kullanıcının sadece bu parametreye verilen gruplara dahil olacağıdır. Kullanıcının önceden dahil olduğu grup üyelikleri silinecek ve parametreye aktarılan gruplara üyelikleri yapılacaktır. Kullanıcı İsminin Değiştirilmesi : Kullanıcı isminin değiştirilmesi için –l parametresi kullanılmalıdır. Verilecek olan yeni isim sistemde mevcut olmamalıdır. Kullanıcın Kimlik Numarasının Değiştirilmesi : Kullanıcının sahip olduğu kimlik numarasının değiştirilmesi için –u parametresi kullanılmalıdır. Verilen kimlik numarası sistemde diğer kullanıcılar tarafından kullanılmayan bir kimlik numarası olmalıdır. Chfn Komutu chfn komutu kullanıcının kişisel bilgilerini değiştirmek için kullanılan bir komuttur. Komut temel olarak aşağıdaki formata sahiptir. chfn [ -f tam_isim ] [ -o ofis ] [ -p ofis_tel ] [ -h ev_tel] [ kullanıcı_ismi ] Kullanıcı ismini parametre olarak verebilecek tek kullanıcı sistem yöneticisi olan root kullanıcısıdır. Normal kullanıcılar bu parametreyi komuta aktaramazlar. Kullanıcı ismi dışında hiç bir parametre aktarılmadığı takdirde komut sırayla gerekli bilgileri isteyecektir. Örnek 8.2: [root@ciragan /root]# chfn halil Changing finger information for halil. Name []: Halil Catak Office []: MUGLAEML Office Phone []: 6543210 Home Phone []: Finger information changed. [root@ciragan /root]# chfn –f “Halil Catak” –o “MUGLAEML” –p “6543210” halil Chsh Komutu chsh komutu kullanıcı için tanımlı kabuğu değiştirmek için kullanılır: Komut temel de aşağıdaki yapıya sahiptir : chsh [–s kabuk] [-l] [ kullanıcı_ismi] Kullanıcı ismi parametresi sadece root kullanıcısı tarafından komuta aktarılabilmektedir. –l parametresi ile sistemde geçerli olan kabuklar listelenmektedir. Sistemde tanımlı olan kabuklar /etc/shells dosyasında bulunmaktadır. –s parametresi ile yeni kabuk verilmediği takdirde komut kullanıcıdan kabuk bilgisini girmesini isteyecektir. Örnek 8.3: [root@ciragan /root]# chsh –1 /bin/bash /bin/sh /bin/ash /bin/bsh /bin/tcsh /bin/csh [root@ciragan /root]# chsh -s /bin/tcsh Changing shell for root. Shell changed. [root@ciragan /root]# chsh Changing shell for root. New shell [/bin/tcsh]: /bin/bash Shell changed. Passwd Komutu passwd komutu temelde kullanıcının şifresinin değiştirilmesi amacı ile kullanılmaktadır. Fakat bu komut kullanılarak kullanıcının pasif hale getirilmesi , kullanıcının kilitlenmesi gibi işlemler de mümkündür. Passwd komutu temelde aşağıdaki yapıya sahiptir : passwd [-l] [-u [-f]] [-d] [-S] [kullanıcı_ismi] passwd komutu sistemdeki normal kullanıcılar tarafından sadece kendi şifrelerini değiştirmek amacı ile kullanılabilmektedir. Bu sebepten dolayı passwd komutuna parametre aktarma imkanları bulunmamaktadır. Sistem yöneticisi olan root kullanıcısı aktardığı parametreler ile aşağıdaki işlemleri gerçekleştirebilmektedir : Sistemdeki herhangi bir kullanıcı için işlemi gerçekleştirmek : Passwd komutuna kullanıcı isminin parametre olarak verilmesi sayesinde komutun yapacağı tüm işlemlerin verilen kullanıcı için yapılması sağlanmaktadır. ¾ ¾ ¾ Kullanıcının kilitlenmesi : Kullanıcı hesabının kilitlenmesini gerçekleştirmek için –l parametesi gönderilmelidir. Bu parametre gönderildiğinde kullanıcının şifresinin önüne “!” karakteri yerleştirilerek şifre geçersiz kılınmaktadır. Kilitli kullanıcıları tekrar aktif hale getirmek : Kilitlenmiş bir hesabı tekrar aktif hale getirmek için –u parametresi kullanılmalıdır. Kullanıcıyı şifresiz duruma getirmek : Kullanıcının şifresini kaldırmak için –d parametresi kullanılmalıdır. Bu parametre passwd komutunun yardım dosyalarında kullanıcıyı pasif hale getirmek diye geçmesine rağmen yaptığı temel işlem kullanıcının şifresini kaldırmaktır. Bu durumda şifre sorulmadan kullanıcının girişine izin verilmektedir. Bu sebepten dolayı bu parametrenin kullanılması önerilmemektedir. Kullanıcı İşlemlerinin Userconf Programı İle Yapılması Userconf programı RedHat Linux ile birlikte gelen ve kullanıcı yönetimi için arayüz oluşturan bir programdır. Bu program hem X Window platformunda , hem de konsol da çalışmaktadır. Programı çalıştırmak için “userconf” komutunun verilmesi yeterlidir. Userconf Programı İle Kullanıcı Hesabı Açılması İlk olarak userconf programı çalıştırılmalı ve çıkan arayüzden “User Accounts” kısmına girilmelidir. Kullanıcı hesaplarına girildiği takdirde sistemde bulunan kullanıcıların listelendiği Resim 8.1'deki ekran karşımıza gelecektir. Bu ekranda var olan kullanıcılar ile ilgili değişikliler de yapılabilmektedir. Yeni bir kullanıcı yaratmak için “Add” tuşuna basılması Resim 8.2'de bulununan ekranı karşımıza getirecektir. Resim 8.1 : Kullanıcı hesapları ekranı. Bu ekranda gerekli bilgiler girildikten sonra “Accept” tuşu ile kullanıcının yaratılması sağlanmaktadır. Bu ekranda da görüldüğü gibi usermod komutuna verilebilen tüm parametreler bu ekran üzerinden ayarlanabilmektedir. “Base Info” başlıklı sekmede kullanıcı ile ilgili genel tanımlar yapılırken , “params” başlıklı sekmede kullanıcı ile ilgili shadow dosyasında bulunacak bilgilerin ayarı yapılmaktadır. “Privileges” başlıklı sekmede ise kullanıcının sistemdeki hakları tanımlanmaktadır. Bu kısımda tanımlanan haklar Red Hat Linux dağıtımları ile birlikte gelen ve sistem yönetimi için kullanılan “linuxconf” programı için geçerli haklardır. “Mail Settings” başlıklı sekmede ise kullanıcı mail aliasleri tanımlanabiliyor. “Disk quota” sekmeninde kullanıcın disk alanı limitleri ile ilgili ayarlamalar yapılır. Resim 8.2 : Kullanıcı hesabı ekleme ekranı. Bu ekrandaki bilgiler doldurulup kabul edildikten sonra kullanıcının şifresini soran bir ekran karşımıza gelecektir. Bu ekranda girilecek şifre kullanıcının şifresi olarak kullanılacaktır. Userconf Programı İle Kullanıcı Silinmesi Resim 8.3'deki “User Accounts” kısmından silinecek kullanıcı seçildiğinde karşımıza Resim 8.4'te bulunan “User Information” ekranı karşımıza gelecektir. Resim 8.3 : Kullanıcı hesabı ekleme ekranı. Resim 8.4 : Kullanıcı bilgileri ekranı. Bu ekranda “Del” tuşu basılarak kullanıcı silme ekranı çağrılır (Resim 8.5). Bu ekrandaki birinci seçenek “Archive the account's data” seçildiği takdirde silinecek kullanıcının kişisel dizisi yedeklenip sadece kullanıcı bilgileri silinir. Resim 8.5 : Kullanıcı bilgileri ekranı. Eğer “Delete the account' data” olan seçenek işaretlenecek ise kullanıcının bilgileri ile birlikte kişisel dizini de silinmiş olur. Üçüncü seçenek olan “Leave the account's data in place” işaretlenirse kullanıcı bilgileri silinip kişisel dizini olduğu gibi yerinde kalacaktır. Userconf Programı İle Kullanıcı Bilgilerinin Güncellenmesi Kullanıcı bilgilerini güncellemek için Resim 8.3'deki ekranda gerekli değişiklikler yapıldıktan sonra “Accept” tuşu ile etkili hale getirilir. Grup İşlemleri Grup işlemleri, sisteme yeni grupların eklenmesi, varolanlar üzerinde değişiklik yapılması ve gereksiz grupların silinmesi işlemlerini içermektedir. Grup İşlemlerinin Sistem Komutları İle Yapılması Grup Eklemek Sisteme yeni bir grup eklemek için Linux'ta groupadd komutu kullanılmaktadır. Bu komutun temel yapısı aşağıdaki gibidir: grupadd –g gid –r –f grup_adı Burada grup adı dışında tüm parametreler isteğe göre verilebilir. Parametrelerin açıklamaları aşağıdaki gibidir: ¾ -g gid : Grubun kimlik numarasını belirtir. Verilmediği takdirde sistem bir sonraki müsait kimlik numarasını seçer. ¾ -r : Bu parametre verildiği takdirde gid 499'un altında verilebiliyor. Aksi takdirde 499'un altındaki gidler sistem gruplarına aittir ve sıradan bir grup için böyle bir gid tanımlanmasına izin verilmiyor. ¾ -f : Bu paramtre ile komut sonucunda oluşan hataları kullanıcıya iletmeden komut işlemlerini durduruyor. Örnek 8.4: groupadd users groupadd –g 550 users Grup Kaldırmak Sistemde varolan bir grubu kaldırmak için groupdel komutu çalıştırılır. Bu komutum temel yapısı aşağıda verilmiştir: groupdel group_adı Ayrıca bir grup kaldırılmadan önce gruptaki tüm kullanıcıların silinmesi gerekir. Grup İşlemlerinin Userconf Programı İle Yapılması UserConf Programı İle Grup Oluşturulması Userconf programı çalıştırıldıktan sonra gelen ekranda (Resim 8.6) “Group definitions” tuşu kullanarak grup işlemleri ekranına geçilir (Resim 8.7). Resim 8.6 : Grup oluşturma ekranı. Resim 8.7 : Gruplar ekranı. Resim 8.8: Grup işlemleri ekranı. Yeni bir grup eklemek için bu ekranda “Add” tuşu kullanılır, bunun sonucu Resim 8.8'de yer alan ekran gelecektir. Bu ekranda gerekli bilgiler doldurulduktan sonra “Accept” tuşu ile yeni grup açılması sağlanmaktadır. “Group disk quota” sekmeninde grubun disk alanı limitleri ile ilgili ayarlamalar yapılır. “Members default disk quota” sekmeninde grupta tanımlanacak kullanıcılar için varsayılan disk alanı ile ilgili ayarlamalar yapılır. “Directories” sekmesinde oluşturulan grup tarafından kullanılacak dizinler tanımlanır. UserConf Programı İle Grup Kaldırılması Grup işlemleri ekranında (Resim 8.8) grup seçildikten sonra, “Del” tuşu kullanılarak grup silme isteğinde bulunulur. Bu işlemden sonra sistem grup silme isteğini onaylanmasını ister (Resim 8.9). Resim 8.9 : Grup silme onay ekranı. UserConf Programı İle Grup Bilgilerinin Güncellenmesi Grup işlemleri ekranında bilgileri güncellenmesi istenen grup seçilir. Grubu seçmek için üstüne tıklanması yeterlidir. Grup bilgileri ekranında (Resim 8.10) gerekli değişiklikler yapıldıktan sonra “Accept” tuşu ile güncellemeler aktif hale getirilir. Resim 8.10 : Grup işlemleri ekranı. Pardus’ta Kullanıcı İşlemleri Pardus'ta yeni bir kullanıcı oluşturmak için, KDE menüsünden Pardus Yapılandırma Merkezi'ni (Tasma) çalıştırın. Bu pencereden Sistem Seçenekleri kategorisinde 'Kullanıcı Ekle ve Çıkart'ı simgesine tıklayın. Bu pencerede bir kullanıcı eklemek için önce “Yönetici Modu” düğmesine tıklayın. Sistem sizden kurulum sırasında verdiğiniz sistem yöneticisi parolasını isteyecektir. Bu parolayı girdikten sonra sırasıyla açılmak istenen kullanıcı adını, gerçek ismini ve parolasını girerek yeni kullanıcıyı sisteme tanıtabilirsiniz. Pardus ile Grafiksel Ortamda “Yönetici Modu”na sadece ihtiyaç duymanız ile kullanabileceksiniz. Root şifresi ile kesinlikle “Grafiksel Ortam”a giremezseniz. Güvenlik gereği olarak bu türde bir uygulamaya gidilmiştir. Kullanıcı olarak oluşturduğunuz parolalarınızı bu modül ile değiştirebilecek ve değiştirme sırasında birbiri ile tutmayan parolaların için uyarı yazısını görebileceksiniz. Resim 8.11 : Pardus Kullanıcı Ekle –Çıkart Modülü. KABUK İŞLEMLERİ Kernel, bir unix sistemin kalbidir, bilgisayarın açılması ve sistemin boot etmesinden, sistemin kapatılmasına kadar olan süre içinde bilgisayar belleğinde yer alır. Uygulamalar ise, diğer taraftan, bilgisayarın diskinde bulunurlar ve ancak istendiği zaman belleğe yüklenirler. (Şekil 9.1). Göreceli olarak (hemen hemen) her unix komutu uygulama olarak sınıflandırılabilir. Örneğin 'date' komutunu işlettiğiniz zaman 'UNIX system date' adlı program diskten belleğe yükler ve çalısmasını sağlar. Kabuk (Shell) bir uygulama programıdır. Sisteme bağlanıldığında (logon) işletilmek üzere belleğe yüklenir. Şekil 9.1 : Unix sistemlerde kabuk. Komut Satırı, Programlara Parametre Gönderme Kabuklar kullanıcıların sistem ile etkileşimini sağlayan programlardır. Bu programlar sayesinde kullanıcı istediği komutları çalıştırabilir ve sonuçları görebilir. Linux sistemler ile birlikte en çok bash kabuğu kullanılmaktadır. Sistemde bulunan kabuklar /etc/shells dosyasında da bulunmaktadır. Bu dosyada tanımlanmış olan kabuklar sistemde geçerli olan kabuklardır. Bu dosyada tanımlı olmayan kabuklarda sistemde bulunabilmektedir. Bazı sunucu programları (özellikle ftp sunucuları) kendilerine bağlanan kullanıcının bu dosyada tanımlı olan bir kabuğa sahip olmasını istemektedir. [halil@atlas halil]$ cat /etc/shells /bin/ash /bin/bash /bin/bash2 /bin/bsh /bin/csh /bin/false /bin/sh /bin/tcsh Linux sistemlerde çoğunlukla aşağıdaki kabuklar bulunmaktadır : ¾ Bash (Bourne again shell) : Unix türevlerinde kullanılan temel kabuklardan olan sh ile uyumlu ve bir çok ek özelliği bulunan bir kabuktur. En önemli özelliklerinden biri dosya ve komut isimlerini tamamlayabilme yeteneğidir. Çoğu linux dağıtı ile beraber varsayılan kabuk olarak kullanılır. ¾ Csh (C Shell) : Komut yapısı itibari ile C’ye benzer bir yapı kullanan bir kabuktur. ¾ Tcsh : Csh kabuğunun gelişmiş halidir. Dosya ve komut tamamlama desteğini içerir. Linux Komut Yapısı ve Komut Satırı Temel de tüm Linux komutları aşağıdaki yapıya sahiptir : Komut [seçenekler] [parametreler] Seçenekler ile belirtilen komutun varsayılan davranışını değiştirmek için verilmesi gereken bilgilerdir. Örnek vermek gerekirse ls komutu hiç bir seçenek ile çağırılmadığı takdirde bulunulan dizindeki dosyaları ayrıntı vermeden listelemektedir. Dosyalar ile ilgili izin , sahip , büyüklük gibi ayrıntılar istendiği takdirde –l seçeneği kullanılmaktadır. Bu durumda dizindeki gizli dosyalar hariç diğer tüm dosyalar ayrıntıları ile listelenir. Gizli dosyalarında ayrıntıları ile listelenmesi isteniyor ise –a seçeneği de kullanılır. Parametre ile belirtilen komutun gerek duyabileceği dosya, dizin , yazıcı gibi bilgilerdir. Örnek vermek gerekir ise cat komutu içeriğini görüntüleyeceği dosya ismine gerek duyar. Bu komuta aktarılan dosya ismi parametredir. Örnek 9.1: ls –la /tmp : “ls” = komut , “-la”=seçenek “/tmp” parametre cat /etc/passwd : “cat”=komut , “/etc/passwd” parametre Özel Karakterler ve Genişlemeler Tüm kabuklarda *,? ,[],{}, ; gibi karakterler özel anlamları olan karakterlerdir. Bu karakterlerin kendileri kullanılmak istendiği takdirde “\” karakteri ile kullanılmaları gerekmektedir. Yıldız (*) Karakteri Yıldız “*” karakteri en çok kullanılan özel karakterdir. Sıfır veya daha fazla karakterin yerini tutmak için kullanılır. Örnek vermek gerekirse ab* “ab ile başlayan kelimeler” anlamına gelmektedir. Bu tanıma ab, abc ,abdef gibi kelimeler dahildir. [halil@atlas halil]$ls /etc/pa* /etc/paper.config /etc/passwd /etc/passwd- /etc/passwd.OLD Soru İşareti (?) Karakteri Soru işareti karakteri de yıldız karakteri gibi yer tutmak için kullanılır. Tek farkı sadece bir karakterin yerini tutmasıdır. Örnek 9.2: [halil@atlas ders_ornek]$ ls -la total 12 drwxr-xr-x 2 halil users 4096 Aug 20 12:29 . drwxrwxrwt 4 root root 8192 Aug 20 12:29 .. -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfg [halil@atlas ders_ornek]$ ls -l ab?d -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd Köşeli Parantez ( [] ) Karakteri Köşeli parantezler “[]“ veya anlamı taşımaktadırlar. Veya işlemini yaparken parantezler içinde bulunan karakterler tek tek ele alınır. Örnek vermek gerekirse [abc] ile “a veya b veya c” belirtilir. İstendiği takdirde tek tek karekter kullanmak yerine , karakter aralığı da kullanılabilir. Örnek vermek gerekirse [a-z] ile küçük a ve küçük z harfleri arasında bulunan karakterler tanımlanmış olur. Örnek 9.3: [halil@atlas ders_ornek]$ ls -l ab[cfs]d -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd -rw-r--r-- 1 halil users 0 Aug 20 14:55 absd [halil@atlas ders_ornek]$ ls -l total 0 -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfg -rw-r--r-- 1 halil users 0 Aug 20 14:55 absd [halil@atlas ders_ornek]$ ls -l ab[a-f]d -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd Küme Parantezi ( { } ) Karakteri Küme parantezleri de temelde köşeli parantezler gibi veya işlevi görmektedir. Ama köşeli parantezlerden farklı olarak bir karakter yerine birden fazla karakterden oluşan karakter kümeleri ile işlem yapabilmektedir. Köşeli parantezlerden diğer bir farkı ise yerine geçmek işlemi yerine katar türetme işlemi yapmaktadır. Yani a{b,c,d}e ile aslında “abe ace ade” katarı elde edilmektedir. Küme parantezlerinden katar yaratma işlemi kabuk tarafından diğer tüm yerleştirme işlemleri yapılmadan gerçekleştirilir ve diğer yerleştirmelerde geçerli olan özel karakterler korunur. Örnek 9.4: [root@atlas koseli]# ls *a* ari kabre kasde was [root@atlas koseli]# ls *b* kabre kbfre [root@atlas koseli]# ls *a* *b* ari kabre kabre kasde kbfre was [root@atlas koseli]# ls *{a,b}* ari kabre kabre kasde kbfre was [root@atlas koseli]# ls *[a,b]* ari kabre kasde kbfre was [root@atlas koseli]# ls -la kume total 8 drwxr-xr-x 2 root root 4096 Aug 20 15:21 . drwxr-xr-x 3 root root 4096 Aug 20 15:21 .. [root@atlas koseli]# mkdir kume/{bir,iki,uc} [root@atlas koseli]# ls -la kume total 20 drwxr-xr-x 5 root root 4096 Aug 20 15:22 . drwxr-xr-x 3 root root 4096 Aug 20 15:21 .. drwxr-xr-x 2 root root 4096 Aug 20 15:22 bir drwxr-xr-x 2 root root 4096 Aug 20 15:22 iki drwxr-xr-x 2 root root 4096 Aug 20 15:22 uc Tilde ( ~ ) Karakteri Bir kelime tilde karakteri ile başladığı takdirde , ilk slash “/” karakteri bulunana kadar olan tüm karakterler kullanıcı ismi olarak kabul edilir. Eğer kullanıcı ismi boş bir katar ise tilde karakteri HOME çevre değişkeni ile değiştirilir. Eğer HOME çevre değişkeni mevcut değil ise kabuğu çalıştıran kullanıcının ev dizini tilde karakteri yerine kullanılır. Eğer tilde karakteri ile belirtilen kullanıcı ismi sistemde tanımlı ise , tilde karakteri ile kullanıcı ismi , kullanıcının ev dizini ile değiştirilir. Örnek 9.5: [root@atlas /tmp]# pwd /tmp [root@atlas /tmp]# cd ~ [root@atlas /root]# pwd /root [root@atlas /root]# echo $HOME /root [root@atlas /root]# cd /tmp [root@atlas /tmp]# export HOME=/home/ cevikbil dene fpuser ftp httpd okttas scanlogd yuksele yuzsever [root@atlas /tmp]# export HOME=/home/ftp/ [root@atlas /tmp]# cd ~ [root@atlas ftp]# pwd /home/ftp [root@atlas ftp]# unset HOME [root@atlas ftp]# echo $HOME [root@atlas ftp]# cd ~ [root@atlas /root]# pwd /root Tilde karakterini artı “+” karakteri izlediği durumlarda , tilde ve artı karakteri PWD çevre değişkeni ile değiştirilir. Eğer tilde karakterini eksi “-“ işareti izliyor ise , tilde ve eksi karakteri bir önce bulunulan dizinin yolunu belirten OLDPWD çevre değişkeni ile değiştirilir. Örnek 9.6: [root@atlas /root]# cd /tmp/ [root@atlas /tmp]# echo $PWD /tmp [root@atlas /tmp]# echo $OLDPWD /root [root@atlas /tmp]# cd ~+ [root@atlas /tmp]# pwd /tmp [root@atlas /tmp]# echo $OLDPWD /tmp [root@atlas /tmp]# export OLDPWD=/home [root@atlas /tmp]# cd ~[root@atlas /home]# pwd /home Standart Giriş/Çıkış ve Yönlendirme Linux işletim sisteminde çalıştırılan her komut 3 dosya işaretçisine sahiptir : ¾ Standart Giriş (stdin) : Çalışan programın , dosya gibi ek kaynaklar açmadan veri okumak için kullanacağı kaynağı belirtir. Varsayılan olarak veri girişi klavyeden okuma şeklinde gerçekleştirir. ¾ Standart Çıkış (stdout) : Çalışan programın çıktılarını göndereceği kaynağı belirtir. Varsayılan kaynak terminal penceresidir. ¾ Standart Hata (stderr) : Çalışan programın hata çıktılarını göndereceği kaynağı belirtir. Varsayılan kaynak terminal penceresidir. Her dosya işaretçisi bir numara ile belirtilir. Standart giriş 0 , standart çıkış 1 , standart hata 2 değerlerine sahiptir. Bir program çalışmadan önce , giriş ve çıkışları özel bir gösterim ile istenilen dosyalara yönlendirilebilir. Dosya ismi kullanılırken *,?,[],{},~ gibi özel karakterler kabuk tarafından yorumlanacak ve gerekli yer değiştirmeler yapılacaktır. Eğer sonuç olarak birden fazla dosya ismi ortaya çıktığı takdirde kabuk hata verecektir. Standart Girişin Yönlendirilmesi Komut çalıştığında veri girişinin belli bir dosyadan yapılması istendiğinde “ < “ karakteri ile bir dosya standart girişe yönlendirilebilir. Örnek 9.7 : komut <dosya [halil@atlas ders_ornek]$ cat input_yonlendir Standart Giris yönlendirmesi için örnek 123 456 [halil@atlas ders_ornek]$ cat input_yonlendir Standart Giris yönlendirmesi için örnek 123 456 Standart Çıkış ve Standart Hatanın Yönlendirilmesi Standart çıkış ve hatanın yönlendirilme işlemi temel olarak “>” karakteri ile yapılmaktadır. Yönlendirme için temel kullanım şekli aşağıdaki gibidir : komut [n]>dosya n sayısı hangi dosya işaretçisinin yönlendirileceğini belirtir. Bu sayı verilmediği takdirde veya 1 olarak verildiği takdirde standart çıkış için yönlendirme yapılır. Eğer n sayısı 2 olarak verilirse standart hata için yönlendirme yapılır. Örnek 9.8 : ls komutunun çıktısının bir dosyaya yönlendirilmesi. Yönlendirme işlemi komut çalıştırılmadan gerçekleştirildiği için ilk ls çıktısında gözükmeyen sonuç dosyası ls_cikti , ikinci ls çıktısında gözükecektir. [halil@atlas ders_ornek]$ ls -l total 16 -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfg -rw-r--r-- 1 halil users 0 Aug 20 14:55 absd -rwxr-xr-x 1 root root 41 Aug 20 16:42 degisken.sh -rw-r--r-- 1 halil users 49 Aug 22 13:46 input_yonlendir drwxr-xr-x 3 root root 4096 Aug 20 15:21 koseli lrwxrwxrwx 1 halil users 10 Aug 21 13:57 set123 -> set_deneme drwxr-xr-x 2 halil users 4096 Aug 21 13:57 set_deneme [halil@atlas ders _ornek]$ ls -l >ls_cikti [halil@atlas ders _ornek]$ cat ls_cikti total 16 -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfg -rw-r--r-- 1 halil users 0 Aug 20 14:55 absd -rwxr-xr-x 1 root root 41 Aug 20 16:42 degisken.sh -rw-r--r-- 1 halil users 49 Aug 22 13:46 input_yonlendir drwxr-xr-x 3 root root 4096 Aug 20 15:21 koseli -rw-r--r-- 1 halil users 0 Aug 22 13:52 ls_cikti lrwxrwxrwx 1 halil users 10 Aug 21 13:57 set123 -> set_deneme drwxr-xr-x 2 halil users 4096 Aug 21 13:57 set_deneme “>” operatörü ile yapılan yönlendirmede hedef dosya yok ise yaratılır , varsa içeriği sıfırlanır. İçeriğin sıfırlanması yerine var olan dosyanın sonuna ekleme yapmak için “>>” operatörü kullanılmalıdır. Bu durumda hedef dosya yok ise yaratılacak , var ise yapılacak eklemeler dosyanın sonuna yapılacaktır. Standart hata ile standart çıkışın aynı dosyaya yönlendirilmesi çokça kullanılan bir yönlendirmedir. Bu yönlendirme 3 farklı şekilde gerçekleştirilebilir : >& dosya &>dosya >dosya 2>&1 Örnek 9.9 : [halil@atlas ders_ornek]$ ls olmayan_dosya ls: olmayan_dosya: No such file or directory [halil@atlas ders_ornek]$ ls olmayan_dosya 2>ls_hata [halil@atlas ders_ornek]$ cat ls_hata ls: olmayan_dosya: No such file or directory [halil@atlas ders_ornek]$ touch olan_dosya [halil@atlas ders_ornek]$ ls -l olmayan_dosya olan_dosya ls: olmayan_dosya: No such file or directory -rw-r--r-- 1 halil users 0 Aug 22 14:06 olan_dosya [halil@atlas ders_ornek]$ ls -l olmayan_dosya olan_dosya 2>ls_hata -rw-r--r-- 1 halil users 0 Aug 22 14:06 olan_dosya [halil@atlas ders_ornek]$ ls -l olmayan_dosya olan_dosya 2>ls_hata >ls_cikti [halil@atlas ders_ornek]$ cat ls_hata ls_cikti ls: olmayan_dosya: No such file or directory -rw-r--r-- 1 halil users 0 Aug 22 14:06 olan_dosya [halil@atlas ders_ornek]$ cat ls_hata ls: olmayan_dosya: No such file or directory [halil@atlas ders_ornek]$ cat ls_cikti -rw-r--r-- 1 halil users 0 Aug 22 14:06 olan_dosya [halil@atlas ders_ornek]$ ls -l olmayan_dosya olan_dosya &>ls_cikti [halil@atlas ders_ornek]$ cat ls_cikti ls: olmayan_dosya: No such file or directory -rw-r--r-- 1 halil users 0 Aug 22 14:06 olan_dosya [halil@atlas ders_ornek]$ Bir Komutun Çıktısının Başka Bir Komutun Verisi Olarak Kullanılması Linux işletim sistemi bir komutun çıktısını diğer komutun girişi olarak kullanılmasını sağlayan Unix borularını (pipe) desteklemektedir. Bu işlemin gerçekleştirilmesi için “ | “ operatörü kullanılır. Komut1 | komut2 Örnek 9.10 : [halil@atlas ders_ornek]$ cat ls_cikti | wc -l 11 [halil@atlas ders_ornek]$ cat ls_cikti | grep ab -rw-r--r-- 1 halil users 0 Aug 20 12:29 abcd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfd -rw-r--r-- 1 halil users 0 Aug 20 12:29 abfg -rw-r--r-- 1 halil users 0 Aug 20 14:55 absd Unix boruları sayesinde bir önceki komutun çıktısı üzerinde işlem yapabilen komutlar kullanılabilmektedir. Bu kullanım şekli en çok grep,sort,wc,cut gibi filtre programları tarafından tercih edilmektedir. Tee Komutu Tee komutu standart girişten okuduğunu hem standart çıkışa hem de dosyaya yazmak için kullanılan bir komuttur. Temel kullanım şekli aşağıdaki gibidir : tee [-a] dosya_ismi -a parametresi kullanıldığı ve hedef dosya var olduğu takdirde , hedef dosyanın içeriği sıfırlanmaz ve sonuna ekleme yapılır. Aksi durumlarda dosyanın içeriği sıfırlanır. Örnek 9.11 : [halil@atlas ders_ornek]$ tee tee_cikti < tee_deneme Tee komutu için deneme 123 456 [halil@atlas ders_ornek]$ cat tee_cikti Tee komutu için deneme 123 456 Tee komutu çoğunlukla Unix boruları ile yapılan yönlendirmelerde kullanılır. Belli bir komutun çıktısını hem aynı anda ekranda görüp hem de bir dosyaya kaydetmek istenildiği durumlarda tee komutu kullanılmaktadır. Temel Filtre Komutları Filtreler çoğunlukla metin dosyaları üzerinde işlem yapan programlardır. En çok kullanılan program dosya içersinde metin bulmak için kullanılan grep programıdır. Filtreler çoğunlukla başka bir programın çıktısını alıp işlerler. Bu yüzden çoğu filtre unix boruları ile beraber kullanılır. [root@atlas bim]# ls -l | wc -l 58 Wc Komutu Bir dosyadaki byte , kelime ve satırları saymak için wc komutu kullanılır. Bu komutun temel yapısı aşağıdaki gibidir : wc [seçenekler] [dosya] İşlenecek dosya verilmediği takdirde wc komutu verileri standart girişten okuyacağını varsaymaktadır. Bu sayede wc komutu Unix boruları ile bir önceki komutun çıktısını alıp işleyebilmektedir. wc komutu ile kullanılanabilecek temel seçenekler aşağıdaki gibidir : ¾ -c : Dosyadaki byteları sayar. ¾ -l : Dosyadaki satırları sayar. ¾ -w : Dosyadaki kelimeleri sayar. ¾ -L : Dosya içindeki en uzun satırın boyutunu gösterir. Örnek 9.12 : [halil@atlas ders_ornek]$ cat wc_ornek wc icin ornek 123 en uzun satir bu ve boyu 27 [halil@atlas ders_ornek]$ ls -l wc_ornek -rw-r--r-- 1 halil users 47 Aug 23 11:05 wc_ornek [halil@atlas ders_ornek]$ cat wc_ornek | wc -c 47 [halil@atlas ders_ornek]$ cat wc_ornek | wc -w 11 [halil@atlas ders_ornek]$ cat wc_ornek | wc -l 4 [halil@atlas ders_ornek]$ cat wc_ornek | wc -L 27 Sort Komutu Metin dosyaları üzerinde sıralama işlemi sort komutu ile yapılır. Bu komut satırları verilen sıralama kriterine göre sıralar ve sonucu standart çıkışa aktarır. Komutun temel kullanım şekli aşağıdaki gibidir : sort [seçenek] dosya Dosya ismi verilmediği takdirde veriler standart girişten okunacaktır.Sort komutu ile kullanılabilecek temel seçenekler aşağıdaki gibidir: ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ -k POS1[,POS2] : Bu parametre ile sıralama için kullanılacak alan numarası verilir. POS1 değeri sıralam için kullanılacak alanlar için başlangıç değeridir. POS2 değeri ise sıralama alanları için bitiş değeridir.POS2 değeri verilmediği takdirde sıralama POS1 alanından önce kalan alanlar sıralama işlemine sokulmazlar. Tek bir alan üzerinde sıralama yapmak isteniyorsa POS1 ve POS2 değerleri eşit olmalıdır. Alanlar birbirlerinden boşluk veya tab karakteri ile ayrılırlar. Sıralma için göz önüne alınacak anahtar değerler istendiği takdirde bir alan içinde bulununan karakterlerde olabilir. Karakterleri seçmek için alan numarasından sonra nokta “ .” karakteri kullanılmalı ve bu alan içinde kaçıncı karakter olduğu bildirilmelidir. -r : Karşılaştırma sonuçlarını tersten işlemek için kullanılır. -l : Sıralama işlemini yaparken locale bilgisinide kullanılmasını sağlar. -M : Ay isimlerini baz alan sıralama yapılmasını sağlamak için kullanılır. -t SEP : Alan ayıracı olarak boşluk veya tab yerine SEP ile belirtilen karakterin kullanılmasını sağlar. -m : Sıralanmış dosyaları birleştirmek için kullanılır. Birleştirilecek dosyalar kendi içlerinde sıralanmış olmalıdır. -o dosya : Sıralanmış verinin standart çıkış yerine dosyaya yazılmasını sağlar. -f : Büyük küçük harf ayrımını ortandan kaldırır. -n : Numerik olarak sıralama yapmak için kullanılır. -g : Bu seçenek de numerik sıralama yapmak için kullanılır. –n seçeneğinden farkı gerçel sayılar üzerinde de işlem yapabilmesidir. Sayıların gösterilmesi için kullanılan bilimsel notasyonu (scientific notation) destekler. (1.5e-23 , 15e24) [halil@seawolf halil]$ cat sort_deneme linux ders isletim sistem [halil@seawolf halil]$ sort sort_deneme isletim ders linux sistem Örnek 9.13: “ls –l” komutu çıktısını sort komutu yardımı ile dosya boyutuna göre sıralamak : [halil@seawolf sort_dizin]$ ls -l total 12884 -rw-r--r-- 1 halil users 453 Aug 24 12:51 dosya_1 -rw-r--r-- 1 halil users 11827208 Aug 24 12:51 dosya_2 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 Dosya boyutları “ls –l” çıktısının beşinci alanında bulunmaktadır. Bu yüzden beşinci alan üzerinde sıralama yapılmalıdır. [halil@seawolf sort_dizin]$ ls -l|sort -k 5,5 total 12884 -rw-r--r-- 1 halil users 11827208 Aug 24 12:51 dosya_2 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 -rw-r--r-- 1 halil users 453 Aug 24 12:51 dosya_1 Örnek 9.14: “ls –l” çıktısını ilk olarak Ay , sonra gün en son boyuta göre sıralamak için : [halil@seawolf sort_dizin]$ ls -l total 24436 -rw-r--r-- 1 halil users 453 Feb 12 2001 dosya_1 -rw-r--r-- 1 halil users 11827208 Jul 23 12:03 dosya_2 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 -rw-r--r-- 1 halil users 11827208 Aug 24 12:56 dosya_4 “ls –l” komutunun çıktısında dosyanın en son değiştiği tarihin ay bilgisi altıncı , gün bilgisi yedinci alanda bulunmaktadır. Dosyanın boyutu bilgisi ise 5. alandadır. Altıncı alandaki bilgi ay bilgisi olduğu için altıncı alan için sıralama yaparken –M seçeneğinin kullanılması gerekmektedir. Bu anahtar kullanılmadığı takdirde sıralama alfabetik olarak yapılacaktır. [halil@seawolf sort_dizin]$ ls -l | sort -k6,6 total 24436 -rw-r--r-- 1 halil users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 -rw-r--r-- 1 halil users 453 Feb 12 2001 dosya_1 -rw-r--r-- 1 halil users 11827208 Jul 23 12:03 dosya_2 [halil@seawolf sort_dizin]$ ls -l | sort -k6,6M total 24436 -rw-r--r-- 1 halil users 453 Feb 12 2001 dosya_1 -rw-r--r-- 1 halil users 11827208 Jul 23 12:03 dosya_2 -rw-r--r-- 1 halil users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 Bir sort komutunda birden fazla –k seçeneği kullanılabilir. Seçeneklerin kullanım sırası yapılacak sıralama işlemini etkileyecektir. [halil@seawolf sort_dizin]$ ls -l | sort -k5,5 -k6,6M -k7,7 total 24436 -rw-r--r-- 1 halil users 11827208 Jul 23 12:03 dosya_2 -rw-r--r-- 1 halil users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 -rw-r--r-- 1 halil users 453 Feb 12 2001 dosya_1 [halil@seawolf sort_dizin]$ ls -l | sort -k7,7 -k6,6M -k5,5 total 24436 -rw-r--r-- 1 halil users 453 Feb 12 2001 dosya_1 -rw-r--r-- 1 halil users 11827208 Jul 23 12:03 dosya_2 -rw-r--r-- 1 halil users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 İlk olarak ay , sonra gün en son boyut bilgisine göre sıralama yapmak için sort komutu aşağıdaki şekilde kullanılmalıdır : [halil@seawolf sort_dizin]$ ls -l | sort -k6,6M -k7,7 -k5,5 total 24436 -rw-r--r-- 1 halil users 453 Feb 12 2001 dosya_1 -rw-r--r-- 1 halil users 11827208 Jul 23 12:03 dosya_2 -rw-r--r-- 1 halil users 11827208 Aug 24 12:56 dosya_4 -rw-r--r-- 1 halil users 1356543 Aug 24 12:51 dosya_3 Örnek 9.15: İkinci alanın bir ve ikinci karakterlerini baz olarak sıralama yapmak için sırala işlemi ikinci alanın birinci karakteri ile başlayıp ikinci karakteri ile biteceğinden –k seçeneğine başlangıç değeri olarak 2.1 , bitiş değeri olarak 2.2 gönderilmelidir. 2.1 ikinci alanın birinci karakteri , 2.2 ikinci alanın ikinci karakterini belirtmektedir. [halil@seawolf sort_dizin]$ sort -k 2,2 sort_karakter linax deneme isletim destegi linux ders [halil@seawolf sort_dizin]$ sort -k 2.1,2.2 sort_karakter isletim destegi linax deneme linux ders Dosyaların Taranması Metin dosyaları arasında istenilen paternleri aramak için grep komutu kullanılmaktadır. Grep komutu dosyalar üzerinde istenilen metin parçasını arar ve bu metin parçasını içeren satırları standart çıkışa kopyalar. Temel kullanım şekli aşağıdaki gibidir : grep [seçenekler] patern [dosya] Dosya ismi verilmediği takdirde verilerin standart girişten okunacağı varsayılır. Bu sayede Unix boruları kullanılarak bir komutun çıktısında istenilen bir metin parçası aranabilir. Grep ile kullanılan temel seçenekler aşağıdaki gibidir : ¾ -l : Metin parçasının geçtiği satırların gösterilmesi yerine metin parçasının geçtiği dosyaların isimleri gösterilir. Çoğunlukla bir dizin içinde belirli bir kelimeyi içeren dosyaların bulunması işlevinde kullanılır. ¾ -c : Metin parçasının geçtiği satırların gösterilmesi yerine , metin parçasının bulunduğu satır sayısının gösterilmesini sağlar. ¾ -i : Büyük – küçük harf ayrımını ortadan kaldırır. ¾ -f dosya : Aranması istenen metin parçacıklarını bir dosyadan okumak için kullanılır. ¾ -n veya --line-number : Bulunulan satırın dosyadaki satır numarası da gösterilir. ¾ -e metin_parçası veya –regexp=metin_parçası : Metin içinde aranması istenen metin parçası istendiği takdirde bu seçenek ile de verilebilir. Özellikle ‘ – ‘ ile başlayan metin parçacıklarında kullanılmalıdır. ¾ -v : Aranan metin parçasının bulunmadığı satırları gösterir. ¾ -x veya --line-regexp : Tam bir satır olarak metin parçasını içeren satırların bulunmasını sağlar. ¾ -A satır_sayısı : Bulunan satırdan sonra istenilen satır sayısı kadar satırın bastırılmasını sağlar. ¾ -B satır_sayısı : Bulunan satırdan önce istenilen satır sayısı kadar satırın bastırılmasını sağlar. ¾ -r : Rekürsif arama için kullanılır. Aranması gereken dosya bir dizin ise ve –r seçeneği kullanılmış ise grep dizinin içindeki tüm dizin ve dosyaları da tarar. ¾ -d hareket : Grep programının bir dizine rastladığında yapması gereken hareketi ayarlamak için kullanılır. Varsayılan hareket “read” yani okumadır. Bu işlem bazı dosya sistemleri tarafından desteklenmemektedir. Bu durumda grep programı hata verecektir. Eğer hareket olarak “skip” değeri atanırsa grep hiç bir hata vermeden dizinleri atlayacaktır. Eğer hareket olarak “recurse” verilirse grep dizinin içindeki dosya ve dizinleri rekürsif olarak tarayacaktır. ¾ -n veya --no-filename : Birden fazla dosya arandığı zaman grep programı metin parçasını bulduğu satırı bastırmadan önce , satırı bulduğu dosya ismini gösterir. Bu seçenekle bu özellik kapatılır. ¾ -a veya --text : Grep programı aranan metin parçasını binary bir dosyada bulduğu takdirde bulunan satırı göstermek yerine kullanıcıya aranan metin parçasının bir binary dosyada bulunduğu bildirir. Grep’in binary dosyalarda da bulduğu satırları göstermesi için bu seçenek kullanılmalıdır. ¾ -w veya --word-regexp : Aranan metin parçasının kelime olarak bulunduğu satırların seçilmesi için kullanılır. Örnek olarak , aranan metin parçasının “linux” olduğu durumlarda “linux sistemi” arama kriterine uyarken “linuxun komutları” arama kriterine uymamaktadır. Grep Programları Grep programı verilen paterni işleme bakımından 3 farklı yöntem kullanmaktadır. Grep programının eski sürümlerinde her yöntem için bir program gelirken , yeni sürümlerinde tüm işlevler tek bir program ile yapılmaktadır. Grep programı –G veya --basic-regexp parametreleri ile çağırıldığı , veya diğer metotlar için geçerli olan seçenekler kullanılmadığı durumlarda , patern klasik regüler ifade olarak ele alınır. Grep programı –E veya --extended-regexp seçenekleri ile çağırıldığında , veya egrep komutu verildiğinde patern genişletilmiş regüler ifade olarak ele alınır. Grep programı –F veya --fixed-strings seçenkleri ile çağırıldığında , veya fgrep komutu verildiğinde patern sabit katar olarak ele alınır. GNU grep programı kullanıldığında temel regüler ifade veya gelişmiş regüler ifade kullanımı arasında fonksiyonel farklılıklar bulunmamaktadır. Egrep programı ile yapılan aramalarda bulunan sonuçlar , grep ile yapılan aramalarda da bulunabilmektedir. Diğer grep sürümlerinde ise egrep programı , grep programından daha güçlüdür. Regular Expressions Regüler ifade ile belirtilen temelde katar kümeleridir. Katar kümeleri oluşturulurken kullanılan özel karakterler sayesinde birden fazla katar bulunabilir. Özel anlamı bulunmayan karakterler sadece kendileri yerlerine kullanılırlar. Tanımlı olan özel karakterler özel işlevleri yerine kendileri olarak kullanılmak istendikleri zaman ters slash “ \ ” karakteri ile birlikte kullanılmak zorundadırlar. Köşeli parantezler “[] “ arasında bulunan karakter listesi , o listedeki herhangi bir karakteri eşleştirir. Eğer karakter kümesi “^” karakteri ile başlıyor ise küme içinde tanımlanan karakterler dışındaki karakterler eşleştirilir. Örnek vermek gerekirse ‘[abcd]’ ile belirtilen regüler ifade a,b,c veya d harflerinin herhangi biri ile eşleşir. ‘[1234567890]’ ise herhangi bir tek basamaklı sayı ile eşleşir.İstendiği takdirde ASCII karakterler için “-“ karakteri kullanılarak bir bölge tanımı yapılabilir. Örnek vermek gerekirse ‘[a-z] ‘ ile a’dan z’ye kadar olan harflerden herhangi biri ile eşleşilebilir. İstendiği takdirde regüler ifade tanımları içinde karakter kümeleri de kullanılabilir. Karakter sınıfları LC_CTYPE çevre değişkeni ile belirtilen dile göre değişebilmektedir. Eğer LC_CTYPE değişkenine hiçbir şey atanmamış ise varsayılan olarak POSIX karakter sınıfları kullanılır : Temel karakter sınıfları ve içerikleri aşağıdaki gibidir : ¾ [:alpha:] : Herhangi bir harf yerine geçmektedir. ¾ [:digit:] : ‘0 1 2 3 4 5 6 7 8 9 ‘ rakamlarından biri yerine geçmektedir. ¾ [:alnum:] : Hem [:digit:] hemde [:alpha:] karakter sınıflarını kapsamaktadır. Bu iki sınıftan birine dahil olan karakterlerin yerine geçmektedir. ¾ [:lower:] : Küçük harf karakterlerin yerine geçmektedir. ¾ [:upper:] : Büyük harf karakterlerin yerine geçmektedir. ¾ [:blank:] : Boşluk ve tab karakteri yerine geçmektedir. ¾ [:punct:] : ` ! “ # $ % & ‘ ( ) * + , - . / : ; < > = ? @ [ ] \ ^ _ { } | ~ karakterleri yerine geçmektedir. ¾ [:graph:] : [:alnum:] veya [:punct:] olamayan karakterlerin yerine geçmektedir. ¾ [:xdigit:] : ‘abcdefABCDEF0123456789’ karakterleri yerine geçmektedir. Bazı karakterlerin özel işlevleri bulunmaktadır. Bu karakterler ve işlevleri ağağıdaki gibidir : ¾ . : Nokta karakteri herhangi bir karakter yerini tutabilmektedir. ¾ ¾ ¾ ¾ ^ : ^ krakteri satır başı anlamına gelmektedir. Köşeli parantezler [] arsında ilk karakter olarak kullanılırsa , parantezler arasındaki karakterler dışındaki karakterlerin eşleştirilmesini sağlar. Eğer köşeli parantezler içinde ilk karakter değil ise hiç bir özel işlevi yoktur. $ : Dolar karakteri satır sonu anlamına gelmektedir. \< : Kelime başı anlamına gelmektedir. \> : Kelime sonu anlamına gelmektedir. Regüler ifade tanımlarında tekrar öperatörü olarak adlandırılan özel karakterler de kullanılabilir : ¾ ? : Kendinden önceki öğe seçime bağlıdır ve en fazla bir defa eşleştirilir. ¾ * : Kendinden önceki öğe sıfır veya daha fazla eşleştirilebilir. ¾ + : Kendinden önceki öğe en az bir kere eşleşmelidir. ¾ {N} : Kendinden önceki öğe tam olarak N kere eşleşmelidir. ¾ {N,} : Kendinden önceki öğe N veya daha fazla kez eşleşmelidir. ¾ {N,M} : Kendinden önceki öğe en az N , en çok M defa eşleşmelidir. Ayrıca \w sembolü [[:alnum:]] ile , \W sembolü de [^[:alnum]] ile eşdeğerdir. Yani \w sembolü ile kelime içinde bulunabilecek karakterler belirtilirken , \W sembolü ile de kelime içinde bulunamayacak karakterler belirtilir. Regüler ifade tanımları istendiği takdirde “ | “ karakteri ile “veya (or)” işlevi ile birleştirilebilir. Bu durumda birleştirilen tanımlardan birine uyan bilgiler , birleştirilmiş tüm tanıma uymuş olacaktır. Özel karakterlerin çoğu köşeli parantezler arasında kullanıldığında işlevlerini kaybederler. Bazı karakterler için özel yerleştirme kuralları vardır. “ ^ ” karakteri köşeli parantezler arasında ilk karakter olduğu takdirde özel bir anlam taşıyacaktır. Bu yüzden bu karakterin kendi seçilmek istendiğinde ilk karakter olarak konulmamalıdır. ‘ –‘ karakteri de en son karakter olarak kullanıldığı durumda özel anlam taşımamaktadır. ‘ ] ‘ karakterinin kendisi seçilmek isteniyor ise bu karakter listenin ortasında bir yere konulmalıdır. Parantezler () gruplama yapmak için kullanılırlar. Aynı zamanda parantezler arasında tanımlanan regüler ifade tanımlarına uyan katarlara regüler ifade tanımında referans verilebilir. \N ile N. Parantezler arasındaki regex’e uyan katar belirtilir. Örnek 9.16: Linux İşletim Sistemi öğrenmek için Linux Sertifika Programı Geleceğin isletim sistemi olamaya aday Linux isletim sistemi Linux Sertifika Programı İçerikli dosya üzerinde aşağıdaki regexleri göz önüne alalım. (\w+)[[:blank:]]+.*\1 (\w+) tanımı ile kelime karakterlerinden oluşan ve en az bir karakter içeren bir katar tanımlanmaktadır. [[:blank:]]+ tanımı ile boşluk veya tab karakterlerinden herhangi birinden en az bir tane olması gerektiği belirtilmiştir. .* tanımı ile de boşluktan sonra istenilen sayıda istenilen karaktarlerden oluşan katarların bulunabileceği belirtilmiştir. \1 ifadesi ile de (\w+) ifadesine uyan katar referans edilmiştir. [halil@atlas ders_ornek]$ egrep -w '(\w+)[[:blank:]]+.*\1' regex Linux İşletim Sistemi öğrenmek için Linux Dersi Geleceğin isletim sistemi olmaya aday Linux isletim sistemi -w anahtarı ile bulma işleminin sadece bulunan katar tam kelime olduğu takdirde doğru olması sağlanmıştır. Bu anahtarın kullanılması yerine arama kriterlerine kelime başı “ \<” ve kelime sonu “ \>” karakterleride eklenebilir. [halil@atlas ders_ornek]$ egrep '\<(\w+)\>[[:blank:]]+.*\1' regex Linux İşletim Sistemi öğrenmek için Linux Dersi Gelecegin isletim sistemi olmaya aday Linux isletim sistemi -w anahtarı ile arama yapıldığı durumda (\w+) tanımına birinci satır için Linux , isletim kelimeleri seçilmektedir. –w anahtarı kaldırılıp , kelime başı karakteri olmadan yapılan aramalarda üçüncü satırda kurala uymaktadır. Bu durumda (\w+) tanımı ile birinci satır için Linux , ikinci satır için in , üçüncü satır için a katarları seçilmektedir. Eğer kelime sonu karakteride arama tanımından kaldırılacak olursa , birinci satır için Linux , ikinci satır için e , üçüncü satır için i katarları secilecektir. Örnek 9.17 : Tekrar öperatörlerinin kullanımı aaaabbbbbcccccddeeee şeklinde bir satırımız olduğunu düşünelim. a*b*c*d*e* regex’ini ele alırsak. Bu regex sayesinde tüm satır için eşleştirme yapılmış olur. Çünkü her harf için sıfır veya daha fazla tekrara izin verilmektedir. Bu durumda her karakterin sıfır kere tekrarına izin verildiğinden boş satırlarda bu regex için uygundur. Boş satırların uygunluktan çıkarılması için herhangi bir karakter için en az bir defa bulunmasını zorunlu kılmak yeterli olacaktır. Yani a+b*c*d*e* regexi kullanıldığı takdirde boş satırlar seçilmeyecektir. [halil@atlas ders_ornek]$ egrep 'a*b*c*d*e*' regex1 aaaabbbbbcccccddeeee [halil@atlas ders_ornek]$ egrep 'a+b*c*d*e*' regex1 aaaabbbbbcccccddeeee [halil@atlas ders_ornek]$ Eğer ab*c*d*e* regex’i kullanılır ise bu dururmda tüm satır eşleşmez. Çünkü bu regex tanımında “a” karakterinin tekrarına izin verilmemiştir. Bu yüzden bu regex ile sadece bir “a” karakteri eşleşir.Diğer b,c,d,e karakterleri için sıfır tekrara izin verildiğinden bu karakterler eşleşmezler. Bu karakterlerden bir tanesi için en az bir adet bulunması zorunlu kılınırsa bu durumda son “a” karakteri ve b,c,d,e karakterleri eşlemeye dahil olurlar. Her iki durumda da aramaya uyan katar bir kelime olmadığı için –w seçeneği ile birlikte eşleşme olmayacaktır. [halil@atlas ders_ornek]$ egrep 'ab*c*d*e*' regex1 aaaabbbbbcccccddeeee [halil@atlas ders_ornek]$ egrep 'ab+c*d*e*' regex1 aaaabbbbbcccccddeeee [halil@atlas ders_ornek]$ egrep -w 'ab+c*d*e*' regex1 [halil@atlas ders_ornek]$ egrep -w 'ab*c*d*e*' regex1 a{2}b*c*d*e* tanımını ele alırsak , a karakterinin tam olarak 2 kere , diğer karakterlerin sıfır veya daha fazla eşleşmesi istenmektedir. Bu durumda sadece iki “a” karakteri arama kriterine uymaktadır. b,c,d,e karakterleri eşleşmezler. Bunu önlemek için b,c,d,e karakterlerinden herhangi birinin en az bir defa bulunmasını istemek (Örneğin a{2}b+c*d*e*) yeterli olacaktır. Her iki durumda da bulunan katar tam bir kelime olmadığından –w seçeneği ile eşleşme olmayacaktır. a{2,}b*c*d*e* tanımı ile tüm satır eşleşmektedir. “a” karakteri için en az iki defa bulunaması zorunluluğu getirilmiş fakat en çok ne kadar bulunacağı belirtilmemiştir. Bu sebepten dolayı satırda bulunan 4 a karakteri de eşleşecektir. b,c,d,e karakterleri için sıfır veya daha çok tekrara izin verildiğinden tüm ,bc,d,e karakterleri eşleşmeye dahil olur. Eşleşmeye giren katar bir kelime olduğu için –w seçeneği ile de eşleşme gerçekleşir. [halil@atlas ders_ornek]$ egrep -w 'a{2,}b*c*d*e*' regex1 aaaabbbbbcccccddeeee [halil@atlas ders_ornek]$ Örnek 9.18: Köşeli parantezler arasında tanımlanan karakter dizilerinin kullanımı abcd1234ABCD qwertxyz satırlarından oluşan bir dosyamız olduğunu düşünelim. [a-d] tanımı ile a ile d karakterleri arasında kalan karakterlerden birinin eşleşmesi sağlanacaktır. Bu durumda birinci satırda bulunan “a” karakteri sadece eşleşmeye girecektir. İkinci satırda hiç bir karakter eşleşmeye giremeyecektir. [a-d]{3} regexi kullanıldığı takdirde a ile d arasındaki karakterlerden her hangi biri eşleşmeye girebilecek fakat 3 karakter eşleşme zorunluluğu bulunacaktır. Eşleşmeye dahil olacak 3 karakterin aynı olma zorunluluğu bulunmamaktadır. Bu durumda birinci satırdaki ‘abc’ katarı eşleşmiş olacaktır. [^0-9] tanımı ile rakam olamayan karakterlerin eşleştirilmesi sağlanmaktadır. Bu regex ile iki satırda seçilecektir. Çünkü birinci satırdan “a” karakteri , ikinci satırdan “q” karakteri bu regex ile eşleşecektir. Bu durumda hiç bir kelime eşleşmediği için –w seneği ile satırların hiç biri seçilemeyecektir. [^0-9]* regexi kullanıldığı takdirde yine her iki satır da seçilecektir. Tek fark birinci satırdan ‘abcd’ katarı , ikinci satırdan ‘qwertxyz’ katarı eşleşecektir. Bu durumda ikinci satırda oluşan eşleşme bir kelime olacağından –w seçeneği ile eşleşmesi mümkündür. [halil@atlas ders_ornek]$ egrep '[^0-9]' regex2 abcd1234ABCD qwertxyz [halil@atlas ders_ornek]$ egrep -w '[^0-9]' regex2 [halil@atlas ders_ornek]$ egrep '[^0-9]*' regex2 abcd1234ABCD qwertxyz [halil@atlas ders_ornek]$ egrep -w '[^0-9]*' regex2 qwertxyz [halil@atlas ders_ornek]$ Temel Kabuk Programlama Sisteme Giriş (Logging In) Bir host’a network üzerinden bağlandığınızda, ya da host’a konsoldan Login olmaya çalıştığınızda ilk önce ekranda “login :” yada benzeri bir mesaj belirir. Sistemdeki her terminal portu için “getty” adı verilen bir program aktif olacaktır (Şekil 9.2-a). Şekil 9.2 : (a) Getty programı (b) Kullanıcı adı girişi Bir UNIX sistem eğer kullanıcıların login olmasına izin verecek ise her terminal portu için bir getty programını otomatik olarak başlatır. Kullanıcı 'username' i yazıp 'enter'a basınca getty, username'i login programına parametre olarak geçirerek kontrolü bu programa bırakır. Bu program sisteme giriş (logging) işlemini tamamlar. Login çalışmaya başlayınca (Şekil 9.2-b), ekranda “Password:” string'ini görüntüler ve password 'ü girmenizi bekler. Daha sonra girilen username ve password /etc/password adlı dosyadaki ilgili satırdaki veriler ile karşılaştırarak doğrulanır (Şekil 9.3). Şekil 9.3 : Şifre ekranı. Bu dosya sistemindeki her kullanıcı için bir satırlık bilgi içerir. Bunların içinde username, password, home dizini ve kullanıcı sisteme girdiğinde çalıştırılacak olan kabuk programı bu satırda belirtilmiştir ( yani her satırın son ' : ' karakterinden sonra bildirilen program adı kullanıcının login olduğunda çalıştırılacak olan kabuğun adı ile belirtilen programıdır ). Eğer kabuk programı bölümünde herhangi bir bilgi yoksa /bin/sh olduğu kabul edilir. Örnek 9.19 : sue:fkrI60LrjdkK.:15:47::/usr/sue: pat:.......................:99:7::/usr/pat:/usr/lbin/ksh Şekil 9.4 : Sisteme giriş döngüsü. Burada kabuk ilk örnekte bourne shell ve program /bin/sh, ikincisinde ise belirtildiği için kabuk korn shell ve program /bin/ksh dır. login programı username ve password' ün doğru olup olmadığını kontrol ettikten sonra, çalıştırılacak programın isminide kontrol eder. Çoğu durumda bu /bin/sh 'dir (Şekil 9.4). Diğer durumlarda, bu başka özel tasarlanmış bir programda olabilir. Buradaki ana nokta, bir kullanıcı hesabında, otomatik olarak çalıştırılacak herhangi bir kullanıcı sisteme girdiğinde programın belirtilmesidir. Program olarak en çok seçilen genellikle bir kabuk programıdır (shell). Daha sonra login programı, sisteme giren kullanıcı için bu programı çalıştıracaktır. Shell' de komut çalıştırma shell başlatıldığı zaman, terminalde ' bourne veya bourne-again shell ' ise $ işareti şeklinde bir prompt belirir ve komut girilmesini bekler. Her komut girildiğinde, shell satırı kontrol eder ve isteği gerçekleştirmek için diski tarayarak ilgili programı arar. Eğer programı bulursa kabuk kernel' dan programın çalıştırılmasını ister ve program çalışırsa uykuya dalar ve programın çalışması bitene kadar bekler. Kernel belirtilmiş programı belleğe kopyalar ve çalışmasını sağlar. Belleğe kopyalanmış ve çalıştırılmış program süreç (process) olarak adlandırılır. Eğer program çıkışını standart çıktıya gönderiyor ise ve eğer bu çıkış başka bir programa girdi olarak (pipe) gönderilmemiş ise çıkış terminalde görünür. Aynı şekilde program eğer, girdilerini başka bir programın çıktısından veya bir dosyadan almayacak ise bu standart girişten alacağı anlamına gelir ve girdileri kullanıcının girmesini bekler. Komut çalışmasını bitirdikten sonra kontrol kabuğa geri döner ve bir sonraki komutu bekler. Yani döngü, shell Æ komut Æ shell Æ komut Æ shell şeklindedir. Sistem kullanıcı tarafından terk edildiğinde (+), kabuğun çalışması sona erer ve UNIX system yeni bir getty program çalıştırarak sisteme girecek yeni kullanıcıları bekler (Şekil 9.2-a). Kabuğun sadece bir program olduğunu unutmamak gerekir. Sistem üzerinde hiçbir önceliği yoktur. Yani isteyen herkes kendi shell programını yaratabilir. Bu yüzden çeşitli kabuklar mevcuttur. Bunlara en yaygın olarak, Bourne Shell Korn Shell C Shell Bourne Again Shell Extended C Shell Æ Æ Æ Æ Æ kabukları örnek olarak gösterilebilir. sh ksh csh bash tcsh Stephen R. Bourne David Korn Bill Joy AT&T AT&T BerkeleySD AT&T Kabuğun Görevleri ¾ ¾ ¾ ¾ ¾ Program Yürütme Değişken ve İsim Yerine Koyma Giriş / Çıkış Yönlendirme Çevre Yönetimi Yorumlayıcı Programlama Dili ( Program Execution ) ( Variable and Name Substitution ) ( I/O Redirection ) ( Environment Control) ( Interpreted Programming Language) Program Yürütme Kabuk terminalden girilen tüm programları çalıştırmaktan sorumludur. Her komut satırı kabuk tarafından incelenir ve ne yapılacağına karar verilir. Kabukta komutların yazıldığı satıra komut satırı adı verilir. Kabuk, bu komut satırını tarar ve çalıştırılacak programın adını ve aynı zamanda bu programa gönderilecek olan argümanları belirler. Kabuk program isminin ve argümanların nerede başlayıp nerede bittiğini anlamak için özel karakterler kullanır. Bu karakterler whitespace characters olarak adlandırılırlar. Örneğin yatay-tab, bosluk ve satır sonu karakterleri bu türdendir. Bu karakterlerin birden fazla yanyana olduğu durumlarda kabuk bunların bir tanesini işleme alarak geri kalanını ihmal eder. Örneğin, #mv rje/mazewars games komutu işletileceği zaman kabuk satırın başından ilk boşluk karakterine kadar olan bölümü komutun adı olarak anlar. Bir sonraki boşluk karakterine kadar olan diğer karakterler komutun ilk parametresi olarak algılanır "rje/mazewars". Bu anlamda "games" ikinci argümandır. Daha sonra kabuk bu argumanları mv komutuna parametre olarak verecek şekilde mv komutunu çalıştırır. Bahsedildiği gibi birden fazla boşluk karakteri gözardı edilir. Örnek 9.20 : abc$ echo when do we eat ? when do we eat ? abc$ komutunda, echo programına dört parametre gönderilir. Aslında olan şey, echo komutunun bu boşluk karakterlerini (whitespace) hiç görmemesidir. Çünkü komut yürütülmeden önce, kabuk bu whitespace’ leribir anlamda yutmuştur. Ancak istenirse kabuğun bu karakterleri ihmal etmeyip komuta gönderilen parametrelere bunları dahil etmesi sağlanabilir (Quoting). Kabuklar, yürütülmek istenen komutları yol sistem çerçeve değişkeninin (Path) gösterdiği yollar üzerinde arayarak onları bulmaya çalışır, bulunca çekirdekten (Unix,Linux,Windows,Dos) çalıştırma işleminin başlamasını ister. Ancak bazı komutlar vardır ki, kabuk onları kendisinin nasıl çalıştıracağını bilir. Bu tür komutlara built-in komutlar adı verilir. Bunlara örnek olarak cd, pwd ve echo (son iki tanesi SVR2 ve üstü ekol için geçerlidir). Bu yüzden kabuk komutu aramak için diski aramadan önce komutun built-in bir komut olup olmadığını inceler, eğer durum böyle ise built-in komut çalıştırılır. Aksi taktirde yollar üzerinde komut diskte aranır. Kullanıcı çalıştığı dizindeki bir komutu çalıştırabilmesi için “ ./ “ karakter kombinasyonunu örnek olarak kullanacak şekilde komutu yazması gerekir. # ./ komut Değişken ve İsim Yerine Koyma Herhangi bir programlama dilinde olduğu gibi, kabuk değişkenlere değer atanmasına izin verir. Komut satırında bir değişken karakteri dolar ile başlayan şekilde kullanıldığındakabuk o anda değişkene daha önce atanmış olan değerle değişkenin yerini değiştirir. Kabuk aynı zamanda komut satırında isim yerdeğiştirme (name substitutıon) gerçekleştirir. Aslında, kabuk, komut satırını isim yerdeğiştirme karakterleri olan *, ? yada […] karakterlerini arayarak tarar. Bu işlemi, argümanları ile birlikte programın ismini belirlemeden önce yapar. Örneğin, bir dizindeki ls komutu ile listelenirse şekildeki gibi bir çıktı alınır. $ ls $ echo * Æ ( Tüm dosyaları listele) mrs.todd mrs.todd progl shortcut sweeney progl $ shortcut sweeney $ Aynı dizin içinde echo komutu “echo * “ olarak yürütüldüğünde alınan çıktı aynıdır. Burada kabuk echo komutu çalıştırmadan önce * ile dizindeki tüm dosya ve alt dizin isimlerini yer değiştirerek komut satırına yerleştirir ve herbirini echo’ ya parametre olarak verdikten sonra kernel’ dan echo komutunu parametreleri ile birlikte çalıştırmasını ister. Sonuç ls komutu ile aynıdır. Kabuk hatta bu isimleri alfabetik sıraya dizerek işlemi yürütür, yani komut echo mrs.todd progl shortcut sweeney formuna dönüştürüldükten sonra yürütülür. Burada önemli olan echo komutunun *’ ın farkına varmadan işlemlerin gerçekleşmiş olmasıdır. Baska bir değişle asterisk karakteri echo’ ya parametre olarak gönderilmez ! Giriş/Çıkış Yeniden Yönlendirme Komut satırında, giriş ve çıkış yönlerdirme işlemleride kabuğun sorumluluğundadır. Kabuk komut yürütülmesi gerçekleşmeden önce komut satırındaki ilk komuttan varolan olası yönlerdirme özel karakterlerini tarar. Bunlardan bazıları >, <, >>, << karakterleridir. Şekildeki komut yürütüldüğünde, echo remember to tape backup files > reminder Kabuk > özel çıkış karakterini tanır ve arkasından gelen kelimeyi, standart çıkış (standart output) yani echo komutunun çıktısının yönlendireceği yer, diğer bir değiş ile dosya ismi olarak ( burada ”reminder”) kullanır. Standart çıkış dosyası önceden varolan bir dosya olabilir. Bu durumda içeriği silinerek yeni bilgilerle güncellenir. Dosya yok ise yaratılır. Dosyaya yazma izni yoksa kabuk hata mesajı üretir. Programın kendisi gözönüne alınacak olursa, çıktının nereye gönderileceğini kendisi bilemez. Kendisi normalde standart çıkış olan terminal’ e (ekrana) çıkışını üretir. Ancak çıktının kabuk tarafından bir dosyaya tekrar yönlendirileceğinden haberi asla olmaz. Diğer yönlerdirme özel karakteri olan < içinde durum hemen hemen aynıdır.Örneğin şu komutu inceleyelim. wc çalışmaya başlayınca kendisine iki argüman gönderildiğini anlar. Birinci argüman– 1 dir ki, bu komuta satırların sayısını say anlamına gelir. Ikinci argüman ise satırları sayılacak olan dosyanın adıdır. Böylece wc, users dosyasını açar ve satırları sayarak dosya ismi ile birlikte standart çıkışına (terminal’ e) satır sayısını gönderir. $ wc –l users 5 users $ wc –1 < users 5 $ İkinci durum ise birinciden farklıdır. Kabuk, komut satırındaki özel girdi yönlendirme karakterini bulur ve tanır (burada “<” ). Bu karakteri takip eden sözcük komuta standart girdi olarak verilecek dosyanın adıdır (users). Bu aşamada kabuk komut satırından < users’ ı alarak wc’ ye –1 parametresini tek parametre olarak gönderir ve wc’ yi kernel’ a çalıştırtır. wc çalışmaya başlayınca, kendisine tek argüman (–1) gönderildiği ve bununla ne yapması gerektiğini anlar ancak çalışabilmesi için ikinci argümana da ihtiyacı vardır. Ancak dosya ismi kendisine parametre olarak gönderilmemiştir. Bu durumda varsayılan davranışı olarak standart girişindeki satırları okumaya çalışır. Komutun standart girişi dosyaya yönlendirildiğinden users’ dan satırları sayar ancak aslında users dosyasının satırlarını saydığından haberi yoktur. Bu yüzden komut çalıştırıldığında satırı sayılan dosya ismini görüntüleyemez çünkü kendisi standart girişi sayar (Şekil 2). Komutun bu iki farklı şekilde nasıl çalıştığının anlaşılması, kabuğun yönlerdirme sorumluluğunun anlaşılabilmesi açısından hayati önem taşımaktadır. Diğer bir yönlerdirme olarak pipeline Hookup ele alalım, kabuk bu özel yönlerdirme işaretinide “ | “ (pipe) tanır. Ancak kabuk, > ve < özel karakterlerini komutların çıktılarını dosyalara göndermek ve komut girdilerinide bir kaynaktan komuta yönlerdirmek için kullanılırken, “ | ” özel karakterini bu karakterden önce gelen komutun standart çıktısını bu karakterden sonra gelen başka bir komutun standart girişine yönlendirmek için kullanır. Arkasından iki program beraber (aynı anda) çalıştırılır. Örneğin, $ who | wc –1 komutu yürütüldüğünde, kabuk who ve wc komutlarını ayıran “ | “ (pipe) karakterini tanır ve who’ nun standart çıkışını, wc’ nin standart girişine yönlendirir. Komutlar ayrı anda bu yönlerdirme sonra beraber çalıştırılır. Komutlar çalıştığında , who komutu standart çıkışının, wc komutunun standart girişi, wc komutuda standart girişinin, who komutunun standart çıktısı olduğunu anlamazlar. Çünkü, örneğin wc komutuna argüman olarak dosya adı girilmemiştir, bu yüzden wc standart girişini (–1) parametresi gereği standart girişindeki satırları sayar. Aslında saydığı satırlar, kabuğun yönlendirdiği who komutunun çıktılarıdır ve zaten satırlar halindedir. Çevre Yönetimi Kabuk, kullanıcıya kullanıcının çevre değişkenlerini özelleştirebilmesine yani kendine göre düzenleyebilmesine izin verebilecek bazı komutlar sunar. Bu çevre değişkenlerine kullanıcının ev dizini (home directory), bir komut yazılırken kabuğun görüntüleyeceği karakterler (font) ve bir program çalıştırılmak istendiğinde, komutun aranacağı dizinler listesi (yol-path) örnek verilebilir. Yorumlayıcı Programlama Dili Kabuk, kendi built-in programlama diline sahiptir. Bu dil yorumlanıcı bir dildir. Yani kabuk, birim zamanda bu dilde kullanılan bir satırdaki her ifadeyi analiz eder ve öyle çalıştırır. Bu C, Fortran gibi programlama dillerinden, kabuk yorumlayıcı programlama dilini ayıran bir özelliktir. Öyleki bu dillerde, programlama ifadeleri, program çalıştırılmadan önce, bilgisayarın anlayabileceği makina kodu adı verilen kodlara derlenerek dönüştürülür ve daha sonra çalıştırılır. Yorumlayıcı programlama dillerinden birinde yazılmış bir programın hata ayıklaması (debug) ve üzerinde eklenti yapılması (modify), değiştirilmesi , derlenerek çalıştırılan programlara nazaran daha kolaydır. Ancak, bununla beraber genellikle derlenen eşdeğerlerine kıyasla çalışmaları daha uzun zaman alır. Kabuk programlama dilleri, diğer dillerdekinin çoğunda bulunabilecek birçok özelliğe sahiptir. Bunlara örnek olarak, döngü yapıları, karar verme ifadeleri verilebilir. Bu tür bir dil sürece yönelimli olarak adlandırılır. Bununla bereber, kabuk dilleri, diziler, veri tipleme (data typing) ve built-in aritmetikoperasyonlardan yoksundur. Korn Shell, bu açıdan geleneksel yapısal programlama dillerine çok daha yakındır. Öyleki, kullanıcısına, limitlide olsa veri tipleri (integer’ları ve veri dizilerini içerecek şekilde) ve built-in integer aritmetik operasyonları gerçekleştirmek için imkanlar sağlar. BASH (BOURNE AGAIN SHELL) UNIX için geiştirilen en önemli ve en çok kullanılan kabukların başında tcsh (Extended C-Shell), bash (Bourne Again SHELL), ksh (Korn SHELL), pdksh (Public Domain Korn Shell) gelir. Bash, Bourne Shell’in geliştirilmiş sürümüdür. Tcsh ise C-Shell üzerine eklenen yeniliklerle genişletilmiştir. Unix altında, bash kabuğu diğer benzerlerine nazaran daha fazla özelliğe ve işleve sahiptir. Bir kullanıcı sisteme login olduğu zaman sistem yöneticisi tarafından varsayılan olarak belirlenmiş kabuk programı aktif olur. Daha sonra kullanıcı, istediği kabuğun programını komut satırından çalıştırarak, bu yeni kabuk altında çalışmalarına devam edebilir. Bash kabuğunun kullanıcıya zaman kazandıran en önemli özelliklerinden birisi, komut satırında dosya ve program isimlerini tamamlamasıdır. Komut satırındaki tamamlanmamış bir komut veya dosya ismi yazdıktan sonra TAB tuşuna basılırsa satır tamamlanacaktır. Eğer komut satırındaki karakter kümesiyle başlayan birden fazla komut varsa, bir sinyal sesi ile birlikte sizden yeteri kadar karakteri yazmanızı ister. Ancak sinyal sesi ile birlikte iki kez TAB tuşuna basılır ise o ana kadar yazılmış karakterler ile başlayan tüm komutlar ekranda listelenecektir. ALIASES alias anahtar komutu ile, bir komut için takma isimler yada yapma komutlar oluşturulabilir. Komutu açarak veya genişleterek (expand), tıpkı bir makro gibi çalıştırır. Ancak kesinlikle komut ile yer değiştirmezler (replace). Alias, bir komutu switch’leri ile birlikte tek bir komut olarak kullanabilmek için tanımlanır. abc:/home/username $ alias list = ls abc:/home/username $ list mydata abc:/home/username $ ls mydata abc:/home/username $ Ancak bununla beraber, komutun kendi ismi dahi alias tanımlamak içinde kullanılabilir. Böylesi bir durumda gerçek komut ismi maskelenmiş olur. Örneğin, abc:/home/username $ alias rm=’rm –i’ abc:/home/username $ alias mv=’mv –i’ abc:/home/username $ alias cp=’cp –i’ Alias tanımlamanın yanında, daha önce tanımlanmış alias’lar “unalias” komutu ile kadırılabilirler. abc:/home/username $ unalias rm abc:/home/username $ Bash Çevre Değişkenleri Unix, kabuğunuzu yeniden konfigüre edebileceğiniz değişkenlerini, sisteme girildiği anda önceden ayarlamıştır. Bunların dışında kalanlar kullanıcı tarafından tanımlanmak zorundadır. Anahtar kelimelerin bazıları bu değişkenler için ayrılmıştır. Ancak kullanıcı, bunları kendi özel tanımlamaları için değil, yeri geldiği zaman kullanmalıdır. Bu kelimeler büyük harflerle tanımlanmışlardır. Örneğin HOME değişkeni, system tarafından kullanılır ve kullanıcının ev dizininin path’ini tutar. Diğer özel kabuk değişkenleri sistem tarafından tanımlanırlar ve sistem tarfından bir başlangıç değeri ile atanırlar. Bu tür değişkenlerin kullanıcı tarafından çeşitli amaçlar doğrultusunda değiştirilmesi mümkündür. Örneğin path veya PATH değişkenleri. Tüm bunların dışında sistem tarafından tanımlanmamış değişkenlerde vardır. Bunlar daha çok seçime bağlı özellikler içindirler. Örneğin EXINIT değişkeni Ex ve vi editöru için öntanımlama içerir. Bahsi geçen son tür değişkenler sisteme her girildiğinde yeniden tanımlanmak zorundadırlar. Bu yüzden bunlara “kullanıcı tanımlı özel kabuk çevre değişkenleri” de denir. Genel bir sınıflandırma olmamakla beraber özel kabuk çevre değişkenleri, üç ayrı sınıfta toplanabilir ; ¾ Bash sistem tanımlı özel kabuk çevre değişkenleri ¾ Bash yeniden tanımlanabilir sistem öntanımlı özel kabuk çevre değişkenleri ¾ Bash kullanıcı tanımlı özel kabuk çevre değişkenleri Öntanımlı yada sonradan tanımlanmış olsun, bir kabuk çevre yada normal kabuk değişkeninin kullanılabilmesi için başına $ karakterinin getirilmesi gerekir. “ $ ” işareti burada bir kabuk operatörü gibi çalışır. BASH Sistem Tanımlı Özel Kabuk Çevre Değişkenleri Burada sistem tanımlı özel değişkenlerden üçü HOME, LOGNAME, TZ anlatılacaktır. Bu tür değişkenler sistem tarafından kullanıcı login olduğu zaman tanımlanır ve kesinlikle değiştirilmemelidir. Hepsi tüm taratılacak tüm alt-kabuklar tarafından erişebilecek (export edilmiş) çevre değişkenleridir. ¾ HOME : HOME değişkeni kullanıcı ev dizininin yolunu içerir. Kullanıcıların ev dizini kullanıcı hesabı yaratılırken, sistem yöneticisi tarafından belirlenir ve yaratılır. Kullanıcı Login olduğu zaman ev dizininin yolu bu değişkene otomatik olarak okunur. HOME değişkeni daha çok açık ve tüm yol (absolute path) belirtileceği zaman kullanılır. # ls –al $HOME/reports (# ls –al /home/users/bulent/reports ile eşdeğerdir) ¾ ¾ LOGNAME : Bu değişken bir yolu değil kullanıcı ismini (login name) tutar. Bu değişken kullanıcı isminin yerini tuttuğu için eğer kullanıcı sisteme giriş ismini değiştirmeye karar vermiş ise kullanımı tercih edilebilir. # ls –al /usr/mail/$LOGNAME TZ : Sistemin kullandığı Zaman Dilimini (Time Zone) tutan bir değişkendir. Kullanıcı Login olduğu zaman ayarlanır. TZ, değerini üç ayrı alanda görüntüler, ilk üç harf yerel zaman dilimini (Local Time Zone) temsil eder, sonraki rakam yerel zaman dilimi ile Greenwich Mean Time arasındaki saat farkını gösterir. Takip eden son bloktaki üç harflik kısımda ise yerel günışığından faydalanıldığında geçerli olan zaman dilimi (Daylight Saving Time Zone) bulunmaktadır. Aşağıdaki örnekte, pasifik standart saati, 8 saatlik zaman farkı, pasifik daylight time zone görülmektedir. abc:/home/username $ echo $TZ PST8DDT abc:/home/username $ BASH Yeniden Tanımlanabilir Özel Kabuk Çevre Değişkenleri Yeniden tanımlanabilir özel değişkenler, linux komutlarının yerleri mailbox dosyalarının yerleri ve kullanıcı promptlar da kullanılan semboller hakkında bilgiler içerirler. Basit atama yöntemi ile üzerlerinde değişiklik yapmak mümkündür. Bunların en yaygın kullanımı olanlarına SHELL, PATH, PS1, PS2, MAIL değişkenleri örnek verilebilir. ¾ SHELL : Linux ta, BASH, PDKSH, TCSH kabukları veya herhangi biri, sisteme giriş kabuğu yani Login Shell olarak kullanılabilir. Bu değişken kabuk komut yorumlayıcısının yolunu (path) tutan çevre değişkenidir. bash shell : /bin/bash Bir bakıma bu varsıyalan kabuk olarakda yorumlanabilir. Kabuk programları /bin dizininde bulunurlar. ¾ PATH : Dizin yollarını tutar, bunlar bir ayraç karakteri olan “ : ” karakteri ile ayırılırlar. Aynı zamanda PATH değişkeni home dizininide içerir (içermelidir!). path ve PATH değişkeninde kullanıcı veya sistem komut yürütmek istediğinde kabuğun bu programın çalıştırılabilir dosyasını nerelerde arayacağı bilgisi tutulur. PATH değişkenine bir dizini eklemek için şu yol izlenir, abc:/home/username $ PATH = $PATH : $HOME/mybin abc:/home/username $ export path abc:/home/username $ echo $PATH /usr/bin:/usr/sbin:/home/username/mybin........ abc:/home/username $ Eğer PATH değişkenine yeni dizin ismi ekleyerek yol tanımını güncellemek yerine doğrudan dizin ($ PATH= $HOME/mybin) tanımlaması yapılırsa, var olan yegane yol girilen dizin isminden ibaret kalır. ¾ PS1 ve PS2 : PS1 ve PS2, birincil (primary) ve ikincil (secondary) prompt sembolleridir. BASH sıradan kullanıcısı için primary prompt $’dır. PS1’e yeni bir karakter atanarak bu değiştirilebilir. abc:/home/username $ PS1=”Æ” Æ export PS1 Æ Semboller yerine double quote’lar arsında yazmak suretiyle karakter dizileride (string) kullanılabilir. abc:/home/username $ PS1 =” Please enter a command : “ Please enter a command : export PS1 Please enter a command : ls mydata reports Please enter a command : PS2 değişkeni secondary prompt sembolünü tutar. Bu prompt sirden fazla satır süren komutlar için kullanılır. Varsayılan ikincil prompt (Default secondary prompt) “>” işaretidir. Buda değiştirilebilir. abc:/home/username $ PS2=”@ ” BASH’da, promptu yapılandırmak konfigüre etmek için önceden tanımlanmış programcıklar (mini codes) vardır. Bunları kullanarak saati, isminizi, çalışma dizininizi prompt unuzun bir parçası haline getirebilirsiniz. ¾ \w : geçerli çalışma dizini ¾ \t : geçerli saat ¾ \u : kullanıcı ismi ¾ \! : bir sonraki history sayısı ¾ \d : geçerli tarih ¾ \s : geçerli kabuk programı ¾ \$ : tüm kullanıcılar için (bash)’da prompt sonu (root hariç) ¾ \h : makina ismi PS1 ve PS2 nasıl kullanıldığına örnek olarak /etc/profile dosyasının sembolik bir örneğini verebiliriz, Örnek 9.21: if [ “$TERM”=” ” –o “$TERM”=”unknown” ] ; then TERM=vt100 fi # PS1 = ‘ `hostname` : `pwd ` # ‘ if [ “$SHELL”=”/bin/pdksh ” –o “$SHELL”=”/bin/ksh” ] ; then PS1 = “ !$ “ elif [ “ $SHELL “ = “/bin/zsh” ] ; then PS1 = “ %m : %~%#” elif [ “ $SHELL “ = “/bin/ash” ] ; then PS1 = “ $” else PS1 = ‘\h:\w\$‘ fi PS2=’>’ ignoreeof=10 export PATH DISPLAY LESS TERM PS1 PS2 ignoreeof umask 022 . . . MAIL, MAILCHECK, MAILPATH MAIL değişkeni kullanıcının mailbox dosyasının yol ismini (pathname) tutar. Sistem kullanıcının mesajlarını buraya koyar. Bu değişkende tutulan dosya, mail programının gelen mesajları alarak okuduğu dosyadır. abc:/home/username $echo $MAIL /var/spool/username abc:/home/username $ MAILCHECK değişkeni, yeni mail geldiği zaman kullanıcının ne kadar zaman aralıklarıyla bilgilendirileceği bilgisini saniye olarak tutar. Default olarak 10 dakika yada 600 saniyedir. Örnekte bu sayı 20 dakikaya ayarlanıyor. abc:/home/username $ MAILCHECK=1200 abc:/home/username $ export MAILCHECK MAILPATH değişkeni ise, diğer mailbox dosyalarının (check edebilmeniz için) path’ini tutar MAILCHECK ve MAILPATH, MAIL aksine kullanıcı tanımlı özel değişkenlerdir. abc:/home/username $ MAILPATH=/home/mail/$LOGNAME abc:/home/username $ export MAILPATH OSTYPE Bourne Again Shell’in üzerinde çalıştığı işletim sistemini tanımlayan bir karater dizisinin (String) otomatik olarak atandığı bir çevre değişkenidir. Varsayılan değeri sistem bağımlıdır. abc:$ echo $OSTYPE linux-gnu abc:$ OSTYPE Kullanıcının çalıştırdığı son komutun adını yada atanan çevre değişkeninin değerini gösterir, abc:$ dir deneme backup/_ abc:$ echo $_ dir abc:$ echo $TERM vt100 abc:$ echo $_ vt100 BASH Yeniden Tanımlanabilir Sistem Öntanımlı Özel Çevre Değişkenleri Daha çok kullanıcının geçerli terminal türü (örnek TERM) yada kullandığı editörlerin veya yardımcı programların yapılandırma bilgilerinin (mc) tutan türde değişkenlerdir. Bazıları sistem tarafından öntanımlıdır (örnek TERM), bazıları ise kullanıcı tarafından tanımlanmak zorundadır. İkinci çeşit değişkenler sözkonusu olduğunda, eğer kullanıcı Logini esnasında bu değişkenlerin otomatik olarak tanımlanmış olmasını isterse bunları sistem başlangıç dosyalarında tanımlamalıdır ($HOME/.bash_profile dosyasında tercihen user specific environment and startup programs başlığı altında). Bazıları kabuk operasyonlarını etkinleştirir, diğerleri ise özel yardımcı programlar ile birlikte kullanılmak üzere tasarlanmışlardır (örneğin mc). Örneğin EXINIT, vi ve Ex editörlerinin öntanımlamalarını içerir ¾ CDPATH : Tanımlanmamış olduğunda ve cd komutuna argüman olarak göreceli yol (relative path) ile bir dizin ismi verildiğinde, cd bunu sadece çalışma dizininde arar. Eğer CDPATH değişkeni tanımlanmış ise cd komutu bu şekilde verilen dizin ismini bu dizinler altındada arayacak ve bulursa o dizine geçecektir. abc:/home/username $CDPATH=$CDPATH:/home/username/letters abc:/home/username $ export CDPATH abc:/home/username $ echo $CDPATH :/home/username/letters abc:/home/username $ cd thanks abc:/home/username/letters/thanks $ pwd /home/username/letters/thanks abc:/home/username/letters/thanks $ CDPATH tanımlamalarında ev dizininin absolute path’i yerıne $HOME değişkeninin kullanılmasının faydası vardır. Çünkü system admin kullanıcının ev dizinini değiştirdiği zaman kullanıcının yaptığı tanımlama geçersiz kalır. $HOME/letters ¾ TERM : Değişkeni, geçerli olarak kullanılan terminal ismini tutar. Bir terminale logon yapıldığında, terminalinizin ne olmasını istediğiniz sorulabilir. Verilen cevap TERM değişkenine yazılır ve export (yaratılacak altkabuklarada çevre değişkeni olarak kopyalanır) edilir. Örneğin telnet programı kullanılarak bir uzak sisteme bir linux sistemden bağlanıldığında varsayılan olarak TERM değişkenine linux değeri atanır. MS Windows sistemden bağlanıldığında ise terminal tipi telnet programında TERM değişkeni varsayılan olarak vt100 olduğu için TERM değişkeni bağlantı kurulurken vt100 değeri ile atanır. Kullanıcı isterse bu terminal tiplerini bağlantıdan önce veya sonra istediği gibi ayarlayabilir. abc:/home/username $ echo $TERM vt100 abc:/home/username $ export TERM=xterm abc:/home/username $ echo $TERM xterm ¾ EXINIT : Değişkeni, Ex ve vi editörlerini konfigüre eden komutları tutar. Bu editörleri kullandığınızda, EXINIT değişkenindeki komutlar çalıştırılır. Bu komutlar genellikle bazı özellikleri belirleyen başka komutları çalıştırırlar. abc:/home/username $ EXINIT=’set nu ai’ abc:/home/username $ export EXINIT veya tek satırda, abc:/home/username $ export EXINIT=’set nu ai’ HISTFILE HISTSIZE : HISTSIZE değişkeni, bash ‘da HISTFILE çevre değişkeninde belirlenmiş dosyada, default olarak ne kadar sayıda komutun tutulacağını belirler. Default olarak HISTFILE, bash_history HISTSIZE ise 500 değerine ayarlanmıştır. ¾ Kabuk Özelliklerinin Kontrol Edilmesi Diğer tüm kabuklarda olduğu gibi, BASH içindede çevre değişkenleri çeşitli komutlar ile kontrol edilebilir. Bu komutlardan biri olan “ set ” komutu bu açıdan çok kullanışlıdır. Set komutu ile aktif (-o seçeneği ile) yada pasif (+o seçeneği ile) hale getirilebilen çevre değişkenleri kabuğun çalışma tarzını değiştirebileceğinden önem taşımaktadır. set parametresiz kullanıldığında kabukta o an için geçerli olan tüm kabuk değişkenlerinin bir listesini standart çıkışı olan terminale gönderir. noclobber Bir programın çıktısı “ > ” özel karakteri kullanılarak bir dosyaya yönlendirildiği zaman, eski dosyanın üzerine kayıt yapılma girişiminde bulunulmuş ise kullanıcının uyarılmasını sağlar. Örneğin, kullanıcı ev dizinindeki dosyaların isimlerini bir dosyada saklamak istediğinde, verilen dosya ismi halihazırda o dizinde mevcut olan bir dosya ise bu dosyanın içeriği değişecektir. İşte böyle bir durumda noclobber kabukta “ set –o noclobber ” ile aktif edilmiş ise kullanıcının varolan bir dosyanın üzerine yazmakta olduğu için uyarılır. Aksi takdirde kullanıcı uyarılmaz. abc:/home/username $ set –o noclobber abc:/home/username $ cat preface > myfile myfile : already exists abc:/home/username $ cat preface > !myfile overrides abc:/home/username $ noglob BASH özel *, ? gibi joker karakterlerinin (wildcards), normal karakterler olarak algılanmasını ve yorumlanmasını sağlar. Böylece kabuk, komut satırında kullanılan bu karakterler ile değerlerini yer değiştirmez. Varsayılan olarak noglob geçersizdir. abc:/home/username $ set –o noglob abc:/home/username $ touch answers? abc:/home/username $ ls answers? answers? abc:/home/username $ history Komutu Kullanıcının verdiği son 30 komutun bellekte ve diskte bir dosyada tutulmasını sağlar. Aynı zamanda “ ! ” özel karakteri yardımı ile eski komutların tekrar kullanılabilmesini sağlar. Aslında C-Shell kaynaklanan ve BASH’e entegre edilmiş bir yapıdır. Son komutu tekrarlamak için “ ! ” karakterini, iki önceki komutu tekrarlamak için “ !! ” karakter kombinasyonunu yada kullanmak yada komutu “ ! –2 ” ( !komut_sıra_nosu ) olarak yürütmek gerekir. abc:/home/username $ history 1 cp mydata today 2 vi mydata 3 mv mydata reports Tüm bunların yanında bir karakterle başlayan son komutu, örneğin “ c ” karakteri ile başlayan en son komutu tekrarlamak için, “ !c ” şeklinde kullanılır. ignoreeof Kabuktan (exit) veya sistemden (logoff), CTRL+D tuş kombinasyonu kullanılarak çıkılmasına izin verir kısıtlar. Bazı Unix komutlarına klavyeden (Standart Giriş) veri aktarırken, veri girişinin tamamlandığı komuta bildirilmek amacıyla bu tuş kombinasyonu kullanılır. Eğer ignoreeof ile kabuk terkedilebilecek şekilde bir tanımlama yapılmış ise komut veri girişi sonlandırılırken istenmediği halde kabuk terkedilebilir. set –o ignoreeof ( CTRL+D ile kabuk terkedilemez ) set +o ignoreeof ( CTRL+D ile kabuk terkedilebilir ) Ayrıca ignoreeof çevre değişkeni bir sayı değeri ile birlikte tanımlanır ve CTRL+D kombinasyonu kabuk terk izni verilirse, verilen sayı kadar CTRL+D tuş kombinasyonu kullanıldığında çalışılan kabuk veya sistem terk edilir. $ set +o ignoreeof $ ignoreeof=10 (10 defadan sonra ) fc Komutu Bu komut ile sıra nosu verilen komut edit edilebilir. Aynı anda birden fazla komutu edit etmek mümükündür. abc:/home/username $ fc 4 BASH Başlangıç ve Çıkış Dosyaları Sistem Başlangıç Dosyaları Bash, başlangıç dosyalarını diğer kabuklardan farklı şekilde çalıştırır. Bash’in davranışı, C-Shell ’in her kabuk için belirli isimlerdeki başlangıç dosyaları çalıştırma prensibi ile Bourne Shell’in (sh) minimalist yaklaşımı arasında bir uzlaşma olarak düşünülebilir. Bash kabuk dosyaları kullanıcı sisteme login olduğu zaman veya bir kabuk scripti çalıştırdığı zaman çalıştırır. Bir kullanıcı login olduğu zaman getty bir etkileşimli kabuk çalıştırır (Interactive Login Shell).Bu aşamada PS1, $ işaretine ayarlanır ve kullanıcının program yada script çalıştırmasına izin verilir. Eğer aynı kullanıcı daha sonra bir kabuk script’i çalıştırırsa bu sefer yeni bir bash etkileşimsiz alt-kabuk (Non-Interactive Shell) çalıştırılır. Bash etkileşimli olarak çalıştırıldığında ilk önce /etc/profile dosyasını çalıştırır. Bu dosyadan sonra kullanıcının ev dizininde gizli (hidden) dosya halinde bulunan ~/.bash_profile, ~/.bashrc (dolayısı ile /etc/bashrc), ~/.bash_login, ~/.profile dosyaları arar, bulursa ve dosyalarda okuma izni varsa bu sıra ile çalıştırır. Kullanıcı bir script çalıştırırsa, bash bu script için etkileşimsiz olarak bir alt-kabuk çalştırılacağı için bu yeni alt-kabuk için ilk önce ~/.bashrc ve dolaylı olarak /etc/bashrc dosyaları çalıştırılır. Aslında her zaman bir etkileşimsiz kabuk için fix bir dosya çalıştırılmaz, çalıştırılacak dosya $BASH_ENV değişkenine ismi atanmış olan dosyadır. Ancak bu genellikle ~/.bashrc dosyasıdır. Ev dizinlerindeki başlangıç dosyaları ~/.bash_login, ~/.profile haricinde kullanıcı hesabı ile birlikte yaratılırlar. BASH Login Başlatma Dosyası ~/.bash_profile Bu dosya diğerleri gibi aslında bir kabuk scriptidir. Kullanıcı bazlı bir çevre ve başlangıç dosyasıdır. Dosya, kabuğun yapılandırılması için gerekli çevre değişkenlerinin tanımlamalarını yapan kabuk komutları içerir. Kullanıcı bazında aliaslar ve fonksiyonlar bu dosya içinden çağırılan ~/.bashrc dosyasıyla geçerli kılınır. Bazen sistemde öntanımı yapılmış çevre değişkenlerinin yeni tanımlamalarını (redefine) ve hatta kullanıcı tarafından tanımlanmış özel çevre değişkenlerini içerir. Örneğin loginde, login kabuğu linux komutlarının hangi dizinlerde olduğunu merak eder. Buda bu dosyadaki PATH değişkeni ile tanımlanmıştır. Bunun yanında bu dosya içinde tanımlanmış özel değişkenler diğer altkabuklar tarafından kullanılabilmesi için mutlaka export edilmelidir. Genellikle dosyanın son satırında değişkenlerin bir listesi export edilir. Bu dosya her kullanıcının dizininde bulunur, kullanıcının logini esnasında çalıştırılır ve her kullanıcı için kullanıcının kendisi tarafından özelleştirilebilir. Örneğin EXINIT özel çevre değişkeni burada tanımlanabilir. Peki sistem genelinde her kullanıcı için geçerli olan bir profile dosyası var mıdır? # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH:$HOME/bin BASH_ENV=$HOME/.bashrc USERNAME="root" EXINIT= ‘set nu ai‘ export USERNAME BASH_ENV PATH BASH Kabuk Login Başlatma Dosyası /etc/profile Linux sistemin kendine özel bir profile dosyası vardır. Sistem bazlı bir çevre (environment) ve başlangıç (startup) dosyasıdır. Bu dosya sistem genelinde tüm kullanıcılar için ortak kullanılan sistem ayarlarını ve özel çevre değişkeni tanımlamalarını içerir. Örneğin, tüm kullanıcılar için PATH değişkeni /usr/X11R6/bin dizinini içerecek şekilde tanımlanmıştır. Eklenen bu dizin X-Windows komutlarının bulunduğu dizindir. Başka bir örnek olarak sistem kullanıcılarının mail dizinlerini tanımlayan MAIL çevre değişkeni burada tanımlanır. # /etc/profile # System wide environment and startup programs # Functions and aliases go in /etc/bashrc if ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; then PATH="$PATH:/usr/X11R6/bin" fi ulimit -S -c 1000000 > /dev/null 2>&1 if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then umask 002 else umask 022 fi USER=`id -un` LOGNAME=$USER MAIL="/var/spool/mail/$USER" HOSTNAME=`/bin/hostname` HISTSIZE=1000 if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then INPUTRC=/etc/inputrc fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC HISTFILESIZE for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i fi done unset i Kullanıcılar için tanımlanmış sistem bazlı aliaslar ve bir takım fonksiyonlar /etc/bashrc dosyasından burada çağırılır. BASH_ENV özel çevre değişkenide burada belirlenir. ~/.bash_profile ve /etc/profile dosyaları üzerinde bir değişiklik yapılırsa bunun sistemden çıkmadan geçerli olması için komut satırında “.” (nokta komutu) kullanılarak dosya ismi parametre olarak verirlir, $ . .bash_profile $ . /etc/profile yada $ source .bash_profile $ source ./etc/profile BASH Kabuk Başlangıç Dosyası ~/.bashrc Kullanıcı bazlı bir kabuk başlangıç dosyasıdır. BASH ‘de bir script çalıştırıldığında yani etkileşimsiz bir kabuk yaratıldığında ~/.bashrc dosyası çalıştırılır. Eğer kabuk bir login kabuğu ise (Login Shell) bu dosya, ~/.bash_profile dosyası ile birlikte çalıştırılır. Eğer BASH ‘e başka bir kabuktan girilmiş ise otomatik olarak çalıştırılır. Böylece içerdiği çevre ve alias tanımlamaları geçerli olur. Sistem üzerinde bir takım özellikleri (features) aktif yada pasif hale getiren set komutu ile ilgili tanımlamalarda bu dosyada yapılır . $ set –o ignoreeof Bu şekilde kullanılan alias ve özellikler bu kabukta yerel kalır (localized). Oysa bu tanımlamalar .bashrc dosyasında yapılırsa yaratılacak tüm kullanıcı kabuklarında geçerli olacaktır. Bu yüzden aliaslar ve özellikler burada tanımlanırlar. # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi set –o ignoreeof BASH Kabuk Başlangıç Dosyası /etc/bashrc Linux Sistem bazlı kabuk başlangıç dosyasıdır. Tüm kullanıcılar için gerekli ve geçerlidir. Kullanıcıların BASH Logini esnasında veya bir script çalıştıracağı zaman gerekli olabilecek global aliaslar, özellikler ve fonksiyonlar içerir . Kullanıcının kendi kabuk başlangıç dosyası bu dosyayı çağıracak komutlar içerir . BASH Kabuk Çıkış Dosyası ~/.bash_logout Kullanıcının bir alt-kabuğu yada logın kabuğunu terk edeceği zaman çalıştrılan bir dosyadır. Çevre değişkeni tanımlamaları yerine sistem kapanışına benzer prosedürler yürüten komutlar içerir. Logout ile geri alınması gereken değişiklik ve özellikler burada yapılır. Özellikle son kullanıcının ekranında logout sonrası diğer kullanıcıları görebileceği bilgiler kalmasını engellemek için ekran temizleyen komut (clear) burada kullanılabilir. Ayrıca kullanıcının çalıştırdığı programların kullandığı geçeçi dosyalar (temp) burada verilecek komutlar ile temizlenebilir. Örnek 9.22: # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # are we an interactive shell? if [ "$PS1" ]; then if [ -x /usr/bin/tput ]; then if [ "x`tput kbs`" != "x" ]; then # We can't do this with "dumb" terminal stty erase `tput kbs` elif [ -x /usr/bin/wc ]; then if [ "`tput kbs|wc -c `" -gt 0 ]; then # We can't do this with "dumb" terminal stty erase `tput kbs` fi fi fi case $TERM in xterm*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' ;; *) ;; esac [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " if [ "x$SHLVL" != "x1" ]; then # We're not a login shell for i in /etc/profile.d/*.sh; do if [ -x $i ]; then . $i fi done fi fi Kabuk Export Çevre Değişkenleri ve Script Kabukları Bir kabuk programı çalıştırdığınızda, kendi öz kabuğuna sahip yeni bir process başlatırsınız. Bu shell içinde değişkenler tanımlayabilir, UNIX komutları işletebilirsiniz ve hatta diğer scriptleride çalıştırabilirsiniz. Eğer başka bir sript çalıştırırsanız (o anda çalışan script içinde) parent script beklemeye geçer ve kontrol child scripte bırakılır. Diğer script’teki tüm komutlar, kontrol parent script’e geçene kadar işletilir. Yani çağıran script ve çağrılan script şeklinde düşünülebilir. Aynı zamanda, script içinde tanımlanmış her değişken, script’in çalıştığı kabuktada tanımlanacaktır. Ancak yalnızca o scipt’in kabuğu tarafından bilinir. Yani değişken tanımlamaları kendi kabuklarına göre local (yerel) olurlar. Diğer bir deyişle, değişken kabuğun içine gizlenmiştir. Bununla birlikte , scipt’in içinde bir değişken tanımlayıp bu değişkeni script’in çağıracağı diğer script’lerdede geçerli olmasını isteyebilirsiniz. Bunu direkt olarak yapamazsınız, fakat değişkeni export ederek alt kabuklardada geçerli olmasını sağlayabilirsiniz. Export edilmiş değişkenler global değişken olarak algılanmamalıdırlar. Bir shell, asla bir değişkeni diğer altkabuklara paylastırmaz. Bunun yerine değişkenin bir kopyası her yeni altkabuk için parent shell’deki ilk değeri ile yeniden yaratılır. Export edilmiş değişkenler atanmış olan değerlerini export ederler, kendilerini değil!!. Yani çağırılan script’in çalıştığı kabukta çağıran kabukta iken export edilmiş bir değişken varsa ve bu değişkenin değeri değiştirilirse, global değişkenlerin aksine üst kabuktaki export edilmiş değişkenin değeri değişmez. BASH Programlama Bash kabuk programlama-dilimsi yetenekleri karmaşık kabuk programları yaratmaya olanak tanıyan bir yapıya sahiptir. Bir kabuk programı, Linux komutlarını belirli ve özel bir görevi yerine getirmek üzere biraraya toplar. Scriptler içinde değişkenler tanımlanabilir bunalara değerler atanabilir, öyleki bu kullanıcı ile etkileşimli olarak kabuktan parametreler alarak çalışabilir. Kabuk scriptlerinde döngüler ve kontrol yapıları kullanılarak linux komutları tekrar edilebilir yada kullanıcının seçimine göre hangi komutun çalıştırılacağı belirlenebilir. Tüm bunlar basit bir metin editörü kullanılarak gerçekleştirilebilir. Bununla beraber, Bash kabuk programları yazmak için bir çok programlama araçları sunar. Hatta programlar birden fazla scrip dosyası üzerine dağıtılabilir. Eğer bir scriptin ilk satırının ilk harfi boşluk karakteri ise bu script sadece BASH ve PKDSH ‘de (Public Domain Korn Shell) çalışır. Eğer bu işaret # ise sadece TCSH ‘da çalışır. Ancak ilk karakterler #! ve hemen arkasından scriptin çalışması istenilen kabuğun yolu (path) verilirse, script hangi kabuk üzerinde çalıştırılırsa çalıştırılsın, bu şekilde scriptin ilk satırında belirtilen kabukta çalıştırılır. Örneğin #!/bin/bash şeklindeki bir bildirim scriptin BASH scripti olduğunu ve BASH tarafından yorumlanacağını belirtir. Bu şekildeki bir script TCSH altında çalıştırıldığında ise yaratılacak olan bash alt-kabuğunda (sub-shell) çalışacak ve çalışması bitince TSCH ‘a geri dönülecektir. Bir scripti çalıştırmanın iki yolu vardır, birincisi scripti source yada dot ( . nokta) komutuna parametre olarak vermek yada komutu chmod komutu çalıştırılabilir kılmaktır. Örnek 9.23: $ chmod u+x helloprog yada $ . helloprog Kabuk Scriptleri : Komutlar ve Yorumlar Bazı durumlarda scriptler içinde açıklama ve yardım amaçlı satırlar kullanmak faydalı olur. Bu satırlar yorum satırları olarak adlandırılır ve # karakteri ile başlarlar. Scriptin hangi kabuğa ait olduğu belirten #! Karakterleri ise yorum satırı değillerdir ve kabuğun çalıştırılabilir dosyasının yolu ile tamamlanmalıdır #!/bin/bash. Giriş Çıkış (echo read) Bir script içinde işlemler sonucunda elde edilen çıktı standart çıkışa gönderilmek echo komutu, standart girişten veri okuyarak değişkenlere atamak için ise read komutu kullanılır. Veri sayı yada karakter dizisi olabilir. Read komutu bir değişken için satırı okur, kullanıcının bir değişken için etkileşimli olarak veri girmesini sağlar ve standart girişteki bir newline karakterine kadar satırı okur. echo : Bir sayı giriniz read sayı echo girilen sayı : $sayı echo : Bir karakter giriniz read a echo girilen karakter : $a echo ve read komutları scriptlerde genellikle beraber kullanılır. Scriptlerde yada yada komut satırında özel karakterler ancak tek tırnak (Single Qoute) içine alınmadığı durumlarda kabuk tarafından işlem görürler. Çift tırnak (Double Quote) içine alınan özel karakterler işlem görürler. Örneğin, greetvar scriptinde çift tırnak kullaıldığı için $greeting değeri ile yerdeğiştirilmiştir. greetvar Örnek 9.24: echo : please enter a greeting read greeting echo “The greeting you entered was $greeting” Kullanıcı girişleri (input) ile ilgilenirken, kullanıcının özel karakterler kullanma olasılığı da göz önüne alınmalıdır. Eğer UNIX komutu özel karakterler ile kullanılıyorsa (wildcards), bu özel karakterler script içinde veya dışında, ancak Single Quote içine alınmaz ise işlem görürler yani kabuk tarafından değerleri ile yer değiştirilirler. Eğer bir değişkenin değeri özel karakter ise ve bu değişkenin değeri bir $ ile gösteriliyorsa (başlıyorsa) bu kabuk tarafından hesaplanır (işletilir) yani yer değiştirilir (expand). Ancak bunu ‘ ‘ (Single Quote) içine koyarsanız kabuk tarafından işlem görmeyecektir. Örneğin “$..”, greetvar scriptinde $greeting “ “ içine yerleştirildiği için kabuk tarafından işlem görecektir. Bununla birlikte kullanıcı girdiği bir karakter ile başlayan dosyaların listelesini veren bir script yazmak isterse ( yada bunun gibi işlemler yapan) ozaman, kullanıcının girdiği herhangi bir özel karakterin kabuk tarafından işlem görmesi gerekir. Mesela, aşağıdaki örnekte $fref, “ “ içine alınsa bile kabuk bu değişkene verilen değerleri önce çözümler ve sonra değişkene sırayla atar. listfiles Örnek 9.25: echo : please enter a file reference read fref echo The files you requested are : $fref Normal olarak bir kabuk scripti bir seri komut içerir. Bununla birlikte komutlarla beraber data girmenizde gerekebilir. Yada satırlar boyu datayı kabuk script’inin içine yazmanız gerekebilir. Bu veri script’ in bir komutu tarafından kullanılacaktır. << operasyonu bu işlemi gerçekleştirir. Ancak veri script’ in içinde olmalıdır başka bir dosyada değil. << yeniden yönlendirme operasyonu (redirection operation), komuttan sonra yerleştirilir. << arkasından gelen aynı satırdaki karakter ya da karakter dizisi EOF karakteri olarak kullanılabilir. Eğer bu kullanılmaz ise Ctrl + d ile sonlardırma yapılabilir. Takip eden satırlar komut için veri girdilerini içerir. Örnek 9.26 : mail Aydın << myend Did you remember the meeting Halil myend Script Komut Satırı Argümanları Unix komutları gibi bir kabuk script’i argümanlar alabilir. Bir script’ i çalıştırdığınız zaman komut satırından argüman girebilirsiniz. Bu argümanlar script içinde $ operatörü ve komut satırındaki pozisyonu ile belirtilir. Komutun kendisi $0 (komut satırındaki ilk kelime) dır argümanlar ise $1, $2,..... şeklinde komuttan sonra gelirler. Argüman değişkenleri readonly değişkenlerdir. İlkdeğer verildikten sonra bunlara değer atamazsınız (script içinde). Bu anlamda argüman değişkenleri sabitler gibi çalışırlar ve bunlar komut satırı argümanları ile belirlenirler . Ancak bu argumanlar içinde özel karakterler varsa ve single yada double quote içine alınmamış iseler değerleri işlenerek bir argümana atanırlar. greetargs Örnek 9.27 : echo “The first argument is : $1” echo “The second argument is : $2 Özel argümanların bir seti komut satırı argümanlarını değişik bir şekilde kullanmanıza olanak sağlar, örneğin; ¾ $* : Komut satırındaki tüm argumanlar anlamına gelir ¾ $@ : Komut satırındaki tüm argümanlar anlamına gelir ¾ $# : Komut satırındaki argüman sayısı analamına gelir ¾ $@, $* : Komut satırındaki tüm argümanlar, $@ ve $* arasındaki fark for-in kontrol yapısında ortaya çıkar. $@ komut satırındaki tüm argümanlar anlamına gelir ancak herbirini tek tek quote içine alabilme imkanı vardır. Örnekte komut satırı argümanları önce $*, sonra $@ kullanılarak, argüman sayısı $# kullanılarak listeleniyor. sargs Örnek 9.28: echo $* echo $@ echo “There are $# arguments” Aritmetik Kabuk Operasyonları (Let) BASH kabığunda matematiksel işlemlere büyük sıralamalar getirilmiştir. Tam sayı değişkeni dışında matematiksel değişken kullanmak üzere bu işlemler için geliştirilmiş ve kolaylıklar sağlayan awk veya bc kullanılabilinir. Aritmetik işlemler için eval komutu ya da bash ile yerleşik (built-in) let komutu kullanılabilir. Let “değişken = aritmetik işlem” $ let “çarpım = 2*7” $ echo $ çarpım 27 $ Eğer operandlar arasında boşluk karakterleri kullanılmak istenirse Double Qoute içine alınmalıdır . Aynı zamanda nümerik sayılar arasında kıyas yapmak için ilişkisel operatörler kullanılabilir. Örneğin bir sayı diğerinden küçük mü ? ilişkisel operatörler daha çok kontrol yapılarında (çevrimler ve koşul mekanizmaları) kullanılır. helloprog programı, hello yazısını 3 kez basıyor burada çevrimi kontrol etmek için let kullanılmıştır . helloprog again = 1 while let “again < =3” do echo $ again Hello let “again = again+1” done Bu scriptte, let “again <=3” ifadesinde, let “küçük eşit” operasyonu çevrimi kontrol etmek için kullanılmıştır. again değişkenini arttırmak için let “ again = again+1” kullanıldı. Burada again arttırıldığında hesaplanmasına gerek olmadığına, yani again değişkenin önünde $ olmadığına dikkat edin. let, ifadelerde kullanılan değişkenleri otomatik olarak hesaplar. Kontrol Yapıları Kabuk scriptlerinde linux komutlarının çalışması kontrol yapıları kullanarak kontrol edilebilir. Kontrol yapıları komutların tekrarlanmasına, diğerlerinin içinden seçilebilmesine olanak sağlar. Bir kontrol komutu iki ana parçadan oluşur test ve komutlar. Eğer test başarılı ise komut yada komutlar çalıştırılır. Böylece komutun çalıştırılıp çalıştırılmayacağı kontrol edilebilir. İki çeşit kontrol yapısı mevcuttur, döngüler ve karar mekanizmaları. Döngüler komutları tekrarlarken, karar mekanizmaları belirli koşullar sağlandığında komutu çalıştırır. BASH üç adet döngü yapısına sahiptir, while, for ve for-in. Bununla beraber if ve case iki koşul mekanizması olarak sayılabilir. while ve if daha çok genel amaçlı olarak kullanılırken case daha çok etkileşimli menüler için kullanılır. Test Komutu İki değeri kıyaslamak için sık sık kullanılır. test kontrol yapılarında kullanılmasına rağmen bir ilişkisel operatör değil bir komuttur. test komutu iki değeri karşılaştırır ve sonuç doğru ise 0 yanlış ise 1 değerine geri döner .test komutu ile sayıları karakter dizilerini karşılaştırmak ve mantıksal operasyonlar yapmak mümkündür. Test komutu aynı zamanda komut oalrak köşeli parantez ile kullanılabilir . test value – option value test komutu çıkış olarak başarılı ise 0 test string = string yanlış ise 1 değerini üretir. $ test 5 –eq 3 $ echo $? 1 $ num = 5 $ test $num –eq 10 $ echo $? 1 $ $ num = 5 $ [ $num –eq 10 ] $ echo $? 1 $ Komutun işletilmesi ardından çıkış değeri “$?” değişkeninde tutulur, test komutunun çıkış değeri bu yolla öğrenilebilir . if Komutu if kontrol yapısı komutlar üzerinde koşullar koyar. Koşul bir Linux komutununn geri dönüs değeridir (exit status). Eğer komut başarılı ise 0 yanlış ise 1 sayı değerine geri döner. Genel kullanımı şekildeki gibidir . if Unix komutu then komut1 komut2 else komut1 komut2 fi if yapısı if anahtar sözcüğü ile başlar ve fi ile biter . if ardından gelen Linux komutu çıkış durumu herzaman işletilecek olan komuttur. Bu komuttan sonra then anahtar sözcüğü ve arkasından diğer komutlar gelir. Çoğunlukla, Linux komutunun başarılı olup olmamasına bağlı olarak iki alternatiften birisini seçmek gerekir. else anahtar sözcüğü bu iş için kullanılır . Sentaks if-then-else-fi şeklindedir. elif yapısı bir else den sonra başka bir if yapısının kullanılması esnasında tercih edilebilir ve iç içe gömülü if yapıları bu şekildedir. Mantıksal Komutlar Mantıksal komutlar Linux komutları arasında mantıksal operasyonlar yürütmeye olanak tanır. Mantıksal AND (&&) operasyonunda eğer iki komutun çıkış durumu da başarılı ise mantıksal and başarılı olur. Mantıksal OR ( || ) ise, iki komuttan birisi başarılı ise doğru sonuç üretir. Kontrol yapılarında sıkça kullanılırlar. Genel kullanım, command && command command || command şeklindedir. Case Kalıbı case yapısı mümkün alternatifler içinden bir tanesi seçmek amacıyla kullanılır. Seçim bir değeri mevcut paternler ile kıyaslayarak yapılır . Her mümkün değer bir seri operasyon ile ilişkilendirilmiştir. Eğer bir eşleşim olursa, ilişkili operasyon gerçekleştirilir. case yapısı case anahtar sözcüğü ile başlar, incelenecek (hesaplanacak) bir karakter dizisi ve in anahtar sözcüğü ve bir seri patern ile devam eder ve esac ile biter. Her patern birbirinden çift noktalı virül ile ayrılmalıdır ( ;; ) . Paternler herhangi kabuk özel karakterlerini içerebilir ( *, [], ?, | ). Tüm bunların yanında case yapısı * karakteri ile gösterilen bir varsayılan patern içerir. Bu patern hiçbir eşleşme olmadığı zaman kullanılır. Genel kullanım aşağıda gösterilmiştir. case string in pattern ) commands ;; pattern ) ;; *) default commands ;; esac Döngüler BASH kabuğu linux komutları için üç adet döngü kontrol yapısına sahiptir. Bunlar while, for-in, for döngü yapılarıdır. while ve until komutları linux komutu üzerinde test gerçekleştirirken, for-in ve for herhangi bir test gerçekleştirmez. While Döngüsü while döngüsü komutları tekrar eder ve while anahtar sözcüğü ile başlar ve bir linux komutu ile devam eder. Bir sonraki satırdaki do sözcüğü ile başayan blok, done sözcüğü ile biter ve arada linux komutları bulunur. Sentaks aşağıdaki gibidir. Ardından gelen koşul sağlandığı sürece döngü işletilir. while Linux command do commands done for-in Döngüsü Bir liste dahilindeki tüm değerlere sırayla erişim sağlar. for komutundan sonra yeralan liste sırayla kullanılır ve her birisi için döngü çalıştırılır. Listenin sonuna gelindiğinde döngüden çıkılır. Genel kullanım aşağıdaki gibidir. for variable in list of values do command done mylistfor Tdate = ‘date + %D’ for grocery in milk cookies apples cheese do echo “$grocery $tdate” done for-in kalıbı dosyaları yönetmek ve dosyalarla çalışmak için çok kullanışlıdır. Dosya isimleri yaratmak için özel karakterler kullanılabilir. Örneğin, * özel karakteri tüm dosyaları ve dizinleri ve *.c tüm c ile biten dosyaları göstereceği için, for myfiles in * do command done for Kalıbı for yapısı değer listesi olmadan kullanılırsa komut satırındaki değer listesini argümanlar olarak ele alır. for yapaısında kullanılan değişken otomatik olarak sıradaki argümanın değeri ile atanır. cbackuparg for backupfile do cp $backfile sourcebak/$backupfile echo “$backupfile” done KAYNAKÇA ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ http://www.bidb.itu.edu.tr/ http://www.cisco.com http://gezegen.pardus.org.tr/ http://www.pardus-linux.org/ http://www.pardusdepo.org http://www.trunix.org http://www.enderunix.org http://www.btegitim.com http://open.bilgi.edu.tr ftp://ftp.uybhm.itu.edu.tr/ http://csirt.ulakbim.gov.tr/ http://www.kernel.org http://www.cisn.odtu.edu.tr/ http://shots.osdir.com/ http://www.linuxdoc.org http://uludag.org.tr http://www.worldvisions.ca/wvdial/