MartinLGore Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 Evet 3. dersimize geldik.. Lafı fazla uzatmadan dersimize geçiyoruz.. DERS -3- Kabuk betikleri Kabuk betikleri (ing. script) aslında özel bir yazım şekli olan, çalıştırılabilir metin dosyalarıdır. Betikler metin düzenleme programları (vi,pico,nano) ile yazılabileceği gibi doğrudan kabuk üzerinden cat > betikismi komutu ile de yazılıp, CTRL + D tuş kombinasyonu ilede kayıt edilebilir. Betikler kaydedildikten sonra chmod +x betikismi komutu ile her kullanıcı tarafından çalıştırılabilir hale getirilir. Betiği çalıştırmak için ./betikismi komutu kullanılabilir. Örnek bir kabuk programı -bash-2.05b$ cat patidene # Bu isaretle basliyan satirlar bizim aciklama satirlarimizdir. # bu satirlara istedigimiz her seyi yazariz, betik bunlari dikkate almaz. echo "Selaminaleykum paticik halki." echo "Kullanici adim:" $USER "ve su anda bulundugum klasor" $PWD "'dir." echo "Bu dizinin icindekiler de" # ls -l komutu dosya içerigini detayli gostermek icin kullanilir. ls -l echo "ahanda bunlardir." -bash-2.05b$ patidene dosyasının içindekileri incelemek için ileride daha detaylı olarak değineceğimiz cat komutunu kullandık. Yukarda da gördüğünüz gibi # ile başlayan satırlar bizim betigimizin açıklama satırlarıdır ve bu satirlar kabuk tarafından dikkate alınmaz. echo komutu standart çıktıya yazı yazdırmak için kullanılır. Bu betiği ./patidene olarak çalıştırırsak, [root@localhost pati]# ./patidene Selaminaleykum paticik halki. Kullanici adim: root ve su anda bulundugum klasor /root/pati 'dir. Bu dizinin icindekiler de total 8 -rw-r--r-- 1 root root 0 Nov 22 09:35 baskadosya -rw-r--r-- 1 root root 0 Nov 22 09:36 lahavle drwxr-xr-x 2 root root 4096 Nov 22 09:35 mp3 -rwxr-xr-x 1 root root 378 May 31 2004 patidene ahanda bunlardir. [root@localhost pati]# çıktısını alırız.. Kontrol İşlemleri Kabukta kontrol işlemleri test durum yada [ durum ] kalıpları kullanılarak yapılabilir. Bu komut yardımıyla mantıksal işlemler yapılabilir, sayılar ve hatta diziler karşılaştırılabilir. test komutundan sonra kabuğa bir çıkış durumu değeri gönderilir. Komut başarılı olarak işletilmiş ise bu değer 0'dır, değilse 1'dir. Bu değer $? adlı değişkende tutulur. Anahtar sözcük olan test'den sonra operatörler yada karşılaştırılacak olan değerler yazılır. Her operatör mantıksal bir işleme denk gelir. test komutunda yaygın olarak kullanılan aritmetik operatorler şunlardır; -gt : büyük -lt : küçük -ge : büyük ve ya eşit -le : küçük veya eşit -eq : eşit Örnek bir test çıktısı, [root@localhost pati]# nedanko=30 [root@localhost pati]# test $nedanko -eq 40 [root@localhost pati]# echo $? 1 [root@localhost pati]# test $nedanko -lt 40 [root@localhost pati]# echo $? 0 [root@localhost pati]# gibidir. if-else Kalıbı if kalıbı bir linux komutunun çalışmasını kontrol eden yerleşik bir komuttur. Her if kalıbı bir fi komutu ile bitmelidir. Kullanımı: if linux komutu then komut 1 komut 2 else komut 3 komut 4 .... fi Hemen her programlama dilinde olan if kalıbı bir Linux komutunun çalışmasını kontrol eder. if kalıbı içerisinde bulunan Linux komutu çalıştırılır ve komutun çıkış durumu göz önünde bulundurularak ardından gelen then deyimiyle birlikte devamlı işletilir. if komutu daha önce değindiğimiz test ile birlikte kullanılabilmektedir. Aşağıdaki betik buna güzel bir örnektir. [root@localhost pati]# cat patidene2 #!/bin/bash # Yukardaki satir bu betigin bash kabugunda calistirilacagini belirtir. echo "0 ile 100 arasinda bir sayi girin:" read sayi # Kullanicilardan girdi almak icin read komutu kullanilir. if [ $sayi -lt 10 ] then echo "Sectiginiz sayi tek basamaklidir." elif [ $sayi -lt 100 ] then echo "Sectiginiz sayi 2 basamaklidir." else echo "0 ile 100 arasinda dedim hayvan herif..." fi [root@localhost pati]# Çalıştırdığımızda, [root@localhost pati]# ./patidene2 0 ile 100 arasinda bir sayi girin: 7 Sectiginiz sayi tek basamaklidir. [root@localhost pati]# ./patidene2 0 ile 100 arasinda bir sayi girin: 68 Sectiginiz sayi 2 basamaklidir. [root@localhost pati]# ./patidene2 0 ile 100 arasinda bir sayi girin: 190 0 ile 100 arasinda dedim hayvan herif... [root@localhost pati]# gibi bir çıktı alırız.. Bu dersimizde bu kadar.. Bi dahaki dersimizde dosya sistemleri ve dosya hiyerarşisine gireceğim.. Herkese iyi günler..[signature][hline]susturamassın beniii durduramassın beniii ben kötüyüm sen iyimiyeaaeaeaaaaaah [Bu mesaj nedanko tarafından 31 Mayıs 2004 10:57 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 dosya kopyalamayı silmeyi falan bi sonraki yazı da mı anlatıcaksın? linuxta en çok kafamı karıştıran etrafta milyon tane dizin olmasıydı, ha bi de bir linux versiyonunda dosyaların renkleri değişikti böyle kimisi sarı-yeşil falan. eğer onlara da el atarsan çok büyük sevap etmiş olacan :D[signature][hline]KEDIDIR KEDI ! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 Hmm sanırım atlanmış bir nokta var, veya üzerinden geçilmiş fakat farkedilmemiş. Shell scriptleri bir interpreter a sahip herşeyden olabilir. Perl, PHP, Bash, Sh, etc. etc.. Örneğin yazdığınız bir PHP betiğini ~# php myscript.php veya ~# php myscript şeklinde çalıştırabilirsiniz. Fakat eğer siz interpreter 'ı script içinde belirterek çalıştırmak istiyorsanız, yapmanız gereken tek şey scriptin en başına #!/usr/bin/php .... şeklinde interpreteri belirtmek.. Bunu #!/bin/bash yaparsınız, #!/bin/sh yaparsınız #!/usr/bin/perl yaparsınız v.s. v.s. Artık o kısım size kalmış. Interpreter'i belirtirken, çağırılacak interpretera çeşitli parametreler de ekleyebilirsiniz. Örn : #!/usr/bin/php -c /myconfig.ini falan gibi.. Şimdi -c miydi onu da hatırlamıyorum :) Ama kafanıza göre, interpreterin desteklediği her türlü parametreyi ekleyebilirsiniz. Peki bu interpreter ları nerden bulacaksınız ? Çok kolay. Öncelikle hangisini kullanacağınızı seçin, sonra ; ~# which php ~# which perl ~# which bash ... ... which komutu, size daha önceden tanımlanmış PATH ler arasında, aradığınız programın hangi konumda olduğunu gösterir. Bunu isterseniz ~# find / -name php -print şeklinde de yapabilirsiniz.. Fakat bu size içinde php bulunanları gösterecektir. Bunu da -regex şeklinde çözebilirsiniz.. Yani örneğin ^php$ falan şeklinde. ( detaylar için ~# man find ) Search olayına değinmişken indexleme ve hızlı aramadan da bahsetmek lazım. Özellikle gece 4 civarına falan ( eğer makina devamlı açıksa tabii hehe ) updatedb komutunun eklenmesi, diskteki dosyaların indexlenmesini sağlayacaktır.. Ya da istediğiniz herhangi bir an da kullanabilirsiniz updatedb yi.. Indexlenmiş dosyaları aramak ise çok kolay ; ~# locate Hmpfs. 4. derste nedanko herhalde dosya işlemlerini anlatır. :)[signature][hline]There are 10 types of people in the world: Those who understand binary, and those who don't.. .. Sys. Adm. of Paticik(s), Ethernass, Ekohost, and many individual servers .. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Maleboge Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 benim bu konuyla ilgili ciddi bir problemim var Problem: configure dosyaları nasıl hazırlanır (manual olarak...) ilginiz için teşekkürler[signature][hline]1...2...3... ee ya sonrası ? Criminal2's HomePage [Bu mesaj Criminal2 tarafından 31 Mayıs 2004 19:58 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 autoconf ve ondan bundan alarak :) Hmm dur bakim. http://www.cbc.umn.edu/~crow/projects/tutorial-autoconf/howto.html gerçi pek sığ anlatmış.[signature][hline]There are 10 types of people in the world: Those who understand binary, and those who don't.. .. Sys. Adm. of Paticik(s), Ethernass, Ekohost, and many individual servers .. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Maleboge Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 teşekkürler.. Ben biraz daha problemimi açağım. GTK1.2 ile bir program yazıyorum(FileMon tarzı programın GUI'si) Fakat benim derlediğim dosya doğal olarak başka bir makinede çalışmıyor. Ben GTK'ını yerini öğrenmek için "pkg-config" diye bir program kullabıyorum.AMA bu programında sonradan yüklenmesi gerekiyor... Benim istediğim direkt bu programa lüzüm kalmadan GTK'ının yerini görebilmek... ???? Birkaç configure dosyası açtım ama kaç yüz satır :) :) :)[signature][hline]1...2...3... ee ya sonrası ? Criminal2's HomePage Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 hayir hayir pkg-config neredeyse tum linux dagitimlarinda mevcuttur. pkg-config olmadan ./configure ile her paketin aranmasi olum olur zaten. mesela gaim `i indir. GTK uzerine yapilmis bir program. configure i nasil yapmis adamlar, orada kesin vardir.[signature][hline]There are 10 types of people in the world: Those who understand binary, and those who don't.. .. Sys. Adm. of Paticik(s), Ethernass, Ekohost, and many individual servers .. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Maleboge Mesaj tarihi: Mayıs 31, 2004 Paylaş Mesaj tarihi: Mayıs 31, 2004 o zaman kasmama hiç luzum yok :)[signature][hline]1...2...3... ee ya sonrası ? Criminal2's HomePage Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
neter Mesaj tarihi: Haziran 1, 2004 Paylaş Mesaj tarihi: Haziran 1, 2004 motor diye bir program var (emre kardeşim bunu hatırlayacaktır), temelde bir editör ancak ve ancak senin yazdığın koda göre makefile ve configure yazıyor değişik bir program ncurses desteği bilem var, ancak gui konusunda bilgim yok. windowsta gui manyağıyımdır ama linuxu siyah beyaz severim, ilk startx yazdığımda 2.5 sene olmuştu başlayalı .)[signature][hline]Ethernass Dünyası Admin Tıklayalım yardım edelim ... Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar