Вопрос или проблема
С помощью кабеля usb-to-serial я могу успешно подключиться к оборудованию через screen /dev/ttyUSB0 115200
Существует ли команда внутри screen, которая закроет его и вернет мой терминал к запросу на ввод? Это в RHEL-8.10. ctrl-d
, ctrl-c
и ctrl-z
не имеют эффекта.
Все команды в Screen начинаются с префиксного клавиши, обычно Ctrl-a. Чтобы завершить конкретное окно Screen, нужно нажать Ctrl-a, затем k.
Команды для screen
(по умолчанию) начинаются с ctrla; вы можете найти их в man screen
(классическое место для поиска документации!). (ctrla — это “символ-экрап” для screen
)
В вашем случае, вам нужно ctrla, затем d, чтобы d
etach (если вы хотите вернуться к сеансу позже, используя screen -r
), или k, если вы хотите k
ill текущий сеанс.
Тем не менее, screen
больше предназначен для мультиплексирования терминалов (как более современный tmux
), чем для хорошего терминала для серийных подключений, на мой скромный взгляд. Если вы еще не привыкли к командам screen
, рассмотрите возможность использования чего-то другого — например, picocom
будет чуть менее запутанным, если вам нужно только серийное соединение; ваш screen /dev/ttyUSB0 115200
будет picocom -b 115200 /dev/ttyUSB0
. Выход из picocom
это ctrla, затем ctrlx.
Ответ или решение
Чтобы выйти из сессии, запущенной с помощью команды screen /dev/ttyUSB0 115200
, вам необходимо использовать специальные команды, встроенные в утилиту screen
. Давайте подробно разберемся, как это осуществить в операционной системе RHEL 8.10.
Теория
screen
— мощная утилита для управления несколькими терминальными сессиями одновременно. Она позволяет открывать, закрывать и переключаться между сессиями без потери данных, что особенно полезно при работе с удаленными сервисами. В screen
все команды начинаются с префикса Ctrl-a
, который действует как «экранирующий» символ, переводя ваш ввод из пользовательского режима в управляющий режим.
Пример
Если вы уже подключились к вашему устройству через screen
, вы можете воспользоваться следующими командами для выхода:
-
Отключиться от сессии (detach):
НажмитеCtrl-a
, затемd
. Эта команда не завершает сессию, а просто возвращает вас к командной строке, позволяя в дальнейшем подключиться к ней обратно с помощьюscreen -r
. -
Завершить сессию (kill):
НажмитеCtrl-a
, затемk
. Затем вам будет предложено подтвердить действие (y
илиn
). Эта команда полностью завершает текущую сессиюscreen
.
Применение
Если вы часто сталкиваетесь с задачами управления последовательными соединениями и работа с командами screen
вызывает затруднения, возможно, стоит обратить внимание на более специализированные инструменты, такие как picocom
. Он более прост в использовании для выполнения аналогичных задач:
- Запустить picocom вы можете командой:
picocom -b 115200 /dev/ttyUSB0
. - Чтобы выйти из
picocom
, используйтеCtrl-a
, затемCtrl-x
.
Выбор правильного инструмента может значительно облегчить работу и повысить эффективность в управлении последовательными соединениями.
Таким образом, использование команд Ctrl-a
+ d
для временного выхода из screen
или Ctrl-a
+ k
для завершения сессии поможет вам быстро и без труда управлять вашими терминальными сессиями при работе с оборудованием через USB-to-Serial
адаптер.