Это должно сделать (непротестированную) работу:
sed -sn 1p *.tex | cut -f2 -d: | xargs latex
Я столкнулся с этим названным инструментом ttylog
. Это - программа Perl, доступная на CPAN здесь. Это имеет пару протестов, один являющийся этим я мог только выяснить, как подключить к терминалу, который был создан как часть кого-то ssh'ing в мое поле. Другое существо, что необходимо выполнить его с поднятыми полномочиями (т.е. корень или sudo).
Но это работает!
Первый ssh в Ваше поле в TERM#1:
TERM#1% ssh saml@grinchy
Отметьте tty этого нового терминала:
TERM#1% tty
/dev/pts/3
Теперь в другом терминале (TERM#2) выполняет эту команду:
TERM#2% ttylog pts/3
DEBUG: Scanning for psuedo terminal pts/3
DEBUG: Psuedo terminal [pts/3] found.
DEBUG: Found parent sshd pid [13789] for user [saml]
Теперь вернитесь к TERM#1 и введите материал, он обнаружится в TERM#2.
Все команды, которые я попробовал, (вершина, ls, и т.д.) работали без инцидентного использования ttylog
.
Действительно это./dev/vcs* и/dev/vcsa* устройства соответствует/dev/tty* устройства (виртуальные терминалы). F1=tty1=vcs1/vcsa1 и так далее. vcs/vcsa похож на tty для "текущего" виртуального терминала.
Как корень, Вы можете просто кошка эти устройства (например, кошка/dev/vcs2), и видеть то, что находится на соответствующем VT (например,/dev/tty2 на на F2) как взятие снимка. vcsa* отличается от vcs* в этом, они включают информацию о размерах терминала (экран). Обратите внимание, это - просто необработанный снимок символов, поскольку они показывают на экране - собранный от памяти, выделенной терминалу - так не ожидайте хороший, легко parseble вывод.
Недостаток состоит в том, что, если информация высвечивается мимо слишком быстро, может быть трудно получить. Возможно, хвост-f/dev/vcs1 будет работать, если необходимо следовать, несколько screenfulls (не судили меня)? Может быть самым легким просто перенаправить его в файл сначала. Это может также быть хорошая идея использовать VT (F1-F6) для рассмотрения его, поскольку терминалы будут иметь те же размеры. По моему опыту, лучше использовать vcs* - не vcsa* - устройства.
Если это не работает, возможно, один из "больших brotherish" пакеты, который позволяет администратору следить за действием по терминалу, может работать.
PS: Я забыл спрашивать, что ОС Вы используете. Это для Linux, хотя аналогичные устройства, вероятно, существуют на других Ose также. Попытайтесь искать "память виртуальной консоли" среди страниц справочника для устройств.
wlan0
, У меня на самом деле есть ситуация уловки - 22, пытающаяся отлаживать, где этот сценарий перестал работать. Предположим, что я не могу использовать концентратор usb... там способ для меня передать символы по каналу в/dev/tty1 так или иначе?
– Steven Lu
08.10.2014, 03:40
/dev/tty1
как корень, но который все это делает, отобразить символы на экран, не вводят их
– Steven Lu
08.10.2014, 03:41
] Другой подход заключается в использовании утилиты gnu [] screen[
] на вашей локальной машине. Вызовите ее с помощью опции []-L[
], или начните без этой опции и используйте последовательность команд []^aH[
]. Любой из этих подходов приводит к тому, что все входные и выходные данные записываются в файл с именем []screenlog.x[
], где x - номер экрана.[
]Это удобно, потому что на удаленной машине не нужно устанавливать ничего лишнего.[
].Как указано в комментариях, необходимо исправить таблицу маршрутизации.
Синтаксис ip route add X через Y
используется для трафика шлюза, т.е. если трафик к X
должен быть отправлен
(наибольший внешний адрес) Y
. Должен быть дополнительный маршрут, как Y
можно было бы связаться. Если Y
является собственным адресом интерфейса
и вы не решаете проблему иначе, вы создаете цикл и маршрутизацию
не работает.
Необходимо, чтобы трафик на другой хост отправлялся непосредственно через интерфейс (не через шлюз). Существует множество различных возможностей, в зависимости от используемой маски сети:
ip r add 10.0.0.2/32 dev eth0 # only 10.0.0.2 should go via eth0
...
ip r add 10.0.0.0/8 dev eth0 # 10.0.0.0 - 10.255.255.255 should go via eth0
-121--100469- Файлы vmlinuz-0-rescue- *
и initramfs-0-rescue- *
можно безопасно удалить с помощью rm
. Они не принадлежат ни одному пакету, и, насколько мне известно, нет никакого инструмента для их удаления (хотя вы можете создать новые с помощью dracut
).
После удаления запустите
grub2-mkconfig -o /boot/grub2/grub.cfg
для регенерации конфигурации grub, чтобы они не появлялись в меню загрузки.
Эти образы являются самыми большими, кстати, потому что они не зависят от машины - они загрузятся в любой системе. В других комбинациях ядра/ramfs некоторые модули не требуются для оборудования на компьютере, на котором они были установлены, и могут не быть переносимыми в другие системы. Спасательное изображение позволяет исправить это, если необходимо.
(Для других файлов можно также удалить fedup
. Они использовались при модернизации и должны были быть удалены автоматически.)
Так как я не начал tty1 с экрана этот сценарий помог:
Я использовал ответ от Баарда Копперуда выше. «128» - это 1 строка моего tty1. Спящий режим может быть установлен на соответствующий номер.
#!/bin/bash
while true
do
sudo tail -c 128 /dev/vcs1 && echo ""
sleep 10
done
Я использовал это в терминаторе и размер столбца, так что прокрутка является одной строкой текста.
У меня сработало:
Используя клавиатуру на компьютере «A» (то есть физическом компьютере, которым нужно управлять), выполните: screen -q
Подключиться с помощью ssh
с компьютера «B» на компьютер «A». ".
В сеансе ssh введите: screen -ls
, чтобы получить идентификатор сеанса для подключения (4 цифры в строке, содержащей tty ).
Подключитесь к вышеуказанному сеансу с помощью: screen -x
... используя номер идентификатора сеанса, полученный из приведенной выше команды screen -ls
.
Все, что введено в любом «сеансе», произойдет в обоих «сеансах», поэтому, например, ввод screen -d
приведет к выходу ОБЕИХ сеансов.
Открыть две клеммы. Введите tty
в каждом, и вы получите его id как/dev/pts/nº
Затем в первом вы вводите script -f /dev/pts/nºofSecondTerminal
, а во втором делаете противоположное script -f /dev/pts/nºofFirstTerminal
, чтобы они были связаны
Поздравляю! Оба терминала выводят и принимают одно и то же. Нужен третий? Ну, вы изучали комбинации? Вам понадобится 6 script -f
команд. Еще больше тти? Так далее...
Используйте команду tty
в каждом терминале, чтобы идентифицировать их:
$ tty
/dev/pts/0
$ tty
/dev/pts/1
Предполагая эти TTY, чтобы перенаправить стандартный вывод первого на второй, запустите это в первом терминале:
exec 1>/dev/pts/1
Note: Now every command output will show on pts/1
Чтобы восстановить поведение по умолчанию, стандартный вывод pts/0:
exec 1>/dev/pts/0
См. это видео для демонстрации.
gdb
была первая опция, с которой я столкнулся, я использовал ее сам в прошлом, но это - hacky мне, по крайней мере. Довольный это выручило Вас! – slm♦ 14.04.2013, 02:43