0.1 VPS ve Linux Komutları¶
Yabancı kelime mi gördün?
Bu sayfadaki kalın teknik terimler (SSH, shell, systemd gibi) ilk geçişte hemen yanında veya altında Türkçe açıklanır.
Neden bu sayfa?¶
AI servisi = 7/24 çalışması gereken bir program. Senin ev bilgisayarın kapandığında bot da ölür. Çözüm: bir VPS (Virtual Private Server) — internette bir yerde duran, hep açık bir Linux makinesi. Hetzner, DigitalOcean, AWS, Oracle — sağlayıcı fark etmez, hepsinde benzer.
İkincisi: VPS'te arayüz yok — tıklama yok, klavye var. "Siyah ekrana komut yazmak" ilk başta ürkütücü gelir ama 15-20 komut öğrenince rahatlıkla yönetirsin. Bu sayfa o 15 komutu "neyi niye yaparım" açıklamasıyla veriyor — ezber değil, refleks kurma amaçlı.
Üçüncüsü: Claude Code ve Anthropic'in agent SDK'ları VPS'te yaşar — development bilgisayarında değil. Bölüm 6'da agent yazarken sen Claude Code'u SSH ile VPS'te çalıştıracaksın. Bu temel olmadan ileri bölümler havada kalır.
VPS ve Linux kısaca — üç paragraf, matematiksiz¶
VPS = kiraladığın "uzaktaki bilgisayar". Ayda $5-20 civarında başlar. İnternete bağlı, her zaman açık, kendi IP'si var (senin: 89.167.90.113 gibi bir rakam). Sen kendi bilgisayarından SSH (Secure Shell) protokolüyle bağlanırsın — bir komut yazarsın, VPS çalıştırır, cevabı sana gösterir. Sanki o uzaktaki bilgisayarın klavyesinin başına oturmuşsun gibi.
Shell = komut çalıştırdığın aracı. Linux VPS'lerde default bash veya zsh shell. Komut yazarsın, Enter basarsın, çalışır. Yanlış komut = hata mesajı (ama çoğu durumda geri alınamaz — rm komutu çöp kutusu göstermez, direkt siler). Bu yüzden emin olmadığın komutu önce çalışmayan bir test klasöründe dene.
systemd = "servislerin yöneticisi". Senin botun sürekli çalışsın istiyorsan, VPS açılınca bot otomatik başlasın istiyorsun, çökerse otomatik restart olsun istiyorsun. Bu işleri systemd yapıyor. 2026 Linux dağıtımlarının hepsinde default — Debian, Ubuntu, CentOS, Arch, hepsi. Komutları: systemctl start|stop|restart|status|enable.
Bu sayfanın ekosistemi — kim kime ne veriyor¶
flowchart LR
USR["👤 Sen\n(ev bilgisayarı\nterminal)"]
SSH["🔐 SSH\nprotokolü"]
VPS["🖥️ VPS\nUbuntu/Debian"]
SHELL["⚡ bash shell\n(komut yorumcusu)"]
FS[("📁 Dosya\nsistemi")]
PROC["⚙️ systemd\nsistem\nprocess manager"]
SVC["🚀 Servisler\n(bot, API, db)"]
USR --> SSH --> VPS --> SHELL
SHELL --> FS
SHELL --> PROC --> SVC
SVC -.log.-> SHELL
classDef usr fill:#ddd6fe,stroke:#7c3aed,color:#111
classDef srv fill:#fed7aa,stroke:#ea580c,color:#111
classDef sys fill:#dbeafe,stroke:#2563eb,color:#111
class USR usr
class SSH sys
class VPS,PROC srv
class SHELL,FS sys
class SVC srv
| Düğüm | Nerede | Ne iş yapıyor |
|---|---|---|
| 👤 Sen | Ev bilgisayarı / dizüstü / tablet | Terminal aç, SSH komutu yaz, VPS'e bağlan |
| 🔐 SSH | Port 22 (default) | Şifreli tünel kur, klavye girişlerini VPS'e ilet |
| 🖥️ VPS | Hetzner/DO/AWS data center | Her zaman açık Linux makinesi, Ubuntu 24.04 LTS gibi |
| ⚡ bash shell | VPS'te seni karşılar | Komut satırı — senin yazdığın her satırı çalıştırır |
| 📁 Dosya sistemi | /home, /etc, /var gibi klasörler |
Her şey dosya — config, log, uygulama, kod hepsi |
| ⚙️ systemd | init system (PID 1 — Linux'un ilk ve ana süreç yöneticisi) | Servisleri başlatır, durdurur, izler, log'lar |
| 🚀 Servisler | nginx, postgres, clawdbot-mcp vb. |
AI botların, API'ler, veritabanları — 7/24 çalışır |
Uygulama — iki yol¶
Yol A — Hetzner VPS al + SSH bağlan (15 dakika, ~$5/ay)¶
- hetzner.com/cloud → hesap aç (kart lazım)
- "New project" → "Create server" → CX22 (2 vCPU, 4 GB RAM, ~€3.79/ay — bu kurs için yeter) seç
- OS: Ubuntu 24.04 LTS, lokasyon: Helsinki (veya Nuremberg — AB içi, KVKK dostu)
- SSH Key bölümü: Yeni anahtar ekle:
Yerel bilgisayarında terminal aç:
# Mac/Linux
ssh-keygen -t ed25519 -C "benim-laptop"
# Enter x 3 (default dosya, passphrase opsiyonel)
cat ~/.ssh/id_ed25519.pub # ← bu çıktıyı Hetzner'e yapıştır
# Windows (PowerShell)
ssh-keygen -t ed25519 -C "benim-laptop"
type $env:USERPROFILE\.ssh\id_ed25519.pub
- Server oluştuktan sonra, bir IP adresi görürsün (örn:
95.217.x.x) - SSH ile bağlan:
ssh root@95.217.x.x
# Şu çıkar: "Are you sure you want to continue connecting (yes/no/[fingerprint])?" → yes yaz
- Prompt değişir:
root@ubuntu-8gb:~#— İçeridesin. Senin bilgisayarın gibi komut yazabilirsin.
Burada olan nedir (diyagram referansı): Diyagramın sol yarısı tamamlandı. 👤 Sen → 🔐 SSH → 🖥️ VPS → ⚡ bash shell zinciri kuruldu. Şimdi Yol B'de sağ yarıya (dosya sistemi + systemd) geçelim.
Yol B — 15 temel Linux komutu (el pratiği)¶
VPS'te SSH ile bağlıyken sırayla dene:
# --- 1. Nerede olduğunu öğren ---
pwd # /root
# --- 2. Klasör içeriği ---
ls # basit liste
ls -la # detaylı (boyut, tarih, izin)
# --- 3. Klasör değiştir ---
cd /tmp # /tmp'e git
cd ~ # kendi home'a dön (~)
cd .. # bir üst klasör
# --- 4. Yeni klasör + dosya ---
mkdir denemeler # yeni klasör
cd denemeler
touch notlarim.txt # boş dosya oluştur
# --- 5. Dosyaya yazı yaz (2 yol) ---
echo "Merhaba Kemal" > notlarim.txt # > içeriği SİLER, yeniden yazar
echo "ikinci satır" >> notlarim.txt # >> SONUNA ekler
# --- 6. Dosyayı oku ---
cat notlarim.txt # tüm içerik
head -5 notlarim.txt # ilk 5 satır
tail -5 notlarim.txt # son 5 satır
tail -f logfile.log # canlı takip (Ctrl+C ile çık)
# --- 7. Dosyayı editle ---
nano notlarim.txt # basit editör (Ctrl+O kaydet, Ctrl+X çık)
# alternatif: vim notlarim.txt (daha güçlü ama öğrenme eğrisi dik)
# --- 8. Dosyada arama ---
grep "Merhaba" notlarim.txt # içinde "Merhaba" geçen satırlar
grep -r "TODO" /root/proje/ # bir klasörde recursive arama
# --- 9. Sil/Kopyala/Taşı ---
cp notlarim.txt yedek.txt # kopyala
mv yedek.txt arsiv.txt # taşı/yeniden adlandır
rm arsiv.txt # SİL (geri alınmaz!)
rm -rf denemeler # klasörü + içini SİL (DİKKAT!)
# --- 10. Çalışan programları gör ---
ps aux # tüm process'ler
ps aux | grep python # sadece python olanlar
# --- 11. Program durdur ---
kill <PID> # nazik kapat
kill -9 <PID> # zorla öldür
# --- 12. İzinler ---
chmod +x script.sh # çalıştırılabilir yap
chmod 644 notlarim.txt # okuma+yazma (sahibe), sadece okuma diğerlerine
# --- 13. SCP — dosya transfer (yerelden VPS'e) ---
# YEREL bilgisayarında (VPS'te değil!):
scp /yerel/yol/dosya.txt root@95.217.x.x:/root/
# tersi: VPS'ten yerele
scp root@95.217.x.x:/root/dosya.txt ./
# --- 14. systemd — servis yönetimi ---
systemctl status nginx # nginx çalışıyor mu?
systemctl start nginx # başlat
systemctl stop nginx # durdur
systemctl restart nginx # restart
systemctl enable nginx # boot'ta otomatik başlat
journalctl -u nginx -n 50 # son 50 log satırı
# --- 15. İnternet erişim kontrol ---
curl https://api.anthropic.com # cevap döner mi?
curl -I https://api.anthropic.com # sadece HTTP header
ping 8.8.8.8 # ping (Ctrl+C ile dur)
Burada olan nedir (diyagram referansı): Bu 15 komut diyagramdaki tüm kutulara dokunuyor — ⚡ bash shell üzerinden 📁 Dosya sistemi (ls/cd/mkdir/cat/rm/cp/mv/chmod), ⚙️ systemd (systemctl/journalctl), 🚀 Servisler (ps/kill/curl). 15 komut = VPS yönetiminin %80'i.
Sık yapılan hatalar ve çözümleri¶
| Hata | Sebep | Çözüm |
|---|---|---|
Permission denied (publickey) |
SSH key yanlış | ~/.ssh/id_ed25519.pub'u Hetzner panelden tekrar ekle |
bash: komut: command not found |
Paket kurulu değil | apt install paket-adı veya sudo apt install ... |
rm -rf /yanlış/yol komutu girdin |
Yanlış yol silinir, geri dönüş yok | Komutu yazmadan önce yolu iki kez kontrol et; rm öncesi ls ile doğrula |
| Terminal'den çıkınca bot durdu | Terminal process'leri kapatıyor | systemd servisi veya pm2/tmux/nohup kullan |
Disk full |
/var/log şişmiş |
journalctl --vacuum-time=7d + docker system prune |
Anthropic Linux/VPS konusunu doğrudan öğretmez (OS-bağımsız bir AI firması) ama ekosistemi Linux üzerinde yaşar:
1. Claude Code SSH ile VPS'te çalışır. code.claude.com/docs/en/overview — Claude Code'u VPS'te kurarsan, herhangi bir yerden SSH ile bağlanıp AI destekli kod yazabilirsin. Bu sayfadaki SSH bağlantı disiplini Bölüm 6 agent'larının önkoşulu.
2. Anthropic API'ye Linux curl ile "hello world". Anthropic API dokümanının ilk örneği curl: curl https://api.anthropic.com/v1/messages -H "x-api-key: $API_KEY" .... Bu komutu VPS'te çalıştırabilmek için önce VPS'in ne olduğunu bilmek lazım.
3. Anthropic Cookbook deploy örnekleri Linux-odaklı. github.com/anthropics/claude-cookbooks repo'sunda third_party/ klasöründe AWS Lambda, Modal, Vercel gibi deploy örnekleri var — hepsinin temeli Linux ve shell komutları.
Teknik detay — isteyene (parameter adları, mekanikler, edge case'ler)
SSH key ed25519 vs RSA. Modern Linux'larda ed25519 önerilir — daha güçlü, daha küçük, daha hızlı. RSA eski ama hâlâ çalışır. Key boyutu: ed25519 256 bit yeter; RSA en az 4096 olmalı.
root user vs non-root. Production'da root olarak girmek güvenlik riski. Disiplin: ilk VPS kurulumunda yeni user aç (adduser kemal), sudo ver (usermod -aG sudo kemal), SSH'ı root için kapat (/etc/ssh/sshd_config → PermitRootLogin no), sonra bu user ile bağlan.
systemd unit dosyası. /etc/systemd/system/clawdbot.service — text dosyası, servisi tanımlar. Description=, ExecStart=, Restart=always, User=kemal gibi alanlar. Değiştirdikten sonra systemctl daemon-reload + systemctl restart clawdbot.
Port yönetimi. Sistem portları 0-1023 (root gerek), user portları 1024+ (free). AI botlar genelde 8000-8999 aralığında. ss -tulpn ile aktif portlar, ufw allow 8766 ile firewall izin.
Log rotasyon. systemd-journal default sınırsız büyür. journalctl --disk-usage ile kontrol et, /etc/systemd/journald.conf → SystemMaxUse=1G ile sınırla, systemctl restart systemd-journald.
Process manager: systemd vs pm2 vs supervisord. systemd = Linux-native, boot-time, en güvenilir. pm2 = Node.js tabanlı, Python/Node için iyi, cluster mode. supervisord = Python tabanlı, eski ama stabil. Başlangıçta: systemd yeter.
Disk monitoring. df -h disk doluluk; du -sh /path klasör boyutu; ncdu /path interaktif görünüm (önce apt install ncdu). Disk %90+ dolarsa servis kasar.
Kaynak: code.claude.com — Claude Code overview (EN, ~10 dk). VPS + Linux + Claude Code'un birlikte kullanımı burada. Genel Linux öğrenimi için: The Missing Semester — MIT'nin ücretsiz 9 dersi, 2.sınıf öğrencilerine verilen shell/git/terminal pratik kursu. Pekiştirme için en iyi kaynak.
📦 Bu sayfayı bitirdiğini nasıl kanıtlarsın¶
1. 📝 Refleksiyon yazısı — 5 dakika¶
"VPS aldım ([sağlayıcı adı]), [ay] kira [X] dolar. SSH ile bağlandım, 15 komuttan [kaç]'ını el yordamıyla çalıştırdım.
systemctl status [servis]ile ne gördüm: [çıktının özeti]. En çok zorlandığım komut: [hangisi]. Kendi bot'um için [şu] disiplini uygulayacağım."
Kaydet: muhendisal-notlarim/bolum-0/01-vps-linux/refleksiyon.txt
2. 📸 Ekran görüntüsü — 3 dakika¶
Neyin görüntüsü: VPS terminalde 15 komutun en az 5'inin çalıştığı bir oturum. pwd, ls -la, cat /etc/os-release, systemctl status ssh, curl -I https://api.anthropic.com kombinasyonu yeterli.
| OS | Kısayol |
|---|---|
| Windows | Win + Shift + S (terminal penceresi) |
| Mac | Cmd + Shift + 4 |
| Linux | Shift + PrtScr |
Kaydet: muhendisal-notlarim/bolum-0/01-vps-linux/ssh-oturum.png
3. 💻 Kendi "Merhaba" dosyası + Gist — 10 dakika¶
VPS'te ~/muhendisal-test/ klasörü kur. İçinde hello.py oluştur (print("Merhaba VPS") yazılı). python3 hello.py çalıştır. Çıktıyı al, output.txt'ye yaz. İki dosyanın içeriğini gist.github.com'a yükle (public).
Kaydet: muhendisal-notlarim/bolum-0/01-vps-linux/ilk-vps-gist.txt
- A → B: AI servisi = 7/24 çalışan program; ev bilgisayarı 7/24 açık değil → VPS lazım.
- B → C: VPS ucuz ve her yerde aynı (Linux + SSH) — sağlayıcı değişse bile disiplin transfer edilir.
- C → D: Linux'ta arayüz yok, shell var — 15 komut %80 iş gücünü verir, kalan %20 duruma özel.
- D → E: systemd servis yönetimi, bir programı "her zaman çalışır tut, çöktüğünde restart" et — AI botun için doğal çözüm.
- E → F: Claude Code + Anthropic agent SDK'ları VPS'te yaşar — bu sayfa olmadan Bölüm 6'ya geçemeyiz.
Sonuç: "VPS karmaşık" yanılsaması ilk 2 saatte kırılır. Bu sayfa sana 15 komut verdi ve Claude Code'un nerede yaşadığını gösterdi. Bundan sonraki sayfalar (0.2 Python venv, 0.3 Ollama, 0.4 FastAPI, 0.5 İlk AI servisi) bu VPS temeli üzerine kuruluyor.
0.2 Python ve Sanal Ortam → — VPS hazır. Şimdi Python 3.11+ kurup, izole çalışma ortamı (venv) açıp, Anthropic SDK'yı kuralım.
Pekiştirme: missing.csail.mit.edu — MIT'nin "The Missing Semester" dersi. Shell, Vim, Data Wrangling ve Git dersleri — toplam 4 saat ile güçlü bir VPS disiplini kazanırsın. VPS'te pratik yaparken kaynak olarak aç.