蚊章汇 - 迁移
type: channel
link: https://linuxcn.bwsl.wang/tag/%E8%BF%81%E7%A7%BB/
items: 如何把 WordPress 网站迁移到新主机
items: 迁移到 Linux：网络和系统设置
items: 迁移到 Linux：安装软件
items: 迁移到 Linux：使用 sudo
items: 迁移到 Linux：命令行环境
items: 迁移到 Linux：图形操作环境
items: 迁移到 Linux：磁盘、文件、和文件系统
items: 迁移到 Linux ：入门介绍
items: 22 天迁移到公共云
items: 在 Linux 中怎样将 MySQL 迁移到 MariaDB 上

如何把 WordPress 网站迁移到新主机
type: item
date: 2022-03-19T20:43:23+08:00
description: 使用这个简单的方法来迁移一个网站以及管理防火墙配置。你有过把一个 WordPress 网站迁移到一台新主机上的需求吗？我曾经迁移过好多次，迁移过程相当简单。当然，的的市场时候我都不会用通用的推荐方法，这次也不例外 —— 我用更简单的方法，这才是我推荐的方法。这个迁移方法没有破坏性，因此如果出于某些原因你需要还原到原来的服务器上，很容易可以实现。一个 WordPress 网站的组成部分运行一个基于 WordPress 的网站有三个重要组成部分：WordPress 本身，一个 web 服务器，如 Apache（我正在用），以及 MariaDB。MariaDB 是 MySQL 的一个分支，功能相似。业界有大量的 Web 服务器，由于我使用了 Apache 很长时间，因此我推荐用 Apache。你可能需要把 Apache 的配置方法改成你用的 Web 服务器的方法。初始配置我使用一台 Linux 主机作为防火墙和网络路由。在我的网络中 Web 服务器是另一台主机。我的内部网络使用的是 C 类私有网络地址范围，按 无类别域间路由 Classless Internet Domain Routing （CIDR）方式简单地记作 192.168.0.0/24。对于防火墙，相比于更复杂的 firewalld，我更喜欢用非常简单的 IPTables。这份防火墙配置中的一行会把 80 端口（HTTP）接收到的包发送给 Web 服务器。在 /etc/sysconfig/iptables 文件中，你可以在注释中看到，我添加了规则，把其他入站服务器连接转发到同一台服务器上合适的端口。# Reroute ports for inbound connections to the appropriate web/email/etc server. # HTTPD goes to 192.168.0.75 -A PREROUTING -d 45.20.209.41/255.255.255.248 -p tcp -m tcp --dport 80 \ -j DNAT --to-destination 192.168.0.75:80 我使用 命名虚拟主机 named virtual host 来配置原来的 Apache Web 服务器，因为我在这个 HTTPD 实例上运行着多个网站。使用命名虚拟主机配置是个不错的方法，因为（像我一样）未来你可能会在运行其他的网站，这个方法可以使其变得容易。/etc/httpd/conf/httpd.conf 中需要迁移的虚拟主机的网站相关部分请参考下面代码。这个片段中不涉及到 IP 地址的修改，因此在新服务器上使用时不需要修改。<VirtualHost *:80> ServerName www.website1.org ServerAlias server.org DocumentRoot "/var/website1/html" ErrorLog "logs/error_log" ServerAdmin me@website1.org <Directory "/var/website1/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> 在迁移之前，你需要在 httpd.conf 的最顶端附近找到 Listen 声明并修改成类似下面这样。这个地址是服务器的真实私有 IP 地址，不是公开 IP 地址。Listen 192.168.0.75:80 你需要修改新主机上 Listen 的 IP 地址。前期工作准备工作分为以下三步：安装服务配置防火墙配置 web 服务器安装 Apache 和 MariaDB如果你的新服务器上还没有 Apache 和 MariaDB，那么就安装它们。WordPress 的安装不是必要的。dnf -y install httpd mariadb 新服务器防火墙配置确认下新服务器上的防火墙允许访问 80 端口。你\_每台\_电脑上都有一个防火墙，对吗？大部分现代发行版使用的初始化配置包含的防火墙会阻止所有进来的网络流量，以此来提高安全等级。下面片段的第一行内容可能已经在你的 IPTables 或其他基于防火墙的网络过滤器中存在了。它标识已经被识别为来自可接受来源的入站包，并绕过后面的其它 INPUT 过滤规则，这样可以节省时间和 CPU 周期。片段中最后一行标识并放行 80 端口新进来的请求到 HTTPD 的连接。-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT <删节> # HTTP -A IN…

