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
- Terminal ve Kabuk (Shell) Temelleri
- Dosya Sistemi Hiyerarşisi ve Navigasyon
- Dosya ve Metin İşlemleri
- Kullanıcı, Grup ve Yetki Yönetimi
- Dosya İzinleri ve Sahiplik
- Paket Yönetimi ve Yazılım Ekosistemi
- Sistem İzleme ve Bilgi Toplama
- Sık Karşılaşılan Hatalar ve Çözüm Yolları
- Doküman Bilgileri
🔰 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 |
| Ağ | 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ı:
mansayfaları İngilizcedir. Türkçe destek içinLANG=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:
/homedizini kullanıcıya aittir./etcveya/varaltında değişiklik yaparkensudogerekir 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. (./belgelerveya../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 -file Apache/Nginx loglarını izlerken hata anında terminalde canlı akış görürsünüz.Ctrl+Cile çı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 -aGkullanı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ğrudannano /etc/sudoersaçarsanız syntax hatası tüm sudo erişimini kırar.visudokaydetmeden ö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=17 = 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→ Dosyalar644, Dizinler755olur. umask 077→ Sadece sahip erişebilir (600/700).
️ Kritik Uyarı: Web sunucularında
777izni 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 önceupdate, sonraupgrade.
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/adkomutu/etc/apt/sources.list.d/altına.listdosyası 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:
htopkurulu değilsesudo apt install htop -yile 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.bakalı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
- 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)


Yorumlar (0)
Yükleniyor...