一,控制台使用技巧
1,操作快捷键
Ctrl+r
:可以快速查找历史命令
Ctrl+l
:可以清理控制台屏幕
Ctrl+a
\ Ctrl+e
:移动光标到命令行首\行尾
Ctrl+w
\ Ctrl+k
:删除光标之前\之后的内容
2,VIM文件编辑快捷键
快捷键ZZ
:文件保存并退出
3,进程操作快捷键
Ctrl+ c
:强制终止程序的执行
Ctrl+z
:挂起一个进程
Ctrl+d
:终端中输入exit后回车
4,linux命令中快捷键(top)
Shift+p
:根据CPU使用率排序
Shift+m
:根据内存占用排序
二,各种使用场景
场景1:磁盘空间不足,需快速定位日志目录
du -x --max-depth=1 / | sort -k1 -nr
du命令中:
-x 参数表示跳过其他文件系统
–max-depth 参数设置为 1,可以统计出根目录下第一级目录中所有文件大小。
sort命令中:
-k 参数指明具体按照哪一列进行排序
-n 参数表示只对数值进行排序
-r 参数表示反向排序
整体分析sort这一段命令的意思就是指定第一列并按照数据大小做反序排序
场景2:系统产生很多碎片文件,导致inode 资源不足
find -type f | awk -F / -v OFS=/ '{$NF="";dir[$0]++}END{for(i in dir)print dir[i]" "i}' | sort -nr | head
find 命令
-type f :查找指定文件类型的文件,然后将查找结果通过管道传递给awk。
awk 命令
-F / :指定处理文件时字符串之间以 / 进行分割
-V OPS=/ :表示文件显示结果时以 / 进行分割展示
awk命令整体规则而言有一个{}END{}格式,
前面的{}表示行处理操作,
END{} 表示行处理后需要进行整体结果行处理操作逻辑中
设置$NF 为空表示将每一行的文件名信息去除,只保留目录路径,dir 是一个自增数组,用于统计结果。
最后通过 for 循环进行遍历输出dir关联数组中所有行信息
场景3:批量查找文件作内容替换
find ./ -type f -name consumer.xml -exec sed -i 's/aaaaaa/bbbbbb/g' {} \;
- find 命令中
-name 参数指定查找的文件名
-exec 参数将查找到的内容传递给下一个命令去继续执行相关逻辑
sed 命令主要对文件内容进行替换,这里会将consumer文件中的aaaaaa替换成bbbbbb
场景4:批量查找文件作拷贝打包
(find . -name "*.txt" | xargs tar -cvf test.tar) && cp -f test.tar /home/.
- 括号中
包含两条命令,它们使用管道符进行连接 - 括号外
通过"&&"符号与第三条命令进行连接,
我们首先需要执行括号中的组合命令,先查找所有.txt 文件。然后将结果传递给 xargs 命令进行打包,如果打包成功后才将压缩包传递给cp命令进行拷贝。
场景5:想了解用户请求所建立的网络连接状态分析
netstat -n | awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'
-
netstat-n命令
负责查看主机上的所有TCP、UDP 连接信息 -
awk命令
负责对这些信息进行进一步的处理
主要用来匹配以 tcp 开头的每一行信息,这里的正则表达式起到了一个过滤的作用(只分析tcp的连接)后面则是对信息过滤后进行具体的统计和输出。
场景6:提取主机上的 IP 信息
ip a | grep "global" | awk '{print $2}' | awk -F / '{print $1}'
ip a : 负责查看主机上所有网卡的信息通过
grep 进行条件过滤
再通过 awk 实现第二列内容输出
最后通过 awk 以指定/作为分隔符来打印第一列的信息