SK 发布的文章

你好,新兵!你们有些人经常使用 dd 命令做各种各样的事,比如创建 USB 启动盘或者克隆硬盘分区。不过请牢记,dd 是一个危险且有毁灭性的命令。如果你是个 Linux 的新手,最好避免使用 dd 命令。如果你不知道你在做什么,你可能会在几分钟里把硬盘擦掉。从原理上说,dd 只是从 if 读取然后写到 of 上。它才不管往哪里写呢。它根本不关心那里是否有分区表、引导区、家目录或是其他重要的东西。你叫它做什么它就做什么。可以使用像 Etcher 这样的用户友好的应用来代替它。这样你就可以在创建 USB 引导设备之前知道你将要格式化的是哪块盘。

今天,我发现了另一个可以安全创建 USB 引导设备的工具 Bootiso 。它实际上是一个 BASH 脚本,但真的很智能!它有很多额外的功能来帮我们安全创建 USB 引导盘。如果你想确保你的目标是 USB 设备(而不是内部驱动器),或者如果你想检测 USB 设备,你可以使用 Bootiso。下面是使用此脚本的显著优点:

  • 如果只有一个 USB 驱动器,Bootiso 会自动选择它。
  • 如果有一个以上的 USB 驱动器存在,它可以让你从列表中选择其中一个。
  • 万一你错误地选择一个内部硬盘驱动器,它将退出而不做任何事情。
  • 它检查选定的 ISO 是否具有正确的 MIME 类型。如果 MIME 类型不正确,它将退出。
  • 它判定所选的项目不是分区,如果判定失败则退出。
  • 它将在擦除和对 USB 驱动器分区之前提示用户确认。
  • 列出可用的 USB 驱动器。
  • 安装 syslinux 引导系统 (可选)。
  • 自由且开源。

使用 Bootiso 安全地创建 USB 驱动器

安装 Bootiso 非常简单。用这个命令下载最新版本:

$ curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O

把下载的文件加到 $PATH 目录中,比如 /usr/local/bin/

$ sudo cp bootiso /usr/local/bin/

最后,添加运行权限:

$ sudo chmod +x /usr/local/bin/bootiso

搞定!现在就可以创建 USB 引导设备了。首先,让我们用命令看看现在有哪些 USB 驱动器:

$ bootiso -l

输出:

Listing USB drives available in your system:
NAME HOTPLUG SIZE STATE TYPE
sdb 1 7.5G running disk

如你所见,我只有一个 USB 驱动器。让我们继续通过命令用 ISO 文件创建 USB 启动盘:

$ bootiso bionic-desktop-amd64.iso

这个命令会提示你输入 sudo 密码。输入密码并回车来安装缺失的组件(如果有的话),然后创建 USB 启动盘。

输出:

[...]
Listing USB drives available in your system:
NAME HOTPLUG SIZE STATE TYPE
sdb 1 7.5G running disk
Autoselecting `sdb' (only USB device candidate)
The selected device `/dev/sdb' is connected through USB.
Created ISO mount point at `/tmp/iso.c5m'
`bootiso' is about to wipe out the content of device `/dev/sdb'.
Are you sure you want to proceed? (y/n)>y
Erasing contents of /dev/sdb...
Creating FAT32 partition on `/dev/sdb1'...
Created USB device mount point at `/tmp/usb.QgV'
Copying files from ISO to USB device with `rsync'
Synchronizing writes on device `/dev/sdb'
`bootiso' took 303 seconds to write ISO to USB device with `rsync' method.
ISO succesfully unmounted.
USB device succesfully unmounted.
USB device succesfully ejected.
You can safely remove it !

如果你的 ISO 文件 MIME 类型不对,你会得到下列错误信息:

Provided file `bionic-desktop-amd64.iso' doesn't seem to be an iso file (wrong mime type: `application/octet-stream').
Exiting bootiso...

当然,你也能像下面那样使用 –no-mime-check 选项来跳过 MIME 类型检查。

$ bootiso --no-mime-check bionic-desktop-amd64.iso

