About Me

header ads

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


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ó

Bạn có thể dùng các lệnh như SET/ ENV/ 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.

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 $HOME và cd ~ 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

Đăng nhận xét

0 Nhận xét