Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Linux ve Bash için Kapsamlı Komut Rehberi: Başlangıçtan İleri Seviyeye

Giriş
Bash (Bourne Again SHell), Linux ve Unix benzeri işletim sistemlerinin varsayılan komut satırı yorumlayıcısıdır. Sistemle etkileşim kurmanın ve otomasyon görevlerini gerçekleştirmenin güçlü bir yolunu sunar. Bu kapsamlı rehber, Bash'in temel komutlarından başlayarak daha ileri seviye kullanımlara kadar geniş bir yelpazeyi kapsayacaktır. Amacımız, hem yeni başlayanlara yol göstermek hem de deneyimli kullanıcılara hızlı bir referans sağlamaktır.

Bash komut satırı, dosya ve dizin yönetimi, süreç kontrolü, ağ iletişimi ve sistem bilgilerine erişim gibi birçok görevi yerine getirmek için kullanılır. Konsol üzerinden çalışmak, grafik arayüzlere kıyasla daha fazla esneklik ve otomasyon imkanı sunar.

Temel Dosya ve Dizin Yönetimi Komutları

  • pwd: "print working directory" kelimelerinin kısaltmasıdır ve o anki çalışma dizininizi gösterir.
    Kod:
    pwd
  • ls: Dizindeki dosyaları ve alt dizinleri listeler. Çok sayıda seçeneği bulunur.
    • ls -l: Ayrıntılı liste formatında gösterir (izinler, sahip, boyut, tarih vb.).
      Kod:
      ls -l
    • ls -a: Gizli dosyalar dahil tüm dosyaları gösterir.
      Kod:
      ls -a
    • ls -h: Dosya boyutlarını insan tarafından okunabilir formatta (KB, MB, GB) gösterir (genellikle -l ile kullanılır).
      Kod:
      ls -lh
  • cd: "change directory" kelimelerinin kısaltmasıdır ve dizinler arasında geçiş yapmak için kullanılır.
    Kod:
    cd /home/kullanici/belgeler
    cd ..   (üst dizine git)
    cd ~    (kullanıcının ana dizinine git)
    cd -    (önceki dizine geri dön)
  • mkdir: Yeni bir dizin oluşturur.
    Kod:
    mkdir yeni_dizin
    mkdir -p ana_dizin/alt_dizin  (iç içe dizinleri oluşturur)
  • rmdir: Boş bir dizini siler. Dizin boş değilse hata verir.
    Kod:
    rmdir bos_dizin
  • cp: Dosyaları veya dizinleri kopyalar.
    • cp kaynak_dosya hedef_dosya: Dosyayı kopyalar.
      Kod:
      cp rapor.txt rapor_yedek.txt
    • cp -r kaynak_dizin hedef_dizin: Dizinleri ve içindekileri kopyalar (rekürsif).
      Kod:
      cp -r belgeler/ eski_belgeler/
  • mv: Dosyaları veya dizinleri taşır ya da yeniden adlandırır.
    • mv eski_ad yeni_ad: Yeniden adlandırma.
      Kod:
      mv eski_rapor.txt yeni_rapor.txt
    • mv dosya hedef_dizin: Taşıma.
      Kod:
      mv resim.jpg /home/kullanici/fotograflar/
  • rm: Dosyaları veya dizinleri siler. Dikkatli kullanılmalıdır, çünkü silinen dosyalar genellikle geri alınamaz.
    • rm dosya.txt: Dosyayı siler.
      Kod:
      rm gecici.txt
    • rm -r dizin: Bir dizini ve içindekileri siler (rekürsif).
      Kod:
      rm -r onemsiz_dizin/
    • rm -f dosya.txt: Onay istemeden zorla siler.
      Kod:
      rm -f kilitli_dosya.log
    • rm -rf dizin: Zorla ve rekürsif olarak siler. Bu komut çok tehlikelidir ve yanlış kullanıldığında sisteminize onarılamaz zararlar verebilir.
      Kod:
      rm -rf /
      Uyarı: rm -rf komutu ile silinen verilerin geri getirilmesi çok zordur veya imkansızdır. Bu komutu kullanmadan önce ne yaptığınızdan emin olun!
  • touch: Yeni boş bir dosya oluşturur veya mevcut bir dosyanın erişim/değiştirilme zamanını günceller.
    Kod:
    touch yeni_dosya.txt
  • cat: Dosyaların içeriğini standart çıktıya (ekrana) basar. Birden fazla dosyayı birleştirmek için de kullanılabilir.
    Kod:
    cat metin.txt
    cat dosya1.txt dosya2.txt > birlesik.txt
  • less / more: Büyük dosyaların içeriğini sayfa sayfa görüntülemenizi sağlar. less daha gelişmiştir, ileri ve geri gidebilirsiniz.
    Kod:
    less buyuk_log_dosyasi.log
    more baska_metin.txt

