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

У меня возникали проблемы с тем, что Firefox «прыгал» из одного словаря в другой. Чтобы исправить это, я запускаю эту команду после каждой установки Ubuntu:

sudo rm /usr/share/hunspell/en_{GB,AU,ZA,CA}.*

Очевидно, это можно редактировать для любого словаря.

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

6 ответов

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

/usr/local/bin. См. «Иерархия файловой системы». Стандарт Ubuntu / Linux следует.

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

4.9.1 Цель The / usr / local hierarchy используется администратором системы при локальном использовании программного обеспечения. При обновлении системного программного обеспечения он должен быть в безопасности. Он может использоваться для программ и данных, которые могут быть включены в группу хостов, но не найдены в / usr. Локально установленное программное обеспечение должно быть помещено в / usr / local, а не / usr, если оно не установлено для замены или обновления программного обеспечения в / usr. 4.9.2 Требования Следующие каталоги или символические ссылки на каталоги должны быть в / usr / local
"/usr/local"
bin
games
include
lib
man
sbin
share
src

4.9.1 Цель

mkdir $HOME/bin
gedit $HOME/.bashrc

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

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

Поэтому я хотел бы знать, как лучше создать пользовательскую команду, доступную только одному пользователю

и добавить на bottom:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi
7
ответ дан 22 May 2018 в 18:30
  • 1
    Это место для команд для всех пользователей. Только для текущего пользователя создайте каталог bin непосредственно в своем домашнем каталоге (если он еще не существует) и поместите туда скрипты. После создания каталога вам необходимо перезапустить оболочку (закрыть и открыть окно терминала), чтобы система включала ее в ваш $PATH. – Byte Commander 13 September 2017 в 16:28
  • 2
    Правильно, но я пытался найти доказательство для " Очевидно, Ubuntu рекомендует не изменять любые файлы bashrc " 1-й: D – Rinzwind 13 September 2017 в 16:36
  • 3
    Но раздел, который добавляет ~/bin к пользовательскому $PATH, уже находится внутри .profile по умолчанию. Не нужно ничего редактировать. – Byte Commander 13 September 2017 в 17:03
  • 4
    @ByteCommander Это верно для $HOME/bin, но кто-то может захотеть добавить другой каталог, такой как $HOME/.bin, тогда инструкции пригодится. – dessert 13 September 2017 в 21:48
  • 5
    @dessert Если кто-то хочет поставить «скрытый», в PATH, тогда они могут редактировать свои .bashrc или .bash_profile, чтобы добавить их сами. Если им нужна помощь в этом, им необходимо серьезно пересмотреть, почему они «окрашиваются за пределы линий». используя что-то отличное от $ HOME / bin, которое предоставляется им по умолчанию. – Monty Harder 14 September 2017 в 01:10
Поэтому я хотел бы знать, как лучше создать пользовательскую команду, доступную всем пользователям.

/usr/local/bin. См. «Иерархия файловой системы». Стандарт Ubuntu / Linux следует.

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

4.9.1 Цель The / usr / local hierarchy используется администратором системы при локальном использовании программного обеспечения. При обновлении системного программного обеспечения он должен быть в безопасности. Он может использоваться для программ и данных, которые могут быть включены в группу хостов, но не найдены в / usr. Локально установленное программное обеспечение должно быть помещено в / usr / local, а не / usr, если оно не установлено для замены или обновления программного обеспечения в / usr. 4.9.2 Требования Следующие каталоги или символические ссылки на каталоги должны быть в / usr / local
"/usr/local" bin games include lib man sbin share src

4.9.1 Цель

mkdir $HOME/bin gedit $HOME/.bashrc

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

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

Поэтому я хотел бы знать, как лучше создать пользовательскую команду, доступную только одному пользователю

и добавить на bottom:

if [ -d "$HOME/bin" ] ; then PATH="$PATH:$HOME/bin" fi
7
ответ дан 18 July 2018 в 06:56
Поэтому я хотел бы знать, как лучше создать пользовательскую команду, доступную всем пользователям.

/usr/local/bin. См. «Иерархия файловой системы». Стандарт Ubuntu / Linux следует.

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

4.9.1 Цель The / usr / local hierarchy используется администратором системы при локальном использовании программного обеспечения. При обновлении системного программного обеспечения он должен быть в безопасности. Он может использоваться для программ и данных, которые могут быть включены в группу хостов, но не найдены в / usr. Локально установленное программное обеспечение должно быть помещено в / usr / local, а не / usr, если оно не установлено для замены или обновления программного обеспечения в / usr. 4.9.2 Требования Следующие каталоги или символические ссылки на каталоги должны быть в / usr / local
"/usr/local" bin games include lib man sbin share src

4.9.1 Цель

mkdir $HOME/bin gedit $HOME/.bashrc

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

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

