Linux的常用网络命令
计算机网络的主要优点是能够实现资源和信息的共享并且用户可以远程访问信息。 Linux提供了一组强有力的网络命令来为用户服务这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。介绍下列几个常用的有关网络操作的命令ftp 传输文件telnet 登录到远程计算机上r - 使用各种远程命令netstat 查看网络的状况nslookup 查询域名和IP地址的对应finger 查询某个使用者的信息ping 查询某个机器是否在工作使用ftp命令进行远程文件传输ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。 在ftp会话过程中用户可以通过使用ftp客户程序连接到另一台计算机上。从此用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。需要注意的是如果用户没有那个文件的存取权限就不能从远程系统中获得文件或向远程系统传输文件。 为了使用ftp来传输文件用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp 会话并用来确定用户对要传输的文件可以进行什么样的访问。另外用户显然需要知道对其进行ftp 会话的计算机的名字或IP地址。Ftp命令的功能是在本地机和远程机之间传送文件。该命令的一般格式如下$ ftp 主机名/IP其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中主机名属于选项如果指定主机名ftp将试图与远程机的ftp服务程序进行连接如果没有指定主机名ftp将给出提示符等待用户输入命令 $ ftp ftp 此时在ftp提示符后面输入open命令加主机名或IP地址将试图连接指定的主机。 不管使用哪一种方法如果连接成功需要在远程机上登录。用户如果在远程机上有帐号就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。 如果没有远程机的专用登录帐号许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous也称为匿名ftp当使用这一帐号时要求输入email地址作为口令。 如果远程系统提供匿名ftp服务用户使用这项服务可以登录到特殊的供公开使用的目录。一般专门提供两个目录pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件incoming目录存放上载到该站点的文件。一旦用户使用ftp在远程站点上登录成功将得到“ftp”提示符。现在可以自由使用ftp提供的命令可以用 help命令取得可供使用的命令清单也可以在 help命令后面指定具体的命令名称获得这条命令的说明。最常用的命令有ls 列出远程机的当前目录cd 在远程机上改变工作目录lcd 在本地机上改变工作目录ascii 设置文件传输方式为ASCII模式binary 设置文件传输方式为二进制模式close终止当前的ftp会话hash 每次传输完数据缓冲区中的数据后就显示一个#号getmget 从远程机传送指定文件到本地机putmput 从本地机传送指定文件到远程机open 连接远程ftp站点quit断开与远程机的连接并退出ftp? 显示本地帮助信息! 转到Shell中下面简单将ftp常用命令作一简介。启动ftp会话 open命令用于打开一个与远程主机的会话。该命令的一般格式是open 主机名/IP 如果在ftp 会话期间要与一个以上的站点连接通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。终止ftp会话 close、disconnect、quit和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接但是使用户留在本地计算机的ftp程序中。quit和bye命令都关闭用户与远程机的连接然后退出用户机上的ftp 程序。改变目录 “cd [目录]”命令用于在ftp会话期间改变远程机上的目录lcd命令改变本地目录使用户能指定查找或放置本地文件的位置。远程目录列表 ls命令列出远程目录的内容就像使用一个交互shell中的ls命令一样。ls命令的一般格式是ls [目录] [本地文件] 如果指定了目录作为参数那么ls就列出该目录的内容。如果给出一个本地文件的名字那么这个目录列表被放入本地机上您指定的这个文件中。从远程系统获取文件 get和mget命令用于从远程机上获取文件。get命令的一般格式为get 文件名 您还可以给出本地文件名这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名那么就使用远程文件原来的名字。mget命令一次获取多个远程文件。mget命令的一般格式为mget 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要获取的文件对其中的每个文件都要求用户确认是否传送。向远程系统发送文件 put和mput命令用于向远程机发送文件。Put命令的一般格式为put 文件名 mput命令一次发送多个本地文件mput命令的一般格式为mput 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。改变文件传输模式默认情况下ftp按ASCII模式传输文件用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的但为避免对二进制文件的破坏用户可以以二进制模式传输文件。检查传输状态传输大型文件时可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。ftp中的本地命令 当您使用ftp时字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中需要shell做某些事就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。从远程机grunthos下载二进制数据文件的典型对话过程如下$ ftp grunthos Connected to grunthos 220 grunthos ftp server Name grunthos:pc: anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp cd pub 250 CWD command successful. ftp ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp binary 200 type set to I. ftp hash Hash mark printing on 1024 bytes/hash mark. ftp get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl l4684 bytes. # # # # # # # # # # # # # 226 Transfer complete. 14684 bytes received in 0.0473 secs 3e 02 Kbytes/sec ftp quit 22l Goodbye.使用telnet命令访问远程计算机用户使用telnet命令进行远程登录。该命令允许用户使用telnet协议在远程计算机之间进行通信用户可以通过网络在远程计算机上登录就像登录到本地机上执行命令一样。为了通过telnet登录到远程计算机上必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能但出于对安全的考虑要限制来宾的操作权限因此这种情况下能使用的功能是很少的。当允许远程用户登录时系统通常把这些用户放在一个受限制的shell中以防系统被怀有恶意的或不小心的用户破坏。用户还可以使用telnet从远程站点登录到自己的计算机上检查电子邮件、编辑文件和运行程序就像在本地登录一样。但是用户只能使用基于终端的环境而不是X Wndows环境telnet只为普通终端提供终端仿真而不支持 X Wndow等图形环境。telnet命令的一般形式为telnet 主机名/IP 其中“主机名/IP”是要连接的远程机的主机名或IP地址。如果这一命令执行成功将从远程机上得到login提示符。使用telnet命令登录的过程如下$ telnet 主机名/IP 启动telnet会话。 一旦telnet成功地连接到远程系统上就显示登录信息并提示用户输人用户名和口令。如果用户名和口令输入正确就能成功登录并在远程系统上工作。在telnet提示符后面可以输入很多命令用来控制telnet会话过程在telnet联机帮助手册中对这些命令有详细的说明。下面是一台Linux计算机上的telnet会话举例$ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is \?]\. “TurboLinux release 4. 0 Colgatekernel 2.0.18 on an I486login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. Posix. server: ~$ server: ~$ logout Connection closed by foreign host $用户结束了远程会话后一定要确保使用logout命令退出远程系统。然后telnet报告远程会话被关闭并返回到用户的本地机的Shell提示符下。r-系列命令 除ftp和telnet以外还可以使用r-系列命令访问远程计算机和在网络上交换文件。使用r-系列命令需要特别注意因为如果用户不小心就会造成严重的安全漏洞。用户发出一个r-系列命令后远程系统检查名为/etc/hosts.equiv的文件以查看用户的主机是否列在这个文件中。如果它没有找到用户的主机就检查远程机上同名用户的主目录中名为rhosts的文件看是否包括该用户的主机。如果该用户的主机包括在这两个文件中的任何一个之中该用户执行r-系列命令就不用提供口令。虽然用户每次访问远程机时不用键入口令可能是非常方便的但是它也可能会带来严重的安全问题。我们建议用户在建立/etc/hosts.equiv和.rhosts文件之前仔细考虑r-命令隐含的安全问题。rlogin命令rlogin 是“remote login”远程登录的缩写。该命令与telnet命令很相似允许用户启动远程系统上的交互命令会话。rlogin 的一般格式是rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host一般最常用的格式是 rlogin host 该命令中各选项的含义为-8 此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其他的特殊代码。如果不用这个选项除非远端的终止和启动字符不是或否则就去掉奇偶校验位。-E 停止把任何字符当作转义字符。当和-8选项一起使用时它提供一个完全的透明连接。-K 关闭所有的Kerberos确认。只有与使用Kerberos 确认协议的主机连接时才使用这个选项。-L 允许rlogin会话在litout模式中运行。要了解更多信息请查阅tty联机帮助。-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多信息请查阅setsockopt的联机帮助。-e 为rlogin会话设置转义字符默认的转义字符是“~”用户可以指定一个文字字符或一个\\nnn形式的八进制数。-k 请求rlogin获得在指定区域内的远程主机的Kerberos许可而不是获得由krb_realmofhost3确定的远程主机区域内的远程主机的Kerberos 许可。-x 为所有通过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率但是可以提高安全性。rsh命令rsh是“remote shell”远程 shell的缩写。 该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。如果用户没有给出要执行的命令rsh就用rlogin命令使用户登录到远程机上。rsh命令的一般格式是rsh [-Kdnx] [-k realm] [-l username] host [command]一般常用的格式是rsh host [command ]command可以是从shell提示符下键人的任何Linux命令。rsh命令中各选项的含义如下-K 关闭所有的Kerbero确认。该选项只在与使用Kerbero确认的主机连接时才使用。-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多的信息请查阅setsockopt的联机帮助。-k 请求rsh获得在指定区域内的远程主机的Kerberos许可而不是获得由krb_relmofhost3确定的远程主机区域内的远程主机的Kerberos许可。-l 缺省情况下远程用户名与本地用户名相同。本选项允许指定远程用户名如果指定了远程用户名则使用Kerberos 确认与在rlogin命令中一样。-n 重定向来自特殊设备/dev/null的输入。-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率但是可以提高安全性。Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。它把远程命令的标准输出拷贝到rsh的标准输出中。它还把远程标准错误拷贝到本地标准错误文件中。任何退出、中止和中断信号都被送到远程命令中。当远程命令终止了rsh也就终止了。