剑指Java面试-Linux整理(不定期更新!)

一、Linux的体系结构

剑指Java面试-Linux整理(不定期更新!)_第1张图片

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

二、如何查找特定的文件

find

  • 语法:find path [options] params
  • 作用:在指定目录下查找文件

面试里常用的方式:

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

三、检索文件内容

grep

  • 语法:grep [options] pattern file
  • 全程:Global Regular Expression Print
  • 作用:查找文件里符合条件的字符串

**管道操作符 | **

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

使用管道注意的要点:

  • 只处理前一个命令的正确输出,不处理错误的输出
  • 右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
  • 常用来作为接收管道数据的指令有: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…($0表示行的全部)
  • 支持对单个切片的判断,支持循环判断,默认分隔符为空格

面试里常用的方式:

  • awk '{print $1,$4}' netstart.txt :筛选出文件内容里某些列的数据
  • awk '$1=="tcp"&&$2==1{print $0}' netstart.txt:依据一定的条件筛选文件内容里某些列的数据
  • awk '{enginearr[$1]++}END{for(i in enginearr)print i"\t"enginearr[i]}' :逐行对文件内容做统计操作并列出对应的统计结果
  • awk -F ","'{print $2}' :-F指定分隔符符号

五、批量替换文本内容

sed

  • 语法:sed [option] 'sed command' filename
  • 全名stream editor,流编辑器
  • 适合用于对文本的行内容进行处理

面试里常用的方式:

  • sed -i 's/^Str/String/' xxx.java:筛选出以Str打头的行并将Str替换为String,-i是直接修改,不加的话只会将替换后的内容输出并不会改变原文件
  • sed -i 's/\.$/\;/' xxx.java:筛选出 . 号结尾的行并将其替换成分号
  • sed -i 's/Jack/me/g' xxx.java:将Jack替换为me,g表示替换全文内容,没有g只替换第一次
  • sed -i '/^ *$/d' xxx.java :根据指定内容删除行

你可能感兴趣的:(面试题,Linux)