使用 Xfce Linux 桌面环境的 8 个理由
整体上很优雅的 Xfce 桌面所具备的足够轻巧和快速的特性能够让它很容易都知道如何做好一件事。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/04/224757c2dxwzkaw2ue5jwc.png">Media</a>由于某些原因(也包括好奇),几周前我开始使用 <a href="https://xfce.org/">Xfce</a> 作为我的 Linux 桌面。促使我更换 Linux 桌面环境的原因之一是桌面相关的守护进程占据了我的性能非常强大的主工作站的绝大部分 CPU 资源和 I/O 带宽。当然,有些不稳定性可能是因为我删除了提供这些守护进程的 RPM 包。然而,事实是在我删除这些 RPM 包之前,KDE 就已经很不稳定了而且还导致了一系列其他方面的性能和稳定性问题。所以我需要换一个桌面来避免这些问题。在回顾了我为 Linux 桌面所写的一系列文章后我才意识到我忽略了 Xfce。这篇文章也是力图能够纠正弥补这个疏忽。我非常喜欢 Xfce 也很享受它所带给我超乎预期的快速、轻量的体验。作为研究的一部分,我有尝试过在 Google 上查询 Xfce 对应什么意思。有个历史参考是它对应着 “XForms Common Environment”,但 Xfce 早已不在使用 XForms 工具。几年前,我找到另一个参考是 “Xtra fine computing environment” 而且我也很喜欢这个解释。我将会用它作为 Xfce 的全称(尽管再也找不到这个参考页面)。推荐 Xfce 的 8 个理由1、轻量级架构Xfce 相对于其他的桌面如 KDE 和 GNOME,不管是内存还是 CPU 的占用率都非常小。在我的系统中,组成 Xfce 桌面的程序仅占用了少%…
整体上很优雅的 Xfce 桌面所具备的足够轻巧和快速的特性能够让它很容易都知道如何做好一件事。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/04/224757c2dxwzkaw2ue5jwc.png">Media</a>由于某些原因(也包括好奇),几周前我开始使用 <a href="https://xfce.org/">Xfce</a> 作为我的 Linux 桌面。促使我更换 Linux 桌面环境的原因之一是桌面相关的守护进程占据了我的性能非常强大的主工作站的绝大部分 CPU 资源和 I/O 带宽。当然,有些不稳定性可能是因为我删除了提供这些守护进程的 RPM 包。然而,事实是在我删除这些 RPM 包之前,KDE 就已经很不稳定了而且还导致了一系列其他方面的性能和稳定性问题。所以我需要换一个桌面来避免这些问题。在回顾了我为 Linux 桌面所写的一系列文章后我才意识到我忽略了 Xfce。这篇文章也是力图能够纠正弥补这个疏忽。我非常喜欢 Xfce 也很享受它所带给我超乎预期的快速、轻量的体验。作为研究的一部分,我有尝试过在 Google 上查询 Xfce 对应什么意思。有个历史参考是它对应着 “XForms Common Environment”,但 Xfce 早已不在使用 XForms 工具。几年前,我找到另一个参考是 “Xtra fine computing environment” 而且我也很喜欢这个解释。我将会用它作为 Xfce 的全称(尽管再也找不到这个参考页面)。推荐 Xfce 的 8 个理由1、轻量级架构Xfce 相对于其他的桌面如 KDE 和 GNOME,不管是内存还是 CPU 的占用率都非常小。在我的系统中,组成 Xfce 桌面的程序仅占用了少%…
McFly:利用神经网络为 Bash 提供历史命令搜索功能
McFly 是一个使用 Rust 编程语言写就的简洁工具,自带一个智能的搜索引擎,用来替换默认的 Ctrl+r 这个 Bash 历史命令搜索功能。 McFly 提供的命令建议都是通过一个小巧的 神经网络 来实时排序给出的。Media
via https://linux.cn/article-10414-1.html
McFly 是一个使用 Rust 编程语言写就的简洁工具,自带一个智能的搜索引擎,用来替换默认的 Ctrl+r 这个 Bash 历史命令搜索功能。 McFly 提供的命令建议都是通过一个小巧的 神经网络 来实时排序给出的。Media
via https://linux.cn/article-10414-1.html
McFly:利用神经网络为 Bash 提供历史命令搜索功能
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/04/232508t98p95pyp5ww2h9w.png">Media</a>假如你在命令行模式下渡过了很长时间,那么你必定使用过或者听说过 BASH 的 <strong>反向搜索</strong> 功能,在 Bash 中执行反向搜索功能的快捷键是 Ctrl+r。通过使用这个特性,我们可以找到我们执行过的命令而无需再次输入它们。当然,你可以使用上下键来搜索你的 bash 命令记录,但使用 Ctrl+r 快捷键可以让这个搜索过程更简单快速。今天我找寻到了 Bash 历史命令搜索特性 Ctrl+r 的一个替代品,它就是 McFly。McFly 是一个使用 Rust 编程语言写就的简洁工具,自带一个智能的搜索引擎,用来替换默认的 Ctrl+r 这个 Bash 历史命令搜索功能。 McFly 提供的命令建议都是通过一个小巧的 <strong>神经网络</strong> 来实时排序给出的。McFly 重新绑定了 Ctrl+r 快捷键,可以从你的 Bash 历史命令中找到所有最近执行过的命令。它通过追溯下面的信息来增强你的 shell 历史命令搜索特性:命令结束状态当你运行命令时的时间戳以及你运行命令的执行目录它将所有追溯的信息保存在一个 SQLite 数据库中。由于它追溯了命令的历史结束状态,所以你可以很轻易地忽略掉失败的命令。听起来很酷,对吧?在给出一个命令建议时,它将考虑如下因素:你在哪个目录执行的这个命令,将来你很有可能在相同的目录重复这个命令在你执行这个命令之前,执行过什…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/04/232508t98p95pyp5ww2h9w.png">Media</a>假如你在命令行模式下渡过了很长时间,那么你必定使用过或者听说过 BASH 的 <strong>反向搜索</strong> 功能,在 Bash 中执行反向搜索功能的快捷键是 Ctrl+r。通过使用这个特性,我们可以找到我们执行过的命令而无需再次输入它们。当然,你可以使用上下键来搜索你的 bash 命令记录,但使用 Ctrl+r 快捷键可以让这个搜索过程更简单快速。今天我找寻到了 Bash 历史命令搜索特性 Ctrl+r 的一个替代品,它就是 McFly。McFly 是一个使用 Rust 编程语言写就的简洁工具,自带一个智能的搜索引擎,用来替换默认的 Ctrl+r 这个 Bash 历史命令搜索功能。 McFly 提供的命令建议都是通过一个小巧的 <strong>神经网络</strong> 来实时排序给出的。McFly 重新绑定了 Ctrl+r 快捷键,可以从你的 Bash 历史命令中找到所有最近执行过的命令。它通过追溯下面的信息来增强你的 shell 历史命令搜索特性:命令结束状态当你运行命令时的时间戳以及你运行命令的执行目录它将所有追溯的信息保存在一个 SQLite 数据库中。由于它追溯了命令的历史结束状态,所以你可以很轻易地忽略掉失败的命令。听起来很酷,对吧?在给出一个命令建议时,它将考虑如下因素:你在哪个目录执行的这个命令,将来你很有可能在相同的目录重复这个命令在你执行这个命令之前,执行过什…
用 PGP 保护代码完整性(五):将子密钥移到一个硬件设备中
在这个系列教程中,将为你提供使用 PGP 和保护你的私钥的最佳体验。Media
via https://linux.cn/article-10415-1.html
在这个系列教程中,将为你提供使用 PGP 和保护你的私钥的最佳体验。Media
via https://linux.cn/article-10415-1.html
用 PGP 保护代码完整性(五):将子密钥移到一个硬件设备中
在这个系列教程中,将为你提供使用 PGP 和保护你的私钥的最佳体验。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/001540guuubwk558wvc8sx.jpg">Media</a>在本系列教程中,我们将提供一个使用 PGP 的实用指南。如果你没有看过前面的文章,你可以通过下面的链接去查看。在这篇文章中,我们将继续讨论如何保护你的密钥,谈一谈将你的子密钥移到一个专门的硬件设备中的一些技巧。<a href="https://linux.cn/article-9524-1.html">第一部分:基本概念和工具</a><a href="https://linux.cn/article-9529-1.html">第二部分:生成你的主密钥</a><a href="https://linux.cn/article-9607-1.html">第三部分:生成 PGP 子密钥</a><a href="https://linux.cn/article-10402-1.html">第四部分:将主密钥移到离线存储中</a>清单取得一个 GnuPG 兼容的硬件设备(必要)配置 GnuPG 在设备上工作(必要)设置用户和管理员的 PIN(必要)移动子密钥到设备中(必要)考虑事项虽然现在主密钥已经不用担心泄露或失窃了,但子密钥仍然在你的家目录中。任何得到它的人都能够解密你的通讯或假冒你的签名(如果他们知道密钥的密码)。并且,每次执行一个 GnuPG 操作都要将密钥加载到操作系统内存中,这将使一些更高级的恶意软件有机会得到你的密钥(想想 Meltdown 和 Spectre)。完全保护密钥的最好方式就是,将它移到一个专门的硬件设备中,这种硬件设备是一个可操作的智能卡。智能卡的好处一个智能卡包含一个加密芯&…
在这个系列教程中,将为你提供使用 PGP 和保护你的私钥的最佳体验。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/001540guuubwk558wvc8sx.jpg">Media</a>在本系列教程中,我们将提供一个使用 PGP 的实用指南。如果你没有看过前面的文章,你可以通过下面的链接去查看。在这篇文章中,我们将继续讨论如何保护你的密钥,谈一谈将你的子密钥移到一个专门的硬件设备中的一些技巧。<a href="https://linux.cn/article-9524-1.html">第一部分:基本概念和工具</a><a href="https://linux.cn/article-9529-1.html">第二部分:生成你的主密钥</a><a href="https://linux.cn/article-9607-1.html">第三部分:生成 PGP 子密钥</a><a href="https://linux.cn/article-10402-1.html">第四部分:将主密钥移到离线存储中</a>清单取得一个 GnuPG 兼容的硬件设备(必要)配置 GnuPG 在设备上工作(必要)设置用户和管理员的 PIN(必要)移动子密钥到设备中(必要)考虑事项虽然现在主密钥已经不用担心泄露或失窃了,但子密钥仍然在你的家目录中。任何得到它的人都能够解密你的通讯或假冒你的签名(如果他们知道密钥的密码)。并且,每次执行一个 GnuPG 操作都要将密钥加载到操作系统内存中,这将使一些更高级的恶意软件有机会得到你的密钥(想想 Meltdown 和 Spectre)。完全保护密钥的最好方式就是,将它移到一个专门的硬件设备中,这种硬件设备是一个可操作的智能卡。智能卡的好处一个智能卡包含一个加密芯&…
让 Linux 终端说出它的想法
eSpeak 是一个可在 Linux 命令行中使用的开源的 TTS 合成器。Media
via https://linux.cn/article-10416-1.html
eSpeak 是一个可在 Linux 命令行中使用的开源的 TTS 合成器。Media
via https://linux.cn/article-10416-1.html
让 Linux 终端说出它的想法
eSpeak 是一个可在 Linux 命令行中使用的开源的 TTS 合成器。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/154129z41mh4s61bf6q0bt.png">Media</a>欢迎回到《24 天介绍 Linux 命令行小玩具》。如果这是你首次阅读本系列文章,你可能不知道什么是 Linux 命令行小玩具。无需担心,你只需要边看边体会。通常来说,它有可能是游戏或其它能让你在终端中娱乐的小程序。或许你已经对一些玩具有了解了,不过我们相信,在本系列文章中总有那么几个你没见过的玩意。年轻读者可能不知道,在 Alexa、Siri 或 Google Assistant 问世之前,计算机就能说话了。我们也许永远不会忘记来自 <a href="https://en.wikipedia.org/wiki/2001:_A_Space_Odyssey_(film)">2001 太空漫游</a> 中与机组人员交流的 HAL 9000。但是在 1960 年代到今天的时间里,是存在着许多能说话的计算机的。它们有些很出色,也有些不那么出色。其中一个我最爱的是一个叫做 <a href="http://espeak.sourceforge.net/">eSpeak</a> 的开源项目。它以多种形式发布,比如可以嵌入你自己项目中的库。与此同时,它也提供了可供你安装的命令行版本。在我所用的发行版中,安装十分简单,只需使用:<pre class="prettyprint linenums">$ sudo dnf install espeak</pre>你既可以与 eSpeak 交互,也可以用它来输出其它程序的信息,甚至通过简单的 echo 命令来使用它。<a href="http://espeak.sourceforge.net/voices.html">这里</a> 有一些可供 eSpeak 使用的声音文件,你可以在无聊时切换他们。甚者你可以制作一个属于你自己的声音。在 2015 年,一些希望继续 eSpeak …
eSpeak 是一个可在 Linux 命令行中使用的开源的 TTS 合成器。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/154129z41mh4s61bf6q0bt.png">Media</a>欢迎回到《24 天介绍 Linux 命令行小玩具》。如果这是你首次阅读本系列文章,你可能不知道什么是 Linux 命令行小玩具。无需担心,你只需要边看边体会。通常来说,它有可能是游戏或其它能让你在终端中娱乐的小程序。或许你已经对一些玩具有了解了,不过我们相信,在本系列文章中总有那么几个你没见过的玩意。年轻读者可能不知道,在 Alexa、Siri 或 Google Assistant 问世之前,计算机就能说话了。我们也许永远不会忘记来自 <a href="https://en.wikipedia.org/wiki/2001:_A_Space_Odyssey_(film)">2001 太空漫游</a> 中与机组人员交流的 HAL 9000。但是在 1960 年代到今天的时间里,是存在着许多能说话的计算机的。它们有些很出色,也有些不那么出色。其中一个我最爱的是一个叫做 <a href="http://espeak.sourceforge.net/">eSpeak</a> 的开源项目。它以多种形式发布,比如可以嵌入你自己项目中的库。与此同时,它也提供了可供你安装的命令行版本。在我所用的发行版中,安装十分简单,只需使用:<pre class="prettyprint linenums">$ sudo dnf install espeak</pre>你既可以与 eSpeak 交互,也可以用它来输出其它程序的信息,甚至通过简单的 echo 命令来使用它。<a href="http://espeak.sourceforge.net/voices.html">这里</a> 有一些可供 eSpeak 使用的声音文件,你可以在无聊时切换他们。甚者你可以制作一个属于你自己的声音。在 2015 年,一些希望继续 eSpeak …
如何用 Gonimo 创建一个免费的婴儿监视系统
当你可以用两个设备、浏览器和网络连接就能免费搭建一个婴儿监视器时,谁还会花钱去买呢?Media
via https://linux.cn/article-10417-1.html
当你可以用两个设备、浏览器和网络连接就能免费搭建一个婴儿监视器时,谁还会花钱去买呢?Media
via https://linux.cn/article-10417-1.html
如何用 Gonimo 创建一个免费的婴儿监视系统
当你可以用两个设备、浏览器和网络连接就能免费搭建一个婴儿监视器时,谁还会花钱去买呢?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/203201zgxa7o1glvleu1qq.png">Media</a>新父母和准父母很快就会知道将会有一个既长且昂贵的新生儿所需设备的清单,清单中的首位是一个婴儿监视器,借此他们可以在做其他事情时照看自己的婴儿,但这儿有一件不必消耗你的婴儿经费的设备,Gonimo 是一个可以将现有的设备转换成婴儿监控系统的自由开源解决方案,附近大型婴儿用品商店的过道中有数以千计的其他必备或时尚物品,就可以为其中某一个腾出一些婴儿的预算。Gonimo 诞生时,它的开发者,一个有双胞胎的开源粉丝,发现现有选择存在问题:现有硬件婴儿监视器价格昂贵,使用范围有限,需要您带着额外的设备。虽然有移动监控应用程序,但大多数现有的 iOS / Android 婴儿监控应用程序都不可靠且不安全,不太容易找到开源产品。如果您有两个小孩(例如双胞胎),您将需要两台监视器,使您的成本翻倍。Gonimo 是作为一个解决典型的监视器的缺点的开源解决方案而创建的:昂贵?不,它是免费的!使用范围有限?不,它适用于互联网 / WiFi,无论您身在何处。下载并安装应用程序?噢不,它适用于您现有的网络浏览器。购买新设备?不用,你可以使用任&#…
当你可以用两个设备、浏览器和网络连接就能免费搭建一个婴儿监视器时,谁还会花钱去买呢?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/203201zgxa7o1glvleu1qq.png">Media</a>新父母和准父母很快就会知道将会有一个既长且昂贵的新生儿所需设备的清单,清单中的首位是一个婴儿监视器,借此他们可以在做其他事情时照看自己的婴儿,但这儿有一件不必消耗你的婴儿经费的设备,Gonimo 是一个可以将现有的设备转换成婴儿监控系统的自由开源解决方案,附近大型婴儿用品商店的过道中有数以千计的其他必备或时尚物品,就可以为其中某一个腾出一些婴儿的预算。Gonimo 诞生时,它的开发者,一个有双胞胎的开源粉丝,发现现有选择存在问题:现有硬件婴儿监视器价格昂贵,使用范围有限,需要您带着额外的设备。虽然有移动监控应用程序,但大多数现有的 iOS / Android 婴儿监控应用程序都不可靠且不安全,不太容易找到开源产品。如果您有两个小孩(例如双胞胎),您将需要两台监视器,使您的成本翻倍。Gonimo 是作为一个解决典型的监视器的缺点的开源解决方案而创建的:昂贵?不,它是免费的!使用范围有限?不,它适用于互联网 / WiFi,无论您身在何处。下载并安装应用程序?噢不,它适用于您现有的网络浏览器。购买新设备?不用,你可以使用任&#…
在 Linux 上使用 tarball
Tarball 提供了一种在 Linux 系统上备份和管理一组文件的通用方法。请按照以下提示了解如何创建它们,以及从中提取和删除单个文件。Media
via https://linux.cn/article-10418-1.html
Tarball 提供了一种在 Linux 系统上备份和管理一组文件的通用方法。请按照以下提示了解如何创建它们,以及从中提取和删除单个文件。Media
via https://linux.cn/article-10418-1.html
在 Linux 上使用 tarball
Tarball 提供了一种在 Linux 系统上备份和管理一组文件的通用方法。请按照以下提示了解如何创建它们,以及从中提取和删除单个文件。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/215151s2zqe3qzcd43f3ls.jpg">Media</a>“tarball” (LCTT 译注:国内也常称为“tar 包”)一词通常用于描述备份一组选择的文件并将它们打包在一个文件中的一种文件格式。该名称来自 .tar 文件扩展名和 tar 命令,它用于将文件打包到一个文件中,有时还会压缩该文件,使其在移动到其它系统时更小。tarball 通常用于备份个人或系统文件来创建存档,特别是在进行可能需要撤消的更改之前。例如,Linux 系统管理员通常会在更改应用之前创建包含一系列配置文件的 tarball,以防必须撤消这些更改。从 tarball 中解压文件通常比在备份中搜索文件快。如何在 Linux 上创建 tarball使用如下命令,你可以在单条命令中创建 tarball 并压缩它。<pre class="prettyprint linenums">$ tar -cvzf PDFs.tar.gz *.pdf</pre>其结果是一个压缩文件(gzip 压缩的),其中包含了当前目录中的所有 PDF 文件。当然,压缩是可选的。一个稍微简单的只是将 PDF 文件打包成未压缩 tarball 的命令:<pre class="prettyprint linenums">$ tar -cvf PDFs.tar *.pdf</pre>注意,选项中的 z 将文件变成压缩的。 c 表明创建文件,v(详细)表示你在命令运行时需要一些反馈。如果你不想查看列出的文件,请忽略 v。另一个常见的命名约定是给压缩的 tarball 命名成 .tgz 而不是双扩展名 .tar.gz,如下所示:<pre class="prettyprint linenums">$ tar cvzf MyPDFs.tgz…
Tarball 提供了一种在 Linux 系统上备份和管理一组文件的通用方法。请按照以下提示了解如何创建它们,以及从中提取和删除单个文件。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/05/215151s2zqe3qzcd43f3ls.jpg">Media</a>“tarball” (LCTT 译注:国内也常称为“tar 包”)一词通常用于描述备份一组选择的文件并将它们打包在一个文件中的一种文件格式。该名称来自 .tar 文件扩展名和 tar 命令,它用于将文件打包到一个文件中,有时还会压缩该文件,使其在移动到其它系统时更小。tarball 通常用于备份个人或系统文件来创建存档,特别是在进行可能需要撤消的更改之前。例如,Linux 系统管理员通常会在更改应用之前创建包含一系列配置文件的 tarball,以防必须撤消这些更改。从 tarball 中解压文件通常比在备份中搜索文件快。如何在 Linux 上创建 tarball使用如下命令,你可以在单条命令中创建 tarball 并压缩它。<pre class="prettyprint linenums">$ tar -cvzf PDFs.tar.gz *.pdf</pre>其结果是一个压缩文件(gzip 压缩的),其中包含了当前目录中的所有 PDF 文件。当然,压缩是可选的。一个稍微简单的只是将 PDF 文件打包成未压缩 tarball 的命令:<pre class="prettyprint linenums">$ tar -cvf PDFs.tar *.pdf</pre>注意,选项中的 z 将文件变成压缩的。 c 表明创建文件,v(详细)表示你在命令运行时需要一些反馈。如果你不想查看列出的文件,请忽略 v。另一个常见的命名约定是给压缩的 tarball 命名成 .tgz 而不是双扩展名 .tar.gz,如下所示:<pre class="prettyprint linenums">$ tar cvzf MyPDFs.tgz…
如何成为一名懒惰的系统管理员
我们是聪明地工作,而不是刻苦工作,但仍能把工作做好。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/225109ycdfdggifxcdg43w.png">Media</a>Linux 的系统管理员的工作总是复杂的,并且总是伴随着各种陷阱和障碍。做每件事都没有足够时间,当你想完成那个半秃头老板(PHB)给的任务时,他(只会)不停在你的后面盯着,而最核心的服务器总是在最不合时宜的时间点崩溃,问题和挑战比比皆是。而我发现,成为一名懒惰的系统管理员Lazy SysAdmin可以解决这一困境。(LCTT 译注:<a href="https://en.wikipedia.org/wiki/Pointy-haired_Boss">半秃头老板</a>Pointy-Haired Boss(PHB),那是<a href="https://zh.wikipedia.org/wiki/%E5%91%86%E4%BC%AF%E7%89%B9">呆伯特漫画</a>中的角色,缺乏一般知识常识及其职位所应具有的管理能力,爱说大话且富有向物理显示挑战的精神,大概长成下图这样。)<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/225349yeenfejjjmvveoyo.jpeg">Media</a>我在即将在 Apress 出版的新书 《The Linux Philosophy for SysAdmins》(LCTT 译注:暂译《系统管理员的 Linux 哲学》)中更详细地讨论如何成为一个懒惰的系统管理员,那书预计会在 9 月出版(LCTT 译注:已于 2018 年 8 月出版)。这本的部分内容摘录自该书,特别是第九章,“成为一名懒惰的系统管理员”。在我们讨论如何做到这点前,让我们简单了解一下成为一个名懒惰的系统管理员意味着什么。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/225110t47tw44ibvvmvcuu.jpg">Media</a>真实生产力 vs. 虚假生产力虚假生产力在我工作的地方,半秃头老板相信的…
我们是聪明地工作,而不是刻苦工作,但仍能把工作做好。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/225109ycdfdggifxcdg43w.png">Media</a>Linux 的系统管理员的工作总是复杂的,并且总是伴随着各种陷阱和障碍。做每件事都没有足够时间,当你想完成那个半秃头老板(PHB)给的任务时,他(只会)不停在你的后面盯着,而最核心的服务器总是在最不合时宜的时间点崩溃,问题和挑战比比皆是。而我发现,成为一名懒惰的系统管理员Lazy SysAdmin可以解决这一困境。(LCTT 译注:<a href="https://en.wikipedia.org/wiki/Pointy-haired_Boss">半秃头老板</a>Pointy-Haired Boss(PHB),那是<a href="https://zh.wikipedia.org/wiki/%E5%91%86%E4%BC%AF%E7%89%B9">呆伯特漫画</a>中的角色,缺乏一般知识常识及其职位所应具有的管理能力,爱说大话且富有向物理显示挑战的精神,大概长成下图这样。)<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/225349yeenfejjjmvveoyo.jpeg">Media</a>我在即将在 Apress 出版的新书 《The Linux Philosophy for SysAdmins》(LCTT 译注:暂译《系统管理员的 Linux 哲学》)中更详细地讨论如何成为一个懒惰的系统管理员,那书预计会在 9 月出版(LCTT 译注:已于 2018 年 8 月出版)。这本的部分内容摘录自该书,特别是第九章,“成为一名懒惰的系统管理员”。在我们讨论如何做到这点前,让我们简单了解一下成为一个名懒惰的系统管理员意味着什么。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/225110t47tw44ibvvmvcuu.jpg">Media</a>真实生产力 vs. 虚假生产力虚假生产力在我工作的地方,半秃头老板相信的…
COPR 仓库中 4 个很酷的新软件(2018.12)
COPR 是软件的个人存储库的集合,它包含那些不在标准的 Fedora 仓库中的软件。Media
via https://linux.cn/article-10420-1.html
COPR 是软件的个人存储库的集合,它包含那些不在标准的 Fedora 仓库中的软件。Media
via https://linux.cn/article-10420-1.html
COPR 仓库中 4 个很酷的新软件(2018.12)
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/232251f997n99953z98z8y.jpg">Media</a>COPR 是软件的个人存储库的<a href="https://copr.fedorainfracloud.org/">集合</a>,它包含那些不在标准的 Fedora 仓库中的软件。某些软件不符合允许轻松打包的标准。或者它可能不符合其他 Fedora 标准,尽管它是自由开源的。COPR 可以在标准的 Fedora 包之外提供这些项目。COPR 中的软件不受 Fedora 基础设施的支持,或者是由项目自己背书的。但是,它是尝试新的或实验性软件的一种很好的方法。这是 COPR 中一组新的有趣项目。MindForger<a href="https://www.mindforger.com/">MindForger</a> 是一个 Markdown 编辑器和笔记本。除了你预期的 Markdown 编辑器的功能之外,MindForger 还允许你将单个文件拆分为多个笔记。组织笔记并在文件之间移动、搜索它们都很容易。我已经使用 MindForger 一段时间来记录学习笔记了,现在可以在 COPR 中找到它啦。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/232251po8j8d4b14ozf8fg.png">Media</a>安装说明该仓库目前在 Fedora 29 和 Rawhide 中提供 MindForger。要安装 MindForger,请使用以下命令:<pre class="prettyprint linenums">sudo dnf copr enable deadmozay/mindforgersudo dnf install mindforger</pre>Clingo<a href="https://potassco.org/clingo/">Clingo</a> 是使用<a href="https://en.wikipedia.org/wiki/Answer_set_programming">回答集编程</a>(ASP)建模语言解决逻辑问题的程序。使用 ASP,你可以将问题声明为一个逻辑程序,然后 Clingo 来解决。最后,Clingo 以逻辑模型的形式产生问题的解决方案,称为回答集。安装说明该仓库目前为 Fedora 28 和 29 提供 Clingo。要安装 Clingo,请使用以下命令:<pre class="prettyprint linenums">sudo dnf copr enable timn/clingosudo dnf install clingo</pre>SGVrecord<a href="https://github.com/yucefsourani/sgvrecord">SGVrecord</a> &…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/232251f997n99953z98z8y.jpg">Media</a>COPR 是软件的个人存储库的<a href="https://copr.fedorainfracloud.org/">集合</a>,它包含那些不在标准的 Fedora 仓库中的软件。某些软件不符合允许轻松打包的标准。或者它可能不符合其他 Fedora 标准,尽管它是自由开源的。COPR 可以在标准的 Fedora 包之外提供这些项目。COPR 中的软件不受 Fedora 基础设施的支持,或者是由项目自己背书的。但是,它是尝试新的或实验性软件的一种很好的方法。这是 COPR 中一组新的有趣项目。MindForger<a href="https://www.mindforger.com/">MindForger</a> 是一个 Markdown 编辑器和笔记本。除了你预期的 Markdown 编辑器的功能之外,MindForger 还允许你将单个文件拆分为多个笔记。组织笔记并在文件之间移动、搜索它们都很容易。我已经使用 MindForger 一段时间来记录学习笔记了,现在可以在 COPR 中找到它啦。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/06/232251po8j8d4b14ozf8fg.png">Media</a>安装说明该仓库目前在 Fedora 29 和 Rawhide 中提供 MindForger。要安装 MindForger,请使用以下命令:<pre class="prettyprint linenums">sudo dnf copr enable deadmozay/mindforgersudo dnf install mindforger</pre>Clingo<a href="https://potassco.org/clingo/">Clingo</a> 是使用<a href="https://en.wikipedia.org/wiki/Answer_set_programming">回答集编程</a>(ASP)建模语言解决逻辑问题的程序。使用 ASP,你可以将问题声明为一个逻辑程序,然后 Clingo 来解决。最后,Clingo 以逻辑模型的形式产生问题的解决方案,称为回答集。安装说明该仓库目前为 Fedora 28 和 29 提供 Clingo。要安装 Clingo,请使用以下命令:<pre class="prettyprint linenums">sudo dnf copr enable timn/clingosudo dnf install clingo</pre>SGVrecord<a href="https://github.com/yucefsourani/sgvrecord">SGVrecord</a> &…
保护代码完整性(六):在 Git 上使用 PGP
我们继续我们的 PGP 实践系列,来看看签名标签的标签和提交,这可以帮你确保你的仓库没有被篡改。Media
via https://linux.cn/article-10421-1.html
我们继续我们的 PGP 实践系列,来看看签名标签的标签和提交,这可以帮你确保你的仓库没有被篡改。Media
via https://linux.cn/article-10421-1.html
保护代码完整性(六):在 Git 上使用 PGP
我们继续我们的 PGP 实践系列,来看看签名标签的标签和提交,这可以帮你确保你的仓库没有被篡改。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/07/000946kbvjmw5aj6q38qr8.jpg">Media</a>在本系列教程中,我们提供了一个使用 PGP 的实用指南,包括基本概念和工具、生成和保护你的密钥。如果你错过了前面的文章,你可以查看下面的链接。在这篇文章中,我们谈一谈在 Git 中如何集成 PGP、使用签名的标签,然后介绍签名提交,最后添加签名推送的支持。<a href="https://linux.cn/article-9524-1.html">第一部分:基本概念和工具</a><a href="https://linux.cn/article-9529-1.html">第二部分:生成你的主密钥</a><a href="https://linux.cn/article-9607-1.html">第三部分:生成 PGP 子密钥</a><a href="https://linux.cn/article-10402-1.html">第四部分:将主密钥移到离线存储中</a><a href="https://linux.cn/article-10415-1.html">第五部分:将子密钥移到硬件设备中</a>Git 的核心特性之一就是它的去中心化本质 —— 一旦仓库克隆到你的本地系统,你就拥有了项目的完整历史,包括所有的标签、提交和分支。然而由于存在着成百上千的克隆仓库,如何才能验证你下载的仓库没有被恶意的第三方做过篡改?你可以从 GitHub 或一些貌似官方的位置来克隆它们,但是如果有些人故意欺骗了你怎么办?或者在你参与的一些项目上发现了后门,而 “Author” 行显示是你干的,然而你很确定 <a href="https://github.com/jayphelps/git-blame-someone-else">不是你干的</a>,会发生什么情况?为解决上述问题,Git 添加了 PGP 集成。ļ…
我们继续我们的 PGP 实践系列,来看看签名标签的标签和提交,这可以帮你确保你的仓库没有被篡改。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/07/000946kbvjmw5aj6q38qr8.jpg">Media</a>在本系列教程中,我们提供了一个使用 PGP 的实用指南,包括基本概念和工具、生成和保护你的密钥。如果你错过了前面的文章,你可以查看下面的链接。在这篇文章中,我们谈一谈在 Git 中如何集成 PGP、使用签名的标签,然后介绍签名提交,最后添加签名推送的支持。<a href="https://linux.cn/article-9524-1.html">第一部分:基本概念和工具</a><a href="https://linux.cn/article-9529-1.html">第二部分:生成你的主密钥</a><a href="https://linux.cn/article-9607-1.html">第三部分:生成 PGP 子密钥</a><a href="https://linux.cn/article-10402-1.html">第四部分:将主密钥移到离线存储中</a><a href="https://linux.cn/article-10415-1.html">第五部分:将子密钥移到硬件设备中</a>Git 的核心特性之一就是它的去中心化本质 —— 一旦仓库克隆到你的本地系统,你就拥有了项目的完整历史,包括所有的标签、提交和分支。然而由于存在着成百上千的克隆仓库,如何才能验证你下载的仓库没有被恶意的第三方做过篡改?你可以从 GitHub 或一些貌似官方的位置来克隆它们,但是如果有些人故意欺骗了你怎么办?或者在你参与的一些项目上发现了后门,而 “Author” 行显示是你干的,然而你很确定 <a href="https://github.com/jayphelps/git-blame-someone-else">不是你干的</a>,会发生什么情况?为解决上述问题,Git 添加了 PGP 集成。ļ…
10 个供管理员救急的杀手级工具
可以让你赶快离开办公室的网络管理技巧和工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/07/222713gl2xjjr2qz6rij29.png">Media</a>当工作任务堆积成山时,管理网络和系统就变得十分有压力了。没有人能真正意识到需要花费多长时间,每个人都希望在昨天就完成他们的工作。所以难怪我们这么多人都被致力于找出有效的方法并与大家分享的开源精神所吸引。因为,当截止日期来临,并且当天没有足够多的时间时,如果你可以找到立刻施行的免费答案,那会非常有帮助。因此,闲话少叙,下述是我的瑞士军刀,可以保证你在晚饭前离开办公室。服务器配置和脚本让我们看一看!<a href="https://www.cyberciti.biz/">NixCraft</a>使用该网站的搜索功能。经过十多年的定期更新,这里遍地是黄金!有用的脚本和方便的技巧可以立刻解决你的问题。这是我一般使用 Google 后的第二个选项。<a href="http://www.webmin.com/">Webmin</a>它提供给你了一个很好的 Web 界面来帮助你远程编辑配置文件。它减少了在处理目录路径和 <code>sudo nano</code> 上花费的大量时间,在你处理多个客户时,非常方便。<a href="http://wsl-guide.org/en/latest/">Windows 下的 Linux 子系统</a>现代工作场所的现实是大多数员工都运行着 Windows,而服务器机房中不断增长的设备则运行着 Linux 。因此,有些时候你会发现尝试在 Windows 桌面上执行管理任务。你怎么做?装一个虚拟机?如果安装目前 Windows 10 中免费提供的 Linux 子系&…
可以让你赶快离开办公室的网络管理技巧和工具。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/07/222713gl2xjjr2qz6rij29.png">Media</a>当工作任务堆积成山时,管理网络和系统就变得十分有压力了。没有人能真正意识到需要花费多长时间,每个人都希望在昨天就完成他们的工作。所以难怪我们这么多人都被致力于找出有效的方法并与大家分享的开源精神所吸引。因为,当截止日期来临,并且当天没有足够多的时间时,如果你可以找到立刻施行的免费答案,那会非常有帮助。因此,闲话少叙,下述是我的瑞士军刀,可以保证你在晚饭前离开办公室。服务器配置和脚本让我们看一看!<a href="https://www.cyberciti.biz/">NixCraft</a>使用该网站的搜索功能。经过十多年的定期更新,这里遍地是黄金!有用的脚本和方便的技巧可以立刻解决你的问题。这是我一般使用 Google 后的第二个选项。<a href="http://www.webmin.com/">Webmin</a>它提供给你了一个很好的 Web 界面来帮助你远程编辑配置文件。它减少了在处理目录路径和 <code>sudo nano</code> 上花费的大量时间,在你处理多个客户时,非常方便。<a href="http://wsl-guide.org/en/latest/">Windows 下的 Linux 子系统</a>现代工作场所的现实是大多数员工都运行着 Windows,而服务器机房中不断增长的设备则运行着 Linux 。因此,有些时候你会发现尝试在 Windows 桌面上执行管理任务。你怎么做?装一个虚拟机?如果安装目前 Windows 10 中免费提供的 Linux 子系&…
YAML:可能并不是那么完美
不要误解我的意思,并不是说 YAML 很糟糕 —— 它肯定不像使用 JSON 那么多的问题 —— 但它也不是非常好。Media
via https://linux.cn/article-10423-1.html
不要误解我的意思,并不是说 YAML 很糟糕 —— 它肯定不像使用 JSON 那么多的问题 —— 但它也不是非常好。Media
via https://linux.cn/article-10423-1.html
YAML:可能并不是那么完美
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/07/235036g8naktbcmzmnrkpm.jpg">Media</a>我之前写过<a href="http://arp242.net/weblog/JSON_as_configuration_files-_please_dont.html">为什么将 JSON 用于人类可编辑的配置文件是一个坏主意</a>,今天我们将讨论 YAML 格式的一些常见问题。默认情况下不安全YAML 默认是不安全的。加载用户提供的(不可信的)YAML 字符串需要仔细考虑。<pre class="prettyprint linenums">!!python/object/applyMedias.systemargs: ['ls /']</pre>用 print(yaml.load(open('a.yaml'))) 运行它,应该给你这样的东西:<pre class="prettyprint linenums">bin etc lib lost+found opt root sbin tmp var sysboot dev efi home lib64 mnt proc run srv usr0</pre>许多其他语言(包括 Ruby 和 PHP <a href="#fn1">1</a> )默认情况下也不安全(LCTT 译注:这里应该说的是解析 yaml)。<a href="https://github.com/search?q=yaml.load&type=Code&utf8=%E2%9C%93">在 GitHub 上搜索 yaml.load</a> 会得到惊人的 280 万个结果,而 <a href="https://github.com/search?q=yaml.safe_load&type=Code&utf8=%E2%9C%93">yaml.safe_load</a> 只能得到 26000 个结果。提个醒,很多这样的 yaml.load() 都工作的很好,在配置文件中加载 yaml.load() 通常没问题,因为它通常(虽然并不总是!)来自“可靠源”,而且很多都来自静态的 YAML 测试文件。但是,人们还是不禁怀疑在这 280 万个结果中隐藏了多少漏洞。这不是一个理论问题。在 2013 年,<a href="https://www.sitepoint.com/anatomy-of-an-exploit-an-in-depth-look-at-the-rails-yaml-vulnerability/">正是由于这个问题,所有的 Ruby on Rails 应用程序都被发现易受</a>远程代码执行攻击。有人可能会反驳说这不是 YAML 格式的错误,而是那些库实现错误的的问题,但似乎大多数库默认不是安全的(特别是动态语言),所以事实上这是 YAML 的一个问题。有些人可能会反驳认为修复它就像用…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201901/07/235036g8naktbcmzmnrkpm.jpg">Media</a>我之前写过<a href="http://arp242.net/weblog/JSON_as_configuration_files-_please_dont.html">为什么将 JSON 用于人类可编辑的配置文件是一个坏主意</a>,今天我们将讨论 YAML 格式的一些常见问题。默认情况下不安全YAML 默认是不安全的。加载用户提供的(不可信的)YAML 字符串需要仔细考虑。<pre class="prettyprint linenums">!!python/object/applyMedias.systemargs: ['ls /']</pre>用 print(yaml.load(open('a.yaml'))) 运行它,应该给你这样的东西:<pre class="prettyprint linenums">bin etc lib lost+found opt root sbin tmp var sysboot dev efi home lib64 mnt proc run srv usr0</pre>许多其他语言(包括 Ruby 和 PHP <a href="#fn1">1</a> )默认情况下也不安全(LCTT 译注:这里应该说的是解析 yaml)。<a href="https://github.com/search?q=yaml.load&type=Code&utf8=%E2%9C%93">在 GitHub 上搜索 yaml.load</a> 会得到惊人的 280 万个结果,而 <a href="https://github.com/search?q=yaml.safe_load&type=Code&utf8=%E2%9C%93">yaml.safe_load</a> 只能得到 26000 个结果。提个醒,很多这样的 yaml.load() 都工作的很好,在配置文件中加载 yaml.load() 通常没问题,因为它通常(虽然并不总是!)来自“可靠源”,而且很多都来自静态的 YAML 测试文件。但是,人们还是不禁怀疑在这 280 万个结果中隐藏了多少漏洞。这不是一个理论问题。在 2013 年,<a href="https://www.sitepoint.com/anatomy-of-an-exploit-an-in-depth-look-at-the-rails-yaml-vulnerability/">正是由于这个问题,所有的 Ruby on Rails 应用程序都被发现易受</a>远程代码执行攻击。有人可能会反驳说这不是 YAML 格式的错误,而是那些库实现错误的的问题,但似乎大多数库默认不是安全的(特别是动态语言),所以事实上这是 YAML 的一个问题。有些人可能会反驳认为修复它就像用…