Пример работы с утилитой screen: настраиваются две сессии, одна для работы консолью роутера, подключенного к /dev/ttyUSB0, и другая для работы с коммутатором Cisco 2960, подключенного к /dev/ttyUSB1. Имя текущего пользователя x-terminal-emulator - myuser.
1. Командой screen -ls можно посмотреть текущие сессии screen:
$ screen -ls
No Sockets found in /run/screen/S-myuser
Сообщение "No Sockets found in ..." говорит нам, что пока не запущена ни одна сессия screen.
2. Настройка с помощью утилиты stty подключения к /dev/ttyUSB0, скорость 115200, 8 бит (cs8), 1 стоп-бит (-cstopb), без контроля четности (-parenb), управление потоком RTS/CTS отключено (-crtscts):
$ stty -F /dev/ttyUSB0 115200 cs8 -cstopb -parenb -crtscts
3. Запуск сессии с настроенными параметрами для /dev/ttyUSB0, имя сессии USB0:
$ screen -S USB0 /dev/ttyUSB0 115200
# Для отключения сессии: Ctrl+a d
$ screen -ls
There is a screen on:
44577.USB0 (18.11.2024 09:40:51) (Detached)
1 Socket in /run/screen/S-myuser.
Команда screen -ls показывает, что активна сессия 44577.USB0, находящаяся в отключенном состоянии.
4. Настройка подключения к /dev/ttyUSB1, скорость 115200, 8 бит (cs8), 1 стоп-бит (-cstopb), без контроля четности (-parenb), управление потоком RTS/CTS отключено (-crtscts):
$ stty -F /dev/ttyUSB1 115200 cs8 -cstopb -parenb -crtscts
5. Запуск сессии с настроенными параметрами для /dev/ttyUSB0, имя сессии USB1:
$ screen -S USB1 /dev/ttyUSB1
# Для отключения сессии: Ctrl+a d
$ screen -ls
There are screens on:
45008.USB1 (18.11.2024 09:44:45) (Detached)
44577.USB0 (18.11.2024 09:40:51) (Detached)
2 Sockets in /run/screen/S-myuser.
Команда screen -ls показывает, что активны две сессии, 44577.USB0 и 45008.USB1, находящиеся в отключенном состоянии.
Теперь командами screen -r имясесии можно зайти в любую нужную сессию (с предварительным отключением от предыдущей сессии через Ctrl+a d).
[Горячие клавиши screen]
Внутри сессии screen работают следующие комбинации клавиш, показанные в таблице Здесь C^ обозначает нажатую клавишу Ctrl, S^ нажатую клавишу Shift. Это не полный список, а комбинации клавиш, которыми я пользуюсь чаще всего (полную справку можно получить командой man screen, также см. [2]):
Hotkey |
Функция |
C^a ? |
Краткая напоминалка по горячим клавишам. |
C^a d |
Выход с отключением от текущей сессии. Сессия остается в состоянии (Detached). |
C^a D D |
Выход с отключением от текущей сессии и закрытием окна терминала. Сессия остается в состоянии (Detached). |
C^a k |
Выход с завершением текущей сессии. |
C^- |
Уменьшение шрифта. |
C^ S^+ |
Увеличение шрифта. |
C^a c |
Временный выход из сессии, у неё остается состояние (Attached). Возврат обратно в сессию командой exit. |
C^a C |
Очистить окно. |
C^a h |
(hardcopy) Записать копию текущего окна в файл hardcopy.n. |
C^a H |
(log) Начать/закончить запись сессии работы в текущем окне в файл screenlog.n. |
C^a i |
Вывод информации о текущем окне. |
C^a C^t |
Показать информацию о системе (текущее время, имя устройства, настройки порта). |
[Ссылки]
1. Команда screen Linux site:losst.pro. 2. man screen site:opennet.ru. 3. How do I connect to TTY/COM (/dev/ttyUSB0)? site:askubuntu.com. 4. 'screen /dev/ttyUSB0' with different options such as databit, parity, etc site:stackoverflow.com. 5. Quickly switching between virtual sessions (screen?) site:superuser.com. 6. Minicom and screen in background site:superuser.com. |