diff --git a/translated/tech/20180308 Dynamic Linux Routing with Quagga.md b/published/20180308 Dynamic Linux Routing with Quagga.md similarity index 61% rename from translated/tech/20180308 Dynamic Linux Routing with Quagga.md rename to published/20180308 Dynamic Linux Routing with Quagga.md index bfa7ad3c89..790ec62d4d 100644 --- a/translated/tech/20180308 Dynamic Linux Routing with Quagga.md +++ b/published/20180308 Dynamic Linux Routing with Quagga.md @@ -1,31 +1,29 @@ 使用 Quagga 实现 Linux 动态路由 ============================================================ +> 学习如何使用 Quagga 套件的路由协议去管理动态路由。 ![network](https://www.linux.com/sites/lcom/files/styles/rendered_file/public/network_visualization.png?itok=P3Ve7eO1 "network") -学习如何使用 Quagga 套件的路由协议去管理动态路由。[Creative Commons Attribution][1][Wikimedia Commons: Martin Grandjean][2] 迄今为止,本系列文章中,我们已经在 [Linux 局域网路由新手指南:第 1 部分][4] 中学习了复杂的 IPv4 地址,在  [Linux 局域网路由新手指南:第 2 部分][5] 中学习了如何去手工创建静态路由。 今天,我们继续使用 [Quagga][6] 去管理动态路由,这是一个安装完后就不用理它的的软件。Quagga 是一个支持 OSPFv2、OSPFv3、RIP v1 和 v2、RIPng、以及 BGP-4 的路由协议套件,并全部由 zebra 守护程序管理。 -OSPF 的意思是最短路径优先。OSPF 是一个内部网关协议(IGP);它可以用在局域网和跨因特网的局域网互联中。在你的网络中的每个 OSPF 路由器都包含整个网络的拓扑,并计算通过网络的最短路径。OSPF 会通过多播的方式自动对外传播它检测到的网络变化。你可以将你的网络分割为区域,以保持路由表的可管理性;每个区域的路由器只需要知道离开它的区域的下一跳接口地址,而不用记录你的网络的整个路由表。 +OSPF 的意思是最短路径优先Open Shortest Path First。OSPF 是一个内部网关协议(IGP);它可以用在局域网和跨因特网的局域网互联中。在你的网络中的每个 OSPF 路由器都包含整个网络的拓扑,并计算通过该网络的最短路径。OSPF 会通过多播的方式自动对外传播它检测到的网络变化。你可以将你的网络分割为区域,以保持路由表的可管理性;每个区域的路由器只需要知道离开它的区域的下一跳接口地址,而不用记录你的网络的整个路由表。 -RIP,路由信息协议,是一个很老的协议,RIP 路由器向网络中周期性多播它的整个路由表,而不是像 OSPF 那样只多播网络的变化。RIP 通过跳数来测量路由,任何超过 15 跳的路由它均视为不可到达。RIP 设置很简单,但是 OSPF 在速度、效率、以及弹性方面更佳。 +RIP,即路由信息协议,是一个很老的协议,RIP 路由器向网络中周期性多播它的整个路由表,而不是像 OSPF 那样只多播网络的变化。RIP 通过跳数来测量路由,任何超过 15 跳的路由它均视为不可到达。RIP 设置很简单,但是 OSPF 在速度、效率以及弹性方面更佳。 BGP-4 是边界网关协议版本 4。这是用于因特网流量路由的外部网关协议(EGP)。你不会用到 BGP 协议的,除非你是因特网服务提供商。 ### 准备使用 OSPF -在我们的小型 KVM 测试实验室中,用两台虚拟机表示两个不同的网络,然后将另一台虚拟机配置为路由器。创建两个网络:net1 是 192.168.110.0/24 而 net2 是 192.168.120.0/24。启用 DHCP 是明智的,否则你要分别进入这三个虚拟机,去为它们设置静态地址。Host 1 在 net1 中,Host 2 在 net2 中,而路由器同时与这两个网络连接。设置 Host 1 的网关地址为 192.168.110.126,Host 2 的网关地址为 192.168.120.136。 +在我们的小型 KVM 测试实验室中,用两台虚拟机表示两个不同的网络,然后将另一台虚拟机配置为路由器。创建两个网络:net1 是 192.168.110.0/24 ,而 net2 是 192.168.120.0/24。启用 DHCP 是明智的,否则你要分别进入这三个虚拟机,去为它们设置静态地址。Host 1 在 net1 中,Host 2 在 net2 中,而路由器同时与这两个网络连接。设置 Host 1 的网关地址为 192.168.110.126,Host 2 的网关地址为 192.168.120.136。 * Host 1: 192.168.110.125 - * Host 2:192.168.120.135 - * Router:192.168.110.126 和 192.168.120.136 -在路由器上安装 Quagga。在大多数 Linux 中它是一个 quagga 包。在 Debian 上还有一个单独的文档包 quagga-doc。取消 `/etc/sysctl.conf` 配置文件中如下这一行的注释去启用包转发功能: +在路由器上安装 Quagga。在大多数 Linux 中它是 quagga 软件包。在 Debian 上还有一个单独的文档包 quagga-doc。取消 `/etc/sysctl.conf` 配置文件中如下这一行的注释去启用包转发功能: ``` net.ipv4.ip_forward=1 @@ -44,32 +42,27 @@ net.ipv4.ip_forward=1 hostname router1 log file /var/log/quagga/ospfd.log router ospf - ospf router-id 192.168.110.15 - network 192.168.110.0/0 area 0.0.0.0 - network 192.168.120.0/0 area 0.0.0.0 + ospf router-id 192.168.110.15 + network 192.168.110.0/0 area 0.0.0.0 + network 192.168.120.0/0 area 0.0.0.0 access-list localhost permit 127.0.0.1/32 access-list localhost deny any line vty access-class localhost ``` -你可以使用感叹号(!)或者井号(#)去注释掉这些行。我们来快速浏览一下这些选项。 +你可以使用感叹号(`!`)或者井号(`#`)去注释掉这些行。我们来快速浏览一下这些选项。 -* **hostname** 是你希望的任何内容。这里不是一般意义上的 Linux 主机名,但是,当你使用 `vtysh` 或者 `telnet` 登入时,你将看到它们。 - -* **log file** 是你希望用于保存日志的任意文件。 - -* **router** 指定路由协议。 - -* **ospf router-id** 是任意的 32 位数字。使用路由器的一个 IP 地址就是很好的选择。 - -* **network** 定义你的路由器要通告的网络。 - -* **access-list** 限制 `vtysh` 登入,它是 Quagga 命令行 shell,它允许本地机器登入,并拒绝任何远程管理。 +* `hostname` 可以是你希望的任何内容。这里不是一般意义上的 Linux 主机名,但是,当你使用 `vtysh` 或者 `telnet` 登入时,你将看到它们。 +* `log file` 是你希望用于保存日志的任意文件。 +* `router` 指定路由协议。 +* `ospf router-id` 是任意的 32 位数字。使用路由器的一个 IP 地址就是很好的选择。 +* `network` 定义你的路由器要通告的网络。 +* `access-list` 限制 `vtysh` 登入,它是 Quagga 命令行 shell,它允许本地机器登入,并拒绝任何远程管理。 ### Debian/Ubuntu -在你启动守护程序之前,Debian/Ubuntu 相对其它的 Debian 衍生版可能多需要一步到多步。编辑 `/etc/quagga/daemons` ,除了 `zebra`=yes 和 `ospfd=yes` 外,使其它所有的行的值为 `no`。 +在你启动守护程序之前,Debian/Ubuntu 相对其它的 Debian 衍生版可能多需要一步到多步。编辑 `/etc/quagga/daemons` ,除了 `zebra=yes` 和 `ospfd=yes` 外,使其它所有的行的值为 `no`。 然后,在 Debian 上运行 `ospfd` 去启动 Quagga: @@ -95,9 +88,9 @@ line vty via: https://www.linux.com/learn/intro-to-linux/2018/3/dynamic-linux-routing-quagga -作者:[CARLA SCHRODER ][a] +作者:[CARLA SCHRODER][a] 译者:[qhwdw](https://github.com/qhwdw) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -105,7 +98,7 @@ via: https://www.linux.com/learn/intro-to-linux/2018/3/dynamic-linux-routing-qua [1]:https://www.linux.com/licenses/category/creative-commons-attribution [2]:https://commons.wikimedia.org/wiki/File:Network_Visualization.png [3]:https://www.linux.com/files/images/networkvisualizationpng -[4]:https://www.linux.com/learn/intro-to-linux/2018/2/linux-lan-routing-beginners-part-1 -[5]:https://www.linux.com/learn/intro-to-linux/2018/3/linux-lan-routing-beginners-part-2 +[4]:https://linux.cn/article-9657-1.html +[5]:https://linux.cn/article-9675-1.html [6]:https://www.quagga.net/ [7]:https://www.quagga.net/ diff --git a/translated/tech/20180521 Audacity quick tip- quickly remove background noise.md b/published/20180521 Audacity quick tip- quickly remove background noise.md similarity index 66% rename from translated/tech/20180521 Audacity quick tip- quickly remove background noise.md rename to published/20180521 Audacity quick tip- quickly remove background noise.md index 0765199582..bb0a056867 100644 --- a/translated/tech/20180521 Audacity quick tip- quickly remove background noise.md +++ b/published/20180521 Audacity quick tip- quickly remove background noise.md @@ -2,7 +2,8 @@ Audacity 快速指南:快速消除背景噪音 ====== ![](https://fedoramagazine.org/wp-content/uploads/2018/03/audacity-noise-816x345.png) -当在笔记本电脑上录制声音时 - 比如首次简单地录屏 - 许多用户通常使用内置麦克风。但是,这些小型麦克风也会捕获很多背景噪音。在这个快速指南中,我们会学习如何使用 Fedora 中的 [Audacity][1] 快速移除音频文件中的背景噪音。 + +当在笔记本电脑上录制声音时 —— 比如首次简单地录屏 —— 许多用户通常使用内置麦克风。但是,这些小型麦克风也会捕获很多背景噪音。在这个快速指南中,我们会学习如何使用 Fedora 中的 [Audacity][1] 快速移除音频文件中的背景噪音。 ### 安装 Audacity @@ -11,28 +12,30 @@ Audacity 是 Fedora 中用于混合、剪切和编辑音频文件的程序。在 ![][2] 如果你更喜欢终端,请使用以下命令: + ``` sudo dnf install audacity - ``` ### 导入您的音频、样本背景噪音 -安装 Audacity 后,打开程序,使用 **File > Import** 菜单项导入你的声音。这个例子使用了一个[来自 freesound.org 添加了噪音的声音][3]: +安装 Audacity 后,打开程序,使用 “File > Import” 菜单项导入你的声音。这个例子使用了一个[来自 freesound.org 添加了噪音的声音][3]: -接下来,采样要滤除的背景噪音。导入音轨后,选择仅包含背景噪音的音轨区域。然后从菜单中选择 **Effect > Noise Reduction**,然后按下 **Get Noise Profile** 按钮。 +- https://ryanlerch.fedorapeople.org/noise.ogg?_=1 + +接下来,采样要滤除的背景噪音。导入音轨后,选择仅包含背景噪音的音轨区域。然后从菜单中选择 “Effect > Noise Reduction”,然后按下 “Get Noise Profile” 按钮。 ![][4] ### 过滤噪音 -接下来,选择你要过滤噪音的音轨区域。通过使用鼠标进行选择,或者按 **Ctrl + a** 来选择整个音轨。最后,再次打开 **Effect > Noise Reduction** 对话框,然后单击确定以应用滤镜。 +接下来,选择你要过滤噪音的音轨区域。通过使用鼠标进行选择,或者按 `Ctrl + a` 来选择整个音轨。最后,再次打开 “Effect > Noise Reduction” 对话框,然后单击确定以应用滤镜。 ![][5] 此外,调整设置,直到你的音轨听起来更好。这里是原始文件,接下来是用于比较的降噪音轨(使用默认设置): -https://ryanlerch.fedorapeople.org/sidebyside.ogg?_=2 +- https://ryanlerch.fedorapeople.org/sidebyside.ogg?_=2 -------------------------------------------------------------------------------- @@ -41,7 +44,7 @@ via: https://fedoramagazine.org/audacity-quick-tip-quickly-remove-background-noi 作者:[Ryan Lerch][a] 选题:[lujun9972](https://github.com/lujun9972) 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 diff --git a/translated/tech/20180521 How to Install and Configure KVM on Ubuntu 18.04 LTS Server.md b/published/20180521 How to Install and Configure KVM on Ubuntu 18.04 LTS Server.md similarity index 56% rename from translated/tech/20180521 How to Install and Configure KVM on Ubuntu 18.04 LTS Server.md rename to published/20180521 How to Install and Configure KVM on Ubuntu 18.04 LTS Server.md index a39d5be591..a5642a24ef 100644 --- a/translated/tech/20180521 How to Install and Configure KVM on Ubuntu 18.04 LTS Server.md +++ b/published/20180521 How to Install and Configure KVM on Ubuntu 18.04 LTS Server.md @@ -1,31 +1,27 @@ 如何在 Ubuntu 18.04 服务器上安装和配置 KVM - ====== -**KVM**(基于内核的虚拟机)是一款为类 Linux 系统提供的开源全虚拟化解决方案,KVM 使用虚拟化扩展(如 **Intel VT** 或 **AMD-V**)提供虚拟化功能。无论何时我们在任何 Linux 机器上安装 KVM,都会通过加载诸如 kvm-intel.ko(基于 Intel 的机器)和 kvm-amd.ko(基于 amd 的机器)的内核模块,使其成为管理程序hyervisor(LCTT 译者注:一种监控和管理虚拟机运行的核心软件层)。 +**KVM**(基于内核的虚拟机)是一款为类 Linux 系统提供的开源的全虚拟化解决方案,KVM 使用虚拟化扩展(如 **Intel VT** 或 **AMD-V**)提供虚拟化功能。无论何时我们在任何 Linux 机器上安装 KVM,都会通过加载诸如 `kvm-intel.ko`(基于 Intel 的机器)和 `kvm-amd.ko`(基于 amd 的机器)的内核模块,使其成为管理程序hyervisor(LCTT 译注:一种监控和管理虚拟机运行的核心软件层)。 -KVM 允许我们安装和运行多个虚拟机(Windows 和 Linux)。我们可以通过 **virt-manager** 的图形用户界面或使用 **virt-install** 和 **virsh** 命令在命令行界面来创建和管理基于 KVM 的虚拟机。 +KVM 允许我们安装和运行多个虚拟机(Windows 和 Linux)。我们可以通过 `virt-manager` 的图形用户界面或使用 `virt-install` 和 `virsh` 命令在命令行界面来创建和管理基于 KVM 的虚拟机。 -在本文中,我们将讨论如何在Ubuntu 18.04 LTS 服务器上安装和配置 **KVM 管理程序**。我假设你已经在你的服务器上安装了 Ubuntu 18.04 LTS 。接下来登录到您的服务器执行以下步骤。 +在本文中,我们将讨论如何在 Ubuntu 18.04 LTS 服务器上安装和配置 **KVM 管理程序**。我假设你已经在你的服务器上安装了 Ubuntu 18.04 LTS 。接下来登录到您的服务器执行以下步骤。 ### 第一步:确认您的硬件是否支持虚拟化 -执行 egrep 命令以验证您的服务器的硬件是否支持虚拟化, +执行 `egrep` 命令以验证您的服务器的硬件是否支持虚拟化, ``` linuxtechi@kvm-ubuntu18-04:~$ egrep -c '(vmx|svm)' /proc/cpuinfo 1 -linuxtechi@kvm-ubuntu18-04:~$ - ``` 如果输出结果大于 0,就意味着您的硬件支持虚拟化。重启,进入 BIOS 设置中启用 VT 技术。 -现在使用下面的命令安装“ **kvm-ok** ”实用程序,该程序用于确定您的服务器是否能够运行硬件加速的 KVM 虚拟机 +现在使用下面的命令安装 `kvm-ok` 实用程序,该程序用于确定您的服务器是否能够运行硬件加速的 KVM 虚拟机。 ``` linuxtechi@kvm-ubuntu18-04:~$ sudo apt install cpu-checker - ``` 运行 kvm-ok 命令确认输出结果, @@ -34,60 +30,55 @@ linuxtechi@kvm-ubuntu18-04:~$ sudo apt install cpu-checker linuxtechi@kvm-ubuntu18-04:~$ sudo kvm-ok INFO: /dev/kvm exists KVM acceleration can be used -linuxtechi@kvm-ubuntu18-04:~$ - ``` ### 第二步:安装 KVM 及其依赖包 +运行下面的 apt 命令安装 KVM 及其依赖项: -运行下面的 apt 命令安装 KVM 及其依赖项 ``` linuxtechi@kvm-ubuntu18-04:~$ sudo apt update linuxtechi@kvm-ubuntu18-04:~$ sudo apt install qemu qemu-kvm libvirt-bin  bridge-utils  virt-manager ``` -只要上图相应的软件包安装成功,那么你的本地用户(对于我来说是 linuxtechi)将被自动添加到 libvirtd 群组。 +只要上图相应的软件包安装成功,那么你的本地用户(对于我来说是 `linuxtechi`)将被自动添加到 `libvirtd` 群组。 ### 第三步:启动并启用 libvirtd 服务 -我们在 Ubuntu 18.04 服务器上安装 qemu 和 libvirtd 软件包之后,它就会自动启动并启用 libvirtd 服务,如果 libvirtd 服务没有开启,则运行以下命令开启, +我们在 Ubuntu 18.04 服务器上安装 qemu 和 libvirtd 软件包之后,它就会自动启动并启用 `libvirtd` 服务,如果 `libvirtd` 服务没有开启,则运行以下命令开启, ``` linuxtechi@kvm-ubuntu18-04:~$ sudo service libvirtd start linuxtechi@kvm-ubuntu18-04:~$ sudo update-rc.d libvirtd enable - ``` 现在使用下面的命令确认 libvirtd 服务的状态, ``` linuxtechi@kvm-ubuntu18-04:~$ service libvirtd status - ``` 输出结果如下所示: -[![libvirtd-command-ubuntu18-04][1]![libvirtd-command-ubuntu18-04][2]][3] +![][3] ### 第四步:为 KVM 虚拟机配置桥接网络 -只有通过桥接网络,KVM 虚拟机才能访问外部的 KVM 管理程序或主机。在Ubuntu 18.04中,网络由 netplan 实用程序管理,每当我们新安装一个 Ubuntu 18.04 系统时,会自动创建一个名称为 “**/etc/netplan/50-cloud-init.yaml**” 文件,其配置了静态 IP 和桥接网络,netplan 实用工具将引用这个文件。 +只有通过桥接网络,KVM 虚拟机才能访问外部的 KVM 管理程序或主机。在Ubuntu 18.04中,网络由 `netplan` 实用程序管理,每当我们新安装一个 Ubuntu 18.04 系统时,会自动创建一个名称为 `/etc/netplan/50-cloud-init.yaml` 文件,其配置了静态 IP 和桥接网络,`netplan` 实用工具将引用这个文件。 截至目前,我已经在此文件配置了静态 IP,文件的具体内容如下: ``` network: -    ethernets: -        ens33: -            addresses: [192.168.0.51/24] -            gateway4: 192.168.0.1 -            nameservers: -              addresses: [192.168.0.1] -            dhcp4: no -            optional: true -    version: 2 - +  ethernets: +    ens33: +      addresses: [192.168.0.51/24] +      gateway4: 192.168.0.1 +      nameservers: +        addresses: [192.168.0.1] +      dhcp4: no +      optional: true +  version: 2 ``` 我们在这个文件中添加桥接网络的配置信息, @@ -113,84 +104,78 @@ network: ``` -正如你所看到的,我们已经从接口(ens33)中删除了 IP 地址,并将该 IP 添加到 '**br0**' 中,并且还将接口(ens33)添加到 br0。使用下面的 netplan 命令使更改生效, +正如你所看到的,我们已经从接口(`ens33`)中删除了 IP 地址,并将该 IP 添加到 `br0` 中,并且还将接口(`ens33`)添加到 `br0`。使用下面的 `netplan` 命令使更改生效, ``` linuxtechi@kvm-ubuntu18-04:~$ sudo netplan apply -linuxtechi@kvm-ubuntu18-04:~$ - ``` 如果您想查看 debug 日志请使用以下命令, ``` linuxtechi@kvm-ubuntu18-04:~$ sudo netplan --debug  apply - ``` 现在使用以下方法确认网络桥接状态: ``` linuxtechi@kvm-ubuntu18-04:~$ sudo networkctl status -a - ``` -[![networkctl-command-output-ubuntu18-04][1]![networkctl-command-output-ubuntu18-04][4]][4] +![][4] + ``` linuxtechi@kvm-ubuntu18-04:~$ ifconfig - ``` -[![ifconfig-command-output-ubuntu18-04][1]![ifconfig-command-output-ubuntu18-04][5]][5] +![][5] ### 第五步:创建虚拟机(使用 virt-manager 或 virt-install 命令) 有两种方式创建虚拟机: - * virt-manager(图形化工具) - * virt-install(命令行工具) + * `virt-manager`(图形化工具) + * `virt-install`(命令行工具) -**使用 virt-manager 创建虚拟机:** +#### 使用 virt-manager 创建虚拟机 -通过执行下面的命令启动 virt-manager, +通过执行下面的命令启动 `virt-manager`: ``` linuxtechi@kvm-ubuntu18-04:~$ sudo virt-manager - ``` -[![Start-Virt-Manager-Ubuntu18-04][1]![Start-Virt-Manager-Ubuntu18-04][6]][6] +![][6] -创建一个新的虚拟机 +创建一个新的虚拟机: -[![ISO-file-Virt-Manager][1]![ISO-file-Virt-Manager][7]][7] +![][7] -点击下一步然后选择 ISO 镜像文件,我使用的是 RHEL 7.3 iso 镜像。 +点击“下一步”然后选择 ISO 镜像文件,我使用的是 RHEL 7.3 iso 镜像。 -[![Select-ISO-file-virt-manager-Ubuntu18-04-Server][1]![Select-ISO-file-virt-manager-Ubuntu18-04-Server][8]][8] +![][8] -点击下一步 +点击“下一步”。 在接下来的几个窗口中,系统会提示要求您为 VM 分配内存,处理器数量和磁盘空间。 -并指定虚拟机名字和桥接网络名, +并指定虚拟机名字和桥接网络名: -[![VM-Name-Network-Virt-Manager-Ubuntu18-04][1]![VM-Name-Network-Virt-Manager-Ubuntu18-04][9]][9] +![][9] -点击结束 +点击“结束”。 -[![RHEL7-3-Installation-Virt-Manager][1]![RHEL7-3-Installation-Virt-Manager][10]][10] +![][10] -接下来只需要按照屏幕指示安装系统, +接下来只需要按照屏幕指示安装系统。 -**使用virt-install命令从命令行界面创建虚拟机,** +#### 使用virt-install命令从命令行界面创建虚拟机 -使用下面的 virt-install 命令从终端创建一个虚拟机,它将在命令行界面中开始安装,并根据您对虚拟机的名字,说明,ISO 文件位置和桥接配置的设置创建虚拟机。 +使用下面的 `virt-install` 命令从终端创建一个虚拟机,它将在命令行界面中开始安装,并根据您对虚拟机的名字,说明,ISO 文件位置和桥接配置的设置创建虚拟机。 ``` linuxtechi@kvm-ubuntu18-04:~$ sudo virt-install  -n DB-Server  --description "Test VM for Database"  --os-type=Linux  --os-variant=rhel7  --ram=1096  --vcpus=1  --disk path=/var/lib/libvirt/images/dbserver.img,bus=virtio,size=10  --network bridge:br0 --graphics none  --location /home/linuxtechi/rhel-server-7.3-x86_64-dvd.iso --extra-args console=ttyS0 - ``` 本文到此为止,我希望这篇文章能帮助你能够在 Ubuntu 18.04 服务器上成功安装 KVM。 除此之外,KVM 也是 Openstack 默认的管理程序。 @@ -206,7 +191,7 @@ via: https://www.linuxtechi.com/install-configure-kvm-ubuntu-18-04-server/ 作者:[Pradeep Kumar][a] 选题:[lujun9972](https://github.com/lujun9972) 译者:[wyxplus](https://github.com/wyxplus) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出