https://www.fatihyildirim.tr
                           Temel Linux    
 
Linux
    Linux Kabuğu (Shell)  
  Neden Linux? Farklı tipte kabuklar 
  Açık Kaynak Nedir ? Shell nasıl çağırır?
    GPL / GNU Genel Kamu Lisansı build-in commands
  Özellikleri Temel Shell Komutları
  Bileşenler Linux Dosya Tipleri
  CLI - Command Line Interface Metadata
  Linux Önyükleme Sürecini Anlamak Daemon
    GRUB Önyükleyici: Uzaktan login ve Uzaktan copy
  systemd Kullanıcı ve Kernel Alanları
    Configuration of systemd Linux İşlemleri (Processes),
  Kernel  Programları ve Hizmetleri (Services)
  Çekirdek (Kernel) Türleri Linux Günlük dosyaları (log files)
    Kernel'in işlevi Kullanıcı Hesaplarını Ekleme, Değiştirme ve Silme
    Çekirdeğin Çalışması Dosyalar ve İzinler
  Dizin yapısı Linux Ağ Arayüzlerini anlamak
  Linux Komut Grupları
  Piping nedir?
                       
                Basic Linux
  Son Güncelleme: 12.05.2026    r.03.01 /menü düzenlemesi
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 🔝
  ✔️ Kullanıcı Uygulamaları User Application
  Belirli bir Linux sisteminde kullanılan uygulama kümesi. (örnek web-browser)
  ✔️ İşletim Sistem Servisleri O/S Services
  Bunlar genellikle işletim sisteminin bir parçası olarak kabul edilen hizmetlerdir. (örnek shell)
  ✔️ 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.
  ✔️ Donanım Denetleyicileri Hardware Controllers
  Bu alt sistem, bir Linux kurulumundaki tüm olası fiziksel aygıtlardan oluşur
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CLI - Command Line Interface     GUI - Graphical User Interface 🔝
     Metinsel mode mouse ve klavye
     İstenen komutu yürütür Bak: Linux Uygulamaları
  Bak: Linux Komutları
  📝 CLI ve GUI Karşılaştırması: Linux, grafiksel kullanıcı arayüzü (GUI) veya komut satırı arayüzü (CLI) aracılığıyla yönetilebilir. Tüketiciler/bireyler tarafından Linux'un doğrudan kullanımının çoğu, Android telefon kullanıcıları veya Linux masaüstü kullanıcıları gibi GUI ile yapılır. Çoğu Linux sunucusu, yöneticiler genellikle daha verimli buldukları için CLI aracılığıyla yönetilir. Bu makale boyunca, örnekler için CLI'yı kullanacağım.
 
 
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!
  Kaynak: Cyber Threat Intelligence
 
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).
 
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)
   
  Özet:
   • /bin, /sbin, /usr/bin ve /usr/sbin. Çalıştırılabilir programların depolandığı yer.
   • /dev. Donanım aygıtlarını temsil eden dosyaların depolandığı yer. 
  Örneğin, Linux sisteminizde bir disket sürücüsü aygıtı varsa, dev klasöründe (/dev/fd0) fd0 adlı bir dosya bulunur.
   • /etc. Yapılandırma dosyalarının (configuration files) depolandığı yer.
   • /home. Her kullanıcı için bir tane olmak üzere, kullanıcı ana dizinlerinin depolandığı yer.
   • /var. Günlük dosyaları (log files)  gibi değişken uzunluktaki dosyaların depolandığı yer.
 
✔️ 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)
 
✔️ Kullandığım Linux sürümünün ne olduğunu nasıl anlarım?
  `uname` komutu, kullandığınız işletim sisteminin temel türünü şu şekilde gösterir:
    $ 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                
 
  `hostnamectl` komutu, Linux sunucusunun ana bilgisayar adını ve makine kimliği, sanallaştırma hipervizörü (kullanılıyorsa), işletim sistemi ve Linux çekirdek sürümü gibi diğer sistem bilgilerini gösterir:
    # hostnamectl          
     Static hostname: Webserver              
           Icon name: computer-vm              
             Chassis: vm 🖴                
          Machine ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx          
             Boot ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx          
      Virtualization: kvm                
    Operating System: Debian GNU/Linux 12 (bookworm)          
              Kernel: Linux 6.1.0-37-amd64              
        Architecture: x86-64              
     Hardware Vendor: QEMU              
      Hardware Model: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx          
    Firmware Version: rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org        
 
✔️ 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            
 
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.
 
