蚊章汇 - 2019年7月
type: channel
link: https://linuxcn.bwsl.wang/2019/07/
description: Linux中国社区镜像站，没有大保镖。
items: WPS Office：Linux 上的 Microsoft Office 的免费替代品
items: 技术拐点已现，全面上云正当其时
items: Linux 中的软盘走向终结了吗？Torvalds 将软盘的驱动标记为“孤儿”
items: 在树莓派上玩怀旧游戏的 5 种方法
items: 如何在 Firefox 中启用 DNS-over-HTTPS（DoH）
items: 京东云郭理靖：我对云服务的一些看法
items: 使用 pandoc 将 Markdown 转换为格式化文档
items: 精通 Linux 的 ls 命令
items: 获取有关 Linux shell 内置命令的帮助
items: 在 Linux 中不使用 useradd 命令如何创建用户账号

WPS Office：Linux 上的 Microsoft Office 的免费替代品
type: item
date: 2019-07-31T17:53:28+08:00
description: 如果你在寻找 Linux 上 Microsoft Office 免费替代品，那么 WPS Office 是最佳选择之一。它可以免费使用，并兼容 MS Office 文档格式。WPS Office 是一个跨平台的办公生产力套件。它轻巧，并且与 Microsoft Office、Google Docs/Sheets/Slide 和 Adobe PDF 完全兼容。对于许多用户而言，WPS Office 足够直观，并且能够满足他们的需求。由于它在外观和兼容性方面与 Microsoft Office 非常相似，因此广受欢迎。WPS office 由中国的金山公司创建。对于 Windows 用户而言，WPS Office 有免费版和高级版。对于 Linux 用户，WPS Office 可通过其社区项目免费获得。非 FOSS 警告！WPS Office 不是一个开源软件。因为它对于 Linux 用户免费使用，我们已经在这介绍过它，有时我们也会介绍即使不是开源的 Linux 软件。Linux 上的 WPS OfficeWPS Office 有四个主要组件：WPS 文字WPS 演示WPS 表格WPS PDFWPS Office 与 MS Office 完全兼容，支持 .doc、.docx、.dotx、.ppt、.pptx、.xls、.xlsx、.docm、.dotm、.xml、.txt、.html、.rtf （等其他），以及它自己的格式（.wps、.wpt）。它还默认包含 Microsoft 字体（以确保兼容性），它可以导出 PDF 并提供超过 10 种语言的拼写检查功能。但是，它在 ODT、ODP 和其他开放文档格式方面表现不佳。三个主要的 WPS Office 应用都有与 Microsoft Office 非常相似的界面，都有相同的 Ribbon UI。尽管存在细微差别，但使用习惯仍然相对一致。你可以使用 WPS Office 轻松克隆任何 Microsoft Office/LibreOffice 文档。你可能唯一不喜欢的是一些默认的样式设置（一些标题下面有很多空间等），但这些可以很容易地调整。默认情况下，WPS 以 .docx、.pptx 和 .xlsx 文件类型保存文件。你还可以将文档保存到 WPS 云中并与他人协作。另一个不错的功能是能从这里下载大量模板。在 Linux 上安装 WPS OfficeWPS 为 Linux 发行版提供 DEB 和 RPM 安装程序。如果你使用的是 Debian/Ubuntu 或基于 Fedora 的发行版，那么安装 WPS Office 就简单了。你可以在下载区那下载 Linux 中的 WPS：下载 WPS Office for Linux向下滚动，你将看到最新版本包的链接：下载适合你发行版的文件。只需双击 DEB 或者 RPM 就能安装它们。这会打开软件中心，你将看到安装选项：几秒钟后，应用应该成功安装到你的系统上了！你现在可以在“应用程序”菜单中搜索 WPS，查找 WPS Office 套件中所有的应用：你是否使用 WPS Office 或其他软件？还有其他 Microsoft Office 的开源替代方案，但它们与 MS Office 的兼容性很差。就个人而言，我更喜欢 LibreOffice，但如果你必须要用到 Microsoft Office，你可以尝试在 Linux 上使用 WPS Office。它看起来和 MS Office 类似，并且与 MS 文档格式具有良好的兼容性。它在 Linux 上是免费的，因此你也不必担心 Office 365 订阅。你在系统上使用什么办公套件？你曾经在 Linux 上使用过 WPS Office 吗？你的体验如何？via: https://itsfoss.com/wps-office-linux/作者：Sergiu 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

