前言只有光头才能变强。文已收录在我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y之前写过一篇文章《 在公司做的项目和自己在学校做的有什么区别? 》不知道大家还有没有印象,里面提到了可能需要等待LinuxatworkServer,查看一些资料(特别是查看日志找bug)。我在大学的时候也上过Linux的课程,期间也做过Linux相关的笔记:看完这篇文章,你将能够使用Linux的基本操作。用户和权限管理。阅读后,您将能够使用它。linux进程管理linux网络管理但是,在学校学了之后并没有练手(还是太好了),到了公司可以说是忘得一干二净了。本文主要回顾一下之前的笔记,记录一些工作中比较常用的命令。我必须根据我目前的维度来考虑这一点。我的工作时间比较短,所以可能会有很多命令会被忽略。欢迎在评论区补充。检查日志是一个很常见的操作。第一次在网上机器上查看日志的时候,只记得以下命令(假设我们现在的日志文件叫service.log):catservice.logtail-fservice.logvimservice.log(显然不够)现在每天日志输出的大小在1GB左右:如果是小文件,简单的cat命令还是可以搞定的,但是如果直接用cat命令打开一个1GB的日志文件,保证会卡死(ctrl+c退出cat命令需要很长时间才能停止cat命令)。一般我只用cat查看这个小文件的文本内容。同样,如果是小文件,可以使用简单的vim命令打开文件,但如果使用vim命令打开1GB或更大的文件,也能明显感觉到缓慢和卡顿。平时还是喜欢用vim找对应的记录。我的一般操作:vim服务按G跳到文件末尾按?-fservice.log这个命令一般用来查看流量是否进来了(或者调试的时候可以直接看log,然后快速ctrl+c关掉)。面对比较大的日志文件,我们不得不配合grep,比如我们现在知道某个手机号收不到短信验证码,想看看这个手??机号的日志是什么样的。所以我们可以这样做:grep13888888888这样就可以把service.log中所有包含13888888888的记录都搜索出来了,搜索速度还是很快的。现在我们已经可以根据关键字搜索到对应的记录了,接下来我想看看那条记录的日志上下文【这样我们就可以知道这条数据大概的执行状态】首先,我们要搞清楚对应记录号的行,只需要在cat命令后加一个-n参数即可。所以命令是:cat-nservice.log|grep13888888888,如下图,我们可以找到对应的行号。现在行数是29506,一般只需要看29506的前10行和后10行就知道问题所在了。它出现在哪里,所以我们可以这样做:sed-n"29496,29516p"service.log:从第29496行开始搜索,到第29516行结束cat-nservice.log|尾-n+29496|head-n20:从29496行开始查找,往前推20条如果关键字不准确(日志输出记录过多),我们可以使用more命令浏览或者输出到一个文件进行分析:catservice.日志|grep13|more:将查询结果发送到more输出catservice.log|grep13>/home/sanwai/aa.txt在将查询结果写入/home/sanwai/aa.txt文件时,我们要统计这个日志输出了多少行,可以使用这个命令:catservice.log|wc-l参考:https://www.cnblogs.com/xiashan17/p/7059978.html2.查看进程和端口查看进程有两条命令:ps-efpsaux以上两条命令列出了所有的进程和端口processes,我们还是过滤掉我们要检查的processes|pipeline和grep,例如:ps-ef|grepjava为什么进程查出来了?知道它的进程ID,我们就可以杀死它。kill-9processId:杀掉一个进程,查看端口也是很常见的操作。常用命令:netstat-lntup:l:listeningn:numt:tcpu:udpp:displayPID/Programnameforsockets查看当前所有sockets的tcp/udp端口信息查看某个端口的详细信息:lsof-i:40003.查看系统状态3.1TOP实时查看进程状态TOP命令查看进程状态,有个loadaverage可能不太好理解,下面解释一下:loadaverage:特定时间间隔内运行队列中的平均进程数(有多少进程正在CPU上运行或等待运行)。loadaverage有三个值,分别代表:1分钟、5分钟、15分钟内运行进程队列中的平均进程数。Runningprocesses+processesreadytorun特定时间段内(1分钟,5分钟,10分钟)的平均进程数Linux进程可以分为三种状态:BlockedprocessesRunnableprocessesRunnableprocessesrunningprocessessuchasnow系统有2个正在运行processes和3个runnableprocesses,则系统负载为5,loadaverage为一定时间内负载的平均数。3.2free查看内存使用情况Linux的内存管理机制的思想包括(不是说是)最大化内存利用率,内核会申请剩余的内存作为cached,cached不属于free的范畴。如果空闲内存不够用,内核会回收部分缓存内存,并将回收的内存重新分配给应用程序。所以对于Linux系统来说,可以用来分配的内存不仅仅是空闲内存,还有缓存内存(其实也包括缓冲区)。可用内存=空闲内存+缓存内存+buffersBufferCache和PageCache。前者用于磁盘块的读写,后者用于文件inode的读写。这些Cache有效地缩短了I/O系统调用(如read、write、getdents)的时间。对磁盘的操作有逻辑层面(文件系统)和物理层面(磁盘块)。工作时间比较短,所以很多命令可能会被忽略。欢迎在评论区补充更多常用命令。如果以后有些命令比较重要,我会再分享的~很高兴输出干货Java技术公众号:Java3y。公众号200多篇原创技术文章,海量视频资源,精美思维导图,关注获取!我觉得我的文章写的不错,点个赞!
