Linux'ta Yerel, Kullanıcı ve Sistem Genelindeki Ortam Değişkenlerini Ayarlama ve Kaldırma


Ortam Değişkenleri, kabukta tanımlanan ve programların yürütme sırasında ihtiyaç duyduğu bazı özel değişkenlerdir. Sistem tanımlı veya kullanıcı tanımlı olabilirler. Sistem tanımlı değişkenler, sistem tarafından belirlenen ve sistem düzeyindeki programlar tarafından kullanılan değişkenlerdir.

Örneğin; PWD komutu, mevcut çalışma dizinini depolamak için kullanılan çok yaygın bir sistem değişkenidir. Kullanıcı tanımlı değişkenler genellikle kullanıcı tarafından geçerli kabuk için geçici olarak veya kalıcı olarak ayarlanır. Ortam değişkenlerini ayarlama ve ayarlamayı kaldırma kavramının tamamı, bazı dosya kümeleri, birkaç komut ve farklı kabuklar etrafında döner.

Daha geniş anlamda bir ortam değişkeni üç tipte olabilir:

1. Yerel Çevre Değişkeni

Geçerli oturum için tanımlanmış bir tane. Bu ortam değişkenleri, ister uzak oturum açma oturumu ister yerel terminal oturumu olsun, yalnızca geçerli oturuma kadar sürer. Bu değişkenler herhangi bir yapılandırma dosyasında belirtilmez ve özel bir komut dizisi kullanılarak oluşturulur ve kaldırılır.

2. Kullanıcı Ortamı Değişkeni

Bunlar, belirli bir kullanıcı için tanımlanan değişkenlerdir ve bir kullanıcı yerel terminal oturumunu kullanarak her oturum açtığında veya bu kullanıcı, uzaktan oturum açma oturumunu kullanarak oturum açtığında yüklenir. Bu değişkenler genellikle şu yapılandırma dosyalarından ayarlanır ve yüklenir: .bashrc, .bash_profile, .bash_login, .profile kullanıcının ana dizininde bulunan dosyalar.

3. Sistem Genelindeki Ortam Değişkenleri

Bunlar sistem genelinde, yani o sistemde bulunan tüm kullanıcılar için mevcut olan ortam değişkenleridir. Bu değişkenler, aşağıdaki dizinlerde ve dosyalarda bulunan sistem çapındaki yapılandırma dosyalarında bulunur: /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Bu değişkenler, sistem her açıldığında ve herhangi bir kullanıcı tarafından yerel olarak veya uzaktan oturum açıldığında yüklenir.

Kullanıcı Genelinde ve Sistem Genelinde Yapılandırma dosyalarını anlama

Burada, yukarıda listelenen ve sistem genelinde veya kullanıcıya özel Ortam Değişkenlerini içeren çeşitli yapılandırma dosyalarını kısaca açıklayacağız.

.bashrc

Bu dosya, kullanıcı her yeni yerel oturum oluşturduğunda, yani basit bir deyişle yeni bir terminal açtığında yüklenen, kullanıcıya özel bir dosyadır. Bu dosyada oluşturulan tüm ortam değişkenleri, her yeni yerel oturum başlatıldığında etkili olur.

.bash_profile

Bu dosya kullanıcıya özel uzaktan oturum açma dosyasıdır. Bu dosyada listelenen ortam değişkenleri, kullanıcı ssh oturumu kullanılarak uzaktan her oturum açtığında çağrılır. Bu dosya mevcut değilse, sistem ya .bash_login ya da .profile dosyalarını arar.

/etc/ortam

Bu dosya, herhangi bir ortam değişkenini oluşturmak, düzenlemek veya kaldırmak için kullanılan sistem çapında bir dosyadır. Bu dosyada oluşturulan ortam değişkenlerine sistem genelinde, her kullanıcı tarafından hem yerel hem de uzaktan erişilebilir.

/etc/bash.bashrc

Sistem genelinde bashrc dosyası. Bu dosya, her kullanıcı için bir kez, o kullanıcı yerel terminal oturumunu her açtığında yüklenir. Bu dosyada oluşturulan ortam değişkenlerine tüm kullanıcılar erişebilir ancak yalnızca yerel terminal oturumu aracılığıyla erişilebilir. Bu makinedeki herhangi bir kullanıcıya uzaktan oturum açma oturumu aracılığıyla uzaktan erişildiğinde, bu değişkenler görünmez.

/etc/profil

Sistem çapında profil dosyası. Bu dosyada oluşturulan tüm değişkenlere sistemdeki her kullanıcı erişebilir, ancak bu yalnızca o kullanıcının oturumunun uzaktan, yani uzaktan oturum açma yoluyla başlatılması durumunda mümkündür. Bu dosyadaki herhangi bir değişkene yerel oturum açma oturumu için, yani kullanıcı yerel sisteminde yeni bir terminal açtığında erişilemez.