技术拐点已现，全面上云正当其时
type: item
date: 2019-07-31T07:38:00+08:00
description: 从十多年前云计算开始兴起，这些年云计算已经逐渐蔓延到了我们身边，如今，你所使用的很多服务其背后都是由云计算所支撑的。但是，很多企业的 IT 设施以及网络服务，还一直因为种种原因而迟迟难以迈出上云的一步。这里面，有很多原因，有 IT 预算和迁移成本问题，有基础设施和应用迁移改造的问题，也有对云计算环境的安全性、可靠性的担忧问题，还有企业技术储备和能力问题。今天，我们将从技术的角度来看看，企业是否已经到了全面上云的拐点？“企业全面上云的拐点到了”一语最近来自于 7 月 25 日在上海举办的阿里云峰会。在该次大会上，阿里云智能总裁张建锋表示，“全面上云是时代必然，今年是一个非常重要的拐点。”经过了过去十年的发展，云计算以及在关键技术和应用规模上实现了对传统 IT 的全面超越。这里有个重要的信号，据 IDC 最近发布的《全球云计算 IT 基础设施市场预测报告》显示，2019 年全球云上的 IT 基础设施占比超过传统数据中心，成为市场主导者；而在中国，服务器出货量出现 10 年来首次下滑，企业快速迁移上云是背后主要诱因。迁移工具就绪企业上云最大的阻碍之一就是现有 IT 基础设施、应用和数据如何平滑地转移到云上，因此，一套可以无痛解决这个问题的迁移工具是企业上云所面临的当务之急。各个云厂商均纷纷加大在企业迁云工具方面的努力，这里我们就阿里云来看，他们已经全面考虑到了企业上云的实操问题，提供了从服务器迁移到数据、数据库迁移的完整工具，完善地解决了传统 IT 中积累的大量数据无法搬迁的问题。服务器迁移面临着三大痛难点，主要是应用高度复杂、操作麻烦、无从下手；迁移周期长、可能影响业务正常运行；通过制作镜像的方式迁移消耗大量人力资源。阿里云已经免费提供自动化迁云效率工具—— 服务器迁移中心 （ ServerMigration Center ） （SMC），帮助企业服务器快速上云。数据迁移时，必须要保证迁移数据的完整性、实现迁移时业务无感知，最终以最高的效率完成迁移。阿里云的明星产品闪电立方，既可以满足轻量级的数据迁移，也能够支持TB到PB级别的数据量迁移。此前还支持过 115 科技完成互联网史上最大规模的数据迁移上云：规模超过 100 PB，整个项目耗时仅 45 天。传统的数据库迁移工具要求数据库在迁移中必须停服，极大影响业务。早在 2015 年，阿里云就发布了 数据传输服务 （ Data Transmission Service ） （DTS），采用 DTS，数据库在迁移过程中依然可以正常提供服务。目前，DTS 可支持多达 18 种数据源，已完成约 40 万个数据库上云。云端环境就绪在消除了迁移上云的障碍之后，完善就绪的云端环境决定了企业是否能在云端环境延续计算和应用。而云端环境不仅仅要求能够节省 IT 成本，也要求提供更高的稳定性、安全性和扩展性，以及更丰富的云端产品服务生态。基础设施的上云不外乎服务器、存储、数据库等核心产品。对阿里云来说，在各个产品维度已经具备了完美的替代，IaaS 层面它们共同构成了飞天云操作系统。例如服务器，除了性能稳定的 ECS，还有软硬一体的神龙云服务器，兼具虚拟机的灵活、可扩展，又有物理机的稳定和安全隔离特性。数据库上，云原生数据库 POLARDB 在可用性、安全、成本、管理难易程度上都远远优于商业数据库。阿里云存储已经连续三年入选 Gartner 全球云存储魔力象限，和 AWS、Microsoft、Google 共同跻身全球四强，服务客户由国家天文台、华大基因、今日头条等。基础设施上云后，随后考虑的则是可以在云上获取价值的模块上云，包括大数据上云、云上中台、智联网 AIoT，这也都是阿里云承载客户上云的“王牌”。飞天大数据平台是当前国内规模最大的计算平台，可扩展至 10 万台计算集群，曾创下四项海量数据排序世界纪录。在阿里巴巴经济体中支撑了全局数据存储和计算，单日数据处理量超过 600PB。双中台是指数据中台和业务中台，已经帮助阿里巴巴经济体多元业务互联互通，业务创新层出不穷，人机协同大量运用，数据智能开创全新的商业形态。通过中台技术，在海外再造一个淘宝天猫，只需要两三个月时间，而盒马更是仅用 4 周就开发上线。智联网 AIoT 融合了云边端一体化的人工智能与物联网能力。具备从高性能 AI 芯片至云平台、AI 算法、AI 组件以及产业 AI 的立体能力。当行业大势已定，当阿里云的准备也一切就绪，还有什么可以阻挡企业全面上云的步伐呢？

