标签搜索

目 录CONTENT

文章目录

Linux命令

小小城
2021-08-19 / 0 评论 / 0 点赞 / 7 阅读 / 13,826 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Linux命令

[toc]

strings命令

  1. strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用
  2. 语法格式 :strings [参数]
  3. 常用参数:
    -a 扫描整个文件而不是只扫描目标文件初始化和装载段
    -f 在显示字符串前先显示文件名
    -t 输出字符的位置,基于八进制,十进制或者十六进制

top 命令

top命令可以看到总体的系统运行状态和cpu的使用率

image.png

%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu

vmstat命令

  1. vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值
  2. 参数详解
    • 进程procs
      • r:在运行队列中等待的进程数 。表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈 了,如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
      • b:在等待io的进程数。表示阻塞的进程
    • 内存memoy
      • swpd:现时可用的交换内存(单位KB)。虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
      • free:空闲的内存(单位KB)。
      • buff: 缓冲去中的内存数(单位:KB)。
      • cache:被用来做为高速缓存的内存数(单位:KB)。
    • swap交换页面
      • si: 从磁盘交换到内存的交换页数量,单位:KB/秒。每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了
      • so: 从内存交换到磁盘的交换页数量,单位:KB/秒。每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上
    • io块设备
      • bi: 发送到块设备的块数,单位:块/秒。块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备
      • bo: 从块设备接收到的块数,单位:块/秒。块设备每秒发送的块数量,例如我们读取文件,bo就要大于0
    • system系统
      • in: 每秒的中断数,包括时钟中断。每秒CPU的中断次数,包括时间中断
      • cs: 每秒的环境(上下文)转换次数。例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的 数目
    • cpu中央处理器
      • cs:用户进程使用的时间 。以百分比表示。用户CPU时间
      • sy:系统进程使用的时间。 以百分比表示。系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
      • id:中央处理器的空闲时间 。以百分比表示。
      • wa: 等待IO CPU时间
  3. 使用方法
    • vmstat 是通过两个数字参数来完成的。vmstat 2 12
    • 第一个参数: 采样的时间间隔数,单位是秒
    • 第二个参数: 采样的次数

sar命令

sar命令语法和vmstat一样

iostat 命令

这个命令主要用来查看io使用情况

dstat命令

每秒cpu使用率情况获取

free命令

free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer
命令格式:free [参数]
命令功能:free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
命令参数
    -b  以Byte为单位显示内存使用情况。 
    -k  以KB为单位显示内存使用情况。 
    -m  以MB为单位显示内存使用情况。
    -g   以GB为单位显示内存使用情况。 
    -o  不显示缓冲区调节列。 
    -s <间隔秒数>  持续观察内存使用状况。
    -t  显示内存总和列。 
    -V  显示版本信息。 

df查看磁盘使用率

输入df命令

uniq

文本中的重复行,基本上不是我们所要的,所以就要去除掉。使用uniq的时候要注意以下二点
对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort -u。
对文本操作时,若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过
uniq参数说明
    用法:uniq [选项]... [文件]
    从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。 
    不附加任何选项时匹配行将在首次出现处被合并。 
    长选项必须使用的参数对于短选项时也是必需使用的。 
    -c, --count              //在每行前加上表示相应行目出现次数的前缀编号 
    -d, --repeated          //只输出重复的行
    -D, --all-repeated      //只输出重复的行,不过有几行输出几行
    -f, --skip-fields=N     //-f 忽略的段数,-f 1 忽略第一段
    -i, --ignore-case       //不区分大小写
    -s, --skip-chars=N      //根-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符
    -u, --unique            //去除重复的后,全部显示出来,根mysql的distinct功能上有点像
    -z, --zero-terminated   end lines with 0 byte, not newline
    -w, --check-chars=N      //对每行第N 个字符以后的内容不作对照
    --help              //显示此帮助信息并退出
    --version              //显示版本信息并退出

