Linux'un temel komutları gruplara ayrılır: gezinme (pwd, ls, cd), dosya işlemleri (cp, mv, rm, mkdir), haklar (chmod, chown), paketler (apt), süreçler (ps, top, kill), arama ve metin işleme (find, grep, sed, awk), ağ (ip, ss, curl) ve servisler (systemctl, journalctl). Aşağıda komutları ve örnekleri içeren tablolar var; terminalde günlük işlerin büyük kısmını kapsarlar.
Bu Linux komutları özeti, işlere göre gruplandırılmıştır: bir dosyayı bulmak, bir paket kurmak, takılı kalmış bir süreci sonlandırmak, bir günlükten satır çekmek ya da bir portu kontrol etmek. Komutlar Ubuntu ve Debian üzerinde denenmiştir; neredeyse hepsi diğer dağıtımlarda da çalışır, temel fark paket yöneticisindedir.
Yardım ve ipuçları
| ead> | | Komut | Ne yapar |
man ls | komutun tam kılavuzu; çıkmak için q, aramak için /kelime |
ls --help | seçeneklerin kısa özeti |
type cd | bunun yerleşik komut, takma ad mı yoksa dosya mı olduğunu gösterir |
which python3 | çalıştırılabilir dosyanın yolu |
history | komut geçmişi; !123 123 numaralı komutu yeniden çalıştırır |
Ctrl+R | geçmişte arama |
Ctrl+C / Ctrl+D | komutu kesmek / kabuğu kapatmak |
Dosya sisteminde gezinme
| ead> | | Komut | Ne yapar |
pwd | bulunulan dizin |
ls -la | gizli dosyalar dahil tümü, haklar ve boyutlarla |
ls -lh | boyutlar okunabilir biçimde (K, M, G) |
ls -lt | değişiklik zamanına göre sıralama |
cd /var/log | mutlak yolla gitmek |
cd .. / cd ~ / cd - | bir üst dizine / ev dizinine / önceki dizine |
tree -L 2 | dizin ağacını 2 seviye göstermek (tree paketi) |
Dosya ve dizin işlemleri
| ead> | | Komut | Ne yapar |
touch file.txt | boş dosya oluşturmak veya değişiklik zamanını güncellemek |
mkdir -p a/b/c | üst dizinleriyle birlikte dizin oluşturmak |
cp file.txt backup.txt | dosya kopyalamak |
cp -r src/ dst/ | dizini içeriğiyle özyinelemeli kopyalamak |
mv old.txt new.txt | yeniden adlandırmak veya taşımak |
rm file.txt | dosyayı silmek (çöp kutusuna gitmez) |
rm -r dir/ | dizini içeriğiyle silmek; -f sormadan, dikkatli olun |
rmdir dir | boş dizini silmek |
ln -s /opt/app/current app | sembolik bağlantı oluşturmak |
stat file.txt | ayrıntılar: boyut, haklar, inode, tarihler |
file image.bin | içeriğe bakarak dosya türünü belirlemek |
İçeriği görüntüleme
| ead> | | Komut | Ne yapar |
cat file | dosyanın tamamını göstermek |
less file | sayfa sayfa gösterim, arama /, çıkış q |
head -n 20 file | ilk 20 satır |
tail -n 50 file | son 50 satır |
tail -f /var/log/syslog | dosyayı canlı izlemek |
wc -l file | satır sayısı |
diff a.conf b.conf | iki dosya arasındaki farklar |
Haklar ve sahiplik
| ead> | | Komut | Ne yapar |
chmod +x script.sh | çalıştırma iznini vermek |
chmod 644 file | rw-r--r--: sahip yazar, diğerleri okur |
chmod 755 dir | rwxr-xr-x: dizinler ve betikler için tipik |
chmod 600 ~/.ssh/id_ed25519 | yalnızca sahip: özel anahtarlar için |
sudo chown www-data:www-data file | sahibi ve grubu değiştirmek |
sudo chown -R alice /srv/app | sahibi özyinelemeli olarak değiştirmek |
id | UID, GID ve gruplarınız |
sudo -i | root kabuğu |
sudo usermod -aG docker alice | kullanıcıyı gruba eklemek |
Paketler (apt, Debian ve Ubuntu)
| ead> | | Komut | Ne yapar |
sudo apt update | depolardan paket listesini güncellemek |
sudo apt upgrade | kurulu paketleri yükseltmek |
sudo apt install nginx | paket kurmak |
sudo apt remove nginx | kaldırmak, yapılandırmayı bırakarak; purge yapılandırmayla birlikte siler |
sudo apt autoremove | gereksiz bağımlılıkları silmek |
apt search htop | paket aramak |
apt show nginx | açıklama ve sürüm |
dpkg -l | grep nginx | paket kurulu mu |
dpkg -L nginx | paketin kurduğu dosyalar |
RHEL, Fedora ve Rocky Linux'ta karşılıkları: dnf install, dnf remove, dnf upgrade, rpm -qa.
Ortam ve profil
| ead> | | Komut | Ne yapar |
echo $PATH | kabuğun programları nerede aradığı |
env | tüm ortam değişkenleri |
export APP_ENV=prod | değişkeni geçerli oturum ve alt süreçler için tanımlamak |
alias ll='ls -la' | komuta kısayol |
source ~/.bashrc | oturumu kapatmadan profili yeniden okumak |
crontab -e / crontab -l | cron görevlerini düzenlemek / listelemek |
Süreçler
| ead> | | Komut | Ne yapar |
ps aux | tüm süreçler, kullanıcı, CPU ve bellek bilgisiyle |
ps aux | grep nginx | süreç aramak |
pgrep -a nginx | ada göre PID ve komut satırı |
top / htop | anlık yük |
kill 1234 | süreçten kapanmasını istemek (SIGTERM) |
kill -9 1234 | zorla sonlandırmak (SIGKILL) — son çare |
pkill -f "python app.py" | komut satırı eşleşmesiyle sonlandırmak |
command &, jobs, fg | arka planda çalıştırmak ve işleri yönetmek |
nohup ./job.sh & | süreç terminal kapansa da çalışmaya devam eder |
free -h | bellek ve swap |
uptime | çalışma süresi ve ortalama yük |
strace -p 1234 | sürecin sistem çağrıları |
Servisler ve günlükler (systemd)
| ead> | | Komut | Ne yapar |
systemctl status nginx | servisin durumu ve günlüğün son satırları |
sudo systemctl start|stop|restart nginx | başlatmak, durdurmak, yeniden başlatmak |
sudo systemctl reload nginx | durdurmadan yapılandırmayı yeniden okutmak |
sudo systemctl enable --now nginx | otomatik başlatmayı açmak ve hemen başlatmak |
systemctl --failed | hata veren birimler |
journalctl -u nginx -f | servisin günlüğü canlı |
journalctl -u nginx --since "1 hour ago" | son bir saatin günlüğü |
journalctl -p err -b | açılıştan beri hatalar |
Dosya arama
| ead> | | Komut | Ne yapar |
find /var/log -name "*.log" | ada göre arama |
find . -type f -mtime -1 | son bir günde değişen dosyalar |
find / -size +500M 2>/dev/null | büyük dosyalar; erişim hataları gizlenmiş |
find . -name "*.tmp" -delete | bulup silmek |
du -sh * | dizindeki her öğenin boyutu |
df -h | dosya sistemlerinde boş alan |
Metin arama ve işleme: grep, sed, awk, jq
| ead> | | Komut | Ne yapar |
grep "error" app.log | kelimeyi içeren satırlar |
grep -i -n "error" app.log | büyük/küçük harf duyarsız, satır numaralarıyla |
grep -r "listen" /etc/nginx/ | dizinde özyinelemeli arama |
grep -v "DEBUG" app.log | kelimenin bulunmadığı satırlar |
grep -c "500" access.log | eşleşme sayısı |
grep -E "warn|error" app.log | genişletilmiş düzenli ifadeler |
sed 's/old/new/g' file | değiştirip sonucu göstermek |
sed -i 's/8080/9090/' app.conf | doğrudan dosyada değiştirmek |
sed -n '10,20p' file | 10–20. satırları göstermek |
awk '{print $1}' access.log | her satırın ilk alanı |
awk -F: '{print $1}' /etc/passwd | kullanıcı adları (ayırıcı :) |
awk '$9 == 500' access.log | dokuzuncu alanı 500 olan satırlar |
sort | uniq -c | sort -rn | tekrarları saymak ve sıklığa göre sıralamak |
cut -d, -f2 data.csv | CSV'nin ikinci sütunu |
jq '.items[].name' data.json | JSON'dan alanları çekmek |
Boru hattı örneği: nginx'e en çok istek gönderen on IP adresi.
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
Yönlendirme ve borular
| ead> | | Yapı | Ne yapar |
cmd > out.txt | çıktıyı dosyaya yazmak (üzerine yazar) |
cmd >> out.txt | dosyanın sonuna eklemek |
cmd 2> err.txt | hataları yönlendirmek |
cmd > all.log 2>&1 | çıktı ve hatalar aynı dosyada |
cmd1 | cmd2 | bir komutun çıktısını diğerinin girdisi yapmak |
cmd | tee out.txt | ekranda göstermek ve kaydetmek |
cmd1 && cmd2 | yalnızca birincisi başarılıysa ikinciyi çalıştırmak |
cmd1 || cmd2 | birincisi başarısızsa ikinciyi çalıştırmak |
Arşivler
| ead> | | Komut | Ne yapar |
tar -czf backup.tar.gz dir/ | paketleyip gzip ile sıkıştırmak |
tar -xzf backup.tar.gz | açmak |
tar -tzf backup.tar.gz | içeriğini görmek |
zip -r site.zip site/ / unzip site.zip | zip arşivleri |
Ağ
| ead> | | Komut | Ne yapar |
ip a | arayüzler ve IP adresleri |
ip r | yönlendirme tablosu |
ping -c 4 8.8.8.8 | bir sunucunun erişilebilirliği |
ss -tulpn | açık portlar ve bunları kullanan süreçler |
dig example.com / nslookup example.com | DNS sorgusu |
curl -I https://example.com | yalnızca yanıt başlıkları |
curl -s https://api.example.com | jq | API isteği ve düzgün JSON |
wget URL | dosya indirmek |
traceroute example.com | paketlerin bir sunucuya giden yolu |
ssh user@host | sunucuya bağlanmak |
ssh-keygen -t ed25519 | SSH anahtar çifti oluşturmak |
scp file user@host:/tmp/ | dosyayı sunucuya kopyalamak |
rsync -avz dir/ user@host:/srv/dir/ | dizini eşitlemek |
sudo ufw status | güvenlik duvarı kuralları |
Sistem ve diskler
| ead> | | Komut | Ne yapar |
uname -a | çekirdek ve mimari |
cat /etc/os-release | dağıtım ve sürüm |
hostnamectl | sunucu adı ve sistem bilgisi |
lsblk | diskler ve bölümler |
sudo mount /dev/sdb1 /mnt | bölümü bağlamak |
who / w | sistemde şu an kimler var |
sudo reboot / sudo shutdown -h now | yeniden başlatma / kapatma |
Kısaca
Günlük çalışma için yirmi kadar komut yeterlidir: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl ve ssh. Bu Linux komutları özetini saklayın ve parmaklarınız alışana kadar başvurun. Komut gruplarının tamamı kurs içinde uygulamalı olarak işlenmektedir.
man veya less görüntüleyicisinden nasıl çıkılır?
<code>q</code> tuşuna basın. İçeride aramak için eğik çizgi ve kelimeyi yazın; <code>n</code> bir sonraki eşleşmeye geçer.
vim editöründen nasıl çıkılır?
<code>Esc</code> tuşuna basın, ardından kaydetmeden çıkmak için <code>:q!</code>, kaydedip çıkmak için <code>:wq</code> yazıp Enter'a basın. Yeni başlayanlar için dosyaları nano ile düzenlemek daha kolaydır.
rm -rf neden tehlikelidir?
Komut onay sormadan ve çöp kutusuna göndermeden siler; yoldaki küçük bir hata (örneğin yıldızdan önceki fazla boşluk) yanlış dizini silebilir. Çalıştırmadan önce yolu <code>ls</code> ile kontrol edin.
Son komutu sudo ile nasıl tekrarlarım?
<code>sudo !!</code> yazın; kabuk önceki komutu tamamen yerine koyar.
Terminalde takılan bir komut nasıl durdurulur?
<code>Ctrl+C</code> kesme sinyali gönderir. Komut yanıt vermiyorsa, başka bir terminalde <code>ps</code> veya <code>pgrep</code> ile PID'sini bulup <code>kill</code> ile sonlandırın.