Rehber Linux'un Kitabını Yazıyoruz: 101 | Başlangıçtan Ustalığa Komutlar ve Sistem Yönetimi!


LINUX'UN KİTABINI YAZIYORUZ: BAŞLANGIÇTAN USTALIĞA
"Linux Bilmeyeni Dövüyorlar Bu Piyasada"





İÇİNDEKİLER

  • Giriş: Neden Linux be Abi?
  • Bölüm 1: Olayın Mantığı ve Felsefesi
  • Bölüm 2: Terminal ve Kabuk (Shell)
  • Bölüm 3: Dosya ve Dizin İşlemleri
  • Bölüm 4: Metin İşleme (Sihirbazlık)
  • Bölüm 5: Kullanıcı ve Grup İşleri
  • Bölüm 6: İzinler ve Tapu İşleri
  • Bölüm 7: Süreçler (Processes)
  • Bölüm 8: Disk ve Depolama
  • Bölüm 9: Ağ İşleri (Network)
  • Bölüm 10: Paket Yükleme (Market)
  • Bölüm 11: Log Yönetimi
  • Bölüm 12: Otomasyon (Cron)
  • Bölüm 13: Yedekleme
  • Bölüm 14: Performans İzleme
  • Bölüm 15: Güvenlik Temelleri
  • Bölüm 16: Bash Scripting (Kodlama)
  • Bölüm 17: Konteynerler ve Docker
  • Bölüm 19: Sorun Giderme
  • Sonuç




Giriş: Neden Linux be Abi?

1765043915564.png

Şunu net bir şekilde söyleyebilirim ki Linux öğrenmek, şu bilgisayar aleminde kendine yapabileceğin en büyük kıyaklardan biri. Bugün internetin belkemiği, sunucuların alayı Linux'ta. Cebindeki Android telefonun kalbinde Linux atıyor, dünyanın en hızlı süper bilgisayarlarının tamamı Linux kullanıyor. Siber güvenlikçi mi olacaksın, sistemci mi, yoksa DevOps'çu mu? Hiç fark etmez babacım, Linux bilmeyeni dövüyorlar bu piyasada.

Bu rehberi hazırlarken kendime şunu sordum: "Hiçbir şey bilmeyen bir kardeşimizi alıp, nasıl bu işin piri yaparız?" Amacım sana kuru kuru komut ezberletmek değil; komutun arkasındaki mantığı, işlerin nasıl döndüğünü ve başın sıkışınca ne yapacağını anlatmak. Bu rehber hazırlanırken gerçekten ciddi emekler verildi, neyse hazırsan başlıyoruz.




Bölüm 1: Olayın Mantığı ve Felsefesi

1.1 Linux Nedir, Unix Nedir?


Agacım Linux dediğin aslında bir işletim sistemi çekirdeği kernel. Yani işin motoru. 1991'de Linus Torvalds diye Finlandiyalı bir öğrenci abimiz tarafından yazılıyor. Adam Unix gibi bir şey istiyor ama o zamanlar Unix lisansları ateş pahası. "Kendi göbeğimi kendim keserim arkadaş" diyor, çekirdeği yazıp açık kaynak olarak salıyor piyasaya.

Unix ise ta 1969'da Bell Labs'taki efsane abiler Ken Thompson, Dennis Ritchie tarafından yapılmıştı. Linux da babası Unix'in felsefesini aldı:

  • Her şey bir dosyadır: Hard diskmiş, klavyeymiş, internet bağlantısıymış... Linux bunların hepsini dosya gibi görür, ona göre muamele eder.
  • Küçük olsun, işlevsel olsun: Dev gibi hantal programlar yerine, tek bir işi mükemmel yapan ufak programları birleştirip voltran oluşturursun.
  • Metin candır: Programlar birbiriyle düz metin üzerinden anlaşır, bu da işleri birbirine bağlamayı çocuk oyuncağı yapar.

1.2 Dağıtımlar

