Вопрос или проблема
На 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
поможет вам получить однородное и ожидаемое поведение в терминалах. Этот комплексный подход обеспечит стабильную работу вашей среды, и вы сможете сосредоточиться на более важных задачах.