Linux’a Merhaba! Temel Bash Komutları ve Bash Nedir?

Burak Vural
9 min readSep 25, 2024

--

Linux, öğrenmesi eğlenceli ve kullanışlı bir işletim sistemidir. Eğer teknolojiye ilgi duyuyorsanız ve daha fazla kontrol sahibi olmak istiyorsanız, Linux sizin için doğru bir tercih olabilir.

Linux, ücretsiz, güvenli, esnek ve güçlü bir işletim sistemidir. Açık kaynaklı yapısı sayesinde sürekli gelişir ve geniş bir kullanıcı topluluğuna sahiptir. Herkes Linux kullanabilir ve öğrenmek için birçok kaynak mevcuttur.

Linux Nedir?

Linux, temelde bir işletim sisteminin çekirdeğidir. Ancak genellikle, çekirdeğin yanı sıra kullanıcı arayüzü, uygulamalar ve diğer birçok bileşeni içeren komple bir işletim sistemi olarak düşünülür. Açık kaynaklı olması, en önemli özelliklerinden biridir. Bu, kaynak kodunun herkese açık olduğu ve geliştirilmeye herkesin katkıda bulunabileceği anlamına gelir.

Linux Neden Popüler?

Linux’un popülerliğinin birçok nedeni var:

  • Ücretsizlik: Linux’u indirmek ve kullanmak tamamen ücretsizdir. Bu, hem bireyler hem de kurumlar için önemli bir maliyet avantajı sağlar.
  • Güvenlik: Açık kaynaklı olması sayesinde, binlerce geliştirici tarafından sürekli olarak incelenir ve güvenlik açıkları hızlı bir şekilde giderilir. Bu, Linux’u diğer işletim sistemlerine göre daha güvenli kılar.
  • Esneklik: Linux, neredeyse her türlü donanım üzerinde çalışabilir ve özelleştirme seçenekleri oldukça geniştir. Sunuculardan gömülü sistemlere, süper bilgisayarlara kadar birçok farklı alanda kullanılır.
  • Stabilite: Linux sistemleri genellikle oldukça kararlıdır ve uzun süre sorunsuz çalışabilir.
  • Topluluk Desteği: Büyük ve aktif bir kullanıcı topluluğu sayesinde, herhangi bir sorunla karşılaştığınızda kolayca yardım bulabilirsiniz.
  • Açık Kaynak Modelinin Gücü: Açık kaynak modelinin getirdiği sürekli gelişme ve yenilik, Linux’u diğer işletim sistemlerinden bir adım öne taşır.
  • Sunucu Piyasasındaki Hakimiyeti: Linux, web sunucuları, veri tabanları ve diğer kritik altyapı sistemlerinde yaygın olarak kullanılır.
  • Mobil Cihazlarda Android: Android işletim sistemi, Linux çekirdeği üzerine inşa edilmiştir ve milyarlarca cihazda kullanılmaktadır.
  • Bilimsel Araştırma ve Eğitim: Linux, yüksek performanslı hesaplama ve eğitim amaçlı olarak sıklıkla tercih edilir.

Linux Kullanmak İçin Neler Gerekir?

  • Bilgisayar: Herhangi bir modern bilgisayar, Linux çalıştırmak için yeterli olacaktır. =)
  • İnternet Bağlantısı: Linux dağıtımlarını indirmek ve güncellemeleri almak için internet bağlantısı gereklidir.
  • Sabır ve Öğrenme İsteği: Linux, diğer işletim sistemlerine göre biraz daha farklı bir yapıya sahip olabilir. Bu nedenle, yeni bir işletim sistemi öğrenmeye açık olmak önemlidir.

Önemli Notlar

  • Dağıtım Seçimi: Hangi Linux dağıtımını seçeceğiniz, kullanım amacınıza ve bilgisayarınızın özelliklerine bağlıdır.
  • Donanım Uyumluluğu: Genellikle Linux, donanımları otomatik olarak tanır. Ancak bazı özel donanımlar için ek sürücüler yüklemeniz gerekebilir.
  • Öğrenme Eğrisi: Linux’u kullanmaya başlamak için biraz öğrenme süreci gerekebilir. Ancak internette birçok kaynak ve topluluk bulunmaktadır.

Linux, eski bir bilgisayarı bile kullanışlı hale getirebilecek çok yönlü bir işletim sistemidir. Doğru dağıtımı seçerek ve biraz araştırma yaparak, Linux’u sorunsuz bir şekilde kullanabilirsiniz.

