Linux常用命令
su user_name 切换用户
1.查看端口号占用 和查看服务是否启动。
lsof -i:端口号 例如 lsof -i:8080
$ lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
WeChat 489 songyang 28u IPv6 0x6dcb321b8c5aa229 0t0 TCP bogon:53478->223.167.104.149:http-alt (ESTABLISHED)
QQ 498 songyang 15u IPv4 0x6dcb321b98929929 0t0 TCP lalal:55488->no-data:http-alt (ESTABLISHED)
QQ 498 songyang 19u IPv4 0x6dcb321b98929929 0t0 TCP lalal:55488->no-data:http-alt (ESTABLISHED)
ps -ef|grep redis 查看redis是否启动
netstat -tnlp 显示tcp的端口和进程的相关情况。
2.杀死端口
kill -9 PID 例如 kill -9 489
3.查看文件大小
du -sh *
$ du -sh *
312K 任务分割.xlsx
312K 任务分割2.xlsx
查看磁盘使用量
df -lh
4.top
查看每个进程的占cpu百分比
top 每隔3秒显式所有进程的资源占用情况
top -d 1 每隔1秒显式所有进程的资源占用情况
top -c 每隔3秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 11111 -p 22222 每隔3秒显示pid是11111和pid是22222的两个进程的资源占用情况
top -d 2 -c -p 69358 每隔2秒显示pid是69358的进程的资源使用情况,并显式该进程启动的命令行参数
top 之后按e切换单位,
ps -ef | grep 进程号
查看该进程详细信息
5.查看占用CPU最多的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
6.查看占用内存最多的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
补充:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
java.lang.OutOfMemoryError: Unable to create new native thread
当JVM向OS申请创建线程,而OS不能分配一个本地线程时抛出。
7.查看系统最多可以创建多少个进程 我的是 32768
sysctl -a | grep kernel.pid_max 或者 cat /proc/sys/kernel/pid_max
8.修改系统最大进程数为200000
echo 200000 > /proc/sys/kernel/pid_max
9.查看系统可以允许的最大的线程数 我的是 126946
cat /proc/sys/kernel/threads-max
10.修改系统可以允许的最大线程数为 120000
echo 120000 > /proc/sys/kernel/threads-max
11.查看系统是否允许用户申请足够多的进程(包含线程)
ulimit -a
ulimit -u 默认的最大线程
ulimit -s 默认的最大栈
12.查看运行现状
cat /proc/loadavg
0.04 0.04 0.10 1/6788 31909
以上几个数分别表示
一分钟平均负载0.04 5分钟平均负载0.04 15分钟平均负载0.10 当前有一个进程正在运行,总进程数是6788,最近运行的进程ID是31909
13 .查看当前进程数
ps -elf | wc -l
14. 查看当前线程数
ps -elfT | wc -l
14. 查看某个进程的线程数
ps -p 3239 -lfT | wc -l
15. 查看某个进程的线程详细
jstack -l 3239 | more
16. 添加例行计划任务
因为两台服务器时间不一致,导致java的定时任务不能同时执行,进而导致了重复执行,因为redis锁已经没用了。所以需要同步两台服务器的时间
crontab -l 查看当前的例行计划任务
crontab -e 进入编辑状态
添加下面一行并保存。
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com 表示每5分钟同步一下服务器时间。让其与时间服务器的时间一致。
17. 连接sftp服务器
sftp -oPort=1111 root@139.9.130.1
-oPort 指定端口号
连接成功后可以执行一下操作:
下载文件到本地用户目录
get xxxx.txt
该命令会将xxxx.txt 下载到本地用户目录.
put xxxx.txt sftp 目录
该命令会上传xxxx.txt 到sftp目录.
18. sz命令
下载一个文件: sz filename
下载多个文件: sz filename1 filename2
下载dir目录下的所有文件,不包含dir下的文件夹: # sz dir/*
可以把linux上的文件直接下载到本地
19.rz命令
直接键入rz命令即可
18和19两个神奇的命令 学会了哈哈哈
20. nslookup 查看域名背后都有哪些IP
nslookup openapi.alipay.com
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
openapi.alipay.com canonical name = openapi.alipaydns.com.
Name: openapi.alipaydns.com
Address: 110.75.244.202
Name: openapi.alipaydns.com
Address: 110.75.231.202
Name: openapi.alipaydns.com
Address: 110.75.236.202
Name: openapi.alipaydns.com
Address: 110.76.18.202