Как я пишу свои сценарии bash для своей ОС X, которые делают общие вещи, мне интересно, где это место, чтобы сохранить их. Есть ли каталог, в который я могу поместить все, где они будут автоматически загружены? Или я должен создать свой собственный каталог, а затем ссылаться на этот каталог из .profile или что-то еще?Где вы храните свои собственные скрипты на OSX?
ответ
Обычно /usr/local/bin
, если только вы не хотите, чтобы другие пользователи имели к ним доступ, и в этом случае $HOME/bin
.
На мой взгляд, вы можете разместить свои сценарии там, где хотите. Это не важно, если вы не использовали системные специальные папки. Я держу мой/scr с правами root только в этой папке. Это убедительно, потому что для всего скрипта в этой папке нужен root-доступ для правильной работы, и я не хочу, чтобы конечные пользователи заглядывали в эту папку.
я мой путь установлен как:
/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.6.18 по умолчанию 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, поэтому вы случайно не отменяете встроенную команду. Если я сделал команду сценария оболочки под названием cp
, я бы не переопределил команду /bin/cp
.
Я поставил '$ HOME/bin' в начале моего пути, чтобы я мог переопределить выбор системы (и я усложняю свой путь, имея несколько версий Perl и GCC в отдельных каталогах и по умолчанию использую самую последнюю версию - они появляются после $ HOME/bin), но в остальном я иду с подобной ей системой. –
@JonathanLeffler Вы должны посмотреть на [Perlbrew] (http://perlbrew.pl). Это позволяет легко переключаться между различными версиями Perl. Для других я поставил двоичные файлы в '/ opt', а затем ссылку. Например, у меня есть '/ opt/apache-ant-1.9.1','/opt/apache-ant-1.8.1', '/ opt/apache-ant-1.7.1' Тот, который я хочу использовать, Я ссылаюсь на '/ opt/ant'. Затем я свяжу двоичные файлы под '/ opt/ant/bin' с'/usr/local/bin'. Чтобы переключать версии, я просто изменяю ссылку под '/ opt' –
@JonathanLeffler. Существует традиция хранить' $ HOME/bin' в конце вашего пути по причинам _security. Это было в те дни, когда все были в одной коробке Unix. Вероятно, это больше не применяется. Я использую '$ HOME/bin' в основном для сценариев оболочки и других скриптов. Бинарники установлены в другом месте и связаны с '/ usr/local/bin' –
Я использую ~/bin
для исполняемых файлов и скриптов, которые я написал себе и /usr/local/bin
для исполняемых файлов и скриптов, которые я сам не писал.
/usr/local/bin
используется Homebrew, pip
(и gem
и 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 перестали работать из-за этого, но также удобно иметь более новые версии команд перед версиями, установленными системой, и использовать один и тот же путь везде.
- 1. Где вы храните свои претензии
- 2. Где вы храните свои заглушки?
- 3. Где вы храните свои настройки проекта?
- 4. Где вы храните свои солевые струны?
- 5. Где вы храните свои строки подключения?
- 6. Где вы держите свои общие скрипты задач sql?
- 7. Как создать свои собственные скрипты в node.js
- 8. Где вы храните логику проверки?
- 9. Как вы организуете/планируете свои тестовые скрипты
- 10. Как вы храните свои скрипты для заданий cron в Zend Framework?
- 11. Создаете ли вы свои собственные генераторы кода?
- 12. Как вы пишете свои собственные измерительные преобразователи
- 13. Где вы храните в библиотеке скриптов PowerShell?
- 14. Где разместить свои собственные общедоступные классы
- 15. Где вы вкладываете свои зависимости?
- 16. Где вы храните пароли базы данных?
- 17. Где вы храните переменные в jinja?
- 18. Где вы храните свой файл gitconfig?
- 19. Где вы храните номер вашей базы данных?
- 20. Где вы храните файлы тестовых данных?
- 21. Где вы получаете свои образцы звука?
- 22. Где вы храните загруженные пользовательские изображения
- 23. Где вы храните свой файл settings.xml?
- 24. Где вы храните вызовы XHR в Ember.js?
- 25. Как вставлять свои собственные видео?
- 26. Непрерывная доставка с capistrano/chef/puppet: где вы храните свои артефакты?
- 27. Python: делать свои собственные заявления
- 28. Kohana - где вы кладете скрипты AJAX?
- 29. Где вы храните свои конфигурации PHP-скриптов, такие как данные доступа к БД?
- 30. Как вы добавляете свои собственные изображения в пример PhotoScroller?
+1 Кроме того, '/ usr/local/bin' может находиться в' PATH' по умолчанию, но '$ HOME/bin' почти наверняка будет добавлен. – chepner
@chepner: да, это правда - я обычно добавляю '$ HOME/bin' в свой' PATH' и использую его для тестирования скриптов и исполняемых файлов. –