ACIK KAYNAK
 
*
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun. Aralık 02, 2008, 12:21:46 ÖÖ


Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz



Reklamlar
Sayfa: [1] 2   Aşağı git
  Yazdır  
Gönderen Konu: Konsolda Çalışmak  (Okunma Sayısı 680 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« : Ocak 13, 2008, 04:59:35 ÖÖ »

"Bu Makalelerin Hepsi Alıntıdır"


KONSOLDA ÇALIŞMAK 1

cat, man, info, grep, pipe, .bashrc ve metin editörü
Yazan: Kandalf Tarih: 23.03.2005



GNU/Linux işletim sisteminin gücü ve esnekliğini görmek için konsol adını verdiğimizi pencerede yani sistemin kendinde yer alır. Bu yazı dizisi temel komutlardan başlayarak GNU/Linux sisteminizi konsol üzerinden yönetmeye doğru devam edecektir. Bu nedenle ilk yazılar deneyimli kullanıcılar için sıkıcı gelebilir. Eğer yeni başlayan birisi iseniz bu yazı dizisi ile sisteminizi kullanma ve tanıma konusunda bilginizi arttıracak ve sistem üzerindeki kontrolunuz artacaktır.

Bu yazıda başlıkta yer alan komutları ve dosyaları tanıyacak ve kullanmaya başlayacağız.

man ve info

man ve info komutları GNU/Linux sistemler için kullanıcılara yönelik hazırlanmış olan, komutlar hakkında bilgi almanızı sağlayan iki önemli araçtır. Bir komut hakkında bilgi almak için konsolda man komutun_adı şeklinde komutu kullanabiliriz. Komutun uygulanması hakkında hazırlanmış kaynaklar için ise info komutun_adı yazabiliriz. cat komut hakkında bilgi almak için aşağıda görüldüğü gibi komutları yazalım.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>man cat










/usr/bin/mozilla

home@kandalf:~>

Yine aynı şekilde;
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>info cat










/usr/bin/mozilla

home@kandalf:~>


cat komutunu kullanarak bazı dosya işlemlerini yapabildiğimizi gördük. Dosyaların içeriğini görüntülüyebiliyoruz.

O zaman cat komutunu kullanarak bir dosyanın içinden aradığımızı bulalım. Bu durumda cat kullanırsa dosya açılacak ancak dosya içinde kendimiz aramak durumunda kalcağız. İşleri hızlandırmak için bir kaç araçtan yararlanalım.

grep ve pipe

GNU/Linux'un çekirdeğinin çalışma mantığında veri bir işlemden geçirilir ve bir sonuç elde edilir. Bu durumda bir modül, donanım veya bileşenden gelen veri daima bir başka, modül, donanım veya başka bir bileşene yönlenecektir. O halde konsolda kullandığımız komutların verdiği sonuçları bir diğer komut için girdi kullanabiliriz. Bunun için pipe kullanılır. Konsolda pipe kullanmak için ALTGR ile büyük/küçük simgelerinin yer aldığı tuşa basarak ede edebilirsiniz.

Biz pipe ile çıktıları yönlendiriyorsak, bu durumda çıktıyı başka bir komut için nasıl girdiye dönüştürüz? grep ile.

grep

Bir dosya içinde yer alan verilerden aranılan ve eşleşen verileri seçmek için kullanılır. Bu komut hakkında da ayrıntılı bilgi için man ve info komutları kullanılabilir.

Basit bir uygulama ile devam edelim. Bir metin dosyası oluşturup, her satırına bir isim ve telefon numarası yazalım. Burada sıralama önemli değildir. Dosyayı metin editörü ile telefon.txt olarak /home dizini altına kayıt edelim.

Konsol oturumu açalım ve şu komutu yazalım:


kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> cat telefon.txt | grep -i










/usr/bin/mozilla

home@kandalf:~>

Burada eksik olan komut ile ne arayacağımız. Aranacak kişinin adını en sona ekleyerek komutu yineleyelim.

Komutu her verdiğinizde gösterdiğiniz dosyanın içinden aradığınızı bulup karşınıza getircektir. Burada -i ile belirttiğimiz seçenek büyük-küçük harf olarak dikkate alınmadan işlem yapılmasını anlatmaktadır.

Bu komutları kullanrak yukarıdaki örnekte gibi adres defteri yapabilir, arkdaşlarınızın doğum günlerini, e-posta adreslerini, ve benzer bilgileri bir dosyada toplayabilirsiniz. Fakat her seferinde uzun uzun komut yazacak mıyız? Yazmak durumunda değilsiniz. Tercih sizin...

alias

Konsolda komut yazmak ileride de göreceğimiz gibi ufak programlar yazmaya benzeyecektir. Bir çok komut bir satırda kullanılarak uzun ve zahmetli işlemler basitce hızlı biçimde yapılabilir. Bun durumda sık sık kullandığınız bazı komut dizilerini kısaltabiliriz. alias bu amaçla geliştirilmiştir.

konsolda olduğumuza göre alias kullanmaya başlayalım.Şu komutu verelim:
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> alias ara='cat telefon.txt | grep -i"










/usr/bin/mozilla

home@kandalf:~>

artık konsolda kendi tanımladığımız komutu kullanmaya başlayabiliriz. Yukarıda aradığımız sözcükleri konsolda yeniden şu şekilde arayabiliriz:
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> ara aranacak_isim










/usr/bin/mozilla

home@kandalf:~>

alias ile tanımladığımız komutlarımızı her sisteme girişte yeniden tanımlamak zor olacağına göre bunların kendi hesabımıza girdiğimizde kullanılabilmesi için .bashrc dosyasını açıp düzenleyebilirsiniz.

.bashrc dosyasını bulup metin editörü ile açarak şu satırı ekleyelim:

alias ara='cat telefon.txt | grep -i'

Bu satırı ekledikten sonra ayarların geçerli olması için sistem çıkıp yeniden girş yapacağız veya konsoldan şu komutu vererek kabuğu güncelliyoruz:
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> . .bashrc










/usr/bin/mozilla

home@kandalf:~>

Komutu devre dışı bırakmak istersek .bashrc dosyasında eklediğimiz satırın başına # yazmak ve yukardaki işlemleri yinelemek yeterli olacaktır.

Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #1 : Ocak 13, 2008, 05:00:54 ÖÖ »

Konsolda çalışmak 2
Dosyaları kopyalamak, taşımak, isimlendirmek ve silmek
Yazan: Kandalf Tarih: 02.04.2005

GNU/Linux işletim sisteminin temeli olan ve Linux olarak dalandırdığımız kernel, yani çekirdek, sistemi bir dosyalar topluluğu olarak ele alır. Basitçe ifade edersek, klavyeniz, modemimiz, diskleriniz, optik okuyucu araçlar (CD ve DVD yazıcı/okuyucular) ve diğer donanım bileşenleri birer dosyadır. Bu dosya mantığı tüm işlemlerin temelinde vardır. man ve info kullanırsanız dosya işlemleri komutlarının seçeneklerinin hemen hemen aynı olduğunu görürsünüz. Bu nedenle dosyalar üzerinde yapılan işlemlerin kavranması ile GNU/Linux sisteminizin temel işleyişini daha kolay anlar ve üzerinde kolaylıkla çalışabilirsiniz. Önceki yazıda cat, man, info, grep ve pipe ile başlamıştık. Bu yazıda ise dosya işlemleri üzerinde çalışacağız.

file

Sistem dosyalardan oluşuyorsa, dosyalar hakkında bilgi almak ve tanımlamak ile başlamak doğru olacaktır. GNU/Linux işletim sistemi ailesinde dosyaların uzantısı olmak durumunda değildir. Diğer işletim sistemlerinin aksine bir dosya hakkındaki bilgi dosyanın başında yer alır. Bu başlık okunarak dosyanın çalıştırılıp çalıştırılmayacağını, hangi uygulama ile açılacağı, dosyanın boyutu ve ürü ile diğer bilgiler yer alır. Dolayısıyla da metin editörünüz ile hazırlayacağınız bir metin dısyasına .txt uazntısını eklemek, bir Pyhthon, Perl veya C/C++ dilindeki kodlara sırası ile .py, .pl veya .c uzantısını vermek durunda değiliz. Diğer işletim sistemlainde ise dosya uzantısı verilmesi yanıltıcı olabilir. Bir truva atının mp3 veya jpg dosyası olarak gönül rahatlığı ile sisteme alındığını yakın geçmişte tanık olduk ve günümüzde de tanık oluyoruz.

Konsolda çalışmaya başlmadan önce ev dizinimizde yer alan herhangi bir jpg dosyasını, jpg uzantılı olarak ve uzantısız olarak aynı isimle iki ayrı doya olarak kayıt edelim. Konsol oturumu açalım ve dosyaların olduğu dizine geçerek geçerek çalışmaya başlayalım. Verdiğim örnekte resim dosyaları Documents dizini altında yer alan resimler dizininde yer alıyor. file resim.jpg komutunu verelim.
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> cd Documents/resimler
home@kandalf:~/Documents/resimler> ls
resim.jpg
resim
home@kandalf:~/Documents/resimler> file resim.jpg
resim.jpg: JPEG image ata, JFIF standard 1.01, resolution (DPI) 300 x 300
home@kandalf:~/Documents/resimler>




/usr/bin/mozilla

Yukarıdaki sonuç bu dosyanın bir JPG dosyası olduğunu ve 300x300 dpi çözünürlükte olduğunu JFIF standardında olduğunu belirtiyor. Aynı komutu bu seferde uzantısını kaldırdığımız dosya için tekrarlayalım. file resim komutunu verelim.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> cd Documents/resimler
home@kandalf:~/Documents/resimler> ls
resim.jpg
resim
home@kandalf:~/Documents/resimler> file resim.jpg
resim.jpg: JPEG image ata, JFIF standard 1.01, resolution (DPI) 300 x 300
home@kandalf:~/Documents/resimler> file resim
resim.jpg: JPEG image ata, JFIF standard 1.01, resolution (DPI) 300 x 300
home@kandalf:~/Documents/resimler>


/usr/bin/mozilla

Her iki dosyanında özellikleri aynı. Benzer olarak kendi ev dizinimde Documents dizinin altında yer alan programlama dizininde bulunan Python ve Perl dosyalarını kontrol ettiğimde şu sonuçları elde ediyorum:

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/Documents/resimler> cd programlama
home@kandalf:~/Documents/programlama> ls
post.cgi
post.pl
kontrol
kontrol.py
home@kandalf:~/Documents/programlama> file post.cgi
post.cgi: a /usr/bin/perl script text
home@kandalf:~/Documents/programlama> file post.pl
post.pl: a /usr/bin/perl script text
home@kandalf:~/Documents/programlama>

Benzer olarak da Python kodunu barındıran dosyalarım için:

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/Documents/programlama> file kontrol
kontrol: a /usr/bin/python script text
home@kandalf:~/Documents/programlama> file kontrol.py
kontrol: a /usr/bin/python script text
home@kandalf:~/Documents/programlama>







Gördüğümüz gibi dosyalar arasında bir fark yok. Dosya uzunatısına gerek duyulmuyor. Ancak dosyanın uzantısını değiştirsek bu durumda dosyayı yeniden isimlendirsek sonuç ne olur?

Yanıt bir şey fark etmez. file komutu size orijinal dosyayı sorguladığınızda elde etmiş olduğunuz sonuçlarını verecektir.

cp

Dosyaları koyalamak ve yeniden isimlendirmek için cp kullanılır. Yukarıdaki dosya adlarını değiştirme işemni grafik arabirim üzeriden dosya yöneticisini kullanarak yaptı iseniz, bunu konsoldan yapmaya sıra geldi. cp dosya_adı dosya_adı bu şekilde bir dosyanın adını değiştirebiliriz. cp dosya kopyalamak için kullanabilirsiniz.
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/Documents/programlama> cd resimler
home@kandalf:~/Documents/resimler> cp resim.jpg resim gif
home@kandalf:~/Documents/resimler> ls
resim.jpg
resim.gif
resim
home@kandalf:~/Documents/resimler>







Dosyamız artık bir gif dosyası oldu. Ancak file komutu bu sahtekarlığı ortaya çıkaraktır. Artık nasıl yapılacağını biliyorsunuz. Deneyin ve görün.

Önceki bölümde pipe kullanarak birden fazla komutu bağlamayı gördük. Burada ise pipe kullanamazsınız.Eğer deneyecek olursanız, gif uzantılı bir dosya veya dizinin olmadığına dair bir hata mesajı alırsınız. Bu durum birinci komutun sonucunun diğer komut için girdi olarak kullanılamamasından kaynaklanmasıdır. O halde bu komutları birleştirmek için başka bir yol aramalıyız. Bu işlemi ; - noktalı virgül ile yapabilirsiniz.Şu komutu yazıp sonucunu kontrol edelim.
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/Documents/programlama> cd resimler
home@kandalf:~/Documents/resimler> cp resim.jpg resim.dat; file resim.gif
resim.dat: JPEG image data, JFIF standard 1.01, resolution (DPI), 300 x 300
home@kandalf:~/Documents/resimler>







/usr/bin/mozilla

home@kandalf:~>

Sonuçta isim değiştirme işlemin ardından dosyamızı kontrol ettik ve bunları bir tek satırda yaptık. İleride göreceğimiz gibi konsolda bir çok komutu bu şekilde kullanarak bir çok işlemi bir seferede yapabiliriz.

Dosyalarımızı kesip yapıştıralım-mv

Dosyaları bulunduğu dizinden alıp başka dizinlere taşırız. man veya info ile mv komutunu incelediğinizde cp ile büyük benzerlik gösterdiğini göreceksiniz. Basitçe

mv dosyadan/dizinden dosyaya/dizine

şeklinde komutun kullanımını tanımlayabiliriz.Herhangi bir dosyanın içeriğini bir başka dosyanın içine taşıyabilir veya bir dizini bir başka dizine taşıyabilirsiniz. Dikkat etmeniz gereken nokta eğer bir dosyayı bulunduğunu dizinde yer alan bir başka dizine taşıyacaksanız taşıcağınız dizinin adını hedef olarak belirtmeniz yeterlidir.

Örneğin ev dizinimde yer alan resimler dizininin altında jpg adlı bir dizin yaratıp resim.jpg dosyasını da bu dizine taşımak istersek,
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/Documents/resimler> mkdir jpg;mv resim.jpg jpg
home@kandalf:~/Documents/resimler>












komutunu vermek yeterlidir. Sistem bu komutu verdiğinizde, aynı dizinde yer alan jpg dizinini bulacaktır. Temelde ise komut çekirdek tarafından tam yolu yani dizinin kök (/) dizini altındaki yerini kullanmaktadır. Ancak aynı dizinin altında yer alan bir dizine dosya taşırken ve kopyalarken tam yolu belirtmenize gerek yoktur.Tersine olarak bulunduğunuz dizinden başka bir dizine dosyalarınızı taşımak isterseniz bu durumda tam yolu belirtmeniz gereklidir.

resim.jpg dosyasını, jpg dizininden ev dizinin altında yer alan Documents dizini içindeki dosya dizinine taşımak istersem şu komutu kullanmam gereklidir.
kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/Documents/resimler> cd jpg
home@kandalf:~/Documents/resimler/jpg> mv resim.jpg ../../dosya
home@kandalf:~/Documents/resimler/jpg>











Burada dikkat etmemiz gereken dizinin tam yolunun tanımlanmış olduğudur. Bir dizinde bir üst dizine çıkaraken ../ kullanılır. Üst dizine çıktığımızda hedef dizinimiz belgeler dizininde yer alan dosya olduğunu tanımlamış olduk.

Dosyaları Silmek -rm

Konsolda dosyaları silmek için rm komutu kullanılır.

Dosyayı silmek için

rm dosya_adı

komutunu kullanırsınız.Bu komutu kullanırken dikkatli olmakta yarar var. Grafik arabirimdeki alışkanlıklarınızın burada devam etmediğini unutmayınız. Bir dosyayı sildiğinizde, o dosya silinmiştir. Dosya çöp kutusuna taşınmaz ve doğrudan silinir. Silinen dosyaları kurtarmak olanaklıdır, ancak son derece zahmetli ve pahalı bir yöntem olduğunu unutmayalım.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #2 : Ocak 13, 2008, 05:01:47 ÖÖ »

Konsolda çalışmak 3
man hier, find, locate ve dizinler üzerine
Yazan: Kandalf Tarih: 02.04.2005

GNU/Linux işletim sisteminde dizinlerin ve dosyaların diğer işletim sistemlerine göre farklı işlevleri ve özellikleri vardır. Bu özelliklerin bilinmesi sistemin işleyişinin kavranabimesi için yararlı olacaktır. Bu makalede dizin yapısı hakkında bilgi almak,dizinlerin özellikleri, dizin ve dosyaların aranması ve bulunması üzerinde duracağız.

Dizin yapısı

Diğer işletim sistemlerini kullandıysanız dizin yapısı hakkında bilginiz vardır. Aradığınız dosyayı bulmak, yazılımı kurmak ve kaldırmak ve kendiniz tarafından yapılacak işlemlerde nereye bakacağınızıbilirsiniz. GNU/Linux işletim sistemi ailesinin dizin yapısı ise diğer sistemlerden farklıdır. Farklı olmasının getirdiği sorunları aşmak için ise dizin yapısının bilinmesi gereklidir.

İlk bakışta farklı olsa da dizin yapısı hakkında bilgi almak için konsol size gereken araçları sunar. Böylece dizin yapısının nasıl işlediğini ve sistemin temel mantığını kavramak kolaylaşır. Konsol oturumu açarak dizin yapısını öğrenmeye başlayalım. Konsolda şu komutu verelim:

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>man hier













komutunu verdiğinizde kullandığınız sistemin dizin yapısını anlatan bir kaynağa erişeceksiniz. Konsolda aşağı doğru indikçe dizinlerin neler olduğu ve aralarındaki ilişki tanımlanmaktadır. Burada dizinlerin yapısı üzerinde durmayacağım.

Kendi konsol ekranınızdaki man hier komutunun çıktıısında bazı dizinlerin de alt dizinlere ayrıldığınını görebilirsiniz. Bu yazı kapsamında tüm dizinler üzerinde durmayacağım. Tersine, bazı dizinler üzerinde durmak ve bunlar hakkında bilgi vermek istiyorum. Bunlar /home, /etc, /bin, /sbin.

/home

Sistemi kullanmaya başladığınızda ilk dikkatinizi çeken kendinize ait bir dizinde dosyalarınızın yer almakta olduğudur. Bunun temel nedeni GNU/Linux işletim sisteminizin çok kullanıcılı bir sistem olmasıdır. Her kullanıcı sisteme giriş yaptığında kendi ayarları, dosyaları ile çalışır. Bu nedenle, kullanıcıların kişilsel ayarları ve dosyaları dizin ağacı üzerinde /home/kullanıcı_adı dizininde yer almaktadır. Burada önceki makalelerde ele aldığımız gibi kullanıcıya ait olan .bashrc dosyası ile gerekli olan diğer dosyalar yer alır.

root kullanıcısı sistem üzerinde tam yatkili olan kullanıcıdır. bu nedenle de diğer normal kullanıcılardan ayrı olarak /root dizinini kullanır. Bunun gerekçesi ise tam yetkili kullanıcı olmanın bazı geri dönülmez hatalara neden olabileceği ile çok kullanıcılı bir sistemde sistemin çalışmasını düzenleyecek olan bir kullanıcıya duyulan gereksinmedir. Normal kullanıcılar, kendi dizinlerindeki dosyaları ile çaloşabilcekler ve sistemin genel işleyişini engelleyecek bir düzenleme yapamayacaktırlar. Bundan dolayı root olarak sistemde çalışmanız gerektiğinde kullanmanız önerilir. Sürekli olarak root hesabını kullanmayınız. Sistem yöneticileri root hesabı kullanmazlar. Göz kırpan

Sistemin İşleyişine Dair...

Konsolda bazı düzenlemler yaparak kendi tanımladığımız komutları kullanmamıza olanak veren .bashrc dosyası, /home/kullanıcı_adı dizininde yar alır. Ancak sistem genelindeki işleyiş içinde bir bashrc dosyası yer almaktadır. Sistem geneline ait olan ayarlar ise sisteme ait olan bashrc dizininde yer almaktadır. Bu dosya sistem genelinde konsol komutları ve konsol oturumlarının tanımlandığı dosyadır.

/etc dizininde alt dizinler de yar alır. Örneğin kullandığınız X sunucusun için ayarlar /etc/X11 alt dizininde yer alan dosyalarda tanımlanmaktadır. Benzer olarak da TCP/IP ve UDP protokollarine ait düzenlemler de services yer almaktadır. Bu dizin sistem genelindeki ayarların yer aldığı dizindir. Dizinde yer alan dosyalar üzerinde işlem yapacağınızda çalışacağınız dosyanın aslını uygun bir dizinde bir yedeğini saklamanız önemlidir.

Dikkat etmemiz gereken, sistemde bir tek bashrc dosyasının olmadığıdır. Her kullancı için-/home/kullanıcı_adı-dizininde bir .bashrc dosyası yer almaktadır. Bunlar kullanıcıların kendi tercihlerine göre tanımladıkları alias saklanması ve kullanıcıların rahat çalışabilmeleri için düzenlenmiştir.

Yukarıda /bin ve /sbin dizinlerden söz etmiştik. Bu dizinler komutların, normal kullanıcıların ve yetkili kullanıcı tarafından kullanılabilen bazı uygulamaların yer aldığı dizinlerdir. Bu dizinlerde yer alan uygulamlar sistemin açılmasında veya özel durumlarda kullanılan komutları içerirler. Örneğin, lilo, grub, fsck, init gibi. Yetkili kullanıcı tarafoından kullanılan komutlar ise /sbin dizininde yer alır. bunlar normal kullanıcı tarafından kullanılamayan komutlar ve uygulamalardır. uygulamların ikiye bölünmüş olmasının nedeni kullanıcıların yetkilerinin sınırlandırılmış olması, sistemin işleyişindeki yetkilerine göre komut ve uygulamaları kullanabilmeleridir.

env ve PATH

Kullanıcı ayrımı yapılıyorsa, bu durumda kullanıcıların yetkilerine göre kullanabildeikleri uygulamaların tanımlanması gereklidir. Sistem kullanıcıların yetkisinde bulunan uygulamaların yerini bilmek durumundadır. GNU/Linux işletim sisteminde dizinler ve dosyalar önemli olduğuna göre, sisteminde bir kullanıcı için tanımlı olan uygulama ve dosyaları bulmasını sağlamak gereklidir. Örneğin yeni bir uygulamayı kurmak, kullanıcılara yetki vermek için genel olarak dosyaların ve dizinlerin yerini yanımlamak gereklidir. Bunu ise PATH ile gerçekleştiririz.

PATH düzenlemesini tanımlamak için env komutu kullanılabilir. Eğer env komutunu herhangi bir seçenek olmadan kullanırsanız, size ait olan düzenlemeyi tamamen elde edersiniz. Bu uzun çıktı içinde aradığımız bulmak için pipe ve grep kullanırsak, PATH tanımladığı dizin ve dosyaları görebiliriz.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>env | grep PATH
MANPATH=/usr/local/man:/usr/share/man:/usr/X11R6/man:/opt/gnome/man
GNOME_PATH=:/opt/gnome:/usr
XNLSPATH=/usr/X11R6/lib/X11/nls
PATH=/home/kandalf/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:
/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin
PKG_CONFIG_PATH=/opt/gnome/lib/pkgconfig
ACLOCAL_PATH=/opt/gnome/share/aclocal
INFOPATH=/usr/local/info:/usr/share/info:/usr/info
home@kandalf:~>

/usr/bin/mozilla

home@kandalf:~>

PATH, bir komutu verdiğinizde sisteme nereye bakmasını ve gereksinim duyulan bileşenlerin nerede olduğunu belirtir. Eğer PATH ile tanımlanmamış ise sistem hata mesajı verecektir. Bu durum özellikle de sistemde kurulu olduğunu veya kurduğunuzu düşündüğünüz bir uygulama veya komutun çalıştırılamaması durumunda sıkıcı olacaktır.

find ve locate

Bir uygulamayı indirip kurduğunuzu varsayalım. Kurulum başarılı olmuş ve bir hata mesajı almamış olalım. Uygulamayı çalıştırmak için konsolda uygulmanın adını yazıp enter basalım. Eğer sistem size uygulamanın tanınmadığına veya bulunmadığına dair hata mesajı verse ne yapardınız?

find komutunu kullanarak bir dosya ve dizini bulabiliriz. find kullanmak için taranacak dizin ve aranacak olan isimin tanımlanması yeterlidir. Basit bir örnek olarak Mozilla 1.7.5 kurulmuş olan bir sistemde yeni bir kullanıcı hesabı oluşturup, Mozilla 1.7.5 çalıştırmak isteyelim. Mozilla 1.7.5 çalıştırmak için ALT+F2 ile komut çalıştır seçeneğini çağırımış olsun. Ancak sistemde eski bir sürümü kurulu ise karşımıza eski sürümü gelecektir. O halde aradığımız yeni sürüm mozillayı bulmak için konsolda find komutunu kullanmak yeterlidir.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>find / -name mozilla
find: /etc/opt/kde3/share/servicetypes: Erişim engellendi
find: /etc/ssl/private: Erişim engellendi
/opt/kde3/share/icons/crystalsvg/16x16/apps/mozilla
/opt/kde3/share/icons/crystalsvg/32x32/apps/mozilla
/opt/kde3/share/icons/crystalsvg/48x48/apps/mozilla
/opt/mozilla
/opt/mozilla/installed-chrome.d/mozilla
find: /usr/share/doc/packages/taskjuggler/manual: Erişim engellendi
find: /usr/share/snmp/snmpconf/snmpd.conf: Erişim engellendi
find: /proc/1/fd: Erişim engellendi
/usr/local/mozilla175/mozilla
home@kandalf:~>

Yukarıdaki konsol görüntüsünde erişim engellendi mesajları aldığımız ve bunlara ek olarak da mozilla adını içeren dizin ve dosyaları da bulduğumuuz görüyoruz. komutu belirttiğimiz üzere find / dizini altında yer alan tüm dizinleri ve dosyaları tarar. Erişim engellendi mesajı ise kullanıcının yetkisi dışında kalan dizinlere erişilmek istenmesi durumunda alınır. Eğer aynı komutu sadece /usr/local/ olarak vermiş olsa idik, erişim engellendi mesajını almayacak ve söz konusu dizinde yer alan ve mozilla anahtar sözcüğünü içeren sonuçları görecektik. Kendi sistemimde gördüğümüz gibi bazen birden fazla sonuç elde edebiliriz. Bu önemli mi? Bazı durumlarda evet! Gülümseme

Bazı durumlarda ise find komutunu kullanmak ve sonuçlarını elde etmek uzun zaman alabilir. Bunun yerine ise locate komutunu kullanabiliriz. Bu komutun kullanılmasında dikkat edilecek olan nokta, komutun *NIX ailesi istemlerde dosya ve dizinlerin yer aldığı bir veritabanında tarama yaparak sonuç elde ettiğidir. Bazı sistemlerde bu veritabanı düzenli olarak güncelenir. bazılarında ise bu veri tabanı kaldırılmış olabilir. Her iki durumda da güncellenmemiş bir veritabanında arama yapıldğında sonuç elde dilemeyecektir. Benzer olarak da veritabanı kaldırılmış ise de sonuç elde edilemez.

Burada bir başka önemli noktaya geldik. Eğer aynı uygulamadan birden fazla varsa komutu yazdığımızda hangisi çalışacaktır? Bunu öğrenmek için which komutunu kullanarak öğrenebiliriz.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>which mozilla
/usr/bin/mozilla
home@kandalf:~>











Sistem daha önce gördüğümüz gibi PATH içinde yer alan tanımlamara bakmaktadır. Bu tanımların düzenlenmesini ise ileride göreceğiz. Zira PATH içinde yer alan değişkenleri yeniden tanımlamaz iseniz, sistem önceden tanımlanmış olan uygulamayı çalıştıracaktır. Bu durumda yeni sürümü çalıştırmak için dosyanın tam yolunu belirterek çağırmanız gerekir.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #3 : Ocak 13, 2008, 05:02:26 ÖÖ »

Konsolda çalışmak 4
*NIX ailesinde her şey dosyadır.
Yazan: Kandalf Tarih: 02.04.2005

UNIX ve türevi olan işletim sistemlerinin nerdeyse C dili ile yazılmıştır. Sistemin kaynak kodlarına bakacak olursanzı C dilinin ağırlığını görebilirsiniz. Bundan dolayı da C dilinin yapısal özelliklerinin *NIX işletim sisteminin tasarımını da şekillendirdiğini de söyleyebiliriz. Çoğu kullanıcı sistemin C sistematiğine olan yakınlığı nedeni ile *NIX ailesi işletim sistemlerine çabuk alışmaktadır.

Bu yakın ilişki *NIX sistemlerin çalışma şeklini de biçimlendirir. C dilinde kullandığımız üç önemli girdi/çıktı işlevi söz konusudur; stdin, stdout, stderr. stdin klavyeniz, sdtout monitörünüz, stderr de yine monitörünüz olabilir. Yapısal analiz ve tasarım özelliklerini anlatmayacağım. Ancak bu yapısal özellikler gereği *NIX bir işletim sisteminde her veri işlemden geçirilince bir sonuç üretir ve bu sonuçta bir dosyaya aktarılır. Önceki makalede buna değinmiştik.

Bu sistematiği kavrarsanız çalışmak son derece kolaylaşacaktır. Önceki makalelerde anlattığımız dosya işlemlerine geri dönüyoruz. Bir telefon rehberi oluşturdum ve isimler ile numaraları bunun içine kayıt ettim. Konsol oturumu açarak Sertan için telefon rehberi içinde arama yapıyorum. Eğer rehberde birden fazla Sertan adı bulunuyorsa sonuçta ekrandaki çıktı uzayacaktır. Bu durumda ise kaydırma çubuklarını kullanarak aranılan isimi aramak durumunda kalacağım. Eğer soyad ile ibrlikte yazmış olsa idim o zmana ad ve soyad kullanarak aram ayapabilecek ve sonuçları daha da daraltacaktım. Fakat konunun bütünlüğü açısından bunu yapmıyorum. Sonraki yazı için hazırlık yapmak ve dosyalar hakkındaki bilgiyi pekiştirmek için sonuçları bir başka dosyaya girdi olarak yazmayı ve kullanmayı seçiyorum.

Aramayı yaptığım dizinde arama.txt adlı bir dosya oluşturdum. Komutu aşağıda görüldüğü gibi verdiğimde sonuçlar arama.txt dosyasına yazdırılıyor. < ve > kullanarak bir dosyadan veriyi girdi olarak alabilir ve yine bir dosyaya çıktı olarak aktarabilirsiniz. Eğer sonuçları bir dosyada toplmak istiyorsanız bu durumda giridiler dosyaya yazıldıkça silinmesini engellemek için >> kullanılır. Sonuç eğer dosyada daha önceden bulunuyorsa, üzerine yazılmaz, eklenir.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>cat telefon.txt | grep -i sertan > arama.txt
home@kandalf:~>









/usr/bin/mozilla

home@kandalf:~>

Sistem dosyalardan oluşturğu için girdi ve çıktıların mutalaka sonlanması gereklidir. Bu amaçla eğer bir uygulamanın sonucu herhangi bir şekilde kullanılmayacak veya gerek duyulmayacaksa her zaman /dev/null dosyasına yönlendirilir.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #4 : Ocak 13, 2008, 05:04:44 ÖÖ »

Konsolda Çalışmak:5
finger, proc ve init
Yazan: Kandalf Tarih: 18.04.2005

finger, proc ve init

Bir sistemi birden fazla kişi kullanıyorsa bu kişilerin kimler olduğunu kontrol etmek gerekli olabilir. Eğer sisteme bir ağ üzerinde uzaktan erişim hakkın veriyorsanız o anda sistemde bulunan kişiler hakkında bilgi almak gerekecektir. Herhangi bir anda sistemde bulunan kullanıcıların kim olduğunu öğrenmek için who komutu kullanılır. Bu komutu kullanaral sisteme giriş yapmış olan kullanıcıların listesi ve sisteme giriş yaptıkları zamanı görebilirsiniz. Ayrıca sunucudaki kullanıcı adını da öğrenebilirsiniz.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>who
kandalf :0 DEC 27 09:24 (console)
kandalf pts/0 DEC 27 09:25
kandalf pts/1 DEC 27 09:26
kandalf pts/2 DEC 27 09:26
kandalf pts/3 DEC 27 09:27
kandalf pts/4 DEC 27 09:28
kandalf pts/5 DEC 27 09:28
kandalf pts/6 DEC 27 09:32
home@kandalf:~>who am i
kandalf pts/6 DEC 27 09:33
home@kandalf:~>whoami
kandalf
home@kandalf:~>


Yukarıdaki konsol görüntüsünde aynı komutun iki farklı kullanımı ve sonuçlarını gördük. Aradaki farka dikkat edelim. Gülümseme Kullanııcları görebiliyorsak onlar hakkındaki ayrıntılı bilgi alabilir miyiz? Elbette alabiliriz. Bunun için finger komutu kullanılır. Ancak dikkat edilmesi gereken konsolda finger kullanıcı_adı@sunucu_adı olarak komutu vermektir. Bu komut bazı sistemlerde sadece hesabınızın olduğu sunucularda kullanılacak biçimde kısıtlanmış olabilir. Bu nedenle uzaktki bir sistemdeki kullanıcı hakkında bilgi almak istediğinizde hata mesajı alabilirsiniz.

Sistemdeki süreçler...

GNU/Linux dağıtımların çekirdeği bazı süreçleri tanımlar. Bu süreçler ile bir sistemde çalışırken kullanabileceğiniz servisler ve uygulamaları bilirsiniz. Süreçler yerine bir diğer deyim ise çalışma düzeyi-runlevel. Bazı kaynaklarda bu şekilde rastlayabilirsiniz. Çalışma düzeyini değiştirmek için init kullanabilirsiniz. Aşağıda bir *NIX ailesi işletim sistemi tarafından kullanılan çalışma düzeyleri yer alamktadır.

   1. runlevel 0- Sistem kapanır
   2. runlevel 1- Tek kullanıcı modu(sistem bakımı için kullanılır)
   3. runlevel 3- Çok kullanıcı, konsol, NFS çalışmaz.
   4. runlevel 4- Kullanılmaz, boştur.
   5. runlevel 5- Grafik arabirim, çoklu kullanıcı
   6. runlevel 6- Sistem yeniden başlar.

init komutunu güncel bir açılış yükleyicisi kullanıyorsanız açılışta kullnabilirsiniz. Eğer kullanamıyorsanız inittab dosyanızı düzenleyerek belirli bir runlevel-çalışma düzeyi kullanabilirsiniz.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #5 : Ocak 13, 2008, 05:05:28 ÖÖ »

Konsolda Çalışmak:6
Tar-arşivlemek ve sıkıştırmak
Yazan: Kandalf Tarih: 18.04.2005

TAR-Tape Archive

Son derece yaygın olarak kullandığımız bir dosya arşivleme uygulması üzerinde belirli durmak istiyorum. Kullanıcıla dosyaları bir araya getirmek, belirli bir biçimde saklamak ve gerektiğinde de kullanmak ister. Bu amaçla dosyaları diskete sığdırılmadığı, CD teknolojisinin de çook uzak olduğu zamanlardan kalmış, gücel bir uygulama geliştirilmiştir. Başlıktan ne demek istediğimi anladınız. Grafik arabirim alışkanlığı ile sıkıştırmak olarak düşünmeyin.

Her ne kadar, dosyaları sıkıştırmak olarakm algılansa da, aslında dosyaları ve/veya dizinleri bir araya getirip tek bir dosya haline getirir. Diğer yazılımlar ile birlikte kullanarak sıkıştırılmış arşivler yaratabilirsiniz. Gülümseme

Tar bu özelliği nedeni ile yayfgın olarak geliştirilen dağıtımların, yedeklerin ve bir çok uygulamanın saklanması, dağıtılması için sıklıkla kullanılmaktadır. Kişisel olarak ev dizinim altında bir dizin oluşturup tar dosyalarımı bu dizin içinde tutmayı tercih ediyorum. TAR arşiv amaçlı geliştirilmiş olması nednei ile dizinler dışında bir çok dosyayı da deyim yerinde ise paketleyebileceğiniz için açtığınızda bir çok doya ile karşılaşabilirsiniz. Önerim bir tar_gz_zip dizini oluşturmanız. Bu dizinde tar ve idğer arşivleri tutabilirsiniz. Oluşturacağınız ve açacağınız dizinler içinde başka alt dizinler oluşturabilirsiniz. Gülümseme

Tar ile arşivlenen dosyaları sıkıştırmak ve açmak için dosya adına göz atmak yeterlidir. Sıklıkla karşılaştığımız sıkıştırılmış tar arşivlerine bir kaç örnek: tar.gz, tar.bz2. Bunların dışında da sıkıştırma için kullanılan araçlar var, ancak konu tar ile sınırlı olunca yaygın olarak kullanılan uygulamalar ile sınırlı tutuyorum. (KISS=Keep It Simple Stupid)

Arşiv dosyalrı oluşturamaya başlayalım. Ev dizinimizde bir video adlı dizin olsun. Bu dizinde yer alan mpg ve rm dosyalarını dizini ile birlikte arşivleyelim. İlk olarak tar.gz dosyası oluşturalım.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> tar -zcvf video.tar.gz
Video/
Video/RealMedia/tren_DB.rm
Video/RealMedia/tren_damplokf.rm
Video/kopru.mpg
Video/bogazici.mpeg
Video/sazlidere.mpg
home@kandalf:~> find ~/ *.tar.gz
/home/kandalf/video.tar.gz
home@kandalf:~> rm Video; ls
bin Documents indirilen_dosyalar tar_gz_zip video.tar.gz
home@kandalf:~>



Konsolda Video dizinini sildim. Arşivden geri yüklemeyi seçiyorum. Sıkıştırılmış arişivi açmak istediğimizde ise

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> tar -zxvf video.tar.gz
Video/
Video/RealMedia/tren_DB.rm
Video/RealMedia/tren_damplokf.rm
Video/kopru.mpg
Video/bogazici.mpeg
Video/sazlidere.mpg
home@kandalf:~> ls
bin Documents indirilen_dosyalar tar_gz_zip video.tar.gz Video
home@kandalf:~>





Arşivden dizinimizi geri yüklemiş durumdayız. tar.bz2 arşivleri için ise komutta yaptığımız değişiklik j parameteresi ile bzip2 sıkıştımasının uygulanmasını tanımlamak olmaktadır.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> tar -jcvf video.tar.gz Video
Video/
Video/RealMedia/tren_DB.rm
Video/RealMedia/tren_damplokf.rm
Video/kopru.mpg
Video/bogazici.mpeg
Video/sazlidere.mpg
home@kandalf:~> ls
bin Documents indirilen_dosyalar tar_gz_zip video.tar.bz2
home@kandalf:~>





Benzer biçimde de tar.bz2 arşivini açmak için

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> tar -jxvf video.tar.gz
Video/
Video/RealMedia/tren_DB.rm
Video/RealMedia/tren_damplokf.rm
Video/kopru.mpg
Video/bogazici.mpeg
Video/sazlidere.mpg
home@kandalf:~>







bzip2 uygulmasını denediğinizde göreceğiniz gibi sıkıştırma işlemlerinde nispeten yavaştır. tersine olarak da skıştırılmış arşivleri açarken de yavaş. Bu noktayı vurgulamamdaki neden, farklı sıkıştırma uygulamaları ile çalıştığınızda sıkıştırma miktarı kadar süresinin de önemli olduğunudur. Özellikle de sisteminizi yedekliyorsanız...
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #6 : Ocak 13, 2008, 05:07:40 ÖÖ »

Konsolda Çalışmak:7
İzinler
Yazan: Kandalf Tarih: 18.04.2005

İzinler

*NIX ilesini en başından beri diğeri şletim sistemi ilesinden ayıran çok kullanıcılı bir sistem oluşudur. Bu ifadeyi diğer işletim sistemleri geliştiricileri ve kullanıcıları da söylesede, biz gerçeği biliyoruz. Gülümseme

Bu uygulamanın önemi bir çok kullanıcının kullandığı sistede dizinleri ve dosyaları düzenleme konusunda sağladığı kolaylıkta yatmaktadır. Bir çok kullanıcının yararlandığı bir sistemde kullanıcılar ile sisteme ait dizin ve dosyaları düzenlemek gereklidir. Bu amaçla *NIX ailesi ilk tasarlandığı zaman iki kavram ortaya atıldı: Sahiplik-Owner ve Grup-Group.

Bu iki kavramı kullandığınız dağıtımda zaten kullanıyorsunuz. İlk sistemi kurduğunuzda siztem sizden bir kullanıcı adı ve parolası tanımlamanızı istemişti. Böylece size ait ev dizini altında yer alan bir dizin oluşturulmuş oldu. Bu dizindeki dosyaları gönlünüzce değiştirdiniz, yazdınız ve çalıştırdınız. Ancak bazı dizinlerdeki dosyalara ise deyim yerinde ise dokunamadınız sadece baktınız. Gülümseme

Bu düzenlemein nedeni güvenlik olarak açıklansa da gerçek neden sistemin algılamasında yatmaktadır. *NIX ailesinde herşey dosyadır adlı makaleyi anımsayalım. Bu durumda sistem için her şey dosya ve dizin ise, bu dosyaların ve dizinlerin ait olduğu gruplar ve sahipler bulunmaktadır. Gruplar bazen işlev üzerine kuruludur. Örneğin, modem, usb, yazıcı ve benzerleri gibi. Bu durumda sizde kullanıcı olarak bir gruba üye olmaktasınız, bazı dosyalarında sahibi durumundasınız. İşlev ve uygulama bazında oluşturulmuş gruplara kullanıcılar üye olur. Bazı uygulamalar için ise grup üyeliğiniz yoktur ve erişmezsiniz. Grup ve sahiplik kavramlarını az çok anladığımıza göre, bir dosyanın temel nitelikleri üzerinde duralım.

Oku-Yaz-Çalıştır

Dosyaların özelliklerini görmek ile başlayalım. konsolda ls -l komutunu verelim.

kandalf@linux:~-Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
home@kandalf:~>ls -l
toplam 8
drwxr-xr-x   2 kandalf  users         48 2004-12-03 17:49 bin
drwx------    4 kandalf  users         656 2004-12-30 09:49 Desktop
drwxr-xr-x   17 kandalf  users       3656 2004-12-28 14:12 Documents
drwxr-xr-x    7 kandalf  users        272 2004-12-13 11:23 Gelistirme
drwxr-xr-x    3 kandalf  users        72 2004-12-07 18:12 indirilen_dosyalar
drwxr-xr-x    2 kandalf  users        168 2004-12-22 15:45 ipcop_manual
drwx------   31 kandalf  users         3496 2004-12-30 11:07 Mail
drwxr-xr-x    6 kandalf  users         376 2004-12-27 09:32 OpenOffice.org1.1.4
drwxr-xr-x    8 kandalf  users         384 2004-12-29 12:56 public_html
drwxr-xr-x    2 kandalf  users         112 2004-12-07 17:48 rpm
drwxr-xr-x    2 kandalf  users         232 2004-12-22 15:12 ses_dosyaları
drwxr-xr-x    3 kandalf  users        1024 2004-12-30 10:44 tar_gz_zip
drwxr-xr-x    3 kandalf  users         808 2004-12-15 11:14 Video
home@kandalf:~>

Konsol çıktısında gördüğümüz gibi, dizinlerin sol tarafında yer alan d ile başlayan r,w ve x oluşan okuma,yazma ve çalıştırma izinleri yer almakta. Bu izinler ile bir kullanıcının ev dizinindeki bir dizine bir kullanıcı erişebiliyorsa, okuyabilir, yazabilir ve çalıştırabilir. *NIX ailesinde bu özellik duruma özel olarak tanımlanmaktadır. Ev diziniizde yer alan dosyaların sahibi olduğunuza göre izinlerini de değiştirebilirsiniz.

İzinler 3 grup için tanımlanmıştır. Birincisi dosyanın veya dizinin sahibinin yapabileceklerini tanımlar. İkincisi ise aynı grupta yer alanların yetkilerini tanımlar. Üçüncüsü de dünyanın geri kalanının izinlerini tanımlar. Biliyorum dünyanın geri kalanı derken sistemde olan tanımlanmış diğer gruplar olduğunu unutmayalım. *NIX jargonun da world dediğimizde erişebilen ve tanımlanan tüm grupları ve kullanıcıları anlatmaktayız. Örneğin bir web sunucusunda yer alan cgi dizinindeki dosyalar dünyanın geri kalanınca çalıştırılabilmektedir. Gülümseme

Yukarıda yer alan konsolda gördüğmüz gibi bir dizin veya dosya için izinler rwx-rwx-rwx gibi üç haneli ve üç terimlidir. Sistem bu tanımlama ile dizinin veya dosayının haklarını düzenlemektedir. Öncelikle rwx açıklayalım. r:read-oku, w:write-yaz ve x:execute-çalıştır anlamına gelir. Üç terimi kavradık. Ya üç hane?

*NIX , ailesinde dosyaların da gruplara ait olduğunu biliyoruz. Bunlar owner,group member, world yani sahip, üyesi olunan grup ve dünyanın geri kalanı. Gülümseme O halde üç terin ve üç hane anlaşılmış oldu. kısaca akılda kalması için oku-yaz-çalıştır-sahip-grup-dünya. Basit değil mi? Yukarıdaki konsol çıktısına baktığınızda dizinlere ve dosyalara verilen izinleri okuyabilirsiniz artık.

    * rwx; oku-yaz-çalıştır.
    * rw; oku-yaz.
    * r-oku.
    * rx-oku-çalıştır.
    * x-çalıştır.

Dosyanın veya dizinin sahibi iseniz her zaman için dosya ve dizinlerin haklarını düzenleyebilirsiniz. Bunu nasıl yaparız? chmod ile. Bu komutu vererek dosyanın haklarını düzenleyebiliriz. Bu işlem için okuma-yazma ve çalıştırma izinleri sayısal olarak tanımlanmıştır. Bu sayısal değerler aşağıda görülmektedir.

chmod değeri
   Oku
   Yaz
   Çalıştır
7
   Evet
   Evet
   Evet
6
   Evet
   Evet
   Hayır
5
   Evet
   Hayır
   Evet
4
   Evet
   Hayır
   Hayır
3
   Hayır
   Evet
   Evet
2
   Hayır
   Evet
   Hayır
1
   Hayır
   Hayır
   Evet
0
   Hayır
   Hayır
   Hayır

Artık dosyalrın ve dizinlerin izinlerini öğrendiğimize göre bir dosya veya script edindiğinze, yazdığınızda izinlerini düzenlemeyi biliyorsunuz Gülümseme Forumlarda sormaya gerek yok.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #7 : Ocak 13, 2008, 05:08:26 ÖÖ »

Konsolda Çalışmak:8
Dizinler ve Özellikleri
Yazan: Kandalf Tarih: 18.04.2005

Dizinler ve özellikleri

Dosyaların izinleri üzerinde durumuştuk. Dizinlerde dosyalrın izinlerini değiştirmek ve düzenlemek kadar dosyalarıda bulabilmek ve düzenlemek önemlidir. Dizinler ve dosyalar hakkında bilgi almak için ls komutunu ls komutunu kullanırız. Önceki yazılarda ls komutunu kullanmıştık. Bu makale ise ls komutu hakkında biraz daha bilgi edinmek amacı ile hazırlandı. man komutunu kullanrak ls hakkında bilgi edindiyseniz ls komutu ile kullanılabilecek olan bir çok seçenek olduğunu görmüşsünüzüdür. Bu makalede hepsi üzerinde durmayacağız. Sık kullanacağımız bazı seçenekleri göreceğiz.

Gizli Dosyalar

Dizinlerin içinde gizli dosyalr olduğunu biliyoruz. Komutu tek başına kullandığımızda bu dizinleri göremeyiz. ls -a kullarak dizinde yer alan tüm dosyaları görebiliriz. Ancak bu şekilde "." ve ".." girdilerini de konsolda görüntüleriz. Bu girdilere gereksinim durmuyorsanız ls -A kullanmak uygun olur. Bu seçenek ile dizinde yer alan tüm dosyaları görüntülemiş oluruz, fakat dosya izinleri erişim tarihleri, sahibi ve ait oldukları grubu göremeyiz. Bu bilgileri elde etmek için ls -Al kullanılır.

Dizinleri Ayırd Etmek ve Dosyaların Boyutları

Komutu bu şekli ile kullandığınızda aşağıdaki konsol görüntüsüne benzeyen bir çıktı elde edeceksiniz. ls ile alt dizinler hakkındaki bilgiyi okuyabilirsiniz. Eğer komuta F seçeneğini eklersenzi dizinler ve dosyalar farklı şekiller ile işaretlenmiş olarak karşınıza gelir. Eğer dizinlerin boyutlarını da görmek isterseniz s seçeneğini kullanabilirsiniz. Sonuç ise blok cinsinden gelir. Bu sonucu kullanıcı tarafından yorumlanabilecek duruma getirmek için ise h seçeneğini kullanabiliriz. Bu seçenekleri uzatmak olanaklıdır. Farklı seçenekleri tercihlerinize göre kullanabilisiniz. Kendi kullandığım seçenekleri ile birlikte ls -FAlh. Bu komutu bir ev dizinindeki veya herhangi bir dizinde yer alan bir alt dizin için verebilirsiniz. Kendi ev dizinimdeki Documents dizini için kullandığımda aşağıdaki çıktıyı görüyorsunuz.

kandalf@linux:~-Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~> ls -FAlh
toplam 39
drwxr-xr-x
   2
   kandalf    users    48    2005-01-02    19:11    Alev/
-rw-r--r--    1    kandalf
   users    1.1K    2005-01-03    12:05    belgeler
-rw-r--r--    1    kandalf    users    1.1K    2004-12-22    09:55    .directory
drwxr-xr-x    3    kandalf    users    80    2004-12-11    19:50    linuxnet/
drwxr-xr-x    5    kandalf    users    168
   2004-12-06    10:40    Makaleler/
drwxr-xr-x    3
   kandalf
   users
   168
   2004-12-06
   10:40
   Marmara_Ray/
drwxr-xr-x    2
   kandalf
   users
   384
   2005-01-02
   21:31
   metin_dosyaları/
drwxr-xr-x    2
   kandalf
   users
   1.2K
   2005-01-02
   19:40
   mp3/
drwxr-xr-x    7
   kandalf
   users
   288
   2005-01-02
   19-16
   Ofis_Belgeleri/
drwxr-xr-x    4
   kandalf
   users
   112
   2004-12-23
   10:51
   OSTG/
drwxr-xr-x    3
   kandalf    users    168
   2004-12-06
   10:40
   Oya/
drwxr-xr-x    7
   kandalf    users    3.7K
   2005-01-02
   21:25
   Pdf/
drwxr-xr-x    3
   kandalf    users    1.8K
   2004-12-30
   10:43
   Post_Script/
drwxr-xr-x    2
   kandalf    users    120
   2004-12-06
   10:40
   Railroad_Tycoon_II_Gold
drwxr-xr-x    9
   kandalf    users    29K
   2004-12-30
   14:08
   Resimler/
drwxr-xr-x    4
   kandalf    users    112
   2004-12-06
   10:40
   Tezler/
drwxr-xr-x    2
   kandalf    users    1.3K
   2004-12-06
   10:40
   .xvpics/
home@kandalf:~>

Dizinleri Kopyalamak ve Silmek

Dizinlerin içeriğini ayrıntılı olarak görebiliyoruz. Dizinleri silmek,kopyalamak ve taşımak için ise önceki makalelerde anlattığımız komutlardan yararlanabilirsiniz.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #8 : Ocak 13, 2008, 05:09:33 ÖÖ »

Konsolda Çalışmak:9
apropos,whatis ve whereis
Yazan: Kandalf Tarih: 18.04.2005

Araştırmak ve Sorgulamak

Başlığı okuduğunuzda açıklayıcı olmadığını düşündünüz. Gülümseme Doğru. Konsolda çalışmak ile ilgili olarak bunun ne anlama geldiğini düşündünüz. O da doğru. Bu yazıda söz edeceğim üç komut ile sistemde aradığınız bir uygulama ile ilgili man sayfalarını tarayabilir ve uygulamalr hakkında bilgi alabilirsiniz; apropos, whereis ve whatis.

GNU/Linux dağıtımlarının en çok sevdiğim özelliklerindne birisi belgelendirmedir. Nasıl yapılır, nerededir, ne kulanılır diye sormaya bağladığınızda başvurulacak bir kaynak bulmanız gereklidir. Önceki yazılarda -manual pagesaklımızda kalsın- man sayfaları ile komutlar hakkında ayrıntılı bilgi almayı görmüştük. Bazen ise komutun kullanımını ise konsolda komut_adı --help ile anımsamak kolaydır. Aradığınız parametreyi unutursanız anımsamak için işinize yarar. Gülümseme

Konsolda bazı durumlarda komuta veya uygulamaya dair daha fazla kaynak ve bilgi gerekebilir. Benzeri durumlarda apropos kullanabilirsiniz. Komut size man sayfaları içinde arama yaparak anahtar sözcüğü, terimi veya ifadeyi içeren kaynakların listesini sunacaktır.

Sonuçlar içinden aradığınız belirli bir terim, uygulama hakkındaki bilgiyi ise whatis veya whereis komutları ile alabilirsiniz. whatis ise man sayfalarında yer alan kısa tanımlamaları tarayarak karşına eşleşen tanımı getirir. Aradığınız bu mu? Gülümseme Eğer bulduysanız bu uygulama nerede? whereis kullanarak hem man sayfasını hem de uygulamayı bulabilirsiniz. Aşağıdaki örnekde bzflag oyunu hakkında bilgi almak için üç komutun kullanımını görüyorsunuz.

kandalf@linux:~-Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
kandalf@linux:~> apropos bzflag
bzfls (6)
   - BZFlag game server-list server
bzfrelay (6)    - BZFlag game server firewall relay
bzflag (6)    - a tank battle game
BZFlag (6) [bzflag]    - a tank battle game
bzfs (6)    - BZFlag game server
kandalf@linux:~> whatis bzflag
BZFlag (6)         
   - (unknown subject)
bzflag (6)         
   - a tank battle game
kandalf@linux:~> whereis -b bzflag
bzflag: /usr/bin/bzflag
kandalf@linux:~>

Whatis komutu kullanarak anahtar sözcükler için -w eklentisini kullanabilirsiniz. Yukarıdaki aramayı whatis -w *flag olarak aratmış olsa idik içinde "flag" geçen tüm kayıtları elde ederdik. Aynı durum whereis içinde geçerlidir. Çalıştırılabilir dosyalar-binary- için -b ve man sayfaları için -m kullanılır.

kandalf@linux:~-Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
kandalf@linux:~> apropos bzflag
bzfls (6)
   - BZFlag game server-list server
bzfrelay (6)    - BZFlag game server firewall relay
bzflag (6)    - a tank battle game
BZFlag (6) [bzflag]    - a tank battle game
bzfs (6)    - BZFlag game server
kandalf@linux:~> whatis bzflag
BZFlag (6)         
   - (unknown subject)
bzflag (6)         
   - a tank battle game
kandalf@linux:~> whereis -b bzflag
bzflag: /usr/bin/bzflag
kandalf@linux:~> whereis -b bzflag
bzflag: /usr/bin/bzflag
   
kandalf@linux:~> whereis -m bzflag
bzflag: /usr/share/man/man6/bzflag.6.gz
kandalf@linux:~>

Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #9 : Ocak 13, 2008, 05:10:26 ÖÖ »

Konsolda Çalışmak:10
Görüntü yakalamak ve görüntü işlemek!
Yazan: Kandalf Tarih: 18.04.2005

Konsoldan Ekran Görüntüsü Yakalamak

GIMP kullanarak ekran görüntüsü alabiliriz. Dosya - Acquire - Screenshot ile GIMP kullnarak ekran görüntülerini alabilirsiniz. Ksnapshot kullanarak da yapabiliriz. Konsoldan da yapabiliriz. Peki konsoldan yapmak ne kazandırır? Zaman ve hız. Konsoldan ekran görüntüsünü almak son derce kolaydır. Imagemagic sisteminizde varsa, konsoldan import komutu ile yapabilirsiniz.

import komutu ile kullanabileceğiniz seçenekler oldukça fazla. man import ile komutun kullanımı hakkında ayrıntılı bilgi alabilirsiniz. Önce bir pencerenin ekran görüntüsünü alarak başlıyoruz.

Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>import window.png
home@kandalf:~>







Komutu verdiğinizde bir + işareti ortaya çıkacak. Fareniz ile "+" istediğiniz pencerenin üzerine getirip tıkladığınızda o pencerenin görüntüsü ev dizininde yer alacaktır.
Yukarıdaki komutu verdiyseniz png uzantılı olarak window.png dosyası adı ile bulabilirsiniz. Dosya uzantısı farklı olabilir. Gülümseme Konsoldan dosyanızı görüntülemek ister misiniz? Basit...

Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>import window.png
home@kandalf:~>display window.png







Sadece pencereye tıklamak ile yetinmiyorsanız, Farenizin sol tuşuna basıp sürükleyerek belirli bir alanı seçebilirsiniz. Bu alanı seçtikten sonra sol tuşu bırakırsanız alanın görüntüsünü yakalamış olursunuz. Peki bütün bir masaüstü için ne yapacağız? Burada man sayfaları yerdımımıza geliyor. Komut seçeneklerine baktığımızda aşağıdaki komut ile tüm masaüstünün veya belirttiğimiz bir bölümünün görüntüsünü alabiliyoruz.

Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>import -window root masaustu.png
home@kandalf:~>import -window root -crop 512x512-0+0 -quality90 masaustu.jpeg
home@kandalf:~>






Evet, masaüstünün 512x512 piksel büyüklüğünde sol üst köşeden itibaren bir görüntüsünü yakaladık. Yüksek kalitede bir jpeg dosyası olarak. Gülümseme -0+0 ile sol üst köşeden başlamasını istedik. -quality90 ile jpeg kalitesini belirttik. Gülümseme Basit değil mi?

Renkli istemeyen ve geçmişe özlem duyanlar için de seçeneklerimiz var: -monochrome. Gülümseme Çereve isteyenler? -bordercolor renk_adı.

Görüntüleri aldık. Peki bunların dosya biçimlerini değiştirsek. Adını değiştirmekle dosyanın nitelikleir değişmeyeceğine göre jpeg nasıl eps olur? mogrify ile olur!

Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~>mogrify -format png *.jpeg
home@kandalf:~>mogrify -geometry 48x48 *.jpg
home@kandalf:~>






Konsolda -format ile hangi dosya formatlarını dönüştüreceğimizi belirtiyoruz. Sonrada bunları 48x48 ufalttım. Ufak resimler hazırlamak isterseniz çok çabuk yapabilirsiniz.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #10 : Ocak 13, 2008, 05:11:13 ÖÖ »

Konsolda Çalışmak:11
bg, fg ve &
Yazan: Kandalf Tarih: 18.04.2005

Arkaplan ve Önplan

Konsolda uygulamalar ile çalışırken bazı uygulamaları deyim yerinde ise arka planda çalıştırabilirsiniz. İstediğinizde ise yine "aktif" hale getirebilirsiniz. Kabuk programlıyorsanız ya da başka bir amaçla bir dizi işlemi yapmak duurmunda kalısanız, uygulamları arka plana almanın ve yeniden ön plana getirmenin ne kadar kullanışlı olduğunu biliyorsunuzudur.

Konsol oturumu açıp şu komutu verelim:

Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
home@kandalf:~>xmms -p &
[1] 6537
home@kandalf:~>






XMMS çalışmaya başlayacak ve listede kaldığınız yerdeki parçayı çalmaya başlayacaktır. Konsoldan & işareti olamdan vermiş olsaydınız konsolda XMMS çalışmaya başlayacaktı ancak verdiğiniz komutları işlemeyecekti. Gülümseme Uygulamayı arka planda çalıştırarak konsoldan diğer komutları vererek çalışmaya devam edebilirsiniz. Geri plandaki uygulamaları görmek isterseniz ne yapacaksınız? jobs komutu verdiğinizde arkaplanda çalışan başlattığınız uygulamaların bir listesini edinebilirsiniz. XMMS arka planda çalışırken ön plana alalım. XMMS ön planda ancak komutlarımız çalışmayacaktır. Bir uygulamayı arka plan almak istersek CTRL+Z basıp uygulamayı durdurabiliriz. Uygulamayı yeniden arka plana alabilir ve çalıştırmaya devam edebiliriz.

Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
home@kandalf:~>xmms -p &
[1] 6537
home@kandalf:~> jobs
[1] +      Running               xmms -p &
home@kandalf:~>fg 1
xmms -p
[1] +      Stopped
home@kandalf:~> bg 1
[1] + xmms -p &
home@kandalf:~>

Çalışan uygulamayı arka plana almak için bg, ön plana almak için ise fg komutunu vermek yeterlidir. uygulamayı arka planda çalıştırmak için & kullanmak yeterlidir.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #11 : Ocak 13, 2008, 05:12:11 ÖÖ »

Konsolda Çalışmak:12
Kabuk Programlamaya Giriş
Yazan: Kandalf Tarih: 18.04.2005

Kabuk Programlamaya Giriş

Başlık oldukça iddalı. Kabuk programlamaya giriş yapıyoruz. Konsolda çalışmaya devam ettikçe konsolun aslında ne kadar esnek ve güçlü olduğunu görmeye başlıyoruz. Konsol tasarlandığında kullanıcılara esnek ve güçlü bir ortam sağlamak için tasarlanmıştı. Dolayısıyla da konsolda komutları kullanarak bir dosya hazırlamak ve bunların konsol tarafından yorumlanması ile çalıştırılması da söz konusu oluyor.

Önceki yazı dizilerinde konsolda komutları bir satırda arka arkaya vererek düzenlenmesi ile birden fazla satıra yayılan ancak bir seferde arka arkaya işletilmesinin ne kadar hızlı olduğunu gördük. Kabuk programlamada da mantık aynı. Komutları arka arkaya yazıp, çalıştırıyoruz. Basit değil mi? Zor bir yanı yok.

Programı yazmadan önce bir kaç anımsatma:

*NIX ailesinde her şey dosyadır. Kısaca yazdığımız kabuk dosyasına uzantı tanımlamak durumunda değiliz. Kullandığımız dil ise konsol komutları olmak durumunda değil!

Dil olarak neleri kullanabiliriz?

    * Python
    * Perl
    * TCL
    * C/C++
    * Konsol komutları
    * PHP

Yukarda sadece sıkça karşılaşabileceğinz dillerden bir bölümü yer alıyor. PHP dışındakiler tamam ama PHP web uygulamları için, apache'de mi çalıştıracağız? Yanıt, hayır. Deneyin ve görün... Gülümseme

Kabuk programı yazmak için gerekenler:

Sevdiğiniz bir metin editörü. Biraz da programalama bilgisi. programla bilgisi için konsol komutları ilk başlayanlar için yeterli olabilir. kendinizi geliştiridikçe daha gelişmiş olanları yazabilirsiniz. Kendim KDE kullandığım için Kate kullanarak yazdım. Seçmemin nedeni Araçlar menüsünde yer alan Highlight Mode seçerek yazdığınız kodları renkli olarak görebilmeniz. Çeşitli editörlerde de benzer özellikler yer almaktadır. İstediğiniz editörü seçmekte özgürsünüz. Aşağıdaki renklerndirme Kate tarafından kullanılan renklendirmedir. Editöre göre değişkenlik gösterebilir.

Neler yapılacak? Ben kendi örneğimde hazırladığım programların yer aldığı Gelisitirme dizinini olduğu gibi yedekleyen ve yine ev dizinimde yer alan yedek dizinine yedekleyen bir program yazdım. Yedekleme dosyasının adını da dizin_yedekleme.tar.gz olarak belirledim. Dizini tar ile bütünleyip, gzip ile sıkıştırıyorum. Eski yedekleme dosyasını da silip yedek dizininde yeniden dizin_yedekleme.tar.gz.eski dosyasına aktarıyorum.

#usr/bin/bash!
cd yedek
rm dizin_yedekleme.tar.gz.eski
mv dizin_yedekleme.tar.gz dizin_yedekleme.tar.gz.eski
cd ../
tar -zcvf dizin_yedekleme.tar.gz Gelistirme
mv dizin_yedekleme.tar.gz /home/kandalf/yedek

Kodlar hakkında biraz duralım. İlk satır dosyamızı yorumlayacak olan uygulamayı tanımlıyor. İkinci satırda ise bir önceki dosyayı siliyoruz. Üçüncü basamakta ise önceden aldığımız yedeğimizi eski olarak isimlendirdik. Dördüncü dizinde ise bir üst dizine çıktık. Beşinci satırda ise dizini yedekleyerek sıkıştırdık. Son adımda ise yedeğimizi tanımladığımız dizine aktardık. Şimdi kayıt ve çalıştırma aşamasın ageçebiliriz.

Dosyamızı yedek.sh olarak veya yedek olarak kayıt edelim. Nereye kayıt edeceksiniz? Güncel bir dağıtım kullanıyorsanız ev dizininizde yer alan bin dizinine kayıt edin. Yoksa da ev dizininizin altına da kayıt edebilirsiniz. Son olarak kabuk programımızın çalıştırılabilir hale getirelim. Burada izinleri isteğinize göre düzenleyiniz. Çalıştırmak için ilk denemenizi yapamak için konsolu kullanabilirsiniz. Diğer bir seçenek de komut çalıştır seçeneği. Konsolda çalıştırırsanız işlemleri görebilirsiniz. komut çalıştır ile çalıştırısanız sonuç görmeyeceksiniz. Ben komut çalıştır kullandım. Konsol oturumu açıp daha sonra da yedek dizinine geçerek sonucu kontrol ettim.

Konsole
Oturum Düzenle Görüntüle Yer imleri Ayarlar Yardım
home@kandalf:~/yedek>ls -l
Toplam 24
   
   
   
   
   
   
   
-rw-r--r--
   1
   Kandalf
   9826
   2005-1-14    17:30
   dizin_yedekleme.tar.gz
-rw-r--r--    1
   Kandalf
   9826
   2005-1-14    17:29
   dizin_yedekleme.tar.gz.eski
home@kandalf:~/yedek>

   
   
   
   
   
   
   

   
   
   
   
   
   
   

   
   
   
   
   
   
   

Gördüğümüz gibi bir yedek dosyamız var. Bu şekilde düzenli olarak yaptığınız bir çok işlemi programlayablir ve cron ile düzenli olarak çalıştırabilirsiniz.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #12 : Ocak 13, 2008, 05:13:04 ÖÖ »

Konsolda Çalışmak:13
cal ve gcal
Yazan: Kandalf Tarih: 18.04.2005

Takvim Nerede?

Konsolda bir takvim uygulması olsa nasıl olurdu? Var. Farklı dağıtımlar için farklı uygulamalar var. Benlkide en yaygın olarak bilineni ise cal. Öncelikle cal ile  başlayalım. Konsol oturumu açıp ilk komutu verelim. cal komutunu tek başına kullandığınızda sadece içinde bulunduğunuz ayı gösteren bir takvim karşına gelecektir. Ancak komutun diğer parametrelerini kullandığınızda ise takvim biraz daha kullanışlı olacaktır.

Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
home@kandalf:~>cal

   
   Ocak 2005
   
   
Pa
   Pz    Sa    Çr    Pr    Cu    Ct    

   
   
   
   
   
   1
   
2
   3
   4
   5
   6
   7
   8
   
9
   10    11    12    13    14    15    
16    17    18    19    20    21
   22
   
23    24    25    26    27    28    29    
30    31    
   
   
   
   
   
home@kandalf:~>


Cal standart olarak günleri pazardan başlatmaktadır. Ancak Pazartesiden başlatabilir, geçmiş, şimdiki ve gelecek ayı görüntüleyebilir ve  hatta isterseniz bir yılı da görüntüleyebilirsiniz. Sadece bu yıl ile sınırlı değiliz. Seçtiğiniz bir yılı görüntüleyebilirsiniz, 1-9999 arasında olmak koşulu ile. Bunları ise farklı seçenekleri birlikte kullanarak yapıyoruz. Aşağıda bu seçenekleri görelim:

    * -s:Haftanın ilk günü Pazar'dır.
    * -m: Haftanın ilk günü Pazartesi'dir.
    * -3: Geçmiş, bu ve gelecek ay görüntülenir.
    * 1-12: seçtiğiniz ay görüntülenir.
    * 1-9999: seçtiğiniz yıl görüntülenir.

Örneğin Aralık 1999-Ocak 200-Şubat 2000 3 aylık süresini, haftanın ilk günü Pazartesi olarak görüntülemek için cal -m3 1 2000 komutunu kullanırız. Bu yılın 12 ayını görüntülemek için de cal -y 2005 yazmak yeterli olacaktır.

Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
home@kandalf:~>cal -m3 1 2000
Aralık 1999    
   Ocak 2000
   
   Şubat 2000
   
Pz    Sa    Çr    Pr    Cu
   Ct    Pa    
   Pz    Sa    Çr    Pr    Cu    Ct    Pa    
   Pz    Sa    Çr
   Pr    Cu
   Ct
   Pa    

   
   1
   2
   3
   4
   5
   
   
   
   
   
   
   1
   2
   
   
   1    2
   3
   4
   5
   6
   
6
   7
   8
   9
   10
   11    12
   
   3
   4
   5
   6
   7
   8
   9
   
   7
   8
   9
   10    11    12    13    
13    14    15    16    17    18    19    
   10    11    12    13    14    15    16    
   14    15    16    17    18    19    20    
20    21    22    23    24    25    26    
   17    18    19
   20    21    22    23    
   21    22    23    24    25    26    27    
27    28    29    30
   31    
   
   
   24    25    26    27    28    29    30    
   28    29    
   
   
   
   
   

   
   
   
   
   
   
   
   31    
   
   
   
   
   
   
   
   
   
   
   
   
   
   
home@kandalf:~>

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

Bir Adım İleri...

Elimizdeki tek takvim bu değil. gcal kullanabilirsiniz. Peki ne farkı var? gcal geniş bir seçenek yelpazesine sahip. Yılın hangi haftasında olduğunuzu, resmi ve dini bayramları görebilirsiniz. Bunları bir de ülke bazında kullanabildiğinizi düşünsenize? Gülümseme Hemen uygulamaya geçelim.

Konsole
Oturum   Düzenle   Görüntüle   Yer imleri   Ayarlar   Yardım
home@kandalf:~>gcal -K -q TR 1 2005

   
   
   
   
   
   
   
   
   
January 2005
   
   
   
   
   
   
   
   

   
   
   
   
   
   
   
   
   
Monday
   
   3
   10
   17    24    31    
   
   
Tuesday    
   4
   11
   18    25    
   
   
   
Wednesday    
   5
   12
   19    26    
   
   
   
Thursday    
   6
   13
   20
   27    
   
   
   
Friday    
   7
   14    21    28    
   
   
   
Saturday    1    8
   15    22    29    
   
   
   
Sunday    2
   9
   16    23    30
   
   
   
   

   
   
   
   
   
   
   
   
   
Week    53/
   1
   2
   3
   4
   5
   6
   
   
   

   
   
   
   
   
   
   
   
   
home@kandalf:~>

Yukarıda komutta kullandığımız seçenekler yılın kaçıncı haftasını olduğunu görmek için -K kullandık. Bayramları ve diğer özel günleri görebilmek için de -q TR seçeneğini ekledik. Son olarak da ay ve yıl yazarak komutu tamamladık. gcal sadece bu seçenekler ile sınırlı değil. info komutu ile seçeneklere ulaşabilirsiniz. Kişisel görüşüm info ve man sayfalarının yeterli olmadığı. Bazı uygulamalar ise oldukça can alıcı olmasına rağmen-örneğin randevularınız için gcal-daily gibi-kullanmakta oldukça zorlanıyorsunuz.Bir noktaya dikkat çekmek istiyorum: Uygulamada bazı hatalar olduğu için tüm ülkelerin takvimi bulunmuyor, bir de dini bayramlarda 1 günlük bir sapma rastlanıyor.

Tek takvim uygulması bu değil. Libranet kullanıyorsanız Calendar adlı uygulamada bazı değişiklikler yaparak konsoldan çalışan bir ajanda-takvim uygulaması edinebilirsiniz. Eğer dağıtımınızda eklenmiş ise calendar deneyiniz.
Logged
GaCCaLL
Global Moderator
***
Offline Offline

Mesaj Sayısı: 56



Üyelik Bilgileri
« Yanıtla #13 : Ocak 13, 2008, 05:13:51 ÖÖ »

Konsolda Çalışmak:14
cron ve crontab
Yazan: Kandalf Tarih: 18.04.2005

big>Düzenli çalışmak: Cron ve Crontab

*NIX işletim sistemi ailesi bilgisayarın kapatılıp ve yeniden başlatılmasıne gerek duymayacak biçimde tasarlanmışlardır. Bu nedenle de sistem 7/24 rahatlıkla çalışmaktadır. Ancak bu kesintisi çalışma berberinde bazı gereksinmeleri de getirmektedir. Sürekli olarak çalışabilen bir sistemin kaynakalrının kontrol edilmesi gereklidir. Bunları ise ratgele yapmak yerine düzenli olarak bir program çerçevesinde yapılması en uygun çözümdür. Bu nedenle sisteme düzenli olarak yürütülen ve belirli bir çizelgeye göre tekrarlanan işleri gerçekleştirmek için cron ve ilgili ayar dosyalarınında düzenlenerek kesintisiz çalışmanın sağlanması için de crontab uygulamaları geliştirilmiştir.

Sistemin başlangıcında cron daemon, etc dizinindeki açılış scritplerinin yer aldığı dizinden çalıştırılır. Bu şekilde açılış sırasında yüklenir. /var/spool/cron ile etc/cron.d dizinlerinde yer alan crontab dosyaları kontrol eder. Söz konusu dizinlerdeki dosyaların biçimleri farklıdır. /var/spool/cron dizinine sadece root erişebilir. *NIX ailesinin öz ve az olan ayar dosyaları sistem başlancında okunmakta olduğu için önceki yazılarda gördüğümüz gibi bazı durumlarda bu dosyaların konsoldan yeniden çağrılması yeterli olmaktadır. Ancak bu işi her seferinde yapmak yerine kendi kendine güncellenen bir sürece oturtmak ise daha uygundur. Bu da crontab ile yapılır.

Cron sistem çalışırken her dakika crontab dosyalarını kontro