{"id":28904,"date":"2025-09-05T00:30:27","date_gmt":"2025-09-04T21:30:27","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/"},"modified":"2025-09-05T00:30:27","modified_gmt":"2025-09-04T21:30:27","slug":"bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/","title":{"rendered":"Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar"},"content":{"rendered":"<p>Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar<\/p>\n<p>G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz.  Bash&#8217;in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!<\/p>\n<h2>Bash&#8217;te De\u011fi\u015fkenler ve Veri T\u00fcrleri: Nas\u0131l Daha Etkili Kullan\u0131l\u0131r?<\/h2>\n<p>Bash, zay\u0131f tipli bir dildir, yani de\u011fi\u015fkenleri bildirirken veri t\u00fcrlerini belirtmenize gerek yoktur.  Ancak, de\u011fi\u015fkenleri do\u011fru \u015fekilde kullanmak, scriptlerinizin okunabilirli\u011fini ve bak\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.  \u00d6rne\u011fin, bir dosya yolunu saklamak i\u00e7in de\u011fi\u015fken kullanmak, script&#8217;inizin daha ta\u015f\u0131nabilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\ndosyaYolu=\"\/home\/user\/dosyalar\/ornek.txt\"\n\n# Dosya i\u00e7eri\u011fini oku\ndosyaIcerigi=$(cat \"$dosyaYolu\")\n\n# Dosya i\u00e7eri\u011fini ekrana yazd\u0131r\necho \"$dosyaIcerigi\"\n\n# Dosya yolunu de\u011fi\u015ftirebilir ve script&#039;i yeniden \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>dosyaYolu<\/code> de\u011fi\u015fkeni, dosya yolunu depolamak i\u00e7in kullan\u0131l\u0131r. Bu, dosya yolunun script'in farkl\u0131 k\u0131s\u0131mlar\u0131nda tekrar tekrar yaz\u0131lmas\u0131n\u0131 \u00f6nler ve okunabilirli\u011fi art\u0131r\u0131r.  Ayr\u0131ca, de\u011fi\u015fkenleri kullanarak, scriptinizi farkl\u0131 ortamlara daha kolay uyarlayabilirsiniz.  \u00d6rne\u011fin, <code>dosyaYolu<\/code> de\u011fi\u015fkenini de\u011fi\u015ftirerek script'i farkl\u0131 bir dizinde bulunan dosyalarla \u00e7al\u0131\u015ft\u0131rabilirsiniz.  Bunun yan\u0131 s\u0131ra, de\u011fi\u015fkenlere say\u0131sal de\u011ferler de atayabilirsiniz ve aritmetik i\u015flemler yapabilirsiniz.  \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\nsayi1=10\nsayi2=5\ntoplam=$((sayi1 + sayi2))\necho \"Toplam: $toplam\"<\/pre>\n<p><\/code><\/p>\n<p>De\u011fi\u015fken isimlerinin anlaml\u0131 ve a\u00e7\u0131klay\u0131c\u0131 olmas\u0131na dikkat edin.  Bu, script'inizin daha kolay anla\u015f\u0131lmas\u0131n\u0131 sa\u011flayacakt\u0131r.  \u00d6rne\u011fin, <code>x<\/code> yerine <code>kullaniciAdi<\/code> gibi daha anlaml\u0131 bir isim kullanabilirsiniz.  Sonu\u00e7 olarak, de\u011fi\u015fkenlerin do\u011fru ve etkili kullan\u0131m\u0131, Bash scriptlerinizin kalitesini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.  Daha geli\u015fmi\u015f kullan\u0131m i\u00e7in, de\u011fi\u015fkenlerin kapsam\u0131 (scope) ve \u00e7evre de\u011fi\u015fkenleri (environment variables) konular\u0131n\u0131 ara\u015ft\u0131rman\u0131z faydal\u0131 olacakt\u0131r.<\/p>\n<h2>Ko\u015fullu \u0130fadeler ve D\u00f6ng\u00fcler: Karma\u015f\u0131k Senaryolar\u0131 Y\u00f6netmek<\/h2>\n<p>Bash'te karar verme mekanizmalar\u0131, <code>if<\/code>, <code>elif<\/code> (else if), ve <code>else<\/code> komutlar\u0131yla sa\u011flan\u0131r.  D\u00f6ng\u00fcler ise <code>for<\/code>, <code>while<\/code> ve <code>until<\/code> komutlar\u0131yla ger\u00e7ekle\u015ftirilir.  Bunlar\u0131 birle\u015ftirerek karma\u015f\u0131k senaryolar\u0131 y\u00f6netebilirsiniz.  \u00d6rne\u011fin, bir dizindeki t\u00fcm dosyalar\u0131 listeleyen ve belirli bir uzant\u0131ya sahip dosyalar\u0131 silmenizi sa\u011flayan bir script yazabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\ndizin=\"\/home\/user\/dosyalar\"\n\n# Dizindeki t\u00fcm dosyalar\u0131 listele\necho \"Dizindeki dosyalar:\"\nls -l \"$dizin\"\n\n# Belirli bir uzant\u0131ya sahip dosyalar\u0131 sil\nuzanti=\".txt\"\nfor dosya in \"$dizin\"\/*\"$uzanti\"; do\n  echo \"Siliniyor: $dosya\"\n  rm \"$dosya\"\ndone\n\necho \"\u0130\u015flem tamamland\u0131.\"<\/pre>\n<p><\/code><\/p>\n<p>Bu script, \u00f6nce dizindeki dosyalar\u0131 listeler, sonra bir d\u00f6ng\u00fc kullanarak <code>.txt<\/code> uzant\u0131l\u0131 dosyalar\u0131 siler.  <code>rm<\/code> komutu dosyalar\u0131 silerken dikkatli olun, silinen dosyalar geri getirilemez.  Bu script'i geli\u015ftirerek, kullan\u0131c\u0131dan silinecek dosya uzant\u0131s\u0131n\u0131 girmesini isteyebilir veya silme i\u015flemini onaylatabilirsiniz.  <code>if<\/code> komutu ile dosya varl\u0131\u011f\u0131n\u0131 kontrol ederek daha g\u00fcvenli bir script yazabilirsiniz.<\/p>\n<h3>Bash D\u00f6ng\u00fclerini Optimize Etme: Performans \u0130pu\u00e7lar\u0131<\/h3>\n<p>Bash d\u00f6ng\u00fclerini optimize etmek, b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.  \u00d6rne\u011fin, <code>while<\/code> d\u00f6ng\u00fcs\u00fc yerine <code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fc kullanmak, baz\u0131 durumlarda daha h\u0131zl\u0131 olabilir.  Ayr\u0131ca, d\u00f6ng\u00fc i\u00e7inde gereksiz i\u015flemlerden ka\u00e7\u0131nmak da performans\u0131 art\u0131r\u0131r.  \u00d6rne\u011fin, bir dosyay\u0131 her iterasyonda tekrar a\u00e7mak yerine, bir kez a\u00e7\u0131p d\u00f6ng\u00fc i\u00e7inde i\u015flemek daha verimlidir.<\/p>\n<p>A\u015fa\u011f\u0131da, bir dosyan\u0131n her sat\u0131r\u0131n\u0131 i\u015fleyen iki farkl\u0131 yakla\u015f\u0131m\u0131 g\u00f6steren bir \u00f6rnek bulunmaktad\u0131r:<\/p>\n<p><strong>Y\u00f6ntem 1 (Daha yava\u015f):<\/strong><\/p>\n<pre><code class=\"language-bash\">while IFS= read -r line; do\n  # Her sat\u0131r i\u00e7in i\u015flem yap\n  echo \"$line\"\ndone < dosya.txt<\/pre>\n<p><\/code><\/p>\n<pre><code class=\"language-bash\"><strong>Y\u00f6ntem 2 (Daha h\u0131zl\u0131):<\/strong><\/pre>\n<p><\/code>for line in $(cat dosya.txt); do<br \/>\n  # Her sat\u0131r i\u00e7in i\u015flem yap<br \/>\n  echo \"$line\"<br \/>\ndone<\/code><\/p>\n<p>\u0130kinci y\u00f6ntem, t\u00fcm dosyay\u0131 belle\u011fe y\u00fckledi\u011fi i\u00e7in, \u00f6zellikle b\u00fcy\u00fck dosyalar i\u00e7in daha yava\u015f olabilir.  Ancak, k\u00fc\u00e7\u00fck dosyalar i\u00e7in daha h\u0131zl\u0131 \u00e7al\u0131\u015fabilir.  En uygun y\u00f6ntemi, dosya boyutuna ve i\u015flemin karma\u015f\u0131kl\u0131\u011f\u0131na g\u00f6re se\u00e7mek \u00f6nemlidir.  Daha geli\u015fmi\u015f optimize teknikleri aras\u0131nda, <code>xargs<\/code> komutunu kullanarak d\u00f6ng\u00fclerin yerine paralel i\u015flemler ger\u00e7ekle\u015ftirmek yer al\u0131r.  B\u00fcy\u00fck veri k\u00fcmeleri ile \u00e7al\u0131\u015f\u0131rken, <code>xargs<\/code> kullanarak performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilirsiniz.<\/p>\n<h2>Fonksiyonlar: Kod Yeniden Kullan\u0131m\u0131 ve Mod\u00fclerlik<\/h2>\n<p>Fonksiyonlar, kod blo\u011funu bir isim alt\u0131nda gruplayarak, kodun tekrar tekrar kullan\u0131lmas\u0131n\u0131 ve daha d\u00fczenli bir yap\u0131 olu\u015fturulmas\u0131n\u0131 sa\u011flar.  Fonksiyonlar, parametreler alabilir ve sonu\u00e7 d\u00f6nd\u00fcrebilir.  Bu, script'inizin daha mod\u00fcler ve anla\u015f\u0131l\u0131r olmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# Bir dosyan\u0131n i\u00e7eri\u011fini ekrana yazd\u0131ran fonksiyon\ndosyaYazdir() {\n  dosya=\"$1\"\n  if [ -f \"$dosya\" ]; then\n    cat \"$dosya\"\n  else\n    echo \"Hata: Dosya bulunamad\u0131: $dosya\"\n  fi\n}\n\n# Fonksiyonu \u00e7a\u011f\u0131r\ndosyaYazdir \"\/home\/user\/dosyalar\/ornek.txt\"<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>dosyaYazdir<\/code> fonksiyonu, bir dosya yolunu parametre olarak al\u0131r ve dosyan\u0131n i\u00e7eri\u011fini ekrana yazd\u0131r\u0131r.  Dosya yoksa hata mesaj\u0131 verir. Fonksiyonlar, kodun okunabilirli\u011fini ve bak\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.  Karma\u015f\u0131k scriptlerde, fonksiyonlar sayesinde kodu daha k\u00fc\u00e7\u00fck, daha y\u00f6netilebilir par\u00e7alara b\u00f6lebilirsiniz. Bu, hatalar\u0131 bulmay\u0131 ve script'i geli\u015ftirmeyi daha kolay hale getirir.<\/p>\n<h2>Dosya \u0130\u015flemleri:  <code>find<\/code>, <code>grep<\/code>, <code>sed<\/code>, <code>awk<\/code><\/h2>\n<p>Bash'te dosya i\u015flemleri i\u00e7in g\u00fc\u00e7l\u00fc komutlar mevcuttur. <code>find<\/code>, <code>grep<\/code>, <code>sed<\/code>, <code>awk<\/code> gibi komutlar dosya sisteminde arama, metin i\u015fleme ve veri analizi i\u00e7in kullan\u0131l\u0131r.  Bu komutlar\u0131 birle\u015ftirerek g\u00fc\u00e7l\u00fc ve esnek scriptler olu\u015fturabilirsiniz.<\/p>\n<p><code>find<\/code> komutu dizinlerde dosya ve dizin arama yapar.  <code>-name<\/code>, <code>-type<\/code>, <code>-size<\/code> gibi se\u00e7enekler arama kriterlerini belirler.<\/p>\n<p><code>grep<\/code> komutu dosyalarda metin arama yapar. <code>-i<\/code> (b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z), <code>-r<\/code> (recursive) gibi se\u00e7enekler aramay\u0131 \u00f6zelle\u015ftirir.<\/p>\n<p><code>sed<\/code> komutu dosya i\u00e7eri\u011fini d\u00fczenler.  <code>s\/aranacak\/de\u011fi\u015ftirilecek\/g<\/code> gibi komutlarla metin de\u011fi\u015ftirebilirsiniz.<\/p>\n<p><code>awk<\/code> komutu, dosya sat\u0131rlar\u0131n\u0131 i\u015fleyerek raporlar ve \u00f6zetler olu\u015fturur.  <code>$1<\/code>, <code>$2<\/code> gibi de\u011fi\u015fkenlerle sat\u0131rlar\u0131n s\u00fctunlar\u0131na eri\u015febilirsiniz.<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# .txt uzant\u0131l\u0131 t\u00fcm dosyalar\u0131 bulun ve i\u00e7eri\u011finde \"\u00f6rnek\" kelimesi ge\u00e7en sat\u0131rlar\u0131 yazd\u0131r\u0131n\nfind \/home\/user\/dosyalar -name \"*.txt\" -exec grep -i \"\u00f6rnek\" {} \\;<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>\/home\/user\/dosyalar<\/code> dizini alt\u0131nda <code>.txt<\/code> uzant\u0131l\u0131 t\u00fcm dosyalar\u0131 bulur ve her bir dosyan\u0131n i\u00e7eri\u011finde \"\u00f6rnek\" kelimesini arar.  Buldu\u011fu sat\u0131rlar\u0131 ekrana yazd\u0131r\u0131r.  Bu komutlar\u0131 birle\u015ftirerek \u00e7ok daha karma\u015f\u0131k i\u015flemler ger\u00e7ekle\u015ftirebilirsiniz.  \u00d6rne\u011fin, <code>find<\/code> ile bulunan dosyalar\u0131 <code>sed<\/code> ile d\u00fczenleyebilir veya <code>awk<\/code> ile analiz edebilirsiniz.  Bu kombinasyonlar, karma\u015f\u0131k dosya i\u015flemlerini basitle\u015ftirir ve otomatikle\u015ftirir.<\/p>\n<h2>Bash Scripting \u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<p>Bash scripting \u00f6\u011frenme yolculu\u011funuzda ilerlemenize yard\u0131mc\u0131 olmak i\u00e7in a\u015fa\u011f\u0131daki yol haritas\u0131n\u0131 kullanabilirsiniz:<\/p>\n<p><strong>Yeni Ba\u015flayan:<\/strong><\/p>\n<p>* Temel komutlar (cd, ls, mkdir, rm, cp, mv)<br \/>\n* De\u011fi\u015fkenler ve veri tipleri<br \/>\n* Ko\u015fullu ifadeler (if, else, elif)<br \/>\n* Temel d\u00f6ng\u00fcler (for, while)<br \/>\n* Komut sat\u0131r\u0131 arg\u00fcmanlar\u0131<\/p>\n<p><strong>Orta Seviye:<\/strong><\/p>\n<p>* Fonksiyonlar<br \/>\n* Dosya i\u015flemleri (find, grep, sed, awk)<br \/>\n* Giri\u015f\/\u00e7\u0131k\u0131\u015f y\u00f6nlendirmeleri<br \/>\n* Pipelining ve komut birle\u015ftirme<br \/>\n* D\u00fczenli ifadeler (regular expressions)<\/p>\n<p><strong>\u0130leri Seviye:<\/strong><\/p>\n<p>* Shell scriptleri optimizasyonu<br \/>\n* Hata y\u00f6netimi ve logging<br \/>\n* Paralel i\u015fleme<br \/>\n* A\u011f programlama<br \/>\n* Sistem y\u00f6netimi scriptleri<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Vaka Analizleri<\/h2>\n<p>* <strong>Web sunucusu log dosyalar\u0131n\u0131n analizi:<\/strong> <code>awk<\/code> ve <code>grep<\/code> kullanarak web sunucusu log dosyalar\u0131nda belirli hatalar\u0131 veya eri\u015fim kal\u0131plar\u0131n\u0131 tespit edebilirsiniz.<br \/>\n* <strong>Veri yedekleme script'i:<\/strong> <code>rsync<\/code> ve <code>find<\/code> kullanarak dosyalar\u0131 d\u00fczenli olarak yedekleyebilirsiniz.<br \/>\n* <strong>Otomatik raporlama:<\/strong> <code>awk<\/code> ve <code>sed<\/code> kullanarak veritaban\u0131 veya log dosyalar\u0131ndan otomatik raporlar olu\u015fturabilirsiniz.<br \/>\n* <strong>Sunucu y\u00f6netimi:<\/strong> SSH \u00fczerinden komut \u00e7al\u0131\u015ft\u0131rmak ve sunucu ayarlar\u0131n\u0131 otomatikle\u015ftirmek i\u00e7in Bash scriptleri kullanabilirsiniz.<\/p>\n<p>Bu senaryolar, Bash scripting'in g\u00fcc\u00fcn\u00fc ve ger\u00e7ek d\u00fcnya uygulamalar\u0131n\u0131 g\u00f6stermektedir. Daha fazla \u00f6rnek i\u00e7in Fatih Soysal'\u0131n bloguna (https:\/\/fatihsoysal.com) g\u00f6z atabilirsiniz.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, orta seviye Bash scripting konular\u0131n\u0131 ele ald\u0131k.  De\u011fi\u015fkenler, ko\u015fullu ifadeler, d\u00f6ng\u00fcler, fonksiyonlar ve dosya i\u015flemleri gibi konularda bilgiler verdik ve ger\u00e7ek d\u00fcnya senaryolar\u0131na \u00f6rnekler sunduk.  Bu bilgilerle, daha karma\u015f\u0131k ve g\u00fc\u00e7l\u00fc scriptler yazabilir ve g\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirebilirsiniz.  Bash scripting \u00f6\u011frenme yolculu\u011funuzda size ba\u015far\u0131lar diliyoruz!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>* <strong>Bash script'lerini nas\u0131l \u00e7al\u0131\u015ft\u0131r\u0131r\u0131m?<\/strong>  <code>bash script_adi.sh<\/code> komutunu kullanarak script'i \u00e7al\u0131\u015ft\u0131rabilirsiniz.  Script'in \u00e7al\u0131\u015ft\u0131r\u0131labilir olmas\u0131 i\u00e7in <code>chmod +x script_adi.sh<\/code> komutunu kullanarak izinleri ayarlaman\u0131z gerekebilir.<\/p>\n<p>* <strong>Bash script'lerinde hata ay\u0131klama nas\u0131l yap\u0131l\u0131r?<\/strong>  <code>set -x<\/code> komutunu kullanarak script'in her sat\u0131r\u0131n\u0131 ekrana yazd\u0131rabilir ve hata ay\u0131klayabilirsiniz.  <code>bash -x script_adi.sh<\/code> komutu ile de bunu yapabilirsiniz.<\/p>\n<p>* <strong>Bash'te diziler nas\u0131l kullan\u0131l\u0131r?<\/strong>  Bash'te diziler, <code>array=(de\u011fer1 de\u011fer2 de\u011fer3)<\/code> \u015feklinde tan\u0131mlan\u0131r ve <code>echo ${array[0]}<\/code> gibi \u015fekilde elemanlar\u0131na eri\u015filir.<\/p>\n<p>* <strong>Bash script'leri g\u00fcvenli midir?<\/strong>  Bash script'leri, do\u011fru yaz\u0131lmad\u0131\u011f\u0131 takdirde g\u00fcvenlik a\u00e7\u0131\u011f\u0131 yaratabilir.  Giri\u015fleri do\u011frulamak ve <code>sudo<\/code> gibi komutlar\u0131 dikkatli kullanmak \u00f6nemlidir. Dikkat: G\u00fcvenlik a\u00e7\u0131klar\u0131ndan ka\u00e7\u0131nmak i\u00e7in her zaman giri\u015fleri do\u011frulay\u0131n ve gerekli izinleri kullan\u0131n.<\/p>\n<p>* <strong>Daha fazla bilgi nereden bulabilirim?<\/strong> Daha fazla bilgi i\u00e7in Fatih Soysal'\u0131n bloguna (https:\/\/fatihsoysal.com) g\u00f6z atabilirsiniz.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya&hellip;","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-28904","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>Bash Scripting: 2. G\u00fcn - Orta Seviye Komutlar ve Senaryolar<\/title>\n<meta name=\"description\" content=\"G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Bash&#039;in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!\" \/>\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\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bash Scripting: 2. G\u00fcn - Orta Seviye Komutlar ve Senaryolar\" \/>\n<meta property=\"og:description\" content=\"G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Bash&#039;in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-04T21:30:27+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=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar\",\"datePublished\":\"2025-09-04T21:30:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\"},\"wordCount\":1409,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\",\"name\":\"Bash Scripting: 2. G\u00fcn - Orta Seviye Komutlar ve Senaryolar\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-04T21:30:27+00:00\",\"description\":\"G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Bash'in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar\"}]},{\"@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":"Bash Scripting: 2. G\u00fcn - Orta Seviye Komutlar ve Senaryolar","description":"G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Bash'in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!","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\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/","og_locale":"tr_TR","og_type":"article","og_title":"Bash Scripting: 2. G\u00fcn - Orta Seviye Komutlar ve Senaryolar","og_description":"G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Bash'in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-04T21:30:27+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"8 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar","datePublished":"2025-09-04T21:30:27+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/"},"wordCount":1409,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/","url":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/","name":"Bash Scripting: 2. G\u00fcn - Orta Seviye Komutlar ve Senaryolar","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-04T21:30:27+00:00","description":"G\u00fcnl\u00fck i\u015flerinizi otomatikle\u015ftirmek, sunucular\u0131n\u0131z\u0131 y\u00f6netmek veya karma\u015f\u0131k dosya i\u015flemlerini kolayla\u015ft\u0131rmak istiyorsan\u0131z Bash scripting \u00f6\u011frenmek tam size g\u00f6re. Bu makalede, bir \u00f6nceki dersimizin \u00fczerine in\u015fa ederek, orta seviye Bash komutlar\u0131n\u0131 ve bunlar\u0131n ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 \u00f6\u011frenece\u011fiz. Bash'in g\u00fcc\u00fcn\u00fc ke\u015ffetmek i\u00e7in heyecanl\u0131ysan\u0131z, buyrun ba\u015flayal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/bash-scripting-2-gun-orta-seviye-komutlar-ve-senaryolar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bash Scripting: 2. G\u00fcn &#8211; Orta Seviye Komutlar ve Senaryolar"}]},{"@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\/28904","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=28904"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/28904\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=28904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=28904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=28904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}