Hangi uygulamalar kurulu? 🔝
  Debian ve Ubuntu sistemlerinde, `apt list --installed` komutunu çalıştırarak halihazırda kurulu olan paketlerin listesini alabilirsiniz, örneğin:
 
Piping nedir? 🔝
Bir komutun çıktısını başka bir komuta yönlendirebilirsiniz. Örneğin, ekranın altından kaymayan bir dizin listesi almak istediğinizi varsayalım. `ls -al` komutunun çıktısını `less` komutuna yönlendirerek `less` sayfalama aracını kullanabilirsiniz. Bu durumda, komut isteminde `ls -al | less` yazın ve ekran dolduğunda, dizinin ikinci sayfasını görüntülemek için bir tuşa basmanız istenir.
 
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ı
 
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
 
Metadata 🔝
  Meta veri, veri hakkında veridir. Özünde, meta veri, temel bir veri kümesinin depolayacağı bilgi türünü tanımlar. Örneğin, bir bilgisayardaki dosya sistemini ele alalım. Bir dizin listesini görüntülediğinizde, dosya adını, dosya boyutunu, oluşturulma tarihini, son değiştirilme tarihini vb. görürsünüz. Bunlar, o dizindeki her nesneyle ilişkili meta verilerin temel örnekleridir.
 
Daemon 🔝
  Linux'ta bir sistem daemon'u nedir? Linux'ta bir sistem daemon'u, genellikle harekete geçmeden önce belirli bir dizi koşulu bekleyen arka plan sistem işlemidir. Örneğin, Linux sisteminizde Secure Shell daemon anlamına gelen sshd adlı bir daemon olabilir. Bu sistem daemon'u arka planda çalışır ve Linux ana bilgisayarına giriş yapmak için yetkilendirilmiş gelen istekleri kabul eder. Sistem daemon'ları kullanıcılarla etkileşime girmez ve genellikle kullanıcıların doğrudan kontrolü altında değil, sistemin kendisinin kontrolü altındadır.
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/
 
Kullanıcı ve Kernel Alanları 🔝
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  📝 Kullanıcı adları ve şifreler nereden geliyor? Linux'taki "süper kullanıcı" kullanıcı adı "root" olarak adlandırılır çünkü kök dizinini değiştirebilen tek kullanıcıdır. Kurulum sırasında root kullanıcısı oluşturulur ve bir şifre seçebilirsiniz. Kurulum sonrasında, yöneticiler root kullanıcı hesabını ve hesap yönetimi komutlarını kullanarak normal kullanıcı etkinlikleri için yeni kullanıcılar (ilişkili şifrelerle birlikte) oluşturabilirler.
 
  📝 Nerede Bulabilirim? Bir işletim sisteminin, tıpkı bir dosya dolabı gibi, verileri saklamanıza ve almanıza olanak tanıyan bir dosya sistemi vardır. Çoğu dosya sistemi, dizinler (directories) {klasörler (folders) olarak da adlandırılır] ve bu dizinlerin içinde depolanan dosyalar kavramını kullanır. Linux'ta her şey -hatta donanım bile- bu klasör ve dosya yapısında (file structure) temsil edilir.
 
