Linux命令参考

命令分类:

归档备份和压缩

bz*

bzip2&bunzip2

简介

采用Burrows-Wheeler块排序文件压缩算法的压缩命令

选项
  • -z 压缩
  • -d 解压
  • -t 测试
  • -k 保持源文件
示例

压缩文件:

bzip2 filename

bz{cat,diff,grep,less…}

简介

调用标准的其他命令来处理bzip的文本文件内容

cpio

简介

一个创建归档,从解压归档,拷贝文件的工具,支持很多格式,主要用于备份。

选项

  • -o 将文件加入归档文件
  • -i 将文件从归档中取出
  • -d 解压时创建目录结构
  • -v 输出过程信息

示例

打包文件到归档:

find . | cpio -ov > tree.cpio

从归档解压文件:

cpio -idv < tree.cpio

在目录间拷贝:

find . -print0 | cpio --null -pvd new-dir

gz*

gzip&gunzip

简介

采用Lempel-Ziv coding压缩算法的压缩命令

选项
  • -l 查看压缩文件内容
  • -d 解压
  • -t 测试
  • -k 保持源文件
示例

压缩文件:

gzip filename

gz{cat,diff,grep,less…}

简介

调用标准的其他命令来处理gzip的文本文件内容

tar

简介

归档工具,和cpio类似

选项

  • -c 创建归档
  • -f 指定归档文件
  • -j 调用bzip2压缩或者解压归档
  • -l 查看归档内容
  • -x 解压归档
  • -z 调用gzip压缩或者解压归档

示例

打包压缩文件:

tar -czf foobar.tar.gz foo bar

解压文件:

tar -xzf foobar.tar

zip*

zip&unzip

简介

兼容MSDOS的压缩命令

选项
  • -d 从zip文件中删除
  • -r 递归式的,包含目录内容
  • -T 测试
  • -l 查看zip文件内容
示例

压缩文件:

zip -r filename file1 dir2

解压文件:

unzip file.zip

zip{info,note,grep,cloak}

简介

调用标准的其他命令来处理zip的文本文件内容

日期与时间

cal

简介

命令行下的日历工具

选项

  • -A 显示指定月份之后的月份数
  • -B 显示指定月份之前的月份数
  • -3 显示前后各一个月份
  • -m 显示指定的月份
  • -y 显示制定的年份

示例

显示2012年06月份的日历:

cal 06 2012

显示当前月份前后2个月:

cal -A 2 -B 2

date

简介

打印或者设置系统时间

选项

  • -d 通过字符串来描述时间
  • -f 从文件中读取字符串来描述时间
  • -r 打印文件的最后修改时间
  • -R 以rfc2822规范来显示时间
  • –rfc-3339 以rfc3339来显示,可用date,seconds和ns
  • -s 设置时间
  • -u 打印utc时间
  • +format 格式化时间,常用的有%D,%F,%n,%s

示例

显示时间戳:

date +%s

显示标准日期格式:

date +%F

hwclock

简介

查看和设置硬件时间,系统和硬件之间操作时间

选项

  • -r 查看硬件时间
  • –set 通过–date来设置硬件时间
  • -s 将系统时间改为硬件时间
  • -w 将硬件时间设置为系统时间

示例

查看当前硬件时间:

hwclock -r

将系统时间保存为硬件时间:

hwclock -s

磁盘和文件系统

badblocks

简介

检查分区坏块情况, 文档中强烈建议不直接使用badblocks ,而使用 e2fsck -c参数

选项

  • -b 指定块大小
  • -o 将坏块信息写入文件
  • -s 显示进度
  • -w 写入数据来测试,严禁在有文件系统的设备上执行,会丢数据

示例

检查坏块:

badblocks /dev/sda1

cfdisk

简介

磁盘分区工具,相当与curses版本的 fdisk

选项

  • -g 从分区表猜测硬盘参数
  • -z 不读取硬盘分区表
  • -P {r|s|t}按照指定格式打印分区表
  • 交互式执行,h看帮助吧

