首先介绍最基本也是经常用到的命令ifconfig,对应windows中的ipconfig。执行ifconfig会将所有的端口信息都显示出来,包括IP地址,MTU 接收和发送的报文还有HWaddr也就是MAC地址
root@zhf-linux:/home/zhf# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:23:5a:b6:de:9f  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:820 errors:0 dropped:0 overruns:0 frame:0
          TX packets:820 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:66752 (66.7 KB)  TX bytes:66752 (66.7 KB)

wlan0     Link encap:Ethernet  HWaddr 00:26:82:07:ef:3c  
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::226:82ff:fe07:ef3c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10115 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5520 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6316755 (6.3 MB)  TX bytes:686532 (686.5 KB)
如果只是想列出某个端口的网络地址可以使用ifconfig wlan0的方法
root@zhf-linux:/home/zhf# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:26:82:07:ef:3c  
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::226:82ff:fe07:ef3c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10902 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6101 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6499772 (6.4 MB)  TX bytes:773060 (773.0 KB)

我们还可以通过ifconfig来修改这些网络的相关信息。
修改MTU信息:
root@zhf-linux:/home/zhf# ifconfig wlan0 mtu 1400

wlan0     Link encap:Ethernet  HWaddr 00:26:82:07:ef:3c  
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::226:82ff:fe07:ef3c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1
          RX packets:11902 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6912 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7099710 (7.0 MB)  TX bytes:864672 (864.6 KB)

修改端口的IP地址
root@zhf-linux:/home/zhf# ifconfig eth0 192.168.0.15

如果时候ifconfig错误的修改了网络佩之,可以通过/etc/init.d/networking restart的方式来重新启动某个网口,之前手动的设置数据会全部失效。

如果我使用的是无线网卡,查看具体的无线网络信息通过iwconfig命令
root@zhf-linux:/home/zhf# iwconfig
wlan0     IEEE 802.11bg  ESSID:"zhf_dxx"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: A4:56:02:4D:65:1F   
          Bit Rate=18 Mb/s   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=-3 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:330  Invalid misc:735   Missed beacon:0

路由信息:
上网除了配置IP地址等信息外,路由也是一个关键的因素。路由顾名思义就是如何转发数据包的依据。
route命令可以查看当前服务器的信息。
Destinaton和Genmask分别是网络地址与网络掩码。第一条路由信息中Destination是default, Genmask是0.0.0.0. 可以认为是全网路由,也就是可以达到任务的网络地址。
Gateway就是网关,从当前服务器出去的数据都是通过网关地址设备来进行转发。这里网关地址为192.168.0.1也就是无线路由器的地址。
Flags: 路由的标识。  U表示路由是启动的。H目标是一台主机而非网络 。G:需要通过外部的主机来传递数据包。R:动态路由。 D:动态路由。M:路由被修改了
Iface:路由传递数据报的接口

root@zhf-linux:/home/zhf# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    600    0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
192.168.0.0     *               255.255.255.0   U     600    0        0 wlan0

我们还可以手动添加和删除路由:
添加的时候需要设置-net 目标网络地址,netmask 网络掩码  gw:网关
root@zhf-linux:/home/zhf# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
root@zhf-linux:/home/zhf# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
root@zhf-linux:/home/zhf# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    600    0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
192.168.0.0     *               255.255.255.0   U     600    0        0 wlan0
192.168.1.0     192.168.0.1     255.255.255.0   UG    0      0        0 wlan0
删除的时候可以不带网关地址。
root@zhf-linux:/home/zhf# route del -net 192.168.1.0 netmask 255.255.255.0
root@zhf-linux:/home/zhf# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    600    0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
192.168.0.0     *               255.255.255.0   U     600    0        0 wlan0

下面介绍一个综合前面route 和ifconfig的命令:ip. 主要有几个参数;
-s:显示出设备的统计数据,如接收数据包的总数等
link: 与设备相关的设置,包括MTU,Mac地址等
addr/address:关于额外的IP协议
route: 与路由有关的相关设置
比如ip link show显示所有端口的硬件信息
root@zhf-linux:/home/zhf# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:23:5a:b6:de:9f brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:26:82:07:ef:3c brd ff:ff:ff:ff:ff:ff

还可以通过ip link set eth0 up/ip link set eth0 down来启动和关闭端口

还可以修改端口的名称,但首先要关闭这个端口。否则无法修改
root@zhf-linux:/home/zhf# ip link set eth0 name zhf
RTNETLINK answers: Device or resource busy
root@zhf-linux:/home/zhf# ip link set eth0 down
root@zhf-linux:/home/zhf# ip link set eth0 name zhf

