Bill Dyer 发布的文章

和我一起重温怀旧时光,回顾我使用 DG/UX UNIX 操作系统和数据通用公司的 AViiON 工作站和服务器的经历。

我尝试寻找一些我以前使用过的旧操作系统 DG/UX 的信息。遗憾的是,关于它的信息已经不多了。这个小型操作系统深得我心,虽然我知道我的经历不会改写历史,但我还是愿意记录下我与之相关的经验,传承历史。

这款 Unix 操作系统 数据通用公司 Data General 开发,主要服务于 Eclipse MV 迷你计算机系列以及随后的 AViiON 工作站和服务器。我并未在 Eclipse 系统上工作过,我的工作主要在 AViiON 系统上进行。这些系统坚固得就像坦克,使用起来也异常简洁。

Data General AV/4000 | Picture copyright WolfeDen.org

操作系统概述

我在 1990 年代中期开始接触 DG/UX,当时它已经存在了一段时间。DG/UX 1 在 1985 年 3 月发布,是基于 UNIX System V Release 2,且融入了 4.1BSD 的优秀特性构建的。几年后,DG/UX 3.10 就添加了 TCP/IP 网络、NFSX Window System。记得 CDE 吗?

CDE (Common Desktop Environment)

DG/UX 4 在 1988 年发布(这个“4”在后面让我非常困扰...),此版本是系统的一次重大设计革新,基于 System V Release 3。同时,其文件系统可以通过逻辑磁盘设施跨越多个磁盘。

DG/UX 5.4 版本的改变非常有意义,这也是我开始使用的版本。这个版本将传统的 Unix 文件缓冲区缓存替换为了统一的、按需分页的虚拟内存管理。

该操作系统比其他一些 Unix 变体更强大,例如,它内置了完整的 C) 语言编译器。我们同时还有一支 COBOL 程序员团队,不过我记得 COBOL 是作为插件使用的。现在,虽然大家都觉得 C 语言编译器是理所当然的存在,但在那个时代,它是一份无比珍贵的礼物。我编写过许多为管理任务服务的脚本,同时我还为特定的工作需求编写了几个 C 程序。

这款操作系统体积小巧,简单易用。System V 和加入的 BSD 工具是完美的结合,可以说,这是最优秀的两全其美的产物。不论是安装还是升级,都非常的简便,并且对内存或者处理器资源的需求也非常低。

内置在系统中的 卷管理器 简单但功能强大。基本上所有的磁盘管理都可以在线上完成,无需将文件系统切换为离线状态。在一个保险/风险管理工作环境中,这一特性是非常重要的。我们可以扩容、迁移、进行镜像或者缩容,这些功能也可以对交换区进行操作,在不中断系统运行的条件下原地迁移磁盘存储。

机器

我曾接触过的 AViiON 机器分两种类型:一种是 AV300 pizza box 工作站,另一种是配有 CLARiiON 磁盘阵列的 AV9500 服务器。

Data General AViiON AV/300D came in Pizza Box style | Picture Credit Pizza Box Computer

在 AViiON 中,DG/UX 支持使用 多处理器。在一个保险/风险管理工作环境中,这是一项很大的优势,因为并不是所有的 Unix 包都支持这个功能。此外,DG/UX 还能无缝地与 CLARiiON 阵列配合工作。

有了像 CLARiiON 这样的 RAID,为特定账户配置空间非常容易。但一个以前的管理员在创造账户时总是会选择“使用第一个可用空间”。很快我们碰到了一些问题,比如:一个单独的查询就会点亮全部 125 个磁盘上的指示灯 —— 一个账户的数据分布着整个阵列设备。

By Michael Moll - photo taken by Michael Moll, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=512844

当我成为主管理员后,我就着手修复这个问题,把一个阵列指定给一些较大的帐户,小帐户分组到两个阵列上。整个修复过程花了我一个星期的晚班时间,但是 DG/UX 让重排文件到指定阵列的整个过程变得异常轻松。

RAID 本身也异常稳定。在某个时期,我们使用过 IBM 1GB 的磁盘。这些硬盘的内部机构有时候会卡住,能让它们回复正常工作的唯一方法就是把他们取出来,在地板上像旋转陀螺那样旋转(没错,我是认真的!)。偶尔,磁盘可能彻底报废,无法再转动。现在,RAID 会在阵列内复制每个磁盘的数据,因此数据仍旧存在,尽管效率将受到影响。有一次,我不得不从另一台计算机上“借用”一个磁盘,让一个阵列能够维持运行,直到我们得到替代品。当天,CLARiiON 的表现极为出色,我们并不想再继续这样冒险,因此我们决定替换所有磁盘,而 DG/UX 的备份/恢复工具使这项工作毫无障碍的进行。