Linux 中的软盘走向终结了吗？Torvalds 将软盘的驱动标记为“孤儿”
type: item
date: 2019-07-31T07:13:24+08:00
description: 在 Linux 内核最近的提交当中，Linus Torvalds 将软盘的驱动程序标记为孤儿。这标志着软盘在 Linux 中步入结束了吗？有可能你很多年没见过真正的软盘了。如果你正在寻找带软盘驱动器的计算机，可能需要去博物馆里看看。在二十多年前，软盘是用于存储数据和运行操作系统的流行介质。早期的 Linux 发行版使用软盘进行“分发”。软盘也广泛用于保存和传输数据。你有没有想过为什么许多应用程序中的保存图标看起来像软盘？因为它就是软盘啊！软盘常用于保存数据，因此许多应用程序将其用作保存图标，并且这个传统一直延续至今。今天我为什么要说起软盘？因为 Linus Torvalds 在一个 Linux 内核代码的提交里标记软盘的驱动程序为“孤儿”。在 Linux 内核中被标记为“孤儿”的软盘驱动程序正如你可以在 GitHub 镜像上的提交中看到的那样，开发人员 Jiri 不再使用带有软驱的工作计算机了。而如果没有正确的硬件，Jiri 将无法继续开发。这就是 Torvalds 将其标记为孤儿的原因。越来越难以找到可以实际工作的软盘的物理硬件，虽然 Willy 能够对此进行测试，但我认为从实际的硬件角度来看，这个驱动程序几乎已经死了。目前仍然销售的硬件似乎主要是基于 USB 的，根本不使用这种传统的驱动器。“孤儿”在 Linux 内核中意味着什么？“孤儿”意味着没有开发人员能够或愿意支持这部分代码。如果没有其他人出现继续维护和开发它，孤儿模块可能会被弃用并最终删除。它没有被立即删除Torvalds 指出，各种虚拟环境模拟器仍在使用软盘驱动器。所以软盘的驱动程序不会被立即丢弃。各种 VM 环境中仍然在仿真旧的软盘控制器，因此该驱动程序不会消失，但让我们看看是否有人有兴趣进一步维护它。为什么不永远保持内核中的软盘驱动器支持呢？因为这将构成安全威胁。即使没有真正的计算机使用软盘驱动程序，虚拟机仍然拥有它，这将使虚拟机容易受到攻击。一个时代的终结？这将是一个时代的结束还是会有其他人出现并承担起在 Linux 中继续维护软盘驱动程序的责任？只有时间会给出答案。在 Linux 内核中，软盘驱动器成为孤儿我不觉得有什么可惜的。在过去的十五年里我没有使用过软盘，我怀疑很多人也是如此。那么你呢？你有没有用过软盘？如果是的话，你最后一次使用它的时间是什么时候？via: https://itsfoss.com/end-of-floppy-disk-in-linux/作者：Abhishek Prakash 选题：lujun9972 译者：wxy 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

在树莓派上玩怀旧游戏的 5 种方法
type: item
date: 2019-07-30T23:42:00+08:00
description: 使用这些用于树莓派的开源平台来重温游戏的黄金时代。他们使它们不像过去那样子了，对吧？我是说，电子游戏。当然，现在的设备更强大了。 赛达尔公主 Princess Zelda 在过去每个边只有 16 个像素，而现在的图像处理能力足够处理她头上的每根头发。今天的处理器打败 1988 年的处理器简直不费吹灰之力。但是你知道缺少什么吗？乐趣。你有数之不尽的游戏，按下一个按钮就可以完成教程任务。可能有故事情节，当然杀死坏蛋也可以不需要故事情节，你需要的只是跳跃和射击。因此，毫不奇怪，树莓派最持久的流行用途之一就是重温上世纪八九十年代的 8 位和 16 位游戏的黄金时代。但从哪里开始呢？在树莓派上有几种方法可以玩怀旧游戏。每一种都有自己的优点和缺点，我将在这里讨论这些。RetroPieRetroPie 可能是树莓派上最受欢迎的复古游戏平台。它是一个可靠的万能选手，是模拟经典桌面和控制台游戏系统的绝佳选择。介绍RetroPie 构建在 Raspbian 上运行。如果你愿意，它也可以安装在现有的 Raspbian 镜像上。它使用 EmulationStation 作为开源仿真器库（包括 Libretro 仿真器）的图形前端。不过，你要玩游戏其实并不需要理解上面的任何一个词。它有什么好处入门很容易。你需要做的就是将镜像刻录到 SD 卡，配置你的控制器、复制游戏，然后开始杀死坏蛋。它的庞大用户群意味着有大量的支持和信息，活跃的在线社区也可以求助问题。除了随 RetroPie 镜像一起安装的仿真器之外，还有一个可以从包管理器安装的庞大的仿真器库，并且它一直在增长。RetroPie 还提供了用户友好的菜单系统来管理这些，可以节省你的时间。从 RetroPie 菜单中可以轻松添加 Kodi 和配备了 Chromium 浏览器的 Raspbian 桌面。这意味着你的这套复古游戏装备也适于作为家庭影院、YouTube、SoundCloud 以及所有其它“休息室电脑”产品。RetroPie 还有许多其它自定义选项：你可以更改菜单中的图形，为不同的模拟器设置不同的控制手柄配置，使你的树莓派文件系统的所有内容对你的本地 Windows 网络可见等等。RetroPie 建立在 Raspbian 上，这意味着你可以探索这个树莓派最受欢迎的操作系统。你所发现的大多数树莓派项目和教程都是为 Raspbian 编写的，因此可以轻松地自定义和安装新内容。我已经使用我的 RetroPie 装备作为无线桥接器，在上面安装了 MIDI 合成器，自学了一些 Python，更重要的是，所有这些都没有影响它作为游戏机的用途。它有什么不太好的RetroPie 的安装简单和易用性在某种程度上是一把双刃剑。你可以在 RetroPie 上玩了很长时间，而甚至没有学习过哪怕像 sudo apt-get 这样简单的东西，但这也意味着你错过了很多树莓派的体验。但不一定必须如此；当你需要时，命令行仍然存在于底层，但是也许用户与 Bash shell 有点隔离，而使它最终并没有看上去那么可怕、另外，RetroPie 的主菜单只能通过控制手柄操作，当你没有接入手柄时，这可能很烦人，因为你一直将该系统用于游戏之外的事情。它适用于谁?任何想直接玩一些游戏的人，任何想拥有最大、最好的模拟器库的人，以及任何想在不玩游戏的时候开始探索 Linux 的人。RecalboxRecalbox 是一个较新的树莓派开源模拟器套件。它还支持其它基于 ARM 的小型计算机。介绍与 Retropie 一样， Recalbox 基于 EmulationStation 和 Libretro。它的不同之处在于它不是基于 Raspbian 构建的，而是基于它自己的 Linux 发行版：RecalboxOS。它有什么好处Recalbox 的设置比 RetroPie 更容易。你甚至不需要做 SD 卡镜像；只需复制一些文件即可。它还为一些游戏控制器提供开箱即用的支持，可以让你更快地开始游戏。它预装了 Kodi。这是一个现成的游戏和媒体平台。它有什么不太好的Recalbox 比 RetroPie 拥有更少的仿真器、更少的自定义选项和更小的用户社区。你的 Recalbox 装备可能一直用于模拟器和 Kodi，安装成什么样就是什么样。如果你想深入了解 Linux，你可能需要为 Raspbian 提供一个新的 SD 卡。它适用于谁?如果你想要绝对简单的复古游戏体验，并且不想玩一些比较少见的游戏平台模拟器，或者你害怕一些技术性工作（也没有兴趣去做），那么 Recalbox 非常适合你。对于大多数读者来说，Recalbox 可能最适合推荐给你那些不太懂技术的朋友或亲戚。它超级简单的设置和几乎没什么选项甚至可以让你免去帮助他们解决问题。做个你自己的好，你可能已…

