Linux Terminalinde Hayat Kurtaran 25 Temel Bash Komutu

İçindekiler [Göster]

Linux işletim sistemi ailesinde ve Unix tabanlı sunucu altyapılarında grafik arayüzler (GUI) pratik çözümler sunsa da, gerçek güç ve verimlilik komut satırı arayüzünde (CLI) yatar. İster uzaktaki bir bulut sunucusunu yönetin, ister yerel sisteminizde dosya ve süreç optimizasyonu yapın; Bash (Bourne Again SHell) üzerinde hakimiyet kurmak zaman kazandırır ve sistem üzerindeki kontrolünüzü en üst seviyeye çıkarır.

Bu kapsamlı kılavuzda, hem günlük operasyonlarınızda işlerinizi hızlandıracak hem de kriz anlarında hayat kurtaracak 25 temel Bash komutunu; dosya yönetimi, metin işleme, ağ denetimi, sistem analizi ve süreç yönetimi olmak üzere kategorize ederek pratik parametreleriyle birlikte inceliyoruz.


Hızlı Bakış: 25 Temel Bash Komutu ve Görevleri

Aşağıdaki tablo, sık kullanılan temel komutları ve sistemdeki ana işlevlerini özetlemektedir:

Komut İşlev Kategorisi Temel Görevi Örnek Kullanım
ls Dosya ve Dizin Dizin içeriğini listeleme ls -la
cd Dosya ve Dizin Çalışma dizinini değiştirme cd /var/log
pwd Dosya ve Dizin Aktif dizin yolunu yazdırma pwd
cp Dosya ve Dizin Dosya veya dizin kopyalama cp -r dir1 dir2
mv Dosya ve Dizin Dosya taşıma veya yeniden adlandırma mv eski.txt yeni.txt
rm Dosya ve Dizin Dosya veya dizin silme rm -rf /gecici
mkdir Dosya ve Dizin Yeni dizin oluşturma mkdir -p a/b/c
find Arama Dosya sisteminde kriter bazlı arama find . -name "*.log"
cat Metin İnceleme Dosya içeriğini terminale basma cat config.ini
less Metin İnceleme Büyük dosyaları sayfalı okuma less access.log
head / tail Metin İnceleme Dosyanın başını veya sonunu okuma tail -f error.log
grep Metin Arama Düzenli ifadelerle desen arama grep -rn "ERROR" .
sed Akış Düzenleyici Metin değiştirme ve filtreleme sed -i 's/eski/yeni/g' f.txt
awk Veri Çıkarma Sütun bazlı metin işleme awk '{print $1}' log.txt
tar Arşivleme Arşiv oluşturma ve açma tar -czvf yedek.tar.gz .
chmod Yetkilendirme Erişim izinlerini düzenleme chmod 755 script.sh
chown Yetkilendirme Dosya sahibini değiştirme chown www-data:www-data dosya
ps Süreç Yönetimi Aktif süreçleri listeleme ps aux | grep nginx
top / htop Süreç Yönetimi Gerçek zamanlı kaynak izleme htop
kill Süreç Yönetimi Süreçlere sinyal gönderip durdurma kill -9 1234
df Disk ve Bellek Disk alanı kullanımını denetleme df -h
du Disk ve Bellek Dizin ve dosya boyutunu ölçme du -sh *
free Disk ve Bellek RAM ve Takas (Swap) durumunu görme free -m
curl Ağ ve Veri Transferi URL üzerinden veri aktarımı curl -I https://site.com
ssh Ağ ve Erişim Güvenli uzak kabuk bağlantısı ssh user@host -p 22

1. Dosya ve Dizin Gezintisi Komutları

Linux ortamında dizinler arasında rahatça hareket edebilmek ve dosya işlemlerini güvenle yürütmek sistem yöneticiliğinin temel adımıdır:

  • ls (List): Dizin içeriğini listeler. Gizli dosyaları ve detaylı izinleri görmek için ls -la kullanılır. -h parametresi ise dosya boyutlarını okunabilir formatta (KB, MB, GB) sunar.
  • cd (Change Directory): Dizinler arası geçiş sağlar. Doğrudan ana dizine (home) dönmek için cd ~, bir üst klasöre çıkmak için cd .., bir önceki bulunulan konuma geri dönmek için cd - komutu tercih edilir.
  • pwd (Print Working Directory): Hangi dosya yolu (absolute path) üzerinde çalıştığınızı gösterir. Özellikle göreceli yollarla komut çalıştırırken tam konumu doğrulamak için kritiktir.
  • mkdir (Make Directory): Yeni klasör oluşturur. İç içe geçmiş klasör ağaçlarını tek seferde inşa etmek için mkdir -p proje/src/components yapısı kullanılır.
  • cp (Copy): Dosyaları ve klasörleri kopyalar. Klasörleri içindeki tüm alt bileşenlerle kopyalamak için özyinelemeli (recursive) çalışan cp -r kaynak hedef parametresi gereklidir.
  • mv (Move): Dosyayı bir yerden başka bir yere taşır veya adını değiştirir. Dosya sisteminde isim değiştirme işlemi aslında bir taşıma işlemidir.
  • rm (Remove): Dosya siler. Boş olmayan klasörleri zorla ve kalıcı olarak silmek için rm -rf dizin_adi kullanılır; bu komut geri dönüşsüz olduğu için dikkatle çalıştırılmalıdır.

2. Dosya Arama ve Metin İnceleme Komutları