技术支持

关于技术支持并没有太多可以讲的,因为它真的很棒。我从未在技术支持上遇到过问题,每个问题都得到了礼貌、准确的回答,如今这点已经很少见了。

你还记得我前面提到的那个“4”吗?就是那个后来让我感到困扰的数字?我曾经因此而拨打技术支持电话。在 1995 年,我收到了操作系统升级的磁带,但我们那时正在运行的是 5.4 版本。我见到 4.10 版本的磁带时非常惊讶,我原以为这是个错误,我被寄给了错误的磁带,我并不想将系统降级。

事实证明,我收到的是正确的磁带。那个“4”是为了向 System V Release 4 版本致敬。我有时还会觉得这很奇怪 — 升级一个操作系统,却让版本号降低。下面是一些版本的列表说明:

  1. DG/UX 5.4 - 3.00 - 1994 年 1 月
  2. DG/UX 5.4 - 3.10 - 1994 年 7 月
  3. DG/UX 5.4 - 4.00 - 1995 年 1 月
  4. DG/UX - 4.10 - 1995 年 8 月
  5. DG/UX - 4.11 - 1995 年 12 月

DG/UX 和 AViiON 的结束

我在 1995 年底离开了这个岗位,但听说在世纪之交 EMC 收购了数据通用公司,以便能够获得 CLARiiON 阵列和软件。考虑到 CLARiiON 的稳定性,这个决定我认为是理解的。据我记得,EMC 在收购后的几年内还在支持 DG/UX 操作系统和 AViiON,然后就停止支持了。我内心希望他们能一直保留这个操作系统,但那个时候,Unix 世界已经被像 IBMSun MicrosystemsHP 这些大公司主导,同时还有像 Linux 这样的新兴力量在逐渐崭露头角。

数据通用公司和 DG/UX 无疑是拥有一段美好历史的。它们的卓越支持和操作系统是今天绝难比拟的。我特别喜欢那个操作系统,它也是一款绝对值得被铭记的操作系统。

(题图:DA/e651f994-3695-4bfd-89cc-c6b7b1ad0309)


via: https://itsfoss.com/dg-ux-os/

作者:Bill Dyer 选题:lujun9972 译者:ChatGPT 校对:wxy

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

你会在 Linux 讨论中听到 Compiz 这个词。在此简要介绍一下 Compiz。

今天,我们听到人们谈论 “发行版快闪”。我们中的一些人可能对此深有感触。尝试具有新功能的新 Linux 发行版是很难抗拒的。即使我也不能幸免,我有几台笔记本电脑,我经常在上面尝试新的操作系统(如果我怀旧的话,可以尝试旧的操作系统)。

但曾经有一段时间,发行版快闪并不常见,因为在 Linux 诞生之初,发行版较少。我们许多早期用户所做的就是使用不同的窗口管理器。

compiz - magic lamp effect - Courtesy of Wikimedia

Compiz 是这些窗口管理器之一,于 2006 年发布。它是 X Window 系统 最古老的合成窗口管理器之一,在当时相当先进。窗口管理器不再像以前那样流行,但 Compiz 仍然在维护中,仍然具有出色的性能和大量的功能。

Compiz 是什么?

Compiz 是一个开源 X 窗口管理器,可实现高级视觉效果和桌面增强。它提供了广泛的功能,包括窗口管理、窗口装饰、桌面效果、动画等等,并以可加载插件的形式实现。Compiz 可以用作大多数其他桌面的默认窗口管理器和合成器的直接替代品。

compiz - burn effect - Courtesy of Wikimedia

Compiz 的历史

在其早期阶段,Compiz 专门与 Xgl 支持的 3D 硬件一起运行。与 Xgl 一起使用时,大多数 英伟达ATI) 显卡与 Compiz 兼容。从 2006 年 5 月 22 日开始,Compiz 通过利用 AIGLX 与标准 X.Org 服务器 兼容。

在 2000 年代初期,ATI英伟达 驱动程序在 Linux 上变得越来越流行,这使得先进的 OpenGL 开发能够扩展到昂贵的 UNIX 工作站之外。大约在同一时间,Xgl、Xegl 和 AIGLX 使 Xorg 能够利用 OpenGL 进行窗口转换和效果。

