美文网首页Linux
Linux 常用指令自查记录

Linux 常用指令自查记录

作者: 天马行空爱做梦 | 来源:发表于2020-02-03 16:50 被阅读0次

    背景:

      操作系统 MacOS。 工作初期会使用一些sumbline之类的文本工具来搜索,虽然也快,但是总觉得不高级。哈哈哈....
    所以查了下资料,觉得linux中的一些指令还是蛮给力的。不仅可以提高效率,还可以写进shell脚本中。 所以整理一下,好记性不如烂笔头嘛。后面可以直接拿来用啦。

    linux 常用指令

    grep 指令 可以实现or,and,not的作用,这里只介绍一种,因为懒😝。下面例子or 和 and 中的pattern都是正则表达式哦,具体如下:

    1.grep 实现or用法:
    grep -E 'pattern1|pattern2' filename

    2.grep 实现and用法:
    grep -E 'pattern1.pattern2' filename 注解: 两个pattern1与pattern2 顺序是固定的
    grep -E 'pattern1.
    pattern2|pattern2.*pattern1' filename 注解: 两个pattern1与pattern2 顺序是不固定的
    3.grep 实现not 非的用法:
    grep -v 'pattern1' filename 注解: -v 选项用来实现反选匹配的( invert match),可匹配得到除下指定pattern外的所有lines。

    vim 编辑器

    vim最常用到的有如下:
    G->直接跳转到文件的最后一行
    dd->删除光标当前行
    10 dd -> 删除后面10行,这里的数字可以自定义
    i->进入插入模式
    x->删除光标处的字符
    o-> 插入下一行
    w-> 查看下一个word
    b-> 查看上一个word


    image.png

    一、用/和?的区别:
    /后跟查找的字符串。vim会显示文本中第一个出现的字符串。
    ?后跟查找的字符串。vim会显示文本中最后一个出现的字符串。

    ping和telnet

    ping命令是不能够测试端口的,ping只是测试网络联接状况以及信息包发送和接收状况。
    格式:ping IP地址或主机名 [-t] [-a] [-n count] [-l size]
    参数含义:-t不停地向目标主机发送数据;
    -a 以IP地址格式来显示目标主机的网络地址 ;
    -n count 指定要Ping多少次,具体次数由count来指定 ;
    -l size 指定发送到目标主机的数据包的大小。

    例子:ping 192.168.0.1 -t 不停的测试192.168.0.1,
    按ctrl+c停止
    测试端口使用telnet IP地址或主机名 端口,

    使用tcp协议的例如telnet 192.168.0.1 80测试192.168.0.1的80端口

    Linux jq命令

    jq 是一个轻量级的json处理命. 可以用在shell脚本中。

    JsonList举例:

    cat .json.txt | jq .
    [
      {
        "name": "zhangsan",
        "age": 21,
        "courses": [
          "语文",
          "数学",
          "英语"
        ]
      },
      {
        "name": "lisi",
        "age": 22,
        "courses": [
          "物理",
          "化学",
          "生物"
        ]
      }
    ]
    

    JsonList获取zhangsan这个value的方法是:cat .json.txt | jq '.[0].name'

    JsonObject举例

    cat json.txt |jq '.'
    {
      "uuid": "1192751169468366850",
      "deviceUuid": "1192751164410036225",
      "serverVerify": "0",
      "serverAddress": "127.0.0.1",
      "ntpServerAddress": "127.0.0.1",
      "otherServer": "true",
      "otherServerAddress": "127.0.0.1",
      "networkRelayAddress": "127.0.0.1"
    }
    

    获取JsonObject 获取uuid方法:cat .json.txt | jq '.uuid'

    json重组

    # 只输出name 和 age
    cat ./json.txt | jq '[.[] | {name:.name, age:.age}]'
    [
      {
        "name": "zhangsan",
        "age": 21
      },
      {
        "name": "lisi",
        "age": 22
      }
    ]
    # 输出name和第一个course
    cat ./json.txt | jq '[.[] | {name:.name, course:.courses[0]}]'
    [
      {
        "name": "zhangsan",
        "course": "语文"
      },
      {
        "name": "lisi",
        "course": "物理"
      }
    ]
    

    综上: jq中的 "." 代表的是all的内容。 后面的获取方法和Java中处理json 体是一个道理啦。

    Linux -awk

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

    awk语言的最基本功能,是在文件或者字符串中,基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。

    通常,awk是以行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
    举例

    [root@www ~]# last -n 5 <==仅取出前五行
    root     pts/1   192.168.1.100  Tue Feb 10 11:21   still logged in
    root     pts/1   192.168.1.100  Tue Feb 10 00:46 - 02:28  (01:41)
    root     pts/1   192.168.1.100  Mon Feb  9 11:41 - 18:30  (06:48)
    dmtsai   pts/1   192.168.1.100  Mon Feb  9 11:41 - 11:41  (00:00)
    root     tty1                   Fri Sep  5 14:09 - 14:10  (00:01)
    
    [root@www ~]# last -n 5 | awk  '{print $1}'
    root
    root
    root
    dmtsai
    root
    

    linux xargs

    xargs 一般是和管道一起使用.
    举例:
    复制所有图片文件到 /data/images 目录下:
    ls *.jpg | xargs -n1 -I {} cp {} /data/images
    xargs 的一个选项 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:
    -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。

    -d 选项可以自定义一个定界符:

    echo "nameXnameXnameXname" | xargs -dX

    name name name name

    相关文章

      网友评论

        本文标题:Linux 常用指令自查记录

        本文链接:https://www.haomeiwen.com/subject/isahxhtx.html