迁移到 Linux：网络和系统设置
type: item
date: 2018-12-19T08:44:19+08:00
description: 这个系列我们提供了基础知识的概述，以帮助您成功地从另一个操作系统过渡到 Linux；这篇中我们涉及到 Linux 桌面系统上的一些常见设置。在这个系列中，我们提供了基础知识的概述，以帮助您成功地从另一个操作系统过渡到 Linux。如果你错过了以前的文章，可以从这访问：第1部分 - 入门介绍第2部分 - 磁盘、文件和文件系统第3部分 - 图形操作环境第4部分 - 命令行第5部分 - 使用 sudo第5部分 - 安装软件Linux 提供了一系列网络和系统设置。在你的桌面计算机上，Linux 允许您调整系统上的任何内容。大多数这些设置都出现在 /etc 目录下的纯文本文件中。这里我将介绍你使用桌面 Linux 操作系统的过程中最常用的设置。大多数设置都能够在“设置”程序里面找到，这些设置可能对于不同的 Linux 发行版有所不同。通常来说，你可以修改背景、调整音量、连接打印机、进行显示设置等。对于这些设置尽管我不会全部谈论，但你可以自己探索。连接互联网在 Linux 中连接到互联网通常非常简单。如果您通过以太网电缆连接，Linux 通常会在插入电缆时或启动时（如果电缆已连接）获得 IP 地址并自动连接。如果您使用无线网络，则在大多数发行版中都有一个菜单，可以在指示器面板中或在“设置”中（取决于您的发行版），您可以在其中选择无线网络的 SSID。如果网络受密码保护，它通常会提示您输入密码。然后连接，这个过程相当顺利。在图形界面您可以通过进入设置来调整网络设置。通常称为“系统设置”或者是“设置”。通常可以轻松找到设置程序，因为它的图标是齿轮或工具图片（图1）。图1： Gnome 桌面网络设置指示器图标。网络接口名称在 Linux 下，网络设备有名称。 从历史上看，它们的名称分别为 eth0 和 wlan0 —— 或“以太网”和“无线网络”。 较新的 Linux 系统一直使用看起来更深奥的不同名称，如 enp4s0 和 wlp5s0 。 如果名称以 en 开头，则它是有线以太网接口。 如果它以 wl 开头，那么它就是一个无线接口。 其余的字母和数字反映了设备如何连接到硬件。通过命令行进行网络管理如果您希望更好地控制网络设置，或者如果您在没有图形桌面的情况下管理网络连接，则还可以从命令行管理网络。请注意，用于在图形桌面中管理网络的最常用服务是“ 网络管理器 Network Manager ”，而网络管理器通常会覆盖在命令行上进行的设置更改。如果您正在使用网络管理器，最好在其界面中更改您的设置，以防止撤消您从命令行或其他位置所做的更改。在图形环境中的更改设置与在网络管理器中很类似，您还可以使用名为 nmtui 的工具从命令行更改网络管理器设置。nmtui 工具提供了您在图形环境中找到的所有设置，但是是在基于文本的半图形界面中提供了该设置，该界面可在命令行上运行（图 2）。图 2：nmtui 界面在命令行上，有一个名为 ifconfig 的旧工具来管理网络，还有一个名为 ip 的新工具。在某些发行版中，ifconfig 被认为是不推荐使用的，默认情况下甚至没有安装。在其他发行版上，ifconfig 仍可以使用。以下是一些允许您显示和更改网络设置的命令：进程和系统信息在 Windows 系统中，你可以使用任务管理器来查看所有正在运行的程序和服务的列表。你可以停止运行中的程序，并且可以在其中显示的某些选项卡中查看系统性能。在 Linux 系统下你可以使用命令行或者图形界面中做同样的事情。Linux 系统中根据你的发行版本会有不同的几个可用的图形工具。大多数所共有的工具是“系统监视器”和 KSysGuard。在这些工具中，你可以查看系统性能，查看进程列表甚至是杀死进程（图 3）。图 3：NetHogs 截图在这些工具中，你也可以查看系统全局网络流量（图 4）。图 4：Gnome System Monitor 的截图管理进程和系统使用您还可以从命令行使用相当多的工具。使用 ps 命令可以查看系统中的进程列表。默认情况下，这个命令的结果是显示当前终端会话下的所有进程列表。但是你也可以通过使用各种命令行参数显示其他进程。如果 ps 命令不会使用，可以使用命令 info ps 或者 man ps 获取帮助。大多数人都希望得到一个进程列表，因为他们想要停止占用过多内存或 CPU 时间的进程。这种情况下有两个非常简单的命令，分别是 top 和 htop 命令（图 5）。图 5：top 截屏top 和 htop 工具使用效果非常相似。两个命令每秒或者两秒会更新重新排序，这样会把占用 CPU 资源最多的放置在列表顶部。你也可以根据其他资源的使用情况比如内存使用情况来排序。使用这两个命令时（top 和 htop），你可以输入 ? 来获取使用帮助，输入 q 来退出程序。…

