Intelligence without ambition is a bird without wings.

2015-02-09
linux-常用命令

系统

  • 修改时区

    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
  • 查看时区

    ll /etc/localtime
    date +%z:%Z
    
  • 查看或设置用户限制

    ulimit -a
    
  • 查看系统配置参数

    getconf -a
    

磁盘

  • 查看磁盘使用情况

    df
    
  • 查看分区类型

    df -T
    
  • 查看分区UUID,label等

    blkid
    
  • 检查并自动修复磁盘错误

    fsck -a /dev/sda1
    
  • 重新读取fstab

    mount -a
    

压缩包

  • 解压tar包

    tar xvf XXX.tar
    
  • 解压tar.gz

    tar xvzf XXX.tar.gz
    

文件

  • 重命名文件、目录

    mv SRC DST
    
  • 查看目录使用情况

    du
    
  • 实时查看文件

    tail -f filename
    
  • 复制,若父目录不存在则创建

    cp src/a.txt /data/ ==> /data/src/a.txt
    

账号

  • 添加用户

    useradd -m <username>
    
  • 设置密码

    passwd <username>
    
  • 查看用户基本信息

    id USERNAME
    
  • 查看用户所属组

    groups USERNAME
    lid <username>
    
  • 查看组成员

    lid -g <group-name>
    
  • 用户添加附加组

    usermod -a -G GROUPNAME USERNAME
    
  • 查看动态库加载

    ldd ./dbgateway_svc 
    

进程管理

  • 批量删除进程

    pkill <pattern>
    
  • 根据端口杀进程

    fuser -k 12000/tcp
    
  • 查看进程树

    pstree -apls PID
    
  • 查看进程打开的文件

    lsof -p 18661
    

其他

  • 选择默认编辑器

    select-editor
    
  • 查看glibc版本

    ldd --version
    
阅读此文

2015-02-09
virtualbox-拓展磁盘空间

环境

  • 宿主 win7-64

  • 虚拟机 ubuntu-14.04

步骤

  1. 进入virtualbox目录

  2. 调整大小

    VBoxManage.exe modifyhd E:\Soft\VirtualBox\VMs\Ubuntu-14.04\Ubuntu-14.04.vdi --resize 20480
    
  3. 重新调整分区大小

    • 使用GParted Live CD

    • 使用ubuntu Live CD

参考

  1. https://forums.virtualbox.org/viewtopic.php?f=35&t=50661
阅读此文

2015-02-07
ubuntu-编译openwrt

环境

  • ubuntu-14.04

搭建编译环境

  • 安装依赖工具

    sudo apt-get install gawk flex zlib1g-dev libncurses5-dev subversion git findutils build-essential binutils 
    
阅读此文

2015-02-06
wireshark-显示过滤器

  • 根据帧序号

    frame.number >= 6
    
  • 根据http内容类型

    http.content_type == “application/x-www-form-urlencoded”
    
阅读此文

2015-02-06
windows-路由表

路由表介绍

路由表项的种类

  • 网络路由:一个在网络中有特定网络ID的路由(路径)

  • 主机路由:一个有特定网络地址(网络ID和主机ID)的路由。主机路由允许智能化的路由选择。主机路由通常用于创建用于控制和优化特定网络通信的定制路由。

  • 默认路由:一个当别的路由在路由表中未被找到的时候使用的路由。如果一个路由器或终端系统(如装有Microsoft Windows和Linux的个人电脑),找不到到达目的地的路由时就会使用默认路由。

路由表项的构成

  • 网络ID(主键) 由IP加子网掩码构成

  • 代价 用来路径决策

  • 下一跳 下一跳地址或网关地址

