Biến môi trường (environment variable Linux) thường được dùng trong shell Bash để cấu hình các dịch vụ và ứng dụng web. Bài viết này Vietnix sẽ hướng dẫn cách đặt các biến môi trường trong Linux đơn giản nhất.
Environment variable trong Linux là gì?
Biến môi trường trong Linux được hiểu là các cặp giá trị được sử dụng với mục đích lưu trữ thông tin cấu hình và cài đặt hệ thống có thể giúp người dùng và chương trình dễ dàng truy cập và sử dụng thông tin.
![Cách đặt các biến môi trường (Environment Variable) trong Linux 5 Biến môi trường trong Linux](https://static-xf1.vietnix.vn/wp-content/uploads/2024/04/environment-variable-linux.png.webp)
Environment varible được quản lý bởi hệ điều hành Linux, được truy cập và sửa đổi thông tin qua các dòng lệnh hoặc tập tin cấu hình.
Bạn đọc có thể tham khảo qua một số bài viết liên quan về chủ đề Linux mà Vietnix đã tổng hợp:
Cách đặt environment variable Linux
Để đặt một biến môi trường, bạn có thể dùng lệnh export trong Linux kèm theo tên biến để truy cập trong script và cấu hình của shell, đồng thời gán giá trị cho biến đó. Cú pháp sẽ có dạng như sau:
export NAME=VALUE
export JAVA_HOME=/opt/openjdk11
Để xuất giá trị của biến môi trường từ shell, bạn dùng lệnh echo thêm dấu $ vào trước tên biến.
echo $JAVA_HOME
Nếu biến không có giá trị nào thì màn hình sẽ hiển thị một dòng trống.
Bạn đọc có tham qua bài viết Linux Shell và Shell Script để tìm hiểu rõ hơn bạn nhé.
Cách hủy đặt biến môi trường trong Linux
Cách hủy biến môi trường rất đơn giản, chỉ cần dùng lệnh unset kèm theo tên biến cần hủy:
unset VARIABLE_NAME
Giả sử cần hủy đặt biến JAVA_HOME vừa tạo ở trên:
unset JAVA_HOME
Cách hiển thị danh sách tất cả environment variable Linux
Để liệt kê danh sách tất cả biến môi trường hiện có, bạn dùng lệnh set mà không thèm theo tham số nào:
set
Output sẽ có dạng như sau:
BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=([0]="0") BASH_ARGV=() BASH_CMDS=() BASH_COMPLETION_VERSINFO=([0]="2" [1]="8") BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") BASH_VERSION='5.0.3(1)-release' COLUMNS=208 DIRSTACK=() EUID=1000 GROUPS=() HISTCONTROL=ignoreboth HISTFILE=/home/ubuntu/.bash_history HISTFILESIZE=2000 HISTSIZE=1000 HOME=/home/ubuntu HOSTNAME=ubuntu1904 HOSTTYPE=x86_64 IFS=$' \t\n' LANG=en_US.UTF-8 LESSCLOSE='/usr/bin/lesspipe %s %s' LESSOPEN='| /usr/bin/lesspipe %s' LINES=54
Cách đặt biến môi trường cố định cho một user
Khi các biến môi trường được đặt từ shell bằng lệnh export, các biến này sẽ mất khi phiên kết thúc. Vậy nếu bạn cần đặt biến này cố định cho một môi trường của user nhất định thì cần phải làm như thế nào? Trong trường hợp này bạn chỉ cần export biến này từ script của profile người dùng theo các bước dưới đây:
1. Trước tiên, mở profile của user trong một trình soạn thảo bất kỳ:
vi ~/.bash_profile
2. Thêm lệnh export cho mọi biến môi trường cần đặt cố định:
export JAVA_HOME=/opt/openjdk11
3. Cuối cùng là lưu lại các thay đổi để hoàn tất.
Tuy nhiên, việc thêm biến môi trường vào bash profile của một user sẽ chưa export biến này. Các biến môi trường có thể được tự động export trong lần đăng nhập tới, còn nếu muốn export ngay lập tức thì bạn có thể dùng lệnh source như sau:
source ~/.bash_profile
Cách xuất biến môi trường trong Linux
Export là một lệnh shell có sẵn cho Bash, dùng để xuất một biến môi trường để các tiến trình con có thể kế thừa. Để export một biến môi trường, bạn có thể dùng lệnh export khi đặt biến như sau:
export MYVAR="my variable value"
Bên cạnh đó, bạn cũng có thể xem danh sách các biến môi trường đã được export bằng lệnh export:
export # output SHELL=/bin/zsh SHLVL=1 SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/Listeners TERM=xterm-256color TERM_PROGRAM=vscode TERM_PROGRAM_VERSION=1.48.2
Để xem các biến đã được export trong shell hiện tại, bạn thêm flag -p vào lệnh:
export -p
Đặt biến môi trường toàn cục cho mọi user
Một biến vĩnh viễn là biến vẫn tồn tại sau khi reboot hệ thống, có thể được tạo bằng cách thêm vào profile mặc định. Profile này được load bởi mọi user trên hệ thống, trong đó có cả các tài khoản dịch vụ.
Mọi cài đặt profile toàn cục đều được lưu trong thư mục /etc/profile. File này có thể được chỉnh sửa nhưng bạn nên lưu trữ các biến môi trường toàn cục trong thư mục /etc/profile.d – nơi chứa danh sách các file dùng để đặt biến môi trường cho toàn bộ hệ thống.
1. Tạo một file mới trong /etc/profile.d để lưu trữ các biến môi trường toàn cục, giả sử bạn cần tạo một biến cho HTTP_PROXY:
sudo touch /etc/profile.d/http_proxy.sh
2. Tiếp theo, mở profile mặc định trong một trình soạn thảo bất kỳ:
sudo vi /etc/profile.d/http_proxy.sh
3. Bây giờ tên các dòng mới để export biến môi trường trong Linux:
export HTTP_PROXY=http://my.proxy:8080 export HTTPS_PROXY=https://my.proxy:8080 export NO_PROXY=localhost,::1,.example.com
Sau đó lưu lại thay đổi rồi thoát khỏi trình soạn thảo.
Lời kết
Bài viết này đã giới thiệu cách đặt và hướng dẫn một số thao tác cơ bản với environment variable Linux (biến môi trường trong Linux). Các lệnh trong bài viết có thể được áp dụng cho mọi bản phân phối Linux. Nếu có bất kỳ thắc mắc nào thì hãy để lại ở phần comment bên dưới để được hỗ trợ nhanh nhất nhé!