美文网首页
Linux面试核心

Linux面试核心

作者: Java全栈攻城狮 | 来源:发表于2020-04-10 11:39 被阅读0次

    Linux的体系结构

    查找特定文件

    find -name [filename] 当前目录递归查找某个文件
    find -iname [filename] 当前目录递归查找某个文件(忽略大小写)
    find / -name [filename] 全局递归查找某个文件(/定位到系统根目录)
    find ~ -name [filename] 当前用户目录查找某个文件(~定位用当前用户目录,通配符支持模糊查询)
    man find(查找find指令的说明)

    检索文件内容

    grep [查找内容] [查找文件](支持模糊查询)

    传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下:
    -v: 逆反模示, 只输出"不含" RE 字符串之句子.
    -r: 递归模式, 可同时处理所有层级子目录里的文件.
    -q: 静默模式, 不输出任何结果(stderr 除外. 常用以获取 return value, 符合为 true, 否则为 false .)
    -i: 忽略大小写.
    -w: 整词比对, 类似 <word> .
    -n: 同时输出行号.
    -c: 只输出符合比对的行数.
    -l: 只输出符合比对的文件名称.
    -o: 只输出符合 RE 的字符串. (gnu 新版独有, 不见得所有版本都支持.)
    -E: 切换为 egrep .

    管道操作符|

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



    使用管道注意的要点

    1、只处理前一个命令正确输出,不处理错误输出
    2、右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃

    对文件内容做统计

    awk
    语法:awk [options] 'cmd' file
    1、一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
    2、将切片直接保存在内建的变量中,12..($0表示行的全部)
    3、支持对单个切片的判断,支持循环判断,默认分隔符为空格

    //按空格切片,打印第一个切片和第四个切片
    awk '{print $1,$4}' filename 
    //如果第一切片等于tcp并且第二切片等于1就打印整行
    awk '$1=="tcp" && $2==1{print $0}' filename 
    //如果第一切片等于tcp并且第二切片等于1 或者 是第一行 就打印整行
    awk '($1=="tcp" && $2==1) || NR == 1 {print $0}' filename 
    //按逗号分隔,打印第二切片
    awk -F ',' '{print $2}' filename 
    /*
    *自定义数组engiarr,key为第一切片,value为相同切片出现的次数,扫描结束后循环数组engiarr
    *打印出key和value
    */
    awk '{engiarr[$1]++}END{for(i in engiarr)print i "\t" engiarr[i]}' 
    

    批量替换文本内容

    sed
    语法:sed [option] 'sed command' filename
    适合用于对文本的行内容进行处理

    /*
    *-i替换并保存到文本,不加-i是不会保存到文本的,s是对字符串的操作
    *第一个斜杠到第二个斜杠之间就是要查找的内容
    *第二个斜杠到第三个斜杠之间就是要替换的内容,^就是以什么开头的内容
    */
    sed -i 's/^Str/String/' filename 
    //$就是以什么结尾的内容
    sed -i 's/\.$/;/' filename 
    //g就是全文替换,不加就只会替换每行的首个符合的内容
    sed -i 's/\.$/;/g' filename 
    //d就是删除符合内容的行
    sed -i 's/\.$/d' filename 
    

    相关文章

      网友评论

          本文标题:Linux面试核心

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