Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Sunucu Yönetimi ve Güvenliği
> Linux Server Yönetim

Linux Server Yönetim Linux server yönetim ve yazılımlar






Kabuk(Shell) programlama temelleri// 'Adige

Linux Server Yönetim

Yeni Konu aç Cevapla
 
Seçenekler
Alt 11-03-2018   #1
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
10/2012
Nereden
Sql Database
Yaş
24
Mesajlar
Konular


  
Kabuk(Shell) programlama temelleri// 'Adige



Merhabalar ;

Arkadaşlar iyi forumlar dilerim sizlere Kabuk(Shell) programlama temelleri hakkında bilgiler aktaracağım hemen anlatıma geçelim



=Kabuk(Shell) Nedir ?=

Kabuk(Shell) , Kullanıcı ile bilgisayar arasında bir yazılım sistemidir


=Kabuk(Shell) Programlama Nedir?=

Kabuk programlama komut satırı(command line) üzerinden tek tek yaptığımız işlemlerin, bir dosya içerisine kaydedilip toplu bir şekilde yapılmasını sağlar. bunların bir çok kabuk programları vardır aşağıda belirtilmiştir

Sh
Bourne Shell
Steve Bourne tarafından geliştirilmiş orijinal Unix kabuğudur.

Csh
C-Shell
Berkeley Üniversitesinde C dili ile geliştirilmiştir.

Ksh
Korn Shell
David Korn tarafından geliştirilmiştir. Yetenekleri itibarıyla en etkili kabuk olarak bilinir.

Bash
Bourne Again Shell
Free Software Foundation tarafından geliştirilmiştir.

Tcsh
T-Shell
Geliştirilmiş C-Shell olarak bilinir.

Zsh
Z-Shell
Bash,ksh,tcsh ile benzerlikler gösteren bir kabuktur.

=Dosya Uzantısı =

Oluşturduğumuz kabuklar(Shell) ".sh" uzantılıdır. bu genelde böyle değildir istediğimiz uzantıda oluşturabilmekteyiz

=Kabuk(Shell)Programları =

Kabuk programları birden çok Linux komutunudu tutan kısımdır.Bir kabuk programı çalıştırma bitini 1 yapmak suretiyle
"çalıştırılabilir" hale getirilir. chmod komutu yardımıyla bir programı çalıştırılabilmektedir

Alıntı:
$ chmod +x komut-ismi
Şeklinde yazılmaktadır. Bundan sonra program ismini yazıp "Enter"a basabilirsiniz ardından bir program Linux komutu olarak çalışacaktır

Alıntı:
$ cat calistir
echo -n "Tarih : "
date
$ chmod +x calistir
$ calistir
Tarih : Sun Dec 8 16:59:52 EET 2018
Yukarıdaki örnekte "çalıştır" isimli iki satır oluşturdu ve çalıştırdı

=Global Değişkenler=

Kabuk(Shell) Programlarken bazı değişkenler vardır bunlar kısaca;

Alıntı:
$ echo $USER
$ echo $HOSTNAME
$ echo $GDMSESSION
Şeklindedir bu komutların tamamnızı görüntülemek için ise Komut satırına;

Alıntı:
$ env
Yazılımaktadır

=Değişkenlerin Kullanımı=

Bir değişkene değişken tanıması yapıldığında sistem tarafından tanınmaktadır. Değişikenler alfabetik veya nümerik karakterlerden oluşabilirler fakat bir değişken sayısal bir değer ile başlayamazlar. Bunların dışında değişken isminin içinde "_" karakteri de bulunabilir. Bir değişkene değer
ataması "=" işareti yardımıyla yapılır.

Alıntı:
$ mesaj="TurkHackTeam"
Olan bir değişkende başına "$" konularak ulaşılabilmektedir Aşağıda ise echo komutu ile ekrana yazdırılmaktadır

Alıntı:
$ echo $mesaj
TurkHackTeam
$ echo Merhaba $mesaj
Merhaba TurkHackTeam
Aynı değişkeni değişken kullanmadanda yapabilmekteyiz

Alıntı:
$ echo "Merhaba TurkHackTeam"
Merhaba TurkHackTeam
Şeklinde kullanılmaktadır

=Giriş/Çıkış İşlemleri =

Her hangi bir Kabuk (Shell) Çalıştırılırken kullanıcınında bilgileri girmesi sağlanabilir. Bu tür işlemlerde read komutu kullanılmaktadır klavyeyi okur ve değişkene atama yapar bunu bir örnek ile inceleyelim

Alıntı:
echo Bir sayi giriniz..
read sayi
echo Girilen sayi : $sayi
Bazı durumlarda değerler özel karakter içerebilmektedir bu durumda istenilen duruma katlanmak gerekebilir. Aşağıda belirtmiş olduğum örneği kullanarak "*" işaretine basmanız yeterli olacaktır

