ПредишенСледващото

Като сървъри в сигурни центрове за данни в Европа. Open облак VPS / VDS сървър на бърз SSD за 1 минута!

Най-добър уеб хостинг:
- ще предпазят данните от неоторизиран достъп в защитена Европейския център за данни
- ще плати най-малко в Bitcoin.
- Той ще постави вашата дистрибуция

- защита от DDoS-атаки
- безплатно архивиране
- Uptime 99,9999%
- DPC - TIER III
- ISP - етап I

Подкрепа в руските 24/7/365 работи с юридически и физически лица. Сега трябва 24 ядро ​​и 72 Gb RAM. Моля ви!

Нашите конкурентни цени доказват, че най-евтиният хостинг, че не знаеш!

За броени минути, изберете конфигурация, заплати и CMS на VPS е готова.
Връщане на парите - за 30 дни!

Банкови карти, електронни валута през QIWI терминали, Webmoney, PayPal, Novoplat и други.

Задайте въпрос 24/7/365 поддръжка

Намерете отговорите в нашата база данни, както и да отговарят на препоръките на

Оферта от 8host.com

Четене и създаване на променливи от обкръжението и черупки на сървъра Linux

При работа със сървъра на черупка събира голямо количество информация, която определя поведението си и достъп до ресурси. Някои от тези параметри са в конфигурация черупка, и други дефинирани от потребителя вход.

Един начин за проследяване на плика на тази информация - е използването на околната среда. Сряда - е област, която съдържа определящите свойства на системни променливи, които се изграждат на корпуса на всяка сесия започва.

Как околната среда и нейните променливи

Всеки път, когато се активира сесия черупка, а след това на процеса за събиране и съставяне на информацията, която трябва да бъде на разположение на черупката и деца нейните процеси. Shell получава тази информация от най-различни файлове и настройки в системата.

Цялата среда осигурява съоръжение предаване, който събира и определя подходящия процес конфигурация обвивка, която, от своя страна, ги предава на детето им процеси.

Средно има формата низ, съдържащ един чифт на форма "ключ-стойност". Няколко стойности обикновено са разделени с двоеточие (:). Всяка двойка, като цяло, изглежда така:

Ако стойността съдържа интервали, използвайте кавички:

KEY = "стойност с интервали"

Тук ключовите променливи, се има предвид една от двете съществуващи видове: на околната среда променливи или обвивка.

Околна среда променливи - променливи, които са били определени за текущата обвивка и се наследяват от всички деца, черупки или процеси. променливи опазване на околната среда се използват за предаване на информационни процеси, течаща от черупката.

Променлива черупка - са променливи, които се съдържат само в черупката, в която те са създадени или определени. Те често се използват, за да следите актуалните данни (например, текущата работна директория).

Обикновено тези променливи са обозначени с главни букви. Това помага на потребителите да правят разлика между променливите на околната среда в други ситуации.

Заключение черупки променливи и околна среда

Всяка сесия следи вашата шел променливи и околната среда. Доведете ги по няколко начина.

printenv
SHELL = / хамбар / Баш
СРОК = Xterm
USER = demouser
Кодът = RS = 0: ди = 01; 34: LN = 01: 36: МН = 00: пи = 40: 33: така = 01: 35: Do = 01: 35: BD = 40; 33; 01: CD = 40; 33; 01: или = 40; 31; 01: н = 37; 41: SG = 30: 43: приблизително
MAIL = / Var / пощата / demouser
PATH = / ЮЕсАр / местни / BIN: / ЮЕсАр / хамбар: / BIN: / ЮЕсАр / местни / игри: / ЮЕсАр / игри
Хората с увреждания = / Начало / demouser
LANG = en_US.UTF-8
SHLVL = 1
HOME = / Начало / demouser
LOGNAME = demouser
LESSOPEN = | / ЮЕсАр / бен / lesspipe% S
LESSCLOSE = / ЮЕсАр / хамбар / lesspipe% S% S
_ = / ЮЕсАр / бен / printenv

