Linux, açık kaynak kodlu ve özgür bir işletim sistemi
çekirdeğidir. 1991 yılında Finlandiyalı bilgisayar mühendisi Linus
Torvalds tarafından geliştirilmeye başlanmıştır. İlk olarak Unix işletim
sistemine alternatif olarak tasarlanan Linux, zaman içinde geniş bir
geliştirici topluluğunun katkılarıyla büyümüş ve dünya genelinde yaygın
bir kullanım alanı bulmuştur.
- Açık Kaynaklı ve Özgür Yazılım:
- Linux'un kaynak kodu herkese açıktır. GNU Genel Kamu Lisansı (GPL)
altında dağıtılır, bu sayede kullanıcılar yazılımı istedikleri gibi
inceleyebilir, değiştirebilir ve dağıtabilirler.
- Linux'un kaynak kodu herkese açıktır. GNU Genel Kamu Lisansı (GPL)
- Güvenilirlik ve Kararlılık:
- Linux sistemleri, yüksek kararlılıkları ve uzun çalışma süreleri ile bilinir. Sunucular ve kritik görevler için idealdir.
- Güvenlik:
- Linux, güçlü güvenlik özelliklerine sahiptir. Kullanıcı izinleri ve
erişim kontrol mekanizmaları sayesinde virüs ve zararlı yazılımlara
karşı daha dayanıklıdır.
- Linux, güçlü güvenlik özelliklerine sahiptir. Kullanıcı izinleri ve
- Esneklik ve Özelleştirilebilirlik:
- Kullanıcılar, ihtiyaçlarına göre sistemi özelleştirebilir. Farklı
masaüstü ortamları, pencere yöneticileri ve uygulamalar arasından seçim
yapabilirler.
- Kullanıcılar, ihtiyaçlarına göre sistemi özelleştirebilir. Farklı
- Donanım Desteği ve Performans:
- Geniş bir donanım yelpazesini destekler ve eski veya düşük özellikli cihazlarda bile verimli çalışabilir.
- Topluluk ve Destek:
- Dünya çapında aktif bir geliştirici ve kullanıcı topluluğuna
sahiptir. Sorunlar için hızlı çözümler ve sürekli güncellemeler sunulur.
- Dünya çapında aktif bir geliştirici ve kullanıcı topluluğuna
- Başlangıç (1991):
- Linus Torvalds, Helsinki Üniversitesi'nde öğrenciyken kendi kişisel
kullanımına yönelik bir işletim sistemi çekirdeği geliştirmeye başladı.
- Linus Torvalds, Helsinki Üniversitesi'nde öğrenciyken kendi kişisel
- İlk Yayın ve Katkılar:
- Torvalds, projesini İnternet üzerinden paylaştı ve diğer
programcıların katkılarına açtı. Bu, Linux'un hızlı bir şekilde
gelişmesini sağladı.
- Torvalds, projesini İnternet üzerinden paylaştı ve diğer
- GNU Projesi ile Entegrasyon:
- Richard Stallman tarafından başlatılan GNU Projesi'nin araçları ve
yardımcı programları ile birleştirilen Linux çekirdeği, tam bir işletim
sistemi haline geldi.
- Richard Stallman tarafından başlatılan GNU Projesi'nin araçları ve
- Gelişim ve Yaygınlaşma:
- 1990'ların sonları ve 2000'li yıllarda, birçok şirket ve kuruluş
Linux'u benimsemeye başladı. Sunucu pazarında önemli bir pay elde etti.
- 1990'ların sonları ve 2000'li yıllarda, birçok şirket ve kuruluş
Linux çekirdeği üzerine inşa edilmiş, farklı ihtiyaç ve tercihlere yönelik birçok dağıtım (distro) bulunmaktadır:
- Ubuntu:
- Kullanıcı dostu arayüzü ve geniş paket deposu ile özellikle yeni başlayanlar için popüler bir seçenektir.
- Fedora:
- Güncel yazılım ve teknolojileri deneyimlemek isteyen kullanıcılar için idealdir. Red Hat tarafından desteklenir.
- Debian:
- Kararlılığı ve güvenilirliği ile bilinir. Birçok diğer dağıtımın temelini oluşturur (örneğin, Ubuntu).
- CentOS / Red Hat Enterprise Linux (RHEL):
- Kurumsal düzeyde destek ve uzun vadeli güncellemeler sunar. Sunucular ve iş istasyonları için uygundur.
- Arch Linux:
- Kullanıcılara sistemi en ince ayrıntısına kadar özelleştirme imkanı sunar. Rolling release modelini takip eder.
- openSUSE:
- Hem yeni başlayanlar hem de deneyimli kullanıcılar için tasarlanmıştır. Güçlü yönetim araçları sunar.
- Sunucular ve Veri Merkezleri:
- Web sunucuları, veri tabanları ve bulut hizmetleri genellikle Linux tabanlıdır.
- Masaüstü Bilgisayarlar:
- Kullanıcılar, Windows veya macOS'a alternatif olarak Linux dağıtımlarını tercih edebilirler.
- Gömülü Sistemler ve IoT Cihazları:
- Router'lar, akıllı televizyonlar, otomotiv sistemleri ve diğer gömülü cihazlarda kullanılır.
- Mobil Cihazlar:
- Android işletim sistemi, Linux çekirdeği üzerine inşa edilmiştir.
- Süper Bilgisayarlar:
- Dünyanın en hızlı bilgisayarlarının büyük bir çoğunluğu Linux kullanır.
- Eğitim ve Araştırma:
- Üniversiteler ve araştırma kuruluşları, esnekliği ve maliyet etkinliği nedeniyle Linux'u tercih eder.
- Özgür Yazılım Hareketi:
- Linux, özgür yazılım hareketinin önemli bir parçasıdır.
Kullanıcıların yazılımı çalıştırma, inceleme, değiştirme ve dağıtma
özgürlüğünü savunur.
- Linux, özgür yazılım hareketinin önemli bir parçasıdır.
- Topluluk Katkısı:
- Binlerce geliştirici, projeye kod, dökümantasyon ve destek sağlayarak katkıda bulunur.
- Şeffaflık ve Güvenlik:
- Kaynak kodunun açık olması, güvenlik açıklarının hızlı bir şekilde tespit edilip düzeltilmesini sağlar.
- Linux Kurulumu:
- Canlı USB/DVD: İşletim sistemini kurmadan önce denemek için kullanılabilir.
- Sanal Makineler: VirtualBox veya VMware gibi araçlarla Linux'u mevcut işletim sisteminiz üzerinde çalıştırabilirsiniz.
- Çift Önyükleme (Dual Boot): Bilgisayarınıza hem mevcut işletim sisteminizi hem de Linux'u kurabilirsiniz.
- Temel Komutlar ve Terminal Kullanımı:
- Linux'un gücü terminaldedir. Temel komutları öğrenmek, sistem üzerinde daha fazla kontrol sağlar.
- Masaüstü Ortamları:
- GNOME, KDE Plasma, XFCE, LXDE gibi farklı masaüstü ortamlarını deneyebilirsiniz.
- Paket Yönetimi:
- Yazılımları kurmak, güncellemek ve kaldırmak için kullanılan araçlardır (örneğin,
apt
,yum
,dnf
,pacman
).
- Yazılımları kurmak, güncellemek ve kaldırmak için kullanılan araçlardır (örneğin,
- Kaynaklar ve Topluluklar:
- Forumlar ve Siteler: Stack Overflow, Linux Mint Forums, Arch Linux Forums.
- Eğitim Platformları: Linux Academy, Coursera, edX.
- Belgelendirme: Her dağıtımın kendi resmi belgeleri ve wiki sayfaları vardır.
- Maliyet:
- Çoğu Linux dağıtımı ücretsizdir. Lisans maliyeti olmadan kullanılabilir.
- Güncelleme ve Destek:
- Sürekli güncellemeler ve uzun vadeli destek seçenekleri mevcuttur.
- Kişiselleştirme:
- İhtiyaçlarınıza ve zevklerinize göre sistemi özelleştirebilirsiniz.
- Öğrenme ve Kariyer Fırsatları:
- Linux bilgisi, bilişim sektöründe önemli bir beceridir. Sistem
yönetimi, siber güvenlik, yazılım geliştirme gibi alanlarda avantaj
sağlar.
- Linux bilgisi, bilişim sektöründe önemli bir beceridir. Sistem
Terminal, işletim sisteminizle metin tabanlı komutlar aracılığıyla etkileşim kurmanızı sağlayan bir uygulamadır. Komut Satırı Arayüzü (CLI)
ise terminal üzerinden girilen komutların yorumlanması ve
çalıştırılması sürecini ifade eder. CLI, grafiksel kullanıcı arayüzüne
(GUI) alternatif olarak, sistemle daha doğrudan ve hızlı bir şekilde
iletişim kurmanızı sağlar.
- Verimlilik ve Hız:
- Komut satırı, belirli görevleri grafiksel arayüze göre daha hızlı ve verimli bir şekilde gerçekleştirmenize olanak tanır.
- Güç ve Esneklik:
- CLI, sistem üzerinde daha fazla kontrol sağlar ve karmaşık işlemleri otomatikleştirmek için script yazmanıza imkan tanır.
- Kaynak Kullanımı:
- Terminal uygulamaları genellikle daha az sistem kaynağı tüketir, bu da özellikle düşük donanımlı sistemlerde avantajlıdır.
- Uzak Erişim ve Yönetim:
- SSH gibi protokoller aracılığıyla uzak sunuculara bağlanarak yönetim işlemlerini gerçekleştirebilirsiniz.
- GNOME Terminal:
- GNOME masaüstü ortamının varsayılan terminal uygulamasıdır.
- Konsole:
- KDE masaüstü ortamı için varsayılan terminal uygulamasıdır.
- xterm, rxvt, Terminator, Tilix:
- Farklı özellikler sunan diğer terminal emülatörleridir.
Bir komut satırı genellikle aşağıdaki yapıyı izler:
komut [seçenekler] [argümanlar]
pwd
- Geçerli dizini gösterir.
pwd
ls
- Dizindeki dosya ve klasörleri listeler.
ls -al
cd
- Dizinler arasında geçiş yapar.
cd /home/kullanici
mkdir
- Yeni bir klasör oluşturur.
mkdir yeni_klasor
touch
- Yeni bir dosya oluşturur veya mevcut dosyanın erişim zamanını günceller.
touch yeni_dosya.txt
cp
- Dosya veya klasör kopyalar.
cp kaynak_dosya.txt hedef_dosya.txt
mv
- Dosya veya klasör taşır veya yeniden adlandırır.
mv eski_ad.txt yeni_ad.txt
rm
- Dosya veya klasör siler.
rm dosya.txt
rm -r klasor
rmdir klasör
cat
- Dosya içeriğini görüntüler.
cat dosya.txt
nano, vim, gedit
- Metin düzenleyicileri ile dosya düzenleme.
nano dosya.txt
top ve htop
- Sistem süreçlerini ve kaynak kullanımını izler.
top
htop
ps
- Çalışan süreçleri listeler.
ps
uname
- Sistem bilgilerini gösterir.
uname -a
df
- Disk kullanımını gösterir.
df -h
chmod
- Dosya izinlerini değiştirir.
chmod 755 script.sh
chown
- Dosya sahibini değiştirir.
chown kullanici:kullanici_grubu dosya.txt
chgrp
- Dosya grubunu değiştirir.
chgrp grup dosya.txt
grep
- Metin içinde arama yapar.
grep "aranan_kelime" dosya.txt
find
- Dosya ve dizin arar.
find /home/kullanici -name "dosya.txt"
tar
- Dosyaları arşivler ve sıkıştırır.
tar -czvf arsiv.tar.gz klasor/
zip ve unzip
- ZIP arşivlerini oluşturur ve açar.
zip -r arsiv.zip klasor/
unzip arsiv.zip
adduser ve useradd
- Yeni kullanıcı ekler.
sudo adduser yeni_kullanici
passwd
- Kullanıcı şifresini değiştirir.
sudo passwd kullanici_adi
usermod
- Kullanıcı bilgilerini değiştirir.
sudo usermod -aG grup kullanici_adi
Bash, Unix ve Linux sistemlerinde en yaygın kullanılan
komut satırı kabuğudur. Shell script'leri yazarak görevleri
otomatikleştirebilir, sistem yönetimi yapabilir ve verimliliğinizi
artırabilirsiniz. Bu bölümde, Bash ve shell programlama ile ilgili
ipuçları, komut açıklamaları ve örnekler bulacaksınız.
Değişkenler, script'ler içinde veri saklamak için kullanılır.
Değişken Tanımlama:
# Değişken atama (eşittir işaretinin etrafında boşluk olmamalı)
degisken_adi="deger"
# Örnek:
mesaj="Merhaba Dünya"
echo $mesaj # Çıktı: Merhaba Dünya
Çevresel Değişkenler:
export
komutu, bir değişkeni tüm alt süreçlerde kullanılabilir hale getirir.
# Çevresel değişken atama
export YENI_DEGISKEN="deger"
# Mevcut çevresel değişkenleri listeleme
printenv
read
Komutu ile Girdi Alma:read
komutu, kullanıcıdan girdi alır.-p
seçeneği ile bir prompt mesajı gösterebilirsiniz.
# Kullanıcıdan isim alma
read -p "İsminiz nedir? " isim
echo "Merhaba, $isim!"
if...then...fi Yapısı: Koşul doğruysa then bloğundaki komutlar çalışır.
if [ koşul ]; then
# Koşul doğruysa çalışacak komutlar
fi
Sayı Karşılaştırma Operatörleri:
export
komutu, bir değişkeni tüm alt süreçlerde kullanılabilir hale getirir.
Operatör | Anlamı |
---|---|
-eq | Eşit |
-ne | Eşit değil |
-gt | Büyüktür |
-ge | Büyük veya eşit |
-lt | Küçüktür |
-le | Küçük veya eşit |
sayi=10
if [ $sayi -gt 5 ]; then
echo "Sayı 5'ten büyüktür."
else
echo "Sayı 5'e eşit veya küçüktür."
fi
Açıklama: sayi değişkeni 5’ten büyükse, ilk mesajı yazdırır; değilse, ikinci mesajı.
- for Döngüsü:
for i in {1..5}; do
echo "Sayı: $i"
done
Açıklama: i değişkeni 1’den 5’e kadar değerler alır ve her seferinde echo komutu çalışır.
- while Döngüsü:
export
komutu, bir değişkeni tüm alt süreçlerde kullanılabilir hale getirir.
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
done
Açıklama: count 5’e eşit veya küçük olduğu sürece döngü devam eder.
- Fonksiyon Tanımlama ve Kullanma:
f# Fonksiyon tanımlama
selamla() {
echo "Merhaba, $1!"
}
# Fonksiyonu çağırma
selamla "Ahmet" # Çıktı: Merhaba, Ahmet!
Açıklama: selamla fonksiyonu, ilk parametre olarak verilen ismi kullanarak bir mesaj yazdırır.
- Dizi Tanımlama:
meyveler=("Elma" "Armut" "Muz")
Açıklama: meyveler adlı bir dizi oluşturur ve içine üç meyve ekler.
- Dizi Elemanlarına Erişim:
echo ${meyveler[0]} # Çıktı: Elma
Açıklama: Diziler 0’dan indekslenir. [0] ilk elemanı verir.
- Dosya Varlık Kontrolü:
dosya="dosya.txt"
if [ -e $dosya ]; then
echo "Dosya mevcut."
else
echo "Dosya bulunamadı."
fi
Açıklama: -e operatörü, dosya veya dizinin var olup olmadığını kontrol eder.
Operatör | Anlamı |
---|---|
-e | Dosya veya dizin mevcut mu? |
-f | Normal bir dosya mı? |
-d | Dizin mi? |
-r | Okunabilir mi? |
-w | Yazılabilir mi? |
-x | Çalıştırılabilir mi? |