awk

  1. awk简介
    • awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母
    • 它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
  2. 使用说明
    • awk '{pattern + action}'
    • 其中 pattern 表示 AWK 在数据中查找的内容
    • 而 action 是在找到匹配内容时所执行的一系列命令。
    • 花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。
    • pattern就是要表示的正则表达式,用斜杠括起来
    • 通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本
  3. awk的原理
    • 通过一个简短的命令,我们来了解其工作原理。

image.png

  • 用 awk时,我们指定/etc/passwd 作为输入文件。执行 awk 时,它依次对/etc/passwd 中的每一行执行 print 命令。

  • 所有输出都发送到 stdout,所得到的结果与执行 cat /etc/passwd 完全相同。

  • 现在,解释代码块。在 awk 中,花括号用于将几块代码组合到一起,这一点类似于 C 语言。在代码块中只有一条 print 命令。在 awk 中,如果只出现 print 命令,那么将打印当前行的全部内容。

  • 再次说明, awk 对输入文件中的每一行都执行这个脚本。
    image.png

  • -F参数:指定分隔符,可指定一个或多个
    awk -F":" '{ print $1 }'

  • 下面通过几实例来了解下awk的工作原理:

  • 只查看test.txt文件(100行)内第20到第30行的内容
    awk '{if(NR>=20 && NR<=30) print $1}' test.txt

  • 已知test.txt文件内容为:I am Poe,my qq is 33794712。请从该文件中过滤出'Poe'字符串与33794712,最后输出的结果为:Poe 33794712
    awk -F '[ ,]+' '{print$3 " " $7}' test.txt

  1. BEGIN 和 END 模块

    • 通常,对于每个输入行, awk 都会执行每个脚本代码块一次。然而,在许多编程情况中,可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况, awk 允许您定义一个 BEGIN 块。
    • 因为 awk 在开始处理输入文件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它在程序中以后会引用的全局变量的极佳位置。
    • awk 还提供了另一个特殊块,叫作 END 块。 awk 在处理了输入文件中的所有行之后执行这个块。通常, END 块用于执行最终计算或打印应该出现在输出流结尾的摘要信息
    • 实例一:统计/etc/passwd的账户人数
      awk 'BEGIN {count=0;print "[start] user count is ",count} {count=count+1;print $0} END{print "[end] user count is ",count}' passwd
    • 实例二:统计某个文件夹下的文件占用的字节数
      ll |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ",size}'
  2. awk运算符
    image.png

    • awk 赋值运算符:a+5;等价于: a=a+5;其他同类
      awk 'BEGIN{a=5;a+=5;print a}'
    • awk逻辑运算符:
      awk 'BEGIN{a=1;b=2;print (a>2&&b>1,a=1||b>1)}'
    • awk正则运算符:
      awk 'BEGIN{a="100testaa";if(a~/100/) {print "ok"}}'
  3. 关系运算符

    • > <可以作为字符串比较,也可以用作数值比较,关键看操作数如果是字符串就会转换为字符串比较。两个都为数字 才转为数值比较。字符串比较:按照ascii码顺序比较
      awk 'BEGIN{a="11";if(a>=9){print "ok"}}'
      awk 'BEGIN{a=11;if(a>=9){print "ok"}}'
  4. awk 算术运算符:
    awk 'BEGIN{a="b";print a++,++a}'

  5. 三目运算符 ?:
    awk 'BEGIN{a="b";print a=="b"?"ok":"err"}'
    awk 'BEGIN{a="b";print a=="c"?"ok":"err"}'err

  6. 常用 awk 内置变量
    image.png

    • 字段分隔符 FS
      •  FS="\t" 一个或多个 Tab 分隔
        awk 'BEGIN{FS="\t+"}{print 1,2,$3}' tab.txt
      •  FS="[[:space:]+]" 一个或多个空白空格,默认的
        awk -F [[:space:]+] '{print 1,2,3,4,$5}' space.txt
        awk -F [[:space:]+] '{print 1,2}' space.txt
      •  FS="[" ":]+" 以一个或多个空格或:分隔
        awk -F [" ":]+ '{print 1,2,$3}' hello.txt
      •  字段数量 NF
        awk -F ":" 'NF==8{print $0}' hello.txt
      •  记录数量 NR
        ifconfig eth0|awk -F [" ":]+ 'NR==2{print $4}'
      •  RS 记录分隔符变量
        将 FS 设置成"\n"告诉 awk 每个字段都占据一行。通过将 RS 设置成"",还会告诉 awk每个地址记录都由空白行分隔。
        image.png
      •  OFS 输出字段分隔符
        awk 'BEGIN{FS=":"}{print $1","$2","$3}'
        awk 'BEGIN{FS=":";OFS="#"}{print $1,$2,$3}'
      •  ORS 输出记录分隔符
        image.png
  7. awk 正则
    image.png

    • 规则表达式
      awk '/REG/{action} ' file,/REG/为正则表达式,可以将$0 中,满足条件的记录送入到:action 进行处理
      awk '/root/{print $0}' passwd ##匹配所有包含root的行
      awk -F: '$5~/root/{print $0}' passwd ## 以分号作为分隔符,匹配第5个字段是root的行
      ifconfig eth0|awk 'BEGIN{FS="[[:space:]:]+"} NR==2{print $4}' 192.168.17.129
    • 布尔表达式
      awk '布尔表达式{action}' file 仅当对前面的布尔表达式求值为真时, awk 才执行代码块
      awk -F: '$1=="root"{print $0}' passwd
      awk -F: '($1=="root")&&($5=="root") {print $0}' passwd
  8. awk 的 if、循环和数组

    • 条件语句
      awk 提供了非常好的类似于 C 语言的 if 语句

    image.png

    • 循环结构
      我们已经看到了 awk 的 while 循环结构,它等同于相应的 C 语言 while 循环。 awk 还有"do...while"循环,它在代码块结尾处对条件求值,而不像标准 while 循环那样在开始处求值

    image.png

    • for 循环
      awk 允许创建 for 循环,它就象 while 循环,也等同于 C 语言的 for 循环:

    image.png

    break 和 continue
    此外,如同 C 语言一样, awk 提供了 break 和 continue 语句。使用这些语句可以更好地控制 awk 的循环结构。

    • 数组
      image.png

    AWK 中的数组都是关联数组,数字索引也会转变为字符串索引

    用 awk 中查看服务器连接状态并汇总
    netstat -an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}'

    统计 web 日志访问流量,要求输出访问次数,请求页面或图片,每个请求的总大小,总访问流量的大小汇总
    awk '{a[$7]+=$10;++b[$7];total+=$10}END{for(x in a)print b[x],x,a[x]|"sort -rn -k1";print"total size is :"total}' /app/log/access_log

  9. 常用字符串函数
    image.png

  10. 用法:
    iconv [选项...] [文件...]

  11. 功能

  • 对于给定文件把它的内容从一种编码转换成另一种编码。

  • 描述

      -f encoding :把字符从encoding编码开始转换。 
      -t encoding :把字符转换到encoding编码。 
      -l :列出已知的编码字符集合 
      -o file :指定输出文件 
      -c :忽略输出的非法字符 
      -s :禁止警告信息,但不是错误信息 
      --verbose :显示进度信息 
      -f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 
    
  1. 举例
  • 列出当前支持的字符编码:
    iconv -l
  • 将文件inputfile转码,转后文件输出到outputfile中:
    iconv -f from-encoding -t to-encoding inputfile -o outputfile //没-o那么会输出到标准输出.