Това е типичен пример на извлечените команди printenv ENV и резултат. Тези команди се различават само в рамките на няколко отделни функции. Например, printenv може да задава въпроси за стойности на отделните променливи:

printenv SHELL
/ Bin / Баш

Околна среда команда ви позволява да промените средата, в която се изпълняват програми, минавайки набор от дефиниции на променливи в командата, като този:

ENV var1 = "blahblah" command_to_run command_options

Както бе посочено по-горе, на децата процеси обикновено наследяват променливи за средата на процеса на родител, което го прави възможно да се промени стойността или да направите допълнителни променливи за деца процеси.

Както може да се види в продукцията на printenv на команди, много променливи, създадени с системни файлове и процеси без намесата на потребителя.

За да направите това, използвайте командата набор. Използва се без допълнителни параметри, определени списъци на всички променливи, черупки, променливи на обкръжението, местните променливи и черупки функции:

Обикновено, списъкът е доста дълъг. За да го покаже в по-удобен формат, отворете го с програма-пейджър:

Този списък съдържа огромно количество допълнителна информация, която не е необходима в момента (например, някои от Баш на функции).

За да "почисти" дедуктивно резултат на това, което трябва да се изпълнява зададената команда в режим на POSIX, който предава функция черупка. Това трябва да бъде направено по subshell, така че да не се променя сегашната среда:

(Задаване -o POSIX; комплект)

Това действие ще покаже всички променливи на околната среда и на черупката.

Можете също така да сравните този резултат с резултата от ENV / printenv команда и да се опитаме да се изброят само черупки променливи, но този списък не е съвършен, защото тези команди показват информация по различни начини:

команд -23 <(set -o posix; set | sort) <(env | sort)

Най-вероятно, списъкът ще съдържа множество променливи, защото зададената команда показва стойностите в кавички, както и printenv команда и Околна среда - не.

Тези променливи се използват за всякакви цели. Те предоставят алтернативен метод за определяне на постоянни стойности за сесията между процесите, което премахва необходимостта да се промени във файла.

Основни променливи на околната среда и на бронята

Някои особено полезно за околната среда променливи и черупки се използват много често.

По-долу е даден списък на основните променливи за средата:

  • SHELL. Той описва черупката, която интерпретира команди въведени. В повечето случаи по подразбиране е Баш, но това може да се промени, ако е необходимо.
  • СРОК. Това показва типа на терминала пример за подражание, когато се стартира на черупката. Както можете да подражава на различни хардуерни терминали, в зависимост от оперативните изисквания. Като правило, не е нужно да се притеснявате за това.
  • USER. текущия потребител.
  • Хората с увреждания. текущата работна директория.
  • OLDPWD. Предишната работна директория. Черупката го поддържа в случай на команда за CD -.
  • Кодът. определя кодовете на цветовете, които се използват за цветен печат в резултат на командата LS. Това заключение помага на потребителя бързо да прочетете в резултат на командата (например бързо да се разграничи типове файлове).
  • Mail. път към пощенската кутия на текущия потребител.
  • PATH. списък на директории, които са достъпни от системата при изпълнение на команди. Когато потребителят стартира командата, системата проверява тези директории по реда, определен в търсенето на изпълнимия файл.
  • LANG. текущите настройки на езика и локализация, включително за кодиране на знаците.
  • HOME. домашната директория на текущия потребител.
  • _. последната команда изпълнена.

