一.Linux基本命令:
1.grep, awk , sed搜索字符
grep -n 关键字 filename
-n显示行号
grep -C 3 -n 关键字 filename
-C num可以查看上下文匹配前后num行;
-r 递归搜索指定目录;
awk可以对shell返回的文本进行行列过滤;
sed 用于字符替换
sed ‘s/原str/新str/‘ 仅替换第一个匹配
sed ‘s/原str/新str/g‘ 替换所有匹配
2.ls和ll
-R可递归查看子目录下的所有文件;
-lrt 按照修改时间升序排序;
-- full -time 加后缀可显示更详细的修改时间戳;
-h 显示文件大小,以k/M单位显示;
3.wc
wc -c filename 统计一个文件里的字节数;
wc -w filename 统计一个文件里的字数;
wc -l filename 统计一个文件里的行数;
4.uptime 查看系统启动时间和load负载情况;
5.ulimit
ulimit -a 显示用户使用资源的限制;
ulimit -u 设置最大进程数;
ulimit -n 设置最大文件句柄数;
6.curl url
curl -d ‘abc=def‘ url 指定post方法请求
curl -i url 查看响应头信息;
curl -I url 查看http头信息;
curl -sw‘%{http_code}‘ url 查看http响应码;
7.dos2unix/unix2dos filename 转换windows/unix的换行符;
二.Linux后台调试常用命令总结
1.监控进程的命令
1.1. ps
ps aux/ajx 查看所有进程
ps -ef | grep "process_name" | grep -v grep 检测process_name是否存活;
-v grep 不包含grep一行
1.2 top
top -Hp PID 查看具体进程占用CPU.内存情况
1.3.pidstat
pidstat -urd -p PID 查看进程资源
-u 查看CPU开销情况;
-r 查看内存开销;
-d 查看磁盘IO使用情况;
2.查看内存的命令
free -h aviliable = free+buffer_cache
3.监控CPU的命令
vmstat 不能查看每个core的信息;
mpstat 可查看每个核的统计信息、
应用:mpstat -ALL 5 2 打印所有core 每5s打印一次,产生2次,实际可以看到3次的数据;
查看CPU信息: cat /proc/cpuinfo
获取CPU核数: grep ‘model name‘ /proc/cpuinfo | wc -l
4.查看磁盘IO的命令
iostat 可查看磁盘读写速度
swapon 查看分区情况;
df 磁盘使用情况;
du 查看目录文件大小;
三.Linux后台网络调试常用工具总结
3.1 ifconfig 查看和设置网络配置
3.2 telnet ip port 远程连接主机;
3.3 nc 验证服务器端口是否开发,注意只有端口准入才可以访问;
应用一:确认端口是否存活;
nc -l 9999 现在测试机器上开启9999端口;
nc -vw 2 IP 9999 确认9999端口是否存活
应用二:测试网速
机器A: nc -l 9999 > /dev/null
机器B: nc IP 9999 < /dev/zero
机器A: sar -n DEV 2 100000
3.4 mtr 连通性测试工具
常用来测试丢包率: mtr url
3.5 nslookup DNS域名解析工具;
3.6 tracerout url 查看请求走过的路径
3.6 sar 多功能检测工具, 可以每秒输出网卡存取速度;
3.7 netstat 查看端口状态
ps -ef | grep process_name 查看PID
netstat -nap | grep PID 查看指定进程的端口状态;
3.8 tcpdump 抓包工具
tcpdump -i eth_name -c 2 抓两条报文后自动退出;
tcpdump -i eth_name host IP 抓来/去 目的IP的通讯报文数据(src/des);
tcpdump -i eth_name ‘des IP and tcp and port 8080‘ 抓去往IP8080端口的tcp包;
3.9 nmap扫描主机打开端口及服务信息,
nmap -v A localhost 具体的还需要查看防火墙的设置;
3.10 ethtool 查看网卡配置情况;
3.11 lsof系统管理,安全的尤伯工具,可以列出所打开的文件,linux系统下一切皆文件;
应用:
lsof -i :port 在知道某个端口的前提下,查看某个端口被那个进程占用;
lsof -p PID 查看指定进程打开了哪些文件;
lsof -c process_name 查看process_name这个进程现在打开了那些文件;
常用网络调试工具总结:
1.ipstraf 可查看TCP连接
tcpdump
wireshark
lsof
ethtool 查看网卡配置情况;
四.其他高级工具
pstack PID 打印进程调用栈信息,需要结合汇编代码看详细位置;
strace 系统调用工具,可监控进程使用的系统调用
/proc/ 文件系统,查看内核内数据结构的能力;
tail 日志监控工具;
性能监控工具:
pmap 查看进程内存状态;
nmon 性能监控;
w -h 查看谁登陆了系统调用了那些程序;
glances 系统监控工具。可以用来监控系统的进程,CPU,内存,IO
若有错误的地方请多多指正