9. tar ile nasıl yedek alırım? Kod: $ tar -b4096 -zcvf hedef kaynak -b blok sayısını belirmenizi sağlar. Bu seçeneği kullanmazsanız geçerli olarak 1024 byte kullanılır. Bu değer eski tip yedekleme birimlerine göredir. 1024 byte ile yedekleme işleminiz çok yavaş olacaktır. -z seçeneği sıkıştırmak içindir. İsterseniz kullanmayabilirsiniz. Yerden kazanmak için kullanışlıdır. -c yedek oluşturur. -v , yani ekrana ayrıntılı açıklama basar. -f hedef çıktının yazılacağı dosya. Bu sizin yedekleme biriminizin /dev/ altındaki aygıt karşılığı olabileceği gibi yedek. tgz şeklinde bir dosya ismi de olabilir. kaynak ise sıkıştırmak istediğiniz dizin ve/veya dosyaları belirtir. Aralarında boşluk bırakarak çok sayıda dizin ve/veya dosya belirtebilirsiniz. 10. dump ile nasıl yedek alırım? dump ile bir dosya sisteminin yedeği şöyle alınır: Kod: # dump -auc0 -f/dev/st0 /dev/hda1 Burada yedekleme ünitenizin /dev/rsa0 olduğunu varsaydım. Bu komut ile /dev/hda1 yani sabit diskinizin ilk bölümü yedeklenir. 11. Bir. bz2 dosyasını nasıl açarım? Kod: $ bzip2 -dv Dosyaadi. bz2 12. Yanlışlıkla ikilik bir dosyayı cat ile ekrana yazdırdım. Konsol kullanılmaz hale geldi. Ne yapmalıyım? Bunu düzeltmek için Control+v Escape+c kullanabilirsiniz. Konsol kullanılamaz halde olsa bile ve siz birşey yazdığınızı görmeseniz bile yine de konsolda reset yazın. Eski haline dönecektir. 13. Bir önceki dizine nasıl dönerim? Bir üst dizine nasıl çıkarım? Bir önceki dizine cd -, bir üst dizine cd.. ile gidebilirSiniz. 14. Bir dosyayı nasıl sıkıştırabilirim? Bunun için en kolay yol gzip kullanmaktır. Kod: $ gzip -9 /dizin/dosya ile dosya sıkıştırılabilir. -9 maksimum sıkıştırma uygulanması içindir. gzip sıkıştırılan dosyaların sonuna. gz ekler. Bu yolla sıkıştırılmış bir dosyayı açmak için Kod: $ gunzip /dizin/dosya kullanılır. Dosya açılacak ve sonundaki. gz kaldırılacaktır. 15. Bir dosyanın türünü nasıl öğrenebilirim? Kod: $ file dosya 16. Bir dizinin ne kadar yer kapladığını nasıl öğrenirim? Kod: $ du -s dizinadi 17. Sabit disklerimin ne kadarını kullandığımı nasıl öğrenirim? Kod: $ df -k 18. Ne kadar bellek kullanıldığını nasıl öğrenirim? free komutunu kullanabilirsiniz. 19. Bir dosyayı satır sayısına veya dosya boyuna göre nasıl bölerim? Bunun için split komutu kullanılmaktadır. Belli bir satır sayısından sonra bölmek için -l, dosya boyuna göre bölmek için -b parametreleri kullanılır. Örnek vermek gerekirse: Kod: $ split -l 100 dosya. txt yeni Bu komut dosya. txt dosyasını 100 ́er satırlık parçalara böler ve yeniaa, yeniab, yeniac, ... şeklinde dosyalar oluşturur. Kod: $ split -b 1440k dosya. txt yeni Bu komut ise dosya. txt dosyasını 1.44 MB ́lık parçalara böler ve yeniaa, yeniab, yeniac, ... şeklinde dosyalar oluşturur.

