https://www.fatihyildirim.tr
Basic Linux   
                  Linux Komutları
 
Linux Uygulamaları
  Linux Komut Grupları
  Linux Network Komutları
  Linux Security Tools
                  Wireshark
2/🆕 Son Güncelleme: r02 19.Ara.25
Linux
  ✔️ Linux, özgür ve açık kaynaklı bir işletim sistemidir
  ✔️ Başlangıçta Linus Torvalds tarafından, topluluk (community) adı verilen geliştiricilerin yardımıyla yaratıldı.
  ✔️ Bu işletim sistemi sadece birkaç yıl içinde dünya çapında pazarlara hakim olmaya başlıyor.
 
Neden Linux?
  ✔️ Özgür ve açık kaynaklı
  ✔️ Güvenirlik
  ✔️ Güvenli
  ✔️ Ölçeklenebilirlik
 
Açık Kaynak Nedir?
  ✔️ Özgürlük 1: Programı sınırsız kullanma özgürlüğü.
  ✔️ Özgürlük 2: Programın nasıl çalıştığını inceleme ve amaçlara uygun değiştirme özgürlüğü.
  ✔️ Özgürlük 3: Programın kopyalarını sınırsız dağıtma özgürlüğü.
  ✔️ Özgürlük 4: Programın değiştirilmiş hâlini dağıtma özgürlüğü.
 
GPL / GNU Genel Kamu Lisansı
  ✔️ GPL kapsamında temel hak - Kaynak koduna erişim, türev çalışmalar yapma hakkı
  ✔️ Karşılıklılık/kopya-sol (Reciprocity/copy-left)
  ✔️ Amaç, mevcut yazılımların tanıtım miktarını artırmak ve uyumluluğu sağlamaktır
  ✔️ Lisans sahipleri, yazılımı değiştirme, kullanma veya dağıtma ve kaynak koduna erişme hakkına sahiptir
 
Özellikleri
  ✔️ Multitasking
  ✔️ Multi-User
  ✔️ Multiprocessing
  ✔️ Protected Memory
  ✔️ Hierarchical File System
 
Bileşenler
  ✔️ Donanım Denetleyicileri Hardware Controllers
  Bu alt sistem, bir Linux kurulumundaki tüm olası fiziksel aygıtlardan oluşur
  ✔️ Linux Kernel Linux Kernel
  Kernel, CPU da dahil olmak üzere donanım kaynaklarına erişimi soyutlar ve aracılık eder. Kernel, işletim sisteminin çekirdeğidir.
  ✔️ İşletim Sistem Servisleri O/S Services
  Bunlar genellikle işletim sisteminin bir parçası olarak kabul edilen hizmetlerdir. (örnek shell)
  ✔️ Kullanıcı Uygulamaları User Application
  Belirli bir Linux sisteminde kullanılan uygulama kümesi. (örnek web-browser)
 
Dizin yapısı
  /
  bash           /bin Temel Kullanıcı komut binary dosyaları
  cat crontab         /etc Sistem için yapılandırma dosyaları
  chmod cups fdisk       /sbin Temel sistem binary dosyaları
  cp fonts fsck usr/bin     /usr Salt okunur kullanıcı uygulaması destek verileri ve binary dosyaları
  date fstap getty usr/include var/cache   /var Değişken veri dosyaları (logs)
  echo host.conf halt usr/lib var/lib 🛠️ /dev Cihaz dosyaları
  grep hostname ifconfig usr/local var/lock 🏠 /home Kullanıcı ana dizinleri
  gunzip hosts init ./local/bin var/log 📚 /lib Kütüphaneler ve çekirdek modülleri
  gzip hosts.allow mkfs ./local/lib var/opt /mnt Geçici dosya sistemleri için dosyaları bağlama noktası
  hostname hosts.deny mkswap ./local/man var/spool /opt İsteğe bağlı yazılım uygulamaları
  kill init reboot ./local/sbin ./spool/cron /proc İşlem ve çekirdek bilgi dosyaları
  less init.d route ./local/share ./spool/cups /boot Sistem boot yükleyici dosyaları
  ln issue usr/share ./spool/mail /media CD-ROM gibi medya dosyaları
  ls machine-id ./share/man var/tmp /root Root kullanıcısı için kök dizin
  mkdir mtap var/www /run Run-time program verileri
  more mtools.conf /srv Bu sistem tarafından sunulan siteye özgü veriler
  mount nanorc /sys Sistem hakkında bilgi sağlayan sanal dizin
  mv networks /tmp Geçici dosyalar
  nano passwd
  open profile
  ping protocols