Not: Sistem çapında veya kullanıcı çapında yapılandırma dosyaları kullanılarak oluşturulan ortam değişkenleri, bunlar kaldırılarak kaldırılabilir yalnızca bu dosyalardan. Bu dosyalardaki her değişiklikten sonra, ya oturumu kapatıp tekrar giriş yapın ya da değişikliklerin etkili olması için terminalde aşağıdaki komutu yazın:

source <file-name>

Linux'ta Yerel veya Oturum Genelinde Ortam Değişkenlerini Ayarlama veya Ayarlarını Kaldırma

Yerel Ortam Değişkenleri aşağıdaki komutlar kullanılarak oluşturulabilir:

var=value 
OR
export var=value

Bu değişkenler oturum çapındadır ve yalnızca geçerli terminal oturumu için geçerlidir. Bu oturum çapındaki ortam değişkenlerini temizlemek için aşağıdaki komutlar kullanılabilir:

1. env'yi kullanma

Varsayılan olarak "env" komutu tüm mevcut ortam değişkenlerini listeler. Ancak '-i' anahtarıyla birlikte kullanılırsa, tüm ortam değişkenlerini geçici olarak temizler ve tüm ortam değişkenlerinin yokluğunda kullanıcının geçerli oturumda bir komut yürütmesine olanak tanır.

env –i [Var=Value]… command args…

Burada var=value, yalnızca bu komutla kullanmak istediğiniz herhangi bir yerel ortam değişkenine karşılık gelir.

env –i bash

Geçici olarak herhangi bir ortam değişkenine sahip olmayan bash kabuğunu verecektir. Ancak kabuktan çıktığınızda tüm değişkenler geri yüklenir.

2. Ayarlanmamış kullanımı

Yerel ortam değişkenini temizlemenin başka bir yolu da unset komutunu kullanmaktır. Herhangi bir yerel ortam değişkenini geçici olarak ayarlamak için,

unset <var-name>

Burada var-name, ayarını kaldırmak veya temizlemek istediğiniz yerel değişkenin adıdır.

3. Değişken adını ” olarak ayarlayın

Daha az yaygın olan başka bir yol da, temizlemek istediğiniz değişkenin adını '' (Boş) olarak ayarlamaktır. Bu, etkin olduğu geçerli oturum için yerel değişkenin değerini temizler.

NOT – SİSTEM VEYA KULLANICI ORTAMI DEĞİŞKENLERİNİN DEĞERLERİNİ BİLE OYNAYABİLİR VE DEĞİŞTİREBİLİRSİNİZ ANCAK DEĞİŞİKLİKLER YALNIZCA MEVCUT TERMİNAL OTURUMUNDA YANSIYACAKTIR VE KALICI OLMAYACAKTIR.

Linux'ta Kullanıcı Genelinde ve Sistem Genelinde Ortam Değişkenlerinin Nasıl Oluşturulacağını Öğrenin

Bu bölümde Linux'ta yerel, kullanıcı ve sistem çapında ortam değişkenlerini nasıl ayarlayıp kaldıracağımızı aşağıdaki örneklerle öğreneceğiz:

1. Linux'ta Yerel Değişkenleri Ayarlayın ve Ayarlarını Kaldırın

a.) Burada yerel bir değişken VAR1 oluşturup onu herhangi bir değere ayarlıyoruz. Daha sonra, bu yerel değişkeni kaldırmak için unset'i kullanırız ve sonunda o değişken kaldırılır.

VAR1='TecMint is best Site for Linux Articles'
echo $VAR1
unset VAR1
echo $VAR1

b.) Yerel değişken oluşturmanın başka bir yolu da export komutunu kullanmaktır. Oluşturulan yerel değişken mevcut oturum için kullanılabilecektir. Değişkenin ayarını kaldırmak için değişkenin değerini '' olarak ayarlamanız yeterlidir.

export VAR='TecMint is best Site for Linux Articles'
echo $VAR
VAR=
echo $VAR

c.) Burada VAR2 yerel değişkenini oluşturduk ve onu bir değere ayarladık. Daha sonra tüm yerel ve diğer ortam değişkenlerini geçici olarak temizleyen bir komut çalıştırmak için 'env –i' komutunu çalıştırdık. Buradaki komut, diğer tüm ortam değişkenlerini temizleyerek bash kabuğunu çalıştırdı. Çağrılan bash kabuğuna 'exit' girildikten sonra tüm değişkenler geri yüklenir.

VAR2='TecMint is best Site for Linux Articles'
echo $VAR2
env -i bash
echo $VAR2   

2. Linux'ta Kullanıcı Genelinde Ortam Değişkenlerini Ayarlama ve Ayarlarını Kaldırma

