Android

Cách đặt và liệt kê các biến môi trường trong linux

Linux - 07 - Droits et permissions

Linux - 07 - Droits et permissions

Mục lục:

Anonim

Trong các biến môi trường của hệ thống dựa trên Linux và Unix là một tập hợp các giá trị động được đặt tên, được lưu trữ trong hệ thống được sử dụng bởi các ứng dụng được khởi chạy trong shell hoặc subshells. Nói một cách đơn giản, một biến môi trường là một biến có tên và giá trị liên quan.

Biến môi trường cho phép bạn tùy chỉnh cách hệ thống hoạt động và hoạt động của các ứng dụng trên hệ thống. Ví dụ: biến môi trường có thể lưu trữ thông tin về trình soạn thảo văn bản hoặc trình duyệt mặc định, đường dẫn đến các tệp thi hành hoặc cài đặt bố cục bàn phím và hệ thống.

Trong hướng dẫn này, chúng tôi sẽ giải thích để đọc và thiết lập các biến môi trường và shell.

Biến môi trường và biến Shell

Các biến có định dạng sau:

KEY=value KEY="Some other value" KEY=value1:value2

  • Tên của các biến là trường hợp nhạy cảm. Theo quy ước, các biến môi trường nên có tên LỚP CASE. Khi gán nhiều giá trị cho biến, chúng phải được phân tách bằng dấu hai chấm : character.There không có khoảng trắng xung quanh bằng = biểu tượng.

Các biến có thể được phân loại thành hai loại chính, biến môi trường và biến vỏ.

Các biến môi trường là các biến có sẵn trên toàn hệ thống và được kế thừa bởi tất cả các tiến trình và trình bao con được sinh ra.

Các biến shell là các biến chỉ áp dụng cho thể hiện shell hiện tại. Mỗi shell như zsh bash , có tập hợp các biến shell bên trong riêng.

Có một số lệnh có sẵn cho phép bạn liệt kê và đặt các biến môi trường trong Linux:

  • env - Lệnh cho phép bạn chạy một chương trình khác trong môi trường tùy chỉnh mà không cần sửa đổi chương trình hiện tại. Khi được sử dụng mà không có đối số, nó sẽ in một danh sách các biến môi trường hiện tại. printenv - Lệnh in tất cả hoặc các biến môi trường được chỉ định. set - Lệnh set hoặc bỏ đặt biến shell. Khi được sử dụng mà không có đối số, nó sẽ in một danh sách tất cả các biến bao gồm các biến môi trường và vỏ và các hàm shell. unset - Lệnh xóa các biến shell và môi trường. export - Lệnh đặt các biến môi trường.

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

Lệnh được sử dụng nhiều nhất để hiển thị các biến môi trường là printenv . Nếu tên của biến được truyền dưới dạng đối số cho lệnh, chỉ giá trị của biến đó được hiển thị. Nếu không có đối số nào được chỉ định, printenv in danh sách tất cả các biến môi trường, một biến trên mỗi dòng.

Ví dụ: để hiển thị giá trị của biến môi trường HOME bạn sẽ chạy:

printenv HOME

Đầu ra sẽ in đường dẫn của người dùng hiện đang đăng nhập:

/home/linuxize

Bạn cũng có thể truyền nhiều hơn một đối số cho lệnh printenv :

printenv LANG PWD

en_US /home/linuxize

printenv

Đầu ra sẽ trông giống như thế này:

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv

Dưới đây là một số biến môi trường phổ biến nhất:

  • USER - Người dùng đã đăng nhập hiện tại. HOME - Thư mục nhà của người dùng hiện tại. EDITOR - Trình chỉnh sửa tệp mặc định sẽ được sử dụng. Đây là trình edit sẽ được sử dụng khi bạn nhập edit trong thiết bị đầu cuối của bạn. SHELL - Đường dẫn của trình bao của người dùng hiện tại, chẳng hạn như bash hoặc zsh. LOGNAME - Tên của người dùng hiện tại. PATH - Một danh sách các thư mục sẽ được tìm kiếm khi thực hiện các lệnh. Khi bạn chạy một lệnh, hệ thống sẽ tìm kiếm các thư mục theo thứ tự này và sử dụng tệp thực thi đầu tiên được tìm thấy. LANG - Các cài đặt cục bộ hiện tại. TERM - Thi đua thiết bị đầu cuối hiện tại. MAIL - Vị trí lưu trữ thư của người dùng hiện tại.

Các lệnh printenv env chỉ in các biến môi trường. Nếu bạn muốn nhận danh sách tất cả các biến, bao gồm môi trường, shell và biến và hàm shell, bạn có thể sử dụng lệnh set :

set

BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()

Lệnh sẽ hiển thị một danh sách lớn tất cả các biến để bạn có thể muốn chuyển đầu ra sang lệnh less .

set | less

Bạn cũng có thể sử dụng lệnh echo để in một biến shell. Ví dụ: để in giá trị của biến BASH_VERSION bạn sẽ chạy:

echo $BASH_VERSION

4.4.19(1)-release

Cài đặt biến môi trường

Để minh họa rõ hơn sự khác biệt giữa các biến Shell và Môi trường, chúng ta sẽ bắt đầu bằng cách đặt Biến Shell và sau đó chuyển sang các biến Môi trường.

Để tạo một biến shell mới với tên MY_VAR và giá trị Linuxize chỉ cần gõ:

MY_VAR='Linuxize'

Bạn có thể xác minh rằng biến được đặt bằng cách sử dụng echo $MY_VAR để lọc đầu ra của lệnh set với grep set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

Sử dụng lệnh printenv để kiểm tra xem biến này có phải là biến môi trường hay không:

printenv MY_VAR

Đầu ra sẽ trống để cho chúng ta biết rằng biến không phải là biến môi trường.

Bạn cũng có thể thử in biến trong vỏ phụ và bạn sẽ nhận được một đầu ra trống.

bash -c 'echo $MY_VAR'

Lệnh export được sử dụng để đặt các biến Môi trường.

Để tạo biến môi trường, chỉ cần xuất biến shell thành biến môi trường:

export MY_VAR

Bạn có thể kiểm tra điều này bằng cách chạy:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

Bạn cũng có thể đặt các biến môi trường trong một dòng duy nhất:

export MY_NEW_VAR="My New Var"

Biến môi trường được tạo theo cách này chỉ có sẵn trong phiên hiện tại. Nếu bạn mở một shell mới hoặc nếu bạn đăng xuất, tất cả các biến sẽ bị mất.

Biến môi trường dai dẳng

Để làm cho các biến môi trường liên tục, bạn cần xác định các biến đó trong các tệp cấu hình bash. Trong hầu hết các bản phân phối Linux khi bạn bắt đầu một phiên mới, các biến môi trường được đọc từ các tệp sau:

  • /etc/environment - Sử dụng tệp này để thiết lập các biến môi trường toàn hệ thống. Các biến trong tệp này được đặt theo định dạng sau:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - Các biến được đặt trong tệp này được tải bất cứ khi nào một vỏ đăng nhập bash được nhập. Khi khai báo các biến môi trường trong tệp này, bạn cần sử dụng lệnh export :

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

    Mỗi tệp người dùng cấu hình cụ thể vỏ. Ví dụ: nếu bạn đang sử dụng Bash, bạn có thể khai báo các biến trong ~/.bashrc :

    export PATH="$HOME/bin:$PATH"

Để tải các biến môi trường mới vào phiên shell hiện tại, hãy sử dụng lệnh source :

source ~/.bashrc

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách đặt và liệt kê các biến môi trường và vỏ.

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

thiết bị đầu cuối