{"id":39192,"date":"2026-02-16T12:30:39","date_gmt":"2026-02-16T09:30:39","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/"},"modified":"2026-02-16T12:30:39","modified_gmt":"2026-02-16T09:30:39","slug":"linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/","title":{"rendered":"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#8217;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)"},"content":{"rendered":"<h2>Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#8217;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)<\/h2>\n<p>Merhaba teknoloji merakl\u0131lar\u0131 ve yaz\u0131l\u0131m geli\u015ftiricileri! Bu makalede, Windows Subsystem for Linux (WSL) ile ba\u015flayan ve bulut platformlar\u0131nda uygulama da\u011f\u0131t\u0131m\u0131na uzanan 5 g\u00fcnl\u00fck bir geli\u015ftirme ser\u00fcvenimi sizlerle payla\u015faca\u011f\u0131m. Modern yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda Linux tabanl\u0131 ortamlar\u0131n ve bulut teknolojilerinin \u00f6nemi yads\u0131namaz. Bu yolculuk, hem ki\u015fisel geli\u015fimime katk\u0131da bulundu hem de karma\u015f\u0131k g\u00f6r\u00fcnen s\u00fcre\u00e7leri ad\u0131m ad\u0131m basitle\u015ftirmeme yard\u0131mc\u0131 oldu. E\u011fer siz de WSL&#8217;den buluta ge\u00e7i\u015fin nas\u0131l bir deneyim oldu\u011funu merak ediyorsan\u0131z veya kendi geli\u015ftirme ortam\u0131n\u0131z\u0131 kurma aray\u0131\u015f\u0131ndaysan\u0131z, do\u011fru yerdesiniz. Haz\u0131rlan\u0131n, \u00e7\u00fcnk\u00fc bu devlog, pratik bilgiler ve ger\u00e7ek d\u00fcnya deneyimleriyle dolu olacak.<\/p>\n<h3>G\u00fcn 1: WSL ile Tan\u0131\u015fma ve Temelleri Atma<\/h3>\n<p>Geli\u015ftirme yolculu\u011fumun ilk dura\u011f\u0131, Windows i\u015fletim sistemi \u00fczerinde tam te\u015fekk\u00fcll\u00fc bir Linux deneyimi sunan WSL oldu. Windows kullan\u0131c\u0131s\u0131 olarak, Linux&#8217;un sundu\u011fu esnekli\u011fi ve g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 kaybetmek istemiyordum. WSL, bu iki d\u00fcnyan\u0131n en iyi \u00f6zelliklerini bir araya getirerek benim i\u00e7in ideal bir ba\u015flang\u0131\u00e7 noktas\u0131 sundu.<\/p>\n<h4>WSL Nedir ve Neden Tercih Ettim?<\/h4>\n<p>WSL (Windows Subsystem for Linux), Microsoft taraf\u0131ndan geli\u015ftirilen, Windows 10 ve sonras\u0131 i\u015fletim sistemlerinde Linux da\u011f\u0131t\u0131mlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131yan bir uyumluluk katman\u0131d\u0131r. Geleneksel sanal makinelerden farkl\u0131 olarak, WSL \u00e7ok daha hafif ve h\u0131zl\u0131d\u0131r \u00e7\u00fcnk\u00fc tam bir sanalla\u015ft\u0131rma katman\u0131 yerine, Linux \u00e7ekirde\u011fi \u00e7a\u011fr\u0131lar\u0131n\u0131 Windows \u00e7ekirde\u011fi \u00e7a\u011fr\u0131lar\u0131na \u00e7evirir. Benim i\u00e7in WSL&#8217;i tercih etmemin ba\u015fl\u0131ca nedenleri \u015funlard\u0131:<\/p>\n<ul>\n<li><strong>Performans:<\/strong> Sanal makinelere k\u0131yasla daha h\u0131zl\u0131 dosya sistemi eri\u015fimi ve genel performans.<\/li>\n<li><strong>Entegrasyon:<\/strong> Windows dosya sistemine kolay eri\u015fim ve VS Code gibi ara\u00e7larla sorunsuz entegrasyon.<\/li>\n<li><strong>Linux Ortam\u0131:<\/strong> Linux&#8217;a \u00f6zg\u00fc ara\u00e7lar\u0131, komutlar\u0131 ve geli\u015ftirme ortamlar\u0131n\u0131 do\u011frudan Windows \u00fczerinden kullanabilme.<\/li>\n<\/ul>\n<h4>Kurulum S\u00fcreci ve \u0130lk Ad\u0131mlar<\/h4>\n<p>WSL kurulumu olduk\u00e7a basitti. Y\u00f6netici olarak a\u00e7t\u0131\u011f\u0131m PowerShell terminaline tek bir komut yazarak Ubuntu da\u011f\u0131t\u0131m\u0131n\u0131 kurdum:<\/p>\n<pre><code class=\"language-powershell\">wsl --install -d Ubuntu<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, WSL'i etkinle\u015ftirdi ve varsay\u0131lan olarak Ubuntu da\u011f\u0131t\u0131m\u0131n\u0131 kurdu. Kurulum tamamland\u0131ktan sonra bir kullan\u0131c\u0131 ad\u0131 ve parola belirledim. Art\u0131k Windows Ba\u015flat men\u00fcs\u00fcnden \"Ubuntu\" yazarak Linux terminalime eri\u015febiliyordum. \u0130lk olarak sistem g\u00fcncellemelerini yaparak ba\u015flad\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade<\/pre>\n<p><\/code><\/p>\n<h4>Temel Linux Komutlar\u0131 ve Dosya Sistemi<\/h4>\n<p>Linux ortam\u0131na al\u0131\u015fmak i\u00e7in temel komutlar\u0131 tekrar g\u00f6zden ge\u00e7irdim. Dosya ve dizin i\u015flemleri, izinler, paket y\u00f6netimi gibi konulara odakland\u0131m. \u00d6zellikle Windows dosya sistemine eri\u015fim konusunda WSL'in sundu\u011fu kolayl\u0131k dikkat \u00e7ekiciydi. Windows s\u00fcr\u00fcc\u00fclerine <code>\/mnt\/c<\/code>, <code>\/mnt\/d<\/code> gibi yollardan eri\u015febiliyordum. \u0130\u015fte birka\u00e7 temel komut:<\/p>\n<ul>\n<li><code>ls -la<\/code>: Dizin i\u00e7eri\u011fini detayl\u0131 listeleme<\/li>\n<li><code>cd \/mnt\/c\/Users\/KullaniciAdi\/Projeler<\/code>: Windows dizinine ge\u00e7i\u015f<\/li>\n<li><code>mkdir yeni_proje<\/code>: Yeni bir dizin olu\u015fturma<\/li>\n<li><code>chmod +x script.sh<\/code>: Beti\u011fe \u00e7al\u0131\u015ft\u0131rma izni verme<\/li>\n<\/ul>\n<h3>G\u00fcn 2: Geli\u015ftirme Ortam\u0131n\u0131 Kurma ve \u0130lk Projeler<\/h3>\n<p>WSL ortam\u0131m haz\u0131r oldu\u011funa g\u00f6re, art\u0131k geli\u015ftirme ara\u00e7lar\u0131m\u0131 kurma ve ilk projelerimi hayata ge\u00e7irme zaman\u0131 gelmi\u015fti. Bu g\u00fcn, verimli bir \u00e7al\u0131\u015fma ortam\u0131 olu\u015fturmak i\u00e7in gerekli yaz\u0131l\u0131mlar\u0131 y\u00fckledim ve VS Code ile entegrasyonu sa\u011flad\u0131m.<\/p>\n<h4>Gerekli Ara\u00e7lar\u0131n Kurulumu<\/h4>\n<p>Modern web geli\u015ftirme i\u00e7in olmazsa olmaz baz\u0131 ara\u00e7lar var. Ben Node.js tabanl\u0131 bir geli\u015ftirici oldu\u011fum i\u00e7in \u00f6ncelikle Node.js ve npm'i kurdum. Python veya Go gibi farkl\u0131 dillerle \u00e7al\u0131\u015fanlar da kendi tercihlerine g\u00f6re kurulum yapabilirler. Kurulum i\u00e7in genellikle da\u011f\u0131t\u0131m\u0131n paket y\u00f6neticisi kullan\u0131l\u0131r (Ubuntu i\u00e7in <code>apt<\/code>):<\/p>\n<pre><code class=\"language-bash\"># Node.js ve npm kurulumu\ncurl -fsSL https:\/\/deb.nodesource.com\/setup_lts.x | sudo -E bash -\nsudo apt-get install -y nodejs\n\n# Git kurulumu (genellikle kurulu gelir ama kontrol etmekte fayda var)\nsudo apt install git\n\n# Python (genellikle kurulu gelir)\nsudo apt install python3 python3-pip<\/pre>\n<p><\/code><\/p>\n<p>Ayr\u0131ca, kod d\u00fczenleyici olarak Visual Studio Code'u tercih ettim. VS Code'un WSL Remote Development eklentisi, Windows \u00fczerinden do\u011frudan Linux ortam\u0131ndaki dosyalar\u0131 d\u00fczenlememe ve terminali kullanmama olanak tan\u0131d\u0131.<\/p>\n<h4>VS Code Entegrasyonu ve Uzak Geli\u015ftirme<\/h4>\n<p>VS Code'u Windows'a kurduktan sonra, \"Remote - WSL\" eklentisini y\u00fckledim. Bu eklenti sayesinde, VS Code'u do\u011frudan WSL ortam\u0131ma ba\u011flayabiliyordum. WSL terminalinde bir dizinde iken <code>code .<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda, VS Code otomatik olarak o dizini WSL i\u00e7inde a\u00e7\u0131yor ve t\u00fcm eklentilerim, ayarlar\u0131m Linux ortam\u0131na uygun \u015fekilde \u00e7al\u0131\u015f\u0131yordu. Bu, geli\u015ftirme deneyimini inan\u0131lmaz derecede sorunsuz hale getirdi.<\/p>\n<pre><code class=\"language-bash\"># WSL terminalinde\ncd ~\/my-first-project\ncode .<\/pre>\n<p><\/code><\/p>\n<p>Bu entegrasyon, Windows'un grafik aray\u00fcz\u00fcn\u00fc kullan\u0131rken, t\u00fcm geli\u015ftirme ve derleme i\u015flemlerini Linux'un g\u00fcc\u00fcyle yapabilmem anlam\u0131na geliyordu.<\/p>\n<h4>\u0130lk Proje: Basit Bir Web Uygulamas\u0131<\/h4>\n<p>Ortam\u0131m haz\u0131r oldu\u011funa g\u00f6re, basit bir Node.js Express uygulamas\u0131 olu\u015fturdum. Amac\u0131m, kurulumun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve temel bir web sunucusunu ba\u015far\u0131yla ba\u015flatabildi\u011fimi g\u00f6rmekti. Proje dizini olu\u015fturdum, <code>npm init -y<\/code> ile <code>package.json<\/code> dosyas\u0131n\u0131 ba\u015flatt\u0131m ve <code>npm install express<\/code> ile Express.js'i kurdum. Ard\u0131ndan <code>app.js<\/code> ad\u0131nda basit bir sunucu dosyas\u0131 yazd\u0131m:<\/p>\n<pre><code class=\"language-javascript\">\/\/ app.js\nconst express = require('express');\nconst app = express();\nconst port = 3000;\n\napp.get('\/', (req, res) => {\n  res.send('Merhaba WSL ve Express!');\n});\n\napp.listen(port, () => {\n  console.log(<code>Uygulama http:\/\/localhost:${port} adresinde \u00e7al\u0131\u015f\u0131yor<\/code>);\n});<\/pre>\n<p><\/code><\/p>\n<p>Uygulamay\u0131 <code>node app.js<\/code> komutuyla ba\u015flatt\u0131\u011f\u0131mda, taray\u0131c\u0131mdan <code>http:\/\/localhost:3000<\/code> adresine eri\u015febildim. Bu k\u00fc\u00e7\u00fck ba\u015far\u0131, t\u00fcm kurulumun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve ileriki ad\u0131mlar i\u00e7in haz\u0131r oldu\u011fumu g\u00f6sterdi.<\/p>\n<h3>G\u00fcn 3: Docker ve Konteynerle\u015fme D\u00fcnyas\u0131na Ad\u0131m<\/h3>\n<p>Geli\u015ftirme ortam\u0131m\u0131 kurduktan ve ilk uygulamam\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, projelerimi daha ta\u015f\u0131nabilir ve izole hale getirme ihtiyac\u0131 hissettim. \u0130\u015fte bu noktada Docker devreye girdi. Konteynerle\u015fme, modern yaz\u0131l\u0131m geli\u015ftirmenin vazge\u00e7ilmez bir par\u00e7as\u0131.<\/p>\n<h4>Neden Docker? Konteynerle\u015fmenin Faydalar\u0131<\/h4>\n<p>Docker, uygulamalar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 \"konteyner\" ad\u0131 verilen izole edilmi\u015f, ta\u015f\u0131nabilir birimler halinde paketlemeyi sa\u011flayan bir platformdur. Konteynerle\u015fmenin bana sundu\u011fu ba\u015fl\u0131ca avantajlar \u015funlard\u0131:<\/p>\n<ul>\n<li><strong>Tutarl\u0131l\u0131k:<\/strong> Geli\u015ftirme, test ve \u00fcretim ortamlar\u0131 aras\u0131nda tutarl\u0131l\u0131k sa\u011flar. \"Benim makinemde \u00e7al\u0131\u015f\u0131yor\" sorununu ortadan kald\u0131r\u0131r.<\/li>\n<li><strong>\u0130zolasyon:<\/strong> Her uygulama kendi konteynerinde izole \u00e7al\u0131\u015f\u0131r, ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 engeller.<\/li>\n<li><strong>Ta\u015f\u0131nabilirlik:<\/strong> Konteynerler, herhangi bir Docker y\u00fckl\u00fc sistemde (yerel makine, bulut sunucusu vb.) ayn\u0131 \u015fekilde \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><strong>H\u0131zl\u0131 Da\u011f\u0131t\u0131m:<\/strong> Uygulamalar\u0131n h\u0131zl\u0131 bir \u015fekilde paketlenip da\u011f\u0131t\u0131lmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<h4>Docker Kurulumu ve Temel Komutlar<\/h4>\n<p>WSL 2 \u00fczerinde Docker Desktop'\u0131 kurmak en kolay yoldu. Docker Desktop, Windows \u00fczerinde \u00e7al\u0131\u015f\u0131r ancak WSL 2 entegrasyonu sayesinde Linux konteynerlerini sorunsuz bir \u015fekilde y\u00f6netmemi sa\u011flar. Kurulumdan sonra, WSL terminalimde Docker komutlar\u0131n\u0131 kullanabildim:<\/p>\n<pre><code class=\"language-bash\"># Docker versiyonunu kontrol etme\ndocker --version\n\n# \u00c7al\u0131\u015fan konteynerleri listeleme\ndocker ps\n\n# T\u00fcm konteynerleri listeleme (durdurulmu\u015flar dahil)\ndocker ps -a\n\n# Docker imajlar\u0131n\u0131 listeleme\ndocker images<\/pre>\n<p><\/code><\/p>\n<p>Bu komutlar, Docker'\u0131n ba\u015far\u0131l\u0131 bir \u015fekilde kuruldu\u011funu ve WSL \u00fczerinden eri\u015filebilir oldu\u011funu do\u011frulad\u0131.<\/p>\n<h4>Uygulamay\u0131 Dockerize Etme<\/h4>\n<p>\u00d6nceki g\u00fcn yazd\u0131\u011f\u0131m Express uygulamas\u0131n\u0131 Dockerize etmek i\u00e7in bir <code>Dockerfile<\/code> olu\u015fturdum. Bu dosya, Docker'a uygulamam\u0131n nas\u0131l bir imaj haline getirilece\u011fini anlat\u0131r:<\/p>\n<pre><code class=\"language-dockerfile\"># Dockerfile\nFROM node:18-alpine\nWORKDIR \/app\nCOPY package*.json .\/\nRUN npm install\nCOPY . .\nEXPOSE 3000\nCMD [\"node\", \"app.js\"]<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, bu <code>Dockerfile<\/code>'\u0131 kullanarak bir Docker imaj\u0131 olu\u015fturdum ve uygulamay\u0131 bir konteyner i\u00e7inde \u00e7al\u0131\u015ft\u0131rd\u0131m:<\/p>\n<pre><code class=\"language-bash\"># Docker imaj\u0131n\u0131 olu\u015fturma\ndocker build -t my-express-app .\n\n# Konteyneri \u00e7al\u0131\u015ft\u0131rma\ndocker run -p 3000:3000 -d my-express-app<\/pre>\n<p><\/code><\/p>\n<p>Taray\u0131c\u0131dan tekrar <code>http:\/\/localhost:3000<\/code> adresine gitti\u011fimde, uygulaman\u0131n bu kez bir Docker konteyneri i\u00e7inden \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fcm. Bu ad\u0131m, uygulamam\u0131n ta\u015f\u0131nabilirli\u011fini ve izole edilebilirli\u011fini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131rd\u0131.<\/p>\n<h3>G\u00fcn 4: Git, GitHub ve Versiyon Kontrol\u00fc Pratikleri<\/h3>\n<p>Her geli\u015ftiricinin en iyi dostlar\u0131ndan biri versiyon kontrol sistemleridir. Bu g\u00fcn, projelerimi y\u00f6netmek, de\u011fi\u015fiklikleri takip etmek ve i\u015fbirli\u011fi yapmak i\u00e7in Git ve GitHub'\u0131 aktif olarak kullanmaya ba\u015flad\u0131m.<\/p>\n<h4>Versiyon Kontrol\u00fcn\u00fcn \u00d6nemi<\/h4>\n<p>Versiyon kontrol sistemleri (VCS), yaz\u0131l\u0131m geli\u015ftirme s\u00fcrecinde yap\u0131lan de\u011fi\u015fiklikleri takip etmeyi, ge\u00e7mi\u015f s\u00fcr\u00fcmlere geri d\u00f6nmeyi ve birden fazla geli\u015ftiricinin ayn\u0131 proje \u00fczerinde e\u015f zamanl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamay\u0131 ama\u00e7lar. Git, da\u011f\u0131t\u0131k yap\u0131s\u0131yla bu alanda en pop\u00fcler ara\u00e7lardan biridir. Versiyon kontrol\u00fc sayesinde \u015funlar\u0131 yapabilirim:<\/p>\n<ul>\n<li>Kod taban\u0131ndaki her de\u011fi\u015fikli\u011fi kaydetme ve kimin ne zaman yapt\u0131\u011f\u0131n\u0131 g\u00f6rme.<\/li>\n<li>Yanl\u0131\u015fl\u0131kla yap\u0131lan de\u011fi\u015fiklikleri geri alma veya belirli bir ge\u00e7mi\u015f s\u00fcr\u00fcme d\u00f6nme.<\/li>\n<li>Farkl\u0131 \u00f6zellikler \u00fczerinde ayr\u0131 ayr\u0131 \u00e7al\u0131\u015fmak i\u00e7in dallar (branches) olu\u015fturma.<\/li>\n<li>Ekip \u00fcyeleriyle sorunsuz bir \u015fekilde i\u015fbirli\u011fi yapma.<\/li>\n<\/ul>\n<h4>Git Temelleri ve GitHub Entegrasyonu<\/h4>\n<p>Git'i WSL ortam\u0131mda zaten kurmu\u015ftum. \u0130lk olarak, Git'i kimli\u011fimi belirterek yap\u0131land\u0131rd\u0131m:<\/p>\n<pre><code class=\"language-bash\">git config --global user.name \"Ad\u0131n\u0131z Soyad\u0131n\u0131z\"\ngit config --global user.email \"email@example.com\"<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, mevcut projem i\u00e7in bir GitHub deposu olu\u015fturdum ve yerel depomu bu uzak depoya ba\u011flad\u0131m:<\/p>\n<pre><code class=\"language-bash\"># Mevcut dizini Git deposu olarak ba\u015flatma\ngit init\n\n# Dosyalar\u0131 ekleme\ngit add .\n\n# \u0130lk commit\ngit commit -m \"Initial commit: Express app dockerized\"\n\n# Uzak depoyu ekleme (GitHub'da olu\u015fturdu\u011funuz repo URL'si)\ngit remote add origin https:\/\/github.com\/KullaniciAdiniz\/my-express-app.git\n\n# De\u011fi\u015fiklikleri uzak depoya g\u00f6nderme\ngit push -u origin master<\/pre>\n<p><\/code><\/p>\n<p>Bu ad\u0131mlarla, projemin kod taban\u0131 art\u0131k GitHub'da g\u00fcvenli bir \u015fekilde saklan\u0131yor ve versiyon kontrol\u00fc alt\u0131nda. GitHub'\u0131n web aray\u00fcz\u00fc \u00fczerinden de projemin durumunu takip edebiliyordum.<\/p>\n<h4>Branching, Merging ve Pull Request \u0130\u015f Ak\u0131\u015flar\u0131<\/h4>\n<p>Tek bir \"master\" veya \"main\" dal\u0131nda \u00e7al\u0131\u015fmak, \u00f6zellikle bir ekiple \u00e7al\u0131\u015f\u0131rken veya yeni \u00f6zellikler geli\u015ftirirken riskli olabilir. Bu nedenle, Git'in dallanma (branching) \u00f6zelli\u011fi \u00e7ok \u00f6nemlidir. Yeni bir \u00f6zellik geli\u015ftirmek i\u00e7in yeni bir dal olu\u015fturdum:<\/p>\n<pre><code class=\"language-bash\"># Yeni bir \u00f6zellik dal\u0131 olu\u015fturma ve ona ge\u00e7i\u015f yapma\ngit checkout -b feature\/add-greeting\n\n# Kod de\u011fi\u015fiklikleri yap\u0131ld\u0131...\n# De\u011fi\u015fiklikleri commit etme\ngit add .\ngit commit -m \"Added personalized greeting endpoint\"\n\n# Dal\u0131 uzak depoya g\u00f6nderme\ngit push origin feature\/add-greeting<\/pre>\n<p><\/code><\/p>\n<p>De\u011fi\u015fikliklerim haz\u0131r oldu\u011funda, GitHub \u00fczerinden bir \"Pull Request\" (\u00c7ekme \u0130ste\u011fi) olu\u015fturdum. Bu, kodumun ana dala birle\u015ftirilmeden \u00f6nce g\u00f6zden ge\u00e7irilmesini sa\u011flayan standart bir i\u015f ak\u0131\u015f\u0131d\u0131r. \u0130nceleme ve onay s\u00fcrecinden sonra, dal\u0131m\u0131 ana dala birle\u015ftirdim (merge). Bu s\u00fcre\u00e7, hem kod kalitesini art\u0131r\u0131yor hem de ekip i\u00e7i i\u015fbirli\u011fini kolayla\u015ft\u0131r\u0131yor.<\/p>\n<h3>G\u00fcn 5: Buluta Ge\u00e7i\u015f ve \u0130lk Da\u011f\u0131t\u0131m Deneyimi<\/h3>\n<p>Geli\u015ftirme ortam\u0131m\u0131 ve versiyon kontrol\u00fcm\u00fc sa\u011flamla\u015ft\u0131rd\u0131ktan sonra, s\u0131ra uygulamam\u0131 d\u00fcnyaya a\u00e7maya geldi. Bu son g\u00fcn, Dockerize etti\u011fim Express uygulamas\u0131n\u0131 bir bulut platformuna da\u011f\u0131tarak bulut bili\u015fim d\u00fcnyas\u0131na ilk ad\u0131m\u0131m\u0131 att\u0131m.<\/p>\n<h4>Bulut Platformu Se\u00e7imi ve Nedenleri<\/h4>\n<p>Piyasada bir\u00e7ok g\u00fc\u00e7l\u00fc bulut sa\u011flay\u0131c\u0131s\u0131 bulunuyor: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP). Her birinin kendine g\u00f6re avantajlar\u0131 var. Bu ilk da\u011f\u0131t\u0131m i\u00e7in AWS'i tercih ettim. AWS'in geni\u015f hizmet yelpazesi, sekt\u00f6rdeki lider konumu ve \u00fccretsiz kullan\u0131m katman\u0131 (Free Tier) ba\u015flang\u0131\u00e7 i\u00e7in cazip geldi. \u00d6zellikle basit bir sanal sunucu (EC2) ve Docker konteynerlerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in uygun bir ortam sunmas\u0131 karar\u0131m\u0131 etkiledi.<\/p>\n<h4>Basit Bir Sanal Sunucu Kurulumu<\/h4>\n<p>AWS konsoluna giri\u015f yaparak bir EC2 (Elastic Compute Cloud) sanal sunucu ba\u015flatt\u0131m. Ad\u0131mlar k\u0131saca \u015f\u00f6yleydi:<\/p>\n<ol>\n<li>EC2 hizmetine gittim ve \"Launch Instance\" (\u00d6rnek Ba\u015flat) se\u00e7ene\u011fini se\u00e7tim.<\/li>\n<li>Ubuntu Server (Free tier eligible) AMI'sini se\u00e7tim.<\/li>\n<li>t2.micro (Free tier eligible) \u00f6rnek tipini se\u00e7tim.<\/li>\n<li>Bir key pair (anahtar \u00e7ifti) olu\u015fturdum ve <code>.pem<\/code> dosyas\u0131n\u0131 indirdim. Bu, SSH ile sunucuya ba\u011flanmak i\u00e7in gerekli.<\/li>\n<li>G\u00fcvenlik grubu (Security Group) ayarlar\u0131nda, web uygulamam\u0131n eri\u015filebilir olmas\u0131 i\u00e7in 80 (HTTP) ve 3000 (uygulama portu) portlar\u0131na gelen trafi\u011fe izin verdim. Ayr\u0131ca SSH (22) portuna da kendi IP adresimden eri\u015fime izin verdim.<\/li>\n<li>\u00d6rne\u011fi ba\u015flatt\u0131m ve birka\u00e7 dakika i\u00e7inde \u00e7al\u0131\u015f\u0131r duruma geldi.<\/li>\n<\/ol>\n<p>Sunucunun genel IP adresini veya DNS ad\u0131n\u0131 alarak SSH ile ba\u011fland\u0131m:<\/p>\n<pre><code class=\"language-bash\">ssh -i \"anahtar-cifti.pem\" ubuntu@EC2_GENEL_IP_ADRESI<\/pre>\n<p><\/code><\/p>\n<h4>Dockerize Edilmi\u015f Uygulamay\u0131 Da\u011f\u0131tma<\/h4>\n<p>EC2 sunucusuna ba\u011fland\u0131ktan sonra, Docker'\u0131 kurdum ve Dockerize etti\u011fim uygulamam\u0131 da\u011f\u0131t\u0131m i\u00e7in haz\u0131rlad\u0131m. \u0130lk olarak, sunucuya Docker'\u0131 y\u00fckledim:<\/p>\n<pre><code class=\"language-bash\"># Docker kurulumu\nsudo apt update\nsudo apt install apt-transport-https ca-certificates curl software-properties-common\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg\necho \"deb [arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null\nsudo apt update\nsudo apt install docker-ce docker-ce-cli containerd.io\n\n# Kullan\u0131c\u0131y\u0131 docker grubuna ekleme (sudo kullanmadan docker komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in)\nsudo usermod -aG docker $USER\nnewgrp docker # Grubu etkinle\u015ftirmek i\u00e7in oturumu yeniden ba\u015flatmak veya bu komutu \u00e7al\u0131\u015ft\u0131rmak<\/pre>\n<p><\/code><\/p>\n<p>Daha sonra, Docker imaj\u0131m\u0131 Docker Hub gibi bir konteyner kay\u0131t defterine y\u00fckledim (veya do\u011frudan sunucuya kopyalad\u0131m, ancak kay\u0131t defteri daha iyi bir uygulamad\u0131r). Yerel imaj\u0131m\u0131 Docker Hub'a g\u00f6ndermek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">docker tag my-express-app:latest kullaniciadi\/my-express-app:latest\ndocker push kullaniciadi\/my-express-app:latest<\/pre>\n<p><\/code><\/p>\n<p>Son olarak, EC2 sunucumda bu imaj\u0131 \u00e7ekip uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131m:<\/p>\n<pre><code class=\"language-bash\"># Sunucuda\ndocker pull kullaniciadi\/my-express-app:latest\ndocker run -p 80:3000 -d kullaniciadi\/my-express-app<\/pre>\n<p><\/code><\/p>\n<p>Uygulamam\u0131 80 numaral\u0131 porta y\u00f6nlendirdim, b\u00f6ylece sunucunun genel IP adresine do\u011frudan eri\u015fti\u011fimde uygulamam \u00e7al\u0131\u015facakt\u0131. Taray\u0131c\u0131mdan EC2 sunucumun genel IP adresine giderek \"Merhaba WSL ve Express!\" mesaj\u0131n\u0131 g\u00f6rd\u00fc\u011f\u00fcmde, bu 5 g\u00fcnl\u00fck yolculu\u011fun zirvesine ula\u015ft\u0131\u011f\u0131m\u0131 anlad\u0131m. Uygulamam art\u0131k bulutta, d\u00fcnyaya a\u00e7\u0131k bir \u015fekilde \u00e7al\u0131\u015f\u0131yordu.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu 5 g\u00fcnl\u00fck geli\u015ftirme g\u00fcnl\u00fc\u011f\u00fc, WSL'in sundu\u011fu yerel Linux deneyiminden, Docker ile konteynerle\u015fmenin g\u00fcc\u00fcne ve nihayetinde bulut platformlar\u0131nda uygulama da\u011f\u0131t\u0131m\u0131na kadar uzanan kapsaml\u0131 bir ser\u00fcveni \u00f6zetliyor. Her g\u00fcn, yeni bir teknoloji veya kavramla tan\u0131\u015ft\u0131m ve bunlar\u0131 pratik uygulamalarla peki\u015ftirdim. Bu s\u00fcre\u00e7te edindi\u011fim bilgiler ve deneyimler, modern yaz\u0131l\u0131m geli\u015ftirme ekosisteminde daha yetkin ve kendinden emin bir geli\u015ftirici olmam\u0131 sa\u011flad\u0131.<\/p>\n<p>WSL, Windows kullan\u0131c\u0131lar\u0131 i\u00e7in Linux geli\u015ftirme ortam\u0131na eri\u015fimi demokratikle\u015ftirirken, Docker uygulamalar\u0131n tutarl\u0131 ve ta\u015f\u0131nabilir olmas\u0131n\u0131 sa\u011fl\u0131yor. Git ve GitHub ise i\u015fbirli\u011fini ve kod y\u00f6netimini kolayla\u015ft\u0131r\u0131yor. Bulut platformlar\u0131 ise uygulamalar\u0131m\u0131z\u0131 global \u00f6l\u00e7ekte da\u011f\u0131tmam\u0131za olanak tan\u0131yor. Bu teknolojilerin birle\u015fimi, geli\u015ftiricilere inan\u0131lmaz bir esneklik ve g\u00fc\u00e7 sunuyor. Umar\u0131m bu devlog, kendi geli\u015ftirme yolculu\u011funuzda size ilham verir ve yeni ufuklar a\u00e7ar.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<p><strong>S1: WSL 1 mi yoksa WSL 2 mi kullanmal\u0131y\u0131m?<\/strong><br \/>\nC1: Kesinlikle WSL 2 kullanmal\u0131s\u0131n\u0131z. WSL 2, tam bir Linux \u00e7ekirde\u011fi i\u00e7erir ve WSL 1'e g\u00f6re \u00e7ok daha iyi performans, tam sistem \u00e7a\u011fr\u0131s\u0131 uyumlulu\u011fu ve Docker gibi ara\u00e7larla daha iyi entegrasyon sunar.<\/p>\n<p><strong>S2: Docker Desktop, WSL 2 olmadan da \u00e7al\u0131\u015f\u0131r m\u0131?<\/strong><br \/>\nC2: Evet, Docker Desktop Windows'ta Hyper-V sanalla\u015ft\u0131rmas\u0131 ile de \u00e7al\u0131\u015fabilir. Ancak WSL 2 entegrasyonu, daha hafif ve h\u0131zl\u0131 bir deneyim sunarak tercih edilen y\u00f6ntem haline gelmi\u015ftir.<\/p>\n<p><strong>S3: Hangi bulut platformunu se\u00e7meliyim?<\/strong><br \/>\nC3: Se\u00e7im, projenizin gereksinimlerine, b\u00fct\u00e7enize ve ki\u015fisel \u00f6\u011frenme hedeflerinize ba\u011fl\u0131d\u0131r. AWS, Azure ve GCP piyasan\u0131n liderleridir ve her biri geni\u015f bir hizmet yelpazesi sunar. Yeni ba\u015flayanlar i\u00e7in \u00fccretsiz kullan\u0131m katmanlar\u0131 olan platformlar iyi bir ba\u015flang\u0131\u00e7 olabilir.<\/p>\n<p><strong>S4: Git ve GitHub'\u0131 \u00f6\u011frenmek ne kadar s\u00fcrer?<\/strong><br \/>\nC4: Git'in temel komutlar\u0131n\u0131 (add, commit, push, pull, branch, merge) \u00f6\u011frenmek birka\u00e7 saat i\u00e7inde m\u00fcmk\u00fcnd\u00fcr. Ancak ileri d\u00fczey kavramlar\u0131 ve karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131n\u0131 kavramak pratik ve deneyim gerektirir. D\u00fczenli kullan\u0131m ile h\u0131zla ustala\u015fabilirsiniz.<\/p>\n<p><strong>S5: WSL'de geli\u015ftirme yaparken Windows uygulamalar\u0131na eri\u015febilir miyim?<\/strong><br \/>\nC5: Evet, WSL ortam\u0131ndan Windows uygulamalar\u0131n\u0131 do\u011frudan \u00e7al\u0131\u015ft\u0131rabilirsiniz. \u00d6rne\u011fin, <code>notepad.exe<\/code> veya <code>code.exe<\/code> gibi komutlar\u0131 do\u011frudan WSL terminalinden \u00e7a\u011f\u0131rabilirsiniz. Bu, Windows ve Linux ortamlar\u0131 aras\u0131nda sorunsuz bir ge\u00e7i\u015f sa\u011flar.<\/p>\n","protected":false},"excerpt":{"rendered":"Merhaba teknoloji merakl\u0131lar\u0131 ve yaz\u0131l\u0131m geli\u015ftiricileri! Bu makalede, Windows Subsystem for Linux (WSL) ile ba\u015flayan ve bulut platformlar\u0131nda uygulam&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[241],"tags":[],"class_list":{"0":"post-39192","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#039;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#039;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)\" \/>\n<meta property=\"og:description\" content=\"Merhaba teknoloji merakl\u0131lar\u0131 ve yaz\u0131l\u0131m geli\u015ftiricileri! Bu makalede, Windows Subsystem for Linux (WSL) ile ba\u015flayan ve bulut platformlar\u0131nda uygulam...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-16T09:30:39+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#8217;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)\",\"datePublished\":\"2026-02-16T09:30:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\"},\"wordCount\":2433,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\",\"name\":\"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL'den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-16T09:30:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#8217;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL'den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/","og_locale":"tr_TR","og_type":"article","og_title":"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL'den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)","og_description":"Merhaba teknoloji merakl\u0131lar\u0131 ve yaz\u0131l\u0131m geli\u015ftiricileri! Bu makalede, Windows Subsystem for Linux (WSL) ile ba\u015flayan ve bulut platformlar\u0131nda uygulam...","og_url":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-16T09:30:39+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#8217;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)","datePublished":"2026-02-16T09:30:39+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/"},"wordCount":2433,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/","url":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/","name":"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL'den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5) - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-16T09:30:39+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/linux-gelistirme-gunlugum-wslden-buluta-ilk-adimlar-gun-1-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Linux Geli\u015ftirme G\u00fcnl\u00fc\u011f\u00fcm: WSL&#8217;den Buluta \u0130lk Ad\u0131mlar (G\u00fcn 1-5)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39192"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39192\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}