Dosya İçeriği ve Arama Komutları

  • grep: Dosyalarda belirli desenleri arar ve eşleşen satırları gösterir.
    • grep "anahtar kelime" dosya.txt
      Kod:
      grep "hata" /var/log/syslog
    • grep -i "anahtar kelime" dosya.txt: Büyük/küçük harf duyarsız arama.
      Kod:
      grep -i "error" app.log
    • grep -r "anahtar kelime" dizin/: Dizin içinde rekürsif arama.
      Kod:
      grep -r "fonksiyon" proje_klasoru/
    • grep -l "anahtar kelime" *.txt: Sadece eşleşme içeren dosya adlarını listeler.
      Kod:
      grep -l "konfigürasyon" *.conf
  • find: Belirli kriterlere göre dosya ve dizinleri arar. Çok güçlü ve esnektir.
    • find . -name "dosya_adi.txt": Mevcut dizinde dosya adına göre arama.
      Kod:
      find . -name "rapor*.pdf"
    • find /home -type d -name "yedekler": /home dizininde "yedekler" adlı dizinleri arar.
      Kod:
      find /var/log -type f -size +1G
    • find . -mtime +7 -delete: Son 7 günden eski dosyaları siler (dikkatli olun!).
      Kod:
      find /tmp -type f -atime +30 -exec rm {} \;
  • head / tail: Dosyanın ilk veya son birkaç satırını gösterir.
    • head dosya.txt: İlk 10 satırı gösterir.
      Kod:
      head my_script.sh
    • tail -n 20 dosya.txt: Son 20 satırı gösterir.
      Kod:
      tail -n 20 access.log
    • tail -f dosya.txt: Dosyaya eklenen yeni satırları gerçek zamanlı olarak takip eder (log dosyalarını izlemek için idealdir).
      Kod:
      tail -f /var/log/apache2/error.log
  • wc: Dosyadaki satır, kelime ve karakter sayısını gösterir.
    • wc -l dosya.txt: Satır sayısı.
      Kod:
      wc -l notlar.txt
    • wc -w dosya.txt: Kelime sayısı.
      Kod:
      wc -w makale.txt
    • wc -c dosya.txt: Karakter sayısı.
      Kod:
      wc -c README.md

Kullanıcı ve İzin Yönetimi Komutları

  • chmod: Dosya ve dizin izinlerini değiştirir. Numerik (oktal) veya sembolik modda kullanılabilir.
    • chmod 755 script.sh: Okuma, yazma, çalıştırma (sahip), okuma, çalıştırma (grup), okuma, çalıştırma (diğerleri) izni verir.
      Kod:
      chmod 755 my_program
    • chmod +x script.sh: Çalıştırma izni ekler.
      Kod:
      chmod +x run.sh
    • chmod -w file.txt: Yazma iznini kaldırır.
      Kod:
      chmod -w config.ini
  • chown: Dosya veya dizinin sahibini değiştirir. Yalnızca root veya sudo yetkisine sahip kullanıcılar kullanabilir.
    Kod:
    sudo chown kullanici:grup dosya.txt
    sudo chown -R yeni_sahip:yeni_grup proje_dizini/
  • sudo: "superuser do" kelimelerinin kısaltmasıdır. Yetkili kullanıcıların (genellikle root) komutlarını kendi parolanızla çalıştırmanızı sağlar.
    Kod:
    sudo apt update
    sudo reboot
  • su: "switch user" kelimelerinin kısaltmasıdır. Farklı bir kullanıcıya geçiş yapmanızı sağlar. Genellikle root kullanıcısına geçmek için kullanılır.
    Kod:
    su -   (root kullanıcısına geçiş)
    su baska_kullanici
  • whoami: Şu anda hangi kullanıcı olarak oturum açtığınızı gösterir.
    Kod:
    whoami
  • id: Mevcut kullanıcının veya belirtilen kullanıcının kullanıcı kimliğini (UID), grup kimliğini (GID) ve ait olduğu tüm grupları gösterir.
    Kod:
    id
    id sysadmin

Süreç Yönetimi Komutları

  • ps: Çalışan süreçleri gösterir.
    • ps aux: Tüm kullanıcıların süreçlerini detaylı gösterir.
      Kod:
      ps aux | grep firefox
    • ps -ef: Tüm süreçleri tam formatta listeler.
      Kod:
      ps -ef
  • top: Süreçleri dinamik olarak, kaynak kullanımına göre sıralayarak gösterir. CPU, bellek kullanımı gibi bilgileri gerçek zamanlı izlemek için idealdir.
    Kod:
    top
  • kill: Bir süreci Process ID (PID) kullanarak sonlandırır.
    • kill PID: Normal sonlandırma isteği (SIGTERM).
      Kod:
      kill 12345
    • kill -9 PID: Süreci zorla sonlandırır (SIGKILL).
      Kod:
      kill -9 54321
  • pkill: Süreçleri adlarına göre sonlandırır.
    Kod:
    pkill firefox
  • bg: Bir duraklatılmış süreci arka planda çalıştırmaya devam eder.
    Kod:
    ctrl+z (bir süreci duraklatır)
    bg
  • fg: Arka planda çalışan veya duraklatılmış bir süreci ön plana getirir.
    Kod:
    fg
  • jobs: Arka planda çalışan veya duraklatılmış işleri listeler.
    Kod:
    jobs

