⁠Linux Sunucu Yönetimi: En Çok Kullanılan Terminal Komutları.

Gezinme ve Listeleme: `cd`, `ls`, `pwd`

Linux Sunucu Yönetimi, dosya ve dizinler için erişim izinlerinin doğru yapılandırılmasıyla güvenliği sağlar.
Linux Sunucu Yönetimi, dosya ve dizinler için erişim izinlerinin doğru yapılandırılmasıyla güvenliği sağlar.

  • pwd (Print Working Directory): O an içinde bulunduğunuz dizinin tam yolunu ekrana basar. Hangi klasörde olduğunuzu unuttuğunuzda hayat kurtarır.
  • cd (Change Directory): Dizinler arasında geçiş yapmanızı sağlar. `cd /var/log` komutu ile `/var/log` dizinine gidebilir, `cd ..` ile bir üst dizine çıkabilir, `cd ~` veya sadece `cd` komutu ile kendi ev dizininize dönebilirsiniz.
  • ls (List): Bulunduğunuz dizindeki dosya ve klasörleri listeler. `ls -l` komutu, dosya izinleri, sahibi, boyutu ve son değiştirilme tarihi gibi detaylı bilgileri gösterir. `ls -a`, gizli dosyalar dahil tüm içeriği listelerken, `ls -h` seçeneği dosya boyutlarını (KB, MB, GB gibi) insanlar tarafından okunabilir formatta gösterir. Sıkça kullanılan kombinasyon ise `ls -lah` şeklindedir.

Oluşturma, Silme ve Taşıma: `mkdir`, `touch`, `rm`, `cp`, `mv`

  • mkdir (Make Directory): Yeni bir dizin (klasör) oluşturur. Örneğin, `mkdir yedekler` komutu “yedekler” adında bir dizin yaratır.
  • touch: Boş bir dosya oluşturur veya var olan bir dosyanın son erişim zaman damgasını günceller. `touch rapor.txt` komutu ile “rapor.txt” adında boş bir metin dosyası oluşturulur.
  • rm (Remove): Dosyaları veya dizinleri silmek için kullanılır. `rm rapor.txt` komutu dosyayı siler. Dizinleri silmek için `-r` (recursive) seçeneği kullanılmalıdır: `rm -r yedekler`. Bu komut tehlikeli olabilir, özellikle `-f` (force) seçeneği ile birlikte kullanıldığında onay sormadan silme işlemi yapar. `rm -rf /` gibi bir komut tüm sistemi silebilir, bu nedenle dikkatli kullanılmalıdır.
  • cp (Copy): Dosyaları veya dizinleri kopyalar. `cp kaynak_dosya hedef_dosya` şeklinde kullanılır. Dizinleri kopyalamak için yine `-r` seçeneği gereklidir: `cp -r /var/www/site /home/user/site_yedek`.
  • mv (Move): Dosyaları veya dizinleri taşır veya yeniden adlandırır. `mv eski_dosya.txt yeni_dosya.txt` komutu dosyanın adını değiştirir. `mv dosya.txt /yeni/konum/` komutu ise dosyayı belirtilen konuma taşır.

Sistem Durumunu ve Performansı İzleme

Bir sunucunun sağlıklı çalıştığından emin olmak, sistem yöneticisinin en temel görevlerinden biridir. Kaynak kullanımını izlemek, olası performans sorunlarını erkenden tespit etmeyi ve müdahale etmeyi sağlar. Linux, sistemin durumu hakkında detaylı bilgi veren çok sayıda güçlü araca sahiptir.

Kaynak Kullanımını Kontrol Etme: `df`, `du`, `free`

