Linux常用命令总结

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Linux常用命令指南@Date 2017.05.23tail# 实时监听文件写入模式tail -f jvm.log# 查看文件倒数100行内容tail -100 jvm.

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" "域名"
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
11天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
167 65
|
3天前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
25 2
Linux系统之lsof命令的基本使用
|
11天前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
36 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
13天前
|
监控 安全 网络协议
|
5天前
|
Linux
Linux 系统五种帮助命令的使用
Linux 系统五种帮助命令的使用
30 14
|
1天前
|
运维 网络协议 Linux
linux系统命令 losf详解
**lsof命令**(List Open Files)是Linux系统中一个非常实用的工具,用于列出当前系统上所有打开的文件以及与之关联的进程。以下是对lsof命令的详细介绍: ### 一、基本功能 lsof命令可以显示系统中被进程打开的文件,这些文件可以是普通文件、目录、网络套接字、设备文件等。通过lsof命令,用户可以方便地查看哪些文件被哪些进程打开,以及这些文件的状态信息。 ### 二、基本语法 lsof命令的基本语法为:`lsof [选项] [文件]`。其中,选项用于指定lsof命令的行为,文件则是可选的,用于指定要查询的文件。 ### 三、常用选项 * `-a` 或 `-
|
1天前
|
Linux Perl
Linux awk命令使用技巧
【10月更文挑战第16天】Linux awk命令使用技巧
9 4
|
6天前
|
Linux
Linux经常使用命令汇总和总结
Linux经常使用命令汇总和总结
25 1
|
6天前
|
安全 Linux Shell
Linux | Rsync 命令:16 个实际示例(上)
Linux | Rsync 命令:16 个实际示例(上)
20 0
Linux | Rsync 命令:16 个实际示例(上)
|
9天前
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
20 2