Kernel
  ps resolv.conf
  pwd rpc Applications
  rm securetty
  sh services Customization
  su shells
  tar timezone
  touch
  unmount
  uname
 
  /var/cache (uygulama önbellek verileri)
  /var/lib (programcılar çalışırken veriler değiştirildi)
  /var/lock (kullanılan kaynakları izlemek için dosyaları kilitle)
  /var/log (günlük dosyaları)
  /var/opt (yüklü paketlere ait değişken veriler.)
  /var/tmp (yeniden başlatmalar arasında kaydedilen geçici dosyalar)
 
  /usr/bin (çoğu kullanıcı komutu - most user commands)
  /usr/include (standart include dosyaları "C" kodu)
  /usr/lib (kodlama ve paketler için obj, bin, lib dosyaları)
  /usr/local (yerel yazılım  - local software)
  /user/share (tüm mimarilerde paylaşılabilir statik veriler)
✔️ Run-Time kernel State
  /proc/version
    /proc# cat version              
  Linux version 6.1.0-37-amd64 (debian-kernel@lists.debian.org) (gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22)
 
✔️ Uname komutuyla sistem bilgilerini göster
    $ uname -a                
    Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
 
 
   
     
  Kernel name Network node Hostname Kernel Release     Kernel Version       Machine HW name Operating System
  Kısa sürüm
    /# uname -r                
    6.1.0-37-amd64                
 
✔️ Dağıtım sürümü ayrıntıları
  /etc/os-release
    /etc# cat os-release                
    PRETTY_NAME="Debian GNU/Linux forky/sid"            
    NAME="Debian GNU/Linux"              
    VERSION_CODENAME=forky              
    ID=debian                  
    HOME_URL="https://www.debian.org/"            
    SUPPORT_URL="https://www.debian.org/support"          
    BUG_REPORT_URL="https://bugs.debian.org/"            
 
    /# lsb_release -a                
    No LSB modules are available.              
    Distributor ID: Debian                
    Description:    Debian GNU/Linux forky/sid            
    Release:        n/a                
    Codename:       forky                
 
✔️ Sistem Durumu ve Ana Bilgisayar Adı (hostnamectl)
    /# hostnamectl                
     Static hostname:  debian15              
    Icon name:  computer-vm            
    Chassis:    vm 🖴              
    Machine ID:  7d4bb46bd38c497e96057c2e9f7ae532        
    Boot ID:    3a3d9c787bf24ccfa3a51f5d8459e964        
    Product UUID:  e363b332-bdc9-42ee-9323-1cb03c57682f        
    Virtualization:  kvm              
    Operating System:  Debian GNU/Linux forky/sid    
   
    Kernel:    Linux 6.1.0-37-amd64          
    Architecture:  x86-64            
    Hardware Vendor:  QEMU              
    Hardware Model:  Standard PC _i440FX + PIIX, 1996_          
    Hardware Version:  pc-i440fx-9.2            
    Firmware Version:  rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org      
    Firmware Date:  Tue 2014-04-01            
    Firmware Age:  11y 8month 1w            
 
CLI - Command Line Interface
     Metinsel mode
     İstenen komutu yürütür
  Bak: Linux Komutları
 
GUI - Graphical User Interface
  mouse ve klavye
  Bak: Linux Uygulamaları
 
