1

Я не уверен, является ли это проблемой с моим mac, с которой я нуб, или это настройка сервера, на который я захожу.

Что я делаю, так это:

  1. Откройте новое окно в терминале
  2. SSH на сервер CentOS. Мой логин - это bash.
  3. Нажмите на Shell-> Изменить заголовок
  4. Измените заголовок и заголовок вкладки на abc123. Он отображается в строке заголовка терминала как abc123-abc123-ssh-100x24.
  5. В терминале запустите sudo su, чтобы изменить пользователя на root. Обратите внимание, что название теперь изменилось на root @ blah:/home/myuser-ssh-100x24. Если я выйду из root, название заголовка все равно будет новым.

Как сделать так, чтобы название заголовка оставалось как abc123 и не менялось, когда я su другим пользователям? Заранее спасибо за помощь.

1 ответ1

6

Название устанавливается с сервера, к которому вы подключаетесь. Скорее всего, /etc/bashrc или подобный файл определяет PROMPT_COMMAND для установки заголовка. На CentOS 6 это выглядит так:

  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
[... more of the same ...]
      esac
  fi

Чтобы предотвратить это, убедитесь , что установили PROMPT_COMMAND= в root «s и ваши собственные файлы конфигурации Баш на сервере вы SSH в (например , ~/.bashrc

Либо добавьте PROMPT_COMMAND в /etc/sudoers (env_keep) и /etc/ssh/sshd_config (AcceptEnv), чтобы унаследовать его от локальной системы, и установите для него значение, которое не влияет на строку заголовка.

В этом конкретном случае вы также можете настроить свой Терминал на объявление другого Терминала, поскольку он устанавливается только для xterm* в CentOS (Терминал »Настройки ...» Настройки »(Выбрать профиль)» Дополнительно »Объявить Терминал как).


Похоже, что Terminal.app не позволяет заблокировать заголовок - вы, вероятно, должны изменить конфигурацию, которая устанавливает его, как описано выше. Вы всегда можете проверить другой терминал, такой как iTerm. Поддерживается сохранение имени профиля в заголовке даже при изменении заголовка.


А вот грязный хак, чтобы сохранить заголовок вашего терминала без изменения конфигурации всех серверов, на которых вы используете SSH:

В той же оболочке, в которую вы помещаете SSH в Linux, перед тем, как сделать это, выполните следующую команду:

while true ; do printf "\033]0;%s\007" "My Terminal Title" ; sleep 1 ; done &

Это выполнит цикл в фоновом режиме, который меняет заголовок терминала на Мой заголовок терминала раз в секунду, отменяя любые изменения, выполненные в вашем сеансе SSH.

Когда вы закончите, используйте управление заданиями в своей оболочке, чтобы остановить его (jobs и kill %1 если это первое задание), или fg чтобы вывести его на передний план, и отмените с помощью Ctrl-C .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .