Раньше я не редактировал bashrc на своих облачных серверах. Серверы меняются слишком часто, и усилия кажутся нецелесообразными. Я также не хочу загружать свой локальный bashrc на каждый облачный сервер, потому что в моем локальном bashrc есть много вещей, которые имеют смысл только для моей локальной машины. Но у меня есть определенные псевдонимы и т.д., которые я хотел бы иметь на всех моих облачных серверах. Есть несколько способов справиться с этим:
У кого-нибудь есть хорошее решение или рекомендация? Спасибо.
Это моя установка (высокие начальные накладные расходы, низкие текущие усилия)
Создайте репозиторий git для хранения файлов конфигурации и напишите небольшой сценарий установки для их установки.
Например Вы можете клонировать свой репозиторий в ~/src/my_config
, и сценарий установки перезапишет (или символику) ~/.bashrc
на ~/src/my_config/.bashrc
Это делает работу в новых средах довольно простой: вам просто нужно
git клонировать $repo_url
./my_config/установить.sh
Это не совсем так: на удаленной машине вам также нужно будет ssh-keygen
и добавить новый открытый ключ в свою учетную запись на хосте git.
создайте каталог ~/.bash.d
. Добавьте это в файл .bashrc
для файла в ~/.bash.d/*.bash; делать
если [[ -r "$file" ]]; тогда
. "$file"
fi
Договорились
Это позволяет поместить такие вещи, как определение приглашения, в отдельный файл: ~/.bash.d/prompt.bash
. Мне нравится это, чтобы мой .bashrc был маленьким, так как я использую тонны функций в своей интерактивной оболочке.
Для каждой среды создайте каталог ~/.bash.d/$(имя_узла)
. Добавьте это в файл .bashrc
в ~/.bash.d/$(имя хоста)/*.bash; делать
если [[ -r "$file" ]]; тогда
. "$file"
fi
Договорились
Все вещи, которые строго локальны для конкретной машины, могут быть разделены.
Здесь отлично работают символические ссылки: если все серверы AWS используют одну и ту же настройку, вы можете создать ~/.bash.d/AWS
и связать с ним все конкретные имена хостов.
Эта система очень хорошо сработала для меня. Я добавляю что-то новое, отодвигаю изменения в git, а на удаленных системах в git pull, чтобы подобрать новый код.