分类 技术 下的文章

在双系统引导的状态下,你可以将已安装的 Linux 发行版替换为另一个发行版,同时还可以保留原本的个人数据。

How to Replace One Linux Distribution With Another From Dual Boot

假设你的电脑上已经以双系统的形式安装了 Ubuntu 和 Windows,但经过将 Linux Mint 与 Ubuntu 比较之后,你又觉得 Linux Mint 会更适合自己的时候,你会怎样做?又该如何在删除 Ubuntu 的同时在双系统中安装 Mint 呢?

你或许觉得应该首先从在双系统中卸载 Ubuntu,然后使用 Linux Mint 重新安装成双系统。但实际上并不需要这么麻烦。

如果你已经在双系统引导中安装了一种 Linux 发行版,就可以轻松替换成另一个发行版了,而且也不必卸载已有的 Linux 发行版,只需要删除其所在的分区,然后在腾出的磁盘空间上安装另一个 Linux 发行版就可以了。

与此同时,更换 Linux 发行版后,仍然会保留原本 home 目录中包含所有文件。

下面就来详细介绍一下。

在双系统引导中替换 Linux 发行版

https://youtu.be/ptF2RUehbKs

这是我的演示范例。我使用双系统引导同时安装了 Windows 10 和 Linux Mint 19,然后我会把 Linux Mint 19 替换成 Elementary OS 5,同时在替换后保留我的个人文件(包括音乐、图片、视频和 home 目录中的文件)。

你需要做好以下这些准备:

  • 使用 Linux 和 Windows 双系统引导
  • 需要安装的 Linux 发行版的 USB live 版
  • 在外部磁盘备份 Windows 和 Linux 中的重要文件(并非必要,但建议备份一下)

在替换 Linux 发行版时要记住保留你的 home 目录

如果想让个人文件在安装新 Linux 系统的过程中不受影响,原有的 Linux 系统必须具有单独的 root 目录和 home 目录。你可能会发现我的双系统引导教程在安装过程中不选择“与 Windows 共存”选项,而选择“其它”选项,然后手动创建 root 和 home 分区。所以,手动创建单独的 home 分区也算是一个磨刀不误砍柴工的操作。因为如果要在不丢失文件的情况下,将现有的 Linux 发行版替换为另一个发行版,需要将 home 目录存放在一个单独的分区上。

不过,你必须记住现有 Linux 系统的用户名和密码才能使用与新系统中相同的 home 目录。

如果你没有单独的 home 分区,也可以后续再进行创建。但这并不是推荐做法,因为这个过程会比较复杂,有可能会把你的系统搞乱。

下面来看看如何替换到另一个 Linux 发行版。

步骤 1:为新的 Linux 发行版创建一个 USB live 版

尽管上文中已经提到了它,但我还是要重复一次以免忽略。

你可以使用 Windows 或 Linux 中的启动盘创建器(例如 Etcher)来创建 USB live 版,这个过程比较简单,这里不再详细叙述。

步骤 2:启动 USB live 版并安装 Linux

你应该已经使用过双系统启动,对这个过程不会陌生。使用 USB live 版重新启动系统,在启动时反复按 F10 或 F12 进入 BIOS 设置。选择从 USB 启动,就可以看到进入 live 环境或立即安装的选项。

在安装过程中,进入“安装类型”界面时,选择“其它”选项。

Replacing one Linux with another from dual boot

在这里选择“其它”选项

步骤 3:准备分区操作

下图是分区界面。你会看到使用 Ext4 文件系统类型来安装 Linux。

Identifying Linux partition in dual boot

确定 Linux 的安装位置

在上图中,标记为 Linux Mint 19 的 Ext4 分区是 root 分区,大小为 82691 MB 的第二个 Ext4 分区是 home 分区。在这里我这里没有使用交换空间

如果你只有一个 Ext4 分区,就意味着你的 home 目录与 root 目录位于同一分区。在这种情况下,你就无法保留 home 目录中的文件了,这个时候我建议将重要文件复制到外部磁盘,否则这些文件将不会保留。

然后是删除 root 分区。选择 root 分区,然后点击 - 号,这个操作释放了一些磁盘空间。

