{"id":41628,"date":"2026-05-07T09:01:39","date_gmt":"2026-05-07T06:01:39","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/"},"modified":"2026-05-07T09:01:39","modified_gmt":"2026-05-07T06:01:39","slug":"kabuk-nedir-baslangic-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/","title":{"rendered":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi"},"content":{"rendered":"<h2>Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi<\/h2>\n<p>Bilgisayar d\u00fcnyas\u0131na yeni ad\u0131m atanlar i\u00e7in &#8220;kabuk&#8221; (shell) kelimesi biraz kafa kar\u0131\u015ft\u0131r\u0131c\u0131 olabilir. Sanki bir deniz kabu\u011funu ya da bir yumurta kabu\u011funu \u00e7a\u011fr\u0131\u015ft\u0131r\u0131yor, de\u011fil mi? Oysa bu terim, bilgisayar\u0131m\u0131z\u0131n derinliklerinde \u00e7al\u0131\u015fan, bizimle onun aras\u0131nda bir k\u00f6pr\u00fc g\u00f6revi g\u00f6ren hayati bir bile\u015feni ifade ediyor. Peki, bu gizemli kabuk tam olarak nedir ve g\u00fcnl\u00fck hayat\u0131m\u0131zda nas\u0131l bir rol oynar? Bu rehberde, kabuk kavram\u0131n\u0131 en temelinden ba\u015flayarak, ad\u0131m ad\u0131m \u00f6\u011frenecek ve sonunda onu bir teknoloji sihirbaz\u0131 gibi kullanabilmek i\u00e7in gerekli bilgiye sahip olacaks\u0131n\u0131z. Haz\u0131rsan\u0131z, bilgisayar\u0131m\u0131z\u0131n &#8220;i\u00e7 d\u00fcnyas\u0131na&#8221; bir yolculuk yapmaya ba\u015flayal\u0131m!<\/p>\n<h2>Kabuk Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p>Bilgisayarlar, bizimle do\u011frudan insan dilinde konu\u015famazlar. Onlar\u0131n anlad\u0131\u011f\u0131 dil, karma\u015f\u0131k ikili kodlardan (0 ve 1&#8217;lerden) olu\u015fur. \u0130\u015fte tam bu noktada &#8220;kabuk&#8221; devreye giriyor. Kabuk, bizim verdi\u011fimiz komutlar\u0131 bilgisayar\u0131n anlayabilece\u011fi makine diline \u00e7eviren ve bilgisayar\u0131n verdi\u011fi yan\u0131tlar\u0131 da bize anla\u015f\u0131l\u0131r bir dilde sunan bir aray\u00fczd\u00fcr. En basit tabirle, bilgisayarla ileti\u015fim kurmam\u0131z\u0131 sa\u011flayan bir terc\u00fcman gibidir. Bu terc\u00fcman olmadan, bilgisayar\u0131m\u0131za ne yapmas\u0131 gerekti\u011fini s\u00f6yleyemez, onunla etkile\u015fim kuramazd\u0131k.<\/p>\n<p>\u0130ki ana t\u00fcr kabuk bulunur: Grafiksel Kullan\u0131c\u0131 Aray\u00fcz\u00fc (GUI &#8211; Graphical User Interface) ve Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc (CLI &#8211; Command Line Interface). G\u00fcn\u00fcm\u00fczde en yayg\u0131n olarak kulland\u0131\u011f\u0131m\u0131z Windows, macOS ve mobil i\u015fletim sistemlerindeki ikonlar, pencereler ve fare t\u0131klamalar\u0131 GUI&#8217;ye \u00f6rnektir. Bu, g\u00f6rsel olarak daha \u00e7ekici ve \u00f6\u011frenmesi daha kolay bir y\u00f6ntemdir. Ancak, \u00f6zellikle yaz\u0131l\u0131m geli\u015ftiriciler, sistem y\u00f6neticileri ve ileri d\u00fczey kullan\u0131c\u0131lar i\u00e7in CLI, \u00e7ok daha g\u00fc\u00e7l\u00fc, esnek ve verimli bir ara\u00e7t\u0131r. CLI, metin tabanl\u0131 komutlar arac\u0131l\u0131\u011f\u0131yla bilgisayarla etkile\u015fim kurmam\u0131z\u0131 sa\u011flar. Bu makalede odaklanaca\u011f\u0131m\u0131z konu ise bu g\u00fc\u00e7l\u00fc CLI kabuklar\u0131 olacak.<\/p>\n<p>Kabuklar\u0131n \u00f6nemi, sadece komutlar\u0131 iletmekle s\u0131n\u0131rl\u0131 de\u011fildir. Ayn\u0131 zamanda, dosya y\u00f6netimi, program \u00e7al\u0131\u015ft\u0131rma, sistem yap\u0131land\u0131rmas\u0131 ve otomasyon gibi bir\u00e7ok karma\u015f\u0131k i\u015flemi ger\u00e7ekle\u015ftirmemizi sa\u011flarlar. Bir kabuk olmadan, bilgisayar\u0131m\u0131z sadece bir donan\u0131m y\u0131\u011f\u0131n\u0131 olmaktan \u00f6teye gidemezdi. Bu nedenle, kabuklar\u0131 anlamak, bilgisayar\u0131n\u0131z\u0131n potansiyelini tam olarak kullanman\u0131n ilk ad\u0131m\u0131d\u0131r. \u00d6zellikle programlama ve sistem y\u00f6netimi gibi alanlarda ilerlemek isteyenler i\u00e7in kabuk bilgisi, olmazsa olmazd\u0131r.<\/p>\n<h2>En Pop\u00fcler Kabuk T\u00fcrleri Nelerdir?<\/h2>\n<p>D\u00fcnyada bir\u00e7ok farkl\u0131 kabuk t\u00fcr\u00fc bulunmaktad\u0131r ve her birinin kendine \u00f6zg\u00fc \u00f6zellikleri ve kullan\u0131m alanlar\u0131 vard\u0131r. Ancak, en yayg\u0131n ve en \u00e7ok kullan\u0131lanlardan baz\u0131lar\u0131n\u0131 bilmek, konuya giri\u015f yapmak i\u00e7in harika bir ba\u015flang\u0131\u00e7 noktas\u0131 olacakt\u0131r.<\/p>\n<h3>Bash (Bourne Again Shell)<\/h3>\n<p>Bash, Linux ve macOS i\u015fletim sistemlerinde varsay\u0131lan olarak gelen en pop\u00fcler komut sat\u0131r\u0131 kabuklar\u0131ndan biridir. Ad\u0131, &#8220;Bourne Again Shell&#8221; ifadesinin bir k\u0131saltmas\u0131d\u0131r ve \u00f6nc\u00fcs\u00fc olan Bourne Shell&#8217;in (sh) geli\u015ftirilmi\u015f bir versiyonu oldu\u011funu belirtir. Bash, son derece g\u00fc\u00e7l\u00fc ve esnek bir kabuktur. Komut ge\u00e7mi\u015fi, tab ile otomatik tamamlama, betik (scripting) yetenekleri ve geni\u015f bir komut seti gibi \u00f6zellikleriyle kullan\u0131c\u0131lar\u0131n hayat\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Bir\u00e7ok Linux da\u011f\u0131t\u0131m\u0131nda varsay\u0131lan kabuk olmas\u0131, onu \u00f6\u011frenmeyi ve kullanmay\u0131 olduk\u00e7a yayg\u0131n hale getirmi\u015ftir. E\u011fer bir Linux veya macOS kullan\u0131c\u0131s\u0131ysan\u0131z, muhtemelen zaten Bash ile etkile\u015fim halindesinizdir. Bash betikleri yazarak tekrarlayan g\u00f6revleri otomatikle\u015ftirebilir, karma\u015f\u0131k i\u015flemleri tek bir komutla ger\u00e7ekle\u015ftirebilirsiniz. Bu, \u00f6zellikle sistem y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in b\u00fcy\u00fck bir zaman tasarrufu sa\u011flar.<\/p>\n<p>Bash&#8217;in en \u00f6nemli \u00f6zelliklerinden biri, komutlar\u0131n\u0131z\u0131 ve arg\u00fcmanlar\u0131n\u0131z\u0131 nas\u0131l i\u015fledi\u011fidir. \u00d6rne\u011fin, bir dosyay\u0131 kopyalamak i\u00e7in <code>cp<\/code> komutunu kullan\u0131r\u0131z. Bu komutun ard\u0131ndan, kopyalanacak dosyan\u0131n ad\u0131 ve kopyalanaca\u011f\u0131 yer belirtilir. Bash, bu komutlar\u0131 ayr\u0131\u015ft\u0131rarak do\u011fru \u015fekilde \u00e7al\u0131\u015ft\u0131r\u0131r. Ayr\u0131ca, de\u011fi\u015fkenler, d\u00f6ng\u00fcler ve ko\u015fullu ifadeler gibi programlama yap\u0131lar\u0131n\u0131 desteklemesi, Bash&#8217;i sadece bir komut sat\u0131r\u0131 aray\u00fcz\u00fc olmaktan \u00e7\u0131kar\u0131p, tam te\u015fekk\u00fcll\u00fc bir betik diline d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Bu betikler, karma\u015f\u0131k g\u00f6revleri otomatikle\u015ftirmek i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h3>Zsh (Z Shell)<\/h3>\n<p>Zsh, Bash&#8217;in bir\u00e7ok \u00f6zelli\u011fini bar\u0131nd\u0131ran ve \u00fczerine eklemeler yapan daha modern ve geli\u015fmi\u015f bir kabuktur. \u00d6zellikle ki\u015fiselle\u015ftirme se\u00e7enekleri ve geli\u015fmi\u015f otomatik tamamlama \u00f6zellikleri ile \u00f6ne \u00e7\u0131kar. Zsh&#8217;in &#8220;oh-my-zsh&#8221; gibi pop\u00fcler \u00e7er\u00e7eveleri sayesinde, kullan\u0131c\u0131lar kolayca tema ve eklentilerle kabuklar\u0131n\u0131 \u00f6zelle\u015ftirebilirler. Bu, hem g\u00f6rsel olarak daha ho\u015f bir deneyim sunar hem de i\u015f ak\u0131\u015f\u0131n\u0131 h\u0131zland\u0131ran ek \u00f6zellikler sa\u011flar. Zsh, \u00f6zellikle geli\u015ftirici toplulu\u011funda pop\u00fclerlik kazanm\u0131\u015ft\u0131r \u00e7\u00fcnk\u00fc karma\u015f\u0131k projelerle \u00e7al\u0131\u015f\u0131rken sundu\u011fu esneklik ve h\u0131z, verimlili\u011fi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<p>Zsh&#8217;in otomatik tamamlama \u00f6zelli\u011fi, Bash&#8217;ten \u00e7ok daha ak\u0131ll\u0131d\u0131r. Sadece dosya ve komut isimlerini de\u011fil, ayn\u0131 zamanda komutlar\u0131n arg\u00fcmanlar\u0131n\u0131 ve se\u00e7eneklerini de \u00f6nerir. \u00d6rne\u011fin, bir Git komutu yazarken, Zsh size mevcut dallar\u0131, uzak depolar\u0131 ve hatta commit hash&#8217;lerini otomatik olarak tamamlayabilir. Bu, yaz\u0131m hatalar\u0131n\u0131 azalt\u0131r ve komutlar\u0131 hat\u0131rlama y\u00fck\u00fcn\u00fc ortadan kald\u0131r\u0131r. Ayr\u0131ca, Zsh&#8217;in komut dizilerini (command spelling correction) d\u00fczeltme yetene\u011fi de olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. Yanl\u0131\u015f yazd\u0131\u011f\u0131n\u0131z bir komutu otomatik olarak d\u00fczeltebilir veya olas\u0131 do\u011fru komutlar\u0131 size \u00f6nerebilir. Bu \u00f6zellikler, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in CLI&#8217;yi daha eri\u015filebilir hale getirir.<\/p>\n<h3>Fish (Friendly Interactive Shell)<\/h3>\n<p>Fish, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, kullan\u0131c\u0131 dostu olmay\u0131 hedefleyen bir kabuktur. Varsay\u0131lan olarak bir\u00e7ok geli\u015fmi\u015f \u00f6zelli\u011fe sahiptir ve kurulumu sonras\u0131 hemen kullan\u0131ma haz\u0131rd\u0131r. Fish, otomatik tamamlama, s\u00f6zdizimi vurgulama (syntax highlighting) ve komut ge\u00e7mi\u015finde ak\u0131ll\u0131 arama gibi \u00f6zellikleriyle dikkat \u00e7eker. Bu \u00f6zellikler, CLI&#8217;yi daha sezgisel ve anla\u015f\u0131l\u0131r hale getirir. \u00d6zellikle CLI&#8217;ye yeni ba\u015flayanlar i\u00e7in \u00f6\u011frenme e\u011frisini \u00f6nemli \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcr\u00fcr.<\/p>\n<p>Fish&#8217;in en dikkat \u00e7ekici \u00f6zelliklerinden biri, komutlar\u0131 yazarken sundu\u011fu ger\u00e7ek zamanl\u0131 geri bildirimdir. Bir komut yazd\u0131\u011f\u0131n\u0131zda, Fish size o komutun ge\u00e7erli olup olmad\u0131\u011f\u0131n\u0131, hangi arg\u00fcmanlar\u0131 alabilece\u011fini ve hatta bu arg\u00fcmanlar\u0131n ne anlama geldi\u011fini g\u00f6sterir. Bu, komutlar\u0131 ezberlemek yerine anlamay\u0131 kolayla\u015ft\u0131r\u0131r. Ayr\u0131ca, Fish&#8217;in betik dili de olduk\u00e7a basittir ve \u00f6\u011frenmesi kolayd\u0131r. Bu sayede, karma\u015f\u0131k otomasyon g\u00f6revlerini bile h\u0131zl\u0131 bir \u015fekilde ger\u00e7ekle\u015ftirebilirsiniz. Fish, \u00f6zellikle interaktif kullan\u0131mda y\u00fcksek verimlilik sunar ve CLI&#8217;yi daha keyifli bir deneyim haline getirir.<\/p>\n<h2>Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc (CLI) Nas\u0131l Kullan\u0131l\u0131r?<\/h2>\n<p>Komut sat\u0131r\u0131 aray\u00fcz\u00fcn\u00fc kullanmak, ba\u015flang\u0131\u00e7ta biraz g\u00f6z korkutucu g\u00f6r\u00fcnebilir, ancak temel komutlar\u0131 \u00f6\u011frendik\u00e7e ne kadar g\u00fc\u00e7l\u00fc bir ara\u00e7 oldu\u011funu fark edeceksiniz. Unutmay\u0131n, her GUI uygulamas\u0131n\u0131n arkas\u0131nda \u00e7al\u0131\u015fan bir CLI kar\u015f\u0131l\u0131\u011f\u0131 vard\u0131r ve CLI, size daha fazla kontrol ve esneklik sunar.<\/p>\n<h3>Temel Komutlar ve Anlamlar\u0131<\/h3>\n<p>Bir kabukta \u00e7al\u0131\u015f\u0131rken kullanaca\u011f\u0131n\u0131z en temel komutlar, dosya ve dizinlerle etkile\u015fim kurman\u0131z\u0131 sa\u011flar. \u0130\u015fte en s\u0131k kullan\u0131lanlardan baz\u0131lar\u0131:<\/p>\n<p>*   <code>pwd<\/code> (Print Working Directory): \u015eu anda bulundu\u011funuz dizinin (klas\u00f6r\u00fcn) tam yolunu g\u00f6sterir. Bu, nerede oldu\u011funuzu bilmek i\u00e7in \u00e7ok \u00f6nemlidir.<br \/>\n*   <code>ls<\/code> (List): Bulundu\u011funuz dizindeki dosya ve klas\u00f6rleri listeler. Farkl\u0131 se\u00e7eneklerle (\u00f6rne\u011fin, <code>ls -l<\/code> ile detayl\u0131 liste, <code>ls -a<\/code> ile gizli dosyalar dahil) daha fazla bilgi alabilirsiniz.<br \/>\n*   <code>cd<\/code> (Change Directory): Farkl\u0131 bir dizine ge\u00e7menizi sa\u011flar. \u00d6rne\u011fin, <code>cd Belge<\/code> komutu, &#8220;Belge&#8221; adl\u0131 klas\u00f6re girmenizi sa\u011flar. <code>cd ..<\/code> komutu ise bir \u00fcst dizine \u00e7\u0131kman\u0131z\u0131 sa\u011flar.<br \/>\n*   <code>mkdir<\/code> (Make Directory): Yeni bir dizin (klas\u00f6r) olu\u015fturur. \u00d6rne\u011fin, <code>mkdir YeniKlasor<\/code> komutu &#8220;YeniKlasor&#8221; ad\u0131nda bir klas\u00f6r olu\u015fturur.<br \/>\n*   <code>rmdir<\/code> (Remove Directory): Bo\u015f bir dizini siler. E\u011fer dizin bo\u015f de\u011filse, <code>rm -r<\/code> komutunu kullanman\u0131z gerekir (dikkatli olun!).<br \/>\n*   <code>touch<\/code>: Yeni bir bo\u015f dosya olu\u015fturur veya mevcut bir dosyan\u0131n zaman damgas\u0131n\u0131 g\u00fcnceller. \u00d6rne\u011fin, <code>touch yeni_dosya.txt<\/code> komutu &#8220;yeni_dosya.txt&#8221; ad\u0131nda bo\u015f bir dosya olu\u015fturur.<br \/>\n*   <code>cp<\/code> (Copy): Dosyalar\u0131 veya dizinleri kopyalar. \u00d6rne\u011fin, <code>cp kaynak_dosya.txt hedef_klasor\/<\/code> komutu &#8220;kaynak_dosya.txt&#8221; dosyas\u0131n\u0131 &#8220;hedef_klasor&#8221; i\u00e7ine kopyalar.<br \/>\n*   <code>mv<\/code> (Move): Dosyalar\u0131 veya dizinleri ta\u015f\u0131r veya yeniden adland\u0131r\u0131r. \u00d6rne\u011fin, <code>mv eski_isim.txt yeni_isim.txt<\/code> komutu dosyan\u0131n ad\u0131n\u0131 de\u011fi\u015ftirir. <code>mv dosya.txt hedef_klasor\/<\/code> komutu ise dosyay\u0131 ba\u015fka bir klas\u00f6re ta\u015f\u0131r.<br \/>\n*   <code>rm<\/code> (Remove): Dosyalar\u0131 siler. Dikkatli kullan\u0131lmal\u0131d\u0131r, silinen dosyalar genellikle geri getirilemez. <code>rm -r<\/code> ile dizinleri (i\u00e7indekilerle birlikte) silebilirsiniz.<\/p>\n<p>Bu temel komutlar\u0131 \u00f6\u011frenmek, CLI d\u00fcnyas\u0131na ad\u0131m atman\u0131z i\u00e7in yeterli olacakt\u0131r. Zamanla, daha karma\u015f\u0131k komutlar\u0131 ve se\u00e7eneklerini ke\u015ffedeceksiniz.<\/p>\n<h3>Ger\u00e7ek D\u00fcnya Senaryosu: Bir Web Sitesi Dosyas\u0131n\u0131 D\u00fczenleme<\/h3>\n<p>Diyelim ki bir web siteniz var ve sitenin ana sayfas\u0131n\u0131n ba\u015fl\u0131\u011f\u0131n\u0131 de\u011fi\u015ftirmek istiyorsunuz. Bu dosyay\u0131 sunucunuzdaki bir klas\u00f6rde bulup d\u00fczenlemeniz gerekiyor. GUI ile bu i\u015flemi yapmak i\u00e7in bir FTP istemcisi (File Transfer Protocol client) kullanman\u0131z gerekebilir. Ancak CLI ile bu i\u015flem \u00e7ok daha h\u0131zl\u0131 olabilir:<\/p>\n<p>1.  <strong>SSH ile Sunucuya Ba\u011flanma:<\/strong><br \/>\n    \u00d6ncelikle SSH (Secure Shell) protokol\u00fcn\u00fc kullanarak sunucunuza ba\u011flanman\u0131z gerekir. Bu, g\u00fcvenli bir \u015fekilde uzak bir bilgisayara komut g\u00f6ndermenizi sa\u011flar. Komut sat\u0131r\u0131na \u015fu \u015fekilde yazars\u0131n\u0131z:<\/p>\n<pre><code class=\"language-bash\">ssh kullanici_adi@sunucu_ip_adresi<\/pre>\n<p><\/code><br \/>\n    Burada <code>kullanici_adi<\/code> kendi kullan\u0131c\u0131 ad\u0131n\u0131z ve <code>sunucu_ip_adresi<\/code> ise sunucunuzun IP adresidir.<\/p>\n<p>2.  <strong>Web Sitesi Klas\u00f6r\u00fcne Gitme:<\/strong><br \/>\n    Sunucuya ba\u011fland\u0131ktan sonra, web sitenizin dosyalar\u0131n\u0131n bulundu\u011fu dizine gitmeniz gerekir. \u00d6rne\u011fin, bu dizin <code>\/var\/www\/html<\/code> olabilir.<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/html<\/pre>\n<p><\/code><\/p>\n<p>3.  <strong>Dosyalar\u0131 Listeleme ve \u0130lgili Dosyay\u0131 Bulma:<\/strong><br \/>\n    \u015eimdi dizindeki dosyalar\u0131 listeleyerek ana sayfa dosyan\u0131z\u0131 bulabilirsiniz. Genellikle bu dosya <code>index.html<\/code> veya <code>index.php<\/code> gibi isimlerdedir.<\/p>\n<pre><code class=\"language-bash\">ls -l<\/pre>\n<p><\/code><\/p>\n<p>4.  <strong>Dosyay\u0131 D\u00fczenleme (Nano veya Vim ile):<\/strong><br \/>\n    Dosyay\u0131 d\u00fczenlemek i\u00e7in <code>nano<\/code> veya <code>vim<\/code> gibi metin edit\u00f6rlerini kullanabilirsiniz. Nano, yeni ba\u015flayanlar i\u00e7in daha kolayd\u0131r.<\/p>\n<pre><code class=\"language-bash\">nano index.html<\/pre>\n<p><\/code><br \/>\n    Nano edit\u00f6r\u00fc a\u00e7\u0131ld\u0131\u011f\u0131nda, fare yerine klavye tu\u015flar\u0131n\u0131 kullanarak metni d\u00fczenleyebilir, ba\u015fl\u0131\u011f\u0131 de\u011fi\u015ftirebilir ve ard\u0131ndan de\u011fi\u015fiklikleri kaydedip \u00e7\u0131kabilirsiniz (Ctrl+X, sonra Y, sonra Enter).<\/p>\n<p>Bu basit \u00f6rnek bile, CLI'nin ne kadar h\u0131zl\u0131 ve etkili olabilece\u011fini g\u00f6stermektedir. Birka\u00e7 komutla, uzak bir sunucudaki bir dosyay\u0131 kolayca d\u00fczenleyebilirsiniz. Bu, \u00f6zellikle web geli\u015ftiriciler ve sistem y\u00f6neticileri i\u00e7in g\u00fcnl\u00fck i\u015flerinin vazge\u00e7ilmez bir par\u00e7as\u0131d\u0131r.<\/p>\n<h2>Kabuk Betikleme (Shell Scripting): Otomasyonun G\u00fcc\u00fc<\/h2>\n<p>Tekrarlayan g\u00f6revler s\u0131k\u0131c\u0131 ve zaman al\u0131c\u0131 olabilir. \u0130\u015fte tam bu noktada kabuk betikleme (shell scripting) devreye giriyor. Kabuk betikleri, bir dizi komutu tek bir dosyada toplaman\u0131z\u0131 ve bu dosyay\u0131 \u00e7al\u0131\u015ft\u0131rarak t\u00fcm komutlar\u0131n s\u0131rayla \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flaman\u0131z\u0131 sa\u011flar. Bu, otomasyonun temelini olu\u015fturur.<\/p>\n<h3>Betik Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<p>Bir kabuk beti\u011fi, bir kabuk taraf\u0131ndan yorumlanarak \u00e7al\u0131\u015ft\u0131r\u0131lan bir dizi komuttan olu\u015fan bir metin dosyas\u0131d\u0131r. Bu betikler, basit dosya y\u00f6netimi g\u00f6revlerinden karma\u015f\u0131k sistem y\u00f6netimi i\u015flemlerine kadar her \u015feyi otomatikle\u015ftirmek i\u00e7in kullan\u0131labilir.<\/p>\n<p>Betik kullanman\u0131n temel nedenleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Zaman Tasarrufu:<\/strong> Tekrarlayan g\u00f6revleri otomatikle\u015ftirmek, size \u00f6nemli \u00f6l\u00e7\u00fcde zaman kazand\u0131r\u0131r.<br \/>\n*   <strong>Hata Azaltma:<\/strong> Manuel olarak yap\u0131lan i\u015flemlerde insan hatas\u0131 olas\u0131l\u0131\u011f\u0131 y\u00fcksektir. Betikler, komutlar\u0131 do\u011fru s\u0131rayla ve do\u011fru arg\u00fcmanlarla \u00e7al\u0131\u015ft\u0131rarak hatalar\u0131 en aza indirir.<br \/>\n*   <strong>Tutarl\u0131l\u0131k:<\/strong> Betikler, g\u00f6revlerin her zaman ayn\u0131 \u015fekilde ve ayn\u0131 sonu\u00e7larla ger\u00e7ekle\u015ftirilmesini sa\u011flar.<br \/>\n*   <strong>Karma\u015f\u0131k \u0130\u015flemleri Basitle\u015ftirme:<\/strong> Bir dizi karma\u015f\u0131k komutu tek bir betik haline getirerek, bu i\u015flemleri tek bir komutla \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, her g\u00fcn yedekleme yapman\u0131z gerekiyorsa, bu yedekleme i\u015flemini otomatikle\u015ftiren bir betik yazabilirsiniz. Bu betik, belirli bir dizindeki dosyalar\u0131 s\u0131k\u0131\u015ft\u0131r\u0131p ba\u015fka bir konuma kopyalayabilir ve hatta eski yedekleri otomatik olarak silebilir.<\/p>\n<h3>Basit Bir Bash Beti\u011fi Olu\u015fturma<\/h3>\n<p>Basit bir Bash beti\u011fi olu\u015fturmak olduk\u00e7a kolayd\u0131r. A\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\n<p>1.  <strong>Metin Edit\u00f6r\u00fcn\u00fc A\u00e7\u0131n:<\/strong> Bir metin edit\u00f6r\u00fc (\u00f6rne\u011fin, <code>nano<\/code> veya <code>vim<\/code>) a\u00e7\u0131n.<\/p>\n<pre><code class=\"language-bash\">nano benim_ilk_betigim.sh<\/pre>\n<p><\/code><br \/>\n    Burada <code>.sh<\/code> uzant\u0131s\u0131, bu dosyan\u0131n bir kabuk beti\u011fi oldu\u011funu belirtir.<\/p>\n<p>2.  <strong>Shebang Sat\u0131r\u0131n\u0131 Ekleyin:<\/strong> Beti\u011fin ilk sat\u0131r\u0131, hangi kabuk taraf\u0131ndan \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 belirtir. Bash betikleri i\u00e7in bu sat\u0131r genellikle \u015f\u00f6yledir:<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash<\/pre>\n<p><\/code><\/p>\n<p>3.  <strong>Komutlar\u0131 Ekleyin:<\/strong> Ard\u0131ndan, \u00e7al\u0131\u015ft\u0131rmak istedi\u011finiz komutlar\u0131 alt alta ekleyin.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n    # Bu bir yorum sat\u0131r\u0131d\u0131r. Betik taraf\u0131ndan okunmaz.\n    echo \"Merhaba D\u00fcnya!\"\n    echo \"\u015eu anki dizin:\"\n    pwd\n    echo \"Dizindeki dosyalar:\"\n    ls -l<\/pre>\n<p><\/code><\/p>\n<p>4.  <strong>Betik Dosyas\u0131n\u0131 Kaydedin ve \u00c7\u0131k\u0131n:<\/strong> De\u011fi\u015fiklikleri kaydedin (Ctrl+X, Y, Enter).<\/p>\n<p>5.  <strong>Betik Dosyas\u0131na Y\u00fcr\u00fctme \u0130zni Verin:<\/strong> Varsay\u0131lan olarak, yeni olu\u015fturulan bir dosya y\u00fcr\u00fct\u00fclemez. Beti\u011fi \u00e7al\u0131\u015ft\u0131rmak i\u00e7in ona y\u00fcr\u00fctme izni vermeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">chmod +x benim_ilk_betigim.sh<\/pre>\n<p><\/code><\/p>\n<p>6.  <strong>Betik Dosyas\u0131n\u0131 \u00c7al\u0131\u015ft\u0131r\u0131n:<\/strong> Art\u0131k beti\u011fi \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">.\/benim_ilk_betigim.sh<\/pre>\n<p><\/code><br \/>\n    Bu komut, beti\u011fin \u00e7\u0131kt\u0131s\u0131n\u0131 terminalinizde g\u00f6sterecektir.<\/p>\n<p>Bu basit \u00f6rnek, kabuk betiklemenin temellerini g\u00f6stermektedir. Betikler, de\u011fi\u015fkenler, d\u00f6ng\u00fcler, ko\u015fullu ifadeler ve fonksiyonlar gibi daha geli\u015fmi\u015f programlama yap\u0131lar\u0131n\u0131 da destekler, bu da onlar\u0131 son derece g\u00fc\u00e7l\u00fc ve esnek hale getirir.<\/p>\n<h2>\u0130leri D\u00fczey Kabuk Kullan\u0131m\u0131 ve P\u00fcf Noktalar\u0131<\/h2>\n<p>Temel komutlar\u0131 ve betiklemeyi \u00f6\u011frendikten sonra, kabuklar\u0131 daha verimli kullanmak i\u00e7in baz\u0131 ileri d\u00fczey teknikleri ve p\u00fcf noktalar\u0131n\u0131 ke\u015ffetmek harika olacakt\u0131r. Bu ipu\u00e7lar\u0131, i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 h\u0131zland\u0131racak ve kabukla daha ak\u0131c\u0131 bir \u015fekilde etkile\u015fim kurman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h3>Girdi\/\u00c7\u0131kt\u0131 Y\u00f6nlendirme (Input\/Output Redirection)<\/h3>\n<p>Kabuklar, komutlar\u0131n \u00e7\u0131kt\u0131lar\u0131n\u0131 farkl\u0131 yerlere y\u00f6nlendirmenize olanak tan\u0131r. Bu, komutlar\u0131n sonu\u00e7lar\u0131n\u0131 dosyaya kaydetmek, ba\u015fka bir komuta girdi olarak vermek veya \u00e7\u0131kt\u0131y\u0131 filtrelemek i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>*   <strong>\u00c7\u0131kt\u0131y\u0131 Bir Dosyaya Y\u00f6nlendirme (<code>><\/code> ve <code>>><\/code>):<\/strong><br \/>\n    Bir komutun \u00e7\u0131kt\u0131s\u0131n\u0131 bir dosyaya kaydetmek i\u00e7in <code>><\/code> operat\u00f6r\u00fcn\u00fc kullanabilirsiniz. E\u011fer dosya zaten varsa, i\u00e7eri\u011fi \u00fczerine yaz\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">ls -l > dosya_listesi.txt<\/pre>\n<p><\/code><br \/>\n    Bu komut, <code>ls -l<\/code> komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 <code>dosya_listesi.txt<\/code> dosyas\u0131na yazar.<br \/>\n    E\u011fer \u00e7\u0131kt\u0131y\u0131 dosyan\u0131n sonuna eklemek isterseniz, <code>>><\/code> operat\u00f6r\u00fcn\u00fc kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">echo \"Bu yeni bir sat\u0131r.\" >> dosya_listesi.txt<\/pre>\n<p><\/code><\/p>\n<p>*   <strong>Girdiyi Bir Dosyadan Alma (<code><<\/code>):<\/strong><br \/>\n    Bir komutun girdisini bir dosyadan almak i\u00e7in <code><<\/code> operat\u00f6r\u00fcn\u00fc kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sort < sirali_olmayan_liste.txt<\/pre>\n<p><\/code><br \/>\n    Bu komut, <code>sirali_olmayan_liste.txt<\/code> dosyas\u0131n\u0131n i\u00e7eri\u011fini <code>sort<\/code> komutuna girdi olarak verir ve s\u0131ralanm\u0131\u015f \u00e7\u0131kt\u0131y\u0131 ekrana basar.<\/p>\n<p>*   <strong>Borulama (Piping - <code>|<\/code>):<\/strong><br \/>\n    En g\u00fc\u00e7l\u00fc y\u00f6nlendirme tekniklerinden biri borulama (piping) \u00f6zelli\u011fidir. Bu, bir komutun \u00e7\u0131kt\u0131s\u0131n\u0131 ba\u015fka bir komutun girdisi olarak kullanman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">ls -l | grep \".txt\"<\/pre>\n<p><\/code><br \/>\n    Bu komut, <code>ls -l<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 al\u0131r ve sadece <code>.txt<\/code> uzant\u0131l\u0131 sat\u0131rlar\u0131 filtreleyerek ekrana basar. Bu, \u00e7\u0131kt\u0131y\u0131 i\u015flemek i\u00e7in birden fazla komutu birle\u015ftirmek i\u00e7in inan\u0131lmaz derecede g\u00fc\u00e7l\u00fc bir yoldur.<\/p>\n<h3>Alias Kullan\u0131m\u0131<\/h3>\n<p>S\u0131k kulland\u0131\u011f\u0131n\u0131z uzun komutlar\u0131 veya komut kombinasyonlar\u0131n\u0131 daha k\u0131sa takma adlar (alias) ile tan\u0131mlayabilirsiniz. Bu, komut sat\u0131r\u0131nda yazma s\u00fcresini k\u0131salt\u0131r ve verimlili\u011fi art\u0131r\u0131r.<\/p>\n<p>\u00d6rne\u011fin, <code>ls -lha<\/code> komutu hem detayl\u0131 hem de gizli dosyalar\u0131 g\u00f6steren kullan\u0131\u015fl\u0131 bir listedir. Bunu her seferinde yazmak yerine bir alias tan\u0131mlayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">alias ll='ls -lha'<\/pre>\n<p><\/code><br \/>\nArt\u0131k terminalde sadece <code>ll<\/code> yazd\u0131\u011f\u0131n\u0131zda, <code>ls -lha<\/code> komutu \u00e7al\u0131\u015facakt\u0131r. Bu alias'lar\u0131 genellikle kabuk yap\u0131land\u0131rma dosyan\u0131za (\u00f6rne\u011fin, Bash i\u00e7in <code>~\/.bashrc<\/code> veya Zsh i\u00e7in <code>~\/.zshrc<\/code>) ekleyerek kal\u0131c\u0131 hale getirebilirsiniz.<\/p>\n<h3>Komut Zamirleri (Command Substitution)<\/h3>\n<p>Bir komutun \u00e7\u0131kt\u0131s\u0131n\u0131 ba\u015fka bir komutun arg\u00fcman\u0131 olarak kullanmak istedi\u011finizde komut zamirlerini kullan\u0131rs\u0131n\u0131z. Bu, genellikle <code>$(komut)<\/code> veya eski stil <code>\\<\/code>komut\\`<code>ile yap\u0131l\u0131r.<\/p>\n<p>\u00d6rne\u011fin, mevcut dizindeki t\u00fcm<\/code>.txt<code>dosyalar\u0131n\u0131 listelemek ve ard\u0131ndan her biri i\u00e7in<\/code>wc -l<code>(sat\u0131r say\u0131s\u0131 sayma) komutunu \u00e7al\u0131\u015ft\u0131rmak isteyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">for dosya in $(ls *.txt); do wc -l \"$dosya\"; done<\/code><\/pre>\n<p>Burada<\/code>$(ls *.txt)<code>ifadesi,<\/code>ls *.txt<code>komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 al\u0131p<\/code>for<code>d\u00f6ng\u00fcs\u00fcn\u00fcn<\/code>dosya<code>de\u011fi\u015fkenine atar.<\/p>\n<p>### Vaka Analizi: Sistem G\u00fcncelleme Otomasyonu<\/p>\n<p>Bir sistem y\u00f6neticisi olarak, sunucular\u0131n\u0131zdaki yaz\u0131l\u0131mlar\u0131 d\u00fczenli olarak g\u00fcncellemeniz gerekir. Bu, manuel olarak yap\u0131ld\u0131\u011f\u0131nda zaman al\u0131c\u0131 ve hata yapmaya a\u00e7\u0131k bir s\u00fcre\u00e7tir. Bu durumu otomatikle\u015ftirmek i\u00e7in bir kabuk beti\u011fi yazabiliriz.<\/p>\n<p><strong>Ama\u00e7:<\/strong> Belirli aral\u0131klarla sunucular\u0131 g\u00fcncelleyen, g\u00fcncellemeleri kaydeden ve olas\u0131 hatalar\u0131 bildiren bir betik olu\u015fturmak.<\/p>\n<p><strong>Betik Ad\u0131mlar\u0131:<\/strong><\/p>\n<p>1.  <strong>G\u00fcncelleme Kontrol\u00fc ve Kurulumu:<\/strong> \u0130\u015fletim sistemine g\u00f6re uygun paket y\u00f6neticisi (\u00f6rne\u011fin, Debian\/Ubuntu i\u00e7in<\/code>apt<code>, CentOS\/Fedora i\u00e7in<\/code>yum<code>veya<\/code>dnf<code>) kullan\u0131larak paket listesi g\u00fcncellenir ve mevcut g\u00fcncellemeler kurulur.<\/p>\n<pre><code class=\"language-bash\"># Debian\/Ubuntu i\u00e7in \u00f6rnek\n    apt update -y && apt upgrade -y<\/code><\/pre>\n<p>    Buradaki<\/code>-y<code>se\u00e7ene\u011fi, t\u00fcm sorulara otomatik olarak \"evet\" yan\u0131t\u0131 verilmesini sa\u011flar.<\/p>\n<p>2.  <strong>G\u00fcncelleme Log Kayd\u0131:<\/strong> G\u00fcncelleme i\u015flemi s\u0131ras\u0131nda \u00fcretilen t\u00fcm \u00e7\u0131kt\u0131, bir log dosyas\u0131na kaydedilir. Bu, sorun giderme i\u00e7in \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">apt update -y && apt upgrade -y | tee \/var\/log\/system_update_$(date +%Y-%m-%d).log<\/code><\/pre>\n<p><\/code>tee<code>komutu, \u00e7\u0131kt\u0131y\u0131 hem ekrana hem de belirtilen dosyaya yazar.<\/code>date +%Y-%m-%d<code>ise g\u00fcncel tarihi log dosyas\u0131 ad\u0131na ekler.<\/p>\n<p>3.  <strong>Hata Kontrol\u00fc:<\/strong> G\u00fcncelleme i\u015flemi s\u0131ras\u0131nda herhangi bir hata olup olmad\u0131\u011f\u0131 kontrol edilir.<\/code>apt upgrade<code>komutu hata durumunda s\u0131f\u0131r olmayan bir \u00e7\u0131k\u0131\u015f kodu d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-bash\">if [ $? -ne 0 ]; then\n        echo \"G\u00fcncelleme s\u0131ras\u0131nda bir hata olu\u015ftu. Detaylar i\u00e7in log dosyas\u0131na bak\u0131n\u0131z.\" | mail -s \"Sunucu G\u00fcncelleme Hatas\u0131\" admin@example.com\n    fi<\/code><\/pre>\n<p><\/code>$?<code>de\u011fi\u015fkeni, en son \u00e7al\u0131\u015ft\u0131r\u0131lan komutun \u00e7\u0131k\u0131\u015f kodunu i\u00e7erir. E\u011fer s\u0131f\u0131r de\u011filse, bir hata olu\u015fmu\u015f demektir. Bu durumda, bir e-posta ile y\u00f6neticiye bilgi verilir.<\/p>\n<p>4.  <strong>Eski Paketlerin Temizlenmesi:<\/strong> G\u00fcncelleme sonras\u0131 gereksiz paketleri temizlemek, disk alan\u0131ndan tasarruf sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">apt autoremove -y<\/code><\/pre>\n<p>Bu betik, bir<\/code>cronjob` (zamanlanm\u0131\u015f g\u00f6rev) ile haftal\u0131k veya ayl\u0131k olarak \u00e7al\u0131\u015ft\u0131r\u0131labilir. Bu sayede, sunucular\u0131n\u0131z\u0131n g\u00fcvenli\u011fi ve performans\u0131 d\u00fczenli olarak korunmu\u015f olur ve manuel m\u00fcdahale ihtiyac\u0131 ortadan kalkar. Bu, kabuk betiklemenin ger\u00e7ek d\u00fcnyada ne kadar de\u011ferli olabilece\u011finin harika bir \u00f6rne\u011fidir.<\/p>\n<h2>Sonu\u00e7: Kabuklar\u0131 Ke\u015ffetmeye Devam Edin<\/h2>\n<p>Bilgisayarlar\u0131m\u0131zla etkile\u015fim kurma bi\u00e7imimizi k\u00f6kten de\u011fi\u015ftiren kabuklar, dijital d\u00fcnyam\u0131z\u0131n sessiz ama g\u00fc\u00e7l\u00fc kahramanlar\u0131d\u0131r. Ba\u015flang\u0131\u00e7ta biraz \u00fcrk\u00fct\u00fcc\u00fc g\u00f6r\u00fcnseler de, temel komutlar\u0131 ve betikleme mant\u0131\u011f\u0131n\u0131 anlad\u0131\u011f\u0131n\u0131zda, bilgisayar\u0131n\u0131z \u00fczerindeki kontrol\u00fcn\u00fcz\u00fc inan\u0131lmaz derecede art\u0131rabilirsiniz. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi, ister sadece bilgisayar\u0131n\u0131z\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 daha derinden anlamak isteyen merakl\u0131 bir kullan\u0131c\u0131, kabuklar size ke\u015ffedilecek sonsuz bir alan sunar.<\/p>\n<p>Bu rehberde, kabuklar\u0131n ne oldu\u011fundan, farkl\u0131 t\u00fcrlerinden, temel komutlar\u0131ndan, otomasyon potansiyelinden ve ileri d\u00fczey kullan\u0131m ipu\u00e7lar\u0131ndan bahsettik. Unutmay\u0131n, \u00f6\u011frenme s\u00fcreci burada bitmiyor. Deneyerek, farkl\u0131 komutlar\u0131 ara\u015ft\u0131rarak ve kendi betiklerinizi yazarak kabuklarla olan ili\u015fkinizi daha da derinle\u015ftirebilirsiniz. Bash, Zsh, Fish gibi farkl\u0131 kabuklar\u0131 deneyerek hangisinin sizin i\u00e7in en uygun oldu\u011funu ke\u015ffedebilirsiniz.<\/p>\n<p>Kabuklar, sadece komut sat\u0131r\u0131ndan ibaret de\u011fildir; onlar, bilgisayar\u0131n\u0131zla do\u011frudan ve g\u00fc\u00e7l\u00fc bir ileti\u015fim kurman\u0131n anahtar\u0131d\u0131r. Bu anahtar\u0131 kullanarak, dijital d\u00fcnyan\u0131z\u0131 daha verimli, daha kontroll\u00fc ve daha ilgin\u00e7 hale getirebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>*   <strong>Hangi kabu\u011fu \u00f6\u011frenmeliyim?<\/strong><br \/>\n    E\u011fer Linux veya macOS kullan\u0131yorsan\u0131z, Bash ile ba\u015flamak en mant\u0131kl\u0131s\u0131d\u0131r \u00e7\u00fcnk\u00fc varsay\u0131lan olarak gelir ve en yayg\u0131n kullan\u0131lan\u0131d\u0131r. Daha sonra, geli\u015fmi\u015f \u00f6zellikler ve ki\u015fiselle\u015ftirme i\u00e7in Zsh veya Fish gibi di\u011fer kabuklar\u0131 ke\u015ffedebilirsiniz.<\/p>\n<p>*   <strong>Kabuk betikleri g\u00fcvenli midir?<\/strong><br \/>\n    Kabuk betikleri, do\u011fru yaz\u0131ld\u0131\u011f\u0131nda olduk\u00e7a g\u00fcvenlidir. Ancak, k\u00f6t\u00fc niyetli komutlar i\u00e7eren veya yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f betikler g\u00fcvenlik riskleri olu\u015fturabilir. Bu nedenle, bilmedi\u011finiz kaynaklardan gelen betikleri \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce dikkatli olmal\u0131 ve betiklerin ne yapt\u0131\u011f\u0131n\u0131 anlamal\u0131s\u0131n\u0131z.<\/p>\n<p>*   <strong>GUI yerine neden CLI kullanmal\u0131y\u0131m?<\/strong><br \/>\n    CLI, GUI'ye g\u00f6re daha h\u0131zl\u0131, daha esnek ve daha g\u00fc\u00e7l\u00fcd\u00fcr. \u00d6zellikle tekrarlayan g\u00f6revleri otomatikle\u015ftirmek, karma\u015f\u0131k i\u015flemleri ger\u00e7ekle\u015ftirmek ve sistem kaynaklar\u0131n\u0131 daha verimli kullanmak i\u00e7in CLI tercih edilir. Ancak, GUI'nin de kendi avantajlar\u0131 vard\u0131r ve kullan\u0131m kolayl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan \u00e7o\u011fu kullan\u0131c\u0131 i\u00e7in daha uygundur. \u0130deal olan, her iki aray\u00fcz\u00fc de ihtiya\u00e7lar\u0131n\u0131za g\u00f6re kullanabilmektir.<\/p>\n<p>*   <strong>Hangi i\u015fletim sistemlerinde kabuklar kullan\u0131l\u0131r?<\/strong><br \/>\n    Kabuklar, \u00f6zellikle Linux ve macOS gibi Unix benzeri i\u015fletim sistemlerinde yayg\u0131n olarak kullan\u0131l\u0131r. Windows'ta da PowerShell ve Windows Subsystem for Linux (WSL) gibi kabuklar mevcuttur ve giderek daha pop\u00fcler hale gelmektedir.<\/p>\n<p>*   <strong>CLI \u00f6\u011frenmek ne kadar s\u00fcrer?<\/strong><br \/>\n    Temel komutlar\u0131 \u00f6\u011frenmek birka\u00e7 saat s\u00fcrebilirken, kabuk betikleme ve ileri d\u00fczey komutlar\u0131 ustala\u015fmak zaman ve pratik gerektirir. Ancak, temel seviyede bile CLI'nin sundu\u011fu faydalar\u0131 g\u00f6rmeye ba\u015flayacaks\u0131n\u0131z. \u00d6nemli olan sab\u0131rl\u0131 olmak ve d\u00fczenli olarak pratik yapmakt\u0131r.<\/p>\n<p>#Kabuk #Shell #CLI #Bash #Zsh #Fish #Betikleme #Otomasyon #Teknoloji<\/p>\n","protected":false},"excerpt":{"rendered":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi Bilgisayar d\u00fcnyas\u0131na yeni ad\u0131m atanlar i\u00e7in &#8220;kabuk&#8221; (shell) kelimesi biraz kafa kar\u0131\u015ft\u0131r\u0131c\u0131 olabilir.","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":[1],"tags":[],"class_list":{"0":"post-41628","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi - 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\/kabuk-nedir-baslangic-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi\" \/>\n<meta property=\"og:description\" content=\"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi Bilgisayar d\u00fcnyas\u0131na yeni ad\u0131m atanlar i\u00e7in &quot;kabuk&quot; (shell) kelimesi biraz kafa kar\u0131\u015ft\u0131r\u0131c\u0131 olabilir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-07T06:01: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=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi\",\"datePublished\":\"2026-05-07T06:01:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/\"},\"wordCount\":3265,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/\",\"name\":\"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-05-07T06:01:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi\"}]},{\"@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":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi - 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\/kabuk-nedir-baslangic-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi","og_description":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi Bilgisayar d\u00fcnyas\u0131na yeni ad\u0131m atanlar i\u00e7in \"kabuk\" (shell) kelimesi biraz kafa kar\u0131\u015ft\u0131r\u0131c\u0131 olabilir.","og_url":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-05-07T06:01:39+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi","datePublished":"2026-05-07T06:01:39+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/"},"wordCount":3265,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/","name":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-05-07T06:01:39+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kabuk-nedir-baslangic-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kabuk Nedir? Ba\u015flang\u0131\u00e7 Rehberi"}]},{"@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\/41628","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=41628"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41628\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=41628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=41628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=41628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}