Каковы значения $ 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

4

Значения пути к среде хранятся в файле .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 / местные / SBIN: / USR / местные / бен: / USR / SBIN: / USR / бен: / SBIN: / бен: / USR / bin / X11: / USR / игры:

На подобные вопросы вы обычно можете найти ответ, прочитав Библию .


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.