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.
91 lines
4.5 KiB
91 lines
4.5 KiB
2 years ago
|
# Screen command
|
||
|
## Назначение
|
||
|
Реализация многооконного режима в консоли
|
||
|
позволяет запускать программы, которые будут выполняться даже при закрытой консоли и не будут останавливаться при разрыве 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.
|