esoe
2 years ago
2 changed files with 94 additions and 0 deletions
@ -0,0 +1,90 @@ |
|||||||
|
# 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. |
Loading…
Reference in new issue