Share to: share facebook share twitter share wa share telegram print page

Env (Unix)

env
YazarRichard Mlynarik,
David MacKenzie,
Assaf Gordon
GeliştiriciFree Software Foundation
İlk yayınlanma1980'ler
İşletim sistemiUnix, Unix-like, Inferno
PlatformÇoklu platform
TürKomut satırı aracı
LisansGPLv3+
Resmî sitesiGNU Coreutils – env


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.[1]

Genel Kullanım

env komutu temel olarak iki ana işlev için kullanılır:

  1. Ortam değişkenlerini listelemek
  2. 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.[2]

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.[3]

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.[4]

Kaynakça

  1. ^ IEEE. "env - POSIX Specification". [1] 3 Haziran 2025 tarihinde Wayback Machine sitesinde arşivlendi.
  2. ^ Python Software Foundation. "PEP 394 – The 'python' Command on Unix-Like Systems." [2] 28 Mayıs 2025 tarihinde Wayback Machine sitesinde arşivlendi.
  3. ^ GNU Project. "Invoking env." *GNU Coreutils Manual*. [3] 17 Mart 2023 tarihinde Wayback Machine sitesinde arşivlendi.
  4. ^ Red Hat. "Security Considerations for Shebangs with env"

Kaynak hatası: <references> grubunda "" içinde tanımlanan "POSIX" adlı <ref> etiketinin içeriği yok. (Bkz: Kaynak gösterme)
Kaynak hatası: <references> grubunda "" içinde tanımlanan "GNUmanual" adlı <ref> etiketinin içeriği yok. (Bkz: Kaynak gösterme)
Kaynak hatası: <references> grubunda "" içinde tanımlanan "PythonPEP" adlı <ref> etiketinin içeriği yok. (Bkz: Kaynak gösterme)
Kaynak hatası: <references> üzerinde tanımlanan "TLDP" adındaki <ref> etiketi önceki metinde kullanılmıyor. (Bkz: Kaynak gösterme)
Kaynak hatası: <references> grubunda "" içinde tanımlanan "RedHat" adlı <ref> etiketinin içeriği yok. (Bkz: Kaynak gösterme)

Kaynakça

Vikikitap
Vikikitap
Vikikitapta bu konu hakkında daha fazla bilgi var:
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya