[root@linux ~]# ping [-bcstnM] IP 参数: -b,后面接的是 broadcast 的 IP,用在你“需要对整个网段的主机进行 ping ”时; -c,后面接的是执行 ping 的次数,例如 -c 5 ; -n,不进行 IP 与主机名称的反查,直接使用 IP ; -s,发送出去的 ICMP 数据包大小,默认为 56(bytes),再加 8 bytes 的 ICMP 表头资料。 -t,TTL 的数值,默认是 255,每经过一个节点就会少 -M [do|dont] :主要在检测网络的 MTU 数值大小,两个常见的项目是: do,代表传送一个 DF (Don't Fragment) 旗标,让数据包不能重新拆包与打包; dont,代表不要传送 DF 标记,表示数据包可以在其他主机上拆包与打包。 范例一:检测一下 168.95.1.1 这部 DNS 主机是否存在? [root@linux ~]# ping -c 3 168.95.1.1 PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data. 64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms 64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms 64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms --- 168.95.1.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2 |
ping最简单的功能就是传送ICMP数据包去要求对方主机响应是否存在于网络环境中。上面的响应信息当中,几个重要的项目如下。
范例二:针对整个网段进行 ping 的追查 [root@linux ~]# ping -c 3 -b 192.168.10.255 WARNING: pinging broadcast address <==会告知危险。 PING 192.168.10.255 (192.168.10.255) 56(84) bytes of data. 64 bytes from 192.168.10.100: icmp_seq=1 ttl=64 time=0.177 ms 64 bytes from 192.168.10.20: icmp_seq=1 ttl=64 time=0.179 ms (DUP!) 64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.302 ms (DUP!) 64 bytes from 192.168.10.40: icmp_seq=1 ttl=64 time=0.304 ms (DUP!) # 当针对整台主机作 ping 的检测时,可以利用 -b 这个参数。 # 请特别注意,当使用 ping -b 时,会对整个网段进行检测。没事别乱用。 # 例如上面的范例中,区网内的 192.168.10.20... 等主机会被检测到。 |
范例三:找出最大的 MTU 数值 [root@linux ~]# ping -c 2 -s 1000 -M do 192.168.10.10 PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data. 1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms # 如果有响应,那就是可以接受这个数据包,如果无响应,那就表示这个 MTU 太大了 [root@linux ~]# ping -c 2 -s 8000 -M do 192.168.10.10 PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data. ping: local error: Message too long, mtu=1500 # 这个错误信息是说,本地端的 MTU 才到 1500 而已,你要检测 8000 的 MTU # 根本就是无法实现的。那如何是好?用前一小节介绍的 ip link 来进行 MTU 设置吧 |
网络接口 |
MTU |
Ethernet |
1500 |
PPPoE |
1492 |
Dial-up(Modem) |
576 |
[root@linux ~]# ping [-bcstnM] IP 参数: -b,后面接的是 broadcast 的 IP,用在你“需要对整个网段的主机进行 ping ”时; -c,后面接的是执行 ping 的次数,例如 -c 5 ; -n,不进行 IP 与主机名称的反查,直接使用 IP ; -s,发送出去的 ICMP 数据包大小,默认为 56(bytes),再加 8 bytes 的 ICMP 表头资料。 -t,TTL 的数值,默认是 255,每经过一个节点就会少 -M [do|dont] :主要在检测网络的 MTU 数值大小,两个常见的项目是: do,代表传送一个 DF (Don't Fragment) 旗标,让数据包不能重新拆包与打包; dont,代表不要传送 DF 标记,表示数据包可以在其他主机上拆包与打包。 范例一:检测一下 168.95.1.1 这部 DNS 主机是否存在? [root@linux ~]# ping -c 3 168.95.1.1 PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data. 64 bytes from 168.95.1.1: icmp_seq=0 ttl=243 time=9.16 ms 64 bytes from 168.95.1.1: icmp_seq=1 ttl=243 time=8.98 ms 64 bytes from 168.95.1.1: icmp_seq=2 ttl=243 time=8.80 ms --- 168.95.1.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 8.807/8.986/9.163/0.164 ms, pipe 2 |
ping最简单的功能就是传送ICMP数据包去要求对方主机响应是否存在于网络环境中。上面的响应信息当中,几个重要的项目如下。
范例二:针对整个网段进行 ping 的追查 [root@linux ~]# ping -c 3 -b 192.168.10.255 WARNING: pinging broadcast address <==会告知危险。 PING 192.168.10.255 (192.168.10.255) 56(84) bytes of data. 64 bytes from 192.168.10.100: icmp_seq=1 ttl=64 time=0.177 ms 64 bytes from 192.168.10.20: icmp_seq=1 ttl=64 time=0.179 ms (DUP!) 64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.302 ms (DUP!) 64 bytes from 192.168.10.40: icmp_seq=1 ttl=64 time=0.304 ms (DUP!) # 当针对整台主机作 ping 的检测时,可以利用 -b 这个参数。 # 请特别注意,当使用 ping -b 时,会对整个网段进行检测。没事别乱用。 # 例如上面的范例中,区网内的 192.168.10.20... 等主机会被检测到。 |
范例三:找出最大的 MTU 数值 [root@linux ~]# ping -c 2 -s 1000 -M do 192.168.10.10 PING 192.168.10.10 (192.168.10.10) 1000(1028) bytes of data. 1008 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.424 ms # 如果有响应,那就是可以接受这个数据包,如果无响应,那就表示这个 MTU 太大了 [root@linux ~]# ping -c 2 -s 8000 -M do 192.168.10.10 PING 192.168.10.10 (192.168.10.10) 8000(8028) bytes of data. ping: local error: Message too long, mtu=1500 # 这个错误信息是说,本地端的 MTU 才到 1500 而已,你要检测 8000 的 MTU # 根本就是无法实现的。那如何是好?用前一小节介绍的 ip link 来进行 MTU 设置吧 |
网络接口 |
MTU |
Ethernet |
1500 |
PPPoE |
1492 |
Dial-up(Modem) |
576 |
[root@linux ~]# traceroute [-nwig] IP 参数: -n,可以不必进行主机的名称解析,只用 IP ,速度较快。 -w,若对方主机在几秒钟内没有回声就宣告不治...默认是 5 秒。 -i,用在比较复杂的环境,如果你的网络接口很多很复杂时,才会用到这个参数。 例如,你有两条 ADSL 可以连接到外部,那你的主机会有两个 ppp。 你可以使用 -i 来选择是 ppp0 还是 ppp1 啦。 -g,与 -i 的参数相仿,只是 -g 后面接的是 gateway 的 IP 。 范例一: [root@linux ~]# traceroute -n tw.yahoo.com traceroute to tw.yahoo-ap1.akadns.net (203.84.202.164), 30 hops max, 38 byte packets 1 61.59.121.1 42.174 ms 41.690 ms 41.058 ms 2 139.175.172.2 40.962 ms 41.978 ms 40.973 ms 3 192.72.122.130 40.983 ms 41.930 ms 41.003 ms 4 139.175.58.210 42.956 ms 41.997 ms 42.337 ms 5 139.175.58.153 47.591 ms 47.972 ms 48.748 ms 6 139.175.56.30 48.193 ms 47.970 ms 47.986 ms 7 139.175.57.94 47.959 ms 47.951 ms 47.985 ms 8 139.175.56.138 48.363 ms 47.586 ms 47.995 ms 9 139.175.58.42 49.256 ms 50.668 ms 47.490 ms 10 61.58.33.133 201.882 ms 201.565 ms 200.973 ms 11 61.58.33.50 199.910 ms 199.019 ms 198.961 ms 12 203.84.200.226 202.391 ms 202.567 ms 209.283 ms |
[root@linux ~]# netstat -[rn] <==与路由有关的参数 [root@linux ~]# netstat -[antulpc] <==与网络接口有关的参数 参数: 与路由 (route) 有关的参数说明 -r,列出路由表(route table),功能如同 route 这个命令 -n,不使用主机名称与服务名称,使用 IP 与 Port Number ,如同 route -n 与网络接口有关的参数 -a,列出所有的联机状态,包括 tcp/udp/unix socket 等 -t,仅列出 TCP 数据包的联机 -u,仅列出 UDP 数据包的联机 -l,仅列出有在 Listen (监听) 的服务之网络状态 -p,列出 PID 与 Program 的文件名 -c,可以设置几秒后自动更新一次,例如 -c 5 每5秒更新一次网络状态的显示 范例一:列出目前的路由表状态,且以 IP 及 Port Number 显示: [root@linux ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.10.30 0.0.0.0 UG 0 0 0 eth0 # 其实这个参数就跟 route -n 一模一样,对吧。这不是 netstat 的主要功能 范例二:列出目前的所有网络联机状态,使用 IP 与 Port Number [root@linux ~]# netstat -an Active Internet connections (Servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::ffff:192.168.10.100:25 ::ffff:192.168.10.200:57509 TIME_WAIT tcp 0 52 ::ffff:192.168.10.100:22 ::ffff:192.168.10.210:1504 ESTABLISHED udp 0 0 127.0.0.1:53 0.0.0.0:* Active UNIX domain sockets (Servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 4792 public/cleanup unix 2 [ ACC ] STREAM LISTENING 4799 private/rewrite ……(下面省略)…… |
通常鸟哥都是建议加上“-n”这个参数的,因为可以避免主机名称与服务名称的反查,直接以IP及端口号码(Port Number)来显示,显示的速度会快很多。至于在输出的信息当中,我们先来谈一谈关于网络联机状态的输出部分,它主要分为下面几个大项。
Ø SYN_SENT:发出主动联机(SYN标志)的联机数据包。
Ø SYN_RECV:接收到一个要求联机的主动联机数据包。
Ø FIN_WAIT1:该联机正在断线当中。
Ø FIN_WAIT2:该联机已挂断,但正在等待对方主机响应断线确认的数据包。
Ø TIME_WAIT:该联机已挂断,但socket还在网络上等待结束。
Ø LISTEN:通常用在服务的监听port。可使用“-l”参数查阅。
范例三:显示出目前已经启动的网络服务 [root@linux ~]# netstat -tulnp Active Internet connections (only Servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2141/master tcp 0 0 :::22 :::* LISTEN 1924/sshd tcp 0 0 :::25 :::* LISTEN 2141/master udp 0 0 127.0.0.1:53 0.0.0.0:* 1911/named # 上面最重要的其实是那个 -l 的参数,因为可以列出只有在 Listen 的 port |
范例四:观察本机上头所有的网络联机状态 [root@linux ~]# netstat -atunp Active Internet connections (Servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2141/master tcp 0 0 :::22 :::* LISTEN 1924/sshd tcp 0 0 :::25 :::* LISTEN 2141/master tcp 0 68 192.168.1.100:22 192.168.1.210:1504 ESTABLISHED 30417/sshd: udp 0 0 127.0.0.1:53 0.0.0.0:* 1911/named |
[root@linux ~]# host [-a] hostname [Server] 参数: -a,列出该主机详细的各项主机名称设置数据 [Server] :可以使用不是 /etc/resolv.conf 的 DNS 主机来查询 范例一:列出 tw.yahoo.com 的 IP [root@linux ~]# host tw.yahoo.com tw.yahoo.com is an alias for tw.yahoo-ap1.akadns.net. tw.yahoo-ap1.akadns.net has address 202.43.195.52 |
[root@linux ~]# host tw.yahoo.com 168.95.1.1 Using domain Server: Name: 168.95.1.1 Address: 168.95.1.1#53 Aliases: tw.yahoo.com is an alias for tw.yahoo-ap1.akadns.net. tw.yahoo-ap1.akadns.net has address 202.43.195.52 |
[root@linux ~]# nslookup [-query=[type]] [hostname|IP] 参数: -query=type:查询的类型,除了传统的 IP 与主机名称对应外,DNS 还有很多信息 所以我们可以查询很多不同的信息,包括mx、cname 等 例如: -query=mx 的查询方法。 范例一:找出 www.google.com.tw 的 IP [root@linux ~]# nslookup www.google.com.tw Server: 168.95.1.1 Address: 168.95.1.1#53 Non-authoritative answer: www.google.com.tw canonical name = www.google.com. www.google.com canonical name = www.l.google.com. Name: www.l.google.com Address: 64.233.189.104 范例二:找出 168.95.1.1 的主机名称 [root@linux ~]# nslookup 168.95.1.1 Server: 168.95.1.1 Address: 168.95.1.1#53 1.1.95.168.in-addr.arpa name = dns.hinet.net. |
[root@linux ~]# Telnet [host|IP] [port] 范例一:连接到成大梦之大地这个 BBS 站 [root@linux ~]# Telnet bbs.dorm.ncku.edu.tw bbs.ccns.ncku.edu.tw ⊙ ⊙ 140.116.250.3 [DreamBBS Ver.040223] 欢迎光临。系统负载:0.16 0.16 0.16 [负载正常] ╭─┼────┼─╮ ╭╮ ┌┤梦之大地├────────────┐ ╭──┬──┬──╮╭───┴┴───┬╮ │ │ ╰──┴──┴──╯ │ │ 梦之大地由 │ ╭────────╮ ╭─╯ │ 【计算机网络爱好社‧CCNS】 │ ╭───┬───╮ ╭──╯ │ 维护管理 │ │ │ ╭─╯ │ │ ╰───┴───╯ ╰┴───────╯ └───────────┤By BenHe├┘ ┌┤本站站长群├────────┐ ╭ ╭ ╭ ╮ │站长: billcho │ ╭────┼────╮╭─┼─╭┼──┼╮ │系统: cat │ │ │ │ ││ │站务: muwell ianwolf │ ╭╯╮ │ │ ││ │ renn999 GG │ ╭╯ ╰╮ │ │ │╯ │ │ ╭╯ ╰╮ │╭ │ └───────────────┘ ╰╯ ╰─╯╰─┴╯ ╰───╯ 参观用账号:guest,申请新账号:new。目前在线人数 [2183/5000] 人。 请输入代号: |
范例二:检测本机端的port 110 是否正确启动? [root@linux ~]# Telnet localhost 110 Trying 127.0.0.1... Telnet: connect to address 127.0.0.1: Connection refused # 如果出现这样的信息,代表这个 port 没有启动或者是这个联机有问题 # 因为你看到那个 refused [root@linux ~]# Telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '_]'. 220 vbird.vbird.idv.tw ESMTP Postfix ehlo localhost 250-linux.dm.tsai 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250 8BITMIME quit 221 Bye Connection closed by foreign host. |
[root@linux ~]# FTP [-p] [host|IP] [port] 参数: -p :启动被动式模式 (passive、PASV); 范例一:联机看看 [root@linux ~]# FTP FTP.isu.edu.tw Connected to FTP.isu.edu.tw (140.127.177.17). 220-欢迎光临义守大学文件服务器 220- 220-本站提供以下软件可供下载: 220-******************************************************************** 220-/pub/BeOS/ BeOS 操作系统 220-/pub/Linux/ Linux 操作系统 ....(其他省略).... 220-******************************************************************** Name (FTP.isu.edu.tw:dmtsai): anonymous 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. FTP> FTP> help <==提供更多的可用命令,可以常参考。 FTP> cd /pub <==变换目录到 /pub 当中 FTP> dir <==显示远程主机的目录内容 FTP> get file <==下载 file 这个文件 FTP> mget file <==下载 file 这个目录或文件 FTP> put file <==上传 file 这个文件到服务器上 FTP> delete file <==删除主机上的 file 这个文件 FTP> mkdir dir <==建立 dir 这个目录 FTP> lcd /home <==切换“本地端主机”的工作目录 FTP> passive <==启动或关闭 passive 模式 FTP> binary <==数据传输模式设置为 binary 格式 |
[root@linux ~]# FTP hostname 318 # 假设对方主机的 FTP 服务开启在 318 这个 port 。 |
[root@linux ~]# LFTP [-p port] [-u user[,pass]] [host|IP] 参数: -p,后面可以直接接上远程 FTP 主机提供的 port -u,后面则是接上 账号与密码 ,就能够连接上远程主机了 如果没有加账号密码, lFTP 默认会使用 anonymous 尝试匿名登录 范例一:利用 LFTP 登录义守大学 [root@linux ~]# LFTP FTP.isu.edu.tw lFTP FTP.isu.edu.tw:~> # 瞧。一下子就登录了 |
至于登录FTP主机后,一样可以使用help来显示出可以执行的命令,与FTP很类似。不过多了书签的功能,而且也非常的类似于bash,这个功能很不错。除了这个好用的文本界面的FTP软件之外,事实上还有很多图形界面的好用软件呢。最常见的就是gFTP了。不但是图形界面,而且与cute FTP非常像,非常容易上手。Cent OS本身就有提供gFTP了,你可以拿出原版的光盘来安装,然后进入X Window后,启动一个Shell,输入gFTP就能够发现它的好用了。下面我们再来介绍一下实时通信吧
图5-1 Gaim使用范例图 |
[root@linux ~]# lynx [options] [website] 参数: options 指的是一些惯用的参数,可以使用 man lynx 查阅,常见的有: -anonymous :默认使用匿名登录。 -assume_charset=big5 :设置默认的语系数据为 big5 ,用在中文网页很方便。 范例一:浏览 Linux kernel 网站 [root@linux ~]# LANG=zh_TW.big5 [root@linux ~]# lynx http://www.kernel.org |
图5-3 lynx使用范例图 |
· g:Goto URL,按g后输入网页地址(URL)如:http://www.abc.edu/ 等。
· d:download,下载文件。
· q:Quit,退出lynx 。
· Ctrl+C:强迫中止lynx的执行。
Ø 下:移动光标至本页中“下一个可链接点”。
Ø 左:back,跳回上一页。
Ø 右:进入反白光标所链接的网页。
Ø Enter:等同“右”键。
[root@linux ~]# cd /usr/share/doc/samba-3.0.10/htmldocs [root@linux htmldocs]# lynx index.html |
图5-4 lynx使用范例图 |
[root@linux ~]# vi /etc/lynx.cfg CHARACTER_SET:utf-8 <==约在 399 行 #ASSUME_CHARSET:iso-8859-1 <==约在 414 行 #PREFERRED_LANGUAGE:en <==约在 542 行 # 你可以将它改成如下所示: CHARACTER_SET:big5 ASSUME_CHARSET:big5 PREFERRED_LANGUAGE:zh_TW |
[root@linux ~]# lynx -dump \ > http://some.site.name/web.php?name=user&password=pw > testfile |
[root@linux ~]# wget [option] [网址] 参数: 若想要联机的网站提供账号与密码的保护,可以利用这两个参数来输入。 --http-user=usrname --http-password=password --quiet :不要显示 wget 在获取数据时候的显示信息 更多的参数请自行参考 man wget 范例一:请下载 2.6.17 版的核心 [root@linux ~]# wget \ > http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.gz --16:06:10-- http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.gz => `linux-2.6.17.tar.gz' Resolving www.kernel.org... 204.152.191.37, 204.152.191.5 Connecting to www.kernel.org|204.152.191.37|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 51,700,445 (49M) [application/x-gzip] 3% [==> ] 1,890,568 220.69K/s ETA 04:12 |
[root@linux ~]# vi /etc/wgetrc #http_proxy = http://proxy.yoyodyne.com:18023/ <==找到下面这几行,大约在 78 行 #FTP_proxy = http://proxy.yoyodyne.com:18023/ #use_proxy = on # 将它改成类似下面的模样,记得,你需要有可接受的 proxy 主机才行 http_proxy = http://proxy.ncku.edu.tw:3128/ use_proxy = no |
[root@linux ~]# wget [option] [网址] 参数: 若想要联机的网站提供账号与密码的保护,可以利用这两个参数来输入。 --http-user=usrname --http-password=password --quiet :不要显示 wget 在获取数据时候的显示信息 更多的参数请自行参考 man wget 范例一:请下载 2.6.17 版的核心 [root@linux ~]# wget \ > http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.gz --16:06:10-- http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.gz => `linux-2.6.17.tar.gz' Resolving www.kernel.org... 204.152.191.37, 204.152.191.5 Connecting to www.kernel.org|204.152.191.37|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 51,700,445 (49M) [application/x-gzip] 3% [==> ] 1,890,568 220.69K/s ETA 04:12 |
[root@linux ~]# vi /etc/wgetrc #http_proxy = http://proxy.yoyodyne.com:18023/ <==找到下面这几行,大约在 78 行 #FTP_proxy = http://proxy.yoyodyne.com:18023/ #use_proxy = on # 将它改成类似下面的模样,记得,你需要有可接受的 proxy 主机才行 http_proxy = http://proxy.ncku.edu.tw:3128/ use_proxy = no |
-
linux全部命令转载
2007-08-05 13:31:27 标签:linux 命令 [
linux 职场 休闲 -
Linux查找命令的路径转载
最近用到一个脚本,不是官方的,但是不知道在哪个路径,想扒出来看看怎么写的,就需要查找命令的路径。
linux 二进制 源代码 搜索结果