Linux İşlemleri (Processes), Programları ve Hizmetleri (Services) 🔝
  Linux'ta bir program başlattığınızda, varsayılan olarak etkileşimli olarak çalışır; bu, terminal oturumunuz aracılığıyla programla etkileşim kurabileceğiniz ve tüm girdi ve çıktıların size, kullanıcıya sunulduğu anlamına gelir. Bununla birlikte, programları arka planda da çalıştırabilirsiniz (genellikle "hizmetler" olarak adlandırılır), böylece çıktılarını görmezsiniz ve yine de komut isteminizi kullanarak çalışmanıza devam edebilirsiniz (ve oturumunuz kapatıldığında bile hizmet çalışmaya devam eder). Bu, işlenmesi biraz zaman alacak bir programınız varsa da yararlı olabilir; onu arka plana alabilir ve tamamlandığında uyarı alabilirsiniz.
  Peki, bir işlemin hala çalışıp çalışmadığını nasıl anlarsınız ve sisteminizde çalışan her işlemin listesini nasıl alırsınız? `ps` komutu, Linux'ta çalışan işlemlerin bir listesini görüntüler. Bu komut genellikle, aşağıda gösterilen uzun liste biçiminde her işlemi göstermek için `-ef` bayrağıyla birlikte kullanılır. En üstte, "/sbin/init"in PID (işlem tanımlayıcısı) #1 olduğunu ve root tarafından yönetildiğini göreceksiniz.
    # ps                  
        PID      TTY       TIME      CMD              
     642381 pts/0    00:00:00 bash              
     646012 pts/0    00:00:00 ps              
 
    # ps -ef                  
    UID          PID    PPID  C STIME TTY          TIME CMD          
    root           1       0  0 Oca01 ?        00:01:16 /sbin/init          
    root           2       0  0 Oca01 ?        00:00:00 [kthreadd]          
    root           3       2  0 Oca01 ?        00:00:00 [rcu_gp]          
    root           4       2  0 Oca01 ?        00:00:00 [rcu_par_gp]          
    root           5       2  0 Oca01 ?        00:00:00 [slub_flushwq]          
    root           6       2  0 Oca01 ?        00:00:00 [netns]          
  kesildi                    
 
  Linux, sistem hizmetleri kavramını kullanır; bunlar arka planda çalışan ve genellikle sistem kullanıcıları adına bazı hizmetler sağlayan uzun süreli programlardır. Hizmetleri başlatmak, durdurmak ve durumlarını kontrol etmek için `systemctl` komutunu şu şekilde kullanabilirsiniz:
   
   
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
 
  📝 Service ve Systemctl Arasındaki Geçiş Şu anda, service komutunun yerini yeni systemctl komutunun almasıyla birlikte bir komut geçişi yaşanıyor. Web sitelerinde eski service komutuna yapılan atıfları görebilirsiniz. Yeni systemctl'nin yakında tüm Linux dağıtımlarında service'in yerini alacağını unutmayın.
 
Linux Günlük dosyaları (log files) 🔝
  Herhangi bir Linux sisteminin etkili bir yöneticisi olmak için, sistem durumunu belirlemek, sistem ve uygulama hatalarını bulmak da dahil olmak üzere, günlük dosyalarını bulup arayabilmeniz gerekir. Uygulamalar günlük dosyalarını istedikleri yere (örneğin uygulamanın dizinine) yerleştirebilseler de, çoğu Linux sistem günlük dosyası /var/log dizininde bulunur.
  /var/log dizinine gidip (cd /var/log komutuyla) ls -l komutunu çalıştırarak dosyaları uzun biçimde listelerseniz, oldukça fazla sayıda Linux sistem günlük dosyası olduğunu göreceksiniz.
   
 
                 
                       
                       
                       
                       
                       
                       
  kesildi "                  
 
  Sistemd tabanlı bir işletim sistemi kullanıyorsunuz ve geleneksel syslog, Journal ile değiştirildi.
Journal, klasik syslog ile aynı (ve daha fazla) bilgiyi saklar.
Journal'ı kullanmak ve toplanan günlük verilerine erişmek için, günlükleri /var/log'daki syslog dosyalarının eskiden kullandığı aynı metin tabanlı biçimde çıktı verecek olan "
journalctl" komutunu çağırmanız yeterlidir.
 
  Son sistem kayıtlarını görmek için:
    :/var/log/journal# journalctl --system | tail            
    Oca 03 19:13:59 debian15 systemd[1]: fwupd-refresh.service: Deactivated successfully.    
    Oca 03 19:13:59 debian15 systemd[1]: Finished fwupd-refresh.service - Refresh fwupd metadata and update motd.
    Oca 03 19:14:05 debian15 systemd[1]: zabbix-agent2.service: Scheduled restart job, restart counter is at 17490.
    Oca 03 19:14:05 debian15 systemd[1]: Started zabbix-agent2.service - Zabbix Agent 2.    
    Oca 03 19:14:05 debian15 zabbix_agent2[685099]: Starting Zabbix Agent 2 (7.4.6)    
  kesildi                    
  Journalctl' komutu detay için     https://www.fatihyildirim.tr/LinuxKomutlari.htm
 
Kullanıcı Hesaplarını Ekleme, Değiştirme ve Silme 🔝
  📝 Linux kullanıcı hesaplarının adduser ve deluser komutlarıyla eklenebileceğini, değiştirilebileceğini ve silinebileceğini belirtmek önemlidir. Kullanıcı eklemek, değiştirmek veya silmek için doğru ayrıcalıklara (genellikle root kullanıcısının ayrıcalıkları) sahip olmanız gerekir.
  adduser Kullanıcıları veya grupları eklemek veya değiştirmek
  deluser Bir kullanıcıyı veya grubu sistemden kaldırmak
  id Kullanıcı ve grup bilgisini her belirtilen KULLANICI için yazdır veya (KULLANICI sağlanmadığında) geçerli süreç için yazdır.
  whoami Geçerli kullanıcıyı göster
  Komut detayları için: https://www.fatihyildirim.tr/LinuxKomutlari.htm
 
