分类 技术 下的文章

摘要:这份初学者指南是告诉你如何在 Linux 上用 Calibre 工具快速创建一本电子书。

自从亚马逊在多年前开始销售电子书,电子书已经有了质的飞跃发展并且变得越来越流行。好消息是电子书非常容易使用自由开源的工具来被创建。

在这个教程中,我会告诉你如何在 Linux 上创建一本电子书。

在 Linux 上创建一本电子书

要创建一本电子书,你可能需要两个软件:一个文本处理器(当然,我使用的是 LibreOffice)和 Calibre 。Calibre 是一个非常优秀的电子书阅读器,也是一个电子书库的程序。你可以使用它来在 Linux 上打开 ePub 文件或者管理你收集的电子书。(LCTT 译注:LibreOffice 是 Linux 上用来处理文本的软件,类似于 Windows 的 Office 软件)

除了这些软件之外,你还需要准备一个电子书封面(1410×2250)和你的原稿。

第一步

首先,你需要用你的文本处理器程序打开你的原稿。 Calibre 可以自动的为你创建一个书籍目录。要使用到这个功能,你需要在你的原稿中设置每一章的标题样式为 “Heading 1”,在 LibreOffice 中要做到这个只需要高亮标题并且在段落样式下拉框中选择“Heading 1”即可。

如果你想要有子章节,并且希望他们也被加入到目录中,只需要设置这些子章节的标题为 Heading 2。

做完这些之后,保存你的文档为 HTML 格式文件。

第二步

在 Calibre 程序里面,点击“ 添加书籍 Add books ”按钮。在对话框出现后,你可以打开你刚刚存储的 HTML 格式文件,将它加入到 Calibre 中。

第三步

一旦这个 HTML 文件加入到 Calibre 库中,选择这个新文件并且点击“ 编辑元数据 Edit Metadata ”按钮。在这里,你可以添加下面的这些信息: 标题 Title 作者 Author 封面图片 cover image 描述 description 和其它的一些信息。当你填完之后,点击“Ok”。

第四步

现在点击“ 转换书籍 Covert books ”按钮。

在新的窗口中,这里会有一些可选项,但是你不会需要使用它们。

在新窗口的右上部选择框中,选择 epub 文件格式。Calibre 也有创建 mobi 文件格式的其它选项,但是我发现创建那些文件之后经常出现我意料之外的事情。

第五步

在左边新的对话框中,点击“ 外观 Look & Feel ”。然后勾选中“ 移除段落间空白 Remove spacing between paragraphs ”。

接下来,我们会创建一个内容目录。如果不打算在你的书中使用目录,你可以跳过这个步骤。选中“ 内容目录 Table of Contents ” 标签。接下来,点击“ 一级目录 Level 1 TOC (XPath expression) ”右边的魔术棒图标。

在这个新的窗口中,在“ 匹配 HTML 标签 Match HTML tags with tag name ”下的下拉菜单中选择“h1”。点击“OK” 来关闭这个窗口。如果你有子章节,在“ 二级目录 (Level 2 TOC XPath expression) ”下选择“h2”。

在我们开始生成电子书前,选择输出 EPUB 文件。在这个新的页面,选择“ 插入目录 Insert inline Table of Contents ”选项。

现在你需要做的是点击“OK”来开始生成电子书。除非你的是一个大文件,否则生成电子书的过程一般都完成的很快。

到此为止,你就已经创建一本电子书了。

对一些特别的用户比如他们知道如何写 CSS 样式文件(LCTT 译注:CSS 文件可以用来美化 HTML 页面),Calibre 给了这类用户一个选项来为文章增加 CSS 样式。只需要回到“ 外观 Look & Feel ”部分,选择“ 风格 styling ”标签选项。但如果你想创建一个 mobi 格式的文件,因为一些原因,它是不能接受 CSS 样式文件的。

好了,是不是感到非常容易?我希望这个教程可以帮助你在 Linux 上创建电子书。


via: https://itsfoss.com/create-ebook-calibre-linux/

作者:John Paul 译者:chenzhijun 校对:wxy

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

本篇中,我们会简要地讨论 Apache 服务器前端以及如何列出或查看已经启用的 Apache 模块。

