во время моей работы мне нужно постоянно добавлять команды псевдонимов в bashrc, большинство этих команд должны запускаться другими пользователями. Есть ли способ добавить команды псевдонимов в bashrc из внешнего источника?
во время моей работы мне нужно постоянно добавлять команды псевдонимов в bashrc, большинство этих команд должны запускаться другими пользователями. Есть ли способ добавить команды псевдонимов в bashrc из внешнего источника?
Ответы:
Многие конфигурационные файлы в домашнем каталоге пользователей просто переопределяют / добавляют к тем, которые находятся в /etc
- например, настройки для GIMP в домашнем каталоге пользователей ~/.gimp-2.*
, что добавляет к общесистемной конфигурации /etc/gimp/2.0
.
Таким образом ~/.bashrc
, вы можете редактировать общесистемные конфигурационные файлы /etc/bash.bashrc
(для функций / псевдонимов ) или /etc/profile
(для окружения) - вы можете полный список из man bash
:
FILES
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
/etc/bash.bash_logout
The systemwide login shell cleanup file, executed when a login shell exits
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file
Это предупреждение выдается для нескольких систем Linux в файлах:
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
Таким образом, вы можете отредактировать эти файлы, вы можете сначала создать их резервные копии ( cp /etc/bash.bashrc /etc/bash.bashrc-backup
например) или создать сценарий оболочки в /etc/profile.d
- например, вы можете создать его с помощью этих команд (с sudo / как root):
touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh
Затем откройте его nano /etc/profile.d/custom.sh
#!/bin/sh
alias ls='ls -lah'
И проверьте, работает ли он, посмотрев, появляется ли он в выходных данных alias
- Обратите внимание, что вам может потребоваться выйти из системы, войти в систему или перезагрузиться, чтобы увидеть какие-либо изменения (если вы не хотите, запуск source /etc/profile
после любых изменений может сработать)
[править: удалил эту неработающую ссылку] www.thelinuxdaily.com/2010/08/setup-a-universal-user-profile-with-etcprofile-dcustom-sh/]
~/.bash_logout
и /etc/bash.bash_logout
не работает. :(
/etc/profile.d/
будет не подхвачен подпроцесс правом? То есть псевдоним доступен только тогда, когда Bash является оболочкой для входа?
Перейти к /etc/bash.bashrc
vim /etc/bash.bashrc
и сделать свой псевдоним там.
добавьте свой псевдоним в последней строке.
псевдоним abc = "что угодно"
Этот псевдоним станет глобальным для всех пользователей.
но по соображениям безопасности мы не рекомендуем это вам.
есть profile.d
каталог, который содержит файлы пользовательской среды
перейти к
cd /etc/profile.d/
vim aliases
и добавьте свои псевдонимы здесь.
без влияния на ваши системные файлы. Это безопасный и правильный способ работы с файлами вашей среды.
Здесь уже есть принятый ответ, но вы могли бы рассмотреть возможность использования некоторой формы модулей среды для обработки общесистемной конфигурации пользовательских сред, вместо того, чтобы связываться с файлами в /etc/profile.d и т. Д. Это особенно верно, если вы хотите управлять этим контролем в одном месте через множество оболочек. Lmod (в стадии активной разработки), модули C / TCL (классическое решение) или Cmod (облегченный).
Не знаю, правильно ли я это делаю, но мне нужно сохранить каталог / home / ComunAtodos (с заглавной буквы и на испанском языке, чтобы было ясно, что это не нативный каталог linux), и поместить .bashrc, .nanorc и .bash_aliases там. Затем я ссылаюсь на них в /etc/skel/.profile, чтобы новые пользователи указывали на них, а добавляли только дополнения к конкретным пользователям, которые в них нуждаются.
Я действительно новичок в операционной системе Linux, но я сделал набросок скрипта bash, который работает для изменения всех пользовательских файлов .bashrc, а не системного файла /etc/.bashrc.
#!/bin/bash
X=$( cat etc/passwd | cut -f1 -d: ) #All-users
For X in /home/*/.bashrc ; do
echo "alias ls='ls -al'" >> $X
2>/dev/null
done
source $X
exit 0
Итак, я знаю, что этот скрипт работает, но я не могу, если он безошибочный :) Также вы можете изменить его так, чтобы он не охватывал всех пользователей, возможно, вы создадите файл для всех пользователей, которым нужен их файл .bashrc настроены.
.bashrc
файл, и всегда добавляется независимо от того, находится ли строка в их файле.
/etc/skel/.bashrc
чтобы изменить то, как содержимое~/.bashrc
будет выглядеть для вновь созданных пользователей.