Minimum Gereksinimler (Genel Bakış)

  • İşlemci: Intel Pentium veya AMD Athlon serisi gibi eski nesil işlemciler bile yeterli olabilir. Ancak daha yeni bir işlemci, daha iyi performans sunacaktır.
  • RAM: En az 512 MB RAM ile başlamanız mümkün olsa da, 1 GB RAM veya daha fazlası daha akıcı bir deneyim için önerilir.
  • Depolama: 4 GB veya daha fazla boş disk alanına ihtiyacınız olacaktır. SSD kullanmak, sistemin açılış hızını ve genel performansını önemli ölçüde artıracaktır.
  • Ekran Kartı: Eski bir ekran kartı bile Linux ile çalışabilir. Ancak daha yeni bir ekran kartı, özellikle 3D uygulamaları veya oyunlar için daha iyi performans sunacaktır.

Herkes Linux Kullanabilir mi?

Evet, herkes Linux kullanabilir. Ancak, Linux’un komut satırı arayüzü (terminal) daha teknik bir bilgi gerektirebilir. Grafiksel kullanıcı arayüzü (GUI) sunan birçok Linux dağıtımı mevcuttur, bu sayede Linux’u daha kullanıcı dostu hale getirir.

  • Linux Dağıtımları: Ubuntu, Debian, Fedora, CentOS gibi farklı dağıtımların özellikleri ve kullanım alanları
  • Terminal Komutları: Linux sistemini yönetmek için kullanılan temel ve gelişmiş komutlar
  • Paket Yöneticileri: Yazılımları yüklemek ve yönetmek için kullanılan araçlar
  • Bash Scripting: Otomasyon görevleri için kullanılan komut dosyaları
  • Sistem Yönetimi: Linux sistemlerinin yapılandırılması ve yönetimi

Linux, öğrenmesi eğlenceli ve kullanışlı bir işletim sistemidir. Eğer teknolojiye ilgi duyuyorsanız ve daha fazla kontrol sahibi olmak istiyorsanız, Linux sizin için doğru bir tercih olabilir.

Bash: Unix ve Linux Sistemlerinin Kalbi

Bash Nedir ve Nasıl Keşfedildi?

Bash (Bourne Again Shell), Unix ve Unix benzeri sistemler (Linux, macOS gibi) için geliştirilmiş bir komut yorumlayıcı (shell) ve betik dilidir. Kullanıcının girdiği komutları yorumlar, sistemle iletişimi sağlar ve otomasyon görevlerini gerçekleştirmek için betikler yazmaya olanak tanır.

Bash’in Keşfi ve Gelişimi

Bash, 1989 yılında Brian Fox tarafından GNU Projesi için geliştirilmiştir. Amacı, daha önceki Bourne kabuğunun eksiklerini tamamlamak ve Unix dünyasında daha güçlü bir komut yorumlayıcı sunmaktı. Bash, hızla popülerleşerek birçok Linux dağıtımında varsayılan kabuk haline geldi.

Bash Hangi Ortamlarda Çalışır?

Bash, öncelikle Unix ve Unix benzeri sistemlerde çalışmak üzere tasarlanmıştır. Bu nedenle, Linux, macOS, FreeBSD gibi işletim sistemlerinde doğrudan kullanılabilir. Ayrıca, Windows ortamında da Cygwin veya WSL (Windows Subsystem for Linux) gibi araçlar sayesinde Bash çalıştırmak mümkündür.

  1. Linux Dağıtımları: Neredeyse tüm Linux dağıtımları varsayılan kabuk olarak Bash’i kullanır. Örneğin, Ubuntu, Debian, Fedora gibi popüler dağıtımlarda Bash kullanıcıların en çok etkileşime girdiği kabuktur.
  2. macOS: Apple’ın macOS işletim sisteminde Bash, varsayılan shell olarak kullanılıyordu. Ancak 2019 itibarıyla Apple, Bash yerine Zsh’yi varsayılan kabuk olarak sunmaya başladı. Buna rağmen, Bash hala macOS kullanıcıları tarafından tercih edilebilecek bir seçenektir.
  3. Windows: Geleneksel olarak Bash sadece Unix tabanlı sistemlerde çalışsa da, Windows 10 ile birlikte Windows Subsystem for Linux (WSL) sayesinde Bash Windows platformunda da kullanılabilir hale geldi. Bu sayede, Windows kullanıcıları da Bash komutlarını ve scriptlerini çalıştırabilirler.
  4. Bulut Ortamları ve Sunucular: Bash, bulut tabanlı sunucularda ve uzak sunucularda da yaygın olarak kullanılır. Özellikle sistem yönetimi ve devops görevlerinde Bash scriptleri, sunucuların yönetimi ve otomasyonu için hayati bir araçtır.

