Yol haritası

Linux sıfırdan nasıl öğrenilir: ilk komuttan sunucu yönetimine plan

Güncellendi: · Skillaria.Top

Linux'u katman katman öğrenmek en kolayıdır: önce terminal ve dosya sistemi, sonra kullanıcılar ve izinler, Bash betikleri, paketler, süreçler ve systemd, ardından diskler, günlükler, ağ, SSH ve sunucu güvenliği. Her aşamada kendi sanal makinenizde ya da ucuz bir VPS'te uygulama yapmak gerekir; sonuçta hedef, kendi kurduğunuz ve güvenli hâle getirdiğiniz, üzerinde servis çalışan bir sunucudur.

Linux'u sıfırdan öğrenmek göründüğünden daha kolaydır; yeter ki doğru sırayla gidin ve hemen uygulama yapın. Yeni başlayanların en büyük hatası, komutları yazmadan okumak ya da süreçleri ve izinleri anlamadan Docker ve Kubernetes'e atlamaktır. Aşağıda dokuz aşamalık bir plan var: ne öğrenileceği, neyin uygulanacağı ve aşamanın tamamlandığının nasıl anlaşılacağı.

Süre için kabaca: günde bir saat çalışmayla iki ila dört ay, ama tempo herkeste farklıdır. Önemli olan hız değil, her aşamadan sonra elinizle bir şey yapabilmenizdir.

Aşama 0. Ortamınızı hazırlayın

