Linux Temel Komutlar: Sunucu Yönetimi İçin Başvuru Rehberi
Linux temel komutlar, komut satırında dosyaları yönetmek, servisleri başlatıp durdurmak, günlükleri okumak ve sunucunun sağlığını kontrol etmek için her gün kullanılan araçlardır. Grafik arayüzü olmayan bir sunucuda yönetimin neredeyse tamamı birkaç düzine komutla yapılır; hepsini ezberlemek gerekmez, hangi işin hangi komutla yapıldığını bilmek yeterlidir.
Tablolar Ubuntu 24.04 LTS ve Debian 12–13 esas alınarak hazırlanmıştır; AlmaLinux ve Rocky Linux farkları paket bölümünde belirtilmiştir. LIONFIN VPS sunucularında tam root erişiminiz olduğu için tüm komutları kullanabilirsiniz; SSH erişimli Linux hosting hesaplarında ise dosya ve metin komutlarının çoğu çalışır, sudo gerektirenler çalışmaz. Sunucuya bağlanmak için VPS bağlantı rehberine bakın.
Kısa cevap
Linux temel komutlar, bir sunucuyu SSH üzerinden yönetmek için gereken dosya, izin, süreç, paket, servis, günlük, ağ ve disk işlemlerini kapsayan kısa bir komut setidir. En sık kullanılanlar ls, cd, cp, chmod, ps, apt, systemctl, journalctl, ss ve df komutlarıdır. Her komutun ayrıntısı man komut_adı ile okunur; yönetici yetkisi gerektiren işlemler başına sudo eklenerek çalıştırılır.
Linux temel komutları nasıl yazılır, yardım nasıl alınır?
Bir Linux komutu komut -seçenekler argümanlar biçiminde yazılır: ls -lh /var/log komutunda ls komut, -lh seçenekler, /var/log argümandır. Büyük-küçük harf önemlidir; sistem ayarlarını değiştiren komutların başına sudo eklenir.
| Komut / kısayol | Ne işe yarar |
|---|---|
man ls, ls --help | Kılavuz ve seçenekler; kılavuzdan q ile çıkılır |
| Tab | Komut ve dosya adlarını tamamlar |
Ctrl+R, history | Komut geçmişinde arar, listeler |
| Ctrl+C | Çalışan komutu durdurur |
komut1 | komut2 | Çıktıyı sonraki komuta aktarır (pipe) |
> ve >> | Çıktıyı dosyaya yazar: > üzerine yazar, >> sona ekler |
sudo -i | Root kabuğu açar; işiniz bitince exit |
Büyük aktarım ya da derleme gibi uzun işleri tmux oturumunda çalıştırın; SSH bağlantısı koparsa tmux attach ile kaldığınız yere dönersiniz (paket yoksa sudo apt install tmux).
Dosya ve dizin işlemleri hangi komutlarla yapılır?
Temel dosya ve dizin işlemleri on kadar komutla yapılır; komut satırında çöp kutusu olmadığını unutmayın:
| Komut | İşlev | Örnek |
|---|---|---|
pwd | Bulunduğunuz dizin | pwd |
ls | İçeriği listeler | ls -lah /var/www |
cd | Dizin değiştirir | cd /etc, cd .., cd ~ |
mkdir | Dizin oluşturur | mkdir -p /var/www/site/public |
cp | Kopyalar | cp -a site site-yedek |
mv | Taşır, yeniden adlandırır | mv eski.conf yeni.conf |
rm | Siler | rm dosya.txt, rm -r klasor |
touch | Boş dosya oluşturur | touch .env |
find | Dosya arar | find /var/www -name "*.log" -mtime +7 |
ln -s | Sembolik bağlantı | ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/ |
cp -a izinleri, sahipliği ve tarihleri koruduğu için site kopyalarken düz cp -r yerine tercih edilir. find örneği yedi günden eski .log dosyalarını listeler; sonuna -delete eklemeden önce listeyi mutlaka kontrol edin.
Dosya izinleri ve sahiplik nasıl değiştirilir?
İzinler chmod, sahiplik chown ile değiştirilir. ls -l çıktısındaki -rw-r--r-- dizisi sırasıyla sahip, grup ve diğerlerinin okuma (r), yazma (w) ve çalıştırma (x) haklarını gösterir; sayısal gösterimde r=4, w=2, x=1 toplanır:
| Komut | Sonuç |
|---|---|
chmod 644 dosya.php | Sahip okur ve yazar, diğerleri okur (dosyalar için standart) |
chmod 755 klasor | Sahip tam yetkili, diğerleri girip okur (dizinler için standart) |
chmod 600 .env | Yalnızca sahip erişir (gizli yapılandırma) |
chmod u+x betik.sh | Sahibe çalıştırma izni ekler |
sudo chown -R deploy:www-data /var/www/site | Sahibi ve grubu alt klasörlerle birlikte değiştirir |
id | Kullanıcınızın kimliğini ve gruplarını gösterir |
Bir sitedeki izinleri toplu düzeltmek için dizinleri ve dosyaları ayrı ele alın:
find /var/www/site -type d -exec chmod 755 {} \;
find /var/www/site -type f -exec chmod 644 {} \;Yanlış izin ve sahiplik web sunucusunda erişim hatalarına yol açar; teşhis adımları 403 Forbidden hatası çözümü rehberindedir.
chmod -R 777 izin sorununu çözüyor gibi görünse de herkese yazma hakkı vererek saldırganın yüklediği betiğin çalışmasının önünü açar; doğru sahiplik ve 644/755 izinleri yeterlidir.Metin dosyaları nasıl okunur, aranır ve düzenlenir?
Yapılandırma dosyaları ve günlükler düz metin olduğundan okuma, arama ve düzenleme komutları en sık kullanacağınız gruptur:
| Komut | Ne işe yarar |
|---|---|
cat dosya | Kısa bir dosyanın tamamını yazdırır |
less dosya | Sayfa sayfa okur; /kelime arar, q çıkar |
head -n 20 dosya | İlk 20 satır |
tail -n 100 dosya | Son 100 satır |
tail -f /var/log/nginx/error.log | Yeni satırları canlı izler |
grep -i "error" dosya | Büyük-küçük harf duyarsız arama |
grep -rn "DB_HOST" /var/www/site | Klasörde satır numarasıyla arama |
grep -v "^#" dosya | Yorum satırlarını gizler |
wc -l dosya | Satır sayısı |
nano dosya | Düzenler; Ctrl+O kaydeder, Ctrl+X çıkar |
Komutları boru ile birleştirerek hızlı analiz yapabilirsiniz; örneğin Nginx erişim günlüğünde en çok istek gönderen on IP adresi:
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
Süreçler nasıl izlenir ve durdurulur?
Çalışan programlar (süreçler) ps ve top ile izlenir, kill ailesiyle durdurulur:
| Komut | Ne işe yarar |
|---|---|
ps aux | Tüm süreçler |
ps aux --sort=-%mem | head | En çok bellek kullananlar |
top, htop | Canlı görünüm; top’ta M belleğe, P işlemciye göre sıralar |
pgrep -a php | Adı eşleşen süreçler ve PID’leri |
kill 1234 | Düzgün kapanma sinyali (SIGTERM) gönderir |
kill -9 1234 | Zorla sonlandırır (SIGKILL); son çare |
pkill -f "node app.js" | Komut satırı eşleşen süreçleri durdurur |
uptime, free -h | Yük ortalamaları, bellek ve swap |
kill -9 sürece kapanış işlemlerini yapma fırsatı vermez; veritabanı gibi servislerde veri bozulmasına yol açabileceği için önce systemctl stop ya da düz kill deneyin. htop yoksa sudo apt install htop ile kurun. Yük ortalaması ve bellek değerlerinin yorumu Linux sunucu performans izleme rehberinde anlatılmıştır.
Paketler apt ve dnf ile nasıl yönetilir?
Yazılım kurma, güncelleme ve kaldırma işleri Debian ve Ubuntu’da apt, AlmaLinux ve Rocky Linux’ta dnf ile yapılır:
| İşlem | Debian / Ubuntu | AlmaLinux / Rocky |
|---|---|---|
| Paket listesini yenile | sudo apt update | sudo dnf check-update |
| Tüm paketleri güncelle | sudo apt upgrade | sudo dnf upgrade |
| Paket kur | sudo apt install nginx | sudo dnf install nginx |
| Paket kaldır | sudo apt remove nginx | sudo dnf remove nginx |
| Gereksiz bağımlılıkları sil | sudo apt autoremove | sudo dnf autoremove |
| Paket ara | apt search redis | dnf search redis |
| Paket bilgisi | apt show nginx | dnf info nginx |
| Kurulu paketler | apt list --installed | dnf list installed |
apt purge, remove’dan farklı olarak paketin yapılandırma dosyalarını da siler. apt etkileşimli kullanım için tasarlanmıştır; betiklerde kararlı çıktı veren apt-get tercih edilir. Kaynağını bilmediğiniz depoları ve paket dosyalarını eklemeyin. Otomatik güvenlik güncellemelerinin kurulumu VPS ilk kurulum adımları rehberindedir.
Servis ve günlük yönetimi: systemctl ve journalctl nasıl kullanılır?
Modern dağıtımlarda servisler systemd tarafından yönetilir: systemctl servisleri başlatıp durdurur, journalctl günlüklerini okur.
| Komut | Ne işe yarar |
|---|---|
systemctl status nginx | Durum ve son günlük satırları |
sudo systemctl restart nginx | Yeniden başlatır (kısa kesinti) |
sudo systemctl reload nginx | Yapılandırmayı kesintisiz yeniden yükler |
sudo systemctl enable --now nginx | Açılışta başlatır ve hemen çalıştırır |
sudo systemctl disable nginx | Açılışta başlatmaz |
systemctl --failed | Hata veren servisler |
sudo journalctl -u nginx --since "1 hour ago" | Servisin son bir saatlik günlüğü |
sudo journalctl -f | Sistem günlüğünü canlı izler |
sudo journalctl -b -p err | Bu açılıştan beri hata kayıtları |
sudo journalctl --disk-usage | Günlüklerin kapladığı alan |
Yapılandırma değiştirdikten sonra yeniden başlatmadan önce sözdizimini sınayın: Nginx için sudo nginx -t, Apache için sudo apachectl configtest, SSH için sudo sshd -t. Hatalı yapılandırmayla yapılan bir restart servisi tamamen durdurabilir. Bazı uygulamalar journal yerine dosyaya yazar: Nginx günlükleri /var/log/nginx/, Ubuntu’nun genel sistem kayıtları /var/log/syslog altındadır.
Ağ, disk ve arşiv işlemleri hangi komutlarla yapılır?
Bağlantı sorunlarını, dolan diski ve yedek arşivlerini aşağıdaki komutlarla yönetirsiniz:
| Komut | Ne işe yarar |
|---|---|
ip a, ip r | IP adresleri ve yönlendirme tablosu |
sudo ss -tulpn | Dinlenen portlar ve bunları açan süreçler |
ping -c 4 ornekalanadi.com | Erişilebilirlik ve gecikme |
curl -I localhost | Yerel web sunucusunun yanıt başlıkları |
dig ornekalanadi.com +short | DNS çözümlemesi (dnsutils paketi) |
df -h, df -i | Disk doluluğu ve inode kullanımı |
sudo du -h --max-depth=1 /var | sort -h | En büyük klasörler |
lsblk | Diskler ve bölümler |
tar -czf site.tar.gz /var/www/site | Klasörü sıkıştırılmış arşive alır |
tar -tzf site.tar.gz | Arşivi açmadan içeriğini listeler |
tar -xzf site.tar.gz -C /tmp/geri | Arşivi belirtilen dizine açar |
ifconfig ve netstat eski net-tools paketine aittir ve yeni kurulumlarda bulunmayabilir; yerlerini ip ve ss almıştır. Günlükler diski dolduruyorsa sudo journalctl --vacuum-time=14d on dört günden eski kayıtları siler. tar komutunda -C ile verdiğiniz hedef dizin önceden var olmalıdır (mkdir -p /tmp/geri).
Hangi Linux komutları tehlikelidir?
Linux temel komutları arasında en çok zarar verebilenler geri alınamayan silme, herkese açık izin ya da doğrulanmamış kod çalıştırma içerenlerdir; sistem bu komutları onay istemeden uygular. Özellikle dikkat edin:
rm -rf: Sorgusuz ve özyinelemeli siler. Hedefi öncelsile kontrol edin;rm -rf $DIZIN/*gibi değişkenli komutlarda değişken boş kalırsa komutrm -rf /*hâline gelir.chmod -R 777ve yanlış dizindechown -R: Binlerce dosyanın izinlerini ya da sahipliğini tek seferde bozar.curl -fsSL ADRES | sudo bash: İnternetten gelen betiği okumadan root olarak çalıştırır; betiği önce indiriplessile inceleyin ya da dağıtımın paketini kullanın.>yönlendirmesi: Hedef dosyanın içeriğini sıfırlar; eklemek için>>kullanın.ddvemkfs: Yanlış disk adında tüm bölümü siler; hedefilsblkile iki kez doğrulayın.- Uzaktan güvenlik duvarı ve SSH değişiklikleri: Hatalı bir kural bağlantınızı keser; ikinci bir oturumu açık tutun ve UFW kurallarını etkinleştirmeden önce gözden geçirin.
Riskli bir işlemden önce yedek almak bu hataların çoğunu telafi edilebilir kılar; yöntemler VPS yedekleme ve snapshot rehberindedir.
Sık Sorulan Sorular
Linux komutlarını öğrenmeye nereden başlamalıyım?
Önce dosya ve dizin komutlarıyla (ls, cd, cp, mv, rm) başlayın, ardından nano ile dosya düzenlemeyi, sudo ile yetki kullanmayı ve systemctl ile servis yönetimini öğrenin. Bu dört grup günlük işlerin büyük bölümünü karşılar. Her yeni komutta man sayfasına göz atmak ve denemeleri önemli veri içermeyen bir test sunucusunda yapmak, öğrenmeyi hem hızlandırır hem güvenli kılar.
Linux’ta rm ile silinen dosya geri getirilebilir mi?
Komut satırında rm ile silinen dosya çöp kutusuna gitmez ve çoğu durumda geri getirilemez; özel kurtarma araçları bile başarıyı garanti etmez. Bu yüzden tek gerçek güvence yedektir. Silmeden önce hedefi ls ile kontrol edin, kritik dizinlerde rm -i ile her dosya için onay isteyin ve sunucu dışında saklanan düzenli yedekler alın.
sudo ile su arasındaki fark nedir?
sudo, tek bir komutu kendi parolanızla ve yönetici yetkisiyle çalıştırır; her kullanım günlüğe kaydedilir ve yetki komut bitince sona erer. su ise başka bir kullanıcının, genellikle root’un kabuğuna geçer ve o kullanıcının parolasını ister. Sunucularda sudo tercih edilir; root parolasını paylaşmadan yetki verilebilir ve kimin hangi komutu çalıştırdığı izlenebilir.
Bir komutun ne yaptığını çalıştırmadan nasıl öğrenirim?
man komut_adı kılavuz sayfasını, komut_adı --help kısa kullanım özetini gösterir. type komut_adı komutun kabuğa yerleşik mi yoksa ayrı bir program mı olduğunu, which komut_adı ise hangi dosyanın çalışacağını söyler. İnternette bulduğunuz uzun bir komutu çalıştırmadan önce her parçasını ayrı ayrı okuyun; özellikle sudo, rm ve chmod içeren ya da çıktısı bash’e aktarılan komutlarda dikkatli olun.
Linux komutları tüm dağıtımlarda aynı mı?
Dosya, izin, süreç, ağ ve metin komutları tüm dağıtımlarda büyük ölçüde aynıdır; asıl fark paket yönetimindedir. Debian ve Ubuntu apt, AlmaLinux ve Rocky Linux dnf kullanır; güvenlik duvarı araçları da UFW ve firewalld olarak ayrışır. Servis yönetimi güncel dağıtımların neredeyse hepsinde systemd üzerinden yapıldığı için systemctl ve journalctl komutları ortaktır.
Bu makale yardımcı oldu mu?
Geri bildiriminiz için teşekkürler!
kişi faydalı buldu