CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
29.09.2016

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Сети и Интернет

Screen tips

http://www.in4.org.ua/

Многим часто приходится иметь дело с работой на удаленных серверах по ssh. При этом, могут возникать самые разные проблемы с соединением, и есть вероятность того что результат долгой и напряженной работы будет потерян из-за банального дисконнекта. Хорошо иметь возможность подключаться и отключаться от удаленных хостов, сохраняя терминальные сессии. В этом, а так же во многом другом, может помочь почти "классическая" утилита screen. Скорее всего, screen уже установлен на вашей linux-машине (если нет - самое время установить) и на серверах, с которыми вы собираетесь работать.

Итак, начинаем работу. Запустить новый 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 может существенно облегчить жизнь.




Комментарии

Страницы комментариев: 1 :: 2 :: следующая

berg, Fri Nov 6 01:13:55 2009:
спасибо
Илья, Fri May 22 15:55:30 2009:
Спасибо. Было бы классно, если бы эта статья появилась на русской википедии.
аноним, Wed Apr 15 03:39:38 2009:
очень полезная статья
intsurfer, Sun Mar 29 16:36:41 2009:
спасибо! весьма полезно!
аноним, Sun Mar 29 10:35:52 2009:
Спасибо большое!
АнатоЛой, Wed Mar 25 22:21:46 2009:
Дизель, БОЛЬШОЕ СПАСИБО!
sofree, Mon Nov 24 20:28:29 2008:
Спасибо. Открыл для себя screen. Как же раньше я без него обходился?..
аноним, Fri Sep 19 12:07:25 2008:
screen -xRRAU <имя>
аноним, Fri Sep 19 11:12:47 2008:
спасибо! - четко и доходчиво без вагона воды
AndreyK, Sun Jul 27 16:58:21 2008:
Для мониторинга долгоиграющего процесса надо использовать Ctrl - a M

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
Nezamerzaika30 незамерзайка "Незамоптом".
24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds