~/komutlar

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 | head

Web 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.com

Sitenin 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ı.