Что такое ПУТЬ на Mac OS?

Синхронизация к источнику местного времени, когда ни один на самом деле не существует, является отличным способом иметь Ваши часы, выходят из строя. Вы обнаружили что твердый путь (также, как и я некоторое время назад). Это предназначается для ситуаций, где у Вас есть GPS, атомные часы, или что-то имело отношение, который физически подключен к машине. Если у Вас нет таких аппаратных средств, отключите их.

10
21.08.2014, 22:24
2 ответа

1. Какова цель ПУТИ?

PATH переменная среды, которая содержит разделенный от двоеточия список каталогов, где Ваша оболочка будет искать исполняемые файлы, которые Вы называете на командной строке, не предоставляя явный путь им (как в Вашем jsdoc пример). Таким образом, если Ваш PATH имеет

/usr/bin:/bin:/home/bin

затем любой исполняемый файл Вы, вызов по имени будет разыскиваться в этих каталогах (в том порядке) и первый найденный исполняемый файл, являетесь выполняемым тем.

2. Каково различие между/etc/paths и ~/.bash_profile

Согласно этому вопросу на ServerFault, /etc/paths используется для установки PATH глобально (т.е. в масштабе всей системы, для всех пользователей), в то время как ~/.bash_profile используется для установки предпочтений в расчете на пользователя (где ~ будет корневой каталог пользователя). В чем записан .bash_profile может или добавить к глобальному PATH от /etc/paths или переопределите его полностью.

Для записи, /etc/paths кажется, особенность Mac OS: Я не столкнулся с ним на GNU/Linux, по крайней мере.

14
27.01.2020, 20:00
  • 1
    я просто отредактировал их вниз, но благодарю ответить на всех них! –  gwg 30.01.2014, 00:42
  • 2
    @ggundersen я обрезал свой ответ для установки отредактированному вопросу. –  Joseph R. 30.01.2014, 00:42
  • 3
    @ggundersen Вы могли бы также хотеть прочитать мой ответ и ссылки там о /etc/paths на OSX. –  terdon♦ 30.01.2014, 00:43

Какова цель ПУТИ?

Это - как Ваша оболочка находит программы. Когда Вы вводите ls, например, это запускает названную программу ls который живет в /bin в большинстве систем, включая Mac OS X. Ваша оболочка может только найти это потому что /bin находится в PATH.

Оболочка ищет программы в PATH порядок, слева направо. Если существует два ls программы в Вашей системе и их каталоги находятся оба в Вашем PATH, это найдет тот в каталоге перечисленным сначала в Вашем PATH.

Каково различие между/etc/paths и ~/.bash_profile

Пути начинаются /etc/paths добавляются к PATH при запуске во всех оболочках на Mac OS X.

~/.bash_profile только один из нескольких сценариев оболочки, выполненных Bash при запуске, и несколько из них являются определенными для Bash. Поэтому при изменении оболочки — Mac OS X также поставлется tcsh и zsh, например — изменения, внесенные в /etc/bashrc не обращайтесь к своей новой оболочке.

Кроме того, /etc/paths конфигурационный файл системного уровня, в то время как ~/.bash_profile в расчете на пользователя. Если бы у Вас было несколько интерактивных пользователей, настроенных на Вашем Mac, то Вы не хотели бы добавлять каталоги к /etc/paths то, что Вы не хотели появляться в общем PATH. То же верно для /etc/bashrc, за исключением того, что, конечно, который только относится к пользователям, которые используют Bash в качестве их оболочки.

Каково различие между ПУТЕМ и $PATH и $ {ПУТЬ}?

Вы обычно только видите переменную без символа при установке переменной. FOO=bar наборы FOO переменная среды к строке bar. Если Вы вводите set, оболочка показывает Вам всем переменные среды, и в этом случае Вы также видите переменную без любого символа.

$PATH и ${PATH} являются обычно взаимозаменяемыми. Они говорят оболочке разворачивать ток PATH оперативное значение переменной. Различие имеет отношение, как и где Вы используете их. Например:

$ FOO=bar
$ echo $FOO
bar
$ echo $FOOx

$ echo ${FOO}x
barx

Во втором echo команда, оболочка ничего не печатает, потому что она просит, чтобы оболочка распечатала названную переменную FOOx, который не существует; оболочка рассматривает несуществующие переменные как пустые. Поскольку третье echo использует изогнутый синтаксис фигурной скобки, он позволяет оболочке видеть, что Вы запрашиваете FOO переменная, и что x просто другой символ, который Вы хотите распечатанный сразу позже.

Существует другой способ получить тот же эффект без фигурных скобок, между прочим:

$ echo "$FOO"x
barx

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

Я использую FOO переменная среды здесь только для ясности. Все, что я записал выше, применяется точно также к PATH, так как это - просто другая переменная среды. Тексты в качестве примера просто были бы намного длиннее.

Что экспорт СОЕДИНЯЕТ КАНАЛОМ средний? Когда мы экспортируем?

Взятие вышеупомянутого FOO пример, если бы необходимо было запустить другую программу, она не видела бы FOO переменная, потому что это не экспортируется. Это живет только в том одном экземпляре оболочки:

$ echo $FOO
bar
$ bash
$ echo $FOO

$ exit
$ export FOO
$ bash
$ echo $FOO
bar

Когда я сначала выполняю новое bash оболочка под той, которую я уже использовал, затем попытайтесь показать значение FOO, Я получаю пробел потому что FOO не экспортировался, чтобы подпрограммы видели. Затем я вышел из второго bash экземпляр, экспортируемый это, работал bash снова, и теперь второй экземпляр видит значение FOO.

Вы используете export когда Вы хотите, чтобы подпрограммы видели набор значений в оболочке и не используете его, когда Вы не хотите, чтобы это произошло.

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

Я не собираюсь отвечать на любой из Ваших других вопросов. Вы, как только предполагается, задаете один вопрос за один раз. Я только ответил на это многие, потому что они неопределенно связаны. Все остальное принадлежит отдельного вопроса.

7
27.01.2020, 20:00

Теги

Похожие вопросы