Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Screen tips
- diesel
- http://www.in4.org.ua/
- 16 Январь 2008 г
- Многим часто приходится иметь дело с работой на удаленных серверах по ssh. При этом, могут возникать самые разные проблемы с соединением, и есть вероятность того что результат долгой и напряженной работы будет потерян из-за банального дисконнекта. Хорошо иметь возможность подключаться и отключаться от удаленных хостов, сохраняя терминальные сессии. В этом, а так же во многом другом, может помочь почти "классическая" утилита screen. Скорее всего, screen уже установлен на вашей linux-машине (если нет - самое время установить) и на серверах, с которыми вы собираетесь работать.
- Итак, начинаем работу. Запустить новый screen можно, как ни странно, просто командой screen без параметров:
- diesel@debian:~$ screen
- При этом, в зависимости от настроек screen в вашей системе, либо просто появится приглашение шелла, либо "экран приветствия", нажав SPACE или ENTER в котором, вы так же попадете в shell. Вроде бы ничего необычного, кроме того, что этот shell будет уже запущен "внутри" screen'а.
- Для того, чтобы выйти из screen'а (выйти, а не отсоединиться) достаточно выйти из всех открытых в нем оболочек, либо же, нажать комбинацию клавиш Ctl-a \, и ответить "y" на вопрос "действительно ли вы хотите выйти".
- Отсоединиться от текущего скрина, не закрывая и не завершая сессии, можно комбинацией Ctrl-a d.
- Если на машине уже есть запущенная screen-сессия, и вы хотите подсоединиться к ней, то
- если сессия одна, достаточно просто команды:
- diesel@debian:~$ screen –x
- если сессий несколько, то: посмотреть список запущенных 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 может существенно облегчить жизнь.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement