Linux常见指令
Shell指令
- 如何查找特定的文件
- 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...($表示行的全部)
- 支持对单个切片的判断,支持循环判断,默认分隔符为空格
面试常用的方式
- awk '{print $1,$4}' netstat.txt:输出第一列和第四列
- awk '$1=="tcp" && $2==1{print $0}' netstat.txt:输出第一列为tcp值和第四列为1的全部数据
- awk '{enginearr[$1]++}END{for(i in enginearr)print i"\t" enginearr[i]}':统计第一列数据出现次数
批量替换文件内容
sed
语法:sed [option] 'sed command' filename
- 全名为stream editor,流编辑器
- 适合用于对文本的行内容进行处理
面试常用的方式
- sed -i 's/^Str/String/' replace.java:将Str开头的行改为String
- sed -i 's/\.$/\;/' replace.java:将.结尾的行都改成;
- sed -i 's/jack/me/g' replace.java:将出现jack的地方都改为me