deneme
Shell Çalışma Prensibi

Etiketlenen üyelerin listesi

Toplam 1 adet sonuctan sayfa basi 1 ile 1 arasi kadar sonuc gösteriliyor
  1. #1
    Ela - ait Kullanıcı Resmi (Avatar)
    Üyelik tarihi
    Mar 2018
    Mesajlar
    3.649
    İlişki Durumu
    Cinsiyetiniz
    Burçunuz
    Takımınız
    Beğenmiş
    989
    Beğenilmiş
    423
    E-Kitap
    0
    Uploads
    0
    Bahsedildigi
    66 Mesajlar
    Bahsettigi
    2 Konular

    yoksun Shell Çalışma Prensibi

    Kullanmış olduğumuz Terminal(Sh-Bash-Csh vb..) İngilizcede "fork" dediğimiz şekilde yani çatallayarak çalışma mantığına sahiptir.

    Örneğin, siz bir Terminal açtınız ve bir komut adını yazarak çalışmasını sağladınız. Şu anda önünüzde bir tane Terminal ekranı var fakat onun arkaplanında yazmış olduğunuz programı çalıştıran başka bir tane daha Shell(SubShell) açılmış oldu. Çatallanmış oldu. Bu sayede aynı anda Terminal de bir çok işlem yapabilirsiniz.

    Bir komutun arkaplanda çalıştırılması için komut sonuna ampersand işareti (&) eklenir. Bunun anlamı "sen arkaplanda çalış kendini bana gösterme" anlamına gelmektedir. Ardından bu komut SubShell-ChildShell(alt Shell diyebiliriz.) de çalışır ve işlemler bittikten sonra tekrardan Parent(Ana Shell) komut satırına dönüş yapılır. Bazen öyle karmaşık kod blokları oluşturursunuz ki, komutların çıktılarını yada hatalarını ön planda görmek istemezsiniz.

    Kullanım :

    Komut(lar) &


    Kullanımı yukarıdaki şekilde olmaktadır. Şimdi aşağıdaki örnek komutları Terminal'de çalıştıralım sonuçlarını gözlemleyelim.

    Terminal komut satırına "echo Merhaba & echo Selam" yazdığımız zaman normal olarak önce ekrana "Merhaba" sonra da "Selam" yazılacak. Peki bunu bir gerçekleştirelim.

    [alax@alax ~]$ echo Merhaba & echo Selam
    [1] 1453
    Selam
    Merhaba
    [alax@alax ~]$


    Ooops, yukarıda önce "Merhaba" daha sonra "Selam" yazması gerekiyordu. Fakat bu normal şartlarda öyle yorumlanabilir. Çünkü ampersand işaretini "echo Merhaba" komutundan sonra kullandık yani bu komuta "sen arkaplanda çalış şimdilik, dedik", sonraki "echo Selam" komutundan sonra "&" işareti kullanmadığımız için o hemen öne geldi, o an aktif olan Terminal ekranına yazdı arka plandaki işlemler biter bitmez sonucu aktif olan Terminal'de yazdı. Üstte gördüğünüz numara ise arkada çalışan Terminal'in Process ID'si(PID), yani sistemde çalışan programın bir nevi kimlik numarasıdır.

    Kısaca, sizin önünüzde bir adet Shell vardır, o Shell ile arkaplanda başka Shell daha açılıp çalıştırılabilir. Evet "Forking"-"Çatallama" çalışma sistemini bu şekilde yorumlayabiliriz. Bu durum ileriki derslerimizde daha net anlaşılacaktır.

    Shell Script Dosyası :

    Şimdiye kadar bazı komutları ve kullanımlarını gördük. Elimizde elliye yakın komuttan oluşan bir komut dizisi olsun. Öyle ki, alt alta elli tane komut işleniyor ve kullanıcıdan bazı bilgileri alıp yorumlayarak bir çıktı üretiyor. Peki bu durumda ne yapacağız? Her zaman elli adet komut mu yazacağız?

    Tabi ki hayır. Kendimize bir adet script dosyası oluşturup komutlarımızı bu dosya içerisine kaydedeceğiz, ve ne zaman istersek o zaman sadece script dosyamızın adını yazdıktan sonra komutlarımızı çalıştıracağız.

    Unix/Linux sistemlerde Shell Script dosyası uzantısı Shell tipine göre değişmektedir, Bourne Shell için bu uzantı " sh "dir. Örneğin "script.sh" dosyası Shell komutlarından oluşan bir script dosyasıdır. Oluşturması ve kullanması çok kolaydır. Komutları bir dosya içerisine kaydedin ve dosya adı uzantısı ".sh" olacak şekilde kaydedin. Tabi bunu yapmanız şart değil fakat düzenli olabilmek ve anlaşılabilmek için bu şekilde çalışmalısınız. Dosya ismini ".sh" uzantısı ile kaydetmeden de çalıştırabilirsiniz, fakat sistemin dosyayı script dosyası olarak tanıması için böyle yapmanız gerekmektedir.

    Son olarak dosyaya çalıştırılma izni verin ve çalıştırın. Hepsi bu.

    Şimdi lütfen Terminali kullanarak, bir adet " tux " adında klasör, "tux" klasörünün de içerisinde "script" adında klasör oluşturunuz. Daha sonra "script" klasörüne girerek "script1.sh" adında bir adet dosya oluşturunuz, ve aşağıdaki kodları bu dosyaya yazınız, kaydediniz. Bunun için herhangi bir text editör kullanabilirsiniz.(Gedit, Kwrite, Gvim vb..)

    #!/bin/bash

    echo "Merhaba ilk scriptimiz burada başlıyor.."

    echo

    echo "Selam $USER !"

    echo "Şu anda Terminal in aktif çalışma dizini:"
    echo

    pwd

    echo

    degisken1="kırmızı"
    degisken2="1337"

    echo "Bu ilk değişkenimiz: $degisken1 "
    echo
    echo "Bu ikinci değişkenimiz: $degisken2 "
    echo

    echo "Tekrar Shell ekranına dönüyorsunuz..."
    echo "Bye Bye.."
    exit





    • Set ByN Ela •
    Konu Ela tarafından (07-10-2018 Saat 02:52 AM ) değiştirilmiştir.
    Kullanıcı imzası

Bu Konuyu Okuyan Üye(ler) : 2

Bu Konu için Etiketler

Yukarı Çık