Еще немного о screen

GNU Screen - это небольшая утилита, позволяющая оставлять сессии работающими, в то время как вы физически вышли из системы, либо использовать несколько терминальных окон в одном. Она обладает большими возможностями (некоторые из них описаны здесь), но в этой заметке я расскажу о строке состояния screen.

Вы можете использовать два вида строки состояния:

  • “Заголовок” (Caption)
  • “Статус” (Hardstatus)

В чем же различие между ними? “Статус” обычно используется для получения и отображения сообщений от screen, например оповещений об активности или похожих сообщений. “Заголовок” обычно используется при работе с больше чем одним окном и отображает информацию о текущем окне.

Перейдем к практике :) Добавьте следующие строки в файл ~/.screenrc

caption string “%w”
hardstatus alwayslastline “This is a test…”

Откройте сессию screen и вы увидите две строки внизу окна: одна отображает количество открытых окон, вторая просто показывает заданную строку.
Как быть, если вы не хотите постоянно видеть строку состояния? Нет проблем:

#
# Toggle ‘fullscreen’ or not.
#
bind f eval “caption splitonly” “hardstatus ignore”
bind F eval “caption always” “hardstatus alwayslastline”

Теперь “ctrl-a f ” уберет строку состояния, а “ctrl-a F” вернет их на место.

Еще одна полезная область применения для строки состояния - это отображение вывода команд. В следующем примере я покажу, как показать вывод uptime в строке “Статус”. Для этого необходимо сделать две вещи:

  • Определить команду для запуска и период обновления
  • Определить место отображения в нужно строке

Это делается так:

backtick 1 5 5 uptime
hardstatus alwayslastline “%1`”

Здесь мы определили команду с ID = 1, которая действительна 5 секунд и через 5 секунд должна обновиться. Сама команда - uptime. Также мы добавили строку %1` в соответствующей части строки состояния. Она будет заменена на результат работы команды с ID 1.

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

Ну и напоследок еще несколько советов по более тонкой настройке строки состояния.
Screen поддерживает условные обозначения, которые при выводе заменяются на их актуальные значения. Вот пример такой строки в .screenrc

#
# look and feel for the bottom two lines.
#
caption always “%{+b rk}%H%{gk} |%c %{yk}%d.%m.%Y | %72=Load: %l %{wk}”
hardstatus alwayslastline “%?%{yk}%-Lw%?%{wb}%n*%f %t%?(%u)%?%?%{yk}%+Lw%?”

Ниже приводится список сокращений, фактически один-в-один скопированный из man-страницы screen. Экранирующий символ - % с одним только исключением: внутри строки “Статус” (Hardstatus) экранирующим символом является ‘^%’

% the escape character itself

a время суток ‘am’ или ‘pm’

A время суток ‘AM’ или ‘PM’

c текущее время HH:MM в 24-часовом формате

C текущее время HH:MM в 12-ти часовом формате

d порядковый номер дня

D имя дня недели

f флаги окна

F устанавливает %? в значение “true” если окно получает фокус

h Статус окна

H Имя хоста

l Текущая загрузка системы

m Номер месяца

M Название месяца

n Номер окна

s Секунды

t Заголовок окна

u Все другие пользователи в этом окне

w Номера и имена всех окон. С квантификатором ‘-’: включая текущее окно; с квантификатором ‘+’: начиная с текущего окна

W Имена и номера всех окон, исключая текущее

y Последние две цифры года

Y Полный порядковый номер года

С этим спискм вы сможете значительно разнообразить и сделать более информативным окно screen. Например, отображение текущей даты, времени и загрузки системы выглядит так:

hardstatus alwayslastline “Host: %H Date: %D-%M-%Y: Load: %l “

Вы можете эксперементировать с различными опциями и добавить значительно больше разнообразия в строку состояния (например выравнивание или раскрашивание вывода). За подробностями я рекомендую обратиться к man-странице GNU Screen (к секции STRING ESCAPES):

$ man screen

Оригинал: http://www.debian-administration.org/articles/560

Система Orphus

 


 

Comments: 2

  1. links for 2008-02-06 « PaxoBlog February 7th, 2008 at 2:13 am

    […] Юникс и другие » Blog Archive » Еще немного о screen Добавьте следующие строки в файл ~/.screenrc […]

  2. drujebober February 18th, 2008 at 5:35 pm

    а можно сделать так чтоб хардстатус выводился в несколько строк, а то уж больно много окон открыто

Add a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>