Shell script, özellikle Linux ve Unix tabanlı sistemlerde kullanılan güçlü bir otomasyon aracıdır. Sistem yöneticileri ve yazılım geliştiricileri tarafından sıklıkla tercih edilen bu script’ler, komut satırında manuel olarak çalıştırılması gereken bir dizi komutu bir araya getirerek, tekrar eden görevleri otomatik hale getirir. Shell script’ler, basit dosya işlemlerinden karmaşık sistem yönetimi görevlerine kadar geniş bir yelpazede kullanılır ve iş süreçlerini hızlandırırken hata oranlarını da minimize eder. Bu makalede, shell script yazımını, temel komutları ve kullanım alanlarını detaylıca inceleyeceğiz.
Shell Script Nedir?
Shell script, komut satırı kabuğunda çalışan bir veya birden fazla komutun bir araya getirilerek otomatik olarak yürütülmesini sağlayan bir dosyadır. Shell script’leri, özellikle Unix ve Linux tabanlı sistemlerde sıkça kullanılır. Bu script’ler genellikle .sh
uzantısıyla kaydedilir ve kabuk ortamında çalışan programları otomatikleştirir.
Kısacası, shell script yazmak, bir dizi komutun bir metin dosyasına yazılması ve bu dosyanın çalıştırılması anlamına gelir. Böylece, tekrar tekrar yazmak zorunda kalmayacağınız komutları bir araya getirerek görevleri otomatikleştirirsiniz.
Shell Script Nasıl Çalışır?
Shell script’leri çalıştırmak için, öncelikle bir metin düzenleyici (örneğin vim
, nano
veya gedit
) ile bir dosya oluşturmanız gerekir. Shell script’lerin çalıştırılabilmesi için şu adımlar izlenir:
- Dosya Oluşturma: Bir metin dosyası oluşturun ve içine komutlarınızı yazın.
#! /bin/bash
echo "Merhaba Dünya"
Buradaki #! /bin/bash
satırı, bu script’in Bash kabuğunda çalıştırılacağını belirtir. echo
komutu ise ekrana çıktı vermek için kullanılır.
- Çalıştırılabilir Yapma: Oluşturduğunuz dosyayı çalıştırılabilir yapmak için
chmod
komutunu kullanarak izin vermeniz gerekir.
chmod +x script_adı.sh
- Script’i Çalıştırma: Çalıştırılabilir hale getirilen script şu şekilde çalıştırılır:
./script_adı.sh
Shell Script’in Temel Komutları ve Kullanımı
- Yorum Satırları: Shell script’lerde yorumlar
#
işaretiyle başlar. Bu satırlar çalıştırılmaz, sadece açıklama amacıyla kullanılır.
# Bu bir yorum satırıdır.
- Değişkenler: Shell script’lerde değişkenler tanımlayarak daha dinamik kodlar yazabilirsiniz.
isim="Ahmet"
echo "Merhaba $isim"
- Koşullu İfadeler (if-else): Shell script’lerde mantıksal koşullar oluşturabilirsiniz.
if [ $1 -gt 10 ]; then
echo "Sayı 10'dan büyük"
else
echo "Sayı 10'dan küçük veya eşit"
fi
- Döngüler:
for
,while
veuntil
döngüleri, tekrar eden işlemleri otomatikleştirmenizi sağlar.
for i in {1..5}; do
echo "Sayı: $i"
done
- Fonksiyonlar: Kodunuzu tekrar kullanılabilir hale getirmek için fonksiyonlar tanımlayabilirsiniz.
fonksiyon_adı() {
echo "Bu bir fonksiyondur"
}
fonksiyon_adı
Shell Script Nerelerde Kullanılır?
- Otomasyon: Rutin işleri otomatikleştirmek için kullanılır. Örneğin, yedekleme işlemleri, sistem güncellemeleri veya dosya aktarımları gibi işlemler shell script’leri ile otomatik hale getirilebilir.
- Sistem Yönetimi: Sistem yöneticileri, sunucular üzerindeki günlük görevleri otomatikleştirmek için shell script’leri kullanır. Kullanıcı ekleme, servislerin durdurulup başlatılması gibi işlemler script ile yapılabilir.
- Veri İşleme: Büyük miktarda veriyi hızlı bir şekilde işlemek için kullanılır. Örneğin, log dosyalarının analiz edilmesi ve raporlanması shell script ile kolaylaştırılabilir.
- Kurulum ve Yapılandırma: Uygulama kurulum ve yapılandırma süreçlerini otomatik hale getirmek için kullanılır. Örneğin, bir yazılımın tüm bağımlılıklarını yükleyen ve yapılandıran bir shell script oluşturabilirsiniz.
Shell Script Yazarken Dikkat Edilmesi Gerekenler
- Dosya İzinleri: Script’inizin çalışabilmesi için dosyanın yürütme iznine (
chmod +x
) sahip olduğundan emin olun. - Hata Yönetimi: Hataları düzgün yönetmek için
set -e
gibi komutlarla hataların script’i durdurmasını sağlayabilirsiniz.
set -e
- Yol Belirleme (Path): Komutların doğru çalışabilmesi için çevre değişkenlerine (environment variables) dikkat edin. Bazı komutlar tam yol bilgisi gerektirebilir.
- Test Etme: Script’lerinizi farklı senaryolarda test edin. Beklenmedik durumlar için koruma sağlamak adına koşullu ifadeler kullanın.
İleri Seviye Shell Script Teknikleri
- Argümanlarla Çalışmak: Script’lere dışarıdan parametreler verilebilir.
$1
,$2
gibi ifadelerle komut satırından girilen argümanları kullanabilirsiniz.
echo "İlk argüman: $1"
- Dosya İşlemleri: Dosya okuma ve yazma işlemleri yaparak, shell script’lerle dosya tabanlı operasyonlar gerçekleştirebilirsiniz.
while IFS= read -r satir; do
echo "$satir"
done < "dosya.txt"
- Cron ile Zamanlama: Shell script’lerinizi belirli zaman aralıklarında çalıştırmak için
cron
görev zamanlayıcısı ile entegre edebilirsiniz. - Gelişmiş Değişken Kullanımı: Değişkenlerin manipülasyonu için gelişmiş özellikler kullanılabilir. Örneğin, bir dizenin uzunluğunu bulmak veya bir dizeden alt dizeler almak mümkündür.
string="Merhaba Dünya"
echo ${#string} # Dize uzunluğunu verir
echo ${string:0:7} # İlk 7 karakteri verir
Değerlendirme
Shell script’ler, özellikle sistem yöneticileri ve yazılım geliştiricileri için güçlü bir araçtır. İşleri otomatikleştirmek, hata oranını azaltmak ve zamandan tasarruf sağlamak için shell script kullanmak oldukça yaygındır. Temel shell script becerileri öğrenildiğinde, birçok rutin işlem daha hızlı ve verimli bir şekilde yapılabilir.
Shell script yazarken temiz, anlaşılır ve iyi belgelenmiş kodlar oluşturmak önemlidir. Komutların nasıl çalıştığını ve hangi durumlarda kullanılabileceğini anlamak, güçlü script’ler yazmanıza olanak tanır.