就像我前面提到的,如果系统里只有 1 个 USB 设备 Bootiso 将自动选中它。所以我们不需要告诉它 USB 设备路径。如果你连接了多个设备,你可以像下面这样使用 -d 来指明 USB 设备。

$ bootiso -d /dev/sdb bionic-desktop-amd64.iso

用你自己的设备路径来换掉 /dev/sdb

在多个设备情况下,如果你没有使用 -d 来指明要使用的设备,Bootiso 会提示你选择可用的 USB 设备。

Bootiso 在擦除和改写 USB 盘分区前会要求用户确认。使用 -y–assume-yes 选项可以跳过这一步。

$ bootiso -y bionic-desktop-amd64.iso

您也可以把自动选择 USB 设备与 -y 选项连用,如下所示。

$ bootiso -y -a bionic-desktop-amd64.iso

或者,

$ bootiso?--assume-yes?--autoselect bionic-desktop-amd64.iso

请记住,当你只连接一个 USB 驱动器时,它才会起作用。

Bootiso 会默认创建一个 FAT 32 分区,挂载后用 rsync 程序把 ISO 的内容拷贝到 USB 盘里。 如果你愿意也可以使用 dd 代替 rsync

$ bootiso --dd -d /dev/sdb bionic-desktop-amd64.iso

如果你想增加 USB 引导的成功概率,请使用 -b–bootloader 选项。

$ bootiso -b bionic-desktop-amd64.iso

上面这条命令会安装 syslinux 引导程序(安全模式)。注意,此时 –dd 选项不可用。

在创建引导设备后,Bootiso 会自动弹出 USB 设备。如果不想自动弹出,请使用 -J–no-eject 选项。

$ bootiso -J bionic-desktop-amd64.iso

现在,USB 设备依然连接中。你可以使用 umount 命令随时卸载它。

需要完整帮助信息,请输入:

$ bootiso -h

好,今天就到这里。希望这个脚本对你有帮助。好货不断,不要走开哦!


via: https://www.ostechnix.com/bootiso-lets-you-safely-create-bootable-usb-drive/

作者:SK 选题:lujun9972 译者:kennethXia 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

大多数 Linux 发行版在默认配置下已经足够快了。但是,我们仍然可以借助一些额外的应用程序和方法让它们启动更快一点。其中一个可用的这种应用程序就是 Preload。它监视用户使用频率比较高的应用程序,并将它们添加到内存中,这样就比一般的方式加载更快一点。因为,正如你所知道的,内存的读取速度远远快于硬盘。Preload 以守护进程的方式在后台中运行,并记录用户使用较为频繁的程序的文件使用相关的统计数据。然后,它将这些二进制文件及它们的依赖项加载进内存,以改善应用程序的加载时间。简而言之,一旦安装了 Preload,你使用较为频繁的应用程序将可能加载的更快。

在这篇详细的教程中,我们将去了解如何安装和使用 Preload,以改善应用程序在 Linux 中的启动时间。

在 Linux 中使用 Preload 改善应用程序启动时间

Preload 可以在 AUR 上找到。因此,你可以使用 AUR 助理程序在任何基于 Arch 的系统上去安装它,比如,Antergos、Manjaro Linux。

使用 Pacaur

$ pacaur -S preload

使用 Packer

$ packer -S preload

使用 Trizen

$ trizen -S preload

使用 Yay

$ yay -S preload

使用 Yaourt

$ yaourt -S preload

在 Debian、Ubuntu、Linux Mint 上,Preload 可以在默认仓库中找到。因此,你可以像下面一样,使用 APT 包管理器去安装它。

$ sudo apt-get install preload

Preload 安装完成后,重新启动你的系统。从现在开始,Preload 将监视频繁使用的应用程序,并将它们的二进制文件和库添加到内存中,以使它的启动速度更快。比如,如果你经常使用 Firefox、Chrome 以及 LibreOffice,Preload 将添加这些二进制文件和库到内存中,因此,这些应用程序将启动的更快。而且更好的是,它不需要做任何配置。它是开箱即用的。但是,如果你想去对它进行微调,你可以通过编辑缺省的配置文件 /etc/preload.conf 来实现。

Preload 并不一定适合每个人!

