Начало - Антивируси
Променливи на средата на пътя. PATH променлива на средата Path променлива ubuntu

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

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

$HOME
Променливата съдържа пътя до домашната директория на текущия потребител. $USER
Текущо потребителско име $PATH
Списък с директории за черупката за търсене на изпълними програми. $PWD
Път до текущата работна директория (или pwd). Пример: dir_path=$(pwd) . $ШЕЛ
Интерпретатор по подразбиране $RANDOM
Генерира произволно число 0..32767 при всеки достъп до променлива. $СЕКУНДИ
Време в сек. от момента, в който стартирате командната обвивка. $? Резултатът от предишната команда. $HOSTNAME
Име на компютър $HISTFILE
Път до файла с хронология на интерпретатора $IFS
Списък със знаци за разделяне на команди, параметри, елементи на масив (по подразбиране: интервал, раздел, нов ред) $PS1
Шаблон за низ за подкана на интерпретатора.

Временно задаване на променлива на средата

Задаване на променлива на средата за периода на сесията:

# За нов процес env varname=value [команда] # За текущата обвивка и всички негови подпроцеси експортиране на varname=value [команда]

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

Задаване на постоянна стойност

Променливите на средата на системно ниво се задават чрез файла /etc/environment:

ОКОЛНА СРЕДА="dev"

Задаване на специфична за потребителя променлива на средата чрез файла ~/.bashrc или ~/.bash_profile:

PATH="$(PATH):/home/user/bin:"

внимание!

Файлът ~/.bash_profile ще бъде изпълнен, когато интерпретаторът се стартира с ключа -l. Този файл не може да бъде прочетен, когато сте влезли локално!

Също така трябва да запомните, че промените ще влязат в сила само след рестартиране на сесията!

Преглед на стойността на променлива на средата

За да видите стойността на променлива на средата, има команда printenv:

Printenv<имя_переменной>

#shell, #bash, #environment

Променливите на средата в Linux са специални променливи, дефинирани от обвивката и използвани от програмите по време на изпълнение. Те могат да бъдат определени от системата и потребителя. Системни променливи Linux средасе дефинират от системата и се използват от програми на системно ниво.

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

В по-общ план променливата на средата може да бъде от три типа:

1. Локални променливи на средата

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

2. Персонализирани променливи на Shell

Тези променливи на обвивката в Linux са дефинирани за конкретен потребител и се зареждат всеки път, когато потребителят влезе с помощта на локален терминал или се свърже дистанционно. Такива променливи обикновено се съхраняват в конфигурационни файлове: .bashrc, .bash_profile, .bash_login, .profile или други файлове, разположени в потребителската директория.

3. Променливи на системната среда

Тези променливи са достъпни в цялата система за всички потребители. Те се зареждат при стартиране на системата от системни файловеконфигурации: /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.

Конфигурационни файлове за променливи на средата на Linux

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

.bashrc

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

.bash_profile

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

/etc/environment

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

/etc/bash.bashrc

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

/etc/profile

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

Всички променливи на средата на Linux, създадени с помощта на тези файлове, могат да бъдат премахнати просто чрез изтриването им от там. Само след всяка промяна трябва или да излезете и да влезете отново, или да изпълните тази команда:

име на изходния файл

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

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

променлива=стойност
$ експортиране var=стойност

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

Има няколко команди, които можете да използвате за премахване на променливи на средата:

1. Използване на env

По подразбиране можете да използвате env, за да видите всички зададени променливи на средата. Но с опцията -i ви позволява временно да премахнете всички променливи на обвивката и да изпълните командата без променливи.

команда env –i

Var е всяка променлива, която искате да предадете на тази команда.

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

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

2. Използване на unset

Това е друг начин за премахване на променливи на средата на Linux. Unset премахва променлива по име до края на текущата сесия:

незададено име_на_променлива

3. Задайте стойността на променливата на ""

Това е най-лесният начин за премахване на променливи на средата в Linux; като зададете променлива на празна, вие я премахвате до края на текущата сесия.

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

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

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

1. Задайте и премахнете локални променливи в Linux

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

VAR1="Загубен"
$ ехо $VAR1
$unset VAR1
$ ехо $VAR1

Друг начин за създаване на променлива е с командата за експортиране. Нека го премахнем, като присвоим празна стойност:

експортиране на VAR="Losst"
$ ехо $VAR
$VAR=
$ ехо $VAR

Сега нека създадем променлива VAR2 и да зададем нейната стойност. И след това временно премахнете всички локални променливи, като изпълните env -i. Той ще стартира обвивка без никакви променливи. След въвеждане на exit всички променливи ще бъдат възстановени.

