Я много работал с контейнерами Linux и постоянно забываю, какой из терминалов на моем экране работает внутри какого контейнера, особенно когда я оставляю их открытыми на ночь.
Как я могу изменить приглашение оболочки или заголовок терминала в зависимости от контейнера, в котором запущена оболочка?
Это общий вопрос, но было бы здорово, если бы он работал для systemd-nspawn
и kde
на Arch.
Убедитесь, что ваши контейнеры используют разные пространства имен UTS, а затем задайте уникальное имя хоста в каждом из них. Например, такие вещи, как docker, устанавливают в качестве значения имени хоста идентификатор хэша контейнера по умолчанию в пространстве имен UTS, связанном с основным процессом контейнера.
Таким образом, с PS1
Используя переменную hostname, вы узнаете, в каком контейнере вы находитесь, когда запускаете приглашение bash.