Untitled - Tilkinin Dilinden
Transkript
Untitled - Tilkinin Dilinden
S UDO DA BU AY 1 Sudo Dergi Tayfası İçindekiler *. Editörden Gerçek Adı Üye Adı Yetki ve Ünvanı Diğer Görevleri Mustafa ALKAN ihtiyar Said Dergi Tayfası Proje Sorumlusu *. Codeigniter PHP Levent ALTUNÖZ Ayhan AKTAŞ By_Mihni Dergi Tayfası Dergi Yazarı *. Dosya Nedir ? Arda DÜLGAR Taha GÖKDENİZ jazzistan Dergi Tayfası Dergi Yazarı *. Acil Durum Rehberi. Murat CEBİR Ömer KIRMIZI Kirmizi Stajyer Dergi Tayfası Dergi Yazarı *. Linux ve Mizah Yusuf SANSARKAN Yusuf SANSARKAN yusufsan21 Stajyer Dergi Tayfası Dergi Yazarı *. XBMC Murat CEBİR Utku DEMİR utdemir Stajyer Dergi Tayfası Dergi Yazarı *. Samba Sunucu Kurulumu. Ertan ERBEK Saim BALKAYA dewrim2 Stajyer Dergi Tayfası Dergi Yazarı *. Gedit, Kwrite, Kate ve Mousepad - II Utku DEMİR Emin AS emin_as Stajyer Dergi Tayfası Dergi Yazarı *. Gnome Shell Serkan ÇALIŞ Burak UÇAR Artikozgurum Stajyer Dergi Tayfası Dergi Yazarı *. Terminal Kullanımı Ömer KIRMIZI Murat CEBİR Dixie Stajyer Dergi Tayfası Dergi Yazarı *. Terminator Serkan ÇALIŞ Ertan ERBEK Ertan ERBEK Stajyer Dergi Tayfası Dergi Yazarı Levent ALTUNÖZ levi Stajyer Dergi Tayfası Dergi Yazarı Arda DÜLGAR sessizce Stajyer Dergi Tayfası Dergi Yazarı AbdulKadir KÜÇÜKBIÇAKCI absolition Stajyer Dergi Tayfası Dergi Yazarı SUDO, Creative Commons (CC) by-nc-nd ile lisanslanmıştır. Not: SUDO, Gimp ve Scribus gibi özgür tasarım araçları kullanılarak hazırlanmıştır. Kullanılan içerikten yazarları sorumludur. SUDO, GNU/Linux dağıtımları altında sorunsuz olarak görüntülenir. E D DİTÖRDEN ENİZE BİR YILDIZ DAHA Hikaye hepimizce malum; Adam deniz kenarında kıyıya vuran binlerce denizyıldızından eline geçirebildiklerini, hayatlarını sürdürebilsinler diye denize doğru fırlatırmış. O sırada bu durumu şaşkınlıkla izleyen bir başkası, denizyıldızlarını denize atan adama: 2 Dergimizin yayınlamasından kısa bir süre sonra Ramazan Bayramını yaşayacağız. Bu vesile ile tüm Özgür Yazılım camiasının Ramazan Bayramını kutluyoruz. Son dakikada bir aksilik olmazsa ki olmaması için duacıyız, dergimizin tasarımından sorumlu arkadaşımız Ertan Erberk bekarlığa veda ederek dünya evine girmeye hazırlanıyor. Kendisine ve müstakbel eşine ömür boyu mutluluklar diliyoruz. GERI KALANI IÇIN - Sahilde bunlardan binlercesi varken birkaç tanesini denize atmak neyi değiştirir ki? deyince; Adam denize atmak üzere elinde bulunan deniz yıldızını göstererek cevap verir.. - Bunun için çok şey değişir. Sudo Dergisi yazarları olarak bu ay da deniz yıldızlarını denize atmaya devam ediyoruz. Linux sadece bir işletim sistemi değil, beraberinde kendi kültürünü de taşıyan bir vak'a. Linux dağıtımlarını kullanan insanların bilgilerini paylaşmasıyla oluşan topluluklar hem kullanıcının bilgilerini çoğaltıp güncel tutmasına hem de iletişimin sağlıklı olması için anadiline sahip çıkmaya ve onu doğru kullanmaya insanı neredeyse zorluyor. Bu yetmiyor, Özgür Yazılım/Açık Kaynak Kod'a gönül vermiş insanların hazırladıkları belgeler okunmadan öğrenilemeyeceği için, okuma, araştırma ve çözüm bulma alışkanlıklarını doğallıkla kazandırıyor. Günümüz hayat felsefelerinin ve teknolojilerinin dayattığı illaki “birey” olma zorunluluğu karşısında sağlam bir alternatif olarak bir topluluğa dahil olmanın getirdiği aidiyet duygusu, hepimizin kendini güvende hissetmesine yol açıyor. Evet bizler mecburen farklıyız, çünkü temelinde kar etmek ve pazarın tek hakimi olmak isteyen bir işletim sistemi değil, temelinde aşk olan bir işletim sistemini kullanıyoruz. Evet bizler farklıyız, çünkü her sorununuzda servis ücreti adı altında biraz daha paranızı almak isteyen değil, bilgisini karşılıksız olarak paylaşan insanlar olarak yaşıyoruz. Bu sayımızda, bilgilerini karşılıksız olarak paylaşmak isteyen yazarlarımızdan Utku Demir, Metin Editörleri hakkındaki yazı dizisini tamamlıyor. Levent Altunöz PHP ile ilgilenen okuyucularımız için referans niteliğinde bir çalışma ile karşınızda. Ertan Erberk, Linux kullanan birinin eninde sonunda ihtiyaç duyacağı Samba programının kurulum ve kullanımını, Arda Dülgar Dosya Sistemleri hakkında bilmek isteyeceğimiz herşeyi anlatıyor. Ömer Kırmızı'nın yazısını okuduktan sonra bir terminal canavarı olacağınızdan hiç şüphem yok. Ayhan Aktaş ise sizlere uzaktaki bir bilgisayara nasıl bağlanabileceğiniz konusunda rehberlik ediyor. Serkan Çalış yine bir yazısıyla karşınızda. Gnome'un gelecekteki halinden bizlere bir tat sunuyor. Dergimizi okurken yüzünüzde bir gülümseme oluşmasından Yusuf Sansarkan sorumludur. Bu yüzden Yusuf Sansarkan hakkındaki memnuniyetlerinizi bize şikayetlerinizi ise CMYLMZ'a iletmenizi öneririz :) Murat CEBİR C ODEIGNITER PHP 3 Php, açık kaynak kodlu bir web programlama dilidir. C dili ile üretilmiştir ve sunucu tarafında çalıştırılmak üzere geliştirilmiştir. Yukarıda "echo" komutu ekrana yazdırma işlevine sahiptir. Bu dosyayı ilk.php ismiyle kaydedersek, http://localhost/ilk.php adresinde "Merhaba Sudo" yazısını görmüş oluruz. Statik html sayfaları istemci tarafında çalışır ve sadece tarayıcının sunucudaki bilgileri almasını sağlarken, php gibi (asp, coldfusion vs...) diller sunucular üzerinde çalıştırılabilen yapıları sayesinde dinamik olarak sunucu üzerinden veritabanına bilgi kaydı gibi pek çok işlemi yürütebilmektedir. Burada php dilinin temellerine şimdilik girmeyeceğiz. Açıkcası bu konuda bir çok kaynak bulunabilir. Php ile üretilmiş, Codeigniter Web Çatısıyla tanışıp bir takım çalışmalar yapmayıdüşündüğümüz için temel php bilgisine sahip olduğunuzu varsayıyorum. Yine de mümkün olduğunca kodların ne işe yaradığından bahsederek temel php bilgisini de Codeigniter ile vermeye çalışacağım. Ubuntu üzerinde php geliştirmek için php yanında bir web sunucusuna, bir veritabanı sunucusuna ve bu veritabanıyla görsel olarak işlem yapmak için bir grafik arabirime ihtiyaç vardır. Apache, mysql ve phpMyadmin bizim için uygun olacaktır. Bunları sisteme ayrı ayrı kurup konfigürasyonlarını yapmak yerine hepsini birlikte sağlayan, Lamp gibi sistemler işimizi daha kolaylaştırmaktadır. Benim kişisel tercihim ise Xampp ile kolay bir kurulumdur. Xampp indirmek için: http://www.apachefriends.org/en/xampp-linux.html#374 adresinden son sürümü ev dizinine indirip, konsolda: sudo tar xvfz xampp-linux-1.7.2.tar.gz -C /opt komutuyla kurulum yapabilirsiniz. xampp /opt dizinine kurulduysa her şey yolunda demektir. konsolda; Codeigniter, açık kaynak kodlu Apache/BSD-stili lisanslanmıştır. Dilediğinizce kullanabilirsiniz. CI MVC(model, view, controller) yapılı, hafif, neredeyse sıfır konfigürasyon isteyen, diğer web çatıları gibi komut satırıyla sizi uğraştırmayan bir uygulamadır. İçindeki bir çok hazır fonksiyon, yardımcılar, sınıflar ile işinizi daha profesyonelce görmenizi sağlar. Codeigniter sayesinde yazdığımız kodlar daha düzgün bir hale gelir. Sql ifadeleriyle arabirim kodları, birbirine karışmamış olur. Bunu sağlayan üstte bahsettiğim MVC yapısıdır. Bu yapı da model verilerle ve veritabanlarıyla ilgili kısımdır ve Controller tarafından kontrol edilir. Controller ise Model'den aldığı verilerle view kullanıcı arabirim arasında bir köprü görevini görür. Verileri işleyip kullanıcı arabirimine gönderir. Aynı zamanda her php kullanıcısı, sürekli gelişen dilin güvenlikle ilgili inceliklerini, her an takip edemeyebilir. Codeigniter ile kullanacağınız fonksiyonlar, bir çok denemeden geçip kanıtlanmış oldukları için daha güvenli siteler yapılmış olur. KURULUM: Öncelikle http://codeigniter.com /downloads/ adresinden güncel sürümü (şu an 1.7.1) indiriyoruz. Sıkıştırılmış dosyayı web dizinimize (bende /opt/lampp/htdocs) açıyoruz. Klasörün ismini kolaylık olsun diye "ci" olarak değiştirdim. ci içinde iki alt dizin ve bir index.php dosyası var. Bu dosya kök dosyamız... Alt dizinlerden birisi user_guide... Bu, Codeigniter hakkında yardımcı bilgiler sunan bir e-book benzeri belgelendirme ortamı. Diğer dizin ise system; Bunun içinde, application/config dizini içindeki config.php dosyasında $config['base_url'] değişkeninin değerini; $config['base_url'] = "http://localhost/ci/"; sudo /opt/lampp/lampp start komutuyla xampp çalışmaya başlar. Şimdi tarayıcınızda, http://localhost yazarsanız, xampp arabirimi sizi karşılayacaktır. Şimdi php ile çalışmaya başlayalım: /opt/lampp/htdocs/ dizinine dosya kaydetme hakkına ilk başta sahip değiliz. Dosya yöneticimizi konsolda, "sudo nautilus" diye çalıştırarak bu hakka sahip oluruz ya da her seferinde uğraşmak istemiyorsanız "htdocs" klasörünün izinlerini bir kereliğine değiştirmeniz yeterli olacaktır. Bu işlem için konsolda; sudo chmod 777 /opt/lampp/htdocs komutunu veriyoruz. Bu işlemden sonra htdocs klasörü içinde ilk php dosyasını oluşturabilirsiniz. Oluşturduğunuz dosyaya deneme amaçlı geleneksel kodumuzu yazabiliriz: <?php echo "Merhaba Sudo"; ?> http://video.ubuntu.com olacak şekilde değiştirdim. Siz de kendi dizin isminize göre ayarlayabilirsiniz. Bu aşamada tarayıcınıza yukarıdaki adresi yazarsanız Codeigniter hoşgeldin mesajını göreceksiniz. Config.php dosyasında diğer ayarları da düzenleyebilirsiniz. Mesela; $config['index_page'] = "index.php"; Levent Altunöz 4 Bu şekilde kök dosyanızın index.php olması sağlanmıştır. Yerine istediğiniz bir dosyayı yazabilirsiniz. Şu durumda değiştirmemenizi öneririm. Language ve charset ayarlarını da buradan değiştirebilirsiniz. Aynı klasördeki database.php dosyasından ise veritabanı için gerekli ayarları yapıyoruz. $db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "blog"; $db['default']['dbdriver'] = "mysql"; $db['default']['dbprefix'] = ""; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ""; $db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "utf8_general_ci"; Burada, kendi mysql ayarlarıma göre düzenledim. Sonraki yazılarımda bir blog oluşturacağım için veritabanı adını blog koydum. Bu safhada bu ayarları yapmanın acelesi de yok aslında ama şimdiden haalledebiliriz işimizi. Şifre belirlemediğim için password kısmını boş bıraktım. Tipik bir codeigniter uygulamasında urller şu şekilde oluşur: oluşturalım. Dosyayı system/application/controller dizininde oluşturduğumuza dikkat edelim. Dosyaya şu kodları yapıştırın: <?php class Deneme extends Controller { function index() { echo 'Merhaba Sudo'; } } ?> deneme.php içinde sınıf adı, dosya adıyla aynı olmalı ve büyük harfle başlamalıdır. extends Controller ise deneme sınıfının, Controller sınıfının özelliklerini miras aldığını gösterir. Şimdi tarayıcıda http://localhost/ci/index.php/deneme yazınca sayfanın çalıştığını görüyoruz. Burada index fonksiyonu varsayılan olarak çalıştırıldı. Urlde sınıftan sonra ikinci segment boş ise index fonksiyonu çalışıyor. Aynı sonucu şöyle de elde edebilirdik; http://localhost/ci/index.php/deneme/index Şimdi aynı dosyaya bir fonksiyon daha ekleyelim. Öyleki dosyamız şu hale gelsin: <?php class Deneme extends Controller { function index() { echo 'Merhaba Sudo'; } http://site_adı.com/index.php/sınıf_adı/fonksiyon_adı/id ya da; http://site_adı.com/index.php/blog/yorumlar/1 Gördüğünüz gibi klasik bir urldeki .../blog/yorumlar?id=1 şeklinde çirkin yapılanma yok. Burada tek göze batan kısım index.php kısmı onu da oluşturacağınız .htacces dosyasına şu satırları ekleyerek bertaraf edebilirsiniz: RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] Geliştirme aşamasında bununla uğraşmanın anlamı olmasa da site yayına sokulacağı zaman gerekli bir ayarlama olacaktır. CONTROLLER İlk uygulamamızı yazmak için metin editörümüzde (gedit biraz modifikasyonla iyi iş görür. bkz: http://forum.ubuntu-tr.org/index.php?topic=10810.0) deneme.php isimli dosyayı function ikinci() { echo "ikinci kez merhaba."; } } ?> Tarayıcıda; http://localhost/ci/index.php/deneme/ikinci yazarsak "ikinci kez merhaba." yazısını göreceğiz. Böylece fonksiyonların sınıflardan fonksiyonumuza url üzerinden değer gönderelim. sonra geldiğini <?php class Deneme extends Controller { Levent Altunöz gördük. Şimdi ise 5 function ikinci($isim) { echo $isim." ikinci kez merhaba."; } } ?> Fonksiyona $isim değişkenini dışarıdan göndermemiz gerekiyor şimdi. Urlmiz şöyle olmalı: http://localhost/ci/index.php/deneme/ikinci/gonca Bu durumda ekrana "gonca ikinci kez merhaba" yazacaktır. Fonksiyonu biraz daha değiştirip şu hale getirirsek; function ikinci($isim, $yas) { echo $isim." ikinci kez merhaba. ".$yas." yaşındasın"; } Ve yine tarayıcıda; http://localhost/ci/index.php/deneme/ikinci/gonca/18 yazınca "gonca ikinci kez merhaba 18 yaşındasın" yazısı bizi bekliyor olacak. Bahsedilen url dizilimini aşmanın yolu ise _remap() fonksiyonunu kullanmaktır. controller içinde _remap adında bir fonksiyon varsa urlde ne yazdığınızdan önemsiz olarak, her zaman bu fonksiyon çağrılır. Örneğimizde; <?php class Deneme extends Controller { function index() { Bu controller için tarayıcıda; http://localhost/ci/index.php/deneme/ikinci yazsak bile ekranda _remap fonksiyonundaki "echo" komutunun çıktısı belirecektir. Varsayılan Controller welcome.php idi. index.php den sonra url segmenti olarak birşey yazmazsak hoşgeldin mesajı beliriyordu ekranda. Bunu config dizinindeki routes.php dosyasından değiştirebiliriz: $route['default_controller'] = "welcome"; burada welcome yerine örneğin "deneme" yazarsak deneme Controller'imiz devreye girer. Bir fonksiyonun önüne "_" alt çizgi eklemek o fonksiyonu gizlemeye yarar. Tarayıcıda çağrılsa dahi çalışmaz. Controller'leri alt dizinler altında daha düzenli olmaları adına tutabiliriz. Örneğin http://localhost/ci/index.php/sosyal/deneme/ikinci/gonca/18 gibi. /controllers/sosyal dizini altına geçirmiş olduk. Sınıflar içinde constructor kullanabiliriz. Php'de constructor fonksiyonlar tanımlı olduğu; sınıf çağrıldığı anda devreye giren fonksiyonlardır. Tüm sınıf içinde kullanılacak değişkenleri vs. tanımlamak için uygundurlar. php4 için sınıf ismiyle aynı isimde bir fonksiyon tanımlamak gerekiyordu: <?php class Deneme extends Controller { function Deneme() { parent::Controller(); } } ?> echo 'Merhaba Sudo'; constructor tanımladığımız vakit; parent::Controller(); bu satırı kullanmamız zorunlu oluyor zira "deneme" controller sınıfındakinin üzerine yazıyor ve elle çağırmamız gerekiyor. function ikinci() { echo "ikinci kez merhaba."; } function _remap() { echo "Bu işe el koydum!"; } Php5'te ise __construct() fonksiyonu bu işi görüyor. Php4 uyumluluk sorununuz varsa ilk ifadeyi; yoksa bunu kullanabilirsiniz: } <?php class Deneme extends Controller { function __construct() } ?> Levent Altunöz 6 { parent::Controller(); } } ?> VIEWS Şimdi kullanıcıyla görsel iletişimi kuracak view dosyalarını incelemeye başlayalım. Bu dosyalar temelde html dosyalarıdır. İçinde php kodları şablon dili niyetine gömülüdür. Ayrıca bir şablon (themplate) dili öğrenmenize gerek yoktur. <html> <head> <title>Deneme Dosyasi</title> </head> <body> <h1>Merhaba ben bir view dosyasıyım!</h1> </body> </html> Bu kodu /application/views dizinine denemeview.php adıyla veya başka bir adla kaydedelim. Şimdi view'i çağırmaya geldi sıra; $this->load->view('denemeview') ifadesi bunu yapmak için var. O halde deneme controller'imizi bir kez daha değiştirelim: <?php class Deneme extends Controller { function index() { $this->load->view('denemeview'); } } ?> Tahmin edin bakalım tarayıcıda çağırdığımız zaman controller'imiz bize ne çıktısı sunacak? http://localhost/ci/index.php/deneme ile denemeview.php içindeki html kodları işletildi ve "Merhaba ben bir view dosyasıyım!" ifadesi ekrana basıldı. Aynı controller fonksiyonu içinde çok sayıda view dosyasını çağırabiliriz. View dosyalarını da tıpkı controller dosyalarında olduğu gibi, alt dizinler içine yerleştirip dizin adıyla birlikte çağırmak mümkündür. olduğumuza göre mümkündür. Nasıl yapıldığına gelince; Artık deneme sınıfımızdan sıkıldığımıza göre başka birini oluşturalım; sayfa.php dosyasını controller dizininde imal ediyoruz. İçine şu kodları yapıştıralım; <?php class Sayfa extends Controller { function index() { $data = array( 'title' => 'Sudocular ne ister acaba', 'baslik' => 'Sudocular', 'mesaj' => 'Ne isterler' ); $this->load->view('sayfaview',$data); } } ?> Gördüğünüz gibi $data dizi değişkeni içindeki verileri sayfaview isimli view dosyasına gönderdik ve geri çağırdık. views dizini içinde oluşturacağımız sayfaview.php dosyası şöyle olabilir: <html> <head> <title><?php echo $title;?></title> </head> <body> <h1><?php echo $baslik;?></h1> <h3><?php echo mesaj; ?></h3> </body> </html> Çıkan sonucu resimde görüyorsunuz. Şimdi bir adım daha ilerleyelim ve bir döngü oluşturalım. Sayfa Controller'ini değiştirelim biraz; <?php class Sayfa extends Controller { function index() { $data['liste'] = array('yazıyı bitir','siteyle unutma','diger siteyle ilgilen'); $data['title'] = "Sudocular ne ister acaba"; $data['baslik'] = "Sudocular"; $data['mesaj'] = "Ne isterler"; Peki view dosyasına değişken veriler göndermek mümkün müdür? Müdür biz ht t p s : / / he l p . ub unt u. c om / c om m uni t y / M e d i b unt u Levent Altunöz ilgilen','yemek yemeyi 7 { parent::Model(); //constructor $this->load->view('sayfaview',$data); } } ?> } function yazilar() { Burada $data dizi değişkeni içinde $liste isimli bir başka dizi tanımladık ve bunu sayfaview view dosyasına yolladık. "sayfaview" içine şunları yazalım; <html> <head> <title><?php echo $title;?></title> </head> <body> <h1><?php echo $baslik;?></h1> <h3>Yapacak islerim</h3> <ul> <?php foreach($liste as $is):?> <li><?php echo $is;?></li> <?php endforeach;?> </ul> </body> </html> Böylece çağrılan sayfaview.php dosyası bize şu görüntüyü sunuyor: MODELLER Modeller, dediğimiz gibi veritabanı işlerine bakarlar. Birçok python ve php web çatısında modeller zorunlu olsa da Codeigniter'de tercihidirler. Veritabanı işlerini Controller içinden de yapabiliriz. Bunun için daha sonra ayrıntısına gireceğimiz database sınıfını kullanacağız. $sorgu = $this->db->get('posts', 10); return $sorgu->result(); } } Bir modelin yapısını böylece kabaca vermiş olduk. Burada db nesnesinin get özelliği farkedeceğiniz gibi veritabanından verileri çekmeye yarıyor. 10 parametresi ile ilk 10 değeri yukardan itibaren alıyoruz. Dediğim gibi database sınıfının özelliklerine ileride değineceğiz. Burada Constructor fonksiyonu bir iş görmüyor. Model yapısını göstermek adına gösterdim. Dikkat ederseniz dosya adının tıpkı Controller'de olduğu gibi sınıf adının ilk harfi küçük olması haricinde kopyasıdır. Bir modeli çağırmak için yine ; $this->load->model("Blog_model"); ifadesi kullanılır. Bu çağırdığımız modele özel bir nesne adı atamak isteseydik ikinci parametreye nesne adını yazmamız yetecekti. $this->load->model("Blog_model","modelim"); $this->modelim->fonksiyon(); Peki bu modeli bir controller içinde nasıl kullanacağız? İşte örneği: <?php class Blog_controller extends Controller { function blog() { $this->load->model('Blog_model'); $data['sorgu'] = $this->Blog_model->yazilar(); $this->load->database(); ile çağırdığımız sınıfı örneğin; $this->db->get('table_name'); şeklinde kullanarak tablo ismini alıyoruz. Bir modelin yapısı controller yapısına benzer. Mesela blog_model.php isminde /applications/models dizinine kaydettiğimiz dosyaya şu kodları girelim: $this->load->view('blogview', $data); } } ?> class Blog_model extends Model { function Blog_model Levent Altunöz 8 blog_controller.php dosyası içindeki bu kodlarda önce yukarda oluşturduğumuz Blog_model modelimizi yüklüyoruz. $data dizi değişkeni içine modelin yazılar fonksiyonunda tanımladığımız database nesnesinin get özelliği ile veritabanından çekilen 10 adet mesaj değerini atıyoruz. Sonra da bu değeri view arabirimine yükleyerek blogview view'imizi çağırıyoruz. Codeigniter içinde onlarca sınıf ve helper tanımlıdır. Bunlar form oluşturmaktan tarih işlerine kadar her konuda hazır fonksiyonları kullanmamızı sağlarlar. Diğer yazımızda bunları daha yakından tanıyıp bir blog uygulamasına giriş yapmayı umuyorum. DAHA FAZLASI IÇIN http://www.php.net Levent Altunöz D OSYA NEDIR ? 9 Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimlendirmedir. İşletim sistemi tipik olarak iki çeşit dosya içerir: Birincisi, bir sistem görevi yerine getirirken ya da bir uygulama çalışırken, bilgisayarı kontrol eden komutları içeren program dosyasıdır. İkincisi ise, bir kelime işlem bölgesi gibi bir uygulama yardımı ile yaratmış olduğunuz bilgilerinizi içeren, veri dosyasıdır. DOSYA SISTEMI NEDIR? Bir işletim sisteminin, disk veya disk bölümleri üzerindeki dosyaların izlerini bulmak için kullandığı yapı ve yönteme dosya sistemi (filesystem) denir. Yani Dosya sistemi, disk üzerindeki dosyaların organize edilmesidir, diyebiliriz. Dosya sistemi terimi, dosyaların veya dosya sistemlerinin depolandığı disk veya disk üzerindeki bir bölümü tanımlamak için de kullanılabilir. Pek çok program dosya sistemleri üzerinde çalışır. Olmayan veya yanlış parametreler içeren bölümler üzerinde çalışamazlar. Genelde dosya sistemi olmayan bir disk yüzeyinde bir program çalışmaz. Programların çalışması için bir dosya sistemine ihtiyaç vardır. Dosya sistemlerinin olabilmesi için de bir disk veya disk bölümüne ihtiyaç duyulur. Çok az program işlenmemiş disk veya bölüm yüzeyinde işlem yapabilir. Buna dosya sistemi yapabilen programlar dahildir. Bir disk veya disk bölümü, dosya sistemi olarak kullanılmadan önce, disk yüzeyi ilk haline döndürülmeli ve gerekli bilgiler diske yazılmalıdır. Bu işlem dosya sistemi oluşturma ya da biçimlendirme olarak adlandırılır. Dosya sistemi oluşturmamızdaki amaç, o sürücünün veri depolaması için kullanılabilir hale gelmesini sağlamaktır. Bir harddiski veya bölümü biçimlendirme işlemi bu aygıta özel bir veri depolama biçimi uygulamaktır. Bu biçim, “dosya sistemi”dir. Pek çok Unix dosya sistemi, küçük farklılıklar dışında, benzer bir genel yapıya sahiptirler. Genel kavramlar olarak superblok, dosya düğümü (inode), veri bloğu, dizin bloğu ve dolaylı blok sayılabilir. Superblok, dosya sisteminin bütünü hakkında bilgi içerir. Aslında bu dosya sistemlerine göre değişiklik gösterebilir. Dosya sisteminin boyutu gibi bilgiler burada yer alır. Dosya düğümü ise, bir dosya hakkında ismi hariç, bütün bilgileri ihtiva eder. Dosya ismi dizin içinde dosya düğümünün numarası ile birlikte yer alır. Bir dizin girişi, dosya ismine ve bu dosyanın yer aldığı dosya düğümünün numarasına bağlıdır. Dosya düğümü, dosyalardaki bilgileri depolamak için kullanılan veri bloklarının numaralarını içerir. Dosya düğümü içinde birkaç tane veri bloğu numarası için yer vardır. Bununla beraber daha fazla yere ihtiyaç olursa dinamik bir yapıyla bu yeni yer ayrılır. Bu dinamik yerleştirilmiş bloklar, dolaylı bloklardır. Bu veri bloklarını bulmak için önce dolaylı veri bloklarının numaralarını bulmamız gerekir. http://www.ntfs-3g.org KAÇ ÇEŞIT DOSYA SISTEMI VARDIR? Zamanın ilerlemesiyle bilgisayar kullanıcılarının beklenti ve ihtiyaçlarındaki artışlar doğrultusunda, ortaya birçok dosya sistemi çıkmıştır. Hepsinin çeşitli özellikleri ve birbirinden farklılıkları vardır. “Kaç çeşit dosya sistemi vardır?” sorusuna tam olarak cevap vermek doğru olmaz. İsim olarak bazı dosya sistemlerini “ adfs, affs, autofs, cifs, coda, coherent, cramfs, debugfs, devpts, efs, exfat, ext, ext2, ext3, ext4, fat16, fat32, hfs, hfsplus, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, xenix, xfs, xiafs” olarak sıralayabiliriz. Linux çok çeşitli dosya sistemlerini desteklemektedir. Biz, en önemlilerine değinmekle yetineceğiz. M I NI X En eski, en güvenli olarak kabul edilen ama kısıtlı yeteneklere ve özelliklere sahip olan dosya sistemidir. (En fazla 64 MB lık dosya sistemi, en çok 30 karakterlik dosya isimleri, ara sıra kaybolan tarih zaman damgaları gibi...) XI A Dosya isimleri ve dosya sistemi boyutlarının sınırlarını kaldıran ama bundan başka pek bir yenilik getirmeyen, sadece minix dosya sisteminin yenilenmiş halidir. Çok popüler değildir ama oldukça iyi çalıştığı rapor edilmektedir. REISERFS Çok sağlam bir dosya sistemidir. Veri kayıplarını en aza indirmek için günlükleme (journalling) yöntemi kullanılır. Günlükleme; yapılmış veya yapılan işlemlerin kayıtlarının tutulması mekanizmasıdır. Bu sayede dosya sistemi meydana gelmiş E XT Ext, Extended File System (Genişletilmiş Dosya Sistemi) ilk olarak Ext ya da Ext1 ismiyle Nisan 1992'de, özellikle Linux İşletim Sistemi'nin dosya sistemi ihtiyacı için; Minix Dosya Sistemi'nin yetersizlikleri üzerine, Rémy Card tarafından geliştirildi. Bir sonraki aşamada Ext2, Ext'in yerini aldı. Aynı zamanda rakiplerine göre Ext2'nin yetenekleri uzun vadede daha işe yarar şekildeydi. Bu, Ext2'nin seçilmesinde önemli bir etkendir. E XT 2 Ext2, yetenekli bir Linux dosya sistemidir. İleriye dönük, kolay geliştirilebilen bir dosya sistemi olarak tasarlanmıştır. Dolayısıyla yeni sürümü, dosya sistemi kodlarını kurulu bir Arda DÜLGAR 10 sisteme uygulamak için yeni ayarlar gerektirmez. 1993 yılında geliştirilmiştir. yapmayı E XT 3 Ext3 dosya sistemi, Ext2'nin bütün özelliklerine sahip bir dosya sistemidir. Aradaki temel fark, günlükleme özelliğinin eklenmiş olmasıdır. Böylece, herhangi bir sistem çökmesi esnasında, geri kurtarma zamanı kısaltılır ve performans artışı sağlanır. Ext3, Ext2'den daha popüler olmuştur. Günümüzde Windows üzerinden de Ext3 dosya sistemlerine erişmek mümkün olmaktadır. Örneğin; Linux dosyalarına Windows'tan ulaşma yazılımları ile bu işlem kolayca yapılabilmektedir. olan hasarları son derece kolay bir biçimde onarabilir. KAYNAKLAR: www.belgeler.org tr.wikipedia.org wiki.archlinux.org http://l10n.ubuntu.tla.ro/ubuntu-docs-jaunty http://e-bergi.com/2009/Temmuz/ E XT 4 Ext4 veya diğer adıyla "Dördüncü Genişletilmiş Dosya Sistemi", Ext3 dosya sisteminin halefi olarak geliştirilmiş, günlük desteği olan bir dosya sistemidir. İlk çıktığında Ext3 için 64 bit depolama limitlerini genişleten ve performans artırıcı bir yama niteliğinde olsa da, çekirdek geliştiricilerinin Ext3'ü kararlı bulmalarından dolayı, Ext3'e bu yamalar uygulanmamıştır. Ext3'ün kodlarının üzerine gerekli yamaların eklenmesiyle, Ext3 üzerine kurulu olarak çekirdeğe sıfırdan, Ext4 olarak girmiştir. 28 Haziran 2006 tarihinde Theodore Ts'o (Ext3 geliştiricisi) Ext4'ün gelişim planını duyurmuştur.Ext4 dosya sisteminin ilk geliştirme sürümü, çekirdeğin 2.6.19 sürümünde yer bulmuştur. 11 Ekim 2008 tarihinde eklenen yamalarla, Ext4 kararlı biçime getirilmiş ve 2.6.28 çekirdekte kararlı olarak işaretlenmiştir. Ext4 desteği veren 2.6.28 çekirdeği 25 Aralık 2008 tarihinde yayınlanmıştır. HANGI DOSYA SISTEMI KULLANILMALI? Pek çok değişik dosya sistemi arasında genelde küçük farklılıklar vardır. Ext3 ve Ext4 popüler dosya sistemlerindendir çünkü günlükleme yapabilmektedirler. Reiserfs ise diğer popüler bir dosya sistemidir. Bu sistemde de günlükleme yapılabilmektedir. Günlüklemenin aşırı yük getiren yapısından, performanstan, güvenilirlikten, uyumdan ve pek çok diğer sebeplerden dolayı başka bir dosya sistemi kullanmak daha uygun olabilir. Dosya sistemi seçimi kişilere ve ihtiyaçlarına göre değişiklik gösterir. Günlükleme yapma yeteneğine sahip dosya sistemleri, aynı zamanda, günlüklü dosya sistemleri diye de adlandırılırlar. Günlüklemeli bir dosya sistemi, sistemde olan bitenin kaydını veya günlüğünü tutar. Bir sistem çökmesi durumunda günlükleme sistemi, kaydedilmemiş veya zarar görmüş verilerin kurtarılmasını sağlar. Böylece veri kayıpları oldukça aşağıya çekilmiş olur. Bu nedenle, muhtemelen gelecek Linux dağıtımlarında bu özellik standart hale gelecektir. Günlükleme yapma yeteneğine sahip dosya sistemi kullanıyorum diyerek, ona güvenerek, önemli verilerimizin yedeğini almamak da yanlış olur. Arda DÜLGAR A CIL DURUM REHBERI. Bu rehber www.forum.ubuntu-tr.org sitesindeki çözüme kavuşturulmuş konu başlıklarından derlenerek hazırlanmıştır. Rehberdeki önerileri uygulayıp da sisteminizde kararsızlıklar ya da sorunlar yaşarsanız sorumluluk kabul etmeyeceğimizi önceden belirtmek zorundayız. Rehberi hazırlamaktaki amacımız, bilgisayarına Ubuntu kuran her kullanıcının gerek kurulum, gerekse kurulum sonrası başına gelebileceğini varsaydığımız sorunlara, internette arama yapmadan ilk müdahaleyi yapması için bir fırsat yaratmaktır. Bu kadar iyi niyetle hazırladığımız bu belgenin karşılığında, cezasız kalmayacağımızı biliyor ve kabul ediyoruz. Çünkü cehenneme giden yol iyi niyet taşları ile döşelidir. Kurulum Sorunları this kernel reguires an x86-64 cpu but only detected an i1586 cpu.Unable to boot please use a kernel appropriate for your cpu. CD'yi takıp kurulum yapmak istediğinizde böyle bir mesaj alıyorsanız, üzgünüz. Çünkü 32bit işlemcili bilgisayarınıza 64bit Ubuntu kurmaya çalışıyorsunuz demektir. Lütfen Ubuntu'nun 32bit versiyonunu bulun ve kurun. 32Bit versiyon için http://www.ubuntu.com/getubuntu/download sitesine yapılacak bir ziyaret sorunu halledecektir. Ubuntu'yu kurdunuz. Bilgisayarınızın açılışında öntanımlı işletim sistemini değiştirmek istiyorsunuz: Sistem > Yönetim > Synaptic'i açın ve ara yazan yere "startupmanager" diye yazın. Çıkan sonucu işaretleyip kurun. Startupmanager ile bilgisayaırınızın öntanımlı işletim sistemini seçebilir ve bu seçimin süresini istediğiniz gibi uzatıp kısaltabilirsiniz. 11 İnternetten indirdiğiniz Ubuntu CD'sini takıp kuruluma başladınız ki, o da ne! Bir sürü I/0 hatası diye yazılar çıkıyor. 1.İndirdiğiniz ISO'nun Md5 bütünlüğünü kontrol ediniz 2.CD'yi daha düşük bir hızda yazdırınız Güncelleme sonrası GPG hatası alıyorsanız. Örnek olarak: W: GPG error: http://ppa.launchpad.net Jaunty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 60D11217247D1CFF Konsolu açıp şu satırları yazın ve “enter”a basın. gpg --keyserver subkeys.pgp.net --recv 60D11217247D1CFF gpg --export --armor 60D11217247D1CFF | sudo apt-key add sudo apt-get update Burada dikkat edilmesi gereken bir husus şudur: Pubkey'in numarası değişebilir elbet. O zaman siz de verilen komutlardaki numaraları değiştirirsiniz, olur biter. Açılış ekranında kullanıcı adınızı ve şifrenizi doğru yazıyorsunuz, ancak Ubuntu açılmamakta direniyor. Ubuntu'yu açılışta Grub'daki "recovery mode"dan açın. Nasıl açmak istediğinizi soran menüde "root" ile konsola düşün ve passwd kullanıcı_adınız komutunu verdikten sonra yeni şifrenizi girin. Bu komutu verirken kendi kullanıcı adınızı yazın. Sonra "exit" ile oturumu kapatın. Aynı menüdeki "resume" seçeneği ile masaüstü açılışına devam edin ve GDM giriş ekranında, yeni kullanıcı şifrenizi kullanın. UBUNTU'YU KURDUNUZ AMA TÜM MENÜLER İNGILIZCE... ! Alt+F2'ye basıp çıkan menüye gksu gedit /var/lib/locales/supported.d/local yazın. Açılan belgenin içindekileri şöyle değiştirin: tr_TR.UTF-8 UTF-8 en_US.UTF-8 UTF-8 Şimdi yaptığımız değişikliği Ubuntumuza anlatmak için konsolu açalım ve şu komutu yazalım. sudo dpkg-reconfigure locales http://www.xubuntu.org Murat CEBİR 12 Varsayılan dili değiştrelim şimdi de. Konsola şunu yazalım: gksu gedit /etc/environment Açılan belgede şu değişikliği yapalım: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" LANGUAGE="tr_TR:tr:en_GB:en" LANG="tr_TR.UTF-8" Yine konsoldan: gksu gedit /etc/default/locale komutunu girelim ve açılan belgedeki kodu: LANG="tr_TR.UTF-8" şeklinde değiştirelim. hayırlı olsun. Son olarak bilgisayarımızı yeniden başlatalım. Türkçe Ubuntunuz KURULUMU YAPTIM AMA INTERNETTEN VIDEO SEYREDEMIYORUM!!! ve “Trash Icon Visible” yazan yerlerin karşısındaki kutucukları tıklayarak seçin. Artık Masaüstünüzde Bilgisayar ve Çöp ikonlarınız mevcut.. Alt+F2'ye birlikte basarak açalım. Açılan yere "gconf-editor" yazalım. “Yapılandırma Düzenleyici” adlı bir pencerenin açıldığından emin olun. Yapılandırma Düzenleyici'de Apps > Nautlius > Desktop yolunu izleyin ve sağ tarafta açılan menüde “Computer Icon Visible” ve “Trash Icon Visible” yazan yerlerin karşısındaki kutucukları tıklayarak seçin. Artık Masaüstünüzde Bilgisayar ve Çöp ikonlarınız mevcut... E:dpkg was interrupted,you must run 'dpkg --configure -a' to correct Uygulamalar > Donatılar > Uçbirim. Açılan pencereye: sudo aptitude install ubuntu-restricted-extras yazıp "enter"a basın. HÂLÂ VIDEOLARI SEYREDEMIYORSANIZ: sudo aptitude purge adobe-flashplugin flashplugin-installer flashplugin-nonfree swfdecmozilla mozilla-plugin-gnash flashblock libflashsupport sudo aptitude install flashpluginnonfree Komutunu girin ve işlemin bitmesini bekleyin. Firefox'u yeniden başlatın. Bu adımdan sonra da videoları seyredemiyorsanız, ekran kartınızın sürcüsünü Sistem >Yönetim > Donanım Sürücüleri menüsü altında yüklediğinizden emin olun. UBUNTU'YU KURDUM AMA NERDE BU “BILGISAYAR”, “ÇÖP KUTUSU” IKONLARI? Alt+F2'ye birlikte basarak açalım. Açılan yere "gconf-editor" yazalım. “Yapılandırma Düzenleyici” adlı bir pencerenin açıldığından emin olun. Yapılandırma Düzenleyici'de Apps > Nautlius > Desktop yolunu izleyin ve sağ tarafta açılan menüde “Computer Icon Visible” Konsolda böyle bir hata mesajı alıyorsanız yapmanız gereken şey, konsola şu komutu girmekten ibarettir: sudo dpkg –configure -a Ubuntu kurulumunu yaptınız. donmalar oluyor. Ne yapabiliriz? Güncellemelerden sonra sistemde ağırlaşma veya Ubucleaner betiği çoğu zaman bu gibi sorunları çözmemize yardımcı oluyor. Ubucleaner betiğini bilgisayarımıza yüklemek ve çalıştırmak için yapmamız gerekenler şöyle: Konsolu açıp; wget http://www.opendesktop.org/CONTENT/content-files/71529-ubuclenaer.sh yazalım. Sonra betiğimize gerekli izni verelim ki çalışsın: sudo chmod +x 71529-ubucleaner.sh Betiğimizi çalıştırmak için vermemiz gereken komut ise şu : Murat CEBİR 13 sudo ./71529-ubucleaner.sh Bu betik, ilerki zamanlarda da bize lazım olabilir. Öyleyse panelimize eklemeye ne dersiniz? Bir panelimize sağ tıklayalım. Panele Ekle > Özel Uygulama Başlatıcı'yı seçelim. Açılan pencerede "Tür" menüsünde, "Uçbirimdeki Uygulama"yı seçelim. Ad kısmına "Ubucleaner" yazalım. (Ya da siz ne ad vermek isterseniz...) Komut yazan yere de: sudo ./71529-ubucleaner.sh yazıp "Tamam"ı tıklayalım. Artık tek tıkla sistemimizde bulunan gereksiz paketleri, çöp kutularını ve kernelleri silebiliriz. DAHA FAZLASI IÇIN http://www.wiki.ubuntu-tr.org Murat CEBİR L INUX VE MIZAH 14 APTAL BILGISAYAR İdrarın zifiri karanlıkta parladığını, Hepimiz duymuşuzdur, bilgisayar aptaldır lafını. Gerçekten de aptaldır; her seferinde aynı işi yapmak için açarsınız ama o hiçbir zaman sizin yerinize yapamaz, sizin komutunuzu bekler. Eğer bilgisayar aptal olmasaydı, yani azıcık akıllı olsaydı ne olurdu? Ne olacağını kestirmek zor ama kapatılırken ne düşünebileceğini bazı arkadaşlar bizim yerimize yorumlamış: Çok şiddetli bir hapşırmada kaburgalardan birinin kırılabileceğini, Hapşırmayı engellemeye çalışmanın, baştaki veya boyundaki damarlardan birini yırtabileceğini ve ölüme sebep olabileceğini, Hapşırma sırasında gözlerin açık tutulması halinde, yerlerinden fırlayabileceklerini, Bilgisayarı gerçekten kapatmak istediğine emin misin? İstersen bekleme moduna alayım kendimi. Yarım saat sonra açmak isterseniz beni uğraştırmamış olursunuz. Domuzların, vücut yapılarından dolayı hiçbir zaman başlarını yukarı kaldırıp gökyüzüne bakamadıklarını, Kah güldük, kah eğlendik. Yeri geldi üzüldük, yeri geldi sevindik ancak her güzel şey gibi bu oturumun da sonuna geldik. Nice oturumlara... Dünya nüfusunun %50 sinin hiç telefonla konuşmadığını, Bir saat süreyle kulaklıkla birşey dinlemenin kulaktaki bakteri sayısını %700 arttırdığını, Beni böyle istediğin gibi kullanıp işin bitince kapatamazsın, asıl ben seni kapatıyorum! Çakmağın kibritten önce bulunduğunu, Kapatıyorsun demek ha! Tamam kapat ama şunu da bil ki, bir sonraki oturumda bazı şeyler bıraktığın gibi olmayabilir. Parmak izleri gibi dil izlerinin de her insan için benzersiz olduğunu, Bu yazıyı okuyan insanların %75 inden fazlasının, dirseklerini yalamaya çalışacaklarını, :) Bugünü de kazasız belasız atlattın, hadi bakalım... Şimdi kapanıyorum, ama kullanırken sarfettiğin sözleri unuttum sanma. Yeni bir oturumda sorarım ben sana! Biliyormuydunuz? Ne! Kapatıyor musun? Daha karpuz kesecektik... Oturum süresince bir hatamız olduysa affola. bilgisayarınızı kapatabilirsiniz; nereye isterseniz oraya... Şimdi Hepsi bu kadar, dağılabilirsiniz! BUNLARI BILIYORMUSUNUZ Kendi dirseğini yalamanın imkansız olduğunu, Ördeğin vakvaklamasının yankı yaratmadığını ve bunu kimsenin açıklayamadığını, Dünyadaki fotokopi makinelerinde meydana gelen arızaların %23'ünün, makinenin üstüne oturup kendi popolarının fotokopisini çekmek isteyen insanlar sayesinde meydana geldiğini, Bir insanın yaşamı boyunca, uyku sırasında yaklaşık 70 böcek ve 10 örümcek yediğini, Yusuf SANSARKAN 15 KAMYON ARKASI LİNUX - Dört tekersin, pek şekersin, Windows kullanma, çok çekersin - Kayseri, Darende, Gürün; sürün Windowsçu sürün - Otobüsçü değiliz ki hostesimiz olsun, taksici değiliz ki durağımız olsun; biz Linuxçuyuz arkadaş, yolumuz açık olsun! - İstedim vermediler,benden para istediler - Adrese gerek yok, Bill Gates bizi tanır - Rampaların ustasıyım, Ubuntu'nun hastasıyım - Nazar etme ne olur, kodlarını aç senin de olur - Dünya dikenli bir hayat, açık kaynakta mı kabahat? - Sen sus, mavi ekranın konuşsun - Aşıksan vur saza, Linuxçuysan bas gaza - Güzeli göz, Windowsçuyu mavi ekran öldürür - Yolların kralı Man, Linuxu küçümseyen megaloman - Kahve bile üçü bir arada, Windows ise iki arada bir derede. - Sistemde seçiciysem günahım ne? - Ankete gerek yok, Linux daha iyi - Ballmer af dilese bile, Windows kırıldı bir kere - Windowsa ettiler dünyayı dar, durdurun dünyayı inecek var - Ağaran saçlarımı yollara değil, mavi ekrana bakarak geçen yıllara sor - Şoför değiliz ki arabamız olsun, kabadayı değiliz ki raconumuz olsun, Linuxçuyuz sistemimiz iyi olsun. - Aşıksan vur saza, Linuxçuysan gelme gaza... - "Helal olsun iyi sistemdi" desinler, arkanızdan beddua etmesinler. - Linuxa can feda, Windowsa elveda - Memura maaşı, Windowsa hata oranı sorulmaz. - Sevdik mi tam severiz, biz Linuxseveriz - Mavi ekranla üzme beni, deşifre ederim seni - Solum Windowsa, sağım virüse kapalı - Elimdeki simit ve çay kadar bana yakınsın Mandrivam - Linuxun güzelliklerini yazsam duble yol olur - Bas gaza, frene, debriyaja, kaptır parayı Windowsa, makyaja - Windowsla mı yaşadım ki, Linuxla öleyim - Aşığı yarin gözleri, Linuxçuyu Ballmer'in şebeklikleri öldürür - Sağlam şoför kalmaz rampada, Windows kalmasın mavi ekranda - Bıdı bıdı yapma Ballmer, millette para yok - Ballmer öyle diyo…yoksa yalan mı söylüyo… - Gaz, fren, şanzıman, Windowsun hali duman Yusuf SANSARKAN biz 16 E-POSTA Adamın biri binbir güçlükle Microsoft şirketine temizlikçi olmaya aday olmuş. İş başvurusu için gittiğinde görevli ona: “Eposta adresinizi verir misiniz” demiş. Adam şaşkın, e-postanın ne olduğunu bilmeden; “benim e-posta adresim yok” diye cevaplamış.Buna karşılık görevli adama: “Üzgünüm, eğer eposta adresiniz yoksa bizim gibi dev bir yazılım şirketinde çalışamazsınız.” Adam üzgün: “Ben temizlikçiyim ne yapacağım e-postayı” demiş ama dinletememiş. Haliyle işe alınmamış. Cebindeki parayla biraz çilek alıp sokaklarda satmaya başlamış. Kısmeti açıkmış demek ki kısa sürede işi büyütmüş. Gel zaman git zaman bir holding sahibi olmuş. Bir gün bir gazeteci onunla ropörtaj yapmış. Laf arasında gazeteci “e-posta adresiniz neydi” demiş. Adam cevapla: “Benim e-posta adresim yok ki?” deyince gazeteci “e-posta adresiniz yok ve holding sahibi oldunuz, eğer bir de e-posta adresiniz olsaydı kim bilir ne olurdunuz.” Adam umursamaz bir tavırla “Microsoft'ta temizlikçi” demiş. MÜHENDISLER VE TREN BILETLERI PC MI MAC MI? Bir PC ile bir Mac ofiste yanyana çalışıyorlarmış. Elemanlardan birisi sormuş; “2 kere 2 kaç eder?” PC hemen atılmış, “beş” Mac afallamış, “Ama doğru değil ki, dört eder” PC’den yanıt gecikmemiş: “Olsun, ben daha hızlı cevap verdim ya...” Üç Microsoft ve üç Apple mühendisi, trenle bir konferensa gitmektedirler. İstasyonda, Microsoft mühendisleri birer adet bilet alırlar ve Apple'cıların toplam bir adet aldığını görürler. Microsoft mühendislerinden bir tanesi: "Nasıl olur da üç kişi bir biletle gider?" diye sorar. Apple mühendisi: "İzle ve gör" der. Trene binerler, Microsoft’cular koltuklarına otururlar. Apple’cılar ise bir lavaboya doluşurlar. Kısa bir süre sonra tren hareket eder ve görevli biletleri toplamaya başlar. Lavabonun kapısını çalar ve "Bilet lütfen" der. Bir el dışarı bileti uzatır. Görevli bileti alır ve gider. Microsoft’cular bunun ne kadar iyi bir fikir olduğunu kabul ederler. Konferans sonrası Microsoft’cular da tek bilet almaya karar verirler. Fakat bu kez Apple'cılar bilet almaz. "Biletsiz ne yapmayı düşünüyorsunuz?" der bir Microsoft çalışanı. "İzle ve gör" der yine Apple mühendisi. Trene binerler, Microsoft’cular bir lavaboya, Apple mühendisleri de bir diğerine doluşurlar. Tren hareket eder ve biraz sonra bir Apple mühendisi bulundukları lavabodan çıkarak, Microsoft’cuların bulunduğu lavaboya yönelir ve kapıyı çalarak "Bilet lütfen..." der. Yusuf SANSARKAN X BMC SİZ RAHATINIZI BOZMAYIN! XBMC MEDİA CENTER Sinemaseversiniz ve internetin nimetlerini son baytına kadar kullanıyorsunuz. O Divx sizin şu DVD Rip bizim arıyorsunuz, indiriyorsunuz ve elbette keyifle seyretmek istiyorsunuz. Belki de bu satırların yazarı gibi artık TV ile ilişkinizi kestiniz. Yoğun bir günün ardından şöyle ayaklarımızı uzatıp güzel bir film seyredeyim derken, o da ne! Geçen akşam indirdiğiniz filmi media playerınız kötü gösteriyor. Gecenin tüm tadı böyle çok küçük bir sorun yüzünden kaçmasın. Filmlerinizi, fotoğraf arşivinizi, müziklerinizi, yüksek kalitede seyredip dinlemek için özgür yazılım camiası size bir alternatif sunuyor: XBMC 2003 yılında bir grup özgür yazılımcının bolca C++ malzemesi ve üstüne Assambly Kod Sosu ile hazırladığı XBMC, tüm dijital eğlencenizi yüksek kalitede yaşamanızı sağlıyor. 50 geliştiricisi, 100 tercümanı ile 30.000 kayıtlı üyesi bulunan http://xbmc.org/forum/ adresinde, 24 saat sizlere yardımcı olmaya hazırlar. XBMC sadece Linux için değil; Windows, Mac OS ve Xbox platformlarında da rahatlıkla çalışan bir yazılım. 17 2- Üçüncü Taraf Yazılım sekmesini tıklayıp "Ekle" diyelim ve şu APT satırını ekleyelim. deb http://ppa.launchpad.net/team-xbmc/ppa/ubuntu/ jaunty main 3- "Kapat" diyerek çıkalım. GPG hatası alırsanız panik olmaya gerek yok, bir sonraki adımımızda bu sorunu halledeceğiz. Firefox adres satırına şu adresi kopyalayıp yapıştırın ve siteyi açın. http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x6D975C4791E7EE5E Açılan pencerede Ctrl+A'ya basıp tümünü seçelim, kopyalayalım ve metin editörümüzü açarak ekrana gelen boş belgeye yapıştıralım. Belgeyi xbmc-ppa.key adı ile /home dizinimize kaydedelim. Küçük bir hatırlatma: Eğer /home dizinine dosyayı kayıt etmekte sorun çıkıyorsa "Alt+F2" ile çıkan kutucuğa gksu nautilus yazalım ve root olarak key'imizi /home dizinimize taşıyalım. 4- Tekrar Sistem > Yönetim > Yazılım Kaynakları yolunu takip edelim ve bu kez "Kimlik Sınaması" sekmesini açarak "Anahtar Dosyayı İçe Aktar"a tıklayalım. Yeni oluşturduğumuz ve /home dizinimize taşıdığımız belgeyi gösterelim. Artık "yazılım Kaynakları" ile işimiz bitti. 5- Synaptic'i açıp "Yeniden Yükle'ye tıklayalım ki depomuz güncellensin. Ara kısmına "xbmc" yazalım. "xbmc" ve "xbmc-standalone" paketlerini kuralım. Eğer Synaptic'te bu iki paket görünmüyorsa yine panik yok. Konsoldan da kurulumu yapabiliriz. Konsolu açıp "sudo apt-get install xbmc" ve "sudo apt-get install xbmc-standalone" komutları ile media merkezimizi bilgisayarımıza kurabiliriz. KURULUM http://xbmc.org/home adresinden ulaşabilceğiniz XBMC'nin Ubuntumuza nasıl kurulacağına geçelim. 1- Sistem > Yönetim > Yazılım Kaynakları'nı açalım. http://www.xbmc.org/ sudo apt-get install xbmc-standalone komutları ile media merkezimizi bilgisayarımıza kurabiliriz. XBMC, geniş kütüphanesi sayesinde hemen hemen tüm ses ve görüntü formatlarını desteklediği gibi isteğinize göre özelleştirebileceğiniz bir arayüze sahiptir. Plug-inler ve Scriptlerle beğeninize göre düzenleyebileceğiniz XBMC, bir web sunucusu olarak da hizmetinizde... Bu kadar özellik sizin için yeterli değilse işte XBMC'nin yapabildiklerinden bazıları: Slayt gösterisi, hava durumu bilgisi, RSS. Ses için: ReplayGain, Gapless, Crossfading ve Pre-Amplification Playback. Murat CEBİR S AMBA 18 LINUX DOSYA PAYLAŞIM SISTEMLERI, Program : SAMBA Site : www.samba.org Nedir ? : Samba açık kaynak kodlu SMB/CIFS sistem ve protokolleri ile çalışan dosya ve yazıcı paylaşım, sunucu ve istemci özelliği taşıyan özgür bir yazılımdır. “ "Samba is an Open Source/Free Software suite that provides seamless file and print services to SMB/CIFS clients." Konsoldan “ whatis “ komutu karşılığı olarak samba hakkında aldığım bilgi “ Windows SMB/CIFS fileserver for UNIX ( UNIX için windows SMB/CIFS protokolleri destekli dosya sunucusu)“ şeklindedir. Doğum Tarihi : 1992 SMB nedir ? CIFS Nedir ? : Sunucu mesaj kütüğü “Server Message Block” ( Protokol ) : Ortak yerel dosya sistemi ”Common Internet File System” ( Protokol ) Linux sistemler yapı itibari ile istemcilerin ana sunucuya bağlanması ve işlemleri ana sunucu üzerinde yapması esasına dayanır. Günümüzde bu sistemler Thin Client olarak ta pazarlanmaktadır. Bu yapı gereceğin uzun vade dosyaların dışarı açılmasına gerek duyulmamıştır duyulduğu zamanlarda da NFS ( Network File System – Ağ Dosya Sistemi ) sistemi kullanılmaktaydı. Zaman içerisinde UNIX sistemlere alternatif başka sistemlerin çıkması bilgisayarların hızlı yayılması ile Unix ve diğer sistemler le dosya paylaşımı konusunda konuşacak veri alışverişlerini düzenleyecek bir sisteme ihtiyaç duyuldu. Günümüzde bu işlemleri SAMBA yapmaktadır. Samba her Linux sunucu sistemi gibi kolay kullanılabilir, kolay yönetilebilir ve yüksek sitres altında sorunsuzca çalışabilen bir sistemdir. Sambanın direk olarak kendisinden değilde bağımlı olduğu platformun kullandığı disk yapısı sistemlerinden dolayı ( EXT2, EXT3 ) dosya paylaşımında çokca sorun olan küçük boyutlu çok dosya ya da çok büyük boyutlu dosyalarda sorun yaşamamaktadır. Tabi bu marifet dosya paylaşım sunucusuna değil dosyayı üzerinde tutan ve adresleyen dosya sistemine bağlı olsa da bunları sunabilmek çok büyük ayrıcalıktır. Samba sitesinde verilen bilgiye göre samba bir çok işletim sistemi ile sorunsuzca çalışmaktadır, bunlar arasında Windows ( 9X,NT ),UNIX, Linux, IBM System 390, OpenVMS gibi işletim sistemleri bulunmaktadır. Samba yapı itibari ile iki ana sistemden oluşmaktadır. Bunlar sunucu sistemi samba “ SMB/CIFS file, print, and login server for Unix ( Unix için SMB/CIFS prptokolleri ile çalışan Dosya, Yazıcı Oturum açma sunucu “ şeklinde tanımlanmaktadır, diğer sistem ise istemci sistemi olan samba-client sistemidir ve aptitude için herhangi bir açıklama verilmese de isim itibari ile açıklama çıktısı “ SMB/CIFS file, print, client for all system ( Tüm sistemleri için dosya ve yazıcsı paylaşım istemcisi) “ şeklinde olmalıdır. Bu iki sistem yanında SMB/CIFS uyumlu sistemlerin UNİX sistemlere mount ( bağlamak, montaj etmek ) edebilmek için smbf “Samba file system utilities ( Samba dosya sistemi aracı )”sistemine ihtiyaç duymaktadır. Artık sistemimizde bir dosya sunucu kurmak için, bir başka dosya sunucusuna paylaşmak için gerekli protokol, sistem ve araçları biliyoruz. Artık bir dosya sunucusu kurabiliriz ya da bir dosya sunucusuna bağlanabiliriz gibi düşün sekte sistem pek bu şekilde işlemiyor. Bir dosya sunucu sistemi kurmak için öncelikli olarak dosya okuma ve dizin izinleri sistemlerine de bir miktar deyinerek ileride oluşabilecek hataların önüne geçebiliriz. Dosya sistemlerinde izinler en küçük birimden en üst birime şeklinde değil en üst birimden en küçük birime şeklinde ilerlemektedir. A dizini altında bulunan B dizinini x kullanıcısına paylaştıracaksak öncelikli olarak x kullanıcısının A dizinini okuma ya da yazma hakkına sahip olması gerekmek dedir. En üst dizine izin verildikten sonra altında bulunan dizinlere tekrar takrar özelleştirilmiş dizinler vermek mümkündür. Gerçek bir örnek vermek gerekirse root kullanıcısının sahip olduğu home dizinin izinleri rwxr-xr-x şeklinde verilmelidir ki alt dizini olan e-diablo dizinine rwx------ şeklinde izin verilip sadece e-diablo kullanıcısının yazma, okuma ve çalıştırma izni verilsin. Bir başka sistemde ise kullanıcıların ortak dizinleri vardır. Burada bulunan sistem gurup hakları şeklinde tanımlanır. Burada ki amaç guruba özel bir ortak klasörü tanımlaması yapmak olduğu için kullanıcılarımızın doğal olarak aynı gurup içerisinde olması gerekmektedir ve dizin izni olarak rwxrwx--- şeklinde tanımlanmalıdır. Tabi ki üst dizinde sadece sahibi olan kişiye rwx izinleri verilerek te sonra açılan her dizini kullanıcısına atayarak ta bu işlem yapılabilir. Ama sıtabil olanın bir üstte verdiğim örnek olduğunu şahsi fikir olarak beyan etmek isterim. Donanım gereksinimleri olarak çok fazla dosya okuma ve yazma işlemi yapacağı için mümkünse raid 0 ve ütü okuma ve yazma hızını artırmaya yönelik disk sistemi, Ethernat adaptörü olarak 10/100 kullanılsada bu saniyede 12 MB civarı veri transferi demektir ki düşük gelebilir bu nedenle 100/1000 civarı bir ethernet mümkünse birden fazla ethernet adaptörü kullanmak karlıdır. Bunun dışında dosya sunucuları bol miktarda Ram ihtiyacı duymaktadır. İşlemci olarak yüksek Bir şey gerek yok tek core li bir sistem binlerce kişiye hizmet verebilmek için yeterli olacaktır. Board dışında diğer bileşenler tamamen kullanıcı ihtiyacına yöneliktir ve ses, ekran kartı ( ilk kurlum dışında ) gibi sistemler ihtiyaç fazlasıdır. “Artık Linux den dosya paylaşım sunucu olurmu ?”sorusunun yanıtını biliyoruz ve Debian temelli Ubuntu dağıtımımız üzerinde yeri geldiğinde binlerce kullanıcıya SMB/CIFS sistemleri hizmet verebilecek bir dosya sunucu kurup işletebiliriz. Samba dosya paylaşımları kullanıcı tanımlama sistemi ile yapmaktadır. Kullanıcı tanımlama sistemleri Linux yerel kullanıcı sistemi PAM, LDAP (Hafifletilmiş dizin erişim protokolü, Lightweight Directory Access Protocol ) olarak mevcuttur. LDAP sistemi sayesinde Windows Domain sisteminde kullanılan LDAP sistemi ile de sorunsuzca çalışmaktadır. http://www.kubuntu.org E rt a n E R B E K 19 Sunucu için gereklilik listesi olarak ilk başta bir işletim sistemine ihtiyacımız var ben bu sistem için ) Ubuntu 8.10 server 32Bit ( Benim 32 bit seçme nedenim kuracağım sunucun test amaçlı olmasıdır, büyük dosya paylaşım sistemlerinde 64 bit seçmenizi kesinlikle öneririm oldukça fazla hız farkı olacaktır. ) sistemini seçtim. Bunun başlıca nedenleri Debian sistemine göre daha geniş olan sürücü desteği, güncel sürümlerin daha kısa sürede depolarda yer bulabilmesi var. Sunucu sistemimizin kurulumundan sonra samba, smbfs, samba-client araçları da sistemimize yüklenmelidir. “ Şu an hali hazırda bulunan sürümler 2013 yılına kadar desteği devam eden 8.04 LTS sürümü ve 9.10 sürümleridir. Gerekli paketleri yüklemek için konsoldan “ root@ubuntu-server:~# aptitude install samba samba-client smbfs “ komutunu verelim. Bu arada bu tür sunucu işlerinde root olarak ana sistemi kurmak birçok izin işlemi uğraşmamızın önüne geçecektir. Ama root olmadan kurmak isteyen kullanıcılar aynı komutu “root@ubuntu-server:~# sudo aptitude install samba samba-client smbfs” şeklinde verebilirler. Bu komutu vermemle beraber sistemime kurulacak olan bazı ek dosyalarda mevcut bunlar “ libcups2{a} libtalloc1{a} libwbclient0{a} samba samba-common{a} smbclient smbfs update-inetd{a} “ şeklinde ve gereli kütüphane ya da sitemin çalışması için gerekli bazı diğer bileşenler. Bu bileşenlerin toplamı ortalama olarak 15,9MB civarında. Samba sunucu sistemi bazı ek bileşenler ve ayar dosyaları kullanmakta. Bunların en başında genel sistem ayarlarının ve paylaşımların bulunduğu smb.conf ( Ayrıca incelenecek )dosyası. Bu dosya içinde en kısma ya da uygun yerlere gerekli paylaşım dizinlerini ve haklarını yazarak dosya sistemimizde bulunan dizinleri paylaşabiliriz. Samba sunucu Ubuntu tarafında kurulurken bazı sorması gereken sorular otomatik olarak atlanıyor ve sistem tarafından cevaplanıyor bu durumda konsoldan “dpkg-reconfigure samba” komutu ile ( root harici kullanıcılar sudo kullanacak ) sambayı yeniden ayarlıyoruz. Burada sorulan iki basit temel soru var birinci soru sambanın çalışma şkli intd servislerine mi eklensin yoksa kendi başına bir sunucu olarak çalışıp çalışmıyacağı ben kendi başına çalışmasını tercih edenlerdenim, ikinci soru ise sistemde kullanılacak olan password sisteminin nasıl olması gerektiği ki burada karışık şifreleme ve PAM dışı şifre kullanabilmek için smpasswd nin etkinleştirilmesi. Diğer dağıtımlarda fazladan birkaç soru daha var bunlar çalışma gurubu, wins olarak kullanılıp kullanılmayacağı gibi ama biz şimdi Ubuntu Dosya Sunucu sistemi kurduğumuza göre o kısımlar pek bizi ilgilendirmiyor. Samba sunucu sisteminde dosya paylaşımları yine kullanıcıya istinaden yapılmakta ve kullanıcının şifresi ilede doğrulama işlemi yapılmaktadır. Sistemde bulunan kullanıcılar diğer dağıtımlarda direk olarak sambanın password databases dosyasına eklensede Ubuntuda bu şekilde değil. Kullanıcılarımızı bu databases e eklemek için smpasswd komutunu kullanıyoruz. Kendi sistemimde bulunan e-diablo adlı kullanıcıyı samba ile etkileşebilir hale getirmek için “ root@ubuntu-server:~# smbpasswd e-diablo “ komutunu vererek paylaşımlara ulaşmak için ediablo kullanıcısına sistem de bulunan şifresi haricinde isterseniz aynıda olabilir ama bu bir risktir, şifre veriyoruz. Samba sisteminin paylaşım ayarlarını görmek ve ayarladığımı paylaşımların doğru çalışıp çalışmadığını görmek için kullanılan komutumuzun adı testparm komutudur. Örnek olarak hiçbir ayarı değiştirilmemiş olan smb.conf dosyasına işlişkin çıktı alttaki gibidir. root@ubuntu-server:~# testparm Load smb config files from /etc/samba/smb.conf Processing section "[printers]" Processing section "[print$]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] server string = %h server (Samba, Ubuntu) map to guest = Bad User obey pam restrictions = Yes passdb backend = tdbsam pam password change = Yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . unix password sync = Yes syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No usershare allow guests = Yes panic action = /usr/share/samba/panic-action %d [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/printers “usershare allow guests = Yes” bu satır paylaşımlara guest olarak erişilebileceği anlamına gelir ki istenmeyen bir durumdur biz sisteme erişmeye çalışan herkezin şifresini doğrulatmasını istemekteyiz bu nedenle “ root@ubuntu-server:~# nano /etc/samba/smb.conf “ komutu ile ki isterseniz gedit de kullanılabilir, smb.conf ( genel olarak sambanın paylaşım ve sistem ayarlarının yapıldığı dosyadır. ) içinde bulunan “usershare allow guests = Yes” satırını “usershare allow guests = no” olarak değiştiriyoruz. Aynı zamanda map edilmesini E rt a n E R B E K 20 ( kullanıcı adı şifresi olmadan paylaşımların görülmesini önemel için ) “map to guest = bad user “ dizinin başına # ( diyez ) işareti koyarak samba tarafından dikkate alınmamasını sağlıyoruz sağlıyoruz. Samba sunucunun bu yaptığımız ayarları geçerli kılabilmesi için “ root@ubuntuserver:~# /etc/init.d/samba restart “ komutunu vererek sambayı yeniden başlatıyoruz. Daha sonra sonucu görebilmek için testparm komutunu veriyoruz. root@ubuntu-server:~# testparm Load smb config files from /etc/samba/smb.conf Processing section "[printers]" Processing section "[print$]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] server string = %h server (Samba, Ubuntu) obey pam restrictions = Yes passdb backend = tdbsam pam password change = Yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . unix password sync = Yes syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No panic action = /usr/share/samba/panic-action %d [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/printers Çıktı bu şekilde olacaktır. Artık sadece kullanıcı adı ve şifresi doğrulaması yapılması durumunda kullanıcılar sunucumuza girenilecektir. Smb.conf dosyası sambanın genel ayarlarının ve paylaşımlarının verildiği dosyadır. Bu kısımda yapmamız gereken artık paylaşımları açmaktır ki buarada ilk açılabilecek apylaşım her kullanıcının kendi home dizinine ulabilmesine izin vermektir bunun için “ root@ubuntu-server:~# nano /etc/samba/smb.conf “ komutu ile http://www.ubuntu.com tekrar smb.conf dosyamız giriyoruz ve sırası ile [homes] comment = Home Directories browseable = yes create mask = 0700 directory mask = 0700 valid users = %S Dizinlerinin başında bulunan “;” noktalı virgül işaretini kaldırıyoruz. Bu dizinleri incelersek sırası ile “ [homes] “ paylaşımın ağ üzerinde görülecek adı “ comment = Home Directories “ paylaşımın ağ üzerinde deki açıklaması, “ browseable = yes “ ağ üzerinde dosya sunucuna girildiğinde görülüp görülemeyeceği ( eğer no seçilirse direk olarak paylaşımın adı yazılmalı “//sunucu adı/paylaşım adı “ şeklinde ), “create mask = 0700” bu paylaşım içinde yaratılacak dosyalara verilecek kullanıcı yetkileri ki bu rada 0700 ın karşılığı rwx-----şeklindedir. Bunun anlamı kullanıcının oluşturduğu dosyalara sadece kullanıcı erişsin, silsin ve kullanabilsin. “ directory mask = 0700 “ yaratılacak dosyalar dışında dizinlerede örnek ön tanımlı izinleri veriyoruz. “ valid users = %S “ kısmı ile kullanıcıların doğrulama sonucu doğrulama yapılan sistemde ( burada PAM oluyor ) belirtilen dizine ulaşmasını sağlıyoruz. Sonrasında bu işlemlerin tamamlanması için samba yeniden başlatılmaı, bu işlemlere istinaden alınmış olan testparm çıktısı altta olduğu gibidir. root@ubuntu-server:~# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] server string = %h server (Samba, Ubuntu) obey pam restrictions = Yes passdb backend = tdbsam pam password change = Yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . unix password sync = Yes syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No panic action = /usr/share/samba/panic-action %d E rt a n E R B E K 21 [homes] comment = Home Directories valid users = %S create mask = 0700 directory mask = 0700 [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/printers İstemediğimiz bir paylaşımı Ya da paylaşımın durdurulmasını istediğimiz bir paylaşımının satırlarının başına “#” ya da “ ; “ koyarak aktifliğini sonlandırabiliriz. Smb.conf dosyası aynı zamanda ağımız ilegili ayarların yapıldığı dosyadır örnek olarak hangi ethernet karı dinlenecek, cihazımızda birden fazla ip varsa bu iplerden hangisi dinlecek, çalışma gurubu adı ne olacak, sistem wins sunucu olarak kullanılacak mı, güvenlik sistemi neye istinaden uygulanacak ( Domain use, local user ) gibi ayarlarda yapılmaktadır. Bunlardan bazıları şu şekildedir. “workgroup = WORKGROUP” sistemimizin hangi çalışma gurubuna dahil olacağı. “server string = %h server (Samba, Ubuntu)” sunucunun ağ üzerinde görüneceği isim “ %h” ile sunucu kendi host adını verecektir. “wins support = no” sistemin wins isteklerine cevap verip vermiyeceği. “wins server = w.x.y.z” ağda bulunan bir wins sunucuya isim sorgularının yaptırılması için ( Bu sistem boot modunda çalışmaz ya sunucusunuzdur ya da istemci sinizdir. ) “interfaces = 127.0.0.0/8 eth0” hangi ethernet arayüzünün dinleneceği ve hangi ip blokunun girişlerine izin verileceği. “bind interfaces only = yes” bahsi geçen ethernet arayüzü dışında gelen isteklere cevap vermemek için. Diğer ayarlar için samba nın kendi sitesinde bulunan howto kısımlarına bakabilirsiniz. Artık samba sunucumuz kuruldu sistemimizde home dizinlerimizi erişime açtık, her kullanıcı kendi dizinine direk olarak ulaşabiliyor. Şimdide ortak bir klasör oluşturalım. Sırası ile alttaki komutları takip edebilirsiniz. root@ubuntu-server:~# cd /home/ root@ubuntu-server:/home# mkdir filedepo root@ubuntu-server:/home#chmod 777 filedepo root@ubuntu-server:/home#nano /etc/samba/smb.conf Dosyanın en altına bu satırları ekleyin. [Genel Dosya Sistemi] comment = Genel Dosya Paylaşım Alanım path = /home/filedepo create mask = 0777 directory mask = 0777 browseable = yes Şimdi sadece bir kullanıcıya özel bir paylaşım oluşturalım. root@ubuntu-server:~# cd /home/ root@ubuntu-server:/home# mkdir net-e-diablo root@ubuntu-server:/home#chown e-diablo:e-diablo net-e-diablo root@ubuntu-server:/home#chmod 700 net-e-diablo root@ubuntu-server:/home#nano /etc/samba/smb.conf Dosyanın en altına bu satırları ekleyin. [e-diablo] comment = e-diablo için özel paylaşım path = /home/fnet-e-diablo create mask = 0700 directory mask = 0700 valid user = e-diablo browseable = yes Şimdi sadece bir guruba özel bir paylaşım oluşturalım. Bu kısımda bahsi geçen isimde bir gurubunuz ve bu guruba dahil kullanıcılarınız olması gerekmektedir. root@ubuntu-server:~# cd /home/ root@ubuntu-server:/home# mkdir net-group root@ubuntu-server:/home#chown root:net-group net-group root@ubuntu-server:/home#chmod 770 net-group root@ubuntu-server:/home#nano /etc/samba/smb.conf Dosyanın en altına bu satırları ekleyin. [net-group] comment = net-groupiçin özel paylaşım path = /home/fnet-group create mask = 0770 directory mask = 0770 valid group = net-group browseable = yes E rt a n E R B E K 22 Dosya paylaşımında ilerleyen zamanlarda smb.conf dosyasının artık takip edilemez kadar çok satırdan oluşması gibi sorunlar var ( bu sorun samba için değil yönetici için geçerli ) bu nedenle bu dosyaları guruba özel kişiye özel olarak ayrı ayrı oluşturarak include komutu ile smb.conf dosyasına eklemek yüzlerce kişilik bir ağda hem yönetimi hem derli toplu olmayı sağlayacaktır. Samba üzerinde dosya erişim hakları ile oynayarak, paylaşımda verilecek haklarla oynayarak çok farklı şekillerde paylaşım ağaçları oluşturulabilmektedir. Fakat samba sadece bir dosya paylaşım sunucusu değildir birçok özelliği üzerinde birleştirmiş çok üstün bir sunucu sistemidir. Daha ayrntılı bilgi ve daha ileri seviye kurulum ve yapılandırmalar için www.samba.org sitesini ziyaret etmeniz kesinlikle önerilir. Şu an courier mail sunucu için php tabanlı bir arayüz yazmakla meşgulüm tabi arada php de öğreniyorum :) bu işimi bitirdiğimde ilk hedefim samba sunucu için php tabanlı bir arayüz yazmak olacak. DAHA FAZLASI IÇIN http://www.samba.org E rt a n E R B E K G EDIT, KWRITE, KATE VE MOUSEPAD - II Metin Editörleri yazı dizisinin bu kısmında, en çok kullanılan masaüstü ortamlarının editörlerini, yani Gnome'un Gedit'i, KDE'nin Kate'i, Kwrite'i ve XFCE'nin Mousepad'inin ufak bir incelemesini yapacağız. İlk olarak Gnome'un, yani dolayısıyla Ubuntu'nun metin editörü olan Gedit'ten bahsedeceğiz. G E DI T 23 Ctrl + F.........................: Arama diyaloğu açar. Ctrl + G........................: Sonrakini bul. Ctrl + Shift + G............: Öncekini bul Ctrl + H........................: Bul ve Değiştir diyaloğunu açar. F7.................................: Yazım denetimi yapar. F9.................................: Sol paneli açar. Gnome'un varsayılan metin düzenleyicisi olan Gedit, kolayca anlaşılabilen ve yetenekli bir yapıya sahiptir. Bir metin editöründe olması gereken arama, yer değiştirme, dosya istatistikleri görüntüleme gibi özelliklerin yanında, eklenti desteği, sayısız programlama dillerinde kod renklendirme, yazım denetimi, sekme desteği gibi özellikler sunar. Eklenti desteğinden bahsetmek gerekirse, eklentileri "Edit > Preferances > Plugins" yolunu kullanarak düzenleyebilirsiniz. Gedit'in içinde hazır gelen veya internetten edinilebilen onlarca eklenti mevcuttur. Eklentileriniz için iyi bir kaynak olarak "http://live.gnome.org/Gedit/Plugins" adresini kullanabilirsiniz. Kullanışlı Eklentiler: Zoom, Gedit'te en çok aranan özelliklerden biri olan metni yakınlaştırma özelliğini sunar. Split pane: Çok kullanışlı olan bu eklenti ile Gedit'i iki parçaya bölebilir, aynı belgenin farklı kısımlarını, aynı anda inceleyip düzenleyebilirsiniz. Reload current page: Vi editöründeki ":e" komutunun eşdeğeri, yani belgeyi diskten tekrar okuyup açar. Python debugger integration: Python programcılarına, kod hatalarını kolayca görme imkanı sunar. Insert file: Bir dosyanın içeriğini aktif belgeye ekler. Automatic code-completion: Otomatik kod tamamlama. C ve C++ programcılarına yararlı olacak bir özellik... Klavye Kısayolları: Ctrl + S, Ctrl + V gibi kısayolların yanında Gedit, aşağıdaki kısayolları da kullanır. Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl Ctrl + + + + + + + Alt + PageUp.....: Soldaki sekmeye geçer. Alt + PageDown: Sağdaki sekmeye geçer. W.......................: Sekmeyi kapatır. Shift + L............: Bütün sekmelerde açık olan belgeleri kaydeder. N........................: Yeni belge yaratır. O........................: Bir belgeyi açar. Q........................: Programdan çıkar. KWRITE - KATE Kate ve Kwrite, KDE'nin varsayılan metin düzenleyicileridir. KDE masaüstü ortamında, Kate ve Kwrite adında iki metin düzenleyicisinin gelmesinin nedeni, amaçlarının farklı olmasıdır. K Masaüstü Ortamında Kwrite, Kate'ye göre basit metin düzenleme işleri için idealdir. Kwrite'ın, genel bir metin düzenleyicisinin bütün özellikleri ve eklenti desteği mevcuttur Kate ise; programlama ve scripting gibi daha gelişmiş metin işlemleri için tercih edilebilir. Kate'te varsayılan olarak oturum desteği, dosya gezgini, sık kullanılanlar menüsü, syntax highlighting, otomatik girintileme gibi özellikleri de sunulur. Aynı zamanda geniş bir eklenti havuzu da mevcuttur. Eklentilerle zenginleştirilmiş bir Kate, rahatlıkla bir programlama IDE'si olarak kullanılabilir. Kate'in "Araçlar"(Tools) menüsünden, gelişmiş özelliklerinin çoğuna ulaşılabilir. Utku DEMİR 24 Kate'in oturum desteği, birden çok belge ile çalışanlara kolaylık sağlar. Belgelerinizi bir oturuma bağlayarak Kate'in, açılışta istediğiniz bütün belgeleri açmasını sağlayabilirsiniz. Bu, eğer programcı olup da birden çok kütüphane dosyası ile ilgileniyorsanız, veya birden çok ayar dosyası ile uğraşıyorsanız, çok işinize yarayabilecek bir özelliktir. kısmen eski bilgisayarlarınızda küçük işlemlerde kullanabilirsiniz. Buraya kadar okuduysanız teşekkürler. Çok çok az ayrıntı vermiş olsam bile, en azından biraz aşina olmuşsunuzdur umarım, bu üç editöre. Kate'in göze çarpan özelliklerinden birisi de Vi önyüzü olarak da kullanılabilmesidir. "Düzen"(Edit) sekmesinden veya "Meta + Ctrl + V" kısayolu ile açılabilen bu özellik, Vi komutlarının Kate ile kullanılabilmesini sağlar. Vi ile ilgili daha ayrıntılı bilgiyi dergimizin bir önceki sayısından(Ağustos 2009) ulaşabilirsiniz. Sonuç olarak Gnoma'da Gedit'i, KDE'de Kwrite'ı, eğer daha gelişmiş bir editör arıyorsanız Kate'i, veya az sistem kaynağı tüketen seri bir editör arıyorsanız Mousepad'i kullanabilirsiniz. Kwrite ve Kate KDE'de varsayılan olarak gelmektedir. Eğer (x)Ubuntunuza kurmak isterseniz, basitçe "sudo apt-get install kate kwrite" komutunu verebilirsiniz. Kwrite ve Kate KDE'de varsayılan olarak gelmektedir. Eğer (x)Ubuntunuza kurmak isterseniz, basitçe sudo apt-get install kate kwrite komutunu verebilirsiniz. MOUSEPAD XFCE masaüstü ortamının metin editörü olan Mousepad'in, XFCE'nin genel yapısı gereği, basit metin işlemlerinden daha fazla bir özelliği yoktur. Eğer biliyorsanız Windows 'taki NotePad 'e benzer olarak düşünebilirsiniz. Çok hafif olan ve gerçekten hızlı çalışan bu editörü http://www.ubuntu-tr.org veya İyi çalışmalar :) Utku DEMİR G NOME SHELL 25 GNOME SHELL - GNOME'UN GELECEKTEKI ARAYÜZÜ 2.2 Derleme betiği 1 . N E DI R ? Aşağıdaki komutla ev dizinimize derleme betiğini indiriyoruz. Gnome Shell, Gnome'un masaüstü ve pencere yönetimini ileride devralacak projesidir. Intel'in Metacity ağacından geliştirdiği Mutter projesi temel alınarak, Metacity'nin yerini alacak şekilde kodlanmaya başlanmıştır. Gnome'un 2.28 sürümü ile kullanıcıların beğenisine sunulacak bu yeni masaüstü ortamı, isteğe bağlı olarak kullanılabilecek. Kurmak istemeyen kullanıcılarsa klasik sistemle yola devam edebilecekler. Ancak Gnome 3.0 sürüme terfi ettiğinde isteğe bağlı seçim kaldırılıp, proje Gnome'un ön tanımlı arayüzü haline gelecek. curl -O http://git.gnome.org/cgit/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh Derleme hazırlığı için betiği çalıştırıyoruz. sh gnome-shell-build-setup.sh Böylece ilgili paketler sisteme iniyor ve derleme aşaması için ev dizinimizde jhbuild dosya ve dizinleri oluşturuluyor. 2.3 Derleme Aşağıdaki komutla derlemeye geçiyoruz. jhbuild build Not: Derleme aşamasında eğer eksik paket iletisi alırsanız depolardan kurmanız yeterli olacaktır. Paketlerin indirilmesi ve derlenmesi biraz zaman alacaktır. Bir kahve molası boşluğu doldurmaya yeter. 2. KURULUM 2.1 Kurulum araçları Sistemde kurulu değilse aşağıdaki paketleri kuruyoruz. build-essential meta pakettir ve derleme için bazı araçları içerir. sudo aptitude install curl jhbuild build-essential git Serkan ÇALIŞ 26 3. Çalıştırma Gnome-shell'i iki türlü kullanabilirsiniz. Birincisi gnome-panel ve metactiy'yi ezerek kendisinin masaüstüne hükmetmesini sağlayarak, ikincisi ise bir pencere içinden. İkinci yol şimdilik pek sağlıklı çalışmadığından burada sadece ilk yolu tarif ediyoruz. Derleme aşamasından sonra ev dizininizde gnome-shell adında yeni bir dizin oluşacaktır. Gnome-shell'i bu dizin içindeki alt dizinlerden çalıştıracağız. Öncelikle ilgili dizine geçelim: komutuyla çalıştıralım. Böylece Gnome'un gelecekteki yüzünü denemeniz için önünüzde hiçbir engel kalmıyor. Kapatmak için komutu verdiğiniz terminal penceresinde Ctrl+C yapmanız yeterli. Ancak gnome-shell ara ara çakılabiliyor, aklımızda tutmakta fayda var. Böyle bir durum olduğunda Ctrl+Alt+F1 ile konsoldan giriş yapıp süreci sonlandırabilirsiniz. Gnome-shell'in çok kaliteli bir görüntüye sahip olmasa da küçük bir tanıtım videosunu dergi ile beraber gelen dizinde bulabilirsiniz. DAHA FAZLASI IÇIN cd ~/gnome-shell/source/gnome-shell/src Ardından: ./gnome-shell --replace h t t p : / / l i v e . g n o m e . o rg / G n o m e S h e l l Serkan ÇALIŞ T ERMINAL KULLANIMI Herkese merhaba! Bu yazımız, Sudo 10. sayıda başlattığımız yazı dizisi olan A'dan Z`ye Ubuntu yazı dizisinin 2. bölümünü oluşturuyor. Bu bölümde Terminal'in avantajlarını anlatacağız. Terminal, Linux kullanacak herkesin bilmesi gerken bir uygulama aracıdır. Bir Linux`u sadece Terminal programı ile yönetebilir ve tüm isteklerinizi yaptırabilirsiniz. Tabi ki, bunun altında yatan tek şey doğru komutu bulup uygulamaktır. Yazı içeriğinde, Ubuntu-tr forumundaki yeni kullanıcıların sorunları üzerine ve bir kaç genel bilgi amacında Terminal'deki komutların önemini vurgulamış olacağız. Yazıya girişimiz, bilgisayarımızda kullandığımız donanım bilgilerini hangi komutlarla nasıl öğrenebileceğimizi oluşturuyor. Ubuntu-tr'yi çok takip ediyorsanız mutlaka "lspci" ve "lsusb" komutlarını ve bunların ekrana yansıttığı bilgileri, kullanıcıların foruma yazdığını görmüşsünüzdür. Bu komutlardan başlayarak yazımıza giriş yapalım. lspci: Bu komut bilgisayarımızda bulunan PCI (Peripheral Component Interconnect) yerel veri yolunu kullanan tüm aygıtların bir listesini verir. Bu şekilde bilgisayarımızdaki PCI aygıtlarımızı öğrenmiş oluruz. Örnek vererek konuyu pekiştirelim. Windowsta Ekran kartımızın adı ATI Radeon 4870 bakalım Linux bunu bize nasıl gösterecek: L S PC I 00:00.0 Host bridge: Intel Corporation 82975X Memory Controller Hub (rev c0) 00:01.0 PCI bridge: Intel Corporation 82975X PCI Express Root Port (rev c0) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01) 05:00.0 VGA compatible controller: ATI Technologies Inc RV770 [Radeon HD 4870] 02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 20) 03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 20) lspci komutu, hep yukarıdakine benzer bir çıktı verir. Bu çıktı üç aşamadan oluşur: 1. Aşama kullandığımız donanımın kullandığı veri yoludur. Ekran kartımız için geçerli olan veri yolu 05:00.0'dir. 2.Kısım veri yolunu kullanan donanımın ne olduğunu belirtir. VGA compatible controller. 3. Kısım da kullandığımız donanım bilgisini verir. ATI Technologies Inc RV770 çekirdeğine sahip bir tane ATI 4870 kullanıyoruz. lspci hakkında bilmemiz gerekenler bu kadar... 27 lsusb: Bu komut bilgisayarımızda bulunan USB (Universal Serial Bus) aygıtların bir listesini gösterir. lspci komutu ile arasındaki tek fark USB aygıtlarına bakmasıdır. Ekrana verdiği çıktı lspci'dakine benzer. LS U S B Bus 001 Device 005: ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter Bus 002 Device 002: ID 046d:c51a Logitech, Inc. MX Revolution/G7 Cordless Mouse Bus 002 Device 003: ID 046d:c30f Logitech, Inc. Logicool HID-Compliant Keyboard (106 key) Buradaki sıralamada ID kısmı önemlidir. ID kullanılan chipin sistem tarafından tanındığını gösterir. Eğer sistem chipi tanımazsa lsusb çıktınızda ID xxx:xxx kısmından sonra hiçbir şey yazmaz. Bir örnek verelim: Bus 004 Device 001: ID 1d6b:0001 Bu aygıtlar kernelin sağladığı sürücüler dışında, firmware veya özel sürücülerle aktif edilebilir. Donanıma sahip sürücü veya firmware yoksa, bu konuda yapabileceğiniz en büyük beklenti Linux'tan değil, kullandığınız donanımı üreten firmadan olmalıdır. Eğer suçlu aramak istiyorsanız tek suçlu donanımı üreten firmadır. Bu donanımlar dışında, sisteminizde ID`si tanınmış ama sistemde çalışmayan bazı donanımlar da olabilir. Büyük bir kısmı TV kartı, Kamera gibi aygıtlardan oluşan bu kesim, özel firmware veya sürücülerle, diğer örneğimizdeki donanımlara göre çalıştırılması daha yüksektir. lswh, lspci ve lsusb ye göre daha geniş bilgiler sunar. Donanım listeleyen bir programdir. Ubuntu'da bu program ön tanımlı olarak kurulu geliyor. Gnome için "lshw-gtk" paketini kurarak bilgisayarınızdaki aygıtlar hakkında daha geniş bir bilgi alabilirsiniz. lspci çıktımızda, ekran kartı hakkında verdiğimiz biligileri burada, lshw kullanarak almaya çalışalım. Aradaki fark ne kadar, onu hep beraber görelim. lshw -C display WARNING: you should run this program as super-user. *-display description: VGA compatible controller product: RV770 [Radeon HD 4870] vendor: ATI Technologies Inc physical id: 0 bus info: pci@0000:05:00.0 version: 00 width: 64 bits clock: 33MHz capabilities: bus_master cap_list Ö m e r K IR M IZ I 28 Bu ciktimiza göz gezdirirsek bizim icin önemli olan kisim configuration bölümüdür. Bu bölümde ekran kartimiz icin Linux tarafindan kullanilan sürücü ve modül gösterilmektedir. Bu ciktiya göre ekran kartimiz linux altinda düzgün birsekilde calisiyor diyebiliriz. lshw komutunu degisik secenekler kullanarak kullandigimiz donanimlar hakkinda genis bilgilere sahip olabiliriz. Örnek cok secenekli bir lshw komutu: sudo lshw -C system -C disk -C memory -C network -C processor -C display -C volume -C multimedia dpkg -l | grep java ii java-common 0.30ubuntu4 ii sun-java6-bin 6-14-0ubuntu1.9.04 Environment (JRE) 6 (architecture dependent ii sun-java6-jre 6-14-0ubuntu1.9.04 Environment (JRE) 6 (architecture independe ii sun-java6-plugin 6-14-0ubuntu1.9.04 Java SE 6 Base of all Java packages Sun Java(TM) Runtime Sun Java(TM) Runtime The Java(TM) Plug-in, Uyguladigimiz bu komut ile sistem bilesenlerimiz hakkinda detayli bir bilgi edinmis oluruz. Grep Global search for a Regular Expression and Print out matched lines bas harflerinden olusan grep komutu Linux sistemleri icinde önemli yer tutan bilesenlerden biridir. Ken Thompson tarafindan gelistirilen bu program sistemde aramalarda filtremele görevi yapar. Örnekle bu konuyu daha iyi anlasilir yapalim. Ilk bastaki lspci ve lsusb ciktilarimiz üzerinde grep kullanarak bir kac cikti olusturalim. LSPCI | GREP VGA 05:00.0 VGA compatible controller: ATI Technologies Inc RV770 [Radeon HD 4870] LSUSB | GREP LOGITECH Komutlari yorumlarsak lspci ciktisinda VGA ile bölümü, lsusb ciktisinda da Logitech olanlari göster dedik. Grep komutunu istersek bir yazi icinde de kullanabiliriz. Örnegimizde /boot/grub/menu.Ist dosyasinda Windows yazisi varmi yokmu ona bir bakalim. Sizce Windows yazisini görebilecekmiyiz? cat /boot/grub/menu.lst | grep Windows grep -i windows /boot/grub/menu.Ist Windows 95/98/NT/2000 Microsoft Windows XP Professional Text dosyasi icinde Windows yazisini bulabildik. Isterseniz degisik dosyalarda deneme yapabilirsiniz. Bir örnekte sistemde kurulu paketler üzerine verelim. Örnegin bilgisayarimizda java paketi kurulumu bilmiyoruz. Bunu ögrenmek icin asagidaki komutu uyguluyoruz. http://forum.ubuntu-tr.org ls (list segments) Bu komut terminalde dosya ve klasörler hakkinda bilgi verir. ls komutu diger komutlar gibi seceneklerle kullanabiliriz. Komut yanliz basina kullanildiginda sadece klasörleri listeler. ls amsn_received Desktop dwhelper Musik Videos Bilder Dokumente examples.desktop Öffentlich Vorlagen Eger klasörler hakkinda bilgi edinmek istiyorsak asagidaki komutu uygulayabiliriz. Bus 002 Device 002: ID 046d:c51a Logitech, Inc. MX Revolution/G7 Cordless Mouse Bus 002 Device 003: ID 046d:c30f Logitech, Inc. Logicool HID-Compliant Keyboard (106 key) # title title Bu gibi örnekleri cogaltmak mümkün. Daha genis bilgi icin Linuxlerdeki help yerini tutan man dosyalarindan yararlanabilirsiniz. man komut seklinde istediginiz komut hakkinda bilgi alabilirsiniz. Önemli olan burada grep komutunun dogru bir sekilde kullanilmasidir. ls -la drwxr-xr-x 2 kirmizi kirmizi 4096 2009-08-25 15:16 Desktop drwxr-xr-x 2 kirmizi kirmizi 4096 2009-08-17 22:39 Dokumente drwxr-xr-x 2 kirmizi kirmizi 4096 2009-07-24 15:15 Öffentlich modprobe Avusturalyali Rusty_Russell tarafindan yazilan bu kod kernel icine modül yükleme/kaldirma da kullanilir. Bu kod genellikle sisteme ekstra yükledigimiz donanimlarin kurulumundan sonra kernelin baslangicta yükledigimiz sürücüyü calistirmasi icin kullanilir. Kullanici olarak bu komutu calistiramayiz. Mutlaka root haklarini alip sonra komutu calistirabiliriz. Örnek: sudo modprobe modül sudo modprobe hda-intel-sda seklinde kullanilir. Komutlar hakkinda bu kadar kisa bilgiden sonra Terminal kullanmak neden önemli buna deginelim. Terminalin grafik araclara göre avantaji hatalari daha iyi anlayacak sekilde göstermesidir. Olayi biraz acalim. Kullandiginiz isletim sistemi sadece görsel araclarla yönetiliyor. Kurdugunuz kaldirdiginiz hersey bu görsel arac ile yapiyorsunuz. Bir gün oldu bu arac bozuldu. Sistemde hata icin hic bir ek bilgi bulamiyorsunuz. Sorunu cözmek istiyorsunuz ama sorunun nerede oldugunu bilmiyorsunuz ve bu sorun hemen giderilmesi gerekiyor. Ö m e r K IR M IZ I 29 İşletim sistemini yeniden kurmak size zaman kaybettirecek. Alternetif de üretemiyorsunuz. Elleriniz ve kollarınız bağlı bir şekilde yeniden işletim sistemini kuruyorsunuz. Sorunun tek çözümü komple işletim sistemini yeniden kurmak oluyor. Aynı olayı gelin bir de Terminal kullanan işletim sistemlerinde düşünelim. Bu sistemimiz, hem görsel açıdan yardımcı araçlar sunuyor hem de bu araçları Terminal yardımı ile çalıştırabiliyoruz. Diyelim Synaptic programı çalışmıyor. Yine diğer örneğimizdeki gibi sistem de bir hata vermedi. Hatayı öğrenmek için Terminal yardımı ile programı çalıştıyoruz. Komutu uygular uygulamaz şöyle bir hata çıktısı alıyoruz: E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem. E: _cache->open() failed, please report. Biraz düşünüyoruz, bize birşeyler söylemek istiyor ama işin içinden çıkamıyoruz. Hemen arama sitemize hatayı geçiyoruz. Bir kaç aramadan sonra hata ile ilgili bir örnek ve çözüm üretilmiş bir yazı buluyoruz. Yazılanları deneyip sorunu çözüyoruz. Oldu ki hata için önemli bir bilgi bulamadınız. Yine Terminal'de Synaptic görevini alan; Terminal'de bu işlemi yapan diğer bir araç var. Aklımıza hemen "APT-GET" geliyor ve istediğimiz programı kuruyoruz. Bu şekilde kısa süreli de olsa, dar olan zamanımızı sistemi yeniden kurmak için harcamıyoruz. Boş bir vaktimizde sorun yaratan program üzerinde bir çalışma ile sorunu kökten çözüyoruz. İşte Linux İşletim Sistemleri'nde beğenmediğimiz Terminal, bizi dar alandaki kısa paslaşmalara hazırlıyor. Bu şekilde attığımız doğru paslar ile sisteme golü atıyoruz. Ö m e r K IR M IZ I T ERMINATOR TERMINATOR: TEK PENCEREDE BIRDEN FAZLA GNOME TERMINAL Yazı başlığından da anlaşılacağı üzere Terminator aynı pencere içerisinde birden fazla gnome-terminal kullanmamızı sağlayan hoş bir uygulamadır. Terminator sayesinde aynı pencerede farklı sekmelerde gnome-terminal açabilir, dikine veya yatay bölerek bu sekmeler arasında gezinebiliriz. Bu sayede aynı pencere altında bir başka pencereye geçmeksizin işlerimizi devam ettirebiliriz. Örneğin bir dosyayı ayrı bir sekmede açar, penceremizi iki farklı sekme olacak şekilde böler, kopyala/yapıştır yapabiliriz. Her ne kadar terminal içinde sağ tıkladığınızda size bir menü getirse de, burada programın çok kısıtlı özellikleri barınmaktadır. Bu nedenle programın yapabildiklerinden bazılarını klavye kısayolları sayesinde anlatmaya çalışacağız. 30 Ctrl+Shift+Left Sekme ayracını sola doğru kaydırır. Böylece sağ tarafta kalan sekmenin alanı genişlerken, solda kalanınki daralır. Ctrl+Shift+Up Ctrl+Shift+Down Ctrl+Shift+Right/Left ile benzer vazifeyi görürler. Ctrl+Shift+S Mevcut sekmedeki kaydırma çubuğunu gizler ve gösterir. Ctrl+Shift+N veya Ctrl+Tab Aynı sekme içindeki bir sonraki terminale geçmek için kullanılır. Ctrl+Shift+P or Ctrl+Shift+Tab Aynı sekme içindeki bir önceki terminale geçmek için kullanılır. Ctrl+Shift+T Yeni bir sekme açar. Açılan bu yeni sekme yine kendi arasında yatay ve dikey pencerelere bölünebilir. Ctrl+PageDown/PageUp Bir sonraki/önceki sekmeye geçer. Alt+Left/Right/Up/Down Sekmeler içinde terminal pencereleri arasında geçiş sağlar. Ctrl+Alt+W Bulunulan terminali kapatır. Ctrl+Alt+X Aktif olan terminali alır ve tek bir pencere şekline getirir. Ctrl+Alt+Z Aktif olan terminali alır,tek bir pencere haline getirir ve yakınlaştırır. Ctrl+Shift+PageUp/Down Bir sonraki/önceki sekme ile aktif olan sekmenin yerlerini değiştirir. Ctrl+Artı (+) Font boyutunu büyütür. (+ için Shift'e de basmak gerekmekte) Ctrl+Eksi (-) Font boyutunu küçültür. Ctrl+0 Font boyutunu asıl haline döndürür. F11 Tam ekran yapar. Ctrl+Shift+E Pencereyi dikey olarak böler. Ctrl+Shift+Right Sekme ayracını sağa doğru kaydırır. Böylece sol tarafta kalan sekmenin alanı genişlerken, sağda kalanınki daralır. http://www.ubuntugeek.com/terminator-multiple-gnome-terminals-in-one-window.html Serkan ÇALIŞ