Variabel lingkungan ada untuk meningkatkan dan menstandardisasi lingkungan shell Anda di sistem Linux. Ada variabel lingkungan standar yang disiapkan sistem untuk Anda, tetapi Anda juga dapat mengatur variabel lingkungan Anda sendiri, atau secara opsional mengubah variabel default untuk memenuhi kebutuhan Anda.
[ Unduhan gratis:Lembar contekan perintah Linux tingkat lanjut. ]
Dimulai dengan env
perintah
Jika Anda ingin melihat variabel lingkungan Anda, gunakan env
perintah dan cari kata dalam huruf besar semua di bagian paling kiri keluaran. Ini adalah variabel lingkungan Anda, dan nilainya ada di sebelah kanan:
$ env
LS_COLORS=(long output)
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=rhel8t
XDG_SESSION_ID=5
USER=khess
SELINUX_ROLE_REQUESTED=
PWD=/home/khess
HOME=/home/khess
SSH_CLIENT=192.168.1.94 53911 22
SELINUX_LEVEL_REQUESTED= XDG_DATA_DIRS=/home/khess/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_TTY=/dev/pts/1
MAIL=/var/spool/mail/khess
TERM=xterm-256color
SHELL=/bin/bash SELINUX_USE_CURRENT_RANGE=
SHLVL=1
LOGNAME=khess
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
HISTSIZE=1000
LESSOPEN=||/usr/bin/lesspipe.sh %s _=/usr/bin/env
Saya telah menghilangkan output dari LS_COLORS
variabel karena sangat panjang. Coba perintah ini di sistem Anda untuk melihat seperti apa tampilan output lengkapnya.
Banyak variabel lingkungan ditetapkan dan kemudian diekspor dari /etc/profile
file dan /etc/bashrc
mengajukan. Ada baris di /etc/profile
yang berbunyi:
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
Untuk membuat perubahan permanen pada variabel lingkungan untuk semua akun baru, buka /etc/skel
Anda file, seperti .bashrc
, dan ubah yang sudah ada atau masukkan yang baru. Saat Anda membuat pengguna baru, /etc/skel
ini file akan disalin ke direktori home pengguna baru.
Menjelajahi level shell (SHLVL
)
Untuk memanggil nilai variabel lingkungan tunggal, masukkan perintah berikut, menggunakan SHLVL
(Tingkat Shell) sebagai contoh:
$ echo $SHLVL 1
Variabel ini berubah tergantung pada berapa banyak subkulit yang Anda buka. Misalnya, masukkan bash
dua kali dan kemudian berikan perintah lagi:
$ bash
$ bash echo $SHLVL 3
Tingkat shell tiga berarti Anda memiliki dua subkulit, jadi ketik exit
dua kali untuk kembali ke shell biasa Anda.
[Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.]
Memanipulasi PATH
variabel
PATH
variabel berisi jalur pencarian untuk mengeksekusi perintah dan skrip. Untuk melihat PATH
. Anda , masukkan:
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
Ubah sementara PATH
Anda dengan memasukkan perintah berikut untuk menambahkan /opt/bin
:
$ PATH=$PATH:/opt/bin
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
Perubahan bersifat sementara untuk sesi saat ini. Itu tidak permanen karena tidak dimasukkan ke dalam .bashrc
mengajukan. Untuk membuat perubahan permanen, masukkan perintah PATH=$PATH:/opt/bin
ke .bashrc
direktori home Anda berkas.
Saat Anda melakukan ini, Anda membuat PATH
baru variabel dengan menambahkan direktori ke PATH
saat ini variabel, $PATH
. Tanda titik dua (:
) memisahkan PATH
entri.
Menguraikan $USER
, $PWD
, dan $LOGNAME
Saya punya teori yang menurut saya telah terhalau oleh diri saya sendiri yang baik. Teori saya adalah bahwa perintah pwd
dan whoami
mungkin baru saja membaca dan mengulang isi variabel shell $PWD
dan $USER
atau $LOGNAME
, masing-masing. Yang mengejutkan saya, setelah melihat kode sumbernya, ternyata tidak. Mungkin saya harus menulis ulang mereka untuk melakukan hal itu. Tidak ada alasan untuk menambahkan beberapa pustaka dan hampir 400 baris kode C untuk menampilkan direktori kerja. Anda cukup membaca $PWD
dan gema itu ke layar (stdout). Hal yang sama berlaku untuk whoami
dengan salah satu $USER
atau $LOGNAME
.
Jika Anda ingin melihat sendiri kode sumbernya, ada di GitHub dan tempat lain. Jika Anda menemukan bahwa program ini (atau yang lain) menggunakan variabel shell, saya ingin mengetahuinya. Memang, saya tidak begitu pandai membaca kode sumber C, jadi mereka bisa menggunakan variabel shell dengan sangat baik dan saya tidak akan pernah mengetahuinya. Mereka sepertinya tidak mengerti dari apa yang saya baca dan pahami.
Memainkan $SHELL
permainan
Dalam tinjauan umum variabel lingkungan terakhir ini, saya ingin menunjukkan kepada Anda bagaimana $SHELL
variabel berguna. Anda tidak harus tetap berada di shell default Anda, yang kemungkinan besar adalah Bash. Anda dapat masuk dan bekerja di shell apa pun yang diinstal pada sistem. Untuk mengetahui shell mana yang diinstal pada sistem Anda, gunakan perintah berikut:
$ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash
Semua itu sebenarnya Bash, jadi jangan terlalu bersemangat. Jika Anda beruntung, Anda mungkin juga melihat entri untuk /bin/tcsh
, /bin/csh
, /bin/mksh
, /bin/ksh
, dan /bin/rksh
.
Anda dapat menggunakan salah satu dari cangkang ini dan memiliki hal-hal berbeda yang terjadi di masing-masing cangkang jika Anda menginginkannya. Namun, katakanlah Anda adalah admin Solaris dan ingin menggunakan cangkang Korn. Anda dapat mengubah shell default Anda menjadi /bin/ksh
menggunakan chsh
perintah:
$ chsh Changing shell for khess. New shell [/bin/bash]: /bin/ksh Password: Shell changed.
Sekarang, jika Anda mengetik echo $SHELL
, jawabannya adalah /bin/bash
, jadi Anda harus logout dan login kembali untuk melihat perubahannya. Setelah logout dan login, Anda akan menerima respons berbeda untuk echo $SHELL
.
Anda dapat memasukkan shell lain dan echo $SHELL
harus laporkan shell Anda saat ini dan $SHLVL
, yang akan membuat Anda tetap berorientasi pada seberapa dalam Anda.
Menyetel variabel lingkungan Anda sendiri
Anda dapat mengatur variabel Anda sendiri di baris perintah per sesi, atau menjadikannya permanen dengan menempatkannya ke dalam ~/.bashrc
file, ~/.profile
, atau file startup mana pun yang Anda gunakan untuk shell default Anda. Pada baris perintah, masukkan variabel lingkungan Anda dan nilainya seperti yang Anda lakukan sebelumnya saat mengubah PATH
variabel.
Menutup
Variabel shell atau lingkungan sangat membantu pengguna, sysadmin, dan programmer. Mereka berguna pada baris perintah dan skrip. Saya telah menggunakannya selama bertahun-tahun untuk banyak tujuan yang berbeda, dan meskipun beberapa dari mereka mungkin sedikit tidak konvensional, mereka bekerja dan masih melakukannya. Buat sendiri atau gunakan yang diberikan kepada Anda oleh sistem dan aplikasi yang diinstal. Mereka benar-benar dapat memperkaya pengalaman pengguna Linux Anda.
Sebagai catatan tambahan tentang variabel dan shell, apakah ada yang berpikir bahwa mereka yang memprogram dalam JSON hanya boleh menggunakan Bourne Shell? Diskusikan.