Cài đặt, tạo biến môi trường trên Ubuntu, biến $PATH
1. Tạo biến cho shell hiện tại
VARNAME="my value"
Với cách này thì biến được tạo chỉ có tác dụng trong cửa sổ shell hiện tại:
Ví dụ mình tạo biến VAR1=hello rồi sau đấy in biến VAR1 ra:
2. Tạo biến môi trường cho tất cả các process bắt đầu từ shell hiện tại
export VARNAME="my value"
Ví dụ:
3. Tạo biến môi trường vĩnh viễn trên Ubuntu
Với 2 cách tạo biến môi trường ở trên, chúng chỉ có tác dụng trong 1 phiên làm việc, sau khi logout hoặc khởi động lại máy tính thì nó sẽ mất tác dụng.
Trong các trường hợp khác ví dụ như cài đặt biến môi trường cho java (JAVA_HOME) ta không nên làm theo cách trên vì mỗi lần khởi động lại máy sẽ phải tạo lại biến môi trường một lần, hơn nữa nhiều phần mềm khi cài đặt yêu cầu phải có java thì chúng sẽ tham chiếu tới biến JAVA_HOME nên cần phải cố định biến JAVA_HOME cho tất cả người dùng, tất cả các process trong mọi phiên sử dụng.
Để tạo biến môi trường vĩnh viễn trên Ubuntu ta cần thêm nó vào /etc/environment
B1: Mở /etc/environment
sudo -H gedit /etc/environment
(Ở đây mình mở bằng giao diện, các bạn có thể thay -H gedit
bằng vim
hoặc nano
để mở file trên terminal)
B2: Thêm biến môi trường vào file vừa mở
VARNAME="my value"
Không sử dụng từ khóa export
nhé
Lưu lại file sau đó logout và login lại hoặc khởi động lại máy tính.
4. Biến $PATH
Biến $PATH
là một biến môi trường mặc định trên linux (ubuntu). Nó được sử dụng để shell (terminal) tìm kiếm các file executable.
Ví dụ khi cài đặt java (trên linux hoặc window), bạn tạo biến JAVA_HOME=/usr/lib/jvm/java-8-oracle
Sau đấy lại thêm biến JAVA_HOME
vào biến $PATH
PATH="$JAVA_HOME/bin:$PATH"
khi bạn chạy lệnh javac -version
thì nó sẽ tìm tất cả các file executable ở trong tất cả các folder được liệt kê trong biến $PATH
xem có file javac
không, nên bản chất khi chạy lệnh trên chính là chạy file javac trong folder /usr/lib/jvm/java-8-oracle/bin
với tham số là -version
Để xem các folder trong $PATH ta có thể dùng lệnh echo: echo $PATH
Kết quả:
Mở file ~/.profile
sudo nano ~/.profile
Sửa giá trị $PATH
thành:
PATH="$HOME/bin:$HOME/.local/bin:{whatever_path_you_need_to_add}:$PATH"
whatever_path_you_need_to_add
thành $JAVA_HOME/bin
hoặc /usr/lib/jvm/java-8-oracle/bin
sau đó lưu lại.~/.profile
chưa tồn tại hoặc đang trống thì bạn tạo mới file đó theo mẫu dưới đây:if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi # set PATH so it includes user's private bin directories PATH="$HOME/bin:$HOME/.local/bin:/usr/bin:$PATH"