Furkan KapukayaYazılım geliştirme
Sunucu, Bulut ve DevOps2 dk okuma

Linux Temel Komutları: Sunucuya İlk Kez Bağlananlar İçin Rehber

Bir Linux sunucuda dosya ve klasör işlemleri, yetkiler, süreç ve servis yönetimi, disk ve bellek kontrolü, log okuma ve paket güncelleme için en çok kullanılan komutlar.

Bir VPS kiraladınız ve karşınızda yanıp sönen bir imleç var. Linux sunucu yönetimi korkutucu görünebilir ama günlük işlerin büyük kısmı birkaç düzine komutla yapılır. Bu rehberdeki komutlar Ubuntu ve Debian tabanlı sunucular için yazılmıştır; çoğu diğer dağıtımlarda da aynıdır.

Dosya ve klasörler

pwd                    # bulunduğum klasör
ls -la                 # gizli dosyalar dahil ayrıntılı liste
cd /var/www            # klasör değiştir
mkdir -p uygulama/logs # iç içe klasör oluştur
cp kaynak hedef        # kopyala (klasör için -r)
mv eski yeni           # taşı veya yeniden adlandır
rm dosya               # sil (geri dönüşüm kutusu yok!)
cat dosya / less dosya # içerik göster
nano dosya             # basit metin düzenleyici

rm -rf komutunu yazarken iki kez düşünün; Linux "emin misiniz?" diye sormaz.

Kullanıcılar ve yetkiler

sudo komut                 # yönetici yetkisiyle çalıştır
chmod 640 appsettings.json # sahibi okur-yazar, grup okur, diğerleri erişemez
chown www-data:www-data -R /var/www/uygulama

Uygulamaları root kullanıcısıyla çalıştırmayın; her servis için yalnızca ihtiyaç duyduğu yetkilere sahip ayrı bir kullanıcı kullanın.

Servisler

Modern dağıtımlarda servisler systemd ile yönetilir:

sudo systemctl status uygulama    # durum
sudo systemctl restart uygulama   # yeniden başlat
sudo systemctl enable uygulama    # açılışta başlasın
journalctl -u uygulama -f         # servis loglarını canlı izle

Bir .NET uygulamasını systemd servisi olarak çalıştırmak, sunucu yeniden başladığında uygulamanın da otomatik açılmasını sağlar.

Disk, bellek ve süreçler

df -h          # disk doluluk oranları
du -sh *       # klasör boyutları
free -h        # bellek kullanımı
top / htop     # canlı süreç listesi
ps aux | grep dotnet

"Site çöktü" şikâyetlerinin şaşırtıcı bir kısmının nedeni dolu disktir; genellikle büyüyen log dosyalarıdır. Log döndürme (logrotate) ayarlamak bu sorunu önler.

Loglar ve arama

tail -f /var/log/nginx/error.log   # son satırları canlı izle
grep -i "error" uygulama.log       # hata geçen satırlar

Güncellemeler

sudo apt update && sudo apt upgrade

Güvenlik güncellemelerinin otomatik kurulmasını (unattended-upgrades) etkinleştirmek, sunucu güvenliğinin en kolay adımlarından biridir.

Ağ

ss -tulpn          # hangi portları kim dinliyor
curl -I https://alanadi.com   # HTTP yanıt başlıklarını gör
sudo ufw allow 443 && sudo ufw enable  # basit güvenlik duvarı

Sık sorulan sorular

Komutların ayrıntılarını nereden öğrenirim?

man komut veya komut --help yazarak yerleşik yardım sayfalarına ulaşabilirsiniz.

Yanlışlıkla sunucuyu bozarsam ne olur?

Bu yüzden sunucu değişikliklerinden önce yedek veya anlık görüntü (snapshot) almak önemlidir. Bkz. felaket kurtarma planı.

Sonuç

Bu komutlar, bir Linux sunucunun günlük bakımının büyük bölümünü karşılar. Sonraki adım, sunucuya güvenli bağlanmayı öğrenmektir: SSH nedir.