Compiz 于 2006 年 2 月由 NovellSUSE)作为自由软件推出,成为 X 的早期合成窗口管理器之一。到 2006 年 3 月,红帽 将 Compiz 移植到了 AIGLX。

对 Compiz 的早期评论大多是正面的,称赞其性能、视觉吸引力和创新性。同时开发的还有 Metisse 和 Project Looking Glass 等项目,但没有一个项目获得了与 Compiz 相同的认可或广泛采用。后来,合成效果也被集成到窗口管理器中,例如 GNOME ShellKWin

Wayland 于 2010 年左右出现,将合成器和图形服务器的功能合并到一个程序中,从而使单独的窗口管理器和合成器变得过时。因此,Compiz 不再被广泛使用,但这并不意味着它的时代已经结束。继续包含 Compiz 的发行版通常只启用一些实用的插件,同时禁用更多视觉上奢侈的插件。此外,发行版越来越多地将 KDEGNOME 与其默认窗口管理器结合在一起。最后一个以 Compiz 作为 Unity 桌面管理器的 Ubuntu 版本是 Ubuntu 16.04,此后其开发基本陷入停滞。

Compiz 仍然得到维护,有两个现有版本:Compiz 0.9 和 Compiz 0.8。Compiz 0.9 是用 C++ 重写的,而 Compiz 0.8 继续使用原始 C 版本。Ubuntu 维护和开发 Compiz 0.9,而 Debian 中的软件包是 Compiz 0.8 “Reloaded”。两个版本都很相似,但区别在于插件支持的级别,因为 0.9 重写版不得不排除了某些功能。Compiz 0.8 被认为更快、更稳定。

总结

我在使用时,Compiz 的所有功能和效果确实让我付出了很多时间。我记得我花费了大量的时间以独特的方式改造我的工作空间。然而,随着时间的推移,我发现自己花越来越多的时间在 Compiz 上修修补补,而不是专注于我的工作。虽然其视觉奇观的吸引力是不可否认的,但它也成为了分散注意力的来源:我摆弄 Compiz 的次数越多,我未完成的任务就越长。最终,我不得不更换窗口管理器才能完成工作。

对我来说,Compiz 在桌面环境的历史上占有特殊的地位。这证明了其开发人员和社区的独创性,将技术推向了极限。

如果你想了解 Compiz 的一些功能,请观看以下视频:Compiz Fusion:快速演示。对于“旧代码”来说,它确实可以做很多事情并且有点领先。

顺便说一句,如果你对复古的东西感兴趣,我写了几篇文章来带你回忆起来。

我想你会喜欢它们的。

怀旧 Coherent 操作系统
在现代 Linux 发行版上体验 CDE

via: https://itsfoss.com/compiz/

作者:Bill Dyer 选题:lkxed 译者:geekpi 校对:校对者ID

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

LUKS 是 Linux 用户中流行的磁盘加密机制。在这篇术语解析文章中,可以了解更多关于 LUKS 的信息。

计算机安全旨在保护私密信息。有许多方法可以保护系统。一些用户使用简单的用户名/密码登录方案进行基本保护。其他用户可能会通过加密以不同的方式增加额外的保护,如使用 VPN 和磁盘加密。

如果你的计算机上有敏感的客户数据(你可能在经营一家企业),或被视为知识产权的材料,或者你对隐私非常谨慎,你可能要考虑磁盘加密。

磁盘加密的一些好处包括:

  • 保护系统免受黑客的攻击
  • 防止数据泄露
  • 保护你免受潜在的责任问题

磁盘加密软件可以防止台式机硬盘驱动器、便携式 USB 存储设备或笔记本电脑被访问,除非用户输入正确的身份验证数据。如果你的笔记本电脑丢失或被盗,加密会保护磁盘上的数据。

如今,新的 Windows 系统默认配备了 BitLocker 加密。在 Linux 上,LUKS 是最常用的磁盘加密方式。

想知道什么是 LUKS?我会为你简要介绍这个主题。

技术术语

在继续之前,需要定义一些术语。LUKS 有很多内容,因此将其拆解为细项将有助于你进一步了解。

Volume :卷是一个逻辑存储区域,可用于存储数据。在磁盘加密的场景中卷指的是已加密以保护其内容的磁盘部分。

参数 Parameters :参数是控制加密算法运行方式的设置。参数可能包括所使用的加密算法、密钥大小以及有关如何执行加密的其他详细信息。

加密类型 Cipher type **:它是指用于加密的数学算法。它指的是用于保护加密卷上数据的具体加密算法。

