📚 Çalışma Materyali: Temel Linux Komutları
Kaynak Bilgisi: Bu çalışma materyali, kullanıcı tarafından sağlanan kopyalanmış metin ve bir ders ses kaydı transkripti birleştirilerek hazırlanmıştır.
Giriş: Linux Komutlarının Önemi 💡
Linux işletim sistemleri, güçlü ve esnek yapılarıyla bilinirler. Bu esneklik, kullanıcılara sistem üzerinde tam kontrol sağlayan zengin bir komut seti aracılığıyla elde edilir. Bu materyal, dosya ve dizin yönetiminden ağ işlemlerine, sistem izlemeden sürüm kontrolüne kadar çeşitli kategorilerdeki temel Linux komutlarını kapsamlı bir şekilde sunmayı amaçlamaktadır. Bu komutlar, sistem yöneticileri, geliştiriciler ve ileri düzey kullanıcılar için günlük operasyonlarda vazgeçilmez araçlardır. Linux komutlarına hakimiyet, modern bilişim dünyasında önemli bir yetkinliktir.
1. Dosya ve Dizin İşlemleri 📁
Linux dosya sisteminin temelini oluşturan bu komutlar, dosyaları ve dizinleri yönetmek için kullanılır.
ls: Mevcut çalışma dizinindeki dosya ve dizinleri listeler. ✅ls -R: Alt dizinlerdeki dosyaları da özyinelemeli olarak listeler.ls -a: Gizli dosyaları (.ile başlayanlar) gösterir.ls -al: Dosya izinleri, boyutu, sahibi gibi detaylı bilgilerle birlikte gizli dosyaları da listeler.
cd [dizin_adı]: Dizin değiştirmek için kullanılır.cd ..: Bir üst dizine çıkar.cd: Doğrudan ana dizine (home) gider.
pwd: Mevcut çalışma dizininin tam yolunu görüntüler.cat > [dosya_adı]: Yeni bir dosya oluşturur ve içeriğini doğrudan terminalden girmenizi sağlar (Ctrl+D ile kaydedilir).cat [dosya_adı]: Bir dosyanın içeriğini görüntüler.cat [dosya1] [dosya2] > [dosya3]: İki dosyayı (dosya1vedosya2) birleştirir ve çıktıyı yeni bir dosyaya (dosya3) kaydeder.touch [dosya_adı]: Yeni boş bir dosya oluşturur veya mevcut bir dosyanın erişim/değişiklik zaman damgasını günceller.rm [dosya_adı]: Bir dosyayı siler. ⚠️ Dikkat: Silinen dosyalar genellikle geri alınamaz.cp [kaynak] [hedef]: Dosyaları kaynak yoldan hedef yola kopyalar.- Örnek:
cp belge.txt /home/kullanici/yedekler/
- Örnek:
mv [kaynak] [hedef]: Dosyaları kaynak yoldan hedef yola taşır veya yeniden adlandırır.- Örnek:
mv eski_ad.txt yeni_ad.txt(yeniden adlandırma) - Örnek:
mv rapor.pdf /tmp/(taşıma)
- Örnek:
find / -name [dosya_adı]: Kök dizinden başlayarak belirli bir dosya veya dizini adına göre bulur.file [dosya_adı]: Bir dosyanın türünü belirler (örneğin, metin dosyası, çalıştırılabilir dosya, resim).less [dosya_adı]: Bir dosyanın içeriğini sayfa sayfa görüntülemenizi sağlar. Büyük dosyalar için kullanışlıdır. (Çıkmak içinqtuşuna basın.)head [dosya_adı]: Bir dosyanın ilk on satırını görüntüler.tail [dosya_adı]: Bir dosyanın son on satırını görüntüler.lsof: Hangi dosyaların hangi süreçler tarafından açıldığını gösterir.du -h --max-depth=1: Mevcut dizindeki her bir alt dizinin boyutunu insan tarafından okunabilir formatta gösterir.
2. Dizin İşlemleri 📂
Dizinleri oluşturma, silme, kopyalama ve taşıma gibi temel işlemler.
mkdir [dizin_adı]: Mevcut çalışma dizininde yeni bir dizin oluşturur.rmdir [dizin_adı]: Boş bir dizini siler. (Dolu dizinler içinrm -rkullanılır.)cp -r [kaynak_dizin] [hedef_dizin]: Dizinleri ve içeriklerini özyinelemeli olarak kopyalar.mv [eski_dizin] [yeni_dizin]: Bir dizini yeniden adlandırır veya taşır.find / -type d -name [dizin_adı]: Kök dizinden başlayarak belirli bir dizini adına göre bulur.
3. Süreç Yönetimi ⚙️
Sistemde çalışan programları ve görevleri yönetmek için kullanılır.
ps: Mevcut kullanıcının aktif süreçlerini görüntüler.top: Tüm çalışan süreçleri gerçek zamanlı olarak görüntüler ve sistem kaynakları kullanımını izler. (Çıkmak içinqtuşuna basın.)kill [pid]: Belirtilen Süreç Kimliği (PID) ile bir süreci sonlandırır.pkill [süreç_adı]: Belirtilen ada sahip tüm süreçleri sonlandırır.bg: Askıya alınmış işleri ön plana getirmeden arka planda devam ettirir.fg: En son askıya alınan işi ön plana getirir.fg n:nnumaralı işi ön plana getirir.renice +n [pid]: Çalışan bir sürecin önceliğini değiştirir.
4. Dosya İzinleri 🔒
Dosyaların ve dizinlerin kimler tarafından okunabileceğini, yazılabileceğini veya çalıştırılabileceğini belirler.
chmod [oktal_değer] [dosya_adı]: Bir dosyanın izinlerini değiştirir. Oktal değer 0 (hiçbir izin) ile 7 (tam izin) arasında olabilir.- Örnek:
chmod 755 script.sh(Sahibi için tam izin, grup ve diğerleri için okuma ve çalıştırma izni)
- Örnek:
chown [sahip_adı] [dosya_adı]: Bir dosyanın sahibini değiştirir.chgrp [grup_adı] [dosya_adı]: Bir dosyanın grup sahibini değiştirir.
5. Ağ İşlemleri 🌐
Ağ bağlantılarını yapılandırmak, test etmek ve sorun gidermek için kullanılır.
ping [ana_bilgisayar]: Bir ana bilgisayara bağlantıyı test eder ve sonuçları gösterir.whois [alan_adı]: Bir alan adının WHOIS bilgilerini (kayıt sahibi, kayıt tarihi vb.) alır.dig [alan_adı]: Bir alan adının DNS bilgilerini sorgular.netstat -pnltu: Ağ bağlantıları, yönlendirme tabloları, arayüz istatistikleri gibi çeşitli ağ bilgilerini görüntüler.ifconfig(veya modern sistemlerdeip addr): Tüm ağ arayüzlerinin IP adreslerini görüntüler.ssh [kullanıcı@ana_bilgisayar]: Uzak bir ana bilgisayara güvenli bir şekilde oturum açar.scp [kaynak] [hedef]: SSH üzerinden dosyaları güvenli bir şekilde ana bilgisayarlar arasında transfer eder.wget [url]: Web'den dosya indirir.curl [url]: Bir URL'ye istek gönderir ve yanıtı döndürür.traceroute [alan_adı]: Bir paketin hedefe ulaşmak için izlediği yolu gösterir.mtr [alan_adı]:traceroutevepingişlevlerini birleştiren bir ağ tanılama aracıdır.ss: Soketleri incelemek içinnetstat'a daha modern bir alternatiftir.nmap: Ağ keşif aracı ve güvenlik tarayıcısıdır.
6. Arşivleme ve Sıkıştırma 📦
Dosyaları bir araya getirmek ve boyutlarını küçültmek için kullanılır.
tar cf [dosya.tar] [dosyalar]: Belirtilen dosyaları içerenfile.taradında bir tar arşivi oluşturur.tar xf [dosya.tar]: Bir tar arşivinden dosyaları çıkarır.gzip [dosya]: Bir dosyayı sıkıştırır ve adınıdosya.gzolarak değiştirir.gzip -d [dosya.gz]:dosya.gzdosyasını orijinal haline geri açar.zip -r [dosya.zip] [dosyalar]: Belirtilen dosyaları içerenfile.zipadında bir zip arşivi oluşturur.unzip [dosya.zip]: Bir zip dosyasının içeriğini çıkarır.tar -jcvf [arşiv.tar.bz2] [dizin_adı/]: Bzip2 sıkıştırması ile bir tar arşivi oluşturur.tar -jxvf [arşiv.tar.bz2]: Bzip2 sıkıştırılmış bir tar arşivini açar.
7. Metin İşleme 📝
Dosya içeriklerini aramak, değiştirmek ve analiz etmek için kullanılır.
grep [desen] [dosyalar]: Dosyalar içinde belirli bir deseni arar.grep -r [desen] [dizin]: Bir dizin içinde özyinelemeli olarak deseni arar.komut | grep [desen]: Bir komutun çıktısınıgrep'e yönlendirerek arama yapar.echo 'metin': Terminale metin yazdırır.sed 's/string1/string2/g' [dosya_adı]: Bir dosyadastring1'istring2ile değiştirir (çıktıyı terminale verir).sed -i 's/string1/string2/g' [dosya_adı]: Bir dosyadastring1'istring2ile doğrudan dosya içinde değiştirir (-iseçeneği).diff [dosya1] [dosya2]: İki dosya arasındaki farkları gösterir.wc [dosya_adı]: Bir dosyadaki satır, kelime ve karakter sayısını sayar.awk: Dosyalar üzerinde gelişmiş metin manipülasyonu için çok yönlü bir programlama dilidir.cut -d':' -f1 /etc/passwd:/etc/passwddosyasındaki her satırın ilk alanını (kolonunu):ayırıcı olarak kullanarak keser.
8. Disk ve Sistem Bilgileri 📊
Disk alanı, bellek kullanımı ve sistem bilgileri hakkında bilgi sağlar.
df: Disk kullanımını gösterir.df -h: Disk kullanımını insan tarafından okunabilir formatta gösterir.du: Dizin alanı kullanımını gösterir.du -sh: Mevcut dizinin disk kullanımını insan tarafından okunabilir formatta gösterir.free: Bellek ve takas alanı kullanımını gösterir.free -m: Bellek ve takas alanı kullanımını megabayt cinsinden gösterir.whereis [uygulama]: Bir uygulamanın olası konumlarını (ikili, kaynak, man sayfası) gösterir.
9. Sistem Bilgileri ℹ️
Sistem hakkında genel bilgileri görüntüler.
date: Mevcut tarih ve saati gösterir.cal: Mevcut ayın takvimini gösterir.uptime: Sistemin ne kadar süredir çalıştığını gösterir.w: Kimlerin çevrimiçi olduğunu ve ne yaptıklarını görüntüler.whoami: Hangi kullanıcı olarak oturum açtığınızı gösterir.uname -a: Çekirdek (kernel) bilgilerini gösterir.
10. Paket Yönetimi 📦 (Debian/Ubuntu tabanlı sistemler için)
Yazılım paketlerini kurmak, güncellemek ve kaldırmak için kullanılır.
sudo apt-get update: Paket listelerini güncellemeler için yeniler.sudo apt-get upgrade: Yükseltilebilir tüm paketleri günceller.sudo apt-get install [paket_adı]: Belirtilen paketi kurar.sudo apt-get remove [paket_adı]: Belirtilen paketi kaldırır.
11. Diğer Yardımcı Komutlar ve Otomasyon 🛠️
Genellikle betiklerde kullanılan veya özel durumlar için faydalı komutlar.
komut1 ; komut2:komut1'i çalıştırır, ardındankomut2'yi çalıştırır (ilk komutun başarısından bağımsız).komut1 && komut2:komut1başarılı olursakomut2'yi çalıştırır.komut1 || komut2:komut1başarısız olursakomut2'yi çalıştırır.komut &: Komutu arka planda çalıştırır.man [komut]: Herhangi bir komut hakkında detaylı bilgi (manuel sayfası) almak için kullanılır. 💡
12. Sürüm Kontrolü (Git Komutları) 🌳
Yazılım geliştirme projelerinde kod değişikliklerini yönetmek için kullanılır.
git init: Yerel bir Git deposu başlatır.git clone [url]: Uzak bir depodan yerel bir kopya oluşturur.git add [dosya_adı]: Bir dosyayı hazırlık alanına (staging area) ekler.git commit -m "Mesajınız": Değişiklikleri bir mesajla kaydeder (commit).git status: Çalışma dizininin durumunu kontrol eder.git pull: Uzak depodan en son değişiklikleri çeker.git push: Yerel değişiklikleri uzak depoya gönderir.git branch: Tüm yerel dalları (branch) listeler.git branch [dal_adı]: Yeni bir dal oluşturur.git checkout [dal_adı]: Bir dala geçiş yapar.git merge [dal_adı]: Bir dalı aktif dala birleştirir.git stash: Çalışma dizinindeki kaydedilmemiş değişiklikleri geçici olarak saklar.git stash apply: Saklanan değişiklikleri uygular.git log: Commit geçmişini görüntüler.git reset: HEAD işaretçisini önceki bir commite sıfırlar.git rm [dosya_adı]: Bir dosyayı sürüm kontrolünden kaldırır.git rebase: Commit'leri başka bir temel üzerine yeniden uygular.git revert [commitID]: Belirli bir commit'in yaptığı tüm değişiklikleri geri alan yeni bir commit oluşturur.git cherry-pick [commitID]: Mevcut commit'lerden bazılarının getirdiği değişiklikleri uygular.
13. Ortam Değişkenleri 🌍
Sistem ve kullanıcı ortamını etkileyen değişkenleri yönetir.
env: Tüm ortam değişkenlerini görüntüler.echo $DEĞİŞKEN: Bir ortam değişkeninin değerini görüntüler.export DEĞİŞKEN=değer: Bir ortam değişkeninin değerini ayarlar.alias yeni_komut='eski_komut seçenekler': Belirli seçeneklerle eski bir komutu çalıştıran yeni bir komut takma adı oluşturur.echo $PATH: PATH ortam değişkenini yazdırır.export PATH=$PATH:/yeni/yol:/yeni/yoldizinini PATH'e ekler, böylece sistem bu dizindeki çalıştırılabilir dosyaları bulabilir.
14. Görev Zamanlama (Cron İşleri) ⏰
Belirli zamanlarda veya olaylarda komutların otomatik olarak çalıştırılmasını sağlar.
crontab -l: Tüm cron işlerinizi listeler.crontab -e: Cron işlerinizi düzenler.crontab -r: Tüm cron işlerinizi kaldırır.crontab -v: Cron işlerinizi en son ne zaman düzenlediğinizi gösterir.crontab [dosya]: Bir dosyadan cron işi yükler.@reboot komut: Sistemi yeniden başlattığınızda çalışacak bir görev planlar.
15. Paket Yönetimi (pip - Python Paket Yöneticisi) 🐍
Python paketlerini kurmak ve yönetmek için kullanılır.
pip install [paket_adı]: Bir Python paketini kurar.pip uninstall [paket_adı]: Bir Python paketini kaldırır.pip freeze > requirements.txt: Kurulan paketleri birrequirements.txtdosyasına kaydeder.pip install -r requirements.txt: Birrequirements.txtdosyasındaki paketleri kurar.
16. Kabuk Betikleme (Shell Scripting) 📜
Karmaşık görevleri otomatikleştirmek için betikler yazmayı sağlar.
#!/bin/bash: Betik yorumlayıcısını belirten shebang satırı.$0, $1, ..., $9, ${10}, ${11}: Betik argümanları.if [koşul]; then ... fi: Bash betiklerinde if ifadesi.for i in {1..10}; do ... done: Bash betiklerinde for döngüsü.while [koşul]; do ... done: Bash betiklerinde while döngüsü.function isim() { ... }: Bir fonksiyon tanımlar.
17. Sistem İzleme ve Performans 📈
CPU, bellek ve disk I/O gibi sistem kaynaklarının kullanımını izler.
iostat: CPU istatistiklerini ve cihazlar, bölümler ve ağ dosya sistemleri için giriş/çıkış istatistiklerini raporlar.vmstat: Süreçler, bellek, sayfalama, blok I/O, tuzaklar, diskler ve CPU etkinliği hakkında bilgi raporlar.htop: Unix sistemleri için etkileşimli bir süreç görüntüleyicidir.top'a göre daha kullanıcı dostu bir alternatiftir.
18. Arama ve Bulma 🔍
Sistemdeki dosyaları ve komutları bulmak için kullanılır.
locate [dosya_adı]: Adına göre bir dosya bulur. Veritabanıupdatedbkomutuyla güncellenir.whereis [program_adı]: Bir komutun ikili, kaynak ve manuel sayfa dosyalarını bulur.which [komut_adı]: Kabuk komutlarının tam yolunu gösterir.
19. Disk Kullanımı (Gelişmiş) 💾
Disk performansını test etmek veya belirli boyutlarda dosyalar oluşturmak için kullanılır.
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k: Disk hızını test etmek için belirli boyutta bir dosya oluşturur.hdparm -Tt /dev/sda: Sabit diskinizin okuma hızını ölçer.
20. Diğer (Çeşitli) ⚠️
Bazı özel veya dikkat gerektiren komutlar.
yes > /dev/null &: Bir sistemi sınırlarına zorlamak için kullanılır.:(){ :|:& };:: Bir "fork bomb" komutudur. ⚠️ Dikkat: Üretim sistemlerinde veya önemli verilerin olduğu sistemlerde KESİNLİKLE ÇALIŞTIRMAYIN. Sistemi çökertme potansiyeli vardır.
Bu komut setine hakimiyet, Linux tabanlı sistemlerde verimliliği artırır ve karmaşık görevlerin üstesinden gelmeyi kolaylaştırır. Her bir komutun doğru ve etkin kullanımı, sistem yönetiminde ve yazılım geliştirmede kritik öneme sahiptir.








