Linux的体系结构
体系结构主要分为用户态(用户上层活动)和内核态
内核:本质上是一段管理计算机硬件设备的程序
系统调用:内核的访问接口,是一种不能再简化的操作
公用函数库:系统调用的组合拳
Shell:命令解释器,可编程
查找特定的文件
find 语法: find path [options] params 作用:在指定目录下查找文件
eg: find -name “xxx.java” 从当前目录递归查找,
find / -name “xxx.java” 去到根目录,再从根目录下进行查找
find ~ -name “xxx*”, 查找以xxx打头的文件
find ~ -name “xxx*”, 忽略大小写
面试里常用的方式:
find ~ -name “target.java” : 精确查找文件
find ~ -name “target.java”: 模糊查找文件
find ~ -iname “target*” : 不区分文件名大小写去查找文件
man find: 更多关于find指令的使用说明
检索文件内容
grep(全称 Global Regular Expression Print) 语法: grep [options] pattern file
作用:查找文件里符合条件的字符串(可以利用正则表达式进行匹配)
Eg:
grep “moo” target* 查找以target打头,包含moo的文件
grep “haha” 等待用户输入,用户输入包含haha的字符串,才会产生响应
管道操作符 |
可将指令连接起来,前一个指令的输出作为后一个指令的输入
Eg: find ~ | grep “target” 搜索当前目录下文件名包含target的文件
使用管道注意的要点
只处理前一个命令正确输出,不处理错误输出
右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃
sed, awk, grep,cut,head,top,less,more,wc,join,sort,spilt等
Cat netstat.txt(查看文件内容)
Proto Recv-Q Send-Q Local Adderss Forigen Address state
tcp 0 48 115.28.159.6:ssh 113.46.178.155:63873 ESTABLISHED
tcp 0 0 localhost:mysql localhost:40334 ESTABLISHED
................
对文件内容进行统计
awk
语法:awk[options] ‘cmd’ file
一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
将切片直接保存在内建的变量中,$1,$2..($0表示行的全部)
支持对单个切片的判断,支持循环判断,默认分隔符为空格
awk ‘{print $1, $4}’ netstat.txt 截取文件中的第一列和第四列的内容(按照空格切片)
awk ‘$1==”tcp” && $2==1{print $0}’ netstat.txt
print $0输出整行, 筛选出第一列的为tcp ,第二列为1的行
awk ‘($1==”tcp” && $2==1) || NR==1 {print $0}’ netstat.txt
带有表头的数据
awk -F “,” ‘{print $2}’ test.txt 将test.txt中的内容 ‘,’分割成列,打印第二列
面试里常用的方式:
awk ‘{print $1, $4}’ netstat.txt
awk ‘$1==”tcp” && $2==1{print $0}’ netstat.txt
awk ‘{enginearrp[$1]++}END{for i in enginearr}print i “\t” enginearr[i]}’
批量替换文本内容
sed 语法: sed[option] ‘sed command’ filename
全名stream editor ,流编辑器
适合用于对文本的行内容进行处理
面试里常用的方式
sed ‘s/^Str/String/’ replace.java 将replace.java文件中以Str打头的字符串替换成String
默认是将改变输出终端,要写入文件中,需要加入 -i , sed -i ‘s/^Str/String/’ replace.java
sed -i ‘s/\.$/\;/’ replace.java 将以 .号结尾替换成;, 转义字符需要加\
sed -i ‘s/Jack/me/g’ replace.java 不加g, 一行只替换首个,加了g,一行替换全部
sed -i ‘/^ */d’ replace.java 删除空格
sed -i ‘/Integer/d’ replace.java 删除Integer所在的行