Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
          • linux介绍
            • linux的管理建议
              • linux文件系统结构
                • linux基本操作命令
                  • linux权限管理命令
                    • linux帮助命令
                      • linux搜索命令
                        • linux压缩、解压缩命令
                          • linux关机和重启命令
                            • linux常用网络命令
                              • 配置 Linux 的 IP 地址
                                • setup 命令配置网卡
                                  • 手工配置网卡
                                  • ifconfig 命令
                                    • ifup 和 ifdown 命令
                                      • ping 命令
                                        • natstat 命令
                                          • write 命令
                                            • wall 命令
                                              • mail 命令
                                              • linux文本编辑器
                                                • linux软件安装
                                                  • linux用户和用户组管理
                                                    • linux其他权限管理命令
                                                      • linux文件系统管理

                                                    linux常用网络命令

                                                    author iconkarincalendar icon2021年5月6日category icon
                                                    • 笔记
                                                    tag icon
                                                    • linux
                                                    timer icon大约 17 分钟

                                                    此页内容
                                                    • 配置 Linux 的 IP 地址
                                                      • setup 命令配置网卡
                                                      • 手工配置网卡
                                                    • ifconfig 命令
                                                    • ifup 和 ifdown 命令
                                                    • ping 命令
                                                    • natstat 命令
                                                    • write 命令
                                                    • wall 命令
                                                    • mail 命令

                                                    我们在做练习的时候,需要让 Linux 进行联网配置。介绍一下如何给 Linux 配置 IP 地址,以及一些常用的网络命令。

                                                    # 配置 Linux 的 IP 地址

                                                    IP 地址是计算机在互联网中唯一的地址编码。每台计算机如果需要接入网络和其他计算机进行数据通信,就必须配置唯一的公网 IP 地址。

                                                    # setup 命令配置网卡

                                                    Linux 当然也需要配置 IP 地址才可以正常使用网络。其实 Linux 主要是通过修改网卡配置文件来永久修改 IP 地址的。setup 是一个简化命令,是 Red Hat 系列专有的命令,其他的 Linux 系列不一定有此命令。setup 命令会开启一个图形化的配置工具,如图10-1 所示。

                                                    这是一个综合工具,既可以配置 IP 地址,也可以管理防火墙和系统服务。如果我们需要配置 IP 地址,则只要选择“Network configuration”就会开始 IP 地址配置。

                                                    setup1

                                                    图10-1 配置工具界面

                                                    接下来就可以执行动作选择了。我们要配置 IP 地址,就选择“Decive configuration”,如图10-2 所示。

                                                    setup2

                                                    图10-2 选择动作

                                                    在 CentOS 6.x 中,网卡的设备文件名用 eth0 来表示第一块网卡,如果有第二块网卡,则设备文件名会依次为 eth1。在这里,我们的 Linux 只有一块网卡,所以在选择设备时只需选择 eth0 网卡配置即可,如图10-3 所示。

                                                    setup3

                                                    图10-3 选择设备

                                                    接下来就会进入网络配置界面,如图10-4 所示。这时如果在“Use DHCP”选项上输入 “*”号(空格输入)。就会自动获取 IP 地址:取消“*”号,就会手工分配 IP 地址。

                                                    setup4

                                                    图10-4 网络配置

                                                    输入正确的 IP 地址后,使用 Tab 键切換至“OK”按钮上,接下来一路保存退出,IP 地址就输入完成了。但是,如果想让 IP 地址配置生效,则还需要重启网络服务。

                                                    [root@localhost ~]# service network restart
                                                    #重启网络服务
                                                    
                                                    1
                                                    2

                                                    当然,重启网络服务有很多种方法,这里直接使用 service 命令进行网络服务重启。

                                                    补充

                                                    CentOS 7.x 及以上版本的的 setup 命令没有网络配置“Decive configuration”选项了,但是可以用 nmtui 命令配置网络,同样也是图形化配置工具。

                                                    # 手工配置网卡

                                                    手工开启网卡 在 CentOS 5x 以前的系统中,通过 setup 配置 IP 地址,重启后,IP地址就可以配置成功。但如果是在 CenOS 6.x 中,那么重启后可能依然无法找到 eth0 网卡,而只能看到 lo(本地回环)网卡。例如:

                                                    [root@localhost ~] ifcontig
                                                    lo		Link encap:Local Loopback
                                                    inet adar:127.0.0.1 Mask:256.0.0.0
                                                    inet6 addr: ::1/128 Scope:Hoat
                                                    		UP LOOPBACK RUNNING MTU:16436 Metric:1
                                                    		RX packets:12 errors:0 dropped:0 qverruns:0 frame:0
                                                            TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 
                                                            RX bytes:840 (840.0 b) TX bytes:840 (840.0 b) 
                                                    #只有lo网卡,没有eth0网卡
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9

                                                    这是因为,在 CentOS 6.x 中,eth0 网卡是默认没有开启的,需要修改网卡配置文件手工开启。例如:

                                                    [root@1ocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
                                                    TYPE=Ethernet
                                                    PROXY_METHOD=none
                                                    BROWSER_ONLY=no
                                                    BOOTPROTO=dhcp
                                                    DEFROUTE=yes
                                                    IPV4_FAILURE_FATAL=no
                                                    IPV6INIT=yes
                                                    IPV6_AUTOCONF=yes
                                                    IPV6_DEFROUTE=yes
                                                    IPV6_FAILURE_FATAL=no
                                                    IPV6_ADDR_GEN_MODE=stable-privacy
                                                    NAME=ens3
                                                    UUID=c3c79e29-8228-4e7a-a39a-f54599644675
                                                    DEVICE=eth0
                                                    ONBOOT=yes
                                                    #在网卡配置文件中,ONBOOT默认是 no
                                                    [root@1ocalhost ~]# service network restart
                                                    Restarting network (via systemctl):                        [  OK  ]
                                                    [root@1ocalhost ~]# 
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    14
                                                    15
                                                    16
                                                    17
                                                    18
                                                    19
                                                    20

                                                    手工把 ONBOOT 选项改为 yes,然后再重启网络服务(service network restart),就会发现 eth0 网卡启动了,IP 地址也可以正常使用了。

                                                    补充

                                                    Debain/Ubuntu 系统的网络配置:/etc/network/interfaces

                                                    1. 打开 ubuntu 的 /etc/network/interfaces 文件

                                                    默认的内容如下:

                                                    $ cat /etc/network/interfaces
                                                    auto lo
                                                    iface lo inet loopback
                                                    
                                                    1
                                                    2
                                                    3

                                                    在文件中添加如下信息:(动态或者静态,二选一)

                                                    # 1. 动态获取的配置方法:
                                                    auto eth0
                                                    iface eth0 inet dhcp
                                                    
                                                    # 2. 静态分配的配置方法:
                                                    auto eth0
                                                    iface eth0 inet static
                                                    address 192.168.2.6
                                                    netmask 255.255.255.0
                                                    gateway 192.168.2.1
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    1. 添加域名服务器(DNS):

                                                    打开 /etc/resolv.conf 文件,添加如下内容。DNS 写自己常用的就可以了。

                                                    nameserver 114.114.114.114
                                                    
                                                    1
                                                    1. 重启下网络
                                                    $ /etc/init.d/networking restart
                                                    #这条命令是重启网卡
                                                    或者
                                                    $ ifdown eth0
                                                    $ ifup eth0
                                                    #这两条命令是有针对性的重启某个网络接口,因为一个系统可能有多个网络接口
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6

                                                    以上配置好之后, ifconfig 查看下配置是否成功,ping 一下,验证网络是否通了。

                                                    Ubuntu 16.04 之后的版本,启用了新的网络工具 netplan,命令行配置网络参数跟之前的版本有比较大的差别,其网卡配置文件为:/etc/netplan/01-network-manager-all.yaml,netplan 描述文件采用了 yaml 语法,默认是用 dhcp方式,如果要配置静态地址,则需要修改此文件的想关内容。

                                                    # 1. 默认配置为 DHCP 方式:
                                                    #注意行缩进
                                                    root@ubuntu:~# vim /etc/netplan/01-network-manager-all.yaml
                                                    network:
                                                     version: 2
                                                     ethernets:
                                                         eth0:
                                                             dhcp4: true
                                                             match:
                                                                 macaddress: 52:54:00:d4:51:ad
                                                             set-name: eth0
                                                             
                                                    # 2. 配置静态 IP 地址:
                                                    #注意行缩进
                                                    root@ubuntu:~# grep -v ^# /etc/netplan/01-network-manager-all.yaml
                                                    network:
                                                     version: 2
                                                     ethernets:
                                                         eth0:
                                                             addresses: [192.168.120.18/24]
                                                             gateway4: 192.168.120.1
                                                             nameservers:
                                                                     addresses: [183.60.83.19,183.60.82.98]
                                                                   
                                                    # 更新配置生效  
                                                    root@ubuntu:~# sudo netplan apply
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    14
                                                    15
                                                    16
                                                    17
                                                    18
                                                    19
                                                    20
                                                    21
                                                    22
                                                    23
                                                    24
                                                    25
                                                    26

                                                    # ifconfig 命令

                                                    ifconfig 命令,是 Linux 中查看和临时修改 IP 地址的命令。

                                                    1. 查看 IP 地址信息

                                                    ifconfig 命令最主要的作用就是查看 IP 地址的信息,直接输入 ifconfig 命令即可。

                                                    英文原意:configure a network interface

                                                    [root@localhost ~]# ifconfig
                                                    eth0	Link encap:Ethernet HWaddr 00:0C:29:C5:FB:AA
                                                    #eth0网卡信息 网络类型为以太网	MAC 地址
                                                    inet addr:192.168.44.3 Bcast:192.168.44.255 Mask:255.255.255.0
                                                    #IP地址 				  广播地址 				子网掩码
                                                    inet6 addr:fe80::20c:29ff:fec5:fbaa/64 Scope:Link
                                                    #IPv6的地址(目前不生效)
                                                    		UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
                                                    		#网络参数 					   最大传输单元  数据包转送次数
                                                    		RX packets:881 errors:0 dropped:O overruns:0 frame:0
                                                    		#接收到的数据包情况
                                                    		TX packets:853 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
                                                            #发送的数据包情况         								  数据包碰撞		数据缓冲区长度
                                                            RX bytes:82229 (80.3 KiB) TX bytes:273463 (267.0 KiB)
                                                            #接收包的大小 发送包的大小
                                                            Interrupt:19 Base address:0x2000
                                                            #TRQ中断 			 内存地址
                                                            
                                                    lo 		Link encap:Local Loopback
                                                    #本地回环网卡信息
                                                    inet addr:127.0.0.1 Mask:255.0.0.0
                                                    inet6 addr: ::1/128 Scope:Host
                                                    		UP LOOPBACK RUNNING MTU:16436 Metric:1
                                                            RX packets:12 errors:0 dropped:0 overruns:0 frame:0
                                                            TX packets:12 errors:O dropped:O overruns:0 carrier:0 collisions:0 txqueuelen:0
                                                            RX bytes:840 (840.0 b) TX bytes:840 (840.0 b)
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    14
                                                    15
                                                    16
                                                    17
                                                    18
                                                    19
                                                    20
                                                    21
                                                    22
                                                    23
                                                    24
                                                    25
                                                    26

                                                    ifconfig 命令主要用于查看 IP 地址、子网掩码 和 MAC地址这三类信息,其他信息我们有所了解即可。

                                                    lo 网卡是 Loopback 的缩写,也就是本地回环网卡,这个网卡的 IP 地址是 127.0.0.1。它只代表我们的网络协议正常,就算不插入网线也可以 ping 通,所以基本没有实际使用价值,大家了解一下即可。

                                                    1. 临时配置 IP 地址

                                                    ifconfig 命令除可以查看 IP 地址之外,还可以临时配置 IP 地址,但是一旦重启,IP 地址就会失效,所以我们还是应该使用 setup 命令来进行 IP 地址配置。

                                                    使用 ifconfig 命令临时配置 IP 地址的示例如下:

                                                    [root@localhost ~]#ifconfig eth0 192.168.44.3
                                                    #配置 IP地址,不指定子网掩码就会使用标准子网掩码
                                                    [rootelocalhost -]#ifconfig eth0 192.168.44.3 netmask 255.255.255。0
                                                    #配置 IP地址,同时配置子网掩码
                                                    
                                                    1
                                                    2
                                                    3
                                                    4

                                                    # ifup 和 ifdown 命令

                                                    ifup 和 ifdown 是两个非常简单的命令,其作用类似于 Windows 中的启用和禁用网卡,主要用于启用和关闭网卡。

                                                    英文原意:bring a network interface up & take a network interface down

                                                    命令格式如下:

                                                    [root@localhost ~]# ifdown 网卡设备名
                                                    #例子:
                                                    [root@localhost ~]# ifdown eth0
                                                    #关闭 eth0 网卡
                                                    [root@localhost ~]# ifup eth0
                                                    #启用 eth0 网卡
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6

                                                    # ping 命令

                                                    ping 是常用的网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况。

                                                    英文原意:send ICMP ECHO_REQUEST to network hosts

                                                    命令格式如下:

                                                    [root@localhost ~]# ping [选项] IP
                                                    选项:
                                                    	-b		:后面加入广播地址,用于对整个网段进行探测
                                                        -c 次数	:用于指定 ping 的次数
                                                        -s 字节	:指定探测包的大小 
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    1. 探测与指定主机通信

                                                    直接输入 ping IP地址 即可,例如:

                                                    [root@localhost ~]# ping 192.168.103.151
                                                    PING 192.168.103.151 (192.168.103.151) 56(84) bytes of data.
                                                    64 bytes from 192.168.103.151: icmp_seq=1 tt1=128 time=0.300 ms
                                                    64 bytes from 192.168.103.151: icmp_seq=2 ttl=128 time=0.481 ms
                                                    ...省略部分内容.... 
                                                    #探测与指定主机是否通信
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6

                                                    Linux 是一个比较实在的操作系统,这个 ping 命令如果不使用 Ctrl+C 快捷键强行中止, 就会一直 ping 下去,直到天荒地老……

                                                    1. 指定 ping 的次数

                                                    既然 ping 这么“实在”,如果不想一直 ping 下去,则可以使用“-c”选项指定 ping 的次数。例如:

                                                     [root@localhost ~]# ping -c 3 192.168.103.151
                                                     #只探测3次,就中止 ping 命令
                                                    
                                                    1
                                                    2
                                                    1. 探测网段中的可用主机

                                                    在 ping 命令中,可以使用“-b”选项,后面加入广播地址,探测整个网段。我们可以使 用这个选项知道整个网络中有多少主机是可以和我们通信的,而不用一个一个 IP 地址地进行探测。例如:

                                                    [root@localhost ~]# ping -b -c 3 192.168.103.255
                                                    WARNING:pinging broadcast address
                                                    PING 192.168.103.255 (192.168.103.255) 56(84) bytes of data.
                                                    64 bytes from 192.168.103.199:icmp_seq=1 ttl=64 time=1.95 ms
                                                    64 bytes from 192.168.103.168:icmp_seq=1 ttl=64 time=1.97 ms
                                                    64 bytes from 192.168.103.252:icmp_seq=1 ttl=64 time=2.29 ms
                                                    ...省略部分内容...
                                                    #探测 192.168.103.0/24 网段中有多少可以通信的主机
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8

                                                    # natstat 命令

                                                    说道这个命令,就不得不提以下端口的作用。

                                                    我们要先简单了解一下端口的作用。在互联网中,如果 IP 地址是服务器在互联网中唯一的地址标识,那么大家可以想象一下:我有一台服务器,它有固定的公网 IP 地址,通过 IP 地址可以找到我的服务器。但是我的服务器中既启动了网页服务(Web 服务),又启动了文件传输服务(FTP 服务),那么你的客户端访问我的服务器,到底应该如何确定你访问的是哪一个服务呢?

                                                    端口就是用于网络通信的接口,是数据从传输层向上传递到应用层的数据通道。我们可以理解为每个常规服务都有默认的端口号,通过不同的端口号,我们就可以确定不同的服务。也就是说,客户端通过 IP 地址访问到我的服务器,如果数据包访问的是 80 端口,则访问的是 Web 服务;而如果数据包访问的是 21 端口,则访问的是 FTP 服务。

                                                    我们可以简单地理解为每个常规服务都有一个默认端口(默认端口可以修改),这个端口是所有人都知道的,客户端可以通过固定的端口访问指定的服务。而我们通过在服务器中查看已经开启的端口号,就可以判断服务器中开启了哪些服务。

                                                    netstat 命令,是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。

                                                    英文原意:Print network connections, routing tables, interface statis‐tics, masquerade connections, and multicast memberships

                                                    命令格式如下:

                                                    [root@localhost ~]# netstat [选项]
                                                    选项:
                                                    	-a		:列出所有网络状态,包括 Socket 程序
                                                    	-c 秒数	:指定每隔几秒刷新一次网络状态
                                                    	-n		:使用 IP 地址和端口号显示,不使用域名与服务名
                                                    	-p		:显示 PID 和程序名
                                                    	-t		:显示使用 TCP 协议端口的连接状况
                                                    	-u		:显示使用 UDP 协议端口的连接状况
                                                    	-l		:仅显示监听状态的连接
                                                    	-r		:显示路由表
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    1. 查看本机开启的端口

                                                    这是本机最常用的方式,使用选项“-tuln”。因为使用了”-l“项,所以只能看到监听状态的连接,而不能看到已经建立连接状态的连接。例如:

                                                    [root@localhost ~]# netstat -tuln
                                                    Active Internet connections (only servers)
                                                    Prota  Recv-Q  Send-Q	Local Address		Foreign Address		State
                                                    tcp			0		0 	0.0.0.0:3306		0.0.0.0:*			LISTEN
                                                    tcp			0		0	0.0.0.0:11211		0.0.0.0:*			LISTEN
                                                    tcp			0		0	0.0.0.0:22			0.0.0.0:*			LISTEN
                                                    tcp			0		0	:::11211			:::*				LISTEN
                                                    tcp			0		0	:::80				:::*				LISTEN
                                                    tcp			0		0	:::22				:::*				LISTEN
                                                    udp			0		0	0.0.0.0:11211		0.0.0.0:*			
                                                    udp			0		0	:::11211			:::*				
                                                    #协议  接收队列  发巡队列  本机的IP及端口号		 远程主机的IP地扯及端口号  状态
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12

                                                    这个命令的输出较多。

                                                    • Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。
                                                    • Reev-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。
                                                    • Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,一般是不具备 ACK 标志的数据包。
                                                    • Local Address:本机的 IP 地址和端口号。
                                                    • Foreign Address:远程主机的 IP 地址和端口号。
                                                    • State:状态。常见的状态主要有以下几种。
                                                      • LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。
                                                      • ESTABLISHED:已经建立连接的状态。如果使用“-l”选项,则看不到已经建立连接的状态。
                                                      • SYN_SENT:SYN 发起包,就是主动发起连接的数据包。
                                                      • SYN_RECV:接收到主动连接的数据包。
                                                      • FIN_WAIT1:正在中断的连接。
                                                      • FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
                                                      • TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
                                                      • CLOSED:套接字没有被使用。

                                                    在这些状态中,我们最常用的就是 LISTEN 和 ESTABLISHED 状态,一种代表正在监听,另一种代表已经建立连接。

                                                    1. 查看本机有哪些程序开启的端口

                                                    如果使用“-p”选项,则可以查看到是哪个程序占用了端口,并且可以知道这个程序的 PID。例如:

                                                    [root@localhost ~]# netstat -tulnp
                                                    Active Internet connections (only servers)
                                                    Prota  Recv-Q  Send-Q	Local Address		Foreign Address		State		PID/Program name
                                                    tcp			0		0	0.0.0.0:3306		0.0.0.0:*			LISTEN		2359/mysqld
                                                    tcp			0		0	0.0.0.0:11211		0.0.0.0:*			LISTEN		1563/memcached
                                                    tcp			0		0	0.0.0.0:22			0.0.0.0:*			LISTEN		1490/sshd
                                                    tcp			0		0	:::11211			:::*				LISTEN		1563/memcached
                                                    tcp			0		0	:::80				:::*				LISTEN		21025/httpd
                                                    tcp			0		0	:::22				:::*				LISTEN		1490/sshd
                                                    udp			0		0	0.0.0.0:11211		0.0.0.0:*						1563/memcached
                                                    udp			0		0	:::11211			:::*							1563/memcached
                                                    #协议  接收队列  发巡队列  本机的IP及端口号		 远程主机的IP地扯及端口号  状态		PID/程序名
                                                    #比之前的命令多了一个“-p”选项,结果多了“PID/程序名”,可以知道是哪个程序占用了端口
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    1. 查看所有连接

                                                    查看所有连接使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、已经建立连接状态的连接(ESTABLISHED)、Socket程序连接等。因为连接较多,所以输出的内容有很多。例如:

                                                    [root@localhost ~]# 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:3306		0.0.0.0:*			 LISTEN
                                                    tcp			0		0	0.0.0.0:11211		0.0.0.0:*			 LISTEN
                                                    tcp			0		0	117.79.130.170:80	78.46.174.55:58815	 SYN_RECV
                                                    tcp			0		0	0.0.0.0:22			0.0.0.0:*			 LISTEN
                                                    tcp			0		0	117.79.130.170:22	124.205.129.99:10379 ESTABLISHED
                                                    tcp			0		0	117.79.130.170:22	124.205.129.99:11811 ESTABLISHED
                                                    ...省略部分内容...
                                                    udp			0		0	0.0.0.0:11211		0.0.0.0:*			
                                                    udp			0		0	:::11211			:::*				
                                                    Active UNIX domain sockets (servers and established)
                                                    Proto	RefCnt	Flags	Type	state		I-Node	Path
                                                    unix	2		[ ACC ]	STREAM	LISTENING	9761	@/var/run/hald/dbus-fr41WkQn1c
                                                    ...省略部分内容.... 
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    14
                                                    15
                                                    16

                                                    从“Active UNIX domain sockets”开始,之后的内容就是 Socket 程序产生的连接,之前的内容都是网络服务产生的连接。我们可以在“-an”选项的输出中看到各种网络连接状态,而之前的“-tuln”选项则只能看到监听状态。

                                                    # write 命令

                                                    在服务器上,有时会有多个用户同时登录,一些必要的沟通就显得尤为重要。比如,我必须关闭某个服务,或者需要重启服务器,当然需要通知同时登录服务器的用户,这时就可以使用 write 命令,向其他用户发送信息。

                                                    write 命令,用于向指定登录用户终端上发送信息。

                                                    英文原意:send a message to another user

                                                    write 命令的基本格式如下:

                                                    [root@localhost ~]#write 用户名 [终端号]
                                                    
                                                    1

                                                    write 命令没有多余的选项,我们要向在某个终端登录的用户发送信息,就可以这样来执行命令:

                                                    [root@localhost ~]# wlite userl pts/1
                                                    hello
                                                    I will be in 5 minutes to restart, please save your data
                                                    #向在 pts/1(远程终端1)登录的 user1 用戶发送信息,使用“Ctrl+D”快捷键保存发送的数据
                                                    
                                                    1
                                                    2
                                                    3
                                                    4

                                                    这时,user1 用户就可以收到你要在 5 分钟之后重启系统的信息了。

                                                    # wall 命令

                                                    wall 命令,用于给所有登录用户发送信息,包括你自己。

                                                    英文原意:send a message to everybody's terminal.

                                                    命令格式,在 wall 命令后加入需要发送的信息即可,例如:

                                                    [root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"
                                                    
                                                    1

                                                    # mail 命令

                                                    mail 是 Linux 的邮件客户端命令,可以利用这个命令给其他用户发送邮件。

                                                    1. 发送邮件

                                                    如果我们想要给其他用户发送邮件,则可以执行如下命令:

                                                    [root@localhost ~]# mail userl
                                                    Subject:hello					<---邮件标题
                                                    Nice to meet you!				<---部件具体内容
                                                    .								<---使用 “.” 来结束邮件输入
                                                    #发送邮件给 user1 用户
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5

                                                    我们接收到的邮件都保存在 /var/spool/mail/用户名 中,每个用户都有一个以自己的用户名命名的邮箱。

                                                    1. 发送文件内容

                                                    如果我们想把某个文件的内容发送给指定用户,则可以执行如下命令:

                                                    [root@localhost ~]# mail -s "test mall" root < /root/anaconda-ks.cfg
                                                    选项:
                                                    	-s:指定邮件标题
                                                    #把 /root/anaconda-ks.cfg 文件的内容发送给 root用户
                                                    
                                                    1
                                                    2
                                                    3
                                                    4

                                                    我们在写脚本时,有时需要脚本自动发送一些信息给指定用户,把要发送的信息预先写到文件中,是一个非常不错的选择。

                                                    1. 查看已经接收的邮件

                                                    我们可以直接在命令行中执行 mail 命令,进入 mail 的交互命令中,可以在这里查看已经接收到的邮件。例如:

                                                    [root@localhost ~)# mail
                                                    Heirloom Mail version 12.4 7/29/08.Type ?for help.
                                                    "/var/spool/mail/root": 1 message 1 new
                                                    >N 1 root		Mon Dec 5 22:45  68/1777  "teat mall"		<---之前收到的邮件
                                                    >N 2 root		Mon Dec 5 23:08  18/602   "hello"
                                                    #未读 编号 发件人 时间						标题
                                                    
                                                    &		<---等待用户输入命令
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8

                                                    可以看到已经接收到的邮件列表,“N”代表未读邮件,如果是已经阅读过的邮件,则前面是不会有这个“N”的;之后的数字是邮件的编号,我们主要通过这个编号来进行邮件的操作。如果我们想要查看第一封邮件,则只需输入邮件的编号“1”就可以了。

                                                    在交互命令中执行“?”,可以查看这个交互界面支持的命令。例如:

                                                    $ ?		<-输入 ? 命令
                                                                   mail commands
                                                    type <message list>             type messages
                                                    next                            goto and type next message
                                                    from <message list>             give head lines of messages
                                                    headers                         print out active message headers
                                                    delete <message list>           delete messages
                                                    undelete <message list>         undelete messages
                                                    save <message list> folder      append messages to folder and mark as saved
                                                    copy <message list> folder      append messages to folder without marking them
                                                    write <message list> file       append message texts to file, save attachments
                                                    preserve <message list>         keep incoming messages in mailbox even if saved
                                                    Reply <message list>            reply to message senders
                                                    reply <message list>            reply to message senders and all recipients
                                                    mail addresses                  mail to specific recipients
                                                    file folder                     change to another folder
                                                    quit                            quit and apply changes to folder
                                                    xit                             quit and discard changes made to folder
                                                    !                               shell escape
                                                    cd <directory>                  chdir to directory or home if none given
                                                    list                            list names of all available commands
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    14
                                                    15
                                                    16
                                                    17
                                                    18
                                                    19
                                                    20
                                                    21

                                                    这些交互命令是可以简化输入的,比如 headers 命令,就可以直接输入 h,这是列出邮件标遇列表的命令。我们解释一下常用的交互命令。

                                                    • headers:列出邮件标题列表,直接输入 h 命令即可。
                                                    • delete:删除指定邮件。比如想要删除第二封邮件,可以输入 d2。
                                                    • save:保存邮件。可以把指定邮件保存成文件,如 s2 /tmp/tcst.mail。
                                                    • quit:退出,并把已经操作过的邮件进行保存。比如移除已删除邮件、保存已阅读邮件等。
                                                    • exit:退出,但是不保存任何操作。
                                                    edit icon编辑此页open in new window
                                                    上一页
                                                    linux关机和重启命令
                                                    下一页
                                                    linux文本编辑器
                                                    MIT Licensed
                                                    Copyright © 2022 karin