Delete root partition of your existing Linux install

删除 root 分区

磁盘空间释放出来后,点击 + 号。

Create root partition for the new Linux

创建新的 root 分区

现在已经在可用空间中创建一个新分区。如果你之前的 Linux 系统中只有一个 root 分区,就应该在这里创建 root 分区和 home 分区。如果需要,还可以创建交换分区。

如果你之前已经有 root 分区和 home 分区,那么只需要从已删除的 root 分区创建 root 分区就可以了。

Create root partition for the new Linux

创建 root 分区

你可能有疑问,为什么要经过“删除”和“添加”两个过程,而不使用“更改”选项。这是因为以前使用“更改”选项好像没有效果,所以我更喜欢用 -+。这是迷信吗?也许是吧。

这里有一个重要的步骤,对新创建的 root 分区进行格式化。在没有更改分区大小的情况下,默认是不会对分区进行格式化的。如果分区没有被格式化,之后可能会出现问题。

格式化 root 分区很重要

如果你在新的 Linux 系统上已经划分了单独的 home 分区,选中它并点击更改。

Recreate home partition

修改已有的 home 分区

然后指定将其作为 home 分区挂载即可。

Specify the home mount point

指定 home 分区的挂载点

如果你还有交换分区,可以重复与 home 分区相同的步骤,唯一不同的是要指定将空间用作交换空间。

现在的状态应该是有一个 root 分区(将被格式化)和一个 home 分区(如果需要,还可以使用交换分区)。点击“立即安装”可以开始安装。

Verify partitions while replacing one Linux with another

检查分区情况

接下来的几个界面就很熟悉了,要重点注意的是创建用户和密码的步骤。如果你之前有一个单独的 home 分区,并且还想使用相同的 home 目录,那你必须使用和之前相同的用户名和密码,至于设备名称则可以任意指定。

To keep the home partition intact, use the previous user and password

要保持 home 分区不变,请使用之前的用户名和密码

接下来只要静待安装完成,不需执行任何操作。

Wait for installation to finish

等待安装完成

安装完成后重新启动系统,你就能使用新的 Linux 发行版。

在以上的例子中,我可以在新的 Linux Mint 19 中使用原有的 Elementary OS 中的整个 home 目录,并且其中所有视频和图片都原封不动。岂不美哉?


via: https://itsfoss.com/replace-linux-from-dual-boot/

作者:Abhishek Prakash 选题:lujun9972 译者:HankChow 校对:wxy

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

作为图形操作系统,Fedora 的使用是令人愉快的。你可以轻松地点击完成任何任务。但你可能已经看到了,在底层还有一个强大的命令行。想要在 shell 下体验,只需要在 Fedora 系统中打开你的终端应用。这篇文章是向你展示常见的命令行使用方法的系列文章之一。

在这部分,你将学习如何以不同的方式读取文件,如果你在系统中打开一个终端完成一些工作,你就有可能需要读取一两个文件。

一应俱全的大餐

对命令行终端的用户来说, cat 命令众所周知。 当你 cat 一个文件,你很容易的把整个文件内容展示在你的屏幕上。而真正发生在底层的是文件一次读取一行,然后一行一行写入屏幕。

假设你有一个文件,叫做 myfile, 这个文件每行只有一个单词。为了简单起见,每行的单词就是这行的行号,就像这样:

one
two
three
four
five

所以如果你 cat 这个文件,你就会看到如下输出:

$ cat myfile
one
two
three
four
five

并没有太惊喜,不是吗? 但是有个有趣的转折,只要使用 tac 命令,你可以从后往前 cat 这个文件。(请注意, Fedora 对这种有争议的幽默不承担任何责任!)

$ tac myfile
five
four
three
two
one

cat 命令允许你以不同的方式装饰输出,比如,你可以输出行号:

$ cat -n myfile
     1 one
     2 two
     3 three
     4 four
     5 five

还有其他选项可以显示特殊字符和其他功能。要了解更多, 请运行 man cat 命令, 看完之后,按 q 即可退出回到 shell。

挑选你的食物

通常,文件太长会无法全部显示在屏幕上,您可能希望能够像文档一样查看它。 这种情况下,可以试试 less 命令:

$ less myfile

