Есть ли способ дать конкретное имя сеансу экрана Unix? Например, скажем, я запускаю одну и ту же программу несколько раз, каждая с разными параметрами, и я хочу сказать, какая из них какая.
Есть ли способ дать конкретное имя сеансу экрана Unix? Например, скажем, я запускаю одну и ту же программу несколько раз, каждая с разными параметрами, и я хочу сказать, какая из них какая.
Ответы:
Вы можете назвать сессию при запуске с -S name
опцией. Находясь в рабочем окне, вы можете изменить его, набрав CTRL-a, :sessionname name
. Вы можете просматривать сеансы рабочего экрана с помощью screen -ls
и подключаться к одному по имени с помощью screen -xS name
.
В течение одного сеанса экрана вы также можете назвать каждое окно. Сделайте это, набрав CTRL-a, A
затем имя, которое вы хотите. Вы можете просмотреть интерактивный список именованных окон, набрав CTRL-a, "
, и выбрать тот, на который вы хотите переключиться из этого списка.
Обозначение как экранов, так и терминалов на экранах действительно полезно для того, чтобы вспомнить, что они из себя представляют и для чего вы их начали.
:sessionname NEWNAME
), но это "вообще не рекомендуется". $STY
Переменная среды по- прежнему относится к первоначальному названию. См. screen
Руководство: gnu.org/software/screen/manual/html_node/Session-Name.html
Здесь есть два понятия, и я не уверен, какое из них вы имеете в виду:
C-a c
создает окно C-a n
и C-a p
переключается на следующее / предыдущее окно и т. д.-r
либо -R
опции присоединения ( или ) создает новый сеанс.В Windows есть заголовки, которые можно задать с помощью параметра -t
командной строки, C-a A
привязки ключа, title
команды или \ek
escape-последовательности. Смотрите ответ оболочки для более подробной информации.
Сессии могут иметь имена. Вы обычно устанавливаете имя в командной строке с помощью -S
опции; если вы не укажете имя, экран создаст его. Если вы используете несколько сеансов экрана, вы обычно даете им разные имена сеансов. Вы можете перечислить сессию рабочего экрана с screen -ls
; первое слово в каждой строке сеанса, 12345.sessionname
где 12345 - это идентификатор процесса экрана. Используйте screen -r sessionname
или screen -r 12345
для возобновления сеанса, указанного через его имя или идентификатор процесса.
Ах ... Экран, он забирает меня обратно ;-)
За одно окно
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
Для нескольких сессий начался с вашего .screenrc
screen -t top 2 nice top
screen -t ....
Вот ссылка на одну онлайн -страницу руководства для экрана.
Редактировать: добавлено
Чтобы изменить текущее имя экрана, создайте инструмент сценария оболочки, например
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
Не проверено, у меня нет экрана в системе, над которой я работаю.
screen
по крайней мере 25 лет. Забирает меня обратно, потому что теперь это особый случай использования, который приведет меня к screen
. Обычно я просто продолжаю открываться X-Terms
, но я помню, когда казалось невозможным работать X
на 486 ПК ;-) Ура!
Ответы выше уже говорят вам, как назвать экран при запуске. Они также указывают на то, что экран не может быть переименован после его запуска. Заголовок окна может быть установлен, но имя, используемое для прикрепления к экрану, остается pid.pty.host.
Однако для достижения полезного эффекта я обнаружил, что использование псевдонима работает довольно хорошо Если я забуду назвать экран или окажусь в сеансе с несколькими экранами, которые, естественно, стали экранами для определенных задач, я просто установлю псевдоним для команды, которая будет прикреплена к ним.
пример:
alias goncompile='screen -r 2354'
Выполнение команды alias само по себе напомнит вам, какие экраны у вас есть, и команду, которую вы установили для подключения к ним.
Используйте, unalias
чтобы удалить их.