під час своєї роботи мені потрібно постійно додавати псевдонімові команди до 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
і додайте сюди свої псевдоніми.
не впливаючи на ваші системні файли. Це безпечний і правильний спосіб роботи з файлами навколишнього середовища.
Тут вже прийнята відповідь, але ви можете розглянути можливість використання якоїсь форми модулів оточення для обробки конфігурації загальносистемних середовищ, а не для того, щоб возитися з файлами в /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
буде виглядати вміст новостворених користувачів.