mount挂载命令
-V:显示程序版本;
-l:显示已加载的文件系统列表;
-h:显示帮助信息并退出;
-v:冗长模式,输出指令执行的详细信息;
-n:加载没有写入文件“/etc/mtab”中的文件系统;
-r:将文件系统加载为只读模式;
-a:加载文件“/etc/fstab”中描述的所有文件系统。
tcpdump命令
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
例:
tcpdump 普通情况直接启动tcpdump监视第一个网络接口上所有流过的数据包。
监视指定网口的数据包
tcpdump -i eth1 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。
监视指定主机的数据包
tcpdump host sundown 打印所有进入或离开sundown的数据包.
tcpdump host 210.27.48.1 也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包
tcpdump host helios and \( hot or ace \) 打印helios 与 hot 或者与 ace 之间通信的数据包
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信
tcpdump ip host ace and not helios 打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包
tcpdump ip host 210.27.48.1 and ! 210.27.48.2如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
tcpdump -i eth0 src host hostname截获主机hostname发送的所有数据
tcpdump -i eth0 dst host hostname监视所有送到主机hostname的数据包
监视指定主机和端口的数据包
tcpdump tcp port 23 and host 210.27.48.1 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令
tcpdump udp port 123 对本机的udp 123 端口进行监视 123 为ntp的服务端口
监视指定网络的数据包
tcpdump net ucb-ether 打印本地主机与Berkeley网络上的主机之间的所有通信数据包(nt: ucb-ether, 此处可理解为'Berkeley网络'的网络地址,此表达式最原始的含义可表达为: 打印网络地址为ucb-ether的所有数据包)
tcpdump 'gateway snup and (port ftp or ftp-data)' 打印所有通过网关snup的ftp数据包(注意, 表达式被单引号括起来了, 这可以防止shell对其中的括号进行错误解析)
tcpdump ip and not net localnet 打印所有源地址或目标地址是本地主机的IP数据包
(如果本地网络通过网关连到了另一网络, 则另一网络并不能算作本地网络.(nt: 此句翻译曲折,需补充).localnet 实际使用时要真正替换成本地网络的名字)
Android工程源码目录分析
Android源码根目录 | 描述 |
art | 全新的ART运行环境 |
bionic | 系统C库 |
bootable | 启动引导相关代码 |
build | 存放系统编译规则及generic等基础开发包配置 |
compatibility | 兼容各个版本的内容 |
cts | Android兼容性测试套件标准 |
dalvik | 虚拟机 |
developers | 开发者目录 |
development | 应用程序开发相关 |
device | 设备相关配置 |
external | 开源模组相关文件 |
frameworks | 应用程序框架,Android系统核心部分,由Java和C++编写 |
hardware | 主要是硬件抽象层的代码 |
kernel | linux内核 |
libcore | 核心库相关文件 |
libnativehelper | 动态库,实现JNI库的基础 |
out | 编译完成后代码输出在此目录 |
packages | 应用程序包 |
pdk | Plug Development Kit 的缩写,本地开发套件 |
platform_testing | 平台测试 |
prebuilts | x86和arm架构下预编译的一些资源 |
sdk | sdk和模拟器 |
shortcut-fe | 快捷方式 |
system | 底层文件系统库、应用和组件 |
test | 测试文件 |
toolchain | 工具链文件 |
tools | 工具文件 |
vendor | 供应商文件 |
iw命令编译
要编译iw首先要编译libnl
编译libnl首先下载源码http://www.infradead.org/~tgr/libnl/files/libnl-1.1.tar.gz
我从官网上下载的源码编译不出来,但是这个可以编译
首先执行./configure
然后执行make。应该没有错误能够编译出./lib/libnl.so.1
考虑交叉编译,比如编译到arm平台,修改Makefile.opts,
CC := arm-linux-gcc
AR := arm-linux-ar
ifeq ($(CC),arm-linux-gcc)
CFLAGS += -Wall -ggdb
endif
然后再编译。就可以了。编译结束后记得进行安装ubuntu平台执行apt-get install libaio1 libaio-dev
然后在编译iw
首先下载iw源码https://mirrors.edge.kernel.org/pub/software/network/iw/这个下载最新的源码就可以
然后解压执行
添加环境变量,如果安装了libnl可以不执行
export PKG_CONFIG_PATH=/home/xy/work/lib/pkgconfig:$PKG_CONFIG_PATH (就是libnl的安装路径下的 lib/)
make CC=arm-linux-gcc
编译完成后执行make install
安装iw