水一篇常用的命令(水分有点大),为下一篇文章的一个小例题做个铺垫
netstat先来看看netstat的常用的选项

好,那么接下来我们要做的就是把他们拼起来,当我们想查询所有网络连接情况时,就可以使用
netstat -pantu

ss同样的,先来查看有哪些选项,可以看到与netstat很相似

既然如此,那么如果要使用ss查看所有连接同样可以使用
ss -pantu

ps可以使用ps aux查看当前的进程情况
其中
a 列出当前终端运行的所有进程u 列出进程所属用户信息x 列出后台进程此外还可以使用其他选项进行更加细致的排查
-p <PID> #展示特定PID的进程
-u <username> #展示特定用户的进程
-C <command> #依据命令行查询进程
-f #全格式输出
top与ps 相比top 则会实时动态展示进程情况

如图所示,上半部分表示当前时刻整体的资源利用情况,下班部分则是各个进程的资源占用情况以及命令行参数
同样的,top命令也有几个较为常用的选项
-o %CPU #按cpu占用率排序
-o %MEM #按内存占用排序
findfind 的功能还是蛮多的,我分点说叭
-mtime/-mmin 按时间搜索
+n表示 n天/分钟 之前-n表示 n天/分钟 之内n 表示具体的某天/某分钟n,其中-name/-iname 按名字搜索
-name 区分大小写,-iname不区分大小写,同时二者均支持使用*或者?进行模糊搜索-type 按文件类型搜索
d表示目录,f表示文件,l表示软链接-perm 按权限搜索
-user 按所属用户搜索
-exec 执行命令
除此之外,find允许使用逻辑运算符
-a 与-o或-not 非grep基础匹配控制
-i 区分大小写搜索-v 反向搜索,举个例子,grep -v "error" 1.txt 就是列出1.txt中不含error 的行-w 精确搜索,举个例子,grep -w “is” 1.txt 就是列出1.txt中包含is字段的行,并且不包括whoisthis 这种包含is字符却不是is 的字段-E 正则搜索输出结果控制
-n 展示行号-c 统计匹配到的行数-o 只输出匹配到的部分 例如一条web日志,若使用grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log 则只会输出IP-l 只显示文件名,例如在一个文件夹下 使用grep -l "access" * 则只会告诉你有哪些文件包含了access 而不会输出文件的具体内容递归搜索 -r
前序,后序
-A n 显示后面n行内容-B n 显示前面n行内容-C n 显示前后各n行内容lsof为什么要给这玩意儿单开一栏呢?主要是他具备上面的大部分功能,又能查网络又能看进程的
在linux中,有着“一切皆文件”的理念,而lsof正是利用着这一点,以文件的角度看待网络连接和进程
常用命令:
lsof -p <pid> / lsof -c <process> #列出特定进程所打开的文件
lsof -i #显示网络连接
lsof -i :<PORT> #检测端口占用
lsof -u <username> #展示特定用户打开的文件
lsof <file> #展示特定文件的进程