Мой bash-подсказка не работает в screen

Вопрос или проблема

На RedHat screen сбрасывает мой bash-запрос. Я установил PS1=\u@\h:\w в ~/.bashrc и ~/.bash_profile.

Я также добавил shell -$SHELL в ~/.screenrc.

Но, когда я открываю совершенно новое окно терминала, запрос правильный, кроме screen.

В screen я всегда получаю этот формат запроса: \u@\h>

Как я могу установить тот же запрос в screen?

Я так устал от различных файлов запуска для оболочек, что делаю так:

  • Создаю файл ~/.shrc и помещаю в него всю свою конфигурацию (включая настройку запроса)
  • В ~/.profile, ~/.bashrc, ~/.bash_profile и в любой файл, который может читать оболочка, добавляю эту строку . ~/.shrc (обратите внимание на точку)
  • А в конце, забываю обо всех мелочах, которые я никогда не мог полностью понять

В вашем случае, я подозреваю, что Bash хочет ~/.profile (это дикий guess, поскольку, как уже упоминалось, я никогда не понимал эти файлы запуска полностью), так что добавление этого может заставить все работать.

Ответ или решение

Проблема, с которой вы столкнулись — неправильное отображение приглашения командной строки (prompt) в утилите screen на операционной системе RedHat, может быть связана с тем, как Bash обрабатывает конфигурационные файлы при запуске. Ваша командная строка устанавливается в ~/.bashrc и ~/.bash_profile, но не отображается нормально в screen.

Вот несколько шагов и рекомендаций для устранения этой проблемы:

1. Проверьте конфигурацию .screenrc

Вы добавили строку shell -$SHELL в файл ~/.screenrc, что правильно. Тем не менее, в зависимости от вашей конфигурации Bash, вам может потребоваться удостовериться, что prompt также инициализируется правильно. Если это еще не помогло, пробуйте добавить следующие строки в ~/.screenrc:

# Установите командную строку Bash
shell -$SHELL

# Убедитесь, что выполняются пользовательские конфигурации
startup_message off

# Настройка терминала
term xterm-256color

2. Инициализация .bashrc в .bash_profile

При запуске сеанса терминала на большинстве систем Bash сначала читает .bash_profile, а затем .bashrc. Вам стоит удостовериться, что ваш .bash_profile включает вызов для .bashrc:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

Это позволяет правильно загружать настройки Bash, включая настройки prompt, когда вы запускаете screen.

3. Объединение конфигураций

Как вы упомянули, создание общего файла конфигурации, такого как ~/.shrc, может оказать положительное влияние. Это позволяет вам сохранять все настройки в одном месте, что упрощает управление. После создания ~/.shrc, просто добавьте следующую строку в ваши профили:

. ~/.shrc

В файл ~/.shrc можете добавить все свои пользовательские настройки, включая PS1:

export PS1="\u@\h:\w> "

4. Проверка переменной окружения TERM

Иногда проблема может быть связана с тем, как терминал взаимодействует с screen. Проверьте переменную TERM, запустив:

echo $TERM

Если она установлен на что-то, что не поддерживает ваш prompt, измените это в ~/.screenrc. Хорошее значение — screen-256color.

5. Запуск screen

После всех изменений, попробуйте перезапустить screen или просто новое терминальное окно, чтобы увидеть, сохранились ли изменения. Убедитесь, что вы используете последнюю версию screen, так как более старые версии могут вести себя иначе.

Заключение

Следуя вышеприведенным рекомендациям, вы можете устранить проблему с отображением вашего Bash prompt в screen. Проверка и правильная настройка конфигурационных файлов bash и screen поможет вам получить однородное и ожидаемое поведение в терминалах. Этот комплексный подход обеспечит стабильную работу вашей среды, и вы сможете сосредоточиться на более важных задачах.

Оцените материал
Добавить комментарий

Капча загружается...