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Ş

Benzer belgeler

Untitled

Untitled değiştirmek gerekirse (ki gereksiz bir çaba olurdu bence) komutu yazarken port numarasını da belirtmeliyiz. Şimdi tarayıcınızda localhost:8000 yazarsanız Django Hoş geldin mesajıyla karşılaşabilirs...

Detaylı