如何在 Firefox 中启用 DNS-over-HTTPS（DoH）
type: item
date: 2019-07-30T18:58:00+08:00
description: DNS-over-HTTPS（DoH）协议目前是谈论的焦点，Firefox 是唯一支持它的浏览器。但是，Firefox 默认不启用此功能，用户必须经历许多步骤并修改多个设置才能启动并运行 DoH。在开始如何在 Firefox 中启用 DoH 支持的分步教程之前，让我们先描述它的原理。DNS-over-HTTPS 的工作原理DNS-over-HTTPS 协议通过获取用户在浏览器中输入的域名，并向 DNS 服务器发送查询，以了解托管该站点的 Web 服务器的 IP 地址。这也是正常 DNS 的工作原理。但是，DoH 通过 443 端口的加密 HTTPS 连接接受 DNS 查询将其发送到兼容 DoH 的 DNS 服务器（解析器），而不是在 53 端口上发送纯文本。这样，DoH 就会在常规 HTTPS 流量中隐藏 DNS 查询，因此第三方监听者将无法嗅探流量，并了解用户的 DNS 查询，从而推断他们将要访问的网站。此外，DNS-over-HTTPS 的第二个特性是该协议工作在应用层。应用可以带上内部硬编码的 DoH 兼容的 DNS 解析器列表，从而向它们发送 DoH 查询。这种操作模式绕过了系统级别的默认 DNS 设置，在大多数情况下，这些设置是由本地 Internet 服务提供商（ISP）设置的。这也意味着支持 DoH 的应用可以有效地绕过本地 ISP 流量过滤器并访问可能被本地电信公司或当地政府阻止的内容 —— 这也是 DoH 目前被誉为用户隐私和安全的福音的原因。这是 DoH 在推出后不到两年的时间里获得相当大的普及的原因之一，同时也是一群英国 ISP 因为 Mozilla 计划支持 DoH 协议而提名它为 2019 年的“互联网恶棍” （Internet Villian）的原因，ISP 认为 DoH 协议会阻碍他们过滤不良流量的努力。（LCTT 译注：后来这一奖项的提名被取消。）作为回应，并且由于英国政府阻止访问侵犯版权内容的复杂情况，以及 ISP 自愿阻止访问虐待儿童网站的情况，Mozilla 已决定不为英国用户默认启用此功能。下面的分步指南将向英国和世界各地的 Firefox 用户展示如何立即启用该功能，而不用等到 Mozilla 将来启用它 —— 如果它会这么做的话。在 Firefox 中有两种启用 DoH 支持的方法。方法 1：通过 Firefox 设置步骤 1：进入 Firefox 菜单，选择工具，然后选择首选项。 可选在 URL 栏中输入 about:preferences，然后按下回车。这将打开 Firefox 的首选项。步骤 2：在常规中，向下滚动到网络设置，然后按设置按钮。步骤3：在弹出窗口中，向下滚动并选择“Enable DNS over HTTPS”，然后配置你需要的 DoH 解析器。你可以使用内置的 Cloudflare 解析器（该公司与 Mozilla 达成协议，记录更少的 Firefox 用户数据），或者你可以在这个列表中选择一个。方法 2：通过 about:config步骤 1：在 URL 栏中输入 about:config，然后按回车访问 Firefox 的隐藏配置面板。在这里，用户需要启用和修改三个设置。步骤 2：第一个设置是 network.trr.mode。这打开了 DoH 支持。此设置支持四个值：0 - 标准 Firefox 安装中的默认值（当前为 5，表示禁用 DoH）1 - 启用 DoH，但 Firefox 依据哪个请求更快返回选择使用 DoH 或者常规 DNS2 - 启用 DoH，常规 DNS 作为备用3 - 启用 DoH，并禁用常规 DNS5 - 禁用 DoH值为 2 工作得最好步骤3：需要修改的第二个设置是 network.trr.uri。这是与 DoH 兼容的 DNS 服务器的 URL，Firefox 将向它发送 DoH DNS 查询。默认情况下，Firefox 使用 Cloudflare 的 DoH服务，地址是：https://mozilla.cloudflare-dns.com/dns-query。但是，用户可以使用自己的 DoH 服务器 URL。他们可以从这个列表中选择其中一个可用的。Mozilla 在 Firefox 中使用 Cloudflare 的原因是因为与这家公司达成了协议，之后 Cloudflare 将收集来自 Firefox 用户的 DoH 查询的非常少的数据。DoH in Firefox步骤4：第三个设置是可选的，你可以跳过此设置。 但是如果设置不起作用，你可以使用此作为步骤 3 的备用。该选项名为 network.trr.bootstrapAddress，它是一个输入字段，用户可以输入步骤 3 中兼容 DoH 的 DNS 解析器的 IP 地址。对于 Cl…

