Environment Variables — Terminal

Apa itu Environment Variables? Environment variables (variabel lingkungan) adalah pasangan key-value yang menyimpan konfigurasi untuk sistem operasi dan aplikas

Apa itu Environment Variables?

Environment variables (variabel lingkungan) adalah pasangan key-value yang menyimpan konfigurasi untuk sistem operasi dan aplikasi. Mereka adalah cara aman untuk menyimpan informasi sensitif dan konfigurasi yang berubah antar environment.

Mengapa Penting?

Melihat Environment Variables

# Tampilkan semua env vars
env
# atau
printenv

# Tampilkan satu variabel
echo $HOME
# /home/budi

echo $PATH
# /usr/local/bin:/usr/bin:/bin:...

echo $USER
# budi

# Cari variabel tertentu
env | grep NODE
# NODE_ENV=development

Variabel Bawaan yang Penting

Variable Isi
$HOME Home directory user
$USER Username saat ini
$PATH Daftar direktori untuk mencari program
$PWD Direktori kerja saat ini
$SHELL Shell yang digunakan
$LANG Bahasa dan encoding
$EDITOR Text editor default

Membuat Environment Variable

# Set untuk session saat ini saja
export API_KEY="sk-abc123"
export NODE_ENV="development"
export PORT=3000

echo $API_KEY    # sk-abc123
echo $NODE_ENV   # development

# Set hanya untuk satu perintah
NODE_ENV=production npm run build
# NODE_ENV hanya "production" selama perintah npm berjalan

# Tanpa export — hanya variable biasa (tidak diwariskan ke child process)
MY_VAR="hello"
# child process TIDAK bisa akses $MY_VAR

$PATH — Mencari Program

$PATH adalah variabel terpenting. Berisi daftar direktori (dipisahkan :) di mana shell mencari program:

echo $PATH
# /usr/local/bin:/usr/bin:/bin:/home/budi/.local/bin

# Tambahkan direktori ke PATH
export PATH="$HOME/.local/bin:$PATH"

# Cek di mana sebuah program ditemukan
which node
# /usr/local/bin/node

File Konfigurasi Shell

Env vars yang di-set dengan export hilang saat terminal ditutup. Untuk membuatnya permanen, tambahkan ke file konfigurasi:

# Untuk bash
~/.bashrc      # setiap interactive shell
~/.bash_profile # saat login

# Untuk zsh
~/.zshrc       # setiap interactive shell

# Contoh isi .bashrc
export NODE_ENV="development"
export EDITOR="code"
export PATH="$HOME/.npm-global/bin:$PATH"

Setelah mengedit, muat ulang:

source ~/.bashrc
# atau
source ~/.zshrc

File .env di Project

Standar di banyak framework (Laravel, Node.js, React):

# .env file
DATABASE_URL=postgres://user:pass@localhost/mydb
API_KEY=sk-abc123
JWT_SECRET=supersecret
PORT=3000

PENTING: Jangan pernah commit .env ke Git! Tambahkan ke .gitignore:

echo ".env" >> .gitignore

Tips Keamanan

  1. Jangan hardcode secret di source code
  2. Gunakan .env.example untuk template (tanpa nilai sensitif)
  3. Jangan echo secret ke log atau terminal bersama
  4. Gunakan tool seperti direnv atau dotenv untuk manajemen env vars
  5. Rotate API key dan secret secara berkala

Yang akan kamu pelajari