Linux Shell Script // Liserjik

Liserjik

Kıdemli Üye
11 Ağu 2018
2,181
6
6
Linux Shell Script // Liserjik

Bu konuda Linux sistemlerde shell script yazmayı anlatacağım. Öncelikle Linux Shell Script nedir ne değildir ona değinelim. Linux Shell Script kabuk tarafından çoklu komut ve işlemleri gerçekleştirebildiğimiz programdır.

İlk önce basit bir script yazıp inceleyelim.

Kod:
#24.04.19 / 14.38
#Shell Script
echo "Liserjik was here."

# -> Burada yorum satırıdır. Bash terminalinde bu komut okunmayacaktır. Örnek olarak ,
#echo "LSD25" normalde ekrana LSD25 basması gerekirken # yüzünden komut okunmadı.

echo -> echo komutu ekrana yazı bastırmak için kullanılır.

Diğer bir shell'e geçelim.

Kod:
#tanisma
echo "İsminiz nedir ?"
read CEVAP
echo "Güzel isim , $CEVAP"

read -> Bir input işlemidir. Kullanıcıda veri alamaya yarar. Biz CEVAP isminde bir değişkende okuduk.

$ -> Burada CEVAP içindekini echo işleminde kullanarak ekrana basmıştır.

Yukarıda değişkenlere değinmiştir. Onlarıda biraz inceleyelim.

Kod:
ISIM="Liserjik"
YAS=1
_YAS=100

echo "Onun adı $ISIM, tam $YAS yaşında ancak $_YAS yaşında hissediyor. "

Kod:
$ ./shell
Onun adı Liserjik, tam 1 yaşında ancak 100 yaşında hissediyor.

Kod:
readonly _LSD25="Liserjik Asit Dietilamid"
_LSD25="Arsenik"

Bir değişkeni sabit hale çevirmek için readonly komutunu kullanırız. Eğer onu değiştirmeye çalışırsak sadece okunur olduğunu belirtecektir.

Kod:
$ ./shell
./shell: line 2: _LSD25: readonly variable
Parametre içeren örneklere geçelim.

Kod:
echo "Forum : $1"
echo "Üyelik ismi : $2"
echo "Alanı : $3"

Kod:
$ ./shell THT Liserjik Moderasyon

Forum : THT
Üyelik ismi : Liserjik
Alanı : Moderasyon

$1 , $2 , $3 -> Parametreleri sırasıyla okumaya yarar. Sınırı 9'a kadardır. 0 yoktur. Ona daha sonra değineceğiz.

Kod:
echo "Script dosya ismi $0"
echo "Kaç parametre girildi : $#"

Kod:
 ./shell ISS Moderasyon THT Liserjik
Script dosya ismi ./shell
Kaç parametre girildi : 4
$0 -> Burada kullandığimız script dosyasının ismini bize verdi.

$# -> Bize kaç parametre olduğunu verdi.

Kod:
for DEGER in $*
do
echo "$DEGER"                           
done

$* -> Linux'ta * hepsi anlamında $ ile başlayıp sonu herneyse anlamına gelir.

for -> Belli aralıklı bir döngüdür.
do ve done -> Döngüyü başlatır ve bitirir.

Kod:
$ ./shell 1 2 3 4 5 6
1
2
3
4
5
6

Kod:
ISIM[0]="Liserjik"
ISIM[1]="WhiteRed"
ISIM[2]="'PALA"
ISIM[3]="'Tranquila"
#Ve Diğer Dostlarım
echo "Benim adım ${ISIM[0]}"
echo "Ekip : ${ISIM[*]}"

Yukarıdaki işlemde isim kümesi oluşturduk ve elemanları bir sıraya verdik. Ardından 0'ıncı elemanı ekrana bastırdık. { ve } sembolleri arasında elemanı belirttik. Eğer belirtmeyip sadece ISIM yazsaydık o zaman ilk elemanı yani Liserjik yeniden basacaktı. * ise bahsettiğimiz üzere hepsi anlamında.

Kod:
$ ./shell
Benim adım Liserjik
Ekip : Liserjik WhiteRed 'PALA 'Tranquila

Kod:
echo "Merhaba \n THT"
echo -e "Merhaba \nTHT"

Kod:
$ ./shell
Merhaba \n THT
Merhaba
THT

Kaçış komutlarını kullanmak için echo komutuna -e ve ya -E parametresi eklenir.

Kaçış komutları ve anlamları:
\n -> Alt satıra geçer.
\t -> Tab kadar boşluk gider.
\a -> Uyarı sesi verir.
\r -> Aynı satıra tekrar yazar.
\\ -> \ işaretini yazdırmaya yarar.


Kod:
echo "En sevdiğim şarkıcı Ke\$ha'dır"
Kod:
En sevdiğim şarkıcı Ke$ha'dır.
Burada -e parametresine girmemize gerek yoktur. Aynı şekilde " ve ' içinde bu parametreyi eklememize gerek yoktur.

Kod:
Yardim(){
echo "Daha fazla bilgi için Turkhackteam.org"
}

Yardim

Kod:
$ ./shell
Daha fazla bilgi için Turkhackteam.org
Fonksiyon oluştuduk ve onu çalıştırdık. () {} içinde sentaksı ayarladık.

Kod:
Yardim(){
echo "Daha fazla bilgi için Turkhackteam.org"
Tamam
}

Tamam(){
echo "Anlaşıldı.
}

Kod:
$ ./shell
Daha fazla bilgi için Turkhackteam.org
Tamam

Burada ilk fonksiyonda ikinci fonksiyonu çalıştırdık. İç içe iki fonksiyon.

Kod:
touch main.py
ls
rm -irf main.*                                       
ls

Kod:
./shell
indez.htm  main.asm  main.pl  shell
indez.htm  main.asm  main.pl  main.py  shell
indez.htm  shell
Bash komutlarınıda kullanabiliriz. Bunun için 755 olarak yetkilendirmemiz gerek scripti.

chmod 755 [script_adi]

Coreutils komutları dışında diğer komutlarıda çaliştırabiliriz. Örnek python, pip, gcc vb.

Kod:
g++ main.cpp -o run
./run

main.cpp içinde Merhaba yazacak kodlar mevcut.

Kod:
$ ./script
Merhaba
Temel bash özelliklerinide kullanabilirz.

Kod:
g++ main.cpp -o run && ./run.exe
Kod:
$ ./script
Merhaba







 
Ü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.