linux 常用命令总结一下

Linux查看日志常用命令

1.查看日志常用命令

    tail:  

       -n  是显示行号;相当于nl命令;例子如下:

            tail -100f test.log      实时监控100行日志

            tail  -n  10  test.log   查询日志尾部最后10行的日志;

            tail -n +10 test.log    查询10行之后的所有日志;

    head:  

        跟tail是相反的,tail是看后多少行日志;例子如下:

            head -n 10  test.log   查询日志文件中的头10行日志;

            head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

    cat: 

        tac是倒序查看,是cat单词反写;例子如下:

            cat -n test.log |grep "debug"   查询关键字的日志

2. 应用场景一:按行号查看---过滤出关键字附近的日志

     1)cat -n test.log |grep "debug"  得到关键日志的行号

     2)cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:

            tail -n +92表示查询92行之后的日志

            head -n 20 则表示在前面的查询结果里再查前20条记录

3. 应用场景二:根据日期查询日志

      sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log

      特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;

                      先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点

4.应用场景三:日志内容特别多,打印在屏幕上不方便查看

    (1)使用more和less命令,

           如: cat -n test.log |grep "debug" |more     这样就分页打印了,通过点击空格键翻页

    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

            如:cat -n test.log |grep "debug"  >debug.txt

如何删除文件

要从命令行删除(或删除)Linux中的文件或目录,请使用rm(remove)命令。

使用该rm命令删除文件或目录时要格外小心,因为一旦删除文件,就无法恢复。

  • 要删除单个文件,请使用rm命令后跟文件名:

    rm filename

    如果文件处于写保护状态,系统将提示您进行确认,如下所示。删除文件类型y并点击Enter。否则,如果文件没有写保护,它将被删除而不提示。

    rm: remove write-protected regular empty file 'filename'?
  • 要一次删除多个文件,请使用rm命令后跟由空格分隔的文件名。

    rm filename1 filename2 filename3

    您还可以使用通配符(*)和常规扩展来匹配多个文件。例如,要删除.pdf当前目录中的所有文件,请使用以下命令:

    rm *.pdf

    当您使用rm通配符(*)和常规扩展时,建议使用该ls命令列出文件,以便在运行rm命令之前可以查看将删除的文件。

  • -i在删除之前使用该选项确认每个文件:

    rm -i filename(s)
    • 要在不提示的情况下删除文件,即使文件是写保护的,也可以使用-f(强制)选项:
    rm -f filename(s)
  • 您还可以组合rm选项。例如,要删除.txt当前目录中的所有文件而没有详细模式下的提示,请使用以下命令:

    rm -fv *.txt

    如何删除目录(文件夹)

    • 要删除空目录,请使用该-d选项。
    rm -d dirname
  • 要删除非空目录及其中的所有文件,请使用r(递归)选项。

    rm -r dirname

    如果目录中的目录或文件受到写保护,系统将提示您确认删除。

    • 要删除非空目录和所有文件而不提示,请使用r(递归)和-f选项。
    rm -rf dirname
  • 要一次删除多个目录,请使用rm命令,后跟以空格分隔的目录名称。

    rm -r dirname1 dirname2 dirname3

    与文件相同,您还可以使用通配符(*)和常规扩展来匹配多个目录。

  • Linuxrm删除指定文件外的其他文件方法汇总

    一、Linux下删除文件和文件夹常用命令如下: 删除文件: rm file
    删除文件夹: rm -rf dir
    需要注意的是, rmdir 只能够删除 空文件夹。 二、删除制定文件(夹)之外的所有文件呢?
    1、方法1,比较麻烦的做法是:
    复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。 mv keep ../ #保留文件(夹) keep
    rm -rf * #删除当前文件夹里的所有文件 mv ../keep ./ #将原来的东西移动回来
    2、方法2,需要在当前文件夹中进行:
    rm -rf !(keep) #删除keep文件之外的所有文件
    rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件
    3、方法3,当前文件夹中结合使用grep和xargs来处理文件名: ls | grep -v keep | xargs rm #删除keep文件之外的所有文件
    说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。
    好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。
    4、方法4,使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:
    find ./test/ | grep -v keep | xargs rm #删除当前test文件夹中keep文件之外的所有文件
    说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。
    5、方法5,直接使用find命令删除其他文件:
    find ./ -name '[^k][^e][^e][^p]*'  -exec rm -rf {} \; #删除keep以外的其他文件。 find ./ -name '[^k][^e][^e][^p]*'  | xargs rm -rf  #删除keep以外的其他文件。推荐!
    说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。
    关于find 执行命令的效率和借用xargs启动的命令效率的比较,详情请参考:http://www.linuxsir.org/main/?q=node/137
    Linux文件查找命令find,xargs详述  http://www.linuxsir.org/main/?q=node/137 本文转载自:http://blog.sina.com.cn/s/blog_70ffb5c501011rrk.html
     

    rm删除除去指定文件的剩余所有文件  (rm 反向删除)

    zhou@zhou:~/LinuxC/file/test$ ls
    1  23sdfwe 88888888  aabb ag   ghdda    mmm
    2 3       aaaaaaaa abc  asdg  llllllll wwwww
    zhou@zhou:~/LinuxC/file/test$

    然后我想删除除了包含字符串aa外所有的文件,也就是想留下aabb,aaaaaaaa,这两个文件,其他的全部删除
    下面是我的命令:

    zhou@zhou:~/LinuxC/file/test$rm `ls | grep -v"aa"`
    zhou@zhou:~/LinuxC/file/test$ ls
    aaaaaaaa  aabb
    zhou@zhou:~/LinuxC/file/test$
    所以了,成功了。
    简单的解释一下那条命令吧:rm 删除后面指定的文件
    `ls | grep -v "aa" ` 记得外面是反引号(反引号的位置就在标准键盘的数字1的左边)

    ls:查看当前目录下所有的文件,使用grep命令过滤一下grep -v "aa" 就是找出字符串中不带“aa”的。

    整体再顺一下:列出文件名不带“aa”串的文件,然后删除他们。OK。
    其实说起来简单,当时我也做了好长时间,因为以前没怎么接触grep,因此一开始我想到的办法是使用正则表
    达式,但是在做的过程中突然发现了grep使个不错的东西,因此就使用了。

    上面的命令使删除带有“aa”串的文件,那如果我只想留下文件aa呢?很简单

    zhou@zhou:~/LinuxC/file/test$rm `ls | grep -v"^aa$" `
    在aa前面加上^,后面加上$表示结束符的意思,这个就是完全匹配了。
    好了,就这么多。但愿以后能用到这个有用的命令

    转自:http://blog.sina.com.cn/s/blog_67e34ceb01014930.html

    linux 删除其他文件

    http://zhidao.baidu.com/link?url=uvHfrb3kSnM_8p5ILhZyc39U0h3md-Ncrm3iaygeYTLU-zjthNBlqO674VulVGTnPiNcl2nj7wo5vn08N4481_

    求教 linux centos我想删除某目录中文件名不符合"*20100330*"这样规则的文件应该怎么删除?


    假设目录名为myTest且为当前目录的下一级目录,使用如下命令即可:
    cd ./myTest && rm `ls | grep -v '20100330'` && cd ..
    
    进入myTest目录,删除文件后返回当前目录。
    
    grep的-v参数表示反向选择。
    
    一般使用rm删除文件的时候会有确认提示,如果不要确认,直接强制删除,可以使用rm的-f参数。

猜你喜欢

转载自blog.csdn.net/jswd_50x/article/details/102978134
今日推荐