Bash Scripting Programlama // Stajyer Asistan Kulubü

'Adige

Co Admin Yardımcısı
26 Eki 2012
9,268
1
27
Secure Shell
lvqMQq.png





Merhabalar ;

arkadaşlar bu konumuzda Bash Scripting Programlama hakkında bilgiler aktaracağım anlatıma geçelim


Ssyevp.gif


= Bash Scripting Nedir ? =

Bash Linux işletim sistemleri için yazılmış komut satırı olarak adlandırılmaktadır​


Ssyevp.gif

= Linux İşletim Sisteminde en çok kullanılan Bash Scriptingler=

Sh​

Açılımı Bourne Shell olarak adlandırılır İlk linux komut kabuğudur​
Ssyevp.gif


Ksh​

Açılımı Korn Shell olarak adlandırılır Sh uyumludur ve bir den fazla ek programlama özelliği bulunan bir kabuktur​

Ssyevp.gif


Csh​

Açılmı C shell olarak adlandırılır C diline benzer bir programlama yapısı vardır En çok yazılımcı veya programcılar tarafından tercih edilmektedir​

Ssyevp.gif


Tcsh​

Csh scriptinin biraz geliştirilmiş kısmıdır​
Ssyevp.gif


Bash​

Açılım olarak bourne again shell olararak adlandırılır Kullanım kolaylığı olarak eniyileri ve tercih edilenlerde ilk sırada yer alır​

Ssyevp.gif


=Çekirdek Kernel Nedir ?=

Çekirdek kullanıcılar tarafından girilen komutları kabuk tarafından yorumlayıp işleme almasına denilmektedir ve kabuk çekirdek aynı anda çalışıp işlem yapmaktadırlar​
Ssyevp.gif


=Komutlar veya Kodlar Nedir ? =

Komutlar bilindiği üzere sistem tarafına gönderdiğimiz talimatlar olarak adlandırılmaktadır , Silme , kopyalama , taşıma gibi özel komutlar yer almaktadır​

Ssyevp.gif


= Dosya Uzantısı Nedir ?

Bash Scripting programlamada Dosya uzantısı ".sh" olarak adlandırılır fakat böyle olmamakla birlikte istediğimiz uzantıları yapabilme gibi bir yetkimiz bulunmaktadır​
Ssyevp.gif


=Standart Girdi Çıktı Mantığı =


Linux işletim sisteminde başarılı şekilde komut çalıştırmanın mantığı ekrana yazılan değerler standart çıktı olarak adlandırılır Standart gidiler ise klavye üzerinden yazdığımız komutlar olarak adlandırılmaktadır​
Ssyevp.gif


= Standart Girdi Çıktılar İçin Komutlar =

Öncelik ile bulunduğumuz dizindeki dosyaları listelemek için kullanılan komut ile başlayalım​

Ssyevp.gif



Komutu ile dizinimizde bulunan dosyaları listemekteyiz​

Standart çıktımızı bir dosyaya yönlendirmek için kullandığımız komuta geçelim​

$echo "TurkHackTeam" > deneme.txt

Komutu ile dosyaya yönlendirme işlemimizi tamamlamış bulunmaktayız

Ssyevp.gif


Standart çıkmızda bulunan dosyasının içine metin yazmak için kullandığımız komut​

$echo "TurkHackTeam" >> deneme.txt

Komutu ile dosyamızın içeriğine yazı yazdırmaktayız
Ssyevp.gif


Şimdi ise hata mesajını dosyaya nasıl yönlendiririz komutumuz geçelim​

$lss -al 2>deneme.txt
Ssyevp.gif


Hem çıktılarda hemde girdilerde bulunan hataları dosyaya yönlendirmek için kullandığımız komut​

$lss -al >deneme.txt 2>&1
Ssyevp.gif

= Global Değişkenler =

Bash Scripting Programlamada bazı global değişkenler yer almaktadırlar bunlar​

$echo $USER
$echo $HOSTNAME
$echo $GDMSESSİON

Ssyevp.gif


Bu komutların tamamını görüntülemek için komut satırına​


Yazmamız yeterli olacaktır​

Ssyevp.gif


= Değişkenlerin Kullanımı =

Bir değişkene değişken ataması sistem tarafından yapılmaktadır .Değişkenler alfabetik veya numaralardan oluşabilmektedirler fakat değişkenler matematiksel değerler ile başlaması imkansızdır bunların dışında değişkenlerin içinde özel karakterler yer alabilir "_ - * ! ' " ve benzeri gibi ve bu değişkenlere değer atamaları "=" işareti ile yapılmaktadır​
Ssyevp.gif


