{"id":37385,"date":"2026-01-02T16:21:11","date_gmt":"2026-01-02T13:21:11","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/"},"modified":"2026-01-02T16:21:11","modified_gmt":"2026-01-02T13:21:11","slug":"neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/","title":{"rendered":"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?"},"content":{"rendered":"<p><title>Linux&#8217;ta Ortam ve Kabuk De\u011fi\u015fkenlerini Okuma ve Ayarlama Rehberi<\/title><br \/>\n<body><\/p>\n<p>Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.<\/p>\n<h2>Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?<\/h2>\n<p>Linux ortam\u0131nda \u00e7al\u0131\u015f\u0131rken, \u00e7o\u011fu zaman fark\u0131nda bile olmadan bir\u00e7ok de\u011fi\u015fkenle etkile\u015fimde bulunursunuz. Peki, bu de\u011fi\u015fkenler tam olarak nedir ve neden onlar\u0131 anlamak bu kadar \u00f6nemlidir? Temel olarak, ortam ve kabuk de\u011fi\u015fkenleri, kabu\u011funuza ve ondan t\u00fcreyen t\u00fcm s\u00fcre\u00e7lere belirli bilgileri ileten dinamik de\u011ferlerdir. Bu bilgiler, bir komutun nerede y\u00fcr\u00fct\u00fclece\u011finden (<code>PATH<\/code> de\u011fi\u015fkeni), kullan\u0131c\u0131n\u0131n ana dizininin neresi oldu\u011funa (<code>HOME<\/code> de\u011fi\u015fkeni) kadar geni\u015f bir yelpazeyi kapsar. Onlar\u0131 bilmek, sisteminizle daha derinlemesine etkile\u015fim kurman\u0131z\u0131, sorun gidermeyi kolayla\u015ft\u0131rman\u0131z\u0131 ve hatta kendi \u00f6zel komutlar\u0131n\u0131z\u0131 veya betiklerinizi daha ak\u0131ll\u0131 hale getirmenizi sa\u011flar.<\/p>\n<p>\u00d6rne\u011fin, bir yaz\u0131l\u0131m geli\u015ftiricisi oldu\u011funuzu varsayal\u0131m. Projeleriniz i\u00e7in farkl\u0131 Python s\u00fcr\u00fcmleri, Java SDK&#8217;lar\u0131 veya veritaban\u0131 ba\u011flant\u0131 bilgileri gerekebilir. Bu bilgileri her seferinde manuel olarak ayarlamak yerine, ortam de\u011fi\u015fkenlerini kullanarak bu ayarlar\u0131 kolayca y\u00f6netebilir ve projeler aras\u0131nda ge\u00e7i\u015f yaparken zamandan tasarruf edebilirsiniz. Bir sistem y\u00f6neticisi i\u00e7in ise, sistem genelindeki davran\u0131\u015flar\u0131 kontrol etmek, g\u00fcvenlik ayarlar\u0131n\u0131 yap\u0131land\u0131rmak veya belirli servislerin \u00e7al\u0131\u015fma \u015feklini etkilemek i\u00e7in bu de\u011fi\u015fkenler vazge\u00e7ilmezdir. Ayr\u0131ca, kabuk betikleri yazarken, bu de\u011fi\u015fkenler sayesinde betikleriniz daha esnek ve dinamik hale gelir, b\u00f6ylece farkl\u0131 senaryolara kolayca uyum sa\u011flayabilirler. K\u0131sacas\u0131, ortam ve kabuk de\u011fi\u015fkenleri Linux ekosisteminin temel ta\u015flar\u0131ndan biridir ve bu kavramlara hakim olmak, sistem \u00fczerinde tam kontrol sahibi olman\u0131n ilk ad\u0131m\u0131d\u0131r. Bu rehberde, bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde ke\u015ffedece\u011fiz.<\/p>\n<p>Bu de\u011fi\u015fkenlerin sundu\u011fu esneklik, \u00f6zellikle otomasyon ve ki\u015fiselle\u015ftirme alanlar\u0131nda kendini g\u00f6sterir. \u00d6rne\u011fin, bir web sunucusu yap\u0131land\u0131r\u0131rken, sunucunun dinleyece\u011fi port numaras\u0131n\u0131 veya k\u00f6k dizinini bir ortam de\u011fi\u015fkeni olarak ayarlayabilirsiniz. Bu, yap\u0131land\u0131rma dosyalar\u0131n\u0131 her d\u00fczenledi\u011finizde sunucuyu yeniden ba\u015flatmak yerine, sadece de\u011fi\u015fkeni g\u00fcncelleyerek an\u0131nda de\u011fi\u015fiklik yapman\u0131z\u0131 sa\u011flayabilir. Ayr\u0131ca, farkl\u0131 kullan\u0131c\u0131lar\u0131n farkl\u0131 dil ve yerel ayarlar\u0131n\u0131 (<code>LANG<\/code>, <code>LC_ALL<\/code>) belirlemek i\u00e7in de ortam de\u011fi\u015fkenleri kullan\u0131l\u0131r. Bu sayede, her kullan\u0131c\u0131 kendi tercih etti\u011fi dilde bir aray\u00fczle kar\u015f\u0131la\u015f\u0131r. Bu durum, \u00e7ok kullan\u0131c\u0131l\u0131 sistemlerde kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir. Dolay\u0131s\u0131yla, bu de\u011fi\u015fkenleri anlamak, sadece teknik bir bilgi birikimi de\u011fil, ayn\u0131 zamanda g\u00fcnl\u00fck Linux kullan\u0131m\u0131n\u0131z\u0131 ve profesyonel i\u015f ak\u0131\u015flar\u0131n\u0131z\u0131 optimize etmenin de anahtar\u0131d\u0131r.<\/p>\n<h2>Ortam De\u011fi\u015fkenleri ve Kabuk De\u011fi\u015fkenleri Aras\u0131ndaki Fark Nedir?<\/h2>\n<p>Linux d\u00fcnyas\u0131nda &#8220;de\u011fi\u015fken&#8221; kelimesi genellikle iki ana kategoriye ayr\u0131l\u0131r: ortam de\u011fi\u015fkenleri ve kabuk de\u011fi\u015fkenleri. Her ikisi de de\u011ferleri depolamak i\u00e7in kullan\u0131lsa da, kapsamlar\u0131 ve davran\u0131\u015flar\u0131 aras\u0131nda \u00f6nemli farklar bulunur. Bu farklar\u0131 anlamak, de\u011fi\u015fkenleri do\u011fru ba\u011flamda kullanman\u0131z ve beklenmedik sorunlarla kar\u015f\u0131la\u015fmaman\u0131z i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Ortam De\u011fi\u015fkenleri (Environment Variables) Nelerdir?<\/h3>\n<p>Ortam de\u011fi\u015fkenleri, t\u00fcm sistem \u00e7ap\u0131nda veya belirli bir kullan\u0131c\u0131 oturumu i\u00e7in tan\u0131mlanabilen, genellikle b\u00fcy\u00fck harflerle yaz\u0131lan ve de\u011feri kabuktan t\u00fcreyen t\u00fcm alt s\u00fcre\u00e7lere (child processes) aktar\u0131lan de\u011fi\u015fkenlerdir. Ba\u015fka bir deyi\u015fle, bir ortam de\u011fi\u015fkeni tan\u0131mlad\u0131\u011f\u0131n\u0131zda, bu de\u011fi\u015fken yaln\u0131zca mevcut kabuk oturumunuzda de\u011fil, ayn\u0131 zamanda o kabuktan ba\u015flatt\u0131\u011f\u0131n\u0131z t\u00fcm programlar, betikler ve di\u011fer kabuklar taraf\u0131ndan da eri\u015filebilir olur. Bu \u00f6zellik, onlar\u0131 sistem genelindeki ayarlar, programlar\u0131n \u00e7al\u0131\u015fma zaman\u0131 yap\u0131land\u0131rmalar\u0131 ve kullan\u0131c\u0131 tercihlerini depolamak i\u00e7in ideal k\u0131lar.<\/p>\n<p>En bilinen ortam de\u011fi\u015fkenlerinden baz\u0131lar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>PATH<\/code>: Kabu\u011fun y\u00fcr\u00fct\u00fclebilir dosyalar\u0131 arad\u0131\u011f\u0131 dizinlerin listesi. Bir komut yazd\u0131\u011f\u0131n\u0131zda, kabuk bu dizinlerde o komutu arar.<\/li>\n<li><code>HOME<\/code>: Mevcut kullan\u0131c\u0131n\u0131n ana dizininin yolu.<\/li>\n<li><code>USER<\/code>: Mevcut kullan\u0131c\u0131n\u0131n ad\u0131.<\/li>\n<li><code>LANG<\/code>: Sistem genelindeki dil ve yerel ayarlar\u0131 belirtir.<\/li>\n<li><code>EDITOR<\/code>: Varsay\u0131lan metin d\u00fczenleyiciyi belirtir (\u00f6rne\u011fin, <code>vim<\/code>, <code>nano<\/code>).<\/li>\n<\/ul>\n<p>Bu de\u011fi\u015fkenler genellikle <code>export<\/code> komutu kullan\u0131larak tan\u0131mlan\u0131r veya mevcut kabuk de\u011fi\u015fkenleri d\u0131\u015fa aktar\u0131larak ortam de\u011fi\u015fkenine d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. Bu sayede, alt s\u00fcre\u00e7ler bu bilgilere eri\u015febilir ve kendi davran\u0131\u015flar\u0131n\u0131 bu do\u011frultuda ayarlayabilir. \u00d6rne\u011fin, <code>PATH<\/code> de\u011fi\u015fkeni sayesinde, <code>ls<\/code> veya <code>grep<\/code> gibi komutlar\u0131 tam yolunu belirtmeden do\u011frudan \u00e7al\u0131\u015ft\u0131rabiliriz, \u00e7\u00fcnk\u00fc bu komutlar <code>PATH<\/code>&#8216;te tan\u0131ml\u0131 dizinlerden birinde bulunur. Bu mekanizma, Linux&#8217;un mod\u00fcler ve esnek yap\u0131s\u0131n\u0131n temelini olu\u015fturur.<\/p>\n<h3>Kabuk De\u011fi\u015fkenleri (Shell Variables) Nelerdir?<\/h3>\n<p>Kabuk de\u011fi\u015fkenleri ise, yaln\u0131zca tan\u0131mland\u0131klar\u0131 mevcut kabuk oturumu i\u00e7in ge\u00e7erli olan ve alt s\u00fcre\u00e7lere otomatik olarak aktar\u0131lmayan de\u011fi\u015fkenlerdir. Bu de\u011fi\u015fkenler, genellikle k\u00fc\u00e7\u00fck harflerle veya kar\u0131\u015f\u0131k harflerle tan\u0131mlan\u0131r ve kabuk i\u00e7inde ge\u00e7ici depolama veya belirli kabuk \u00f6zelliklerini kontrol etmek i\u00e7in kullan\u0131l\u0131r. Alt s\u00fcre\u00e7lere aktar\u0131lmad\u0131klar\u0131 i\u00e7in, bu de\u011fi\u015fkenler daha \u00e7ok mevcut kabu\u011fun i\u00e7 \u00e7al\u0131\u015fma mekanizmalar\u0131n\u0131 veya kullan\u0131c\u0131 etkile\u015fimlerini y\u00f6netmek i\u00e7in tercih edilir.<\/p>\n<p>Baz\u0131 yayg\u0131n kabuk de\u011fi\u015fkenleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>PS1<\/code>: Kabuk komut istemcisinin g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc tan\u0131mlar (\u00f6rne\u011fin, <code>user@host:~$<\/code>).<\/li>\n<li><code>HISTSIZE<\/code>: Kabuk ge\u00e7mi\u015finde saklanacak komut say\u0131s\u0131n\u0131 belirtir.<\/li>\n<li><code>IFS<\/code>: Dahili Alan Ay\u0131r\u0131c\u0131 (Internal Field Separator) \u2013 kabu\u011fun kelime ay\u0131rma i\u00e7in kulland\u0131\u011f\u0131 karakterleri tan\u0131mlar.<\/li>\n<\/ul>\n<p>Bir kabuk de\u011fi\u015fkenini tan\u0131mlamak i\u00e7in genellikle do\u011frudan atama yap\u0131l\u0131r: <code>MY_VAR=\"hello\"<\/code>. Bu de\u011fi\u015fken, mevcut kabukta eri\u015filebilirken, bu kabuktan ba\u015flat\u0131lan yeni bir kabuk veya program bu <code>MY_VAR<\/code> de\u011fi\u015fkenini do\u011frudan g\u00f6remez. Ancak, bir kabuk de\u011fi\u015fkenini <code>export<\/code> komutuyla d\u0131\u015fa aktar\u0131rsan\u0131z, o an itibar\u0131yla bir ortam de\u011fi\u015fkenine d\u00f6n\u00fc\u015f\u00fcr ve alt s\u00fcre\u00e7lere de aktar\u0131l\u0131r. Bu, bir kabuk de\u011fi\u015fkeninin kapsam\u0131n\u0131 dinamik olarak geni\u015fletebilme esnekli\u011fi sa\u011flar. \u00d6zetle, ortam de\u011fi\u015fkenleri &#8220;genel&#8221; ve &#8220;kal\u0131tsal&#8221; iken, kabuk de\u011fi\u015fkenleri &#8220;yerel&#8221; ve &#8220;ge\u00e7ici&#8221; bir do\u011faya sahiptir, ancak <code>export<\/code> ile bu durum de\u011fi\u015febilir. Bu ayr\u0131m\u0131 anlamak, de\u011fi\u015fkenleri etkili bir \u015fekilde kullanman\u0131n anahtar\u0131d\u0131r.<\/p>\n<h2>Mevcut De\u011fi\u015fkenleri Nas\u0131l G\u00f6r\u00fcnt\u00fcleyebilirsiniz?<\/h2>\n<p>Linux sistemlerinde mevcut ortam ve kabuk de\u011fi\u015fkenlerini g\u00f6r\u00fcnt\u00fclemek, sisteminizin anl\u0131k yap\u0131land\u0131rmas\u0131n\u0131 anlamak ve sorun gidermek i\u00e7in temel bir ad\u0131md\u0131r. Bu b\u00f6l\u00fcmde, farkl\u0131 komutlar kullanarak bu de\u011fi\u015fkenlere nas\u0131l eri\u015fece\u011finizi ve aralar\u0131ndaki farklar\u0131 nas\u0131l yorumlayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Her komutun kendine \u00f6zg\u00fc bir kullan\u0131m amac\u0131 ve \u00e7\u0131kt\u0131 format\u0131 vard\u0131r, bu nedenle do\u011fru arac\u0131 do\u011fru zamanda kullanmak \u00f6nemlidir.<\/p>\n<h3><code>printenv<\/code> Komutu ile Ortam De\u011fi\u015fkenlerini G\u00f6r\u00fcnt\u00fcleme<\/h3>\n<p><code>printenv<\/code> komutu, yaln\u0131zca ortam de\u011fi\u015fkenlerini listelemek i\u00e7in kullan\u0131l\u0131r. Bu komut, mevcut kabuktan t\u00fcreyen t\u00fcm alt s\u00fcre\u00e7lerin eri\u015febilece\u011fi de\u011fi\u015fkenleri g\u00f6sterir. \u00c7\u0131kt\u0131s\u0131 genellikle her sat\u0131rda bir de\u011fi\u015fken ad\u0131 ve de\u011ferini i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">\nprintenv\n    <\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, <code>PATH<\/code>, <code>HOME<\/code>, <code>USER<\/code> gibi bilindik ortam de\u011fi\u015fkenlerinin yan\u0131 s\u0131ra, sisteminizde tan\u0131ml\u0131 di\u011fer t\u00fcm ortam de\u011fi\u015fkenlerini g\u00f6receksiniz. Belirli bir ortam de\u011fi\u015fkeninin de\u011ferini g\u00f6rmek isterseniz, de\u011fi\u015fken ad\u0131n\u0131 <code>printenv<\/code> komutuna arg\u00fcman olarak verebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nprintenv HOME\n    <\/code><\/pre>\n<p>Bu komut yaln\u0131zca <code>HOME<\/code> de\u011fi\u015fkeninin de\u011ferini ekrana basacakt\u0131r. <code>printenv<\/code>, genellikle sistem genelinde ayarlanm\u0131\u015f ve uygulamalar taraf\u0131ndan kullan\u0131lan de\u011fi\u015fkenleri h\u0131zl\u0131ca kontrol etmek i\u00e7in tercih edilir.<\/p>\n<h3><code>env<\/code> Komutu ile Ortam De\u011fi\u015fkenlerini G\u00f6r\u00fcnt\u00fcleme<\/h3>\n<p><code>env<\/code> komutu da <code>printenv<\/code> gibi ortam de\u011fi\u015fkenlerini listeler. Asl\u0131nda, temel i\u015flevleri olduk\u00e7a benzerdir. Ancak <code>env<\/code>, yeni bir komutun belirli bir ortamla \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flamak i\u00e7in de kullan\u0131labilir. Sadece listelemek i\u00e7in kullan\u0131ld\u0131\u011f\u0131nda, \u00e7\u0131kt\u0131s\u0131 <code>printenv<\/code>&#8216;e benzer olacakt\u0131r:<\/p>\n<pre><code class=\"language-bash\">\nenv\n    <\/code><\/pre>\n<p><code>env<\/code> komutunun ek bir g\u00fcc\u00fc, belirli ortam de\u011fi\u015fkenleriyle bir komutu \u00e7al\u0131\u015ft\u0131rman\u0131za izin vermesidir. \u00d6rne\u011fin, bir program\u0131 belirli bir <code>LANG<\/code> ayar\u0131yla \u00e7al\u0131\u015ft\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\nenv LANG=en_US.UTF-8 my_program\n    <\/code><\/pre>\n<p>Bu, <code>my_program<\/code>&#8216;\u0131 \u0130ngilizce dil ayarlar\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131rken, mevcut kabu\u011funuzun dil ayarlar\u0131n\u0131 de\u011fi\u015ftirmez. Bu esneklik, test ve hata ay\u0131klama senaryolar\u0131nda olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3><code>set<\/code> Komutu ile T\u00fcm De\u011fi\u015fkenleri G\u00f6r\u00fcnt\u00fcleme<\/h3>\n<p><code>set<\/code> komutu, bir \u00f6nceki iki komuttan daha kapsaml\u0131d\u0131r. Bu komut, hem ortam de\u011fi\u015fkenlerini hem de mevcut kabukta tan\u0131ml\u0131 olan t\u00fcm kabuk de\u011fi\u015fkenlerini, kabuk fonksiyonlar\u0131n\u0131 ve parametrelerini listeler. \u00c7\u0131kt\u0131 \u00e7ok daha uzun ve detayl\u0131 olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">\nset\n    <\/code><\/pre>\n<p><code>set<\/code> \u00e7\u0131kt\u0131s\u0131nda, <code>BASH_VERSION<\/code>, <code>HISTSIZE<\/code>, <code>PS1<\/code> gibi kabuk de\u011fi\u015fkenlerini g\u00f6receksiniz. Bu de\u011fi\u015fkenler genellikle yaln\u0131zca mevcut kabuk oturumu i\u00e7in ge\u00e7erlidir ve alt s\u00fcre\u00e7lere otomatik olarak aktar\u0131lmazlar. <code>set<\/code> komutunun \u00e7\u0131kt\u0131s\u0131 genellikle alfabetik s\u0131raya g\u00f6re d\u00fczenlenir ve bu durum, belirli bir de\u011fi\u015fkeni bulmay\u0131 kolayla\u015ft\u0131rabilir. Ancak, \u00e7ok say\u0131da de\u011fi\u015fken oldu\u011fu i\u00e7in \u00e7\u0131kt\u0131y\u0131 filtrelemek gerekebilir.<\/p>\n<h3><code>echo $VARIABLE_NAME<\/code> ile Tek Bir De\u011fi\u015fkeni Okuma<\/h3>\n<p>Belirli bir ortam veya kabuk de\u011fi\u015fkeninin de\u011ferini h\u0131zl\u0131ca \u00f6\u011frenmek i\u00e7in en yayg\u0131n ve basit y\u00f6ntem <code>echo<\/code> komutunu kullanmakt\u0131r. De\u011fi\u015fken ad\u0131n\u0131n \u00f6n\u00fcne bir dolar i\u015fareti (<code>$<\/code>) koyarak kabu\u011fa o de\u011fi\u015fkenin de\u011ferini ekrana basmas\u0131n\u0131 s\u00f6ylersiniz.<\/p>\n<pre><code class=\"language-bash\">\necho $PATH\necho $HOME\necho $PS1\n    <\/code><\/pre>\n<p>Bu y\u00f6ntem, hem ortam de\u011fi\u015fkenleri hem de kabuk de\u011fi\u015fkenleri i\u00e7in \u00e7al\u0131\u015f\u0131r ve belirli bir de\u011feri an\u0131nda kontrol etmek i\u00e7in idealdir. \u00d6rne\u011fin, bir betik yazarken bir de\u011fi\u015fkenin do\u011fru de\u011feri i\u00e7erip i\u00e7ermedi\u011fini kontrol etmek i\u00e7in s\u0131k\u00e7a kullan\u0131l\u0131r.<\/p>\n<h3><code>export -p<\/code> ile D\u0131\u015fa Aktar\u0131lan De\u011fi\u015fkenleri G\u00f6rme<\/h3>\n<p><code>export -p<\/code> komutu, mevcut kabukta d\u0131\u015fa aktar\u0131lm\u0131\u015f (yani ortam de\u011fi\u015fkeni olarak ayarlanm\u0131\u015f) t\u00fcm de\u011fi\u015fkenleri listeler. Bu komutun \u00e7\u0131kt\u0131s\u0131, de\u011fi\u015fkenleri <code>declare -x VAR_NAME=\"value\"<\/code> format\u0131nda g\u00f6sterir, bu da bir de\u011fi\u015fkenin ortam de\u011fi\u015fkeni olup olmad\u0131\u011f\u0131n\u0131 net bir \u015fekilde anlaman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">\nexport -p\n    <\/code><\/pre>\n<p>Bu komut, \u00f6zellikle kabuk betikleri yazarken veya bir sistemin ortam\u0131n\u0131 analiz ederken hangi de\u011fi\u015fkenlerin alt s\u00fcre\u00e7lere aktar\u0131laca\u011f\u0131n\u0131 belirlemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. \u00c7\u0131kt\u0131 format\u0131, bu de\u011fi\u015fkenleri do\u011frudan bir beti\u011fe kopyalay\u0131p yap\u0131\u015ft\u0131rman\u0131za da olanak tan\u0131r.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: \u00c7ok fazla de\u011fi\u015fken \u00e7\u0131kt\u0131s\u0131 al\u0131yorsan\u0131z, \u00e7\u0131kt\u0131y\u0131 filtrelemek i\u00e7in <code>grep<\/code> komutunu kullan\u0131n. \u00d6rne\u011fin, sadece <code>PATH<\/code> ile ilgili de\u011fi\u015fkenleri g\u00f6rmek i\u00e7in <code>printenv | grep PATH<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu, b\u00fcy\u00fck \u00e7\u0131kt\u0131lar aras\u0131nda gezinmeyi kolayla\u015ft\u0131r\u0131r ve arad\u0131\u011f\u0131n\u0131z bilgiye h\u0131zla ula\u015fman\u0131z\u0131 sa\u011flar.<\/div>\n<h3>Vaka Analizi: PATH De\u011fi\u015fkenini \u0130ncelemek ve Anlamak<\/h3>\n<p><code>PATH<\/code> de\u011fi\u015fkeni, Linux&#8217;taki en kritik ortam de\u011fi\u015fkenlerinden biridir. Bir komut \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, kabuk bu de\u011fi\u015fkenin i\u00e7inde tan\u0131mlanan dizinleri s\u0131ras\u0131yla tarar ve komutun y\u00fcr\u00fct\u00fclebilir dosyas\u0131n\u0131 bulmaya \u00e7al\u0131\u015f\u0131r. Bu nedenle, <code>PATH<\/code>&#8216;i anlamak, komutlar\u0131n neden \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 veya neden \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 anlamak i\u00e7in temeldir.<\/p>\n<pre><code class=\"language-bash\">\necho $PATH\n    <\/code><\/pre>\n<p>Yukar\u0131daki komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, genellikle iki nokta \u00fcst \u00fcste (<code>:<\/code>) ile ayr\u0131lm\u0131\u015f bir dizi dizin yolu g\u00f6receksiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-plaintext\">\n\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin:\/usr\/games:\/usr\/local\/games:\/snap\/bin\n    <\/code><\/pre>\n<p>Bu \u00e7\u0131kt\u0131, kabu\u011funuzun komutlar\u0131 arayaca\u011f\u0131 dizinlerin s\u0131ras\u0131n\u0131 g\u00f6sterir. E\u011fer bir komut bu dizinlerden birinde bulunuyorsa, tam yolunu belirtmeden \u00e7al\u0131\u015ft\u0131rabilirsiniz. E\u011fer bir komut bu dizinlerin hi\u00e7birinde yoksa, kabuk &#8220;command not found&#8221; (komut bulunamad\u0131) hatas\u0131 verecektir. Bu durumda, ya komutun tam yolunu belirtmeniz ya da komutun bulundu\u011fu dizini <code>PATH<\/code> de\u011fi\u015fkenine eklemeniz gerekir. Bu vaka analizi, de\u011fi\u015fkenlerin sadece bilgi depolamakla kalmay\u0131p, ayn\u0131 zamanda sistemin temel davran\u0131\u015flar\u0131n\u0131 nas\u0131l etkiledi\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. <code>PATH<\/code>&#8216;i do\u011fru y\u00f6netmek, \u00f6zellikle geli\u015ftirme ortamlar\u0131nda veya \u00f6zel betikler \u00e7al\u0131\u015ft\u0131r\u0131rken sorunsuz bir deneyim i\u00e7in hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>Ge\u00e7ici ve Kal\u0131c\u0131 De\u011fi\u015fkenler Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>Linux&#8217;ta de\u011fi\u015fkenleri ayarlamak, sisteminizle etkile\u015fim kurman\u0131n ve onu ki\u015fiselle\u015ftirmenin temel bir par\u00e7as\u0131d\u0131r. Ancak, bir de\u011fi\u015fkenin \u00f6mr\u00fc ve kapsam\u0131, onu nas\u0131l tan\u0131mlad\u0131\u011f\u0131n\u0131za ba\u011fl\u0131d\u0131r. Ge\u00e7ici de\u011fi\u015fkenler mevcut oturumla s\u0131n\u0131rl\u0131yken, kal\u0131c\u0131 de\u011fi\u015fkenler oturumlar aras\u0131nda bile varl\u0131\u011f\u0131n\u0131 s\u00fcrd\u00fcr\u00fcr. Bu b\u00f6l\u00fcmde, her iki t\u00fcr de\u011fi\u015fkeni de nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.<\/p>\n<h3>Ge\u00e7ici De\u011fi\u015fkenler: Yaln\u0131zca Mevcut Oturum \u0130\u00e7in<\/h3>\n<p>Ge\u00e7ici de\u011fi\u015fkenler, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, yaln\u0131zca tan\u0131mland\u0131klar\u0131 mevcut kabuk oturumu s\u00fcresince var olurlar. Kabuk oturumu kapat\u0131ld\u0131\u011f\u0131nda veya terminal penceresi kapand\u0131\u011f\u0131nda bu de\u011fi\u015fkenler kaybolur. Bu t\u00fcr de\u011fi\u015fkenler, belirli bir g\u00f6revi yerine getirirken veya k\u0131sa s\u00fcreli testler yaparken olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h4>Kabuk De\u011fi\u015fkeni Tan\u0131mlama<\/h4>\n<p>Bir kabuk de\u011fi\u015fkeni tan\u0131mlamak i\u00e7in, de\u011fi\u015fken ad\u0131n\u0131 ve de\u011ferini do\u011frudan atama operat\u00f6r\u00fc (<code>=<\/code>) kullanarak belirtmeniz yeterlidir. De\u011fi\u015fken ad\u0131nda bo\u015fluk olmamal\u0131d\u0131r ve genellikle b\u00fcy\u00fck harflerle yaz\u0131lsa da, k\u00fc\u00e7\u00fck harf kullanmak da m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<pre><code class=\"language-bash\">\nMY_LOCAL_VAR=\"Merhaba D\u00fcnya\"\necho $MY_LOCAL_VAR\n    <\/code><\/pre>\n<p>Bu de\u011fi\u015fken, yaln\u0131zca mevcut kabuk oturumunuzda eri\u015filebilir olacakt\u0131r. Yeni bir terminal penceresi a\u00e7arsan\u0131z veya bu kabuktan bir alt kabuk ba\u015flat\u0131rsan\u0131z, <code>MY_LOCAL_VAR<\/code> tan\u0131ml\u0131 olmayacakt\u0131r. Bu durum, bu de\u011fi\u015fkenin yaln\u0131zca mevcut ba\u011flamda anlaml\u0131 oldu\u011fu durumlar i\u00e7in idealdir.<\/p>\n<h4>Ortam De\u011fi\u015fkeni Tan\u0131mlama (Ge\u00e7ici)<\/h4>\n<p>Bir de\u011fi\u015fkeni mevcut oturum i\u00e7in hem tan\u0131mlamak hem de alt s\u00fcre\u00e7lere aktarmak isterseniz, <code>export<\/code> komutunu kullanman\u0131z gerekir. <code>export<\/code>, bir kabuk de\u011fi\u015fkenini ortam de\u011fi\u015fkenine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-bash\">\nexport MY_ENV_VAR=\"Bu bir ortam de\u011fi\u015fkenidir\"\necho $MY_ENV_VAR\n    <\/code><\/pre>\n<p>\u015eimdi, mevcut kabuktan yeni bir kabuk (\u00f6rne\u011fin, <code>bash<\/code> yazarak) ba\u015flat\u0131rsan\u0131z ve orada <code>echo $MY_ENV_VAR<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131rsan\u0131z, de\u011ferini g\u00f6rebileceksiniz. Ancak, bu de\u011fi\u015fken de terminal penceresi kapat\u0131ld\u0131\u011f\u0131nda kaybolacakt\u0131r. Bu, bir komut veya betik \u00e7al\u0131\u015ft\u0131r\u0131rken belirli bir ortam ayar\u0131 sa\u011flamak istedi\u011finizde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: <code>export<\/code> komutunu kullanarak, bir de\u011fi\u015fkeni tan\u0131mlarken ayn\u0131 anda d\u0131\u015fa aktarabilirsiniz. \u00d6rne\u011fin, <code>export PATH=$PATH:\/opt\/my_app\/bin<\/code> komutu, <code>\/opt\/my_app\/bin<\/code> dizinini mevcut <code>PATH<\/code> de\u011fi\u015fkenine ekler ve bu de\u011fi\u015fikli\u011fi alt s\u00fcre\u00e7lere de aktar\u0131r. Bu, \u00f6zellikle yeni bir program\u0131n \u00e7al\u0131\u015ft\u0131r\u0131labilir dizinini h\u0131zl\u0131ca eri\u015filebilir k\u0131lmak istedi\u011finizde pratik bir y\u00f6ntemdir.<\/div>\n<h3>Kal\u0131c\u0131 De\u011fi\u015fkenler: Oturumlar Aras\u0131 Kal\u0131c\u0131l\u0131k<\/h3>\n<p>Kal\u0131c\u0131 de\u011fi\u015fkenler, Linux sisteminin yeniden ba\u015flat\u0131lmas\u0131 veya yeni bir kabuk oturumu a\u00e7\u0131lmas\u0131 durumunda bile varl\u0131\u011f\u0131n\u0131 s\u00fcrd\u00fcren de\u011fi\u015fkenlerdir. Bu t\u00fcr de\u011fi\u015fkenler, genellikle kullan\u0131c\u0131ya \u00f6zg\u00fc ayarlar\u0131 veya sistem genelindeki yap\u0131land\u0131rmalar\u0131 depolamak i\u00e7in kullan\u0131l\u0131r. Kal\u0131c\u0131 de\u011fi\u015fkenler, belirli yap\u0131land\u0131rma dosyalar\u0131na eklenerek tan\u0131mlan\u0131r.<\/p>\n<h4>Kullan\u0131c\u0131ya \u00d6zg\u00fc Kal\u0131c\u0131 De\u011fi\u015fkenler<\/h4>\n<p>\u00c7o\u011fu zaman, bir kullan\u0131c\u0131n\u0131n kendi ana dizininde bulunan gizli yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenleyerek kal\u0131c\u0131 de\u011fi\u015fkenler tan\u0131mlan\u0131r. En yayg\u0131n kullan\u0131lan dosyalar \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>~\/.bashrc<\/code>: Bash kabu\u011fu i\u00e7in interaktif (etkile\u015fimli) oturumlarda \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Genellikle komut takma adlar\u0131 (alias) ve kabuk fonksiyonlar\u0131 i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><code>~\/.profile<\/code> veya <code>~\/.bash_profile<\/code>: Kullan\u0131c\u0131 oturumu ba\u015flad\u0131\u011f\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Genellikle <code>PATH<\/code> gibi ortam de\u011fi\u015fkenlerini ve di\u011fer ba\u015flang\u0131\u00e7 ayarlar\u0131n\u0131 tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r. <code>.profile<\/code> dosyas\u0131, farkl\u0131 kabuklar (bash, sh) taraf\u0131ndan okunabilirken, <code>.bash_profile<\/code> sadece Bash&#8217;e \u00f6zg\u00fcd\u00fcr. E\u011fer <code>.bash_profile<\/code> varsa, <code>.profile<\/code> okunmaz.<\/li>\n<li><code>~\/.zshrc<\/code>: Zsh kabu\u011fu kullananlar i\u00e7in <code>.bashrc<\/code>&#8216;nin kar\u015f\u0131l\u0131\u011f\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Bir \u00f6rnekle a\u00e7\u0131klayal\u0131m: Diyelim ki s\u00fcrekli kulland\u0131\u011f\u0131n\u0131z \u00f6zel bir ara\u00e7 seti var ve bu ara\u00e7lar\u0131n \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyalar\u0131 <code>\/opt\/my_tools\/bin<\/code> dizininde bulunuyor. Bu dizini <code>PATH<\/code> de\u011fi\u015fkeninize kal\u0131c\u0131 olarak eklemek i\u00e7in, <code>~\/.bashrc<\/code> veya <code>~\/.profile<\/code> dosyan\u0131z\u0131 d\u00fczenleyebilirsiniz. Genellikle <code>~\/.bashrc<\/code> tercih edilir, \u00e7\u00fcnk\u00fc interaktif oturumlarda hemen etkili olur.<\/p>\n<pre><code class=\"language-bash\">\nnano ~\/.bashrc\n    <\/code><\/pre>\n<p>Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-bash\">\nexport PATH=\"$PATH:\/opt\/my_tools\/bin\"\n    <\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra, yeni bir terminal oturumu a\u00e7t\u0131\u011f\u0131n\u0131zda veya mevcut oturumunuzda de\u011fi\u015fiklikleri hemen uygulamak i\u00e7in <code>source<\/code> komutunu kullanman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">\nsource ~\/.bashrc\n    <\/code><\/pre>\n<p>Art\u0131k <code>\/opt\/my_tools\/bin<\/code> dizinindeki komutlar\u0131 tam yolunu belirtmeden \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu y\u00f6ntem, kullan\u0131c\u0131ya \u00f6zg\u00fc \u00f6zelle\u015ftirmeler i\u00e7in olduk\u00e7a esnek ve g\u00fc\u00e7l\u00fc bir yakla\u015f\u0131md\u0131r.<\/p>\n<h4>Sistem \u00c7ap\u0131nda Kal\u0131c\u0131 De\u011fi\u015fkenler<\/h4>\n<p>T\u00fcm kullan\u0131c\u0131lar i\u00e7in ge\u00e7erli olacak kal\u0131c\u0131 ortam de\u011fi\u015fkenleri tan\u0131mlamak isterseniz, genellikle <code>\/etc\/environment<\/code> veya <code>\/etc\/profile<\/code> gibi sistem genelindeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullan\u0131rs\u0131n\u0131z. Bu dosyalar\u0131n d\u00fczenlenmesi, t\u00fcm kullan\u0131c\u0131lar\u0131n ve sistem hizmetlerinin belirli de\u011fi\u015fkenlere eri\u015fmesini sa\u011flar.<\/p>\n<ul>\n<li><code>\/etc\/environment<\/code>: Sistemin ba\u015flang\u0131c\u0131nda okunur ve genellikle <code>PATH<\/code> gibi temel ortam de\u011fi\u015fkenlerini tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r. Bu dosya sadece <code>KEY=VALUE<\/code> \u00e7iftlerini i\u00e7erir ve betik mant\u0131\u011f\u0131 i\u00e7ermez.<\/li>\n<li><code>\/etc\/profile<\/code>: T\u00fcm kullan\u0131c\u0131lar i\u00e7in kabuk oturumu ba\u015flad\u0131\u011f\u0131nda okunur. Daha karma\u015f\u0131k mant\u0131k ve ko\u015fullu de\u011fi\u015fken tan\u0131mlamalar\u0131 i\u00e7erebilir.<\/li>\n<\/ul>\n<p>\u00d6rne\u011fin, sistem genelinde bir Java geli\u015ftirme kiti (JDK) yolu tan\u0131mlamak i\u00e7in <code>\/etc\/environment<\/code> dosyas\u0131n\u0131 d\u00fczenleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nsudo nano \/etc\/environment\n    <\/code><\/pre>\n<p>Dosyaya a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-plaintext\">\nJAVA_HOME=\"\/usr\/lib\/jvm\/java-11-openjdk-amd64\"\n    <\/code><\/pre>\n<p>Bu de\u011fi\u015fikli\u011fin etkili olmas\u0131 i\u00e7in sistemin yeniden ba\u015flat\u0131lmas\u0131 gerekebilir veya kullan\u0131c\u0131lar\u0131n yeni bir oturum a\u00e7mas\u0131 yeterli olabilir. Sistem \u00e7ap\u0131nda yap\u0131lan bu t\u00fcr de\u011fi\u015fiklikler, t\u00fcm kullan\u0131c\u0131lar\u0131n ve sistem servislerinin ayn\u0131 <code>JAVA_HOME<\/code> de\u011ferine sahip olmas\u0131n\u0131 sa\u011flar.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: Hangi yap\u0131land\u0131rma dosyas\u0131n\u0131 kullanaca\u011f\u0131n\u0131z, de\u011fi\u015fkenin kapsam\u0131na ve amac\u0131na ba\u011fl\u0131d\u0131r. Kullan\u0131c\u0131ya \u00f6zel ayarlar i\u00e7in <code>~\/.bashrc<\/code> veya <code>~\/.profile<\/code>, t\u00fcm sistem kullan\u0131c\u0131lar\u0131n\u0131 etkileyecek ayarlar i\u00e7in ise <code>\/etc\/environment<\/code> veya <code>\/etc\/profile<\/code> tercih edilmelidir.<\/div>\n<h3>Vaka Analizi: Bir Geli\u015ftirme Ortam\u0131 \u0130\u00e7in \u00d6zel Bir PATH Ayarlama<\/h3>\n<p>Bir web geli\u015ftiricisi oldu\u011funuzu ve projeniz i\u00e7in \u00f6zel bir Node.js s\u00fcr\u00fcm\u00fc veya Go dilinin belirli bir s\u00fcr\u00fcm\u00fcn\u00fc kulland\u0131\u011f\u0131n\u0131z\u0131 d\u00fc\u015f\u00fcn\u00fcn. Bu ara\u00e7lar\u0131n varsay\u0131lan sistem <code>PATH<\/code>&#8216;inde bulunmas\u0131n\u0131 istemeyebilirsiniz veya farkl\u0131 projeler farkl\u0131 s\u00fcr\u00fcmler gerektirebilir. Bu durumda, <code>~\/.bashrc<\/code> dosyan\u0131z\u0131 kullanarak kullan\u0131c\u0131ya \u00f6zel bir <code>PATH<\/code> ayarlamak en iyi yakla\u015f\u0131md\u0131r.<\/p>\n<p>\u00d6rne\u011fin, <code>~\/my_dev_tools\/node\/bin<\/code> ve <code>~\/my_dev_tools\/go\/bin<\/code> dizinlerinde \u00f6zel Node.js ve Go kurulumlar\u0131n\u0131z olsun. Bu dizinleri <code>PATH<\/code>&#8216;e eklemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\nnano ~\/.bashrc\n    <\/code><\/pre>\n<p>Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-bash\">\nexport PATH=\"$HOME\/my_dev_tools\/node\/bin:$HOME\/my_dev_tools\/go\/bin:$PATH\"\n    <\/code><\/pre>\n<p>Burada dikkat edilmesi gereken nokta, yeni dizinleri mevcut <code>PATH<\/code>&#8216;in \u00f6n\u00fcne eklememizdir. Bu, kabu\u011fun \u00f6nce sizin \u00f6zel ara\u00e7lar\u0131n\u0131z\u0131 bulmas\u0131n\u0131 sa\u011flar ve ard\u0131ndan sistem genelindeki ara\u00e7lara bakar. B\u00f6ylece, sistemde y\u00fckl\u00fc olan Node.js veya Go s\u00fcr\u00fcmleri yerine sizin \u00f6zel s\u00fcr\u00fcmleriniz \u00f6ncelikli olarak kullan\u0131l\u0131r. De\u011fi\u015fiklikleri uygulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">\nsource ~\/.bashrc\n    <\/code><\/pre>\n<p>Bu vaka analizi, kal\u0131c\u0131 de\u011fi\u015fkenlerin geli\u015ftirme ortamlar\u0131n\u0131 nas\u0131l ki\u015fiselle\u015ftirebilece\u011fini ve farkl\u0131 projeler i\u00e7in esneklik sa\u011flayabilece\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Bu sayede, her proje i\u00e7in ayr\u0131 ayr\u0131 ortam kurulumlar\u0131 yapmak yerine, de\u011fi\u015fkenler arac\u0131l\u0131\u011f\u0131yla kolayca ge\u00e7i\u015f yapabilirsiniz.<\/p>\n<h2>Geli\u015fmi\u015f Kullan\u0131m Senaryolar\u0131: De\u011fi\u015fken Y\u00f6netiminde \u0130pu\u00e7lar\u0131 ve P\u00fcf Noktalar\u0131<\/h2>\n<p>Ortam ve kabuk de\u011fi\u015fkenlerinin temel kullan\u0131m\u0131n\u0131 \u00f6\u011frendikten sonra, \u015fimdi daha geli\u015fmi\u015f senaryolara ve y\u00f6netim ipu\u00e7lar\u0131na odaklanal\u0131m. Bu bilgiler, de\u011fi\u015fkenleri daha verimli kullanman\u0131za, olas\u0131 sorunlar\u0131 \u00e7\u00f6zmenize ve karma\u015f\u0131k sistem yap\u0131land\u0131rmalar\u0131n\u0131 daha iyi y\u00f6netmenize yard\u0131mc\u0131 olacakt\u0131r. \u0130ster bir geli\u015ftirici olun ister bir sistem y\u00f6neticisi, bu p\u00fcf noktalar\u0131 i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 optimize edecektir.<\/p>\n<h3>De\u011fi\u015fkenleri Silme: <code>unset VAR_NAME<\/code><\/h3>\n<p>Bazen bir de\u011fi\u015fkeni art\u0131k kullanmak istemeyebilirsiniz veya ge\u00e7ici olarak tan\u0131mlanm\u0131\u015f bir de\u011fi\u015fkenin mevcut oturumunuzdan kald\u0131r\u0131lmas\u0131n\u0131 isteyebilirsiniz. Bu durumda, <code>unset<\/code> komutu devreye girer. <code>unset<\/code>, belirtilen kabuk veya ortam de\u011fi\u015fkenini bellekten kald\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">\nexport MY_TEMP_VAR=\"ge\u00e7ici de\u011fer\"\necho $MY_TEMP_VAR\nunset MY_TEMP_VAR\necho $MY_TEMP_VAR # Art\u0131k bo\u015f \u00e7\u0131kt\u0131 verir\n    <\/code><\/pre>\n<p>Bir de\u011fi\u015fkeni <code>unset<\/code> etti\u011finizde, o de\u011fi\u015fken hem mevcut kabuktan hem de ondan t\u00fcreyen alt s\u00fcre\u00e7lerden kaybolur. Ancak, e\u011fer de\u011fi\u015fken kal\u0131c\u0131 olarak bir yap\u0131land\u0131rma dosyas\u0131nda (\u00f6rne\u011fin, <code>.bashrc<\/code>) tan\u0131mlanm\u0131\u015fsa, <code>unset<\/code> komutu sadece mevcut oturum i\u00e7in ge\u00e7erli olur. Kal\u0131c\u0131 olarak kald\u0131rmak i\u00e7in ilgili yap\u0131land\u0131rma dosyas\u0131ndan sat\u0131r\u0131 silmeniz ve ard\u0131ndan <code>source<\/code> komutuyla veya yeni bir oturum a\u00e7arak de\u011fi\u015fiklikleri uygulaman\u0131z gerekir.<\/p>\n<h3>De\u011fi\u015fkenleri Yedekleme ve Geri Y\u00fckleme<\/h3>\n<p>\u00d6zellikle kritik sistemlerde veya karma\u015f\u0131k geli\u015ftirme ortamlar\u0131nda, ortam de\u011fi\u015fkenlerinizin yap\u0131land\u0131rmas\u0131n\u0131 yedeklemek ve gerekti\u011finde geri y\u00fckleyebilmek b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Bu, yanl\u0131\u015fl\u0131kla yap\u0131lan de\u011fi\u015fikliklerden korunman\u0131za veya farkl\u0131 yap\u0131land\u0131rmalar aras\u0131nda kolayca ge\u00e7i\u015f yapman\u0131za olanak tan\u0131r.<\/p>\n<p>Mevcut ortam de\u011fi\u015fkenlerinizi bir dosyaya yedeklemek i\u00e7in <code>env<\/code> veya <code>printenv<\/code> komutunu bir \u00e7\u0131kt\u0131 y\u00f6nlendirme operat\u00f6r\u00fc (<code>><\/code>) ile kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nprintenv > ~\/env_yedek.txt\n    <\/code><\/pre>\n<p>Bu komut, t\u00fcm ortam de\u011fi\u015fkenlerinizi <code>env_yedek.txt<\/code> adl\u0131 bir dosyaya kaydeder. Daha sonra bu yedeklemeyi inceleyebilir veya belirli de\u011fi\u015fkenleri manuel olarak geri y\u00fckleyebilirsiniz. Ancak, bu sadece ortam de\u011fi\u015fkenlerini kaydeder, kabuk de\u011fi\u015fkenlerini de\u011fil. T\u00fcm kabuk ve ortam de\u011fi\u015fkenlerini kaydetmek i\u00e7in <code>set<\/code> komutunu kullanabilirsiniz, ancak bu \u00e7\u0131kt\u0131 daha karma\u015f\u0131k olabilir.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: Daha kontroll\u00fc bir yedekleme ve geri y\u00fckleme i\u00e7in, sadece \u00f6nemli de\u011fi\u015fkenleri i\u00e7eren bir betik olu\u015fturabilirsiniz. \u00d6rne\u011fin, <code>my_env_backup.sh<\/code> ad\u0131nda bir dosya olu\u015fturup i\u00e7ine <code>export VAR1=\"value1\"<\/code>, <code>export VAR2=\"value2\"<\/code> gibi sat\u0131rlar ekleyebilir ve gerekti\u011finde bu beti\u011fi <code>source<\/code> komutuyla \u00e7al\u0131\u015ft\u0131rarak de\u011fi\u015fkenleri geri y\u00fckleyebilirsiniz.<\/div>\n<h3>Kabuk Betiklerinde De\u011fi\u015fken Kullan\u0131m\u0131<\/h3>\n<p>Kabuk betikleri, Linux&#8217;ta otomasyonun kalbidir ve de\u011fi\u015fkenler, betikleri dinamik ve esnek hale getirir. Betikler i\u00e7inde hem kendi de\u011fi\u015fkenlerinizi tan\u0131mlayabilir hem de mevcut ortam de\u011fi\u015fkenlerini kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">\n#!\/bin\/bash\n\n# Betik i\u00e7inde yerel bir de\u011fi\u015fken tan\u0131mlama\nGREETING=\"Merhaba\"\nNAME=\"Kullan\u0131c\u0131\"\n\necho \"$GREETING, $NAME!\"\n\n# Ortam de\u011fi\u015fkenini kullanma\necho \"Ana dizininiz: $HOME\"\necho \"Ge\u00e7erli kabu\u011funuz: $SHELL\"\n\n# Kullan\u0131c\u0131dan girdi alarak de\u011fi\u015fkeni kullanma\nread -p \"Favori renginiz nedir? \" FAVORITE_COLOR\necho \"Favori renginiz: $FAVORITE_COLOR\"\n    <\/code><\/pre>\n<p>Bu \u00f6rnek, bir betik i\u00e7inde nas\u0131l yerel de\u011fi\u015fkenler tan\u0131mlanaca\u011f\u0131n\u0131, mevcut ortam de\u011fi\u015fkenlerinin nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ve hatta kullan\u0131c\u0131dan girdi alarak de\u011fi\u015fkenlerin nas\u0131l manip\u00fcle edilece\u011fini g\u00f6stermektedir. Betiklerde de\u011fi\u015fkenlerin kullan\u0131m\u0131, tekrarlayan g\u00f6revleri otomatikle\u015ftirmek ve daha interaktif komut dosyalar\u0131 olu\u015fturmak i\u00e7in temel bir beceridir.<\/p>\n<h3><code>~\/.config\/environment.d<\/code> veya <code>\/etc\/environment<\/code> Gibi Sistem \u00c7ap\u0131nda Ayarlar<\/h3>\n<p>Modern Linux da\u011f\u0131t\u0131mlar\u0131, \u00f6zellikle <code>systemd<\/code> kullananlar, sistem \u00e7ap\u0131nda ortam de\u011fi\u015fkenlerini y\u00f6netmek i\u00e7in ek mekanizmalar sunar. <code>\/etc\/environment<\/code> hala yayg\u0131n olarak kullan\u0131lsa da, <code>systemd<\/code> tabanl\u0131 sistemlerde <code>\/etc\/systemd\/system.conf.d\/<\/code> veya <code>~\/.config\/environment.d\/<\/code> gibi dizinler alt\u0131nda <code>.conf<\/code> dosyalar\u0131 olu\u015fturarak ortam de\u011fi\u015fkenlerini tan\u0131mlamak daha mod\u00fcler bir yakla\u015f\u0131md\u0131r.<\/p>\n<p>\u00d6rne\u011fin, <code>systemd<\/code> kullanan bir sistemde, t\u00fcm kullan\u0131c\u0131lar i\u00e7in bir ortam de\u011fi\u015fkeni tan\u0131mlamak isterseniz, <code>\/etc\/systemd\/system.conf.d\/<\/code> dizini alt\u0131nda bir dosya olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nsudo nano \/etc\/systemd\/system.conf.d\/my_custom_vars.conf\n    <\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olabilir:<\/p>\n<pre><code class=\"language-plaintext\">\n[Manager]\nDefaultEnvironment=\"MY_APP_DATA=\/var\/lib\/my_app\"\n    <\/code><\/pre>\n<p>Bu y\u00f6ntem, <code>systemd<\/code>&#8216;nin y\u00f6netti\u011fi t\u00fcm s\u00fcre\u00e7ler ve kullan\u0131c\u0131 oturumlar\u0131 i\u00e7in <code>MY_APP_DATA<\/code> de\u011fi\u015fkenini ayarlar. Bu, \u00f6zellikle sunucu ortamlar\u0131nda veya sistem genelinde belirli bir uygulaman\u0131n davran\u0131\u015f\u0131n\u0131 etkilemek istedi\u011finizde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r. Kullan\u0131c\u0131ya \u00f6zel <code>environment.d<\/code> dosyalar\u0131 i\u00e7in ise <code>~\/.config\/environment.d\/<\/code> dizini kullan\u0131l\u0131r.<\/p>\n<h3>Vaka Analizi: Farkl\u0131 Projeler \u0130\u00e7in Farkl\u0131 Python Sanal Ortamlar\u0131n\u0131 Y\u00f6netme<\/h3>\n<p>Python geli\u015ftiricileri genellikle farkl\u0131 projeler i\u00e7in farkl\u0131 ba\u011f\u0131ml\u0131l\u0131klar ve Python s\u00fcr\u00fcmleri gerektirir. <code>venv<\/code> veya <code>conda<\/code> gibi sanal ortam ara\u00e7lar\u0131 bu sorunu \u00e7\u00f6zse de, bu ortamlar\u0131 etkinle\u015ftirmeyi otomatikle\u015ftirmek i\u00e7in ortam de\u011fi\u015fkenlerinden faydalanabiliriz.<\/p>\n<p>Diyelim ki iki projeniz var: <code>project_A<\/code> ve <code>project_B<\/code>. Her birinin kendi sanal ortam\u0131 <code>~\/projects\/project_A\/.venv<\/code> ve <code>~\/projects\/project_B\/.venv<\/code> dizinlerinde bulunuyor.<\/p>\n<p>Bir betik veya kabuk fonksiyonu yazarak, projeler aras\u0131nda ge\u00e7i\u015f yaparken ilgili sanal ortam\u0131 otomatik olarak etkinle\u015ftirebilirsiniz. \u00d6rne\u011fin, <code>~\/.bashrc<\/code> dosyan\u0131za a\u015fa\u011f\u0131daki fonksiyonu ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\n# Proje dizinine ge\u00e7i\u015f yaparken sanal ortam\u0131 etkinle\u015ftiren fonksiyon\nfunction activate_project() {\n    if [ -d \"$1\" ]; then\n        cd \"$1\" || return\n        if [ -d \".venv\" ]; then\n            echo \"Sanal ortam etkinle\u015ftiriliyor: $1\/.venv\"\n            source .venv\/bin\/activate\n        else\n            echo \"Sanal ortam bulunamad\u0131: $1\/.venv\"\n        fi\n    else\n        echo \"Dizin bulunamad\u0131: $1\"\n    fi\n}\n\n# \u00d6rnek kullan\u0131m:\n# activate_project ~\/projects\/project_A\n    <\/code><\/pre>\n<p>Bu fonksiyon, belirtilen proje dizinine ge\u00e7i\u015f yapar ve e\u011fer i\u00e7inde <code>.venv<\/code> dizini varsa, ilgili sanal ortam\u0131 otomatik olarak etkinle\u015ftirir. Bu, geli\u015ftiriciler i\u00e7in zaman kazand\u0131ran ve hata olas\u0131l\u0131\u011f\u0131n\u0131 azaltan g\u00fc\u00e7l\u00fc bir otomasyon \u00f6rne\u011fidir. <code>activate_project<\/code> fonksiyonu \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda, <code>PATH<\/code> de\u011fi\u015fkeni otomatik olarak sanal ortam\u0131n <code>bin<\/code> dizinini i\u00e7erecek \u015fekilde g\u00fcncellenir ve Python komutlar\u0131 bu sanal ortamda \u00e7al\u0131\u015fmaya ba\u015flar.<\/p>\n<p>Bu t\u00fcr geli\u015fmi\u015f kullan\u0131mlar, de\u011fi\u015fkenlerin sadece de\u011fer depolamakla kalmay\u0131p, ayn\u0131 zamanda karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131n\u0131 basitle\u015ftiren ve otomatikle\u015ftiren bir ara\u00e7 olarak nas\u0131l kullan\u0131labilece\u011fini g\u00f6stermektedir. De\u011fi\u015fken y\u00f6netimi konusunda ustala\u015fmak, Linux sistemlerinde daha \u00fcretken ve verimli olman\u0131za olanak tan\u0131r.<\/p>\n<h2>Mobil Uyumluluk ve HTML Yap\u0131s\u0131: Neden \u0130yi Bir HTML Yap\u0131s\u0131 \u00d6nemlidir?<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz dijital d\u00fcnyas\u0131nda, i\u00e7eri\u011fin mobil cihazlarda da sorunsuz bir \u015fekilde g\u00f6r\u00fcnt\u00fclenebilmesi hayati \u00f6nem ta\u015f\u0131maktad\u0131r. Bu, sadece web siteleri i\u00e7in de\u011fil, teknik makaleler ve belgeler gibi statik i\u00e7erikler i\u00e7in de ge\u00e7erlidir. \u0130yi bir HTML yap\u0131s\u0131 ve mobil uyumluluk prensipleri, i\u00e7eri\u011finizin geni\u015f bir okuyucu kitlesine ula\u015fmas\u0131n\u0131 ve her cihazda okunabilir olmas\u0131n\u0131 sa\u011flar. Bu b\u00f6l\u00fcmde, HTML yap\u0131s\u0131n\u0131n \u00f6nemi ve mobil uyumlu tasar\u0131m\u0131n temel prensiplerine de\u011finece\u011fiz.<\/p>\n<h3>Semantik HTML Kullan\u0131m\u0131<\/h3>\n<p>Semantik HTML, i\u00e7eri\u011fin anlam\u0131n\u0131 a\u00e7\u0131k\u00e7a belirten etiketler kullanmak anlam\u0131na gelir. \u00d6rne\u011fin, bir ba\u015fl\u0131k i\u00e7in <code>&lt;h2&gt;<\/code> veya <code>&lt;h3&gt;<\/code>, bir paragraf i\u00e7in <code>&lt;p&gt;<\/code>, bir liste i\u00e7in <code>&lt;ul&gt;<\/code> veya <code>&lt;ol&gt;<\/code> etiketlerini kullanmak, i\u00e7eri\u011fin yap\u0131s\u0131n\u0131 hem taray\u0131c\u0131lar hem de arama motorlar\u0131 i\u00e7in daha anla\u015f\u0131l\u0131r hale getirir. Bu, sadece SEO a\u00e7\u0131s\u0131ndan de\u011fil, ayn\u0131 zamanda eri\u015filebilirlik (\u00f6rne\u011fin, ekran okuyucular i\u00e7in) ve gelecekteki bak\u0131m kolayl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan da kritik \u00f6neme sahiptir.<\/p>\n<p>\u00d6rne\u011fin, bir makalenin ana b\u00f6l\u00fcmlerini <code>&lt;section&gt;<\/code> etiketleriyle, yan bilgilerini <code>&lt;aside&gt;<\/code> ile ve ana i\u00e7eri\u011fini <code>&lt;main&gt;<\/code> ile sarmalamak, i\u00e7eri\u011fin hiyerar\u015fisini ve amac\u0131n\u0131 netle\u015ftirir. Bu t\u00fcr semantik etiketler, mobil cihazlarda i\u00e7eri\u011fin daha d\u00fczenli bir \u015fekilde sunulmas\u0131na yard\u0131mc\u0131 olur, \u00e7\u00fcnk\u00fc taray\u0131c\u0131lar bu yap\u0131ya g\u00f6re varsay\u0131lan stiller uygulayabilir ve responsive tasar\u0131m i\u00e7in daha sa\u011flam bir temel olu\u015fturur.<\/p>\n<h3>CSS ve Medya Sorgular\u0131 ile Responsive Tasar\u0131m\u0131n Temelleri<\/h3>\n<p>Mobil uyumlu bir web sayfas\u0131 olu\u015fturman\u0131n anahtar\u0131, CSS (Cascading Style Sheets) ve \u00f6zellikle medya sorgular\u0131d\u0131r. Medya sorgular\u0131, farkl\u0131 ekran boyutlar\u0131na, \u00e7\u00f6z\u00fcn\u00fcrl\u00fcklere veya cihaz t\u00fcrlerine g\u00f6re farkl\u0131 stil kurallar\u0131 uygulaman\u0131za olanak tan\u0131r. Bu sayede, ayn\u0131 HTML i\u00e7eri\u011fi, bir masa\u00fcst\u00fc bilgisayarda geni\u015f bir d\u00fczenle, bir tablette daha orta bir d\u00fczenle ve bir ak\u0131ll\u0131 telefonda tek s\u00fctunlu, okunmas\u0131 kolay bir d\u00fczenle g\u00f6r\u00fcnt\u00fclenebilir.<\/p>\n<p>\u0130\u015fte basit bir medya sorgusu \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-html\">\n&lt;style&gt;\n    \/* Varsay\u0131lan stil: Masa\u00fcst\u00fc i\u00e7in *\/\n    .content-wrapper {\n        max-width: 1200px;\n        margin: 0 auto;\n        padding: 20px;\n        font-size: 16px;\n        line-height: 1.6;\n    }\n\n    h2 {\n        font-size: 2em;\n        margin-top: 1.5em;\n        margin-bottom: 0.5em;\n    }\n\n    \/* Mobil cihazlar i\u00e7in medya sorgusu (ekran geni\u015fli\u011fi 768px ve alt\u0131) *\/\n    @media (max-width: 768px) {\n        .content-wrapper {\n            padding: 15px; \/* Daha az kenar bo\u015flu\u011fu *\/\n            font-size: 14px; \/* Daha k\u00fc\u00e7\u00fck font boyutu *\/\n        }\n        h2 {\n            font-size: 1.5em; \/* Mobil cihazlarda ba\u015fl\u0131klar\u0131 k\u00fc\u00e7\u00fclt *\/\n            margin-top: 1em;\n            margin-bottom: 0.3em;\n        }\n        pre code {\n            white-space: pre-wrap; \/* Kod bloklar\u0131nda sat\u0131r atlamay\u0131 etkinle\u015ftir *\/\n            word-break: break-all; \/* Uzun kelimeleri b\u00f6l *\/\n        }\n    }\n\n    \/* Daha k\u00fc\u00e7\u00fck telefonlar i\u00e7in medya sorgusu (ekran geni\u015fli\u011fi 480px ve alt\u0131) *\/\n    @media (max-width: 480px) {\n        .content-wrapper {\n            padding: 10px;\n        }\n        h2 {\n            font-size: 1.3em;\n        }\n    }\n&lt;\/style&gt;\n    <\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>.content-wrapper<\/code> s\u0131n\u0131f\u0131na sahip bir ana kapsay\u0131c\u0131 i\u00e7in varsay\u0131lan (masa\u00fcst\u00fc) stiller tan\u0131mlanm\u0131\u015ft\u0131r. Ard\u0131ndan, <code>@media (max-width: 768px)<\/code> ve <code>@media (max-width: 480px)<\/code> medya sorgular\u0131 kullan\u0131larak, ekran geni\u015fli\u011fi belirli bir e\u015fi\u011fin alt\u0131na d\u00fc\u015ft\u00fc\u011f\u00fcnde farkl\u0131 stiller uygulan\u0131r. Bu, \u00f6zellikle font boyutlar\u0131n\u0131, kenar bo\u015fluklar\u0131n\u0131 ve ba\u015fl\u0131k boyutlar\u0131n\u0131 ayarlayarak mobil cihazlarda daha iyi bir okuma deneyimi sunar. Ayr\u0131ca, kod bloklar\u0131 gibi geni\u015f i\u00e7eriklerin mobil ekranlarda ta\u015fmas\u0131n\u0131 \u00f6nlemek i\u00e7in <code>white-space: pre-wrap;<\/code> ve <code>word-break: break-all;<\/code> gibi CSS \u00f6zellikleri kullan\u0131labilir. Bu teknikler, i\u00e7eri\u011finizin her zaman eri\u015filebilir ve estetik olmas\u0131n\u0131 sa\u011flar.<\/p>\n<div class=\"expert-tip\">Uzman \u0130pucu: Responsive tasar\u0131mda &#8220;mobile-first&#8221; yakla\u015f\u0131m\u0131n\u0131 benimsemek genellikle daha iyidir. Yani, \u00f6nce mobil cihazlar i\u00e7in stilleri tan\u0131mlay\u0131n ve ard\u0131ndan medya sorgular\u0131 ile daha b\u00fcy\u00fck ekranlar i\u00e7in stilleri \u00fczerine yaz\u0131n. Bu, daha hafif bir mobil deneyim ve daha kolay bir geli\u015ftirme s\u00fcreci sa\u011flar.<\/div>\n<p>Sonu\u00e7 olarak, sa\u011flam bir HTML yap\u0131s\u0131 ve responsive tasar\u0131m prensiplerini uygulamak, i\u00e7eri\u011finizin sadece okunabilir olmas\u0131n\u0131 de\u011fil, ayn\u0131 zamanda farkl\u0131 cihazlarda tutarl\u0131 ve keyifli bir kullan\u0131c\u0131 deneyimi sunmas\u0131n\u0131 sa\u011flar. Bu, teknik makalelerinizin veya herhangi bir web i\u00e7eri\u011finizin ba\u015far\u0131s\u0131 i\u00e7in vazge\u00e7ilmez bir unsurdur.<\/p>\n<h2>Ortam ve Kabuk De\u011fi\u015fkenleri Y\u00f6netiminde Uzmanla\u015fmak<\/h2>\n<p>Linux sistemlerinde ortam ve kabuk de\u011fi\u015fkenlerini anlamak ve etkili bir \u015fekilde y\u00f6netmek, sistem \u00fczerinde tam kontrol sa\u011flaman\u0131n ve g\u00fcnl\u00fck i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 optimize etmenin temelini olu\u015fturur. Bu rehber boyunca, bu de\u011fi\u015fkenlerin ne oldu\u011fundan, nas\u0131l okunup ayarland\u0131\u011f\u0131na, ge\u00e7ici ve kal\u0131c\u0131 de\u011fi\u015fkenler aras\u0131ndaki farklara ve geli\u015fmi\u015f kullan\u0131m senaryolar\u0131na kadar geni\u015f bir yelpazeyi ele ald\u0131k. Art\u0131k, bir komutun neden \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 veya \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 daha iyi anlayabilir, kendi \u00f6zel ortamlar\u0131n\u0131z\u0131 olu\u015fturabilir ve kabuk betiklerinizi daha dinamik hale getirebilirsiniz.<\/p>\n<p>Bu de\u011fi\u015fkenler, sadece birer depolama alan\u0131 olmaktan \u00f6te, Linux&#8217;un esnek ve g\u00fc\u00e7l\u00fc yap\u0131s\u0131n\u0131n temel ta\u015flar\u0131d\u0131r. <code>PATH<\/code> de\u011fi\u015fkeni sayesinde komutlar\u0131 kolayca \u00e7al\u0131\u015ft\u0131rabilir, <code>HOME<\/code> de\u011fi\u015fkeni ile kullan\u0131c\u0131 dizinlerine h\u0131zl\u0131ca eri\u015febilir ve <code>export<\/code> komutu ile alt s\u00fcre\u00e7lerin belirli bilgilere sahip olmas\u0131n\u0131 sa\u011flayabilirsiniz. Ayr\u0131ca, <code>.bashrc<\/code> veya <code>\/etc\/environment<\/code> gibi yap\u0131land\u0131rma dosyalar\u0131n\u0131 kullanarak bu de\u011fi\u015fkenleri kal\u0131c\u0131 hale getirme yetene\u011fi, sisteminizi ki\u015fiselle\u015ftirmenize ve otomatikle\u015ftirmelerinizi kolayla\u015ft\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<p>Unutmay\u0131n ki de\u011fi\u015fken y\u00f6netimi, zamanla pratik yaparak geli\u015fen bir beceridir. Farkl\u0131 senaryolarda de\u011fi\u015fkenleri denemekten, betiklerinizde kullanmaktan ve sisteminizin davran\u0131\u015flar\u0131n\u0131 g\u00f6zlemlemekten \u00e7ekinmeyin. Bu bilgilerle donanm\u0131\u015f olarak, Linux ortam\u0131n\u0131zda daha yetkin ve verimli bir kullan\u0131c\u0131 veya y\u00f6netici olacaks\u0131n\u0131z. \u0130ster basit bir komut \u00e7al\u0131\u015ft\u0131r\u0131n ister karma\u015f\u0131k bir geli\u015ftirme ortam\u0131 kurun, ortam ve kabuk de\u011fi\u015fkenleri her zaman yan\u0131n\u0131zda olacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n<h4><code>.bashrc<\/code> ve <code>.profile<\/code> dosyalar\u0131 aras\u0131ndaki temel fark nedir?<\/h4>\n<p><code>.bashrc<\/code>, interaktif (etkile\u015fimli) Bash kabu\u011fu oturumlar\u0131 ba\u015flad\u0131\u011f\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r ve genellikle kabuk takma adlar\u0131 (alias), fonksiyonlar ve kabuk de\u011fi\u015fkenleri i\u00e7in kullan\u0131l\u0131r. <code>.profile<\/code> ise, kullan\u0131c\u0131 oturumu ba\u015flad\u0131\u011f\u0131nda (hem interaktif hem de non-interaktif oturumlar dahil) \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r ve genellikle <code>PATH<\/code> gibi ortam de\u011fi\u015fkenleri i\u00e7in kullan\u0131l\u0131r. E\u011fer <code>.bash_profile<\/code> varsa, Bash genellikle <code>.profile<\/code> yerine onu okur. Farkl\u0131 kabuklar (sh, ksh) da <code>.profile<\/code> dosyas\u0131n\u0131 okuyabilir.<\/p>\n<\/li>\n<li>\n<h4>Bir de\u011fi\u015fkenin ge\u00e7ici mi yoksa kal\u0131c\u0131 m\u0131 oldu\u011funu nas\u0131l anlar\u0131m?<\/h4>\n<p>Bir de\u011fi\u015fkenin ge\u00e7ici olup olmad\u0131\u011f\u0131n\u0131 anlamak i\u00e7in, de\u011fi\u015fkeni ayarlad\u0131ktan sonra yeni bir terminal penceresi a\u00e7\u0131p orada <code>echo $VAR_NAME<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz. E\u011fer de\u011fer g\u00f6r\u00fcn\u00fcyorsa kal\u0131c\u0131 olarak ayarlanm\u0131\u015ft\u0131r, g\u00f6r\u00fcnm\u00fcyorsa ge\u00e7icidir. Ayr\u0131ca, <code>export -p<\/code> komutu sadece d\u0131\u015fa aktar\u0131lm\u0131\u015f (ortam) de\u011fi\u015fkenleri g\u00f6sterir, bu da onlar\u0131n alt s\u00fcre\u00e7lere aktar\u0131labilece\u011fi anlam\u0131na gelir. Kal\u0131c\u0131 de\u011fi\u015fkenler genellikle <code>.bashrc<\/code>, <code>.profile<\/code> veya <code>\/etc\/environment<\/code> gibi dosyalarda tan\u0131mlan\u0131r.<\/p>\n<\/li>\n<li>\n<h4><code>PATH<\/code> de\u011fi\u015fkenine birden fazla dizin nas\u0131l eklenir?<\/h4>\n<p><code>PATH<\/code> de\u011fi\u015fkenine birden fazla dizin eklemek i\u00e7in, mevcut <code>PATH<\/code> de\u011ferini koruyarak yeni dizinleri iki nokta \u00fcst \u00fcste (<code>:<\/code>) ile ay\u0131rarak eklersiniz. \u00d6rne\u011fin, <code>export PATH=\"\/opt\/yeni_dizin1:\/opt\/yeni_dizin2:$PATH\"<\/code> komutu, <code>yeni_dizin1<\/code> ve <code>yeni_dizin2<\/code>&#8216;yi mevcut <code>PATH<\/code>&#8216;in ba\u015f\u0131na ekler. Ba\u015fa eklemek, bu dizinlerdeki komutlar\u0131n \u00f6ncelikli olarak bulunmas\u0131n\u0131 sa\u011flar. Sona eklemek i\u00e7in <code>export PATH=\"$PATH:\/opt\/yeni_dizin1:\/opt\/yeni_dizin2\"<\/code> kullanabilirsiniz.<\/p>\n<\/li>\n<li>\n<h4>Ortam de\u011fi\u015fkenleri g\u00fcvenlik a\u00e7\u0131s\u0131ndan ne gibi riskler ta\u015f\u0131yabilir?<\/h4>\n<p>Ortam de\u011fi\u015fkenleri, hassas bilgiler (API anahtarlar\u0131, veritaban\u0131 \u015fifreleri) i\u00e7erebilir. Bu t\u00fcr bilgileri do\u011frudan ortam de\u011fi\u015fkenlerinde depolamak, \u00f6zellikle \u00e7ok kullan\u0131c\u0131l\u0131 sistemlerde veya g\u00fcvenlik a\u00e7\u0131\u011f\u0131 olan uygulamalarda risk olu\u015fturabilir. K\u00f6t\u00fc niyetli bir kullan\u0131c\u0131 veya uygulama, bu de\u011fi\u015fkenlere eri\u015ferek hassas bilgilere ula\u015fabilir. Bu nedenle, hassas veriler i\u00e7in genellikle daha g\u00fcvenli yap\u0131land\u0131rma dosyalar\u0131, anahtar y\u00f6netim sistemleri veya \u015fifreli depolama \u00e7\u00f6z\u00fcmleri tercih edilmelidir. Ayr\u0131ca, <code>PATH<\/code> de\u011fi\u015fkenine g\u00fcvenilmeyen dizinleri eklemek de &#8220;path hijacking&#8221; gibi g\u00fcvenlik risklerine yol a\u00e7abilir.<\/p>\n<\/li>\n<li>\n<h4>Kabuk betiklerinde tan\u0131mlanan de\u011fi\u015fkenler neden bazen ana kabukta g\u00f6r\u00fcnmez?<\/h4>\n<p>Bir kabuk beti\u011fi (\u00f6rne\u011fin, <code>.\/myscript.sh<\/code> ile \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda) ayr\u0131 bir alt s\u00fcre\u00e7te (subshell) \u00e7al\u0131\u015f\u0131r. Bu alt s\u00fcre\u00e7te tan\u0131mlanan veya de\u011fi\u015ftirilen de\u011fi\u015fkenler, betik sona erdi\u011finde alt s\u00fcre\u00e7le birlikte kaybolur ve ana kabuk oturumuna geri yans\u0131maz. E\u011fer bir betikteki de\u011fi\u015fkenlerin ana kabukta da g\u00f6r\u00fcnmesini veya etkili olmas\u0131n\u0131 istiyorsan\u0131z, beti\u011fi <code>source<\/code> komutuyla (\u00f6rne\u011fin, <code>source .\/myscript.sh<\/code>) \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir. <code>source<\/code> komutu, beti\u011fi mevcut kabuk i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131r, bu da de\u011fi\u015fkenlerin ana kabu\u011fun ortam\u0131n\u0131 etkilemesine olanak tan\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Linux&#8217;ta Ortam ve Kabuk De\u011fi\u015fkenlerini Okuma ve Ayarlama Rehberi Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek,&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-37385","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>Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?<\/title>\n<meta name=\"description\" content=\"Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.\" \/>\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\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?\" \/>\n<meta property=\"og:description\" content=\"Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-02T13:21:11+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=\"32 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?\",\"datePublished\":\"2026-01-02T13:21:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\"},\"wordCount\":5766,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\",\"name\":\"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-02T13:21:11+00:00\",\"description\":\"Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?\"}]},{\"@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":"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?","description":"Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.","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\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?","og_description":"Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-02T13:21:11+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"32 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?","datePublished":"2026-01-02T13:21:11+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/"},"wordCount":5766,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/","name":"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-02T13:21:11+00:00","description":"Linux sistemlerinde \u00e7al\u0131\u015fan bir uygulama veya komutun davran\u0131\u015f\u0131n\u0131 etkilemek, sistem ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirmek ve otomasyon s\u00fcre\u00e7lerini kolayla\u015ft\u0131rmak i\u00e7in ortam ve kabuk de\u011fi\u015fkenleri hayati bir rol oynar. Bu rehber, Linux i\u015fletim sisteminde bu de\u011fi\u015fkenlerin nas\u0131l okunaca\u011f\u0131n\u0131, ayarlanaca\u011f\u0131n\u0131 ve y\u00f6netilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, hem yeni ba\u015flayanlar\u0131n hem de deneyimli kullan\u0131c\u0131lar\u0131n sistemlerini daha verimli kullanmalar\u0131na olanak tan\u0131yacak. \u0130ster bir geli\u015ftirici olun, ister bir sistem y\u00f6neticisi veya g\u00fcnl\u00fck bir Linux kullan\u0131c\u0131s\u0131, bu bilgiler i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131racakt\u0131r.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/neden-ortam-ve-kabuk-degiskenlerini-bilmelisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Neden Ortam ve Kabuk De\u011fi\u015fkenlerini Bilmelisiniz?"}]},{"@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\/37385","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=37385"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37385\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}