Я сделал некоторые сценарии, которые я хотел бы назвать в терминале только с отдельным словом (как другая традиционная команда оболочки, cd
, ls
, и т.д.).
До сих пор я нашел, что могу поместить сценарии в один из каталогов, на которые указывает путь среды (bin
каталоги) или добавить каталог сценария к пути среды.
По-видимому, Ubuntu рекомендует не изменить любого bashrc
файлы. Кроме того, bashrc
файлы, кажется, звонят только bash_aliases
то, которое я предполагаю, больше для псевдонимов. Кроме того, я нашел, что мог изменить путь для всего пользователя в /etc/environment
или создание сценария в /etc/profile.d
.
Таким образом, то, что я хотел бы знать, - то, что лучшая практика должна создать пользовательскую команду, доступную для одного пользователя только и всем пользователям? (Используйте bin
каталоги или изменяют ПУТЬ? Если последний, которого изменяет файл?)
, Таким образом, я хотел бы знать, что лучшая практика создает пользовательскую команду, доступную для всех пользователей.
/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
Я отвечаю на исходный вопрос о пользовательской команде (не только пользовательский сценарий).
Простая команда для одного отдельного пользователя (текущий пользователь) может быть создана как псевдоним (Вы упомянули псевдоним в своем вопросе), например
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
).
Проверьте очень тщательно, что сценарий оболочки имеет уникальное имя, так, чтобы Вы не 'конкурировали' с (или еще хуже, перезапись) уже существующая исполняемая программа.