《Java实战开发》Linux排查问题常用命令

Java开发工作中会遇到各种bug,以下是自己常用的一些命令,用的时候会忘记,在此记录,方便查询。同时也做一下分享。

查看文件内容

通常用来查看日志,分析问题/bug

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
  • grep 管道符

cat

由第一行开始显示文件内容

语法

cat [-AbEnTv]

常用参数:

  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符
    例子:
cat /logs/debug.log

tac

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:

语法

tac[-AbEnTv]

常用参数:
同cat
例子:

tac /logs/debug.log

nl

显示行号

语法

nl [-bnw] 文件

常用参数:
例子:

nl /logs/debug.log

more

一页一页翻动

语法

more 文件

常用参数:
运行时可操作

  • 空白键 (space):代表向下翻一页;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
    例子:
more /logs/debug.log

less

与 more 类似,但是比 more 更好的是,他可以往前翻页!

语法

less  文件

常用参数:
运行时可操作

  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q :离开 less 这个程序;
    例子:
less /logs/debug.log

head

只看头几行

语法

head [-n number] 文件 

常用参数:

  • -n :后面接数字,代表显示几行的意思
    例子:
    显示前20 行
 head -n 20  /logs/debug.log

tail

只看尾部几行

语法

tail [-n number] 文件 

常用参数:

  • -n :后面接数字,代表显示几行的意思
  • -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
    例子:
    实时显示最新内容
tail -f /logs/debug.log

df du 磁盘管理

用来查看磁盘使用情况

语法:

du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

常用参数:

  • -a或-all 显示目录中个别文件的大小。
  • -b或-bytes 显示目录或文件大小时,以byte为单位。
  • -c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -D或–dereference-args 显示指定符号连接的源文件大小。
  • -h或–human-readable 以K,M,G为单位,提高信息的可读性。
  • -H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
  • -k或–kilobytes 以1024 bytes为单位。
  • -l或–count-links 重复计算硬件连接的文件。
  • -L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  • -m或–megabytes 以1MB为单位。
  • -s或–summarize 仅显示总计。
  • -S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  • -x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  • -X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
  • –exclude=<目录或文件> 略过指定的目录或文件。
  • –max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  • –help 显示帮助。
  • –version 显示版本信息。
    例子:
    du -m --max-depth=1
    du -h --max-depth=1

Java堆栈信息分析

分析查询java运行环境异常

常用命令:

  1. 查找进程
    top查看进程占用资源情况
    ps查看进程
  2. 查找线程
    使用top -H -p 查看线程占用情况
  3. 查找java的堆栈信息
    将线程id转换成十六进制
    #printf %x 15664
    #3d30
    然后再使用jstack查询线程的堆栈信息
    语法:jstack | grep -a 线程id(十六进制)
    jstack | grep -a 3d30

find 命令查询

用来在指定目录下查找文件。

语法:

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

常用参数:

  • -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
  • -amin n : 在过去 n 分钟内被读取过
  • -anewer file : 比文件 file 更晚被读取过的文件
  • -atime n : 在过去n天内被读取过的文件
  • -cmin n : 在过去 n 分钟内被修改过
  • -cnewer file :比文件 file 更新的文件
  • -ctime n : 在过去n天内被修改过的文件
  • -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
  • -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
  • -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
  • -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
  • -type c : 文件类型是 c 的文件。
  • d: 目录
  • c: 字型装置文件
  • b: 区块装置文件
  • p: 具名贮列
  • f: 一般文件
  • l: 符号连结
  • s: socket
  • -pid n : process id 是 n 的文件
    你可以使用 ( ) 将运算式分隔,并使用下列运算。
    exp1 -and exp2
    ! expr
    -not expr
    exp1 -or exp2
    exp1, exp2
    例子:

linux查找根目录下文件夹名称叫zookeeper的目录地址

find / -name zookeeper  -d

netstat 命令查看网络状态

用来查看网络状态。

语法:

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

常用参数:

  • -a或–all 显示所有连线中的Socket。
  • -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
  • -c或–continuous 持续列出网络状态。
  • -C或–cache 显示路由器配置的快取信息。
  • -e或–extend 显示网络其他相关信息。
  • -F或–fib 显示路由缓存。
  • -g或–groups 显示多重广播功能群组组员名单。
  • -h或–help 在线帮助。
  • -i或–interfaces 显示网络界面信息表单。
  • -l或–listening 显示监控中的服务器的Socket。
  • -M或–masquerade 显示伪装的网络连线。
  • -n或–numeric 直接使用IP地址,而不通过域名服务器。
  • -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
  • -o或–timers 显示计时器。
  • -p或–programs 显示正在使用Socket的程序识别码和程序名称。
  • -r或–route 显示Routing Table。
  • -s或–statistics 显示网络工作信息统计表。
  • -t或–tcp 显示TCP传输协议的连线状况。
  • -u或–udp 显示UDP传输协议的连线状况。
  • -v或–verbose 显示指令执行过程。
  • -V或–version 显示版本信息。
  • -w或–raw 显示RAW传输协议的连线状况。
  • -x或–unix 此参数的效果和指定"-A unix"参数相同。
  • –ip或–inet 此参数的效果和指定"-A inet"参数相同。
    例子:

查看某端口网络状态

netstat -nltp | grep  端口

注:本文一些命令常用参数部分引用菜鸟教程网站

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值