Linux命令参考¶
命令分类:
归档备份和压缩¶
cpio¶
简介¶
一个创建归档,从解压归档,拷贝文件的工具,支持很多格式,主要用于备份。
选项¶
- -o 将文件加入归档文件
- -i 将文件从归档中取出
- -d 解压时创建目录结构
- -v 输出过程信息
示例¶
打包文件到归档:
find . | cpio -ov > tree.cpio
从归档解压文件:
cpio -idv < tree.cpio
在目录间拷贝:
find . -print0 | cpio --null -pvd new-dir
日期与时间¶
磁盘和文件系统¶
badblocks¶
简介¶
检查分区坏块情况, 文档中强烈建议不直接使用badblocks ,而使用 e2fsck -c参数
选项¶
- -b 指定块大小
- -o 将坏块信息写入文件
- -s 显示进度
- -w 写入数据来测试,严禁在有文件系统的设备上执行,会丢数据
debugfs¶
简介¶
ext2/ext3/ext4 文件系统调试器
选项¶
- -w 以读写模式打开文件系统
- -c 不初始化inode和group位图,用于损坏的文件系统
- -f 从文件读取命令
- -R 直接执行命令
- -D 不经过buffer,直接读取
- 交互式命令看help
free¶
简介¶
查看内存使用情况
选项¶
- -bkmg 以b,k,m,g为单位显示
- -c -s 以s制定时间间隔,以c制定显示次数来打印
- -o 以旧格式显示,不写buffer和cache字段
- -t 显示总使用情况
hdparm¶
简介¶
获取/设置磁盘参数
选项¶
- -* 大部分选项不加参数为查看,加参数为设置,0关闭/1打开,下同
- -A read-lookahead特性状态
- -c 开启(E)IDE 32-bit I/O支持情况
- -d 开启DMA情况
- -I 查看磁盘参数信息
- -t 不经过缓存测试硬盘读写性能
iso9660s¶
mke2fs¶
简介¶
创建ext2/ext3/ext4文件系统,默认配置在/etc/mke2fs.conf,相关命令有mkfs{,.ex{2,3,4}}
选项¶
- -b 块大小
- -c 检查坏块
- -E 文件系统扩展参数
- -F 强制创建文件系统
- -g 每组的block数
- -G 组数
- -i bytes/inode率
- -I 一个inode的大小
- -j 创建journal
- -l 从文件读取坏块列表
- -L 卷标
- -m 保留块的比率
- -M 设置上次挂在目录
- -n 不实际执行,仅显示过程
- -N inode数
- -O 特性列表
- -q 静默执行
- -S 仅写超级块和组信息
- -t 文件系统类型
- -T 使用类型以便命令选择参数
- -U 以制定UUID来创建文件系统
mount¶
简介¶
挂载一个文件系统
选项¶
- -v 打印过程信息
- -a 挂在fstab下的所有文件系统
- -F 每个挂在点开启一个子进程
- -f 执行但是不调用系统调用
- -l 添加卷标
- -n 挂载但是不写入mtab文件
- -s 忽略文件系统不支持的选项
- -r 以只读形式挂载文件系统,等同-o ro
- -w 以读写形式挂在,等同于-o rw
- -L 以卷标识别设备
- -U 以UUID识别设备
- -t 文件系统类型
- -o 指定以逗号分割的文件系统参数
- -B 以bind方式挂载
- -R 递归式挂载
- -M 移动式挂载
- fstab文件支持的选项
- sync/async 同步/异步更新
- atime/noatime 是否记录访问时间
- auto/noauto -a时是否自动挂载
- default 默认选项,包括rw, suid, dev, exec, auto, nouser, and async
- diratime/nodiratime 是否记录目录访问时间
- exec/noexec 是否允许执行二进制文件
- suid/nosuid 是否允许suid标志
- owner 允许设备所有者挂载
- remount 重新挂载
- ro 只读
- rw 读写
- user/users/nouser 是否允许普通用户挂载
resize2fs¶
简介¶
重新调整ext2文件系统的大小,注意调整文件系统前要先调整分区大小
选项¶
- -d 打开debug-flags,2块移动,4inode移动,8inode表移动
- -f 忽略安全检查参数
- -F 刷新缓存
- -M 缩小至最小
- -p 打印进度
- -P 打印文件系统的最小值
swap*¶
简介¶
开启/关闭系统的swap空间
选项¶
- -a 挂载fstab下的所有swap分区
- -e 忽略不存在的分区
- -f 修复分区错误
- -p 设置权重
- -s 查看统计信息
- -L 通过Label操作
- -U 通过UUID操作
文件和目录¶
lsattr/chattr¶
简介¶
查看修改Linux文件系统文件属性
选项¶
-R 递归式修改
-f 不显示报错信息
+-=[acdeijstuADST] 增加去掉和赋值属性
- a 追加模式
- c 自动压缩
- D 异步写入
- d 执行dump时不归档
- E 测试问题,不能修改
- e block映射
- I 目录被索引,不能修改
- h 以文件系统的block而不是扇区来存,不能修改
- i 文件不能修改,删除和建立链接
- j 写日志
- s 清空
chmod¶
简介¶
改变文件或者目录的权限
选项¶
-R 递归式处理
[ugoa][+-=][rwxXst] || [1234567]{3}
- X execute/search only if the file is a directory or already has execute permission for some user
- s 授予文件以文件所有者/组的权限
- t 限制删除和粘滞特性
cp¶
简介¶
拷贝文件或者目录
选项¶
- -a 等同于-dR
- –attributes-only 仅拷贝属性
- –backup/-b 备份目标文件
- –copy-contents 仅拷贝内容
- -d 保留链接属性
- -f 如果目标文件存在无法打开就删除后重新拷贝
- -i 交互式操作
- -H 跟踪链接
- -l 创建硬链接
- -n 不覆盖存在的文件
- -P 同-d
- -p 保留属性
- –preserve 保留指定属性
- –no-preserve 不保留指定属性
- –parents 使用绝对路径
- -R/r 递归式拷贝
- –remove-destination 先删除后打开文件
- -s 创建软链接
du¶
简介¶
检测文件大小
选项¶
- -a 检测所有文件
- -b 以byte为单位
- -c 显示total栏,目录总大小
- -D/H 不参考链接
- -h 可读性显示
- -k 以kb为单位
- -l 硬链接算多次
- -m 以mb为单位
- -s 只显示个总数
- -x 跳过不在一个文件系统的目录
- -d 最大检测深度
- –time=atime,ctime,mtime,status 显示最后修改时间
file¶
简介¶
通过文件系统检测,magic检测和语言检测来判断一个文件类型
选项¶
- -F 结果与文件名的分割符
- -h 不跟踪链接
- -i, –mime-type, –mime-encoding 以mime格式输出,类型,编码
- -L 跟踪链接
- -p 保留文件时间,就像没读过
find¶
简介¶
按一定条件查找文件,对找到的文件做一些操作。
选项¶
-H 不跟踪链接,除非用链接作为参数
-L 跟踪链接
-P 从不跟踪链接
-D debug模式
-O 优化等级0123
表达式,包括选项,探测规则和执行的操作组成,由操作符链接,默认是-and,其他有-or
选项
- -d/-depth 先查找目录下的东东,再查找目录
- -daystart 时间从今天的开始算起而不是24小时前
- -maxdepth 最大深度
- -mindepth 最小深度
- -regextype 正则的类型emacs(default), posix-awk, posix-basic, posix-egrep 和 posix-extended
- -mount/-xdev 不查找其他文件系统下的文件
探测规则
- +n/-n/n 大于/小于/等于n
- -amin/-cmim/-mmin 以分钟算检测atime/ctime/mtime
- -anewer/-cnewer atime/ctime晚于mtime
- -atime/-ctime/-mtime 默认是h
- -empty 空文件
- -executable 可执行
- -false 就是false
- -fstype 文件所在的文件系统
- -gid/-group 组
- -iname
- -inum inode号
- -links 连接数
- -lname/-ilname 链接的目标
- -name/-iname 文件名
- -newer file mtime比file新
- -newerXY reference 和参考文件多重比较
- -nogroup/-nouser 没有组/用户和此ID对应
- -path 路径
- -perm 权限
- -readable 通过access命令可读
- -regex/-iregex 正则匹配
- -samefile file 和file有相同的inode
- -size 文件大小
- -true 就是true
- -uid/-user 用户
- -used 文件改变n天后被访问
- -wholename/-iwholename 路径
- -writable 通过access可写
- -xtype 和-type一样,只是针对链接
操作
- -delete 删除
- -exec command {} ; 执行命令,类似xargs
- -fls file 类似ls,只是将结果写入文件
- -fprint/-fprintf file 同上,写文件绝对路径/以prindf格式写
- -ls 以ls -dils格式显示文件
ln¶
简介¶
创建链接
选项¶
- –backup 备份目的文件
- -b 备份
- –force 删除目的文件
- -i 交互式
- -L 硬链接
- -n 将目标链接文件当作正常文件
- -P 将硬链接变成软链接
- -s 软链接
- -t 目标链接放置的路径
locate¶
简介¶
从数据库(updatedb生成)中检索对应的文件
选项¶
- -b 只打印文件名
- -c 仅打印次数
- -d 指定查询数据库
- -e 仅打印文件系统中存在的文件
- -L 检查文件是跟踪软链接
- -i 忽略大小写
- -l 限制打印个数
- -P 不跟踪链接
- -0 不换行打印
- -S 统计信息
- -r 用过正则匹配
- -w 打印绝对路径
ls¶
简介¶
列举目录内容
选项¶
- -a/A 列举所有内容/除了.和..
- -b 打印转移字符
- –block-size= 指定块大小
- -c 以ctime来排序
- -C 按栏打印
- -d 打印目录本身而不是目录内容
- -F 分类
- –format= 打印格式有across(-x),commas(-m),horizontal(-x),long(-l),single-column(-1),verbose(-l),vertical(-C)
- -g 打印所属组
- -G 不打印所属组
- -h 易读方式
- –si 使用1000进制
- -i 打印inode号
- -k 以k为单位
- -l 详细信息
- -m 以逗号分割
- -o 打印所有者
- -Q 以双引号包含文件
- -R 递归式列举目录
- -s 显示大小
- -S 以大小排序
- –sort= 按指定模式排序none(-U),extension(-X),size(-S),time(-t),version(-v)
- –time= 按指定时间排序atime(-u),access(-u),use(-u),ctime(-c),status(-c)
- –time-style= 时间显示格式full-iso,locale
- -x 以horizontal方式显示文件
- -1 以行显示文件
mv¶
简介¶
移动或者重命名文件
选项¶
- -b/–backup= 备份
- -n 不覆盖存在的文件
- –strip-trailing-slashes 去掉末尾的斜线
- -s 指定备份后缀
- -t 目标设备
- -u 只有比目标新时才移动
示例¶
mv -u /src /dest
rm¶
简介¶
删除文件或者目录
选项¶
- –one-file-system 局限在一个文件系统内
- –no-preserve-root 对/不做特殊对待
- –preserve-root 不去掉/
- -d 删除空目录
示例¶
rm --one-file-system /path/
slocate¶
简介¶
安全版的locate
选项¶
- -u 从根创建数据库
- -U 从指定目录更新数据库
- -e 排除目录
- -f 排除类型
- -c 配置文件
- -l 安全等级
- -i 大小写敏感查询
- -n 限制查询的结果数目
- -r 指定正则
- -o 输出文件
- -d 指定数据库文件
示例¶
slocate filename
stat¶
简介¶
查看文件和文件系统的状态
选项¶
-L 链接跟随
-f 查看文件系统状态
-c 指定格式
–printf 和c一样,只是以printf格式输出
-t 以tese格式输出
文件格式
- %a 十进制权限
- %b 块数目
- %d 设备号
- %F 文件类型
- %h 硬链接数
- %i inode号
- %n 文件名
- %s 大小
- %w 创建时间
- %x 访问时间
- %y 修改时间
- %z 改变时间
文件系统格式
- %a 普通用户可使用的空闲块
- %b 块总数
- %c 所有的node
- %f 空闲块
示例¶
stat /path/file
tmpwatch¶
简介¶
删除旧文件
选项¶
- -u 访问时间
- -m 修改时间
- -c 创建时间
- -M 目录修改时间
- -a 所有
- -d 不删目录
- -s 通过fuser看看文件是否打开
- -U 排除用户
- -x 排除目录
- -X 排除模式
示例¶
tmpwatch -a 5 /tmp/
touch¶
简介¶
改变文件时间戳
选项¶
- -a 改变访问时间
- -c 不创建文件
- -d 指定时间来更新
- -h 不跟随链接
- -m 进改变修改时间
- -r 和指定文件的时间同步
- -t 指定时间
- –time 指定时间格式
示例¶
touch /tmp/aa
内核¶
modinfo¶
简介¶
查看内核模块信息
选项¶
- -F 只打印指定字段
- -k 指定内核版本
- -0 用0分割字符
- -a -d -l -p -n 作者,描述,证书,parm和文件名信息
示例¶
modinfo thinkpad_acpi
modprobe¶
简介¶
增删内核模块
选项¶
- -a 安装所有模块
- -C 指定配置文件
- -c 解析配置文件
- –dump-modversions 模块版本信息
- -d 指定模块的路径
- –force-vermagic 忽略magic信息
- –force-modversion 忽略版本信息
- -f 强制
- -i 安装
- -n 测试模式
- -q 静默模式
- -R 跟踪alias
- -r 删除
- –show-depends 查看模块依赖
示例¶
modprobe -r thinkpad_acpi
reboot¶
简介¶
halt和poweroff类似,关机命令
选项¶
- -f 不调用shutdown,而是通过你指定
- -p 通过poweroff而不是halt关机
- -w 仅写日志
示例¶
reboot
网络¶
dig¶
简介¶
域名解析工具
选项¶
-b 绑定地址
-f 批量执行,从文件读取
-m 开启内存调试
-p 端口
-4 ipv4
-t 查询类型
-q 查询域名
-k/-y 带签名发送请求
查询选项
- +[no]tcp 使用tcp
- +[no]vc 使用tcp
- +[no]ignore 忽略UDP分片
- +domain 指定域
- +[no]search 使用resolv.conf的search配置
- +[no]aaonly/aaflag 请求是添加aa标志
- +[no]adonly 请求是添加ad标志
- +[no]cdonly 请求是添加cd标志
- +[no]cl 输出class
- +[no]ttlid 输出ttl
- +[no]recurse 递归查询
- +[no]nssearch 获取授权服务器信息
- +[no]trace 追踪
- +[no]cmd 输出详细信息
- +[no]short 简单的输出
- +[no]identify 现实服务器信息
- +[no]comments 输出注释信息
- +[no]rrcomments 每个请求输出
- +split=w 分割
- +[no]stats 统计信息
- +[no]qr 不输出请求信息
- +[no]question 请求信息
- +[no]answer 响应信息
- +[no]authority 授权信息
- +[no]additional 额外信息
- +[no]all 设置或者清空所有的flag
- +time=t 超时时间
- +tries=t 请求次数
- +retries=t 重新请求次数
- +ndots=t 域名中出现几个点认为是绝对域名
- +bufsize=b 缓存大小
- +edns=# EDNS版本
- +[no]multiline 增强可读性
- +[no]onesoa 只打印一个授权
- +[no]fail 如果遇到SERVFAIL错误就不继续尝试
- +[no]besteffort 输出mailform的信息
- +[no]dnssec 发送DNSSEC请求
- +[no]sigchase 签名
- +trusted-ky=### 签名文件
- +[no]topdown 执行top-down检查
- +[no]nsid 请求是包含EDNS的服务器ID信息
示例¶
dig @8.8.8.8 www.xdays.info +short
ifconfig¶
简介¶
配置网络接口
选项¶
- -a 查看所有接口
- -s 输出简短列表
- interface 支持子接口
- up/down 开关接口
- [-]arp 开关arp协议
- [-]promisc 开关混杂模式
- [-]allmulti 开关广播模式,收所有的包
- metric metric值
- mtu 最大传输单元
- netmask 掩码
- add/del 添加删除ipv6地址
- tunnel 创建v6-v4的隧道
- irq 中断号
- io_addr IO地址
- media 介质类型10/100M
- [-]broadcast 开关广播地址
- [-]pointopoint 配置点对点地址
- hw 物理地址
- multicast 组播
- address IP地址
- txqueuelen 传输队列
示例¶
ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0
ip¶
简介¶
查看和修改路由表,设备信息,策略路由和隧道
选项¶
对象
- address 地址
- addrlabel 协议标配置
- l2tp 基于IP的隧道以太网
- link 设备
- maddress 组播
- monitor 监控
- mroute 组播路由
- mrule 组播路由策略
- neighbour ARP
- netns 网络名字空间
- ntable 邻居
- route 路由
- rule 路由策略
- tcp_metrics/tcpmetrics TCP的metric
- tunnel 基于IP的对道
- tuntap tap设备
- xfrm IPSec的策略
操作
- add 增加
- del 删除
- show/list 查看
- help 帮助
示例¶
ip addr show
iptables¶
简介¶
IPv4包过滤和NAT管理工具
选项¶
表
- filter 过滤
- nat 地址转换
- mangle 修改数据包
- raw 追踪
- security 和SELinux相关
选项
命令
- -A 追加
- -C 检查是否存在
- -D 删除
- -I 插入
- -R 替换
- -L 列举
- -S 输出所有规则
- -F 清空表
- -Z 清空计数器
- -N 新建自定义链
- -X 删除自定义链
- -P 设置默认规则
- -E 重命名链
匹配规则
- -4 ipv4
- -6 ipv6
- -p 协议
- -s 源IP
- -d 目的IP
- -m 指定匹配
- -j 目标动作
- -g 跳转到指定链
- -i 数据包流入接口
- -o 数据包流出接口
- -f 分片数据包
- -c 设置计数器
其他选项
- -n 数字输出
- -x 准确的转换
- –line-numbers
- –modprobe= 挂载模块
扩展匹配规则
目标
- ACCEPT 接受
- DROP 丢弃
- QUEUE 进入用户空间
- RETURN 跳过当前链
扩展目标
DNAT 目的地址转换
- –to-destination ip:port 指给指定设备和端口
LOG 写日志
MASQUERADE 用于nat表的POSTROUTING链,用于动态的SNAT
SNAT 用于nat表的POSTROUTING链
- –to-source ip:port 指定修改的地址和端口
`参考文档 http://www.web-manual.net/linux-3/the-kernel-ring-buffer-and-dmesg/`_
示例¶
iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -j MASQUERADE
lftp¶
简介¶
全能的文件传输工具,内置与Bash类似的解释器
选项¶
选项
- -d 调试模式
- -e 执行命令
- -p 端口
- -u 用户名:密码
- -f 脚本文件
- -c 执行命令后退出
命令
get 获取远程文件
- -c 断点续传
- -E 完成后删除源文件
- -e 开始前删除目标文件
- -a 使用ascii编码
- -O 指定基础目录
mget 批量获取远程文件
- 与get类似
mirror 镜像文件
- -c 断点续传
- -e 开始前删除目标文件
- -s 设置文件的meta属性
- -n 只更新较新的文件
- -r 不递归执行
- -p 不设置权限
- -R 反向镜像,推文件
- -L 追踪链接
- -N 只同步比指定时间新的文件
- -P 多线程同步
- -i 匹配
- -x 取反
- -I 匹配glob
- -X 取反glob
mput 批量上传文件
- -c 断点续传
- -d 创建相同的路径
- -E 完成后删除源文件
- -a 使用ascii编码
- -O 指定基础目录
pget 多线程抓取文件
- -n 线程数
put 上传文件
- 与mput相同
torrent BT下载
- -O 文件放置目录
示例¶
lftp -e 'pget -n 10 -c http://releases.ubuntu.com/raring/ubuntu-13.04-server-amd64.iso'
mail¶
简介¶
发送和接收邮件
选项¶
选项
- -f 指定文件读取邮件
- -s 邮件主题
- email 收件人地址
命令
- help 帮助
- t 查看邮件信息
- n 跳到指定邮件
- e 编辑邮件
- f 邮件头
- d 删除
- s 追加
- u 恢复删除
- R 回复
- r 全部回复
- m 给指定人发邮件
- q 保存退出
- x 删除退出
- h 打印活动邮件头
- ! 执行shell命令
示例¶
mail
nc¶
简介¶
创建TCP或者UDP连接和监听
选项¶
- -C 发送CRLF换行符
- -D 开启debug
- -I TCP接收buffer
- -i 接收时间间隔
- -k 完成连接后不断开连接
- -l 监听模式
- -n 不做域名解析
- -O TCP发送buffer
- -p 端口
- -r 端口随机选择
- -s 源IP
- -u 使用UDP协议
- -w 超时时间
- -z 扫描端口
示例¶
传文件:
接收:
nc -l 8888 > /path/file
发送:
nc 127.0.0.1 88888 > /path/file
远程执行命令:
服务端:
rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
客户端:
nc 127.0.0.1 1234
端口扫描:
nc -zv host.example.com 20-30
route¶
简介¶
查看和修改路由表
选项¶
- -n 不解析地址
- add 添加
- del 删除
- target 目标
- -net 网络
- -host 主机
- netmask 子网掩嘛
- gw 网关地址
- reject 黑洞路由
- dev 出口接口
rsync¶
简介¶
高效文件拷贝工具
选项¶
- -v, –verbose 增强可读性
- -q, –quiet 忽略非错误信息
- –no-motd 忽略daemon模式的MOTD信息 (see manpage caveat)
- -c, –checksum 基于checksum校验,而非mod-time和size
- -a, –archive 归档模式,和-rlptgoD (不要使用 -H,-A,-X)参数相同
- –no-OPTION 关闭一些显式的OPTION (比如 –no-D)
- -r, –recursive 递归目录
- -R, –relative 使用相对路径
- –no-implied-dirs 不发送制定目录的属性,避免在目标使用–relative删除连接重新传输文件
- -b, –backup 备份 (查看 –suffix & –backup-dir)
- –backup-dir=DIR 基于DIR来创建备份的目录结构
- –suffix=SUFFIX 制定备份的后最 (default ~ w/o –backup-dir)
- -u, –update 跳过接受端较新的文件
- –inplace 直接在文件上更新(SEE MAN PAGE)
- –append 直接追加文件
- –append-verify 和–append很像, 只是用文件的较旧的那部份做checksum
- -d, –dirs 仅传输文件而非递归
- -l, –links 将软链接当作软链接来拷贝
- -L, –copy-links 拷贝链接对应的文件或者目录而非链接本身
- –copy-unsafe-links 仅不安全的链接才被拷贝
- –safe-links 忽略那些链接到目录树外的链接
- -k, –copy-dirlinks 将链接翻译成其链接的目录
- -K, –keep-dirlinks 将目录链接在接收端转换成目录
- -H, –hard-links 保留硬链接
- -p, –perms 保留权限
- -E, –executability 保留文件的可执行性
- –chmod=CHMOD 改变文件或者目录的权限
- -A, –acls 保留ACLs (implies –perms)
- -X, –xattrs 保留扩展属性
- -o, –owner 保留所有者(super-user only)
- -g, –group 保留组
- –devices 保留设备文件 (super-user only)
- –specials 保留特殊文件
- -D 和 –devices –specials一样
- -t, –times 保留修改时间
- -O, –omit-dir-times 在–times选项里忽略目录的时间
- –super 允许接受方执行那个一些超级用户的活动
- –fake-super 通过xattrs来存储和回复权限
- -S, –sparse 高效处理稀疏文件
- -n, –dry-run 只运行,不做改变
- -W, –whole-file 拷贝整个文件(without delta-xfer algorithm)
- -x, –one-file-system 不跨越文件系统
- -B, –block-size=SIZE 强制指定checksum的块大小
- -e, –rsh=COMMAND 指定要使用的远程shell
- –rsync-path=PROGRAM 指定远程要运行的rsync路径
- –existing 如果接收端不存在文件就不创建
- –ignore-existing 如果接收端存在就不更新文件
- –remove-source-files 发送端删除已经同步的文件 (non-dirs)
- –del an alias for –delete-during
- –delete 删除接收端上在发送端不存在的文件
- –delete-before 接收端在发送前删除,而不是发送过程中
- –delete-during 接收端在发送过程中删除
- –delete-delay 在发送过程中寻找文件,在发送完成后删除
- –delete-after 接收端在发送完成后删除
- –delete-excluded 在接收端删除排除的文件
- –ignore-errors 即使有I/O错误也删除
- –force 即使目录不是空的也删除
- –max-delete=NUM 最多删除文件的数目
- –max-size=SIZE 最大传输文件的大小
- –min-size=SIZE 最小传输文件的大小
- –partial 保持部分传输的文件
- –partial-dir=DIR 制定部分传输文件的存放目录
- –delay-updates 先传输,最后再更新,保持原子性
- -m, –prune-empty-dirs 接收端删除空目录
- –numeric-ids 接收端不要将uid/gid映射为用户名和组名
- –timeout=SECONDS 设置I/O超时时间,s为单位
- –contimeout=SECONDS 设置链接服务端的时间
- -I, –ignore-times 即使mtime和size都相同也不跳过
- –size-only 只要大小相同就跳过
- –modify-window=NUM 比对时间时制定精确范围,范围内都认为时间相同
- -T, –temp-dir=DIR 指定创建临时文件的目录
- -y, –fuzzy 文件在接收端不存在的情况下,在当前目录下寻找一个基础文件,以加快传输
- –compare-dest=DIR 接收端除了和发送端对比还和这里指定的目录对比,适合备份上次备份改变的文件
- –copy-dest=DIR 和–compare-dest类似,只是接收端会用本地拷贝来复制那些未改变的文件
- –link-dest=DIR 和–compare-dest类似,只是接收端会建立那些未改变文件的硬链接
- -z, –compress 传输过程中压缩
- –compress-level=NUM 指定压缩等级
- –skip-compress=LIST 不压缩指定后缀的文件
- -C, –cvs-exclude 以CSV的方式自动忽略文件
- -f, –filter=RULE 新增一个file-filtering规则
- -F same as –filter=’dir-merge /.rsync-filter’ repeated: –filter=’- .rsync-filter’
- –exclude=PATTERN 排除规则PATTERN
- –exclude-from=FILE 从文件中读取排除规则
- –include=PATTERN 不要排除指定规则的文件
- –include-from=FILE 从文件中读取包含的规则
- –files-from=FILE 从文件中读取文件列表
- -0, –from0 all
- -from/filter files are delimited by 0s
- -s, –protect-args 参数不许要空格分割; only wildcard special-chars
- –address=ADDRESS 绑定监听的地址
- –port=PORT 制定端口号
- –sockopts=OPTIONS 制定TCP选项
- –blocking-io 在远程shell中使用blocking I/O
- –stats 给出文件统计信息
- -8, –8-bit-output 输出时不对高位字符转义
- -h, –human-readable 以易于阅读的方式打印数字
- –progress 显示传输进度
- -P same as –partial –progress
- -i, –itemize-changes 打印更新的总结信息
- –out-format=FORMAT 以特定的格式打印更新信息
- –log-file=FILE 日志文件
- –log-file-format=FMT 日志文件格式
- –password-file=FILE 密码文件
- –list-only 仅列出文件
- –bwlimit=KBPS 限制带宽; KBytes per second
- –write-batch=FILE 将批量更新写入文件
- –only-write-batch=FILE 和 –write-batch类似 but w/o updating destination
- –read-batch=FILE 从文件中读取批量更新任务
- –protocol=NUM 使用旧版本的协议
- –iconv=CONVERT_SPEC 要求文件名字符转义
- -4, –ipv4 prefer IPv4
- -6, –ipv6 prefer IPv6
- –version 打印帮助信息
- (-h) –help 打印这个帮组信息 (-h 仅在单独使用时与 –help 同意)
示例¶
镜像:
rsync -az -e ssh --delete /local/ remote:/remote/
快速删除:
mkdir /tmp/blank/ && rsync -av --delete /tmp/blank/ /dest/path/
scp¶
简介¶
基于ssh的文件远程拷贝工具
选项¶
- -3 在两个远程机器上拷贝文件
- -B 批量模式
- -F ssh配置文件
- -l 限速
- -o ssh选项
- -P 端口
- -p 保留文件信息
- -r 递归模式
ssh¶
简介¶
ssh客户端
选项¶
- -A/a 开启和关闭认证代理转发
- -b 绑定出口地址
- -C 压缩
- -D 指定本地动态应用端口转发,所有对本地端口的连接都会从远程的应用层发送出去
- -F 配置文件
- -f 后台执行
- -g 允许远程机器连接本地转发端口
- -i 身份文件,用于自动登陆
- -L 在本地端口和远程端口间建立隧道,所有访问本地端口的连接都会转发给远程端口
- -l 用户名
- -N 不执行命令
- -o 选项
- -p 端口
- -q 静默模式
- -R 在本地端口和远程端口建立隧道,所有访问远程端口的连接都会转发给本地端口
- -w 制定客户端和服务器段数据转发的隧道接口,用于建立VPN
- -X/x 开启关闭X11转发
示例¶
转发本地ssh-agent:
ssh -A root@remote
翻墙:
ssh -NC -D localhost:8086 root@remote
加密到服务器的redis连接:
ssh -NC -L 2222:localhost:6379 root@remote
服务器反向访问客户端:
ssh -NC -R 2222:localhost:22 root@remote
tcpdump¶
简介¶
监听网络数据包
选项¶
- -A 以ASCII码输出
- -B 设置抓取缓冲区
- -c 抓取制定数量的包
- -C 写文件超过指定大小就写个新文件
- -d/dd/ddd 以可读性/C程序风格/十进制保存
- -D 网络接口列表
- -e 输出2层包的头信息
- -f 不解析地址
- -F 从文件中读取过滤规则
- -G 每固定的时间就写新文件
- -i 监听接口
- -j 时间戳格式
- -J 列出支持的时间戳格式
- -K 不验证校验和
- -l 生成输出缓存
- -L 列出支持的链路类型
- -n 不解析地址
- -r 从文件读取抓包
- -s 截取数据包
- -S 输出绝对序号
- -t/tt/ttt/tttt/ttttt 时间戳相关
- -w 将抓包写入文件
- -X 输出整个数据包
- 表达式
- 第一个参数指定类型,如host,net,port
- 第二个参数指定方向关键字,如src , dst ,dst or src, dst and src
- 第三个参数指定协议关键字,如fddi,ip,arp,rarp,tcp,udp
- 与或非运算
traceroute¶
简介¶
跟踪路由
选项¶
- -I 用ICMP的ECHO包探测
- -T 用TCP的SYN包探测
- -F 不分片
- -f 制定第一个TTL
- -N 同时发送数据包数
- -n 不解析地址
- -w 等待时间
- -U 用UDP包来探测
wget¶
简介¶
非交互式下载器
选项¶
Startup:
-V, --version display the version of Wget and exit. 查看版本信息
-h, --help print this help. 打印这个帮助文档
-b, --background go to background after startup. 启动后放到后台
-e, --execute=COMMAND execute a `.wgetrc'-style command. 执行wgetrc格式的命令
Logging and input file:
-o, --output-file=FILE log messages to FILE. 日志输出到文件
-a, --append-output=FILE append messages to FILE. 日志附加到文件
-d, --debug print lots of debugging information. 启动debug模式
-q, --quiet quiet (no output). 静默执行
-v, --verbose be verbose (this is the default). 输出长信息
-nv, --no-verbose turn off verboseness, without being quiet. 关闭长信息,非静默执行
-i, --input-file=FILE download URLs found in FILE. 下载文件中包含的URL
-F, --force-html treat input file as HTML. 把输入文件当成HTML对待
-B, --base=URL prepends URL to relative links in -F -i file. 在输入文件的路径前加相对URL
Download:
-t, --tries=NUMBER set number of retries to NUMBER (0 unlimits). 尝试次数
--retry-connrefused retry even if connection is refused. 执着模式,即使被拒绝了也加班
-O, --output-document=FILE write documents to FILE. 将下载的文档写入文件
-nc, --no-clobber skip downloads that would download to
existing files. 如果下载的文件已存在就跳过下载
-c, --continue resume getting a partially-downloaded file. 断点续传功能
--progress=TYPE select progress gauge type. 选择进度记录类型
-N, --timestamping don't re-retrieve files unless newer than
local. 除非文件比现有的新,否则不下载
-S, --server-response print server response. 打印服务器响应
--spider don't download anything. 不下载任何东西,就是爬一下
-T, --timeout=SECONDS set all timeout values to SECONDS. 设置所有的超时时间
--dns-timeout=SECS set the DNS lookup timeout to SECS. 设置DNS的超时时间
--connect-timeout=SECS set the connect timeout to SECS. 设置连接的超时时间
--read-timeout=SECS set the read timeout to SECS. 设置读取的超时时间
-w, --wait=SECONDS wait SECONDS between retrievals. 两次获取之间的等待时间
--waitretry=SECONDS wait 1..SECONDS between retries of a retrieval. 在重新获取之间等待时间
--random-wait wait from 0...2*WAIT secs between retrievals. 获取之间等待时间,晕了~
--no-proxy explicitly turn off proxy. 关闭代理
-Q, --quota=NUMBER set retrieval quota to NUMBER. 设置获取配额
--bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host. 绑定本地特定的地址
--limit-rate=RATE limit download rate to RATE. 下载限速
--no-dns-cache disable caching DNS lookups. 关闭DNS解析
--restrict-file-names=OS restrict chars in file names to ones OS allows. 限制文件名中出现的字符
--ignore-case ignore case when matching files/directories. 匹配文件或目录时忽略大小写
-4, --inet4-only connect only to IPv4 addresses. 仅连接ipv4地址
-6, --inet6-only connect only to IPv6 addresses. 仅连接ipv6地址
--prefer-family=FAMILY connect first to addresses of specified family,
one of IPv6, IPv4, or none. 首先连接指定的地址类型
--user=USER set both ftp and http user to USER. 设置http或者ftp的用户名
--password=PASS set both ftp and http password to PASS. 设置http或者ftp的密码
Directories:
-nd, --no-directories don't create directories. 不创建目录
-x, --force-directories force creation of directories. 强制创建
-nH, --no-host-directories don't create host directories. 创建本机目录
--protocol-directories use protocol name in directories. 在目录名中用协议名
-P, --directory-prefix=PREFIX save files to PREFIX/... 将文件保存到特定目录下
--cut-dirs=NUMBER ignore NUMBER remote directory components. 没看懂~
HTTP options:
--http-user=USER set http user to USER. 设置http用户
--http-password=PASS set http password to PASS. 设置http密码
--no-cache disallow server-cached data. 告诉server不要缓存的内容
-E, --html-extension save HTML documents with `.html' extension. 以html后缀保存文件
--ignore-length ignore `Content-Length' header field. 忽略内容长度报头header
--header=STRING insert STRING among the headers. 插入header字段
--max-redirect maximum redirections allowed per page. 每个网页最大跳转数
--proxy-user=USER set USER as proxy username. 设置代理用户
--proxy-password=PASS set PASS as proxy password. 设置代理密码
--referer=URL include `Referer: URL' header in HTTP request. 请求中包含referer这个header
--save-headers save the HTTP headers to file. 把header保存到文件中
-U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION. 指定agent
--no-http-keep-alive disable HTTP keep-alive (persistent connections). 关闭keep-alive
--no-cookies don't use cookies. 不适用cookie
--load-cookies=FILE load cookies from FILE before session. 在会话之前从文件中载入cookie
--save-cookies=FILE save cookies to FILE after session. 将cookie保存到文件中
--keep-session-cookies load and save session (non-permanent) cookies. 保存并载入cookie
--post-data=STRING use the POST method; send STRING as the data. 用post方法时发送的字符
--post-file=FILE use the POST method; send contents of FILE. 用post方法,发送文件内容
--content-disposition honor the Content-Disposition header when
choosing local file names (EXPERIMENTAL). 没看懂~
--auth-no-challenge Send Basic HTTP authentication information
without first waiting for the server's
challenge. 不等待server端发起challenge请求直接发送基本的验证信息
HTTPS (SSL/TLS) options:
--secure-protocol=PR choose secure protocol, one of auto, SSLv2,
SSLv3, and TLSv1.选择安全协议类型
--no-check-certificate don't validate the server's certificate. 不验证服务器证书
--certificate=FILE client certificate file. 客户端证书文件
--certificate-type=TYPE client certificate type, PEM or DER. 客户端证书类型
--private-key=FILE private key file. 私钥文件
--private-key-type=TYPE private key type, PEM or DER. 私钥类型
--ca-certificate=FILE file with the bundle of CA's. 没看懂~
--ca-directory=DIR directory where hash list of CA's is stored. 没看懂~
--random-file=FILE file with random data for seeding the SSL PRNG. 没看懂~
--egd-file=FILE file naming the EGD socket with random data. 没看懂~
FTP options:
--ftp-user=USER set ftp user to USER. 设置ftp用户
--ftp-password=PASS set ftp password to PASS. 设置ftp密码
--no-remove-listing don't remove `.listing' files. 不删除.listing文件
--no-glob turn off FTP file name globbing. 关闭ftp文件名替换
--no-passive-ftp disable the "passive" transfer mode. 关闭被动模式
--retr-symlinks when recursing, get linked-to files (not dir). 没看懂~
--preserve-permissions preserve remote file permissions. 保留服务器端文件权限
Recursive download:
-r, --recursive specify recursive download. 指定递归下载
-l, --level=NUMBER maximum recursion depth (inf or 0 for infinite). 最大递归深度
--delete-after delete files locally after downloading them. 下载完成后本地删除文件
-k, --convert-links make links in downloaded HTML point to local files. 没看懂~
-K, --backup-converted before converting file X, back up as X.orig. 转换前备份文件
-m, --mirror shortcut for -N -r -l inf --no-remove-listing. 镜像站点用的吧
-p, --page-requisites get all images, etc. needed to display HTML page. 下载所有网页上呈现的所有元素
--strict-comments turn on strict (SGML) handling of HTML comments. 开启严格处理HTML注释
Recursive accept/reject:
-A, --accept=LIST comma-separated list of accepted extensions. 逗号分隔的可以接受的拓展名
-R, --reject=LIST comma-separated list of rejected extensions. 逗号分隔的拒绝接受的扩展名
-D, --domains=LIST comma-separated list of accepted domains. 逗号分隔的可以接受的域名
--exclude-domains=LIST comma-separated list of rejected domains. 逗号分隔的决绝接受的域名
--follow-ftp follow FTP links from HTML documents. 接受从HTML到ftp的跳转
--follow-tags=LIST comma-separated list of followed HTML tags. 逗号分隔的可接受的跳转HTML标签
--ignore-tags=LIST comma-separated list of ignored HTML tags. 逗号分隔的拒绝接受的HTML标签
-H, --span-hosts go to foreign hosts when recursive. 当递归的时候可以到外面的host
-L, --relative follow relative links only. 仅仅跳转相对链接
-I, --include-directories=LIST list of allowed directories. 允许的目录列表
-X, --exclude-directories=LIST list of excluded directories. 排除的目录列表
-np, --no-parent don't ascend to the parent directory. 不追溯父目录
示例¶
镜像站点:
wget -c -r -np -k -L -b --reject=gif http://mirrors.163.com/centos/6/os/x86_64/ -e robots=off
包管理¶
apt-cache¶
简介¶
包查询工具
选项¶
- gencache 更新缓存
- showpkg 查看包信息
- stats 统计信息
- showsrc 源码包
- dump 查看所有包
- dumpavail 查看所有可用包
- show 类似dpkg –print-avial
- search 正则查询
- depends 包依赖
- rdepends 依赖该包的包
- pkgnames 打印包列表
- -a 所有版本
- -g 重新生成缓存
apt-get¶
简介¶
debian高级包管理工具
选项¶
- update 同步包索引
- upgrade 安装更新包
- dist-upgrade 版本升级
- dselect-upgrade 配合dselect的升级
- install 安装
- remove 卸载,但是配置保留
- purge 卸载,删除所有
- source 获取源码
- check 检查依赖性
- download 下载
- clean 清除下载的文件
- autoclean
- autoremove
- changelog 下载changelog
- -y 直接回答yes
- -c 指定配置文件
dpkg¶
简介¶
debian底层包管理工具
选项¶
- 包状态
- not-installed 未安装
- config-files 仅安装了配置文件
- half-installed 半安装
- unpacked 解压
- half-configured 半配置
- triggers-awaited 等待另一个包触发
- triggers-pending 已经出发
- installed 已安装
- 包选择状态
- install 选中安装
- hold 不被dpkg处理
- deinstall 反安装,仅有配置文件
- purge 完全卸载
- 包标志
- reinst-required 重新安装
- 动作
- -i 安装
- –unpack 解包
- –configure 配置
- –triggers-only 仅处理trigger
- -r 卸载
- -P 完全卸载
- dpkg-deb动作
- -b 编译
- -c 包内容
- -e 控制信息
- -x 解压文件
- -X 解压并打印文件
- -f 查看控制信息
- -I 包信息
- dpkg-query动作
- -l 列出包
- -s 状态
- -L 列出包的文件
- -S 通过文件来搜索对应的包
- -P 查看包信息
- 选项
- -R 递归式
gpg¶
简介¶
opengpg加密和签名工具
选项¶
- -s 生成签名
- –clearnsign 清除签名
- –detach-sign/-b 制作一个未签署的签名
- -e 加密
- –verify 签署
- –gen-key 生成一个key
- 待续
rpm¶
简介¶
redhat包管理工具
选项¶
- 查询
- -q 根据包名查询
- -V 验证
- –changelog 查changelog
- -c 配置文件
- -d 文档文件
- -i 包信息
- -l 文件列表
- -f 查询文件所属包
- 安装
- -i 安装
- –force 强制安装
- –nodigest 不校验报头digest
- –nodeps 不解决依赖
- -U 升级
- -F 刷新
- -e 卸载
- 杂项
- –initdb/rebuilddb 初始化数据库
- –addsign 签名
- –showrc rpm环境变量
- 选择
- -a 所有
- -g 组
- -p 包文件
yum¶
简介¶
类似apt-get的包管理工具
选项¶
- install 安装
- update 更新
- upgrade 升级
- remove 删除
- list 查看所有信息
- info 描述信息
- provides 搜索哪些包提供对应功能和文件
- clean 清理缓存
- makecache 更新缓存
- groupinstall 组安装
- groupupdate 组更新
- grouplist 组列表
- groupremove 组删除
- groupinfo 组信息
- search 搜索
- shell 进入yum shell
- localinstall 本地安装
- localupdate 本地更新
- reinstall 重新安装
- downgrade 降版本
- deplist 依赖列表
- repolist 源列表
- version 版本
- check 检查数据库
- -y 默认yes
- –enablerepo= 开启源
- –nogpgcheck 不检查gpg签名