京东云郭理靖：我对云服务的一些看法
type: item
date: 2019-07-30T17:53:00+08:00
description: 本期人物介绍：郭理靖，京东云产品研发部高级总监、产品委员会主席，专注于公有云服务、Docker、API 与数据开放平台、数据库服务等领域。擅长数据库、分布式存储系统、高可用服务架构等技术。在任职期间，郭理靖研发上线了 MySQL、SQL Server、MongoDB、PostgerSQL、MariaDB、Percona、JDW（数据仓库）、DRDS（分布式数据库服务）、时序数据库、TiDB、BDS（区块链 BI 数据分析服务）等多款京东云产品 。京东云不仅是国内第一家支持 MySQL 8.0 的云厂商，也是国内第一家支持 MariaDB 的云厂商，而区块链 BI 数据分析服务也是可以代表全球区块链先进技术的创新产品，聚合了业界知名项目的核心数据，目前 BDS 已经对外开源。前言盛夏，在一家幽静的咖啡馆，我见到了匆匆赶来的郭理靖。我们深入谈了关于云计算、关于数据库方面的一些话题。我将这些谈话中的精彩内容整理出来，以飨读者。与京东云共同成长的人在谈话中，我了解到，郭理靖在京东的工作历程是伴随着京东云的发展一路走过来的。从 2006 年到现在，郭理靖一直专注于云计算领域。从 2013 年京东云作为内部的基础设施云服务开始，他亲历了京东云从内部自用到正式商用的多个阶段的发展。作为核心人员之一，郭理靖又在其中扮演了什么样的角色呢？“其实我有两层角色，”郭理靖说到，“第一层，我负责数据库相关的服务，包括 RDS、数据仓库，现在京东云还推出了时序数据库、分布式数据库等，把京东技术体系内部的各种数据库的技术拿出来。另外，我还在京东云产品委员会，负责对京东云产品进行中长期规划， 评审产品开发可行性与必要性，规范产品上线流程，跟踪竞品动态与对标，统一产品培训资料，推进内、外部培训认证机制，精心打造京东云产品。”谈到这里，我发现一个现象，根据我的了解，包括京东云在内的很多公有云服务商的产品负责人都是出身于一线技术岗位。之前也有人跟我说，“为什么云服务行业是技术人员来担任产品经理，这是因为云计算服务就是技术性的产品，不懂技术的没法制定和设计这样的产品出来。”郭理靖表示：“这种说法是比较有道理的，因为整个云计算的产品主要是给技术人员使用，要求产品经理有很强的技术功底、技术视野以及技术敏感度，不是技术背景出身的产品经理，难于理解用户诉求，很多细节没法把握。比如做时序数据库，到底是做成什么样的时序数据库，提供什么样的功能，只有做过技术支撑的产品经理，才能理解要什么样的产品和什么样的用户体验。”从私有云到公有云最初，京东云只是作为内部基础设施服务，那时候京东云的人手也比较少，最初采用的技术是 OpenStack 技术栈，从 2014 年开始全部转向了 Docker 容器技术。那个时候，京东已经把统一监控、部署、代码管理、日志服务这些技术部分都已经建设完备了，但是还缺乏一个核心的运行环境，而其时崛起的容器技术正好填补了这个空白。这个技术体系一直发展到现在。到 2016 年， 京东云平台经历内部历练和打磨后，已经有了大规模的对外开放的技术基础了。在基础架构细节梳理的比较清晰、底层的基础设施服务和中间件服务都逐渐成熟、内部的使用和运营非常顺畅之后，当时决定，可以对外做公有云了。当然，做公有云和私有云的难度不是一个量级的，私有云很多事情都是在掌控范围之内，而做公有云要改造的东西特别多的。这包括网络管控、存储结构改造等几大的难点。 然而，京东云以后来者居上的节奏，从决定要对外开放，到真正的对外开往，仅用了几个月的时间，在 2016 年的 4 月 1 号正式对外开放公有云服务。在京东云的公有云服务上线之后，逐渐往上增加各种产品和服务。产品从 20 多款已丰富至现在的 220 多款。云计算从最初一个概念的提出，到后来发展为公有云、私有云、混合云等不同的形态，关于到底哪种云服务形态才是未来，人们也有不同的看法。不过从当前阶段看起来，主流的认识是，在认可公有云的基础上，企业希望有一种“私有化”的公有云服务。那么如何看待公有云、私有云以及接下来的发展呢？郭理靖说：“这个事情我们分两方面看，一方面就是看现状，另外一方面看接下去的发展。”“当前的云服务的现状是公有云、私有云、混合云并存，而且这个阶段可能会比较长。……京东也在做私有云服务，……我们称之为 JDStack 专有云，专业服务中大型企业以及政务云 。JDStack 既能把京东云所有的能力集成起来，而又提供灵活选配的功能，除了核心的几个组件，如 SDN、RDS 等必需的产品之外，其他产品都可以选配，用户可以将京东云的能力复制一份带回家，这个产品目前的市场前景也非常好。”，同样，对于混合云，“我们可以提供的 VPN 以及专线接入，打通用户的私有云与我们的公有云，我们有完整的混合云方案，京东云的很多客户也是采用混合云的模式。”至…