你可以用方向键,也可以用 PgUp/PgDn 来查看文件, 按 q 就可以退回到 shell。

实际上,还有一个 more 命令,其基于老式的 UNIX 系统命令。如果在退回 shell 后仍想看到该文件的内容,则可能需要使用它。而 less 命令则让你回到你离开 shell 之前的样子,并且清除屏幕上你看到的所有的文件内容。

一点披萨或甜点

有时,你所需的输出只是文件的开头。 比如,有一个非常长的文件,当你使用 cat 命令时,会显示这个文件所有内容,前几行的内容很容易滚动过去,导致你看不到。head 命令会帮你获取文件的前几行:

$ head -n 2 myfile
one
two

同样,你会用 tail 命令来查看文件的末尾几行:

$ tail -n 3 myfile
three
four
five

当然,这些只是在这个领域的几个简单的命令。但它们可以让你在阅读文件时容易入手。


via: https://fedoramagazine.org/commandline-quick-tips-reading-files-different-ways/

作者:Paul W. Frields 选题:lujun9972 译者:distant1219 校对:wxy

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

Swift 是一种使用现代方法构建安全性、性能和软件设计模式的通用编程语言。它旨在成为各种编程项目的最佳语言,从系统编程到桌面应用程序,以及扩展到云服务。继续阅读了解它以及如何在 Fedora 中尝试它。

安全、快速、富有表现力

与许多现代编程语言一样,Swift 被设计为比基于 C 的语言更安全。例如,变量总是在使用之前初始化。检查数组和整数是否溢出。内存自动管理。

Swift 将意图放在语法中。要声明变量,请使用 var 关键字。要声明常量,请使用 let

Swift 还保证对象永远不会是 nil。实际上,尝试使用已知为 nil 的对象将导致编译时错误。当使用 nil 值时,它支持一种称为 optional 的机制。optional 可能包含 nil,但使用 ? 运算符可以安全地解包。

更多的功能包括:

  • 与函数指针统一的闭包
  • 元组和多个返回值
  • 泛型
  • 对范围或集合进行快速而简洁的迭代
  • 支持方法、扩展和协议的结构体
  • 函数式编程模式,例如 mapfilter
  • 内置强大的错误处理
  • 拥有 doguarddeferrepeat 关键字的高级控制流

尝试 Swift

Swift 在 Fedora 28 中可用,包名为 swift-lang。安装完成后,运行 swift 并启动 REPL 控制台。

$ swift
Welcome to Swift version 4.2 (swift-4.2-RELEASE). Type :help for assistance.
 1> let greeting="Hello world!"
greeting: String = "Hello world!"
 2> print(greeting)
Hello world!
 3> greeting = "Hello universe!"
error: repl.swift:3:10: error: cannot assign to value: 'greeting' is a 'let' constant
greeting = "Hello universe!"
~~~~~~~~ ^


 3>

Swift 有一个不断发展的社区,特别的,有一个工作组致力于使其成为一种高效且有力的服务器端编程语言。请访问其主页了解更多参与方式。

图片由 Uillian Vargas 发布在 Unsplash 上。


via: https://fedoramagazine.org/introducing-swift-fedora/

作者:Link Dupont 选题:lujun9972 译者:geekpi 校对:wxy

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

不久之前,我写了篇关于一个名叫 arch-wiki-cli 的命令行脚本的文章,使用它可以在终端命令行中查看 Arch Linux Wiki。使用这个脚本,你可以很轻松的用你喜欢的文本浏览器查看整个 Arch Wiki 网站。显然,使用这个脚本需要你有网络连接。我今天偶然发现了一个名为 Arch-wiki-man 的程序,与其有着相同的功能。就跟名字说的一样,它可以让你在命令行查看 Arch Wiki,但是无需联网。它可以以手册页的形式为你显示来自 Arch Wiki 的任何文章。它会下载整个 Arch Wiki 到本地,并每两天自动推送一次。因此,你的系统上总能有一份 Arch Wiki 最新的副本。

安装 Arch-wiki-man

Arch-wiki-man 在 AUR 中可用,所以你可以通过类似Yay 的 AUR 帮助程序安装它。

$ yay -S arch-wiki-man