Моля, вижте списъка с променливи на обкръжението, да разгледа списъка с черупки променливи:

  • BASHOPTS. списък от опции, използвани при Баш. Може да се използва, за да се провери дали подходяща среда функционира правилно.
  • BASH_VERSION. стартира версия на Баш в електронен формат.
  • BASH_VERSINFO. версия на Баш във формат за машинно четене.
  • Колони. определя ширината на изходните колони.
  • DIRSTACK. купчина каталози достъпно команди в обратен ред и Превърта стека.
  • HISTFILESIZE. максималния брой редове, които се съдържат в историята на командния ред по делото.
  • HISTSIZE. Броят на команди трябва да се съхраняват в списък с история.
  • HOSTNAME. ток името на хоста.
  • IFS: Вътрешните разделителни полета за въвеждане на командния ред. По подразбиране е празен.
  • PS1. определя основната подсказка низ - команден ред оглед черупка стартиране сесия. Променливи комплекти PS2 втората подсказка низ, ако отборът има нужда от няколко линии.
  • SHELLOPTS. черупки параметри, които могат да се задават, когато с набор.
  • UID. уникалния идентификатор на текущия потребител.

Създаване черупки променливи и околна среда

По-долу са няколко примера, за да демонстрират разликата между променливите и обвивката и среда обясняват определяне на тези променливи синтаксис.

Създаване черупки променливи

Първо трябва да зададете на променливите на обвивката на текущата сесия. Това се прави много просто, за това, което трябва да предостави само едно име и стойност. Както беше казано, за да напишете имената на такива променливи капитализация.

В този пример, кавички се използват, тъй като стойността съдържа интервали. Освен това, има нужда да се използват единични кавички като удивителен знак е специален знак в Баш-обвивка, която се отнася до историята на командния, ако не се избегне, или не е затворена в единични кавички.

По този начин, променливата получената черупка е валидна в текущата сесия, но не се е разпростряло на детето си процеси.

За да проверите това, използвайте командата Впиши да определят резултата от екипа:

настроен | Впиши TEST_VAR
TEST_VAR = 'Hello World! "

Уверете се, че променливата не е променлива среда, можете също като пуснете Впиши на резултата от printenv команда:

printenv | Впиши TEST_VAR

Това действие не води до никакъв ефект.

Това може да се използва за показване на стойността на променливата или черупка среда.

ехо $ TEST_VAR
Hello World!

Както може да се види, за да се отнасят към стойността на една променлива, трябва да използвате символа за $.

Отново, в резултат на променливата не трябва да се дава на всеки процес на децата. За да проверите това, в рамките на текущата обвивка разширите нов Баш-обвивка:

удрям
ехо $ TEST_VAR

Когато разполагането дъщерно черупка, се опитате да отворите съдържанието на променливата, ще се появи нищо. Това означава, че всичко работи правилно.

За да се върнете към оригиналния корпус, тип излизане:

Създаване на околната среда променливи

Сега се опитайте да включите променливата променлива среда на обвивката. Това се прави чрез износ на променлива. Екипът, който извършва износа има съответното име.

printenv | Впиши TEST_VAR
TEST_VAR = Hello World!

Сега, тази променлива се появява в списъка. Можете също така да разположи отново дъщерно обвивка:

удрям
ехо $ TEST_VAR
Hello World!

Отличен! Дъщерното дружество получи оригиналната стойност черупка черупка. Опитайте се да изнася друга променлива, преди да напусне дъщерно обвивка.

износ NEW_VAR = "износ Тестване"

Проверете дали променливата е бил изнесен:

printenv | Впиши NEW_VAR
износ NEW_VAR = Тестване

Сега се върнете към оригиналната обвивка:

Проверете дали можете да отворите тази променлива:

В резултат не се възстановява

Това е така, защото на околната среда променливи се изпращат само за деца процеси. Embedded метод на променлива родител плащам не. В повечето случаи, това пречи на ефекта от програмите на работната среда, от които те бяха започнати.

Частично NEW_VAR е създадена като дъщерна фирма на променлива среда черупка. Тази променлива е валиден за определен черупка и своите подчинени, черупки или процеси. След завръщането на потребителя към оригиналната обвивка, тази среда е унищожена.

Преместване и нулиране на променливи

Частично TEST_VAR все още е променлива на средата. За да отново да го направи променлива черупка, въведете:

износ -н TEST_VAR

Сега, тази променлива вече не е променлива на средата:

printenv | Впиши TEST_VAR

Тази променлива е отново на обвивката:

настроен | Впиши TEST_VAR
TEST_VAR = 'Hello World! "

За да възстановите напълно променливата, дали променливата на средата или черупка, използвайте Отмяна на зададените:

Уверете се, че променлива вече не съществува:

Резултатът не е разширена, защото променлива бе пропуснат.

Автоматична настройка на системни променливи

Както вече споменахме, много програми използват обяснителни променливи върху околната среда, за да се определи как те работят. Инсталирайте необходимите променливи, когато създавате нова черупка, доста неудобно. В допълнение, много променливи са определени непосредствено на входа. Как може автоматично да зададете променливи?

Това е малко по-сложно, отколкото изглежда на пръв поглед, тъй като Баш черупка чете много конфигурационни файлове.

Видовете черупки сесии

Обвивката на Баш чете различни конфигурационни файлове, в зависимост от това как е започнала сесията. Първите два вида сесии, които определят кожата - започва и дъщерно дружество.

Също черупки сесии са интерактивни и не-интерактивни.

Интерактивна сесия черупка (интерактивен черупка) - Тази сесия, взети от терминала. Не-интерактивна сесия обвивка (не-интерактивен черупка) - тази сесия не е свързана с терминала.

По този начин, сесията на черупки, класифицирани в такива аспекти: отправната дъщерното дружество, интерактивна, които не са интерактивни.

Редовна сесия, отворена през SSH, като правило, е начало на интерактивна сесия. Скриптът се стартира от командния ред, обикновено работи в дъщерно неинтерактивен сесия. Терминал сесия - са различни комбинации от тези две свойства.

Така че първото стартиране на сесията получава конфигурацията от файла / и т.н. / профил. След това той търси конфигурационния файл се започне строеж в домашната директория на потребителя, за да получите определена конфигурация от потребителя.

Тази сесия чете файлове

/.profile и не чете останалата част от файловете.

Дъщерно дружество на сесията, от своя страна, гласи /etc/baash.bashrc, а след това на потребителя файл

/.bash.rc за околната среда на разгръщането.

Non-интерактивен черупка прочита променлива BASH_ENV среда и даден файл да се създаде нова среда.

Как да настроите околната среда променливи

Както можете да видите, разпръснати в различни конфигурационни файлове.

Това прави системата много гъвкава, което е полезно в някои ситуации, кога да започне и дъщерни кожи трябва да зададете различни параметри. И все пак, тези мембрани са склонни да използват едни и същи настройки.

За щастие, повечето Линукс дистрибуции показва конфигурации източник дъщерно черупка конфигурационния файл, започващи черупка. Това означава, че околната среда променливи за определяне на двете сесии може да бъде в конфигурационните файлове дъщерно черупка.

Обикновено, променливи, определени от потребителя, се използват и за двете мембрани. Това означава, че тези променливи могат да бъдат настроени във файла

Отворете този файл:

Най-вероятно той вече има малко данни. Повечето от стойностите, дадени тук - са параметри Баш, не са свързани с околната среда променливи. Променливите в този файл са определени по същия начин, както в командния ред:

За да зададете променливи за цялата система, да ги попълните / и т.н. / профил, /etc/bash.bashrc или / и т.н. / среда.

Променливи на обвивката и на околната среда винаги присъстват във всички сесии на корпуса, така че способността да се работи е особено полезно за тях. С тяхна помощ, можете да изпратите на дете по време на конфигурацията на процеса на родител, както и конфигуриране на външните файлове.

В определени ситуации, тя дава редица предимства. Например, някои механизми за внедряване разчитат на околната среда променливи, за да изберете данни за удостоверяване. Това е удобно, тъй като такива важни данни няма да се съхраняват във всеки файл, така че - ще бъдат защитени от външни лица.

Има много други по-често срещани ситуации, в които може да се наложи да се чете или да променя променливите на околната среда на системата. Описани в това ръководство инструменти и методи - отлична основа за развитието на умения за работа с променливи и да ги използват правилно.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!