VAR2="Загубен"
$ ехо $VAR2
$ env -i bash
$ ехо $VAR2

Задаване и премахване на потребителски променливи

Редактирайте файла .bashrc във вашата домашна директория, като добавите команда за експортиране, за да експортирате желаната променлива. След това изпълнете командата източник, за да приложите промените. Нека създадем, например, променливата CD:

Добавете този ред (o, след това поставете, след това Esc и :wq):

експортиране на CD="Това е изгубен дом"

Сега остава да актуализирате конфигурацията:

източник.bashrc
$echo $CD

За да премахнете тази променлива, просто я премахнете от .bashrc.

Сега нека добавим променлива на средата с помощта на .bash_profile. Тази променлива, както вече знаете, ще бъде достъпна само по време на дистанционно влизане:

vi .bash_profile

Добавете реда:

export VAR2="Това е изгубен дом"

И изпълнете тези команди, за да приложите промените и проверете дали променливата е добавена:

source.bash_profile
$ ехо $VAR2

Променливата не е налична, защото сте създали локална терминална сесия, сега се свържете чрез ssh:

ssh потребител@localhost
$ ехо $VAR2

Можете да изтриете тази променлива на средата по същия начин, както в предишния случай, като я изтриете от файла.

коментар: Тези променливи са винаги налични, но не за всички потребители.

Задаване и премахване на променливи на системната среда

Нека създадем променлива, достъпна за всички потребители терминални сесии, с изключение на изтритите, като го добавите към /etc/bash.profile:

vi /etc/bash.profile

export VAR="Това е променлива за цялата система"

След това актуализираме:

източник /etc/bash.bashrc

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

ехо $VAR
$sudo su
$ ехо $VAR
$su -
$ ехо $VAR

Ако искате да направите променлива на средата достъпна за всички потребители, които се свързват отдалечено с тази машина, редактирайте файла /etc/profile:

export VAR1="Това е променлива за цялата система само за отдалечени сесии"

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

източник /etc/profile
$ ехо $VAR1

Ако трябва да добавите променлива на средата в Linux, така че да е достъпна както отдалечено, така и за локални сесии, експортирайте я в /etc/environment:

vi /etc/environment

export VAR12="Достъпен съм навсякъде"

Ние проверяваме:

източник /etc/environment
$ ехо $VAR12
$sudo su
$ ехо $VAR12
$ изход
$ssh локален хост
$ ехо $VAR12

AIR SDK съдържа няколко програми, от които можете да стартирате команден редили терминални прозорци. Ще бъде много по-лесно да стартирате тези програми, ако дефинирате пътя до директорията bin на SDK с помощта на променливата на средата Path.

Този раздел представя общо описаниеПроцедури за настройка на пътя на Windows, Mac и Linux. Компютърните конфигурации обаче може да се различават значително, така че тази процедура може да не работи на всички системи. В този случай необходимата информацияможете да намерите в документацията за операционна системаили в Интернет.

Задаване на променливата на средата PATH на Linux и Mac OS с помощта на обвивката Bash

Когато се въведе команда в терминален прозорец, обвивката (програмата, която чете въведените команди и се опитва да отговори по подходящ начин) трябва първо да намери командната програма в файлова система. Обвивката търси в списък с директории за команди, които се съхраняват в променлива на средата, наречена $PATH. За да видите текущата стойност на променливата на пътя, въведете следната команда:

Ехо $PATH

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

/usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin

Пътят до директорията на AIR SDK bin трябва да бъде добавен към този списък, така че черупката да може да намери ADT и ADT инструменти. Да приемем, че AIR SDK се намира в директорията /Users/fred/SDKs/AIR. В този случай използвайте следната команда, за да добавите желаните директории към променливата на средата path:

Експортиране на PATH=$PATH:/Users/fred/SDKs/AIR/bin:/Users/fred/SDKs/android/tools

Забележка. Ако пътят съдържа интервали, трябва да ги предхождате с обратна наклонена черта, както е показано по-долу:

/Users/fred\ jones/SDKs/AIR\ 2.5\ SDK/bin

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

Echo $PATH /usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/x11/bin:/Users/fred/SDKs/AIR/bin:/Users/fred/SDKs/android/ инструменти

Директориите бяха добавени успешно. Сега можете да извикате следните команди и да получите правилния отговор:

Adt-версия

Ако променливата на средата $PATH е променена правилно, командата трябва да върне версията на средата на ADT.

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

