Screen reader ubuntu отключить

Обновлено: 07.07.2024

Screen — это программа для «уплотнения» (мультиплекса) физических консолей. Суть в том, что несколько процессов (как правило интерактивных шеллов) могут работать в одном окне консоли. То есть эта программа позволяет пользователю иметь несколько экземпляров терминалов внутри одного терминала этого менеджера окон. Речь идёт не о вкладках, а о перемещении терминалов в фон. Одним из эффектов работы screen является то, что при закрытии окна терминала, процесс продолжает работу.

Приложение screen очень полезно если вы имеете дело с несколькими программами из интерфейса командной строки, а также для отделения программ от оболочки терминала. Она также позволяет вам делиться вашими сессиями с другими пользователями и отсоединять/подсоединять сессии терминала.

Как установить screen

На некоторых системах пакет screen может быть уже установлен. Если у вас его нет, то установите его.

На Debian, Linux Mint, Ubuntu, Kali Linux и их производных:

На RedHat и производных:

На Arch Linux, BlackArch и их производных:

Чтобы установить screen на Solaris:

На самом деле, screen это очень полезная команда в Linux которая может пригодиться при различных обстоятельствах. Давайте начнём знакомство с функциями screen.

Запуск screen в первый раз

Просто наберите screen в приглашении командной строки:

Будет выведена информация о программе — нажмите ENTER, чтобы её скрыть. Затем приглашение командной строки вернётся в точно такое же, как было и ранее.

Справка по параметрам screen

Когда вы вошли в screen, вы можете делать вашу обычную работу как будто бы вы в обычном окружении командной строки. Программа screen расширяет функциольность за счёт своих команд (параметров).

Нажмите Ctrl-A, а затем ? (то есть Shift+/). Затем вы увидите все команды (параметры) screen.

Чтобы выйти из экрана справки, нажмите Пробел или Enter.

Отсоединение процесса от консоли в screen

Одним из преимуществ screen является возможность отсоединить от консоли процесс, который запущен внутри screen. Далее вы можете даже закрыть консоль (или отключиться от SSH) — процесс всё равно продолжит свою работу. Затем вы можете восстановить окно консоли — вы увидите, что программа всё это время работала и её данные не потеряны.

Пример сценария: вы работаете по SSH на вашем сервере. Вам нужно запустить программу, выполнение которой требует много времени. Это может быть скачивание большого патча для системы с помощью wget или любая длительная команда. В качестве примера я возьму обычный ping. Предположим мне нужно проверить качество связи с помощью ping на протяжении двух часов. Если я отключусь от SSH или связь будет потеряна случайно, то тогда процесс выполнения команды в консоли будет остановлен и нужно будет вновь начинать сначала. Чтобы этого избежать, мы можем использовать screen для отсоединения процесса от консоли.

Рассмотрим на примере конкретных команд.

Вначале входим в screen:

Затем я запускаю пинг:

В процессе работы программы, мы можем нажать Ctrl-a и d. Вывод от программы прекратиться, мы увидим примерно следующую информацию:


Повторное подсоединение консоли с запущенным процессом к screen

После отсоединения процесса и закрытия screens, вы можете отключиться от сервера, то есть закрыть SSH сессию и заняться другими делами. Затем вы можете подключиться к SSH снова — причём, возможно даже с другого компьютера. После этого вы можете увидеть прогресс выполнения вашего процесса (пинг, загрузка, что угодно). Чтобы это сделать, нужно восстановить screen. Для этого запустите следующую команду:

И вы увидите, что процесс, который вы здесь оставили, всё ещё запущен.

Когда у вас больше чем одна сессия screen, то вам нужно будет ввести ID (идентификатор) сессии screen. Используйте screen -ls чтобы показать, как много сессий доступно:


Если вы хотите восстановить сессию screen 13786.pts-2.HackWare, тогда наберите следующую команду:

Использование нескольких screen

