Şerif SELEN | Windows & Linux Rehberi
Linux

Linux'a Başlangıç Rehberi

Linux Başlangıç Rehberi: Temel Komutlar ve Sistem Yönetimi

Ubuntu 24.04 Üzerinde Linux'a Profesyonel Giriş

Bu rehber, Ubuntu 24.04 LTS ortamında Linux terminalini etkin kullanmayı, dosya sistemi mimarisini anlamayı, kullanıcı yetkilendirmelerini yönetmeyi ve paket yöneticisi ile yazılım ekosistemine hakim olmayı adım adım öğretir. Her bölüm, komutun ne işe yaradığını, nasıl çalıştığını ve gerçek dünyada nasıl kullanıldığını detaylıca açıklar.

📑 İçindekiler


🔰 Kurulum Öncesi Hazırlık ve Ortam Seçimi

Neden Ubuntu?

Ubuntu, Debian tabanlı yapısı, geniş topluluk desteği ve LTS (Long Term Support) sürümleriyle 5 yıllık güvenlik güncellemesi sunar. Başlangıç için Ubuntu 24.04 LTS Desktop önerilir; hem GUI hem terminal deneyimini paralel öğrenmenizi sağlar.

Sanal Makine Kurulum Tavsiyeleri

Ayar Öneri Açıklama
Sanallaştırma VirtualBox / VMware Workstation Ücretsiz ve kararlı
RAM 4 GB GUI + Terminal rahat çalışır
CPU 2 Çekirdek Derleme/derleme öncesi işlemler için yeterli
Disk 25 GB (Dinamik) Güncellemeler ve loglar için alan bırakır
NAT + Port Forwarding (SSH için) Dışarıdan erişim testlerinde kolaylık sağlar

💡 Pro İpucu: Kurulum sırasında "Install third-party software" seçeneğini işaretleyin. Bu, Wi-Fi sürücüleri ve medya kodeklerini otomatik yükler.


🖥️ Terminal ve Kabuk (Shell) Temelleri

Adım 1: Terminal Mimarisi ve Prompt Yapısı

Terminal, çekirdek (kernel) ile kullanıcı arasındaki köprüdür. Varsayılan kabuk Bash'tir, ancak modern Ubuntu'da Zsh de alternatif olarak gelir.

Prompt (İstemci) Bileşenleri:

serif@ubuntu:~/Projeler$
│   │     │   │      │
│   │     │   │      └─ `$` = Normal kullanıcı yetkisi (`#` = root)
│   │     │   └───────── `~` = Mevcut dizin (Home)
│   │     └───────────── `:` = Ayırıcı
│   └─────────────────── `ubuntu` = Hostname (Makine adı)
└─────────────────────── `serif` = Aktif kullanıcı

📌 Neden Önemli? Prompt yapısı, nerede olduğunuzu ve hangi yetkiyle çalıştığınızı anlık gösterir. Yanlış dizinde yanlış yetkiyle komut çalıştırmak, veri kaybına yol açabilir.

Adım 2: Komut Geçmişi, Tamamlama ve Yardım Sistemleri

Terminal verimliliği kısayollar ve yardım mekanizmalarıyla artar.

Özellik Kullanım Açıklama
Otomatik Tamamlama Tab Komut/dizin adı yazarken Tab basarsanız sistem tamamlar. İki kez basarsanız olası seçenekleri listeler.
Komut Geçmişi / veya Ctrl+R Önceki komutları tarar. Ctrl+R ile yazmaya başlayınca eşleşen komutu bulur.
Komutu Durdurma Ctrl+C Çalışan işlemi SIGINT sinyali ile sonlandırır.
Arka Plan Ctrl+Z + bg / fg İşlemi duraklatır, bg ile arka planda çalıştırır, fg ile öne getirir.
Man Sayfaları man <komut> Komutun resmi dokümantasyonunu açar. q ile çıkılır.
Help <komut> --help Hızlı parametre listesi verir.

⚠️ Uyarı: man sayfaları İngilizcedir. Türkçe destek için LANG=tr man <komut> deneyebilirsiniz, ancak çeviriler eksik olabilir.


📂 Dosya Sistemi Hiyerarşisi ve Navigasyon

Adım 3: Linux Dizin Ağacı ve Kritik Klasörler

Windows'taki C:\, D:\ gibi sürücü mantığı Linux'ta yoktur. Her şey tek bir kökten (/) dallanır. Ek sürücüler bu ağaca mount edilir.