Apache 基于模块化的理念而构建,这样就可以让 web 管理员添加不同的模块来扩展主要的功能及增强性能

常见的 Apache 模块有:

  1. mod\_ssl – 提供了 HTTPS 功能
  2. mod\_rewrite – 可以用正则表达式匹配 url 样式,并且使用 .htaccess 技巧来进行透明转发,或者提供 HTTP 状态码回应。
  3. mod\_security – 用于保护 Apache 免于暴力破解或者 DDoS 攻击
  4. mod\_status - 用于监测 Apache 的负载及页面统计

在 Linux 中 apachectl 或者 apache2ctl用于控制 Apache 服务器,是 Apache 的前端。

你可以用下面的命令显示 apache2ctl 的使用信息:

$ apache2ctl help
或者
$ apachectl help
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
                       [-C "directive"] [-c "directive"]
                       [-k start|restart|graceful|graceful-stop|stop]
                       [-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
  -D name            : define a name for use in  directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
  -S                 : a synonym for -t -D DUMP_VHOSTS
  -t -D DUMP_MODULES : show all loaded modules 
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files

apache2ctl 可以工作在两种模式下,SysV init 模式和直通模式。在 SysV init 模式下,apache2ctl 用如下的简单的单命令形式:

$ apachectl command
或者
$ apache2ctl command

比如要启动并检查它的状态,运行这两个命令。如果你是普通用户,使用 sudo 命令来以 root 用户权限来运行:

$ sudo apache2ctl start
$ sudo apache2ctl status
tecmint@TecMint ~ $ sudo apache2ctl start
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1\. Set the 'ServerName' directive globally to suppress this message
httpd (pid 1456) already running
tecmint@TecMint ~ $ sudo apache2ctl status
Apache Server Status for localhost (via 127.0.0.1)

Server Version: Apache/2.4.18 (Ubuntu)
Server MPM: prefork
Server Built: 2016-07-14T12:32:26

-------------------------------------------------------------------------------

Current Time: Tuesday, 15-Nov-2016 11:47:28 IST
Restart Time: Tuesday, 15-Nov-2016 10:21:46 IST
Parent Server Config. Generation: 2
Parent Server MPM Generation: 1
Server uptime: 1 hour 25 minutes 41 seconds
Server load: 0.97 0.94 0.77
Total accesses: 2 - Total Traffic: 3 kB
CPU Usage: u0 s0 cu0 cs0
.000389 requests/sec - 0 B/second - 1536 B/request
1 requests currently being processed, 4 idle workers

__W__...........................................................
................................................................
......................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

当在直通模式下,apache2ctl 可以用下面的语法带上所有 Apache 的参数:

$ apachectl [apache-argument]
$ apache2ctl [apache-argument]

可以用下面的命令列出所有的 Apache 参数:

$ apache2 help    [在基于Debian的系统中]
$ httpd help      [在RHEL的系统中]

检查启用的 Apache 模块

因此,为了检测你的 Apache 服务器启动了哪些模块,在你的发行版中运行适当的命令,-t -D DUMP_MODULES 是一个用于显示所有启用的模块的 Apache 参数:

---------------  在基于 Debian 的系统中 --------------- 
$ apache2ctl -t -D DUMP_MODULES   
或者 
$ apache2ctl -M
---------------  在 RHEL 的系统中 --------------- 
$ apachectl -t -D DUMP_MODULES   
或者 
$ httpd -M
$ apache2ctl -M
[root@tecmint httpd]# apachectl -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 auth_basic_module (shared)
 auth_digest_module (shared)
 authn_file_module (shared)
 authn_alias_module (shared)
 authn_anon_module (shared)
 authn_dbm_module (shared)
 authn_default_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 authz_owner_module (shared)
 authz_groupfile_module (shared)
 authz_dbm_module (shared)
 authz_default_module (shared)
 ldap_module (shared)
 authnz_ldap_module (shared)
 include_module (shared)
....

就是这样!在这篇简单的教程中,我们解释了如何使用 Apache 前端工具来列出启动的 Apache 模块。记住你可以在下面的反馈表中给我们留下你的问题或者留言。


via: http://www.tecmint.com/check-apache-modules-enabled

作者:Aaron Kili 译者:geekpi 校对:wxy

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

你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 rm 命令,错误的删除了一个不该删除的文件。

在第一种情况下,你可以到垃圾箱,搜索那个文件,然后把它复原到原始位置。但是第二种情况又该怎么办呢?你可能知道,Linux 命令行不会把删除的文件转移到任何位置,而是直接把它们移除了,biu~,它们就不复存在了。

在这篇文章里,将分享一个很有用的技巧来避免此事发生。同时,也会分享一个工具,不小心删除了某些不该删除的文件时,也许用得上。

把删除创建为 rm -i 的别名

-i 选项配合 rm 命令(也包括其他文件处理命令比如 cp 或者 mv)使用时,在删除文件前会出现一个提示。

这同样也可以运用到当复制,移动或重命名一个文件,当所在位置已经存在一个和目标文件同名的文件时。

这个提示会给你第二次机会来考虑是否真的要删除该文件 - 如果你在这个提示上选择确定,那么文件就被删除了。这种情况下,很抱歉,这个技巧并不能防止你的粗心大意。

为了 rm -i 别名替代 rm ,这样做:

alias rm='rm -i'

运行 alias 命令可以确定 rm 现在已经被别名了:

增加 rm 别名的命令

为 rm 增加别名

然而,这只能在当前用户的当前 shell 上有效。为了永久改变,你必须像下面展示的这样把它保存到 ~/.bashrc 中(一些版本的 Linux 系统可能是 ~/.profile)。

在 Linux 中永久增添别名

在 Linux 中永久增添别名

为了让 ~/.bashrc(或 ~/.profile)中所做的改变立即生效,从当前 shell 中运行文件:

. ~/.bashrc

在 Linux 中激活别名

在 Linux 中激活别名

取证工具-Foremost

但愿你对于你的文件足够小心,当你要从外部磁盘或 USB 设备中恢复丢失的文件时,你只需使用这个工具即可。

然而,当你意识到你意外的删除了系统中的一个文件并感到恐慌时-不用担心。让我们来看一看 foremost,一个用来处理这种状况的取证工具。

要在 CentOS/RHEL 7 中安装 Foremost,需要首先启用 Repoforge:

# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install foremost

然而在 Debian 及其衍生系统中,需这样做:

# aptitude install foremost

安装完成后,我们做一个简单的测试吧。首先删除 /boot/images 目录下一个名为 nosdos.jpg 的图像文件:

# cd images
# rm nosdos.jpg

要恢复这个文件,如下所示使用 foremost(要先确认所在分区 - 本例中, /boot 位于 /dev/sda1 分区中)。

# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

其中,/home/gacanepa/rescued 是另外一个磁盘中的目录 - 请记住,把文件恢复到被删除文件所在的磁盘中不是一个明智的做法。

如果在恢复过程中,占用了被删除文件之前所在的磁盘分区,就可能无法恢复文件。另外,进行文件恢复操作前不要做任何其他操作。

foremost 执行完成以后,恢复的文件(如果可以恢复)将能够在目录 ·/home/gacanepa/rescue/jpg` 中找到。

总结

在这篇文章中,我们阐述了如何避免意外删除一个不该删除的文件,以及万一这类事情发生,如何恢复文件。还要警告一下, foremost 可能运行很长时间,时间长短取决于分区的大小。

如果您有什么问题或想法,和往常一样,不要犹豫,告诉我们。可以给我们留言。


via: http://www.tecmint.com/recover-deleted-file-in-linux/

作者:Gabriel Cánepa 译者:ucasFL 校对:jasminepeng

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

今年初,当 Microsoft 和 Canonical 发布 Windows 10 Bash 和 Ubuntu 用户空间,我尝试做了一些初步性能测试 Ubuntu on Windows 10 对比 原生 Ubuntu,这次我发布更多的,关于原生纯净的 Ubuntu 和基于 Windows 10 的基准对比。

Windows 的 Linux 子系统

Windows 的 Linux 子系统测试完成了所有测试,并随着 Windows 10周年更新放出。 默认的 Ubuntu 用户空间还是 Ubuntu 14.04,但是已经可以升级到 16.04。所以测试首先在 14.04 测试,完成后将系统升级升级到 16.04 版本并重复所有测试。完成所有基于 Windows 的 Ubuntu 子系统测试后,我在同样的系统上干净地安装了 Ubuntu 14.04.5 和 Ubuntu 16.04 LTS 来做性能对比。

Ubuntu

配置为 Intel i5 6600K Skylake,16G 内存和 256G 东芝 ssd,测试过程中每个操作系统都采用其原生默认配置和软件包。

http://openbenchmarking.org/embed.php?i=1608096-LO-BASHWINDO87&sha=09989b3&p=2

这次 Ubuntu/Bash on Windows 和原生 Ubuntu 对比测试,采用开源软件 Phoronix 测试套件,完全自动化并可重复测试。

SQLite 嵌入式数据库基准测试

首先是 SQLite 嵌入式数据库基准测试。这方面开箱即用的 Ubuntu/Bash on Windows 性能是相当的慢,但是如果将环境从 14.04 升级到 16.04 LTS,性能会快很多。然而,对于繁重磁盘操作的任务,原生 Ubuntu Linux 几乎比 Windows 的子系统 Linux 快了近 2 倍。

编译测试:编译

编译测试:初始创建

编译测试作为额外的繁重磁盘操作测试显示,定制的 Windows 子系统真的成倍的限制了 Ubuntu 性能。

接下来,是一些使用 Stream 的基本的系统内存速度测试:

Stream:复制

Stream:缩放

Stream:添加

奇怪的是,这些 Stream 内存的基准测试显示 Ubuntu on Windows 的性能比原生的 Ubuntu 好!这个现象同时发生在基于同样的 Windows 却环境不同的 14.04 和 16.04 LTS 上。

接下来,是一些繁重 CPU 操作测试。

Dolfyn 科学测试

通过 Dolfyn 科学测试,Ubuntu On Windows 和原生 Ubuntu 之间的性能其实是相当接近的。 对于 Ubuntu 16.04,由于较新的 GCC 编译器性能衰减,两个平台上的性能都较慢。

Fhourstones 测试

John The Ripper 测试

透过 Fhourstones 测试和 John The Ripper 测试表明,通过在 Windows 的 Linux 子系统运行的 Ubuntu 的性能可以非常接近裸机 Ubuntu Linux 性能!

x264 测试:H264视频编码

类似于 Stream 测试,x264 结果是另一个奇怪的情况,其中最好的性能实际上是使用 Linux 子系统的 Ubuntu On Windows!

Linux 内核编译时间

PHP 编译时间

计时编译基准测试非常利于裸机 Ubuntu Linux。这是应该是由于大型程序编译需要大量读写磁盘,在先前测试已经发现了,这是基于 Windows 的 Linux 子系统缓慢的一大领域。

Crafty

FLAC 音频编码

OpenSSL

许多其他的通用开源基准测试表明,严格的针对 CPU 的测试,Windows 子系统的 Ubuntu 的性能是很接近的,甚至是与原生安装在实际硬件中的 Ubuntu Linux 相等。

最新的 Windows 的 Linux 子系统,测试结果实际上相当令人印象深刻。让人沮丧的仅仅只是持续缓慢的磁盘/文件系统性能,但是对于受 CPU 限制的工作负载,结果是非常引人注目的。还有很罕见的情况, x264 和 Stream 测试,Ubuntu On Windows 上的性能看起来明显优于运行在实际硬件上 的Ubuntu Linux。

总的来说,体验是十分愉快的,并且在 Ubuntu/Bash on Windows 也没有遇到任何其他的 bug。如果你有还兴趣了解更多关于 Windows 和 Linux 的基准测试,欢迎留言讨论。


via: https://www.phoronix.com/scan.php?page=article&item=windows10-anv-wsl&num=1

作者:Michael Larabel 译者:VicYu/Vic020 校对:wxy

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

kde-plasma-to-windows-10

通过一些步骤,我将告诉你如何把 KDE Plasma 5 桌面变成 Windows 10 桌面。

除了菜单, KDE Plasma 桌面的许多地方已经和 Win 10 桌面非常像了。因此,只需要一点点改动就可以使二者看起来几乎是一样。

开始菜单

让 KDE Plasma 桌面看起来像 Win 10 桌面的首要以及可能最有标志性的环节是实现 Win 10 的 ‘开始’ 菜单。

通过安装 Zren's Tiled Menu,这很容易实现。

安装

1、 在 KDE Plasma 桌面上单击右键 -> 解锁窗口部件 Unlock Widgets

2、 在 KDE Plasma 桌面上单击右键 -> 增添窗口部件 Add Widgets

3、 获取新窗口部件 -> 下载新的 Plasma 窗口部件 Download New Plasma Widgets

4、 搜索“Tiled Menu” -> 安装 Install

激活

1、 在你当前的菜单按钮上单击右键 -> 替代…… Alternatives…

2、 选择 "TIled Mune" ->点击 切换 Switch

KDE Tiled 菜单扩展

主题

弄好菜单以后,下一个你可能需要的就是主题。幸运的是, K10ne 提供了一个 WIn 10 主题体验。

安装:

1、 从 Plasma 桌面菜单打开“ 系统设置 System Settings ” -> 工作空间主题 Workspace Theme

2、 从侧边栏选择“ 桌面主题 Desktop Theme ” -> 获取新主题 Get new Theme

3、 搜索“K10ne” -> 安装 Install

激活

1、 从 Plasma 桌面菜单选择“ 系统设置 System Settings ” -> 工作空间主题 Workspace Theme

2、 从侧边栏选择“ 桌面主题 Desktop Theme ” -> “K10ne”

3、 应用 Apply

任务栏

最后,为了有一个更加完整的体验,你可能也想拥有一个更加 Win 10 风格的任务栏,

这次,你需要的安装包,叫做“Icons-only Task Manager”, 在大多数 Linux 发行版中,通常会默认安装。如果没有安装,需要通过你的系统的合适通道来获取它。

激活

1、在 Plasma 桌面上单击右键 -> 打开窗口部件 Unlock Widgets

2、在 Plasma 桌面上单击右键 -> 增添部件 Add Widgets

3、把“Icons-only Task Manager”拖放到你的桌面面板的合适位置。


via: https://iwf1.com/make-kde-plasma-5-desktop-look-feel-like-windows-10-using-these-extensions/

作者:Liron 译者:ucasFL 校对:wxy

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

在这篇短文中,我们将向你简单介绍几种 Linux 下查看系统时区的简单方法。在 Linux 机器中,尤其是生产服务器上的时间管理技能,是在系统管理中一个极其重要的方面。

Linux 包含多种可用的时间管理工具,比如 datetimedatectlcommands,你可以用它们来获取当前系统时区,也可以将系统时间与 NTP 服务器同步,来自动地、更精确地进行时间管理。

好,我们一起来看几种查看我们的 Linux 系统时区的不同方法。

1、我们从使用传统的 date 命令开始

使用下面的命令,来看一看我们的当前时区:

$ date

或者,你也可以使用下面的命令。其中 %Z 格式可以输出字符形式的时区,而 %z 输出数字形式的时区:

$ date +”%Z %z”

Find Linux Timezone

查看 Linux 时区

注意:date 的手册页中包含很多输出格式,你可以利用它们,来替换你的 date 命令的输出内容:

$ man date

2、接下来,你同样可以用 timedatectl 命令

当你不带任何参数运行它时,这条命令可以像下图一样,输出系统时间概览,其中包含当前时区:

$ timedatectl

然后,你可以在命令中提供一条管道,然后用 grep 命令 来像下面一样,只过滤出时区信息:

$ timedatectl | grep “Time zone”

Find Current Linux Timezone

查看当前 Linux 时区

同样,我们可以学习如何使用 timedatectl 来设置 Linux 时区

3、进一步,显示文件 /etc/timezone 的内容

使用 cat 工具显示文件 /etc/timezone 的内容,来查看你的时区:

$ cat /etc/timezone

Check Timezone of Linux

在 Linux 中查看时区

对于 RHEL/CentOS/Fedora 用户,这里还有一条可以起到同样效果的命令:

$ grep ZONE /etc/sysconfig/clock

就这些了!别忘了在下面的反馈栏中分享你对于这篇文章中的看法。重要的是:你应该通过这篇 Linux 时区管理指南来学习更多系统时间管理的知识,因为它含有很多易于操作的实例。


via: http://www.tecmint.com/check-linux-timezone

作者:Aaron Kili 译者:StdioA 校对:wxy

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