Где я должен поставить свои скрипты Bash
У меня есть несколько очень простых скриптов bash, которые я собрал вместе для вещей, которые я делаю регулярно. Одним из них является запуск двуличия для выполнения моих задач резервного копирования. Ничего умного, просто куча если.. тогда заявления действительно. Поскольку это должно быть выполнено как sudo, лучше ли было бы помещать мой сценарий в /usr/bin (или другое место в PATH), а затем в root.root и chmod в 700?
3 ответа
Я сохраняю свои собственные сценарии в /opt/scripts
,
Если ваш сценарий должен выполняться каждым пользователем системы, вы можете создать символическую ссылку на /usr/bin
,
Если только root должен выполнить скрипт, вы можете создать символическую ссылку на /usr/sbin
,
Команда для добавления символической ссылки в /usr/bin/
:
ln -s /opt/scripts/<script> /usr/bin/
Вы можете выполнить скрипт, потому что /usr/bin/
находится в вашем PATH по умолчанию.
Если никто другой, кроме вас, не использует эти сценарии:
Тогда вы можете держать их в /home/$USER/bin
, Создать bin
папку, если ее там нет, и переместите файлы туда. Папка bin в вашем доме будет автоматически добавлена в переменную окружения PATH. Код находится в .profile
:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
См. Как добавить /home/username/bin в $PATH?
Или в некоторых системах это может быть в .bashrc
:
export PATH=${HOME}/bin/:${HOME}/.local/bin:${PATH}
Спасибо Elder Geek
Если эти сценарии будут использоваться другими пользователями:
Тогда либо /usr/local/bin
или же /opt/bin
хорошие варианты. См. Есть ли стандартное место для размещения пользовательских сценариев Linux?
Надеюсь это поможет
У меня есть каталог, который я использую для быстрого сбора моих локальных инструментов или вещей, которые я развертываю на разных компьютерах в /usr/local/apollo
, В этом каталоге есть ветки для flags
, bin
а также logs
,
Для приложений, которые я загружаю и устанавливаю за пределами по умолчанию apt-get
хранилища размещены в /opt/
и каталог по имени приложения, с еще одним подкаталогом для конкретной версии приложения. Таким образом, моя скомпилированная версия приложения, как vlc
или же eclipse
не будет конфликтовать с распределенной версией.
Мое использование /opt
это способ, которым он в основном официально разработан.
Кстати каталоги /usr/local/bin
, /usr/local/apollo
, а также /opt
Переживает установку новой версии ОС.