Bash’in Sağladığı Avantajlar

Bash, sunduğu özellikler ve esneklikle yazılım geliştiricilere ve sistem yöneticilerine birçok avantaj sağlar:

  • Otomasyon: Bash, script yazma yeteneği sayesinde tekrarlayan görevleri otomatik hale getirir. Bu sayede zaman kazanılır ve hata oranı düşer.
  • Geniş Kullanıcı Tabanı: Bash’in yaygınlığı sayesinde geniş bir kullanıcı ve topluluk desteğine sahiptir. İnternette sayısız kaynak, dökümantasyon ve rehber bulunmaktadır.
  • Taşınabilirlik: Bash scriptleri, genellikle Unix tabanlı tüm sistemlerde çalışabilir. Bu da scriptlerin bir platformdan diğerine kolayca taşınmasını sağlar.
  • Esneklik: Bash, basit komutlardan karmaşık programlama yapıları içeren scriptlere kadar geniş bir kullanım alanına sahiptir.

Bash Nasıl Kullanılır?

Bash, kullanıcıların komut satırı üzerinden sistemle etkileşime geçmelerini sağlayan bir araçtır. Komut satırında kullanıcılar, dosya ve dizin işlemlerinden ağ yapılandırmalarına kadar geniş bir yelpazede işlemleri gerçekleştirebilirler. Bash aynı zamanda script yazımı için de kullanılan bir ortamdır. Bir Bash scripti, belirli bir dizi komutu otomatik olarak çalıştırarak tekrarlayan işlemleri hızlandırabilir ve yönetimi kolaylaştırabilir.

Bash’in kullanımı şu temel adımlarla açıklanabilir:

  1. Komutların Yazılması: Terminal ya da komut satırı aracılığıyla kullanıcılar Bash komutlarını girerler. Örneğin:
ls

#Bu komut, mevcut dizindeki dosya ve klasörleri listeler.

2. Bash Scripti Yazımı: Bash, script yazımı için güçlü bir dil sunar. Bir Bash scripti şu şekilde yazılabilir:

#!/bin/bash
echo "Merhaba, dünya!"

#Yukarıdaki örnek, terminalde "Merhaba, dünya!" yazısını ekrana basar.

3. Değişkenler ve Kontrol Yapıları: Bash, değişkenleri tanımlayabilir ve kontrol yapılarıyla (if, for, while gibi) daha karmaşık işlemleri gerçekleştirebilir. Örneğin:

for i in {1..5}
do
echo "Sayı: $i"
done

#Bu script, 1’den 5’e kadar olan sayıları ekrana yazdırır.

4. Fonksiyonlar: Bash, fonksiyon tanımlamayı destekler. Fonksiyonlar, tekrarlayan kod parçalarını modüler hale getirerek kodun tekrar kullanılabilirliğini artırır ve daha düzenli bir yapıya kavuşmanızı sağlar.

#!/bin/bash
function selamla {
echo "Merhaba, $1!"
}

selamla "Ali"

#Yukarıdaki örnekte, selamla adında bir fonksiyon tanımlanmış ve çağrıldığında parametre olarak verilen adı ekrana yazdırmıştır.

5. String Manipülasyon: Bash, değişkenler üzerinde çeşitli işlemler yapmayı destekler. Özellikle string manipülasyonu, dosya yollarını ayırma ya da dinamik veri ile çalışma açısından oldukça esnektir.

#!/bin/bash
dosya="/home/kullanici/dosya.txt"

# Dosya adını alma
echo "Dosya adı: ${dosya##*/}"

# Uzantıyı kaldırma
echo "Dosya adı uzantısız: ${dosya%.*}"

#Bu örnekte, dosya yolu içinden sadece dosya adını alma ve dosya uzantısını kaldırma gibi string işlemleri yapılmıştır.