Dosyalar ve İzinler 🔝
  Dosya, "root" kullanıcısına ve "systemd-journal" grubuna aittir. Dosya izinleri:
    # ls -l /var/log/journal              
    toplam 4                  
 
 
drwx r-s r-x+ 2 root systemd-journal 4096 Oca  3 02:17 7d4bb46bd38c497e96057c2e9f7ae532
 
 
 
  d directory
  r read 4
  w write 2
  x execute 1
 
  type' ile gösterilen tür göstergesi, seçilen nesneyi bir dizin olarak tanımlar, bu nedenle tür olarak "d" kullanılır.
 
  chmod Dosya veya dizinlerin izinlerini değiştirir.
  chown Dosya veya dizinlerin sahipliğini değiştirir.
  Komut detayları: https://www.fatihyildirim.tr/LinuxKomutlari.htm
 
Linux Ağ Arayüzlerini anlamak 🔝
          Linux Ağ Mimarisi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Linux işletim sistemlerinde en az iki ağ arayüzü bulunur.
  loopback Loopback (lo) arayüzü, sunucunun kendisini temsil eden 127.0.0.1 IP adresine sahip olacaktır. Diyelim ki, bulunduğunuz Linux sunucusunda çalışan bir web sayfasını açmak istiyorsunuz. Web tarayıcınızda http://127.0.0.1 adresini açabilirsiniz.
  ethernet Ethernet 0 (eth0) arayüzü genellikle yerel ağa bağlantı sağlar. Linux'u sanal bir makinede (VM) çalıştırıyor olsanız bile, ana bilgisayarın fiziksel ağ arayüzüne bağlanan bir eth0 arayüzünüz olacaktır. Çoğu durumda, yerel ağla ve muhtemelen İnternet üzerinden iletişim kurabilmeniz için eth0'ın çalışır durumda (UP) ve bir IP adresine sahip olduğundan emin olmalısınız.
 
  $ ip link Linux'ta ağ arayüzlerini/aygıtlarını/bağlantılarını (hangi terimi kullanırsanız kullanın) yapılandırmak için kullanılan komut `ip link`'tir. Aşağıdaki örnekte, `ip link` komutunun (başka hiçbir seçenek olmadan) iki farklı arayüzü, durumlarını ve her biriyle ilişkili MAC adreslerini nasıl gösterdiğini görebilirsiniz 
  `ip link` komutu, ağ arayüzlerini yapılandırmak için de kullanılır. Örneğin, `ip link set [dev] { up | down }` komutuyla arayüzlerin durumunu değiştirebilirsiniz. Ayrıca, `ip link set lo mtu 1500` gibi bir komutla ağ arayüzlerini yeniden yapılandırabilirsiniz.
    $ ip link set eth0 up                
    $ ip link set eth0 mtu 1500              
  Komut detayları: https://www.fatihyildirim.tr/LinuxKomutlari.htm
 
  MAC Address
  Bir ortam erişim kontrolü (MAC) adresi, OSI Modelinin 2. katmanında (Veri Bağlantı katmanı) bir ağ arayüzüne atanan benzersiz tanımlayıcıdır. Bir ağ arayüzünün, IP adresi olmasa bile, her zaman bir MAC adresi (genellikle donanım adresi olarak da adlandırılır) vardır. MAC adresleri, bir ağ bağdaştırıcısı üretildiği anda veya sanallaştırılmış bir ağ bağdaştırıcısı ise, bağdaştırıcı oluşturulduğu anda atanır ve her biri iki onaltılık basamaktan oluşan altı grup halinde görünür. Yukarıda gösterilen Ethernet arayüzü eth0'da, MAC adresine bağlantı veya ether adresi de denir. 
  IP Adresi Aynı ağda benzersizdirler, her cihazın en az bir tane IP adresi vardır ve adresler genellikle 1.1.1.1 ile 255.255.255.255 arasında bir yerdedir. Peki bunlar nedir? Tabii ki IP adresleri!
  IP adreslerini görüntülemek için, ip address komutunu veya sadece ip addr komutunu şu şekilde kullanabilirsiniz:
    $ ip address                
    $ ip addr                  
    $ ip addr show                
    $ sudo ip addr add 192.168.1.100/24 dev eth0            
  Detay için: Ağ Altyapısı - Network Infrastructure
  https://www.fatihyildirim.tr/LinuxNetworkKomutlari.htm
 
  ping Linux ağ araçları söz konusu olduğunda, hemen hemen herkesin duyduğu bir araç vardır: ping. Başlangıçta bir kısaltma olan ancak şimdi tam teşekküllü bir kelime olarak kabul edilen ping, ağ erişilebilirliğini test etmek için kullanılan en temel ağ test aracıdır. Ağ üzerinden bir İnternet Kontrol Mesaj Protokolü (ICMP) paketi gönderir ve bir yanıt olup olmadığını size bildirir. Bir ana bilgisayar çalışır durumda ve ağda iletişim kurabiliyorsa, bir ICMP yanıtı döndürülür. Ancak, bir ana bilgisayara erişilemiyorsa, ana bilgisayarın erişilemez olduğu veya zaman aşımına uğradığı (yani ping testinin başarısız olduğu) konusunda bir bildirim alırsınız.
 
