Итак, начинаем работу. Запустить новый screen можно(как ни странно), просто командой screen без параметров:
diesel@debian:~$ screen
При этом, в зависимости от настроек screen в вашей системе либо просто появится приглашение шелла, либо "экран приветствия", нажав SPACE или ENTER в котором вы так же попадете в shell. Вроде бы ничего не обычного, кроме того что этот shell будет уже запущен "внутри" screen'а.
Для того чтобы выйти из screen'а(выйти а не отстоединится) достаточно выйти из всех открытых в нем оболочек, либо же нажать комбинацию клавиш Ctl-a \, и ответить "y" на вопрос "действительно ли вы хотите выйти".
Отсоединится от текущего скрина, не закрывая и не завершая сессии можно комбинацией Ctrl-a d.
Если на машине уже есть запущенная screen-сессия, и вы хотите подсоединится к ней, то
1) если сессия одна, достаточно просто команды:
diesel@debian:~$ screen -x
2) если сессий несколько, то:
посмотреть список запущенных screen'ов можно командой screen -ls:
diesel@debian:~$ screen -ls
There are screens on:
2762.pts-0.debian (Detached)
2743.pts-0.debian (Detached)
2 Sockets in /var/run/screen/S-diesel.
diesel@debian:~$
выбираем нужный нам screen, и присоединяемся к нему:
screen -x 2762.pts-0.debian
Названия сессий по-умолчанию малоинформативны - просто номера процессов, если есть желание запустить и использовать несколько screen-сессий для разных задач можно придумать более вменяемые названия. Придумываем название, затем запускаем новый screen вот таким образом:
diesel@debian:~$ screen -S "job1"
где job1 - это название нашей "именнованной" сессии. Теперь в -ls мы увидим гораздо более понятное:
diesel@debian:~$ screen -ls
There are screens on:
2762.pts-0.debian (Detached)
2795.job1 (Detached)
2743.pts-0.debian (Detached)
3 Sockets in /var/run/screen/S-diesel.
и сможем подсоединиться к сессии job1 просто указав ее имя:
diesel@debian:~$ screen -x job1
Как вы уже поняли, сессии сохраняются даже в то время когда вы отключны от сервера, и все что в них запущено продолжает выполнятся. Впрочем, на этом возможности screen'а не исчерпываются.
Иногда при работе по ssh очень хочется чтобы было открыто сразу несколько терминалов, при этом коннектится несколько раз облом - особенно если коннектится нужно через несколько серверов. В этом тоже может помочь screen. Просто нажмите Ctrl - a c и откроется еще один шелл. Перемещатся между открытыми шеллами можно либо через Ctrl - a <Цифра>, где <Цифра> - номер открытого шелла начиная с нуля, либо Ctrl - a n/Ctrl - a p - вперед назад. Получить список открытых "окон" - консолей(и переключится на нужную), можно комбинацией клавиш Ctrl - a "; чтобы задать нормальное имя(а не просто скучный "bash") для какого-нить окна, перейдите в него и нажмите Ctrl - a A (регистр имеет значение), затем в появившемся приглашении введите имя.
Если открыто несколько окон полезной может быть возможность следить за активностью в каком-то из них. Например если вы запустили "долгоиграющую" команду и интересно узнать когда она завершится. Переходим в окно с этой командой, жмем Ctrl - a m, видим надпись типа такой: "Window 0 (bash) is now being monitored for all activity". Когда что-то в окне изменится screen подаст звуковой сигнал, а в списке окон после номера появится символ "@".
Конфигурируется screen с помощью файла ~/.screenrc, в вашем домашнем каталоге. Например можно написать туда вот такую абракадабру:
caption always "%{= 45}%{+b w}Screen: %n | %h %=%t %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
для того чтобы получить все время видимый список открытых окон, и другую полезную информацию внизу экрана.
Вот примерно так маленький и незаметный screen может существенно облегчить жизнь.
Комментариев нет:
Отправить комментарий