密钥大小Key size:密钥大小是衡量加密算法强度的指标:密钥大小越大,加密强度越高。通常以位数表示,例如 128 位加密或 256 位加密。

头部 Header :头部是加密卷开头的特殊区域,包含有关加密的信息,例如所使用的加密算法和加密密钥。

下一个定义对于新手来说可能有些棘手,但了解它还是很重要的,尤其在处理 LUKS 时,这会非常有用。

容器 Container :容器是一个特殊的文件,类似于虚拟加密卷。它可以用于存储加密数据,就像加密分区一样。不同之处在于容器是一个文件,可以存储在未加密的分区上,而加密分区是整个磁盘的一部分,已经完全加密。因此,容器是 充当虚拟加密卷的文件

LUKS 是什么以及它能做什么?

LUKS( Linux 统一密钥设置 Linux Unified Key Setup )是由 Clemens Fruhwirth 在 2004 年创建的磁盘加密规范,最初用于 Linux。它是一种知名的、安全的、高性能的磁盘加密方法,基于改进版本的 cryptsetup,使用 dm-crypt 作为磁盘加密后端。LUKS 也是网络附加存储(NAS)设备中常用的加密格式。

LUKS 还可以用于创建和运行加密容器。加密容器具有与 LUKS 全盘加密相同的保护级别。LUKS 还提供多种加密算法、多种加密模式和多种哈希函数,有 40 多种可能的组合。

LUKS 结构示意图

任何文件系统都可以进行加密,包括交换分区。加密卷的开头有一个未加密的头部,它允许存储多达 8 个(LUKS1)或 32 个(LUKS2)加密密钥,以及诸如密码类型和密钥大小之类的加密参数。

这个头部的存在是 LUKS 和 dm-crypt 的一个重要区别,因为头部允许使用多个不同的密钥短语,并能轻松更改和删除它们。然而,值得提醒的是,如果头部丢失或损坏,设备将无法解密。

LUKS 有两个版本,LUKS2 具有更强的头部损坏抗击性,并默认使用 Argon2 加密算法(LUKS1 使用 PBKDF2)。在某些情况下,可以在两个版本之间进行转换,但是 LUKS1 可能不支持某些功能。

希望了解更多信息?

希望本文有助于你对 LUKS 和加密有一些了解。关于使用 LUKS 创建和使用加密分区的确切步骤会因个人需求而异,因此我不会在此处涵盖安装和设置方面的内容。

如果你想要一份指南来帮助你设置 LUKS,可以在这篇文章中找到一个很好的指南:《使用 LUKS 对 Linux 分区进行基本加密指南》。如果你对此还不熟悉,并且想要尝试使用 LUKS,可以在虚拟机或闲置计算机上进行安全学习,以了解其工作原理。

(题图:MJ/2c6b83e6-4bcb-4ce3-a49f-3cb38caad7d2)


via: https://itsfoss.com/luks/

作者:Bill Dyer 选题:lkxed 译者:ChatGPT 校对:wxy

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

对于什么是 systemd,以及为什么它经常成为 Linux 世界争议的焦点,你可能仍然感到困惑。我将尝试用简单的语言来回答。

在 Linux 世界中,很少有争议能像传统的 System V 初始化 系统(通常称为 SysVinit)和较新的 systemd 之间的斗争那样引起如此大的争议。

在这篇文章中,我将简要讨论什么是 systemd、它相对于传统初始化系统有哪些优点和缺点以及为什么它会引起争议。

什么是 systemd?

systemd 是一个系统和服务管理器,于 2010 年首次推出,用于取代传统的 System V 初始化系统。它旨在提高启动速度并更有效地管理系统服务。如今,systemd 是许多流行 Linux 发行版的默认初始化系统,包括 Ubuntu、Fedora 和 Red Hat Enterprise Linux(RHEL)。

systemd 是守护进程吗?

尽管名字中带有 “d”,但 systemd 并不是一个守护进程。相反,它是一个为 Linux 提供许多系统组件的软件套件。其目标是标准化 Linux 发行版的服务配置和行为。

systemd 的主要组件是一个“系统和服务管理器”,它充当初始化系统来引导用户空间并管理用户进程。它还提供了各种守护程序和实用程序的替代品,从设备和登录管理到网络连接管理和事件记录。

systemd 的主要特性

systemd 具有许多功能,例如它能够主动并行化操作、方便按需启动守护进程、使用 Linux 控制组监视进程、管理挂载点和自动挂载点,以及实现复杂的基于事务依赖的服务控制逻辑。