另外,它也可以使用 NPM 安装。首先确保你已经安装了 NoodJS,然后使用以下命令安装它。

$ npm install -g arch-wiki-man

以手册页的形式查看整个 Arch Wiki

Arch-wiki-man 的典型语法如下:

$ awman <search-query>

下面看一些具体的例子:

搜索一个或多个匹配项

只需要下面的命令,就可以搜索 Arch Linux 安装指南

$ awman Installation guide

上面的命令将会从 Arch Wiki 中搜索所有包含 “Installation guide” 的条目。如果对于给出的搜索条目有很多的匹配项,将会展示为一个选择菜单。使用上下方向键或是 Vim 风格的方向键(j/k),移动到你想查看的指南上,点击回车打开。然后就会像下面这样,以手册页的形式展示指南的内容。

awman 指的是 arch wiki man 的首字母组合。

它支持手册页的所有操作,所以你可以像使用手册页一样使用它。按 h 查看帮助选项。

要退出选择菜单而不显示手册页,只需要按 Ctrl+c

输入 q 返回或者/并且退出手册页。

在标题或者概述中搜索匹配项

awman 默认只会在标题中搜索匹配项。但是你也可以指定它同时在标题和概述中搜索匹配项。

$ awman -d vim

或者,

$ awman --desc-search vim

在目录中搜索匹配项

不同于在标题和概述中搜索匹配项,它也能够扫描整个内容以匹配。不过请注意,这样将会使搜索进程明显变慢。

$ awman -k emacs

或者,

$ awman --apropos emacs

在 web 浏览器中打开搜索结果

如果你不想以手册页的形式查看 Arch Wiki 指南,你也可以像下面这样在 web 浏览器中打开它。

$ awman -w pacman

或者,

$ awman --web pacman

这条命令将会在 web 浏览器中打开匹配结果。请注意,使用这个选项需要网络连接。

在其他语言中搜索

awman 默认打开的是英文的 Arch Wiki 页面。如果你想用其他的语言查看搜索结果,例如西班牙语,只需要像这样做:

$ awman -l spanish codecs

使用以下命令查看可用的语言:

$ awman --list-languages

升级本地的 Arch Wiki 副本

就像我已经说过的,更新会每两天自动推送一次。或者你也可以使用以下命令手动更新。

$ awman-update
[email protected] /usr/lib/node_modules/arch-wiki-man
└── [email protected]

arch-wiki-md-repo has been successfully updated or reinstalled.

:)


via: https://www.ostechnix.com/how-to-browse-and-read-entire-arch-wiki-as-linux-man-pages/

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

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

我们已经讨论了一些 man 手册的替代方案。 这些替代方案主要用于学习简洁的 Linux 命令示例,而无需通过全面而过于详细的手册页。 如果你正在寻找一种快速而简单的方法来轻松快速地学习 Linux 命令,那么这些替代方案值得尝试。 现在,你可能正在考虑 —— 如何为 Linux 命令创建自己的 man 式的帮助页面? 这时 “Um” 就派上用场了。 Um 是一个命令行实用程序,可以用于轻松创建和维护包含你到目前为止所了解的所有命令的 man 页面。

通过创建自己的手册页,你可以在手册页中避免大量不必要的细节,并且只包含你需要记住的内容。 如果你想创建自己的一套 man 式的页面,“Um” 也能为你提供帮助。 在这个简短的教程中,我们将学习如何安装 “Um” 命令以及如何创建自己的 man 手册页。

安装 Um

Um 适用于 Linux 和Mac OS。 目前,它只能在 Linux 系统中使用 Linuxbrew 软件包管理器来进行安装。 如果你尚未安装 Linuxbrew,请参考以下链接:

安装 Linuxbrew 后,运行以下命令安装 Um 实用程序。

$ brew install sinclairtarget/wst/um

如果你会看到类似下面的输出,恭喜你! Um 已经安装好并且可以使用了。

[...]
==> Installing sinclairtarget/wst/um
==> Downloading https://github.com/sinclairtarget/um/archive/4.0.0.tar.gz
==> Downloading from https://codeload.github.com/sinclairtarget/um/tar.gz/4.0.0
-=#=# # #
==> Downloading https://rubygems.org/gems/kramdown-1.17.0.gem
######################################################################## 100.0%
==> gem install /home/sk/.cache/Homebrew/downloads/d0a5d978120a791d9c5965fc103866815189a4e3939
==> Caveats
Bash completion has been installed to:
/home/linuxbrew/.linuxbrew/etc/bash_completion.d
==> Summary
[] /home/linuxbrew/.linuxbrew/Cellar/um/4.0.0: 714 files, 1.3MB, built in 35 seconds
==> Caveats
==> openssl
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/home/linuxbrew/.linuxbrew/etc/openssl/certs

and run
/home/linuxbrew/.linuxbrew/opt/openssl/bin/c_rehash
==> ruby
Emacs Lisp files have been installed to:
/home/linuxbrew/.linuxbrew/share/emacs/site-lisp/ruby
==> um
Bash completion has been installed to:
/home/linuxbrew/.linuxbrew/etc/bash_completion.d

在制作你的 man 手册页之前,你需要为 Um 启用 bash 补全。

要开启 bash 补全,首先你需要打开 ~/.bash_profile 文件:

$ nano ~/.bash_profile

并在其中添加以下内容:

if [ -f $(brew --prefix)/etc/bash_completion.d/um-completion.sh ]; then
 . $(brew --prefix)/etc/bash_completion.d/um-completion.sh
fi

保存并关闭文件。运行以下命令以更新更改。

$ source ~/.bash_profile

准备工作全部完成。让我们继续创建我们的第一个 man 手册页。

创建并维护自己的man手册

如果你想为 dpkg 命令创建自己的 man 手册。请运行:

$ um edit dpkg

上面的命令将在默认编辑器中打开 markdown 模板:

我的默认编辑器是 Vi,因此上面的命令会在 Vi 编辑器中打开它。现在,开始在此模板中添加有关 dpkg 命令的所有内容。

下面是一个示例:

正如你在上图的输出中看到的,我为 dpkg 命令添加了概要,描述和两个参数选项。 你可以在 man 手册中添加你所需要的所有部分。不过你也要确保为每个部分提供了适当且易于理解的标题。 完成后,保存并退出文件(如果使用 Vi 编辑器,请按 ESC 键并键入:wq)。

最后,使用以下命令查看新创建的 man 手册页:

$ um dpkg

如你所见,dpkg 的 man 手册页看起来与官方手册页完全相同。 如果要在手册页中编辑和/或添加更多详细信息,请再次运行相同的命令并添加更多详细信息。

$ um edit dpkg

要使用 Um 查看新创建的 man 手册页列表,请运行:

$ um list

所有手册页将保存在主目录中名为 .um 的目录下

以防万一,如果你不想要某个特定页面,只需删除它,如下所示。

$ um rm dpkg

要查看帮助部分和所有可用的常规选项,请运行:

$ um --help
usage: um <page name>
 um <sub-command> [ARGS...]

The first form is equivalent to `um read <page name>`.

Subcommands:
 um (l)ist List the available pages for the current topic.
 um (r)ead <page name> Read the given page under the current topic.
 um (e)dit <page name> Create or edit the given page under the current topic.
 um rm <page name> Remove the given page.
 um (t)opic [topic] Get or set the current topic.
 um topics List all topics.
 um (c)onfig [config key] Display configuration environment.
 um (h)elp [sub-command] Display this help message, or the help message for a sub-command.

配置 Um

要查看当前配置,请运行:

$ um config
Options prefixed by '*' are set in /home/sk/.um/umconfig.
editor = vi
pager = less
pages_directory = /home/sk/.um/pages
default_topic = shell
pages_ext = .md

在此文件中,你可以根据需要编辑和更改 pagereditordefault_topicpages_directorypages_ext 选项的值。 比如说,如果你想在 Dropbox 文件夹中保存新创建的 Um 页面,只需更改 ~/.um/umconfig 文件中 pages_directory 的值并将其更改为 Dropbox 文件夹即可。

pages_directory = /Users/myusername/Dropbox/um

这就是全部内容,希望这些能对你有用,更多好的内容敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-create-and-maintain-your-own-man-pages/

