Встановлення імені для екранного сеансу


44

Чи є спосіб надати певну назву сеансу на екрані Unix? Наприклад, скажіть, що я запускаю одну і ту ж програму кілька разів, кожен з різними параметрами, і я хочу сказати, яка з них є.


Не питання програмування. Слід перейти на SuperUser або Unix.
0xC0000022L

Відповіді:


54

Ви можете назвати сеанс, починаючи його з -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
Кіт Томпсон

22

Тут є два поняття, і я не впевнений, яке саме ви маєте на увазі:

  • Ви можете мати кілька екранів. У кожному вікні працює оболонка або інша програма. Усі вікна розміщуються одним і тим же процесом. C-a cстворює вікно C-a nта C-a pпереходить на наступне / попереднє вікно тощо.
  • Ви можете мати кілька сеансів на екрані. Кожна сесія проводиться за власним процесом і не залежить від усіх інших сесій. Початковий екран без жодної опції повторного вкладення ( -rабо -R) створює новий сеанс.

У Windows є заголовки, які можна встановити за допомогою параметра -tкомандного рядка, C-a Aприв'язки клавіш, titleкоманди чи \ekпослідовності виходу. Детальну інформацію див. У відповіді «оболонки» .

Сесії можуть мати імена. Зазвичай ви встановлюєте ім'я в командному рядку за допомогою -Sпараметра; якщо ви не вказали ім'я, екран складається з одного. Якщо ви використовуєте кілька сеансів на екрані, зазвичай ви даєте їм різні назви сесій. Ви можете перелічити сеанс запущеного екрану за допомогою screen -ls; перше слово в кожному рядку сеансу - це 12345.sessionname12345 - ідентифікатор процесу на екрані. Використовуйте screen -r sessionnameабо screen -r 12345продовжуйте сеанс, вказаний через його ім'я або ідентифікатор процесу.


1
У прив'язках клавіш за замовчуванням, щоб змінити назву, ви повинні використовувати Ca A.
enzotib

11

Ах ... Екран, це повертає мене назад ;-)

За одне вікно

-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\\'

Не перевірено, у мене немає екрана в системі, над якою я працюю.


Дякую, це дуже допомагає. Чи потрібно перейменувати вже існуючий екранний сеанс?
ну власне

@Charlotte: див. Правки. Дякую за голоси!
снаряд

Приємна відповідь @shellter! Мені цікаво, ти сказала "забирає мене назад", щоб сказати, що ти сьогодні використовуєш щось інше (наприклад, tmux), або просто, що йому більше 32 років ?
tutuDajuju

1
@tutuDajuju: Gulp, тепер, коли я думаю про це, я користувався screenпринаймні 25 років. Забирає мене назад, бо зараз це стосується особливого випадку використання screen. Зазвичай я просто відкриваюсь X-Terms, але пам’ятаю, коли Xна 486 ПК здавалося неможливим ;-) Привіт!
обстріл

@shellter FYI, я побіг X на 486 ПК з 8 Мб оперативної пам’яті ще в 1992 році ...
Ено


3

Наведені вище відповіді розповідають, як назвати екран при його запуску. Вони також зазначають, що екран не можна перейменувати після його запуску. Заголовок вікна можна встановити, але ім'я, яке використовується для прикріплення до екрана, залишається pid.pty.host.

Однак для досягнення корисного ефекту я виявив, що використання псевдоніма працює досить добре. Якщо я забуду назвати екран або опинився на сеансі з купою екранів, які, природно, стали екранами для певних завдань, я просто встановив псевдонім для команди, яку потрібно приєднати до них.

приклад:

alias goncompile='screen -r 2354'

Якщо сама команда псевдоніму нагадає, які екрани ви створили та команду, яку ви встановили для них.

Використовуйте unaliasдля їх видалення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.