Linux Nedir? Yazılımcılar İçin Neden Önemli?
Linux, sunucularda, bulut sistemlerinde, geliştirme ortamlarında, Android cihazlarda, ağ ekipmanlarında ve güvenlik araçlarında yaygın kullanılan açık kaynaklı bir işletim sistemi çekirdeğidir. Günlük kullanımda "Linux" dediğimiz şey genellikle Ubuntu, Debian, Fedora, Arch gibi Linux dağıtımlarını ifade eder.
Yazılımcı için Linux bilmek, sadece farklı bir işletim sistemi kullanmak anlamına gelmez. Terminal, dosya izinleri, paket yönetimi, servisler, loglar ve sunucu mantığını anlamak demektir.
CodeForge içinde temel seviyeden ilerlemek istersen Linux 101 dersi iyi bir başlangıçtır.
Linux Nerelerde Kullanılır?
Linux birçok kritik sistemin temelinde yer alır:
- Web sunucuları
- Bulut servisleri
- Docker containerları
- CI/CD ortamları
- Siber güvenlik laboratuvarları
- Android altyapısı
- IoT cihazları
- Veritabanı sunucuları
- DevOps otomasyonları
Bu yüzden web geliştirme, backend, DevOps veya siber güvenlik alanında ilerlemek isteyen biri Linux'tan tamamen kaçamaz.
Linux Dağıtımı Nedir?
Linux çekirdeği tek başına kullanıcı deneyimi sunmaz. Dağıtım, çekirdeğin üzerine paket yöneticisi, sistem araçları, masaüstü ortamı ve varsayılan yazılımlar ekler.
Popüler dağıtımlar:
| Dağıtım | Kullanım Alanı |
|---|---|
| Ubuntu | Başlangıç, masaüstü, sunucu |
| Debian | Stabil sunucu sistemleri |
| Fedora | Güncel paketler ve geliştirici ortamı |
| Arch | İleri seviye özelleştirme |
| Kali Linux | Güvenlik testleri ve eğitim laboratuvarları |
Yeni başlayanlar için Ubuntu veya Debian tabanlı bir ortam genelde daha rahattır.
Terminal Neden Önemli?
Terminal, işletim sistemiyle metin komutları üzerinden konuşmanı sağlar. İlk bakışta zor görünür ama yazılımcı için çok hızlı ve güçlüdür.
Temel komutlar:
Bu komutlar basit görünür, fakat her geliştirme ortamında karşına çıkar.
Dosya Sistemi Mantığı
Linux dosya sistemi kök dizinden başlar: /
Yaygın dizinler:
| Dizin | Anlamı |
|---|---|
/home | Kullanıcı dosyaları |
/etc | Sistem konfigürasyonları |
/var | Loglar ve değişken veriler |
/usr | Uygulama ve kütüphaneler |
/tmp | Geçici dosyalar |
/opt | Harici uygulamalar |
Sunucuda bir hata olduğunda hangi dosyanın nerede olduğunu bilmek büyük avantajdır.
Linux İzinleri
Linux'ta dosya ve klasörlerin okuma, yazma ve çalıştırma izinleri vardır.
Temel izinler:
r: okumaw: yazmax: çalıştırma
İzin mantığını anlamadan sunucu yönetmek veya deployment yapmak zorlaşır.
Paket Yönetimi
Linux'ta yazılımlar paket yöneticileriyle kurulur.
Ubuntu/Debian örneği:
Node.js projesi için:
Paket yöneticisi mantığı, hem işletim sistemi hem de yazılım projeleri için önemlidir.
Log Okuma
Profesyonel yazılım geliştirmede "bende çalışıyor" yeterli değildir. Sunucuda ne olduğunu loglardan anlaman gerekir.
Örnek komutlar:
Log okumak, hata ayıklamanın en pratik yollarından biridir.
Linux ve Docker İlişkisi
Docker containerları çoğunlukla Linux tabanlı çalışır. Bu yüzden Docker öğrenirken Linux dosya sistemi, process, port ve environment variable kavramları sık karşına çıkar.
Basit Docker çalışma mantığı:
Bu komutları anlamak için Linux temeli büyük avantaj sağlar.
Yazılımcı Linux'ta Neleri Bilmelidir?
Minimum seviye için:
- Terminalde gezinme
- Dosya oluşturma, taşıma, silme
- Paket kurma
- Process ve port kontrolü
- Environment variable mantığı
- Basit shell script okuma
- SSH ile sunucuya bağlanma
- Log takip etme
- Dosya izinlerini anlama
Örnek SSH:
14 Günlük Linux Başlangıç Planı
| Gün | Konu |
|---|---|
| 1 | Linux nedir, dağıtım nedir |
| 2 | Terminalde gezinme |
| 3 | Dosya ve klasör komutları |
| 4 | Paket yöneticisi |
| 5 | Kullanıcı ve izinler |
| 6 | Process ve port kontrolü |
| 7 | Log okuma |
| 8 | SSH |
| 9 | Basit shell script |
| 10 | Environment variable |
| 11 | Nginx veya basit web server |
| 12 | Git + Linux kullanımı |
| 13 | Docker temeli |
| 14 | Mini deployment denemesi |
Devam Etmek İçin Önerilen İçerikler
Sık Sorulan Sorular
Yazılımcı olmak için Linux şart mı?
Her alan için ilk gün şart değildir, ama backend, DevOps, siber güvenlik ve sunucu tarafında ciddi avantajdır. En azından terminal ve temel komutlar bilinmelidir.
Windows kullanıyorum, Linux öğrenebilir miyim?
Evet. WSL, sanal makine veya bulut sunucu ile Linux öğrenebilirsin. Başlangıç için WSL oldukça pratiktir.
Kali Linux ile başlamalı mıyım?
Genel yazılım öğreniyorsan hayır. Ubuntu veya Debian daha sağlıklı başlangıçtır. Kali daha çok güvenlik laboratuvarı ve test araçları için uygundur.