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

Где вы держите свои собственные скрипты на OSX?

Как я пишу свои сценарии bash для моей OS X, которые делают общие вещи, мне интересно, где это хорошее место для их хранения. Есть ли каталог, в который я могу поместить все, где они будут автоматически загружены? Или я должен создать свой собственный каталог, а затем ссылаться на этот каталог из .profile или что-то в этом роде?

4b9b3361

Ответ 1

Обычно /usr/local/bin, если вы не хотите, чтобы другие пользователи имели к ним доступ, и в этом случае $HOME/bin.

Ответ 2

У меня установлен PATH как:

  • /usr/local/bin
  • /usr/bin
  • /bin
  • /usr/sbin
  • /sbin
  • $HOME/bin

Я использую /usr/local/bin для команд, которые у меня есть, которые переопределяют команды по умолчанию. Например, у меня установлен Subversion 1.7.7, а OS X - 1.6.18. Версия 1.7.7 svn находится в /usr/local/bin, а версия <1,27 > по умолчанию svn находится в /usr/bin. Когда я набираю svn, я получаю версию, которую я установил, вместо версии, поставляемой с OS X. Я сделал это с помощью Java, Git, Python и нескольких других двоичных файлов, где мне нужна другая версия, на моем Mac. Большинство из них - символические ссылки. Например:

$ ls -l /usr/local/bin/ant
lrwxr-xr-x  1 root  wheel       16 Jun 12 11:01 ant -> /opt/ant/bin/ant

Ant 1.9.1 установлен в /opt/ant (фактически, /opt/apache-ant-1.9.1, но он символически связан с /opt/ant). Я связал все вещи под /opt/ant/bin с /usr/local/bin, поэтому он на моем пути.

Я использую $HOME/bin для своих личных сценариев оболочки и других скриптов. Традиционно вы делаете это последней записью в своем PATH, поэтому вы случайно не отменяете встроенную команду. Если я сделал команду оболочки script под названием cp, я бы не переопределял команду /bin/cp.

Ответ 3

Я использую ~/bin для исполняемых файлов и скриптов, которые я написал себе, и /usr/local/bin для исполняемых файлов и сценариев, которые я сам не писал.

/usr/local/bin используется Homebrew, pipgem и npm, установленным Homebrew), как цель по умолчанию для make install и некоторыми установщиками .pkg.

У меня был отдельный каталог для исполняемых файлов и скриптов, которые я сам не записывал и которые по умолчанию не были помещены в /usr/local/bin. Но в нем было так мало файлов, что я переместил все файлы в него на /usr/local/bin.

Я могу найти материал не-доморощенного в /usr/local/bin с помощью find /usr/local/bin ! -lname '../Cellar/*'.

Я не использую /usr/local/bin для сценариев, которые я написал сам, потому что /usr/local/bin уже содержит около 1000 других файлов, а ~/bin (или bin) часто проще вводить.

Я добавил setenv PATH ~/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin в /etc/launchd.conf. Имея /usr/local/bin до того, как другие каталоги потенциально опасны, и, например, некоторые команды TextMate перестали работать из-за этого, но также удобно иметь более новые версии команд перед системно установленными версиями и использовать один и тот же путь везде.

Ответ 4

На мой взгляд, вы можете разместить свои скрипты там, где хотите. Это не важно, если вы не использовали системные специальные папки. Я держу мой /scr с правами root только в этой папке. Это убедительно, потому что для всех script в этой папке нужен root-доступ для правильной работы, и я не хочу, чтобы конечные пользователи заглядывали в эту папку.