• shell用到的命令


    一.shift

    参数左移

    until [ $# -eq 0 ]
    do
    echo "第一个参数为: $1 参数个数为: $#"
    shift
    done

    二.wc

    该命令用于统计指定文件中的字节数、字数、行数。该命令各选项含义如下:

    -l 统计行数

    -w 统计字数

    -c 统计字节数

    这些选项可以组合使用。输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。

    行数、字数、字节数、文件名

     

    三.管道和xargs

    管道:

    管道左边命令的输入作为管道右边命令的输入(命令的输入是一定的),不是参数,并不是所有命令都支持管道

    xargs:

    将管道左边的命令输出结果作为右边命令的参数

     

    四.df

    查看磁盘剩余空间

    用法:df [选项]... [文件]...显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统.

    长选项必须用的参数在使用短选项时也是必需的.

    -a, --all 包括大小为 0 个块的文件系统

    -B, --block-size=大小 块以指定<大小>的字节为单位

    -h, --human-readable 以容易理解的格式印出文件系统大小 (例如 1K 234M 2G)

    -H, --si 类似 -h,但取 1000 的次方而不是 1024

    -i,  --inodes 显示 inode 信息而非块使用量

    -k 即 --block-size=1K

    -l, --local 只显示本机的文件系统

       --no-sync 取得使用量数据前不进行同步动作 (默认)

    -P, --portability 使用 POSIX 兼容的输出格式

         --sync 取得使用量数据前先进行同步动作

    -t, --type=类型 只印出指定文件系统为指定<类型>的信息

    -T, --print-type 印出文件系统类型

    -x, --exclude-type=类型 只印出文件系统不是指定<类型>信息

    -v (忽略)

         --help 显示此帮助信息并离开

         --version 显示版本信息并离开

    五.awk

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

    内置变量

     [A] FILENAME 当前输入文件的名。

     [A] FS 字段分隔符(默认是任何空格)。 

     [A] NF 表示字段数,在执行过程中对应于当前的字段数。

     [A] NR 表示记录数,在执行过程中对应于当前的行号。

     [A] OFMT 数字的输出格式(默认值是%.6g)。

     [A] OFS 输出字段分隔符(默认值是一个空格)。

     [A] ORS 输出记录分隔符(默认值是一个换行符)。

     [A] RS 记录分隔符(默认是一个换行符)。

    基本写法 :

    awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename (这句能打印行数 相当于wc -l file)

    awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}'  ~匹配~!不匹配正则表达式

    六.sed

    http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html

    http://www.cnblogs.com/lidabo/p/4928983.html

     

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法
    sed命令行格式为:
             sed [-nefri] ‘command’ 输入文本        

     

    常用选项:
            -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
            -e∶直接在指令列模式上进行 sed 的动作编辑;
            -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
            -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
            -i∶直接修改读取的档案内容,而不是由萤幕输出。       

     

    常用命令:
            a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
            c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
            d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
             i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
             p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
             s  ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

    七.sort

    http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html

    sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:
      sort [-bcfMnrtk][源文件][-o 输出文件]
    补充说明:sort可针对文本文件的内容,以行为单位来排序。

    参  数:
      -b   忽略每行前面开始出的空格字符。
      -c   检查文件是否已经按照顺序排序。
      -f   排序时,忽略大小写字母。
      -M   将前面3个字母依照月份的缩写进行排序。
      -n   依照数值的大小排序。
      -o<输出文件>   将排序后的结果存入指定的文件。
      -r   以相反的顺序来排序。
      -t<分隔字符>   指定排序时所用的栏位分隔字符。
      -k  选择以哪个区间进行排序。和-t一起使用,-t确定了有多少栏

      -u 除去重复行

    让facebook.txt按照公司人数排序

    $ sort -n -t ‘ ‘ -k 2 facebook.txt
    guge 50 3000
    baidu 100 5000
    sohu 100 4500
    google 110 5000

    八.cut

    http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html

    cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。

    (1)其语法格式为:
    cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]

    使用说明
    cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
    如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

    主要参数
    -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
    -c :以字符为单位进行分割。
    -d :自定义分隔符,默认为制表符。
    -f  :与-d一起使用,指定显示哪个区域。
    -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。

    echo "昨夜星辰"|cut -b 1,2 

    echo "昨夜星辰"|cut -b 1-3 (根据编码,unicode 为两个字符)

    昨?

    echo "昨夜星辰"|cut -bn 1,2

    echo "aaad:ddccc"|cut -d : -f 1

    aaad

    九. du

    du -s  该目录总共的大小

    du file 指定文件的大小  

    十. grep

    grep [-acinv] [--color=auto] '搜寻字符串' filename
    选项与参数:
    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :计算找到 '搜寻字符串' 的次数
    -i :忽略大小写的不同,所以大小写视为相同
    -n :顺便输出行号
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

    -r  : 读取目录下的所有文件
    --color=auto :可以将找到的关键词部分加上颜色的显示喔! 

    grep -n '^$' regular_express.txt查找空行

    grep 的拓展能匹配更多的正则表达式

    # egrep '3+' testfile

    # grep -E '3+' testfile

    # grep '3+' testfile

     

    ×× LC_ALL=C 是为了去除所有本地化的设置,让命令能正确执行。××

     

     

  • 相关阅读:
    【书目20200917】影响力思维
    Spring AOP +自定义注解 + Spel表达式 实现审计日志
    SPRING BOOT 注解之OBJECTPROVIDER源码追踪
    Activiti~相关概念
    ELK~fluentd多行日志的收集
    k8s~向etc/hosts里添加内容
    maven~本地仓库的指定
    ssh~ Access denied问题解决
    MySQL如何绕过授予information_schema中对象时报ERROR 1044(4200)错误
    Zabbix如何监控SQL Server服务状态
  • 原文地址:https://www.cnblogs.com/chencesc/p/5000982.html
Copyright © 2020-2023  润新知