Quản lý biến môi trường Linux: Cục bộ, người dùng, hệ thống

Các biến môi trường là một số biến đặc biệt được định nghĩa trong shell và được các chương trình cần trong quá trình thực thi. Chúng có thể được định nghĩa bởi hệ thống hoặc do người dùng xác định. Các biến được định nghĩa bởi hệ thống là những biến được đặt bởi hệ thống và được sử dụng bởi các chương trình cấp hệ thống.

Set and Unset Linux Environment Variables
Đặt và bỏ định Linux biến môi trường

Ví dụ: Lệnh PWD là một biến hệ thống rất phổ biến được sử dụng để lưu trữ thư mục làm việc hiện tại. Các biến do người dùng xác định thường được đặt bởi người dùng, tạm thời cho Tổ chức Shell hiện tại hoặc vĩnh viễn. Toàn bộ khái niệm về cài đặt và hủy các biến môi trường xoay quanh một số tập tin và một số lệnh và các Shell khác nhau.

Một cách rộng hơn, một biến môi trường có thể có ba loại:

1. Local Environment Variable

Một biến được xác định cho phiên hiện tại. Các biến môi trường này chỉ tồn tại cho tới phiên hiện tại, cho dù đó là phiên đăng nhập từ xa hay phiên kết nối cục bộ. Những biến này không được chỉ định trong bất kỳ tệp cấu hình nào và được tạo ra và gỡ bỏ bằng cách sử dụng một tập lệnh đặc biệt.

2. User Environment Variable

Những biến môi trường này được xác định cho một người dùng cụ thể và được tải mỗi khi một người dùng đăng nhập bằng cách sử dụng phiên làm việc trực tuyến hoặc người dùng đó đăng nhập bằng cách sử dụng phiên đăng nhập từ xa. Những biến này thường được đặt và tải từ các tệp cấu hình sau: .bashrc.bash_profile.bash_login.profile  Nằm trong thư mục chủ của người dùng.

3. System wide Environment Variables

Đó là các biến môi trường có sẵn trên toàn hệ thống, tức là đối với tất cả các người dùng có mặt trên hệ thống đó. Những biến này có trong các tệp cấu hình toàn hệ thống trong các thư mục và tệp sau: /etc/environment/etc/profile/etc/profile.d//etc/bash.bashrc. Những biến này được tải mỗi khi hệ thống được bật và đăng nhập bằng cách sử dụng cục bộ hoặc từ xa bởi bất kỳ người dùng nào.

Hiểu các tệp cấu hình toàn người dùng và toàn hệ thống

Ở đây, chúng tôi mô tả ngắn gọn các tệp cấu hình khác nhau liệt kê ở trên chứa Biến môi trường, toàn hệ thống hoặc chỉ cụ thể cho người dùng.

.bashrc

Tệp này là tệp cụ thể của người dùng được tải mỗi khi người dùng tạo phiên hoạt động cục bộ nghĩa là một cách đơn giản trái với việc mở một cửa sổ terminal mới. Tất cả các biến môi trường được tạo ra trong tệp này sẽ có hiệu lực mỗi khi bắt đầu một phiên cục bộ mới.

.bash_profile

Tệp này là tệp đăng nhập từ xa cụ thể của người dùng. Các biến môi trường được liệt kê trong tệp này được kích hoạt mỗi khi người dùng đăng nhập từ xa bằng phiên ssh. Nếu tệp này không có, hệ thống tìm kiếm tệp .bash_login hoặc .profile.

/etc/environment

Đây là tệp cấu hình toàn hệ thống để tạo, chỉnh sửa hoặc gỡ bỏ bất kỳ biến môi trường nào. Các biến môi trường được tạo trong tệp này có thể truy cập trong toàn bộ hệ thống, bởi mỗi người dùng, cục bộ và từ xa.

/etc/bash.bashrc

Tệp toàn hệ thống bashrc. Tệp này được tải một lần cho mỗi người dùng, mỗi khi người dùng mở một phiên terminal địa phương. Các biến môi trường tạo trong tệp này có thể truy cập cho tất cả người dùng, nhưng chỉ thông qua phiên làm việc trực tuyến. Khi bất kỳ người dùng nào trên máy đó được truy cập từ xa thông qua một phiên đăng nhập từ xa, những biến này sẽ không có sẵn.

/etc/profile

Tệp cấu hình toàn hệ thống. Tất cả biến được tạo trong tệp này có thể truy cập bởi mỗi người dùng trên hệ thống, nhưng chỉ khi phiên của người dùng đó được kích hoạt từ xa, tức là thông qua đăng nhập từ xa. Bất kỳ biến nào trong tệp này sẽ không có sẵn cho phiên đăng nhập cục bộ, tức là khi người dùng mở một cửa sổ terminal mới trên hệ thống cục bộ của mình.

Chú ý: Các biến môi trường được tạo bằng cách sử dụng các tệp cấu hình toàn hệ thống hoặc của người dùng có thể được gỡ bỏ bằng cách loại bỏ chúng khỏi những tệp này. Chỉ cần sau mỗi thay đổi trong các tệp này, hoặc đăng xuất và đăng nhập lại hoặc chỉ cần gõ lệnh sau trên terminal để thay đổi có hiệu lực:

$ source 

Đặt hoặc hủy biến môi trường cục bộ hoặc toàn phiên trong Linux

Các biến môi trường cục bộ có thể được tạo bằng các lệnh sau:

$ var=value 
OR
$ export var=value

Các biến này là hiện hành của phiên và chỉ có giá trị trong phiên terminal hiện tại. Để xóa các biến môi trường hiện hành của phiên này, bạn có thể sử dụng các lệnh sau:

1. Sử dụng env

Theo mặc định, lệnh "env" liệt kê tất cả các biến môi trường hiện tại. Nhưng, nếu sử dụng với thông số '-i', nó tạm thời xóa tất cả các biến môi trường và cho phép người dùng thực thi một lệnh trong phiên hiện tại không có các biến môi trường.

$ env –i [Var=Value]… command args…

Ở đây, var=value tương ứng với bất kỳ biến môi trường nào bạn muốn sử dụng chỉ trong lệnh này duy nhất.

$ env –i bash

Sẽ cho bạn một BASH shell không các biến môi trường. Nhưng, khi bạn thoát khỏi shell, tất cả các biến sẽ được khôi phục.

2. Sử dụng unset

Một cách khác để xóa biến môi trường địa phương là bằng cách sử dụng lệnh unset. Để tạm thời không đặt bất kỳ biến môi trường địa phương nào,

$ unset 

Ở đây, var-name là tên của biến địa phương mà bạn muốn hủy hoặc xóa.

3. Đặt tên biến thành ”

Một cách ít phổ biến khác là đặt tên biến mà bạn muốn xóa thành '' (Rỗng). Điều này sẽ xóa giá trị của biến địa phương cho phiên hiện tại mà nó hoạt động.

GHI CHÚ - CÓ THỂ BẠN THAY ĐỔI VÀ THAY ĐỔI GIÁ TRỊ CỦA CÁC BIẾN MÔI TRƯỜNG CỦA HỆ THỐNG HOẶC NGƯỜI DÙNG, NHƯNG NHỮNG THAY ĐỔI CHỈ PHẢN ÁNH TRONG PHIÊN SESSION TERMINAL HIỆN TẠI VÀ KHÔNG CÓ SẰN THƯỚC.

Tìm hiểu cách tạo các biến môi trường toàn hệ thống và toàn người dùng trong Linux

Ở phần này, chúng ta sẽ tìm hiểu cách đặt hoặc hủy các biến môi trường địa phương, người dùng và toàn hệ thống trong Linux với các ví dụ sau đây:

1. Đặt và hủy biến cục bộ trong Linux

a.) Ở đây, chúng ta tạo một biến địa phương VAR1 và đặt nó thành bất kỳ giá trị nào. Sau đó, chúng ta sử dụng lệnh unset để xóa biến địa phương đó, và cuối cùng biến sẽ bị xóa.

$ VAR1='TecMint is best Site for Linux Articles'
$ echo $VAR1
$ unset VAR1
$ echo $VAR1
Set Unset Local Environment Variables
Đặt bỏ định Local biến môi trường

b.) Một cách khác để tạo một biến địa phương là sử dụng lệnh export. Biến địa phương được tạo sẽ có sẵn cho phiên hiện tại. Để hủy biến đơn giản đặt giá trị của biến thành ''.

$ export VAR='TecMint is best Site for Linux Articles'
$ echo $VAR
$ VAR=
$ echo $VAR
Export Local Environment Variables
Xuất biến môi trường Local trên Linux

c.) Ở đây, chúng ta tạo một biến địa phương VAR2 và đặt giá trị cho nó. Sau đó, để chạy một lệnh tạm thời xóa tất cả các biến địa phương và biến môi trường khác, chúng ta thực hiện lệnh 'env –i'. Lệnh này tại đây chạy một shell BASH bằng cách xóa tất cả các biến môi trường khác. Sau khi nhập 'exit' trong shell BASH đã triệu hồi, tất cả các biến sẽ được khôi phục.

$ VAR2='TecMint is best Site for Linux Articles'
$ echo $VAR2
$ env -i bash
$ echo $VAR2   
Use Env Command to Unset Variables
Sử dụng lệnh env để hủy biến môi trường

2. Đặt và hủy biến môi trường toàn người dùng trong Linux

a.) Chỉnh sửa tệp .bashrc trong thư mục chủ của bạn để xuất hoặc thiết lập biến môi trường mà bạn cần thêm. Sau đó source tệp để thực hiện các thay đổi. Sau đó, bạn sẽ nhìn thấy biến ('CD' trong trường hợp của tôi), có hiệu lực. Biến này sẽ có sẵn mỗi khi bạn mở một cửa sổ terminal mới cho người dùng này, nhưng không cho các phiên đăng nhập từ xa.