此外,systemd 支持 SysV 和 LSB 初始化脚本,作为 SysVinit 的替代品。它还提供了一个日志守护进程和用于管理基本系统配置的工具程序。

systemd on fedora - Courtesy of Wikimedia

systemd 与 SysVinit:争议

SysVinit 与 systemd 争论的核心围绕如何最好地管理基于 Linux 的系统。关注的范围从复杂性和兼容性到管理系统服务的最佳方式,涉及系统管理员和 Linux 爱好者面临的基本问题。

批评者认为 systemd 过于复杂和巨大化,使得故障排除变得更加困难。他们担心单点故障,因为所有服务都由一个守护进程管理,并且担心与 Linux 内核的紧密集成,这可能会限制向其他系统的可移植性。

这就是为什么有些人创建 脱离 systemd 的发行版 的原因。

然而,支持者称赞 systemd 提供了一种更高效、更现代的系统管理方法,其服务启动的并行性和守护进程的按需启动减少了启动时间并提高了系统响应能力。他们还赞扬其先进的日志记录功能。

尽管存在争议,systemd 已成为许多 Linux 发行版的默认初始化系统,系统管理员和开发人员已经开始欣赏它的高级特性和功能。

systemd 与 SysVinit 的优点和缺点

优点:

SysVinit 的优点systemd 的优点
简单且熟悉提高启动速度
尊重 Unix 哲学标准化日志系统
更直接地控制系统服务一致的服务管理方法
系统成熟稳定与现代 Linux 系统和应用程序的兼容性
与遗留系统和应用的兼容性来自大型开发者和贡献者社区的积极开发和支持

缺点:

SysVinit 的缺点systemd 的缺点
与新的初始化系统相比功能有限复杂性和陡峭的学习曲线
缺乏对服务并行启动的内置支持有侵入性,可能会破坏与传统 Unix 工具和程序的兼容性
可能比新的初始化系统效率低,尤其是在大型系统上某些系统可能会出现不稳定和崩溃的情况
对现代 Linux 系统和应用的有限支持与尚未支持 systemd 的遗留系统和应用的兼容性有限

总结:个人观点

作为一名来自 UNIX 早期的 Linux 用户,我更倾向于传统的初始化系统。然而,尽管我最初有所抵触,但我已经开始接受 systemd,并看到了它的一些好处。每个系统在 Linux 世界中都有自己的位置,了解这两个系统非常重要。

关于 systemd 的争论仍在继续。你对此有何看法?

(题图:MJ/efce857c-2d1a-4bf0-a400-8eb60e9f3271)


via: https://itsfoss.com/systemd-init/

作者:Bill Dyer 选题:lkxed 译者:geekpi 校对:wxy

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

在之前的一篇文章中,我介绍了使用 pandoc 将少量 Markdown 文件 批量转换 为 HTML 的过程。在那篇文章中,我创建了多个 HTML 文件,但 Pandoc 可以做的更多。它被称为文档转换的“瑞士军刀” —— 这是有充分理由的。很少有它做不到的事情。

Pandoc 可以将 .docx、.odt、.html、.epub、LaTeX、DocBook 等格式互相转换,或者转换为其他格式,例如 JATS、TEI Simple、AsciiDoc 等。

是的,这意味着 Pandoc 可以将 .docx 文件转换为 .pdf 和 .html 文件,但你可能会想:“Word 也可以将文件导出为 .pdf 和 .html。为什么我需要 Pandoc 呢?”

嗯,本来呢,你这个说法也没错,但考虑到 Pandoc 可以转换这么多格式,它很可能成为你所有转换任务的首选工具。例如,我们中的许多人都知道 Markdown 编辑器 可以将其 Markdown 文件导出为 .html。而使用 Pandoc 文件也可以转换为许多其他格式。

我很少将 Markdown 导出为 HTML。我通常让 Pandoc 来做这件事。

使用 Pandoc 转换文件格式

本文中,我会将 Markdown 文件转换成几种不同的格式。我几乎所有的写作都使用 Markdown 语法,但我经常需要转换为另一种格式:学校作业通常需要的 .docx 格式;我创建的网页通常需要的 .html 格式;工作需要的 .epub 格式;传单和讲义需要的 .pdf 格式;甚至包括一个大学数字人文项目偶尔需要的 TEI Simple 格式。Pandoc 可以轻松处理所有这些格式,甚至更多。

首先,你需要 安装 pandoc。此外,要创建 .pdf 文件,还需要 LaTeX。我最喜欢的套件是 TeX Live