以下是 Preload 的一些缺点,它并不是对每个人都有帮助,在这个 跟贴 中有讨论到。

  1. 我使用的是一个有 8GB 内存的现代系统。因此,我的系统总体上来说很快。我每天只打开狂吃内存的应用程序(比如,Firefox、Chrome、VirtualBox、Gimp 等等)一到两次,并且它们始终处于打开状态,因此,它们的二进制文件和库被预读到内存中,并始终整天在内存中。我一般很少去关闭和打开这些应用程序,因此,内存使用纯属浪费。
  2. 如果你使用的是带有 SSD 的现代系统,Preload 是绝对没用的。因为 SSD 的访问时间比起一般的硬盘来要快的多,因此,使用 Preload 是没有意义的。
  3. Preload 显著影响启动时间。因为更多的应用程序要被预读到内存中,这将让你的系统启动运行时间更长。

你只有在每天都在大量的重新加载应用程序时,才能看到真正的差别。因此,Preload 最适合开发人员和测试人员,他们每天都打开和关闭应用程序好多次。

关于 Preload 更多的信息和它是如何工作的,请阅读它的作者写的完整版的 Preload 论文

教程到此为止,希望能帮到你。后面还有更精彩的内容,请继续关注!

再见!


via: https://www.ostechnix.com/how-to-improve-application-startup-time-in-linux/

作者:SK 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在图形界面下查看你的笔记本电池状态是很容易的,只需将鼠标指向任务栏中的电池图标上,你便可以很容易地知道电池的电量。但如果我们想要从命令行中获得这些信息呢?并不是所有人都知道如何做到这点。前几天我的一个朋友询问我如何从他的 Ubuntu 系统里,在终端中查看他的笔记本电池的电量。这便是我写这篇文章的起因。在本文中我概括了三种简单的方法来让你在任何 Linux 发行版本中从终端查看笔记本电池的状态。

在终端下检查笔记本电池状态

我们可以使用下面的三种方法来从命令行中查找到笔记本电池状态。

方法一 – 使用 upower 命令

upower 命令预装在大多数的 Linux 发行版本中。为了使用 upower 命令来展示电池的状态,打开终端并运行如下命令:

$ upower -i /org/freedesktop/UPower/devices/battery_BAT0

示例输出:

