07. Communication Utilities

  • Communication with Other Users
  • Messaging with write and talk
    • write
    • talk
    • mesg
  • mail commands
    • send mode: How to send an email on linux system
    • receive mode: How to receive an email

Communication with Other Users
  • Linux is designed to be a multi-user system, so it is appropriate to have utilities that help users communicate within the system as well as outside the system
  • For quick communication with users within the system
    • write
    • talk
    • Useful for a quick message between users. The “original” instant messaging tool
    • Require that both users are currently logged in
    • Will take over the screen of both users
    • Since this is not a GUI environment where you can have a window for your work and a different window for messages,  when write or talk runs, your work screen will be suspended for messages from write or talk
  • To communicate with users within the system and outside the system:
    • mail
    • This is an email tool
    • Only the email sender needs to be currently logged in

  • To start write, type:    write  userID  
    • your work screen is suspended and reserved for write
    • then you type your line of text message     
  • The other user will:
    • see on screen a write request message with your userID and your text message
  • The other user can:
    • respond by typing  write  yourID    and reply with his/her text message
    • you both now are running write and can send messages to each other
  • Or the other user can:
    • ignore you, in which case you don’t get a message back but you are still in write
    • you can choose to write another message, or ‘get the hint’ and quit write
  • To end 
    • control-d

  • To start talk, type: talk userID       
    • Your work screen is suspended and reserved for talk. It is split into 2 halves, for you and for the other person
    • Then you type your line of text message     
  • The other user will:
    • see a talk request message with your userID and your text message 
  • The other user can:
    • respond by typing  talk  yourID    and reply with his/her text message. His/her screen is also split into 2 halves to show the correspondence
    • you both are now using talk to send messages
  • Or the other user can:
    • ignore you, in which case talk will keep requesting a response from this user until you choose to quit out of talk
  • To end:
    • control-c

  • To prevent other users from interrupting your work with write or talk, use mesg (for messaging)
  • 2 ways to use mesg
    • With no argument:   mesg      
      • check messaging status, mesg will return:
      • y    which means you can receive messages
      • n   which means you refuse messages
    • With one argument:
    • mesg  y   set messaging to on so you can receive messages (only applies to current session)
    • mesg  n   set messaging to off so no messages will get through (only applies to current session)

  • mail: the “original” email tool. It is only for emailing text and cannot accept attachments
  • But it is the basic email that comes with every Linux system, so you can use it when “fancier” emails are not / cannot be installed
  • As with other email tool, and unlike write and talk, the user you send email to doesn’t have to be currently logged in and his/her messaging status doesn’t affect email
  • 2 modes: send and receive
  • The mail commands in the next slides are either send mode commands or receive mode commands

mail Send Mode: How to Send Mail
  • Send mode is used to send mail
  • To start:   
    • mail   userID        for sending email to a user in the same system
    • mail   full_email_address     for sending email to someone outside the system
  • mail will respond with:
    • subject:         you can fill in the subject or hit enter for no subject
  • Then start typing the text for your mail message
  • When done:
    • control-d       to send
    • mail will respond with cc:   you can add addresses for cc,               or hit enter to leave it blank
    • or
    • control-c       to cancel and not send (to “kill” a message in Linux)
    • you will be asked to do control-c twice to confirm
    • a message that is killed will be appended to the file dead.letter in your home directory

mail Send Mode: Commands
  • Send Mode commands:
    • Each send mode command 
      • can be used in the body of the text message
      • has to appear on a line by itself
      • starts with  ~
    • ~v use vi to edit or to view the mail message 
      • When done use :wq to exit out of vi and return to mail send mode
    • ~h edit the header of the mail message. 
      • You will be prompted to edit the fields: To, Subject, cc, bcc
    • ~r  filename read (bring in) an existing text file into the current email message
      • filename can have a path
    • ~m mesg_num    mail (bring in) an existing email into the current email message
      • mesg_num is the number of the existing email in the receive mode

mail Receive Mode: Check for Mail
  • To start:    mail
    • Without an argument, mail will be in receive mode
  • You will get a message   no mail for yourID     or 
  • You will see a receive mail header, with fields:     status    message_num    senderID    date    size    subject
    • The symbol > in front of one of the messages indicates it is the current message
    • status: N for new, U for unread, blank for already read
    • message_num : a number, the numbers are in the order that the mail was received
    • senderID : email address of the person who sent the mail
    • date : the time and date received
    • size : number of lines / characters
    • subject : what the sender put in the subject field
  • Following the header, you will get the prompt &, this means mail is ready for the mail receive mode commands.

mail Receive Mode: Message Number
  • The receive mode commands can optionally accept a message number
  • If no message number is given, the command applies only to the current message
  • If there is a message number, it can follow the command immediately or with 1 or more space in between
  • How to use a message number:
8 command will apply to message 8
1,8,6 command will apply to messages 1,8,6
2-5 command will apply to messages 2 to 5, inclusive
$ command will apply to last message
* command will apply to all messages

mail Receive Mode: Commands
  • Receive mode commands  (the [ ] indicates optional field):
  • To read a message: [message_num]  <enter key>
    • The message will appear on screen and end with the & prompt
  • To see the mail header : h
    • The mail header shows all messages and their status
  • To delete: d  [message_num]
  • To undo a delete: u  [message_num]
  • - Can undo as many deleted messages as you have deleted in the session
  • To reply to sender only: R  [message_num]
  • To reply to all   r  [message_num]
    • Both reply commands will take you to send mode, where you can type your reply
    • When you send the reply and get out of send mode, you’ll be back in the current receive mode
    • To bring the original mail into your reply email, use ~m in your reply to bring it in
  • To forward mail:  m  email_addr
    • This takes you to send mode
    • Then use the ~m command of send mode to bring in the message you want to forward
    • You can add any extra message of your own before send
    • When you send the forwarded message, you’ll get out of send mode and be back in receive mode

mail Receive Mode: Save Mail
  • To save and email to a mail folder:
    •       s  [msg_num]   folder_name
  • A mail folder is a text file created by mail when you save a mail message
    • If the folder_name is new, the new text file is created
    • If folder_name already exists, mail will append the mail message to the text file
  • This text file can be opened by any utility that can open a text file, but it can also conveniently be read by mail itself
  • To use mail to read this mail folder:
    • mail   –f   folder_name            
    • The option –f is for file
  • Each mail message in the file is displayed like in the mail receive mode
  • This provides a convenient way for you to sort your email into separate folders and view it with mail 

mail Receive Mode: Exit
  • To exit out of mail:  x 
  • When you exit, mail will act as if you had not opened the current mail session
    • Messages with status N will still be N 
    • Messages with status U will still be U
    • Messages that are deleted will be restored
    • Messages that are read will keep their status (U or N)
  • However, messages that are sent or saved in a folder will still have been sent or saved in a folder

mail Receive Mode: Quit
  • To quit out of mail:  q
    • When you quit, mail keeps track of the status of the current session
    • Therefore messages will have updated status
  • Messages that are read: go into a folder called mbox, created by mail automatically in your home directory
  • To see these messages, use mail to open the folder mbox:
    • mail  –f      (with no argument)
  • Messages that are not read: stay in your inbox and marked with status U
  • Messages that are saved: go to the folder that you saved in
  • Messages that are deleted: gone