• tcpdump/grep/sed/awk/vi简单命令


    《鸟哥的Linux私房菜》

    tcpdump

    # tcpdump [-i接口] [-w 保存文件名] [-c 个数]
        -i:后接要监听的网络接口如eth0,wlan0,lo,ppp0
        -w:包数据存下来文件名
        -c:监听包个数

    不区分源地址和目的地址,过滤IP

    # tcpdump -i eth1 host 192.168.1.1

    过滤源地址
    # tcpdump -i eth1 src host 192.168.1.1

    过滤目的地址
    # tcpdump -i eth1 dst host 192.168.1.1

    不区分源端口和目的端口,过滤端口
    # tcpdump -i eth1 port 25

    过滤源端口
    # tcpdump -i eth1 src port 25

    过滤目的端口
    # tcpdump -i eth1 dst port 25

    过滤网络
    # tcpdump -i eth1 net 192.168  
    # tcpdump -i eth1 src net 192.168
    # tcpdump -i eth1 dst net 192.168

    过滤协议
    # tcpdump -i eth1 arp
    # tcpdump -i eth1 ip
    # tcpdump -i eth1 tcp
    # tcpdump -i eth1 udp
    # tcpdump -i eth1 icmp

    tar

    tar [-j|-z] [cv] [-f 新建文件名] file   打包与压缩

    tar [-j|-z] [xv] [-f 文件名] [-C 目录]  解压缩

    tar [-j|-z] [tv] [-f 文件名]  查看文件

    三选一参数:

    -c 新建打包文件

    -x 解压

    -t 查看打包文件中有哪些文件名

    其它参数:

    -j 通过bzip2 进行压缩、解压,此时文件名最好为*.tar.bz2

    -z 通过gzip 进行压缩、解压,此时文件名最好为*.tar.gz

    -v 在压缩、解压过程中,显示正在处理的文件名

    -f filename 要新建或者要处理的文件

    -C 目录 解压时,在特定目录下解压

    仅解开单一文件

    先找到需要的文件

    tar –jtv –f /root/etc.tar.bz2 |grep ‘test’

    tar –jxv –f /root/etc.tar.bz2 etc/test

    仅备份比某个时刻还要新的文件

    tar –jcv –f /root/etc.newer.tar.bz2 –newer-mtime=”2022/01/15” /etc/*

    strings

    strings -f "*.so" | grep "xxxxxx"

    看那个so中包含"xxxxxx"

    grep

    grep [–A2] [–B3] [-n] [-v] [-i] [--color=auto] ‘搜索字符串’ filename

    -A 列出找出的行外,后续2行也列出来

    -B 列出找出的行外,前面3行也列出来

    -n 显示行号

    -v 反向选择,显示不匹配的行

    -i 不区分大小写搜索

    grep –n ‘t[ae]st’ test.txt

    查找包括 tast ,test的行

    grep –n ‘[^g]oo’ test.txt

    查找oo,但前面不是g

    grep –n ‘[^a-z]oo’ test.txt

    查找oo,但前面不是小写字母

    grep –n ‘[0-9]’ test.txt

    查找有数字的行

    grep –n ‘^the’ test.txt

    查找the 开头的行

    grep –n ‘^[a-z]’ test.txt

    查找小写字符开头的行

    grep –n ‘^[^a-zA-Z]’ test.txt

    不是英文字符开头的行

    grep –n ‘^$’ test.txt

    查找空白行

    基础正则表达式字符

    ^word

    待查找的字符串在行首

    word$

    待查找的字符串在行尾

    .

    代表一定有一个任意字符的字符

    *

    重复零个无穷多个前一个字符

    [list]

    字符集合中的RE字符里找出想要选择的字符

    [n1-n2]

    字符集合中的RE字符里找出想要选择的字符范围

    [^list]

    字符集合中的RE字符里找出不要选择的字符范围

    sed

    sed [-ni] [n1[,n2]] function

    -n 使用安静模式

    -i 直接修改读取的文件内容

    n1,n2 代表选择进行动作的行数

    function参数:

    a 在目前的下一行新增一行,后面可以接字符串

    c 替换,后面可以接字符串

    d 删除

    i 在目前的上一行插入一行

    p 打印 sed –n 一起使用

    s 替换 1,20s/old/new/g

    #nl /etc/passwd |sed ‘2,5d’

    列出/etc/passwd的内容,同时将2-5行删除

    # nl /etc/passwd |sed ‘2a hello’

    在第二行(第三行)后加上hello

    # sed –i ‘$a #This is end.’ Test.txt

    在Test.txt 最后加入一行’#This is end.’

    # nl /etc/passwd |sed ‘2,5c hello’

    将2-5行换成hello

    # sed –i ‘s/\.$/\!/g’ Test.txt

    将Test.txt内每一行结尾为”.”换成”!”

    awk

    awk ‘条件类型1{动作1} 条件类型2{动作2} …’ filename

    1. 读入第一行,并将第一行的数据填入$0,$1,$2等变量中
    2. 依据条件类型限制,判断是否需要进行后面的动作
    3. 做完所有的动作与条件类型
    4. 若还有后续行的数据,重复1-3,直到所有数据都读完

    NR  awk处理的第几行数据

    NF  每一行拥有的字段总数

    FS  目前的分隔符,默认是空格键

    #last –n 5|awk ‘{print $1 “\t lines: ” NR “\t columes: ” NF}’

    #cat /etc/passwd|awk ‘BEGIN {FS=”:”} $3 < 10 {print $1 “\t” $3}’

    因为默认分隔符是空格键,所以,如果想第一行就用其它分隔符,需要用BEGIN预先设置awk的变量

    #cat pay.txt|awk ‘NR==1{print “%10s %10s \n”,$1,$2,”Total”} NR>=2{total=$1+$2 printf “%10d %10d %10.2f\n”,$1,$2,total}’

    Vi

    按键说明

    一般模式:

    0

    光标移到到这一行的最前面

    $

    移动到行尾

    G

    移动到这个文件最后一行

    nG(n数字)

    移动到第n行

    gg

    移动到第一行,=1G

    n[enter](n数字)

    向下移动n行

    /word

    向下查找word

    ?word

    向上查找word

    n(字母)

    重复前一个查找动作

    N(字母)

    方向重复前一个查找动作

    :n1,n2s/word1/word2/g

    第n1行与第n2行之间,查找word1,并替换

    :1,$s/word1/word2/g

    从第一行到最后一行,查找替换

    :1,$s/word1/word2/gc

    从第一行到最后一行,查找替换,但替换前需要用户确认是否需要替换

    xX

    X向前删除一个字符,x向后删除一个字符

    dd

    删除一行

    yy

    复制光标所在行

    nyy

    复制光标所在的下n行

     一般模式切换到编辑模式:

    I,i

    I在目前所在行第一个非空格符处插入

    i从目前光标所在处插入

    A,a

    A在目前所在行最后一个字符处插入

    a从目前光标所在的下一个字符处开始插入

    O,o

    O 在目前光标所在处上一行插入新的一行

    o 在目前光标所在行下一处插入新的一行

    一般模式切换到命令行模式:

    :w

    将编辑写入硬盘

    :w!

    强制写入

    :q

    离开vi

    :q!

    若修改过文件,又不想存储,强制离开不保存

    :wq

    写入后离开

    :wq!

    强制保存后离开

  • 相关阅读:
    SQL GUID和自增列做主键的优缺点
    python __future__ 的几种特性
    数据库中文乱码处理
    Android_Intent意图详解
    Windows Server 2012 R2超级虚拟化之六 Hyper-v Replica 2.0和Live migrations
    如今网站定位,需立足于用户
    Hibernate 数据的批量插入、更新和删除
    paip.提升用户体验---论文本编辑器的色彩方案
    时间管理方法学习
    网站优化:从搜索引擎到社交网络的艰难转变
  • 原文地址:https://www.cnblogs.com/sunnypoem/p/15851308.html
Copyright © 2020-2023  润新知