root@zhf-linux:/home/zhf# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: zhf: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:23:5a:b6:de:9f brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:26:82:07:ef:3c brd ff:ff:ff:ff:ff:ff

ip route添加路由
root@zhf-linux:/home/zhf# ip route add 192.168.5.0/24 dev eth0
root@zhf-linux:/home/zhf# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    600    0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
192.168.0.0     *               255.255.255.0   U     600    0        0 wlan0
192.168.5.0     *               255.255.255.0   U     0      0        0 eth0

接着介绍几个网络定位的命令。 首先来看用到最多的命令ping
ping的参数如下;
-c 后面接ping的次数
-s ping报文的大小
-t TTL的数值
-W:等待响应对方主机的秒数
-M:主要检测网络的MTU数值大小
比如ping 5次新浪网。从第一行可以看到ping包的字节默认为56个字节,加上28个字节的头信息
root@zhf-linux:/home/zhf# ping -c 5 www.sina.com.cn
PING www.sina.com.cn (218.30.66.248) 56(84) bytes of data.
64 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=1 ttl=54 time=19.8 ms
64 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=2 ttl=54 time=19.2 ms
64 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=3 ttl=54 time=22.0 ms
64 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=4 ttl=54 time=33.3 ms
64 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=5 ttl=54 time=21.8 ms

--- www.sina.com.cn ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 19.202/23.265/33.306/5.144 ms

改变ping包字节大小为120字节。加上头信息为148字节
root@zhf-linux:/home/zhf# ping -c 5 -s 120 www.sina.com.cn
PING www.sina.com.cn (218.30.66.248) 120(148) bytes of data.
128 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=1 ttl=54 time=19.5 ms
128 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=2 ttl=54 time=22.7 ms
128 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=3 ttl=54 time=18.8 ms
128 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=4 ttl=54 time=45.0 ms
128 bytes from www.sina.com.cn (218.30.66.248): icmp_seq=5 ttl=54 time=18.0 ms
--- www.sina.com.cn ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 18.062/24.846/45.060/10.230 ms

我们可以根据ping 命令来写一个探测网络内存在的主机:
for siteip in $(seq 1 254)
    do
       site="192.168.1.${siteip}"
       ping -c 2 ${site} &>/dev/null
       if [ "$?" == 0 ];then
           echo "$site is up"
       else
           echo "$site is down"
       fi
    done

root@zhf-linux:/home/zhf/zhf/shell_prj# sh ping_test.sh
192.168.1.1 is up
192.168.1.2 is up
192.168.1.3 is down
192.168.1.4 is down
192.168.1.5 is down
192.168.1.6 is down
192.168.1.7 is down

ping命令虽然能检测链路是否通,但是网络传输中会经过很多个网络节点。如果不通的话数据包是在哪个网络节点遇到故障了呢,这个时候就需要用到traceroute命令。
主要参数如下;
-n: 不必进行主机的名称解析,单纯用IP
-U:使用UDP的port 33434进行检测。这是Linux默认的协议。windows是采用ICMP
-I:使用ICMP的方式进行检测
-T:使用TCP进行检测
-w: 设置等待对方响应的时间
-p:端口号
可以看到traceroute会显示经过的每个节点的IP以及所消耗的时延。这样就十分便于我们定位问题到底出在哪
root@zhf-linux:/home/zhf/zhf/shell_prj# traceroute -n www.sina.com.cn
traceroute to www.sina.com.cn (218.30.66.248), 30 hops max, 60 byte packets
 1  192.168.1.1  4.485 ms  4.505 ms  4.578 ms
 2  100.64.0.1  8.041 ms  8.262 ms  10.867 ms
 3  100.64.0.1  11.015 ms  11.144 ms  11.284 ms
 4  220.167.87.17  19.405 ms  19.595 ms  19.651 ms
 5  171.208.203.69  22.509 ms 171.208.203.57  22.172 ms  22.257 ms
 6  202.97.48.125  35.747 ms 202.97.48.117  36.414 ms 202.97.48.125  30.744 ms
 7  218.30.19.94  37.071 ms 218.30.69.2  25.474 ms 218.30.19.94  38.695 ms^C
root@zhf-linux:/home/zhf/zhf/shell_prj# traceroute www.sina.com.cn
traceroute to www.sina.com.cn (218.30.66.248), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  7.411 ms  7.513 ms  7.563 ms
 2  100.64.0.1 (100.64.0.1)  8.165 ms  8.451 ms  8.686 ms
 3  100.64.0.1 (100.64.0.1)  9.012 ms  9.000 ms  9.268 ms
 4  220.167.87.17 (220.167.87.17)  48.949 ms  49.123 ms  49.170 ms
 5  171.208.203.69 (171.208.203.69)  10.046 ms 171.208.203.57 (171.208.203.57)  9.840 ms 171.208.198.25 (171.208.198.25)  13.523 ms
 6  202.97.48.125 (202.97.48.125)  34.782 ms  26.170 ms 202.97.48.117 (202.97.48.117)  31.479 ms
 7  218.30.69.2 (218.30.69.2)  22.882 ms 218.30.19.94 (218.30.19.94)  31.512 ms 218.30.69.2 (218.30.69.2)  23.094 ms