6. Bash Scriptleriyle API Çağrıları Yapma: Bash, curl ve wget gibi araçlarla birlikte kullanıldığında, web API’lerine erişim sağlar ve dış kaynaklardan veri çekme işlemlerini otomatikleştirebilir.

#!/bin/bash
response=$(curl -s "https://api.example.com/data")
echo "API'den Gelen Yanıt: $response"

Bash Nasıl Öğrenebilirim? Kendimi Bash ve Linux Alanında Nasıl Geliştirebilirim?

Sanırım burada yazabileceğim en güzel cevap zorunda kalmanız =)

Kişisel tavsiye olarak mutlaka ön eğitim ve ücretsiz linux eğitimlerini incelemeniz. Linux ve Bash temel komutlarını öğrenme stlinize göre not alarak ilerlemeniz. Elbette yazılım temeli, siber güvenlik alt yapısı olan kişiler daha pratik metotlarla ilerleyecektir fakat temelde öğrenmenin en dip noktası bence kendizi sisteme dahil etmek. WM aracları ile bir sanal makine kurabilir ya da internette ücretsiz olarak var olan birçok WM ile kendinizi geliştirebilirsiniz.

Bash öğrenmek ve kendinizi bu alanda geliştirmek için düzenli pratik, iyi kaynaklar ve gerçek dünyaya yönelik projelerle çalışmak en önemli adımlardır. Aşağıda Bash öğrenme sürecini hızlandırmak ve yeteneklerinizi geliştirmek için izleyebileceğiniz bazı yolları paylaştım:

yeteneklerinizi geliştirmek için izleyebileceğiniz bazı yolları paylaştım:

1. Temel Bilgileri Öğrenin

Bash’i öğrenmeye başlarken, öncelikle temel komutları ve kavramları öğrenmek önemlidir. Bu temel komutlar şunlardır:

  • Dosya ve Dizin İşlemleri: ls, cd, mkdir, rm, mv, cp gibi komutlar.
  • Sistem Durumu Kontrolü: top, ps, df, du, free gibi komutlar.
  • Dosya İçeriği Okuma: cat, less, more, grep, awk, sed gibi komutlar.
  • Hak Yönetimi ve Kullanıcı İşlemleri: chmod, chown, sudo, useradd, usermod gibi komutlar.

Başlangıçta, her komutun işlevini ve nasıl çalıştığını anlamaya çalışın. Bu komutların sıkça kullanılan parametreleri ve nasıl etkileşimde bulunabileceğinizi öğrenmek, komut satırına aşina olmanızı sağlayacaktır.

2. Çevrimiçi Kurslar ve Kaynaklardan Faydalanın

Bash’i öğrenmek için çeşitli çevrimiçi kaynaklar ve eğitim platformları vardır. Bunlar sayesinde hem temel hem de ileri düzey Bash konularını öğrenebilirsiniz. İşte bazı öneriler:

  • Udemy ve Coursera gibi platformlar: Bu platformlarda sıfırdan başlayarak Bash’i adım adım öğreten kurslar bulabilirsiniz.
  • Codecademy ve LearnShell.org: İnteraktif olarak komut satırı ve Bash scriptlerini uygulamalı şekilde öğrenebileceğiniz ücretsiz eğitim siteleri.
  • YouTube: Özellikle uygulamalı videolarla öğrenmek isteyenler için çok sayıda Bash eğitim videosu mevcut.

3. Kitaplar ve Belgeler Okuyun

Bash öğrenme sürecinde faydalanabileceğiniz pek çok kaliteli kitap ve belge vardır. Bunlar size hem temel komutları hem de ileri düzey konuları anlamanızda yardımcı olacaktır.

  • “The Linux Command Line” by William Shotts: Bu kitap, komut satırı kullanımını derinlemesine öğrenmek isteyenler için mükemmel bir kaynaktır.
  • GNU Bash Reference Manual: Bash’in resmi belgelerini okuyarak, komutların ve kabuk özelliklerinin derinlemesine açıklamalarını bulabilirsiniz.
  • Bash Scripting Bible: Bu kitap, Bash scripting konusunda kapsamlı bilgi sağlar ve ileri seviye konuları öğrenmek isteyenler için idealdir.

4. Pratik Yapın ve Kendi Scriptlerinizi Yazın