Ağ Komutları

  • ping: Bir ana bilgisayara ağ üzerinden erişilebilir olup olmadığını test eder.
    Kod:
    ping google.com
  • ip addr / ifconfig: Ağ arayüzlerinin IP adreslerini ve diğer ağ bilgilerini gösterir. ifconfig eski bir komuttur, ip addr tercih edilir.
    Kod:
    ip addr show
    ifconfig
  • netstat: Ağ bağlantılarını, yönlendirme tablolarını, arayüz istatistiklerini gösterir.
    Kod:
    netstat -tulnp
  • ssh: "Secure Shell" kelimelerinin kısaltmasıdır. Uzak bir sunucuya güvenli bir şekilde bağlanmanızı sağlar.
    Kod:
    ssh kullanici@uzak_sunucu_ip
  • scp: "Secure Copy" kelimelerinin kısaltmasıdır. Dosyaları uzak sunuculara güvenli bir şekilde kopyalar.
    Kod:
    scp dosya.txt kullanici@uzak_sunucu_ip:/hedef/dizin/
    scp kullanici@uzak_sunucu_ip:/kaynak/dosya.log .
  • wget / curl: Web sitelerinden veya FTP sunucularından dosya indirmek için kullanılır. curl daha çok veri transferi ve API etkileşimleri için çok yönlüdür.
    Kod:
    wget https://example.com/dosya.zip
    curl -O https://example.com/another_file.tar.gz
    curl -L "https://api.example.com/data"

Sistem Bilgisi Komutları

  • uname: Sistem hakkındaki bilgileri gösterir (çekirdek adı, sürümü vb.).
    Kod:
    uname -a
  • df: Disk alanı kullanımını gösterir.
    Kod:
    df -h
  • du: Dosya veya dizinlerin disk kullanımını gösterir.
    Kod:
    du -sh /home/kullanici/belgeler/
  • free: Bellek kullanımını gösterir.
    Kod:
    free -h
  • uptime: Sistemin ne kadar süredir çalıştığını, kullanıcı sayısını ve yük ortalamasını gösterir.
    Kod:
    uptime
  • history: Daha önce çalıştırdığınız komutların listesini gösterir.
    Kod:
    history
    !500   (500 numaralı komutu tekrar çalıştırır)

Giriş/Çıkış Yönlendirme ve Borulama

Bash'in gücü, komutların birleştirilmesi ve çıktılarının yönlendirilmesiyle ortaya çıkar.

  • > (Tek Ok): Bir komutun çıktısını bir dosyaya yazar. Dosya varsa üzerine yazar.
    Kod:
    ls -l > dosya_listesi.txt
  • >> (Çift Ok): Bir komutun çıktısını bir dosyanın sonuna ekler.
    Kod:
    echo "Yeni satır" >> dosya_listesi.txt
  • < (Giriş Yönlendirme): Bir dosyanın içeriğini bir komutun girişi olarak kullanır.
    Kod:
    sort < sayilar.txt
  • | (Boru - Pipe): Bir komutun çıktısını diğer bir komutun girdisi olarak yönlendirir. En yaygın kullanılan ve güçlü özelliklerden biridir.
    Kod:
    ps aux | grep nginx   (nginx süreçlerini bul)
    ls -l | less          (ls çıktısını sayfa sayfa görüntüle)
    cat log.txt | grep "error" | wc -l   (log dosyasındaki "error" içeren satır sayısını bul)

Sıkıştırma ve Arşivleme Komutları

  • tar: Dosyaları bir arşive (tarball) paketlemek ve arşivden çıkarmak için kullanılır. Genellikle gzip veya bzip2 ile sıkıştırılır.
    • tar -cvf arsiv.tar dosya1 dosya2 dizin/: Dosyaları arşivler (sıkıştırmaz).
      Kod:
      tar -cvf belgelerim.tar raporlar/ notlar.txt
    • tar -xvf arsiv.tar: Arşivden çıkarır.
      Kod:
      tar -xvf yedek.tar
    • tar -czvf arsiv.tar.gz dosya1 dizin/: gzip ile sıkıştırılmış arşiv oluşturur.
      Kod:
      tar -czvf fotograflar.tar.gz fotograflar/
    • tar -xzvf arsiv.tar.gz: gzip ile sıkıştırılmış arşivden çıkarır.
      Kod:
      tar -xzvf proje.tar.gz
  • gzip / gunzip: Tek bir dosyayı sıkıştırmak veya açmak için kullanılır.
    Kod:
    gzip dosya.txt
    gunzip dosya.txt.gz
  • zip / unzip: Windows'taki ZIP formatıyla uyumlu arşivler oluşturur ve açar.
    Kod:
    zip -r arsiv.zip dosya1 dosya2 dizin/
    unzip arsiv.zip

