Linux Temelleri
Linux, özgür yazılım felsefesinin bir ürünü olarak 1991’de Linus Torvalds tarafından geliştirilmeye başlandığından bu yana; güvenlik, esneklik ve açık kaynak kodlu yapısıyla sistem yöneticileri, geliştiriciler ve ağ mühendislerinin vazgeçilmez tercihlerinden biri olmuştur. Modern sunucu sistemlerinin, gömülü cihazların, mobil işletim sistemlerinin (örneğin Android) ve bulut tabanlı altyapıların büyük çoğunluğu bugün Linux çekirdeği üzerinde çalışmaktadır. Bu eğitim, hem yeni başlayanlara hem de temel bilgilerini sistematik şekilde pekiştirmek isteyenlere Linux ekosistemini kapsamlı olarak tanıtan bir içerik sunar.
1. Linux’un Tarihi ve Mimarisi
1) Linux’un Ortaya Çıkışı
Linux; UNIX benzeri bir işletim sistemidir. POSIX uyumlu yapısı, çoklu görev (multitasking), çok kullanıcılı yapı (multi-user), sanal bellek yönetimi ve güçlü dosya sistemi desteği ile profesyonel sistem yönetimi için idealdir.
2) Linux Mimarisi
- Kernel space (çekirdek düzeyi): Donanımla doğrudan etkileşim sağlar. Bellek yönetimi, I/O kontrolü, sistem çağrıları burada gerçekleşir.
- User space (kullanıcı alanı): Uygulamalar, servisler, terminal ve komut satırı işlemleri bu katmanda yürür.
2. Dağıtımların Karşılaştırılması
Linux dağıtımları, farklı ihtiyaçlara göre optimize edilmiştir:
| Dağıtım | Temel Özellikler | Kullanım Alanı |
|---|---|---|
| Debian | Kararlı, konservatif güncellemeler | Sunucular, kritik sistemler |
| Ubuntu | Kullanıcı dostu, LTS sürümleri | Masaüstü, eğitim |
| CentOS/AlmaLinux | Red Hat uyumlu | Kurumsal sunucular |
| Arch | Rolling release, özelleştirilebilir | Geliştirici sistemleri |
| Kali | Güvenlik araçları ön yüklü | Pentest, sızma testleri |
3. Komut Satırı Temelleri
1) Bash ve Shell Mantığı
Linux’ta Bash (Bourne Again Shell) yaygın kullanılan kabuktur. Komutlar yorumlayıcı tarafından çalıştırılır. Shell script’ler ile otomasyon sağlanabilir.
2) Temel Komutlar
pwd# mevcut dizini gösterircd /etc# dizin değiştirirls -la# detaylı dosya listesitouch dosya.txt# boş dosya oluştururrm -rf /tmp/*# dosya/dizin silme işlemi
4. Dosya Sistemi ve Hiyerarşi
Linux, tek kök dizin olan / altına tüm yapıyı yerleştirir.
| Dizin | Açıklama |
|---|---|
/etc | Yapılandırma dosyaları |
/home | Kullanıcı klasörleri |
/var | Loglar ve geçici dosyalar |
/usr | Uygulama ve kütüphaneler |
/bin, /sbin | Sistem araçları |
Dosya türleri:
- Düz dosya (
-) - Dizin (
d) - Bağlantı (
l) - Özel karakter cihazı (
c) - Blok cihaz (
b)
5. Dosya ve Metin İşleme
1) Metin Görüntüleme
cat,less,head,tail
2) Metin Düzenleme
nano: Basit terminal editörüvim: Gelişmiş, modlu metin editörüsed: Akış yönlü düzenlemeawk: Veri işleme ve raporlama aracıgrep "error" /var/log/syslogawk '{print $1, $3}' dosya.txtsed 's/eski/yenisi/g' dosya.txt
6. Paket Yönetimi
Linux’ta yazılım yükleme işlemleri paket yöneticileri aracılığıyla yapılır.
| Paket Yöneticisi | Dağıtım |
|---|---|
| APT (dpkg) | Debian/Ubuntu |
| DNF (yum) | Fedora/RHEL/CentOS |
| pacman | Arch |
sudo apt update && sudo apt install htopsudo dnf install nginx
7. Kullanıcı ve Yetki Yönetimi
1) Kullanıcı İşlemleri
adduser ahmetpasswd ahmetusermod -aG sudo ahmet
2) İzin Sistemi (chmod, chown)
-rw-r--r-- 1 root root 1042 belge.txtr: read (okuma)w: write (yazma)x: execute (çalıştırma)
chmod 755 script.shchown ahmet:ahmet belge.txt
8. Süreç (Process) ve Hizmet (Service) Yönetimi
1) Süreç İzleme
ps auxtop / htopkill -9 PID
2) Systemd ile Servis Yönetimi
systemctl status nginxsystemctl restart sshdsystemctl enable mariadb
9. Ağ Konfigürasyonu ve Testler
1) IP Yapılandırma
ip anmcli d show
2) Ağ Test Komutları
ping google.comtraceroute 8.8.8.8netstat -tulnpss -ltnnmap localhost
3) Güvenlik Duvarı
ufw enableufw allow 22iptables -L
10. Uygulamalı Linux Pratikleri
Eğitimde katılımcılara ayrıca aşağıdaki pratik konular öğretilir:
- Shell script yazarak yedekleme otomasyonu
- Cron ile zamanlanmış görevler
- Log dosyalarının okunması ve döküm analizi
- Temel servislerin kurulumu: Apache, MySQL, OpenSSH
11. Zamanlanmış Görevler: cron ile Otomasyon
Linux sistemlerinde belirli zamanlarda otomatik görev çalıştırmak için cron ve crontab kullanılır. Örneğin her gün saat 03:00’te yedekleme komutu çalıştırmak istersen:
crontab -e
İçerisine şu satırı ekleyebilirsin:
0 3 * * * /home/kullanici/backup.sh
Açıklama:
0 3 * * *→ Her gün 03:00backup.sh→ Komut ya da script
crontab -l # mevcut görevleri listele
Bu sistemle logları temizleyebilir, disk alanını izleyebilir, periyodik güncellemeler alabilirsin.
12. Log Yönetimi ve İzleme
Linux sistemleri olayları log dosyalarına yazar. Loglar sayesinde sistemdeki hataları, güvenlik ihlallerini ve servis durumlarını analiz edebilirsin.
Yaygın Log Dosyaları:
| Dosya | Açıklama |
|---|---|
/var/log/syslog | Sistem mesajları (Debian/Ubuntu) |
/var/log/messages | Genel sistem logları (CentOS) |
/var/log/auth.log | Kimlik doğrulama girişimleri |
/var/log/nginx/ | Web sunucusu logları |
Komutlar;
tail -f /var/log/sysloggrep "Failed" /var/log/auth.logjournalctl -xe# systemd log görüntüleyici
Log analizleri, sistem yöneticiliği ve güvenlik farkındalığı için kritik öneme sahiptir.
13. Temel Yedekleme Stratejileri
Her Linux sisteminde yedekleme hayati öneme sahiptir. rsync, tar ve scp gibi araçlar kullanılarak lokal veya uzak sunuculara veri kopyalanabilir.
rsync ile Yedekleme:
rsync -avh /home/kullanici/ /mnt/backup_disk/
tar ile Arşivleme:
tar -czvf yedek.tar.gz /home/kullanici/
scp ile Uzaktan Yedekleme:
scp yedek.tar.gz kullanici@192.168.1.5:/yedekler/
Yedekleme işlemleri genellikle cron tabanlı olarak zamanlanır ve loglarla birlikte raporlanır.