注意:如果你想在安装前试用 pandoc,这里有一个在线试用页面:http://pandoc.org/try/

安装 pandoc 和 texlive

Ubuntu 和其他 Debian 发行版的用户可以在终端中输入以下命令:

sudo apt-get update
sudo apt-get install pandoc texlive

请注意第二行,你将一次性安装 pandoctexliveapt-get 命令 支持你这样做。不过,我建议你先去喝杯咖啡,因为这可能需要几分钟的时间。

开始转换

安装完成 pandoctexlive 后,你就可以尝试用它们来完成一些工作了!

该项目的示例文档将是一篇文章,该文章于 1894 年 12 月首次发表在《北美评论》上,标题为“如何击退火车劫匪”。我将使用的 Markdown 文件是前一段时间创建的,该文章的一个恢复项目的一部分(LCTT 译注:这是篇一百多年前发表的文章,这是一个数字化“恢复”项目)。

我把这篇文章保存为 how_to_repel_train_robbers.md,它位于我的 Documents 目录下,名为 samples 的子目录中。它在 Ghostwriter 中看起来是这样的:

在 Ghostwriter 中查看原始的 Markdown 文件

我想创建此文件的 .docx、.pdf 和 .html 版本。

第一次转换

首先,我将制作一个 .pdf 副本,因为我在安装 LaTeX 包时遇到了些麻烦。

~/Documents/samples/ 目录中,我输入以下,以创建一个 .pdf 文件:

pandoc -o htrtr.pdf how_to_repel_train_robbers.md

上述命令将基于 how_to_repel_train_robbers.md 文件,创建一个名为 htrtr.pdf 的文件。我使用 htrtr 作为名称的原因是:嗯,它比 how_to_repel_train_robbers 短。htrtr 其实是长标题中的单词首字母排列。

这是 .pdf 文件制作完成后的一个截图:

在 Ocular 中查看的转换后的 PDF 文件

第二次转换

接下来,我想创建一个 .docx 文件。该命令与我用来创建 .pdf 的命令几乎相同,它是:

pandoc -o htrtr.docx how_to_repel_train_robbers.md

很快,一个 .docx 文件就创建好了。这是它在 Libre Writer 中的样子:

在 Libre Writer 中查看转换后的 DOCX 文件

第三次转换

我可能会想在网上发布这个,所以再多一个支持网页的格式也不错。我将使用以下命令创建一个 .html 文件:

pandoc -o htrtr.html how_to_repel_train_robbers.md

同样,创建它的命令与前两次转换非常相似。这是该 .html 文件在浏览器中的样子:

在 Firefox 中查看的转换后的 HTML 文件

注意到什么了吗?

让我们再看看之前的命令。它们是:

pandoc -o htrtr.pdf how_to_repel_train_robbers.md
pandoc -o htrtr.docx how_to_repel_train_robbers.md
pandoc -o htrtr.html how_to_repel_train_robbers.md

这三个命令唯一不同的是 htrtr 后的扩展名。这提示你 pandoc 会依赖于你提供的输出文件扩展名(来决定目标转换格式)。

总结

Pandoc 可以做的远不止这里完成的三个小转换。如果你选择使用一个首选格式编写文件,但时不时又需要将文件转换为另一种格式,pandoc 很大概率都能为你完成。

现在,既然你已经学会了,你会用它做什么呢?你会把它自动化吗?如果你有一个网站,想供读者下载文章怎么办?你可以修改这些小命令,把它们编写成一个脚本,你的读者可以决定他们想要哪种格式。你可以提供 .docx、.pdf、.odt、.epub 或更多格式。你的读者只需要选择一种格式,然后对应的转换脚本就会执行,最后,你的读者下载他们想要的文件。这是完全可以做到的。


via: https://itsfoss.com/pandoc-convert-file/

作者:Bill Dyer 选题:lujun9972 译者:lkxed 校对:wxy

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

在我的工作中,我经常要写代码、写与代码相配套的文档、创建网页、进行文本恢复项目。我在学校的时候还写过几篇正式的论文,也包括写课堂笔记,几乎每节课都写。

我几乎在我所有的写作中都使用 Markdown,它对我来说是一个节省时间的好工具。

在这篇文章中,我将分享我使用 Markdown 的体会。你将会了解以下内容:

  • 什么是 Markdown ?
  • 它是怎么工作的?
  • Markdown 的基本语法和怎样使用它们。

什么是 Markdown ?