迁移到 Linux：安装软件
type: item
date: 2018-07-10T15:43:00+08:00
description: 所有的 Linux 打包系统和工具都会让人迷惑，但是这篇面向初学者的教程可以帮助你搞明白。如你所见，众所瞩目的 Linux 已经用在互联网，以及 Arduino、Beagle 和树莓派主板等设备上，或许你正在考虑是时候尝试一下 Linux 了。本系列将帮助你成功过渡到 Linux。如果你错过了本系列的早期文章，可以在这里找到它们：第1部分 - 入门介绍第2部分 - 磁盘、文件和文件系统第3部分 - 图形操作环境第4部分 - 命令行第5部分 - 使用 sudo安装软件要在你的计算机上获得新软件，通常的方法是从供应商处获得软件产品，然后运行一个安装程序。过去，软件产品会出现在像 CD-ROM 或 DVD 一样的物理媒介上，而现在我们经常从互联网上下载软件产品。使用 Linux，安装软件就像在你的智能手机上安装一样。如同你的手机应用商店一样，在 Linux 上有个提供开源软件工具和程序的 中央仓库 central repository ，几乎任何你想要的程序都会出现在可用软件包列表中以供你安装。每个程序并不需要运行单独的安装程序，而是你可以使用 Linux 发行版附带的软件包管理工具。（这里说的 Linux 发行版就是你安装的 Linux，例如 Ubuntu、Fedora、Debian 等）每个发行版在互联网上都有它自己的集中存储库（称为仓库），它们存储了数千个预先构建好的应用程序。你可能会注意到，在 Linux 上安装软件有几种例外情况。有时候，你仍然需要去供应商那里获取他们的软件，因为该程序不存在于你的发行版的中央仓库中。当软件不是开源和/或自由软件的时候，通常就是这种情况。另外请记住，如果你想要安装一个不在发行版仓库中的程序时，事情就不是那么简单了，即使你正在安装自由及开源程序。这篇文章没有涉及到这些更复杂的情况，请遵循在线的指引。有了所有的 Linux 包管理系统和工具，接下来干什么可能仍然令人困惑。本文应该有助于澄清一些事情。包管理目前在 Linux 发行版中有几个相互竞争的用于管理、安装和删除软件的包管理系统。每个发行版都选择使用了一个 包管理工具 package management tools 。Red Hat、Fedora、CentOS、Scientific Linux、SUSE 等使用 Red Hat 包管理（RPM）。Debian、Ubuntu、Linux Mint 等等都使用 Debian 包管理系统，简称 DPKG。还有一些其它包管理系统，但 RPM 和 DPKG 是最常见的。图 1: Package installers无论你使用的软件包管理是什么，它们通常都是一组构建于另外一种工具之上的工具（图 1）。最底层是一个命令行工具，它可以让你做任何与安装软件相关的一切工作。你可以列出已安装的程序、删除程序、安装软件包文件等等。这个底层工具并不总是最方便使用的，所以通常会有一个命令行工具，它可以使用单个命令在发行版的中央仓库中找到软件包，并下载和安装它以及任何依赖项。最后，通常会有一个 图形应用程序 graphical application ，可以让你使用鼠标选择任何想要的内容，然后单击 “install” 按钮即可。图 2: PackageKit对于基于 Red Hat 的发行版，包括 Fedora、CentOS、Scientific Linux 等，它们的底层工具是 rpm，高级工具叫做 dnf（在旧系统上是 yum）。图形安装程序称为 PackageKit（图 2），它可能在系统管理菜单下显示名字为 “Add/Remove Software（添加/删除软件）”。图 3: Ubuntu Software对于基于 Debian 的发行版，包括 Debian、Ubuntu、Linux Mint、Elementary OS 等，它们的底层命令行工具是 dpkg，高级工具称为 apt。在 Ubuntu 上管理已安装软件的图形工具是 Ubuntu Software（图 3）。对于 Debian 和 Linux Mint，图形工具称为 新立得 Synaptic ，它也可以安装在 Ubuntu 上。你也可以在 Debian 相关发行版上安装一个基于文本的图形化工具 aptitude。它比 新立得 synaptic 更强大，并且即使你只能访问命令行也能工作。如果你想通过各种选项进行各种“骚”操作，你可以试试这个，但它使用起来比新立得更复杂。其它发行版也可能有自己独特的工具。命令行工具在 Linux 上安装软件的在线说明通常描述了在命令行中键入的命令。这些说明通常更容易理解，并且将命令复制粘贴到命令行窗口中，可以在不出错的情况下一步步进行。这与下面的说明相反：“打开这个菜单，选择这个程序，输入这个搜索模式，点击这个标签，选…

迁移到 Linux：使用 sudo
type: item
date: 2018-07-10T02:04:00+08:00
description: sudo 机制可以让你轻松以普通用户偶尔执行管理任务。让我们来学习一下。本文是我们关于迁移到 Linux 的系列文章的第五篇。如果你错过了之前的那些，你可以在这里赶上：第1部分 - 入门介绍第2部分 - 磁盘、文件和文件系统第3部分 - 图形操作环境第4部分 - 命令行你可能一直想了解 Linux。也许它在你的工作场所使用，如果你每天使用它，你的工作效率会更高。或者，也许你想在家里的某些计算机上安装 Linux。无论是什么原因，这一系列文章都是为了让过渡更容易。与许多其他操作系统一样，Linux 支持多用户。它甚至支持多个用户同时登录。用户帐户通常会被分配一个可以存储文件的家目录。通常这个家目​​录位于：/home/<login name> 这样，每个用户都有存储自己的文档和其他文件的独立位置。管理任务在传统的 Linux 安装中，常规用户帐户无权在系统上执行管理任务。典型的安装 Linux 的系统会要求用户以管理员身份登录以执行某些任务，而不是为每个用户分配权限以执行各种任务。Linux 上的管理员帐户称为 root。Sudo 解释从历史上看，要执行管理任务，必须以 root 身份登录，执行任务，然后登出。这个过程有点乏味，所以很多人以 root 登录并且整天都以管理员身份工作。这种做法可能会导致灾难性的后果，例如，意外删除系统中的所有文件。当然，root 用户可以做任何事情，因此没有任何保护措施可以防止有人意外地执行影响很大的操作。创建 sudo 工具是为了使你更容易以常规用户帐户登录，偶尔以 root 身份执行管理任务，而无需登录、执行任务然后登出。具体来说，sudo 允许你以不同的用户身份运行命令。如果你未指定特定用户，则假定你指的是 root 用户。sudo 可以有复杂的设置，允许用户有权限使用 sudo 运行某些命令，而其他的不行。通常，安装的桌面系统会使创建的第一个帐户在 sudo 中有完全的权限，因此你作为主要用户可以完全管理 Linux 安装。使用 Sudo某些安装 Linux 的系统设置了 sudo，因此你仍需要知道 root 帐户的密码才能执行管理任务。其他人，设置 sudo 输入自己的密码。这里有不同的哲学。当你尝试在图形环境中执行管理任务时，通常会打开一个要求输入密码的对话框。输入你自己的密码（例如，在 Ubuntu 上）或 root 帐户的密码（例如，Red Hat）。当你尝试在命令行中执行管理任务时，它通常只会给你一个 “permission denied” 错误。然后你在前面用 sudo 重新运行命令。例如：systemctl start vsftpd Failed to start vsftpd.service: Access denied sudo systemctl start vsftpd [sudo] password for user1: 何时使用 Sudo以 root 身份运行命令（在 sudo 或其他情况下）并不总是解决权限错误的最佳解决方案。虽然将以 root 身份运行会消除 “permission denied” 错误，但有时最好寻找根本原因而不是仅仅解决症状。有时文件拥有错误的所有者和权限。当你在尝试一个需要 root 权限来执行操作的任务或者程序时使用 sudo。如果文件恰好由另一个用户（包括 root 用户）拥有，请不要使用 sudo。在第二种情况下，最好正确设置文件的权限。通过 Linux 基金会和 edX 的免费“Linux 介绍”课程了解有关 Linux 的更多信息。via: https://www.linux.com/blog/learn/2018/3/migrating-linux-using-sudo作者：John Bonesio 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

