Giriş: Linux Neden Önemli?
Linux, sunucu altyapılarından gömülü sistemlere, bulut platformlarından mobil cihazlara kadar geniş bir yelpazede kullanılan, açık kaynaklı bir işletim sistemidir. Dünya genelindeki web sunucularının büyük çoğunluğu Linux üzerinde çalışmaktadır. Bir sistem yöneticisi, DevOps mühendisi veya yazılım geliştirici olarak Linux komut satırını etkin şekilde kullanabilmek, günlük işlerinizi hızlandırır ve otomasyon kapılarını açar.
Bu rehberde, Linux terminal ortamında en sık kullanılan temel komutları kategorilere ayırarak inceleyeceğiz. Her komut için kısa açıklama ve pratik örnekler sunacağız. İster yeni başlayan olun ister bilgilerinizi tazelemek isteyin, bu yazı size sağlam bir temel sunacaktır.
1. Dosya ve Dizin İşlemleri
Linux'ta dosya ve dizin yönetimi, terminal kullanımının temel taşıdır. Aşağıdaki komutlarla dosya sistemi üzerinde gezinebilir, dosya ve klasör oluşturabilir, kopyalayabilir veya taşıyabilirsiniz.
ls - Dizin İçeriğini Listeleme
ls komutu, bulunduğunuz dizindeki dosya ve klasörleri listeler. Farklı parametrelerle daha detaylı çıktı alabilirsiniz.
# Basit listeleme
ls
# Detaylı listeleme (izinler, boyut, tarih)
ls -l
# Gizli dosyalar dahil detaylı listeleme
ls -la
# Dosya boyutlarını okunabilir formatta göster
ls -lh
# Zamana göre sıralama (en yeni en üstte)
ls -lt
cd - Dizin Değiştirme
cd (change directory) komutu, dizinler arasında gezinmenizi sağlar.
# Belirtilen dizine git
cd /var/log
# Bir üst dizine çık
cd ..
# Ev dizinine dön
cd ~
# Önceki dizine geri dön
cd -
pwd - Mevcut Dizini Gösterme
pwd (print working directory) bulunduğunuz dizinin tam yolunu gösterir.
pwd
# Çıktı: /home/kullanici/projeler
mkdir - Dizin Oluşturma
Yeni klasörler oluşturmak için mkdir kullanılır.
# Tek bir dizin oluştur
mkdir projeler
# İç içe dizinler oluştur (-p parametresi)
mkdir -p projeler/web/css
# Birden fazla dizin oluştur
mkdir dizin1 dizin2 dizin3
rm - Dosya ve Dizin Silme
rm komutu dosya ve dizinleri siler. Dikkatli kullanılmalıdır, silme işlemi geri alınamaz.
# Dosya silme
rm dosya.txt
# Dizin ve içeriğini silme (recursive)
rm -r klasor/
# Silmeden önce onay isteme
rm -i dosya.txt
# Zorla silme (dikkatli kullanın!)
rm -rf klasor/
cp ve mv - Kopyalama ve Taşıma
cp dosyaları kopyalar, mv ise taşır veya yeniden adlandırır.
# Dosya kopyalama
cp kaynak.txt hedef.txt
# Dizini içindekilerle birlikte kopyalama
cp -r kaynak_dizin/ hedef_dizin/
# Dosya taşıma
mv dosya.txt /home/kullanici/belgeler/
# Dosya yeniden adlandırma
mv eski_isim.txt yeni_isim.txt
find - Dosya Arama
find komutu dosya sisteminde arama yapmanın en güçlü yoludur.
# İsme göre arama
find /var/log -name "*.log"
# Belirli boyuttan büyük dosyaları bulma (100MB+)
find / -size +100M -type f
# Son 7 günde değiştirilen dosyalar
find /home -mtime -7
# Belirli izinlere sahip dosyaları bulma
find / -perm 777 -type f
2. Dosya İçerik İşlemleri
Dosyaların içeriğini görüntülemek, filtrelemek ve analiz etmek için kullanılan komutlar, günlük sistem yönetimi görevlerinde vazgeçilmezdir.
cat - Dosya İçeriğini Görüntüleme
cat komutu dosya içeriğini terminale yazdırır. Kısa dosyalar için idealdir.
# Dosya içeriğini görüntüleme
cat /etc/hostname
# Satır numaralarıyla görüntüleme
cat -n /etc/hosts
# Birden fazla dosyayı birleştirme
cat dosya1.txt dosya2.txt > birlesik.txt
head ve tail - Dosya Başı ve Sonu
head dosyanın başını, tail sonunu gösterir. Özellikle log dosyalarını incelemekte çok kullanışlıdır.
# İlk 10 satırı göster
head /var/log/syslog
# İlk 20 satırı göster
head -n 20 /var/log/syslog
# Son 10 satırı göster
tail /var/log/syslog
# Canlı olarak log takibi (çok kullanışlı!)
tail -f /var/log/syslog
# Son 50 satırı göster
tail -n 50 /var/log/auth.log
grep - Metin Arama ve Filtreleme
grep dosya içinde veya komut çıktısında metin aramak için kullanılır. Sistem yönetiminde en çok kullanılan komutlardan biridir.
# Dosyada kelime arama
grep "error" /var/log/syslog
# Büyük/küçük harf duyarsız arama
grep -i "warning" /var/log/syslog
# Satır numarası ile göster
grep -n "failed" /var/log/auth.log
# Recursive olarak dizinde arama
grep -r "database" /etc/
# Düzenli ifade (regex) ile arama
grep -E "^[0-9]{4}-" /var/log/syslog
# Pipe ile kullanım
ps aux | grep nginx
less ve wc - Sayfalama ve Sayma
less büyük dosyaları sayfa sayfa okumak için, wc ise satır, kelime ve karakter saymak için kullanılır.
# Dosyayı sayfalı görüntüleme (q ile çıkış)
less /var/log/syslog
# Satır sayısı
wc -l /etc/passwd
# Kelime sayısı
wc -w dosya.txt
# Satır, kelime ve karakter sayısı
wc /etc/passwd
# Çıktı: 45 75 2678 /etc/passwd
3. Sistem Bilgisi Komutları
Sunucunuzun durumunu izlemek ve sistem kaynaklarını takip etmek için aşağıdaki komutlar kullanılır.
uname - Sistem Bilgisi
# Kernel bilgisi
uname -r
# Çıktı: 5.15.0-91-generic
# Tüm sistem bilgisi
uname -a
# Çıktı: Linux sunucu1 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
df ve du - Disk Kullanımı
# Disk alanı kullanımı (okunabilir format)
df -h
# Çıktı:
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 100G 45G 50G 48% /
# /dev/sdb1 500G 200G 275G 43% /data
# Dizin boyutunu gösterme
du -sh /var/log/
# Çıktı: 2.3G /var/log/
# Alt dizinlerin boyutlarını gösterme
du -h --max-depth=1 /var/
free - Bellek Kullanımı
# RAM kullanımını okunabilir formatta göster
free -h
# Çıktı:
# total used free shared buff/cache available
# Mem: 16Gi 5.2Gi 2.1Gi 512Mi 8.7Gi 10Gi
# Swap: 4.0Gi 0B 4.0Gi
top ve htop - Süreç İzleme
# Süreçleri canlı izleme
top
# Daha kullanıcı dostu alternatif
htop
# Belirli kullanıcının süreçleri
top -u www-data
İpucu: htop varsayılan olarak yüklü gelmeyebilir. sudo apt install htop ile kurabilirsiniz. Renkli arayüzü ve fare desteğiyle top'a göre çok daha kullanışlıdır.
uptime - Sistem Çalışma Süresi
uptime
# Çıktı: 14:32:07 up 45 days, 3:12, 2 users, load average: 0.15, 0.20, 0.18
4. Kullanıcı ve Yetki Yönetimi
Linux'ta dosya izinleri ve kullanıcı yönetimi, sistem güvenliğinin temel taşlarıdır.
chmod - Dosya İzinlerini Değiştirme
# Dosyaya çalıştırma izni verme
chmod +x script.sh
# Sayısal gösterim ile izin ayarlama
# r=4, w=2, x=1
chmod 755 script.sh # rwxr-xr-x
chmod 644 config.txt # rw-r--r--
chmod 600 gizli.key # rw-------
# Recursive olarak izin değiştirme
chmod -R 755 /var/www/html/
chown - Dosya Sahipliğini Değiştirme
# Dosya sahibini değiştirme
sudo chown kullanici dosya.txt
# Sahip ve grubu birlikte değiştirme
sudo chown www-data:www-data /var/www/html/
# Recursive olarak sahiplik değiştirme
sudo chown -R kullanici:grup /home/kullanici/projeler/
useradd ve passwd - Kullanıcı Yönetimi
# Yeni kullanıcı oluşturma
sudo useradd -m -s /bin/bash yenikullanici
# Kullanıcıya şifre atama
sudo passwd yenikullanici
# Kullanıcıyı gruba ekleme
sudo usermod -aG sudo yenikullanici
# Kullanıcı değiştirme
su - yenikullanici
# Root yetkisiyle komut çalıştırma
sudo systemctl restart nginx
5. Ağ Komutları
Ağ bağlantılarını test etmek, yapılandırmak ve sorun gidermek için kullanılan komutlar.
ping - Bağlantı Testi
# Hedefe ping atma
ping google.com
# Belirli sayıda ping
ping -c 4 192.168.1.1
# Çıktı:
# PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
# 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.543 ms
# 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.421 ms
# ...
# 4 packets transmitted, 4 received, 0% packet loss
ip ve ifconfig - Ağ Yapılandırması
# Ağ arayüzlerini görüntüleme (modern)
ip addr show
# Belirli arayüzü görüntüleme
ip addr show eth0
# Yönlendirme tablosunu gösterme
ip route show
# Eski yöntem (hala yaygın)
ifconfig
ss ve netstat - Ağ Bağlantıları
# Dinlenen portları görüntüleme (modern)
ss -tulnp
# TCP bağlantılarını gösterme
ss -t -a
# Eski yöntem
netstat -tulnp
# Belirli portu kontrol etme
ss -tulnp | grep :80
curl ve wget - Dosya İndirme ve HTTP İstekleri
# URL'den sayfa içeriğini alma
curl https://example.com
# Sadece HTTP durum kodu
curl -o /dev/null -s -w "%{http_code}" https://example.com
# Dosya indirme
wget https://example.com/dosya.tar.gz
# Arka planda indirme
wget -b https://example.com/buyuk-dosya.iso
6. Paket Yönetimi
Linux dağıtımına göre farklı paket yöneticileri kullanılır.
Debian/Ubuntu (apt)
# Paket listesini güncelleme
sudo apt update
# Tüm paketleri güncelleme
sudo apt upgrade
# Paket kurma
sudo apt install nginx
# Paket kaldırma
sudo apt remove nginx
# Paket ve yapılandırmaları kaldırma
sudo apt purge nginx
# Kullanılmayan paketleri temizleme
sudo apt autoremove
RHEL/CentOS/Fedora (yum/dnf)
# Paket kurma (dnf, yum'un modern hali)
sudo dnf install httpd
# Paket güncelleme
sudo dnf update
# Paket kaldırma
sudo dnf remove httpd
# Paket arama
sudo dnf search nginx
# Yüklü paketleri listeleme
dnf list installed
7. Servis Yönetimi (systemctl)
Modern Linux dağıtımlarında servisler systemd ile yönetilir. systemctl komutu bu servisleri kontrol etmek için kullanılır.
# Servis başlatma
sudo systemctl start nginx
# Servis durdurma
sudo systemctl stop nginx
# Servis yeniden başlatma
sudo systemctl restart nginx
# Servis durumunu kontrol etme
sudo systemctl status nginx
# Çıktı:
# ● nginx.service - A high performance web server
# Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
# Active: active (running) since Mon 2025-07-10 09:15:32 UTC; 2h ago
# Main PID: 1234 (nginx)
# Tasks: 5 (limit: 4915)
# Memory: 12.5M
# Servisi sistem başlangıcında otomatik başlat
sudo systemctl enable nginx
# Otomatik başlamayı devre dışı bırak
sudo systemctl disable nginx
# Tüm servislerin durumunu listeleme
systemctl list-units --type=service
Sonuç
Bu rehberde Linux'ta en sık kullanılan temel komutları kategorilere ayırarak inceledik. Dosya yönetiminden sistem izlemeye, ağ yapılandırmasından servis yönetimine kadar geniş bir yelpazede pratik örnekler sunduk.
Linux komut satırını öğrenmenin en etkili yolu pratik yapmaktır. Bir test ortamı kurarak (sanal makine veya container) bu komutları denemenizi şiddetle tavsiye ederiz. Zamanla bu komutlar kas hafızanıza yerleşecek ve günlük işlerinizi çok daha hızlı yapabileceksiniz.
Daha ileri seviye konular (bash scripting, cron jobs, iptables, Docker vb.) için blogumuzdaki diğer yazılarımızı takip edebilirsiniz.
Linux komut satırında verimli olmak, sadece komutları bilmekle değil, onları ne zaman ve nasıl bir arada kullanacağınızı anlamakla mümkündür.