linux面试题

Linux的体系结构

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

如何查找特定的文件

语法 find path [options] params

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

检索文件内容

语法:grep [options] parttern file

作用:查找文件里符合条件的字符串,并把匹配的行打印出来

管道操作符 |

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

  • #再yzy.log找出有yzy[true]的行,由于[]是特殊字符需要转义
    grep "yzy[true]" yzy.log
    
  • #找出形如engine[[0-9a-z]]的数据,并输出
    grep -o "engine[[0-9a-z]]"
    
  • #将输入的信息过滤掉“grep”并输出
    grep -v "grep"
    

对文件内容做统计

语法:awk [options] 'cmd' file

  • 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分

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

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

示例文本(yzy.java):

id    name    username    password
1     yzy     yzynb       123
2     hhh     hhhnb       321
1     haha    hahanb      321
awk  '{print $1}' yzy.java  #返回第一列的数据
id
1
2
1
  • awk '{print $1,$4}' yzy.java #返回第一列和第四列的数据
    
  • awk '$1=="1"{print$0}' yzy.java #返回第一列等于1的数据
    
  • #统计第一列各值出现的次数
    awk '{arr[$1]++} END {for(i in arr){print i"	"arr[i]}}' yzy.java
    

    结果:

    1	2
    id	1
    2	1
    

批量替换文本内容

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

作用:适合用于对文本的行内容进行处理

  • #将以Str开头的每行,修改为String开头
    sed -i 's/^Str/String/' replace.java
    
  • #将以.结尾的每行,修改为以;结尾
    sed -i 's/.$/;/' replace.java
    
  • #全文搜索将python替换成java,若是不加g,则每行只会替换第一个匹配的字符串
    sed -i 's/python/java/g' replace.java
    
原文地址:https://www.cnblogs.com/shouyaya/p/13503103.html