Şimdi bu Linux çekirdeğinin üstüne, paket yöneticisiydi, masaüstüydü falan ekleyip paketliyorlar, buna dağıtım yani distro diyoruz. En popülerleri şunlar:

  • Debian Ailesi:
    • Debian: Kaya gibi sağlamdır, sunucularda çok sevilir.
    • Ubuntu: Debian'ın insan için olanı. Kullanımı kolay, hem masaüstünde hem sunucuda gideri var.
    • Linux Mint: Windows'tan kaçıp gelenler için cennet, alışması çok kolay.
    • Kali Linux: Hacker abilerin tercihi. Güvenlik testleri için ağzına kadar toolla dolu.
  • Red Hat Ailesi:
    • RHEL: Kurumsalın kralı. Paralıdır, desteği vardır, şirketler bayılır.
    • CentOS / Rocky / AlmaLinux: RHEL'in bedava versiyonları. Aynısının tıpkısıdır, sunucularda çok kullanılır.
    • Fedora: Yeniliklerin denendiği laboratuvar. En güncel teknolojiler önce buna gelir.
  • Diğerleri:
    • Arch Linux: Minimalisttir, her şeyi tek tek sen kurarsın. "Ben bu işi öğreneceğim" diyorsan birebirdir ama terletir ayıktırayım :d.
    • openSUSE: Avrupalıların göz bebeği, YaST diye güzel bir yönetim aracı var.
    • Gentoo: Mazoşist işi birader. Her şeyi kaynak koddan derlersin, performans manyakları sever.

1.3 Dosya Sistemi Hiyerarşisi
1765044016907.png

Linux'ta her şeyin bir yeri yurdu bellidir. Windows'taki gibi C:, D: falan yok. Tek bir kök (/) var, her şey onun altında dallanır:

Kod:
/
├── bin/   → En temel komutlar burada (ls, cp, mv, cat falan)
├── sbin/  → Yönetici komutları (fdisk, iptables gibi "yetki" isteyenler)
├── etc/   → Ayarların kalbi (tüm config dosyaları burada yatar)
├── home/  → Senin, benim evimiz (kullanıcı dosyaları: /home/ahmet)
├── root/  → Büyük patronun (root) ev dizini
├── var/   → Sürekli değişenler (loglar, mailler, veritabanları)
├── tmp/   → Çöplük (geçici dosyalar, reset atınca silinir)
├── usr/   → Kullanıcı programları ve kütüphaneler
│   ├── bin/ → Senin kurduğun programlar genelde buraya düşer
│   └── local/ → Elle derleyip kurdukların
├── opt/   → Dışarıdan gelen paket programlar
├── dev/   → Donanımlar (disk, usb, terminal hepsi dosya demiştim ya, hah işte burada)
├── proc/  → Sistemin röntgeni (çalışan süreçler, RAM bilgisi vs.)
├── mnt/   → Geçici disk bağlama noktası
├── media/ → USB takınca otomatik buraya gelir
├── boot/  → Açılış dosyaları (kernel, grub)
└── srv/   → Sunucu verileri (web sitesi dosyaları falan)

Bunu ezberlemeye kasma, kullandıkça elin alışır. Ayar yapacaksan /etc'ye, log bakacaksan /var/log'a gidersin, bitti gitti.




Bölüm 2: Terminal ve Kabuk (Shell)

2.1 Shell (Kabuk) Nedir?

1765044126383.png

Shell, seninle Linux çekirdeği arasındaki tercüman. Sen komutu yazarsın, o çekirdeğe iletir, cevabı sana getirir. Bash, Zsh, Fish gibi türleri var.

Hangi shell'deyim diye merak edersen:
Kod:
echo $SHELL

2.2 Terminal Kısayolları (Hayat Kurtarır)

Bak bunları öğrenirsen klavyede şov yaparsın:

  • Ctrl + C: Çalışan komutu iptal et (imdat freni)
  • Ctrl + L: Ekranı temizle
  • Ctrl + A / Ctrl + E: Satır başına / sonuna git
  • Ctrl + R: Geçmişte arama yap
  • Tab: Otomatik tamamlama (En önemlisi bu!)