假如你是 Markdown 新手,它是一个为网络写手转换文本到 HTML 格式的工具。Markdown 文档遵循一种特定的语法,容易阅读和写作。它们是纯文本,所以能够通过电脑上的任何文本编辑器来创建。然后这些文档能够转换成网页 —— 而网页是用一个叫做 HTML 的语言标记创建的。

Markdown 只是一种不必(即使知道怎么做)写 HTML 代码就能够创建网页的方式。实际上,如果你不转换成 HTML 的话,Markdown 甚至是个对纯文本格式化的好方法。有人曾这样对我描述 Markdown :

它不是所见即所得,而是所见即所意 ”。

然而,Markdown 不只是一个简单的格式化体系,它也是一个纯文本格式转化到 HTML 的一个软件工具。

这就是为什么语法很重要。如果你想在网页上起个标题,Markdown 将会基于你标题前面的字符来创建。Markdown 的一些语法示例如截图所示:

Markdown to HTML conversion

所以我怎样才能使纯文本文件转换成 HTML 格式呢?

John Gruber 的 Markdown 是一个运行在命令行上的 Perl 脚本。也就是说,它可以读取你创建的 Markdown 文本并用它来构建网页。

由于有 许多著名的编辑器 可以为你做这个转换,我在这里尽量避免使用命令行。不仅如此,许多这样的编辑器会让你写下你的文本,并同时向你展示网页的样子(称为渲染)。

Markdown 编辑器总的来说设置了两帧:左边部分是你要写你文本的地方,右边部分是用 HTML 语言显示给你格式化后文本的样子:

Most Markdown editors have two panes to write and preview the text

当你用它满意地完成你的写作,只需保存 Markdown 文件即可。就像这样,之后一旦你需要编辑和修改的时候,你就会用到它。文件保存后,你可以用编辑器将 Markdown 文档导出为 HTML 格式的文档。

编辑器用你的 Markdown 作为参考创建网页。你的 Markdown 文档在导出时不会修改,你仍然拥有源文档,同时创建一个独立的、新的 HTML 文档(网页),你可以把它放到一个网页服务器上。

注意:许多 Markdown 编辑器也可以将你的 Markdown 文档导出为其他格式,比如 .doc.docx.pdf。之后你可以了解这些高级设置和你可能需要的额外软件。

Markdown 基础语法

为了让 Markdown 新用户快速了解,我将把这部分内容限制在我最常使用的语法上。我相信这些将是最有帮助的 - 你可以在现在就提高工作效率,同时了解更多关于 Markdown 以后能为你做什么。

写标题

我经常使用 # 字符来表示标题。这里有六个等级:

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

还有一种标题类型,是在文本下使用下划线。我很少使用这种类型的标题,我只限于使用两种:一种是使用 = 字符表示的双下划线,生成 H1 标题。一种是使用 - 字符表示的单下划线,生成 H2 标题:

一级标题
===============

二级标题
---------------

段落

段落被空行隔开(确保段落之间有一个空行)。首行不要缩进。在 Markdown 里用 Tab 键或者空格键缩进有着不同的目的和作用。

段落是一个文本块,不应该用空格键和 Tab 键来缩进。它可以有一行或者多行。要结束这一段另起一段,点两下回车键;段落通过一个空行分开。

换行

请记住,对于段落,必须用空行来分隔它们,这要通过按两次回车键来实现。Markdown 对此很严格。

Markdown 不支持 “ 强制插入换行符 hard-wrapped ” 或者 “ 固定行长度 fixed-line-length ” 段落。那就是说,单击回车键一次将不会强制文本换到新的一行。它可能在编辑窗口显示,但是 HTML 格式下不显示。

然而,有时你可能需要拆分段落或者换行。Markdown 确实有一种方法可以做到,但是它一开始看起来可能有一点奇怪:换行是通过用两到多个空格键然后点一次回车键完成的。

这里有一个短诗的范例。每行以两个空格结束。最后一行,由于是这个小节的结束,没有额外的空格。因为它是这个诗句(段落)的结束,我双击回车键两次:

Baa, baa black sheep,  
Have you any wool?.  
Yes, sir. Yes, sir.  
Three bags full.

在一行的最后加两个空格来创建一个换行,可能需要时间去习惯。

水平线

水平线非常适合将文本拆分为多个部分。

用三个或更多的破折号 - ,下划线 _ ,或者星号 * 来做水平线,像这样:

---

***

___

你甚至可以在字符之间输入空格:

- - -

在文章和报告中我不经常使用水平线,但是在日记、系统日志和课堂笔记中对我很有用。

用加粗和斜体来强调文本

