Что такое screen?
screen – это консольный оконный менеджер с поддержкой вкладок (или окон). Он имеет замечательную возможность продолжать работу с того места, где остановились в прошлый раз. В этой статье я расскажу как быстро приступить к работе.
Краткая инструкция по применению
Создать файл .screenrc в домашнем каталоге с содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#.screenrc
startup_message off # отключить страницу об авторских правах
nethack on # сообщения в стиле игры Nethack
vbell off # визуальный звонок (вспышки на экране)
msgminwait 0 # мин к-во секунд отображения сообщений
#msgwait 10 # последнее сообщение отображается 10 секунд, если нет другой активности
defscrollback 10000 # количество строк для буфера прокрутки
log off # запись журнала действий
hardstatus alwayslastline # резервирует последнюю строку для строки статуса
hardstatus string '%{= BW} %d/%m/%y %{= kG} %H %{W}[%n] %=[ %w ] [ %{r}%l%{W} ] %{BW} %c %{= kw}'
# применяется .bashrc
shell -$SHELL
# Список табов, которые открываются по-умолчанию при каждой новой сессии screen
screen -t home 0 bash # название home, номер вкладки 0
chdir /home/www/sitename
screen -t sitename 1 bash
chdir /home/www/sitename/var/log
screen -t logs 2 bash
screen -t mysql 3 mysql -u USERNAME -p DB_NAME |
1 |
$ screen -r |
1 |
$ screen -S session |
Список комбинаций клавиш
Их на самом деле намного больше, ниже привожу самые необходимые.
Ctrl+a с (нажать одновременно “control” и “a“, отпустить и нажать “с“) – создать новую вкладку (окно)
Ctrl+a A (для ввода заглавной буквы А используется shift) – изменить заголовок текущего окна
Ctrl+a <число> – перейти на вкладку с номером <число> (активная вкладка обозначается символом «звезда» возле ее номера внизу экрана)
Ctrl+a (p|n) – переключение назад-вперед между вкладками. p – prev, n – next
Ctrl+a+a (удерживая control нажать a два раза) – переключение между двумя вкладками
Ctrl+a ” – список окон для переключения
Ctrl+a k – закрыть текущую вкладку (нужно подтвердить закрытие, нажатием на “y”)
Ctrl+a d – выйти из screen
Ctrl+a ? – вывод справки с комбинациями клавиш
UPD:
Убить сессию screen не заходя в нее можно из консоли:
1 |
$ screen -S session -X quit |
либо в самом screen ввести команду quit с помощью комбинации Ctrl+a :
Список доступных сессий без входа в какую-либо из них:
1 |
$ screen -ls |
Создать screen с монитором процессов (работает, если в ~/.screenrc не определено создание табов):
1 |
$ screen -S monitor top |
Запускать screen при входе можно путем добавления в файл ~/.profile
1 2 3 |
screen -r session # для запуска определенной сессии по имени session
# либо
screen -d -r # если существует только одна сессия screen |
Настроить vim можно с помощью файла ~/.vimrc
1 2 3 4 5 6 7 8 |
#.vimrc
filetype plugin indent on
" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab |
Дополнительная информация:
http://www.opennet.ru/base/sys/screen2.txt.html
http://mmb.pcb.ub.es/~carlesfe/unix/screen.pdf – удобная шпаргалка по комбинациям
http://xgu.ru/wiki/man:screen – перевод на русский язык официальной man-страницы screen
Во-первых, ложить пароль от mysql в конфиг — нехорошо.
Во-вторых, разместить лучше в обратном порядке вкладки, т.к. открывается последняя в списке.
В третьих, можно в .profile написать screen -d -r и тогда при входе в профиль скрин включится автоматически.
В четвертых, ты не указал, что значат числа при запуске “screen -t sitename 1 bash”. Это похоже на номер вкладки и у тебя там ошибка в примере — дважды №1 используется.
Ну а так, статья хорошая для не-юниксоидов типа меня.
Женя, спасибо за отзыв.
По поводу расположение вкладок. Я так понимаю, что это дело вкуса. Мне, например, удобно, чтобы последняя была с mysql, она по-умолчанию активна, где запрашивается пароль (да, да, именно здесь мы вводим пароль к БД, а не в конфиге).
Хороший совет по поводу автоматического запуска screen при входе. Это работает если существует только одна сессия, а если их несколько? Придется указать имя этой сессии. Спасибо, добавил в пост.
Также написал что означает -t sitename 1 bash.
Ошибка в нумерации вкладок действительно присутствовала, исправлено.
Еще раз спасибо за детальный анализ. Мои статьи читают, а это приятно 🙂
Сегодня совершенно случайно наткнулся на полезную комбинацию клавиш переключения между двумя вкладками. Интересно использовать когда открыли, например, первую и третью. Чтобы постоянно не клацать ctrl+a 1, ctrl+a 3, достаточно один раз “запомнить” две вкладки, перейдя на них, а потом с легкостью переключаться, нажимая ctrl+a+a (удерживая контрол нажимать а два раза). Добавил в статью.
Добавить в vimrc автоотступ в 4 пробела при нажатии на таб
filetype plugin indent on
” show existing tab with 4 spaces width
set tabstop=4
” when indenting with ‘>’, use 4 spaces width
set shiftwidth=4
” On pressing tab, insert 4 spaces
set expandtab
Спасибо! Добавил в статью.
Для того, чтобы на маке в терминале добавить скрол истории с помощью тачпеда, добавь в ~/.screenrc
defscrollback 5000
termcapinfo xterm* ti@:te@