native-path: BAT0
vendor: Samsung SDI
model: DELL 7XFJJA2
serial: 4448
power supply: yes
updated: Sat 12 May 2018 06:48:48 PM IST (41 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: charging
warning-level: none
energy: 43.3011 Wh
energy-empty: 0 Wh
energy-full: 44.5443 Wh
energy-full-design: 48.84 Wh
energy-rate: 9.8679 W
voltage: 12.548 V
time to full: 7.6 minutes
percentage: 97%
capacity: 91.2045%
technology: lithium-ion
icon-name: 'battery-full-charging-symbolic'
History (charge):
1526131128 97.000 charging
History (rate):
1526131128 9.868 charging

正如你所看到的那样,我的电池正处于充电状态,并且它的电量百分比是 97%。

假如上面的命令因为某些未知原因不起作用,可以尝试使用下面的命令:

$ upower -i `upower -e | grep 'BAT'`

示例输出:

native-path: BAT0
vendor: Samsung SDI
model: DELL 7XFJJA2
serial: 4448
power supply: yes
updated: Sat 12 May 2018 06:50:49 PM IST (22 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: charging
warning-level: none
energy: 43.6119 Wh
energy-empty: 0 Wh
energy-full: 44.5443 Wh
energy-full-design: 48.84 Wh
energy-rate: 8.88 W
voltage: 12.552 V
time to full: 6.3 minutes
percentage: 97%
capacity: 91.2045%
technology: lithium-ion
icon-name: 'battery-full-charging-symbolic'
History (rate):
1526131249 8.880 charging

upower 不仅可以显示出电池的状态,它还可以显示出已安装电池的其他完整信息,例如电池型号,供应商名称,电池的序列号,电池的状态,电池的电压等信息。

当然,如果你只想显示电池的状态,你可以可以结合使用 upower 命令和grep 命令,具体命令如下:

$ upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"

示例输出:

state: fully-charged
percentage: 100%

从上面的输出中可以看到我的笔记本电池已经完全充满了。

想知晓更多的细节,可以参看 man 页:

$ man upower

方法二 – 使用 acpi 命令

acpi 命令可以用来显示你的 Linux 发行版本中电池的状态以及其他 ACPI 信息。

在某些 Linux 发行版本中,你可能需要安装 acpi 命令。

要在 Debian、 Ubuntu 及其衍生版本中安装它,可以使用如下命令:

$ sudo apt-get install acpi

在 RHEL、 CentOS、 Fedora 等系统中使用:

$ sudo yum install acpi

或者使用如下命令:

$ sudo dnf install acpi

在 Arch Linux 及其衍生版本中使用:

$ sudo pacman -S acpi

一旦 acpi 安装好后,运行下面的命令:

$ acpi -V

注意: 在上面的命令中, V 是大写字母。

示例输出:

Battery 0: Charging, 99%, 00:02:09 until charged
Battery 0: design capacity 4400 mAh, last full capacity 4013 mAh = 91%
Battery 1: Discharging, 0%, rate information unavailable
Adapter 0: on-line
Thermal 0: ok, 77.5 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 84.0 degrees C
Cooling 0: Processor 0 of 3
Cooling 1: Processor 0 of 3
Cooling 2: LCD 0 of 15
Cooling 3: Processor 0 of 3
Cooling 4: Processor 0 of 3
Cooling 5: intel_powerclamp no state information available
Cooling 6: x86_pkg_temp no state information available

首先让我们来检查电池的电量,可以运行:

$ acpi

示例输出:

Battery 0: Charging, 99%, 00:01:41 until charged
Battery 1: Discharging, 0%, rate information unavailable

下面,让我们来查看电池的温度:

$ acpi -t

示例输出:

Thermal 0: ok, 63.5 degrees C

如果需要将温度以华氏温标显示,可以使用:

$ acpi -t -f

示例输出:

Thermal 0: ok, 144.5 degrees F

如果想看看交流电适配器是否连接上了没有,可以运行:

$ acpi -a

示例输出:

Adapter 0: on-line

假如交流电适配器没有连接上,则你将看到如下的输出:

Adapter 0: off-line

想获取更多的信息,可以查看 man 页:

$ man acpi

方法三 - 使用 batstat 程序

batstat 是一个基于 ncurses 的命令行小工具,使用它可以在类 Unix 系统中展示笔记本电池状态。它可以展示如下具体信息:

  • 当前电池电量
  • 当前电池所存能量
  • 充满时所存能量
  • 从程序启动开始经历的时间,它不会追踪记录机器休眠的时间
  • 电池电量消耗历史数据

安装 batstat 轻而易举。使用下面的命令来克隆该程序的最新版本:

$ git clone https://github.com/Juve45/batstat.git

上面的命令将拉取 batstat 的最新版本并将它的内容保存在一个名为 batstat 的文件夹中。

首先将目录切换到 batstat/bin/ 中:

$ cd batstat/bin/

接着将 batstat 二进制文件复制到 PATH 环境变量中的某个目录中,例如 /usr/local/bin/ 目录:

$ sudo cp batstat /usr/local/bin/

使用下面的命令来让它可被执行:

$ sudo chmod +x /usr/local/bin/batstat

最后,使用下面的命令来查看你的电池状态。

$ batstat

示例输出:

从上面的截图中可以看到我的笔记本电池正处于充电状态。

这个小工具还有某些小的限制。在书写本文之时,batstat 仅支持显示一个电池的相关信息。而且它只从 /sys/class/power_supply/ 目录搜集相关的信息。假如你的电池信息被存放在另外的目录中,则这个小工具就不会起作用了。

想知晓更多信息,可以查看 batstatGitHub 主页

上面就是今天我要分享的所有内容。当然,可能还有很多其他的命令或者程序来从 Linux 终端检查笔记本的电池状态。据我所知,上面给出的命令都运行良好。假如你知道其他命令来查看电池的状态,请在下面的评论框中让我们知晓。假如你所给出的方法能够起作用,我将对我的这篇文章进行更新。

最后,上面便是今天的全部内容了。更多的优质内容敬请期待,敬请关注!

欢呼吧!


via: https://www.ostechnix.com/how-to-check-laptop-battery-status-in-terminal-in-linux/

作者:SK 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Instagram 不需要介绍。它是像 Facebook 和 Twitter 之类的流行社交网络平台之一,它可以公开或私下分享照片和视频给确认过的粉丝。它是由两位企业家 Kevin SystromMike Krieger于 2010 年发起的。2012 年,社交网络巨头 Facebook 收购了 Instagram。Android 和 iOS 设备上可以免费下载 Instagram。我们也可以通过网络浏览器在桌面系统中使用它。而且,最酷的是现在你可以在任何类 Unix 操作系统上的终端中使用 Instagram。你兴奋了吗?那么,请阅读以下内容了解如何在终端上查看你的 Instagram feed。

终端中的 Instagram

首先,按照以下链接中的说明安装 pip3

然后,git clone 它的脚本仓库。

$ git clone https://github.com/billcccheng/instagram-terminal-news-feed.git

以上命令会将 instagram 脚本的内容克隆到当前工作目录中名为 instagram-terminal-news-feed 的目录中。cd 到该目录:

$ cd instagram-terminal-news-feed/

然后,运行以下命令安装它:

$ pip3 install -r requirements.txt

现在,运行以下命令在 Linux 终端中启动 instagram。

$ python3 start.py

输入你的 Instagram 用户名和密码,并直接从终端中浏览你的 Instagram feed。你的 instragram 用户名和密码将仅本地存储在名为 credential.json 的文件中。所以,你不必担心它。你也可以选择不保存默认保存的凭证。

下面是我的 Instagram 页面的一些截图。

请注意,你只能查看你的 feed。你不能关注任何人,喜欢或评论帖子。这只是一个 instagram feed 阅读器。

该项目可在 GitHub 上免费获得,因此你可以查看源代码,改进它,添加更多功能,修复任何 bug。

玩得开心!干杯!!


via: https://www.ostechnix.com/how-to-use-instagram-in-terminal/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

各位 Vim 使用者大家好!今天,我这里有个好消息告诉大家。我会向大家介绍 Vim-anywhere,这是一个简单的脚本,它允许你使用 Vim 编辑器在 Linux 中的任何地方输入文本。这意味着你能简单地调用自己最爱的 Vim 编辑器,输入任何你所想的,并将这些文本粘贴到任意的应用和网站中。这些文本将在剪贴板可用,直到你重启了系统。这个工具对那些喜欢在非 Vim 环境中使用 Vim 键位绑定的人来说十分有用。

在 Linux 中安装 Vim-anywhere

Vim-anywhere 工具可以运行在任何基于 GNOME(或其他衍生品)的 Linux 发行版上。另外,确保你已经安装了下面的依赖。

  • Curl
  • Git
  • gVim
  • xclip

比如,你可以用下面的命令在 Ubuntu 中安装这些工具:

$ sudo apt install curl git vim-gnome xclip

然后运行如下的命令来安装 Vim-anywhere:

$ curl -fsSL https://raw.github.com/cknadler/vim-anywhere/master/install | bash

Vim-anywhere 到此已经安装完成。现在我们来看看如何使用它。

在任何地方使用 Vim 编辑器输入文本

假如你需要创建一个 word 文档。但是你更愿意使用 Vim 编辑器,而不是 LibreOffice。没问题,这里 Vim-anywhere 就派上用场了。Vim-anywhere 自动化了整个流程。它仅仅简单地调用 Vim 编辑器,所以你能写任何你所想的,然后将之粘贴到 .doc 文件中。

让我给你展示一个用例。打开 LibreOffice 或者你选的任何图形文本编辑器。然后打开 Vim-anywhere。你只需要按下 CTRL+ALT+V 即可。它将会打开 gVim 编辑器。按下 i 切换到交互模式然后输入文本。完成之后,键入 :wq 关闭并保存文件。

这些文本会在剪贴板中可用,直到你重启了系统。在你关闭编辑器之后,你之前的应用会重新占据主界面。你只需按下 CTRL+P 将文本粘贴进去。

这仅仅只是一个例子。你甚至可以使用 Vim-anywhere 在烦人的 web 表单或者其他应用上进行输入。一旦 Vim-anywhere 被调用,它将会打开一个缓冲区。关闭 Vim-anywhere 之后,缓冲器内的内容会自动复制到你的剪贴板中,之前的应用会重新占据主界面。

Vim-anywhere 在被调用的时候会在 /tmp/vim-anywhere 中创建一个临时文件。这些临时文件会一致保存着,直到你重启了系统,并为你提供临时的历史记录。

$ ls /tmp/vim-anywhere

你可以用下面的命令重新打开最近的文件:

$ vim $( ls /tmp/vim-anywhere | sort -r | head -n 1 )

更新 Vim-anywhere

运行下面的命令来更新 Vim-anywhere:

$ ~/.vim-anywhere/update

更改快捷键

默认调用 Vim-anywhere 的键位是 CTRL+ALT+V。你可以用 gconf 工具将其更改为任何自定义的键位绑定。

$ gconftool -t str --set /desktop/gnome/keybindings/vim-anywhere/binding <custom binding>

卸载 Vim-anywhere

可能有些人觉得每次打开 Vim 编辑器,输入一些文本,然后将文本复制到其他应用中是没有意义也毫无必要的。

如果你不觉得这个工具有用,只需使用下面的命令来卸载它:

$ ~/.vim-anywhere/uninstall

via: https://www.ostechnix.com/how-to-use-vim-editor-to-input-text-anywhere/

作者:SK 选题:lujun9972 译者:paperzhang 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

shuf 命令用于在类 Unix 操作系统中生成随机排列。使用 shuf 命令,我们可以随机打乱给定输入文件的行。shuf 命令是 GNU Coreutils 的一部分,因此你不必担心安装问题。在这个简短的教程中,让我向你展示一些 shuf 命令的例子。

带例子的 shuf 命令教程

我有一个名为 ostechnix.txt 的文件,内容如下:

$ cat ostechnix.txt
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10

现在让我们以随机顺序显示上面的行。为此,请运行:

$ shuf ostechnix.txt
line2
line8
line5
line10
line7
line1
line4
line6
line9
line3

看到了吗?上面的命令将名为 ostechnix.txt 中的行随机排列并输出了结果。

你可能想将输出写入另一个文件。例如,我想将输出保存到 output.txt 中。为此,请先创建 output.txt

$ touch output.txt

然后,像下面使用 -o 标志将输出写入该文件:

$ shuf ostechnix.txt -o output.txt

上面的命令将随机随机打乱 ostechnix.txt 的内容并将输出写入 output.txt。你可以使用命令查看 output.txt 的内容:

$ cat output.txt

line2
line8
line9
line10
line1
line3
line7
line6
line4
line5

我只想显示文件中的任意一行。我该怎么做?很简单!

$ shuf -n 1 ostechnix.txt
line6

同样,我们可以选择前 “n” 个随机条目。以下命令将只显示前五个随机条目:

$ shuf -n 5 ostechnix.txt
line10
line4
line5
line9
line3

如下所示,我们可以直接使用 -e 标志传入输入,而不是从文件中读取行:

$ shuf -e line1 line2 line3 line4 line5
line1
line3
line5
line4
line2

你也可以传入数字:

$ shuf -e 1 2 3 4 5
3
5
1
4
2

要快速在给定范围选择一个,请改用此命令:

$ shuf -n 1 -e 1 2 3 4 5

或者,选择下面的任意三个随机数字:

$ shuf -n 3 -e 1 2 3 4 5
3
5
1

我们也可以在特定范围内生成随机数。例如,要显示 1 到 10 之间的随机数,只需使用:

$ shuf -i 1-10
1
9
8
2
4
7
6
3
10
5

有关更多详细信息,请参阅手册页。

$ man shuf

今天就是这些。还有更多更好的东西。敬请关注!

干杯!


via: https://www.ostechnix.com/the-shuf-command-tutorial-with-examples-for-beginners/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出