общий буфер для разных login(1) сеансов (запущенных на разных /dev/tty)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

общий буфер для разных login(1) сеансов

Сообщение Stauffenberg »

Всем привет.

Как легче и лучше всего (правильней) скопировать текст из одного tty-сеанса в другой. К примеру, на первом tty я получаю текст, доступ к нему надо получить из X сессии.
Явную запись в файл и последующее чтение из него не предлагать.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: общий буфер для разных login(1) сеансов

Сообщение Bizdelnick »

Stauffenberg писал(а):
06.07.2017 13:58
Явную запись в файл и последующее чтение из него не предлагать.

Почему? Любой вариант так ли иначе будет подразумевать запись в файл (или пайп). Если не хочется явно — man write, например.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: общий буфер для разных login(1) сеансов

Сообщение Stauffenberg »

Bizdelnick писал(а):
06.07.2017 15:36
Stauffenberg писал(а):
06.07.2017 13:58
Явную запись в файл и последующее чтение из него не предлагать.

Почему? Любой вариант так ли иначе будет подразумевать запись в файл (или пайп). Если не хочется явно — man write, например.

Я имел в виду явное открытие файла, вставку текста в файл, потом открытие его вручную в другой сессии... и не забыть удалить в конце. Слишком муторно.

Пока на ум пришел только screen/tmux, к сессии которого я могу подключиться откуда захочу и следовательно получить тот же вывод. Но мне интересно - возможно есть какой-то специальный для этого механизм, о котором я никогда не слышал и который интеллигентней... ну а вдруг (:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: общий буфер для разных login(1) сеансов

Сообщение NickLion »

fifo может немного лучше, чем файл.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: общий буфер для разных login(1) сеансов

Сообщение Stauffenberg »

NickLion писал(а):
06.07.2017 16:15
fifo может немного лучше, чем файл.

а примерик можно?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: общий буфер для разных login(1) сеансов

Сообщение NickLion »

Раз:

Код: Выделить всё

nicklion@thaumaturge:~> mkfifo /tmp/a
nicklion@thaumaturge:~> cat test.pl > /tmp/a

Два:

Код: Выделить всё

nicklion@thaumaturge:~> cat /tmp/a
#!/usr/bin/perl -w

use POSIX;
....
nicklion@thaumaturge:~> rm /tmp/a


Плюс по сравненю с файлом, что можно передавать хоть гигабайты, они не в файл будут писаться, а передаваться через буфер в памяти, аналогично обычным пайпам.

UPD ну, и ещё плюс, что лучше подходят для передачи постепенно поступающей информации. В случае файла нужно что-то вроде tail -f использовать, а здесь, вход блокируется, пока не прочитали из буфера на выходе, и блок на выходе, пока всю информацию не записали.
Спасибо сказали:
Ответить