实例路由说明

  • 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.110 276

    这是一条“默认路径”。表示,当该主机发送数据包时,如果在路由表内找不到其他可以用来发送此数据包的路径时,该数据包会通过这条“默认路径”来发送,也就是说“接口” 192.168.1.110 这个IP发出,然后送给网关 192.168.1.1 。

  • 127.0.0.0 255.0.0.0 在链路上 127.0.0.1 306

    这是“环回网络路径”(loopback network route)。当该主机发送的数据包给 IP 地址的形式如 127.x.y.z 这种地址时,这个数据包会从接口 127.0.0.1 这个 IP 地址送给目标,而无需经过路由器。从 “在链路上” 也提示了这一点。IP 地址 127.x.y.z 是计算机内部使用的 IP 地址,通过该地址计算机将数据包发送给自己,一般情况下我们常使用 127.0.0.1 。

  • 192.168.1.0 255.255.255.0 在链路上 192.168.1.110 276

    这是“直接连接的网络路径”(directly-attached network route)。所谓直接连接的网络就是指该主机所在的网路,这里为 192.168.1.10 ,此路径表示当该主机往此网络里的主机发送数据包时,数据包会从接口 192.168.1.110 这个 IP 发出,由“网关”处的标识“在链路上”知道,该数据包将直接发送给目标,而不需要通过路由器来转发。

  • 192.168.1.110 255.255.255.255 在链路上 192.168.1.110 276

    这条路径是“主机路径”(host route)。当该主机要把数据包发送到 192.168.1.110(发给自己)时,该数据包会从 192.168.1.110 上发出,然后发给自己,也不需要通过路由器来转发.

  • 192.168.1.255 255.255.255.255 在链路上 192.168.1.110 276

    该路径是“子网广播路径”(subnet broadcast route)。它表示的是,当该主机要发送数据包到 192.168.1.255 这个广播地址时(也就是要广播给 192.168.1.0 这个子网内的所有计算机),该数据包会通过 192.168.1.110 这个地址发出。同样,通过在“链路上”的提示知道,该数据包也不需要通过路由器。

  • 224.0.0.0 240.0.0.0 在链路上 192.168.1.110 276

    该条路径是“多播路径”(multicast route)。表示该主机发送多播数据包时,该数据包会通过 192.168.1.110 这个 IP 发出,同样从“在链路上”知道数据包直接发送给目标,而不需要经过路由器。

  • 255.255.255.255 255.255.255.255 在链路上 192.168.1.110 276

    该路径是“有限广播路径”( limited broadcast route )。它表示当该主机要发送广播数据包到 255.255.255.255 (有限广播地址)时,该数据包会通过 192.168.1.110 发出,同样道理该数据包也不需要通过路由器。
    当主机不知道本机所处的网络时(如主机启动时),此时只能采用有限广播方式,比如无盘工作站启动时,希望从 DHCP 服务器那里获得一个 IP 时,就会用该方式。

路由表操作

命令形式

