Unix / Linux - Network Communication Utilities

In this chapter, we will discuss in detail about network communication utilities in Unix. When you work in a distributed environment, you need to communicate with remote users and you also need to access remote Unix machines.
There are several Unix utilities that help users compute in a networked, distributed environment. This chapter lists a few of them.
The ping command sends an echo request to a host available on the network. Using this command, you can check if your remote host is responding well or not.
The ping command is useful for the following −
Tracking and isolating hardware and software problems.
Determining the status of the network and various foreign hosts.
Testing, measuring, and managing networks.
Following is the simple syntax to use the ftp command −
$ping hostname or ip-address

The above command starts printing a response after every second. To come out of the command, you can terminate it by pressing CNTRL + C keys.
Following is an example to check the availability of a host available on the network −
$ping google.com
PING google.com (74.125.67.100) 56(84) bytes of data.
64 bytes from 74.125.67.100: icmp_seq = 1 ttl = 54 time = 39.4 ms
64 bytes from 74.125.67.100: icmp_seq = 2 ttl = 54 time = 39.9 ms
64 bytes from 74.125.67.100: icmp_seq = 3 ttl = 54 time = 39.3 ms
64 bytes from 74.125.67.100: icmp_seq = 4 ttl = 54 time = 39.1 ms
64 bytes from 74.125.67.100: icmp_seq = 5 ttl = 54 time = 38.8 ms
--- google.com ping statistics ---
22 packets transmitted, 22 received, 0% packet loss, time 21017ms
rtt min/avg/max/mdev = 38.867/39.334/39.900/0.396 ms
$

If a host does not exist, you will receive the following output −
$ping giiiiiigle.com
ping: unknown host giiiiigle.com
$

Here, ftp stands for File Transfer Protocol. This utility helps you upload and download your file from one computer to another computer.
The ftp utility has its own set of Unix-like commands. These commands help you perform tasks such as −
Connect and login to a remote host.
Connect and login to a remote host.
Navigate directories.
Navigate directories.
List directory contents.
List directory contents.
Put and get files.
Put and get files.
Transfer files as ascii, ebcdic or binary.
Transfer files as ascii, ebcdic or binary.
Following is the simple syntax to use the ftp command −
$ftp hostname or ip-address

The above command would prompt you for the login ID and the password. Once you are authenticated, you can access the home directory of the login account and you would be able to perform various commands.
The following tables lists out a few important commands −
put filename
Uploads filename from the local machine to the remote machine.
get filename
Downloads filename from the remote machine to the local machine.
mput file list
Uploads more than one file from the local machine to the remote machine.
mget file list
Downloads more than one file from the remote machine to the local machine.
prompt off
Turns the prompt off. By default, you will receive a prompt to upload or download files using mput or mget commands.
prompt on
Turns the prompt on.
dir
Lists all the files available in the current directory of the remote machine.
cd dirname
Changes directory to dirname on the remote machine.
lcd dirname
Changes directory to dirname on the local machine.
quit
Helps logout from the current login.
It should be noted that all the files would be downloaded or uploaded to or from the current directories. If you want to upload your files in a particular directory, you need to first change to that directory and then upload the required files.
Following is the example to show the working of a few commands −
$ftp amrood.com
Connected to amrood.com.
220 amrood.com FTP server (Ver 4.9 Thu Sep 2 20:35:07 CDT 2009)
Name (amrood.com:amrood): amrood
331 Password required for amrood.
Password:
230 User amrood logged in.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 1464
drwxr-sr-x   3 amrood   group       1024 Mar 11 20:04 Mail
drwxr-sr-x   2 amrood   group       1536 Mar  3 18:07 Misc
drwxr-sr-x   5 amrood   group        512 Dec  7 10:59 OldStuff
drwxr-sr-x   2 amrood   group       1024 Mar 11 15:24 bin
drwxr-sr-x   5 amrood   group       3072 Mar 13 16:10 mpl
-rw-r--r--   1 amrood   group     209671 Mar 15 10:57 myfile.out
drwxr-sr-x   3 amrood   group        512 Jan  5 13:32 public
drwxr-sr-x   3 amrood   group        512 Feb 10 10:17 pvm3
226 Transfer complete.
ftp> cd mpl
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 7320
-rw-r--r--   1 amrood   group       1630 Aug  8 1994  dboard.f
-rw-r-----   1 amrood   group       4340 Jul 17 1994  vttest.c
-rwxr-xr-x   1 amrood   group     525574 Feb 15 11:52 wave_shift
-rw-r--r--   1 amrood   group       1648 Aug  5 1994  wide.list
-rwxr-xr-x   1 amrood   group       4019 Feb 14 16:26 fix.c
226 Transfer complete.
ftp> get wave_shift
200 PORT command successful.
150 Opening data connection for wave_shift (525574 bytes).
226 Transfer complete.
528454 bytes received in 1.296 seconds (398.1 Kbytes/s)
ftp> quit
221 Goodbye.
$

There are times when we are required to connect to a remote Unix machine and work on that machine remotely. Telnet is a utility that allows a computer user at one site to make a connection, login and then conduct work on a computer at another site.
Once you login using Telnet, you can perform all the activities on your remotely connected machine. The following is an example of Telnet session −
C:>telnet amrood.com
Trying...
Connected to amrood.com.
Escape character is '^]'.

login: amrood
amrood's Password: 
*****************************************************
*                                                   *
*                                                   *
*    WELCOME TO AMROOD.COM                          *
*                                                   *
*                                                   *
*****************************************************

Last unsuccessful login: Fri Mar  3 12:01:09 IST 2009
Last login: Wed Mar  8 18:33:27 IST 2009 on pts/10

   {  do your work }

$ logout
Connection closed.
C:>

The finger command displays information about users on a given host. The host can be either local or remote.
Finger may be disabled on other systems for security reasons.
Following is the simple syntax to use the finger command −
Check all the logged-in users on the local machine −
$ finger
Login     Name       Tty      Idle  Login Time   Office
amrood               pts/0          Jun 25 08:03 (62.61.164.115)

Get information about a specific user available on the local machine −
$ finger amrood
Login: amrood                           Name: (null)
Directory: /home/amrood                 Shell: /bin/bash
On since Thu Jun 25 08:03 (MST) on pts/0 from 62.61.164.115
No mail.
No Plan.

Check all the logged-in users on the remote machine −
$ finger @avtar.com
Login     Name       Tty      Idle  Login Time   Office
amrood               pts/0          Jun 25 08:03 (62.61.164.115)

Get the information about a specific user available on the remote machine −
$ finger amrood@avtar.com
Login: amrood                           Name: (null)
Directory: /home/amrood                 Shell: /bin/bash
On since Thu Jun 25 08:03 (MST) on pts/0 from 62.61.164.115