记录那些开发时常用的linux命令(主要是Java开发)

话不多说,记录最近学到的一些命令。

1.日志分析,对比

我司服务器都在云上,而有时我们需要对比分析日志
下面语句是统计日志中出现相同内容的行数

find 日志路径 -name "日志名" | xargs cat | grep -E "要查找的内容(支持正则)" |  wc -l

/** 解释下相关参数
	xargs: xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
	cat: cat 命令用于连接文件并打印到标准输出设备上。
	grep: 它搜索指定文件的内容,匹配指定的模式 -E是可以支持正则匹配内容
	wc: wc命令用于计算字数。-l 代表输出行数
*/

我们日志是不断输出的,我只想看最后几行咋办

tail [参数]  [文件] 

//查看文件倒数10行数据
eg: tail -n 10 notes.log

2.Java开发相关

1.java进程相关

//查询java进程
ps -ef | grep java

//杀死进程
kill pid

2.查看进程一些信息
1.类加载

jstat -class -t pid

2.gc情况

jstat -gc -t pid

跑了个简单的程序有如下信息

Timestamp        S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
		274.5 5120.0 5120.0  0.0    0.0   33280.0   7744.2   87552.0      0.0     4480.0 780.7  384.0   76.6       0    0.000   0      0.000    0.000

解释下参数:
/**
S0C:S0(From)的大小(KB)
S1C:S1(To)的大小(KB)
S0U:S0(From)已使用的大小(KB)
S1U:S1(To)已使用的大小(KB)
EC:Eden区的大小(KB)
EU:Eden已使用的大小(KB)
OC:老年代大小(KB)
OU:老年代已使用的大小(KB)
MC:方法区大小(KB)
MU:方法区已使用大小(KB)
CCSC:压缩类空间大小(KB)
CCSU:压缩类空间已使用大小(KB)
PC:永久区大小(KB)
PU:永久区已使用大小(KB)
YGC:新生代GC次数
YGCT:新生代GC耗时
FGC:Full GC次数
FGCT:Full GC耗时
GCT:GC总耗时
*/

3.显示各个代使用的情况

jstat -gccapacity -t pid

同样那个简单程序

Timestamp        NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
          647.4  43520.0 698880.0  43520.0 5120.0 5120.0  33280.0    87552.0  1398272.0    87552.0    87552.0      0.0 1056768.0   4480.0      0.0 1048576.0    384.0      0     0

解释下参数
/**
与-gc相比,不仅输出了各个代当前的大小,还输出了各个代的最小、最大值。
* NGCMN:新生代最小值(KB)
* NGCMX:新生代最大值(KB)
* NGC:当前新生代大小(KB)
* OGCMN:老年代最小值(KB)
* OGCMX:老年代最大值(KB)
* PGCMN:永久区最小值(KB)
* PGCMX:永久区最大值(KB)
* -gccause:显示垃圾收集相关信息(同gcutil),同时显示最后一次或当前正在发生的垃圾收集的诱发原因
* */

4.分析线程相关问题

//jstack的作用就是将正在运行的jvm的线程进行快照
jstack pid
//生成快照,在当前命令目录下
jmap -dump:format=b,file=heap.hprof pid
//分析快照
jhat heap.hprof

5.查看端口占用

lsof -i:8000
输出如下:
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:8000 (LISTEN)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. cd:切换目录 2. ls:列出目录下的文件和子目录 3. pwd:显示当前目录的路径 4. mkdir:创建目录 5. rm:删除文件或目录 6. cp:复制文件或目录 7. mv:移动文件或目录 8. cat:查看文件内容 9. grep:查找文件中的指定字符串 10. chmod:修改文件或目录的权限 11. chown:修改文件或目录的所有者 12. tar:打包和解压缩文件 13. ps:查看进程信息 14. top:实查看系统资源占用情况 15. netstat:查看网络连接状态 16. ping:测试网络连接 17. ifconfig:查看和配置网络接口信息 18. ssh:远程登录到另一台计算机 19. scp:在计算机之间复制文件 20. curl:从命令行访问Web服务。 ### 回答2: 作为一个开发人员,我们通常需要使用各种工具和技术来完成我们的工作。其中一个常见的技术是通过使用Linux命令Java环境下进行开发工作。以下是一些常见的Linux命令,它们在Java开发中非常有用: 1. cd命令:cd命令用于切换当前工作目录。当我们需要切换到一个新的文件或目录,我们可以使用该命令。例如,如果我们需要切换到Java项目的工作目录,可以使用“cd”命令以进入项目根目录。 2. ls命令:ls命令用于列出当前目录中的所有文件和目录。我们可以使用该命令来查看当前目录中所有Java文件的列表。 3. cat命令:cat命令用于将文件的内容显示在屏幕上。我们可以使用该命令来查看Java文件的内容。 4. touch命令:touch命令用于创建一个新的空文件或更新一个已经存在的文件的间戳。该命令对于创建新的Java文件或更新现有的文件非常有用。 5. cp命令:cp命令用于将文件或目录从一个位置复制到另一个位置。该命令对于复制Java文件或整个项目非常有用。 6. mv命令:mv命令用于将文件或目录从一个位置移动到另一个位置。该命令对于移动Java文件或整个项目非常有用。 7. rm命令:rm命令用于删除文件或目录。该命令对于清理Java项目或删除不再需要的文件非常有用。 8. mkdir命令:mkdir命令用于创建一个新的目录。该命令对于创建Java项目或将其组织到不同的目录中非常有用。 9. rmdir命令:rmdir命令用于删除一个目录。该命令对于删除Java项目中不再需要的目录非常有用。 以上是一些在Java开发常用Linux命令。随着您的经验和技能的增长,您可能会发现更多的有用命令。在使用命令之前,请务必牢记其作用和用法,以避免意外删除或更改您的文件和目录。 ### 回答3: Java开发常用Linux命令有很多,以下是一些常见的Linux命令及其作用: 1. cd命令:改变当前所在目录。 2. ls命令:查看当前目录中的文件和子目录。 3. mkdir命令:创建新的目录。 4. touch命令:创建新的空文件。 5. cp命令:复制文件或目录。 6. mv命令:移动文件或目录。 7. rm命令:删除文件或目录。 8. cat命令:查看文件内容。 9. grep命令:在文件中查找匹配的内容。 10. find命令:在文件系统中搜索文件或目录。 11. tar命令:压缩和解压缩文件或目录。 12. top命令:显示系统中正在运行的进程和资源使用情况。 13. ps命令:显示系统中正在运行的进程和状态信息。 14. kill命令:杀死一个正在运行的进程。 15. su命令:切换到超级用户账户。 以上是一些Java开发常用Linux命令开发人员们可以灵活运用这些命令,在Linux环境中进行快速的开发工作,并且节省大量的间和精力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值