Подтвердить что ты не робот

Экспорт пути в .profile на mac

Я не могу поверить, что после googling нет никаких учебных пособий. Может ли кто-нибудь указать мне направление или объяснить, что означают эти строки и переменные в .profile на mac? Как их настроить?

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
export PATH=$PATH:/usr/local/mysql/bin
#export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
#export PATH=/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5/bin:/Applications/MAMP/htdocs/cake/cake/console:/opt/local/bin:/opt/local/sbin:$PATH
export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH
export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH
4b9b3361

Ответ 1

Любая строка, начинающаяся с #, является комментарием. PATH= устанавливает значение переменной PATH, $PATH расширяется до текущего значения, а export в начале делает значение доступным для программ, которые вы запускаете с терминала.

Предположим, что начальное значение PATH равно /usr/bin:/bin.

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Замените $PATH на предыдущее значение $PATH. Поэтому приведенные выше значения PATH to

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

Перемещение вперед,

export PATH=$PATH:/usr/local/mysql/bin

Снова замените $PATH на предыдущее значение:

/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

После

export PATH=/android-sdks/platform-tools:~/android-sdks/tools:$PATH

имеем

/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

(~ - специальный токен, который будет заменен на путь к вашему домашнему каталогу, но вы должны получить изображение.)

И, наконец, после

export PATH=/Users/android-sdks/platform-tools:/Users/android-sdks/tools:$PATH

получаем

/Users/android-sdks/platform-tools:/Users/android-sdks/tools:/android-sdks/platform-tools:~/android-sdks/tools:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/local/mysql/bin

PATH используется для поиска команд, которые вы вводите в командной строке. Поэтому, если вы наберете foo, оболочка будет искать имена ниже, в указанном порядке:

/Users/android-sdks/platform-tools/foo
/Users/android-sdks/tools/foo
/android-sdks/platform-tools/foo
~/android-sdks/tools/foo
/opt/local/bin/foo
/opt/local/sbin/foo
/usr/bin/foo
/bin/foo
/usr/local/mysql/bin/foo

Чтобы увидеть текущее значение PATH, запустите

echo $PATH

Должны ли вы добавлять новые каталоги в начало PATH или до конца? Это не всегда имеет значение, но иногда это происходит. Это зависит от того, какие местоположения вы хотите проверить в первую очередь.

Вы должны добавить к началу, если цель состоит в поиске других каталогов, прежде чем искать их по умолчанию. Например, git - это утилита, используемая для управления исходным кодом. Если бы я хотел установить более новую версию git в ~/git и использовать ее по умолчанию, я бы сделал:

export PATH=~/git/bin:$PATH

Это означает, что ~/ git/bin/git будет переопределять /opt/local/bin/ git.

С другой стороны, я бы предпочел, чтобы администратор установил git в общесистемную. Если я хочу использовать свою локальную копию только до тех пор, пока администратор не сделает ее доступной для всех, тогда это имеет смысл:

export PATH=$PATH:~/git/bin

В этом случае ~/git/bin/git будет использоваться только в том случае, если /opt/local/bin/git еще не существует, так как /opt/local/bin находится раньше в пути.

Многие команды не будут существовать более чем в одном месте. Например, вы можете написать my-backup-script и поместить его в Apple Time Capsule в /Volumes/Capsule/scripts. Не похоже, что в конфликте может возникнуть команда под названием my-backup-script. Таким образом, любая из следующих команд позволит вам ввести my-backup-script и запустить правую script:

export PATH=/Volumes/Capsule/scripts:$PATH

или

export PATH=$PATH:/Volumes/Capsule/scripts

Лучше ли? Моим советом было бы заняться этим. Помните, что системе нужно будет искать каталоги в $PATH, чтобы, для каждой команды, которую нужно найти. Большинство команд будут в локальной системе, поэтому наиболее разумно положить более медленное сетевое хранилище в конце пути.

Ответ 2

На странице man export просто устанавливает переменную среды.

Переменная среды PATH сообщает вашему Mac, где искать команды, которые вы вводите в командной строке, в том порядке, в котором она должна выглядеть. Это список путей, разделенных двоеточием.

Значение $PATH - это текущее значение переменной среды PATH.

Таким образом, строка типа

export PATH=/foo:$PATH

добавляет /foo к PATH

и

export PATH=$PATH:/foo

добавляет /foo к PATH

Ответ 3

Выполнить man

И затем ответьте на вопрос как export

Вы можете увидеть текущее значение PATH и заметить, что существует более одного пути.

(мой был /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin)

Обратите внимание, что : представляет конец одного пути.

Вы можете получить это с помощью $PATH

Теперь, когда вы хотите добавить еще один путь к этому списку, вам нужно добавить текущий путь к новому пути, например /newPath:$PATH или $PATH:/newPath.

И, наконец, для его сохранения вам нужно использовать export PATH=$PATH:/newPath.

Примечание. Этот ответ предназначен для начинающих разработчиков.