8.4. Виртуальные терминалы

Представьте, что вы над чем-то работаете, и вам понадобилось параллельно сделать что-то ещё. Вы можете просто прервать свою основную работу и переключиться на другую задачу, но ведь это многопользовательская система, не правда ли? Вы ведь можете войти в систему несколько раз, верно? Так почему вы должны выполнять только одну задачу?

А вы и не должны. Мы не можем иметь на своей машине несколько клавиатур, мышек и мониторов. Большинству из нас они не понадобятся. Очевидно, что использование дополнительного аппаратного обеспечения не решит проблему. Решение предоставляется программному обеспечению, и Linux смело берёт это на себя, предоставляя “виртуальные терминалы” или “ВТ”.

Нажимая Alt одновременно с функциональными клавишами, вы можете переключаться между виртуальными терминалами; каждая функциональная клавиша соответствует одному терминалу. По умолчанию Slackware имеет приглашения для входа в систему (login'ы) на 6-ти ВТ. Комбинация Alt+F2 переключит вас во второй терминал, Alt+F3 - в третий и т.д.

Остальные функциональные клавиши зарезервированы для X-сеансов. Каждый X-сеанс использует свой собственный ВТ, начиная с седьмого (Alt+F7) и до двенадцатого. При работе в X'ах комбинация Alt+Функц. клавиша заменяется на Ctrl+Alt+Функц. клавиша. Поэтому если вы находитесь в X'ах и хотите перейти в консольный интерфейс (не завершая X-сеанса), комбинация Ctrl+Alt+F3 переключит вас в третий терминал. (Alt+F7 вернёт вас назад в X'ы при условии, что вы работали в первом X-сеансе.)

8.4.1. Утилита screen

Однако как насчёт ситуаций, когда виртуальных терминалов просто нет? Что тогда? К счастью в Slackware есть прекрасная утилита для управления “экранами” с одноимённым названием - screen. screen - это эмулятор терминала, который имеет виртуальные терминалы с похожими возможностями. При запуске screen появится небольшая вводная информация о программе, а затем вы будете возвращены в терминал. В отличие от стандартных виртуальных терминалов screen имеет свои собственные команды. Все команды screen начинаются с комбинации Crtl+A. Например, Ctrl+A+C создаст новый терминальный сеанс. Ctrl+A+N переключит вас в следующий терминал. Ctrl+A+P переключит вас в предыдущий терминал.

screen также поддерживает отключение и повторное подключение к сеансам screen, что довольно удобно при удалённой работе по ssh и telnet (подробнее мы рассмотрим их позже). Ctrl+A+D отключит вас от текущего сеанса. Запуск screen -r выведет на экран список всех запущенных на данный момент сеансов screen, к которым вы можете подключиться.

% screen -r
There are several suitable screens on:
     1212.pts-1.redtail      (Detached)
     1195.pts-1.redtail      (Detached)
     1225.pts-1.redtail      (Detached)
     17146.pts-1.sanctuary   (Dead ???)
Remove dead screens with 'screen -wipe'.
Type "screen [-d] -r [pid.]tty.host" to resume one of them. 

Запуск screen -r 1212 подключит вас к первому в списке сеансу. Я упоминал ранее о том, насколько это удобно при удалённой работе. Если я авторизовался на удалённом сервере Slackware по ssh, и моё подключение было разорвано по каким-либо причинам (например, перебои с питанием на локальной машине), тогда вся моя работа катилась коту под хвост, что могло иметь ужасные последствия для настраиваемого мною сервера. С использованием screen такого не происходит. При разрыве соединения вы просто отключаетесь от сеанса. После восстановления соединения вы можете вновь подключиться к своему сеансу screen и спокойно продолжить работать.