Linux Kabuğu (Shell)
  Bir Linux kabuğu , Linux benzeri bir işletim sistemi için komut satırı kullanıcı arayüzü sağlayan bir kabuktur . Bir Linux kabuğu, etkileşimli olarak veya bir kabuk betiği yazmak için kullanılabilen bir komut dili sağlar . Bir kullanıcı genellikle bir terminal emülatörü aracılığıyla bir Linux kabuğu içinde çalışır ; ancak, sunucu sistemleri için seri donanım bağlantıları veya Güvenli Kabuk aracılığıyla doğrudan erişim yaygındır. Bir Linux kabuğunun kullanımı bazı kullanıcılar arasında popüler olsa da, diğerleri bir komut satırı arayüzü (CLI) yerine masaüstü Linux dağıtımlarında veya macOS'ta sağlananlar gibi bir pencereleme sisteminde grafiksel bir kabuk kullanmayı tercih eder .
 
Farklı tipte kabuklar - different types of shells
  * login shels
  * non-login shells
     - bash
     - sh
     - ksh
     -csh
  * Uygulamalı
  # echo $0
  - bash
 
Shell nasıl çağırır?
 
 
input (ls)    
         
      shell
 
         
  Tüm dosyaları listele   Error
 
  Bash Bak Linux Uygulamaları
 
build-in commands
  📝Yerleşik komutlar kabuğun kendisinde bulunur, yani kabuk yeni bir işlem oluşturmadan komutu doğrudan yürütür
 
Temel Shell Komutları
  $ ls
  $ pwd
  $ cd
  $ man
  $ exit
  $ which
  Bak: Linux Komutları
 
Uzaktan login ve Uzaktan copy
  ssh OpenSSH uzak oturum açma istemcisi
  📝 ssh uzak bir makineye giriş yapmak ve uzak makinede komut çalıştırmak için kullanılan bir programdır.
  ssh etkinleştirilmesi
  #sudo apt update
  #sudo apt install openssh-server
  #sudo systemctl status ssh
  #sudo service ssh start
  #sudo service ssh stop
  ssh'ı süresiz olarak kapatmak için şunu girin::
  #sudo systemctl disable ssh
  #sudo systemctl enable ssh
  ssh ile login olma
  $ ssh username@ipadress
 
  scp OpenSSH güvenli dosya kopyalama aracı
     📝 scp, dosyaları bir ağ üzerindeki ana bilgisayarlar arasında kopyalar.
  $ scp filename username@ipaddress:/path/
 
Linux Komut Grupları Bak: Linux Komut Grupları
  1) Dosya ve Dizin Yönetimi  -  File and Directory Management
  2) Dosya içeriği Yönetimi  -  File Content Commands
  3) Dosya sıkıştırma ve Arşivleme  -  File Compression & Archiving
  4) Kullanıcı ve İzin Yönetimi  -  User and Permission Management
  5) Ağ Komutları  -  Networking Commands Linux Ağ Komutları
  6 ) Sistem İzleme ve SüreçYönetimi  -  System Monitoring and Management
  7) Paket Yönetimi  -  Package Management (Ubuntu/Debian)
 
  Sistem Hızını ve Verimliliğini Anında Artıracak En İyi Linux Komutları
  top Gerçek zamanlı performand dedektifi
  df -h Disk Alanınızı Kolayca Kontrol Edin
  du -sh * Alanınızı Neyin Kapladığını Bulun
  free -h RAM Kullanımınızı İzleyin.
  vmstat -a a seçeneğini seçmek,  bize etkin ve etkin olmayan bellek bilgilerini verir. 
  vmstat -s CPU zamanlaması hakkında ihtiyacımız olan tüm bilgileri bize verecektir.
  sudo apt clean Paket Önbelleğini Anında Temizleyin.
  sudo fstrim -v SSD Performansını Optimize Edin.
  uptime Sisteminizin Ne Kadar Süredir Çalıştığını Görün.
  lsof Açık dosyaları listeleyin
  tcpdump Ağdaki trafik dökümünü almak
  netstat -nr Ağ yönlendirme tablosunu kontrol edebiliriz.
  iostat Aygıtlar ve bölümler için sistem giriş/çıkış istatistiklerini izlemek için kullanılır.
 
Linux Dosya Tipleri
  1. Sütun
     - Düz metin
     d Dizin  - Directory
     c Karakter sürücüsü  -  Character driver
     b Blok sürücüsü  -  Block driver
     l Bağlantı dosyası  -  Link file
     s Soket dosyası  -  Socket file
     = or p FIFO dosyası  -  FIFO file
 
  lrwxrwxrwx   1 root root                7 Tem  9 18:11 bin -> usr/bin
  drwxr-xr-x     3 root root          4096 Eki  28 09:39 boot
  drwxr-xr-x   18 root root          3240 Kas 25 15:02 dev
  -rw-r--r--       1 root root 429876592 Kas 28 19:28 docker-desktop-amd64.deb
2/🆕
Linux Önyükleme Sürecini Anlamak
 
 
 
  1️⃣ Güç Açma: Yolculuk, sistemin açılmasıyla başlar.
  2️⃣ BIOS/UEFI: Temel giriş/çıkış sistemi (BIOS) veya UEFI bellenimi, donanımı başlatmak için devreye girer.
  3️⃣ Cihaz Algılama: Sistem, bağlı tüm donanım bileşenlerini algılar.
  4️⃣ GRUB Önyükleyici: GRUB önyükleyici devreye girerek sistemi başlatmak için seçenekler sunar.
  5️⃣ systemd'yi çalıştırın: İlk kullanıcı alanı işlemi (systemd) yürütülür ve tüm hizmetlerin başlatılmasını yönetir.
  6️⃣ Çekirdeği Çalıştır: Çekirdek (Kernel) yüklenir ve sistemin temel işlevleri ve sürücüleri başlatılır.
  7️⃣ Başlangıç ​​Komut Dosyalarını Çalıştır: Sistem, ortamı kurmak için başlangıç ​​komut dosyalarını çalıştırır.
  8️⃣ Kullanıcı Girişi: Sonunda sistem hazır ve kullanıcılar giriş yapabilir!
 
  Bu süreç, donanım başlatmasından kullanıcı etkileşimine kadar her şeyin sorunsuz bir şekilde çalışmasını sağlar.
 
  🔍 İster geliştirici, ister sistem yöneticisi olun, isterse de Linux hakkında meraklı olun, bu adımları anlamak sisteminizdeki sorunları gidermenize ve sisteminizi optimize etmenize yardımcı olur!
 
GRUB Önyükleyici:
  Grand Unified Bootloader (Büyük Birleşik Önyükleyici) ya da GNU GRUB (kısaca GRUB), bilgisayar açılışında işletim sistemlerini yüklemeye yarayan özgür bir önyükleme yazılımıdır. GNU Tasarısı'nın bir parçasıdır. GRUB, işletim sisteminin yüklenerek açılmasını sağlar. Birden fazla sayıda işletim sisteminin yüklü olduğu bilgisayarlarda (örneğin Windows ve Pardus gibi) bilgisayar açılışında bir menü ekrana getirerek kullanıcının bu işletim sistemleri arasında geçiş yapabilmesini sağlar.
 
  Linux sistemlerce yaygın olarak kullanılan GRUB önyükleme yazılımı ile Windows'un önyükleme yazılımı şöyle karşılaştırılabilir:
 
 
 
 
 
 
 
 
 
 
 
 
  https://cgit.git.savannah.gnu.org/cgit/grub.git
 
systemd
  systemd, Linux'ta sistem ve hizmet yönetimi için bir yazılım paketidir ve Linux dağıtımları arasında hizmet yapılandırmasını ve davranışını birleştirmek için oluşturulmuştur . Ana bileşeni, kullanıcı alanını başlatmak ve kullanıcı süreçlerini yönetmek için kullanılan bir başlatma sistemidir. Ayrıca, aygıt yönetimi, oturum açma yönetimi, ağ bağlantısı yönetimi ve olay kaydı dahil olmak üzere çeşitli arka plan programları ve yardımcı programlar için yedekler sağlar . systemd adı, arka plan programlarını adlandırmak için d harfini ekleme Unix geleneğine uyar[1]
 
  systemd, isteğe bağlı olarak daemon'ların başlatılması, anlık görüntü desteği, işlem izleme ve Engelleyici Kilitler gibi özellikler içerir. Bu sadece init daemon'unun adı değil, aynı zamanda systemd init daemon'una ek olarak journald , logind ve networkd daemon'larını ve diğer birçok düşük seviyeli bileşeni içeren, etrafındaki tüm yazılım paketini de ifade eder. Ocak 2013'te Poettering, systemd'yi tek bir program olarak değil, 69 ayrı ikili dosya içeren büyük bir yazılım paketi olarak tanımladı. Entegre bir yazılım paketi olarak systemd, geleneksel init daemon'u tarafından kontrol edilen başlatma dizilerini ve çalışma seviyelerini , ayrıca kontrolü altında yürütülen kabuk komut dosyalarını değiştirir . systemd ayrıca, kullanıcı oturum açmalarını, sistem konsolunu , aygıt takıp çıkarmayı (bkz. udev ), zamanlanmış yürütmeyi ( cron'un yerini alarak ), günlük kaydını, ana bilgisayar adlarını ve yerel ayarları ele alarak Linux sistemlerinde yaygın olan birçok diğer hizmeti de entegre eder.
 
 
 
 
 
 
 
 
 
 
 
 
 
  # basic Linux, # Linux, # Linux Secutity Tools, Linux Komutları
 
 
 
 
  Systemctl systemd sistem ve hizmet yöneticisinin durumunu incelemek ve kontrol etmek için kullanılan bir komuttur. sysctl ile karıştırılmamalıdır .
  systemd-analyze komutu sistem başlatma performans istatistiklerini belirlemek ve sistem ve hizmet yöneticisinden diğer durum ve izleme bilgilerini almak için kullanılabilir.
 
Configuration of systemd
  systemd is configured exclusively via plain-text files although GUI tools such as systemd-manager are also available.
