Мне нужно подключить вывод текущего запущенного терминала (tty1) из виртуального терминала и перехватить его (работает X-сервер).
terminal
tty
terminal-emulator
pruzinat
источник
источник
screen
илиtmux
перед запуском команды, к которой вы, возможно, захотите получить доступ из другого терминала. ,Ответы:
Я наткнулся на этот инструмент под названием
ttylog
. Это программа Perl, доступная на CPAN здесь . У него есть пара предостережений, одно из которых заключается в том, что я могу только выяснить, как подключить терминал, который был создан как часть чьего-то действия в мою коробку. Другое дело, что вы должны запускать его с повышенными привилегиями (например, root или sudo).Но это работает!
Например
Первый ssh в вашу коробку в ТЕРМИНЕ № 1:
Обратите внимание на tty этого нового терминала:
Теперь в другом терминале (TERM # 2) выполните эту команду:
Теперь вернитесь к TERM # 1 и наберите вещи, они появятся в TERM # 2.
Все команды, которые я пробовал (top, ls и т. Д.), Работали без происшествий
ttylog
.источник
gdb
был первый вариант, с которым я столкнулся, я использовал его сам в прошлом, но это, по крайней мере, для меня хакерство. Рад, что это помогло вам!В самом деле. Устройства / dev / vcs * и / dev / vcsa * соответствуют устройствам / dev / tty * (виртуальные терминалы). F1 = tty1 = vcs1 / vcsa1 и так далее. Vcs / vcsa похож на tty для «текущего» виртуального терминала.
В качестве пользователя root вы можете просто отслеживать эти устройства (например, cat / dev / vcs2) и посмотреть, что находится на соответствующем VT (например, / dev / tty2 на F2), например, сделать снимок. vcsa * отличается от vcs * тем, что содержит информацию о размерах терминала (экрана). Имейте в виду, это просто необработанный снимок символов, отображаемых на экране, собранных из памяти, выделенной для терминала, так что не ожидайте хорошего, легко разбираемого вывода.
Недостатком является то, что, если информация слишком быстро проплывает мимо, ее может быть трудно уловить. Возможно, будет работать tail -f / dev / vcs1, если вам нужно следовать нескольким скринам (я сам не пробовал)? Возможно, проще всего сначала просто перенаправить его в файл. Также может быть хорошей идеей использовать VT (F1-F6), чтобы посмотреть на него, поскольку клеммы будут иметь одинаковые размеры. По моему опыту, лучше использовать устройства vcs *, а не vcsa *.
Если это не сработает, возможно, подойдет один из пакетов «старшего брата», который позволяет администратору следить за активностью терминала.
PS: я забыл спросить, какую ОС вы используете. Это для Linux, хотя подобные устройства, вероятно, существуют и в других ОС. Попробуйте найти «память виртуальной консоли» среди man-страниц для устройств.
источник
wlan0
, у меня фактически возникает ситуация catch-22, пытающаяся отладить в случае сбоя этого сценария. Предположим, я не могу использовать USB-концентратор ... есть ли способ как-то передать символы в / dev / tty1?/dev/tty1
качестве пользователя root, но все, что он делает, это отображает символы на экране, а не вводит ихпосмотри на:
например:
источник
screen
треском провалилась. Оно работает.Используйте
tty
команду в каждом терминале, чтобы идентифицировать их:Предполагая, что эти TTY, чтобы перенаправить стандартный вывод первого на второй, запустите это в первом терминале:
Чтобы восстановить стандартный вывод поведения pts / 0:
Смотрите это видео для демонстрации.
источник
Это сработало для меня:
Используя клавиатуру на компьютере «A» (т.е. физическом компьютере, которым нужно управлять), запустите:
screen -q
Подключитесь с
ssh
компьютера "B" к компьютеру "A".В сеансе ssh введите:,
screen -ls
чтобы получить идентификатор сеанса для подключения (4 цифры в строке, содержащей tty ).Подключитесь к указанному выше сеансу с помощью:
screen -x <session id>
... используя идентификатор сеанса, полученный из приведеннойscreen -ls
выше команды.Все, что набрано в любом из «сеансов», будет происходить в обоих «сеансах», поэтому, например, ввод текста
screen -d
завершит ОБА сеансы.источник
Другой подход заключается в использовании
screen
утилиты gnu на вашем локальном компьютере. Вызовите его с-L
параметром или запустите без него и используйте^aH
последовательность команд. В любом случае все входные и выходные данные записываются в файл с именем,screenlog.x
где x - номер экрана.Это удобно, потому что на удаленной машине не нужно устанавливать ничего лишнего.
источник
Так как я не запустил tty1 с экрана, этот скрипт помог:
Я использовал ответ Баарда Копперуда выше. «128» - это 1 строка моего tty1. Сон может быть установлен на соответствующий номер.
Я использовал это в терминаторе и определил размер столбца, чтобы прокрутка была одной строкой текста.
источник
Откройте два терминала. Введите
tty
каждый, и вы получите его идентификатор как/dev/pts/nº
Затем в первом вы вводите,
script -f /dev/pts/nºofSecondTerminal
а во втором вы делаете противоположное,script -f /dev/pts/nºofFirstTerminal
чтобы они были связаныCongrats! Оба терминала выводят и получают одинаковые вещи. Нужен третий? Ну, вы изучали комбинации? Вам понадобится 6
script -f
команд. Еще больше tty? Скоро...источник