1.如何找到特定的文件?

find

语法:find path [options] params
如: find / -name test.java
从/目录开始递归查询,如果要充home目录,则将/改为~既可
find ~ -iname test.*
从home目录递归查找,忽略大小写,查询以test.开头的文件

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find作用:

  • 1.在指定目录下查找文件

和find有区别,which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

2.检索文件内容

grep
(全称:Global Regular Expression Print)

语法: grep [options] pattern file

grep作用:

  • 1.查找文件里符合条件的字符串

| 作用
(管道操作符,用于接收和传递上个指令的正确输出结果)

1.只处理前一个命令的正确输出,不处理错误输出
2.右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃

面试常用的方式:
  • grep 'xxx' demo.log 从demo.log文件里筛选出包含xxx的行
  • grep -o 'xxx' 筛选出xxx的内容
  • grep -v 'grep' 排除掉grep的内容

3.对文件内容做统计

awk

语法: awk [options] 'cmd' file

awk作用:

  • 一次读取一行文本,按输入分隔符进行切片,切成多个组成部分
  • 将切片直接保存在内建的变量中,$1,$2...($0表示行的全部)
  • 支持对单个切片的判断,支持循环判断,默认分隔符为空格

如:
awk '{print $1,$4}' netstat.txt
该命令是对netstat.txt文件的列进行切片, 并打印输出第一列和第四列的内容(默认按照空格分隔,也可以通过指定命令如 awk -F "," '{print $2}' test.txt 其中-F是以什么来分隔的)

面试常用的方式:
  • awk '{print $1,$4}' netstat.txt
    筛选出文件里的数据

  • awk '$1=="tcp" && $2==1{print $0}' netstat.txt
    从文件里按照一定的条件筛选数据

  • awk'{arryname[$1]++} END {for (i in arryname} print i "\t" arryname[i]'
    对数据进行统计

4.批量替换文件内容

sed:
(全称:stream editor,流编辑器)

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

sed作用:

  • 更适合对文件编辑
面试常用的方式:
  • sed -i 's/^Str/String/' demo1.java
    替换掉以Str开头的内容,替换为String,加-i是将替换完后的文件覆盖源文件

  • sed -i 's/.$/;/' demo1.java
    筛选出.号结尾的行,并将.号替换成; 其前的\均为转义字符

  • sed -i '是/Jack/me/g' demo.java
    筛选出包含Jack的行,并将该字符串替换成me, 在最后加了g后,对整行内容全部替换,不加则只替换一次
    加s是表明对字符串做操作

  • sed -i '/^ *$/d' demo1.java
    删除空格行 末尾的d是删除作用

常用命令
查找80端口是否被占用

lsof -i:80

netstat -apn | grep 80


image.png

vmstat


image.png
image.png
image.png

排查步骤:


image.png
image.png
image.png
image.png
image.png
收藏
评论加载中...