Dizin Görevi Örnek Kullanım
/ Kök dizin. Tüm sistemin başlangıcı cd /
/home/<kullanici> Kişisel dosyalar, ayarlar, indirilenler cd ~
/etc Sistem ve uygulama konfigürasyon dosyaları cd /etc/nginx
/var Değişken veriler: loglar, web siteleri, kuyruklar ls /var/log
/tmp Geçici dosyalar. Yeniden başlatmada silinir touch /tmp/test
/usr Kullanıcı programları, kütüphaneler, dokümanlar ls /usr/bin
/bin & /sbin Temel sistem komutları (root/kullanıcı) ls /bin/ls
/dev Donanım cihaz dosyaları (disk, tty, usb) ls /dev/sda

💡 Farkındalık: /home dizini kullanıcıya aittir. /etc veya /var altında değişiklik yaparken sudo gerekir ve yanlış müdahale sistem kararlılığını bozar.

Adım 4: Yol (Path) Mantığı ve Dizin Geçişi

Linux'ta iki tür yol vardır:

  • Mutlak (Absolute) Yol: / ile başlar. Nerede olursanız olun aynı yeri gösterir. (/home/serif/belgeler)
  • Göreceli (Relative) Yol: Mevcut dizine göre tanımlanır. / ile başlamaz. (./belgeler veya ../ust_dizin)

Navigasyon Komutları Detaylı:

pwd              # Print Working Directory: Neredeyim?
cd /etc          # Mutlak yola git
cd ..            # Bir üst dizine çık
cd -             # Önceki dizine dön (history toggle)
ls               # Kısa liste
ls -la           # -l: detaylı, -a: gizli dosyalar (. ile başlayan) dahil
ls -lh           # -h: human-readable boyut (KB, MB, GB)
tree -L 2        # Dizin ağacını görselleştir (kurulum: sudo apt install tree)

📌 Pratik: ls -la çıktısında ilk sütun izinleri, ikinci sütun bağlantı sayısı, üçüncü/dördüncü sütun sahip/grup, beşinci boyut, altıncı tarih, yedinci dosya adıdır.


📄 Dosya ve Metin İşlemleri

Adım 5: Dosya Oluşturma, Kopyalama ve Taşıma

Komut Açıklama Dikkat Edilmesi Gereken
touch dosya.txt Boş dosya oluşturur veya zaman damgasını günceller Varolan dosyayı silmez, sadece metadata günceller
mkdir proje Tek dizin oluşturur mkdir -p a/b/c ile iç içe oluşturabilirsiniz
cp kaynak hedef Kopyalar Dizinler için cp -r şarttır
mv kaynak hedef Taşır veya yeniden adlandırır Aynı dosya sisteminde inode değişmez, hızlıdır
rm dosya Silme rm -rf geri dönüşü yoktur. Mutlak yol yazarken dikkatli olun

Örnek Senaryo:

mkdir ~/yeni_proje
cd ~/yeni_proje
touch README.md notlar.txt
cp notlar.txt notlar_yedek.txt
mv notlar.txt dokumanlar/  # Önce mkdir dokumanlar yapılmalı

Adım 6: İçerik Okuma, Arama ve Filtreleme

cat dosya.txt          # Tüm içeriği stdout'a basar (küçük dosyalar için)
less dosya.txt         # Sayfalama yapar, `/` ile arama, `q` ile çık (büyük dosyalar için ideal)
head -n 20 log.txt     # İlk 20 satır
tail -f log.txt        # Dosyayı canlı izler (log takibi için vazgeçilmez)
grep "hata" log.txt    # Satır içinde "hata" geçenleri filtreler
grep -r "config" /etc/ # Dizin içinde recursive arama
find /home -name "*.log" -mtime -7  # Son 7 günde değişen .log dosyalarını bul
wc -l dosya.txt        # Satır sayısı (word count)

💡 Pro İpucu: tail -f ile Apache/Nginx loglarını izlerken hata anında terminalde canlı akış görürsünüz. Ctrl+C ile çıkabilirsiniz.

Adım 7: Yönlendirme (Redirection) ve Borulama (Piping)

Linux felsefesi: "Her araç bir işi iyi yapar, bunları birleştir."

Operatör Görevi Örnek
> Stdout'u dosyaya yazar (varolanı siler) echo "Merhaba" > not.txt
>> Stdout'u dosyaya ekler echo "İkinci satır" >> not.txt
2> Hata çıktısını (stderr) yönlendirir ls /yok 2> hata.log
&> Stdout ve stderr'ı aynı dosyaya yazar komut &> tum_cikti.log
| (Pipe) Bir komutun çıktısını diğerine giriş yapar cat log.txt | grep "ERROR" | wc -l

Gerçek Dünya Örneği:

# Çalışan prosesleri listele, içinde "nginx" olanları filtrele, ilk 5'i göster
ps aux | grep nginx | head -n 5

👥 Kullanıcı, Grup ve Yetki Yönetimi

Adım 8: Kullanıcı Hesapları ve Grup Mantığı

Linux çok kullanıcılıdır. Her işlemin bir sahibi ve grubu vardır.