Sunucudaki disk, bellek ve işlemci gibi kaynakların durumunu bilmek, kapasite planlaması ve sorun giderme için kritik öneme sahiptir. Bu komutlar, sistem kaynaklarının anlık bir fotoğrafını çekmenizi sağlar.

  • df (Disk Free): Sunucuya bağlı disk bölümlerinin boyutunu, kullanılan ve boş alanı gösterir. `df -h` komutu, çıktıları megabayt (M) ve gigabayt (G) gibi okunması kolay birimlerle formatlar. Bu komut, diskin dolup dolmadığını hızlıca kontrol etmek için idealdir.
  • du (Disk Usage): Belirli bir dizinin veya dosyanın ne kadar disk alanı kapladığını gösterir. `du -sh /var/log` komutu, `/var/log` dizininin toplam boyutunu özet olarak verir. `-s` (summarize) özet bilgi, `-h` (human-readable) ise okunabilir format sağlar.
  • free: Sistemdeki toplam, kullanılan ve boş RAM miktarını gösterir. Ayrıca `swap` (takas alanı) kullanımı hakkında da bilgi verir. `free -h` komutu, bellek bilgilerini yine okunabilir formatta sunar. Sunucunun yavaşlaması durumunda ilk bakılacak komutlardan biridir.

İşlem (Process) Yönetimi: `top`, `ps`, `kill`

Sunucuda çalışan tüm programlar ve servisler birer “işlem” (process) olarak adlandırılır. Hangi işlemlerin ne kadar kaynak (CPU, RAM) tükettiğini bilmek, performans sorunlarını teşhis etmede kilit rol oynar.

  • top: Sistemde o an çalışan işlemleri, CPU ve bellek kullanımlarına göre sıralanmış olarak gerçek zamanlı gösteren interaktif bir araçtır. En çok kaynak tüketen işlemleri anında tespit etmek için kullanılır. `htop` ise `top` komutunun daha renkli ve kullanıcı dostu bir alternatifidir.
  • ps (Process Status): Sistemdeki işlemlerin anlık bir listesini verir. `ps aux` komutu, sistemdeki tüm kullanıcılar tarafından çalıştırılan bütün işlemleri detaylı bir şekilde listeler. Genellikle `grep` komutu ile birlikte kullanılarak belirli bir işlem aranır: `ps aux | grep nginx`.
  • kill: Yanıt vermeyen veya istenmeyen bir işlemi sonlandırmak için kullanılır. Komut, işlem kimliği (PID) ile çalışır. Örneğin, PID’si 1234 olan bir işlemi sonlandırmak için `kill 1234` komutu kullanılır. Eğer işlem normal yolla sonlanmazsa, `kill -9 1234` komutu ile zorla sonlandırılabilir (SIGKILL sinyali gönderilir).

Ağ Yönetimi ve Bağlantı Kontrolü

Sunucular doğaları gereği ağa bağlıdır ve ağ yönetimi komutları, bağlantı sorunlarını teşhis etmek, güvenlik duvarı kurallarını yönetmek ve ağ trafiğini izlemek için hayati önem taşır. Linux işletim sistemleri bu konuda zengin araç setleri sunar.

Temel ağ komutları arasında IP adresi yapılandırmasını görüntülemek, uzak bir sunucuya erişilebilirliği test etmek ve açık portları kontrol etmek yer alır.

  • ip a veya ifconfig: Sunucunun ağ arayüzlerini ve bunlara atanmış IP adreslerini gösterir. `ifconfig` eski bir komut olmasına rağmen hala birçok sistemde bulunmaktadır, ancak modern sistemlerde `ip a` (ip addr show) komutunun kullanılması tavsiye edilir.
  • ping: Belirli bir alan adına veya IP adresine ICMP paketleri göndererek ağ bağlantısının olup olmadığını test eder. `ping google.com` komutu, Google sunucularına ulaşıp ulaşılamadığını ve yanıt süresini kontrol eder.
  • netstat veya ss: Ağ bağlantılarını, yönlendirme tablolarını ve dinlenen portları gösterir. `netstat -tuln` komutu, TCP ve UDP protokollerinde dinlemede olan tüm portları listeler. `ss` (socket statistics) komutu `netstat`’a göre daha modern ve hızlı bir alternatiftir.
  • wget ve curl: Komut satırından dosya indirmek veya web istekleri göndermek için kullanılan güçlü araçlardır. `wget https://example.com/dosya.zip` komutu ile belirtilen dosyayı sunucuya indirebilirsiniz. `curl` ise daha esnektir ve API testleri gibi daha karmaşık HTTP istekleri için sıkça kullanılır.

