Biến môi trường trên Linux Image Biến môi trường trên Linux

Bài này sẽ giới thiệu về biến môi trường trên Linux về cách liệt kê các biến môi trường đang có trên hệ thống cũng như cách cấu hình biến môi trường và các biến môi trường đặc biệt trên Linux như $PATH, $PS1. Biến môi trường là biến được sử dụng chung cho cả hệ điều hành và các ứng dụng. Nó được tạo ra để dùng chung chia sẻ giữa hệ thống và các ứng dụng. Biến môi trường được dùng khá nhiều trong môi trường Container, đặc biệt với Docker để cung cấp thông tin cho ứng dụng bên trong, ví dụ thông tin kết nối database.

1. Biến môi trường là gì?

Biến môi trường là các đại lượng có các giá trị cụ thể. Một số biến môi trường được cung cấp các giá trị đặt trước của hệ thống và các biến khác được đặt trực tiếp bởi người dùng, tại dòng lệnh hoặc trong khi khởi động các tập lệnh khác.

Biến môi trường là một chuỗi ký tự chứa thông tin được sử dụng bởi một hoặc nhiều ứng dụng.

1.1. Xem các biến môi trường hiện có

Một số cách để xem các giá trị của các biến môi trường hiện được đặt:

set

Hoặc

env 

Hoặc

export

Tùy thuộc vào trạng thái hệ thống của bạn, set có thể in ra nhiều dòng hơn hai lệnh còn lại.

Xem biến môi trường bằng env set export

2. Cách thiết lập biến môi trường trên Linux

Các biến môi trường được tạo trong một tập lệnh chỉ có sẵn. Các tiến trình con sẽ không có quyền truy cập vào các giá trị đã được đặt hoặc sửa đổi. Cho phép các tiến trình con để xem các giá trị yêu cầu sử dụng lệnh xuất.

Tác dụngLệnh
Hiển thị giá trị của một biến cụ thểecho $SHELL
Xuất một giá trị biến mớiNhập vào dòng export VARIABLE=value hoặc VARIABLE=value hoặc export VARIABLE
Thêm một biến vĩnh viễnChỉnh file $HOME/.bashrc và thêm vào dòng export VARIABLE=value. Sau đó source ~/.bashrc hoặc ~/.bashrc hoặc chỉ nhập một lệnh bash.

3. Biến môi trường “$HOME”

HOME là một biến môi trường đại diện cho thư mục home của người dùng. Lệnh cd không có đối số sẽ thay đổi thư mục làm việc hiện tại thành giá trị của HOME.

Chú ý: Ký tự dấu ngã ( ~ ) thường được sử dụng làm chữ tắt cho $HOME. Nên lệnh cd $HOMEcd ~ hoàn toàn giống nhau.

Để chứng minh điều này là đúng chúng ta thực hiện ví dụ sau:

Dùng lệnh echo để hiển thị giá trị của biến môi trường $HOME tại thư mục bất kì.

[root@localhost tmp]# echo $HOME
/root

Tiếp theo dùng lệnh cd $HOME để chuyển từ thư mục hiện tại về thư mục home.

[root@localhost tmp]# cd $HOME
[root@localhost ~]# pwd
/root

Quay lại thư mục trước và dùng lệnh cd ~ để trở về thư mục home.

[root@localhost ~]# cd -
/tmp
[root@localhost tmp]# pwd
/tmp
[root@localhost tmp]# cd ~
[root@localhost ~]# pwd
/root

4. Biến môi trường “$PATH”

4.1. Khái niệm biến môi trường "$PATH"

PATH là một danh sách các đường dẫn được quét khi lệnh được đưa ra để tìm chương trình hoặc tập lệnh thích hợp để chạy. Mỗi thư mục trong đường dẫn được phân cách bằng dấu hai chấm. Tên thư mục null hoặc ./ cho biết thư mục hiện tại.

Ví dụ:

:path1:path2

path1::path2

Ví dụ trên :path1:path2 có một thư mục rỗng trước dấu hai chấm đầu tiên ( : ). Còn path1 :: path2 có một thư mục null giữa path1 và path2 .

4.2. Ví dụ về cấu hình biến môi trường “$PATH”

Thêm một thư mục /bin vào biến $PATH (thêm vào đường dẫn của bạn)

export PATH=$PATH:$HOME/bin

Kiểm tra xem có đường dẫn /bin trong biến môi trường PATH:

echo $PATH 

Ví dụ tạo biến môi trường $PATH:

Tạo biến môi trường $PATH

5. Biến môi trường “$SHELL”

Biến môi trường SHELL trỏ đến vỏ lệnh mặc định của người dùng (chương trình đang xử lý bất cứ điều gì bạn gõ trong cửa sổ lệnh, thường là bash) và chứa tên đường dẫn đầy đủ đến shell:

[root@localhost ~]# echo $SHELL
/bin/bash

6. Biến môi trường “$PS1”

6.1. Khái niệm biến môi trường "$PS1"

PS (Prompt Statement) sử dụng để tùy chỉnh chuỗi nhắc của bạn trong cửa sổ đầu cuối để hiển thị thông tin bạn muốn.

[root@localhost etc]# echo $PS1
[\u@\h \W]\$

PS1 là biến chính điều khiển dấu nhắc dòng lệnh của bạn. Các ký tự đặc biệt trong PS1 :

  • \u : Tên người dùng
  • \h : Tên máy chủ
  • \w : Thư mục làm việc hiện tại
  • \! : Số lịch sử của lệnh này
  • \d : Ngày

6.2. Ví dụ về cấu hình biến môi trường “$PS1”

Ví dụ tạo biến môi trường $PS1:

Tạo biến môi trường $PS1

Hiển thị giá trị hiện tại của biến môi trường "$PS1"

echo $PS1 

Cấu hình biến $PS1 hiển thị tên user, hostname, thư mục hiện tại:

export PS1='\u@\h:\w$ '

Cấu hình biến $PS1 về như trước:

export PS1='$ '

Cách thực hiện tốt hơn là lưu lại biến $PS1 cũ và sau đó khôi phục:

OLD_PS1=$PS1

Thay đổi lời nhắc:

PS1=$OLD_PS1