Linux常见指令

Shell指令

    • 如何查找特定的文件
    • find ~ -name "target3.java":精确查找文件
    • find ~ -name "target*":模糊查找文件
    • find ~ -iname "target*":不区分文件名大小写与查找文件
    • man find:更多关于find指令的使用说明
  • 检索文件内容

    • grep

    语法:grep [options] pattern file

    • 全称:Global Regular Expression Print

    • 作用:查找文件里符合条件的字符串

    • 管道操作符|

      • 可将指令连接起来,前一个指令的输出作为后一个指令的输入

1557045952045

  • 使用管道注意的要点

    • 只处理一个命令正确输出,不处理错误输出
    • 右边命令必须能够接受标准输入流,否则传递过程中数据会被丢弃
    • sed,awk,grep,cut,head,top,less,more,wc,join,sort,split等
  • 面试常用的方式

    • grep 'partial[true]' xxx.info.log
    • grep -o 'engine[[0-9a-z]*]'(正则匹配)
    • grep -v 'grep'(过滤)

*对文件内容做统计

  • awk(适合对文本列进行处理)

    语法:awk [options] 'cmd' file

    • 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
    • 将切片直接保存在内建的变量中,$1, $2...($表示行的全部)
    • 支持对单个切片的判断,支持循环判断,默认分隔符为空格
  • 面试常用的方式

    • awk '{print $1,$4}' netstat.txt:输出第一列和第四列
    • awk '$1=="tcp" && $2==1{print $0}' netstat.txt:输出第一列为tcp值和第四列为1的全部数据
    • awk '{enginearr[$1]++}END{for(i in enginearr)print i"\t" enginearr[i]}':统计第一列数据出现次数
  • 批量替换文件内容

    • sed

      语法:sed [option] 'sed command' filename

      • 全名为stream editor,流编辑器
      • 适合用于对文本的行内容进行处理
    • 面试常用的方式

      • sed -i 's/^Str/String/' replace.java:将Str开头的行改为String
      • sed -i 's/\.$/\;/' replace.java:将.结尾的行都改成;
      • sed -i 's/jack/me/g' replace.java:将出现jack的地方都改为me