当你想让一个单词或者短语脱颖而出,引起注意,你可以让它加粗或者斜体显示。斜体和加粗文本可以在两种方式中任选其一。第一种是用星号 * 将其包括,第二种是用下划线 _ 的方式。

使一个单词或者短语斜体显示,用一个下划线或者星号来括住文本。使一个单词或者短语加粗,使用两个下划线或者星号来括住文本:

用星号来显示 *斜体* 。

用下划线来显示 _斜体_ 。

用星号来显示 **加粗** 。

用下划线来显示 __加粗__ 。

记住两边使用相同的字符。单词或短语的一面是星号,另一面是下划线,将不会生效。相同字符必须在单词或者短语的两边。

块引用

块引用被用来直接引用。如果你正在写博客,你想重复本杰明•富兰克林说过的话,你可以使用块引用。

一个右尖括号被用来指定块引用:

> 这是块引用。

>> 如果你想进一步再次块引用,使用两个右尖括号。

在 Markdown 中添加超链接

超链接非常酷。在基础版的 Markdown 语言有三种方式创建超链接,在这里我只讲两种:普通连接和自动连接。

第三种链接被称为参考链接,在 Markdown 语言的基础版和高级版都支持。我想让你快速入门。你可以在准备好的时候找找参考链接的资料。

普通链接可以让你链接到各种各样的网站。网站名称或者你要使用的短语被放置在中括号 [] 中。真实的链接地址在小括号 () 中。

现在去看看 [Linux 中国](https://linux.cn) 。

自动连接通过用尖括号 <> 括住链接地址。这个链接是一个实际的地址(可以是网址或者电子邮件地址)。拼写出来的链接被转换到 HTML 的时候,就变成了有效的链接。

<http://automatic-link-to-url.com/>

<[email protected]>

当你想在文本中拼写出网址时,这很有用:

在 Markdown 中添加图片

链接图片几乎与链接网站一样。网站链接和图片链接微小的不同是,图片链接以感叹号 ! 开始。

图片名称或者图片描述放置在中括号 [] 里。实际链接放置在小括号 () 里。

你可以像这样嵌入图片:

![alternate text](./images/image.jpg)

这儿有一个示例图像链接。这是一个示例链接,没有这个图片,但是这是个好例子,显示了实际链接应该有的样子:

![a picture of bill](./images/my_photo_of_me.jpg)

列表

制作列表有很多原因。它们可能用来作为代办事项、大纲中的主题元素、组装项目中的明细栏等等。列表有两种主要类型:无序列表和有序列表。

无序列表没有编号;这些就是我们在许多文档中所看到的列表项。有序列表是有编号的。

要创建一个有序(有编号的)列表,只需在每行用一个数字开始,像这样:

1. 项目 一。
2. 项目 二。
3. 项目 三。

无序列表没有编号,但要在列表每个项目的开始使用一个星号 * 、一个加号 + ,或者一个减号 - 。我偏向于使用一个星号或者减号,你可以选择适合你的:

* 项目 一。
+ 项目 二。
- 项目 三。

子项目可以通过缩进被添加到有序和无序列表中,像这样:

1. 项目 一
    1. 子项目 一
    2. 子项目 二
2. 项目 二
3. 项目 三

Markdown 语法速查表

这是一个简短的 Markdown 语法列表为你作为参考,这个列表已经在本小结中介绍。

如果你决定使用 Markdown 作为写作工具,你会发现 Markdown 会让写作变得更加简单。

下载 PDF 格式的 Markdown 速查表

结语

Markdown 可以做比我描述的更多的事情。我写作的很大一部分是用我在这里介绍的 Markdown 语法完成的 - 而这些是我最常使用的项目,即使是在更复杂的项目中。

如果这些看起来太简单了,那么说明它真的很容易。Markdown 用来完成简单的写作任务,但是你不必完全听我的。你可以尝试一下!不必安装 Markdown 编辑器;你可以在线尝试。这里有几个 优秀的在线 Markdown 编辑器。这里我喜欢用这三个:

Editor.md 和 Dillinger 会让你看到你的 Markdown 文本作为 HTML 实时渲染的效果。 Dingus 不能实时预览,但是在参考页有 Markdown 的语法速查表。

用以上这些在线编辑器尝试一下文章中的示例。也可以尝试一下你自己的想法。这将使你在可能致力于学习更多的知识之前习惯于 Markdown。


via: https://itsfoss.com/markdown-guide/

作者:Bill Dyer 选题:lujun9972 译者:hwlife 校对:wxy

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