screen
Конфиг tmux с клавишами как у screen
С tmux в примерах идёт конфиг с хоткеями a-la screen, но там нет многого из того что мне нужно.
Пришлось добавлять самому.
В дополнение к совету "irssi + screen или как постоянно быть в IRC сети"
Хочется добавить, что я давным давно пользуюсь связкой screen + irssi, и использую очень полезный скрипт, который можно скачать по этой ссылке http://scripts.irssi.org/scripts/screen_away.pl
rtorrent - настройка (how-to rtorrent)
В этом how-to я расскажу, как нашел для себя оптимальный способ качать торренты под Linux.
irssi + screen или как постоянно быть в IRC сети
Хотите постоянно быть в IRC сети и записывать логи каналов? Тогда один из вариантов описывается ниже.
Изменить номер окна в screen
Изменить номер окна в screen:
1. Жмем ctrl-a :
2. Набираем number <новый номер окна>
3. Жмем Enter :)
screen как много в этом слове!
Что такое screen и с чем его едят?
Не буду подробно рассказывать что такое screen, скажу лишь в кратце, что это очень мощный инструмент для совместной работы в консоле.
Просто попытаюсь систематизировать материалы по screen на linsovet.
Да простят меня более продвинутые пользователи за эту попытку ;)
P.S. спасибо ramok за то, что помог мне взглянуть на screen с нужного ракурса и оказал помощь в этом вопросе!
ведение журнала для терминала
Иногда возникает необходимость залогить все действия совершаемые в терминале. для этого очень удобно использовать утилиту script.
Просто запускаем её в терминале и работаем дальше как ни в чём небывало. в конце сессии набираем exit и вуаля -- вся сессия сохранена в файл.
Подробнее с этой утилой можно ознакомится в мануале. man script
Использование имен для сессий в screen
Если вы активно используете screen, то может наступить момент когда вы потеряетесь в сессиях screen-а.
$ screen -ls
Your inventory:
14238.pts-21.ramok (12.08.2008 22:36:46) (Attached)
25839.pts-16.ramok (25.07.2008 14:32:30) (Attached)
6923.pts-4.ramok (24.07.2008 16:04:22) (Detached)
7743.pts-10.ramok (23.07.2008 20:34:18) (Attached)
12708.pts-7.ramok (16.07.2008 11:36:43) (Attached)
5 Sockets in /var/run/screen/S-ramok.Выглядит не очень то информативно Ж:-)
Можно давать имя сессии при запуске с помощью ключика -S, а так же менять имя в уже запущенном screen в командной строке screen (вызываемой по ctrl-a :): sessionname имя.
В результате более приятная картина при выводе списка запущенных сессии и имеется возможность подключится к нужному screen по имени. Например:
$ screen -S linsovet # создаём новую сессию с именем linsovet ctrl-a d # детачимся от текущего screen $ screen -ls # смотрим на список сессий Your inventory: 25770.linsovet (05.09.2008 11:13:15) (Detached) 14238.slind (12.08.2008 22:36:46) (Attached) 25839.ds (25.07.2008 14:32:30) (Attached) 6923.log_diag (24.07.2008 16:04:22) (Detached) 7743.proxy (23.07.2008 20:34:18) (Attached) 12708.mus (16.07.2008 11:36:43) (Attached) 6 Sockets in /var/run/screen/S-ramok. $ screen -RD ds # перехватываем сессию с именем ds
Вертикальные окна в screen
Оказывается уже давно существуют различные патчи к screen, которые добавляют возможность создания вертикальных окон (а не только горизонтальных, работа с которыми описана здесь).
К счастью в debian этот патч добавлен и можно по клавишам ctrl-a | создавать вертикальное окно.
Если у вас другой дистрибутив и это не работает, то попробуйте ctrl-a V.
Если и это не получается, то у вас пока что не пропатченый, я так понимаю пока что Ж:-), screen.
Найти screen из cvs и патчи к нему можно тут .
Ну и как обычно, seeing is believing Ж:-)
Нумерация терминалов в screen с 1 а не с 0
Добавьте в ~/.screenrc строчку:
screen 1
И после запуска screen, первый открытый терминал будет имет номер 1 (а не 0, что многих раздражает).
зайти в screen на удалённой системе
Требуется: Приатачиться к screen, запущенному на удалённой системе с минимальным количеством телодвижений.
Решение:
Не обязательно, но все таки:
1. делаем беспарольную аутентификацию как рассказно здесь
затем
2.
$ ssh -t login@host 'source .bashrc; screen -x'Готово!
3. И на последок, что бы все вышеперечисленное таки совершалось с наименьшим количеством телодвижений, создаем скрипт:
$ cat >remotescreen !#/bin/sh ssh -t login@host 'source .bashrc; screen -x' $chmod 755 remotescreen
3.a ... или делаем алиас в любимом .*shrc
alias remotescreen="ssh -t login@host 'source .bashrc; screen -x'"P.S. в пункте 2 заменить .bashrc на соответствующий .zshrc, итд...
Просмотр истории терминала
Бывает вы выполнили какую то команду, вывелось слишком уж много текста и текст убежал за пределы терминала, и вы не успели его приостановить . Совсем не обязательно перезапускать команду используя пейджеры типа less или more. Стандартно в текстовом терминале linux и xterm-совместимых терминалах под X-Windonds для что бы посмотреть историю терминала используется клавиши shift-pgup/shift-pgdown.
Во FreeBSD в текстовой консоли нужно нажать и отпустить Scroll Lock и просматривать историю просто pgup/pgdown.
Как бороться с ctrl-a в screen
По умолчанию все команды в screen начинаются с ctrl-a. Но часто программы запущенные
под screen тоже используют это сочетание клавиш. Например minicom (все команды так же
начинаются с ctrl-a), vim, bash в emacs режиме (ctrl-a - прыгнуть в начало строки), вложенный screen (смотри ниже)..
Для того что бы послать ctrl-a приложению запущенному в screen, достаточно нажать
ctrl-a a (то есть, жмем ctrl-a, отпускаем клавиши, потом жмем a).
Работа с окнами в screen
screen позволяет разбивать текущий терминал на любой кол-во горизонтальных окон и переключаться между ними в процессе работы. мне например удобно когда в верхнем окне micq, а в нижнем irssi.
ctrl-a S - добавить еще одно горизонтальное окно
ctrl-a TAB - переключится в следующее окно
ctrl-a Q - оставить из окон только текущее
ctrl-a X - убрать текущее окно (я редко пользуюсь)
ctrl-a F - приспособить размеры окна к текущему размеру терминала (удобно если в screen сидят одновременно несколько человек)
Примечание: обратите внимание что буквы S,Q,X,F большие. то есть нужно фактически жать ctrl-a shift-s например.
Если вы нажали ctrl-a s то вы заморозите вывод окна. подробнее почитать тут http://linsovet.com/temporary-stop-console-app
что бы вывод продолжить нажмите ctrl-a q
если добавить в ~/.screenrc
===
bind S eval split "focus bottom" next
===
то команда ctrl-a S будет вести себя более естественно и открывать в новом окне следующий терминал по списку, а не пустое окно.
screen под Cygwin
Страничка с портом screen под Cygwin http://web.gccaz.edu/~medgar/screen.html
1. скачиваем
wget http://web.gccaz.edu/~medgar/screen-4.0.2-1.tar.gz
2. ставим
tar -C / -xvf screen-4.0.2-1.tar.gz
Запуск screen с сохранением истории текущего шелла
Допустим вы работаете активно использую историю запуска команд вашего шелла. Постоянно возвращаетесь в одним и тем же командам из истории. И тут решаете что неплохо бы запустить screen. И вдруг обнаруживается что в шелле screen история команд старая, и все те команда что вы запускали недавно отсутствуют. Все дело в том, что история команд записывается в файл истории только при выходе из шелла.
В этом случае лучше запускать screen так
exec screen
запущенный screen заменит собой ваш текущий шелл, и если вы закроете его то автоматически разлогинитесь (или закроется окно если вы под XWindows). Но в screen история команд сохранится.
строка статуса в screen
добавляем в ~/.screenrc
caption always "%?%F%{-b bc}%:%{-b bb}%?%C|%D|%M %d|%H%?%F%{+u wb}%? %L=%-Lw%45>%{+b by}%n%f* %t%{-}%+Lw%-0<"взято отсюда http://aperiodic.net/phil/configs/screenrc
немного подправил что бы убрать цвета и использую пока это
caption always "%?%F%{-b}%:%{-b}%?%C|%D|%M %d|%H%?%F%{+u}%? %L=%-Lw%45>%{+b}%n%f* %t%{-}%+Lw%-0<"