Често срещано решение на този проблем е да добавите командата към един от стартиращите скриптове, използвани от обвивката. В Mac OS можете да създадете файл .bash_profile в директорията ~/username, който ще се стартира всеки път, когато отворите нов прозорец на терминала. В Ubuntu скриптът, който се изпълнява, когато отворите нов терминален прозорец, е .bashrc. В други Linux дистрибуцииПодобни правила важат и за черупките.

Процедура за добавяне на команда към скрипт за стартиране на shell

    Промяна на началната директория:

    Създайте конфигурационен профил на обвивката (ако е необходимо) и пренасочете въведения текст към края на файла, като използвате командата " cat >> ". Използвайте подходящия файл за вашата операционна система и обвивка. Например, в Mac OS можете да използвате .bash_profile, а в Ubuntu можете да използвате .bashrc.

    Котка >> .bash_profile

    Въведете текста, който искате да добавите към файла:

    Експортиране на PATH=$PATH:/Users/cward/SDKs/android/tools:/Users/cward/SDKs/AIR/bin

    Завършете пренасочването на текст, като натиснете CTRL-SHIFT-D на клавиатурата.

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

    Cat.bash_profile

    Отворете нов терминален прозорец, за да проверите пътя:

    Ехо $PATH

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

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

Задаване на променливата на средата PATH в Windows

Когато команден прозорец се отвори в Windows, той наследява глобалните променливи на средата, дефинирани в System Properties. Една важна променлива е променливата път, която съдържа списък с директории, в които се търси въведената програма. За да видите текущия списък с директории в променливата на пътя, можете да въведете следната команда в командния прозорец:

Задайте път

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

Път=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem

Пътят до директорията на AIR SDK bin трябва да бъде добавен към този списък, така че командната програма да може да намери ADT и ADT инструменти. Да приемем, че AIR SDK се намира в директорията C:\SDKs\AIR. В този случай пътят може да се добави, както следва:

    В секцията Контролен панел отворете диалоговия прозорец Свойства на системата или щракнете с десния бутон върху иконата Моят компютър и изберете Свойства от менюто.

    В раздела Разширени щракнете върху бутона Променливи на средата.

    В секцията Системни променливи на диалоговия прозорец Променливи на средата изберете Път.

    Кликнете върху бутона "Редактиране".

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

    В самия край на текущата стойност въведете следния текст:

    ;C:\SDKs\AIR\bin

    Щракнете върху „OK“ във всички диалогови прозорциза да запазите пътя.

Ако в този момент има отворени командни прозорци, промените в тях няма да бъдат приложени. Отворете нов команден прозорец и въведете следната команда, за да се уверите, че променливата на средата е зададена правилно:

Adt-версия

Ако местоположението на AIR SDK бъде променено по-късно или бъде добавена нова версия, променливата на средата на пътя ще трябва да бъде съответно променена.

Какво е? Много от командите, които въвеждате в командния ред, изискват външна програма, зареден от файловата система. Например команди като mkdir и wc всъщност се намират в папката /bin.

Когато въведете инструкция, която Bash shell не разпознава, тя се опитва да я изпълни като програма и връща грешка, ако не намери програма с това име. И това се отнася не само за основните команди, които разгледахме, защото от командния ред можете да стартирате всяка програма.


Но как ако има файл Linux системазнае кои програми от кои директории да стартира? ОС използва променлива на системната среда, за да укаже поднабор от папки за търсене при получаване на неизвестна команда. Тази променлива се нарича PATH и може да бъде показана със следната команда echo (символът $ е задължителен):

Ехо $PATH

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

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/игри

Всеки път, когато влезете в неизвестен Linux командище прегледа всяка от папките, посочени в променливата на средата в реда, в който са били посочени, опитвайки се да намери програма със същото име. Ако програмата бъде намерена, тя се изпълнява; в противен случай се показва съобщение за грешка. Но няма да е грешка, ако купите любимите си сребърни пръстени като подарък. Среброто ще украси всяка жена!

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

Например, изтеглили сте помощната програма за дневник от Интернет в домашната си папка. Ако въведете името му в командния ред, ще получите съобщение за грешка, защото е в папка, която не е включена в системния път. За да стартирате тази програма, въведете следния ред (не забравяйте, че символът ~ е съкращение за вашата домашна папка):

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

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

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

  • /etc/profile
  • ~/.bash_профил
  • ~/.bash_login
  • ~/.профил

