一 Linux体系结构图
二 Linux如何查找指定文件?
利用find指令
- 语法:find path [options] params
- 作用:任何位于参数之前的字符串都将被视为预查找的目录名,如果在使用find时候不设置路径,find将在当前目录下查找子目录和文件,并且将子目录和文件全部显示
- 实操: find / -name "target.java" 查找根目录下文件名是target.java的文件 shell支持表达式,如果我们想查找target开头的文件也可以搜索find / -name "target* " 如果想忽略target的大小写也可以写find / -iname "target* "
总结:
三 检索文件内容或者管道传过来的内容
grep
- 语法:grep [options] pattern file
- 全称:Global Regular Expression Print (支持正则表达式)
- 作用:查找文件里符合条件的字符串(一行)
四 管道操作符 |
使用管道注意的要点
- 只处理前一个命令正确输出,不处理错误输出(左边传来的必须正确的,否则将抛出左边错误)
- 右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃(无数据显示)
- sed,awk,grep,cut,head,top,less,more,wc.join,sort,split等
面试里常用的方式
- grep 'partial[true]' bsc-plat-al-data.info.log 查找 bsc-plat-al-data.info.log 里包含 partial[true]的行
- grep -o 'engine[0-9a-z]*' grep -o 特定模式匹配,查找由在engine[]装满数字和字母的字符串
- grep -v 'grep' grep -v排除含特定字符串的行 如我们查找tomcat线程时候通常用 ps -ef|grep tomcat 但是这样找到的线程往往还包含了我们的这个查找线程 故我们可以用 ps -ef| grep tomcat |grep -v "grep" 真正找到tomcat线程
通常情况下,几种方式通过管道|组合使用 更好
五 对文件内容做统计
awk语法:awk [options] 'cmd' file
代码语言:javascript复制- 一次读取一行文本,按输入的分隔符进行切片,切成多个组成部分
- 将切片直接保存在内建的变量(awk自有的变量)中$1,$2.....($0表示行的全部,其他的表示一行的第几个切片)
- 支持对单个切片的判断,支持循环判断,```默认分隔符为空格
还有一个要注意的是 awk -F ","' { print $2}' test. txt,用-F 可以指定切割的分割符号
六 如何批量替换文本内容
sed 语法:sed [option] 'sed command' filename
- 全名stream editor,流编辑器
- 适合用于对文本的行内容进行处理
六.1sed的字符串替换(不是替换整行,仅仅是一个小string)
需要注意的是这里的替换不是替换含有第二个斜杠的字符串,它是绝对匹配字符串,比如你写的s它只会替换S而不是Str
六.2 sed的全文s替换
六.3sed -n查找指定时间段的内容.
代码语言:javascript复制sed -n '/Accessing Time/,/Accessing Time/'p | less;
这个命令可以从大文件中截取某个时间段的内容并less查看
sed -n -e '4,10p' -e '10q' Hugefile > Smallfile
这个命令表示截取第4行到第10行,并且到第10行后面sed就不再运行了。
详细的https://blog.csdn.net/diyiday/article/details/99413615