Приложение, которое запускается на удаленном компьютере после того, как мы зашли туда по ssh, после этого запуска приложение открывает еще один терминал на удаленной машине и соединяется с ним с помошью сокета, такой терминал называется окном или табом, мы можем создать сколько угодно таких окон и переключатся между ними. После того, как у нас например обрывается ссш соединение мы можем снова подключится к серверу, а наши терминалы, в которых находятся важные дебаги, открыты нужные файлы в правильных местах, не обрываются потому что соединение остается на том же комьютере, по-этому зайдя по новом соединению, мы снова подключаемся к готовому скрину/сессии и наши все терминалы для нас сохранены.
И так алгоритм действий:
1.
2. Тут несколько вариантов запуска сессии screen
1) Создание сессии с именем удаленного хоста по умолчанию, таб(окно) создается с именем текущего шела.
2) Создать сессию с указанием ее имени, первый таб(окно) создается с именем шела.
3) Создать сессию с указанием имени и указанием имени созданного в ней таба.
4) Создать сессию и именем хоста по-умолчанию, но с указанием имени таба.
3. Сиссия создана, мы наблюдаем созданный первый таб. Теперь мы можем:
4. Переименовать поточное окно: Ctrl + a, A(Shift + A)
5. Создать новое окно в поточной сессии Ctrl + a, c, при это имя будет дублироваться из имени первого окна. Или чтобы сразу указать имя для нового окна.
6. Переключаться между окнами Ctrl + a, или Ctrl +a, 0 .... Ctrl + a, 9 - по порядковому номеру окна.
7. Чтобы отключиться от поточной сессии скрина Ctrl + a, d. Или
8. Увидеть поточные созданные сессии скрина
9. Подключиться к сессии.
10. Чтобы увидеть список окон поточной сессии Ctrl + a, "(Shift+').
11. Чтобы убить/закрыть поточное окно Ctrl + a, K(Shift+k) и подтвердить "y".
12. Чтобы закрыть/убить поточнуюю сессию. Ctrl+a,\.
13. Кроме того у нас есть возможность запускать логирование того, что происходит в окнах. Для этого мы вводим
Чтобы включить/выключить логирование для конкретного окна Ctrl-a, H.
14. Еще одна из фишек, это возможность подключаться к сессии в режиме мультипользователя, что означает к одной и той же сессии можно подключиться из разных терминалов(ssh-сессий), и видеть на обеих терминалах одной и тоже. Например кто-то может вводить команды, а второй наблюдать за заполнением командами его терминала и выволнением введенных команд.
15. Кроме того мы можем перегрузить все гарячие клавиши, настроить цвета, предопределить какие-то настройки скрина с помощью файла ~/.screenrc
Измененые хоткис из стенфордского курса стартап инженерия(.screenrc):
Усорвые обозначения:
^ = Ctrl
, - поочередность нажатия(предыдущую комбинацию отпускаем)
^t, ? - вывести хелп
^t, ^u - предыдущее окно
^t, ^j - следующее окно
^t, 0...9 - окно по порядковому номеру
^d - закрыть поточное окно
^t, ^c - создать новое окно
^t, j - перейти к первому окну
^t, ^t - перейти к предыдущему окну(полезно, когда мы до этого перешли по большому шагу через индекс)
^t, [ - включить копи-мод
^p - (непонятно зачем, если можно стрелков ^)перемещение вверх в копи-моде
^n - (v)перемещение вниз в копи-моде
^f - (>)перемещение вправо в копи-моде
^b - (<)перемещение влево в копи-моде
^space - выйти из копи-мода
space - выделить поточный символ в копи-моде, потом командами передвежения мы можем виделить участок
>(Shift+.) - скопировать выделенное в буфер обмена (оно попадает в файл /tmp/screen-exchange)
^t, ] - вставить скопированное
И так алгоритм действий:
1.
local $ ssh remotehost
2. Тут несколько вариантов запуска сессии screen
1) Создание сессии с именем удаленного хоста по умолчанию, таб(окно) создается с именем текущего шела.
remote $ screen
2) Создать сессию с указанием ее имени, первый таб(окно) создается с именем шела.
remote $ screen -S sess_from_home
3) Создать сессию с указанием имени и указанием имени созданного в ней таба.
remote $ screen -S sess_from_home -t tab_with_emac
4) Создать сессию и именем хоста по-умолчанию, но с указанием имени таба.
remote $ screen -t tab_with_emac
3. Сиссия создана, мы наблюдаем созданный первый таб. Теперь мы можем:
4. Переименовать поточное окно: Ctrl + a, A(Shift + A)
5. Создать новое окно в поточной сессии Ctrl + a, c, при это имя будет дублироваться из имени первого окна. Или чтобы сразу указать имя для нового окна.
remote $ screen -t tab_with_logs
6. Переключаться между окнами Ctrl + a, или Ctrl +a, 0 .... Ctrl + a, 9 - по порядковому номеру окна.
7. Чтобы отключиться от поточной сессии скрина Ctrl + a, d. Или
remote $ screen -d
8. Увидеть поточные созданные сессии скрина
screen -list
9. Подключиться к сессии.
screen -r sess_nameили по айди, который стоит перед именем и точкой между ними в списке screen -list:
screen -r sess_idИли если запущена только одна сессия:
screen -r
10. Чтобы увидеть список окон поточной сессии Ctrl + a, "(Shift+').
11. Чтобы убить/закрыть поточное окно Ctrl + a, K(Shift+k) и подтвердить "y".
12. Чтобы закрыть/убить поточнуюю сессию. Ctrl+a,\.
13. Кроме того у нас есть возможность запускать логирование того, что происходит в окнах. Для этого мы вводим
screen -LЭто включает логирование для каждого окна. Логи попадают в файлы ~/screenlog.n, где n - номер окна в сессии.
Чтобы включить/выключить логирование для конкретного окна Ctrl-a, H.
14. Еще одна из фишек, это возможность подключаться к сессии в режиме мультипользователя, что означает к одной и той же сессии можно подключиться из разных терминалов(ssh-сессий), и видеть на обеих терминалах одной и тоже. Например кто-то может вводить команды, а второй наблюдать за заполнением командами его терминала и выволнением введенных команд.
screen -x -r sess_name -p needed_win-x включает режим мультиюзерности.
15. Кроме того мы можем перегрузить все гарячие клавиши, настроить цвета, предопределить какие-то настройки скрина с помощью файла ~/.screenrc
Измененые хоткис из стенфордского курса стартап инженерия(.screenrc):
Усорвые обозначения:
^ = Ctrl
, - поочередность нажатия(предыдущую комбинацию отпускаем)
^t, ? - вывести хелп
^t, ^u - предыдущее окно
^t, ^j - следующее окно
^t, 0...9 - окно по порядковому номеру
^d - закрыть поточное окно
^t, ^c - создать новое окно
^t, j - перейти к первому окну
^t, ^t - перейти к предыдущему окну(полезно, когда мы до этого перешли по большому шагу через индекс)
^t, [ - включить копи-мод
^p - (непонятно зачем, если можно стрелков ^)перемещение вверх в копи-моде
^n - (v)перемещение вниз в копи-моде
^f - (>)перемещение вправо в копи-моде
^b - (<)перемещение влево в копи-моде
^space - выйти из копи-мода
space - выделить поточный символ в копи-моде, потом командами передвежения мы можем виделить участок
>(Shift+.) - скопировать выделенное в буфер обмена (оно попадает в файл /tmp/screen-exchange)
^t, ] - вставить скопированное
Комментариев нет:
Отправить комментарий