示例

查看分区表:

cfdisk -P s /dev/sda

debugfs

简介

ext2/ext3/ext4 文件系统调试器

选项

  • -w 以读写模式打开文件系统
  • -c 不初始化inode和group位图,用于损坏的文件系统
  • -f 从文件读取命令
  • -R 直接执行命令
  • -D 不经过buffer,直接读取
  • 交互式命令看help

示例

调试分区

debugfs /dev/sda1

df

简介

查看文件系统的使用率

选项

  • -h 以1024进制可视化打印
  • -H 以1000进制可视化打印
  • –sync 显示前先打印

示例

显示磁盘使用率:

df /tmp/test.txt

dosfsck

简介

也叫fsck.dos,检查并修复dos文件系统

选项

  • -a 自动修复文件系统错误,以最小破坏性修复
  • -l 列举正在处理的文件
  • -n 干跑不修复
  • -r 交互式修复

示例

检查文件系统:

dosfsck /dev/sda1

dumpe2fs

简介

查看设备的超级块和块组信息

选项

  • -b 打印被标记为坏的块
  • -h 仅打印超级块的信息

示例

查看文件系统信息:

dumpe2fs -h /dev/sda1

e2fsck

简介

也叫fsck.ext{2,3,4},磁盘检测工具, 不应该在磁盘挂在的时候执行此命令

选项

  • -c 调用 badblocks 来检查磁盘坏块
  • -F 执行前先刷新缓存
  • -n 以只读打开,一律回答no
  • -p 自动修复错误
  • -y 一律回答yes

示例

检查并修复磁盘

e2fsck -p /dev/sda1

e2image

简介

将文件系统的meta信息保存到文件中

选项

  • -I 将镜像文件写入文件系统,严重慎用啊
  • -r 以raw格式写入文件
  • -Q 以QCOW2格式写入文件
  • -s 静默输出

示例

镜像文件系统:

e2image /dev/sda1 /tmp/sda1.img

e2label

简介

查看和修改分区的卷标

选项

  • None

示例

修改卷标:

e2label /dev/sda1 /

fdisk

简介

磁盘分区工具

选项

  • -l
  • -a

示例

实例

free

简介

查看内存使用情况

选项

  • -bkmg 以b,k,m,g为单位显示
  • -c -s 以s制定时间间隔,以c制定显示次数来打印
  • -o 以旧格式显示,不写buffer和cache字段
  • -t 显示总使用情况

示例

以m为单位,2s为间隔,显示5次:

free -c5 -s2 -m

hdparm

简介

获取/设置磁盘参数

选项

  • -* 大部分选项不加参数为查看,加参数为设置,0关闭/1打开,下同
  • -A read-lookahead特性状态
  • -c 开启(E)IDE 32-bit I/O支持情况
  • -d 开启DMA情况
  • -I 查看磁盘参数信息
  • -t 不经过缓存测试硬盘读写性能

示例

测试硬盘性能:

hdparm -t /de/sda1

iso9660s

devdump,iso{dump,info,vfy}

简介

查看镜像文件内容

选项
  • -f 相当与在镜像里执行find . -print
  • -l 相当与在镜像里执行ls -lR
  • -x 从路径下取出文件内容到标准输出
示例

查看iso文件内容:

devdump -i /path/to/isofile

isosize

简介

查看镜像大小

选项
  • -x 显示block数和大小
  • -d 制定块大小
示例

查看iso文件块数和大小:

isosize -x /path/to/isofile

losetup

简介

设置并控制loop设备

选项

  • -a 查看所有的loop设备状态
  • -e 加密设备
  • -f 查找第一个未使用的loop设备
  • -j 查看关联到制定文件的设备

示例

将文件和loop设备关联:

losetup /dev/loop0 /file

mkdosfs

简介

创建MS-DOS文件系统

选项

  • -c 检查坏块
  • -f 制定file allocation table的数目
  • -F 制定file allocation table的类型

示例

格式化成MS-DOS文件系统:

mkdosfs /dev/hd1

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来创建文件系统

示例

格式磁盘:

mke2fs -j /dev/sda1

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 是否允许普通用户挂载

示例

挂载磁盘:

mount -t ext3 /dev/sda1 /mnt/

resize2fs

简介

重新调整ext2文件系统的大小,注意调整文件系统前要先调整分区大小

选项

  • -d 打开debug-flags,2块移动,4inode移动,8inode表移动
  • -f 忽略安全检查参数
  • -F 刷新缓存
  • -M 缩小至最小
  • -p 打印进度
  • -P 打印文件系统的最小值

示例

调整文件系统大小:

resize2fs -p /dev/sdb2 7341705

sfdisk

简介

查看分区大小,查看分区列表,检查分区和分区

选项

  • -s 查看分区大小
  • -l 查看分区列表

示例

查看分区大小:

sfdisk -s

shred

简介

毁灭文件,很难你恢复

选项

  • -n 写的次数
  • –random-source 从文件读取随机的字节
  • -s 指定大小
  • -u 处理后删除
  • -z 写一堆零

示例

销毁文件:

shred -u file

swap*

简介

开启/关闭系统的swap空间

选项

  • -a 挂载fstab下的所有swap分区
  • -e 忽略不存在的分区
  • -f 修复分区错误
  • -p 设置权重
  • -s 查看统计信息
  • -L 通过Label操作
  • -U 通过UUID操作

示例

开启swap分区:

swapon /dev/sda3

tune2fs

简介

调整ext系列文件系统的参数

选项

  • -c 最大挂载次数,超过就要用e2fsck检查
  • -C 设置挂载次数
  • -e 出错后的操作,继续,重新以只读模式挂载还是崩溃
  • -E 文件系统扩展选项
  • -f 强制执行
  • -g 可以使用保留块的组
  • -i 两次检查的最大时间间隔
  • -j/J 添加ext3日志以及相关选项
  • -l 查看超级块的内容
  • -L 设置卷标
  • -m 保留块的百分比
  • -M 上次挂载的目录
  • -o 挂载参数
  • -O 文件系统特性管理
  • -r 保留块数目
  • -q quota的相关设置

示例

查看分区信息:

tune2fs -l /dev/sda1

umount

简介

卸载一个文件系统

选项

  • -n 卸载但是不写mtab文件
  • -r 卸载失败就以只读挂载
  • -d 如果卸载的设备是loop设备就将loop设备也卸载
  • -i 不掉用/sbin/umount.*的帮助程序
  • -a 所有在mtab内有描述的都卸载
  • -t 制定文件系统类型
  • -O 文件系统选项
  • -f 强制卸载,NFS不可达时
  • -l 懒惰卸载
  • –fake 除了系统调用别的都执行

示例

卸载磁盘:

umount /dev/sda1

文件和目录

basename

简介

从绝对路径中取出文件名

选项

  • –version 查看版本号

示例

取文件名:

basename /path/to/file.txt

lsattr/chattr

简介

查看修改Linux文件系统文件属性

选项

  • -R 递归式修改

  • -f 不显示报错信息

  • +-=[acdeijstuADST] 增加去掉和赋值属性

    • a 追加模式
    • c 自动压缩
    • D 异步写入
    • d 执行dump时不归档
    • E 测试问题,不能修改
    • e block映射
    • I 目录被索引,不能修改
    • h 以文件系统的block而不是扇区来存,不能修改
    • i 文件不能修改,删除和建立链接
    • j 写日志
    • s 清空

示例

文件仅能追加:

chattr +a /path/to/file

查看文件权限:

lsattr /path/to/file

chattr

简介

改变文件或者目录的组权限

