目录
查找某个文件位置的方法
-
whereis <程序名称>
-
find [路径] <文件名>
-name <文件名> 根据文件名查找文件 ps: find / -name 文件名
-iname <文件名> 根据文件名查找文件,忽略大小写
-ctime <天数> 过去N天内修改过的文件
-cmin <分钟> 过去N分钟内修改过的文件
-atime <天数> 过去N天内访问过的文件
-amin <分钟> 过去N分钟内访问过的文件
-size <大小> 根据文件大小查找文件,单位b c w k M G
从文件内容查找匹配指定字符串的行
-
grep 命令
命令行 | 注释 |
---|---|
grep –i "被查找的字符串" 文件名 | 查找时不区分大小写 |
grep "被查找的字符串" 文件名 | 从文件内容查找匹配指定字符串的行 |
grep –e “正则表达式” 文件名 | 从文件内容查找与正则表达式匹配的行 |
grep -c "被查找的字符串" 文件名 | 查找匹配的行数 |
grep –v "被查找的字符串" 文件名 | 从文件内容查找不匹配指定字符串的行 |
查看某一时间段的命令
-
sed命令
sed -n '/2022-07-22 11:16:00/,/2022-07-22 11:20:00/p' log.out
注意:
首先,斜杠后面的p是不能丢掉的;
上面命令左边是开始时间,右边是结束时间,这个时间如果在日志里面不存在,就查不出东西来
使用模糊查询
命令行 | 注释 |
---|---|
sed -n '/2022-07-22 11:16:*/,/2022-07-22 11:20:*/p' log.out | 按分钟模糊 |
sed -n '/2022-07-22 10*/,/2022-07-22 11*/p' log.out | 按小时模糊查询 |
结合grep,查询出带有某个关键字的日志记录
sed -n '/2022-07-22 11:16:*/,/2022-07-22 11:20:*/p' log.out |grep user
-
grep 命令
grep '时间' '日志文件名 '
查询日志中55分到56分之间的日志: grep '2022-07-22 14:5[5-6]' nohup.out
查看文件指定行数内容
tail 和 head 加上 -n参数后 都代表输出到指定行数,tail 是指定行数到结尾,head是开头到指定行 数,+数字 代表整数第几行, -数字代表倒数第几行。
-
tail命令
命令行 | 注释 |
---|---|
tail date.log | 输出文件末尾的内容,默认10行 |
tail -20 date.log | 输出最后20行的内容 |
tail -n +20 date.log | 输出第20行到文件末尾的内容 |
tail -n -20 date.log | 输出倒数第20行到文件末尾的内容 |
tail -f date.log | 实时监控文件内容增加,默认10行 |
-
head命令
命令行 | 注释 |
---|---|
head date.log | 输出文件开头的内容,默认10行 |
head -15 date.log | 输出开头15行的内容 |
head -n +15 date.log | 输出开头到第15行的内容 |
head -n -15 date.log | 输出开头到倒数第15行的内容 |
-
sed命令
命令行 | 注释 |
---|---|
sed -n '70,75p' date.log | 输出第70行到第75行的内容 |
sed -n '6p;260,400p; ' 文件名 | 输出第6行 和 260到400行 |
sed -n 5p 文件名 | 输出第5行 |
查看java进程信息
-
jps命令
参数 | 注释 |
---|---|
-q | 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数 |
-m | 输出传递给main 方法的参数,在嵌入式jvm上可能是null |
-l | 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名 |
-v | 输出传递给JVM的参数 |
jps是jdk提供的一个查看当前java进程的小工具
查看端口占用信息(包含进程号)
-
netstat命令
参数 | 注释 |
---|---|
-a | (all) 显示所有选项,但是不显示LISTEN相关 |
-t | (tcp) 仅显示tcp相关选项 |
-u | (udp) 仅显示udp相关选项 |
-n | 拒绝显示别名,能显示数字的全部转化成数字 |
-l | 仅列出有在 Listen (监听) 的服务状态 |
-p | 显示建立相关链接的程序名 |
-r | 显示路由信息,路由表 |
-e | 显示扩展信息,例如uid等 |
-s | 按各个协议进行统计 |
-c | 每隔一个固定时间,执行该netstat命令 |
LISTEN和LISTENING的状态只有用-a或者-l才能看到
#列出tcp协议,处于listen状态的连接信息,同时显示出进程号,进程名
netstat -ntlp
-
lsof命令
lsof -i:port
查看java进程栈信息
-
jstack命令
参数 | 注释 |
---|---|
jstack pid | 控制台打印出线程的信息以及线程对应的堆栈信息 |
jstack pid > new.txt | 输出线程的信息以及线程对应的堆栈信息到当前目录下的new.txt文件 |