2.3 Komut Yapısı
Olayı şu: komut [seçenekler] [argümanlar]

Örnek:
Kod:
ls -la /home/ahmet
(ls: komut, -la: seçenekler, /home/ahmet: argüman)

2.4 Yardım Alma (RTFM)

Takıldın mı? Hemen yardım çağır:

Kod:
man ls      # Manuel sayfası (kullanma kılavuzu, biraz uzundur)
ls --help   # Hızlı yardım (özet geçer)
whatis ls   # Bu komut ne işe yarar tek cümleyle söyle
which python # Bu programın dosyası nerede?




Bölüm 3: Dosya ve Dizin İşlemleri

3.1 Gezinti (Navigasyon)


Kod:
pwd             # Neredeyim ben? (Yolu gösterir)
cd /var/log     # Işınla beni Scotty (Dizine git)
cd ..           # Bir üst kata çık
cd ~            # Evime dön (Home dizini)
cd -            # Bir önceki olduğun yere geri dön (çok pratiktir)
ls              # Ne var ne yok dökülün
ls -lah         # Detaylı, gizlileri göster, boyutları insan gibi (MB, GB) yaz
tree            # Dizinleri ağaç gibi dallı budaklı göster

3.2 Oluşturma

Kod:
mkdir projeler          # Klasör aç
mkdir -p a/b/c          # İç içe klasör aç
touch not.txt           # Boş dosya oluştur (veya tarihini güncelle)
echo "Selam" > not.txt  # Dosyaya yazı yaz (eskisini siler!)
echo "Naber" >> not.txt # Dosyanın altına ekle (eskisine dokunmaz)

3.3 Kopyala, Taşı, Yok Et

Kod:
cp dosya.txt kopya.txt  # Kopyala
cp -r klasör/ yeni_yer/ # Klasörü içindekilerle kopyala
mv dosya.txt yeni.txt   # İsim değiştir (aslında olduğu yerde taşımaktır)
mv dosya.txt /tmp/      # Başka yere taşı
rm dosya.txt            # Sil (Geri dönüşüm kutusu YOKTUR, dikkat!)
rm -r klasör/           # Klasörü sil
rm -rf klasör/          # Klasörü ve içindeki her şeyi sorusuz sualsiz sil (Aman diyim, elin titresin bunu yazarken!)

3.4 İçeriğe Bakma

Kod:
cat dosya.txt       # Hepsini ekrana bas
less dosya.txt      # Sayfa sayfa oku (en temizi budur, 'q' ile çıkarsın)
head dosya.txt      # Sadece başını göster (ilk 10 satır)
tail dosya.txt      # Sadece kuyruğunu göster (son 10 satır)
tail -f log.txt     # Log dosyasını canlı takip et (log akarken izlemek için birebir)

3.5 Bağlantılar (Linkler)

Windows'taki kısayol mantığı gibi düşün:
Kod:
ln -s hedef_dosya kisayol # Soft link (Kısayol oluşturur)

3.6 Arama Tarama

Kod:
find /home -name "*.txt"      # İsme göre dosya bul
find /var -size +100M         # 100MB'dan büyük dosyaları bul (disk dolunca lazım olur)
locate dosya.txt              # Veritabanından hızlıca bul




Bölüm 4: Metin İşleme (Sihirbazlık)

Logları didiklerken bu komutlar senin elin ayağın olacak.

4.1 grep (Samanlıkta İğne Arama)

Kod:
grep "hata" log.txt          # İçinde "hata" geçen satırları getir
grep -i "hata" log.txt       # Büyük küçük harf takılma
grep -r "config" /etc/       # Klasörün içindeki tüm dosyalarda ara
grep -v "info" log.txt       # İçinde "info" geçenleri GETİRME (filtrele)

4.2 sed (Metin Cerrahı)

Kod:
sed 's/eski/yeni/g' dosya.txt  # Dosyadaki "eski" kelimelerini "yeni" yap (ekrana basar)
sed -i 's/eski/yeni/g' dosya.txt # Dosyanın içinde kalıcı değişiklik yap