Когда нужен больше чем один screen для выполнения работы, это возможно? Да, можно одновременно работать с несколькими screen. Вы можете запустить несколько окон screen одновременно — есть два способа сделать это.

Во-первых, вы можете отсоединить первый экран screen для запуска другого screen в реальном терминале.

Во-вторых, вы можете делать вложенные экраны screen.

Переключение между экранами

Когда вы делаете вложенные screen, вы можете переключаться между ними используя команду Ctrl-a и n. В этом случае вы перейдёте к следующему окну screen. Когда вам нужно перейти к предыдущем screen, то просто нажмите Ctrl-a и p.

Для создания нового окна screen нажмите Ctrl-a и c.

Как записать все действий в терминале

Иногда важно сохранить все действия в терминале, которые вы выполнили находясь в консоли, то есть вести журнал (логи) активности в консоли.

Допустим вы администратор Linux, который управляет множеством серверов Linux. С ведением журнала в screen, вам не нужно выписывать каждую команду, которую вы ввели. Для активации функции ведения журнала screen просто нажмите Ctrl-a и H. Пожалуйста, будьте осторожны — используется заглавная H (то есть Shift+h). Использование прописной ‘h’ только создаст скриншот экрана screen в файле с именем hardcopy.

В нижней левой части экрана будет уведомление, которое говорит что-то вроде Creating logfile «screenlog.0» (производится ведение журнала экрана). В своей домашней директории вы найдёте файл screenlog.0.

Эта функция будет добавлять в файл всё, что вы делаете в окне screen. Для закрытия активности по ведению журнала screen, вновь нажмите Ctrl-a и H.

Другой способ активировать функцию ведения журнала: вы можете добавить параметр -L во время запуска screen. Команда будет выглядеть примерно так:

Блокировка screen

Screen также имеет комбинацию клавиш для блокировки окна screen. Вы можете нажать Ctrl-a и x для блокировки screen. Это полезно, если вы хотите быстро заблокировать ваш screen. Пример вывода после блокировки:


Вы можете использовать ваш пароль в Linux чтобы разблокировать его.

Добавление пароля на заблокированный screen

Для дополнительной безопасности, вы можете установить пароль на вашу сессию screen. Пароль будет спрашиваться каждый раз, когда вы хотите подсоединить screen. Этот пароль отличается от пароля в описанным выше механизме блокировки окна Screen.

Чтобы защитить паролем screen, вы можете отредактировать файл «$HOME/.screenrc». Если файл не существует, создайте его. Синтаксис будет примерно таким:

ВАШ_ПАРОЛЬ нужно указать в виде хеша, а не в виде обычного текста. Если там указано none, то пароль не будет спрашиваться. Если не указать пароль, то screen покажет приглашение для ввода пароля и его подтверждения и поместит хеш в буфер обмена.

Чтобы сгенерировать хеш, нужно выполнить следующую последовательность действий:

  • запустить сессию screen:
  • нажать Ctrl+a
  • там ввести:
  • появится приглашение ввести пароль и его подтвердить.
  • затем нажать Ctrl+a и ] - пароль будет скопирован на экран.

После того, как вы установите пароль password и нажмёте Ctrl-a и x, то у вас программа будет спрашивать пароль два раза: первым будет пароль пользователя, а затем пароль от screen . При подсоединении задач пароль будет спрашиваться только от screen.

Как выйти из Screen

Есть два способа покинуть screen. Первый это использовать Ctrl-a и d для отсоединения экрана. Второй — мы можем использовать команду exit для закрытия сессии screen. Вы также можете использовать Ctrl-a и K для остановки screen.

Как запустить скрипт, процесс которого отделён от терминала

С помощью screen также возможно запуск файла скрипта, который изначально будет отделён от терминала, например:

Это запустит отделённый (независящий) от терминала процесс. Можно отделить любую команду или процесс с помощью программы screen.

Как просмотреть предыдущие результаты (вывод)

Если вывод программы очень большой, то у вас могут возникнуть затруднения при скроллинге вверх.

Вы можете нажать Ctrl-a и Esc для входа в Copy mode (режим копирования). Когда вы окажитесь в режиме копирвоания, вы можете использовать для пролистывания экранов кнопки PageUp и PageDown.

Для выхода из Copy Mode, нажмите ещё раз Esc.

Как разделить экран на несколько вкладок в screen

В screen вы можете разделить окно на несколько виртуальных терминалов, которые будут одновременно присутствовать на экране. Для этого нажмите Ctrl-a и S.

Именные окна screen

Вы можете использовать несколько именных окон screen. Для этого запустите сессию screen с опцией -S, после которой укажите желаемое имя, например:

эта команда создаст screen с именем testing.

покажет текущие сессии screen с их именами:

Чтобы подключиться к именной сессии screen используйте опцию -x с именем сессии:

в результате предыдущей команды, вы подключитесь к testing screen.

Альтернатива для screen

Если вы ищите альтернативу для screen, то присмотритесь к tmux.

Это азы использования screen которые вам пригодятся практически при каждом её использовании. У программы ещё множество функций, с которыми вы можете ознакомится в её справке или на странице man.

Есть Ubuntu Server 8.04 в минимальной конфигурации Под Х без какой либо визуально оболочки запускается приложение. Трабл в том что каждые 10 минут запускается скринсэйвер(без понятия какой) и гасит экран и монитор.

Куда лезть чтобы понять какой скринсэйвер стоит и как его отключить? Буду ооочень признателен за помощь!


знакомый трабл
гугли disable console blanking
у меня есть точная инструкция, но до неё доберусь не раньше понедельника. стукни на мыло (оно в профиле) после выходных

Надеюсь найду решение раньше, но если нет :( - стукнусь


В '/etc/X11/xorg.conf' добавь:

это просто предотвращает выключение монитора - но мне важно чтобы картинка вообще не гасилась, а dpms это побочное явление

А вот это попробую. Низкий поклон! )


это оно и есть, что ты спрашивал:

но первое карасивее и лучше, если не хочеш прибивать это гвоздями в xorg.conf

За науку большое спасибо! Буду знать.

Но Хочу прибить гвоздями, а еще лучше бы выбросить скринсайвер из сборки навсегда )) Из-за него полдня жизни коту под хвост ((

Всем огромное спасибо! Могу проставиться пивом, кто в первоперстольной! )))

Не совсем верно. Нужно ещё делать xset s 0 - это отключение _именно_ screen-saver. Бывает что просто xset -dpms (или xset dpms 0 0 0) не прокатывает.


эт только Х-ов касается. там есть спецнастройки для текстового режима консоли


крути эти параметры

BLANK_TIME=30
BLANK_DPMS=off
POWERDOWN_TIME=30


Есть Ubuntu Server 8.04 в минимальной конфигурации Под Х


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

И еще выполнить команды типа xset не могу, т.к. в графическую оболочку не пускает выделенное приложение, а в консоли пишет что нет дисплея.

1. Уберите из автозагрузки ненужные программы.

Ubuntu 16.04, во время старта, загружает большое количество разнообразных приложений, многие из которых вам, скорее всего, не нужны. Чтобы ускорить Ubuntu, можете просто их отключить.
Однако, многие автоматически запускаемые программы скрыты, и для того, чтобы их увидеть, нужно выполнить следующую команду:

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

2. Отрегулируйте Swappiness.

Как ускорить работу Ubuntu? Рекомендуется установить более низкое значение swappiness, чтобы ядро использовало оперативную память в максимально возможном объеме. Например, чтобы установить значение 10, следует выполнить такую команду:

Не ставьте пробелов до или после знака " stb-container-css stb-code-container stb-image-none stb-ltr stb-corners stb-shadow stb-side-none" >

В конец этого файла нужно добавить строку:

4


Сохраните файл и закройте редактор (Нажать Ctrl+O, чтобы сохранить и Ctrl+X, чтобы выйти). Все эти действия применимы и в Ubuntu Server 16.04.

3. Предзагрузка часто используемых программ.

По завершении установки, демон preload запустится автоматически, можно убедиться в этом, выполнив команду:

5


Если, по каким-то причинам, он окажется незапущенным, выполните команду:

4. Отключите эффекты.

Эффекты, без сомнения, радуют глаз, разбавляя собой скучное рабочее пространство. Однако, для их работы также необходимы ценные системные ресурсы. Как ускорить Ubuntu 16.04? При помощи compizconfig-settings-manager эффекты можно отключить, увеличив тем самым производительность.
Установить compizconfig-settings-manager можно с помощью команды:

6

Запустите его из Unity Dash, затем выберите слева раздел "Эффекты" и отключите те, которые вам не нужны. Если захотите, можно отключить абсолютно все.

Также можно выключить размытие заднего плана в Unity Dash при помощи Unity Tweak Tool. Это сделает Unity Dash более отзывчивым.
Установка Unity Tweak Tool:

Установив, откройте его и выберите вкладку "Поиск", затем переключите кнопку "Размытие заднего плана" (Background blur) в состояние "Выкл." (OFF).

Вообще, многим нравится прозрачный фон, а вам?
До:

После:

Бонусный совет: найдите главного виновника медленной загрузки.

Можно узнать, сколько времени необходимо для старта каждой из загружаемых служб, выполнив следующую команду:

10


Как видно на снимке выше, службы mnt-pi.mount и vboxadd.service являются теми самыми виновниками. Я знаю, что mnt-pi.mount отвечает за монтирование NFS (сетевой файловой системы) на моем Raspberry Pi, но она мне больше не нужна, поэтому я могу безболезненно убрать ее из файла /etc/fstab. Я также знаю, что демон vboxadd.service нужен только для виртуальной машины, то есть мне, опять-таки, без надобности.
Отключаем:

До:

После:

Протокол IPv6 - это новая технология, которая предоставляет намного большее адресное пространство IP адресов, более высокую безопасность и скорость работы. Но это все в идеале. IPv6 нарушает обратную совместимость с IPv4 и сейчас в большинстве случаев используется старый протокол. Мы уже очень подробно рассматривали чем отличается IPv6 от IPv4, поэтому не будем повторять все еще раз.
Поскольку на данный момент IPv6 используется достаточно редко, этот протокол полностью поддерживается далеко не всем оборудованием. Если IPv6 не поддерживается вашим роутером или провайдером, то это замедлит работу сети, дольше будут определяться доменные имена сайтов и будет выполняться попытка получения IPv6 адреса, что тоже приведет к задержке. В этой небольшой заметке мы рассмотрим как отключить ipv6 Ubuntu 16.04 или других совместимых дистрибутивах.

Проверка поддержки IPv6

Все современные дистрибутивы поддерживают IPv6 без исключений. Но чтобы убедиться что ваша локальная машина получила ipv6 адрес вы можете выполнить команду:
Если вы увидите привычный ответ о времени доставки пакетов, то значит все работает, но если ipv6 провайдером не поддерживается вы получите network unreachable или что-то в этом роде. В таком случае IPv6 лучше отключить чтобы интернет работал быстрее.

Как отключить IPv6 в Ubuntu 16.04

Есть несколько способов отключить Ipv6 Ubuntu 16.04 мы рассмотрим их все.

Способ 1. С помощью sysctl

Первый способ решения нашей задачи, это редактирование параметров ядра во время выполнения с помощью sysctl. Для отключения IPv6 выполните:
$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
$ sudo sysctl net.ipv6.conf.default.disable_ipv6=1
$ sudo sysctl net.ipv6.conf.lo.disable_ipv6=1 Вы можете также пойти другим путем и записать все эти значения в файл настройки, чтобы они применялись по умолчанию при старте системы:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1 Сохраните файл, закройте его и перезапустите sysctl для обновления конфигурации:
Теперь, когда вы выполните ip addr show, здесь не должно быть ipv6 адреса:

ipv62

Способ 2. Отключить ipv6 в Grub

Вы также можете отключить IPv6 отредактировав параметры загрузки ядра в Grub. Для этого откройте файл /etc/default/grub и добавьте туда такую строку:

ipv61


Если переменная GRUB_CMDLINE_LINUX уже существует то вы можете добавить это значение в конец строки к другим параметрам. После завершения сохраните изменения и обновите конфигурацию Grub с помощью команды:

После перезагрузки отключение ipv6 Ubuntu 16.04 будет завершено и ваша сеть станет работать быстрее.

Screen – это консольное приложение, позволяющее использовать несколько терминальных сессий в одном окне. Программа действует в рамках сессии оболочки и выступает в качестве контейнера и менеджера для других терминальных сессий, подобно тому, как менеджер окон управляет окнами.

Во многих случаях создание нескольких терминальных окон не представляется возможным. Возможно, понадобится управлять несколькими сессиями консоли, не запуская сервер X; может потребоваться быстрый доступ к нескольким удаленным облачным серверам или вывод на монитор работающей программы во время работы над какой-то другой задачей. Все эти потребности легко удовлетворить с помощью консоли Screen.

Установка

Данное руководство использует Ubuntu 12.04; на каждом современном дистрибутиве все команды, кроме установки, будут такими же.

Чтобы установить консоль на Ubuntu, используйте команду «apt-get»:

sudo apt-get update
sudo apt-get install screen

Основы использования

Чтобы начать сессию screen, просто вызовите команду «screen»:

screen
Screen version 4.00.03jw4 (FAU) 2-May-06
Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program (see the file COPYING); if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to
screen@uni-erlangen.de
[Press Space for next page; Return to end.]

При запуске появится страница лицензирования. Для продолжения нажмите «Return» или «Enter».

Дальнейшие действия программы могут быть неожиданными. Предоставляется обычная командная строка и, кажется, ничего не происходит. Может, произошла ошибка работы screen? Чтобы узнать это, используйте быстрое сочетание клавиш. Нажмите и удерживайте клавишу управления (Ctrl), нажмите «а», затем клавишу «v»:

Ctrl-a v
screen 4.00.03jw4 (FAU) 2-May-06

Данное действие запрашивает у Screen информацию о версии; выведенный результат свидетельствует о том, что консоль работает.

Теперь нужно ознакомиться с управлением консолью. Screen управляется преимущественно с помощью клавишных комбинаций быстрого вызова. Каждой такой комбинации должна предшествовать «Ctrl-a» (зажмите клавишу «Ctrl» перед нажатием «а»). Такая последовательность нажатия клавиш говорит Screen обратить внимание на следующие нажатые клавиши.

Данный принцип уже использовался при запросе информации о Screen. Используйте его снова, чтоб получить еще немного полезной информации.

Ctrl-a ?
Screen key bindings, page 1 of 2.
Command key: ^A Literal ^A: a
break ^B b license , removebuf =
clear C lockscreen ^X x reset Z
colon : log H screen ^C c
copy ^[ [ login L select '
detach ^D d meta a silence _
digraph ^V monitor M split S
displays * next ^@ ^N sp n suspend ^Z z
dumptermcap . number N time ^T t
fit F only Q title A
flow ^F f other ^A vbell ^G
focus ^I pow_break B version v
hardcopy h pow_detach D width W
help ? prev ^H ^P p ^? windows ^W w
history < >quit \ wrap ^R r
info i readbuf < writebuf >
kill K k redisplay ^L l xoff ^S s
lastmsg ^M m remove X xon ^Q q
[Press Space for next page; Return to end.]

Это список внутренних горячих клавиш. Стоит запомнить команду его вызова, так как это отличный способ быстро получить справку. Как видно внизу файла, чтоб получить больше команд, нужно нажать пробел.

Теперь вызовите команду «top», которая предоставляет информацию о процессах.

top
top - 16:08:07 up 1:44, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 58 total, 1 running, 57 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 507620k total, 262920k used, 244700k free, 8720k buffers
Swap: 0k total, 0k used, 0k free, 224584k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 3384 1836 1288 S 0.0 0.4 0:00.70 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.11 ksoftirqd/0
5 root 20 0 0 0 0 S 0.0 0.0 0:00.12 kworker/u:0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.07 watchdog/0
8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
12 root 20 0 0 0 0 S 0.0 0.0 0:00.03 sync_supers
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 bdi-default
14 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khubd
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md

Теперь можно просмотреть процессы на VPS. Но какие команды использовать, чтоб получить более подробную информацию о запущенных программах? Можно не выходить из команды «top», а просто создать новое окно для запуска этих команд.

Последовательность «Ctrl-a c» создает новое окно. Теперь можно запустить любую команду, не нарушая запущенных в другом окне команд (в данном случае это мониторинг процессов).

Куда пропало это другое окно? К нему можно вернуться при помощи команды:

Данная последовательность выводит следующее запущенное окно. Список окон циклично замкнут, так что если за текущим окном нет других окон, она возвращает первое окно.

Данная последовательность переключает окна в обратном порядке. Если, к примеру, запущено три окна, и третье является текущим, данная команда выведет второе окно.

При постоянном переключении между двумя окнами полезно использовать следующее сочетание клавиш:

Данная последовательность переводит пользователя в наиболее часто посещаемое окно. В предыдущем примере она бы снова вывела третье окно.

Сейчас отслеживание всех созданных окон может показаться невозможным. К счастью, консоль Screen предоставляет несколько способов управления разными сессиями. Для начала создайте три новых окна (итого получится 4 окна), а затем используйте один из самых простых инструментов управления окнами – «Ctrl-a w».

Ctrl-a c
Ctrl-a c
Ctrl-a c
Ctrl-a w
0$ bash 1$ bash 2-$ bash 3*$ bash

Данная команда предоставляет полезную информацию – список открытых окон. В данном случае открыто 4 окна. Каждое окно имеет свой номер, начиная с 0. Звездочка рядом с номером указывает на текущее окно.

Как можно видеть, на данный момент окно №3 является текущим (по сути, оно четвертое, так как нумерация начинается с 0). Как быстро переключиться на окно №1?

Порядковый номер можно использовать для прямого перехода в необходимое окно. Снова откройте список окон:

Ctrl-a w
0$ bash 1*$ bash 2$ bash 3-$ bash

Как можно видеть, теперь текущим является окно №1. Попробуйте другой способ переключения между окнами.

Ctrl-a “
Num Name Flags
0 bash $
1 bash $
2 bash $
3 bash $

На этот раз выведено навигационное меню. Теперь можно перемещаться при помощи стрелок вверх и вниз или же клавиш «j» и «k», как это делается в текстовом редакторе vi. Переключиться на выбранное окно можно, нажав кнопку «Return» или «Enter».

Это достаточно полезно, но на данный момент все окна называются «bash». Это не очень удобно. Теперь нужно дать название сессии. Переключитесь на окно, которое нужно назвать, и используйте последовательность «Ctrl-a A».

Ctrl-a 0
Ctrl-a A
Set window's title to: bash

При помощи данной последовательности можно дать сессии название. С помощью клавиши «backspace» сотрите «bash» и введите любое новое имя. Для примера назовите окно №0 «monitoring» и запустите в нем команду «top».

Set window's title to: monitoring
Ctrl-a “
Num Name Flags
0 monitoring $
1 bash $
2 bash $
3 bash $

Окно №0 имеет более удобное имя.

Теперь можно создавать и переименовывать окна; но как избавиться от ненужного окна?

Используйте последовательность «Ctrl-a k», что значит «kill»:

Ctrl-a k
Really kill this window [y/n]

Управление сессиями Screen

Чтобы выйти из Screen и закрыть все окна, используйте следующую последовательность команд:

Ctrl-a \
Really quit and kill all your windows [y/n]

Это завершит сессию Screen. Все созданные окна, а также вся незавершенная работа будут потеряны.

Использование Screen имеет одно огромное преимущество. Сессию можно не удалять, а просто снять. Снятие сессии позволяет программам, запущенным в Screen, продолжать работу, а также дает доступ к сессии основной консоли (той, с которой начинается работа со Screen). Данная сессия Screen все еще существует, просто она управляется в фоновом режиме.

Ctrl-a d
[detached from 1835.pts-0.Blank]

Итак, сессия снята. Как вернуться в данную сессию?

Флаг «-r» значит «reattach», или «восстановить». Но что если существует несколько сессий Screen? Что если сессия Screen была создана и снята, а затем создана новая сессия, которая также была снята?

screen
Ctrl-a d
screen
Ctrl-a d

Как сказать Screen, какую сессию нужно восстановить?

screen –ls
There are screens on:
2171.pts-0.Blank (07/01/2013 05:00:39 PM) (Detached)
1835.pts-0.Blank (07/01/2013 03:50:43 PM) (Detached)
2 Sockets in /var/run/screen/S-justin.

Теперь выведен список сессий. Чтобы восстановить вторую сессию, введите ее идентификационный номер после флага «-r».

Что если нужно восстановить сессию на двух удаленных компьютерах или терминальных окнах? Используйте флаг «-x», что позволяет разделить сессию.

Управление терминалами в Screen

Существует ряд команд, позволяющий управлять сессиями терминалов, запущенных в Screen.

Чтобы скопировать текст, используйте последовательность:

Эта последовательность предоставляет курсор, который можно передвигать при помощи клавиш со стрелками или же клавиш «h», «j», «k», «l» (как в vi). Переведите курсор в начало фрагмента текста, который нужно скопировать, и нажмите «Return» или «Enter». Затем переведите курсор в конец фрагмента и снова нажмите «Return» или «Enter». Текст будет скопирован в буфер обмена.

Следует запомнить, что это также механизм прокрутки данной консоли. При необходимости просмотреть текст, находящийся вне экрана, введите «Ctrl-a [» и используйте прокрутку вверх.

Можно вставить скопированный текст с помощью закрывающей квадратной скобки

Также может понадобиться просмотреть программы, запущенные в другом screen-окне.

К примеру, какие-либо данные компилируются в одном окне и необходимо узнать, когда процедура завершена. Можно сказать Screen отслеживать бездействие этого окна при помощи последовательности «Ctrl-a _», которая сообщит, если данные перестанут выводиться в течение 30 секунд.

Приведем более простой пример. Скажите консоли Screen сообщить, когда окно завершит пинг Google 4 раза.

Теперь можно работать в другом окне и ждать извещения о завершении задачи в предыдущем окне.

Ctrl-a 1
Window 2: silence for 30 seconds

Можно также, наоборот, запрашивать извещение об активности определенного окна. Это делается при помощи последовательности «Ctrl-a M».

sleep 20 && echo “output”
Ctrl-a M
Window 2 (bash) is now being monitored for all activity.

Теперь появится извещение при выводе данных в этом окне.

Ctrl-a 1
Activity in window 2

К примеру, необходимо внести ряд важных изменений, и при этом нужно получить журнал запущенных команд. Сессию можно записать при помощи:

Ctrl-a H
Creating logfile "screenlog.1".

Области Screen

При необходимости видеть несколько окон сразу, можно использовать так называемые «области». Новые области создаются при разделении текущей области. Чтобы разделить текущую область по горизонтали, можно ввести:

Это передвинет текущее окно в верхнюю часть экрана и откроет новую пустую область под ним. Чтобы перейти в нижнюю область, используйте «tab»:

Теперь в нижней области можно создать новое окно или же перейти в другое окно в обычном порядке.

При необходимости уничтожить текущую область используйте следующую последовательность:

Это удаляет область, при этом не уничтожая текущее окно. То есть, если в данной области была запущена команда, то получить доступ к ней как к обычному окну все еще можно, просто отдельная область уничтожена.

При необходимости сделать вертикальный раздел, можно использовать последовательность:

Примечание: это не символ 1 (единицы) или L. Это символ вертикальной черты, который на большинстве клавиатур находится на одной клавише с символом «\». Средства управления вертикальными областями совпадают с управлением горизонтальными. При необходимости удалить несколько различных областей и вернуться к одной области, можно использовать данную последовательность, которая разрушает все области, кроме текущей:

Использование Byobu

Значительным улучшением для Screen является программа под названием «byobu». Она действует как оболочка Screen и предоставляет повышенное удобство пользования. В Ubuntu ее можно установить с помощью:

sudo apt-get install byobu

Прежде чем начать, нужно сказать byobu использовать screen как выходной буфер. Это можно сделать с помощью команды:

byobu-select-backend
Select the byobu backend:
1. tmux
2. screen
Choose 1-2 [1]:

Здесь можно установить screen как менеджер терминала по умолчанию.

Теперь можно ввести «byobu» вместо «screen», чтобы начать сессию.

$
u? 12.04 0:* 118! 3h55m 2.00 2.0GHz 496M6% 2013-07-01 18:19:21

Как можно видеть, теперь screen заключен в удобный интерфейс.

Впервые набрав «Ctrl-a», нужно сказать byobu распознавать эту команду как команду screen, а не Emacs.

Ctrl-a
Configure Byobu's ctrl-a behavior.
When you press ctrl-a in Byobu, do you want it to operate in:
(1) Screen mode (GNU Screen's default escape sequence)
(2) Emacs mode (go to beginning of line)
Note that:
- F12 also operates as an escape in Byobu
- You can press F9 and choose your escape character
- You can run 'byobu-ctrl-a' at any time to change your selection
Select [1 or 2]:

Выберите 1, чтобы использовать byobu в обычном режиме.

Интерфейс предоставляет много полезной информации, как, например, список окон и информацию о системе. В Ubuntu он даже сообщает, сколько пакетов имеет обновления безопасности в виде номера с последующим восклицательным знаком на красном фоне.

Единственное отличие между byobu и screen в том, что byobu управляет сессиями. Если после отключения просто снова набрать «byobu», она восстановит предыдущую сессию вместо того, чтобы создавать новую.

Чтобы создать новую сессию, нужно набрать:

byobu –S sessionname

Измените «sessionname» (имя сессии) по своему усмотрению, чтобы вызвать новую сессию. Список текущих сессий можно просмотреть с помощью:

byobu –ls
There are screens on:
22961.new (07/01/2013 06:42:52 PM) (Detached)
22281.byobu (07/01/2013 06:37:18 PM) (Detached)
2 Sockets in /var/run/screen/S-root.

Если существует несколько сессий, то после ввода «byobu» появится меню, в котором можно выбрать, к какой из сессий нужно подключиться.

byobu
Byobu sessions.
1. screen: 22961.new (07/01/2013 06:42:52 PM) (Detached)
2. screen: 22281.byobu (07/01/2013 06:37:18 PM) (Detached)
3. Create a new Byobu session (screen)
4. Run a shell without Byobu (/bin/bash)
Choose 1-4 [1]:

Можно выбрать любую из существующих сессий, создать новую сессию byobu, или даже новую оболочку, не использующую byobu.

Одна из очень полезных для удаленного облачного сервера функций – возможность запускать byobu автоматически при каждом подключении к сессии. Это значит, что при отключении сессии работа не будет потеряна, и можно будет без труда подключиться к данной сессии снова.

Чтобы активировать автоматический запуск byobu при каждом входе, введите в терминал:

byobu-enable
The Byobu window manager will be launched automatically at each text login.
To disable this behavior later, just run:
byobu-disable
Press to continue.

Читайте также: