linux 常用命令
基础命令
grep 文本内容查找命令
find 查找文件所在位置
1
find . -name FILE_NAME
uptime 查看机器启动时间,登陆用户,平均负载等情况 [平均负载指特定时间内队列中运行的平均进程数,一般每个CPU内核对应的活动进程数不大于3个,认为系统运行正常]
lsof 列出系统当前打开的文件句柄
1
2lsof -p <pid> # 查看进程打开的句柄
lsof -i:8080 # 查看某个端口的使用方式ulimit linux系统对每一个登陆的用户都限制其最大进程数和打开的最大文件句柄数,可以根据硬件资源进行自定义设置
1
ulimit -a # 显示当前系统对用户使用资源的限制
curl HTTP调用工具
scp 文件传输命令
1
scp user@ip:path local
dos2unix, unix2dos 常用的win和unix的换行符转换工具
ps 显示系统内的所有进程
1
ps -elf
top 实时查看活动进程的 CPU 和内存信息
pidstat 监控全部或指定进程占用系统资源的情况,包括 CPU, 内存, 磁盘 I/O, 线程切换,线程数等情况
1
2
3pidstat -u -p 2002 # CPU情况
pidstat -r -p 2962 # 内存情况
pidstat -d -p 2002 # 磁盘情况
针对内存
- free 显示系统的内存使用情况
- pmap 报告进程中各个模块占用内存的具体情况,用于定位深层次的内存问题
针对 CPU
vmstat 显示关于内核进程,虚拟内存,磁盘IO,陷阱和CPU占用率的统计信息
- buff 是 IO 系统存储的磁盘块文件的元数据的统计信息
- cache 是操作系统用来缓存磁盘数据的缓冲区,操作系统会自动调节这个参数保障进程可用
- cs 表示线程环境的切换次数,此数据过大时说明线程的同步机制有问题
- si和so较大时,说明系统在频繁使用交换区,应该查看系统内存是否够用
- bi和bo表示IO活动,根据其大小可知道磁盘IO的负载情况
mpstat 实时监控系统CPU的统计信息
监控磁盘IO的命令
iostat 监控CPU占用率,平均负载值及IO读写速度等
1
iostat -x
swapon 查看交换分区的使用情况
df 查看文件系统的硬盘挂载点和空间使用情况
查看网络及监控
ifconfig 显示挂载的网卡情况
ping 检测网络故障
telnet 远程登陆服务的标准协议
nc 网络模拟调试工具
mtr 网络连通性测试
1
mtr -r baidu.com # 检测丢包率
nslookup 检测网络中的dns服务器是否能正确解析域名
traceroute 提供从用户机到服务机的路径
sar 可以输出每秒的网卡存取速度,适合线上排查问题时使用
netstat 显示网络连接,端口信息等
1
2ps -elf | grep 进程 # 根据进程名查找进程ID
netstat -nap | grep 2002 # 根据进程 ID 或端口查找进程开启的端口iptraf 实时监控网络流量的交互式的界面
tcpdump 网络状况分析和跟踪的工具,可以用来抓包
nmap 扫描机器打开的端口和端口提供的服务信息
1
nmap -v -A localhost
高级工具
pstack 显示每个进程的本地调用栈
strace 监控应用所使用的系统调用
/proc 信息
1
2
3
4
5cat /proc/cpuinfo # cpu信息
cat /proc/meminfo # 内存信息
cat /proc/zoneinfo # 详细的内存映射信息
cat /proc/mounts # 磁盘映射信息
cat /proc/loadavg # 平均负载均衡摘要信息
1
2
3md5sum file
sha256sum file
base64 file
gdisk
1 | gdisk /dev/sda |
smartctl
1 | sudo apt install smartmontools |
性能测试
网速测试
iperf3 工具
1
2
3
4# host 命令
iperf3 -s
# client 命令
iperf3 -c <ip>