Sunucu Yönetimi & Linux

    Yeni Başlayanlar İçin 40 Temel Linux Terminal Komutu

    Sunucu yönetiminde en sık kullanılan 40 Linux terminal komutunu kategori kategori, gerçek örnekler ve pratik ipuçlarıyla anlatan başlangıç rehberi.

    12 dk okuma Güncellendi: 1 Temmuz 2026

    Bir Linux sunucusuna ilk kez bağlandığınızda ekranda beliren yalın, siyah komut satırı ilk anda tedirgin edebilir. Oysa terminal, sunucunuza hükmetmenin en hızlı ve en doğrudan yoludur. Fare, menü ya da pencere olmadan; yalnızca birkaç harflik komutlarla dosya kopyalar, bir servisi ayağa kaldırır, diskin ne kadar dolduğuna bakar, hatta bir web sitesini birkaç saniyede yayına alabilirsiniz. Bu rehberde, ilk kez bir VDS ya da bulut sunucu kiralayan herkesin parmak alışkanlığına dönüştürmesi gereken 40 temel komutu altı başlık altında derledik: dosya ve dizin işlemleri, dosya görüntüleme, izinler, süreç yönetimi, paket kurulumu, ağ ve disk araçları.

    Her komut için kısa bir açıklama ve gerçek hayatta işinize yarayacak bir örnek verdik. Buradaki amaç kuru bir ezber değil; her komutun arkasındaki mantığı kavrayıp kendi sunucunuzda çekinmeden denemeniz. Örnekler Ubuntu ve Debian tabanlı sistemler baz alınarak yazıldı, fakat büyük bölümü CentOS, AlmaLinux, Rocky Linux ve diğer dağıtımlarda da harfi harfine aynı çalışır. İşe koyulmadan önce sunucunuza bağlanmış olmanız gerekir; bunu nasıl güvenli biçimde yapacağınızı SSH bağlantısı ve güvenliği yazımızda adım adım anlattık.

    Terminale Alışmak: Birkaç Temel Kavram#

    Komutlara dalmadan önce şu üç kavrama aşina olmak, ilerleyen bölümleri çok daha anlaşılır kılar.

    • Komut istemi (prompt): Terminalin sizden komut beklediği satırdır ve tipik olarak kullanici@sunucu:~$ biçiminde görünür. Satırın sonundaki $ işareti sıradan bir kullanıcı olduğunuzu, # işareti ise root (tam yetkili) kullanıcı olarak oturum açtığınızı anlatır.
    • Çalışma dizini: O an içinde bulunduğunuz klasördür. Bir komuta açıkça yol vermezseniz, işlem varsayılan olarak bu dizinde gerçekleşir.
    • Argüman ve seçenek: Bir komuta eklediğiniz ek bilgilerdir. Örneğin ls -l /var komutunda -l bir seçenektir (komutun nasıl davranacağını belirler), /var ise bir argümandır (komutun neyi işleyeceğini söyler).

    Bir komutta takıldığınızda tam kılavuzunu man komut yazarak açabilir (örneğin man ls), okuma penceresinden q tuşuyla çıkabilirsiniz. Bunun daha kısa bir alternatifi çoğu komutta bulunan --help seçeneğidir: ls --help size özet kullanımı hemen gösterir.

    İpucu: Uzun bir dosya yolunu ya da komut adını baştan sona elle yazmak yerine ilk birkaç harfini yazıp Tab tuşuna basın; terminal geri kalanını sizin için otomatik tamamlar. Yukarı ok tuşu ise daha önce yazdığınız komutları sırayla geri getirerek tekrar yazma zahmetinden kurtarır.

    Dosya ve Dizin İşlemleri#

    Sunucu yönetiminin belkemiği bu bölümdür. Dosya taşımak, kopyalamak, silmek ve klasörler arasında gezinmek çok geçmeden günlük rutininizin bir parçasına dönüşecek.

    pwd (print working directory) bulunduğunuz dizinin tam yolunu ekrana basar; klasörler arasında dolaşırken "şu an tam olarak neredeyim" diye tereddüt ettiğiniz anda ilk başvuracağınız komut budur.

    ls mevcut dizindeki dosyaları listeler. En sık kullanılan biçim ayrıntılı listedir:

    ls -lah /var/www
    

    Buradaki -l uzun (izin, sahip, boyut, tarih) biçim, -a gizli dosyalar dahil hepsini, -h ise boyutları insan-okunur (KB, MB) göstermek içindir.

    cd dizin değiştirir. cd /etc/nginx ile mutlak yola gidersiniz, cd .. bir üst dizine çıkar, tek başına cd sizi ev dizininize (~) döndürür.

    mkdir klasör oluşturur. -p seçeneği, ara dizinleri de gerektiğinde yaratır:

    mkdir -p /var/www/site/public
    

    cp dosya kopyalar. Bir klasörü tüm içeriğiyle kopyalamak için -r (recursive) gerekir:

    cp -r /var/www/site /var/www/site-yedek
    

    mv hem taşıma hem de yeniden adlandırma yapar. Aynı dizinde farklı isimle taşırsanız, dosyanın adını değiştirmiş olursunuz:

    mv rapor.txt rapor-2026.txt
    

    rm dosya siler. Bir klasörü içeriğiyle silmek için -r, onay sormaması için -f kullanılır. Bu komut geri alınamaz, bu yüzden dikkatli olun:

    rm -rf /tmp/eski-veriler
    

    touch boş bir dosya oluşturur (ya da var olan dosyanın değişiklik tarihini günceller): touch index.html. find ise koşula uyan dosyaları arar; örneğin son 7 günde değişmiş .log dosyalarını bulmak için find /var/log -name "*.log" -mtime -7.

    Yanlışlıkla önemli bir dizini silmenin önüne geçmek için düzenli yedekleme almanızı öneririz; rm -rf hatasından dönüşün tek yolu budur.

    Dosya İçeriğini Görüntüleme#

    Bir yapılandırma dosyasını okumak, bir hata günlüğünü incelemek için içeriğe bakmanız gerekir.

    cat bir dosyanın tüm içeriğini ekrana basar; kısa dosyalar için idealdir: cat /etc/hostname. İki dosyayı birleştirip yeni bir dosyaya yazmak için de kullanılır.

    less uzun dosyaları sayfa sayfa gezmenizi sağlar. Ok tuşları ve PageUp/PageDown ile gezinir, /aranan yazıp Enter'a basarak arama yapar, q ile çıkarsınız:

    less /var/log/nginx/access.log
    

    head dosyanın baş kısmını, tail ise son kısmını gösterir. Varsayılan 10 satırdır, -n ile değiştirilir. tail özellikle canlı günlük izleme için değerlidir; -f seçeneği dosyaya yeni eklenen satırları anlık akıtır:

    tail -f -n 50 /var/log/nginx/error.log
    

    Bir web sunucusu kurup hataları bu şekilde izlemek isterseniz, Ubuntu'da Nginx kurulumu makalemiz log yollarını ayrıntılı açıklar.

    grep bir dosyanın (veya komut çıktısının) içinde metin arar. En çok kullanılan araçlardan biridir:

    grep -i "error" /var/log/syslog
    

    Buradaki -i büyük/küçük harf farkını yok sayar. Bir komutun çıktısını grep'e vermek için boru (|) kullanılır: ps aux | grep nginx.

    Dosya İzinleri ve Sahiplik#

    Linux'ta her dosyanın bir sahibi, bir grubu ve üç düzeyde (sahip, grup, diğerleri) okuma/yazma/çalıştırma izni vardır. Web sunucusu kurarken bu konu kritik hale gelir; yanlış izinler ya "Permission denied" hatasına ya da güvenlik açığına yol açar.

    chmod izinleri değiştirir. En sık kullanılan gösterim sayısaldır: okuma 4, yazma 2, çalıştırma 1 değerini alır ve bu sayılar toplanır. Örneğin 755 sahibe tam yetki (7 = 4+2+1), gruba ve diğerlerine okuma ile çalıştırma (5 = 4+1) verir; 644 ise sahibe okuma-yazma, herkese yalnızca okuma tanır:

    chmod 644 index.html
    chmod 755 /var/www/site
    

    Bir betiği çalıştırılabilir hale getirmek için sayı yerine harf gösterimini kullanmak daha okunaklıdır: chmod +x betik.sh yalnızca çalıştırma iznini ekler, mevcut diğer izinlere dokunmaz.

    Bir dizin ağacını topluca düzeltmek gerektiğinde -R (recursive) seçeneği tüm alt dosya ve klasörlere iner. Ancak dizinler için gereken 755 iznini olduğu gibi dosyalara da uygularsanız, statik dosyaları gereksiz yere çalıştırılabilir yaparsınız. Web dizinlerinde doğru yaklaşım, dosyalar ile dizinleri ayrı ayrı ele almaktır:

    find /var/www/site -type d -exec chmod 755 {} \;
    find /var/www/site -type f -exec chmod 644 {} \;
    

    chown bir dosyanın sahibini ve grubunu değiştirir. Web dosyalarını sunucunun kullandığı kullanıcıya (Nginx'te genellikle www-data) devretmek yaygın bir ihtiyaçtır:

    chown -R www-data:www-data /var/www/site
    

    sudo ise bir komutu yetkili (root) haklarıyla çalıştırmanızı sağlar. Sistem dosyalarına dokunan neredeyse her komutun başına gelir: sudo systemctl restart nginx. Root olarak sürekli çalışmak yerine sudo kullanmak, kaza eseri sistemi bozma riskini büyük ölçüde azaltır.

    Güvenlik notu: Web dizinlerine asla chmod 777 vermeyin. Bu, herkese yazma izni açar ve saldırganların dosya yüklemesine kapı aralar. Çoğu durumda dosyalar için 644, dizinler için 755 yeterlidir.

    Süreç ve Sistem Yönetimi#

    Sunucuda çalışan programlar "süreç" (process) olarak adlandırılır. Bir servis takıldığında veya sunucu yavaşladığında, hangi sürecin kaynak tükettiğini bulmanız gerekir.

    ps çalışan süreçleri listeler. En kullanışlı biçim ps aux'tur; tüm kullanıcıların süreçlerini, CPU ve bellek kullanımıyla birlikte gösterir:

    ps aux | grep php
    

    top canlı bir sistem izleyicisidir; CPU, bellek ve süreçleri saniyede bir güncelleyerek gösterir. Çıkmak için q basarsınız. Daha okunaklı ve renkli bir alternatif olan htop çoğu sistemde sudo apt install htop ile kurulabilir.

    kill bir süreci sonlandırır. Önce ps ile sürecin PID (process ID) numarasını bulur, sonra onu durdurursunuz. Nazikçe kapanmazsa -9 ile zorla sonlandırılır:

    kill 4821
    kill -9 4821
    

    systemctl modern Linux sistemlerinde servisleri yönetir. Başlatma, durdurma, yeniden başlatma ve durum sorgulama işlemleri bununla yapılır:

    sudo systemctl status nginx
    sudo systemctl restart mysql
    sudo systemctl enable docker
    

    Buradaki enable, servisi sunucu her açıldığında otomatik başlayacak şekilde ayarlar. free -h komutu ise bellek (RAM) doluluğunu insan-okunur biçimde gösterir; sunucunuzun belleği tükeniyorsa ilk bakacağınız yerlerden biridir.

    Paket Yönetimi#

    Linux'ta yazılım kurmak, güncellemek ve kaldırmak için elle dosya indirmek yerine bir paket yöneticisi kullanılır; bu araç gerekli bağımlılıkları da otomatik hallettiği için işinizi büyük ölçüde kolaylaştırır. Ubuntu ve Debian'da bu iş apt ile yapılır (CentOS, AlmaLinux ve Rocky Linux'ta ise dnf, eski sürümlerde yum).

    Yeni bir sunucuda ilk yapacağınız şey paket listesini güncellemek ve mevcut yazılımları yükseltmektir:

    sudo apt update
    sudo apt upgrade -y
    

    apt update paket kataloğunu tazeler (yazılımı kurmaz), apt upgrade ise kurulu paketleri en son sürüme yükseltir. Yeni bir program kurmak için:

    sudo apt install nginx
    

    Bir paketi kaldırmak için sudo apt remove paket-adi, yapılandırma dosyalarıyla birlikte tamamen silmek için sudo apt purge paket-adi kullanılır. Bir aracın kurulu olup olmadığını apt list --installed | grep paket-adi ile kontrol edebilirsiniz.

    Bir dosyayı internetten indirmek için wget çok pratiktir: wget https://ornek.com/dosya.tar.gz. İndirilen sıkıştırılmış arşivleri açmak için ise tar kullanılır: tar -xzf dosya.tar.gz (burada x açma, z gzip çözme, f dosya belirtme anlamına gelir).

    Ağ ve Disk Araçları#

    Sunucunuzun dış dünyayla bağlantısını ve disk durumunu izlemek, sorun giderirken kritik önem taşır.

    ping bir sunucuya ulaşılıp ulaşılamadığını ve gecikmeyi ölçer:

    ping -c 4 clou.tr
    

    -c 4 yalnızca 4 paket gönderir; yoksa ping durdurulana dek çalışır (Ctrl+C ile durdurabilirsiniz).

    curl bir URL'ye istek gönderir; API testinden bir web sitesinin HTTP başlıklarını kontrol etmeye kadar her yerde kullanılır. Yalnızca yanıt başlıklarını görmek için:

    curl -I https://clou.tr
    

    ip a (uzun hâli ip address, eski sistemlerde ise ifconfig) sunucunun ağ arayüzlerini ve bunlara atanmış IP adreslerini listeler. ss -tulpn (daha eski dağıtımlarda karşılığı netstat -tulpn) hangi portların hangi süreç tarafından dinlendiğini gösterir; örneğin bir web sunucusunun gerçekten 80 ve 443 numaralı portlarda çalışıp çalışmadığını doğrulamak için birebirdir. Buradaki -t TCP, -u UDP, -l dinleyen portlar, -p süreç adı, -n ise adları çözmeden sayısal gösterim anlamına gelir.

    Disk tarafında iki komut vazgeçilmezdir. df disk bölümlerinin doluluğunu gösterir:

    df -h
    

    du ise klasörlerin ne kadar yer kapladığını hesaplar. Hangi dizinin diski şişirdiğini bulmak için sık kullanılan bir kalıp şudur:

    du -sh /var/www/*
    

    Buradaki -s özet (toplam), -h insan-okunur çıktı verir. Sunucunuzun diski dolduğunda genellikle log dosyaları veya yedekler suçludur; du ile suçluyu birkaç saniyede bulabilirsiniz.

    Tüm Komutların Hızlı Özeti#

    Aşağıdaki tablo, bu rehberde geçen komutları tek bakışta hatırlamanız için kategorilere ayrılmış haldedir.

    KomutKategoriNe İşe Yarar
    pwdDosya/DizinBulunulan dizin yolunu gösterir
    lsDosya/DizinDizin içeriğini listeler
    cdDosya/DizinDizin değiştirir
    mkdirDosya/DizinKlasör oluşturur
    cpDosya/DizinDosya/klasör kopyalar
    mvDosya/DizinTaşır veya adlandırır
    rmDosya/DizinSiler (geri alınamaz)
    touchDosya/DizinBoş dosya oluşturur
    findDosya/DizinKoşula göre dosya arar
    catGörüntülemeDosya içeriğini basar
    lessGörüntülemeSayfa sayfa okur
    headGörüntülemeİlk satırları gösterir
    tailGörüntülemeSon satırları / canlı log izler
    grepGörüntülemeMetin içinde arama yapar
    chmodİzinlerİzinleri değiştirir
    chownİzinlerSahip/grup değiştirir
    sudoİzinlerRoot yetkisiyle çalıştırır
    psSüreçÇalışan süreçleri listeler
    topSüreçCanlı kaynak izleyici
    killSüreçSüreci sonlandırır
    systemctlSüreçServisleri yönetir
    freeSüreçBellek doluluğunu gösterir
    apt updatePaketPaket listesini tazeler
    apt upgradePaketPaketleri yükseltir
    apt installPaketYazılım kurar
    apt removePaketYazılım kaldırır
    wgetPaketDosya indirir
    tarPaketArşiv açar/oluşturur
    pingErişim/gecikme ölçer
    curlURL'ye istek gönderir
    ip aIP/arayüzleri gösterir
    ssAçık portları listeler
    dfDiskBölüm doluluğunu gösterir
    duDiskKlasör boyutunu hesaplar
    manYardımKomut kılavuzunu açar

    Sıkça Sorulan Sorular#

    Linux komutlarını ezberlemek zorunda mıyım?#

    Hayır. Günlük kullanımda gerçekten sık ihtiyaç duyduğunuz 15-20 komut zaten kısa sürede parmak alışkanlığına dönüşür. Geri kalanları unuttuğunuzda man komut veya komut --help ile anında hatırlayabilir, terminal geçmişini yukarı ok tuşuyla tarayabilirsiniz. Önemli olan komutların mantığını anlamaktır, harflerini ezberlemek değil.

    sudo ile root arasındaki fark nedir?#

    root sistemdeki tüm yetkilere sahip kullanıcıdır. Sürekli root olarak çalışmak, tek bir yanlış komutla (örneğin hatalı bir rm -rf) tüm sistemi bozma riski taşır. sudo ise normal kullanıcıyken yalnızca belirli bir komutu geçici olarak yetkili haklarla çalıştırmanızı sağlar. Güvenlik açısından önerilen yaklaşım, günlük işleri normal kullanıcıyla yapıp yalnızca gerektiğinde sudo kullanmaktır.

    Yanlışlıkla rm ile bir dosyayı sildim, geri alabilir miyim?#

    Terminaldeki rm komutu dosyayı çöp kutusuna taşımaz; kalıcı olarak siler ve standart bir "geri al" yolu yoktur. Bu yüzden özellikle rm -rf komutunu çalıştırmadan önce hedef yolu iki kez kontrol edin. Kritik verilerinizi kaybetmemenin tek güvenilir yolu düzenli yedekleme almak ve önemli işlemler öncesi hızlı bir kopya oluşturmaktır.

    Komut çalışırken "Permission denied" hatası alıyorum, ne yapmalıyım?#

    Bu hata iki şeyden kaynaklanır: ya komutu çalıştırmak için root yetkisi gerekiyordur (başına sudo ekleyin), ya da dosya/dizin izinleri yetersizdir. İkinci durumda ls -l dosya ile izinleri inceleyin ve gerekiyorsa chmod veya chown ile düzeltin. Web dosyalarında sık karşılaşılan çözüm, sahipliği sunucunun kullandığı kullanıcıya (www-data gibi) devretmektir.

    CentOS veya AlmaLinux kullanıyorum, bu komutlar geçerli mi?#

    Dosya, izin, süreç, ağ ve disk komutlarının neredeyse tamamı tüm Linux dağıtımlarında aynıdır. Temel fark paket yöneticisindedir: Ubuntu/Debian apt kullanırken, CentOS/AlmaLinux/Rocky dnf (eski sürümlerde yum) kullanır. Yani sudo apt install nginx yerine sudo dnf install nginx yazarsınız; mantık aynı kalır.

    Windows'tan Linux sunucuya nasıl bağlanırım?#

    Windows 10/11'de yerleşik gelen terminalden ssh kullanici@sunucu-ip komutuyla doğrudan bağlanabilirsiniz. PuTTY gibi araçlar da yaygın bir seçenektir. Güvenli bağlantı için parola yerine SSH anahtarı kullanmanızı ve bunu doğru yapılandırmanızı öneririz; ayrıntılar için SSH bağlantısı ve güvenliği rehberimize göz atın.

    Buradaki 40 komut, bir Linux sunucusunu özgüvenle yönetmeye başlamanız için sağlam bir zemin oluşturur. İlk günlerde acele etmeyin; her komutu önce zarar veremeyeceğiniz bir test ortamında deneyin ve üretimdeki bir sunucuda sonucundan emin olmadığınız hiçbir şeyi çalıştırmayın. Bu becerileri bir yerden değil, kendi kontrolünüzdeki bir makinede pratik ederek pekiştirmek en kalıcı yöntemdir; kök (root) erişimi tamamen sizde olan bir VDS sunucu ya da bulut sunucu tam da bunun için biçilmiş kaftandır. Böyle bir sunucuda yukarıdaki komutların hepsini gönül rahatlığıyla deneyip öğrendiklerinizi doğrudan gerçek projelerinize taşıyabilirsiniz.

    LinuxTerminalKomut Satırı

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.