Home Операционна система Променливата PATH в UNIX

Променливата PATH в UNIX

1684 17/08/2021

Променливата PATH

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

Мотивация

Разгледайте следната UNIX терминална сесия:

dbettis@rhino[~]$ ls...

Когато въвеждате командата

ls

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

emacs

,

firefox

и така нататък и така нататък. Но откъде идват тези команди? Очевидно те са включени, когато инсталирате операционната система, но къде са?

Командата UNIX

които

ще ви каже пълния път до abinary, който предстои да изпълни. Например:

dbettis@rhino[~]$ което е ls/bin/ls

Това означава, че изпълнимият файл за командата

ls

се намира в

/bin

. Алтернативно, да бягате

ls

, можете да въведете пълния път до командата:

dbettis@rhino[~]$ /bin/ls...

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

ls

влиза

/bin

? Начинът, който системата знае, е

ПЪТ

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

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

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

dbettis@rhino[~]$ exportdeclare -x ПОТРЕБИТЕЛ="dbettis"...

Името на променливата е

ПОТРЕБИТЕЛ

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

dbettis

. Друг начин да видите съдържанието на променлива на средата е да направите следното:

dbettis@rhino[~]$ echo $USERdbettis

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

Променливата на средата PATH има специален формат. Да видим как изглежда:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.

По същество това е a

:

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

търси във всяка от тези директории, една по една

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

ls

в

/bin

, нали?

/bin

е вторият елемент в променливата PATH. Така че нека премахнем

/bin

от

ПЪТ

. Можем да направим това, като използваме

изложение

rt

команда:

< p>dbettis@rhino[~]$ експортиране PATH=/usr/local/bin:/usr/bin:/sbin:/usr/sbin:.

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

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/usr/bin:/sbin:/usr/sbin:.

Сега, ако се опитаме да избягаме

ls

, обвивката вече не знае да надникне

/bin

!

dbettis@rhino[~]$ ls-bash: ls: командата не е намерена

Както се очаква,

ls

вече не може да бъде намерен. Нека добавим

/bin

назад към

ПЪТ

, като

ls

е много полезно нещо.

dbettis@rhino[~]$ експортиране PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.

Добавяне към PATH

Има много случаи, в които ще искате да добавите елемент

ПЪТ

.Първо, нека видим какъв е токът

ПЪТ

е:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.

Пътят към

добавяне

директория е както следва:

dbettis@rhino[~]$ export PATH=$PATH:/нов/път

Тази команда добавя

/нов/път

до

ПЪТ

. Да видим дали се актуализира:

dbettis@rhino[~]$ echo $PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:.:/new/path

Това да се случва всеки път, когато влезете

В началната ви директория има специален файл, наречен

.bashrc

В UNIX конвенцията е, че файловете започват с

.

са конфигурационни файлове и следователно трябва да бъдат скрити от изглед.

ls

ще изведе само файлове, започващи с a

.

ако премина

-a

флаг. напр.

dbettis@rhino[~]$ ls -a

Във всеки случай този файл (.bashrc) просто съдържа списък с команди. Всяка една от тези команди се изпълнява всеки път, когато създавате newshell.

dbettis@rhino[~]$ cat .bashrcexport PATH="$PATH:/p/firefox/bin"..

Всеки път, когато се стартира обвивка,

/p/firefox/bin

се добавя към

ПЪТ

. Ако желаете определени директории да се добавят автоматично към

ПЪТ

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

dbettis@rhino[~]$ . .bashrc

Latest: Norton 360 Platinum 2021 – Antivirus software for 20 Devices with Auto Renewal - 3 Months FREE - Includes VPN, PC Cloud Backup & Dark Web Monitoring [Download]
Next: How to Update USB Drivers on Windows 10 (Automatic and Manual)
Popular Articles/span>
Back to top