Etkili Linux Sunucu Yönetimi için İpuçları

Terminal komutlarına hakim olmak, zamanla gelişen bir beceridir. Ancak bazı komutlar ve konseptler, diğerlerinden daha sık karşınıza çıkar ve sunucu yönetiminde verimliliğinizi doğrudan etkiler. Dosya izinlerini doğru ayarlamak, büyük dosyalar içinde arama yapmak veya sunucular arasında güvenli bir şekilde dosya transferi yapmak bu temel becerilerdendir.

En Sık Kullanılan Komutlar ve İşlevleri

Aşağıdaki tablo, bir sistem yöneticisinin cephaneliğinde mutlaka bulunması gereken bazı kritik komutları, işlevlerini ve pratik kullanım örneklerini özetlemektedir. Bu komutlar, günlük yönetim görevlerini büyük ölçüde kolaylaştırır.

Komut Açıklama Örnek Kullanım
grep Dosyalar veya komut çıktıları içinde belirli bir metin kalıbını arar. grep 'error' /var/log/nginx/error.log
find Belirli kriterlere göre (isim, boyut, tarih vb.) dosya ve dizinleri arar. find /home -name "*.php"
chmod Dosya ve dizinlerin erişim izinlerini (okuma, yazma, çalıştırma) değiştirir. chmod 755 script.sh
chown Dosya ve dizinlerin sahibini ve grup sahipliğini değiştirir. chown www-data:www-data /var/www/html
tar Dosyaları tek bir arşiv dosyasında birleştirir ve sıkıştırır (tape archive). tar -czvf arsiv.tar.gz /dizin/
ssh Uzak bir sunucuya güvenli bir şekilde bağlanmak için kullanılır (Secure Shell). ssh kullanici@sunucu_ip_adresi
scp SSH protokolü üzerinden iki sunucu arasında güvenli dosya kopyalaması yapar. scp dosya.txt kullanici@hedef_sunucu:/hedef/dizin/
systemctl Modern Linux dağıtımlarında servisleri (örneğin, web sunucusu) yönetir. sudo systemctl status nginx

İzinler ve Sahiplik: `chmod` ve `chown`

Linux’un güvenlik modelinin temeli dosya izinlerine dayanır. Her dosyanın bir sahibi (user), bir grubu (group) ve diğer herkes (others) için tanımlanmış okuma (r), yazma (w) ve çalıştırma (x) izinleri bulunur. `chmod` komutu bu izinleri değiştirir. Örneğin, `chmod 755 dosya.sh` komutu, dosya sahibine tüm izinleri (rwx), gruba ve diğerlerine ise okuma ve çalıştırma (r-x) izni verir. `chown` komutu ise bir dosyanın veya dizinin sahibini değiştirir. Özellikle web sunucusu gibi servislerin belirli dosyalara erişebilmesi için sahipliğin doğru kullanıcıya (örneğin, `www-data`) atanması gerekir. Bu iki komut, sunucu güvenliğini sağlamanın ve uygulamaların düzgün çalışmasını garantilemenin anahtarıdır.

Linux Sunucu Yönetimi dosya izinleri ve sahiplik, sistem güvenliğini sağlamanın temelini oluşturan en kritik unsurlardır
Linux Sunucu Yönetimi dosya izinleri ve sahiplik, sistem güvenliğini sağlamanın temelini oluşturan en kritik unsurlardır

Bu komutlar, Linux sunucu yönetiminin sadece başlangıç noktasını oluşturmaktadır. Her bir komutun çok sayıda seçeneği ve kullanım senaryosu bulunmaktadır. Terminalde `man komut_adı` (örneğin, `man ls`) yazarak herhangi bir komutun detaylı kullanım kılavuzuna ulaşabilirsiniz. Komut satırında pratik yapmak, bu araçları etkin bir şekilde kullanma yeteneğinizi pekiştirecek ve sunucularınız üzerinde size tam bir kontrol ve esneklik sağlayacaktır.