迁移到 Linux：命令行环境
type: item
date: 2018-04-21T07:03:00+08:00
description: 刚接触 Linux？在这篇教程中将学习如何轻松地在命令行列出、移动和编辑文件。这是关于迁徙到 Linux 系列的第四篇文章了。如果您错过了之前的内容，可以回顾我们之前谈到的内容 新手之 Linux、文件和文件系统、和 图形环境。Linux 无处不在，它可以用于运行大部分的网络服务器，如 Web、email 和其他服务器；它同样可以在您的手机、汽车控制台和其他很多设备上使用。现在，您可能会开始好奇 Linux 系统，并对学习 Linux 的工作原理萌发兴趣。在 Linux 下，命令行非常实用。Linux 的桌面系统中，尽管命令行只是可选操作，但是您依旧能看见很多朋友开着一个命令行窗口和其他应用窗口并肩作战。在互联网服务器上和在设备中运行 Linux 时（LCTT 译注：指 IoT），命令行通常是唯一能直接与操作系统交互的工具。因此，命令行是有必要了解的，至少应当涉猎一些基础命令。在命令行（通常称之为 Linux shell）中，所有操作都是通过键入命令完成。您可以执行查看文件列表、移动文件位置、显示文件内容、编辑文件内容等一系列操作，通过命令行，您甚至可以查看网页中的内容。如果您在 Windows（CMD 或者 PowerShell） 上已经熟悉关于命令行的使用，您是否想跳转到“Windows 命令行用户”的章节上去？先阅读这些内容吧。导航在命令行中，这里有一个当前工作目录（文件夹和目录是同义词，在 Linux 中它们通常都被称为目录）的概念。如果没有特别指定目录，许多命令的执行会在当前目录下生效。比如，键入 ls 列出文件目录，当前工作目录的文件将会被列举出来。看一个例子：$ ls Desktop Documents Downloads Music Pictures README.txt Videos ls Documents 这条命令将会列出 Documents 目录下的文件：$ ls Documents report.txt todo.txt EmailHowTo.pdf 通过 pwd 命令可以显示当前您的工作目录。比如：$ pwd /home/student 您可以通过 cd 命令改变当前目录并切换到您想要抵达的目录。比如：$ pwd /home/student $ cd Downloads $ pwd /home/student/Downloads 路径中的目录由 /（左斜杠）字符分隔。路径中有一个隐含的层次关系，比如 /home/student 目录中，home 是顶层目录，而 student 是 home 的子目录。路径要么是绝对路径，要么是相对路径。绝对路径由一个 / 字符打头。相对路径由 . 或者 .. 开始。在一个路径中，一个 . 意味着当前目录，.. 意味着当前目录的上级目录。比如，ls ../Documents 意味着在此寻找当前目录的上级名为 Documents 的目录：$ pwd /home/student $ ls Desktop Documents Downloads Music Pictures README.txt Videos $ cd Downloads $ pwd /home/student/Downloads $ ls ../Documents report.txt todo.txt EmailHowTo.pdf 当您第一次打开命令行窗口时，您当前的工作目录被设置为您的家目录，通常为 /home/<您的登录名>。家目录专用于登录之后存储您的专属文件。环境变量 $HOME 会展开为您的家目录，比如：$ echo $HOME /home/student 下表显示了用于目录导航和管理简单的文本文件的一些命令摘要。搜索有时我们会遗忘文件的位置，或者忘记了我要寻找的文件名。Linux 命令行有几个命令可以帮助您搜索到文件。第一个命令是 find。您可以使用 find 命令通过文件名或其他属性搜索文件和目录。举个例子，当您遗忘了 todo.txt 文件的位置，我们可以执行下面的代码：$ find $HOME -name todo.txt /home/student/Documents/todo.txt find 程序有很多功能和选项。一个简单的例子：find <要寻找的目录> -name <文件名> 如果这里有 todo.txt 文件且不止一个，它将向我们列出拥有这个名字的所有文件的所有所在位置。find 命令有很多便于搜索的选项比如类型（文件或是目录等等）、时间、大小和其他一些选项。更多内容您可以同通过 man find 获取关于如何使用 find 命令的帮助。您还可以使用 grep 命令搜索文件的特定内容，比如：grep "01/02/2018" todo.txt 这将为您展示 todo 文件…