Bash Betikleme Temelleri (Kısa Bir Bakış)

Bash komutları, tek başına kullanılmakla kalmaz, aynı zamanda betikler halinde otomatize edilebilir. Bir betik, bir dizi komutun ardı ardına çalıştırılması için yazılmış bir dosyadır.

Örnek: Basit Bir Betik
Kod:
#!/bin/bash
# Bu benim ilk Bash betiğim

echo "Merhaba, Dünya!"
CURRENT_DATE=$(date +%Y-%m-%d)
echo "Bugünün tarihi: $CURRENT_DATE"

mkdir -p loglar
echo "Loglama dizini oluşturuldu."

if [ -f "deneme.txt" ]; then
    echo "deneme.txt dosyası zaten var."
else
    touch deneme.txt
    echo "deneme.txt dosyası oluşturuldu."
fi

# 5 saniye bekleyelim
sleep 5

echo "Betik tamamlandı."
Yukarıdaki betikte:
  • #!/bin/bash: "shebang" olarak bilinir, betiğin hangi yorumlayıcı ile çalıştırılacağını belirtir.
  • #: Yorum satırlarını belirtir.
  • echo: Metni ekrana yazdırır.
  • CURRENT_DATE=$(date +%Y-%m-%d): Komut çıktısını bir değişkene atar.
  • if, else, fi: Koşullu ifadeler için kullanılır.
  • sleep: Belirtilen saniye kadar bekler.
Betiği çalıştırmak için, dosyaya çalıştırma izni verilir (chmod +x betik_adi.sh) ve ardından ./betik_adi.sh şeklinde çalıştırılır.

Yardım Alma

  • man komut_adı: Bir komutun "manual" (kılavuz) sayfasını gösterir. En detaylı bilgi kaynağıdır.
    Kod:
    man ls
    man grep
  • komut_adı --help veya komut_adı -h: Çoğu komutun kısa bir yardım çıktısı bulunur.
    Kod:
    ls --help
    cp -h
  • type komut_adı: Komutun türünü (yerleşik, takma ad, fonksiyon, dosya) gösterir.
    Kod:
    type cd
    type ll

Önemli İpuçları ve En İyi Uygulamalar

  • Otomatik Tamamlama: Komutları veya dosya yollarını yazarken Tab tuşuna basmak, otomatik tamamlamayı sağlar ve yazım hatalarını azaltır.
  • Geçmiş Komutlar: Ok tuşlarını (yukarı/aşağı) kullanarak daha önce çalıştırılan komutlara erişebilirsiniz.
  • Borular ve Yönlendirme: Komutların çıktısını başka komutlara veya dosyalara yönlendirmeyi öğrenmek Bash'in gücünü tam olarak kullanmanızı sağlar.
  • Takma Adlar (Aliases): Sık kullandığınız uzun komutlar için takma adlar (alias komutu) oluşturarak iş akışınızı hızlandırabilirsiniz. Örneğin:
    Kod:
    alias ll='ls -lh'
  • Sudo Kullanımı: Yönetici yetkisi gerektiren komutları sudo ile çalıştırın. Gereksiz yere root kullanıcısı olarak kalmaktan kaçının.
  • Yedekleme: Kritik işlemler yapmadan önce daima önemli verilerinizi yedekleyin. Özellikle rm -rf gibi komutları kullanırken aşırı dikkatli olun.

Sonuç

Bash komutları, Linux ve Unix benzeri sistemlerde günlük görevlerden karmaşık otomasyonlara kadar geniş bir yelpazede kullanılabilen temel araçlardır. Bu rehber, en sık kullanılan ve en önemli komutları kapsayarak Bash dünyasına sağlam bir giriş yapmayı veya mevcut bilginizi pekiştirmeyi amaçlamıştır. Pratik yaparak ve farklı senaryolarda bu komutları kullanarak yetkinliğinizi artırabilirsiniz. Her zaman man sayfalarını ve --help seçeneklerini kullanarak komutlar hakkında daha fazla bilgi edinmekten çekinmeyin. Ek olarak, daha fazla kaynak için Bash Resmi Belgelendirmesi gibi siteleri ziyaret edebilirsiniz. İyi komut satırı kullanımları!
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected