gnu screen — преферанс і поетеси для термінатора

| комп'ютери, linux

не розумію, чому я раніше не користувався gnu screen'ом… можливо, тому що не міг второпати, що воно таке за диво, багатоекранний термінальний мультиплексор і куди його притуляти?

виявилося, що все просто, і screen, в найпростішому розумінні — це приблизний аналог закладок у веб-оглядачі, тільки з преферансом і поетесами.

як це працює: відкриваю свій улюблений термінал (для мене це terminator в режимі консолі quake, відкривається за super+q), запускаю screen (насправді воно стартує автоматом, terminator має таку опцію) і працюю собі як зазвичай…

…аж поки не знадобиться нова закладка в терміналі. замість користуватися вікнами terminator'а (завжди забуваю гарячі клавіші!) — тисну ctrl+a, c і отримую чисте вікно терміналу; при цьому якщо в попередньому вікні щось виконувалося (приміром, wget тяг щось велике з тенет, або htop слідкував за відкритими процесами) — воно продовжуватиме виконуватися. і навіть якщо я закрию вікно terminator'а (не згорну, а саме закрию) — «закладки» screen «від'єднаються» від терміналу і продовжать жити своїм життям, аж поки я не «підключуся» до них знову.

якщо створити файл ~/.screenrc і додати туди щось таке, то можна отримати зручний статусний рядок з переліком відкритих закладок:

hardstatus alwayslastline " %H | %-w%{=}%n %t%{-}%+w%=| %c "

підказок з використання screen та налаштування статусного рядка в тенетах не бракує, та й man screen є дуже детальний. занотую основне собі на згадку:

загальне
screen -list
— перелік всіх вікон (закладок, сесій) screen
ctrl+a, ?
— підказка, перелік гарячих клавіш

віртуальні вікна
ctrl+a, c
— створити нове віртуальне вікно screen
ctrl+a, k
— закрити поточне віруальне вікно screen
ctrl+a, w
— простий перелік відкритих вікон screen в поточному терміналі
ctrl+a, n
— перескочити до наступного відкритого вікна
ctrl+a, p
— перейти до попереднього відкритого вікна
ctrl+a, 0..9
— перейти до відкритого вікна за його номером
ctrl+a, "
— перейти до відкритого вікна зі списку

мультиплексування (області в терміналі)
ctrl+a, S
— розбити поточне вікно на дві області по вертикалі
ctrl+a, |
— розбити поточне вікно на дві області по горизонталі
ctrl+a, tab
— перейти до наступної області
ctrl+a, X
— закрити поточну область

поетеси
ctrl+a, M
— сигнал про активність у поточному вікні (вкл/викл)
ctrl+a, _
— сигнал про неактивність («тишу») в поточному вікні (вкл/викл)

screen має ще цікаві сюрпризи, але це те, чим я досить швидко навчився користуватися, і воно виявилося дуже зручне.