美文网首页
linux命令:du、sort、more、cat、less

linux命令:du、sort、more、cat、less

作者: 2205 | 来源:发表于2018-12-28 21:44 被阅读15次

    一个比较经典的问题:
    如果线上机器的磁盘占用率超级高,怎么办?
    这时候优先想到的肯定是,定位到占用磁盘空间最大的那些文件,然后把可以删的给删掉。
    那么,问题来了,如何定位到占用磁盘空间最大的文件?
    一个办法是执行如下命令:

    du -a | sort -rn | more
    

    里面涉及三个指令:du、sort、more
    既然用到了,就顺便多了解一下这三个指令的用法,算是做下个人笔记。


    首先是du
    作用:用来查看文件所占用的磁盘情况。
    格式:du [选项] [文件]
    可用选项(如下为du --help展示的内容):


    操作示例:
    对几个比较常用的选项单独拿出来,在机器上实际操作,效果如下:
    首先,当前目录如下:



    du:



    du -a:显示当前目录下所有文件的情况

    可以看到,“du”只会显示到当前目录下的文件,以及子目录中的所有文件夹这一级别;而“du -a”会显示当前目录及子目录下的所有文件。
    du -c:在结果的最后一行,加上当前目录的总磁盘使用量

    其实吧,从图里面可以看到,使用“du”的时候,最后一行就当前目录的磁盘使用总量,所以,感觉一般情况下-c这个选项并没有什么用。
    du -s:只计算总量
    不过,注意:-s与-a不能同时存在,会报错的。



    du -h:以比较方便阅读的方式进行展示:

    du -S:在显示目录的时候,不会将子目录的磁盘使用量计算进去

    du --max-depth=N:显示N层的目录,如果N=0,则表示计算总数

    sort
    作用:对输出的结果进行排序
    可用选项:
    -r:代表逆序排序
    -n:按照字符串数值排序
    -g:按照常规数值排序
    -f:忽略字母大小写
    实测效果:
    首先是测试文件的原始状态:



    测试一:sort
    可以发现:
    空行排在了第一位;
    不管数字有多大,字符串都会排在数字的后面;
    数字之间排序的时候,优先考虑首位数字(感觉是把数字也当成了一个字符串进行排序);



    测试二:sort -r

    测试三:sort -n
    可以看到与默认的排序是有区别的。

    测试四:sort -g

    more
    作用:用于一页一页地展示文件内容。
    几个常用操作:
    空格:翻到下一页
    b:翻到上一页
    /:启动字符串搜索(类似于vim)

    此外:
    more +n XXX:从XXX文件的第n行开始展示
    more -n XXX:展示XXX文件,并且将n行视为一页,也就是按空格时,只会显示后续的N行


    cat
    作用:一次性的展示所有文件内容
    cat有两个比较有用的选项:
    -n:输出所有行号
    -b:只对非空行输出行号



    此外,
    cat支持同时输出多个文件的内容:cat XXX YYYY ZZZZ
    并且,cat可以与more结合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more

    less:
    作用:对文件或者输出内容进行分页展示,并且less可以用于打开多个文件
    常用操作:
    j:向上滚动一行
    k:向下滚动一行(类似于vim)
    g:跳到第一行
    G:跳到最后一行
    b:向上翻一页
    空格:翻页
    n%:跳转到整个文件的n%处
    :e :在使用less打开多个文件时,使用“:e”选择跳转到其他文件去
    /:进行字符串搜索
    v:启动编辑

    常用选项:
    -N:在每一行前面都显示行号
    -m:显示读取文件的百分比
    -M:显示读取文件的百分比、行号和总行数

    注意:

    1. more和less更适用于文件内容超过一页的情况,当文件内容不满一页时,more和cat的效果一样。
    2. more、less、cat都能用于同时打开多个文件
    3. 在打开文件的时候,more会加载整个文件内容,而less不会
    4. 在搜索字符串的时候,less可以向上搜索(n是向下搜索,N是向上搜索)
    5. 一般认为less的功能要比more强大,老版本的more好像都不支持向上翻页(https://linux.cn/article-10253-1.html

    其他两个比较简单的指令:
    head:显示一个文件的前N行
    用法:head -n 行数 文件名

    tail:显示一个文件的最后N行
    用法:tail -n 行数 文件名
    不过,使用tai的时候,因为-f选项可以自动显示新增加的内容,所以经常会使用如下方式:
    tail -f 文件名

    相关文章

      网友评论

          本文标题:linux命令:du、sort、more、cat、less

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