1
route [-f] [-p] [command [destination] [mask netmask] [gateway] [metric metric] [if interface]

参数说明

  • -f

    • 清除所有不是主路由(子网掩码为255.255.255.255的路由)、环回网络路由(目标为127.0.0.0,子网掩码为255.255.255.0的路由)
      或多播路由(目标为224.0.0.0,子网掩码为240.0.0.0的路由)的条目的路由表。

    • 如果它与命令之一(例如Add、Change或Delete)结合使用,表会在运行命令之前清除。

  • -p

    • 与Add命令共同使用时,指定路由被添加到注册表并在启动TCP/IP协议的时候初始化IP路由表

    • 默认情况下,启动TCP/IP协议时不会保存添加的路由

    • 与Print命令一起使用时,则显示永久路由列表

    • 所有其他的命令都忽略此参数

    • 永久路由存储在注册表中的位置是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\PersistentRoutes

  • command

    • print

    • add

    • delete

    • change

  • destination

    指定路由的网络目标地址。

    • 可以是网络号(主机位为0的IP)

    • 对于具体主机是其IP地址

    • 对于默认路由是0.0.0.0

  • mask netmask

    指定与网络目标地址相关联的网掩码(又称子网掩码)。

    子网掩码对于IP网络地址可以是一适当的子网掩码

    -   对于主机路由是255.255.255.255
    
    -   对于默认路由是0.0.0.0
    
    -   如果忽略,则使用子网掩码255.255.255.255
    

    注意:

    • 定义路由时由于目标地址和子网掩码之间的关系,目标地址不能比它对应的子网掩码更为详细。换句话说,如果子网掩码的一位是0,则目标地址中的对应位就不能设置为1。
  • gateway

    网关,又叫做下一跳路由器

    • 网关与主机位于同一个局域网内,可以直达的!

    • 当目标网络与主机不在同一局域网,则需要网关转发

    • 目标网络与主机所属同一个局域网,则显示为在链路上,说明无需路由器转发,可直达

  • interface

    当多网卡时,指示哪个接口(可以是环回接口,LAN,VPN拨号接口等)可以到达gateway

    如:

    网络目标        网络掩码          网关       接口   跃点数
      0.0.0.0          0.0.0.0    100.100.103.1    100.100.103.3    200
    

    网关100.100.103.1通过100.100.103.3可以到达

    1
    2
    3
    4
    5
    6
    7
    8
    9
    ===========================================================================
    接口列表
    11...74 d4 35 46 3c 8e ......Realtek PCIe GBE Family Controller
    15...00 ff e7 a5 e8 50 ......TAP-Windows Adapter V9
    16...08 00 27 00 94 09 ......VirtualBox Host-Only Ethernet Adapter
    22...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
    23...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
    1...........................Software Loopback Interface 1
    ===========================================================================
  • metric

    跃点数,用来描述路由质量,当存在多条路由时,择优依据

command

  • route print

    E:\Test>route print
    ===========================================================================
    接口列表
    接口号  MAC                   描述
     34...........................NYDUS_VPN
     15...00 ff e7 a5 e8 50 ......TAP-Windows Adapter V9
     12...00 0f 13 76 05 b2 ......Realtek RTL8188CU Wireless LAN 802.11n USB 2.0 Net
    work Adapter
     16...08 00 27 00 94 09 ......VirtualBox Host-Only Ethernet Adapter
     23...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
     24...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
      1...........................Software Loopback Interface 1
    ===========================================================================
    
  • 清空路由表项

    route -f
    
  • 添加路由表项

    route -p add 192.192.0.0 mask 255.255.0.0 100.100.102.1 if 11
    
  • 删除路由表项

    route delete 192.192.0.0
    
  • 查找路由表项

    route print|findstr 192.192
    

疑问

  • 为什么存在100.100.103.3 255.255.255.255 在链路上 100.100.103.3 356?

    为什么不是通过127.0.0.1而是100.100.103.3

参考

  1. http://zh.wikipedia.org/wiki/%E8%B7%AF%E7%94%B1%E8%A1%A8
  2. http://en.wikipedia.org/wiki/Routing_table
  3. https://msdn.microsoft.com/zh-cn/library/cc787509(v=ws.10).aspx
  4. http://www.groad.net/bbs/thread-8080-1-1.html
阅读此文

2015-02-06
路由器DHCP差异

Netcore-NW710

  • DHCP不能设置DNS服务器,默认DNS为自身

TP-LINK-WR941N

  • DHCP可以设置DNS服务器,在应答discovery时,回应相应设置的IP
阅读此文

2015-02-06
libnet_init

原型

1
libnet_t* libnet_init(int injection_type, char*  device, char*  err_buf)
阅读此文

2015-02-06
优秀app列表

阅读此文

2015-02-05
ioctl

阅读此文

2015-02-05
getaddrinfo

原型

1
2
3
int getaddrinfo(const char *node, const char *service,
const struct addrinfo *hints,
struct addrinfo **res)
;

功能

  • 转换主机名到IP地址(IPv4,IPv6)
  • 转换服务到端口
  • 不要用来查询本机IP,其只返回127.0.0.1

特色

  • 使用hints来控制输出参数

参考

  1. http://pubs.opengroup.org/onlinepubs/9699919799/functions/freeaddrinfo.html
  2. http://man7.org/linux/man-pages/man3/getaddrinfo.3.html
  3. http://beej-zhtw.netdpi.net/05-system-call-or-bust/5-1-getaddrinfo-start
阅读此文