Лучшая практика для создания пользовательского сценария

Я сделал некоторые сценарии, которые я хотел бы назвать в терминале только с отдельным словом (как другая традиционная команда оболочки, cd, ls, и т.д.).

До сих пор я нашел, что могу поместить сценарии в один из каталогов, на которые указывает путь среды (bin каталоги) или добавить каталог сценария к пути среды.

По-видимому, Ubuntu рекомендует не изменить любого bashrc файлы. Кроме того, bashrc файлы, кажется, звонят только bash_aliases то, которое я предполагаю, больше для псевдонимов. Кроме того, я нашел, что мог изменить путь для всего пользователя в /etc/environment или создание сценария в /etc/profile.d.

Таким образом, то, что я хотел бы знать, - то, что лучшая практика должна создать пользовательскую команду, доступную для одного пользователя только и всем пользователям? (Используйте bin каталоги или изменяют ПУТЬ? Если последний, которого изменяет файл?)

3
задан 13 September 2017 в 21:19

2 ответа

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

/usr/local/bin. Посмотрите Стандарт Иерархии Файловой системы , Ubuntu/Linux следует.

4.9/usr/local: Локальная иерархия

4.9.1 Целей

/usr/local иерархия для использования системным администратором при установке программного обеспечения локально. Должно быть безопасно от того, чтобы быть перезаписанным, когда системное программное обеспечение обновляется. Это может использоваться для программ и данных, которые совместно используемы среди группы хостов, но не найденные в/usr.

Локально установленное программное обеспечение должно быть помещено в/usr/local, а не/usr, если это не устанавливается на замене или программном обеспечении обновления в/usr.

4.9.2 Требований

следующие каталоги или символьные ссылки на каталоги, должны быть в/usr/local

"/usr/local"
bin
games
include
lib
man
sbin
share
src

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

mkdir $HOME/bin
gedit $HOME/.bashrc

, и добавляет внизу:

export PATH="$HOME/bin:$PATH"

В случае необходимости можно также установить это в ~/.profile и в /etc/profile (там, необходимо будет использовать имя пользователя для создания определенных ПУТЕЙ хотя).

Пример .profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi
8
ответ дан 1 December 2019 в 13:05

Я отвечаю на исходный вопрос о пользовательской команде (не только пользовательский сценарий).

Простая команда - псевдоним

Простая команда для одного отдельного пользователя (текущий пользователь) может быть создана как псевдоним (Вы упомянули псевдоним в своем вопросе), например

alias rm='rm -i'

сделать удалить команду интерактивной. Это работает 'теперь' и только в текущем окне терминала. Можно сохранить его в ~/.bashrc около стандартных псевдонимов, и это будет активировано во всех окнах терминала в будущем и также текстовых экранах.

Заметьте, что псевдонимы Вашего текущего пользователя не работают с sudo (если Вы не создаете псевдоним для пользовательский корень также и храните его в /root/.bashrc).

Это - хорошая идея скопировать .bashrc файл (файлы) перед редактированием, на всякий случай, например

cd
cp -p .bashrc .bashrc.0

См. также эту ссылку, Объединение 2 команды в 1 команду Custom?

Усовершенствованная команда - функциональный или сценарий оболочки

Если Вы хотите назвать более усовершенствованную команду, которая состоит из нескольких командных строк и/или использует параметры сложным способом, можно использовать

  • функция, которая определяется как следующие примеры

    • любой как это (колотят только),

      function rmi {
       rm -i
      }
      
    • или более общий (также, когда оболочка вызывается как sh),

      rmi () {
       rm -i
      }
      

    Такая функция активируется как псевдоним и может быть сохранена таким же образом в ~/.bashrc.

  • сценарий оболочки, который является текстовым файлом с командами удара.

    • Если Вы хотите только, чтобы текущий пользователь использовал сценарий оболочки, можно сохранить его в ~/bin.

      mkdir ~/bin  # create `~/bin`, if it is not already created.
      
    • Иначе, если Вы хотите, чтобы все пользователи использовали сценарий оболочки, можно сохранить его в одном из общих каталогов для исполняемых программ и сценариев, например /usr/local/bin (или /usr/local/sbin если скрипт должен быть запущен с sudo).

      Проверьте очень тщательно, что сценарий оболочки имеет уникальное имя, так, чтобы Вы не 'конкурировали' с (или еще хуже, перезапись) уже существующая исполняемая программа.

3
ответ дан 1 December 2019 в 13:05

Другие вопросы по тегам:

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