a.) Eklemeniz gereken ortam değişkenini dışa aktarmak veya ayarlamak için ana dizininizdeki .bashrc dosyasını değiştirin. Bundan sonra, değişikliklerin etkili olmasını sağlamak için dosyayı kaynaklayın. Daha sonra değişkenin (benim durumumda 'CD') etkili olduğunu göreceksiniz. Bu değişken, bu kullanıcı için her yeni terminal açtığınızda mevcut olacaktır ancak uzaktan oturum açma oturumları için geçerli olmayacaktır.

vi .bashrc

En alttaki .bashrc dosyasına aşağıdaki satırı ekleyin.

export CD='This is TecMint Home'

Şimdi yeni değişiklikleri almak ve test etmek için aşağıdaki komutu çalıştırın.

source .bashrc 
echo $CD

Bu değişkeni kaldırmak için .bashrc dosyasındaki aşağıdaki satırı kaldırın ve yeniden kaynaklayın:

b.) Uzaktan oturum açma oturumlarında (yani uzak sistemden kullanıcıya ssh gönderdiğinizde) kullanılabilecek bir değişken eklemek için .bash_profile dosyasını değiştirin.

vi .bash_profile

En alttaki .bash_profile dosyasına aşağıdaki satırı ekleyin.

export VAR2='This is TecMint Home'

Bu dosyayı tedarik ederken, değişken bu kullanıcıya ssh gönderdiğinizde mevcut olacaktır, ancak herhangi bir yeni yerel terminal açıldığında mevcut olmayacaktır.

source .bash_profile 
echo $VAR2

Burada, VAR2 başlangıçta mevcut değildir ancak localhost'ta kullanıcıya ssh yapıldığında değişken kullanılabilir hale gelir.

ssh tecmint@localhost
echo $VAR2

Bu değişkeni kaldırmak için .bash_profile dosyasında eklediğiniz satırı kaldırın ve dosyanın kaynağını yeniden oluşturun.

NOT: Bu değişkenler, geçerli kullanıcıyla her oturum açtığınızda mevcut olacaktır ancak diğer kullanıcılar için geçerli olmayacaktır.

3. Linux'ta Sistem Genelinde Ortam Değişkenlerini Ayarlama ve Ayarlarını Kaldırma

a.) Sistem genelinde oturum açmayan değişken eklemek için (yani, herhangi biri yeni terminal açtığında tüm kullanıcılar tarafından kullanılabilen ancak makinedeki herhangi bir kullanıcı uzaktan erişildiğinde bu durum geçerli olmayan bir değişken) değişkeni <'ye ekleyin./etc/bash.bashrc dosyası.

export VAR='This is system-wide variable'

Bundan sonra dosyayı kaynaklayın.

source /etc/bash.bashrc 

Artık bu değişken her kullanıcı için yeni bir terminal açtığında kullanılabilecektir.

echo $VAR
sudo su
echo $VAR
su -
echo $VAR

Burada aynı değişken normal kullanıcı için olduğu kadar kök kullanıcı için de mevcuttur. Bunu diğer kullanıcıya giriş yaparak doğrulayabilirsiniz.

b.) Makinenizdeki herhangi bir kullanıcı uzaktan oturum açtığında ancak yerel makinede yeni bir terminal açılmadığında herhangi bir ortam değişkeninin kullanılabilir olmasını istiyorsanız, dosyayı düzenlemeniz gerekir. – '/etc/profile'.

export VAR1='This is system-wide variable for only remote sessions'

Değişkeni ekledikten sonra dosyayı yeniden kaynaklayın. Daha sonra değişken mevcut olacaktır.

source /etc/profile
echo $VAR1

Bu değişkeni kaldırmak için /etc/profile dosyasındaki satırı kaldırın ve yeniden kaynaklayın.

c.) Ancak, hem uzaktan oturum açma oturumlarında hem de yerel oturumlarda (yani yeni bir terminal penceresi açarak) tüm sistem genelinde kullanılabilir olmasını istediğiniz herhangi bir ortamı eklemek istiyorsanız kullanıcılar, değişkeni /etc/environment dosyasına aktarmanız yeterlidir.

export VAR12='I am available everywhere'

Bundan sonra dosyayı kaynaklayın ve değişiklikler etkili olacaktır.

source /etc/environment
echo $VAR12
sudo su
echo $VAR12
exit
ssh localhost
echo $VAR12

Burada, ortam değişkeninin normal kullanıcı, kök kullanıcı ve ayrıca uzaktan oturum açma oturumunda (burada localhost'a) uygun olduğunu görüyoruz.

Bu değişkeni temizlemek için /etc/environment dosyasındaki girişi kaldırın ve yeniden kaynak sağlayın veya tekrar giriş yapın.

NOT: Dosyayı kaynakladığınızda değişiklikler geçerli olur. Ancak değilse, oturumu kapatıp tekrar giriş yapmanız gerekebilir.

Çözüm

Dolayısıyla bunlar ortam değişkenlerini değiştirmenin birkaç yoludur. Aynı şey için yeni ve ilginç püf noktaları bulursanız yorumlarınızda belirtin.