Що таке значення за замовчуванням $ PATH?


Відповіді:


18

За замовчуванням встановлення робочого столу Ubuntu $PATH:

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Але в мінімальному середовищі chroot, створеному debootstrap, $PATHмістить лише:

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin

5

Значення шляху середовища зберігаються у файлі .bashrc в ubuntu.

Загальносистемна змінна PATH визначена в /etc/environment


3

Є снаряд, побудований в оболонках, який є

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Тоді шлях за замовчуванням для Ubuntu:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

3

Існує простий спосіб дізнатися:

printenv

Або, прямо прямо:

echo $PATH

Але, якщо ви просто шукаєте швидку інформацію, Ubuntu зазвичай встановлює шлях до:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / bin / X11: / usr / games:

На такі питання, як правило, можна викопати відповідь, прочитавши Біблію .


2

Залежно від того, який Linux ви використовуєте, воно може бути різним. Якщо у вас вже є вхід в Linux, просто введіть 'env', щоб побачити змінні середовища.

Якщо ви хочете знати, як створюється змінна PATH env, перегляньте .bashrc та .bash_profile у своєму домашньому каталозі. Якщо цікавіше, ви також можете переглянути / etc / profile, /etc/profile.d/* (якщо є) та посібник з bash (man bash).


2

bashвстановить PATHтвердо кодоване значення за замовчуванням, якщо воно не встановлено в оточенні:

$ env -i bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Ми можемо перевірити, чи справді це значення жорстко закодовано, а не читається з оточення чи якогось файлу, використовуючи stringsутиліту:

$ strings /bin/bash | grep /usr/sbin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Однак я отримую інший результат на своїй машині Arch Linux:

$ env -i bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin

Отже, схоже, цей параметр за замовчуванням вибирається в момент створення bashбінарного файлу, що залежить від використовуваного дистрибутива Linux.


Це єдина відповідь, що згадує оболонку та розподіли. Я натрапив на це питання, оскільки я сортую проблеми PATH у контейнерах ubuntu. І "шлях за замовчуванням" буде залежати від оболонки (bash, sh і т. Д.) І від того, завантажений він інтерактивно чи ні, і чи це оболонка для входу. Це не проста відповідь. Кудо для згадки про твердо кодованих рядках у бінарному.
init_js

1

Щоб побачити шлях за замовчуванням, використовуйте те, що згадується у відповідях:

echo $PATH

Для редагування використання:

gedit ~/.bashrc

Ця PATHзмінна за замовчуванням визначена під /etc/enviroment.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.