Linux 网络通信工具

在分布式环境中工作时,需要与远程用户通信,还需要访问远程Linux机器。有几个Linux实用程序可以帮助用户在网络化的分布式环境中进行工作。本文主要介绍ping、ftp、telnet和finger的使用。

1、ping

ping命令向网络上可用的主机发送一个回显请求。使用此命令,可以检查远程主机是否响应良好。

ping命令在以下情况下很有用:

  • 跟踪隔离硬件和软件问题。
  • 确定网络和各种外部主机的状态。
  • 测试、测量和管理网络。

下面是使用ping命令的简单语法:

$ ping hostname 或 ip-address

上面的命令每隔一秒就开始打印一个响应。要退出该命令,可以按下CTRL + C键终止该命令。

例如,

检查网络中可用主机的可用性:

$ ping www.baidu.com
PING www.a.shifen.com (110.242.68.4): 56 data bytes
64 bytes from 110.242.68.4: icmp_seq=0 ttl=51 time=23.179 ms
64 bytes from 110.242.68.4: icmp_seq=1 ttl=51 time=25.009 ms
64 bytes from 110.242.68.4: icmp_seq=2 ttl=51 time=23.036 ms
64 bytes from 110.242.68.4: icmp_seq=8 ttl=51 time=24.202 ms
64 bytes from 110.242.68.4: icmp_seq=9 ttl=51 time=24.833 ms
64 bytes from 110.242.68.4: icmp_seq=10 ttl=51 time=23.618 ms
^C
--- www.a.shifen.com ping statistics ---
11 packets transmitted, 11 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 23.036/24.358/25.658/0.815 ms

如果主机不存在,将收到如下输出:

$ ping  www.baaaaidu.com
ping: cannot resolve www.baaaaidu.com: Unknown host

2、ftp

这里,ftp代表文件传输协议。这个实用程序帮助从一台计算机上传和下载文件到另一台计算机。

ftp实用程序有自己的一组类似Linux的命令。这些命令帮助执行以下任务:

  • 连接并登录到远程主机。
  • 浏览目录。
  • 列出目录的内容。
  • 存放和获取文件。

下面是使用ftp命令的简单语法:

$ ftp hostname 或 ip-address

上面的命令会提示输入登录ID和密码。一旦通过身份验证,就可以访问登录帐户的主目录,并能够执行各种命令。

下表列出了一些重要的命令:

ftp命令

说明

put filename

将本地文件上传到远程主机。

get filename

将远程文件下载到本地。

mput file list

将多个本地文件上传到远程主机。

mget file list

将多个远程文件下载到本地。

prompt off

关闭提示。默认情况下,使用 mput 或 mget 命令会不断提示你确认文件的上传或下载。

prompt on

打开提示。

dir

列出远程主机当前目录下的所有文件。

cd dirname

改变远程主机目录。

lcd dirname

改变本地目录。

quit

退出登录。

注意:有文件都将被下载或上传到当前目录或从当前目录上。如果想在特定目录中上传文件,需要首先更改到该目录,然后上传所需的文件。

例如,

$ ftp myftp.com
Connected to myftp.com.
220 myftp.com FTP server (Ver 4.9 Thu Sep 2 20:35:07 CDT 2009)
Name (myftp.com:myftp): myftp
331 Password required for myftp.
Password:
230 User myftp logged in.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 1464
drwxr-sr-x   3 myftp   group       1024 Mar 11 20:04 Mail
drwxr-sr-x   2 myftp   group       1536 Mar  3 18:07 Misc
drwxr-sr-x   5 myftp   group        512 Dec  7 10:59 OldStuff
drwxr-sr-x   2 myftp   group       1024 Mar 11 15:24 bin
drwxr-sr-x   5 myftp   group       3072 Mar 13 16:10 mpl
-rw-r--r--   1 myftp   group     209671 Mar 15 10:57 myfile.out
drwxr-sr-x   3 myftp   group        512 Jan  5 13:32 public
drwxr-sr-x   3 myftp   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 myftp   group       1630 Aug  8 1994  dboard.f
-rw-r-----   1 myftp   group       4340 Jul 17 1994  vttest.c
-rwxr-xr-x   1 myftp   group     525574 Feb 15 11:52 wave_shift
-rw-r--r--   1 myftp   group       1648 Aug  5 1994  wide.list
-rwxr-xr-x   1 myftp   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.
$

3、telnet

有时需要连接到远程Linux机器并在该机器上远程工作。Telnet是一种实用工具,它允许一个站点的计算机用户连接、登录,然后在另一个站点的计算机上执行工作。使用Telnet登录后,就可以在远程连接的计算机上执行所有活动。

例如,

C:>telnet telnet.com
Trying...
Connected to telnet.com.
Escape character is '^]'.
login: telnet
telnet's Password:
*****************************************************
* *
* *
* WELCOME TO TELNET.COM *
* *
* *
*****************************************************
Last unsuccessful login: Fri Mar 28 12:09:07 IST 2021
Last login: Wed Mar 27 19:31:17 IST 2021on pts/10
{ do your work }
$ logout
Connection closed.
C:>

4、finger

finger命令显示给定主机上的用户信息。主机可以是本地的,也可以是远程的。

出于安全原因,finger可能在其他系统上被禁用。

下面是使用finger命令的简单语法:

1)检查本地机器上所有登录的用户

$ finger
Login    Name                 TTY  Idle  Login  Time   Office  Phone
levizhong levi zhong          *con   30d   8 25  22:30
levizhong levi zhong           s00    6d   8 25  22:30
levizhong levi zhong           s00    7d   8 25  22:30
levizhong levi zhong           s00         8 25  22:30
levizhong levi zhong           s00    7d   8 25  22:30

2)获取关于本地机器上可用的特定用户的信息

$ finger levizhong
Login: levizhong      			Name: levi zhong
Directory: /Users/levizhong         	Shell: /bin/bash
On since 三  8 25 22:30 (CST) on console, idle 30 days 21:19 (messages off)
On since 三  8 25 22:30 (CST) on ttys000, idle 6 days 4:26
On since 三  8 25 22:30 (CST) on ttys001, idle 7 days 2:23
On since 三  8 25 22:30 (CST) on ttys002
On since 三  8 25 22:30 (CST) on ttys003, idle 7 days 21:49
On since 六  9 11 18:55 (CST) on ttys004 (messages off)
No Mail.
No Plan.

3)检查远程机器上所有已登录的用户

$ finger @avtar.com
Login     Name       Tty      Idle  Login Time   Office
levi               pts/0          Jun 11 02:15 (61.11.14.134)

4)获取关于远程计算机上可用的特定用户的信息

$ finger amrood@avtar.com
Login: levi                           Name: (null)
Directory: /home/levi                 Shell: /bin/bash
On since Thu Jun 11 09:27 (MST) on pts/0 from 61.11.14.134
No mail.
No Plan.

注意:如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,但如果要查询的网络主机需要运行finger守护进程的支持。

推荐阅读
cjavapy编程之路首页