Dalam sistem berbasis Linux dan Unix, variabel lingkungan adalah sekumpulan nilai bernama dinamis, yang disimpan di dalam sistem yang digunakan oleh aplikasi yang diluncurkan dalam cangkang atau subkulit. Dengan kata sederhana, variabel lingkungan adalah variabel dengan nama dan nilai terkait.
Variabel lingkungan memungkinkan Anda untuk menyesuaikan cara kerja sistem dan perilaku aplikasi pada sistem. Misalnya, variabel lingkungan dapat menyimpan informasi tentang editor teks atau browser default, jalur ke file yang dapat dieksekusi, atau lokal sistem dan pengaturan tata letak keyboard.
Dalam panduan ini, kami akan menjelaskan cara membaca dan menyetel variabel lingkungan dan shell.
Variabel Lingkungan dan Variabel Shell #
Variabel memiliki format berikut:
KEY=value
KEY="Some other value"
KEY=value1:value2
- Nama variabel peka huruf besar/kecil. Berdasarkan konvensi, variabel lingkungan harus memiliki nama UPPER CASE.
- Saat menetapkan beberapa nilai ke variabel, mereka harus dipisahkan dengan tanda titik dua
:
karakter. - Tidak ada spasi di sekitar sama dengan
=
simbol.
Variabel dapat diklasifikasikan menjadi dua kategori utama, variabel lingkungan, dan variabel shell.
Variabel lingkungan adalah variabel yang tersedia di seluruh sistem dan diwarisi oleh semua proses dan shell anak yang dihasilkan.
Variabel cangkang adalah variabel yang hanya berlaku untuk instance shell saat ini. Setiap shell seperti zsh
dan bash
, memiliki set variabel shell internalnya sendiri.
Ada beberapa perintah yang tersedia yang memungkinkan Anda untuk membuat daftar dan mengatur variabel lingkungan di Linux:
env
– Perintah ini memungkinkan Anda untuk menjalankan program lain di lingkungan khusus tanpa mengubah yang sekarang. Saat digunakan tanpa argumen, ia akan mencetak daftar variabel lingkungan saat ini.printenv
– Perintah mencetak semua atau variabel lingkungan yang ditentukan.set
– Perintah mengatur atau menghapus variabel shell. Ketika digunakan tanpa argumen, ia akan mencetak daftar semua variabel termasuk variabel lingkungan dan shell, dan fungsi shell.unset
– Perintah menghapus variabel shell dan environment.export
– Perintah mengatur variabel lingkungan.
Mencantumkan Variabel Lingkungan #
Perintah yang paling sering digunakan untuk menampilkan variabel lingkungan adalah printenv
. Jika nama variabel diteruskan sebagai argumen ke perintah, hanya nilai variabel yang ditampilkan. Jika tidak ada argumen yang ditentukan, printenv
mencetak daftar semua variabel lingkungan, satu variabel per baris.
Misalnya, untuk menampilkan nilai HOME
variabel lingkungan yang akan Anda jalankan:
printenv HOME
Output akan mencetak jalur pengguna yang saat ini masuk:
/home/linuxize
Anda juga dapat meneruskan lebih dari satu argumen ke printenv
perintah:
printenv LANG PWD
en_US
/home/linuxize
Jika Anda menjalankan printenv
atau env
perintah tanpa argumen apa pun itu akan menampilkan daftar semua variabel lingkungan:
printenv
Outputnya akan terlihat seperti ini:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;...
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US
S_COLORS=auto
XDG_SESSION_ID=5
USER=linuxize
PWD=/home/linuxize
HOME=/home/linuxize
SSH_CLIENT=192.168.121.1 34422 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
SSH_TTY=/dev/pts/0
MAIL=/var/mail/linuxize
TERM=xterm-256color
SHELL=/bin/bash
SHLVL=1
LANGUAGE=en_US:
LOGNAME=linuxize
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/printenv
Berikut adalah beberapa variabel lingkungan yang paling umum:
USER
- Pengguna yang masuk saat ini.HOME
- Direktori beranda pengguna saat ini.EDITOR
- Editor file default yang akan digunakan. Ini adalah editor yang akan digunakan saat Anda mengetikedit
di terminal Anda.SHELL
- Jalur shell pengguna saat ini, seperti bash atau zsh.LOGNAME
- Nama pengguna saat ini.PATH
- Daftar direktori yang akan dicari saat menjalankan perintah. Saat Anda menjalankan perintah, sistem akan mencari direktori tersebut dalam urutan ini dan menggunakan yang pertama kali ditemukan.LANG
- Pengaturan lokal saat ini.TERM
- Emulasi terminal saat ini.MAIL
- Lokasi penyimpanan email pengguna saat ini.
printenv
dan env
perintah hanya mencetak variabel lingkungan. Jika Anda ingin mendapatkan daftar semua variabel, termasuk lingkungan, shell dan variabel, dan fungsi shell, Anda dapat menggunakan set
perintah:
set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
Perintah akan menampilkan daftar besar semua variabel sehingga Anda mungkin ingin menyalurkan output ke less
perintah.
set | less
Anda juga dapat menggunakan perintah echo untuk mencetak variabel shell. Misalnya, untuk mencetak nilai BASH_VERSION
variabel yang akan Anda jalankan:
echo $BASH_VERSION
4.4.19(1)-release
Mengatur Variabel Lingkungan #
Untuk lebih menggambarkan perbedaan antara variabel Shell dan Lingkungan, kita akan mulai dengan menyetel Variabel Shell dan kemudian beralih ke variabel Lingkungan.
Untuk membuat variabel shell baru dengan nama MY_VAR
dan nilai Linuxize
cukup ketik:
MY_VAR='Linuxize'
Anda dapat memverifikasi bahwa variabel disetel dengan menggunakan echo $MY_VAR
memfilter output dari perintah set dengan grepset | grep MY_VAR
:
echo $MY_VAR
Linuxize
Gunakan printenv
perintah untuk memeriksa apakah variabel ini merupakan variabel lingkungan atau bukan:
printenv MY_VAR
Output akan kosong yang memberitahu kita bahwa variabel tersebut bukan variabel lingkungan.
Anda juga dapat mencoba mencetak variabel di shell baru dan Anda akan mendapatkan output kosong.
bash -c 'echo $MY_VAR'
export
perintah digunakan untuk mengatur variabel Lingkungan.
Untuk membuat variabel lingkungan cukup ekspor variabel shell sebagai variabel lingkungan:
export MY_VAR
Anda dapat memeriksanya dengan menjalankan:
printenv MY_VAR
Linuxize
Jika Anda mencoba mencetak variabel di shell baru kali ini Anda akan mendapatkan nama variabel yang tercetak di terminal Anda:
bash -c 'echo $MY_VAR'
Linuxize
Anda juga dapat mengatur variabel lingkungan dalam satu baris:
export MY_NEW_VAR="My New Var"
Variabel Lingkungan yang dibuat dengan cara ini hanya tersedia di sesi saat ini. Jika Anda membuka shell baru atau jika Anda logout semua variabel akan hilang.
Variabel Lingkungan Persisten #
Untuk membuat variabel Lingkungan persisten, Anda perlu mendefinisikan variabel tersebut di file konfigurasi bash. Di sebagian besar distribusi Linux saat Anda memulai sesi baru, variabel lingkungan dibaca dari file berikut:
-
/etc/environment
- Gunakan file ini untuk mengatur variabel lingkungan di seluruh sistem. Variabel dalam file ini diatur dalam format berikut:FOO=bar
VAR_TEST="Test Var"
-
/etc/profile
- Variabel yang diatur dalam file ini dimuat setiap kali shell login bash dimasukkan. Saat mendeklarasikan variabel lingkungan dalam file ini, Anda perlu menggunakanexport
perintah:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
-
File konfigurasi khusus shell per pengguna. Misalnya, jika Anda menggunakan Bash, Anda dapat mendeklarasikan variabel di
~/.bashrc
:export PATH="$HOME/bin:$PATH"
Untuk memuat variabel lingkungan baru ke dalam sesi shell saat ini gunakan source
perintah:
source ~/.bashrc
Kesimpulan #
Dalam panduan ini, kami telah menunjukkan kepada Anda cara mengatur dan membuat daftar variabel lingkungan dan shell.
Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.