迁移到 Linux：图形操作环境
type: item
date: 2018-01-30T07:31:55+08:00
description: 这篇文章对 Linux 图形环境做了一番介绍，展示了在不同的 Linux 发行版上的各种选择。这是我们迁移到 Linux 系统系列的第三篇文章。如果你错过了先前的两篇，这里有两文的链接《入门介绍》 和 《磁盘、文件、和文件系统》。本文中，我们将讨论图形操作环境。在 Linux 系统中，你可以依照喜好选择并且定制一个图形界面，你有很大的选择余地，这也是 Linux 优越的体验之一。一些主流的 Linux 图形界面包括：Cinnamon、Gnome、KDE Plasma、Xfce 和 MATE，总之这里有很多选择。有一点经常混淆 Linux 新手，虽然某个 Linux 系统分配了一个缺省的图形环境，但是一般你可以随时更换这个图形界面。这和 Windows 或 Mac OS 的惯用者的定势思维不同。安装图形环境是一件独立的事情，很多时候，Linux 和其图形环境的连接并不紧密。此外，你在一个图形环境构建运行的程序同样适用于另一个图形环境。比如说一个为 KDE Plasma 图形环境编写的应用程序完全适用于 Gnome 桌面图形环境。由于人们熟悉 Windows 和 MacOS 系统，部分 Linux 操作系统的图形环境在一定程度上尝试着去模仿它们，但另一些 Linux 图形界面则是独特的。下面，我将就一些不同的 Linux 发行版，展示几个 Linux 图形环境。如果你不确定应该采用那个 Linux 发行版，那我建议你从 Ubuntu 开始，获取其长期支持（LTS）的版本（Ubuntu 16.04.3 LTS 正在开发）。Ubuntu 稳定且真的非常好用。由 Mac 过渡Elementary OS 发行版提供了和 Mac 系统风格很接近的界面。它的默认图形环境被称作 Pantheon，是一款很适合 Mac 用户过渡使用的图形环境。这款图形界面发行版的屏幕底部有一个停靠栏，专为极简者使用而设计。为了保持简约的风格，很多默认的应用程序甚至都不会有自己的菜单。相反，它们的按钮和控件在应用程序的标题栏上（图 1）。图 1： Elementary OS Pantheon.Ubuntu 发行版提供的一个默认的图形界面，也和 Mac 相似。Ubuntu 17.04 或者更老的版本都使用 Unity 图形环境，Unity 停靠栏的默认位置在屏幕的左边，屏幕顶部有一个全局应用程序共享的菜单栏。由 Windows 过渡ChaletOS 亦步亦趋模仿 Windows 界面，可以帮助 Windows 用户轻松的过渡到 Linux。ChaletOS 使用的图形环境是 Xfce（图 2）。在屏幕的左下角有一个开始（主）菜单和搜索栏。屏幕的右下角是一个桌面图标和一些通知信息。这看起来和 Windows 非常像，乍一看，可能都会以为桌面跑的是 Windows。图 2： ChaletOS with Xfce.Zorin OS 发行版同样尝试模仿 Windows。 Zorin OS 使用的 Gnome 的改进桌面，工作起来和 Windows 的图形界面很相似。左下角的开始按钮、右下角的通知栏和信息通知栏。开始按钮会弹出一个和 Windows 无异的应用程序列表和搜索框。独有的图形环境Gnome 桌面（图 3）是最常用的图形环境之一。许多发行版将 Gnome 作为默认的图形环境。Gnome 并不打算模仿 Windows 或是 MacOS，而是以其自身的优雅和易用为目标。图 3：openSUSE with Gnome.Gnome 桌面环境从版本 2 到 版本 3 发生了巨变，Cinnamon 环境为消除该改变带来的不利影响而创造。尽管 Cinnamon 和前辈 Gnome 2 外观不相似，但是它依旧尝试提供一个简约的界面，而且它的功能和 Windows XP 类似。MATE 图形环境直接模仿于 Gnome 2，在它的屏幕顶部有一个用作设置和存放应用的菜单栏，底部提供了一个应用程序运行选项卡和一些其他组件。KDE plasma 围绕组件界面而构建，组件可以安装在桌面或是面板上（图 4）。图 4: 安装了 KDE Plasma 的 Kubuntu 操作系统。没有那个图形环境比另外一个更好。不同的风格适用不同的用户风格。另外，如果选择太多无从下手，那就从 Ubuntu 开始吧。相似与不同不同的操作系统处理方式不同，这会给使用者的过渡带来挑战。比如说，菜单栏可能出现在不同的位置，然后设置有可能用不同的选项入口路径。我列举了一些相似或不同地方来帮助减少 Linux 调整。鼠标Linux 的鼠标通常和 Windows 与 MacOS 的工作方式有所差异。在 Windows 或 Mac，双击标签，你几乎可以打开任何事物，而这在 Linux 图形界面中很多都被设置为单击。此外在 Wind…

迁移到 Linux：磁盘、文件、和文件系统
type: item
date: 2018-01-10T17:58:00+08:00
description: 在你的主要桌面计算机上安装和使用 Linux 将帮你快速熟悉你需要的工具和方法。这是我们的迁移到 Linux 系列文章的第二篇。如果你错过了第一篇，你可以在这里找到它。就如之前提到过的，为什么要迁移到 Linux 的有几个原因。你可以在你的工作中为 Linux 开发和使用代码，或者，你可能只是想去尝试一下新事物。不论是什么原因，在你主要使用的桌面计算机上拥有一个 Linux，将帮助你快速熟悉你需要的工具和方法。在这篇文章中，我将介绍 Linux 的文件、文件系统和磁盘。我的 C:\ 在哪里？如果你是一个 Mac 用户，Linux 对你来说应该非常熟悉，Mac 使用的文件、文件系统、和磁盘与 Linux 是非常接近的。另一方面，如果你的使用经验主要是 Windows，访问 Linux 下的磁盘可能看上去有点困惑。一般，Windows 给每个磁盘分配一个盘符（像 C:\）。而 Linux 并不是这样。而在你的 Linux 系统中它是一个单一的文件和目录的层次结构。让我们看一个示例。假设你的计算机使用了一个主硬盘、一个有 Books 和 Videos 目录的 CD-ROM 、和一个有 Transfer 目录的 U 盘，在你的 WIndows 下，你应该看到的是下面的样子：C:\ [硬盘] ├ System ├ System32 ├ Program Files ├ Program Files (x86) └ <更多目录> D:\ [CD-ROM] ├ Books └ Videos E:\ [U 盘] └ Transfer 而一个典型的 Linux 系统却是这样：/ (最顶级的目录，称为根目录) [硬盘] ├ bin ├ etc ├ lib ├ sbin ├ usr ├ <更多目录> └ media └ <你的用户名> ├ cdrom [CD-ROM] │ ├ Books │ └ Videos └ Kingme_USB [U 盘] └ Transfer 如果你使用一个图形化环境，通常，Linux 中的文件管理器将出现看起来像驱动器的图标的 CD-ROM 和 USB 便携式驱动器，因此，你根本就无需知道介质所在的目录。文件系统Linux 称这些东西为文件系统。文件系统是在介质（比如，硬盘）上保持跟踪所有的文件和目录的一组结构。如果没有用于存储数据的文件系统，我们所有的信息就会混乱，我们就不知道哪个块属于哪个文件。你可能听到过一些类似 ext4、XFS 和 Btrfs 之类的名字，这些都是 Linux 文件系统。每种保存有文件和目录的介质都有一个文件系统在上面。不同的介质类型可能使用了为它优化过的特定的文件系统。比如，CD-ROM 使用 ISO9660 或者 UDF 文件系统类型。USB 便携式驱动器一般使用 FAT32，以便于它们可以很容易去与其它计算机系统共享。Windows 也使用文件系统。不过，我们不会过多的讨论它。例如，当你插入一个 CD-ROM，Windows 将读取 ISO9660 文件系统结构，分配一个盘符给它，然后，在盘符（比如，D:\）下显示文件和目录。当然，如果你深究细节，从技术角度说，Windows 是分配一个盘符给一个文件系统，而不是整个驱动器。使用同样的例子，Linux 也读取 ISO9660 文件系统结构，但它不分配盘符，它附加文件系统到一个目录（这个过程被称为 挂载 mount ）。Linux 将随后在所挂载的目录（比如是， /media/<your user name>/cdrom ）下显示 CD-ROM 上的文件和目录。因此，在 Linux 上回答 “我的 C:\ 在哪里？” 这个问题，答案是，这里没有 C:\，它们工作方式不一样。文件Windows 将文件和目录（也被称为文件夹）存储在它的文件系统中。但是，Linux 也让你将其它的东西放到文件系统中。这些其它类型的东西是文件系统的原生的对象，并且，它们和普通文件实际上是不同的。除普通文件和目录之外，Linux 还允许你去创建和使用 硬链接 hard link 、 符号链接 symbolic link 、 命名管道 named pipe 、 设备节点 device node 、和 套接字 socket 。在这里，我们不展开讨论所有的文件系统对象的类型，但是，这里有几种经常使用到的需要知道。硬链接用于为文件创建一个或者多个别名。指向磁盘上同样内容的每个别名的名字是不同的。如果在一个文件名下编辑文件，这个改变也同时出现在其它的文件名上。例如，你有一个 MyResume_2017.doc，它还有一个被称为 JaneDoeResume.doc 的硬链接。（注意，硬链接是从命令行下，使用 ln 的命令去创建的）。你可以找到并编辑 MyResume_2017.doc…