ldd && ldcinfig命令

  1. ldd简介
  • ldd用来列出动态库的依赖关系,即可以查看一个可执行程序/动态库的依赖关系
  1. ldconfig简介
  • 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.
  • 缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表
  1. ldconfig命令行用法如下:
    ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...
  2. ldconfig可用的选项说明如下:
  • (1) -v或--verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.
  • (2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录.
  • (3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更新文件的连接.
  • (4) -X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.
  • (5) -f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.
  • (6) -C CACHE : 此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表.
  • (7) -r ROOT : 此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的).选择此项时,系统默认的配置文件/etc/ld.so.conf,实际对应的为ROOT/etc/ld.so.conf.如用-r /usr/zzz时,打开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加动态链接库管理的灵活性.
  • (8) -l : 通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将进入专家模式,需要手工设置连接.一般用户不用此项.
  • (9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.
  • (10) -c FORMAT 或 --format=FORMAT : 此选项用于指定缓存文件所使用的格式,共有三种:old(老格式),new(新格式)和compat(兼容格式,此为默认格式).
  • (11) -V : 此选项打印出ldconfig的版本信息,而后退出.
  • (12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出.

wget

  1. wget详解:
  2. 链接:https://www.cnblogs.com/sx66/p/11887022.html
GNU Wget 1.14,非交互式的网络文件下载工具。
用法: wget [选项]... [URL]...

长选项所必须的参数在使用短选项时也是必须的。

启动:
  -V,  --version           显示 Wget 的版本信息并退出。
  -h,  --help              打印此帮助。
  -b,  --background        启动后转入后台。
  -e,  --execute=COMMAND   运行一个“.wgetrc”风格的命令。

日志和输入文件:
  -o,  --output-file=FILE    将日志信息写入 FILE。
  -a,  --append-output=FILE  将信息添加至 FILE。
  -d,  --debug               打印大量调试信息。
  -q,  --quiet               安静模式 (无信息输出)。
  -v,  --verbose             详尽的输出 (此为默认值)。
  -nv, --no-verbose          关闭详尽输出,但不进入安静模式。
       --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
  -i,  --input-file=FILE     下载本地或外部 FILE 中的 URLs。
  -F,  --force-html          把输入文件当成 HTML 文件。
  -B,  --base=URL            解析与 URL 相关的
                             HTML 输入文件 (由 -i -F 选项指定)。
       --config=FILE         Specify config file to use.

下载:
  -t,  --tries=NUMBER            设置重试次数为 NUMBER (0 代表无限制)。
       --retry-connrefused       即使拒绝连接也是重试。
  -O,  --output-document=FILE    将文档写入 FILE。
  -nc, --no-clobber              skip downloads that would download to
                                 existing files (overwriting them).
  -c,  --continue                断点续传下载文件。
       --progress=TYPE           选择进度条类型。
  -N,  --timestamping            只获取比本地文件新的文件。
  --no-use-server-timestamps     不用服务器上的时间戳来设置本地文件。
  -S,  --server-response         打印服务器响应。
       --spider                  不下载任何文件。
  -T,  --timeout=SECONDS         将所有超时设为 SECONDS 秒。
       --dns-timeout=SECS        设置 DNS 查寻超时为 SECS 秒。
       --connect-timeout=SECS    设置连接超时为 SECS 秒。
       --read-timeout=SECS       设置读取超时为 SECS 秒。
  -w,  --wait=SECONDS            等待间隔为 SECONDS 秒。
       --waitretry=SECONDS       在获取文件的重试期间等待 1..SECONDS 秒。
       --random-wait             获取多个文件时,每次随机等待间隔
                                 0.5*WAIT...1.5*WAIT 秒。
       --no-proxy                禁止使用代理。
  -Q,  --quota=NUMBER            设置获取配额为 NUMBER 字节。
       --bind-address=ADDRESS    绑定至本地主机上的 ADDRESS (主机名或是 IP)。
       --limit-rate=RATE         限制下载速率为 RATE。
       --no-dns-cache            关闭 DNS 查寻缓存。
       --restrict-file-names=OS  限定文件名中的字符为 OS 允许的字符。
       --ignore-case             匹配文件/目录时忽略大小写。
  -4,  --inet4-only              仅连接至 IPv4 地址。
  -6,  --inet6-only              仅连接至 IPv6 地址。
       --prefer-family=FAMILY    首先连接至指定协议的地址
                                 FAMILY 为 IPv6,IPv4 或是 none。
       --user=USER               将 ftp 和 http 的用户名均设置为 USER。
       --password=PASS           将 ftp 和 http 的密码均设置为 PASS。
       --ask-password            提示输入密码。
       --no-iri                  关闭 IRI 支持。
       --local-encoding=ENC      IRI (国际化资源标识符) 使用 ENC 作为本地编码。
       --remote-encoding=ENC     使用 ENC 作为默认远程编码。
       --unlink                  remove file before clobber.

目录:
  -nd, --no-directories           不创建目录。
  -x,  --force-directories        强制创建目录。
  -nH, --no-host-directories      不要创建主目录。
       --protocol-directories     在目录中使用协议名称。
  -P,  --directory-prefix=PREFIX  以 PREFIX/... 保存文件
       --cut-dirs=NUMBER          忽略远程目录中 NUMBER 个目录层。

HTTP 选项:
       --http-user=USER        设置 http 用户名为 USER。
       --http-password=PASS    设置 http 密码为 PASS。
       --no-cache              不在服务器上缓存数据。
       --default-page=NAME     改变默认页
                               (默认页通常是“index.html”)。
  -E,  --adjust-extension      以合适的扩展名保存 HTML/CSS 文档。
       --ignore-length         忽略头部的‘Content-Length’区域。
       --header=STRING         在头部插入 STRING。
       --max-redirect          每页所允许的最大重定向。
       --proxy-user=USER       使用 USER 作为代理用户名。
       --proxy-password=PASS   使用 PASS 作为代理密码。
       --referer=URL           在 HTTP 请求头包含‘Referer: URL’。
       --save-headers          将 HTTP 头保存至文件。
  -U,  --user-agent=AGENT      标识为 AGENT 而不是 Wget/VERSION。
       --no-http-keep-alive    禁用 HTTP keep-alive (永久连接)。
       --no-cookies            不使用 cookies。
       --load-cookies=FILE     会话开始前从 FILE 中载入 cookies。
       --save-cookies=FILE     会话结束后保存 cookies 至 FILE。
       --keep-session-cookies  载入并保存会话 (非永久) cookies。
       --post-data=STRING      使用 POST 方式;把 STRING 作为数据发送。
       --post-file=FILE        使用 POST 方式;发送 FILE 内容。
       --content-disposition   当选中本地文件名时
                               允许 Content-Disposition 头部 (尚在实验)。
       --content-on-error      output the received content on server errors.
       --auth-no-challenge     发送不含服务器询问的首次等待
                               的基本 HTTP 验证信息。

HTTPS (SSL/TLS) 选项:
       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
                                SSLv3, TLSv1, TLSv1_1 and TLSv1_2.
       --no-check-certificate   不要验证服务器的证书。
       --certificate=FILE       客户端证书文件。
       --certificate-type=TYPE  客户端证书类型,PEM 或 DER。
       --private-key=FILE       私钥文件。
       --private-key-type=TYPE  私钥文件类型,PEM 或 DER。
       --ca-certificate=FILE    带有一组 CA 认证的文件。
       --ca-directory=DIR       保存 CA 认证的哈希列表的目录。
       --random-file=FILE       带有生成 SSL PRNG 的随机数据的文件。
       --egd-file=FILE          用于命名带有随机数据的 EGD 套接字的文件。

FTP 选项:
       --ftp-user=USER         设置 ftp 用户名为 USER。
       --ftp-password=PASS     设置 ftp 密码为 PASS。
       --no-remove-listing     不要删除‘.listing’文件。
       --no-glob               不在 FTP 文件名中使用通配符展开。
       --no-passive-ftp        禁用“passive”传输模式。
       --preserve-permissions  保留远程文件的权限。
       --retr-symlinks         递归目录时,获取链接的文件 (而非目录)。

WARC options:
       --warc-file=FILENAME      save request/response data to a .warc.gz file.
       --warc-header=STRING      insert STRING into the warcinfo record.
       --warc-max-size=NUMBER    set maximum size of WARC files to NUMBER.
       --warc-cdx                write CDX index files.
       --warc-dedup=FILENAME     do not store records listed in this CDX file.
       --no-warc-compression     do not compress WARC files with GZIP.
       --no-warc-digests         do not calculate SHA1 digests.
       --no-warc-keep-log        do not store the log file in a WARC record.
       --warc-tempdir=DIRECTORY  location for temporary files created by the
                                 WARC writer.

递归下载:
  -r,  --recursive          指定递归下载。
  -l,  --level=NUMBER       最大递归深度 (inf 或 0 代表无限制,即全部下载)。
       --delete-after       下载完成后删除本地文件。
  -k,  --convert-links      让下载得到的 HTML 或 CSS 中的链接指向本地文件。
  --backups=N   before writing file X, rotate up to N backup files.
  -K,  --backup-converted   在转换文件 X 前先将它备份为 X.orig。
  -m,  --mirror             -N -r -l inf --no-remove-listing 的缩写形式。
  -p,  --page-requisites    下载所有用于显示 HTML 页面的图片之类的元素。
       --strict-comments    用严格方式 (SGML) 处理 HTML 注释。

递归接受/拒绝:
  -A,  --accept=LIST               逗号分隔的可接受的扩展名列表。
  -R,  --reject=LIST               逗号分隔的要拒绝的扩展名列表。
       --accept-regex=REGEX        regex matching accepted URLs.
       --reject-regex=REGEX        regex matching rejected URLs.
       --regex-type=TYPE           regex type (posix|pcre).
  -D,  --domains=LIST              逗号分隔的可接受的域列表。
       --exclude-domains=LIST      逗号分隔的要拒绝的域列表。
       --follow-ftp                跟踪 HTML 文档中的 FTP 链接。
       --follow-tags=LIST          逗号分隔的跟踪的 HTML 标识列表。
       --ignore-tags=LIST          逗号分隔的忽略的 HTML 标识列表。
  -H,  --span-hosts                递归时转向外部主机。
  -L,  --relative                  只跟踪有关系的链接。
  -I,  --include-directories=LIST  允许目录的列表。
  --trust-server-names             use the name specified by the redirection
                                   url last component.
  -X,  --exclude-directories=LIST  排除目录的列表。
  -np, --no-parent                 不追溯至父目录。

curl命令

  1. curl详解:在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。

  2. 语法:curl [option] [url]

  3. 链接:https://www.cnblogs.com/duhuo/p/5695256.html

-A/--user-agent <string>              设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>            断点续转
-D/--dump-header <file>              把header信息写入到该文件中
-e/--referer                                  来源网址
-f/--fail                                          连接失败时不显示http错误
-o/--output                                  把输出写到该文件中
-O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                                    静音模式。不输出任何东西
-T/--upload-file <file>                  上传文件
-u/--user <user[:password]>      设置服务器的用户和密码
-w/--write-out [format]                什么输出完成后
-x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
-#/--progress-bar                        进度条显示当前的传送状态

diff命令

https://www.runoob.com/linux/linux-comm-diff.html

cmp命令

  • cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
  • 参数:
-c或--print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或--ignore-initial=<字符数目>  指定一个数目。
-l或--verbose  标示出所有不一样的地方。
-s或--quiet或--silent  不显示错误信息。
-v或--version  显示版本信息。
--help  在线帮助。

vimdiff命令

格式:vimdiff file1 file2

ctrl + w + l : 切换到右边的窗口

ctrl + w + h : 切换到左边的窗口

ctrl + w + j : 切换到下边的窗口

ctrl + w + k : 切换到上边的窗口

ctrl + w + w : 切换到下一个的窗口

:%!xxd -g1 切换成十六进制的一个字节的模式

] + c 查找上一个不同点

[ + c 查找下一个不同点

文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令dp (diff "put")

如果希望把另一个文件的内容复制到当前行中,可以使用命令do

在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果::diffupdate

可以用简单的折叠命令来临时展开被折叠的相同的文本行:zo

然后可以用下列命令来重新折叠:zc
0

评论区