Linux'ta env Komutu: Ortam Değişkenlerini Yönetme ve Çalıştırma

Linux sistemlerde env komutunu kullanarak ortam değişkenlerini nasıl listeleyeceğinizi, değiştireceğinizi ve temiz bir ortamda program çalıştıracağınızı öğrenin.

L
Linuxize
26 görüntülenme
Linux'ta env Komutu: Ortam Değişkenlerini Yönetme ve Çalıştırma

Giriş

Linux işletim sistemlerinde env komutu, ortam değişkenlerini yönetmek ve programları belirli bir ortam yapılandırmasıyla çalıştırmak için kullanılan kritik bir araçtır. Mevcut oturumdaki değişkenleri listelemek, geçici değişkenlerle komut çalıştırmak veya betikleri (script) taşınabilir hale getirmek için kullanılır.

Temel Sözdizimi

env [SEÇENEKLER] [İSİM=DEĞER]... [KOMUT [ARGÜMANLAR]]

Ortam Değişkenlerini Listeleme

Herhangi bir argüman kullanılmadan çalıştırıldığında, env mevcut oturumdaki tüm ortam değişkenlerini satır satır listeler. Bu, sistem yapılandırmasını incelemek için hızlı bir yöntemdir.

env

Komutları Değiştirilmiş Değişkenlerle Çalıştırma

env komutunun en güçlü yanı, ana kabuğunuzu (shell) etkilemeden, sadece çalıştırılan komuta özel değişkenler atayabilmesidir.

  1. Terminalinizi açın.
  2. Aşağıdaki komutu kullanarak belirli bir değişkenle işlem yapın:
env LANG=C sort dosya.txt
İpucu: Bu yöntem, mevcut kabuğunuzdaki LANG değerini değiştirmez; sadece sort komutu için geçerli olur.

Temiz Bir Ortamda Çalıştırma

Bazen bir betiğin veya programın, sistemdeki mevcut değişkenlerden (PATH, HOME vb.) etkilenip etkilenmediğini test etmeniz gerekebilir. -i (ignore-environment) parametresi, tüm değişkenleri temizleyerek komutu boş bir ortamda başlatır.

env -i bash -c 'env'

Shebang Satırlarında Kullanım

Betiklerin en üstünde yer alan shebang satırlarında env kullanmak, betiğin taşınabilirliğini artırır. Örneğin, #!/bin/bash yerine #!/usr/bin/env bash kullanmak, bash'in sistemde nerede kurulu olduğuna bakılmaksızın PATH üzerinden bulunmasını sağlar.

Sık Kullanılan Seçenekler

  • -i: Ortamı tamamen temizler.
  • -u: Belirtilen değişkeni ortamdan kaldırır (unset).
  • -C: Komutu çalıştırmadan önce çalışma dizinini değiştirir.
  • -0: Çıktıları NUL karakteri ile ayırır (xargs ile kullanım için idealdir).

Sıkça Sorulan Sorular

env ile export arasındaki fark nedir? export komutu, değişkeni mevcut kabuk oturumu için kalıcı hale getirir. env ise sadece tek bir komutun çalışması süresince geçerli olan geçici bir ortam oluşturur.

Neden -i kullanmalıyım? Güvenlik gerektiren durumlarda veya bir uygulamanın dış değişkenlere bağımlılığını test ederken, temiz bir ortam sağlamak hata ayıklamayı kolaylaştırır.

Kaynak

Linuxize