迁移到 Linux ：入门介绍
type: item
date: 2018-01-07T21:03:00+08:00
description: 这个新文章系列将帮你从其他操作系统迁移到 Linux。运行 Linux 的计算机系统到遍布在每个角落。Linux 运行着从谷歌搜索到“脸书”等等各种互联网服务。Linux 也在很多设备上运行，包括我们的智能手机、电视，甚至汽车。当然，Linux 也可以运行在您的桌面系统上。如果您是 Linux 新手，或者您想在您的桌面计算机上尝试一些不同的东西，这篇文章将简要地介绍其基础知识，并帮助您从另一个系统迁移到 Linux。切换到不同的操作系统可能是一个挑战，因为每个操作系统都提供了不同的操作方法。其在一个系统上的 习惯 second nature 可能会对另一个系统的使用形成阻挠，因此我们需要到网上或书本上查找怎样操作。Windows 与 Linux 的区别（LCTT 译注：本节标题 Vive la différence ，来自于法语，意即“差异万岁”——来自于 wiktionary）要开始使用 Linux，您可能会注意到，Linux 的打包方式不同。在其他操作系统中，许多组件被捆绑在一起，只是该软件包的一部分。然而，在 Linux 中，每个组件都被分别调用。举个例子来说，在 Windows 下，图形界面只是操作系统的一部分。而在 Linux 下，您可以从多个图形环境中进行选择，比如 GNOME、KDE Plasma、Cinnamon 和 MATE 等。从更高层面上看，一个 Linux 包括以下内容：内核驻留在磁盘上的系统程序和文件图形环境包管理器应用程序内核操作系统的核心称为 内核 kernel 。内核是引擎罩下的引擎。它允许多个应用程序同时运行，并协调它们对公共服务和设备的访问，从而使所有设备运行顺畅。系统程序和文件系统程序以标准的文件和目录的层次结构位于磁盘上。这些系统程序和文件包括后台运行的服务（称为 守护进程 deamon ）、用于各种操作的实用程序、配置文件和日志文件。这些系统程序不是在内核中运行，而是执行基本系统操作的程序——例如，设置日期和时间，以及连接网络以便你可以上网。这里包含了 初始化 init 程序——它是最初运行的程序。该程序负责启动所有后台服务（如 Web 服务器）、启动网络连接和启动图形环境。这个初始化程序将根据需要启动其它系统程序。其他系统程序为简单的任务提供便利，比如添加用户和组、更改密码和配置磁盘。图形环境图形环境实际上只是更多的系统程序和文件。图形环境提供了常用的带有菜单的窗口、鼠标指针、对话框、状态和指示器等。需要注意的是，您不是必须需要使用原本安装的图形环境。如果你愿意，你可以把它换成其它的。每个图形环境都有不同的特性。有些看起来更像 Apple OS X，有些看起来更像 Windows，有些则是独特的而不试图模仿其他的图形界面。包管理器对于来自不同操作系统的人来说， 包管理器 package manager 比较难以掌握，但是现在有一个人们非常熟悉的类似的系统——应用程序商店。软件包系统实际上就是 Linux 的应用程序商店。您可以使用包管理器来选择您想要的应用程序，而不是从一个网站安装这个应用程序，而从另一个网站来安装那个应用程序。然后，包管理器会从预先构建的开源应用程序的中心仓库安装应用程序。应用程序Linux 附带了许多预安装的应用程序。您可以从包管理器获得更多。许多应用程序相当棒，另外一些还需要改进。有时，同一个应用程序在 Windows 或 Mac OS 或 Linux 上运行的版本会不同。例如，您可以使用 Firefox 浏览器和 Thunderbird (用于电子邮件)。您可以使用 LibreOffice 作为 Microsoft Office 的替代品，并通过 Valve 的 Steam 程序运行游戏。您甚至可以在 Linux 上使用 WINE 来运行一些 Windows 原生的应用程序。安装 Linux第一步通常是安装 Linux 发行版。你可能听说过 Red Hat、Ubuntu、Fedora、Arch Linux 和 SUSE，等等。这些都是 Linux 的不同发行版。如果没有 Linux 发行版，则必须分别安装每个组件。许多组件是由不同人群开发和提供的，因此单独安装每个组件将是一项冗长而乏味的任务。幸运的是，构建发行版的人会为您做这项工作。他们抓取所有的组件，构建它们，确保它们可以在一起工作，然后将它们打包在一个单一的安装套件中。各种发行版可能会做出不同的选择、使用不同的组件，但它仍然是 Linux。在一个发行版中开发的应用程序通常在其他发行版上运行的也很好。如果你是一个 Linux 初学者，想尝试 Linux，我推荐安装 Ubuntu。还有其他的发行版也可以尝试: Linux Mint、Fedora、Debian、Zorin OS、Elementary OS 等等…

