# Screen command ## Ссылки / links [Ubuntu: manpages](https://manpages.ubuntu.com/manpages/bionic/man1/screen.1.html)
[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) ## Назначение Реализация многооконного режима в консоли позволяет запускать программы, которые будут выполняться даже при закрытой консоли и не будут останавливаться при разрыве ssh соединения. ## Область применения - удаленная работа с сервером (ssh-соединение) сохранение доступа к рабочей сессии с возможностью последующего подключения и восстановления работы с сессией ## Установка screen $ apt-get install screen # Работа с сессией ## Запуск screen $ screen По умолчанию, сессия включает только одно окно экрана (по аналогии с вкладками браузера), который представляет из себя командную строку в директории, где была запущена команда screen. ## Просмотр запущеных на экране окон $ CTRL+a " покажет номера окон (Num) и наименования (Name) ## Именование / переименование экрана (screen) $ CTRL+a SHIFT+a Set window's title to: newname - далее можно посмотреть список запущенных экранов и увидеть измененное название ## Создание второго окна на экране $ CTRL+a c - второму окну стоит присвоить новое имя - далее можно посмотреть список запущенных окон и увидеть измененное название второго окна ## Переключение между окнами экрана $ CTRL+a n {перейти к следующему окну} $ CTRL+a p {перейти к предыдущему окну} $ CTRL+a CTRL+a {Переключение к предыдущему активному окну} $ CTRL+a " {Далее можно переключаться между окнамистрелками "вверх" и "вниз"} ## Паралельное исполнение команд в разных окнах одного экрана - запускаем в одном окне процесс, записыающий результат выполнения в файл: $ echo Starting at $(date) > counter.txt; \ while true; do echo $(date); sleep 5; \ done >> counter.txt - запускаем во втором окне процесс, слушающий изменения в файле: $ tail -f counter.txt {выводит последнюю строку файла в консоль} Мы запустили некий код в одном окне и мониторим за его исполнением в другом. ## Переподключение к экрану / screen сессии - завершение сессии: просто закрыть терминал откючиться от сессии командой $ CTRL+a d При этом терминал закрывается, а сессия остается активной и подолжает исполняться. - подключение к последнему закрытому экрану/screen $ screen -R ## Перевести концовку мануала if we want to close a window in a session, we can just type exit in the window: $ exit Copy This will close the current window and change to the previous window. If we type exit in the last window in a session, the screen session will end with the message: [screen is terminating] ## Customizing a screen Session We can customize a screen session by placing commands in a .screenrc file our user home directory. It’s also a way to easily port our preferred session settings to another machine. As a quick example, let’s add a couple of customizations to a .screenrc file. In our home directory, we’ll first open the .screenrc file. Then we can add the lines: screen -t logs screen -t timer Copy After saving the file and starting screen: $ screen Copy We can check the window list: CTRL+a " Copy It shows the two named windows in the session: Num Name 0 logs 1 timer Copy There are many more options in the .screenrc documentation.