即使有了traceroute命令,我们也只是知道问题是出在哪。但是问题的根因是什么我们还是不知道。很多时候需要抓包进行问题分析。这时候就要用到tcpdump命令。tcpdump不但可以分析数据包的流向,而且连数据包的内容也可以进行监听
关键参数如下:
-A: 数据包的内容以ASCII显示
-e:使用数据链路层MAC数据包数据来显示
-nn:直接以IP及port number显示
-q:仅列出简短的数据信息
-X:列出十六进制以及ASCII的数据包内容
-i: 要监听的网络接口 例如eth0,lo,wlan等
-w: 如果你要将监听所得的数据包数据存储下来,后面接文件名
-r:从后面的文件将数据包数据读出来

抓取wlan0端口的数据并存储到test1.txt文件中。
tcpdump -i wlan0 -nn -X > test1.txt
21:48:06.869312 IP 180.149.136.194.80 > 192.168.0.11.50592: Flags [S.], seq 3280367214, ack 1401941542, win 14600, options [mss 1440,nop,nop,sackOK,nop,wscale 7], length 0
    0x0000:  4500 0034 475e 0000 3706 3e5b b495 88c2  E..4G^..7.>[....
    0x0010:  c0a8 000b 0050 c5a0 c386 6e6e 538f ee26  .....P....nnS..&
    0x0020:  8012 3908 fe65 0000 0204 05a0 0101 0402  ..9..e..........
    0x0030:  0103 0307                                ....
21:48:06.869360 IP 192.168.0.11.50592 > 180.149.136.194.80: Flags [.], ack 1, win 229, length 0
    0x0000:  4500 0028 ae0b 4000 4006 8eb9 c0a8 000b  E..(..@.@.......
    0x0010:  b495 88c2 c5a0 0050 538f ee26 c386 6e6f  .......PS..&..no
    0x0020:  5010 00e5 7747 0000                      P...wG..
21:48:06.870044 IP 192.168.0.11.50592 > 180.149.136.194.80: Flags [.], seq 1:1441, ack 1, win 229, length 1440: HTTP: GET /mfp/view?type=3&t=MjAxNy0xMC0xOCAyMTo0ODowNAkxMTguMTEzLjQzLjIzNgkyMjIuMjEwLjE2NC4yMTBfMTQ0ODQ2MDA0Ni4yNDE1ODMJaHR0cDovL3d3dy5zaW5hLmNvbS5jbi8JUERQUzAwMDAwMDAwNTQ5NAk2NTdkZDFiOC0xYjVhLTQ2N2YtOTNiOC02MWM0MzcxODIwYzQJREI0QTk5OEZDOEE4CURCNEE5OThGQzhBOAlhdXRvX2xldmVsOjE4MDEwMHx1c2VyX2dyb3VwOjkwOSw5MTN8dXNlcl90YWc6MjA5NTZ8cG9zOlBEUFMwMDAwMDAwMDU0OTR8d2FwX29zOjcwMHx1c2VyX2FnZTo2MDIsNjAxLDYwM3x2X3pvbmU6MzI2MDAwLDMyNjAwMXx1c2VyX2dlbmRlcjo1MDF8X3Zfem9uZTozMjYwMDAsMzI2MDAxfGF1dG9fcHJpY2U6MTgwMjAwfG1vYmlsZV9icmFuZDoxMjA5fG1vYmlsZV9icm93c2VyOjgwN3x2ZXJzaW9uOmdsX2JwMV8xLHBjOjEuMAkJMzI2MDAwfDMyNjAwMQlEQjRBOTk4RkM4QTgJTkIxNzA0MDI0MQkJREI0QTk5OEZDOEE4CUFFCS0JMQktCS0JLQktCS0JLQktCS0JLQkxCS0JMAkwCWNoYW5uZWwyOmJsb2dfc3xvczp1YnVudHV8YnJvd3NlcjpmaXJlZm94fHBsYXRmb3JtOm90aGVyfGRldmljZTpvdGhlcnxhZFBsYXRGb3JtOjA%3D&userid=222.210.164.210_1448460046.241583&viewlog=false&hashCode=3400c1d3fbc463e290cf234cd786ceed&_sinaads_sio_log_ivciiq HTTP/1.1

由于数据较多,可以将数据内容都存在文件中,后面来查看。cap文件可以用wireshark软件打开。
root@zhf-linux:/home/zhf/zhf# tcpdump -i wlan0 -w tcpdump_test.cap

想监听某一个端口,比如监控网页的数据。可以指定端口
root@zhf-linux:/home/zhf/zhf# tcpdump -i wlan0 -nn port 8080

一起来学linux:网络命令的更多相关文章

  1. Linux 基础——常用的Linux网络命令

    一.学Linux网络命令有什么好处 网络的出现,我们的生活更方便了,处理事情的效率也越来越高,也可以看到全世界文化的差异.同时我们接受新事物的信息越来越来强,新事物的信息也越来越来多.网络对于我们尔等 ...

  2. 基础的 Linux 网络命令,你值得拥有

    导读 有抱负的 Linux 系统管理员和 Linux 狂热者必须知道的.最重要的.而且基础的 Linux 网络命令合集.在 It's FOSS 我们并非每天都谈论 Linux 的"命令行方面 ...

  3. 你必须了解的基础的 Linux 网络命令

    Linux 基础网络命令列表 我在计算机网络课程上使用 FreeBSD,不过这些 UNIX 命令应该也能在 Linux 上同样工作. 连通性 ping <host>:发送 ICMP ech ...

  4. Linux网络管理——Linux网络命令

    3. Linux网络命令 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB&quo ...

  5. 初中级DBA必需要学会的9个Linux网络命令,看看你有哪些还没用过

    笔者不久前写了一篇文章<做DBA必须学会,不会会死的11个Linux基本命令>,博文地址为:http://blog.csdn.net/ljunjie82/article/details/4 ...

  6. 请收好 Linux 网络命令集锦

    看着kali linux上百个网络命令,我陷入了沉思.专业的网络命令实在是太多了,如果要罗列,上千个也是有的.个人不是渗透测试工作者,大部分功能只知皮毛.所以本文是非常浅显的技术总结,仅聚焦工作中常用 ...

  7. Linux网络命令与脚本使用

    作为系统管理员,经常需要诊断和解决网络问题,而配置.监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分.这里总结一下常用与Linux网络管理的命令 ...

  8. Linux 网络命令必知必会之 tcpdump,一份完整的抓包指南请查收!

    目录 01 简介 02 tcpdump 命令选项 03 过滤器 04 常用操作 4.1 抓取某主机的数据包 4.2 抓取某端口的数据包 4.3 抓取某网络(网段)的数据包 4.4 抓取某协议的数据包 ...

  9. Linux网络命令必知必会之瑞士军刀 nc(netcat)

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. nc,全名叫 ...

  10. Linux网络命令——ifconfig、ifup、ifdown

    这三个命令的用途都是启动网络接口,不过,ifup 与 ifdown 仅就 /etc/sysconfig/network- scripts 内的 ifcfg-ethx(x为数字)进行启动或关闭的操作,并 ...

随机推荐

  1. 201521123092《Java程序设计》第七周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下 publ ...

  2. 201521123072《java程序设计》第四次总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.11.2 使用常规方法总结其他上课内容 一些小的方法归纳: 通过 instanceof 可以判断父类引用所引用的对象实例的实际类 ...

  3. 201521123062 《Java程序设计》第3周学习总结

    1.本周学习总结 二.书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pu ...

  4. 201521123100 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  5. Redis总结(六)Redis配置文件全解

    前面已经写了一些关于redis 的介绍,redis 的基本功能和用法,基本上都说了,有问题的可以去看看 http://www.cnblogs.com/zhangweizhong/category/77 ...

  6. [06] Session实现机制以及和Cookie的区别

    1.为什么有Session和Cookie 根据早期的HTTP协议,每次request-reponse时,都要重新建立TCP连接.TCP连接每次都重新建立,所以服务器无法知道上次请求和本次请求是否来自于 ...

  7. 我的Spring学习记录(一)

    spring是一个框架,一个我理解为对象的大熔炉,它生产着各种bean,还可以对生产的对象进行加工. 这里有些概念需要理解一下,就是IOC和DI以及AOP,接下来,我们进入主题. spring简介 上 ...

  8. Linux入门之常用命令(4)vi编辑器

    vi分为三种模式 一般模式:删除字符.删除整行.复制粘贴等操作 编辑模式:i o a r进入 输入字符  Esc退出 命令行模式::或/ 将光标移动到最末行 搜寻数据 读取或替换 退出vi 显示行号 ...

  9. 【笔记】php常用函数

    phpusleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_unti ...

  10. hdu3507 Print Article(斜率DP优化)

    Zero has an old printer that doesn't work well sometimes. As it is antique, he still like to use it ...