网络命令

write

需要目标用户在线才能进行发送。可以使用 w 命令查看当前登录系统的所有用户。

命令名称功能描述语法命令英文原意命令所在路径执行权限
write给用户发信息,以 Ctrl + D 保存并结束write [用户名]--/usr/bin/write所有用户

【示例】

write djf1

wall

给当前在线的所有用户发送消息。

命令名称功能描述语法命令英文原意命令所在路径执行权限
wall发广播信息,按回车结束wall [message]write all/usr/bin/wall所有用户

【示例】

wall message

ping

Windows 下的 ping 命令默认只有 4 次,而 Linux 中默认没有限制(Linux 可以通过 -c 选项来指定次数)。

命令名称功能描述语法命令英文原意命令所在路径执行权限
ping测试网络连通性,Ctrl + c 结束ping [-option] [IP/域名]write all/bin/ping所有用户

【选项】

  • -c 指定发送次数
  • -i 指定发送间隔时间(单位为秒)

【示例】

ping www.baidu.com

# time 越小,证明网络越好
PING www.a.shifen.com (112.80.248.76) 56(84) bytes of data.
64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=1 ttl=53 time=9.50 ms
64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=2 ttl=53 time=9.45 ms
64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=3 ttl=53 time=9.50 ms
64 bytes from 112.80.248.76 (112.80.248.76): icmp_seq=4 ttl=53 time=9.44 ms

# ping 结束后,会出现丢包率。网络正常的情况下,packet loss 为 0%,如果 packet loss 很高,就说明网络有问题。
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 9.447/9.479/9.508/0.029 ms
ping www.baidu.com -c 3
# 每隔 0.1 秒发送一次 ping,共发送 100 次
ping www.baidu.com -c 100 -i 0.1

ifconfig

Windows 中可以使用 ipconfig 命令。

命令名称功能描述语法命令英文原意命令所在路径执行权限
ifconfig查看和设置网卡信息ifconfig [网卡名称] [IP地址]interface configure/sbin/ifconfigroot

【示例】

查看当前系统的网卡:

# 一般来讲,系统自带的网卡是 eth0,如果有多个网卡,那么后面的数字会递增,如 eth1、eth2
[root@daijf ~]# ifconfig
br-6bc3cffef6d5: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:16:76:c1:6e  txqueuelen 0  (Ethernet)
        RX packets 1096279  bytes 62960771 (60.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1096279  bytes 62960771 (60.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.18.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
        ether 02:42:3d:83:58:87  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# inet 172.17.0.3:当前计算机的 IP  
# netmask 255.255.240.0:子网掩码
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.3  netmask 255.255.240.0  broadcast 172.17.15.255
        inet6 fe80::5054:ff:feea:4f67  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:ea:4f:67  txqueuelen 1000  (Ethernet)
        RX packets 17918210  bytes 2964087439 (2.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17080282  bytes 3079129709 (2.8 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1096279  bytes 62960771 (60.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1096279  bytes 62960771 (60.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

设置网卡信息(谨慎操作):

ifconfig eth0 192.168.2.180

mail

不管目标用户在不在线,都可以发送。如果目标用户不在线,那么对方登录后会收到邮件。

命令名称功能描述语法命令英文原意命令所在路径执行权限
mail查看、发送电子邮件mail [用户名]--/bin/mail所有用户

【示例】

给 root 用户发邮件(Ctrl + D 结束):

mail root

接收邮件:

mail

last

命令名称功能描述语法命令英文原意命令所在路径执行权限
last列出目前与过去登入系统的用户信息、重启命令 reboot 也会列出last--/usr/bin/last所有用户

【示例】

last

# (12:27) 表示在系统内停留的时间,12 小时 27 分
root     pts/1        117.176.219.56   Thu Jul 21 09:35 - 22:02  (12:27)

lastlog

命令名称功能描述语法命令英文原意命令所在路径执行权限
lastlog查看用户最后一次登录时间lastlog [-option]--/usr/bin/lastlog所有用户

【选项】

  • -u 用户名 查看特定用户

【示例】

查看所有用户最后一次登录时间:

lastlog

查看 root 用户最后一次登录时间:

lastlog -u root

traceroute

该命令可用于网络诊断。

命令名称功能描述语法命令英文原意命令所在路径执行权限
traceroute显示数据包到目标IP的访问链路traceroute [目标IP]--/bin/traceroute所有用户

【示例】

traceroute www.baidu.com

netstat

该命令可用于网络诊断。

命令名称功能描述语法命令英文原意命令所在路径执行权限
netstat显示网络相关信息netstat [-option]--/bin/netstat所有用户

【选项】

  • -t TCP 协议
  • -u UDP 协议
  • -l 监听
  • -r 路由
  • -n 显示 IP 地址和端口号

【示例】

查看本机监听的端口(即哪些端口正在使用):

netstat -tlun

查看本机所有的网络连接(该命令非常有用):

netstat -an

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8087            0.0.0.0:*               LISTEN     
tcp        0      0 172.17.0.3:33454        169.254.0.55:8080       TIME_WAIT  
tcp        0      0 127.0.0.1:33593         127.0.0.1:4369          ESTABLISHED
tcp        0      0 127.0.0.1:60076         127.0.0.1:4369          TIME_WAIT  
tcp        0      0 172.17.0.3:22           61.157.90.101:31163     ESTABLISHED
tcp        0      0 172.17.0.3:52374        169.254.0.55:5574       ESTABLISHED
tcp        0      0 172.17.0.3:4369         172.17.0.3:56890        TIME_WAIT  
tcp6       0      0 172.17.0.3:8096         175.152.141.21:60056    ESTABLISHED
tcp6       0      0 172.17.0.3:8096         67.198.130.201:40346    ESTABLISHED
tcp6       0      0 172.17.0.3:8096         175.152.141.21:63899    ESTABLISHED
tcp6       0      0 172.17.0.3:8096         175.152.141.21:60042    ESTABLISHED
tcp6       0      0 172.17.0.3:8096         67.198.188.123:9880     ESTABLISHED

# 解释如下:
# ESTABLISHED 表示当前服务器的端口正在被哪些 IP 连接
# 下面这个表示 61.157.90.101 这台机器通过 31163 端口(这个端口不是服务器的端口,而是 61.157.90.101 这台机器的端口)连接到了 172.17.0.3(可以通过 ifconfig 命令查看当前机器的 IP) 的 22 端口(即通过 SSH 远程连接)
tcp        0      0 172.17.0.3:22           61.157.90.101:31163     ESTABLISHED

查看本机路由表(可以看到网关):

netstat -rn

setup

并不是所有的 Linux 都有这个命令,只有 redhat 系列的 Linux 才有。Centos 属于 redhat,Ubuntu 不属于 redhat。

命令名称功能描述语法命令英文原意命令所在路径执行权限
setup配置网络setup--/usr/sbin/setuproot

【示例】

# 谨慎操作
setup

mount

命令名称功能描述语法命令英文原意命令所在路径执行权限
mount文件挂载mount [-t] [文件系统] [设备文件名] [挂载点]--/bin/mountroot

【示例】

mount -t iso9660 /dev/sr0 /mnt/cdrom