选项

  • -h 仅对链接本身生效
  • -R 递归式处理
  • -H 跟踪
  • -L 跟踪为目录
  • -P 不跟踪

示例

改变目录组权限:

chgrp -RP xdays /home/xdays

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 限制删除和粘滞特性

示例

改变文件属性:

chmod u+w /path/to/file

chown

简介

改变文件所有者和所属组

选项

  • -R 递归式处理
  • chgrp 选项

示例

修改文件所有者:

chown xdays:xdays /path/to/file

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 创建软链接

示例

拷贝文件:

cp -ap src dest

du

简介

检测文件大小

选项

  • -a 检测所有文件
  • -b 以byte为单位
  • -c 显示total栏,目录总大小
  • -D/H 不参考链接
  • -h 可读性显示
  • -k 以kb为单位
  • -l 硬链接算多次
  • -m 以mb为单位
  • -s 只显示个总数
  • -x 跳过不在一个文件系统的目录
  • -d 最大检测深度
  • –time=atime,ctime,mtime,status 显示最后修改时间

示例

检测两层子目录文件或者目录大小:

du -h -d2 /path/

file

简介

通过文件系统检测,magic检测和语言检测来判断一个文件类型

选项

  • -F 结果与文件名的分割符
  • -h 不跟踪链接
  • -i, –mime-type, –mime-encoding 以mime格式输出,类型,编码
  • -L 跟踪链接
  • -p 保留文件时间,就像没读过

示例

查看文件类型:

file /path/to/file

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格式显示文件

示例

查找当前目录:

find . -mtime +5min -type f -size 1M -exec rm -f {} \;

ln

简介

创建链接

选项

  • –backup 备份目的文件
  • -b 备份
  • –force 删除目的文件
  • -i 交互式
  • -L 硬链接
  • -n 将目标链接文件当作正常文件
  • -P 将硬链接变成软链接
  • -s 软链接
  • -t 目标链接放置的路径

示例

创建软链接:

ln -s src dest

locate

简介

从数据库(updatedb生成)中检索对应的文件

选项

  • -b 只打印文件名
  • -c 仅打印次数
  • -d 指定查询数据库
  • -e 仅打印文件系统中存在的文件
  • -L 检查文件是跟踪软链接
  • -i 忽略大小写
  • -l 限制打印个数
  • -P 不跟踪链接
  • -0 不换行打印
  • -S 统计信息
  • -r 用过正则匹配
  • -w 打印绝对路径

示例

通过正则查找文件:

locate -r "locate.rst$"

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 以行显示文件

示例

以mtime排序显示文件:

ls -l --time=ctime $HOME

mkdir

简介

新建目录

选项

  • -m 赋权限
  • -p 如果需要新建父目录

示例

新建目录并赋权限:

mkdir -m 755 /path/to/dir

mknod

简介

创建特殊文件

选项

  • -m 设置权限

  • 类型

    • b 块文件
    • c/u 字符文件
    • p 管道文件
  • 主次设备号

示例

mknod /dev/sde b 1 3

mktemp

简介

创建临时文件或者目录

选项

  • -d 创建目录
  • -u 测试模式
  • –suffix 后缀
  • -p 前缀加上目录

示例

mktemp -d -p /tmp/

mv

简介

移动或者重命名文件

选项

  • -b/–backup= 备份
  • -n 不覆盖存在的文件
  • –strip-trailing-slashes 去掉末尾的斜线
  • -s 指定备份后缀
  • -t 目标设备
  • -u 只有比目标新时才移动

示例

mv -u /src /dest

pwd

简介

查看当前工作目录

选项

  • -L 从环境变量获取
  • -P 忽略所有链接

示例

pwd

rename

简介

根据perlexp规则重命名文件

选项

  • -n 仅列出修改的文件
  • -f 强制修改

示例

rename 's/\.bak$//' *.bak

rmdir

简介

删除目录

选项

  • –ignore-fail-on-non-empty 忽略非空错误
  • -p 捎带父目录也删除,危险哟

示例

rmdir -p a/b/c

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

tree

简介

以树形列举目录

选项

  • -a 列出所有文件
  • -d 列目录
  • -l 跟随链接
  • -f 打印完整文件名
  • -x 一个文件系统内
  • -L 层级
  • -R
  • -P 匹配模式
  • -I 不匹配模式
  • –prune 去掉空目录
  • –noreport 不打印总结信息
  • –charset 字符集
  • –filelimit 限制个数
  • –timefmt 时间
  • -o 输出到文件

示例

tree -d -L2 /tmp/

whereis

简介

查找一个命令的二进制文件,文档和源码

选项

  • -b 查找二进制
  • -m 查找文档
  • -s 查找源码

示例

whereis -b whereis

内核

depmod

简介

生成模块的依赖关系文件

选项

  • -a 生成所有模块的依赖关系
  • -A 快速模式
  • -n 测试,不生成文件
  • -w 输出警告信息

示例

depmod

dmesg

选项

  • -C 清理
  • -c 读取后清理
  • -D 不将信息输出到控制台
  • -k 打印内核信息
  • -l 日志等级
  • -r 打印原生信息
  • -t 不打印时间
  • -u 打印用户信息

示例

dmesg

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

shutdown

简介

关机

选项

  • -r 重启
  • -h 关机
  • -H 关机后彻底关闭电源
  • -P 关机后关闭电源
  • -c 取消关机
  • -k 仅发送关机信息

示例

shutdown -h now

slabtop

简介

查看内核slabtop信息

选项

  • -d 时间间隔
  • -s 排序规则
  • -o 显示一次

示例

slabtop

sysctl

简介

实时配置内核参数

选项

  • variable 读取key
  • variable=value 设置key
  • -n 只打印值
  • -e 忽略错误信息
  • -N 仅打印名字
  • -q 静默模式
  • -w 写入配置文件
  • -p/-f 从文件中读取
  • -a/-x/-A 打印所有的设置值
  • -b 输出时不换行
  • –system 读取系统配置
  • –pattern 模式匹配

示例

sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'

uname

简介

查看系统信息

选项

  • -a 所有信息
  • -s 内核名称
  • -n 主机名
  • -r 内核分支
  • -v 内核版本
  • -m 硬件信息
  • -p CPU信息
  • -i 硬件平台
  • -o 操作系统

示例

uname -n

网络

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 跳过当前链
  • 扩展目标

示例

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

ncftp

简介

ftp客户端

选项

  • -u 用户名
  • -p 密码
  • -P 端口

示例

ncftp ftp://hostname

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

netstat

简介

查看网络状态

选项

  • -r 路由表
  • -i 查看指定接口的网络
  • -e 打印详细信息
  • -p 打印进程信息
  • -l 打印监听信息
  • -a 打印所有信息
  • -n 不解析地址和端口

示例

查看网络信息:

netstat -lnpt

nslookup

简介

域名解析工具

选项

  • 所有交互式命令均可通过选项传递

示例

域名查询:

nslookup www.xdays.info 8.8.8.8

ping

简介

网络连通性协议

选项

  • -a 带声音ping
  • -c 记数
  • -f 泛洪ping
  • -i 时间间隔
  • -I 使用的接口
  • -n 不解析地址
  • -D 打印时间戳
  • -q 静默输出

示例

带声音ping:

ping -a 8.8.8.8

route

简介

查看和修改路由表

选项

  • -n 不解析地址
  • add 添加
  • del 删除
  • target 目标
  • -net 网络
  • -host 主机
  • netmask 子网掩嘛
  • gw 网关地址
  • reject 黑洞路由
  • dev 出口接口

示例

添加路由表:

route add -host 192.168.1.1 gw 192.168.2.1

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 递归模式

示例

远程拷贝:

scp -r -P 2222 /local/ remote:/remote/

sftp

简介