作者:SK 选题:lujun9972 译者:way-ww 校对:wxy

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

通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。

几年前,我决定配置另外一台电脑,以便我能在工作时访问它来传输我所需要的文件。要做到这一点,最基本的一步是要求你的网络提供商(ISP)提供一个固定的地址。

有一个不必要但很重要的步骤,就是保证你的这个可以访问的系统是安全的。在我的这种情况下,我计划只在工作场所访问它,所以我能够限定访问的 IP 地址。即使如此,你依然要尽多的采用安全措施。一旦你建立起来这个系统,全世界的人们马上就能尝试访问你的系统。这是非常令人惊奇及恐慌的。你能通过日志文件来发现这一点。我推测有探测机器人在尽其所能的搜索那些没有安全措施的系统。

在我设置好系统不久后,我觉得这种访问没什么大用,为此,我将它关闭了以便不再为它操心。尽管如此,只要架设了它,在家庭网络中使用 SSH 和 SFTP 还是有点用的。

当然,有一个必备条件,这个另外的电脑必须已经开机了,至于电脑是否登录与否无所谓的。你也需要知道其 IP 地址。有两个方法能够知道,一个是通过浏览器访问你的路由器,一般情况下你的地址格式类似于 192.168.1.254 这样。通过一些搜索,很容易找出当前是开机的并且接在 eth0 或者 wifi 上的系统。如何识别你所要找到的电脑可能是个挑战。

更容易找到这个电脑的方式是,打开 shell,输入 :

ifconfig

命令会输出一些信息,你所需要的信息在 inet 后面,看起来和 192.168.1.234 类似。当你发现这个后,回到你要访问这台主机的客户端电脑,在命令行中输入 :

ssh [email protected]

如果要让上面的命令能够正常执行,gregp 必须是该主机系统中正确的用户名。你会被询问其密码。如果你键入的密码和用户名都是正确的,你将通过 shell 环境连接上了这台电脑。我坦诚,对于 SSH 我并不是经常使用的。我偶尔使用它,我能够运行 dnf 来更新我所常使用电脑之外的其它电脑。通常,我用 SFTP :

sftp [email protected]

我更需要用简单的方法来把一个文件传输到另一个电脑。相对于闪存棒和额外的设备,它更加方便,耗时更少。

一旦连接建立成功,SFTP 有两个基本的命令,get,从主机接收文件 ;put,向主机发送文件。在连接之前,我经常在客户端移动到我想接收或者传输的文件夹下。在连接之后,你将处于一个顶层目录里,比如 home/gregp。一旦连接成功,你可以像在客户端一样的使用 cd,改变你在主机上的工作路径。你也许需要用 ls 来确认你的位置。

如果你想改变你的客户端的工作目录。用 lcd 命令( 即 local change directory 的意思)。同样的,用 lls 来显示客户端工作目录的内容。

如果主机上没有你想要的目录名,你该怎么办?用 mkdir 在主机上创建一个新的目录。或者你可以将整个目录的文件全拷贝到主机 :

put -r thisDir/

这将在主机上创建该目录并复制它的全部文件和子目录到主机上。这种传输是非常快速的,能达到硬件的上限。不像在互联网传输一样遇到网络瓶颈。要查看你能在 SFTP 会话中能够使用的命令列表:

man sftp

我也能够在我的电脑上的 Windows 虚拟机内用 SFTP,这是配置一个虚拟机而不是一个双系统的另外一个优势。这让我能够在系统的 Linux 部分移入或者移出文件。而我只需要在 Windows 中使用一个客户端就行。

你能够使用 SSH 或 SFTP 访问通过网线或者 WIFI 连接到你路由器的任何设备。这里,我使用了一个叫做 SSHDroid 的应用,能够在被动模式下运行 SSH。换句话来说,你能够用你的电脑访问作为主机的 Android 设备。近来我还发现了另外一个应用,Admin Hands,不管你的客户端是平板还是手机,都能使用 SSH 或者 SFTP 操作。这个应用对于备份和手机分享照片是极好的。


via: https://opensource.com/article/18/10/ssh-sftp-home-network

作者:Geg Pittman 选题:lujun9972 译者:singledo 校对:wxy

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