linux常用命令
一、查看系统
1、硬盘
查硬盘占用情况
df -h -h: 方便阅读
查看当前目录的硬盘占用情况并按大小倒序
du -sh * | sort -nr -h: 方便阅读 -s: 汇总文件 *: 显示每个目录 sort -n: 按照数值大小排序 sort -r: 倒序
2、内存
查看内存使用情况
free -m -m: 以MB为单位 -h: 以适合的单位 -s: 间隔秒数刷新
查看某个进程的gc情况
jstat -gcutil xxxxx 2000 10 2000: 每隔2秒刷新 10: 刷新10次
输出某个进程的内存dump信息
jmap -dump:live,format=b,file=/home/dump xxxxx live: 存活的对象 format=b: 以二进制形式输出 取到的dump文件在eclipse的mat插件视图中打开(mat可以在Eclipse Maketplace中下载,注意勾选安装所有依赖插件) Leak Suspects是可能内存泄漏的地方,Histogram是内存中的对象、对象个数和大小,Dominator Tree是线程和线程下对象占用的空间 在Histogram中找到最大的对象,右键List Objects --> with incoming reference查看被引用的列表,找到最大的对象,右键Merge Shortest Paths to GC Roots --> exclude all phantom/weak/soft etc. reference去除虚引用、弱引用、软引用只留下强引用,看导致对象无法被GC的强引用是什么
3、进程
查看进程列表
ps -ef 查看所有用户的进程 ps x 查看当前用户的进程
根据进程id查找程序位置
ls -ld /proc/xxxx/exe
4、线程
查进程中占用cpu高的线程
ps -mp xxxxx -o THREAD,tid,time | sort -rn
将线程的id从10位转到16位,可以在下面jstack中找到对应线程
输出线程详细信息
jstack -l xxxxx | grep xxx -A 30 > 1.txt -l: 输出锁相关信息
5、网络
查看最大句柄数
ulimit -n
查网卡信息
ifconfig
查看所有连接信息
netstat -anp -a: 显示所有连接 -n: 显示ip而不是域名 -p: 显示进程名和进程号
统计所有连接状态
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看连接某个端口最多的ip
netstat -antu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
查看端口关联的连接
lsof -i:xxxx
抓包
tcpdump tcp -i eth0 -s 0 and host xxx.xxx.xxx.xxx and port xxxx -w log.pcap -i:只抓经过接口eth0的包 -s 0:抓到完整的数据包 -w:保存在文件
二、文件操作
1、文件
创建文件夹
mkdir xxx
创建文件
touch xxx.txt
复制文件夹
cp -r abc /root -r 包括子目录和文件
复制文件
cp xxx.txt /root
重命名文件
mv a b
移动文件/文件夹
mv aaa/ bbb 将aaa目录放入bbb目录中,如果bbb目录不存在,就变成重命名
删除文件夹
rm -r /abc -r 递归删除
删除文件
rm abc.txt
查找文件
find -name xxx
查找大于xx的文件
find / -type f -size +200M
获得文件夹及子文件的权限
chmod -R 777 /xxx/xx
修改文件夹及子文件的权限到其他用户
chown -R group:user /xxx/xx
拷贝本地文件到服务器
yum -y install lrzsz rz -be -b 二进制传输 -e 对控制字符转义
从服务器下载文件
sz -be xxx
2、解压
解压tar、tar.gz
tar -zxvf aaa.tar -z 通过gzip指令处理压缩文件 -x 从压缩文件中还原文件 -v显示指令执行过程 -f 指定压缩文件
解压tar.bz2
tar -jxvf abc.tar.bz2
解压zip
unzip abc.zip
三、用户操作
新增用户
useradd xxx passwd xxx
修改用户
usermod --help
删除用户
userdel xxx
切换用户
su xxx
修改密码
passwd xxx
三、其他
1、jdk
查找jdk文件位置
java -verbose