Teorik bilginin yanında pratik yaparak kendinizi geliştirmeniz oldukça önemlidir. Gerçek hayatta karşılaştığınız sorunları Bash scriptleri ile çözmeye çalışarak script yazma becerilerinizi geliştirebilirsiniz.

  • Otomasyon Scriptleri Yazın: Örneğin, sık sık yaptığınız görevleri otomatik hale getiren küçük scriptler yazabilirsiniz (dosya yedekleme, log inceleme vb.).
  • Küçük Projeler Başlatın: Kendi projelerinizi oluşturarak pratik yapabilirsiniz. Örneğin, bir klasördeki dosyaları belirli kriterlere göre sıralayan ya da ağ trafiğini izleyen bir Bash scripti geliştirin.
  • Çevrimiçi Alıştırmalar Yapın: LearnShell.org gibi platformlarda verilen görevleri yaparak kendinizi test edebilirsiniz.

5. Komutları ve Scriptleri Deneyimleyin

Kendi bilgisayarınızda, özellikle Linux ya da macOS gibi Unix tabanlı bir işletim sistemi kullanarak Bash ile sürekli pratik yapın. Komutları öğrenirken Terminal’de çalışmak, komutları ve scriptleri doğrudan deneme fırsatı sunar.

  • Man Sayfalarını Kullanın: Herhangi bir komutla ilgili detaylı bilgiye erişmek için man komutunu kullanabilirsiniz. Örneğin:
man grep
  • Bu, grep komutunun kullanımı hakkında ayrıntılı bilgi sunacaktır.

6. GitHub Projelerini İnceleyin

GitHub’da Bash ile yazılmış birçok açık kaynak proje bulabilirsiniz. Diğer geliştiricilerin yazdığı scriptleri ve çözümlerini incelemek, yazılım mantığını daha iyi kavramanıza yardımcı olacaktır.

  • Bash Script Repo’ları: Diğer kullanıcıların paylaştığı projelere bakarak, farklı ihtiyaçlara yönelik yazılmış Bash scriptlerini inceleyebilir ve nasıl çalıştıklarını anlayabilirsiniz.
  • Katkıda Bulunun: Açık kaynak projelere katkıda bulunarak hem topluluk içinde deneyim kazanabilir hem de kendi kodunuzu geliştirebilirsiniz.

7. Bash Challenge ve Alıştırma Siteleri Kullanın

Birçok çevrimiçi platform, Bash ile ilgili alıştırmalar ve zorluklar sunar. Bu platformlar aracılığıyla öğrendiklerinizi pekiştirip sınayabilirsiniz:

  • Hackerrank: Bash ile ilgili alıştırma ve zorluklar sunan bu platform, problem çözme yeteneklerinizi geliştirmenize yardımcı olur.
  • Exercism: Bash programlama dilinde alıştırmalar yapmanızı sağlayan interaktif bir platformdur.

8. Sorunları Çözün ve Google’dan Yararlanın

Her zaman her şeyi ezberlemenize gerek yok. Belirli bir komutu ya da işlevi hatırlamıyorsanız, arama motorlarında çözüm aramak veya Stack Overflow gibi sitelerde sorulara göz atmak oldukça faydalıdır. Hata aldığınızda, hatayı araştırarak çözüm yollarını öğrenmek büyük bir gelişim sağlar.

9. İleri Seviye Konulara Odaklanın

Bash’te ileri düzey konulara odaklanarak script yazma becerilerinizi daha da derinleştirebilirsiniz. İşte bazı ileri düzey konular:

  • Fonksiyonlar ve Modüler Kodlama
  • Regex (Düzenli İfadeler) ile Metin İşleme
  • Dosya ve Dizilerle İleri Manipülasyonlar
  • Paralel Çalıştırma ve Arka Plan İşlemleri
  • API ve Web Servislerine Bağlanma
  • Hata Yönetimi ve Loglama

Bu konuları öğrenmek, profesyonel düzeyde Bash kullanımı için gereklidir.

10. Geri Bildirim Alın ve Topluluklara Katılın

Kendi yazdığınız scriptler hakkında geri bildirim almak için çevrimiçi topluluklarda (örneğin Reddit’in r/bash topluluğu) paylaşımlar yapabilirsiniz. Topluluklardan gelecek geri bildirimler, daha iyi kod yazmanıza ve hata yapmaktan kaçınmanıza yardımcı olur.

Linux ve Bash eğitim kaynakları;

--

--

Burak Vural
Burak Vural

Written by Burak Vural

Software | Cyber Security | FullStack | Dev.Note and some coffee! Ars magus de templum clavis

No responses yet