Определение имени для экранной сессии

-c флаг сделает задание. Например:

 grep -c ^ filename

будет считать строки возвращенными grep.

Зарегистрированный в страницу справочника:

- c, - количество Подавляют нормальный вывод; вместо этого распечатайте количество согласующих отрезков длинной линии для каждого входного файла

54
23.08.2014, 19:22
5 ответов

Здесь существует два понятия, и я не уверен, какой Вы имеете в виду:

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

Windows имеет заголовки, которые могут быть установлены через -t параметр командной строки, C-a A привязка клавиш, title команда, или \ek escape-последовательность. Дополнительную информацию см. в ответе shellter.

Сессии могут иметь имена. Вы обычно определяли имя на командной строке с -S опция; если Вы не указываете имя, экран составляет тот. При использовании нескольких экранных сессий Вы обычно давали бы им различные имена сессии. Можно перечислить рабочую экранную сессию с screen -ls; первое слово на каждой строке сессии 12345.sessionname где 12345 экранный идентификатор процесса. Использовать screen -r sessionname или screen -r 12345 возобновлять сессию, обозначенную через ее имя или идентификатор процесса.

22
27.01.2020, 19:33
  • 1
    В привязках клавиш по умолчанию для изменения заголовка необходимо использовать C-a A. –  enzotib 21.12.2011, 08:49

А-ч... Экран, это забирает меня ;-)

Для одного окна

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

Непротестированный, я не имею экран в наличии в системе, я продолжаю работать.

12
27.01.2020, 19:33
  • 1
    Спасибо, это помогает много. Там должен так или иначе переименовать уже существующую экранную сессию? –  well actually 28.04.2011, 00:19
  • 2
    @Charlotte: посмотрите редактирования. Спасибо за голоса! –  shellter 28.04.2011, 00:44

При выполнении screen:

Ctrl+a (или безотносительно Вашего screen escape-последовательность), A

4
27.01.2020, 19:33

Можно назвать сессию при запуске его с -S name опция. Из рабочего экрана можно изменить его путем ввода CTRL-a, :sessionname name. Можно просмотреть рабочие экранные сессии с screen -ls, и соединитесь с одним по имени с screen -xS name.

В рамках сессии одного экрана можно также назвать каждое окно. Сделайте это путем ввода CTRL-a, A затем имя Вы хотите. Можно просмотреть интерактивный список именованных окон путем ввода CTRL-a, ", и выберите тот, на который Вы хотите переключиться из того списка.

Именование и экраны и терминалы в экранах действительно полезно для запоминания, что они и почему Вы запустили их во-первых.

65
27.01.2020, 19:33
  • 1
    Переименование экранной сессии после того, как это будет запущено, возможно (использование :sessionname NEWNAME), но этому "обычно препятствуют". $STY переменная среды все еще относится к настоящему имени. Посмотрите screen руководство: gnu.org/software/screen/manual/html_node/Session-Name.html –  Keith Thompson 14.06.2016, 23:02

В вышеприведенных ответах уже сказано, как назвать экран при запуске. Они также указывают, что экран нельзя переименовать после его запуска. Название окна можно установить, но имя, используемое для прикрепления к экрану, остается pid.pty.host.

Однако, для достижения полезного эффекта, я обнаружил, что использование псевдонима работает довольно хорошо. Если я забыл назвать имя экрана или оказался в сеансе с кучей экранов, которые естественно стали экранами для определенных задач, я просто задаю псевдоним для команды, которую нужно прикрепить к ним. Пример:

alias goncompile='screen -r 2354'

Выдача команды с псевдонимом сама по себе напомнит вам, какие экраны у вас есть и какую команду вы установили для прикрепления к ним.

Используйте unalias для их удаления.

3
27.01.2020, 19:33

Теги

Похожие вопросы