$ vi .bashrc

Thêm dòng sau vào tệp .bashrc ở cuối.

export CD='This is TecMint Home'

Bây giờ chạy lệnh sau để thực hiện các thay đổi mới và kiểm tra nó.

$ source .bashrc 
$ echo $CD
Set User-Wide Environment Variables in Linux
Đặt các biến môi trường toàn người dùng trong Linux

Để xóa biến này, chỉ cần xóa dòng sau trong .bashrc và thực hiện lại tệp:

b.) Để thêm một biến môi trường có sẵn cho các phiên đăng nhập từ xa (tức là khi bạn ssh vào người dùng từ hệ thống từ xa), chỉnh sửa tệp .bash_profile của bạn.

$ vi .bash_profile

Thêm dòng sau vào tệp .bash_profile ở cuối.

export VAR2='This is TecMint Home'

Khi khỏi tạo tệp này, biến sẽ có sẵn khi bạn ssh vào người dùng này, nhưng không khi mở bất kỳ cửa sổ terminal mới nào trên máy cục bộ.

$ source .bash_profile 
$ echo $VAR2

Ở đây, VAR2 ban đầu không khả dụng nhưng, khi ssh vào người dùng trên máy cục bộ, biến trở nên có sẵn.

$ ssh tecmint@localhost
$ echo $VAR2
Export User Wide Variables in Bash Profile
Xuất biến rộng rãi của người dùng trong Bash Profile

Để xóa biến này, chỉ cần xóa dòng trong tệp .bash_profile mà bạn đã thêm, và thực hiện lại tệp.

GHI CHÚ: Những biến này sẽ có sẵn mỗi khi bạn đăng nhập vào người dùng hiện tại nhưng không dành cho người dùng khác.

3. Đặt và hủy đặt các biến môi trường toàn hệ thống trong Linux

a.) Để thêm biến không đăng nhập toàn hệ thống (tức là biến có sẵn cho tất cả người dùng khi bất kỳ ai mở cửa sổ terminal mới ngoại trừ khi người dùng truy cập từ từ xa) thêm biến vào tệp /etc/bash.bashrc.

export VAR='This is system-wide variable'
Add System Wide Environment Variables
Thêm biến rộng rãi của hệ thống

Sau đó, thực hiện tệp.

$ source /etc/bash.bashrc 

Bây giờ biến này sẽ có sẵn cho mỗi người dùng khi họ mở bất kỳ cửa sổ terminal mới nào.

$ echo $VAR
$ sudo su
$ echo $VAR
$ su -
$ echo $VAR
Check System Wide Variables
Kiểm tra biến rộng rãi của hệ thống

Ở đây, cùng một biến có sẵn cho người dùng root cũng như người dùng bình thường. Bạn có thể xác minh điều này bằng cách đăng nhập thành người dùng khác trên máy.

b.) Nếu bạn muốn bất kỳ biến môi trường nào sẽ có sẵn khi một trong các người dùng trên máy của bạn đăng nhập từ xa, nhưng không khi mở bất kỳ cửa sổ terminal nào trên máy cục bộ, sau đó chỉ cần chỉnh sửa tệp '/etc/profile'.

export VAR1='This is system-wide variable for only remote sessions'
Add System Wide Variables in Profile
Thêm biến rộng rãi của hệ thống trong Profile

Sau khi thêm biến, chỉ cần thực hiện tệp. Sau đó biến sẽ có sẵn.

$ source /etc/profile
$ echo $VAR1

Để xóa biến này, chỉ cần xóa dòng trong tệp /etc/profile mà bạn đã thêm và thực hiện lại tệp.

c.) Tuy nhiên, nếu bạn muốn thêm bất kỳ môi trường nào mà bạn muốn có sẵn trong toàn bộ hệ thống, cả trong các phiên đăng nhập từ xa và các phiên địa phương (tức là mở một cửa sổ terminal mới) cho tất cả người dùng, chỉ cần xuất biến trong tệp /etc/environment.

export VAR12='I am available everywhere'
Add System Variable in Environment File
Thêm biến hệ thống trong tệp môi trường

Sau đó chỉ cần thực hiện tệp và các thay đổi sẽ có hiệu lực.

$ source /etc/environment
$ echo $VAR12
$ sudo su
$ echo $VAR12
$ exit
$ ssh localhost
$ echo $VAR12
Check Environment Variable for All Users
Kiểm tra biến môi trường cho tất cả người dùng

Ở đây, như chúng ta thấy biến môi trường có sẵn cho người dùng bình thường, người dùng root cũng như phiên đăng nhập từ xa (ở đây, tới localhost).

Để xóa biến này, chỉ cần xóa mục trong tệp /etc/environment, và thực hiện lại tệp hoặc đăng nhập lại.

GHI CHÚ: Thay đổi có hiệu lực khi bạn thực hiện tệp. Nhưng nếu không, bạn có thể cần đăng xuất và đăng nhập lại.

Vì vậy, đó là một số cách chúng ta có thể sửa đổi các biến môi trường.