<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

Передача сообщения другим пользователям

Для того, чтобы послать сообщение другому пользователю на этом же компьютере, можно воспользоваться командой write.

bobby:~% write petrov
write: petrov is logged in more than once; writing to ttyp6
Hi!
Я убегаю, так что закинь книжку соседу.
<Ctrl+D>
bobby:~% _

После запуска write выводит строки, набираемые на терминале, на терминал другого пользователя (в данном случае petrov). Завершить сообщение можно, нажав Ctrl+D. У адресата на экране появится примерно следующее:

bobby:/etc% 
Message from ivanov@bobby.inp.nsk.su on ttyp9 at 17:31 ...
Hi!
Я убегаю, так что закинь книжку соседу.
EOF

"EOF" означает конец сообщения. Стоит заметить, что, поскольку вывод на экран адресата производится на уровне ядра ОС, то сообщение просто печатается на терминале, смешиваясь с выводом запущенных адресатом программ (или прямо поверх приглашения командной строки). Для привлечения внимания вместе с заголовком сообщения выдается звуковой сигнал.

Интерактивное общение: talk

Для интерактивного общения команда write довольно неудобна (она была создана, когда в качестве терминалов широко использовались телетайпы).

Намного более удобной и используемой является команда talk. Она позволяет организовать "живой разговор" между двумя пользователями. Кроме того, talk позволяет общаться с пользователями с другого компьютера (хоть с другой части света).

Для инициирования разговора надо набрать

talk <имя-пользователя>
К пользователю с другого компьютера можно обращаться стандартным образом -- пользователь@компьютер.

У адресата при этом появляется на экране сообщение такого вида:

bobby:~%

Message from Talk_Daemon@bobby.inp.nsk.su at 17:52 ...
talk: connection requested by petrov@bobby.inp.nsk.su.
talk: respond with:  talk petrov@bobby.inp.nsk.su

Чтобы ответить, тот должен также запустить talk, указав имя того, кому он хочет ответить (находясь на том же компьютере, необязательно указвать "@..." -- достаточно просто имени).

После установления соединения экран у каждого делится на две части, в верхней выводится то, что набирает он, в нижней -- то, что набирает партнер.

Вот что будет на экране у инициатора разговора:

[No connection yet]
[Waiting for your party to respond]
[Connection established]
Hello!
Ty uzhe wsyo sdelal?



---------------------------------------------------------------------
Net, ostalos dopisat paru stranits.
_





Курсор всегда находится на той половинке, где последний раз что-то появилось -- это позволяет быстро определить, успел ли партнер что-то написать после вас.

Сразу стоит заметить одну особенность: talk не всегда понимает русские буквы, поэтому лучше переговариваться "латиницей". Хотя в Linux он и отображает их, в других системах вместо, к примеру "Привет!" на экране может появиться "^p^R^I^W^E^T!".

Большинство вариантов talk позволяют "бибикнуть" для привлечения внимания партнера -- для этого надо нажать Ctrl+G. К сожалению, на это нет единого стандарта, так же, как и на то, какой клавишей удаляются неправильно введенные символы -- иногда Backspace, иногда -- Del (в Linux работают обе). Распространенная ошибка новичков -- пытаться "ходить" клавишами со стрелками. Это работать не будет, а просто на экране появится что-то наподобие "^[[A^[[A".

Для выхода из talk надо (предварительно не забыв попрощаться :) нажать Ctrl+C.

Если не хочется ничего получать...

Иногда хочется сделать так, чтобы никто не мог вам помешать, сделав write или talk. Для этого надо отключить получение сообщений командой "mesg" (сокращение от messages).

Будучи запущена без параметров, она показывает текущее состояние -- разрешены сообщения, или нет. Для запрета надо сказать "mesg n", для разрешения -- "mesg y" (это сокращения от no и yes).

bobby:~% mesg
is y
bobby:~% mesg n
bobby:~% mesg
is n
bobby:~% _

Когда сообщения запрещены, попытка сделать write и talk выдают сообщение вида

write: petrov has messages disabled
и

Your party is refusing messages
соответственно.


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел