• 好玩的Linux命令-1


    Ag:比grep、ack更快的归递搜索文件内容

    1:首先在linux创建个sh文件->ag.sh

    2:在ag.sh里面输入如下内容并保存

    #!/bin/bash
    set -x
    TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX)
    cd ${TEMP_DIR}
    wget https://github.com/ggreer/the_silver_searcher/archive/master.zip
    TAR_DIR=$(unzip *.zip)
    TAR_DIR=${TAR_DIR%%/*}
    TAR_DIR=${TAR_DIR##*:}
    cd ${TAR_DIR}
    apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev --force-yes
    ./build.sh && make install
    cd ../../
    rm -rf ${TEMP_DIR}
    ag -V
    set +x
    View Code

    3:执行./ag.sh就会去安装了,完事后可以用ag  "helloWord"命令去寻找所有文件中包含helloWord的文件并列出所在行数等。主要是带有颜色。

    Tig:字符模式下交互查看git项目,可以代替git命令

    安装

    Ubuntu环境通过apt-get安装tig

    sudo apt-get update
    sudo apt-get install tig
    View Code

    CentOS环境安装通过yum安装tig

    sudo yum update
    sudo yum install tig
    View Code

    Mac环境安装通过brew安装tig

    brew update
    brew install tig
    View Code

    使用

    1、通过man查看tig命令

      //CentOS、Ubuntu
      man tig

      //mac
      man ls tig
    2、tig中位置移动是vim命令
    3、tig查看所有历史修改

      yanmin:360tmk yanmin$ tig

    4、tig show查看某次commit的所有修改

      tig show 65a05ee92c83a5827449d62be42322e1b2a58e39

    5、tig filename查看某个文件所有历史修改

      yanmin:360tmk yanmin$ tig pom.xml

    Mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令

      我用的是centos7,版本如果7以下可能会存在问题,比如自带Python的原因。

      安装:

      # yum -y install epel-release

      # yum -y install python-pip

      # yum install python-devel

      清除缓存

      # yum clean all

      安装mycli

      # pip install mycli

      中间如出现报错按照指引完成即可

      测试

      输入mysql命令即可进行补全

    Jq:json文件处理以及格式化显示,支持高亮,可以替换python –m json.tool

      简单介绍:JSON 数据的书写格式是: 名称/对象。 JSON的结构基于两点,“名称/值”的集合 ,在不同的语言中,它可以被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),键列表(keyed list)等 。值的有序列表 多数语言中被理解为数组(array)。

      JSON的基础结构说明

      对象是属性、值的集合。一个对象开始与”{” ,结束于”}”。每一个属性名和值间用”:”分隔。每个属性间用”,”分隔。
      值可以是字符串,数字,逻辑值,数组,对象,null。
      数字:整数或浮点数
      字符串:在双引号中
      逻辑符:true和false
      数组:在方括号中
      对象:在花括号中
      null: 代表空
      安装:centos:#yum install jq

         ubuntu:#apt-get install jq

      格式:

    jq [options] filter [files]
    **options:**
    --version:输出jq的版本信息并退出
    --slurp/-s:读入整个输入流到一个数组。
    --raw-input/-R:不作为JSON解析,将每一行的文本作为字符串输出到屏幕。
    --null-input/ -n:不读取任何输入,过滤器运行使用null作为输入。一般用作从头构建JSON数据。
    --compact-output /-c:使输出紧凑,而不是把每一个JSON对象输出在一行。
    --colour-output / -C:打开颜色显示
    --monochrome-output / -M:关闭颜色显示
    
    --ascii-output /-a:指定输出格式为ASCII
    
    -raw-output /-r :如果过滤的结果是一个字符串,那么直接写到标准输出(去掉字符串的引号)
    View Code
    filter
    
    .   : 默认输出
    .foo: 输出指定属性,foo代表属性。
    .[foo] :输出指定数组元素。foo代表数组下标。
    .[]:输出指定数组中全部元素
    , :指定多个属性作为过滤条件时,用逗号分隔
    | : 将指定的数组元素中的某个属性作为过滤条件
    View Code
    files:示例文件
    [{"hostCompany":"Beijing Autelan Technology","hostModel":"CS-VIC-2000-C","hostsn":"01010730b12014A00477","mac":"00:1F:64:CE:F3:8E","cpuModel":"MIPS 74Kc V4.12","cpuSN":"000000","memoryModel":"abcdefg","memorySN":"000000","boardSN":"01010730b12014A00477","networkCardMac":"00:1F:64:CE:F3:8F","lowFreModel":"AR9344","lowFreSN":"000000","hignFreModel":"AR9582","hignFreSN":"000000","gpsModel":"abcdefg","gpsSN":"000000","MEID_3g":"A000004E123ABD2","Company_3g":"ZTEMT INCORPORATED","modelOf3g":"MC271X","snOf3g":"A000004E123ABD2","iccid":"89860314400200885980","Operators":"CTCC","hardVersion":"1.20","firmwareVersion":"1.0.6.29"}]
    View Code

      示例:

    $ jq . apinfo.json   
    [
      {
        "firmwareVersion": "1.0.6.29",
        "hardVersion": "1.20",
        "Operators": "CTCC",
        "iccid": "DATA DATA",
        "snOf3g": "A000004E123ABD2",
        "modelOf3g": "MC271X",
        "Company_3g": "ZTEMT INCORPORATED",
        "MEID_3g": "A000004E123ABD2",
        "memorySN": "000000",
        "memoryModel": "abcdefg",
        "cpuSN": "000000",
        "cpuModel": "MIPS 74Kc V4.12",
        "mac": "00:1F:64:CE:F3:8E",
        "hostsn": "01010730b12014A00477",
        "hostModel": "CS-VIC-1999-C",
        "stCompany": "Beijing Autelan Technology",
        "boardSN": "01010730b12014A00477",
        "networkCardMac": "00:1F:64:CE:F3:8F",
        "lowFreModel": "AR9344",
        "lowFreSN": "000000",
        "hignFreModel": "AR9582",
        "hignFreSN": "000000",
        "gpsModel": "abcdefg",
        "gpsSN": "000000"
      }
    ]
    
    jq '.[]' apinfo.json 
    {
      "firmwareVersion": "1.0.6.29",
      "hardVersion": "1.20",
      "Operators": "CTCC",
      "iccid": "DATA DATA",
      "snOf3g": "A000004E123ABD2",
      "modelOf3g": "MC271X",
      "Company_3g": "ZTEMT INCORPORATED",
      "MEID_3g": "A000004E123ABD2",
      "memorySN": "000000",
      "memoryModel": "abcdefg",
      "cpuSN": "000000",
      "cpuModel": "MIPS 74Kc V4.12",
      "mac": "00:1F:64:CE:F3:8E",
      "hostsn": "01010730b12014A00477",
      "hostModel": "CS-VIC-1999-C",
      "stCompany": "Beijing Autelan Technology",
      "boardSN": "01010730b12014A00477",
      "networkCardMac": "00:1F:64:CE:F3:8F",
      "lowFreModel": "AR9344",
      "lowFreSN": "000000",
      "hignFreModel": "AR9582",
      "hignFreSN": "000000",
      "gpsModel": "abcdefg",
      "gpsSN": "000000"
    }
    View Code

      测试:

    $ jq -r .[].mac apinfo.json 
    00:1F:64:CE:F3:8E
    
    $ jq -r '.[] | .mac' apinfo.json 
    00:1F:64:CE:F3:8E
    
    $ jq -r '.[] |.mac, .gpsSN' apinfo.json 
    00:1F:64:CE:F3:8E
    000000
    
    jq -r '.[].mac, .[].gpsSN' apinfo.json 
    00:1F:64:CE:F3:8E
    000000
    View Code

    Shellcheck:shell脚本静态检查工具,能够识别语法错误和不规范的写法。

      安装:

      在ubuntu里直接apt install shellcheck

      在centos里yum install -y epel-release 

           yum install -y shellcheck

    查看某进程的网卡流量

          yum install libpcap nethogs -y

      另一种安装方式:

          yum install cabal-install

      指令安装目录:~/.cabal/bin

          cabal update

          cabal install cabal

          cabal install shellcheck

    这样就可以使用如下命令安装

          cabal install shellcheck

    Fzf:命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl+r历史命令搜索

    具体使用方法可参考如下

    https://www.cnblogs.com/harriszh/p/7616966.html

    讲的很不错,可以多学学

    Pathpicker(fpp):在命令行输出中自动识别目录和文件,支持交互式,配合git非常好用

    git diff HEAD-8 --stat| fpp

     

    Htop:提供更美观,更方便的进程监控工具,替代top命令

      用F2编辑配置,用F9发送信号,用F3搜索进程,用F5切换,通过空格设置颜色标注进程条目

    • -s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
    • -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。
    • -d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。

     

  • 相关阅读:
    BZOJ 1568: [JSOI2008]Blue Mary开公司
    BZOJ 3165: [Heoi2013]Segment
    BZOJ 2733: [HNOI2012]永无乡
    BZOJ 4631: 踩气球
    BZOJ 4530: [Bjoi2014]大融合
    BZOJ 4919: [Lydsy1706月赛]大根堆
    BZOJ 5442: [Ceoi2018]Global warming
    BZOJ 4027: [HEOI2015]兔子与樱花
    BZOJ 5441: [Ceoi2018]Cloud computing
    php的抓取
  • 原文地址:https://www.cnblogs.com/john4415/p/11388365.html
Copyright © 2020-2023  润新知