Eki 01
Çoklu işletim sistemi kullanırken (linux + windows gibi) veya çeşitli işlemlerden dolayı grub loader’ı kaybettiğiniz veya bozduğunuz durumlar olabilir. Bu durum en çok da linux üzerine windows işletim sistemi kurulduğunda gerçekleşir. Bu durumda da bilgisayarınıza erişemezsiniz. Paniğe gerek yok. Dosyalarınız ve işletim sistem(ler)iniz olduğu gibi duruyor. Aşağıda anlatılan bir kaç basit işlemden sonra grub boot loader yeniden çalışacaktır.
Öncelikle buradaki grub loader iso dosyasını indirip bir cd ye yazarak kendimize bir boot cd si hazırlayalım. (1.2 MB) Bu cd yardımı ile kaybettiğimiz grub yerine bu cd deki grub loader ile sistem açılışını yapacağız.
Not: Elinizde Ubuntu Live CD’niz varsa bu CD ile boot yaptıktan sonra açılan live işletim sisteminde de aşağıdaki işlemleri yapabilirsiniz.
Boot cd sini hazırladıktan sonra bilgisayarımızı bu cd ile açıyoruz. Açılışta yine bir grub loader ekranı çıkacak ve burdan ilk seçeneği seçip mevcut işletim sistemimizle bilgisayarımızın açılmasını sağlayacağız. Kendi işletim sisteminizle oturum açtıktan sonra komut satırında
komutu ile grub komut satırını başlatıyoruz. Şimdi çöken grub loader’ı tamir edelim. Grub komut satırında iken
yazdıktan sonra tab tuşuna basıyoruz. Parantezden önceki boşluk önemli. Bilgisayarımızdaki takılı disk sayısı bir tane ise burası hd0 şeklinde tamamlanacaktır veya aşağıda diğer seçenekler listelenecektir. (hd0,hd1.. gibi) Burada önemli nokta işletim sisteminizin hangi diskte olduğunu bilmeniz. Bu ilk parametre genellikle hd0 dır. Komut satırında artık
yazıyor olmalı. Biz yine tab tuşuna basıyoruz ve diskimizdeki bölümleri ve dosya sistemlerinin listelenmesini sağlıyoruz.
grub> root (hd0,
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type unknown, partition type 0x82
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Sistemi başlatmak istediğimiz işletim sistemine göre buradaki disk bölümünün id sini 2. parametre olarak veriyoruz. Ext2 formatındaki linux işletim sistemi için id si 5 olan bölüm seçilecek.
şeklinde komutu yazıyoruz. Daha sonra bu ayarların geçerli olması için
komutunu veriyoruz. Daha sonrada
komutu ile çıkış yapıyoruz. Artık sistemi yeniden başlatabiliriz.
Takılı olan boot cd sini çıkarıyoruz ve sistemimiz normal bir şekilde açılıyor. (öyle olması gerekiyor!)
Kas 10
Bir dizin içerisinde alt dizin ve dosyaları içermeyecek bir arama yapabilmek için find komutunun maxdepth parametresinin kullanılması gerekir.
komutu kök dizinde bulunan dosya ve dizinleri bulur. Find komutunda diğer parametrelerle birlikte kullanabilirsiniz.
find / -maxdepth 1 -amin -10
komutu kök dizinde bulunan son 10 dakika içeresinde erişilmiş olan dosyaları bulup listeleyecektir.
Kas 07
Linux kullanırken bazı programların ftp desteği olmaması canımızı sıkabilir. Bu durumun üstesinden gelmek için linux kernelinin fuse desteği ile derlendiği veya fuse modüllerinin çalıştırılabiliceği linux dağıtımlarında curlftpfs paketini kurarak lokalde oluşturduğumuz bir klasörü bir ftp sunucusuna bağlayıp istediğimiz ftp sunucusunu lokal bir klasörmüş gibi kullanabiliriz.
debian için;
apt-get install curlftpfs
komutuyla veya aptitude yardımıyla paketi kurulum için işaretlemek ve kurmak yeterli olacaktır.
Kurulumu tamamladıktan sonra ftp üzerinden dosya düzenlemek veya benzeri işlemler için gerekli bağlantıyı kurmak için öncelikle mount edilecek bir dizin oluşturalım.
Dizini oluşturduktan sonra
curlftpfs ftp://kullaniciadi:sifre@sunucuadresi/ /mnt/ftp/
komutu ile ftp dizinini lokal dizinimize bağlamış oluruz. Bundan sonra bu dizinde yapacağımız tüm işlemler otomatik olarak ftp’deki sisteme yansıyacaktır.Unmount etmek için ise basitçe
komutunu vermek yeterlidir.
Mar 01
Dizinler
Unixte dosya ve dizin yollarını ayrıştırmak için sağa yatık bölü işareti (slash) “/” kullanılır.
Örnekler:
/ "root" dizini dosya sisteminde herşeyin bağlı olduğu kök dizindir.
./ O anda bulunulan dizini belirtir.
../ Bir üst dizini belirtir.
/usr usr dizini (/ "root" dizininin alt dizini)
/usr/STRIM100 STRIM100 /usr dizininin alt dizini
Dosya sisteminde gezinme
pwd O anda aktif olarak çalışılan dizini gösterir
cd Mevcut dizinini HOME dizinine değiştirir
cd /usr/STRIM100 Mevcut dizini /usr/STRIM100 dizinine değiştirir.
cd INIT Mevcut dizini bulunulan dizinin içindeki INIT dizinine değiştirir.
cd .. Mevcut dizini mevcut dizinin bir üst dizinine değiştirir.
cd $STRMWORK Mevcut dizini 'STRMWORK' çevresel(environmental) değişkeni içinde tanımlanmış olan dizine değiştirir.
cd ~bob Mevcut dizini bob'un ev dizini olarak değiştirir (eğer erişim izniniz varsa).
Dizin içeriklerinin listelenmesi
ls Bir dizinin içeriğini listeler
ls -l Bir dizinin içeriğini detayları ile listeler.
Örneğin:
ls -l
drwxr-xr-x 4 cliff user 1024 Jun 18 09:40 WAITRON_EARNINGS
-rw-r--r-- 1 cliff user 767392 Jun 6 14:28 scanlib.tar.gz
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | | |
| | | | | sahip grup boyut tarih zaman isim
| | | | dosya ya da dizine olan bağlantı sayısı
| | | genel izinler
| | grup kullanıcılarının izinleri
| dosya sahibinin izinleri: r = okuma, w = yazma, x = çalıştırma -=izin yok
dosyanın dürü: - = normal dosya, d=dizin, l = sembolik bağ, ve diğerleri...
ls -a Mevcut dizinin içeriğini gizli dosyalarla birlikte listeler. Gizli dosyalar "." ile başlar.
ls -ld * Mevcut dizindeki dosya ve dizinlerin isimlerini uzun biçimde listeler. "d" seçeneği olmadan mevcut dizindeki tüm alt dizinlerin içeriğini listeler. "d" seçeneği dizinleri de normal dosyalar gibi listeler.
Dosya izinleri ve özniteliklerinin değiştirilmesi
chmod 755 dosya
Dosya izinlerini sahip için rwx, grup ve diğerleri için rx olarak değiştirir. (7 = rwx = 111 ikilik sayı sisteminde, 5= r-x =101 ikilik sayı sisteminde)
chgrp kullanici dosya
Dosyanın grup sahipliğini kullanici grubuna değiştirir.
chown ali dosya
Dosyanın kullanıcı sahipliğini ali kullanıcısına değiştirir.
chown -R ali dizin
Dizin ve dizin altındaki herşeyin kullanıcı sahipliğini ali kullanıcısına değiştirir.
Bu değişikliklerin herhangi birini yapabilmek için dosya veya dizinin sahibi olmalısınız.
Dosyaların taşınması, yeniden adlandırılması ve kopyalanması
cp dosya1 dosya2 Bir dosya kopyala.
mv dosya1 yeniisim Dosyayı taşır ya da yeniden adlandırır.
mv dosya1 ~/AAA/ dosya1'i ev dizininiz altındaki AAA dizinine taşır.
rm dosya1 [dosya2 ...] Bir veya birden fazla dosyayı siler ya da kaldırır.
rm -r dir1 [dir2...] Bir dizin ve onun tüm içeriğini rekürfis olarak kaldırır. (DİKKATLİ KULLANIN)
mkdir dizin1 [dizin2...] Dizinler oluşturur.
mkdir -p dizinyolu Verilen yoldaki tüm dizinlerle birlikte dizinyolunda belirtilen dizini oluşturur.
rmdir dizin1 [dizin2...] Boş dizinleri kaldırır.
Dosyaların görüntülenmesi ve değiştirilmesi
cat dosyaadi Dosya içeriğini ascii olarak ekrana basar.
more dosyaadi Bir dosyanın içeriğini ekrana ilerlenebilecek şekilde basar: ENTER = bir satır aşağı, BOŞLUK TUŞU= bir sayfa aşağı, q=çıkış
less dosyaadi More gibi, fakat Page-Up tuşunu da kullanabilirsiniz. Her sistemde değil.
vi dosyaadi Vi editörünü kullanarak bir dosyayı güncelle. Tüm UNIX sistemler bir şekilde vi editörünü barındırır.
emacs dosyaadi Emacs editörünü kullanarak bir dosyayı güncelle. Tüm sistemlerde emacs olmayabilir.
head dosyaadi Dosyanın ilk bir kaç satırını görüntüler. Genelde ilk 10 satır.
head -n Dosyaadi Dosyanın ilk n satırını gösterir.
tail dosyaadi Dosyanın son bir kaç satırını gösterir. Genelde son 10 satır.
tail -n dosyaadi Dosyanın son n satırını gösterir.
tail -f dosyaadi/akış Belirtilen dosya veya akış kaynağının sonuna eklenen satırları sürekli olarak gösterir. Durdurmak veya çıkış yapmak için Ctrl+C.
Kabuklar
Komut satırı arayüzünün davranışı kullanılan kabuk programına bağlı olarak değişiklik gösterir. Kullanılan kabuğa bağlı olarak, bazı fazladan özellikler çok hoş olabilir. Hangi kabuğu kullandığınızı görmek için aşağıdaki komutu kullanabilirsiniz:
Kabuk komutlarının belli bir sırayla bir dosya içerisine yazılması ile oluşturulan dosyalarla yapılması istenen bir görevi yerine getirebiliriz. Buna kabuk betiği(shell script) denir.
Bir çok kabuğun asıl amacı interaktif komut istemcisi değil betik dili yorumlayıcısı olmasıdır.
Çevresel değişkenler
Kabuğunuzu daha sonra kullanmak üzere çevresel değişkenlere hatırlayabileceği değerler atayarak eğitebilirsiniz.
Örneğin bash kabuğunun altında:
export CASROOT=/usr/local/CAS3.0 CASROOT değişkenine /usr/local/CAS3.0 değerini atar.
export LD_LIBRARY_PATH=$CASROOT/Linux/lib LD_LIBRARY_PATH değişkenine CASROOT içindeki değeri sonuna /Linux/lib ekleyerek atar, veya /usr/local/CAS3.0/Linux/lib değerini atar diyebiliriz.
Değişke adının başına $ işaretini koyarak değişkeni istediğiniz komutun içinde kullanabilirsiniz:
cd $CASROOT Mevcut çalışma dizininizi CASROOT'un değeri olarak değiştirir.
echo $CASROOT CASROOT'un içindeki değeri basar.
printenv CASROOT Bash ve diğer bazı kabuklarda aynı işi görür.
Mar 01
GNU/Linux ve open source dünyasının dergisi eniXma’nın Mart 2008 sayısı yayınlandı.

İçindekiler:
- GPLv3
- KDE Programcıkları
- GCompris
- Compiz-Fusion
- Kontact
- Portage Kullanımı ve Hatalar
- Geany
- Slax 6
- PcBSD
- Kabuk Programlama – XV
- RS232 – Seri Port – I
İndirmek için tıklayın.
Şub 13
Scott Klarr isimli bir arkadaşımız hemen hemen her konuda cheat sheets diye tabir edilen kopya kağıtlarını bir araya toplamış. Programlama, bilgisayar sistemleri ve tasarım konularında çok sayıda kopya kağıdı mevcut. Elimin altında her konuda özet bir belge olsun diyenler için bire bir.
Şub 08
Programlama da veya günlük bilgisayar kullanımında bir fonksiyon adı, değişken adı veya herhangi bir metnin hangi dosyalarda geçtiğini öğrenmemiz gerekir. Bu gibi durumlarda linux kullanıcıları aşağıdaki komut dizisi ile bu dosyalara ulaşabilirler.
find /var/www/ -type f -name "*.php"|xargs grep -l 'dosya_ac'
find komutu belirttiğiniz yolda dosyaları arar. Parametre olarak /var/www/ verdiğimiz için www dizininde ve tüm alt dizinlerinde arama yapar.
-type opsiyonu aldığı parametrelerle aradığınız nesnenin tipini belirlememize yardımcı olur. Dosya için f, dizin için d, sembolik link için l gibi.
-name parametresi dosya adını ifade eder. Joker karakterler kullanabilirsiniz. “*.php” tüm php uzantılı dosyalar gibi.
find ile bulduğumuz bu dosyaların içinde kelime araması yapmak istiyorsak sonuç olarak bulunan dosya isimlerini dosya içinde arama yapabileceğimiz grep komutuna yönlendirmemiz gerekir. grep komutuna yönlendirme yapmak için pipe | işareti, grep komutuna dosya isimlerini parametre olarak göndermek içinde xargs komutu kullanılır.
grep komutuna parametre olarak -l verdiğimizde bize sadece aradığımız metnin geçtiği dosya isimlerini geri döndürür ve dosya içerisinde arama yaparken ilk bulduğu metinden sonra aramayı bırakarak daha hızlı ilerlemeyi sağlar. -l parametresi verilmediği taktirde metnin dosya içerisinde geçtiği tüm satırları geri döndürür.
Kısaca yukarıdaki komut, /var/www/ dizini ve tüm alt dizinlerinde ki php uzantılı tüm dosyalarda ‘dosya_ac’ metni geçenleri bulur.
Oca 31
Çoğumuz internete erişme konusunda sıkıntılar yaşarız. Bu sıkıntılardan bazıları, sayfaların hiç açılmaması yada çok yavaş açılmasıdır. Telekom’un dnslerinin sık sık sorun çıkardığını çoğumuz tecrübe etmişizdir.
Linux’ta dns adreslerini değiştirmek veya yeni dns adresleri girmek için
dosyasını kullanırız.
ör:
nameserver 195.175.39.39
nameserver 195.175.39.40
resolv.conf dosyasına yukarıdaki satırları ekleyerek dns adresi girebilirsiniz. Çalışmadığını düşündüğünüz dns adresinin başına # koyarak kapatabilir veya silebilirsiniz. Çalışan dns adreslerini arama motorlarını kullanarak bulabilirsiniz.
Oca 31
Dün siteye Php Kaynak başlıklı yazımızı eklediğimde yazının eklenme tarihinin 31 Ocak 2008 olarak belirlendiğini farkettim. Oysa olması gereken tarih 30 Ocak 2008 idi. Hemen wordpress Tercihler menüsüne baktım. Zaman dilimi (2) doğru görünüyordu fakat tarih ve saat yanlıştı. Hemen sistem tarihine baktım.
date
Wed Jan 30 15:05:48 PST 2008
Sistemde tarih ve saat doğru görünüyordu. Worpressten kaynaklanan bir sorun olduğunu düşünmeye başladım. Kodları biraz inceleyince wordpressin tarihi gösterirken date() fonksiyonu yerine gmdate() fonksiyonunu kullandığını gördüm. gmdate fonksiyonu tarihi Greenwich Mean Time (GMT)‘a göre geri döndürüyor ve sistemin GMT zaman dilimi PST (Pacific Standard Time) olarak ayarlanmış. (Aslında ayarlanmamış
sunucu yurtdışında bulunduğu için zaman dilimi ayarı bu şekilde kalmış.) Sistemin zaman dilimi PST olduğu için gmdate fonksiyonu da yanlış bir tarih döndürüyordu. Doğru tarih ve saat için sistemin zaman diliminin aslında EET (Eastern European Time) olması gerekiyordu.
Linux sistemlerde bu ayar /etc/localtime dosyası tarafından sağlanıyor. /usr/share/zoneinfo/Asia/Istanbul dosyasını /etc dizininin altındaki locatime dosyasına sembolik link ile bağlayarak zaman dilimi EET olarak düzeltilebiliyor.
ln -sf /usr/share/zoneinfo/Asia/Istanbul /etc/localtime
komutu ile sistemin zaman dilimini EET yapıp, tarihi de daha önce anlattığımız şekilde düzeltince sorun düzeldi. Bu işlemi yaptıktan sonra sisteminizdeki servisleri(Apache, Cron, Mysql v.s) yeniden başlatmak gerekiyor. Saat dilimleri hakkında daha fazla bilgi almak için buraya.
Ağu 21
Linux’ta yaşadığımız sorunlardan birisi tarih / saat ayarlarının bozulmasıdır. Linux’ta tarih saat ayarlarını değiştirmek için “date” komutunu kullanabiliriz.
Kullanımı:
date -s "08/21/2007 09:05:00"
Tarih parametresini verirken aradaki ayraç “/” olmak zorunda. Daha fazla bilgiyi ” man date ” komutu ile alabilirsiniz.
Son Yorumlar