22 天迁移到公共云
type: item
date: 2017-09-29T16:23:00+08:00
description: Lush 说这是可能的。在不到一个月内将你的核心业务从一个公共云迁移到另一个公共云看起来像是一个遥不可及的目标，但是英国化妆品巨头 Lush 认为可以做到这一点。去年九月 Lush —— 你也许知道它是那些糖果色的、好闻的沐浴和护肤产品背后的公司 —— 与已有的基础设施供应商 Acquia 的合同快要到期了。Acquia 已经在 AWS 中托管了 Lush 的基于 Drupal 的电子商务环境好几年了，但该零售商想要退出合作。根据 Lush 的首席数字官及公司的继承人 Jack Constantine（他的父母在 1995 年成立该公司）的说法，该安排是“尴尬”和僵硬的。他今天在旧金山举行的 Google Cloud Next 会议上说：“我们不太满意那份合同，我们想看看我们还能做些什么。”“那是一个非常封闭的环境，这使我们难于看清下一步做什么。”“(我们) 可以再签署一年，在此期间想出一个有更多的控制权的长期计划，但是（我们）最终结束了这种挣扎。”在淘遍市场后，Lush 目标放在 Google 的云平台上。该公司已经很熟悉 Google 了，已于 2013 年底从 Scalix 迁移到 Google Apps（现称为 G Suite）上。然而，只有几个月不到的时间进行迁移，要赶在 12 月 22 日现有合同截止前和圣诞节购物的关键时期前。Constantine 说：“所以这不仅仅是有点关键的业务，我们要考虑高峰交易期，那时会有巨大的交易。”Lush 摆脱了官僚主义意味着 Constantine 能够在选择供应商上快速决定。他说：“接着团队只要全力进行就行。”他们还为这次迁移专门优先优化了用于迁移的 “一体化” Drupal 程序，而把 bug 修复推到以后。Lush 12 月 1 日开始物理迁移，12 月 22 日完成。团队“像其他迁移一样”遇到了挑战，Constantine 说：“你肯定会担心将数据从一个地方传输到另一个地方，你必须确保一致性，客户、产品数据等需要稳定。”但是，这位 CDO 表示，让公司采用这个难以置信的紧张时间表是因为团队缺乏备选方案: 没有后备计划。Constantine 说：“在截止日期前的一个星期，我的同事和我们的 Google 合作伙伴打了电话，他们对这是否会发生有点紧张，他们问我们 Plan B 是什么，我的同事说：Plan B 就是让 Plan A，就是这样”。“当你抛出这样一个听起来有点难以置信的艰难的截止日期时，而（你需要保持）关注那些认为这是我们可在这个时间范围内可以实现的目标的人，而不是那些放置阻碍说‘我们必须要延期’的人。”“是的，每个人都很紧张，但你实现了很多。你实际上完成并盯牢了它。你所要做的就是完成、完成。”现在的重点是将该电子商务应用转移到微服务架构，同时研究各种 Google 工具，如 Kubernetes 容器管理系统和 Spanner 关系数据库。Constantine 说，该零售商最近也建立了使用 GCP 和 Android 的原型 POS 系统。（题图：Lush's Oxford St, UK store. Credit: Lush）via: https://www.itnews.com.au/news/a-public-cloud-migration-in-22-days-454186作者：Allie Coyne 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
type: item
date: 2015-09-14T17:14:00+08:00
description: 自从甲骨文收购 MySQL 后，由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场，很多 MySQL 的开发者和用户放弃了 MySQL。在社区驱动下，促使更多人移到 MySQL 的另一个叫 MariaDB 的分支。在原有 MySQL 开发人员的带领下，MariaDB 的开发遵循开源的理念，并确保它的二进制格式与 MySQL 兼容。Linux 发行版如 Red Hat 家族（Fedora，CentOS，RHEL），Ubuntu 和 Mint，openSUSE 和 Debian 已经开始使用，并支持 MariaDB 作为 MySQL 的直接替换品。如果你想要将 MySQL 中的数据库迁移到 MariaDB 中，这篇文章就是你所期待的。幸运的是，由于他们的二进制兼容性，MySQL-to-MariaDB 迁移过程是非常简单的。如果你按照下面的步骤，将 MySQL 迁移到 MariaDB 会是无痛的。准备 MySQL 数据库和表出于演示的目的，我们在做迁移之前在数据库中创建一个测试的 MySQL 数据库和表。如果你在 MySQL 中已经有了要迁移到 MariaDB 的数据库，跳过此步骤。否则，按以下步骤操作。在终端输入 root 密码登录到 MySQL 。$ mysql -u root -p 创建一个数据库和表。mysql> create database test01; mysql> use test01; mysql> create table pet(name varchar(30), owner varchar(30), species varchar(20), sex char(1)); 在表中添加一些数据。mysql> insert into pet values('brandon','Jack','puddle','m'),('dixie','Danny','chihuahua','f'); 退出 MySQL 数据库.备份 MySQL 数据库下一步是备份现有的 MySQL 数据库。使用下面的 mysqldump 命令导出现有的数据库到文件中。运行此命令之前，请确保你的 MySQL 服务器上启用了二进制日志。如果你不知道如何启用二进制日志，请参阅结尾的教程说明。$ mysqldump --all-databases --user=root --password --master-data > backupdb.sql 现在，在卸载 MySQL 之前先在系统上备份 my.cnf 文件。此步是可选的。$ sudo cp /etc/mysql/my.cnf /opt/my.cnf.bak 卸载 MySQL首先，停止 MySQL 服务。$ sudo service mysql stop 或者:$ sudo systemctl stop mysql 或:$ sudo /etc/init.d/mysql stop 然后继续下一步，使用以下命令移除 MySQL 和配置文件。在基于 RPM 的系统上 (例如, CentOS, Fedora 或 RHEL):$ sudo yum remove mysql* mysql-server mysql-devel mysql-libs $ sudo rm -rf /var/lib/mysql 在基于 Debian 的系统上(例如, Debian, Ubuntu 或 Mint):$ sudo apt-get remove mysql-server mysql-client mysql-common $ sudo apt-get autoremove $ sudo apt-get autoclean $ sudo deluser mysql $ sudo rm -rf /var/lib/mysql 安装 MariaDB在 CentOS/RHEL 7和Ubuntu（14.04或更高版本）上，最新的 MariaDB 已经包含在其官方源。在 Fedora 上，自19 版本后 MariaDB 已经替代了 MySQL。如果你使用的是旧版本或 LTS 类型如 Ubuntu 13.10 或更早的，你仍然可以通过添加其官方仓库来安装 MariaDB。MariaDB 网站 提供了一个在线工具帮助你依据你的 Linux 发行版中来添加 MariaDB 的官方仓库。此工具为 openSUSE, Arch Linux, Mageia, Fedora, CentOS, RedHat, Mint, Ubuntu, 和 Debian 提供了 MariaDB 的官方仓库.下面例子中，我们使用 Ubuntu 14.04 发行版和 CentOS 7 配置 MariaDB 库。Ubuntu 14.04$ sudo apt-get in…