Log dosyalarını ayıklamak, konfigürasyon parametrelerini bulmak ve diskteki dağınıklığı tespit etmek için kullanılan komutlar:

  • find: Dosya sisteminde dosya adı, boyutu, tipi veya değiştirilme tarihine göre dinamik tarama yapar. Örneğin son 7 günde değiştirilen dosyaları bulmak için find /var/www -mtime -7 çalıştırılır.
  • cat (Concatenate): Dosya içeriğini doğrudan terminal çıktısına basar. Kısa dosyaları hızlıca okumak için idealdir.
  • less: Binlerce satırlık dosyaları terminal belleğini tüketmeden sayfalandırarak açar. / tuşu ile dosya içinde ileriye doğru hızlı arama yapılabilir.
  • head ve tail: head -n 20 bir dosyanın ilk 20 satırını gösterirken; tail -f error.log parametresi bir log dosyasına yazılan yeni satırları gerçek zamanlı olarak terminale akıtır.
  • grep (Global Regular Expression Print): Metin blokları içinde düzenli ifade (regex) desenleri arar. Belirli bir klasör altındaki tüm dosyalarda büyük-küçük harf duyarsız arama yapmak için grep -rni "veritabani_hatasi" /var/log/ kullanılır.
  • sed (Stream Editor): Dosyaları açmadan metin üzerinde satır bazlı arama-değiştirme yapar. Örneğin bir konfigürasyondaki IP adresini değiştirmek için sed -i 's/127.0.0.1/192.168.1.10/g' ayar.conf komutu kullanılır.
  • awk: Metin dosyalarını sütunlara bölerek ayrıştıran güçlü bir betik aracıdır. Web sunucusu loglarındaki yalnızca IP adreslerini (1. sütun) listelemek için awk '{print $1}' access.log komutundan yararlanılır.

3. Arşivleme ve Dosya İzin Yönetimi

Güvenlik politikalarını uygulamak ve veri taşınabilirliğini sağlamak için kullanılan araçlar:

  • tar (Tape Archive): Dosyaları sıkıştırmak ve arşivlemek için kullanılır. Klasörü gzip ile paketlemek için tar -czvf arsiv.tar.gz /hedef/klasor; arşivi açmak içinse tar -xzvf arsiv.tar.gz sözdizimi uygulanır.
  • chmod (Change Mode): Dosya ve dizinlerin okuma (r), yazma (w) ve çalıştırma (x) izinlerini düzenler. Örneğin bir betiğe çalıştırma izni vermek için chmod +x script.sh ya da web dizini için chmod 755 dizin verilir.
  • chown (Change Owner): Dosyanın kullanıcı ve grup sahipliğini değiştirir. Örneğin Nginx sunucusunun dosyaları okuyabilmesi için chown -R www-data:www-data /var/www/html uygulanır.

4. Sistem Kaynakları ve Süreç (Process) Yönetimi

Sunucunun kilitlendiği veya belleğin tükendiği durumlarda darboğazı saptamak için bu araçlar kullanılır:

  • ps (Process Status): Sistemde koşan süreçlerin anlık fotoğrafını çeker. Arka plandaki tüm süreçleri kullanıcı bilgisiyle görmek için ps aux yaygın olarak boru hattı (pipeline) ile grep komutuna bağlanır.
  • top ve htop: İşlemci (CPU), bellek (RAM) ve süreçlerin anlık yükünü etkileşimli bir ekranda gösterir. htop, renkli arayüzü ve işlem sonlandırma kolaylığı ile top komutunun gelişmiş bir alternatifidir.
  • kill: Yanıt vermeyen veya kilitlenen süreçleri PID (Process ID) numarası üzerinden durdurur. Normal sinyale yanıt vermeyen kilitlenmiş bir süreci zorla kapatmak için kill -9 <PID> sinyali gönderilir.
  • df (Disk Free): Bağlı disk bölümlerinin toplam boyutunu ve doluluk oranını görüntüler. Okunabilir megabayt/gigabayt değerleri için df -h kullanılır.
  • du (Disk Usage): Dizinlerin disk üzerinde ne kadar alan kapladığını hesaplar. Bulunulan dizindeki en büyük klasörleri görmek için du -sh * | sort -h komut dizisi kullanılır.
  • free: Sistemin kullanılabilir fiziksel bellek ve takas (swap) alanı miktarını raporlar. Megabayt cinsinden net tablo için free -m tercih edilir.

5. Ağ Denetimi ve Uzak Bağlantı Araçları

Sunucular arası iletişim ve veri aktarımının omurgasını oluşturan komutlar:

  • curl (Client URL): Ağ üzerinden HTTP, HTTPS veya FTP protokolleriyle veri çekmek ve göndermek için kullanılır. Yalnızca yanıt başlıklarını kontrol etmek için curl -I https://api.ornek.com; bir dosyayı indirmek için curl -O URL kullanılır.
  • ssh (Secure Shell): Uzaktaki bir Linux makinesine şifreli bir tünel üzerinden güvenli terminal erişimi sağlar. Standart port dışındaki bir sunucuya bağlanmak için ssh -p 2222 kullanici@sunucu_ip komutu çalıştırılır.

Sıkça Sorulan Sorular (SSS)

Bash komutlarında pipe (|) karakteri ne işe yarar?
Pipe (boru hattı), bir komutun standart çıktısını (stdout) doğrudan bir sonraki komutun standart girdisi (stdin) haline getirir. Örneğin cat access.log | grep "404" | wc -l zinciri, log dosyasındaki 404 hatalarını bularak kaç adet olduğunu sayar.

Komutların detaylı parametre kılavuzlarına terminalden nasıl ulaşılır?
Sistemde yüklü olan hemen hemen her komutun resmi kılavuzuna man <komut_adi> (örneğin: man find) yazılarak ulaşılabilir. Daha kısa yardım çıktıları için genellikle komut --help parametresi yeterlidir.


Kaynakça

Yazı Kısa Bağlantısı