我总结以下我工作三年以来常用到的命令,以供大家参考。
1. 通过查日志定位问题的:
1)看实时的动态日志
tail -100f 日志文件名
2)快速找到你想看的关键字的部分日志
grep "关键字" 日志文件名 多关键字: grep XXX 文件名 |grep XXX |more
3)简单看日志前后文(测试环境用)
vim 日志文件名 进入后 /输入关键字 然后n是往下找关键字,上下键是浏览前后文
4)直接查找关键字前后几行
grep -C 50(行数) 关键字 文件名
5)通过行数定位你要找的日志
cat -n 文件名|grep 关键字 先找到你要的关键字所在行数
sed -n '开始行,结尾行p' 文件名
6)查看压缩包的内容 zcat 压缩包名.gz |grep 关键字
7)在jar包里找配置文件信息 vim jar包名,找到你想看的文件回车,可以用/快速定位要找的文件
2. 上传下载压缩解压复制等操作:
1)zip包: 打包命令 zip -r ROOT.zip ROOT;解压命令 unzip ROOT.zip
2)上传: rz 回车 下载 :sz 文件名 回车
3)本地复制 cp -r 源文件 目标文件夹/
4)远程复制 scp -r /source_path ssh_user@x.x.x.x:/destination_path
5)tar包:压缩 tar -zcvf 压缩文件名.tar.gz 被压缩文件名;解压 tar -zxvf 压缩文件名.tar.gz
3. 创建修改文件内容等操作:
1)创建文件,文件夹
mkdir 文件夹名; vim 文件名; touch 文件名
2)保存
i 表示开始写操作 :q! 表示强制退出不保存 :wq 表示退出保存
3)删除文件或文件夹
rm -rf 文件名 (这个操作退件测试环境用,因为是彻底删除,无法修复不建议线上用,必须确认好这个肯定要删除再使用谨慎)
批量删除: e: find /home/pso/qianke/logs -name '*qianke.2017-07*'|xargs rm -rf
4)模糊搜索文件 find / -name 关键字 /后面是哪个目录,如果是全局就写/
5)重命名文件 mv A B 把a改成b
4. 查看进程和服务等命令:
1)查看Java进程 ps -ef|grep java (Java可以替换成任意你想看服务的关键字)
2)停止进程 kill -9 进程号 (kill命令需谨慎使用),如果服务是Tomcat启的可以直接./stop.sh
3)查看以前操作过的命令 history | grep 关键字 或者:history n 最近几行的命令
4)查看当前路径 pwd 表示显示当前路径
5)查看cpu型号,内存信息(一般用在性能测试)
cat /proc/cpuinfo cat /proc/meminfo
6)切换root权限 sudo -i
5. 修改系统时间:
1)sudo date -s '2028-01-19 18:32:30'
2)处理日志时间与系统时间不一致https://blog.csdn.net/dufufd/article/details/77771729
6. 启动项目:
1)Tomcat项目,bin目录下的./startup.sh 和 ./stop.sh
2)非Tomcat项目,nohup 启动 用开发给的命令启动jar,war包 nohup java目录有时候要写/java -Dsia.profile=一些配置文件 -jar xxxx.jar/war
7.查看进程为什么挂掉了
1)可能是磁盘满了,看磁盘占用空间
df -h 总目录下
du -h
du -ah --max-depth=1 该目录下 或者du -sh * 或者 du -s * | sort -nr 排序
(如果程序突然当掉了,先看下cpu使用情况,如果某个应用的cpu使用率很大,考虑优化程序,如果cpu使用率都不大但还是很卡或当掉了,看下内存是不是占满了,找到哪个地方占满了内存,清理一下)
8. 服务连通性
1)ping ip 看服务器通不通
2)Telnet ip 端口号 看接口通不通(接口不通可能是防火墙,要配安全策略)
3)curl 命令单独介绍见9
9. curl 命令(我用在线上测试接口)
1)get 就和用postman一样,直接curl 地址参数,需要注意的是当多个参数的时候要加转义字符\ 才能准确表达&的意思
2)post HTTP:例如
curl HTTP请求地址 -X POST -H "Content-Type:application/json" -d '{"phone":"13911689118"}'
3)post webservice:例如
curl -H 'content-type: application/xml' -d '<soapenv:Envelope xmlns:soapen。。。。里面是webservice的所有参数' http://xxxxxxx?wsdl
9. git命令
1)查看分支 git branch -a
2)切分支 git checkout 分支名
3)拉分支 git pull
4)拉库 git clone 地址