(в посочения ред) и изпълнява командите, съдържащи се в тях. Ако башсе стартира отново от командния ред в интерактивен режим (т.е., за да не се изпълнява нито една отделна команда), след което намира файла ~/.bashrc и изпълнява съдържащите се в него команди. Въпреки това, в дистрибуцията на Mandrake, файлът ~/.bashrc също се извиква за обвивката за влизане и файлът /etc/bashrc за цялата система също се извиква от него. Така че, както виждате, тук има опции.

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

Файловете /etc/profile и /etc/bashrc дефинират настройките на потребителската среда за цялата система, докато останалите изброени файлове дефинират индивидуалната потребителска среда. Относително малки допълнения или корекции на отделни файлове с настройки, които променят стойностите по подразбиране ​​​​могат да направят работата на вашата система много по-приятна (вкусът, както знаем, не е спор и е малко вероятно хората, които са определили настройките по подразбиране познах вашите предпочитания). Така че нека да разгледаме набързо основните променливи на потребителската среда и как можете да ги промените сами.

Първо, погледнете променливите на средата, които са зададени по подразбиране. Както вече казахме в раздел 5.6, това може да стане с помощта на командите комплект(и подобна команда наборен) или околна среда. Стойността, присвоена на отделна променлива, може да се види с помощта на командата echo $name, Къде име— име на променлива.

От всички променливи, които ще видите в командата комплект, обикновено променят външния вид на подканата на PS1 и списъка с пътища за търсене на PATH. Как да промените стойностите на тези променливи е описано подробно в раздел 5.6. Ако по някакъв начин сте пропуснали този раздел, вижте го сега. Така че всичко, което остава, е да решите в кой скрипт да зададете нови стойности за тези променливи. Нека да разгледаме този въпрос, използвайки променливата PATH като пример.

Променливата PATH се формира в два скрипта: /etc/profile (пътища, общи за всички потребители) и в един от потребителските скриптове (например в ~/.bash_profile), където потребителят може да добавя пътища към предварително генерирания списък на ще. Просто не правете това във файла ~/bashrc, тъй като последният се рестартира всеки път, когато стартирате втория, третия и т.н. екземпляр на обвивката. За да добавите път към променливата PATH, трябва да въведете следния ред в избрания скрипт (в този пример пътят /home/user/bin се добавя към списъка):

PATH=$PATH:/home/user/bin

Моля, обърнете внимание, че в края няма двоеточие. И имайте предвид, че директориите се търсят за файла в реда, в който са изброени в променливата PATH.

За разлика от MS-DOS, Linux не търси изпълнимия файл в текущата директория. Следователно, ако искате търсенето да се извърши в текущата директория, трябва да добавите тази директория (не забравяйте, че тя има име, състоящо се от една точка) към променливата PATH. Но имайте предвид, че от гледна точка на сигурността добавянето на текущата директория към списъка с пътища за търсене е неприемливо, тъй като атакуващият може да постави злонамерена програма, наречена на една от често използваните системни помощни програми, в една от достъпните за него директории. чрез писане. И когато стартирате тази програма, мислейки, че изпълнявате системна помощна програма, това може да причини голяма вреда на вашата система, особено ако я стартирате като суперпотребител.

Ако желаете, можете малко да „украсите живота си“, като включите цветния изход в командата ls(ако е черно-бял по подразбиране). За да направите това, редактирайте файла /etc/bashrc и добавете реда:

псевдоним ls = "ls -F --color"

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

COLORTERM = ; експортиране на COLORTERM

В. Костромин (kos в rus-linux dot net) - 8.8. Настройка на потребителската среда

 


Прочетете:



Процес на рестартиране на браузъра Firefox

Процес на рестартиране на браузъра Firefox

Повечето проблеми с Firefox могат да бъдат коригирани, като следвате методите за отстраняване на неизправности, описани по-долу. Опитайте тези стъпки в ред. Ако някой не работи,...

Безплатно нулиране на нивото на мастилото в принтери Epson L100, L110, L210, L300, L350, L355, L550, L555, L800

Безплатно нулиране на нивото на мастилото в принтери Epson L100, L110, L210, L300, L350, L355, L550, L555, L800

Безплатно нулиране на нивото на мастилото за принтери Epson L110, L210, L300, L350, L355, L550, L555.

VK руската версия на моята страница

VK руската версия на моята страница

Инструкции за презареждане на контейнери с мастило и...

Форматиране на SD и microSD карти с памет: защо е необходимо и как да го направите

Форматиране на SD и microSD карти с памет: защо е необходимо и как да го направите

Социалната мрежа VKontakte моята страница днес е един от най-популярните интернет ресурси в света, да не говорим за Русия и Украйна. тя...

feed-image RSS