Linux te Shell Script nasıl yazılır ?
Giriş Yap Tema Rengi Konu Mesaj Üyeler
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Kullanıcı Adı:
Şifre:

11201 22437 Toplam üye: 17921
Son üye: tuncay95
 
Ana Sayfa Yardım Arcade Giriş Yap Kayıt
 

Reklamlar
Konu Bilgileri
Konu BasligiKonu: Linux te Shell Script nasıl yazılır ?
Cevap SayisiCevap Sayisi: 0 cevap var
Okunma SayısıOkunma Sayısı 189 defa
Bu Konuyu Görüntüleyenler0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: Linux te Shell Script nasıl yazılır ?  (Okunma Sayısı 189 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
faster-_-38
Ziyaretçi
« : 27 Mart 2008, 21:24:34 »

Bu dökümanda size Linux teki shell scriptler hakkında biraz bilgi vermek istiyorum.
Shell in tanımını yapmak gerekirse ingilizce kelime anlamı " Kabuk " demektir. Fakat unix ve türevi sistemlerde Komut yorumlayıcı olarak bilinir. Çalışma şekli : kullanıcı tarafından girilen komutlar çözümlenir ve yürütülmesi gereken komut kodu aktif hale getirilir. Komut yorumlayıcısı girilen komutları çözdükten sonra fork() sistem çağrısı ile bir proses oluşturur ve bu prosesi çalıştırır.
Unix ve türevi sistemlerde bir çok komut yorumlayıcı ( shell ) vardır. İlk komut yorumlayıcı yazan kişi Stephan Bourne dir ve Bourne Shell ( sh ) olarak bilinir. Kullanım sırasında sheller arası geçiş yapılabilir. Fakat bu geçişler sonucunda shell er arasındaki farklar yüzünden shell script iniz çalışmayabilir. Şuan en çok bilinen ve kullanılan shellerin listesi aşağıdadır.
ShellKısa AdıGeliştirenBourne ShellshStephan BourneC ShellcshCalifornia ÜniversitesiBourne Again ShellbashStephan BourneKorn ShellkshDavid Korn
Yukarıdaki yorumlayıcılar başlangıç düzeyi yada basit shell scriptlerde aynı olmakla birlikte ileri düzeyde farklılıklar göstermektedir. Örnek vermek gerekirse birinde HOME, PATH sözcükleri büyük yazılmak zorunda , diğerinde ise küçük yazılmak zorundadır. Yada birinde ayar dosyanız .profile iken diğerinde .login dosyasıdır.
Lafı uzatmadan bir iki shell script yapalım. Örnek olarak bilgisayarınza bağlantı yapan, yada sizin yaptığınız bağlantıları gösteren bir program yapalım. Bize gerekli olan aslında hiç bir şey yok Şimdi herhangi bir metin editoru ile aşağıdaki kodları yazınız. ( Metin editoru için pico yu kullanabilirsiniz. )
#!/bin/sh
echo "Aranan Bağlantı : " $1
netstat -a | grep $1
Bu dosyayı " bara " diye kaydedin.
Ardından komut satırında
chmod 755 bara
yazın chmod komutunu bilmeyenler için söyliyim dosya izin ve haklarıdır.
ardından komut satırından ;
./bara www
yazın böylece yazdığınız shell script netstat programına fork() ( sistem çağrısı ) göndererek işleminizi yapar. Ekrana www ile yaptığınız bağlantıları gösterir. Buarada $1 " bara " nın yanına yazılan www kelimesini temsil etmektedir. Bu yüzden bu satırı istediğiniz gibi değiştirebilirsiniz.
./bara www // www bağlantılarını
./bara irc // irc baplantılarını
./bara 127.0.0.1 // belirtilen ip ye olan bağlantıları
vs.. vs..
Mesala ps -aux | grep xxx ile herkes sistem tarafından xxx adlı bir proses in çalışıp çalışmadığının kontrol edildiğini bilir. Örnek vermek gerekirse komut satırından.
ps -aux | grep login
yazarsak o anda sisteme giriş yapmış kullanıcıları görebiliriz.
ps -aux | grep root
o anda root tarafından açılmış olan sistem proseslerini gösterir.
Şimdi bunu yazmak uzun geliyorsa ( aslında pek uzun diil ama maksat eliniz alışsın ) birlikte istenilen uygulamaları ( prosesleri ) gösteren bir Shell script yapalım.
#!/bin/sh
echo "Aranan Uygulama : " $1
ps -aux | grep $1
yine öncekinde olduğu gibi bir metin editoru ile dosyayı " para " adıyla kaydedip çıkın sonra ;
chmod 755 para
yazın ve çalıştırmak için;
./para root
yazın böylece root tarafından açılmış olan uygulamaları görebileceksiniz.
Bunların haricinde aslında kullanabileceğiniz pek çok özellik ve değişkenler vardır. Mesala
$# : parametre değişkenlerinin kaç tane olduğunu
$! : Arka alanda çalışan son prosesin PID numarası
$$ o anda çalıştırdığınız prosesin PID numarası
$? Son çalıştırılan prosesin çalışıp çalışmadığını gösterir. 0 çıkarsa çalıştı, 1 çıkarsa çalışmadı anlamındadır.
PID numarasının ne işe yaradığını sölemek gerekirse *nix sistemlerde her çalışan proses e sistem tarafından bir numara verilir. Prosesin durdurulması vs. gibi işlemlerde bu kimlik nosu kullanılır. Mesala yukarıda yaptığınız para dosyasını şu şekilde kullanın
./para login
böylece o anda login olmuş kullanıcıları göreceksiniz en baştaki pid nosunu kullanarak o user ı sistemden atabilirsiniz.
kill -9 PIDNO
pidino kısmına girilecek no ya dikkat edin yoksa yanlış bir prosesi sonlandırabilirsiniz.
Bunların dışında shell script lerde çeşitlki değişkenler ve denetimler vardır aşağıda bunların ufak bir listesini verdim;
Sistem değişkenleri ( sh, bash )HOME , PATH, CDPATH, MAIL, TERMDeğişken işlemlerivar=değervar'komut'Denetim deyimi ( php dekine çok benzer )if[koşul]then...else...fiBir diğer denetimcase degisken indurum1)......durum2)......*)...Döngü deyimifor degisken in wordsdo...done
Şimdilik shell scriptler hakkında söliyeceklerim bunlar. İyi kullandıktan sonra yapamayacağınız şey yok gibidir. Ben dialog programını kullanarak internet bağlantı paylaşımlarını ayrı ayrı kontrol eden ( www, irc, oyun, ,icq vs.. ) firewall özellikli ve güvenli bir shell script yaptım. Üstelik dialog programı sayesinde menulu ve renkli güzel bir konsol script i oldu.

Logged
   
Sayfa: [1]   Yukarı git
  Yazdır  

 
Gitmek istediğiniz yer:  

|Site Map | Site Map2 | Arşiv | Wap | Wap2 | Wap Forum | XML | Rss | Google Tagget
|SiberTurk | Frmby
Reklam Vermek için by.deman@msn.com Adresine e-mail gönderiniz
For Advertising contact by.deman@msn.com

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Asuke MC by Fakdordes & SaSuKe
XHTML 1.0 Geçerli! CSS Geçerli!
Bu Sayfa 0.162 Saniyede 20 Sorgu ile Oluşturuldu