20. Bir bash betiği ile sistemin tarih-saat bilgilerini nasıl alırım? Zaman bilgisi gerektiğinde aşağıdaki satırlar ile DDMMYY-hh:mm. ss biçeminde zaman bilgisi $tarih değişkenine yüklenebilir. Biçemi istediğiniz gibi değiştirebilirsiniz. Hata olursa tırnak işaretlerinde sorun olabilir. #!/bin/bash gun=`date +%d` ay=`date +%m` yil=`date +%y` saat=`date +%H:%M.%S` tarih=$gun$ay$yil-$saat echo $tarih Ayrıntılı bilgi için man date ya da date --help ile yardım alabilirsiniz. 21. Bulunduğum dizindeki programları neden çalıştıramıyorum? Çünkü bulunduğunuz dizin ".", $PATH ortam değişkeninde güvenlik sebebiyle bulunmuyor. Bulunduğunuz dizindeki programları çalıştırmak için programim yerine./programim kullanın. Bir başka yol ise export PATH=$PATH:. ile./ dizinini $PATH ortam değişkeninize eklemektir. 22. Bulunduğumuz dizindeki programları çalıştırmak için./ dizininin PATH'a eklenmesinin güvenlik açığına neden olduğunu söylediniz. Bahsedilen güvenlik sakıncası nedir? Bulunduğunuz dizindeki programlar kullanıcı programları olup güvenilir olmayabilirler. Dolayısıyla çalıştırılmaları özellikle./ söylenerek yapılır. Tabi kendinizden eminseniz PATH'e ekleyebilirsiniz. Ayrıca: export PATH=".":$PATH şeklinde bir tanımlama yapmak ciddi bir güvenlik açığı olabilir. Bunun yerine export PATH=$PATH:. şeklinde yapmak daha güvenli olacaktır. Şundan dolayı; ilk tanımlamada bulunduğunuz dizin verilen komut için aranılan ilk dizin olacaktir. Yani siz örneğin ls komutunu verdiğiniz zaman ilk önce bulunduğunuz dizinde ls adlı bir dosya olup olmadığına bakılır. Bu durumda örneğin bir kullanıcı bulunduğu, yani kendi ev dizininde ls diye bir çalıştırılabilir dosya yaratabilir ve içine örneğin, echo "acemi:0:0:... " >>/etc/passwd /bin/ls gibi veya daha düzenli bir bash betiği yazarak kendisine acemi adında root haklarına sahip bir kullanıcı açılmasını sağlayabilir. Bunu sağlaması ise root'un o kullanıcının ev dizinine giderek ls komutunu vermesi ile olur. Böylece ilk örnekte "." PATH tanımlasının en başında olduğu için bulunulan yerdeki ls'e bakılır ve acemi kullanıcısı açılmış olur. Bundan dolayı "." gibi tanımlamaları aslında eklememek, PATH'e eklenecekse de en sona eklemek gerekir. 23. Linux açıldığında NumLock tuşunun otomatik olarak etkin olmasını nasıl sağlarım? /etc/rc. local dosyasının sonuna for t in 1 2 3 4 5 6 7 8 do setleds +num < /dev/tty$t > /dev/null done eklemesini yapın. 24. Kullandığım Linux çekirdeğinin sürümünü ve makinanın adını nasıl öğrenebilirim? uname -a komutunu kullanabilirsiniz. 25. Linux'ta silinen dosyalar nasıl geri alınabiliyor? Midnight Commander'ın Command menüsünden ext2 dosya sisteminde silinen dosyaları geri alabilirsiniz. Dosyayı geri kurtarmak için bir mekanizma yoktur. Ancak bunu yapabilmeniz mümkün. Değişik yollardan birkaçı: Midnight Commander, dosya sistemi işlevlerini kullanarak (sadece ext2fs ve ext3fs için geçerli olmak üzere) silinen dosyayı geri kurtarabiliyor. Bunun dışında doğrudan disk üzerinde grep ile arama yapabilirsiniz. # grep -b "kayip yazilarim" /dev/hda -B ve -C gibi parametreler kullanışlı olabilir. 26. Linux açılırken ekrana çıkanları daha sonra nasıl görebilirim? dmesg ile görebilirsiniz. 27. Sistem kaynaklarını nasıl görüntülerim? top komutu ile bellek ve takas alanınızın ne kadarının kullanıldığını, ne kadarının boş olduğunu, ayrıca süreçlerinizin ne kadar işlemci ve bellek kullandığını görebilirsiniz. 28. Slackware dağıtımı için kaynak kodundan derlemek dışında bir çözüm yok mu? Burda Slackware için derlenmiş. tgz paketleri bulabilirsiniz. Kod: 29. Windows'dan telnet veya ssh ile baglandığımda işlev tuşları çalışmıyor. Mesela mc'nin menülerine ulaşamıyorum. Ne yapmalıyım? İşlev tuşları yerine ESC tuşu ile birlikte rakamları kullananın. Örneğin: F3 yerine ESC + 3, F10 yerine ESC + 0 30. Bir rpm paketini rpm -Uvf ile güncellemek istediğimde "error: failed dependencies" şeklinde bir hata veriyor. Sorun nedir? Kurmak istediğiniz rpm paketi diğer başka paketlere de ihtiyaç duyuyor. Bu paketle birlikte onları da kurmalısınız . 31. Internet'den çektiğimiz bir ISO dosyasını CD'ye nasıl yazabiliriz? Linux'da CD Yazımı belgesinde anlatılıyor. 32. CD yazmak istediğimde cdrecord programı SCSI arabirimi kullanmadığım halde sürekli olarak 'Cannot open SCSI driver' hatası veriyor? Çekirdeğin IDE CD yazıcınızı SCSI olarak görmesi için çekirdeğe "SCSI Emulator" desteği vermeli ve /etc/lilo. conf dosyanıza aşağıdaki gibi bir tanım satırı eklemelisiniz: label=linux yazan gruba, append="hdX=ide-scsi" eklemelisiniz. hdX'de X yerine CDRW'ın takılı olduğu ide portunu yazmalısınız. 33. Takas alanım çalışmıyor? Sebebi ne olabilir? Linux'unuz açılırken ekranda Adding Swap: 208804k swap-space (priority -1) gibi bir satır görmeniz gerekir. Eğer görmüyorsanız takas alanınız sistem açılırken eklenmiyor demektir. Sisteme girdikten sonra: Kod: # swapon -av komutu ile takas alanı çalışır hale getirebilirsiniz. Her açılışta takas alanınızın da açılmasını istiyorsanız açılış betiklerinize : Kod: /dev/hda2 none swap sw şeklinde bir satır ekleyin. Burada takas alanınızı /dev/hda2 olarak ayırdığınızı varsaydım. -

36. "Unable to find swap-space signature" mesajı ne anlama geliyor? Bu hatayı alıyorsanız mkswap komutunu çalıştırmamışsınız demektir. mkswap, mkfs gibi dosya sistemi oluşturur. Ancak oluşturulan dosya sisteminin tipini swap yapar. 37. LILO'yu kaldırmak istiyorum, nasıl yapabilirim? Linux altında Kod: # lilo -u /dev/hda Windows/DOS altında Kod: C:\fdisk /mbr 38. Swap eklemek istiyorum ama diskimde yeni bir takas bölümü oluşturmak için boş yerim yok. Ne yapmalıyım? Linux için sistemdeki herhangi bir donanım, disk bölümlemeleri ve diğer nesneler, dosyalar yoluyla temsil edilir. Herhangi bir dosya ile /dev/hda5 arasında dosya kullanan kullanıcı yazılımları için bir fark yoktur. Bu nedenle sisteminize: Kod: # dd if=/dev/zero of=/var/swapfile bs=1M count=128 # mkswap /var/swapfile # swapon /var/swapfile ile kolaylıkla 128 MB'lık bir takas dosyası ekleyebilirsiniz. 39. Linux'ta login ekranınında çıkan mesajı nasıl değiştirebiliriz? /etc/issue. net dosyasının içeriği, telnet girişi sırasında gösterilir. Ayrıntılı bilgi için, man issue. net komutu ile ilgili yardım sayfasına bakabilirsiniz. 40. Linux neden bu kadar yavaş? Linux yavaş değildir, bazı dağıtımlarla birlikte gelen derlenmis çekirdek donanım uyumluluğunu arttırabilmek için sistemi minimum güçte çalıştırıyor olabilir. Hızlandırmak için birkaç ipucu: Sisteminizin IDE parametrelerini düzenleyin: Kod: # hdparm -c1 -d1 -k1 -X66 /dev/hda Burada: -c1: 32bits disk G/Ç . -d1: DMA kullanılsın . -k1: IDE soft-reset sırasındaki ayarları sakla. -X66: UDMA66 Kipi 2 . Gereksiz gördüğünüz tüm programları kapatın. Mümkünse çekirdeği kendiniz derleyin. 41. Eyvah! Linux root parolamı unuttum. Ne yapmalıyım? Sisteminiz açılırken, BIOS ekranını geçtikten hemen sonra LILO boot: komut satırında, çekirdek için: Kod: linux single komutunu verin. Sistem açıldıktan sonra doğrudan root yetkileriyle komut satırı ile karşılaşacaksınız. Parolanızı değiştirmek için passwd komutu verdikten sonra parolanızı yazın ve sisteminizi yeniden başlatın. 42. /dev/hda2'de ntfs sistemi var. Bağlamaya çalıştığımda çekirdeğinin ntfs'i desteklemediğini yazıyor. Nasıl destek verebilirim? Bunun için çekirdeği yeniden derlemeniz ve ntfs'i eklemeniz gerekebilir. Oradan "File System" sekmesinden NTFS'i açarsanız görebilirsiniz. Eğer sistemde ntfs modül olarak varsa, Kod: # modprobe ntfs komutu ile bu modülü yükleyebilirsiniz. Bundan sonra aşağıdakine benzer bir satır ile ntfs dosya bölümünüzü bir dizine bağlayabilirsiniz: Kod: # mount -t ntfs /dev/hda2 /mnt/ntfs 43. "tar. gz dosyasını al, ./configure, make sonra da make install et çalışır." dediler, yapıyorum ama bazan olmuyor. Biraz daha bilgiye ihtiyacım var. configure betiği, GNU autoconf tarafından, autogen. sh kullanılarak, configure. in içersindeki tanımlar yoluyla oluşturulan, programcıların kendi işlerini kolaylaştırmak için kullandıkları araçlardandır. Tam anlamıyla ifade etmek gerekirse, derlenmesi arzu edilen paketin bu sistem üzerinde çalışıp çalışamayacağı, çalışması mümkün ise hangi derleyici ve seçeneklerle derleneceği, hangi ilintileyici seçeneklerinin kullanılacağı ve bunların hepsinden önce, derlenmesi istenen paketin ihtiyaç duyması muhtemel diğer programların ve kütüphanelerin denetlenmesi gibi işler configure tarafından yapılır. configure betiği başarıyla sonuçlandıysa, tüm dizinlerin ve programın kaynak kodunun bulunduğu dizinin içersinde Makefile adında dosyalar oluşur. Bu dosyalar içersinde, make komutunun o dizinin içinde neler yapması gerektiği tanımlıdır. make komutu verdiğinizde, aslında /usr/bin/make, önce paketin kurulduğu dizin içersindeki Makefile dosyasını inceler. Bu dosya içersinde de alt dizinlerdeki Makefile dosyalarına bağlantılar vardır ve bu dosyalardaki tanımlara göre yine belirli bir sıra içersinde bazı işlemler yapılır . Makefile dosyaları içersinde işletilecek komutlar belli komut grupları altında tanımlıdır ve make komutuyla birlikte belirtilen parametre ile make'in bu komut gruplarından hangisinin işletileceği belirtilir, eğer belirtilmezse parametre olarak all verilmiş gibi all grubundaki komutlar işletilir. Dolayısıyla make ve make all aynıdır ve GNU autoconf/automake tarafından oluşturulan standart gruplardan install ve clean dışındaki tüm grupların işletilmesi anlamına gelir . make install ile, Makefile içersindeki install adlı grubu işletmiş oluyoruz. Bu da, derlenmesi tamamlanmış ve bağlama işlemi yapılmış dosyaların ve bu program tarafından ihtiyaç duyulan diğer dosyaların sistemde istenen yerlere kopyalanması anlamına gelir. Eğer make install'dan önce, all kuralı uygulanmadıysa, yani make install'dan önce make komutu çalıştırılmamışsa, make all ile yapılması gereken işlemler de yapılacaktır. Kısaca, make install standart gruplardan clean dışındaki grupları işletir. Örneğin: Kod: $ configure --prefix=/usr --disable-debug ile, derlenecek paketin, make install ile kurulacağı dizinler /usr dizininin altındaki dizinler olacaktır. Dolayısıyla programın çalıştırılabilir dosyasları /usr/bin altında, belgeleri /usr/doc altında, diğer programlarla ortak kullanılan dosyalar /usr/share altında, kütüphaneler /usr/lib altında, vs. olacak. Ayrıca hata ayıklama işlemini kolaylaştırmak için program içersine eklenen bazı yardımcı işlevler de --disable-debug seçeneği ile kapatılıyor. Kod: $ make install ile de önce all kuralı uygulanacak, daha sonra install kuralı uygulanacak ve program ilgili dizinlere yerleştirilecektir. İpucu configure tarafından derleyiciye akterılacak olan CFLAGS ve CXXFLAGS gibi seçenekleri ortam değişkenleri ile oynayarak değiştirmek mümkün, ancak configure'den önce yapılmalı. Örnek: Kod: $ CFLAGS="-O4 -march=i686 -fomit-frame-pointer -pipe -ffast-math" configure --prefix=/usr 44. Konsol modundayken bazı servisleri açıp/kapamak icin gereken yöntem nedir? Standart bir yöntem yok. Birçok yazılım, SIGHUP için "yapılandırmayı yeniden okuma" ya da "yeniden başlatma" yapacak bir sinyal yakalayıcı tanımlıyor. Örneğin inetd bu tür yazılımlardan biridir. /etc/services dosyası, ağ protokollerinin adlarının gerçekte hangi port numarasına eşit olduğu bilgilerinin tanımlandığı dosyadır. inetd/xinetd tarafından yönetilen hizmetler (telnet, rlogin, finger, time, ftp, pop3 gibi) için /etc/inetd. conf veya xinetd için /etc/xinetd. d/ basitçe port aç/kapat anlamında kullanılabilir. Ayrıca sistemi yeniden başlatmak gerekmez: Kod: # killall -HUP inetd veya Kod: # killall -HUP xinetd yeterli olur. Burada dikkat ederseniz killall kullandık. kill komutunu da kullanabilirdik. Ancak kill ve killall arasında bir fark var. kill ile bir süreç kimliği belirtmelisiniz . örneğin sistemimdeki inetd'yi bulmak için: Kod: # ps ax | grep inetd komutunu veriyorum. Karşıma: PID TTY STAT TIME COMMAND 74? S 0:00 /usr/sbin/inetd geliyor. inetd'yi yeniden başlatmak için: Kod: # kill -HUP 74 komutunu vermem yeterli. Üstteki örnek, killall ile yapılan işlemin aynısı. killall komutunun adının killall olmasının nedeni, sistemde belirtilen adda birçok süreç çalışma ihtimalinin olması. Örneğin makinanız çok sayıda web sunucusuna ev sahipliği yapıyorsa bu sunucuları hepsini birden tek komutla yeniden başlatabilirsiniz. Kod: # killall -HUP httpd Bu komut, sistemdeki tüm apache httpd süreçlerine bir SIGHUP gönderecektir. Not kill, süreçlere sinyal göndermek için kullanılır. kill için herhangi bir seçenek belirtilmezse SIGTERM sinyalinin gönderildiği varsayılır, bu da sinyali alan sürecin güvenli biçimde kapanması demektir. 45. Eposta günlük dosyalarını tail ile gözlüyorken, kullanıcıların pop loginlerini boşuna görmeyeyim dedim. Böyle birşeyi nasıl yapabilirim? Kod: # tail -f /var/log/mail | grep -v "POP login" komutunun işinizi gormesi gerekiyor. Ek bilgi:| karakterinin solunda ve sağında iki komut bulunur. > karakterinin solunda bir komut, sağında ise bir dosya vardır. Aynısı < için de geçerlidir. Yukarıdaki işlemde kısaca "/var/log/mail dosyasının son kısımlarını sürekli ekrana verirken, içinde "POP login" geçen satırları ayıkla" demeye çalıştık. Boru karakteri bu işlemler için biçilmiş kaftandır. Üretilen bir verinin belirli kriterlere göre yeniden işlenmesine olanak tanır. Bilmeyenler için, grep'e verilen -v parametresi ise içinde belirli bir metin gecmeyen satırları ekrana göndermeye yarar. alıntıdır -