Alıntı:
echo Bir karakter giriniz
read a
echo Girdiginiz karakter : $a
"echo" komutundan gelecek olan yıldız işareti bulunduğumuz dizindeki bütün dosyaları listeleme yapacaktır

= Aritmetik İşlemler =

Kabuk(Shell)"de matematiksel işlemlerde büyük olasılıkla sınırlamalar getirilmiştir . Tamsayı değişkeni
dışında matematiksel değişken kullanmak için bu işlemler için geliştirilmiş ve kolaylıklar
sağlayan "awk" veya "bc" kullanabilirsiniz. Aritmetik işlemler için ise "eval" komutu veya (builtin) komutu olan "let" komutunu kullana bilir kullanımı aşağıda olduğu gibidir

Alıntı:
$ let "degisken=TurkHackTeam"
Örnek olarak bir değişken tanıyalım iki sayıyı çarpıp çıkan sonucu başka değişkene yazdıran kodu yazalım

Alıntı:
$ let "carpim=2*2"
$ echo $carpim
Aritmetik değişken tanımlamanın diğer bir yolu da typeset komutu kullanmaktır.

Alıntı:
$ typeset -i sonuc (sonuc degiskeni bir dogal sayi icerecek)
$ a=40 ; b=30 (iki komutu ayirmak icin ; kullanilabilir)
$ sonuc=a*b
$ echo $sonuc
1200
Normal olarak bash kesme ve bölme işlemi yapamaz bunun için bc kullanabiliriz BC Bir hesap makinası olarak düşünebiliriz

Alıntı:
$ a=3.749
$ b=22.34
$ echo “$a*$b” | bc
83, 752
=if-else Kalıbı ve Kontrol İşlemleri =

Hemen her programlama dilinde olan if kalıbı bir Linux komutunun çalışmasını kontrol
(test) eder. İf değişken tanımlamak else ise değil ise bunu kullan olarak adlandırılmaktadır.
bunlara bir örnek verelim

Alıntı:
if linux komutu
then
komut1
komut2
...
else
komut1
komut2
...
İf komutu genellikle kendisine test komutu ile birlikte kullanım sağlar . bununun ile mantıksal işlemler yapılabilmektedir . sayılar ve diziler ilede karşılaştırma yapılabilir test komutuna bir örnek verelim


Alıntı:
$ test 5 -eq 3
$ a="tht"
$ test $a="tht"
komutun işletilmesinin ardından kabuğa bir değer döndürülür. Bu değer komut başarılı olarak
işletilmişse 0, değilse 1'dir. Son çalıştırılan tüm Linux komutlarının çıkış değeri $?
değişkeninde tutulur. test komutunun çıkış değeri de bu yolla öğrenilebilir.

Alıntı:
$ sayi=4
$ test $sayi -eq 4
$ echo $?
0
$ test $sayi -lt 2
$ echo $?
test komutu yerine parantezde kullanılabilir yukarıdaki iki örnekte parantez olarak kullanılabilir

Alıntı:
$ [ $sayi -eq 4 ]
$ [ $sayi -lt 12 ]
Dikkat edilmesi gereken bir nokta köşeli parantez kullanırken araya boşluk bırakmaktır .test komutunun sıkca kullanılan diğer seçenekleri aşağıda olduğu gibidir ;



if komutunun test ile birlikte kullanılabildiğini daha önce belirtmiştik aşağıda kullanımı ile ilgili örnek yer almaktadır

Alıntı:
#!/bin/bash
echo "0 ile 20 arasinda bir sayi secin"
read sec
if [ $sec -lt 10 ]
then
echo "Secilen sayi tek basamakli"
else
echo "Secilen sayi cift basamakli"
fi
Ve her if komutunun sonunda bir fi komutu kullanılmaktadır

=case Kalıbı=

Bir alternatif arasından seçim yapılırken kullanılan komut ise case"dir bir eşleştirme
gördüğü anda belirli bir komut kümesini işleme sokar. case yapısı case komutu ile başlar, bu komutun sonunda ise esac komutu kullanmak zorunludur

Alıntı:
case anahtar-sozcuk in
secenek1)
komutlar
;;
secenek2)
komutlar
;;
*)
komutlar
;;
esac
Bu komut seçeneklerinin arasında özel komut kullanılabilir burada "*" kullanımı ise isteğe bağlıdır buna örnek olarak aşağıda belirtmiş olduğum komutlar kullanılabilir

Alıntı:
#!/bin/bash
clear
echo "1. ekrani temizle"
echo "2. sistemdekileri goruntule"
echo "3. dizindeki dosyalari goster"
echo -n "Secenegi giriniz : "
read secenek
case $secenek in
1)
clear
;;
2)
w
;;
3)
ls -al
;;
*)
echo Hatali secenek
esac
=Döngüler =

Döngülerde while ve for komutları kullanılmaktadır While döngüsü bir şart sağlanıyor iken sürekli içindeki komutları çalıştırır. Kelime anlamı olarak "olduğu müddetçe" anlamı çıkar. for ise kullanılarak oluşturulacak döngü yapısı, işlemlerin tekrar sayısının önceden belli olduğu durumlarda kullanılır.