# ping -c5 192.168.20.1              
    PING 192.168.20.1 (192.168.20.1) 56(84) bytes of data.          
    --- 192.168.20.1 ping statistics ---              
    5 packets transmitted, 0 received, 100% packet loss, time 4088ms        
                       
 
# ping -fc5 google.com              
    PING google.com (172.217.17.110) 56(84) bytes of data.          
    --- google.com ping statistics ---              
    5 packets transmitted, 5 received, 0% packet loss, time 70ms        
    rtt min/avg/max/mdev = 21.223/21.590/21.725/0.190 ms, pipe 2, ipg/ewma 17.441/21.413 ms  
 
  traceroute Traceroute, yerel sistem ile hedef arasındaki ağı tarayarak, yol üzerindeki her IP yönlendiricisi hakkında bilgi toplar.
  Traceroute komutu, bir ağ sorunu olabileceğini düşündüğünüzde (örneğin, bir yol üzerindeki bir sunucunun çalışmaması veya ara düğümlerden birinden yavaş yanıt gelmesi gibi) ve soruna hangi düğümün neden olduğunu bulmak istediğinizde kullanışlıdır.
 
# traceroute www.google.com              
  traceroute to www.google.com (142.251.150.119), 30 hops max, 60 byte packets      
     1  _gateway (192.168.201.1)  0.478 ms  0.407 ms  0.424 ms        
     2  172.17.1.123 (172.17.1.123)  2.510 ms  2.495 ms  3.351 ms        
     3  169.107.223.31.srv.turk.net (31.223.107.169)  23.273 ms  22.875 ms  22.605 ms    
     4  * 10.170.1.97 (10.170.1.97)  22.012 ms *            
     5  10.170.3.58 (10.170.3.58)  23.194 ms  23.205 ms  21.958 ms        
     6  * * *                  
     7  72.14.210.191 (72.14.210.191)  20.975 ms  19.908 ms  19.871 ms        
     8  72.14.210.190 (72.14.210.190)  19.823 ms  21.297 ms  19.613 ms        
     9  142.251.150.119 (142.251.150.119)  21.521 ms  21.713 ms  21.461 ms      
 
  DHCP Ağınızda düzinelerce, yüzlerce veya binlerce bilgisayar varsa ne olacak? IP adreslerini manuel olarak atamak ve hangi makinenin hangi IP adresine sahip olduğunu takip etmek inanılmaz derecede zaman alıcı olurdu. İşte burada dinamik ana bilgisayar yapılandırma protokolü (DHCP) devreye giriyor.
  DHCP is used to obtain an IP address when a host or device first comes on the network. 
  DHCP, genellikle periyodik olarak değişen IP adresinden herhangi bir yan etki yaşamayan istemci sistemleri veya cihazları için kullanılır. Sunucu sistemlerinde, yöneticiler ya statik IP adreslerini manuel olarak yapılandırır ya da ağ bağdaştırıcısının MAC adresine bağlı statik DHCP rezervasyonları oluştururlar. Bu statik rezervasyonlar, ağ bağdaştırıcısının her yeniden başlatıldığında aynı IP adresini almasını sağlar.
  System kayıtlarında son 10 DHCP kaydının görüntülenmesi:
  /# journalctl --system | grep dhcp | tail --lines=10          
  Oca 05 09:50:53 debian15 NetworkManager[680]: <info>  [1767595853.6526] dhcp4 (ens18): canceled DHCP transaction
  Oca 05 09:50:53 debian15 NetworkManager[680]: <info>  [1767595853.6526] dhcp4 (ens18): activation: beginning transaction (timeout in 45 seconds)
  Oca 05 09:50:53 debian15 NetworkManager[680]: <info>  [1767595853.6527] dhcp4 (ens18): state changed no lease
  Oca 05 09:50:53 debian15 NetworkManager[680]: <info>  [1767595853.6641] dhcp4 (ens18): activation: beginning transaction (timeout in 45 seconds)
  Oca 05 09:51:38 debian15 NetworkManager[680]: <info>  [1767595898.6526] dhcp4 (ens18): canceled DHCP transaction
  Oca 05 09:51:38 debian15 NetworkManager[680]: <info>  [1767595898.6527] dhcp4 (ens18): activation: beginning transaction (timeout in 45 seconds)
  Oca 05 09:51:38 debian15 NetworkManager[680]: <info>  [1767595898.6527] dhcp4 (ens18): state changed no lease
  Oca 05 09:56:38 debian15 NetworkManager[680]: <info>  [1767596198.7395] dhcp4 (ens18): activation: beginning transaction (timeout in 45 seconds)
  Oca 05 09:56:38 debian15 NetworkManager[680]: <info>  [1767596198.7415] dhcp4 (ens18): state changed new lease, address=192.168.201.65, acd pending
  Oca 05 09:56:38 debian15 NetworkManager[680]: <info>  [1767596198.9207] dhcp4 (ens18): state changed new lease, address=192.168.201.65
 
  DNS TCP/IP (en yaygın bağlantı protokolü) kullanarak birbirine bağlanan bilgisayarlar, IP adresleri aracılığıyla iletişim kurarlar; ancak, bağlanmak istediğiniz her şeyin IP adresini hatırlamak zorunda kalmak gerçekten zahmetli olurdu. İnternette arama yapmak istediğiniz her seferinde Google'ın IP adresini hatırlamak zorunda kaldığınızı hayal edin. Alan adı sistemi (DNS), IP adreslerini adlara eşlemek için kullanılır. Herkes web tarayıcısını kullanarak, google.com veya apple.com gibi kullanıcı dostu bir ad girerek, IP adresi yazmaya gerek kalmadan şirketin web sitesine yönlendirilmeye aşinadır.
  Özetle, Linux'ta DNS'nin temelleri şunlardır: 
      • /etc/hosts adlı yerel bir dosya, ağdaki bir DNS sunucusuna gitmeden önce herhangi bir ana bilgisayar adı için ilk arama noktası olarak kullanılır. Ad orada bulunursa, daha fazla arama yapılmaz. Süper kullanıcı olarak, hosts dosyasını düzenleyebilir ve statik bir ad-IP adresi eşlemesi yapılandırabilirsiniz. 
     • /etc/resolv.conf dosyası, aranacak yerel etki alanlarını ve DNS çözümlemesi için kullanılacak sunucu adlarını gösterir.
 
  dig İnternet arama motoru veya kısaca dig, ayrıntılı DNS sorguları gerçekleştirir ve DNS sorunlarını gidermek için harika bir araçtır.
  # dig google.com              
  ;; BADCOOKIE, retrying.              
  ;; BADCOOKIE, retrying in TCP mode.          
                   
  ; <<>> DiG 9.18.33-1~deb12u2-Debian <<>> google.com        
  ;; global options: +cmd              
  ;; Got answer:              
  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52899      
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1    
                   
  ;; OPT PSEUDOSECTION:            
  ; EDNS: version: 0, flags:; udp: 1232            
  ; COOKIE: dd1165bf991fea457acc575c695bdcc1901747aaa41c51a5 (good)    
  ;; QUESTION SECTION:              
  ;google.com.                    IN      A            
                   
  ;; ANSWER SECTION:              
  google.com.             84      IN      A       216.58.212.46        
                   
  ;; Query time: 28 msec              
  ;; SERVER: 192.168.201.1#53(192.168.201.1) (TCP)        
  ;; WHEN: Mon Jan 05 18:46:09 +03 2026          
  ;; MSG SIZE  rcvd: 83              
 
  getent /ahosts `getent` aracı, `ahosts` seçeneğiyle birlikte, özellikle ana bilgisayar girişleri için ad hizmeti değiştirme dosyalarını listeler.
 
 
 
 
 
 
  #GRUB, #Kernel, #systemd, #Linux shell, #Linux, #Linux Ağ Mimarisi

[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