1. top ile baktığımda her zaman belleğin tamamına yakınının kullanıldığını görüyorum. Bunun nedeni nedir? Boş bellek tampon ve arabellek olarak kullanılır. Eğer takas kullanımınız sıfır ise gerçek kullanılan bellek değerini Kod: $ cat /proc/meminfo çıktısındaki MemShared değişkeninde görebilirsiniz. 2. Konsoldaki ekran koruyucusunun süresini nasıl ayarlarım? Örneğin 15 dakikaya ayarlamak için Kod: # /bin/setterm -blank 15 kullanabilirsiniz. 3. ls ile sadece dizinleri nasıl listelerim? Kod: $ ls -l | grep "^d" 4. Bulunduğum dizinde kaç tane altdizin olduğunu nasil öğrenirim? Kod: $ ls -la |grep "^d" | wc -l 5. Bir dosyanın nerede olduğunu nasıl bulurum? Kod: $ find AramayaBaşlanacakDizin -name "DosyaAdı" -print 6. İçinde belirli bir kelime geçen dosyaları nasıl bulurum? Kod: $ find AramayaBaşlanacakDizin -type f -printf "%p " | xargs egrep -i "ArananKelime" | less Örneğin, Kod: $ find /etc -type f -printf "%p " | xargs egrep -i "User" | less komut dizisi /etc dizininden itibaren içinde "User" kelimesi geçen dosyaları listeler. 7. CVS ağacından sadece "tr. po" dosyalarını nasıl ayıklayıp paketleyebilirim? Kod: $ tar -zcvf polar. tgz `find. -name "tr. po"` 8. Nasıl tar dosyası oluşturabilirim? . tar dosyası oluşturmak için: Kod: $ tar -cvf dosyam. tar dosya-veya-dizin... . tar. gz dosyası oluşturmak için: Kod: $ tar -czvf dosyam. tar dosya-veya-dizin... -