External Publication
Visit Post

Python Geliştiricileri İçin Temel Linux Komut Seti ve Uygulamalı Rehber

DEV Community [Unofficial] June 18, 2026
Source

Temel Linux Komutları + Cron Job + Python Servis Çalıştırma + SSH (Production Minimum Rehber)

Bu doküman, Python geliştiren bir kişinin production ortamında Linux’u yönetebilmesi için gereken minimum çekirdek bilgi setini içerir. Amaç; sistem kurmak değil, sistemi yönetebilmek ve debug edebilmek tir.

1. Linux Temel Komut Seti (Mutlak Minimum)

1.1 Sistem içinde gezinme

pwd

Bulunduğun dizini gösterir.

ls -la

Tüm dosyaları detaylı listeler.

cd /var/www
cd ~
cd ..

Dizin değiştirme komutları.

1.2 Dosya işlemleri

mkdir app
touch app.py
cp app.py app_backup.py
mv app.py /opt/app/
rm file.txt
rm -rf folder/

📌 Kritik not:

  • rm -rf üretim ortamında en riskli komuttur.

1.3 Dosya içeriği inceleme

cat file.txt
less file.txt
head -n 20 file.txt
tail -f file.txt

📌 Özellikle:

  • tail -f → canlı log izleme

1.4 Arama işlemleri

grep "ERROR" logs.txt
grep -r "config" .
find . -name "*.py"

1.5 Sistem durumu

top
ps aux
df -h
free -h

1.6 Süreç yönetimi

kill -9 PID

PID: process ID

2. SSH (Uzak Sunucuya Bağlanma)

SSH, Linux sistem yönetiminin temelidir.

2.1 SSH ile bağlanma

ssh root@SERVER_IP

Örnek:

ssh root@185.12.45.90

2.2 SSH key ile bağlanma (önerilen)

ssh -i key.pem root@SERVER_IP

2.3 Hetzner Cloud üzerinden SSH erişimi

Hetzner Cloud üzerinde oluşturulan bir server için süreç:

1. Server oluşturulur

  • Hetzner panelinden bir Cloud Instance açılır
  • Ubuntu/Debian image seçilir

2. Public IP alınır

Örnek:

167.235.45.12

3. SSH bağlantısı

ssh root@167.235.45.12

4. İlk giriş kontrolü

whoami
uname -a

3. Python Script’i Linux Servis Olarak Çalıştırma (systemd)

Production’da en doğru yöntem: systemd service

3.1 Servis dosyası oluşturma

sudo nano /etc/systemd/system/python-app.service

3.2 Servis tanımı

[Unit]
Description=Python Application Service
After=network.target

[Service]
ExecStart=/usr/bin/python3 /opt/app/app.py
WorkingDirectory=/opt/app
Restart=always
User=root

[Install]
WantedBy=multi-user.target

3.3 Servisi başlatma

sudo systemctl daemon-reload
sudo systemctl start python-app
sudo systemctl enable python-app

3.4 Servis durumu

sudo systemctl status python-app

3.5 Log kontrol

journalctl -u python-app -f

4. Cron Job (Zamanlanmış Görevler)

Cron, Linux’un en kritik otomasyon aracıdır.

4.1 Cron mantığı

* * * * * command
│ │ │ │ │
│ │ │ │ └── Gün (hafta)
│ │ │ └──── Ay
│ │ └────── Gün
│ └──────── Saat
└────────── Dakika

4.2 Cron açma

crontab -e

4.3 Örnek kullanım senaryoları

Her dakika çalıştırma

* * * * * /usr/bin/python3 /opt/app/task.py

Her 5 dakikada bir

*/5 * * * * /usr/bin/python3 /opt/app/task.py

Her gün saat 03:00 backup

0 3 * * * /usr/bin/python3 /opt/app/backup.py

Sistemi kontrol eden job

*/10 * * * * /usr/bin/python3 /opt/app/healthcheck.py

4.4 Cron log kontrol

grep CRON /var/log/syslog

5. Log Yönetimi (Production kritik)

tail -f /var/log/syslog
journalctl -f

6. Network ve Port Kontrol

ss -tulnp
netstat -tulnp

📌 Açık portları gösterir.

7. Servis ve Process Debug

ps aux | grep python
top
htop

8. Dosya transfer ve deploy

SCP ile gönderim

scp app.py root@SERVER_IP:/opt/app/

SSH üzerinden direkt işlem

ssh root@SERVER_IP "ls -la /opt/app"

9. Minimal Production Workflow (Gerçek Hayat)

Senaryo: Python servis deploy

1. Sunucuya bağlan

ssh root@SERVER_IP

2. Kodları yükle

scp -r project/ root@SERVER_IP:/opt/app/

3. Servisi başlat

systemctl restart python-app

4. Log izle

journalctl -u python-app -f

5. Cron ile otomasyon

crontab -e

10. Özet (Minimum Bilgi Haritası)

Bir Python geliştiricisi için Linux’ta olmazsa olmaz çekirdek set:

✔ Dosya yönetimi

  • ls, cd, cp, mv, rm

✔ Sistem kontrol

  • ps, top, kill, df, free

✔ Log ve debug

  • tail -f, journalctl, grep

✔ SSH erişim

  • ssh root@ip
  • scp

✔ Servis yönetimi

  • systemctl start/stop/status

✔ Cron job

  • crontab -e
  • zamanlama mantığı

Sonuç

Linux tarafında gerçek üretim becerisi:

“Komut bilmek” değil, sistemi uzaktan yönetebilmek ve otomasyonu kurabilmektir.

Bu 5 alanı (SSH + systemd + cron + log + process) bilen bir geliştirici artık production seviyesine çıkmış olur.

Discussion in the ATmosphere

Loading comments...