使用 pandoc 将 Markdown 转换为格式化文档
type: item
date: 2019-07-29T19:34:22+08:00
description: 生活在普通文本世界么？以下是无需使用文字处理器而创建别人要的格式化文档的方法。如果你生活在普通文本世界里，总会有人要求你提供格式化文档。我就经常遇到这个问题，特别是在 Day JobTM。虽然我已经给与我合作的开发团队之一介绍了用于撰写和审阅发行说明的 Docs Like Code 工作流程，但是还有少数人对 GitHub 和使用 Markdown 没有兴趣，他们更喜欢为特定的专有应用格式化的文档。好消息是，你不会被卡在将未格式化的文本复制粘贴到文字处理器的问题当中。使用 pandoc，你可以快速地给人们他们想要的东西。让我们看看如何使用 pandoc 将文档从 Markdown 转换为 Linux 中的文字处理器格式。请注意，pandoc 也可用于从两种 BSD（NetBSD 和 FreeBSD）到 Chrome OS、MacOS 和 Windows 等的各种操作系统。基本转换首先，在你的计算机上安装 pandoc。然后，打开控制台终端窗口，并导航到包含要转换的文件的目录。输入此命令以创建 ODT 文件（可以使用 LibreOffice Writer 或 AbiWord 等字处理器打开）：pandoc -t odt filename.md -o filename.odt记得用实际文件名称替换 filename。如果你需要为其他文字处理器（你知道我的意思）创建一个文件，替换命令行的 odt 为 docx。以下是本文转换为 ODT 文件时的内容：这些转换结果虽然可用，但有点乏味。让我们看看如何为转换后的文档添加更多样式。带样式转换pandoc 有一个漂亮的功能，使你可以在将带标记的纯文本文件转换为字处理器格式时指定样式模板。在此文件中，你可以编辑文档中的少量样式，包括控制段落、文章标题和副标题、段落标题、说明、基本的表格和超链接的样式。让我们来看看能做什么。创建模板要设置文档样式，你不能只是使用任何一个模板就行。你需要生成 pandoc 称之为引用模板的文件，这是将文本文件转换为文字处理器文档时使用的模板。要创建此文件，请在终端窗口中键入以下内容：pandoc -o custom-reference.odt --print-default-data-file reference.odt此命令创建一个名为 custom-reference.odt 的文件。如果你正在使用其他文字处理程序，请将命令行中的 “odt” 更改为 “docx”。在 LibreOffice Writer 中打开模板文件，然后按 F11 打开 LibreOffice Writer 的 “样式” 窗格。虽然 pandoc 手册建议不要对该文件进行其他更改，但我会在必要时更改页面大小并添加页眉和页脚。使用模板那么，你要如何使用刚刚创建的模板？有两种方法可以做到这一点。最简单的方法是将模板放在家目录的 .pandoc 文件夹中，如果该文件夹不存在，则必须先创建该文件夹。当转换文档时，pandoc 会使用此模板文件。如果你需要多个模板，请参阅下一节了解如何从多个模板中进行选择。使用模板的另一种方法是在命令行键入以下转换选项：pandoc -t odt file-name.md --reference-doc=path-to-your-file/reference.odt -o file-name.odt如果你想知道使用自定义模板转换后的文件是什么样的，这是一个示例：选择模板很多人只需要一个 pandoc 模板，但是，有些人需要不止一个。例如，在我的日常工作中，我使用了几个模板：一个带有 DRAFT 水印，一个带有表示内部使用的水印，另一个用于文档的最终版本。每种类型的文档都需要不同的模板。如果你有类似的需求，可以像使用单个模板一样创建文件 custom-reference.odt，将生成的文件重命名为例如 custom-reference-draft.odt 这样的名字，然后在 LibreOffice Writer 中打开它并修改样式。对你需要的每个模板重复此过程。接下来，将文件复制到家目录中。如果你愿意，你甚至可以将它们放在 .pandoc 文件夹中。要在转换时选择特定模板，你需要在终端中运行此命令：pandoc -t odt file-name.md --reference-doc=path-to-your-file/custom-template.odt -o file-name.odt改变 custom-template.odt 为你的模板文件名。结语为了不用记住我不经常使用的一组选项，我拼凑了一些简单的、非常蹩脚的单行脚本，这些脚本封装了每个模板的选项。例如，我运行脚本 todraft.sh 以使用带有 DRAFT 水印的模板创建文字处理器文档。你可能也想要…