4.3 awk (İsviçre Çakısı)

Sütun sütun veri işlemek için kraldır:
Kod:
awk '{print $1}' dosya.txt     # Sadece 1. sütunu yazdır
awk '{print $1, $3}' dosya.txt # 1. ve 3. sütunu yazdır

4.4 Diğer Oyuncaklar

Kod:
sort dosya.txt      # Sırala
uniq dosya.txt      # Tekrarlayanları temizle (önce sort lazım!)
wc -l dosya.txt     # Kaç satır var say
cut -d":" -f1 /etc/passwd # Dosyayı böl ve parçayı al
history | grep "docker"   # Geçmişte yazdığım docker komutunu bul

4.5 Pipe (|) ve Yönlendirme

Linux'un en büyük numarası budur. Bir komutun çıktısını al, diğerine ver:

Kod:
ls -la | grep ".txt"          # Listele VE txt olanları süz
cat log.txt | grep "Error" | wc -l  # Hataları bul VE say
komut > dosya.txt             # Çıktıyı dosyaya yaz (eskisini siler)
komut >> dosya.txt            # Çıktıyı dosyanın sonuna ekle




Bölüm 5: Kullanıcı ve Grup İşleri

5.1 Kullanıcılar


Herkesin bir kimliği (UID) ve grubu (GID) vardır. Bilgiler /etc/passwd dosyasında yatar.

5.2 Kullanıcı Yönetimi

Kod:
sudo useradd -m ahmet    # Ahmet diye kullanıcı aç, evini de yap
sudo passwd ahmet        # Ahmet'e şifre ver
sudo userdel -r ahmet    # Ahmet'i sil, evini de başına yık
whoami                   # Ben kimim lan?
id                       # Kimlik bilgilerimi dök

5.3 Gruplar

Kod:
sudo groupadd yazilimcilar       # Grup kur
sudo usermod -aG yazilimcilar ahmet # Ahmet'i gruba ekle (-aG önemli, yoksa diğer gruplardan atılır!)

5.4 Root Olmak (Sudo)

Kod:
sudo komut      # Komutu patron (root) yetkisiyle çalıştır
su -            # Komple root kullanıcısına geç (şifre ister)
sudo -i         # Root terminaline geç




Bölüm 6: İzinler ve Tapu İşleri (Permissions)
1765044214618.png

6.1 İzin Sistemi (rwx)

Dosyalarda 3 hak vardır: r (oku), w (yaz), x (çalıştır).
Ve 3 muhatap vardır: u (sahibi), g (grubu), o (diğerleri).

6.2 chmod (İzin Ayarı)

Kod:
chmod +x script.sh       # Çalıştırma izni ver (herkese)
chmod u+w dosya.txt      # Sahibine yazma izni ver
chmod 755 dosya.txt      # Sayısal mod (Sahip full, diğerleri okur/çalıştırır)
chmod 777 dosya.txt      # Herkese her izni ver (Güvenlik açığıdır, yapma yanarsın!)
chmod 600 key.pem        # Sadece ben okuyup yazayım (SSH anahtarları için şart)

6.3 chown (Tapu Devri)

Kod:
sudo chown ahmet dosya.txt       # Dosyanın sahibi artık Ahmet
sudo chown ahmet:yazilimcilar dosya.txt # Sahibi Ahmet, grubu Yazılımcılar
sudo chown -R ahmet klasor/      # Klasörün içindeki her şeyi Ahmet'e ver




Bölüm 7: Süreçler (Processes)

7.1 Ne Dönüyor Arkada?


Kod:
ps aux              # Tüm çalışan süreçleri dök
top                 # Görev yöneticisi (canlı takip)
htop                # Top'un daha renklisi, daha yakışıklısı (kurman gerekebilir)
pgrep nginx         # Nginx'in PID numarasını bul

7.2 Durdur, Öldür, Yok Et

Kod:
kill 1234           # 1234 numaralı sürece "kapan" sinyali gönder (nazikçe)
kill -9 1234        # Naziklik bitti, kafasına sık (zorla kapat)
killall firefox     # Tüm firefox süreçlerini temizle