systemd records initialization instructions for each daemon in a configuration file (referred to as a "
unit file") that uses a declarative language, replacing the traditionally used per-daemon startup shell scripts. The syntax of the language is inspired by .ini files.
 
Kernel Çekirdek (kernel), işletim sisteminin temel bileşenidir. Yazılım uygulamaları ile bilgisayarın donanımı arasında bir köprü görevi görür.
  Çekirdek, işlemci, bellek ve aygıtlar gibi sistem kaynaklarını yöneterek her şeyin sorunsuz ve verimli bir şekilde birlikte çalışmasını sağlar.
  Program çalıştırma, dosyalara erişme ve yazıcılar ve klavyeler gibi aygıtlara bağlanma gibi görevleri yerine getirir.
  Bir işletim sistemi, çekirdeği temel alarak temelini oluşturur, ancak aynı zamanda kullanıcı arayüzü, dosya sistemi yönetimi, ağ hizmetleri ve kullanıcıların sistemle etkileşim kurmasını sağlayan çeşitli yardımcı uygulamalar da sunar.
 
 
 
 
 
 
 
 
 
 
 
Linux Kernel Arşiv
  https://www.kernel.org/
 
Çekirdek (Kernel) Türleri
  Aşağıda farklı çekirdek türleri verilmiştir.
  Tek parça çekirdek:  Tüm işletim sistemi hizmetleri çekirdek alanında çalışır → hızlıdır, ancak hata izolasyonu daha azdır. Örnekler arasında Unix, Linux, Open VMS, XTS-400 vb. yer alır.
  Mikroçekirdek :  minimum çekirdek işlevselliği; çoğu hizmet kullanıcı alanına taşındı → daha iyi güvenilirlik, ancak daha fazla ek yük. Örnekler arasında Minix 3 ve Mach (Mach 3.0 gibi gerçek mikroçekirdek sürümleri) yer almaktadır.
  Hibrit çekirdek :  monolitik ve mikro çekirdek fikirlerini bir araya getirir; bazı hizmetler hız için çekirdekte, diğerleri güvenlik için izole edilmiştir. Örnekler arasında Windows NT ailesi (Windows 2000, XP, Vista, 7, 8, 10 vb.), macOS/XNU, ReactOS ve Haiku OS yer almaktadır.
  Nanokernel :  Son derece minimal bir çekirdek olup, yalnızca temel donanım soyutlaması sağlar; geri kalan her şey dışarıdadır. Örnekler arasında Nemesis ve MIT Exokernel projeleri (XOK, Aegis gibi) yer almaktadır.
  Exokernel :  koruma ve yönetimi birbirinden ayırır; uygulamalara donanım soyutlamaları üzerinde doğrudan kontrol sağlar, böylece uygulamalar hangi soyutlamaları oluşturacaklarına kendileri karar verir.
 
Kernel'in işlevi
 
 
 
 
 
 
 
 
 
 
 
 
 
  1. Süreç Yönetimi: Süreçlerin planlanması ve yürütülmesi.
  2. Bellek Yönetimi: Bellek alanının tahsis edilmesi ve serbest bırakılması, sanal belleğin yönetimi, bellek koruma ve paylaşımının ele alınması.
  3. Aygıt Yönetimi: Giriş/çıkış aygıtlarını yönetme, donanım aygıtları için birleşik bir arayüz sağlama ve aygıt sürücüsü iletişimini ele alma.
  4. Dosya Sistemi Yönetimi: Dosya işlemlerini yönetmek ve uygulamalara dosya sistemi arayüzü sağlamak.
  5. Kaynak Yönetimi: Sistem kaynaklarının (CPU süresi, disk alanı, ağ bant genişliği) yönetimi. Esas olarak, ihtiyaç duyulduğunda kaynakların tahsis edilmesi ve serbest bırakılması.
  6. Güvenlik ve Erişim Kontrolü: Kullanıcı izinleri ve kimlik doğrulama gibi erişim kontrol politikalarının uygulanması.
  7. Süreçler Arası İletişim: Mesaj iletimi ve paylaşılan bellek gibi mekanizmalar sağlayarak süreçler arasındaki iletişimi kolaylaştırmak.
 
Çekirdeğin Çalışması
  * Çekirdek, önyükleme sırasında belleğe yüklenen işletim sisteminin ilk parçasıdır ve sistem çalışırken bellekte kalır.
  * Uygulamalar için kullanıcı modundan ayrı, ayrıcalıklı bir modda (çekirdek modu) çalışır; kullanıcı uygulamaları donanıma veya kritik kaynaklara doğrudan erişemez.
  * Uygulamalar, sistem çağrıları (veya yazılım kesintileri) yoluyla çekirdeğe istekte bulunur . Çekirdek, kullanıcı modundan çekirdek moduna geçerek bu istekleri işler.
  * Çekirdek, istenen işlemi gerçekleştirir (örneğin dosya G/Ç, işlem oluşturma, bellek tahsisi).
  * İşlem tamamlandığında, çekirdek sonucu (veya hatayı) kullanıcı alanına döndürür.
  * Çekirdek, çoklu görev yürütmeye olanak sağlamak için gerektiğinde bağlam değiştirme işlemini gerçekleştirir (zamanlayıcı bir sonraki işlemi/iş parçacığını seçer).
 
 
 
 
 
 
  # GRUB, # Kernel, # systemd, # Linux shell, # Linux

[1]
Kaynak: https://en-wikipedia-org.translate.goog/wiki/Systemd?_x_tr_sl=en&_x_tr_tl=tr&_x_tr_hl=tr&_x_tr_pto=wa