Temel Linux Komutları

10 Temmuz 2025 Vekosis Ekibi ~8 dk okuma

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.