精通 Linux 的 ls 命令
type: item
date: 2019-07-29T18:58:33+08:00
description: Linux 的 ls 命令拥有数量惊人的选项，可以提供有关文件的重要信息。ls 命令可以列出一个 POSIX 系统上的文件。这是一个简单的命令，但它经常被低估，不是它能做什么（因为它确实只做了一件事），而是你该如何优化对它的使用。要知道在最重要的 10 个终端命令中，这个简单的 ls 命令可以排进前三，因为 ls 不会只是列出文件，它还会告诉你有关它们的重要信息。它会告诉你诸如拥有文件或目录的人、每个文件修改的时间、甚至是什么类型的文件。它的附带功能能让你了解你在哪里、附近有些什么，以及你可以用它们做什么。如果你对 ls 的体验仅限于你的发行版在 .bashrc 中的别名，那么你可能错失了它。GNU 还是 BSD？在了解 ls 的隐藏能力之前，你必须确定你正在运行哪个 ls 命令。有两个最流行的版本：包含在 GNU coreutils 包中的 GNU 版本，以及 BSD 版本。如果你正在运行 Linux，那么你很可能已经安装了 GNU 版本的 ls（LCTT 译注：几乎可以完全确定）。如果你正在运行 BSD 或 MacOS，那么你有的是 BSD 版本。本文会介绍它们的不同之处。你可以使用 --version 选项找出你计算机上的版本：$ ls --version如果它返回有关 GNU coreutils 的信息，那么你拥有的是 GNU 版本。如果它返回一个错误，你可能正在运行的是 BSD 版本（运行 man ls | head 以确定）。你还应该调查你的发行版可能具有哪些预设选项。终端命令的自定义通常放在 $HOME/.bashrc 或 $HOME/.bash_aliases 或 $HOME/.profile 中，它们是通过将 ls 别名化为更复杂的 ls 命令来完成的。例如：alias ls='ls --color'发行版提供的预设非常有用，但它们确实很难分辨出哪些是 ls 本身的特性，哪些是它的附加选项提供的。你要是想要运行 ls 命令本身而不是它的别名，你可以用反斜杠“转义”命令：$ \ls分类单独运行 ls 会以适合你终端的列数列出文件：$ ls ~/example bunko jdk-10.0.2 chapterize otf2ttf.ff despacer overtar.sh estimate.sh pandoc-2.7.1 fop-2.3 safe_yaml games tt这是有用的信息，但所有这些文件看起来基本相同，没有方便的图标来快速表示出哪个是目录、文本文件或图像等等。使用 -F（或 GNU 上的长选项 --classify）以在每个条目之后显示标识文件类型的指示符：$ ls ~/example bunko jdk-10.0.2/ chapterize* otf2ttf.ff* despacer* overtar.sh* estimate.sh pandoc@ fop-2.3/ pandoc-2.7.1/ games/ tt*使用此选项，终端中列出的项目使用简写符号来按文件类型分类：斜杠（/）表示目录（或“文件夹”）。星号（*）表示可执行文件。这包括二进制文件（编译代码）以及脚本（具有可执行权限的文本文件）。符号（@）表示符号链接（或“别名”）。等号（=）表示套接字。在 BSD 上，百分号（%）表示 涂改 whiteout （某些文件系统上的文件删除方法）。在 GNU 上，尖括号（>）表示 门 door （Illumos 和 Solaris上的进程间通信）。竖线（|）表示 FIFO) 管道。 这个选项的一个更简单的版本是 -p，它只区分文件和目录。（LCTT 译注：在支持彩色的终端上，使用 --color 选项可以以不同的颜色来区分文件类型，但要注意如果将输出导入到管道中，则颜色消失。）长列表从 ls 获取“长列表”的做法是如此常见，以至于许多发行版将 ll 别名为 ls -l。长列表提供了许多重要的文件属性，例如权限、拥有每个文件的用户、文件所属的组、文件大小（以字节为单位）以及文件上次更改的日期：$ ls -l -rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh -rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial -rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz -rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito -rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh [...]如果你不想以字节为单位，请添加 …

