Linux'un gerçek gücü terminalde yatar. Grafik arayüzüyle yapabileceğiniz her şeyi ve çok daha fazlasını birkaç tuş vuruşuyla halledebilirsiniz. Terminal, başlangıçta korkutucu görünebilir ama temel komutları öğrendikten sonra vazgeçilmez bir araç haline gelir.
Terminal ve Kabuk Nedir?
Terminal, işletim sisteminin çekirdeğiyle iletişim kurmanızı sağlayan metin tabanlı arayüzdür. Kabuk (shell) ise girdiğiniz komutları yorumlayıp çekirdeğe ileten programdır.
Linux'ta farklı kabuk seçenekleri vardır:
Bash: En yaygın kabuk, çoğu dağıtımda varsayılan. Zsh: Gelişmiş özellikler, otomatik tamamlama, temalar. Fish: Kullanıcı dostu, renkli sözdizimi vurgulama.
Bu rehberde Bash odaklı komutları ele alacağız, çoğu diğer kabuklarda da çalışır.
Terminali Açma
Ubuntu ve türevlerinde Ctrl+Alt+T kısayolu terminali açar. Uygulama menüsünden "Terminal" arayarak da bulabilirsiniz.
Temel Navigasyon Komutları
pwd (Print Working Directory)
Bulunduğunuz dizini gösterir. Terminalde kaybolduğunuzda ilk bakacağınız komut.
pwd /home/kullanici
ls (List)
Dizin içeriğini listeler. En sık kullanılan komutlardan biri.
ls: Basit liste. ls -l: Detaylı liste (izinler, boyut, tarih). ls -a: Gizli dosyaları da gösterir (nokta ile başlayanlar). ls -la: Detaylı ve gizli dosyalar dahil. ls -lh: İnsan okunabilir boyutlar (KB, MB, GB).
cd (Change Directory)
Dizin değiştirir.
cd /home/kullanici: Belirtilen dizine git. cd: Home dizinine dön. cd ..: Bir üst dizine çık. cd -: Önceki dizine dön. cd ~/Belgeler: Home altındaki Belgeler klasörüne git.
Dosya ve Dizin İşlemleri
touch
Boş dosya oluşturur veya mevcut dosyanın zaman damgasını günceller.
touch yeni_dosya.txt
mkdir (Make Directory)
Yeni dizin oluşturur.
mkdir klasor: Tek dizin oluşturur. mkdir -p a/b/c: İç içe dizinler oluşturur.
cp (Copy)
Dosya veya dizin kopyalar.
cp dosya.txt yedek.txt: Dosya kopyalar. cp -r klasor/ yedek_klasor/: Dizin ve içeriğini kopyalar. cp *.txt belgeler/: Tüm txt dosyalarını belgeler klasörüne kopyalar.
mv (Move)
Taşır veya yeniden adlandırır.
mv eski.txt yeni.txt: Yeniden adlandırır. mv dosya.txt /home/kullanici/Belgeler/: Taşır.
rm (Remove)
Siler. Dikkatli kullanın, geri dönüşüm kutusu yok.
rm dosya.txt: Dosya siler. rm -r klasor/: Dizin ve içeriğini siler. rm -rf klasor/: Onay sormadan zorla siler (tehlikeli). rm -i dosya.txt: Silmeden önce onay ister.
rmdir
Boş dizin siler.
rmdir bos_klasor
Dosya Görüntüleme
cat
Dosya içeriğini ekrana basar.
cat dosya.txt cat dosya1.txt dosya2.txt: Birden fazla dosyayı birleştirerek gösterir.
less ve more
Uzun dosyaları sayfa sayfa gösterir.
less uzun_dosya.txt
Navigasyon: Space (sonraki sayfa), b (önceki), q (çık), / (ara).
head ve tail
Dosyanın başını veya sonunu gösterir.
head dosya.txt: İlk 10 satır. head -n 20 dosya.txt: İlk 20 satır. tail dosya.txt: Son 10 satır. tail -f log.txt: Canlı takip (log dosyaları için ideal).
Metin Arama ve Düzenleme
grep
Metin içinde arama yapar. En güçlü arama aracı.
grep "aranan" dosya.txt: Basit arama. grep -i "aranan" dosya.txt: Büyük/küçük harf duyarsız. grep -r "aranan" klasor/: Alt dizinlerde de ara. grep -n "aranan" dosya.txt: Satır numarasıyla göster. grep -v "aranan" dosya.txt: Eşleşmeyenleri göster. grep -c "aranan" dosya.txt: Eşleşme sayısı.
Düzenli ifadeler (regex) destekler:
grep "^Merhaba" dosya.txt: Merhaba ile başlayan satırlar. grep "son$" dosya.txt: son ile biten satırlar. grep "[0-9]" dosya.txt: Rakam içeren satırlar.
sed
Akış editörü. Bulup değiştirme işlemleri için.
sed 's/eski/yeni/' dosya.txt: İlk eşleşmeyi değiştirir. sed 's/eski/yeni/g' dosya.txt: Tüm eşleşmeleri değiştirir. sed -i 's/eski/yeni/g' dosya.txt: Dosyayı yerinde değiştirir. sed '5d' dosya.txt: 5. satırı siler. sed '1,10d' dosya.txt: 1-10 arası satırları siler.
awk
Güçlü metin işleme dili. Sütun bazlı veriler için ideal.
awk '{print $1}' dosya.txt: İlk sütunu yazdır. awk '{print $1, $3}' dosya.txt: 1. ve 3. sütunları yazdır. awk -F',' '{print $2}' dosya.csv: Virgülle ayrılmış 2. sütun. awk '{sum += $1} END {print sum}' numbers.txt: Toplam hesapla.
ls -l | awk '{print $9}': Sadece dosya isimlerini listele.
Pipe ve Yönlendirme
Pipe (|)
Bir komutun çıktısını diğerine girdi olarak verir.
ls -l | grep ".txt": txt dosyalarını filtrele. cat dosya.txt | sort | uniq: Sırala ve tekrarları kaldır. ps aux | grep firefox: Firefox işlemlerini bul. history | tail -20: Son 20 komutu göster.
Çıktı Yönlendirme
>: Çıktıyı dosyaya yaz (üzerine yazar). >>: Çıktıyı dosyaya ekle (append). 2>: Hata çıktısını yönlendir. &>: Hem normal hem hata çıktısını yönlendir.
echo "Merhaba" > dosya.txt ls -l >> kayit.txt komut 2> hatalar.txt komut &> tum_cikti.txt
Girdi Yönlendirme
<: Dosyadan girdi al.
sort < siralanacak.txt
İzin Yönetimi
chmod
Dosya izinlerini değiştirir. Linux'ta üç izin türü var: okuma (r), yazma (w), çalıştırma (x).
Üç kullanıcı kategorisi: sahip (u), grup (g), diğerleri (o).
Sembolik gösterim:
chmod +x script.sh: Çalıştırma izni ekle. chmod u+w dosya.txt: Sahibine yazma izni ekle. chmod go-r dosya.txt: Grup ve diğerlerinden okuma iznini kaldır.
Sayısal gösterim: r=4, w=2, x=1
chmod 755 script.sh: rwxr-xr-x (sahip: tam, diğerleri: oku ve çalıştır). chmod 644 dosya.txt: rw-r--r-- (sahip: oku-yaz, diğerleri: sadece oku). chmod 700 gizli/: rwx------ (sadece sahip erişebilir).
chown
Dosya sahipliğini değiştirir.
chown kullanici dosya.txt: Sahibi değiştir. chown kullanici:grup dosya.txt: Sahip ve grubu değiştir. chown -R kullanici klasor/: Alt dizinler dahil.
Sistem Bilgisi
uname
Sistem bilgisi gösterir.
uname -a: Tüm bilgiler. uname -r: Çekirdek sürümü.
df
Disk kullanımını gösterir.
df -h: İnsan okunabilir format.
du
Dizin boyutunu gösterir.
du -sh klasor/: Toplam boyut. du -h klasor/: Alt dizinlerle birlikte.
free
Bellek kullanımı.
free -h: RAM durumu.
top ve htop
Çalışan işlemleri gösterir.
top: Temel işlem izleyici. htop: Gelişmiş, renkli arayüz (kurulum gerekebilir).
İşlem Yönetimi
ps
Çalışan işlemleri listeler.
ps: Mevcut terminal işlemleri. ps aux: Tüm işlemler detaylı. ps aux | grep firefox: Belirli işlemi bul.
kill
İşlem sonlandırır.
kill PID: Normal sonlandırma. kill -9 PID: Zorla sonlandırma. killall firefox: İsme göre sonlandır.
Arka Plan İşlemleri
komut &: Arka planda çalıştır. Ctrl+Z: İşlemi duraklat. bg: Arka planda devam ettir. fg: Ön plana getir. jobs: Arka plan işlemlerini listele.
Ağ Komutları
ping
Bağlantı testi.
ping google.com ping -c 4 google.com: 4 paket gönder.
curl ve wget
Dosya indirme ve HTTP istekleri.
wget https://ornek.com/dosya.zip: Dosya indir. curl https://api.ornek.com/veri: HTTP isteği. curl -O https://ornek.com/dosya.zip: Dosya indir.
ip ve ifconfig
Ağ yapılandırması.
ip addr: IP adreslerini göster. ip route: Yönlendirme tablosu.
SSH
Uzak sunucuya bağlanma.
ssh kullanici@sunucu: Bağlan. ssh -p 2222 kullanici@sunucu: Özel port. scp dosya.txt kullanici@sunucu:/hedef/: Dosya kopyala.
Arşiv İşlemleri
tar
tar -cvf arsiv.tar klasor/: Arşiv oluştur. tar -xvf arsiv.tar: Arşivi aç. tar -czvf arsiv.tar.gz klasor/: Sıkıştırılmış arşiv. tar -xzvf arsiv.tar.gz: Sıkıştırılmış arşivi aç.
zip ve unzip
zip arsiv.zip dosya1 dosya2: ZIP oluştur. zip -r arsiv.zip klasor/: Dizini zip'le. unzip arsiv.zip: ZIP aç.
Zamanlanmış Görevler
crontab
Periyodik görevler için.
crontab -e: Düzenle. crontab -l: Listele.
Cron formatı: dakika saat gün ay haftanın_günü komut
0 2 /scripts/yedekleme.sh: Her gece 02:00'de çalıştır. /15 /scripts/kontrol.sh: Her 15 dakikada bir. 0 0 0 /scripts/haftalik.sh: Her pazar gece yarısı.
Alias ve Kısayollar
Sık kullanılan uzun komutlar için kısayol tanımlayın.
alias ll='ls -la' alias update='sudo apt update && sudo apt upgrade' alias ..='cd ..'
Kalıcı yapmak için ~/.bashrc dosyasına ekleyin.
Faydalı Kısayollar
Ctrl+C: Çalışan komutu durdur. Ctrl+D: Terminali kapat. Ctrl+L: Ekranı temizle. Ctrl+R: Komut geçmişinde ara. Tab: Otomatik tamamlama. Tab Tab: Olası tamamlamaları listele.
man ve help
Yardım almak için:
man ls: ls komutunun kılavuzu. ls --help: Kısa yardım. info ls: Detaylı bilgi.
Sonuç
Terminal kullanımı pratikle gelişir. Günlük işlerinizi terminalde yapmaya çalışın, zamanla komutlar refleks haline gelir. Başlangıçta cd, ls, cp, mv, rm gibi temel komutları öğrenin. Sonra grep, awk, sed ile metin işlemeye geçin. İzin yönetimi ve sistem komutları ileri aşamada gelir.
Hata yapacaksınız, özellikle rm komutuyla. Kritik sistemlerde çalışırken dikkatli olun, önce test ortamında deneyin. man sayfaları en iyi referans kaynağınız.
0 Yorum
Yorum Yaz