Linux 相关面试总结
1.Linux体系结构
-
体系结构主要分为用户态和内核态
-
内核:本质上是一个管理计算机硬件设备的程序
-
系统调用:用内核的访问接口,是一种能简化的操作
- 命令:man 2 syscalls 调出所有系统调用的指令
-
公用函数库:系统调用的组合拳
库函数调用通常用于应用程序中对一般文件的访问。
库函数调用是系统无关的,因此可移植性好。
-
shell:命令解释器,可编程(在没有用户界面时,可充当用户界面)
- cat /etc/shells chsh -s 切换shell的格式
-
2.如何查找特定的文件
find
-
语法:find path [options] params
-
作用:在指定目录文件下查找文件
- find -name “XXX” 如果当前文件夹没有指定的文件需要从根目录上查找文件
- find / -name “XXX”
面试常用方式
- find ~ -name “target3.java”:精确查找文件
- find ~ -name “target*.java”:模糊查找文件
- find ~ -iname “target*.java”:不区分文件大小写去寻找文件
- man find :更多关于find指令的使用说明
3.检索文件内容
grep
-
语法:grep [options] pattern file
-
全称:Global Regular Expression Print
-
作用:查找文件里符合条件的字符串
-
管道操作符 |
- 可将指令连接起来,前一个指令的输出作为后一个指令的输入。
使用管道注意的要点
- 只处理前一个命令正确输出,不处理错误输出。
- 右边命令必须能够接受标准输入流,否则传递过程中数据会被抛弃。
- sed,awk,grep,cut,head,top,less,more,wc,join,sort,split.
4.对文件内容做统计
awk
- 语法:awk [options] ‘cmd’ file
- 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
- 将切片直接保存在内建的变量中,$1,$2,…,$10($0表示行的全部)
- 支持对单个切片的判断,支持循环判断,默认分隔符为空格
- NR:从awk开始执行后,按照记录分隔符读取的次数,默认的记录分隔符为换行符。
面试里常用的方式:
- awk ‘{print $1,$4}’ netstat.txt;
- awk ‘$1 == “tcp” && $2==1 {print $0}’ netstat.txt
- awk ‘{enignearr[$1]++} END {for (i in enignarr)print i “\t” enignearr[i]}’
5.批量替换文档内容
sed
- 语法:sed [option] ‘sed command’ filename
- 全名:stream editor 流编辑器
- 适用于对文本的行内容进行处理
面试里常用的方式
- sed -i ‘s/^Str/String’ replace.java 替换以Str大头的行
- sed -i ‘s/.$/;/’ replace.java 替换以点为结尾为分号
- sed -i ‘d/jack/me/g’ replace.java 替换所有jack为me