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

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

ОСТОРОЖНО: ВИНДОФИЛИЯ! (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

AndreyK, Sun Jul 27 16:44:07 2008:
Спасибо.
аноним, Fri Jul 11 13:44:38 2008:
гораздо лучше, чем мучиться и man читать
аноним, Fri Jul 11 10:52:03 2008:
Наблюдать за чужим скрином можно так
,----
|
| username1 logs into host:
| start screen
| Control-a : multiuser on
| Control-a : acladd username2
|
| second user logs into same host:
| screen -x username1/
|
`----
http://lists.gnu.org/archive/html/screen-users/2005-10/msg00028.html
vdp, Sat Jun 21 18:08:53 2008:
а как автоматом запускать в разные вкладки приложения (скрипты, и так, чтобы по выходу из них вкладка не закрывалась, а оставляла лог отчета) ?
аноним, Thu Jun 19 12:06:49 2008:
Отличная статья. Коротко и понятно!
Inhum, Tue Jun 10 11:08:13 2008:
Отличная статья!
Правда я перед этим весь мануал перечитал, а потом на эту статью наткнулся. :)
Все основные функции описаны доходчиво и с примерами. :)
За конфиг спасибо.
xalk, Sat May 31 13:28:59 2008:
Сенкс!Очень помогло))
аноним, Sat May 17 14:39:54 2008:
Жирный конфигурационный файл....мне понравилось
аноним, Thu Apr 17 14:48:03 2008:
отлично
аноним, Sun Feb 10 12:33:34 2008:
Занятная статья, много полезного почерпнул

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

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

Новости:

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

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

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
Трубы для теплого пола. Трубы металлопластиковые для системы отопления в частном доме.
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