Skip to main content

💻 Bash Açıklaması: En Popüler Linux Kabuğu Nasıl Çalışır?

Bash (Bourne Again Shell), Linux ve Unix tabanlı sistemlerde en yaygın kullanılan komut satırı yorumlayıcısıdır.
Bu rehber, Bash’in temel işleyişini, özelliklerini, kullanım alanlarını ve DevOps süreçlerindeki rolünü adım adım açıklıyor.
Hazırsan terminali aç, kabuğa giriş yapıyoruz 🚀


💡 Bu Rehberde Ne Öğreneceksiniz

  • Bash’in ne olduğunu ve neden bu kadar popüler olduğunu anlayacaksınız.
  • Komut geçmişi, değişkenler, döngüler ve koşullu ifadeler gibi temel özellikleri öğreneceksiniz.
  • Zsh, Fish ve Dash gibi diğer kabuklarla farklarını göreceksiniz.
  • İlk .sh betiğinizi yazmayı öğreneceksiniz.
  • DevOps ve sistem yönetiminde Bash’in otomasyon gücünü keşfedeceksiniz.

🧠 Bash Nedir?

Bash (Bourne Again Shell), 1989’da Brian Fox tarafından GNU Projesi için geliştirilen bir komut yorumlayıcısıdır.
Grafik arayüze (GUI) gerek kalmadan, klavyeden girilen metin komutlarıyla sistemi yönetmeyi sağlar.
Bash iki modda kullanılabilir:

  • Etkileşimli Kabuk: Komut yaz, anında cevap al.
  • Betik Dili: Tekrarlayan işlemleri otomatikleştiren .sh dosyaları oluştur.

🔧 Temel Yetenekler

  • Komut geçmişi (history)
  • Değişken ve dizi yönetimi
  • Döngüler ve koşullu ifadeler
  • Giriş/çıkış yönlendirme (> >> |)
  • Arka plan süreç kontrolü

🧩 Bash ve Terminal Farkı

BileşenTanım
TerminalKomutları yazdığın arayüz (ör. GNOME Terminal, iTerm2).
Kabuk (Shell)Terminalde çalışan yorumlayıcı (ör. Bash, Zsh).

🎭 Kısa benzetme:
Terminal sahnedir, Bash ise orada repliklerini söyleyen aktördür.


⚙️ Bash’in Öne Çıkan Özellikleri

1️⃣ Komut Geçmişi

Yukarı/aşağı oklarla eski komutlara dönebilir, Ctrl + R ile arayabilirsin.

history | grep apt

Bu komut geçmişte “apt” içeren satırları listeler.

2️⃣ Otomatik Tamamlama

Tab tuşuyla komut ve dosya adlarını tamamlayarak hız kazanırsın.

3️⃣ Değişkenler ve Parametreler


selam="Merhaba"
echo "$selam, Rabisu!"

➡️ Çıktı: Merhaba, Rabisu!

4️⃣ Döngüler ve Koşullar


for dosya in *.log; do
echo "İşleniyor: $dosya"
done

Bu döngü, dizindeki tüm .log dosyalarını işler.

5️⃣ Betikleme (Scripting)

Tekrarlayan işlemleri tek dosyada toplayabilirsin:


#!/bin/bash
echo "Sistem Çalışma Süresi:"
uptime

İzin verip çalıştır:


chmod +x betik.sh
./betik.sh

🛠️ Bash Kullanım Senaryoları

GörevKomutAçıklama
Sistem Güncellemesudo apt update && sudo apt upgrade -yPaketleri tek seferde günceller.
Zamanlanmış Yedeklemetar -czvf /yedek/ev_$(date +%F).tar.gz /home/kullaniciTarihli yedek oluşturur.
Log Sıkıştırmafind /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \;7 günden eski logları sıkıştırır.
Uzak Dağıtımrsync -avz /app user@remote:/var/www/appUygulamayı uzak sunucuya kopyalar.

⚙️ Bash ve DevOps

Bash, CI/CD süreçlerinin bel kemiğidir. Örneğin, Docker konteynerlerini temizlemek için:


docker ps -q | xargs -r docker stop
docker system prune -af

Veya GitHub Actions’da otomatik dağıtım:


- run: |
chmod +x deploy.sh
./deploy.sh

🧯 Hata Ayıklama ve Güvenli Kodlama

Betik başına şu satırı ekle:


set -euo pipefail
Seçenek Açıklama
-e Komut hatası olursa scripti durdurur.
-u Tanımlanmamış değişkeni hata sayar.
-o pipefail Pipe içinde hata olursa süreci sonlandırır.

Scripti debug etmek için:


bash -x betik.sh

❓ Sıkça Sorulan Sorular

1. Bash neden hâlâ bu kadar yaygın?

Çünkü POSIX uyumlu, taşınabilir ve tüm Linux dağıtımlarında varsayılan shell.

2. “command not found” hatası neden olur?

Komut yanlış yazılmış ya da sistemde yüklü değildir. which komut_adi ile varlığını kontrol et, gerekirse sudo apt install ile yükle.

3. Bash değişkenlerinin kapsamı nasıl belirlenir?

Varsayılan olarak globaltir. Fonksiyon içinde local anahtarını, dışa aktarmak için export kullan.

4. Bash script’leri nasıl daha güvenli yazılır?

set -euo pipefail ile hataları yakala, bash -x ile adım adım izle.

5. Bash yalnızca Linux’ta mı çalışır?

Hayır. Bash, macOS (Catalina öncesi), Windows (WSL) ve Unix türevlerinde de çalışır.


🔎 Bash vs Diğer Kabuklar

KabukKullanım AlanıAvantaj
shEski sistemlerPOSIX uyumlu, basit
bashGenel amaçlıYaygın, güçlü
zshGeliştiricilerKişiselleştirilebilir
fishYeni başlayanlarModern, kullanıcı dostu
dashSistem başlatmaÇok hızlı ve hafif

📘 Bash Hızlı Referans

GörevKomutAçıklama
Dizin yolunu yazdırpwdŞu anki konumu gösterir.
Dosyaları listelels -lhDetaylı ve okunabilir liste.
Dosya oluşturtouch dosya.txtBoş bir dosya oluşturur.
Metin ekleecho "metin" >> dosya.txtDosya sonuna metin ekler.
Kullanıcı girişi alread -p "Ad: " nameGirişi değişkene (name) atar.

🌟 Sonuç

Bash, Linux dünyasının omurgasıdır. İster sistem yöneticisi ol, ister geliştirici — otomasyonun temeli Bash’tir. Komut zincirleri, koşullar, süreç yönetimi ve CI/CD entegrasyonu ile her sunucuda aynı gücü sana verir.

💬 Şimdi sen de kendi backup.sh ya da deploy.sh betiğini yaz, ve bu gücü Rabisu Bulut sunucularında test et! ☁️