点击上方 “linux云原生网络”关注控制台快捷键,星标或者置顶
前言
在学习本篇文章之前,最好熟悉掌握基本Linux操作,并且需要了解一些 Shell 基础,文章中会介绍一些常见的 Shell 命令合集,需要了解TCP三次握手原理,文章的Shell命令合集包含对计算机进行网络分析。
控制台使用技巧(基础操作)
首先在类Unix系统交互操作中,控制台是必不可少的使用工具,掌握好控制台的使用技巧对后期操作会有很大的便利。
操作快捷键
Ctrl+r:可以快速查找历史命令
Ctrl+l:可以清理控制台屏幕
Ctrl+aCtrl+e:移动光标到命令行首行尾
Ctrl+wCtrl+k:删除光标之前之后的内容
VIM文件编辑快捷键ZZ:文件保存并退出
进程操作快捷键
Ctrl+c:强制终止程序的执行
Ctrl+z:挂起一个进程
Ctrl+d:终端中输入exit 后回车
linux命令中快捷键 (top)
Shift +p:根据CPU使用率排序
Shift +m:根据内存占用排序
Shell命令合集
说到这里,有些想说的,本文章讲解的Shell命令合集不是简单的单一命令使用,而是讲解Shell 命令组合的使用它们的适用场景虽然平时可能很少用到,但通过本文章的学习你能够在遇到此类场景时能够得心应手而不必临时查找或根据经验拼凑,同时期望通过这些组合命令的学习后你对对基础命令的理解可以得到进一步的提升
Shell命令合集分类
在这里咱们把Shell命令做一个分类,分为以下四类;
空间分析指定文件操作链接状态分析IP信息提取
那么基于以上的四种场景分类,咱们一一练习对应的命令及解决方法:
空间分析:场景1
磁盘空间不足,需要快速定位日志目录
需要如下组合命令
du -x --max-depth=1 /|sort -k1 -nr
du命令
#(Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间)
# -X参数表示跳过其他文件系统
# --max-depth 参数设置为 1,可以统计出根目录下第一级目录中所有文件大小
sort命令
# (Linux sort 命令用于将文本文件内容加以排序。sort 可针对文本文件的内容,以行为单位来排序。)
# -k 参数指明具体按照哪一列进行排序
# -n 参数表示只对数值进行排序
# -r 参数表示反向排序
整体分析sort 这一段命令的意思就是指定第一列并按照数据大小做反序排序
空间分析-场景2:
系统产生很多碎片文件,导致 inode 资源不足控制台快捷键,inode是存放操作系统进程的中的元数据, 如果inode资源不足会引起系统波动。
需要如下组合命令
find -type f|awk -F/-v OFS=/'{SNF="";dir[$0]++}END{for(i in dir)print dir[i]""i}'|sort -k1 -nr|head
# find 命令通过-type -f 参数查找指定文件类型的文件,然后将查找结果通过管道传递给 awk
# F/指定处理文件时字符串之间以/进行分割,-V OPS=/ 表示文件显示结果时以/进行分割展示
# awk命令整体规则而言有一个几END{}格式,前面的表示行处理操作,END{}表示行处理后需要进行整体结果行处理操作逻辑中,设置$NF为空表示将每一行的文件名信息去除,只保留目录路径,dir是一个自增数组,用于统计结果最后通过 for循环进行遍历输出dir关联数组中所有行信息
文件操作-场景1:
批量查找文件作内容替换
需要如下组合命令、
find ./-type f-name consumer.xml-exec sed -i"s/aaaaaa/bbbbbb/g"{};
# find 命令中
# -name参数指定查找的文件名
# -exec 参数将查找到的内容传递给下一个命令去继续执行相关逻辑sed 命令主要对文件内容进行替换,这里会将consumer 文件中的aaaaaa 替换成 bbbbbb
文件操作-场景2:
批量查找文件作拷贝打包
需要如下组合命令
(find .-name "*.txt"|xargs tar -cvf test.tar) && cp -f test.tar /home/.
# 括号中:包含两条命令,它们使用管道符进行连接。
# 括号外:通过”&&"符号与第三条命令进行连接,也就是我们首先需要执行括号中的组合命令,先查找所有 .txt 文件然后将结果传递给 xargs 命令进行打包,如果打包成功后才将压缩包传递给 cp 命令进行拷贝
网络连接状态分析
想了解用户请求所建立的网络连接状态分析
需要如下组合命令
netstat -n|awk '/^tcp/{++S[$NF]END{for (a in S)print a,S[a]}
# netstat-n 命令
# 负责查看主机上的所有 TCP、UDP连接信息
# awk 命令
# 负责对这些信息进行进一步的处理
# 斜杠括起来的正则表达式
# 主要用来匹配以tcp 开头的每一行信息,这里的正则表达式起到了一个过滤的作用 (只分析tcp的连接)后面则是对信息过滤后进行具体的统计和输出
IP信息提取
提取主机上的IP信
需要如下组合命令
ip a|grep "global"|awk'{print $2)' |awk -F/'{print $1}'
# ip a 负责查看主机上所有网卡的信息
# 通过grep进行条件过滤
# 再通过awk实现第二列内容输出
# 最后通过awk以指定/作为分隔符来打印第一列的信息
问题一:Shell适不适合作多并发任务?
答案:个人感觉并不适合在 Shell 中一般需要通过 nohup 方式将需要并发执行的命令放入后台,但这样操作存在一些问题包括:
1、进程的状态不好控制
2、进程间信息共享一般以文件方式等
所以当需要进行大的自动化工程任务需要作并发任务时,建议选择 Python、Go、PHP 等语言
问题二:Shell 的远程执行命令方式是什么?
答案:当 Shell 进行远程执行命令时
通常通过 ssh xx@xxx.xxx.xxx.xxx /home/ieson/imoocc.sh 参数的方式,但如果是批量主机任务,建议选择 ansible、saltstack 这样成熟且专业的工具实现;
– EOF –
往期推荐
Prometheus Metric实践总结
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信: