openplanning

Thiết lập biến môi trường trên Ubuntu

  1. Liệt kê các biến môi trường
  2. Kiểm tra một biến môi trường cụ thể
  3. Thiết lập các biến môi trường tạm thời
  4. Thiết lập các biến môi trường vĩnh cửu toàn hệ thống
  5. Thiết lập biến môi trường vĩnh cửu cho người dùng cụ thể
Các biến môi trường là các biến toàn cục được sử dụng bởi người dùng và các tiến trình trong hệ điều hành. Trong Ubuntu, có hai loại biến môi trường là biến môi trường tạm thời và biến môi trường vĩnh cửu (permanent).
Biến môi trường vĩnh cửu cũng được chia làm 2 loại đó là:
  • Biến môi trường vĩnh cửu toàn hệ thống (System-wide environment variables)
  • Biến môi trường vĩnh cửu dành cho người dùng cụ thể.
Trong bài viết này tôi sẽ hướng dẫn bạn xem, thêm, cập nhập và xoá các biến môi trường trong Ubuntu.

1. Liệt kê các biến môi trường

Để liệt kê các biến môi trường hiện thời sử dụng lệnh dưới đây trong Terminal:
printenv
Kết quả bạn nhận được:
karakol@karakol-VirtualBox:~$ printenv
SHELL=/bin/bash
SESSION_MANAGER=local/karakol-VirtualBox:@/tmp/.ICE-unix/1597,unix/karakol-VirtualBox:/tmp/.ICE-unix/1597
QT_ACCESSIBILITY=1
COLORTERM=truecolor
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
SSH_AGENT_LAUNCHER=gnome-keyring
XDG_MENU_PREFIX=gnome-
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GNOME_SHELL_SESSION_MODE=ubuntu
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
XMODIFIERS=@im=ibus
DESKTOP_SESSION=ubuntu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
GDMSESSION=ubuntu
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
_=/usr/bin/printenv

2. Kiểm tra một biến môi trường cụ thể

Nếu bạn muốn hiển thị giá trị của một biến môi trường cụ thể chỉ cần sử dụng lệnh echo:
echo $[variable_name]
Ví dụ:
karakol@karakol-VirtualBox:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

3. Thiết lập các biến môi trường tạm thời

Biến môi trường tạm thời được được thiết lập trong một phiên làm việc và tồn tại trong phiên làm việc đó, nó sẽ bị loại bỏ sau khi phiên làm việc kết thúc.
Khi bạn mở Terminal và thiết lập một biến môi trường, nó chỉ tồn tại trong cửa sổ Terminal này, và không được chia sẻ với các cửa sổ Terminal khác. Biến môi trường tạm thời có ích để bạn không phải gõ cùng một giá trị nhiều lần khi làm việc với Terminal.
export [variable_name]=[variable_value]
Ví dụ, thiết lập một biến môi trường, và xem giá trị của nó:
karakol@karakol-VirtualBox:~$ export greeting="Hello Everybody"
karakol@karakol-VirtualBox:~$ echo $greeting
Hello Everybody
karakol@karakol-VirtualBox:~$ export greeting2=Hi
karakol@karakol-VirtualBox:~$ echo $greeting2
Hi
Ví dụ, thêm đường dẫn một thư mục vào biến môi trường PATH hiện tại của hệ thống.
karakol@karakol-VirtualBox:~$ export PATH=/Users/test/test_folder:$PATH
karakol@karakol-VirtualBox:~$ echo $PATH
/Users/test/test_folder:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

4. Thiết lập các biến môi trường vĩnh cửu toàn hệ thống

Có hai loại biến môi trường vĩnh cửu trong Ubuntu:
  • Biến môi trường vĩnh cửu toàn hệ thống (dành cho tất cả người dùng).
  • Biến môi trường vĩnh cửu dành cho một người dùng cụ thể.
Các biến môi trường vĩnh cửu toàn hệ thống (system-wide permanent environment variables) được lưu trữ trong file /etc/profile.
Bạn có thể sử dụng lệnh vim hoặc nano để sửa đổi nội dung của file này:
sudo nano /etc/profile
  • Ctrl + O --> Save
  • Ctrl + X --> Exit
Chú ý: Trong một vài phiên bản Ubuntu, các biến môi trường trong file không được đọc mỗi khi bạn bắt đầu một phiên làm việc mới. Trong trường hợp đó, mỗi khi bắt đầu một phiên làm việc mới bạn phải đọc file này một cách thủ công:
source /etc/profile

5. Thiết lập biến môi trường vĩnh cửu cho người dùng cụ thể

Biến môi trường vĩnh cửu dành cho một người dùng cụ thể được lưu trữ trong file "~/.bashrc""~/.profile".
  • /home/{user}/.bashrc
  • /home/{user}/.profile
File
Description
~/.bashrc
Biến môi trường được thiết lập trong file này được sử dụng cho các Shells không đăng nhập, chẳng hạn khi bạn mở một Terminal mới.
~/.profile
Biến môi trường được thiết lập trong file này được sử dụng cho các Shells có đăng nhập, chẳng hạn như SSH.
Trong hầu hết các trường hợp, nên thêm các biến môi trường vào "~/.profile", vì nó đảm bảo các biến có sẵn cho cả Shells đăng nhập và không đăng nhập.
Sử dụng lệnh vim hoặc nano để sửa đổi nội dung file trực tiếp trên Terminal:
sudo nano ~/.profile
Thêm vào một biến môi trường:
greeting="Hello everybody!"
  • Ctrl + O --> Save
  • Ctrl + X --> Exit
Chú ý: Trong một vài phiên bản Ubuntu, các biến môi trường trong file không được đọc mỗi khi bạn bắt đầu một phiên làm việc mới. Trong trường hợp đó, mỗi khi bắt đầu một phiên làm việc mới bạn phải đọc file này một cách thủ công:
source ~/.profile