基于ssh的ftp客户端

选项

  • 参考scp相关选项
  • 参考ftp相关命令

示例

基本用法:

sftp remote

ssh-agent

简介

ssh认证代理,仅适用于自动填写RSA的passphrase

选项

  • -a 绑定地址
  • -d 调试模式
  • -k 杀掉当前的agent
  • -t 超时时间

示例

启动ssh:

ssh-agent ssh

ssh-keygent

简介

生成管理认证key

选项

  • -t 类型
  • -f 路径

示例

生成密钥:

ssh-keygent -d rsa

ssh-keyscan

简介

收集ssh公钥

选项

  • -t 类型
  • -f 从文件读取

示例

收集公钥:

ssh-keyscan -t rsa localhost

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
    • 与或非运算

示例

基本抓包:

tcpdump -i eth0

tcpslice

简介

切割或者合并tcpdump文件

选项

  • -d 提取指定时间范围的
  • -R 提取文件开始和结尾的时间戳
  • -r 和R类似,可读性好些
  • -w 写文件

示例

提取时间范围的抓包:

tcpslice -d +200 +300

telnet

简介

telnet协议的用户接口

选项

  • 比较过时的协议
  • -d 调试信息

示例

登陆交换机:

telnet switch_host

tracepath

简介

跟踪路由,发现MTU

选项

  • -n 不解析地址
  • -l 设置初始数据包长度

示例

基本实例:

tracepath -n 8.8.8.8

traceroute

简介

跟踪路由

选项

  • -I 用ICMP的ECHO包探测
  • -T 用TCP的SYN包探测
  • -F 不分片
  • -f 制定第一个TTL
  • -N 同时发送数据包数
  • -n 不解析地址
  • -w 等待时间
  • -U 用UDP包来探测

示例

基本用法:

traceroute -n -w 2 8.8.8.8

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

whois

简介

whois目录服务客户端,查询域名或者IP信息

选项

  • -h whois服务器
  • -H 不打印法律信息
  • -p 端口号

示例

查看域名信息:

whois www.google.com

包管理

apt-cache

简介

包查询工具

选项

  • gencache 更新缓存
  • showpkg 查看包信息
  • stats 统计信息
  • showsrc 源码包
  • dump 查看所有包
  • dumpavail 查看所有可用包
  • show 类似dpkg –print-avial
  • search 正则查询
  • depends 包依赖
  • rdepends 依赖该包的包
  • pkgnames 打印包列表
  • -a 所有版本
  • -g 重新生成缓存

示例

搜索python相关的包:

apt-cache search python

apt-get

简介

debian高级包管理工具

选项

  • update 同步包索引
  • upgrade 安装更新包
  • dist-upgrade 版本升级
  • dselect-upgrade 配合dselect的升级
  • install 安装
  • remove 卸载,但是配置保留
  • purge 卸载,删除所有
  • source 获取源码
  • check 检查依赖性
  • download 下载
  • clean 清除下载的文件
  • autoclean
  • autoremove
  • changelog 下载changelog
  • -y 直接回答yes
  • -c 指定配置文件

示例

安装软件:

apt-get install vim

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 递归式

示例

查看一个文件属于哪个包:

dpkg -S /path/filename

gpg

简介

opengpg加密和签名工具

选项

  • -s 生成签名
  • –clearnsign 清除签名
  • –detach-sign/-b 制作一个未签署的签名
  • -e 加密
  • –verify 签署
  • –gen-key 生成一个key
  • 待续

示例

查看当前用户的key:

gpg --list-keys xdays

gpgv

简介

验证gpg文件

选项

  • 待续

示例

验证gpg文件:

gpgv pgpfile

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 包文件

示例

查询包包含的文件:

rpm -ql vsftp

查询文件所属包:

rpm -qf /etc/vsftpd/vsftpd.conf

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签名

示例

安装包:

yum install vim

查询文件所属包:

yum provide /usr/bin/vim