常用Shell命令集合和使用方法(推荐)
更新时间:2020年05月19日14:04:20作者:李俊的博客
这篇文章主要介绍了最常用Shell命令集合和使用方法,本文分场景通过实例讲解给你们介绍的十分详尽,对你们的学习或工作具有一定的参考借鉴价值,须要的同学可以参考下
一、控制台使用方法
基于我平常的工作经验,总结出一些我常用的快捷键
1.1操作快捷键
Ctrl+r:可以快速查找历史命令
Ctrl+a/Ctrl+e:联通光标到命令行首/行尾
Ctrl+w/Ctrl+k:删掉光标之前/以后的内容
1.2VIM文件编辑快捷键
ZZ:文件保存并退出
1.3进程操作快捷键
Ctrl+c:强制中止程序
Ctrl+z:挂起一个进程
Ctrl+d:终端输入exit后回车
1.4linux命令中快捷键(top)
Shift+p:按照CPU使用率排序
Shift+m:按照Mem使用率排序
二、Shell命令合辑
首先,我们先对Shell命令合辑做一个分类,主要可分为空间剖析,指定文件操作,链接状态剖析,IP信息提取
2.1空间剖析
场景1:c盘空间不足,需快速定位日志目录
该场景主要用在linux操作系统c盘空间不足arch linux,须要快速定位c盘使用情况,对文件的c盘使用率做排序,须要用到如下组合命令:
du -x --max-depth=1 / | sort -k1 -rn #-x 表示跳过其他文件系统
-x表示跳过其他文件系统linux awk 常用命令,只剖析本文件系统上面的文件,排除一些额外的干扰项;--max-depth=1表示只剖析/目录下第一级目录下的所有文件大小;-k表示具体根据那一列进行排序;-r是逆序排列;-n表示只对数值排序
场景2:系统形成好多碎片文件,引起inode资源不足
该场景主要是操作系统形成大量碎片文件,骤然消耗大量innode,innode的过渡使用会造成innode资源不足未能创建文件,由于du命令只能统计c盘使用情况未能统计碎片文件的个数,所以统计碎片文件个数须要用到如下组合命令
find -type f | awk -F/ -v OFS=/ '{$NF="";dir[$0]++}END { for (i in dir) print dir[i] i}' | sort -k1 -rn | head
这条命令比较复杂,使用了find,awk,sort,head。
通过find找出指定文件类型的文件,之后管线给awk,它可以把文本内容按行进行低格输出并展示,-F/指定处理文件时字符串之间以/进行分割,-vOFS=/表示文件显示结果时以/进行分割展示。对于awk命令整体规则而言有一个{}END{}格式,上面的{}表示行处理操作,END{}表示行处理后须要进行整体结果出,在行处理操作逻辑中,设置$NF为空表示将每一行的文件名信息清除,因而只保留目录路径,dir是一个自增链表,用于统计结果。最后通过for循环进行遍历输出dir关联链表中所有行信息。
2.2指定文件操作
场景一:批量查找文件对内容做替换
场景一适用于一个目录下有多个子目录,但是子目录下有大量文件,我们须要找到指定文件之后替换文件上面的内容,须要用到如下组合命令:
(find . -name "*.txt"|xargs tar -cvf test.tar) && cp -f test.tar /home/.
通过find命令查找当前目录下的所有子文件夹名称为consumer.xml的文件,然管线给sed鸟哥的linux私房菜,通过-i把文件内容替换。
场景二:批量查找文件作拷贝打包
场景二主要是用在对查找到的指定文件进行打包,之后拷贝到指定路径,可以使用如下组合命令:
netstat -n | awk '/^tcp/{arr[$NF]++ } END {for (i in arr) print arr[i] " " i }'
查找当前目录下的所有以.txt结尾的文件,之后打包成test.tar,假如打包成功则把压缩包拷贝到/home目录下
2.3网路联接状态剖析
场景一:列举tcp合同下的联接,并统计所有状态的总数
场景一主要用在查看服务器当前有多少TCP类型的联接,剖析TCP/IP网路状态(ESTABLISHED,TIME_WAIT)
netstat -n | awk '/^tcp/{arr[$NF]++} END {for (i in arr) print arr[i] " " i}'
对于awk命令整体规则而言有一个{}END{}格式linux awk 常用命令,上述命令剖析了TCP合同下,所有类型联接的总量,可用于剖析查看当前服务器联接数。
2.4IP信息提取
场景一:通过命令获取主机IP信息
ip a|grep "global"|awk'{print $2}'|awk -F/'{print $1}'
ipa负责查看主机上所有的网卡信息,之后过滤global关键字,复印出第二列,再把子网网段移除掉即可获取到主机ip
三、常见问题
问题一:Shell适不适合作多并发任务
答:不适宜,Shell中通常是通过nohup的形式把须要并发执行的任务装入后台,这样做有存在一些问题,包括进程状态不好控制,进程间信息共享通常以文件方式进行等,所以当须要进行大的并发任务执行时,建议使用Python,Go,PHP语言实现并发。
问题二:Shell适宜用在哪些场景中
答:Shell适宜用在追求运维高效(非性能高效)要求的简单场景中,如日志切割、进程剖析、系统初始化等。
总结
到此这篇关于常用Shell命令集合和使用方法(推荐)的文章就介绍到这了,更多相关Shell命令集合和使用方法内容请搜索脚本之家曾经的文章或继续浏览下边的相关文章希望你们之后多多支持脚本之家!