шпаргалки
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
5.4 KiB

2 years ago
# Screen command
2 years ago
## Ссылки / links
[Ubuntu: manpages](https://manpages.ubuntu.com/manpages/bionic/man1/screen.1.html)<p>
[Baeldung: linux](https://translated.turbopages.org/proxy_u/en-ru.ru.87f13298-63ac1c2f-c385dbbc-74722d776562/https/www.baeldung.com/linux/screen-command#building-a-session)
2 years ago
## Назначение
Реализация многооконного режима в консоли
позволяет запускать программы, которые будут выполняться даже при закрытой консоли и не будут останавливаться при разрыве ssh соединения.
## Область применения
- удаленная работа с сервером (ssh-соединение)
сохранение доступа к рабочей сессии с возможностью последующего подключения и восстановления работы с сессией
## Установка screen
$ apt-get install screen
# Работа с сессией
2 years ago
2 years ago
## Запуск screen
$ screen
2 years ago
аа
По умолчанию, сессия включает только одно окно экрана (по аналогии с вкладками браузера), который представляет из себя командную строку в директории, где была запущена команда screen.
2 years ago
## Просмотр запущеных на экране окон
$ CTRL+a "
2 years ago
Покажет номера окон (Num) и наименования (Name).
2 years ago
2 years ago
## Именование или переименование экрана
2 years ago
$ CTRL+a SHIFT+a
2 years ago
Set window's title to: [newName]
далее можно посмотреть список запущенных экранов и увидеть измененное название
2 years ago
## Создание второго окна на экране
$ CTRL+a c
- второму окну стоит присвоить новое имя
- далее можно посмотреть список запущенных окон и увидеть измененное название второго окна
## Переключение между окнами экрана
$ CTRL+a n {перейти к следующему окну}
$ CTRL+a p {перейти к предыдущему окну}
$ CTRL+a CTRL+a {Переключение к предыдущему активному окну}
$ CTRL+a " {Далее можно переключаться между окнамистрелками "вверх" и "вниз"}
2 years ago
2 years ago
## Паралельное исполнение команд в разных окнах одного экрана
- запускаем в одном окне процесс, записыающий результат выполнения в файл:
$ echo Starting at $(date) > counter.txt; \
while true; do echo $(date); sleep 5; \
done >> counter.txt
2 years ago
- запускаем во втором окне процесс, слушающий изменения в файле:<p>
2 years ago
$ tail -f counter.txt {выводит последнюю строку файла в консоль}
Мы запустили некий код в одном окне и мониторим за его исполнением в другом.
## Переподключение к экрану / screen сессии
- завершение сессии:
просто закрыть терминал
откючиться от сессии командой
$ CTRL+a d
При этом терминал закрывается, а сессия остается активной и подолжает исполняться.
- подключение к последнему закрытому экрану/screen
$ screen -R
2 years ago
## Закрыть экран / screen
Закрыть сессию / screen можно закрыв последовательно все окна на экране.
Закрыть окно можно выполнив команду exit в активном окне:
2 years ago
2 years ago
$ exit
2 years ago
2 years ago
После этого окно закроется и активным станет предыдущее окно
Когда будет выполнена команда exit в последнем окне, экран / screen / сессия закроется и в консоли будет выведено:
2 years ago
2 years ago
$ screen is terminating
2 years ago
2 years ago
## Настройка и сохранение сессии
Настройки screen сессии хранятся в виде команд в файле .screenrc, который размещается в домашней директории пользователя.
Это позволяет:
- быстро загружать нужную сессию,
- переносить сессию с одного компьютера на другой.
2 years ago
2 years ago
Поместим в файл .screenrc, размещенный в домашней директории следующие команды:
2 years ago
2 years ago
$screen -t logs
$screen -t timer
После созранения файла с настройками и запуска команды
2 years ago
$ screen
2 years ago
Можно проверять список активных окон:
2 years ago
CTRL+a "
2 years ago
Также в файле .screenrc может быть размещено множество дополнительных настроек.