Linux常用命令总结
Linux常用命令指南
@Date 2017.05.23
tail
# 实时监听文件写入模式
tail -f jvm.log
# 查看文件倒数100行内容
tail -100 jvm.log
# 查看文件倒数100行内容 并 实时监听文件写入
tail -100f jvm.log
awk
- awk ' pattern {action} '
- 默认以空格切分
# 在jvm.log日志中搜索匹配com.test.java的行
awk '/com.test.java/' jvm.log
# 在jvm.log日志中搜索不匹配com.test.java的行
awk '!/com.test.java/' jvm.log
# 在jvm.log日志中搜索全匹配com.test.java 和 com.test2.java的行
awk '/com.test.java/ && /com.test2.java/' jvm.log
# 在jvm.log日志中,指定列(第一列)匹配com.test.java的行
awk '$1 ~ /com.test.java/' jvm.log
# NR(Number of Record) 输出行的行数(默认是换行符,所以是行数)
# NF(Number of Field) 当前行记录里域个数(横向切分的个数)
# 输出本行第一个和最后一个数据
awk '{print NR,NF,$1,$NF}' jvm.log
# 输出的时候没有逗号间隔,则输出结果没有分割,是紧挨着的
awk '{print $1 $2}' jvm.log
# -F 自定义指定分隔符
awk -F: jvm.log
# RS 输入记录分隔符
# BEGIN 表示在处理任意行之前进行的操作
# END 表示在所有输入行处理完后进行处理
# NF(Number of Field) 当前行记录里域个数(横向切分的个数)
cat jvm.log | grep -v "result" | awk 'BEGIN{RS="2017/05/23"} { split($NF,a,"m"); if(a[1]>1000) {print $0;} } END{}'
# 统计访问前X(10)的IP地址
awk '{print $1}' |sort|uniq -c|sort -nr |head -10 access_log
grep
# 文件查找
grep 'test' jvm.log
# 多文件查找
grep 'test' jvm.log gc.log
# 在指定目录下查找所有符合关键字的文件
grep 'test' /home/admin/ -r -n
# -i 不区分大小写查找(默认区分大小写grep)
grep -i 'pattern1' jvm.log
# 匹配行向上匹配x
grep 'test' -A x
# 匹配行向下匹配x
grep 'test' -B x
# 匹配行上下匹配x
grep 'test' -C x
# grep 中OR 匹配
# \| : 注意转义
grep 'pattern1\|pattern2' jvm.log
# -E 选项可以用来扩展选项为正则表达式
# 使用-E时,可以直接使用 | 表达OR
# egrep = grep -E
grep -E 'pattern1|pattern2' jvm
egrep 'pattern1|pattern2' jvm
# -v 可以实现 NOT 操作
grep -v 'pattern1' jvm.log
find
# 在多个目录下查找文件
find /home/admin/ /temp /etc -name \*.log
# 查找指定大小的文件
# 大于100k的文件
find /home/admin -size +100k
# 小于100k的文件
find /home/admin -size -100k
uniq
# 默认去重
uniq -c
netstat
# 查看网络链接并输出状态
netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn
top
# 显示PID对应的所有线程占用资源
top -Hp pid
printf
# 输出TID(线程ID)对应的十六进制表示
printf "%x" TID
date
# UNIX的时间戳
date +%s
# 标准时间 -> UNIX时间戳
date -d "2017-06-19 00:00:00" +%s
date -d "2017/06/19 00:00:00" +%s
# UNIX时间戳 -> 标准时间
date -d @1497801600 "+%Y-%m-%d"
date -d @1497801600 "+%Y/%m/%d"
sed
# 统计一段时间内的日志
sed -n '/2017-07-16 12:30:00/,/2017-07-16 16:00:00/p' info.log
pmap
# 查看进程的内存占用
pmap -d pid
curl
# 查看请求的耗时时间
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "域名"

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Java之所有输入流输出流的分类
(1)字节输入流 基类:InputStream FileInputStream、ByteArrayInputStream、PipedInputStream、BufferedInputStream、ObjectInputStream、FilterInputStream、PushbackInputStream、DataInputStream (2)字节输出流 基类:OutputStream FileOutputStream、ByteArrayOutputStream、PipedOutputStream、BufferedOutputStream、ObjectOutputStream、FilterOutputStream、PrintStream、DataOutputStream (3)字符输入流 基类:Reader FileReader、CharArrayReader、PipedReader、StringReader、BufferedReader、InputStreamReader、FilterReader、PushbackReader (4)字...
-
下一篇
Java集合详解1:ArrayList,Vector与Stack
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/80261556 微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站。(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源) 本文非常详尽地介绍了Java中的三个集合类 ArrayList,Vector与Stack ”Java集合详解系列“是我在完成Java基础篇的系列博客后准备开始写的新系列。 Java集合系列专栏地址:https://blog.csdn.net/column/details/21877.html 之前的Java基础系列博客首发于我的个人博客:https://h2pl.github.io/ 在这个分类中,将会写写Java中的集合。集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是...
相关文章
文章评论
共有0条评论来说两句吧...