Linux komut rehberi
Günlük sistem yönetiminde en çok kullandığım 92 komut, Türkçe açıklamalarıyla. Tıklayıp kopyalayın.
Dosya & Dizin
ls -lah
Dizindeki tüm dosyaları (gizliler dahil) boyutları okunabilir şekilde listeler.
cd -
Bir önceki bulunduğunuz dizine geri döner.
mkdir -p proje/src/lib
İç içe dizinleri tek seferde, eksik olanları da oluşturarak açar.
cp -a kaynak/ hedef/
Dizini izinleri, sahipliği ve tarihleri koruyarak kopyalar.
mv eski.txt yeni.txt
Dosyayı taşır ya da yeniden adlandırır.
rm -rf klasor/
Dizini içeriğiyle birlikte onay sormadan siler. Dikkatli kullanın!
find /var/www -name "*.php" -mtime -7
Son 7 günde değişmiş .php dosyalarını bulur.
find . -type f -size +100M
Bulunduğunuz dizinde 100 MB'tan büyük dosyaları listeler.
ln -s /hedef/yol kisayol
Sembolik bağlantı (kısayol) oluşturur.
tree -L 2
Dizin yapısını 2 seviye derinliğe kadar ağaç olarak gösterir.
stat dosya.txt
Dosyanın boyut, izin, sahip ve erişim/değişiklik zamanlarını gösterir.
Metin & Log
tail -f /var/log/messages
Log dosyasını canlı takip eder; yeni satırlar geldikçe ekrana basar.
less +F dosya.log
Büyük dosyayı sayfa sayfa okur; +F ile canlı takip moduna geçer.
grep -rni "hata" /var/log/
Dizindeki tüm dosyalarda büyük/küçük harf duyarsız arar, satır numarasını gösterir.
grep -v "^#" dosya.conf | grep -v "^$"
Yapılandırma dosyasını yorum ve boş satırlar olmadan gösterir.
journalctl -u nginx --since "1 hour ago"
Bir servisin son bir saatlik systemd loglarını gösterir.
journalctl -p err -b
Son açılıştan bu yana yalnızca hata seviyesindeki logları listeler.
awk '{print $1}' access_log | sort | uniq -c | sort -rn | headWeb erişim logunda en çok istek yapan IP'leri sıralar.
sed -i 's/eski/yeni/g' dosya.txt
Dosyadaki tüm 'eski' ifadelerini yerinde 'yeni' ile değiştirir.
wc -l dosya.txt
Dosyadaki satır sayısını verir.
diff -u eski.conf yeni.conf
İki dosya arasındaki farkları birleşik formatta gösterir.
İzinler & Kullanıcılar
chmod 644 dosya.txt
Sahip okur/yazar, diğerleri sadece okur. Web dosyaları için tipik izin.
chmod -R 755 klasor/
Dizine ve içindekilere özyinelemeli olarak 755 izni verir.
chown -R kullanici:grup /var/www/site
Dizinin sahibini ve grubunu özyinelemeli değiştirir.
useradd -m -s /bin/bash ahmet
Ev dizini ve bash kabuğu olan yeni bir kullanıcı oluşturur.
passwd ahmet
Kullanıcının parolasını değiştirir.
usermod -aG wheel ahmet
Kullanıcıyı mevcut gruplarını silmeden wheel (sudo) grubuna ekler.
id ahmet
Kullanıcının UID, GID ve üye olduğu grupları gösterir.
sudo -i
root kullanıcısının ortamıyla oturum açar.
last -n 20
Sisteme son giriş yapan 20 oturumu listeler.
visudo
sudoers dosyasını sözdizimi denetimiyle güvenli şekilde düzenler.
Süreç & Servis
systemctl status httpd
Servisin durumunu, PID'sini ve son log satırlarını gösterir.
systemctl restart nginx
Servisi yeniden başlatır.
systemctl enable --now mariadb
Servisi açılışta başlayacak şekilde ayarlar ve hemen başlatır.
systemctl list-units --type=service --state=failed
Çökmüş/başarısız servisleri listeler.
ps aux --sort=-%mem | head
En çok bellek kullanan süreçleri gösterir.
top
Süreçleri ve sistem kaynak kullanımını canlı izler (çıkış: q).
htop
top'un renkli ve etkileşimli versiyonu (ayrıca kurulması gerekebilir).
kill -9 1234
PID'si 1234 olan süreci zorla sonlandırır.
pkill -f php-fpm
Komut satırında 'php-fpm' geçen tüm süreçlere sinyal gönderir.
nohup ./betik.sh > cikti.log 2>&1 &
Betiği arka planda, oturum kapansa da çalışmaya devam edecek şekilde başlatır.
crontab -e
Kullanıcının zamanlanmış görevlerini (cron) düzenler.
Disk & Sistem
df -h
Bağlı dosya sistemlerinin doluluk oranlarını gösterir.
df -i
Inode kullanımını gösterir; disk boşken 'yer yok' hatası alıyorsanız buna bakın.
du -sh * | sort -h
Bulunduğunuz dizindeki klasörlerin boyutlarını küçükten büyüğe sıralar.
ncdu /
Disk kullanımını etkileşimli olarak keşfetmenizi sağlar (kurulum gerekebilir).
lsblk
Diskleri ve bölümleri ağaç yapısında listeler.
free -h
RAM ve swap kullanımını okunabilir biçimde gösterir.
uptime
Sistemin ne kadar süredir açık olduğunu ve yük ortalamasını gösterir.
uname -a
Çekirdek sürümü ve mimari bilgisini verir.
cat /etc/os-release
Linux dağıtımının adını ve sürümünü gösterir.
hostnamectl set-hostname sunucu.ornek.com
Sunucunun hostname'ini kalıcı olarak değiştirir.
timedatectl set-timezone Europe/Istanbul
Sistem saat dilimini İstanbul olarak ayarlar.
Ağ
ip a
Ağ arayüzlerini ve IP adreslerini listeler (ifconfig'in modern karşılığı).
ip r
Yönlendirme tablosunu ve varsayılan ağ geçidini gösterir.
ss -tulpn
Dinlemedeki TCP/UDP portlarını ve bunları açan süreçleri listeler.
ping -c 4 8.8.8.8
Hedefe 4 adet ICMP paketi göndererek erişimi test eder.
traceroute ornek.com
Hedefe giden paketlerin geçtiği yönlendiricileri gösterir.
mtr ornek.com
ping ve traceroute'u birleştirir; paket kaybının nerede olduğunu canlı gösterir.
curl -I https://ornek.com
Sadece HTTP yanıt başlıklarını getirir (durum kodu, yönlendirme vb.).
curl -o /dev/null -s -w "%{http_code} %{time_total}s\n" https://ornek.comSitenin HTTP kodunu ve toplam yanıt süresini ölçer.
nc -zv ornek.com 443
Uzak sunucuda bir portun açık olup olmadığını kontrol eder.
firewall-cmd --list-all
firewalld'de aktif bölgenin kurallarını listeler.
firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload
8080/tcp portunu kalıcı olarak açar ve kuralları yeniler.
DNS & SSL
dig ornek.com A +short
Alan adının A kaydını kısa formatta sorgular.
dig ornek.com MX
Alan adının e-posta (MX) kayıtlarını sorgular.
dig @8.8.8.8 ornek.com NS
Belirli bir DNS sunucusu üzerinden NS kayıtlarını sorgular.
dig +trace ornek.com
Sorgunun kök sunuculardan itibaren izlediği yolu gösterir.
dig -x 185.210.95.246 +short
IP adresinin ters DNS (PTR) kaydını sorgular.
whois ornek.com
Alan adının kayıt bilgilerini ve bitiş tarihini gösterir.
openssl s_client -connect ornek.com:443 -servername ornek.com
Sunucuyla TLS bağlantısı kurup sertifika zincirini gösterir.
echo | openssl s_client -connect ornek.com:443 2>/dev/null | openssl x509 -noout -dates
SSL sertifikasının başlangıç ve bitiş tarihlerini gösterir.
openssl x509 -in sertifika.crt -noout -text
Bir sertifika dosyasının tüm ayrıntılarını okunur hale getirir.
Paket Yönetimi
dnf update -y
RHEL/AlmaLinux/Rocky'de tüm paketleri günceller.
dnf install nginx
RHEL tabanlı sistemlerde paket kurar.
dnf provides */bin/dig
Bir dosyanın hangi paketle geldiğini bulur.
apt update && apt upgrade -y
Debian/Ubuntu'da paket listesini yeniler ve paketleri günceller.
apt install curl
Debian/Ubuntu'da paket kurar.
rpm -qa | grep php
Kurulu RPM paketleri içinde arama yapar.
dpkg -l | grep nginx
Debian/Ubuntu'da kurulu paketler içinde arama yapar.
Arşiv & Transfer
tar -czvf yedek.tar.gz klasor/
Dizini gzip ile sıkıştırılmış bir arşive paketler.
tar -xzvf yedek.tar.gz -C /hedef/
Arşivi belirtilen dizine açar.
zip -r site.zip public_html/
Dizini zip arşivine sıkıştırır.
unzip dosya.zip -d hedef/
Zip arşivini belirtilen dizine açar.
rsync -avz --progress kaynak/ kullanici@sunucu:/hedef/
Dosyaları uzak sunucuya sadece değişenleri göndererek eşitler.
scp -P 2222 dosya.txt kullanici@sunucu:/tmp/
Dosyayı SSH üzerinden (farklı portla) uzak sunucuya kopyalar.
wget -c https://ornek.com/dosya.iso
Dosyayı indirir; -c ile yarım kalan indirmeye devam eder.
SSH
ssh -p 2222 kullanici@sunucu
Farklı port üzerinden SSH bağlantısı kurar.
ssh-keygen -t ed25519 -C "[email protected]"
Modern ve güvenli bir ed25519 SSH anahtar çifti üretir.
ssh-copy-id kullanici@sunucu
Açık anahtarınızı sunucuya ekleyerek parolasız girişi etkinleştirir.
ssh -L 3306:127.0.0.1:3306 kullanici@sunucu
Uzak sunucudaki MySQL portunu yerel makinenize tünelle getirir.
sshd -t
SSH sunucu yapılandırmasını yeniden başlatmadan önce sözdizimi denetiminden geçirir.
Aramanızla eşleşen komut bulunamadı.