开发实用linux命令

断了今生、忘了曾经 提交于 2020-01-26 17:20:29

前言

今天是大年初二,今年新型冠状病毒肆虐,在家宅了3天了,实在无聊,索性总结下知识。今天来梳理下实用的linux命令,注意是实用!非常实用!这些命令是我处理线上问题经常用到的。

实用的linux命令

日志查询
 cat tmp.log

cat filename 查询整个文件,但是有时候线上日志文件会很大,这样打开整个文件会很耗时而且无法精准定位到想要的日志信息。比如你想看下项目启动时的日志,可以使用以下命令

cat tmp.log | head -200 // 查询文件的前200行
tail -200 tmp.log // 查询文件的最后200行

大部分时间我们看日志追踪问题都会有一些关键字信息,这个时候我们就可以根据关键字过滤查询日志了

cat tmp.log | grep "API请求参数"

当过滤后的日志信息太多时可以使用以下命令查看最前面200行日志

 cat tmp.log | grep "API请求参数" | head -200

当想要查看关键字日志上下文时,可以使用以下命令

cat tmp.log | grep "API请求参数" -C 10 | head -200

当想要查看后续新产生的日志,可以使用以下命令(适用复现问题)

 tail -f tmp.log 

当想要查询某行日志输出的总条数,可以使用以下命令(例如统计网关请求的次数)

 cat tmp.log | grep  "API请求参数" | wc -l

wc命令相关参数:

  • c 统计字节数
  • l 统计行数
  • w 统计字数
    这里是引用

这些选项可以组合使用。
输出列的顺序和数目不受选项的顺序和数目的影响。
总是按下述顺序显示并且每项最多一列:行数、字数、字节数、文件名
如果命令行中没有文件名,则输出中不出现文件名

对行日志进行截取并转存文件后续使用,可以使用以下命令

cat tmp.log | grep "API请求参数" | head -200 | cut -d "=" -f5 | cut -d "," -f1 > log.txt

使用以上命令我就提取出了网关请求的前200个方法名,并转存在文件log.txt上了。
在这里插入图片描述

cut -d “=” -f5 这段命令的意思是以“=”为分隔符分割当前行日志,-f5是代表取分割后的第五个元素,cut -d “,” -f1是再次以“,”分割取第一个元素,> log.txt是将内容转存成log.txt文件

文件传输

// 将服务器的文件传至本机电脑
sz log.txt 
// 将本地文件上传至服务器
rz 
// 如果没有sz或者rz命令,先下载并安装
yum install -y lrzsz

文件由root用户上传或者生成的,别的用户是无权访问文件的,我们大部分应用其实并不是以root用户启动的,所以程序会无权访问文件,看下面这个文件是root用户权限的
在这里插入图片描述
执行以下命令

 chown devjava:devjava log.txt

刚才的文件的所有权就变成devjava了,我们的使用devjava启动的程序就可以访问到文件了
在这里插入图片描述

redis

服务器登陆redis命令

 redis-cli -h '127.0.0.1' -p 6379-a 'password'

尽量避免线上使用keys *,因为redis是单进程单线程的,使用keys * 会阻塞线上应用,使用keys命令尽量明确key值,负责谨慎使用,实在需要模糊匹配可以使用scan命令

scan 0 match youdian1* count 800

scan命令是异步非阻塞的,缺点是无法匹配出所有数据,需要以游标的形式多次scan。

ftp

连接ftp命令

echo "==============start connect ftpi=============="

echo password

sftp  -oPort=20883 username@127.0.0.1

将文件从ftp获取到服务器

get demo_20200126.txt.zip

将文件从本地服务器传到ftp

// 将ftp.sh传到当前目录下
 put /root/ftp.sh

查看端口被占用

// 拿到进程id
 netstat -tunlp | grep 8080   
 // 或者 lsof -i :8080
// 查看进程是哪个应用
ps -ef | grep 11559
// 杀死进程
kill -9 11559 

总结

本文主要梳理了日常工作中经常使用的linux命令,没有系统梳理细节,全文立足于实用。

扫码关注公众号

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!