У меня есть Ubuntu 14.04.2. Я хочу сделать так, чтобы все пользователи автоматически имели определенный набор псевдонимов. Мои личные псевдонимы установлены в моем личном .bashrc, но я не хочу вручную копировать их другим пользователям. В идеале он должен автоматически устанавливать их и для вновь созданных пользователей.
Можно создать сценарий в /etc/profile.d/
сделать псевдонимы для всех пользователей:
Создайте названный файл 00-aliases.sh
(или любое другое необычное имя) в /etc/profile.d
:
gksu gedit /etc/profile.d/00-aliases.sh
Поместите Вы искажаете в этом файле. Пример:
alias foo='bar --baz'
alias baz='foo --bar'
Сохраните файл
Некоторые примечания:
/etc/profile
глобальный файл, который выполняется прежде ~/.profile
./etc/profile.d/
папка, которая содержит сценарии, названные /etc/profile
Когда /etc/profile
назван (когда Вы запускаете/входите оболочку), она ищет любые файлы, заканчивающиеся в .sh
в /etc/profile.d/
и выполняет их с одной из этих команд:
source /etc/profile.d/myfile.sh
. /etc/profile.d/myfile.sh
00-
перед именем файла, чтобы заставить его выполниться перед остальной частью сценариев./etc/profile
, но это не рекомендуется. Псевдоним будет только работать в то время как в оболочке. Если Вы хотите что-то столь же широко доступное как исполняемый файл, можно добавить маленький сценарий ярлыка к /usr/bin
, например:
#!/bin/sh
ls -l "$@"
"$@"
передачи все аргументы до исполняемого файла. Название сценария будет названием исполняемого файла.
Как указано здесь, вероятно, лучше включить глобальные псевдонимы /etc/bash.bashrc
:
alias foo='bar --baz'
alias baz='foo --bar'
, потому что сценарии в /etc/profile.d
может быть проигнорирован для определенного (невход в систему) оболочки. Мне потребовались часы для выяснения почему /etc/profile.d
не работал.
Посмотрите, например, https://askubuntu.com/a/606882/и Понимающий .bashrc и .bash_profile для различия между оболочками.
Это не хорошая идея изменить этот файл, если Вы не знаете то, что Вы делаете. Намного лучше создать custom.sh сценарий оболочки в/etc/profile.d/для внесения пользовательских изменений в среду, поскольку это предотвратит потребность в слиянии в будущих обновлениях.