whoami              # Aktif kullanıcı
id                  # UID, GID ve grup üyelikleri
cat /etc/passwd     # Tüm kullanıcıların temel bilgileri (şifre hash'i /etc/shadow'dadır)
cut -d: -f1 /etc/passwd  # Sadece kullanıcı adlarını listele
sudo adduser ahmet  # Etkileşimli kullanıcı oluşturur (home dizini, şifre, bilgiler)
sudo deluser --remove-home ahmet  # Kullanıcıyı ve home dizinini sil

Grup Yönetimi:

sudo groupadd developer
sudo usermod -aG developer serif  # -a: append (ekle), -G: secondary group
groups serif                      # Grup üyeliklerini göster
newgrp developer                  # Oturum içinde grubu aktif et (logout/login gerektirmez)

Güvenlik: usermod -aG kullanırken -a (append) parametresini unutmayın. Aksi halde kullanıcı diğer gruplardan çıkarılır.

Adım 9: sudo ve Yetki Yükseltme Güvenliği

sudo (SuperUser DO), geçici olarak root yetkisi verir. su komutu ise kalıcı olarak kullanıcı değiştirir. Başlangıç için sudo daha güvenlidir.

sudo apt update           # Tek komut yetki yükseltir
sudo -i                   # Root kabuğuna girer (çıkış: exit)
sudo -l                   # Mevcut kullanıcının sudo yetkilerini listeler
sudo visudo               # /etc/sudoers dosyasını syntax kontrolü ile düzenler

Sudoers Kural Örneği:

# /etc/sudoers.d/serif-web
serif ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx

💡 Neden visudo? Doğrudan nano /etc/sudoers açarsanız syntax hatası tüm sudo erişimini kırar. visudo kaydetmeden önce kontrol eder.


🔐 Dosya İzinleri ve Sahiplik

Adım 10: İzin Bitleri ve Oktal/Sembolik Gösterim

ls -l çıktısındaki ilk 10 karakter:

d rwx r-x r--
│ ││  ││  ││
│ ││  ││  │└─ Others: r (okuma)
│ ││  ││  └── Others: - (yazma yok)
│ ││  │└─── Others: - (çalıştırma yok)
│ ││  ──── Group: r
│ │────── Group: x
│ ─────── Owner: w
───────── Dosya tipi (d=dizin, -=dosya, l=link)

Oktal Matematik:

  • r=4, w=2, x=1
  • 7 = 4+2+1 (rwx)
  • 6 = 4+2 (rw-)
  • 5 = 4+1 (r-x)
  • 4 = 4 (r--)

Adım 11: chmod, chown ve umask Pratikleri

chmod 755 script.sh      # Sahip: tam, Grup/Diğerleri: oku+çalıştır
chmod u+x dosya          # Sembolik: sadece sahibe çalıştırma ekle
chmod g-w, o-r dosya     # Gruptan yazma, diğerlerinden okuma al
chown serif:developer proje/  # Sahip ve grup değiştir
chown -R www-data:www-data /var/www/html  # Recursive web dizini sahipliği

umask Nedir? Yeni oluşturulan dosya/dizinlerin varsayılan izin maskesidir.

  • Varsayılan umask 022 → Dosyalar 644, Dizinler 755 olur.
  • umask 077 → Sadece sahip erişebilir (600/700).

Kritik Uyarı: Web sunucularında 777 izni asla kullanılmamalıdır. Saldırganlar dosya yükleme/kod çalıştırma açığından faydalanır.


📦 Paket Yönetimi ve Yazılım Ekosistemi

Adım 12: APT Depo Mantığı ve Güncelleme Döngüsü

APT (Advanced Package Tool), Debian/Ubuntu ekosisteminin kalbidir. Paketler .deb formatındadır ve bağımlılıklar otomatik çözülür.

sudo apt update        # /etc/apt/sources.list ve sources.list.d'deki depoları sorgular. Paket listesi indirir. Yükleme yapmaz.
sudo apt upgrade -y    # Kurulu paketlerin yeni sürümlerini indirir ve kurar. Çakışma durumunda kurulumu erteleyebilir.
sudo apt full-upgrade  # Bağımlılık çakışmalarını çözmek için paket kaldırma/yükleme yapabilir (dikkatli kullanın)

💡 Fark: update = liste güncelleme, upgrade = paket yükseltme. Her zaman önce update, sonra upgrade.

Adım 13: Paket Kurulumu, Kaldırma ve Bağımlılık Yönetimi

sudo apt install htop curl git    # Paket kur
sudo apt remove htop              # Binary'yi sil, config kalır
sudo apt purge htop               # Binary + config dosyalarını sil
sudo apt autoremove -y            # Artık ihtiyaç duyulmayan bağımlılıkları temizle
apt search "web server"           # Depoda arama
apt show nginx                    # Paket detayları, bağımlılıklar, boyut
dpkg -l | grep nginx              # Kurulu paketleri filtrele

