网络命令
一.Ping 命令
shell
$ ping www.qq.com
# -c选项是约定ping几次
$ ping -c 5 www.qq.com
PING ins-r23tsuuf.ias.tencent-cloud.net (121.14.77.221) 56(84) bytes of data.
64 bytes from 121.14.77.221 (121.14.77.221): icmp_seq=1 ttl=48 time=35.1 ms
64 bytes from 121.14.77.221 (121.14.77.221): icmp_seq=2 ttl=48 time=35.1 ms
64 bytes from 121.14.77.221 (121.14.77.221): icmp_seq=3 ttl=48 time=35.1 ms
64 bytes from 121.14.77.221 (121.14.77.221): icmp_seq=4 ttl=48 time=35.1 ms
64 bytes from 121.14.77.221 (121.14.77.221): icmp_seq=5 ttl=48 time=35.1 ms
--- ins-r23tsuuf.ias.tencent-cloud.net ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
二.netstat
netstat是一个用来查看网络状态的重要工具.
语法:netstat [选项]
功能:查看网络状态
常用选项:
- n 拒绝显示别名,能显示数字的全部转化成数字
- l 仅列出有在 Listen (监听) 的服務状态
- p 显示建立相关链接的程序名
- t (tcp)仅显示tcp相关选项
- u (udp)仅显示udp相关选项
- a (all)显示所有选项,默认不显示LISTEN相关
shell
// 每个1s执行一次 netstat -nltp
$ watch -n 1 netstat -nltp
//watch -n 用于定时重复执行某个命令,-n 后面跟秒数,表示每隔多少秒刷新一次输出结果。
常用:netstat -anup或netstat -antp(显示系统中所有UDP/TCP套接字)
- 例子
shell
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 127.0.0.1:53 0.0.0.0:* 924/dnsmasq
Proto: 协议类型
Recv-Q: 接收队列中尚未被读取的字节数
Send-Q: 发送队列中尚未发送的字节数
Local Address: 本地 IP + 端口号(
0.0.0.0表示监听所有网卡)Foreign Address: 远端 IP + 端口号(UDP无连接时显示为
*)State: 套接字状态(UDP 无状态,通常为空)
PID/Program name: 占用该端口的进程号及程序名
PID/Program name这一列有时候是 - 看不到,是因为这是别人或者系统启动的,sudo就可以看见了.
三.xargs
作用:将前一个命令的输出结果作为参数传递给后一个命令执行
基本语法:
shell
xargs [选项] 命令
- 默认行为: 从标准输入读取内容(通常来自
管道 |),按空格或换行分割,作为后续命令的参数。
-
常用选项:
-
-n num: 每次传递
num个参数给命令执行一次。 -
-d 分隔符: 指定自定义分隔符。
-
-p: 每次执行命令前询问用户是否确认。
-
-I {}: 指定占位符,允许在命令中替换位置。
-
四.pidof
在查看服务器的进程id时非常方便.
语法:pidof [进程名]
功能:通过进程名, 查看进程id
shell
$ ps axj | head -1 && ps ajx | grep tcp_server
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
2958169 2958285 2958285 2958169 pts/2 2958285 S+ 1002 0:00
./tcp_server 8888
whb@bite01:~$ pidof tcp_server
2958285
pidof udp_server|xargs kill -9 快速杀掉进程