env Komutu Teknik Başvuru Kılavuzu (Cheatsheet)
Zorluk Seviyesi: Intermediate
env komutu, bir programın ortam değişkenlerini görüntülemek, ayarlamak veya çalıştırmak için kullanılır. Özellikle bir komutu mevcut kabuk ortamını etkilemeden izole edilmiş bir ortamda çalıştırmak gerektiğinde kritik öneme sahiptir.
Temel Sözdizimi ve Genel Kullanım
env komutunun en temel işlevi, mevcut ortam değişkenlerini listelemektir. Bu, sistemin o anki yapılandırmasını anlamak için ilk adımdır.
- Mevcut Ortamı Görüntüleme: Mevcut tüm ortam değişkenlerini standart çıktıya yazdırır.
- Yardım ve Sürüm Bilgisi: Komutun seçeneklerini veya sürüm numarasını kontrol etmek için kullanılır.
- NUL Ayraçlı Çıktı: Özellikle komut dosyalarında güvenli ayrıştırma için değişkenleri NUL baytları ile ayırarak çıktı verir.
env
env --help
env --version
env -0
Ortam Değişkenlerini İnceleme ve Filtreleme
Tüm ortam değişkenlerini listelemek yerine, belirli değişkenleri bulmak için grep gibi araçlarla birlikte kullanılabilir. Değişken adları genellikle büyük harfle yazılır ve bir eşittir işaretiyle başlar.
- Tüm değişkenleri alfabetik olarak sıralamak için:
env | sort - Yalnızca
PATHdeğişkenini bulmak için:env | grep '^PATH=' - Kullanıcının ana dizinini kontrol etmek için:
env | grep '^HOME='
Geçici Değişkenlerle Komut Çalıştırma
env'in en güçlü yönlerinden biri, bir komutu çalıştırmadan hemen önce değişkenleri tanımlayabilmenizdir. Bu değişkenler, yalnızca o komutun ve onun başlattığı alt süreçlerin ömrü boyunca geçerlidir; mevcut kabuğunuzu etkilemez.
VAR=value env command
VAR1=dev VAR2=1 env command
env PATH=/custom/bin:$PATH command
env LANG=C command
İpucu: Bir komutun PATH'ini geçici olarak değiştirmek, o komutu sistem genelindeki yapılandırmayı bozmadan farklı bir sürümünü çalıştırmak için yaygın bir tekniktir.
Değişkenleri Temizleme veya Kaldırma
Bazen bir komutu, mevcut ortamın minimum bir alt kümesiyle çalıştırmak istenir (örneğin, güvenlik veya uyumluluk testleri için). -i (ignore) ve -u (unset) seçenekleri bu amaçla kullanılır.
- Boş Ortamda Çalıştırma (
-i): Mevcut tüm değişkenleri kaldırır ve yalnızcaPATHgibi temel değişkenleri (varsayılan olarak) içeren boş bir ortamla komutu başlatır. - Belirli Bir Değişkeni Kaldırma (
-u): Komutu çalıştırırken belirli bir değişkenin (örneğin, proxy ayarları) ortamdan çıkarılmasını sağlar.
env -i command // Tamamen boş bir ortamda çalıştırır (PATH genellikle eklenmelidir)
env -i PATH=/usr/bin:/bin bash --noprofile --norc
env -u http_proxy command // http_proxy değişkenini kaldırır
Sık Kullanılan Ortam Değişkenleri
Aşağıdaki değişkenler genellikle env ile incelenen veya geçici olarak ayarlanan temel sistem yapılandırma noktalarıdır:
PATH: Komutların aranacağı dizinler.HOME: Kullanıcının ana dizini.LANG: Yerel ayar ve dil ayarları.TZ: Sistem saat dilimi.
Sorun Giderme
env kullanımı sırasında karşılaşılabilecek yaygın durumlar ve çözümleri:
| Sorun | Çözüm/Kontrol |
|---|---|
| Geçici değişken kalıcı olmuyor. | env VAR=value command yalnızca o komutu etkiler. Kabuğu etkilemek için export kullanın. |
env -i sonrası komut bulunamıyor. |
PATH değişkenini manuel olarak ekleyin (örn: env -i PATH=/usr/bin:/bin command). |
| Bir değişken kabukta hala görünüyor. | env mevcut kabuğu değiştirmez. Değişiklikler yalnızca alt süreçler için geçerlidir. |