7.3 Systemd (Servislerin Efendisi)

Servisleri (arkada çalışan programları) buradan yönetiriz:

Kod:
sudo systemctl start nginx      # Başlat
sudo systemctl stop nginx       # Durdur
sudo systemctl restart nginx    # Kapat aç (en sık kullanılan)
sudo systemctl status nginx     # Durum ne? Çalışıyor mu?
sudo systemctl enable nginx     # Bilgisayar açılınca otomatik başlasın




Bölüm 8: Disk ve Depolama

8.1 Disk Durumu


Kod:
df -h               # Disklerde ne kadar yer var? (İnsan okunabilir formatta)
du -sh klasor/      # Bu klasör kaç GB yer kaplıyor?
lsblk               # Takılı diskleri ve bölümleri göster

8.2 Format ve Bağlama

Kod:
sudo mkfs.ext4 /dev/sdb1  # Diski ext4 formatına çevir (dikkat, veri gider!)
sudo mount /dev/sdb1 /mnt # Diski sisteme bağla (mount et)
sudo umount /mnt          # Diski çıkar
Not: Kalıcı olsun istersen /etc/fstab dosyasına yazman lazım.




Bölüm 9: Ağ İşleri (Network)

9.1 Bağlantı Kontrolü


Kod:
ip addr             # IP adresim ne? (ifconfig eskide kaldı)
ping google.com     # İnternet var mı? Karşı taraf cevap veriyor mu?
ss -tuln            # Hangi portlar açık, kim dinliyor?

9.2 SSH (Uzaktan Bağlanma)

Kod:
ssh ahmet@192.168.1.5       # Sunucuya bağlan
ssh -p 2222 ahmet@sunucu    # Farklı porttan bağlan
scp dosya.txt ahmet@sunucu:/tmp # Dosyayı sunucuya fırlat

9.3 Güvenlik Duvarı (Firewall)

Ubuntu'da UFW (Uncomplicated Firewall) çok basittir:

Kod:
sudo ufw allow 22       # SSH'a izin ver
sudo ufw allow 80       # Web sitesine izin ver
sudo ufw enable         # Duvarı aktifleştir
sudo ufw status         # Durumu göster




Bölüm 10: Paket Yükleme (Market)

10.1 Debian/Ubuntu (apt)


Kod:
sudo apt update         # Market listesini güncelle (önce bunu yap!)
sudo apt upgrade        # Kurulu programları güncelle
sudo apt install nginx  # Nginx kur
sudo apt remove nginx   # Nginx kaldır

10.2 CentOS/RHEL (dnf/yum)

Kod:
sudo dnf install nginx  # Kur
sudo dnf update         # Güncelle




Bölüm 11: Log Yönetimi (Kara Kutu)

Bir şey bozulduysa ilk bakacağın yer burasıdır.
  • /var/log/syslog veya /var/log/messages: Sistemin genel dertleri burada.
  • /var/log/auth.log: Kim girdi, kim şifreyi yanlış yazdı?
  • /var/log/nginx/access.log: Web sitesine kimler geldi?

Kod:
tail -f /var/log/syslog   # Logu canlı izle
journalctl -u nginx       # Nginx servisinin loglarına bak
journalctl -xe            # Son hataları detaylı dök




Bölüm 12: Otomasyon (Cron)

Belirli zamanlarda iş yaptırmak için Cron kullanılır.

Kod:
crontab -e      # Zamanlama dosyasını aç

Formatı şöyledir: * * * * * komut (Dakika - Saat - Gün - Ay - Haftanın Günü)