Harici .deb Kurulumu:

wget https://example.com/paket.deb
sudo apt install ./paket.deb   # Bağımlılıkları otomatik çözer (eski yöntem: dpkg -i + apt --fix-broken)

📌 Depo Ekleme: sudo add-apt-repository ppa:ekip/ad komutu /etc/apt/sources.list.d/ altına .list dosyası oluşturur. Güvenilmeyen PPA'lar sistem kararlılığını riske atar.


📊 Sistem İzleme ve Bilgi Toplama

Komut Çıktı Amacı Pratik Kullanım
uname -a Çekirdek, mimari, hostname uname -r (sadece kernel versiyonu)
free -h RAM kullanımı (total, used, free, buff/cache) available sütunu gerçek kullanılabilir belleği gösterir
df -h Disk alanı (mounted filesystems) df -i inode tükenmesini kontrol eder
top / htop Canlı proses izleme htop renkli, fare destekli, filtreleme kolay
journalctl -xe Systemd logları journalctl -u ssh -f (servis logu canlı takip)
ip addr Ağ arayüzleri ve IP'ler ip -4 addr show dev eth0
ss -tuln Dinlenen portlar (netstat alternatifi) ss -tuln | grep :80

💡 Pro İpucu: htop kurulu değilse sudo apt install htop -y ile kurun. F6 ile sort, F4 ile filtre, F9 ile proses sonlandırma yapabilirsiniz.


️ Sık Karşılaşılan Hatalar ve Çözüm Yolları

Hata / Durum Olası Neden Çözüm
Permission denied Yetersiz yetki veya yanlış sahiplik sudo kullanın veya chown/chmod ile düzeltin
Command not found Paket kurulu değil veya PATH dışında sudo apt install <paket> veya which <komut> ile yolu kontrol edin
E: Could not get lock Başka bir apt/dpkg süreci çalışıyor sudo rm /var/lib/apt/lists/lock veya sudo dpkg --configure -a
No space left on device Disk veya inode dolmuş df -h ve df -i kontrol edin. journalctl --vacuum-size=500M ile log temizleyin
sudo: effective uid is not 0 sudoers bozuk veya yetki kaybı Recovery mode'da pkexec visudo veya live USB ile /etc/sudoers düzeltin
Ağ bağlantısı yok DHCP almıyor, DNS çözmüyor ip addr, ping 8.8.8.8, cat /etc/resolv.conf kontrol edin. Netplan yaml'ını doğrulayın

⚠️ Yedekleme Kuralı: Kritik konfigürasyon dosyalarını değiştirmeden önce sudo cp /etc/config /etc/config.bak alın.


📜 Doküman Bilgileri

Özellik Değer
Yazar Serif SELEN
Tarih Mayıs 2026
Versiyon 2.0 (Detaylandırılmış Sürüm)
Platform Ubuntu 24.04 LTS Desktop/Server
Hedef Kitle Sistem yönetimi ve geliştirme kariyerine başlayanlar
Ön Koşul Temel bilgisayar okuryazarlığı, sanal makine kurulumu

📚 Öğrenme Yol Haritası Önerisi

  1. Bu rehberi tamamlayın → 2. Linux Web Yayın ve Dağıtım Rehberi'ne geçin → 3. Docker & CI/CD konularına ilerleyin.

🤝 Katkıda Bulunma

GitHub üzerinden Issues açabilir veya Pull Request ile düzeltme/ekleme gönderebilirsiniz. Tüm katkılar CONTRIBUTING.md kurallarına tabidir.

📧 İletişim: mserifselen@gmail.com
🔗 GitHub: https://github.com/serifselen/
🌐 Blog: https://serifselen.com


Son Güncelleme: Mayıs 2026
Test Ortamı: Ubuntu 24.04 LTS (VMware Workstation Pro 17)

Şerif Selen
YAZAR

Şerif Selen

Sistem ve ağ yönetimi alanında kapsamlı deneyime sahip BT profesyoneli olarak Bilgi İşlem Destek Sorumlusu pozisyonunda, kritik BT sistemlerinin (Data Center, DNS, DHCP, File Server, Firewall) kesintisiz ve güvenli operasyonunu sağlıyorum. BT altyapı projelerinde planlama, yönetim ve iyileştirme süreçlerinde aktif rol alarak kullanıcı deneyimini artırmaya odaklı bir çalışma yürütüyorum. Ağ güvenliği ve proje yönetimi metodolojileri konusundaki bilgi birikimimle, sürekli öğrenmeye açık yaklaşımım sayesinde siber güvenlik, veri merkezi yönetimi ve bulut teknolojileri alanlarında uzmanlaşmayı hedefliyorum.

Yorumlar (0)

Yükleniyor...