Ekrana mesaj yazdırmak için kullanılan komutumuz​

$mesaj= "Turkhackteam"

Ssyevp.gif


Ekrana Turkhackteam Merhaba yazısı yazdırmamız için kullandığımız komut​

$echo $mesaj
TurkHackTeam
$echo Merhaba $mesaj
Merhaba TurkHackTeam

Kısa yoldan anlatmak gerekir ise​

$echo "Merhaba TurkHackTeam"

Merhaba TurkHackTeam

Şeklinde kullanımı yer almaktadır​


Ssyevp.gif


= Aritmetik işlemler =

Bash Scriptingde matematik işlemlerde önemli bir sınırlamalar yer almaktadır Tam sayı dışında matematik değişkenler kullanmak için kolaylık sağlayan "awk" ve "bc" komutu kullanılmaktadır aritmatik işlemler için ise "eval" komutu veya "let" komutu kullanmaktayız kullanımı aşağıda olduğu gibidir​

$let "degisken" = "TurkHackTeam"
Ssyevp.gif

Örnek olarak iki sayıyı çarpıp yazdıralım​

$let "carpim=1*1"
$echo $carpim
sonuc = 1
Ssyevp.gif

Aritmatik değişkenlerin tanımlama diğer yolu olarak typeset komutu kullanılmaktadır örnek aşağıda olduğu gibidir​

$ typeset -i sonuc (sonuc degiskeni bir dogal sayi icerecek)
$ a=1 ; b=1 (iki komutu ayirmak icin ; kullanilabilir)
$ sonuc=a*b
$ echo $sonuc
1
Ssyevp.gif


= Döngüler =

Döngülerde While ve for komutları kullanılmaktadır​
Ssyevp.gif


= While Do Döngüsü =

While anahtar kelime olarak adlandırılır ve önce koşulu sağlayıp sağlamadığını bakılır bu komutun sonunda ise done komutu kullanılır​

while koşul
do
komutlar
done
Ssyevp.gif


while döngüsü if for ile birlikte kullanılmaktadırlar örnek olarak 1 den 100 kadar sayan sayıları yazdıralım​

#!/bin/bash
deger=0
while [ $deger -lt 100 ]
do
deger=$((deger+1))
echo $deger
done

Ssyevp.gif


= For Do döngüsü =

For do dahilinde bulunan tüm değerlere sırayla erişim sağlar kullanımı aşağıda olduğu gibidir​

for degisken in deger deger
do
komutlar
done
Ssyevp.gif


Örnek olarak ekrana bir dizi tanımlayalım T U R K Şeklinde Turkhackteam değişkenine kopyalayıp döngünün bilgilerini ekrana yazdıralım​

for T U R K
do
echo$ TurkHackTeam
done
Ssyevp.gif


= Komutların Anlamları =

-gt = Büyük demektir
- lt = Küçük demektir
-ge = Büyük Eşittir demektir
-le = Küçük Eşittir demektir
-ne = Eşit değil demektir
-eq = Eşittir demektir
-s = Dosya boş değildir
-f = Dosya var
-w = dosya yazılabilir
-r = dosya yazılabilir
-h = sembolik bağlantı demektir
-b = blok aygıtı demektir
-c =karakter aygıtı demektir
-! = değil demektir
-a = ve demektir
-o = veya demektir​
Ssyevp.gif


= Örnek Programlama =

Örnek 1 = yazılan sayının tek basamaklı veya çift basamaklı olup olmadığını hesaplayan programı yazalım​

#!/bin/bash
echo "0 ile 30 arası bir sayı seçiniz"
read sec
if [ $sec - It 10]
then
echo "Sayı tek basamaklıdır"
else
echo "Sayı çift basamaklıdır"
fi
Ssyevp.gif


Örnek 2 = 3 adet değişken tanımlayalım 1 e basınca ekranı temizlesin 2 basınca çalışan sistemleri görüntülesin 3 basınca ise dizindeki dosyaları bizlere sıralasın​

#!/bin/bash

clear

echo "1. Ekranı Temizle"
echo "2. Sistemde olanları görüntüle"
echo "3. Dizinde bulunan dosyaları görüntüle"

echo -n "Seçeneği giriniz ";
read secenek

case $secenek in

1)
clear

;;

2)
w

;;

ls- al

;;

*)

echo Hatali seçenek girdiniz

esac

Ssyevp.gif

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.