Env (Unix)

env, Unix ve Unix-benzeri işletim sistemlerinde yer alan bir kabuk komutudur. POSIX standardı kapsamında tanımlanmıştır ve genellikle çevresel değişkenleri listelemek veya belirli bir komutu modifiye edilmiş bir ortam altında çalıştırmak için kullanılır.IEEE. "env - POSIX Specification".  

 Genel Kullanım 
env komutu temel olarak iki ana işlev için kullanılır:
 Ortam değişkenlerini listelemek
 Belirli bir komutu, geçici olarak değiştirilmiş bir çevre değişkeni ortamı altında çalıştırmak

Varsayılan olarak hiçbir argüman verilmediğinde, env mevcut ortam değişkenlerini anahtar-değer çiftleri biçiminde standart çıktıya yazar.

$ env
PATH=/usr/bin:/bin
HOME=/home/kullanici
LANG=en_US.UTF-8
...

Alternatif olarak, bir veya daha fazla `anahtar=değer` çiftinden sonra gelen bir komut belirterek bu komutun sadece bu geçici ortam altında çalıştırılması sağlanabilir:

$ env VAR1=foo VAR2=bar ./uygulama

Bu, kalıcı olarak sistem ortamını değiştirmeden belirli görevleri gerçekleştirmek için oldukça kullanışlıdır.

 Shebang Kullanımı 
env komutunun önemli bir kullanım alanı, Unix sistemlerde kullanılan shebang (`#!`) yapısında yorumlayıcının yolunu belirtmek için tercih edilmesidir. Bu kullanımda env, sistemin PATH ortam değişkeni içinde yorumlayıcıyı bulur:

#!/usr/bin/env python3

Bu yöntem, yorumlayıcının sabit bir konuma bağımlı kalmadan çalışmasını sağlar, böylece betiklerin taşınabilirliği artar.Python Software Foundation. "PEP 394 – The 'python' Command on Unix-Like Systems."  

 POSIX Uyumluluğu 
env komutu POSIX standardına dahildir. POSIX'e uygun sistemlerde aşağıdaki kullanım garantilenmiştir:

env [name=value]... [utility [argument...]]

Bazı varyantlar GNU genişletmeleri içerir (örneğin `-u` ile bir değişkeni ortamdan çıkarmak gibi).

 Seçenekler 
GNU coreutils versiyonu şu anahtarları destekler:
 `-u`, `--unset=VAR` – Ortamdan belirtilen değişkeni çıkarır
 `-i`, `--ignore-environment` – Tüm mevcut çevre değişkenlerini temizleyip sadece belirttiklerini kullanır
 `--help` – Yardım mesajı gösterir
 `--version` – Sürüm bilgisini gösterir

 Uygulama ve Uyumluluk 
env komutu GNU Core Utilities (coreutils) paketi içerisinde yer alır. FreeBSD, OpenBSD, NetBSD, macOS, AIX, Solaris, Inferno gibi birçok sistemde farklı versiyonları bulunur. Genellikle `/usr/bin/env` dizininde yer alır.

 Tarihçe 
env komutunun geçmişi 1980'li yıllara kadar uzanır. GNU versiyonu ilk olarak David MacKenzie tarafından yazılmış ve Free Software Foundation tarafından sürdürülebilir hale getirilmiştir.GNU Project. "Invoking env." *GNU Coreutils Manual*.  

 Güvenlik Notları 
Yorumlayıcı çağrılarında `env` kullanımı sistem PATH değişkenine bağlı olduğundan, sistemde düşük güvenlikli veya sahte yorumlayıcılar bulunuyorsa riskli olabilir. Bu nedenle bazı sistem yöneticileri statik yollarla (`#!/usr/bin/python3` gibi) yorumlayıcı kullanmayı tercih eder.Red Hat. "Security Considerations for Shebangs with env"

 Kaynakça 
The Linux Documentation Project. "Linux Environment Variables."  

Kaynakça

Dış bağlantılar



 env —GNU coreutils'teki kılavuz sayfası.






Kategori:Unix yazılımları
Kategori:Linux
Kategori:Inferno komutları