=while-do Döngüsü =

while anahtar kelimesi ile adlandırılır önce koşulu sağlayığ sağlamadığına bakılır bu döngünün sonunda ise done komutu kullanılır

Alıntı:
while kosul ifadesi
do
komutlar
done
"while" döngüsü if ve for döngüleri ile birliktede kullanılmaktadır diğer örneğimize geçelim aşağıda 1 den 100 e kadar sayan sayıları ekrana çıktı olarak yazmasının komutu bulunmaktadır

Alıntı:
#!/bin/bash
deger=0
while [ $deger -lt 100 ]
do
deger=$((deger+1))
echo $deger
done
=for-do döngüsü =

iste dahilindeki tüm değerlere sırayla erişimi sağlar. for komutundan sonra yeralan liste
sırayla kullanılır ve herbirisi için döngü çalıştırılır. örneği aşağıda belirtilmiştir

Alıntı:
for degisken1 in deger1 deger2 ... degerX
do
komutlar
done
örneklerimize devam ederim diğer örneğimizde ekrana bi dizi kelimesi yazıyor döngü boyunda T U R K kelimeleri TurkHackTeam değişkenine kopyalıyor ve döngünün bilgilerini ekrana yazdırıyor

Alıntı:
for T U R K
do
echo $TurkHackTeam
done
for-do döngüsü, dosya isimleri üzerinde yapılan işlemlerde de büyük kolaylıklar sağlar.
Bunun için özel karakterlerden yararlanmak da olasıdır. Örnek olarak * karakteri o anki
çalışma dizini içindeki tüm dosyaları seçer.

Alıntı:
for a in * ; do
file $a
done
    


___________________________________________

"Kendinizi geliştirmeye o kadar çok zaman harcayın ki Başkalarının yaptıklarıyla ilgilenmeye ve onları eleştirmeye vaktiniz olmasın"

Konu 'Adige tarafından (11-03-2018 Saat 18:54 ) değiştirilmiştir..
 Offline  
 
Alıntı ile Cevapla
Alt 11-03-2018   #2
  • Tamamen Forumdan Uzaklaştırıldı
  • Üye Bilgileri
Üyelik tarihi
01/2016
Nereden
Defacer City
Mesajlar
Konular


  


eline emeğine sağlık çok yararlı olmuş.
    
 Offline  
 
Alıntı ile Cevapla
Alt 11-03-2018   #3
  • Albay
  • Üye Bilgileri
Üyelik tarihi
03/2017
Nereden
T.C
Mesajlar
Konular


  


Elinize,Emeğinize Sağlık ADİGE Hocam Yararlı Bir Konu
    


___________________________________________


Evren'de Bir Nokta Var!
 Offline  
 
Alıntı ile Cevapla
Alt 11-03-2018   #4
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
08/2017
Nereden
Linux
Mesajlar
Konular


  


Elinize sağlık bu tarz konular içeren bi pdf varmı elinizde varsa öm atabilir misiniz ?
    
 Offline  
 
Alıntı ile Cevapla
Alt 11-03-2018   #5
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
06/2017
Nereden
Isparta
Mesajlar
Konular


  


Eline sağlık
    


___________________________________________

Biz iman yolunda ne kral tanırız ne de kural

Türk Hack Team
 Offline  
 
Alıntı ile Cevapla
Alt 11-03-2018   #6
  • Tümgeneral
  • Üye Bilgileri
Üyelik tarihi
09/2016
Nereden
root@:~#
Mesajlar
Konular


  


Eline emeğine sağlık. Çok güzel konu olmuş.
    
 Offline  
 
Alıntı ile Cevapla
Alt 13-03-2018   #7
  • Stajyer Asistan Sorumlusu
  • Üye Bilgileri
Üyelik tarihi
04/2016
Nereden
Teşkilat
Mesajlar
Konular


  


Eline sağlık komutanım
    


___________________________________________



𝓢𝒶𝒹𝑒𝒸𝑒 𝔩. 𝓣𝓤𝓡𝓚

 Offline  
 
Alıntı ile Cevapla
Alt 13-03-2018   #8
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
08/2017
Nereden
Losencılıs
Mesajlar
Konular


  


Eline sağlık
    
 Offline  
 
Alıntı ile Cevapla
Alt 13-03-2018   #9
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
09/2016
Nereden
*-release
Yaş
14
Mesajlar
Konular


  


Elinize sağlık.
Şurada bi' küçük tutorial var , buna da bakabilirsiniz.

https://gist.githubusercontent.com/L...-cheatsheet.sh
    


___________________________________________

yine bomfunk mc's videosu gibi dinamik Zilla

 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

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.



         

Powered by vBulletin® Copyright ©2000 - 2018

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı



Google+

wau

Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.