Linux, Linux üzerinde öğrenilir. Basitten gerçekçiye seçenekler:

  • Windows'ta WSL2 — birkaç dakikada bir Ubuntu terminali. Komutlar ve betikler için iyidir, ama systemd ve ağ orada sunucu gibi davranmaz.
  • Sanal makine (VirtualBox, VMware, Mac'te UTM) içinde Ubuntu Server veya Debian. Sonuçsuz bir şekilde bozabilir ve anlık görüntülerle geri dönebilirsiniz.
  • Ucuz bir VPS bir bulut sağlayıcısından. Genel IP'li gerçek bir sunucu, ağ ve güvenlik aşamaları için en iyi alandır.

Başlangıç için dağıtım Ubuntu Server veya Debian'dır: bunlar için en çok belge ve yanıt bulunur. Grafik arayüze gerek yoktur: sunucular terminalden yönetilir, bu alışkanlığı ilk günden edinin.

Aşama 1. Terminal ve dosya sistemi

Hedef: sistemde fareye ihtiyaç duymadan emin adımlarla gezinmek ve dosyalar üzerinde çalışmak.

  • Gezinme: pwd, ls -la, cd, mutlak ve göreli yollar, ~, . ve ...
  • Dosyalar: cp, mv, rm, mkdir -p, touch, görüntüleme için cat, less, head, tail -f.
  • Arama: find, which, locate.
  • Yardım: man, --help. man sayfalarını okumak, bütün kariyerinizde karşılığını verecek bir beceridir.
  • Dizin yapısı: /etc, /var/log, /home, /usr, /proc, /dev içinde ne var; bağlama ve inode nedir.
  • Terminal editörü: başlangıçta nano, sonra neredeyse her sunucuda bulunan vim'in temel komutları.

Uygulama: /etc içinde son bir haftada değişen tüm .conf dosyalarını bulun (find /etc -name "*.conf" -mtime -7). /etc/os-release dosyasını açıp sistem sürümünü öğrenin. /var/log içinde sistemin ne yazdığına bakın.

Aşama 2. Kullanıcılar, gruplar ve izinler

İzinler Linux güvenliğinin temelidir ve «Permission denied» hatalarının yarısının kaynağıdır.

  • ls -l çıktısını okumak: tür, izinler, sahip, grup.
  • chmod sembolik ve sayısal biçimde, chown, umask.
  • Özel bitler: SUID, SGID, sticky bit — ve neden /tmp herkese yazılabilirken başkalarının dosyalarının silinemediği.
  • Kullanıcılar ve gruplar: useradd, usermod -aG, passwd, /etc/passwd, /etc/shadow, /etc/group dosyaları.
  • sudo, sudoers kuralları ve visudo ile düzenleme.

Uygulama: iki kullanıcı ve ortak bir proje dizini oluşturun; ikisi de dosya oluşturabilsin, diğerleri hiçbir şey görmesin. İpucu: bir grup, chmod 2770 ve grup mirası için SGID.

Aşama 3. Bash ve metin araçları

Yönetimin büyük kısmı metin işlemedir: günlükler, yapılandırmalar, komut çıktıları. Bu aşamada terminal, komutlar yığınından bir araca dönüşür.

  • Yönlendirme ve borular: >, >>, 2>&1, |, xargs.
  • Süzgeçler: grep (düzenli ifadelerle), sort, uniq -c, wc, cut, sed, awk.
  • Konsoldan JSON ve HTTP: curl ve jq.
  • Betikler: shebang, değişkenler, tırnaklar, if ve [[ ]], döngüler, fonksiyonlar, çıkış kodları, set -euo pipefail.

Uygulama: web sunucusu günlüğündeki en çok istek gönderen on IP adresini tek satırda sayın:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Ardından bir dizini, adında tarih olan bir arşive dönüştüren, yedi günden eski arşivleri silen ve hata olduğunda sıfırdan farklı kod dönen bir yedekleme betiği yazın.

Aşama 4. Paketler, ortam ve zamanlayıcı

  • Paket yöneticisi: apt update, apt install, apt remove, apt search, dpkg -l. RHEL türevlerinde dnf. Depo nedir ve paket imzası anahtarları neden gerekir, bunu anlayın.
  • Ortam değişkenleri: env, export, PATH, ~/.bashrc, ~/.profile, /etc/environment dosyaları ve hangisinin ne zaman okunduğu.
  • Zamanlama: crontab -e, beş alanlı sözdizimi ve neden terminalde çalışan bir komutun cron'da «çalışmadığı» (farklı ortam ve PATH).

Uygulama: depodan nginx kurun, betik dizininizi PATH'e ekleyin ve 3. aşamadaki yedekleme betiğini her gece cron ile, çıktısını bir günlüğe yazarak çalıştırın.

Aşama 5. Süreçler ve systemd

Burada sistemde gerçekte neler olduğunu anlamaya başlarsınız.

  • Süreçler: ps aux, top/htop, PID ve PPID, durumlar, öncelikler (nice), sinyaller ve kill.
  • Yük: load average, bellek ve swap (free -h), «D durumundaki süreç» ne demek.
  • Hata ayıklama: lsof — süreç hangi dosyaları ve portları açmış; strace — hangi sistem çağrılarını yapıyor ve nerede takıldı.
  • systemd: birimler, systemctl status/start/enable, Restart=on-failure içeren kendi unit dosyanız, cron yerine zamanlayıcılar.
  • Günlükler: journalctl -u, -f, -b, -p err, rotasyon, rsyslog; sysstat ile performans istatistikleri (sar, iostat).

Uygulama: küçük bir uygulamayı (en azından python3 -m http.server) ayrı bir kullanıcıyla systemd servisi yapın, kill -9 ile öldürün ve systemd'nin onu yeniden kaldırdığını görün. Günlükte yeniden başlatma kaydını bulun.

Aşama 6. Diskler, LVM ve RAID

  • Aygıtlar ve bölümler: lsblk, blkid, fdisk veya parted, dosya sistemleri ext4 ve XFS, mkfs.
  • Bağlama: mount, UUID ile /etc/fstab, mount -a ile kontrol.
  • Yer: df -h, df -i, du -sh, diski dolduranı bulmak.
  • LVM: fiziksel birimler, birim grupları, mantıksal birimler ve bölümü durdurmadan büyütme.
  • mdadm ile yazılım RAID'i — 0, 1, 5, 10 seviyelerini anlamak ve RAID'in yedek olmadığını bilmek.

Uygulama: sanal makineye iki disk ekleyin, üzerinde LVM kurun, bir birim oluşturun, fstab ile bağlayın ve sonra lvextend -r ile büyütün.

Aşama 7. Ağ

  • Teşhis için yeterli düzeyde TCP/IP modeli: IP, maske, ağ geçidi, port, TCP ve UDP.
  • Komutlar: ip a, ip r, ss -tlnp, ping, traceroute/mtr, curl -v, nc.
  • DNS: çözümlemenin nasıl çalıştığı, /etc/hosts, /etc/resolv.conf, dig, resolvectl.
  • Dağıtımınızda ağ ayarları (Ubuntu'da netplan, diğerlerinde NetworkManager).
  • Trafik yakalama: her şey başarısız olduğunda tcpdump.

Uygulama: sunucunuzdaki her açık portu hangi sürecin dinlediğini bulun. 127.0.0.1'de dinleyen bir servisin neden dışarıdan erişilemediğini anlayın ve düzeltin.

Aşama 8. Uzaktan çalışma: SSH ve dosya aktarımı

  • SSH: anahtarlar (ssh-keygen -t ed25519, ssh-copy-id), ~/.ssh/config dosyası, ssh-agent, port yönlendirme (ssh -L), ProxyJump ile bastion.
  • Kopyalama: scp ve rsync -avz --delete — senkronizasyon için rsync neden daha iyi.
  • Ağ dosya sistemleri: Linux sunucular arasında NFS, Windows ile paylaşım için SMB (Samba).

Uygulama: VPS'e yalnızca anahtarla giriş ayarlayın, bunu ~/.ssh/config içinde kısa bir adla tanımlayın ve bir dizinin günlük senkronizasyonunu rsync ile kurun.

Aşama 9. Sunucu güvenliği

  • Güvenlik duvarı: «izin verilmeyen her şey yasak» ilkesi; basit durumlar için ufw, perde arkasını anlamak için nftables.
  • fail2ban: birkaç başarısız girişten sonra IP'yi engeller; kontrol fail2ban-client status sshd ile.
  • sshd ayarları: parola ve root girişini kapatmak.
  • Güvenlik güncellemeleri ve bunların otomatik kurulumu (Debian ve Ubuntu'da unattended-upgrades).
  • GPG: paket ve dosya imzalarını doğrulamak, yedeklerin şifrelenmesi.

Uygulama: güvenlik duvarında yalnızca 22, 80 ve 443'ü açın, fail2ban'i etkinleştirin ve bir gün sonra durumuna bakarak kaç adresin şimdiden engellendiğini görün.

Son proje: sunucuyu baştan sona kurun

Linux'u gerçekten öğrendiğinizi kanıtlamanın en iyi yolu, hiçbir ipucu olmadan sıfırdan bir sunucu kurmaktır:

  1. Yeni bir VPS, sudo yetkili kendi kullanıcınız, SSH anahtarıyla giriş, parola ve root kapalı.
  2. Güvenlik duvarı ve fail2ban, otomatik güvenlik güncellemeleri.
  3. Web sunucusu ve uygulama, otomatik yeniden başlatmalı systemd servisi olarak.
  4. Veri için ayrı bir disk veya birim, fstab ile bağlı.
  5. Başka bir makineye rsync ile zamanlanmış yedekleme (cron veya systemd zamanlayıcısı), günlük ve geri yükleme kontrolüyle.
  6. Kısa bir talimat: tüm bunları baştan nasıl kuracağınız.

Bu listeyi tamamlayıp her adımı açıklayabiliyorsanız, sistem yöneticisi ya da DevOps mühendisi olarak çalışmak için temeliniz vardır. Bundan sonrası konteynerler, yapılandırma otomasyonu ve izlemedir.

Daha verimli öğrenmek için

  • Komutları kendiniz yazın. Makaleden kopyalananlar akılda kalmaz; yazmak ve hata yapmak akılda kalır.
  • Bozun ve onarın. Sanal makinede fstab'ı ya da ~/.ssh izinlerini bozup sistemi geri getirin. Bu deneyim mülakatlarda çok değerlidir.
  • Notlarınızı tutun. Kendi komut ve örnek defteriniz, başkasının kopya kâğıdından daha çok işe yarar.
  • Günlükleri okuyun. Linux'taki neredeyse her sorunu günlük açıklar; ilk bakacağınız yer orası olsun.

Sonuç

Linux sıfırdan nasıl öğrenilir sorusunun cevabı: katman katman ilerlemek — terminal ve dosyalar, izinler, Bash, paketler, süreçler ve systemd, diskler, ağ, SSH, güvenlik — ve her aşamada kendi ortamınızda pratik bir görevi çözmek. Nihai hedef, üzerinde servis çalışan bir sunucuyu kendiniz kurmak ve güvenli hâle getirmektir. Kursumuz da tam bu yolu izliyor: tanıtım dersinden son projeye kadar.

Sık sorulan sorular

Linux'u sıfırdan öğrenmek ne kadar sürer?

Günde yaklaşık bir saatlik pratikle, sunucuyla çalışmanın temeli genellikle birkaç ayda oluşur. Özgüven gerçek görevlerden gelir; bu yüzden toplam saatten çok düzenli çalışmak önemlidir.

Linux öğrenmek için programlama bilmek gerekir mi?

Hayır, bilmeden de başlanabilir. Ama Bash betikleri aşamasına geldiğinizde zaten programlamaya başlamış olursunuz ve bu beceriler otomasyonda işinize yarar.

Linux'u Windows'ta öğrenebilir miyim?

Evet, WSL2 veya sanal makine ile. systemd, diskler ve ağ konuları için tam bir sanal makine ya da VPS daha uygundur.

Linux'u bilgisayarımın ana sistemi yapmalı mıyım?

Faydalıdır ama zorunlu değildir. Yönetim için grafik masaüstü kullanmaktan çok, sunucu Linux'unu terminalden çalıştırabilmek önemlidir.

Yeni başlayan biri hangi dağıtımı seçmeli?

Ubuntu Server veya Debian: belgeleri çok, becerileri başka dağıtımlara kolayca taşınır. RHEL türevlerinin temel farkı dnf paket yöneticisidir.

Bu konuyu videoyla öğrenin

Bu konu “Linux: с нуля до уверенного администрирования” kursunda uygulamalı olarak ayrıntılı işleniyor.

Kursa git