获取有关 Linux shell 内置命令的帮助
type: item
date: 2019-07-29T04:49:35+08:00
description: Linux 内置命令属于用户 shell 的一部分，本文将告诉你如何识别它们并获取使用它们的帮助。Linux 内置命令是内置于 shell 中的命令，很像内置于墙中的书架。与标准 Linux 命令存储在 /usr/bin 中的方式不同，你不会找到它们的独立文件，你可能使用过相当多的内置命令，但你不会感觉到它们与 ls 和 pwd 等命令有何不同。内置命令与其他 Linux 命令一样使用，它们可能要比不属于 shell 的类似命令运行得快一些。Bash 内置命令包括 alias、export 和 bg 等。正如你担心的那样，因为内置命令是特定于 shell 的，所以它们不会提供手册页。使用 man 来查看 bg，你会看到这样的东西：$ man bg No manual entry for bg判断内置命令的另一个提示是当你使用 which 命令来识别命令的来源时，Bash 不会响应，表示没有与内置命令关联的文件：$ which bg $另一方面，如果你的 shell 是 /bin/zsh，你可能会得到一个更有启发性的响应：% which bg bg: shell built-in commandbash 提供了额外的帮助信息，但它是通过使用 help 命令实现的：$ help bg bg: bg [job_spec ...] Move jobs to the background. Place the jobs identified by each JOB_SPEC in the background, as if they had been started with `&'. If JOB_SPEC is not present, the shell's notion of the current job is used. Exit Status: Returns success unless job control is not enabled or an error occurs.如果你想要查看 bash 提供的所有内置命令的列表，使用 compgen -b 命令。通过管道将命令输出到列中，以获得较好格式的清单。$ compgen -b | column . compgen exit let return typeset : complete export local set ulimit [ compopt false logout shift umask alias continue fc mapfile shopt unalias bg declare fg popd source unset bind dirs getopts printf suspend wait break disown hash pushd test builtin echo help pwd times caller enable history read trap cd eval jobs readarray true command exec kill readonly type如果你使用 help 命令，你将看到一个内置命令列表以及简短描述。但是，这个列表被截断了（以 help 命令结尾）：$ help GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu) These shell commands are defined internally. Type `help' to see this list. Type `help name' to find out more about the function `name'. Use `info bash' to find out more about the shell in general. Use `man -k' or `info' to find out more about commands not in this list. A star (*) next to a name means that the command is disabled. job_spec [&] history [-c] [-d offset] [n] or histo> (( expression )) if COMMANDS; then COMMANDS; [ elif CO> . filename [arguments] jobs [-lnprs] [jobspec ...] or jobs -> : kill [-s sigspec | -n signum | -sigsp> [ arg... ] let arg [arg ...…

在 Linux 中不使用 useradd 命令如何创建用户账号
type: item
date: 2019-07-29T04:07:45+08:00
description: Linux 中有三个命令可以用来创建用户账号。你尝试过在 Linux 中手动创建用户吗？我的意思是不使用上面说的三个命令。如果你不知道怎么做，本文可以手把手教你，并向你展示细节部分。你可能想，这怎么可能？别担心，正如我们多次提到的那样，在 Linux 上任何事都可以搞定。这只是其中一例。是的，我们可以做到的。想了解更多吗？在 Linux 中创建用户的三种方法在 Linux 中批量创建用户的两种方法话不多说，让我们开始吧。首先，我们要找出最后创建的 UID 和 GID 信息。 掌握了这些信息之后，就可以继续下一步。# cat /etc/passwd | tail -1 tuser1:x:1153:1154:Test User:/home/tuser1:/bin/bash根据以上输出，最后创建的用户 UID 是 1153，GID 是 1154。为了试验，我们将在系统中添加 tuser2 用户。现在，在/etc/passwd 文件中添加一条用户信息。 总共七个字段，你需要添加一些必要信息。+-----------------------------------------------------------------------+ |username:password:UID:GID:Comments:User Home Directory:User Login Shell| +-----------------------------------------------------------------------+ | | | | | | | 1 2 3 4 5 6 7用户名：这个字段表示用户名称。字符长度必须在 1 到 32 之间。密码（x）：表示存储在 /etc/shadow 文件中的加密密码。用户 ID：表示用户的 ID（UID），每个用户都有独一无二的 UID。UID 0 保留给 root 用户，UID 1-99 保留给系统用户，UID 100-999 保留给系统账号/组。组 ID：表示用户组的 ID（GID），每个用户组都有独一无二的 GID，存储在 /etc/group 文件中。注释/用户 ID 信息：这个字段表示备注，用于描述用户信息。主目录（/home/$USER）：表示用户的主目录。shell（/bin/bash）：表示用户使用的 shell。在文件最后添加用户信息。# vi /etc/passwd tuser2:x:1154:1155:Test User2:/home/tuser2:/bin/bash你需要创建相同名字的用户组。同样地，在 /etc/group 文件中添加用户组信息。# vi /etc/group tuser2:x:1155:做完以上两步之后，给用户设置一个密码。# passwd tuser2 Changing password for user tuser2. New password: Retype new password: passwd: all authentication tokens updated successfully.最后，试着登录新创建的用户。# ssh [email protected] [email protected]'s password: Creating directory '/home/tuser2'. $ls -la total 16 drwx------. 2 tuser2 tuser2 59 Jun 17 09:46 . drwxr-xr-x. 15 root root 4096 Jun 17 09:46 .. -rw-------. 1 tuser2 tuser2 18 Jun 17 09:46 .bash_logout -rw-------. 1 tuser2 tuser2 193 Jun 17 09:46 .bash_profile -rw-------. 1 tuser2 tuser2 231 Jun 17 09:46 .bashrcvia: https://www.2daygeek.com/linux-user-account-creation-in-manual-method/作者：Magesh Maruthamuthu 选题：lujun9972 译者：hello-wn 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出