Linux - 07 - Droits et permissions
Mục lục:
- Biến môi trường và biến Shell
- Liệt kê các biến môi trường
- Cài đặt biến môi trường
- Biến môi trường dai dẳng
- Phần kết luận
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
và
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ìnheditsẽ được sử dụng khi bạn nhậpedittrong 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
và
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
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=barVAR_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ệnhexport:export JAVA_HOME="/path/to/java/home"export PATH=$PATH:$JAVA_HOME/binMỗ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
:
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ốiTrung Quốc không phải là ' t thị trường duy nhất phải đối mặt với suy thoái trong nhu cầu về chip. Intel, các nhà sản xuất chip lớn nhất thế giới, tuần trước đã từ chối tiết lộ dự báo lợi nhuận trong quý đầu tiên, cho biết họ đã hạn chế khả năng hiển thị nhu cầu của khách hàng trong giai đoạn này. các công ty bán dẫn có thể dựa vào sự tăng trưởng, ngay cả khi các thị trường khác chững lại. Ví dụ, sau vụ tai nạn dot-com năm 2000, nhu cầu về chip của Trung Quốc tăng 24,4%, trong khi nhu cầu toàn c
Nền kinh tế Trung Quốc, phụ thuộc nhiều vào xuất khẩu tăng trưởng. dễ bị tổn thương hơn với suy thoái kinh tế hiện tại nhiều hơn dự kiến. IDC tuần này đã thông báo rằng các lô hàng PC châu Á đã giảm lần đầu tiên trong mười năm trong quý IV, dẫn đến nhu cầu yếu hơn dự kiến từ người tiêu dùng Trung Quốc là một lý do chính.
Diễn đàn Femto đã đưa ra một sáng kiến mới nhằm tạo ra một môi trường ứng dụng phổ biến và các API chuẩn hóa cho các ứng dụng femtocell Tổ chức công nghiệp Femto Forum đã công bố một sáng kiến mới nhằm cung cấp một môi trường ứng dụng phổ biến và các API chuẩn hóa để cho phép các nhà phát triển tạo ra các ứng dụng hoạt động trên femtocell từ các nhà cung cấp khác nhau. , cho đến nay, chủ yếu được xem như là một cách để các nhà khai thác cải thiện độ phủ sóng trong nhà. Chúng là các trạm cơ s
AppStore đã cho thấy rằng có rất nhiều sự quan tâm đến các ứng dụng di động và cả cách tham gia với các nhà phát triển, theo Simon Saunders, chủ tịch của Diễn đàn Femto.
Các chủ đề được thảo luận rộng rãi của Bushnell bao gồm biến đổi khí hậu, robot và giáo dục, và công nghệ ảnh hưởng đến từng khu vực như thế nào. về nhu cầu giải quyết biến đổi khí hậu và phát triển các nguồn năng lượng tái tạo. Nếu không giải quyết những vấn đề này, các thành phố nằm trên các vùng nước sẽ bị ngập lụt và con người sẽ cần phải điều chỉnh để sống trong một môi trường ấm hơn. Công nghệ có thể được sử dụng để cải thiện môi trường, nhưng chính phủ và mọi người không muốn áp dụng các
"Chúng tôi không thể sửa chữa những điều này mà không có ý tưởng lớn", ông nói. Bushnell cho biết: “Chúng tôi bị ám ảnh bởi minutiae.”