Поэтому я хотел бы знать, как лучше создать пользовательскую команду, доступную только одному пользователю

и добавить на bottom:

if [ -d "$HOME/bin" ] ; then PATH="$PATH:$HOME/bin" fi
7
ответ дан 24 July 2018 в 18:42

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

Простая команда - alias

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

alias rm='rm -i'

, чтобы сделать команду remove интерактивной. Это работает «сейчас» и только в текущем окне терминала. Вы можете сохранить его в ~/.bashrc рядом с стандартными псевдонимами, и он будет активирован во всех окнах терминала в будущем, а также в текстовых экранах.

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

Рекомендуется создать резервную копию файла .bashrc перед редактированием, на всякий случай, например,

cd
cp -p .bashrc .bashrc.0

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

Расширенная команда - функция или shellscript

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

, которая определяется как следующие примеры либо как это (только bash)
function rmi {
 rm -i
}
или более общий (также когда оболочка вызывается как sh)
rmi () {
 rm -i
}
. Такая функция активируется подобно псевдониму и может быть сохранена таким же образом в ~/.bashrc. shellscript, который является текстовым файлом с командами bash. Если вы хотите, чтобы только текущий пользователь использовал shellscript, вы можете сохранить его в ~/bin.
mkdir ~/bin  # create `~/bin`, if it is not already created.
В противном случае, если вы хотите, чтобы все пользователи использовали shellscript, вы можете сохранить его в одном из общих каталогов для исполняемых программ и скриптов, например /usr/local/bin (или /usr/local/sbin, если сценарий должен быть запущен с [ F13]). Внимательно проверьте, что shellscript имеет уникальное имя, так что вы не «конкурируете» с (или, что еще хуже, переписываете) уже существующую исполняемую программу.
3
ответ дан 22 May 2018 в 18:30

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

Простая команда - alias

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

alias rm='rm -i'

, чтобы сделать команду remove интерактивной. Это работает «сейчас» и только в текущем окне терминала. Вы можете сохранить его в ~/.bashrc рядом с стандартными псевдонимами, и он будет активирован во всех окнах терминала в будущем, а также в текстовых экранах.

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

Рекомендуется создать резервную копию файла .bashrc перед редактированием, на всякий случай, например,

cd cp -p .bashrc .bashrc.0

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

Расширенная команда - функция или shellscript

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

, которая определяется как следующие примеры либо как это (только bash) function rmi { rm -i } или более общий (также когда оболочка вызывается как sh) rmi () { rm -i } . Такая функция активируется подобно псевдониму и может быть сохранена таким же образом в ~/.bashrc. shellscript, который является текстовым файлом с командами bash. Если вы хотите, чтобы только текущий пользователь использовал shellscript, вы можете сохранить его в ~/bin. mkdir ~/bin # create `~/bin`, if it is not already created. В противном случае, если вы хотите, чтобы все пользователи использовали shellscript, вы можете сохранить его в одном из общих каталогов для исполняемых программ и скриптов, например /usr/local/bin (или /usr/local/sbin, если сценарий должен быть запущен с sudo). Внимательно проверьте, что shellscript имеет уникальное имя, так что вы не «конкурируете» с (или, что еще хуже, переписываете) уже существующую исполняемую программу.
3
ответ дан 18 July 2018 в 06:56

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

Простая команда - alias

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

alias rm='rm -i'

, чтобы сделать команду remove интерактивной. Это работает «сейчас» и только в текущем окне терминала. Вы можете сохранить его в ~/.bashrc рядом с стандартными псевдонимами, и он будет активирован во всех окнах терминала в будущем, а также в текстовых экранах.

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

Рекомендуется создать резервную копию файла .bashrc перед редактированием, на всякий случай, например,

cd cp -p .bashrc .bashrc.0

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

Расширенная команда - функция или shellscript

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

, которая определяется как следующие примеры либо как это (только bash) function rmi { rm -i } или более общий (также когда оболочка вызывается как sh) rmi () { rm -i } . Такая функция активируется подобно псевдониму и может быть сохранена таким же образом в ~/.bashrc. shellscript, который является текстовым файлом с командами bash. Если вы хотите, чтобы только текущий пользователь использовал shellscript, вы можете сохранить его в ~/bin. mkdir ~/bin # create `~/bin`, if it is not already created. В противном случае, если вы хотите, чтобы все пользователи использовали shellscript, вы можете сохранить его в одном из общих каталогов для исполняемых программ и скриптов, например /usr/local/bin (или /usr/local/sbin, если сценарий должен быть запущен с sudo). Внимательно проверьте, что shellscript имеет уникальное имя, так что вы не «конкурируете» с (или, что еще хуже, переписываете) уже существующую исполняемую программу.
3
ответ дан 24 July 2018 в 18:42

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

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