开发工程师必会的Linux命令
之前分享过一篇有关Linux的操作命令,内容很全,但是比较基础。然而,实际工作中用到的比那些稍复杂些,本篇分享一些开发工程师必须具备的
1.日志查询类
-
按关键字不分页查询
grep "applyId” app.log //applyId为要查询的关键字,app.log为日志名 -
按关键字从前往后分页查询
cat -n app.log | grep "applyId" | more
以上命令会分页输出,使用空格键翻页,使用回车键显示更多 -
按关键字只显示最后M行查询
tail -n M app.log | grep “applyId” //M为行数 -
按关键字动态显示最新M行查询
tail -f M app.log | grep “applyId" //M为行数 -
日志太多,将相关日志输出到文件后查看
cat -n app.log | grep "applyId" >app-new.log //app-new.log为文件名 -
按日期范围查询
sed -n '/2017-10-17 10:10:10/,/2017-10-17 10:15:00/p' app.log
注意:
2017-10-17 10:10:10 和 2017-10-17 10:15:00必须是日志中真实打印输出过的 -
动态输出最新M行日志
tail -100f app.log
2.端口查询类
-
查看端口使用情况
netstat -tln -
查看指定端口使用情况
netstat -ano | grep 2181 //查看2181端口使用情况 -
查看占用指定端口的进程
sudo lsof -i :2181 //查看2181端口被哪个进程占用
3.查看网络连接
-
列出所有打开的网络连接(tcp和udp)
lsof -i -
列出所有打开的tcp网络连接
lsof -i tcp -
列出所有打开的udp网络连接
lsof -i udp -
列出指定的tcp端口情况
lsof -i tcp:80 -
列出指定的udp端口情况
lsof -i udp:55
4.查看资源使用情况
-
查看CPU使用率、内存、虚拟内存交换情况、IO读写情况
vmstat 5 //每5秒刷新一次 -
查看系统中各个进程的资源占用状况
top //使用top命令后,按Shift+M, 显示结果将按照进程内存占用率排序 -
查看内存使用情况
free -m //以MB为单位 -
查看磁盘空间使用情况
df -h
5.进程操作
-
根据名称查询进程
ps -ef | grep java //使用标准格式显示
ps aux | grep java //使用BSD的格式显示 -
杀掉进程
kill -9 pid //pid为相应的进程号
6.文件复制
scp是一种安全方式的文件复制,基于ssh
-
复制本地文件到远程机器
复制本地文件app.config到远程192.168.10.190服务器/config/目录下
scp /config/app.config root@192.168.10.190:/config/ //root是用户名 -
复制远程文件到本地
scp root@192.168.10.190:/config/app.config /config/ //root是用户名