У меня Ubuntu 14.04.2. Я хочу сделать так, чтобы у всех пользователей автоматически был определенный набор псевдонимов. Мои личные псевдонимы установлены в моем личном .bashrc, но я не хочу вручную копировать их другим пользователям. В идеале он должен автоматически устанавливать их и для вновь созданных пользователей.
38
Ответы:
Вы можете создать скрипт
/etc/profile.d/
для создания псевдонимов для всех пользователей:Создайте файл с именем
00-aliases.sh
(или любым другим причудливым именем) в/etc/profile.d
:Поместите в этот файл псевдонимы. Пример:
Сохранить файл
Некоторые заметки:
/etc/profile
это глобальный файл, который запускается раньше~/.profile
./etc/profile.d/
папка, содержащая скрипты, вызываемые/etc/profile
Когда
/etc/profile
вызывается (когда вы запускаете / входите в оболочку), он ищет любые файлы, оканчивающиеся на.sh
in,/etc/profile.d/
и запускает их с помощью одной из следующих команд:00-
перед именем файла, чтобы он выполнялся перед остальными сценариями./etc/profile
, но это не рекомендуется.источник
.sh
файлах в/etc/profile.d/
(или/etc/profile
) будут определены только для оболочек входа в систему, и они не будут работать в интерактивных оболочках без входа в систему. В отличие от переменных среды, bash не может экспортировать псевдонимы в дочерние процессы, даже в дочерние оболочки bash. Может показаться, что этот метод работает должным образом, если он проверен только в оболочках входа в систему, таких как исходная оболочка, полученная при входе в систему на виртуальной консоли или через SSH, но он не работает в дочерних оболочках, а также в оболочках, запускаемых окнами терминала GUI.Как указано здесь , вероятно, лучше добавить глобальные псевдонимы в
/etc/bash.bashrc
:потому что сценарии в
/etc/profile.d
могут быть проигнорированы для определенных (не входящих в систему) оболочек. Мне потребовались часы, чтобы понять, почему/etc/profile.d
не работает.См., Например, https://askubuntu.com/a/606882/ и Понимание .bashrc и .bash_profile для различия между оболочками.
источник
Псевдоним будет работать только внутри оболочки. Если вы хотите что-то столь же широко доступное, как исполняемый файл, вы можете добавить небольшой ярлык
/usr/bin
, например:"$@"
Передает все аргументы через к исполняемым. Имя скрипта будет именем исполняемого файла.Источник: https://unix.stackexchange.com/a/52509/15954
источник
/ И т.д. / Bashrc
Не рекомендуется менять этот файл, если вы не знаете, что делаете. Гораздо лучше создать сценарий оболочки custom.sh в /etc/profile.d/ для внесения пользовательских изменений в вашу среду, поскольку это предотвратит необходимость слияния в будущих обновлениях.
источник