首页 / LINUX / 工作中常用到的Linux命令
工作中常用到的Linux命令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了工作中常用到的Linux命令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4797字,纯文字阅读大概需要7分钟。
内容图文
![工作中常用到的Linux命令](/upload/InfoBanner/zyjiaocheng/931/c85f3c4bb1ae46b19516a437d008b0c7.jpg)
前言
只有光头才能变强。
文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y
之前写过一篇 《 在公司做的项目和自己在学校做的有什么区别? 》不知道大家还有印象没有,里面提到了在工作中可能需要等上Linux服务器,查看一些信息(特别是查日志找Bug)。
我在大学的时候也有过Linux的课程,在期间也做过Linux相关的笔记:
但是,在学校学完,没咋练手(还是太菜了),去到公司可以说是全忘光了。这篇文章主要来回顾以前的笔记,以及记录一下在工作中比较常用的一些命令。
我这肯定是以我现在的维度来考量的,我工作时长比较短,所以可能会有很多命令会忽略掉了,欢迎在评论区补充
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042500500.jpg)
一、查看日志
线上出现了问题,登上线上的机器查日志是非常常见的操作了。我第一次登上线上机器查日志的时候,我还只记得以下的几个命令(假设现在我们的日志文件叫做service.log
):
cat service.log
tail -f service.log
vim serivice.log
(明显是不够用的)
现在日志每天产出的大小大概1GB:
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042501632.jpg)
如果是小文件的话,单纯的cat
命令还是可以应付的,但如果你直接用cat
命令打开一个1GB的日志文件,保证卡死你(ctrl + c
退出cat
命令需要很久才能将cat
命令停下来)。
一般我只用
cat
来查看这个小文件的文本内容是什么
同样地,如果是小文件,单纯的vim
命令去打开文件也是可以应付的,但如果你用vim
命令去打开一个1GB甚至更大的文件,也能明显感受到缓慢和卡顿。
平时我还是很喜欢用vim
去查找对应的记录的,我一般的操作:
vim service
按
G
跳转到文件的末尾按
?
+关键字搜索对应的记录按
n
往上查询,按N
往下查询
tail -f service.log
这个命令我一般用于查看流量是否进来了(或者调试的时候可以直接看到日志,再迅速ctrl +c
关掉)
面对比较大的日志文件,这我们就得配合grep
来玩了,比如我们现在得知某个手机号收不到短信验证码,想要看一下这个手机号的日志是怎么样的。于是我们就可以这样搞:
cat service.log | grep 13888888888
这么一搞,就能将service.log
中所有含有13888888888
的记录给搜出来,搜索的速度还是贼快的。
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042502767.jpg)
现在我们已经能根据关键字搜到对应的记录了,接着我想看一下那条记录的日志上下文【这样就能知道这条数据大概的执行状态了】
首先,我们先要查出对应记录的行号,在cat
命令后面加上一个 -n
参数就好了。所以命令是:cat -n service.log | grep 13888888888
,如下图我们就可以查到对应的行号了
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042505057.jpg)
现在行数是29506,我们一般只要看一下29506的前10行和后10行就差不多知道问题出现在哪了,于是我们可以这样做:
sed -n "29496,29516p" service.log
:从29496行开始检索,到29516行结束cat -n service.log | tail -n +29496 | head -n 20
:从29496行开始检索,往前推20条
如果关键字不太准确(日志输出的记录太多了),我们可以使用more
命令来浏览或者输出到文件上再分析:
cat service.log | grep 13 |more
:将查询后的结果交由more输出cat service.log | grep 13 > /home/sanwai/aa.txt
将查询后的结果写到/home/sanwai/aa.txt
文件上
有的时候,我们想统计这个日志输出了多少行,我们可以使用这条命令:
cat service.log | wc -l
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042507286.jpg)
参考资料:
https://www.cnblogs.com/xiashan17/p/7059978.html
二、查进程和端口
查进程有两个命令:
ps -ef
ps aux
上面两个命令都是列出所有的进程,我们还是通过 |
管道和grep
来过滤掉想要查的进程,比如说:ps -ef |grep java
把进程查出来干嘛?知道它的进程ID了,我们可以把他给杀掉。
kill -9 processId
:杀掉某个进程
查端口也是一个很常见的操作,常见命令:netstat -lntup
:
l:listening???n:num???t:tcp??u:udp??p:display?PID/Program?name?for?sockets
查看当前所有tcp/udp端口的信息
查看某个端口详细的信息:lsof -i:4000
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042508384.jpg)
三、查看系统的状态
3.1 TOP实时查看进程的状态
TOP命令查看进程的状态,其中有个load average可能不是那么好理解,下面来解释一下:
load average:在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。
load average 有三个值,分别代表:1分钟、5分钟、15分钟内运行进程队列中的平均进程数量。
正在运行的进程 + 准备好等待运行的进程 在特定时间内(1分钟,5分钟,10分钟)的平均进程数
Linux进程可以分为三个状态:
阻塞进程
可运行的进程
正在运行的进程
比如现在系统有2个正在运行的进程,3个可运行进程,那么系统的load就是5,load average就是一定时间内的load数量均值。
3.2free查看内存使用状况
linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化,内核会把剩余的内存申请为cached,而cached不属于free范畴。
如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。
可用内存=free的内存+cached的内存+buffers
Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。磁盘的操作有逻辑级(文件系统)和物理级(磁盘块)
参考资料:
https://blog.csdn.net/zhangchenglikecc/article/details/52103737
https://www.cnblogs.com/peida/archive/2012/12/24/2831353.html
最后
我工作时长比较短,所以可能会有很多命令会忽略掉了,欢迎在评论区补充比较常用的命令。后续如果某些命令比较常见的,我再分享哈~
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042509507.jpg)
推荐阅读:
![工作中常用到的Linux命令 - 文章图片](/upload/getfiles/0001/2021/5/10/20210510042511874.jpg)
内容总结
以上是互联网集市为您收集整理的工作中常用到的Linux命令全部内容,希望文章能够帮你解决工作中常用到的Linux命令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。