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

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

Модератор: /dev/random

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

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

Сообщение Stauffenberg » 06.07.2017 13:58

Всем привет.

Как легче и лучше всего (правильней) скопировать текст из одного 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
Модератор
Сообщения: 15835
Статус: grammatikführer
ОС: Debian GNU/Linux

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

Сообщение Bizdelnick » 06.07.2017 15:36

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

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

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

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

Сообщение Stauffenberg » 06.07.2017 15:55

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 » 06.07.2017 16:15

fifo может немного лучше, чем файл.
Спасибо сказали:

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

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

Сообщение Stauffenberg » 06.07.2017 16:54

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 » 06.07.2017 17:03

Раз:

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

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 использовать, а здесь, вход блокируется, пока не прочитали из буфера на выходе, и блок на выходе, пока всю информацию не записали.
Спасибо сказали: