Каковы значения $ PATH по умолчанию?

13

В Mac OS X $PATHзначения по умолчанию :

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

Каковы значения по умолчанию в Linux?

sonnuforevis
источник
путь по умолчанию определен в config-top.h
bac0n

Ответы:

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
andrewsomething
источник
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
Braiam
источник
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.

Sukupa91
источник