Linux面试资料简单总结

Linux面试资料简单总结

Linux 的体系结构

  • 体系结构主要分为用户态(用户上层活动)和内核态
  • 内核:本质是一段管理计算机硬件设备的程序
  • 系统调用:内核的访问接口,是一种能再简化的操作
  • 公用函数库:系统调用的组合拳
  • Shell:命令解释器,可编程

如何查找特定的文件

  • find 命令

    find path [options] params
    

    作用:在指定目录下查找文件

    • 面试中常用的方式

      find ~ -name "target3.java"精确查找文件

      find ~ -name "target*"模糊查找文件

      find ~ -iname "target*"不区分大小写查找文件


检索文件内容

  • grep 命令

    grep [options] pattern file
    
    • 全称:Gloabl Regular Expression Print

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

    • 面试中常用的方式

      grep 'partial\[true\]' info.log
      grep -o 'engine\[[0-9a-z]*\]'

      grep -v 'grep'

  • 管道操作符

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

  • 使用管道注意要点

    • 只处理前一个命令的正确输出,不处理错误输出

    • 右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃

    • sed, awk, grep, cut, head, top, less, more, wc, join, sort, split 等命令


对文件内容做统计

  • awk 命令

    awk [options] 'cmd' file
    
    • 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分

    • 将切片直接保存在内建的变量中,$1, $2, ... ($0 表示行的全部)

    • 支持对单个切片的判断,支持循环判断,默认分隔符为空格

  • 面试里常用的方式

    awk '{print $1,$4}' netstat.txt:打印 netstat.txt 文件中第一列和第四列数据

    awk '$1=="tcp" && $2==1 {print $0}' netstat.txt:打印满足第一列等于 "tcp",第二列等于 1 的数据的所有列

    awk '{arr[$1]++}END{for(i in arr)printi"\t"arr[i]}':统计数据并打印


批量替换文本内容

  • sed 命令

    sed [option] 'sed command' filename 
    
  • 面试中常用的方式

    sed -i 's/^Str/String/' replace.java:将 replace.java 文件中以 Str 开头的字符串全部替换为 String

    sed -i 's/\.$/\;/' replace.java:将 replace.java 文件中以 . 结尾的字符串全部替换为 ;

    sed -i 's/Jack/me/g' replace.java:将 replace.java 文件中 Jack 字符串全部替换为 me,/g 表示全部替换

    sed -i '/^ *$/d'删除所有空行

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.cangmangai.cn/archives/linux-interview-summary

Buy me a cup of coffee ☕.