Örnek (Her gece 03:00'te yedek al):
Kod:
0 3 * * * /home/ahmet/yedek_al.sh




Bölüm 13: Yedekleme

13.1 tar (Bohçalama)


Kod:
tar -cvf yedek.tar dosyalar/      # Arşivle
tar -xvf yedek.tar                # Arşivi aç
tar -czvf yedek.tar.gz dosyalar/  # Hem arşivle hem sıkıştır (gzip)

13.2 rsync (Akıllı Kopyalama)

Sadece değişen dosyaları kopyalar, cankurtarandır.

Kod:
rsync -avz kaynak/ hedef/         # Senkronize et
rsync -avz kaynak/ user@sunucu:/hedef/ # Sunucuya yedekle




Bölüm 14: Performans İzleme

Sistem neden yavaşladı?
  • top / htop: İşlemciyi, RAM'i kim yiyor?
  • free -h: RAM durumu ne?
  • iostat: Disk yazma hızı ne alemde?
  • uptime: Makine ne kadar süredir açık, yük durumu (load average) ne?




Bölüm 15: Güvenlik Temelleri

  • Root ile bağlanma: SSH ayarlarından root girişini kapat.
  • Şifre kullanma: SSH anahtarı (key pair) kullan, şifreyi kapat.
  • Fail2ban: Şifreyi 3 kere yanlış gireni engelle.
  • Güncelle: apt update && apt upgrade yapmayı unutma.




Bölüm 16: Bash Scripting (Kodlama)

Tekrarlayan işleri otomatiğe bağlamak için script yazarız.

Örnek Script (selam.sh):
Kod:
#!/bin/bash
ISIM="Ahmet"
echo "Selam $ISIM, bugün nasılsın?"
if [ -f "/etc/passwd" ]; then
    echo "Dosya yerinde duruyor."
fi

Çalıştırmak için:
Kod:
chmod +x selam.sh
./selam.sh




Bölüm 17: Konteynerler ve Docker
1765044293620.png

Sanal makine eskidi, artık Docker var.

Kod:
docker run hello-world      # Test et
docker ps                   # Çalışan konteynerlar
docker images               # İndirilmiş imajlar
docker-compose up -d        # Tüm sistemi ayağa kaldır (compose dosyasıyla)




Bölüm 19: Sorun Giderme (Troubleshooting)

Panik yapma, şu sırayı takip et:
1. Sorun ne? Tam olarak ne çalışmıyor?
2. Loglar ne diyor? /var/log'a veya journalctl'e bak.
3. Kaynaklar ne durumda? Disk mi doldu (df -h), RAM mi bitti (free -h)?
4. Servis ayakta mı? systemctl status xxx.
5. Ağ var mı? ping, curl.




Sonuç

1765044389856.png

Aga bu rehber sana Linux'un kapısını açar ama içeri girip gezmek sana kalmış.
Linux öğrenmenin en iyi yolu bozmaktır. Kur sanal makineyi, dene, boz, patlat, sonra düzeltmeye çalış. Man sayfalarını okumaktan korkma. Script yaz, işlerini otomatiğe bağla.
Linux dünyasına hoş geldin dostum.
"Laf kalabalığı yapma, bana kodu göster." - Linus Durden

Bir sonraki Linux Rehberi sizce ne olsun arkadaşlar?
 
Son düzenleyen: Moderatör:
Çok güzel olmuş bravo. Elinize sağlık.
 
Linux kullanmanın tek sıkıntılı noktası bağımlı olmak. Özellikle Windows kullanmak zorunda kalıyorsanız.
 
Linux kullanmanın tek sıkıntılı noktası bağımlı olmak. Özellikle Windows kullanmak zorunda kalıyorsanız.
Kesinlikle. Attan inip eşeğe binmek tabiri tam buraya uyuyor. Linux'un o akıcılığına ve pratikliğine alıştıktan sonra Windows insana ayağında prangayla koşuyormuş hissi veriyor. O yüzden dual-boot candır, kaçış kapımız hep açık olsun. :)
 
Kesinlikle. Attan inip eşeğe binmek tabiri tam buraya uyuyor. Linux'un o akıcılığına ve pratikliğine alıştıktan sonra Windows insana ayağında prangayla koşuyormuş hissi veriyor. O yüzden dual-boot candır, kaçış kapımız hep açık olsun. :)
Keşke Dual'a gerek kalmasa işte hocam...
 

Bu konuyu görüntüleyen kullanıcılar

  • Technopat Haberler

    Geri
    Yukarı