(1)查看80端口是否被占用 :netstat -anp|grep 80
(2)统计80端口的连接数:netstat -nat|grep -i "80"|wc -l
(3)netstat命令各个参数说明如下:
-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询,显示IP(可以加速操作)
(4)netstat命令
netstat -n 以数字形式显示地址和端口号
netstat -b 显示在创建每个连接或侦听端口时涉及的可执行程序
netstat -a 显示所有连接和侦听端口
netstat -s 显示每个协议的统计。默认情况下,显示IP、TCP、UDP 的统计;
netstat -nat|grep -i "80"|wc –l 统计端口80的连接数
(5)抓包
tcpdump -iany tcp port 8000 对tcp端口为8000的进行抓包
(6)统计http的连接数
ps -ef|grep httpd|wc –l
(7)统计连接上的
netstat -na|grep ESTABLISHED|wc –l
(8)查询TCP连接数以及查看TCP状态
netstat -ant|awk'/^tcp/{++S[$NF]}END{for(a in S)print(a,S[a])}'
LAST_ACK 14
SYN_RECV 348
ESTABLISHD 70
FIN_WAIT_1 30
FIN_WAIT_2 33
TIME_WAIT 18122
(9)多线程调试死锁
第一种情况:通过core文件调试死锁
ulimited -c unlimted(打开core)
./a.out(编译时加调试选项 -g)
gdb./a.out core.xxx
thread apply all bt(查看死锁位置)
第二种情况:gdb attach pid
./a.out (-g)
ps -ef|grep a.out(找到其线程pid)
gdb a.out 1234(进入pid = 1234的gdb)
info threads(查看线程)
thread1(2) (进入某个线程)
bt (打印某个线程堆栈)
(10)gdb调试
gcc -g text.c -o text
gdb -q text
list(显示代码)
search str(查找字符串)
break n(下断点)
info breakpoint(查看断点信息)
print(打印)
(11)找文件
第一种:find: find -name text.file
第二种:locate:locate text.file
第三种:(找一个带有关键字的文件)find -r "sun"/root/
(12)删重复行: sort -n sun.txt|uniq
(13)查看后10行:tail -n 10 filename
(14)权限改变:chmod owner/group/others r:4 w:2 x:1
(15)编译连接:
gcc -E a.c -o a.i 预编译
gcc -S a.i -o a.s编译
gcc -c a.s -o a.o汇编
gcc -o a.o a.out链接
(16)查看系统磁盘的使用情况:df -lh
(17)查看系统位数:uname -a
(18)查看系统版本配置文件:cat/proc/version
(19)内存泄漏:mtrace
(20)cpu状态指令:
mpstat 多cpu 查看特定cpu
iostat 对系统具体分析 监视系统输入输出设备和cpu使用情况
top 动态查看系统整体运行情况
(10)遇到大文件无法操作的情况,解决办法:想办法把大文件切割为小文件去处理。
split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
用法:
解释:把大文件Max.date分成若干个4G的文件,分割后的文件命名为min.date00,min.date01,min.date02……..min.date??,直到按4G大小分割完成。