GNOME 搜索功能的一些小技巧

赞赞赞，好文章，谢谢，一些使用过程中没有注意到的细节。

![](/data/attachment/album/202112/25/115842tf8jjgn4ttz7nf4m.jpg)

你可能已经注意到，当你在 GNOME 菜单/活动区搜索某样东西时，它也会显示名称与搜索词相匹配的文件，以及已安装的应用。

![Search in GNOME activities shows installed applications and matching files](/data/attachment/album/202112/25/115909gci9w67cqq26ldri.png)

这是个很方便的功能。如果你记得文件名，甚至是它的一部分，你可以很容易地搜索到它，只需按下 `Super` 键（`Windows` 键）并输入文件名就可以打开它。

但是，围绕这个搜索功能，有一些你可能不知道或从未关心过的小问题。

在这篇文章中，我将分享你如何控制 GNOME 搜索功能，从搜索选项中添加或隐藏文件夹，以及完全禁用它。

注意：这专门针对使用 GNOME 的发行版。请 [确认你使用的是哪种桌面环境](https://itsfoss.com/find-desktop-environment/)，确保是 GNOME。

### 文件搜索的默认位置

GNOME 的搜索功能使用了一个叫做 [Tracker Miner FS](https://wiki.gnome.org/Projects/Tracker/Documentation/GettingStarted) 的工具。请不要被 “tracker” 和 “miner” 这样的术语吓到。它不是在监视你，也不是在你的系统上挖掘加密货币。它的基本功能是作为一个搜索引擎和数据库，为你提供即时搜索结果。

默认情况下，文件索引发生在元文件夹，如文档、音乐、图片和视频目录及其子目录。主页和下载文件夹中的文件也会被索引，但不包括其子目录中的文件。

![Default locations for file search](/data/attachment/album/202112/25/115910u0sgbfbs8s0ea8rh.png)

如果你在你的主文件夹中创建了一些新的目录，这些文件将不会被索引。

然而，最近访问的文件也会被自动编入索引。如果你最近打开了一个文件，它将被添加到 “最近的文件” 中，并将出现在搜索结果中，而不管它在什么地方。

如果你还不知道的话，你可以在文件管理器中看到你最近访问的文件：

![Accessing recent files in GNOME file manager](/data/attachment/album/202112/25/115911ulqql3igjxzqmt8i.png)

### 在搜索结果中添加一个文件夹的内容

假设你在你的主目录中为编码项目创建了一个文件夹。这些文件不会被索引，也不会出现在搜索结果中（除非你通过双击打开了一个文件，并且它被添加到最近的文件中）。

要在搜索结果中添加自定义文件夹中的文件，你可以将该文件夹添加到搜索位置。

通过在菜单/活动区搜索打开 “设置” 应用。

![Search for settings application](/data/attachment/album/202112/25/115912t3zv63zsd40bwnex.jpg)

从左侧边栏进入 “搜索” 选项，点击顶部的“搜索位置”选项。在弹出的窗口中，进入 “其他” 标签，点击 “+” 符号。它将打开文件浏览器，你可以添加你想要的文件夹。

![Adding a custom folder content to search](/data/attachment/album/202112/25/115913squbv3f20hrr33bo.png)

如果你在刚刚添加的文件夹中搜索一个文件名进行测试，你现在应该在搜索结果中看到它。它应该是即时的，但如果不是，请尝试注销或重启系统。

### 从搜索结果中隐藏一个文件夹

如果你不希望某个特定文件夹的文件出现在搜索结果中，你可以隐藏它。

如果你不希望在搜索中出现图片、文档、视频等元文件夹的内容，你可以从搜索位置设置中禁用它。

![Disable meta folders from the search](/data/attachment/album/202112/25/115913my4toywqt45qmitb.png)

如果你只想让文档下的某个文件夹的内容不出现在搜索结果中，你只需要在该文件夹中创建一个名为 `.nomedia` 的新文件。你也可以将该文件命名为 `.git`、`.trackerignore` 或 `.hg`。

![Hide specific folder from search results by creating file named .nomedia or .hg or .git](/data/attachment/album/202112/25/115914j4dg9ic350mu84il.png)

如果你在鼠标右键中没有看到创建新文件的选项，你必须做一些调整来增加 [在右键上下文菜单中创建新文件选项](https://itsfoss.com/add-new-document-option/)。还要注意的是，任何名称中以 `.` 开头的文件都会被隐藏起来，不能被正常查看。要 [切换显示隐藏文件](https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/)，按 `Ctrl+H` 键。

这种隐藏可能不会立即生效，因为该文件可能已经被索引了。你可能必须注销或重启才能看到效果。

如果你手动访问一个文件，它将被添加到最近的文件中，并且会出现在搜索结果中，尽管文件夹中的文件被忽略了。

你可以从 “设置 -> 隐私 -> 文件历史 & 垃圾箱” 删除最近的文件历史或完全禁用它（如果你想的话）。不过我认为没有必要，所以在这里你自己决定吧。

![Clear or disable file access history in GNOME](/data/attachment/album/202112/25/115916mwbwa42b7kvv0uwq.png)

### 禁用所有文件的搜索结果

如果你不希望任何文件出现在搜索结果中，你可以在搜索设置中完全禁用对文件的搜索。

![Disable search results for all files](/data/attachment/album/202112/25/115916o1p1fsalaxwwl51a.png)

你应该通过点击顶部的搜索切换按钮完全禁用搜索功能，它可能会干扰 GNOME 桌面环境的正常功能。

关于它的更多细节可以在 [项目主页] 中找到。

### 总结

这里的 *讨论的是文件搜索*。GNOME 桌面也可以在日历、字符映射和其他一些程序中进行搜索。你可以禁用或启用可用的搜索选项，但我们这篇不针对这些。

我希望你觉得这个快速提示对 [定制你的 GNOME 体验](https://itsfoss.com/gnome-tricks-ubuntu/) 有帮助。如果你知道其他一些你想让别人知道的技巧，请在评论中与我们分享。

---

via: <https://itsfoss.com/control-gnome-file-search/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #496 美国一些机构在使用 AI 招聘工具来招人

Summary: 更多：• 美国白宫和软件行业讨论改善开源安全 • 大公司的精英们放弃百万年薪投奔新的“一生机会”

“鉴于 AI 的面部分析存在一些偏见”应该是讲AI的判定没有人类这么委婉吧？

主要是数据集偏差导致的。

![](/data/attachment/album/202112/25/171218mrfe8poizrdczidd.jpg)

![](/data/attachment/album/202112/25/171225fi39y8m43cuyliyu.jpg)

### 美国一些机构在使用 AI 招聘工具来招人

[去年](https://themarkup.org/news/2021/12/23/public-agencies-are-buying-up-ai-driven-hiring-tools-and-bossware)，美国食药管理局的下属机构需要快速填补 900 多个职位空缺，因而决定采购 HireVue 平台的服务来完成此任务。HireVue 是一个在线平台，允许雇主审查异步录制的视频面试，并让应聘者玩视频游戏作为其申请过程的一部分。平台还提供了各种人工智能功能，对候选人进行自动评分。它甚至还提供过面部分析，以预测求职者是否适合一份公开工作，但是后来鉴于 AI 的面部分析存在一些偏见，因而下线了该功能。

>
> 老王点评：AI 用于招聘和人员管理肯定是趋势，但是过度滥用可能带来的问题更大。
>
>
>

![](/data/attachment/album/202112/25/171245e7tvehtzlipso73k.jpg)

### 美国白宫和软件行业讨论改善开源安全

据称，在流行的 Log4j 漏洞被披露之后，美国白宫官员正在 [邀请](https://www.bloomberg.com/news/articles/2021-12-23/white-house-extends-invitation-to-improve-open-source-security) 主要软件公司和开发商与他们合作，以提高开源软件的安全性。几十个开源软件项目已经成为全球商业的重要组成部分，并且大多由志愿者维护。美国国家安全顾问认为，开源软件加快了创新的步伐，……但它被广泛使用而且是由志愿者维护的这一事实构成了关键的国家安全问题。美国政府的高级官员说 Log4j 漏洞是她职业生涯中见过的最糟糕的漏洞。

>
> 老王点评：开源软件已经成为主流基础设施，但是其暴露出来的问题也是开源软件所赖之生存的土壤，那么，究竟如何做才能既保持开源软件的活力，又能承担世界主流的责任呢？
>
>
>

![](/data/attachment/album/202112/25/171300ws92l292zzsdphsm.jpg)

### 大公司的精英们放弃百万年薪投奔新的“一生机会”

谷歌、亚马逊、苹果和其他大型科技公司的高管和工程师们放弃数百万美元的年薪，去追逐他们认为是“[一辈子就一次的机会](https://www.nytimes.com/2021/12/20/technology/silicon-valley-cryptocurrency-start-ups.html)”。他们认为，下一个大事件就是加密货币，这包括比特币等数字货币和依靠区块链的 NFT 等产品。这些科技行业的精英们认为他们看到了历史上的相似之处，即个人电脑和互联网也曾经被嘲笑，但却颠覆了现状，铸造了新一代的亿万富翁。他们认为，加密货币可以通过创造一个不受少数公司控制的、更加分散的互联网来改变世界。虽然自 2009 年比特币出现以来，这种可能性就一直存在，但像 NFT 这样的加密货币产品直到今年才突破了主流。

>
> 老王点评：究竟是一种虚妄的泡沫还是变革前夜，无需争论，时间会告诉一切。
>
>
>


为开放实践图书馆做出贡献的 7 种方式

>
> 向开放实践图书馆做出贡献是参与全球实践者社区的一种有趣方式，这些实践者都愿意分享他们的知识并改进他们自己的工作方式。
>
>
>

![](/data/attachment/album/202112/26/094416hvtgijuavgzwvgge.jpg "Stack of books for reading")

[开放实践图书馆](https://openpracticelibrary.com/learn) 是一个社区驱动的实践集合，以支持团队的协作。“实践” 是一种行为或一个 “技巧”，是团队用来改善他们实现目标的方式。有时这些目标是技术性的，如编程和 IT，但所有的团队都可以用来帮助定义他们的实践。无论你是教师、活动策划者、销售人员还是艺术家，这个过程都很重要。对于一个团队，站在同一起跑线上是至关重要的，而这正是开放实践图书馆可以帮助你做到的。

该图书馆借鉴了来自不同背景的从业者的经验。如果你是一个敏捷开发从业者或用户体验研究员，你可能会对该图书馆中的一些实践感到熟悉。作为一个系统管理员、网站可靠性工程师或软件开发人员，你也可能认出一些你自己的工具包中的实践。

为了支持跨职能的团队共同建立他们的协作技能，开放实践图书馆向所有人开放，让他们使用、学习、分享，甚至贡献，无论他们的角色或工作职能如何。许多人在使用这个图书馆的时候，惊讶地发现他们可以为其做出贡献！因此，下面我将介绍一下你可以为开放实践图书馆做出贡献的七种不同方式，然后探讨一下你可能为之贡献的三个原因。

### 1、添加评论

分享你使用该实践的经验。它对你有用吗？你会改变什么吗？对其他使用该实践的人有什么建议吗？请登录评论系统，与社区展开讨论。

**方法：** 在每个实践页面的底部都有一个评论区。

![添加评论 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094428ca45w53wicumzl9k.png "Add a comment")

要加入评论对话，你必须在 [Hyvor Talk](https://talk.hyvor.com) 上注册一个账户。

### 2、传播消息

向其他人介绍开放实践图书馆并邀请他们也来贡献力量，以帮助开放实践图书馆社区的发展。可以在 [Twitter](https://twitter.com/practicelibrary)、[Instagram](https://www.instagram.com/openpracticelibrary) 上找到实践图书馆，并收听 [该播客](https://podcasts.apple.com/us/podcast/open-practice-podcast/id1501715186)。

### 3、添加你最喜欢的实践

你是一个拥有久经考验的方法的实践者，而图书馆里还没有涉及这个方法吗？如果能与大家分享，那就太好了。请注意，这些内容是在创意共享许可下授权的，以确保其开放给所有人使用并与他人分享。请查看该图书馆的 [编辑风格指南](https://openpracticelibrary.com/page/editorial/)，了解更多关于如何为其撰写一篇实践。

OK，准备好了吗？

从菜单中选择 <ruby> 添加一个实践 <rt>  Add a Practice </rt></ruby>。

![添加一个实践 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094429lgoofoa2p5hp8aq3.gif "Add a practice")

这将使你进入内容管理系统（CMS）的登录页面。该图书馆使用开源的 Netlify CMS 来管理投稿。

选择 <ruby> 用 Netlify 身份登录 <rt>  Login with Netlify Identity </rt></ruby>。

![用 Netlify 身份登录 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094429lj0aa6z2tvxvhzaf.png "Login with Netlify Identity")

然后点击 <ruby> 使用 GitHub 继续 <rt>  Continue with GitHub </rt></ruby>。

![使用 Github 继续 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094430zjjj7j3vhsafyvje.png "Continue with Github")

接下来，用你的 GitHub 信息登录，或者（免费）创建一个账户。

![用 Github 的信息登录 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094430t73acnmpqi3ro3r3.png "Log in with Github details")

登录后，选择 <ruby> 新的实践 <rt>  New Practice </rt></ruby>，这将使你进入一个表格，可以将实践添加到集合中。

![选择新的实践 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094431x0mr7our2rojug5z.gif "Select New Practice")

一旦你起草了新的实践，你还需要把你的名字和 GitHub 用户名添加到 CMS 中，以便在 <ruby> 实践 <rt>  Practice </rt></ruby> 页面上显示。从 <ruby> 快速添加 <rt>  Quick add </rt></ruby> 菜单中选择 <ruby> 作者 <rt>  Author </rt></ruby>，或者从 <ruby> 集合 <rt>  Collections </rt></ruby> 菜单中选择 <ruby> 作者 <rt>  Author </rt></ruby>，然后选择 <ruby> 新作者 <rt>  New Author </rt></ruby>。

![选择新作者 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094431v4c9sygd9tlbt9b9.gif "select New Author")

### 4、添加一个有用的资源或链接

点击 <ruby> 改进此实践 <rt>  Improve this Practice </rt></ruby> 按钮，找到 <ruby> 我们喜欢的链接 <rt>  links we love </rt></ruby>部分。发布网址、添加描述、并选择类别（例如，视频、博客）。

![改进此实践的按钮 (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094431bux5502904e57kx2.png "Improve this Practice button")

你可以搜索你想改进的实践，例如，“Affinity Mapping”。

![搜索实践  (Donna Benjamin, CC BY-SA 4.0)](/data/attachment/album/202112/26/094431jhtnrvgz68rhg28s.png "Search for practice")

然后点击实践名称，打开编辑页面。

### 5、看到一个错别字？

点击 <ruby> 改进此实践 <rt>  Improve this Practice </rt></ruby> 按钮，直接去修改它吧

### 6、在 GitHub 上添加一个议题

看到有什么不对的地方吗？对某个功能有建议？请让社区知道。

**如何做：** 到 [议题页面](https://github.com/openpracticelibrary/openpracticelibrary/issues/new) 并登录 GitHub 来添加一个新议题。

### 7、帮助处理网站的代码

在 GitHub 上有一个累积的议题，列出了网站上需要帮助的地方。如果你想卷起袖子，[帮助修复错误](https://github.com/openpracticelibrary/openpracticelibrary/issues?q=is%3Aissue+is%3Aopen+label%3ABug) 或开发新功能 —— 你甚至还可以贡献代码。

### 总结

为什么要贡献？这里有三个原因供你考虑。

1. “寓学于教”是一句古老的罗马谚语。

通过写下来并与他人分享，你会加深自己对所使用的实践的理解。对该实践的来源背景做一些研究，帮助注明原始来源，并找到其使用的例子。
2. 提高你的写作技巧。

通过遵循编辑风格指南，你正在学习调整你的自然写作风格以适应特定的标准。这是一项有价值的基本沟通技巧，你可以在一系列的环境中应用。
3. 展示领导力。

通过与一个开放的全球社区分享你的知识和专长，你可以帮助他人成长并从你的深度经验中学习。

[向开放实践图书馆贡献](https://openpracticelibrary.com/page/contribution-guide) 是参与全球开放的实践者社区的一种有趣而简单的方式，这些实践者都愿意分享他们的知识，并试图改善他们自己的工作方式。

---

via: <https://opensource.com/article/21/10/open-practice-library>

作者：[Donna Benjamin](https://opensource.com/users/kattekrab) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


我把 Pop!_OS Linux 作为主要系统的 7 个原因

Summary: Pop!_OS 从其他基于 Ubuntu 的发行版中脱颖而出的原因有哪些？

在国内应用商店卡死是亮点

最近用了一年neon，还是有些小毛病让人烦心，刚刚回到mint。有机会试试pop!，希望能比mint更加稳定和鲁棒，心思应该花在工作而非OS上。

Pop!_OS 从其他基于 Ubuntu 的发行版中脱颖而出的原因有哪些？

![](/data/attachment/album/202112/26/115716cr4hqyp8qjrxyqp9.jpg)

Pop!\_OS 是向 Linux 初学者和游戏玩家的热门推荐。但是，Pop!\_OS 从其他基于 Ubuntu 的发行版中脱颖而出的原因有哪些？为什么你应该考虑把它作为你电脑日常使用的系统？

三年前，我从 Ubuntu 转到了 [Pop!\_OS](https://itsfoss.com/pop-os-vs-ubuntu/)，从那时起它就成了我的日常系统。

让我为你指出选择它作为你的日常操作系统的好处。

### 选择 Pop!\_OS 而不是其他 Linux 发行版的原因

请注意，这里列出的一些原因可能是主观的，完全取决于你想要什么，以及你期望的桌面体验。

考虑到这一点，让我强调一下为什么我选择 [Pop!\_OS](https://pop.system76.com/) 作为我的主要操作系统，而不是其他 Linux 发行版。

#### 1、单独的 NVIDIA/AMD ISO

![](/data/attachment/album/202112/26/115729uqpsg0wzsd7d975r.png)

如果你有一个装有 Nvidia GPU 的机器，使用 [Nouveau](https://nouveau.freedesktop.org)（Nvidia 显卡的开源驱动程序）来使其工作是不可行的。

好吧，你的显示器可以工作，但你不能发挥你的显卡的优势。

例如，你会在几乎所有需要利用 GPU 的任务中遇到卡顿和性能问题。

因此，专有的 Nvidia 驱动程序是解决这些问题的唯一解决方案。

而且，为了让添加专有驱动程序能够开箱即用，发行版需要将其包含在 ISO 中，或者提供一个单独的 ISO，其中包含 Nvidia 最新可用的专有驱动程序。

虽然你肯定可以手动安装专有驱动程序，但这并不是完美的体验。

顺便说一句，对于大多数流行的 Linux 发行版，这个过程应该与 [在 Linux Mint 中安装 Nvidia 驱动程序](https://itsfoss.com/nvidia-linux-mint/) 类似。

![驱动管理器 | Linux Mint (Cinnamon)](/data/attachment/album/202112/26/115730zn5w8wns8acj6nn8.jpg)

请注意，有时你需要排除故障或重新安装正确的（或较早的驱动版本）才能正确使用 Nvidia 显卡。

但是，如果你有单独的 ISO 来支持 Nvidia 的系统或 Nvidia 图形安装模式（如 Zorin OS），那就可以消除手动安装 Nvidia 驱动程序的麻烦。

这不仅仅是为了方便使用，而是 Pop!\_OS 通过提供帮助性的 Nvidia ISO 做到了开箱即用。

当我试图手动安装专有驱动程序时，我曾在 Linux Mint、Ubuntu 和其他一些发行版上遇到过问题。因此，Pop!\_OS 对于我带有 Nvidia 显卡的系统来说，设置起来非常容易。

#### 2、自动平铺管理器

![](/data/attachment/album/202112/26/115730ybc3msydyz4c9dcw.png)

如果没有平铺管理器，你需要不断地拖放（和移动）你的活动窗口来组织它们以便快速访问。

因此，一个窗口平铺管理器可以方便地自动组织你启动的应用程序的活动窗口。

当然，使用平铺管理器的体验会因你的屏幕尺寸而不同，但即使你有一个尺寸不大的 27 英寸显示屏，它也应该会有明显的体验改善。

我自己一直在使用它，即使没有大显示器（或双显示器设置）。

我从来没有在笔记本电脑上使用过它，但整天工作时，拥有一个自动窗口平铺管理器（你可以启用/禁用）听起来是一个有用的功能。

它有助于提高你的多任务处理能力，而不一定要移动到不同的工作空间。

#### 3、使用的便利性

为什么你认为 Ubuntu 是 [最好的 Linux 发行版](https://itsfoss.com/best-linux-distributions/) 之一？

多年来，它一直设法提供易于使用的现代桌面体验。

令人印象深刻的是，System76 已经设法将 Pop!\_OS 的用户体验在 Ubuntu 的基础上提升了一个档次。

因此，Pop!\_OS 不仅仅是另一个 Ubuntu 发行版，它的应用启动器、应用库、坞站、工作区定制以及其他各种优化都带来了独特的桌面体验。

对于我的使用情况而言，它感觉比 Ubuntu 更好。别忘了，它还包括一些工具，比如 [Popsicle](https://github.com/pop-os/popsicle)，这些工具在以后的工作中会很方便。

#### 4、较新的 Linux 内核

![Pop!_OS 21.10 具有 Linux 内核 5.15.8](/data/attachment/album/202112/26/115730xds8m2ff82i8w8l8.png)

Ubuntu 可能不具有最新和最棒的 Linux 内核，特别是它的 LTS 版本时。

然而，Pop!\_OS 尽力提供最新的 Linux 内核版本，即使是在 LTS 版本中。例如，Ubuntu 20.04.3 LTS 包含了 Linux 内核 5.11，但 Pop!\_OS 20.04 LTS 具有 Linux 内核 5.13。

对于大多数用户来说，这可能不是什么大问题，但是 Pop!\_OS 比其他大多数 Linux 发行版更快地推送了更新的 Linux 内核。

如果你想让你的最新和最棒的硬件与 Linux 发行版很好地配合工作，Pop!\_OS 是一个绝妙的选择。

#### 5、应用程序启动器

![](/data/attachment/album/202112/26/115730ysthg77tasvixwx7.png)

应用程序启动器在快速启动应用程序或在活动窗口之间进行导航时非常方便。

使用快捷方式（也可能是链接到它的宏，就像我使用的那样）调用启动器的能力，使它成为启动应用程序和在它们之间进行导航的最快捷的方式之一。

当然，你可以安装像 [Ulauncher](https://itsfoss.com/ulauncher/) 这样的工具来实现同样的目的。不过，它是预先配置、开箱即用的，不需要任何故障排除，这很方便。

#### 6、快速升级过程

尽管升级 Linux 发行版通常是无忧无虑的，但 Pop!\_OS 在每次更新时都尽力完善和改进这个过程。

例如，在 Pop!\_OS 21.10 中，他们引入了一些改进措施，以防止升级过程中的冲突，并使其成为一个顺畅的过程。

事实上，我从 Pop!\_OS 21.04 升级到 21.10 只需点击几下，没有遇到任何问题。

#### 7、努力改善现代桌面体验

Pop!\_OS 可能不是一个 [轻量级 Linux 发行版](https://itsfoss.com/lightweight-linux-beginners/)，但它专注于为现代桌面用户提供一流的体验。

虽然有很多适合老式电脑的 Linux 发行版，但以新一代硬件为目标同样重要。

System76 也在他们的最新笔记本硬件配置上测试过该发行版，Pop!\_OS 在这方面表现得非常好。

此外，Pop!\_OS 还提供了开箱即用的调整功能，使用户在操作系统方面的体验变得简单。虽然 Linux 就是不断调整和控制你的系统，但 Pop!\_OS 似乎成功地使它成为一个主流选择和一个可行的 Ubuntu 替代品，这可能对一些人来说更好。

#### 补充：软件包更新

System76 最近在 [Pop!\_OS 21.10 版本](https://news.itsfoss.com/pop-os-21-10/) 中从 Launchpad 转向了自己的软件库。

这应该能让他们更快地推送更新，并控制软件包以确保用户的最佳体验。

这也应该使 Pop!\_Shop 更加有用。因此，这是又一个在我的机器上继续使用 Pop!\_OS 的理由。

### 总结

Pop!\_OS 在很多地方做的很好。

如果你对选择一个易于使用、与最新硬件兼容、适合各种使用情况的 Linux 发行版感到困惑，我会推荐 Pop!\_OS。

上述原因是我坚持使用它的原因，即使在我曾经尝试切换到 Zorin OS 和 Linux Mint 几个月。

---

via: <https://itsfoss.com/why-use-pop-os/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #497 Telegram 被指明文存储用户发送的信息

Summary: 更多：• 微软复活 Windows 上的经典功能 RSS 阅读器 • KiCad 发布重要版本 6.0

准备从AD切换到kicad 6.0 ，拥抱开源。

![](/data/attachment/album/202112/26/174217kagj8y402gog0thy.jpg)

![](/data/attachment/album/202112/26/174231qehchjoavajlckca.jpg)

### Telegram 被指明文存储用户发送的信息

Telegram 已经赢得了越来越多的声誉，成为了 Facebook 的 WhatsApp 或 Messenger 的更安全的替代品。但 Signal 创始人 [指出](https://www.phonearena.com/news/telegram-online-privacy-security_id137402) 通过 Telegram 发送的信息会以其原始形式或纯文本存储在 Telegram 的服务器上，并且这家公司没有采用任何形式的加密来保护用户的私人数据。他说，甚至 Messenger 和 WhatsApp 都比 Telegram 提供了更多的隐私安全。这两个应用至少为通过其平台发送的所有文本信息提供了端到端加密。

>
> 老王点评：这个指控可有点严重，不知道是否有事实支撑。
>
>
>

![](/data/attachment/album/202112/26/174241ok0ctspmc9wr0m9j.jpg)

### 微软复活 Windows 上的经典功能 RSS 阅读器

继谷歌之后，微软现在也在测试由 [RSS 驱动](https://www.windowslatest.com/2021/12/26/microsoft-edge-to-revive-rss-feeds/) 的“可跟踪网站”的功能，这将帮助用户与自己喜欢的网站保持联系。微软正在 Edge Canary 渠道的用户中测试该功能，允许用户使用工具栏中的“收集”按钮收取网站的更新信息，它们会出现在“收集”面板中，发布者发表的文章将出现在提要列表中。微软还将引入一个新的“关注”按钮，你在 Edge 中访问的网站，如果有支持的 RSS 源，地址栏中就会有一个“关注”按钮，网站的更新也会出现在一个新的侧面板中。

>
> 老王点评：我们不要算法来决定该看什么，而是自己决定想看什么。
>
>
>

![](/data/attachment/album/202112/26/174307rhhzrdnu1ud2yyyu.jpg)

### KiCad 发布重要版本 6.0

已有 30 年历史的 [KiCad](https://www.kicad.org/) 发布了一个重要的里程碑版本 6.0。它是最好的自由开源的电子设计自动化套件之一，被 System76 用于设计他们的 [开放硬件产品](https://www.phoronix.com/scan.php?page=news_item&px=System76-Launch-Keyboard)。KiCad 6.0 引入了新的文件格式，改进了其用户界面，大幅改进了 3D 查看器，更多变化请参考其 [发布公告](https://www.kicad.org/blog/2021/12/KiCad-6.0.0-Release/)。

>
> 老王点评：这种生产力软件才是自由及开源软件领域最需求的。
>
>
>


elementary OS 6 应该改进体验的 5 个地方

安装过一回，gnome3的桌面有点卡，应用商店不够人性化，命令行apt update后主题全部变成默认的灰色调，就差直接变成ubuntu了。

刚出来的时候就安装升级了. 结果. 会出现锁屏变注销, 锁屏前的程序状态全部清掉了. 然后就果断退坑了...

我准备 从 突然 无法启动（ flatpak install flathub  ...bookworm  之后）的 mint 20 跳进elementary 的坑。

来自山西晋中的 Chrome Mobile 96.0|Android 10 用户

>
> elementary OS 是一个漂亮的 Linux 发行版，但它适合所有人吗？它们是否有可以做得更好的地方？下面是我的想法。
>
>
>

![](/data/attachment/album/202112/27/114703ibmbzoqmbtdm663n.png)

[elementary OS 的 6.1 是最新的版本](https://news.itsfoss.com/elementary-os-6-1-release/)，它做了许多基本的改进，带来了一些新功能。

当然，为你的系统选择的 Linux 发行版在很多方面都是不同的。然而，我认为在 elementary OS 中，有一些事情可以做得更好。

在这里，我列出了 elementary OS 中可以做的一些改进。

不过，这仅代表我个人观点，请诸位轻喷。

### elementary OS 中可以改进的东西

如果你想看的话，我也打算指出其他发行版的我不喜欢东西（从这篇开始）。

发行版通常仅展示其好的一面，除非有人指出一个发行版中潜在的细微差别，否则你无法真正确定这个发行版是否适合你。

#### 1、没有内置的 Debian 软件包安装程序

![](/data/attachment/album/202112/27/114703i77izd3au7gdgf6s.png)

它是一个基于 Ubuntu 的发行版，但下载一个 deb 文件后才发现无法安装，还得让你寻找解决方案。

这当然是有原因的，因为 elementary OS 在 [elementary OS 6 发布](https://news.itsfoss.com/elementary-os-6-release/) 时切换到了只使用 Flatpak 的模式，即使是对于第一方的应用程序也是如此。

然而，新用户很可能不知道像 Eddy 这样的解决方案，它是一个 Debian 软件包安装程序，可以在 AppCenter 中找到。

当你尝试安装 deb 包时，指向该工具的通知/提示应该说明清楚。或者，预下安装 Eddy 应该会让事情变得更方便。

#### 2、Flathub 支持开箱即用

![](/data/attachment/album/202112/27/114704lhncppszqpc33nnd.png)

Flatpak 优先的方法使安装软件更加安全和方便。然而，你不能通过 Flathub 安装 Flatpak 应用程序，除非你（使用终端）手动添加了第三方 Flatpak 仓库。

即使 AppCenter 提供了 Flatpak 应用程序，但它可能不足以满足所有用户的需要。相比之下，Flathub 提供了大量的 Flatpak 应用程序。

虽然提供第一方的体验，并且让用户能够在需要时启用第三方（Flathub）是件好事，但是否可以做些什么来轻松启用 Flathub 的支持，而无需去终端？（忽略 flatpak 的参考文件）

![](/data/attachment/album/202112/27/114705pl1dfz3uzu8zs5lw.png)

好吧，我认为用一个快速切换开关来启用/禁用开箱即用的 Flathub 支持可以使事情变得更好。

或者，像你在上面的截图中注意到的那样，在建议启用 Flathub 的同时提到该命令。

#### 3、最小化按钮

![](/data/attachment/album/202112/27/114706y9p25p611625ifzf.png)

考虑到 elementary OS 没有像 Pop!\_OS 那样的自动平铺窗口功能，许多应用程序上缺少最小化按钮可能会让人觉得令人不适。

是的，你可以利用键盘上的快捷键 `Super+H` 来隐藏/最小化窗口。然而，对于以鼠标操作为主的用户来说，没有最小化按钮的感觉并不舒服。

#### 4、没有系统托盘支持

![](/data/attachment/album/202112/27/114707rxxpwnk8uuukesin.png)

根据他们的设计选择，elementary OS 团队认为最好不要有系统托盘的支持（或者是我从 Reddit 的一些帖子中了解到的情况）。

不幸的是，系统托盘的图标对于快速访问和关注某事物的状态非常有用。

例如，我可以从应用指示器图标中快速访问 Flameshot 截图工具，在使用 Insync 等工具时检查同步状态，当 Slack 中有我的信息时也会得到通知。

而如果没有系统托盘图标的整合支持，我就不能做这些事情，这是一个缺陷。

#### 5、一个单独的 NVIDIA ISO

![](/data/attachment/album/202112/27/114707urww2bh7xmmlmlrb.png)

单独的 NVIDIA ISO（或 Nvidia 显卡安装模式）比通过软件中心安装专有的 Nvidia 驱动程序要方便得多。

当然，我在使用 AppCenter 安装 Nvidia 驱动时没有任何问题。但是，有了单独的 ISO，你就省去了安装后的额外步骤。

### 总结

每个操作系统都有缺陷，Linux 发行版也不例外。

有时这些细微的差别是根据其目标用户设计出来的。你可能喜欢也可能不喜欢一个发行版所做的一切，这就是为什么要知道它们能否做得更好（或是否适合你）。

elementary OS 无疑是 [最漂亮的 Linux 发行版之一](https://itsfoss.com/beautiful-linux-distributions/)。但是，它适合你吗？

好吧，如果我提到的一些观点是你不在意的，那它对你来说应该是很好的体验。

---

via: <https://news.itsfoss.com/elementary-os-6-things-to-improve/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


用 pdftk-java 命令编辑 PDF 的 4 种方法

论pdf编辑神器，Libre office是永远的神

来自广东佛山的 Chrome Mobile 75.0|Android 10 用户

>
> 用这个方便的 Linux 命令合并 PDF、删除页面、分割 PDF 和填写表格。
>
>
>

![](/data/attachment/album/202112/27/130643zzwbp4azsxahqzga.jpg "a checklist for a team")

技术白皮书、手稿和 RPG 手册，我每天都要处理大量的 PDF 文件。PDF 格式之所以受欢迎，是因为它包含经过处理的 PostScript 代码。PostScript 是现代打印机的原生语言，所以出版商经常将一本书的数字版本发布为 PDF，因为他们已经投入了时间和精力来制作印刷用的文件。但是，PDF 并不是一种可编辑的格式，虽然可以进行一些逆向处理，但它是数字数据发送到打印机之前的最后一站。即便如此，有时你还是需要对 PDF 进行调整，而我最喜欢的工具之一就是 [pdftk-java](https://gitlab.com/pdftk-java/pdftk) 命令。

### 在 Linux 上安装 pdftk-java

顾名思义，`pdftk-java` 是用 Java 编写的，所以只要你安装了 Java，它就能在所有主流的操作系统上工作。

Linux 和 macOS 用户可以从 [AdoptOpenJDK.net](https://adoptopenjdk.net/releases.html) 安装 Java。Windows 用户可以安装 [Red Hat 的 OpenJDK 的 Windows版本](https://developers.redhat.com/products/openjdk/download)。

要安装 `pdftk-java`：

1、从 Gitlab 仓库下载 [pdftk-all.jar 程序](https://gitlab.com/pdftk-java/pdftk/-/jobs/1527259628/artifacts/raw/build/libs/pdftk-all.jar)，并将其保存到 `~/.local/bin/` 或[你 path 变量中的其他位置](https://opensource.com/article/17/6/set-path-linux)。

2、在你喜欢的文本编辑器中打开 `~/.bashrc` 并添加这一行：

```
alias pdftk='java -jar $HOME/.local/bin/pdftk-all.jar'

```

3、加载你的新 Bash 设置：

```
$ source ~/.bashrc

```

### 命令语法

一个有效的 `pdftk-java` 命令的结构遵循一个模式，但在模式中的内容有很大的灵活性。语法有点不寻常，因为它没有使用传统风格的 [终端选项](https://opensource.com/article/21/8/linux-terminal)，但经过实践，它并不难记。

* `pdftk`：调用该命令的别名
* 输入文件：你想修改的 PDF 文件
* 动作：你想对输入文件做什么
* 输出：你想在哪里保存你修改过的 PDF 文件

最复杂的是动作部分，所以我将从简单的任务开始。

### 将两个 PDF 文件合并成一个

一本书的封面通常在一个单独的应用中创建，如 Inkscape 或 GIMP，而书的其他部分通常在 Scribus 等排版程序或 LibreOffice 等办公套件中完成，这种情况并不罕见。你可以在你的排版应用中把这两者结合起来。像 Scribus 这样的出版软件可以很容易地引用一张图片，这样当封面改变时，它就会在版面中自动更新。然而，也可以用 `pdftk-java` 将封面预置到 PDF 中：

```
$ pdftk cover.pdf body.pdf \
  cat \
  output book.pdf

```

在这个例子中，动作是 `cat` 即 <ruby> 连接 <rt>  concatenate </rt></ruby> 的缩写，和 Linux 的 [cat 命令](https://opensource.com/article/19/2/getting-started-cat-command) 一样，它将一个或多个 PDF 文件串联成一个数据流，数据流被引导到“<ruby> 输出 <rt>  output </rt></ruby>”参数指定的任何文件中。

### 从一个 PDF 中删除页面

你不能确切地从一个 PDF 中删除一页，但你可以创建一个新的 PDF，只包含你想保留的页面。

```
$ pdftk book.pdf \
  cat 1 3-end \
  output shorter-book.pdf

```

在这个例子中，我的书的文件的第 1 页，以及从 3 到结尾的所有页面，都被保存到一个新文件中。因此，我删除的那一页是第 2 页。

### 将一个 PDF 分割成不同的文件

将一个 PDF 文件分割成许多不同的文件也使用 `cat` 动作，它的原理与删除页面相似。你可以通过将你想要的页面发送到一个新文件来分割一个 PDF：

```
$ pdftk book.pdf \
  cat 1-15 \
  output part-1.pdf
$ pdftk book.pdf \
  cat 16-42 \
  output part-2.pdf

```

如果你需要将一个 PDF 分割成单页文件，有一个特殊的动作，叫做 `burst`：

```
$ pdftk book.pdf burst
$ ls
book.pdf pg_0001.pdf pg_0002.pdf
pg_0003.pdf pg_0004.pdf pg_0005.pdf
[...]

```

### 填写表格

很少有人能否认多年来 PDF 格式变得越来越臃肿，而你有时在 PDF 文件中发现的一个功能是可填写的表格。你会在美国税务文件、RPG 角色表、线上学校作业本和其他旨在互动的 PDF 文件中看到这种情况。虽然大多数现代的 PDF 浏览器，比如 GNOME 的 Evince 和 KDE 的 Okular，都可以填写 PDF 表格，但你也可以在 `pdftk-java` 的帮助下填写 PDF 表格。

首先，你必须使用 `generate_fdf` 动作提取表单数据。这将提取表单元素的 ID，并将它们放入一个文本文件。

```
$ pdftk character-sheet.pdf \
  generate_fdf \
  output chsheet-form.txt

```

你的目标文件（在这个例子中是 `chsheet-form.txt`）包含 PDF 中的表格数据，但只是文本部分。你可以在任何标准的文本编辑器中编辑它，如 [Atom](https://opensource.com/article/20/12/atom) 或 [Gedit](https://opensource.com/article/20/12/gedit)。

在对生成 PDF 的组织的工作流程的有时令人钦佩和有时尴尬的一瞥中，你会发现一些表格有明确的标签，而其他表格有默认的名字，如 “Checkbox\_001” 和 “Textfield-021”，所以你可能要把你的文本文件和你的 PDF 对照一下，但如果你要写一个脚本来自动填写表格，这可能是值得的。每个标签都被标记为 `/T` 项，在接下来的一行中，有空间（标记为 `/V`）提供给文本输入。下面是一个片段，它的标签有上下文，并填入了一些数据：

```
/T (CharacterName 2)
/V (Abaddon)
>>
<<
/T (SlotsTotal 24)
/V ()
>>
<<
/T (Hair)
/V (Brown)
>>
<<
/T (AC)
/V (15)
>>
<<
/T (Background)
/V ()
>>
<<
/T (DEXmod )
/V ()

```

当你输入了表单数据，你就可以用 `fill_form` 动作将你的文本输入与 PDF 结构结合起来：

```
$ pdftk character-sheet.pdf \
  fill_form chsheet-form.txt \
  output completed.pdf

```

下面是一个结果示例。

![A form filled by pdftk-java](/data/attachment/album/202112/27/130727qw8glu39ckhs5c63.jpg "A form filled by pdftk-java")

### PDF 修改变得简单

当你处理大量的 PDF 文件或通过 shell 脚本处理 PDF 文件时，像 `pdftk-java` 这样的工具是非常有价值的，因为它使你不必手动做所有的事情。当我从 [Docbook](https://opensource.com/article/17/9/docbook) 的输出建立一个 PDF 时，它是一个 Makefile，调用 `pdftk-java` 完成任何数量的任务，所以我没有机会忘记某个步骤或打错命令，也没有必要把时间花在这上面。在你自己的工作流程中，还有很多其他的原因你可能会使用 `pdftk-java`，它还可以做很多其他的事情，包括 `shuffle`、`rotate`、`dump_data`、`update_info` 和 `attach_files` 等动作。如果你发现自己经常与 PDF 文件打交道，可以试试 `pdftk-java`。

---

via: <https://opensource.com/article/21/12/edit-pdf-linux-pdftk>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #498 Linus Torvalds 在 1994 年的主题演讲录音被发现

Summary: 更多：• Wi-Fi 7 的速度将是 Wi-Fi 6 的 3 倍 • 2021 年 DuckDuckGo 搜索查询量增长 47%

![](/data/attachment/album/202112/27/193017i6flfcrnzml6fcfs.jpg)

![](/data/attachment/album/202112/27/193023d488svqsy85eyjbf.jpg)

### Linus Torvalds 在 1994 年的主题演讲录音被发现

1994 年，Linus Torvalds 出席了 DECUS'94 会议，当时还只有 24 岁的他发表了两个演讲，介绍了 Linux 和 Linux 实现中存在的一些问题，那时候 Linux 刚刚诞生 2 年多。这是他首次在一个大型会议上谈论 Linux，共有 1.9 万人出席了这场大型会议，但只有 40 人前来听他的演讲。他听起来有点紧张。该录音最初被认为丢失了，加拿大 LPI 董事主席 Jon Hall 在整理办公室时发现了记录录音的录音带，为此购买了一台播放机，用 Audacity 捕捉音频，然后制成数字拷贝作为 [圣诞礼物](https://archive.org/details/199405-decusnew-orleans) 提供给 Linux 社区。

>
> 老王点评：诞生 30 年的 Linux，已经有一些值得纪念的文物了。
>
>
>

![](/data/attachment/album/202112/27/193034jhhplvwjbichtwhr.jpg)

### Wi-Fi 7 的速度将是 Wi-Fi 6 的 3 倍

联发科将在 CES 2022 展会上 [发布](https://www.digitaltrends.com/computing/wi-fi-7-coming-to-ces-2022-by-mediatek/) Wi-Fi 7 网络技术，速度可达 30Gbps，是 Wi-Fi 6 的 3 倍，在 Wi-Fi 6 标准的基础上引入了许多新的技术，比如 320MHz 带宽、4096-QAM、Multi-RU、多链路操作、多 AP 协作等等。此外，Wi-Fi 7 所使用的芯片也会从目前的 16/12nm 工艺升级到更先进的 6nm，有助于降低功耗及发热。不过，Wi-Fi 7 距离制定最终标准及上市还有段时间，要到 2024 年左右。

>
> 老王点评：5G/6G 发展这么快，WiFi 7 有什么独特优势么？会不会将来融合起来？
>
>
>

![](/data/attachment/album/202112/27/193052rydrm9xr0cf0mrfe.jpg)

### 2021 年 DuckDuckGo 搜索查询量增长 47%

注重隐私的搜索引擎 DuckDuckGo 在 2021 年的搜索查询量继续 [快速增长](https://www.bleepingcomputer.com/news/technology/privacy-focused-search-engine-duckduckgo-grew-by-46-percent-in-2021/)，其平均日搜索量超过了 1 亿，年搜索量比去年增长了 47%。但它在搜索市场的占有率仍然只有 2.53%，谷歌依旧占据支配地位，市场份额高达 87.33%，微软的 Bing 其次占 6.43%，雅虎 3.3%。

>
> 老王点评：看来想要成为主流，任重道远啊。
>
>
>


曾经遗失的 Linus Torvalds 首次在大型会议上的演讲

Summary: 这就是给你的圣诞礼物，来自将近三十年前。

这就是给你的圣诞礼物，来自将近三十年前。

![](/data/attachment/album/202112/28/001711jekaa5vezszwnpww.jpg)

这是承诺已久的、送给所有热爱 GNU/Linux 的好男孩、好女孩们的圣诞礼物。

那是 1993 年 11 月，我收到了我的第一张 CD，它上面标有 “**一个完整的、带源代码的 Unix 系统，售价 99 美元**”。 虽然我对这一说法持怀疑态度（因为当时 USL 与 BSDi 的诉讼正激烈地进行着），但抱着试试看的态度，我寄出了 99 美元，就为了在邮件中收到一本薄薄的小册子和一张 CD-ROM。

由于我没有能运行它的英特尔的 “个人电脑” ，我所能做的就是把这张光盘挂载在我的 MIPS/Ultrix 工作站上，然后阅读它的手册（`man 1`）。

虽然我对它很感兴趣，但却将其束之高阁，而没实际运行它。

大约在 1994 年 2 月，DECUS 的 UNISIG 主席 Kurt Reisler 发送了电子邮件（出于某种原因抄送给我），说想把这位我从未在芬兰任何地方听说过的人带到 1994 年 5 月在新奥尔良举行的 DECUS 会议上，让他去讲讲一个甚至不能在 Ultrix 或 DEC/OSF1 上运行的项目。

在 Kurt 发送了许多电子邮件，但没有为这次旅行筹集到钱之后，我发了个善心，让我的管理层资助了这次旅行。这里面其实还有很多故事，需要我也资助一台又臭、又弱、又可怜的英特尔电脑来运行这个项目，但这些事情已经在其他地方讲过了，不再赘述。

等我到了 DECUS，我发现 Kurt 试图在这台又臭、又弱、又可怜的英特尔电脑上安装这个 “项目”，但看起来运气不佳。这时，一个留着棕褐色头发、戴着金属框眼镜、穿着羊毛袜和凉鞋的帅气年轻人出现了。他操着一口轻快的欧洲口音的流利英语，说：“May I help you?”

10 分钟后，GNU/Linux 就在那台又臭又弱又可怜的英特尔电脑上运行起来了。

我坐下来使用它，感到很惊讶。它很好，非常、非常好。

我发现那天晚些时候，Linus（当然是 Linus Torvalds）要发表两个演讲：一个是《Linux 简介》，另一个是 《Linux 的实现问题》。

Linus 对发表这些演讲感到非常紧张。这是他第一次在一个重要的会议（有大约 19000 人参加了那个 DECUS）上用英语给英语听众们做演讲。他一直觉得自己好像要呕吐了。我告诉他，会没事的。他发表了演讲。虽然每场讲座只有四十多人到场，但掌声不断。

关于蒸汽驱动的内河船只、名为 “飓风” 的烈性酒精饮料、大量的设备和资金，以及只是基于善意和握手的工程资源的其余故事，以前在其他地方也讲过，这里也不说了。

不幸的是，Linus 所做的演讲已经丢失。

直到现在。

在我打扫办公室的时候，我发现了一些 Linus 谈话的录音带，这是我用自己的钱买的。现在，为了给你们制作这份礼物，我又得买一台好的录音带播放机，用 Audacity 捕获了音频，然后制作出这些录音带的数字拷贝，并放在 [这里](https://archive.org/details/199405-decusnew-orleans/199405DECUSNewOrleansLinusAnIntroductionToLinux.ogg)。不幸的是，我没有幻灯片的副本，我也不确定 Linus 的演讲有多少张幻灯片，我也不觉得你会需要它们。（LCTT 译注：有评论给出了 [幻灯片](http://blu.org/meetings/1994/08/)。）

这就是给你的圣诞礼物，来自将近三十年前。 祝大家 “Linuxing” 快乐，无论你的宗教或信仰如何。

### 资源

#### 《Linux 简介》

幻灯片：

<https://img.linux.net.cn/static/pdf/DECUS-Linux-Intro.pdf>

音频：

#### 《Linux 的实现问题》

幻灯片：

<https://img.linux.net.cn/static/pdf/DECUS-Linux-Kernel.pdf>

音频：

---

via: <https://archive.org/details/199405-decusnew-orleans/199405DECUSNewOrleansLinusAnIntroductionToLinux.ogg>

作者：[John Hall](https://archive.org/search.php?query=creator%3A%22John+Hall%22) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](/article-14121-1.html) 荣誉推出


AppImage Pool：一个帮助你寻找和管理 AppImage 的应用商店

这个不错，有时间复刻一下，弄个国内版本

>
> 这是一个管理和寻找 AppImage 应用的有趣的 GUI 前端。让我们来了解一下它！
>
>
>

我们有很多关于 [AppImage 的历史和制作它](https://itsfoss.com/appimage-interview/) 的信息。如果你是 Linux 的新手，你也应该看看我们的 [AppImage 使用指南](https://itsfoss.com/use-appimage-linux/)。

AppImage 使应用可以很容易地在不同的发行版上运行，而不需要安装依赖关系或任何东西。

然而，与 [Flatpak](https://itsfoss.com/what-is-flatpak/) 的 Flathub 不同，你可能找不到一个浏览 AppImage 应用的门户。

[Nitrux OS](https://nxos.org) 中的 NX 软件中心做了类似的工作，但它不能轻易安装在其他发行版上。因此，AppImage Pool 作为 AppImage 应用的应用商店上场了，你可以安装在任何 Linux 发行版上。

### AppImage Pool：一个管理和寻找 AppImage 应用的 GUI 前端

![](/data/attachment/album/202112/28/105429d2pr3seffyt20mcr.png)

AppImage Pool 是一个使用 Flutter 构建的 GUI 前端，它从 [AppImageHub](https://www.appimagehub.com) 获取应用数据，并让你快速搜索、下载和管理 AppImage 应用。

它并不托管任何 AppImage 文件，但它可以让你从项目的 GitHub 页面下载可用的 AppImage 文件。

当你试图下载一个 AppImage 文件时，它会从应用的 GitHub 发布页列出所有下载方式。

我不确定它是否仅限于来自 GitHub 的项目，但你可以在 [AppImageHub 门户](https://www.appimagehub.com) 中找到各种不同方式。

### AppImage Pool 的特点

![](/data/attachment/album/202112/28/105431m6433w6obymzbmy0.png)

AppImage 是一个简单直白的应用商店，可以让你搜索、下载和管理 AppImage 文件。

其中一些功能包括：

* 能够下载特定版本的 AppImage 文件
* 按类别过滤应用
* 下载进度图标
* 管理所有已安装的 AppImages
* 查看下载历史

考虑到该应用是使用 Flutter 构建的，它给人带来了快捷的用户体验。

如果你是一个开发者，这鼓励了你使用它制作一个应用的话，你也可以 [在 Linux 中安装 Flutter](https://itsfoss.com/install-flutter-linux/)。

![](/data/attachment/album/202112/28/105432clbl3qllls566ro3.png)

### 在 Linux 中安装 AppImage Pool

由于明显的原因，开发者提供了一个可供下载的 AppImage 文件。

你也可以选择从 [Flathub](https://flathub.org/apps/details/io.github.prateekmedia.appimagepool) 中 [安装它的 Flatpak 包](https://itsfoss.com/flatpak-guide/)。如果你想测试它即将发布的任何版本，也有一个每夜构建的 AppImage 版本。

在其 [GitHub 页面](https://github.com/prateekmedia/appimagepool) 上可以了解关于它的更多信息。

* [AppImage Pool 下载](https://github.com/prateekmedia/appimagepool/releases)

### 使用 AppImage Pool 的感受

![](/data/attachment/album/202112/28/105434yzvkzqpvjvkyqvvz.png)

该应用可以如预期的工作。然而，我注意到，列出的一些应用没有下载链接或任何相关信息。

毕竟，这些数据是来自于 AppImageHub 的。

另外，你可能会觉得奇怪，有些应用只列出了预发布的 AppImage 文件，比如 Blender。

![](/data/attachment/album/202112/28/105436wxtp87pxppiitvpa.png)

虽然这也是可以选择项目发布分支的一个优势，但我认为我不会下载预发布包。

总的来说，找到一个能让人轻松下载和管理 AppImages 的东西是件好事。

我建议你试一试，并在下面的评论区告诉我你的想法。

---

via: <https://itsfoss.com/appimagepool/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #499 马斯克的星链卫星两次导致中国空间站紧急规避

Summary: 更多：• 意大利法院认定开源软件许可证的可执行性 • 研究发现 1200 多个能够拦截 2FA 的钓鱼工具包

如果越来越多的法院支持GPL协议的授权内容。那我觉得GPLV2还是更自由一些。自由本身就是一种自愿行为，违背了自愿本身就是一种不自由。当然自由也是科学精神的自然组成部分。

我感觉您说的好像 FreeBSD 那种许可证的协议。

![](/data/attachment/album/202112/28/171329eppaoa1ar3aparra.jpg)

![](/data/attachment/album/202112/28/171340jqt22njowt0nj6p3.jpg)

### 马斯克的星链卫星两次导致中国空间站紧急规避

[中国向联合国通报称](https://www.cnbc.com/2021/12/27/elon-musk-spacex-face-online-backlash-in-china-after-space-station-near-misses.html)：2021 年 7 月 1 日，星链-1095 卫星与中国空间站间出现近距离接近事件。它之前稳定运行在平均高度约 555 千米的轨道上一年有余，然后该卫星持续降轨机动至平均轨道高度 382 千米，近距离接近了中国空间站。2021 年 10 月 21 日，星链-2305 卫星处于连续轨道机动状态，与中国空间站发生近距离接近事件。中国空间站两次主动实施了紧急避碰措施。SpaceX 已发射 1900 多颗星链卫星，总计拟发射 4.2 万颗卫星。此外，天文学家们也认为星链严重影响了地面望远镜对宇宙的观测。

>
> 老王点评：在这些卫星真正发挥作用，并合理利用太空资源之前，或许就是一堆太空垃圾，也有可能是太空武器。
>
>
>

![](/data/attachment/album/202112/28/171356zr7u99uukk9t7jz7.jpg)

### 意大利法院认定开源软件许可证的可执行性

12 月 13 日，意大利威尼斯法院在一起涉及 GPL 许可证的案件中，肯定了开源软件许可证的法律可执行性。[在裁决中](http://ifthisbetreason.com/2021/12/italian-courts-find-open-source-software-terms-enforceable/)，一家软件供应商因未遵守开源许可的要求而败诉。该案涉及一个 GPL 许可的 WordPress 插件。据该软件的版权方称，它的两名前雇员重新分发了该软件，这在 GPL 下是允许的。但再分发没有包括对原始作品的确认，包括被告对软件的修改信息，也没有提到软件的版权所有者。法院裁决，除了命令被告在使再分发软件符合规定之前停止分发该软件，并按天处以罚款，同时要求他们在其网站对法院的裁决进行明显公示，以及支付超过 5000 欧元的诉讼费用。

>
> 老王点评：越来越多的法律实践支持 GPL 等开源许可证的法律效力。
>
>
>

![](/data/attachment/album/202112/28/171410saz7acw3laeqyoa4.jpg)

### 研究发现 1200 多个能够拦截 2FA 的钓鱼工具包

一个学术团队表示，它发现了 1200 多个部署在野外的 [网络钓鱼工具包](https://therecord.media/more-than-1200-phishing-toolkits-capable-of-intercepting-2fa-detected-in-the-wild/)，能够拦截并允许网络犯罪分子绕过双因素认证（2FA）安全代码。在主要科技公司开始将 2FA 作为其用户的默认安全功能后，钓鱼网站发现由于他们无法绕过 2FA 程序，被盗的凭证变得毫无用处。因此，从 2017 年开始，这些网络犯罪分子开始采用新的工具，他们通过窃取用户的认证 cookie 来绕过 2FA，这些 cookie 是用户在 2FA 程序完成后登录账户时在浏览器中创建的。

>
> 老王点评：果然是道高一尺魔高一丈。下面就看如何应对这些新的威胁了。
>
>
>


真的，你的笔记本电脑赛过千万亿台 60 年前的大型机

突然感觉自己4C8T的低压U配8G内存的笔记本也不是那么差了（

但是吧，人往高处走，水往低处流

amd zen2和intel 11-12代比之前又有明显的提升。上一台笔记本还是2代酷睿，一年多前升级到zen2

![](/data/attachment/album/202112/28/233034wltru5h9rwpw9yll.jpg)

每当我听到有人大谈特谈我们现在的计算机要比上世纪 60 年代阿波罗登月时期的计算机强大得多时，我都会感到震惊。这些比较通常严重低估了差异。

1961 年，世界上的一些大学已经购买了 IBM 7090 大型机。7090 系列是第一个全晶体管计算机系列，以今天的货币计算，它的成本为 2000 万美元，相当于今天的顶级笔记本电脑的 6000 倍。它的早期买家通常将计算机作为整个校园的共享资源来部署。很少有用户能幸运地每周获得一小时的计算机时间。

7090 的时钟周期为 2.18 微秒，因此其工作频率略低于 500 KHz。但在那个年代，计算机指令没有流水线执行，所以大多数指令需要一个以上的时钟周期来执行。一些整数运算需要 14 个时钟周期，而一个浮点运算可能需要 15 个时钟周期。因此，通常估计 7090 每秒钟可以执行约 10 万条指令。而大多数现代计算机的 CPU 核心能够以每秒 30 亿条指令的速度持续运行，甚至其峰值速度要快得多。这就是 3 万倍的差距，所以一个有四核或八核的现代芯片很容易达到比 7090 快 10 万倍的运算速度。

与 1961 年那个得到一小时计算机时间的幸运儿不同，你可以一直运行你的笔记本电脑，每周你可以累计得到超过 1900 年的 7090 计算机时间。(我不想问其中有多少时间是花在“我的世界”游戏上的）。

继续这个比较，考虑一下训练流行的自然语言人工智能模型 GPT-3 所需的指令数量。在云服务器上执行这些指令相当于 355 年的笔记本电脑时间，这在 7090 上就是超过 3600 万年。当你等待这项工作完成时，你会需要大量的咖啡。

但是，说真的，这种比较对今天的电脑还是不公平的。你的笔记本电脑可能有 16 GB 的主内存。而 7090 的最大内存为 144 KB。要运行同样的程序，需要将大量的数据从 7090 中换入换出，而且必须使用磁带来完成。当时最好的磁带机的最大数据传输率为每秒 60KB。虽然一台 7090 计算机上可以连接 12 个磁带设备，但这个速率是在它们之间共享的。而且，这种共享需要一组人类操作员来交换驱动器上的磁带；以这种方式读取（或写入）16GB 的数据将需要三天时间。因此，与今天的速度相比，数据传输也慢了大约 10 万倍。

所以现在 7090 看起来运行速度是你 2021 年的笔记本电脑的千万亿分之一（10<sup> -15</sup>）。在现代的笔记本电脑上运行一周的计算任务，就算是 7090 从宇宙诞生就开始运行也做不完。

但等等，不止如此。笔记本电脑中的每个核心都有内置的 SIMD（单指令、多数据）扩展，在用于向量运算时可以大幅提升浮点运算速度。而在 7090 上甚至没有这些东西的影子。然后是 GPU，最初用于图形加速，但现在用于大部分的人工智能学习，如训练 GPT-3。最新的 iPhone 芯片 A15 Bionic 上就不止一个 GPU，而是有五个 GPU，以及一个额外的神经引擎，在我们所做的所有其他比较的基础上，它可以每秒运行 15 万亿次算术运算。

短短 60 年的差异让人难以置信。但我想知道，我们是否有效地利用了所有这些计算能力，可以像我们的祖先从纸笔到 7090 的飞跃那样做出改变？

这篇文章将以《摩尔如此之多》为题发表在 2022 年 1 月的印刷版上。

---

via: <https://spectrum.ieee.org/ibm-mainframe>

作者：[Rodney Brooks](https://spectrum.ieee.org/u/rodney-brooks) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](/article-14123-1.html) 荣誉推出


我在大型机上玩俄罗斯方块

>
> 下面是我如何通过访问虚拟 Linux 服务器，在大型机上编译和玩我最喜欢的游戏。
>
>
>

![](/data/attachment/album/202112/29/102337wl9sx335t3gxguc5.jpg "Gaming artifacts with joystick, GameBoy, paddle")

可以 [在现代大型机上运行 Linux](https://opensource.com/article/19/9/linux-mainframes-part-1) 的能力为在该平台上做各种事情打开了大门。一个 Apache HTTP 服务器？很简单！一个数据库？你想用 SQL 还是 NoSQL？Kubernetes？当然没问题！正如我在 [大型机上的 Linux：过去和现在](https://opensource.com/article/19/9/linux-mainframes-part-2) 中总结的那样，今天所有最流行的服务器 Linux 发行版都有大型机的版本。

这对那些在大型机上运行关键任务基础设施的公司来说是个好消息，但如果你只是想玩玩大型机呢？我第一次在 IBM LinuxONE 上使用 bash shell 时，安装了 irssi 聊天客户端，向 IRC 上的所有朋友展示了 `/proc/cpuinfo` 的输出，以炫耀这是一个 s390x 架构的系统。

一开始，我对下一步该做什么感到茫然。然后我想，用这台巨大的计算机来玩游戏会很有趣。我首先想到的是 [NetHack](https://www.nethack.org/)，但事实证明，我可以用简单的 `apt install nethack-console` 来安装它。不，我应该编译一些东西才好玩！对于每一种计算机架构，你都需要为其编写的编译器和解释器。Linux 在大型机上已有 20 多年的历史，你通常期望的大多数编译器和解释器都已经被移植了。

在我的成长过程中，我最喜欢的游戏之一是俄罗斯方块，所以它是我进行实验的合理选择。我找到了一个用 C 语言编写的开源俄罗斯方块游戏，叫做 [vitetris](http://victornils.net/tetris/)，并试了试。这就像在任何其他 Linux 服务器上编译一个 C 语言程序一样。

首先，我需要安装一些依赖项。这台主机运行的是 Linux，所以我可以用我的包管理器来 [安装构建需求](https://opensource.com/article/21/11/compiling-code)，然后我就顺利完成了。

接下来，就是获取代码和构建的问题了：

```
curl -LO https://github.com/vicgeralds/vitetris/archive/v0.58.0.tar.gz
tar xvf v0.58.0.tar.gz
cd vitetris-0.58.0/
./configure
make

```

不一会儿，我就开始玩我最喜欢的游戏了！

```
./tetris

```

![Screenshot of an open source Tetris game in progress, running on Linux](/data/attachment/album/202112/29/102354dxfhpmmpbxkvhcbc.png "Tetris")

正如我所说，这与在 Linux 服务器上构建其他 C 程序完全一样，但你是在大型机上做的。

不幸的是，我的车库里还没有一台大型机。相反，我是在马里斯特学院通过 [IBM LinuxONE 社区云](https://developer.ibm.com/gettingstarted/ibm-linuxone/) 计划托管的虚拟服务器上完成了这一切。它让你免费访问一个 s390x 架构的 Linux 服务器，你可以选择最流行的发行版。通过这个虚拟服务器，你可以在 120 天内进行实验。

如果你是一个开源项目的代表，正在考虑在 s390x 上为 Linux 构建你的应用，也有一个项目适合你。当我不玩俄罗斯方块的时候，我在 IBM 的实际工作就是与开源社区合作来做这件事。你可以请求一个永久的 Linux 虚拟服务器供你的社区用于开发，无论是进行手动测试以查看你的应用是否会构建，或正式将其添加到项目的持续集成系统中都行。我建议从社区云开始做一些实验，然后你可以填写 [这个表格](https://www.ibm.com/community/z/open-source/virtual-machines-request/) 来启动获得永久虚拟服务器的流程。

---

via: <https://opensource.com/article/21/12/mainframe-tetris>

作者：[Elizabeth K. Joseph](https://opensource.com/users/pleia2) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #500 谷歌称其已清楚说明 Chrome 隐身浏览模式不会让用户的在线活动“隐形”

Summary: 更多：• LastPass 否认用户密码泄露 • systemd 的代码提交量超过了前几年

卧槽，那我岂不是……

日了狗

来自广东佛山的 Chrome Mobile iOS 94.0|iOS 14.8 用户

日了狗

移动端是不是有问题，没有防重

![](/data/attachment/album/202112/29/164827lr1s236iissssahh.jpg)

![](/data/attachment/album/202112/29/164835ldic66dgiaq6hqic.jpg)

### 谷歌称其已清楚说明 Chrome 隐身浏览模式不会让用户的在线活动“隐形”

美国北加州地方法院周一发布命令，[要求 Alphabet CEO 出庭](https://www.bloomberglaw.com/public/document/BrownetalvGoogleLLCetalDocketNo520cv03664NDCalJun022020CourtDocke/7?doc_id=X5K5UKOD7G99JU86J7OJ8PCGKKQ)，来说明用户在使用 Chrome 浏览器时对其在线隐私的误解。这起 2020 年 6 月提起的诉讼声称 Google 会跟踪用户，即使他们使用的是隐身模式在线浏览。Google 对此说法持有异议，称其隐私说明已清楚说明隐身浏览模式不会让用户的在线活动“隐形”。

>
> 老王点评：我想大多数人都会以为 Chrome 浏览器的隐身模式可以让在线活动隐身吧？
>
>
>

![](/data/attachment/album/202112/29/164901ybziasfbs3ssanas.jpg)

###

### LastPass 否认用户密码泄露

密码管理器 LastPass 的一些用户最近收到了主密码可疑登录尝试的邮件警告，引发了 LastPass 用户密码泄露的担忧。大多数报告似乎来自拥有过时的 LastPass 账户的用户，这意味着他们已经有一段时间没有使用该服务，也没有改变密码。这表明正在使用的主密码列表可能来自早期的数据库。但 LastPass [否认](https://gizmodo.com/lastpass-says-it-didnt-leak-your-password-1848276573) 该公司发生了用户密码泄露的事故。它在一份声明中表示，它认为是未知攻击者发动了撞库攻击，也就是攻击者使用从第三方获取到的电子邮件和密码去尝试登录 LastPass 上的用户账号。

>
> 老王点评：说到底，密码这种东西还是保留在自己手里才放心。
>
>
>

![](/data/attachment/album/202112/29/164936bwc32x9zdxy28bap.jpg)

### systemd 的代码提交量超过了前几年

随着 systemd 提供的特性和功能不断增加，今年该项目在提交活动方面创下了新的 [增长记录](https://www.phoronix.com/scan.php?page=news_item&px=systemd-2021-commits)。截至上周末，systemd 已经有 4,689 个文件，包括大约 162 万行代码，来自大约 1992 个贡献者提交了超过 55000 次。今年，systemd 的提交量超过了 6683 个！比去年多了 1000 个。令人惊讶的是，Lennart Poettering 从连续 10 年的提交次数最多的位置上退了下来。红帽公司的 Yu Watanabe 跃居榜首，完成了近 30% 的提交。

>
> 老王点评：虽然我也不喜欢 systemd，但是不能不说它已经越来越复杂和强大了。
>
>
>


一个小时内创建一个 CentOS 家庭实验室

>
> 用一个带有虚拟化软件的系统（CentOS ISO），花费一个小时左右来设置一套自给自足的基本 Linux 服务器。
>
>
>

![](/data/attachment/album/202112/30/093738krqqc3c5mc35lu36.jpg "metrics and data shown on a computer screen")

当学习新的 Linux 技能时（或像我一样学习 Linux 认证），在笔记本电脑上有一些可用的虚拟机（VM）是很有帮助的，这样你就可以在上面学习。

但是，如果在没有良好互联网连接的地方，你却想在一个 Web 服务器上工作，该怎么办? 想要使用没有安装过的其他软件，该怎么办? 如果需要从发行版的存储库中下载它，那么你可能会碰壁。只要做一点准备，你就可以设置一个 [家庭实验室](https://opensource.com/article/19/3/home-lab)，你就在任何地方安装所需的任何东西，无论是否有网络连接。

要求如下：

* 一个你打算使用的已下载的 Linux 发行版（例如，CentOS、Red Hat 等）ISO 文件
* 一台具有虚拟化功能的主机。这里使用带有 [KVM](https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine) 和 [virt-manager](https://virt-manager.org/) 的 [Fedora](https://getfedora.org/)，但其它 Linux 也可以类似工作。你甚至可以使用 Windows 或 Mac 进行虚拟化，但在实现方面存在一些差异
* 大约一个小时

### 1、为存储主机创建一个虚拟机

使用 `virt-manager` 创建一个中等规格的虚拟机：1GB RAM、一个 CPU 和 16GB 磁盘空间就足够。

在虚拟机上安装 [CentOS 7](https://www.centos.org/download/)。

![Installing a CentOS homelab](/data/attachment/album/202112/30/093749xz3sahijwwgxojw4.png "Installing a CentOS homelab")

选择你的语言并继续。

单击 “<ruby> 安装位置 <rt>  Installation Destination </rt></ruby>”，选择本地磁盘，勾选 “<ruby> 自动配置分区 <rt>  Automatically Configure Partitioning </rt></ruby>” 复选框，然后单击左上角的 “<ruby> 完成 <rt>  Done </rt></ruby>”。

在 “<ruby> 软件选择 <rt>  Software Selection </rt></ruby>” 下，选中 “<ruby> 基础设施服务器 <rt>  Infrastructure Server </rt></ruby>” ，选中 “<ruby> FTP 服务器 <rt>  FTP Server </rt></ruby>” 复选框，然后单击 “<ruby> 完成 <rt>  Done </rt></ruby>”。

![Installing a CentOS homelab](/data/attachment/album/202112/30/093749f6r777pgrekz9yy1.png "Installing a CentOS homelab")

选择 “<ruby> 网络和主机名 <rt>  Network and Host Name </rt></ruby>”，启用右上方的 “<ruby> 以太网 <rt>  Ethernet </rt></ruby>” ，然后单击左上角的 “<ruby> 完成 <rt>  Done </rt></ruby>”。

单击 “<ruby> 开始安装 <rt>  Begin Installation </rt></ruby>” 开始安装操作系统。

在安装时务必设置一个 root 密码，就可以创建一个带有密码的用户。

### 2、启动 FTP 服务

下一步是启动并设置 FTP 服务以运行并允许它通过防火墙。

用 root 密码登录，然后启动 FTP 服务器：

```
systemctl start vsftpd

```

允许它在每次启动时都能工作：

```
systemctl enable vsftpd

```

设置防火墙允许通过的端口：

```
firewall-cmd --add-service=ftp --perm

```

立即启用此更改：

```
firewall-cmd --reload

```

获取你的 IP 地址：

```
ip a

```

（可能是 `eth0`），在之后会用到。

### 3、复制本地存储库中的文件

通过虚拟化软件将安装 CD 挂载到虚拟机。

创建待挂载光盘的临时目录:

```
mkdir /root/temp

```

挂载安装 CD：

```
mount /dev/cdrom /root/temp

```

将所有文件复制到 FTP 服务器目录下:

```
rsync -avhP /root/temp/ /var/ftp/pub/

```

### 4、将服务器指向本地存储库

基于 Red hat 的系统使用以 `repo` 结尾的文件来确定从哪里获得软件更新和新的软件。这些文件在以下路径

```
cd /etc/yum.repos.d

```

你需要摆脱那些使你的服务器在互联网上寻找 CentOS 存储库的存储库文件。可以把它们复制到根目录下保存起来：

```
mv * ~

```

然后创建一个新的存储库文件来指向你的服务器。使用常用的文本编辑器创建一个名为 `network.repo` 文件，输入以下内容（将 `<your IP>` 替换为在步骤 2 中获得的 IP 地址），然后保存：

```
[network]
name=network
baseurl=ftp://192.168.122.<your ip>/pub
gpgcheck=0

```

完成后，可以用下面的命令来测试：

```
yum clean all; yum install ftp

```

如果 FTP 客户端按照预期从 “network” 存储库安装，那么本地仓库就已经设置好了！

![Installing a CentOS homelab](/data/attachment/album/202112/30/093749oin3xj5nkjtq5qrk.png "Installing a CentOS homelab")

### 5、使用你设置的存储库安装一个新的虚拟机

回到虚拟机管理器，并创建另一个虚拟机。但这一次，选择 “<ruby> 网络安装 <rt>  Network Install </rt></ruby>”， URL 为：

```
ftp://192.168.122.<your IP>/pub

```

如果你使用的是不同的宿主机操作系统或虚拟管理器，像前面一样安装虚拟机，并进行下一步。

### 6、将新的虚拟机设置为使用现有的“network”存储库

你可以从现有服务器复制存储库文件到这里使用。

和第一个服务器示例一样，输入：

```
cd /etc/yum.repos.d
mv * ~

```

然后：

```
scp root@192.168.122.<your IP>:/etc/yum.repos.d/network.repo /etc/yum.repos.d

```

现在可以使用新的虚拟机并从本地存储库获取所有软件了。

再测试一遍：

```
yum clean all; yum install screen

```

这将从本地存储服务器安装软件。

这种设置，让你能够脱离网络安装软件，创建一个更可靠的环境，扩展你的技能。

---

via: <https://opensource.com/article/19/6/create-centos-homelab-hour>

作者：[Bob Murphy](https://opensource.com/users/murph) 选题：[lujun9972](https://github.com/lujun9972) 译者：[JaphiaChen](https://github.com/JaphiaChen) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Bash Shell 脚本新手指南（一）

Summary: 如标题所示，本文将涵盖面向初学者的 Bash Shell 脚本知识。

如标题所示，本文将涵盖面向初学者的 Bash Shell 脚本知识。

![](/data/attachment/album/202112/30/101441k82y3n33j5jijn2e.jpg)

如标题所示，本文将涵盖面向初学者的 Bash Shell 脚本知识。虽然本文没有回顾 Bash 的历史，但是有很多资源能够便于读者了解相关内容，读者也可以直接访问 <https://www.gnu.org/software/bash/> 上的 GNU 项目。我们会从了解一些非常基本的概念开始，然后再将相关知识综合起来。

### 创建脚本文件

首先来创建一个脚本文件。我们要确保当前目录为家目录。

```
cd ~

```

在主目录中创建示例文件。文件名可以是任意名称，本文使用 `learnToScript.sh` 作为文件名。

```
touch learnToScript.sh

```

此时家目录中就生成了一个名为 `learnToScript.sh` 的文件。输入以下命令以检验该文件是否存在，还可以注意到其权限是 `-rw-rw-r–`。

```
[zexcon@trinity ~]$ ls -l
total 7
drwxr-xr-x. 1 zexcon zexcon   90 Aug 30 13:08 Desktop
drwxr-xr-x. 1 zexcon zexcon   80 Sep 16 08:53 Documents
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
-rw-rw-r--. 1 zexcon zexcon   70 Sep 17 10:10 learnToScript.sh
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Music
drwxr-xr-x. 1 zexcon zexcon  318 Sep 15 13:53 Pictures
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Public
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Videos
[zexcon@trinity ~]$

```

正式开始之前还有一件事要做。可以试一下在没有写入任何内容的情况下执行脚本，命令行输入以下内容：

```
./learnToScript.sh

```

```
[zexcon ~]$ ./learnToScript.sh
bash: ./learnToScript.sh: Permission denied

```

提示权限被拒绝，因为该文件没有执行权限。所以你需要更改文件的权限才能执行脚本。如果你不熟悉权限相关知识，建议阅读 [Paul W. Frields](http://pfrields.id.fedoraproject.org/) 写的 Fedora 杂志文章。

* [命令行小知识：权限](https://fedoramagazine.org/command-line-quick-tips-permissions/)
* [命令行小知识：深入权限](https://fedoramagazine.org/command-line-quick-tips-more-about-permissions/)

假定我们已经了解了权限相关知识，回到终端更改 `learnToScript.sh` 文件，增加执行权限。输入以下内容：

```
chmod 755 learnToScript.sh

```

```
[zexcon@trinity ~]$ ls -l
total 7
drwxr-xr-x. 1 zexcon zexcon   90 Aug 30 13:08 Desktop
drwxr-xr-x. 1 zexcon zexcon   80 Sep 16 08:53 Documents
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
-rwxr-xr-x. 1 zexcon zexcon   70 Sep 17 10:10 learnToScript.sh
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Music
drwxr-xr-x. 1 zexcon zexcon  318 Sep 15 13:53 Pictures
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Public
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Videos
[zexcon@trinity ~]$

```

好的，现在一切准备就绪，你已经获得了 `learnToScript.sh` 命令的读取、写入和执行权限 （`-rwxr-xr-x`）。

### 编辑脚本文件

下面的内容需要你熟悉 `vim` 或其他类似的文本编辑器，本文选用 `vim`。在命令提示符下输入以下内容：

```
vim learnToScript.sh

```

这会打开一个空的文本文件，里面有一堆波浪号。键盘输入 `i` 将进入插入模式。通过查看终端窗口的左下角，你可以确认它处于该模式。（友情推荐，[nano](https://fedoramagazine.org/gnu-nano-minimalist-console-editor/) 编辑器也很不错。）

接下来我们要确保文件被正确的解释器识别。因此，输入 `#!` 和 bash 的目录 `/bin/bash`：

```
#!/bin/bash

```

本文教程步骤的最后一件事是保存文档。按 `Esc` 退出输入模式，然后按 `Shift+:`。在冒号处输入 `wq`，按下回车键，就会写入（`w`）文件并退出（`q`）`vim` 编辑器。

>
> 使用 `vim` 时要记住，要想写入文档，就需要输入 `i`，此时你会在底部看到 `–INSERT–`。要保存文档，就需要按 `Esc` 退出输入模式，然后按 `Shift+:`，输入 `w` 写入文件；或者按 `Esc`，然后 `Shift+:` 输入 `q`，实现退出而不保存；或者将 `wq` 连在一起，可以实现写入并关闭文件。`Esc` 本身就只是退出插入模式。你可以在其 [官方网站](https://www.vim.org/docs.php) 或 [教程网站](https://linuxhandbook.com/basic-vim-commands/) 上找到更多关于 `vim` 的信息。
>
>
>

### 开始正式写脚本

#### echo 命令

`echo` 命令用于向终端返回一些信息，可以使用单引号、双引号或不使用引号。那么让我们用一个传统的 Hello World 来试试它！

```
#!/bin/bash

echo Hello World!
echo 'Hello World!'
echo "Hello World!"

```

```
[zexcon ~]$ ./learnToScript.sh
Hello World!
Hello World!
Hello World!
[zexcon ~]$

```

注意，上述三行得到了相同的结果。使用单引号、双引号或不使用引号的结果不是一定相同的，但在这个基本脚本中确实得到了同样的结果。在某些情况下，引号的类型不同会导致结果差异。至此恭喜你编写了第一个 Bash 脚本。当你继续创建更多脚本并放飞你的想法时，可能会需要了解以下更多的知识。

#### 命令替换 $( ) 和 ` `

命令替换可以实现以下效果：获取在命令行执行命令的结果，并将该结果写入变量。例如，如果在命令提示符下输入 `ls`，可以获得当前工作目录的列表。我们用这个命令来实践一下。命令替换选项有两个，请注意：第一个选项使用键盘左侧 `Tab` 键上方的反引号。它与波浪号 `~` 在一个键位上。第二个选项使用 shell 变量。

```
#!/bin/bash

command1=`ls`
echo $command1

command2=$(ls)
echo $command2

```

```
[zexcon ~]$ ./learnToScript.sh
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
[zexcon ~]$

```

注意变量、等号和命令开头之间不要有空格。使用这两个选项得到的结果是完全相同的。请注意，变量需要以美元符号开头。如果你忘记了，并且回显了不带美元符号的命令变量，会只输出命令的名称，如下所示：

```
#!/bin/bash

command1=`ls`
echo command1

command2=$(ls)
echo command2

```

```
[zexcon ~]$ ./learnToScript.sh
command1
command2
[zexcon ~]$

```

#### 双括号 (())

那么双括号有什么用呢？ 很简单，双括号用于数学方程式。

```
#!/bin/bash

echo $((5+3))
echo $((5-3))
echo $((5*3))
echo $((5/3))

```

```
[zexcon ~]$ ./learnToScript.sh
8
2
15
1
[zexcon ~]$

```

### 结语

至此，我们已经创建了第一个脚本。我们知道了如何执行多个命令：将它们放在一个脚本中并运行，就可以获得结果。下一篇文章会继续讨论，了解输入和输出的重定向、管道命令、使用双括号或者添加注释等知识。

---

via: <https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-1/>

作者：[zexcon](https://fedoramagazine.org/author/zexcon/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[unigeorge](https://github.com/unigeorge) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #501 黑莓设备即将彻底落幕

Summary: 更多：• glibc 仍然没有默认解决 2038 年问题 • 英特尔提交 PFRUT 项目，升级系统固件无需重启

![](/data/attachment/album/202112/30/203317u2y15grggg7rzox9.jpg)

![](/data/attachment/album/202112/30/203326yibfkuj9w2i0jrjs.jpg)

### 黑莓设备即将彻底落幕

[黑莓公司称](https://liliputing.com/2021/12/blackberry-os-devices-will-stop-working-on-january-4-2022.html)，它将在 2022 年 1 月 4 日结束对黑莓操作系统和黑莓平板操作系统的遗留服务支持。这意味着，如果你有一部运行黑莓 10 、黑莓 7.1 或更早的手机，那么从该日起，电话、短信、WiFi 和移动数据这些功能将变得不再可靠，各种黑莓应用也将功能受限。黑莓平板电脑也将处于报废状态，虽然它在推出一年后就停产了。

>
> 老王点评：黑莓算是正式落幕了，可能确实也没多少用户了吧。
>
>
>

![](/data/attachment/album/202112/30/203338rpvcqxn9qnblp399.jpg)

### glibc 仍然没有默认解决 2038 年问题

所谓的 2038 年问题是指类 Unix 系统使用 32 位整数记录时间，从 1970 年 1 月 1 日开始计算秒数，到 2038 年 1 月 19 日 3 时 14 分 07 秒将溢出，会导致使用这种时间的程序崩溃。而在 64 位系统上使用的是 64 位整数记录时间，Linux 内核在几年前就切换到了 64 位时间记录方式解决了这个问题。然而，广泛使用的 glibc 库虽然从 2.34 就支持 64 位时间记录，但并 [没有默认使用](https://ariadne.space/2021/12/29/glibc-is-still-not-y2038-compliant-by-default/)，而需要明确指明才使用。这意味着今天使用 glibc 的应用在 16 年后可能会出现问题。

>
> 老王点评：虽然可能 glibc 觉得现在的应用不会在 16 年后还会原样使用，但是还是应该尽早修改默认行为比较好。
>
>
>

![](/data/attachment/album/202112/30/203411z5ojoo1o2iasz844.jpg)

### 英特尔提交 PFRUT 项目，升级系统固件无需重启

英特尔向 Linux 内核 5.17 提交了一个新的开源项目 PFRUT，允许在操作系统中升级固件，而不需要重新启动系统。[这项功能](https://www.phoronix.com/scan.php?page=news_item&px=Intel-PFRUT-Linux-5.17) 是一个服务器专属的功能，服务器可以自由地更新系统 UEFI 或 BIOS，同时确保关键的工作负载在整个过程中保持运行。更新过程是通过操作系统完成的，而不是直接通过 UEFI 或 BIOS 完成。但目前不确定是需要特定的硬件支持还是只需要驱动就可以了。

>
> 老王点评：确实是一个对服务器硬件非常需要的功能。
>
>
>


《代码英雄》第五季（1）：成为一个码农

我认为码农是一个蔑称，程序员偶尔自嘲还可以，但是真的常常称自己是一个码农就有问题了，我更喜欢laravel的宣传语，编码是一种艺术

应该是翻译的原因

加油!

赞同!!!

我想注册在这个网站!?}<br />
你说的意思是简洁优雅?

>
> 代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。
>
>
>

>
> **什么是《代码英雄》**
>
>
> <ruby> 代码英雄 <rt>  Command Line Heroes </rt></ruby>是世界领先的企业开源软件解决方案供应商红帽（Red Hat）精心制作的原创音频播客，讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。
>
>
>

![](/data/attachment/album/202112/31/101643rwf8inenufeifgiz.jpg)

本文是《[代码英雄](https://www.redhat.com/en/command-line-heroes)》系列播客[《代码英雄》第五季（1）：成为一个码农](https://www.redhat.com/en/command-line-heroes/season-5/becoming-a-coder)的[音频](https://cdn.simplecast.com/audio/a88fbe/a88fbe81-5614-4834-8a78-24c287debbe6/437f21ae-f25f-4ef8-a5bd-6b0dbec1c869/clh-s5ep1-becoming-a-coder-vfinal_tc.mp3)脚本。

>
> 导语：代码英雄们是软件工程师、开发人员、程序员、系统管理员，他们俗称码农。他们的职业的多样性几乎和他们找到工作的途径一样多。
>
>
> Saron Yitbarek 和 Clive Thompson 在本季开篇探讨了编程人员开始其技术职业的一些方式 —— 有些是常见的，有些是意想不到的。许多人选择从拿到计算机科学学位开始。但是，不要低估成熟的培训班路线、中后期的职业转换者，以及来自与技术绝缘的地方的编程人员。你可能会惊讶于是谁响应了编码的号召，他们来自哪里，已经取得了多少成就。
>
>
>

**00:00:01 - Saron Yitbarek**：

想象一下，你被困在一个荒岛上。你发现了一架损坏的螺旋桨飞机，有一些工具，还有一本便携手册。你之前从来没有修理过飞机，但你非常想离开这座岛，所以着手修理这架飞机。你离开荒岛的决心可能使那架飞机再次飞行起来。当然，这是一个非常极端的例子，但是，当你试图弄清楚如何将某些东西放在一起时，比如飞机这种结构性的东西摆在你的面前，你都会在心里去想怎么处理，而且有手册可以帮助你。但是如果是软件呢，如果我们不在那个计算机的世界里，很难弄清楚怎么去处理这些 0 和 1。甚至即使你身处其中，也很难想象你正在组合起来的东西。这就是人们发现自己所处的境地。

**00:00:49 - Clive Thompson**：

在写了 25 年有关软件及其对日常生活的影响的文章之后，我意识到大多数人都不知道软件是如何制造的、是谁制造的、为什么要制造它。他们不理解，所有这些软件工程师代表他们做出的决定是什么。这就是一个巨大的谜团。因此，我决定写一本书，揭开这个谜团，向人们展示代码是如何编写的，以及谁编写的。

**00:01:21 - Saron Yitbarek**：

那本书叫做《<ruby> 码农：新部落的建立和世界的重塑 <rt>  Coders: The Making of a New Tribe and the Remaking of the World </rt></ruby>》。作者是科技记者 Clive Thompson。在过去的四季节目中，我们精选了许多史诗般的故事，讲述了代码英雄们如何塑造我们周围的环境。但是，我们没有谈及的是编程这件工作本身，它是如何完成的，它是如何随着时间推移而变化的，它会如何发展，以及我们如何才能获得一份编程人员的工作，尤其是第一份。我们整理了一个 3 集的小型剧集，专门致力于讲述一个编程人员的工作。

**00:02:01**：

欢迎来到《代码英雄》的全新一季，这是红帽的原创播客。我是主持人 Saron Yitbarek，《码农》一书的作者，也是本播客的朋友 Clive Thompson 将与我们一起参加这一季所有 3 集的节目。欢迎你，Clive。

**00:02:19 - Clive Thompson**：

很高兴来到这儿，Saron。

**00:02:20 - Saron Yitbarek**：

Clive，最近几年你完全投身于编程人员的世界当中。为了你的书，已经采访了 200 多位开发者、系统管理员、架构师、工程师和程序员吧。

**00:02:31 - Clive Thompson**：

是的。我与整个软件生态系统中的很多软件开发者都交流过。

**00:02:37 - Saron Yitbarek**：

太好了。你是完美的领路人。很高兴你能加入我的节目。

**00:02:40 - Clive Thompson**：

我也很高兴能加入。

**00:02:41 - Saron Yitbarek**：

让我们从成为一个编程人员最传统的途径开始：上大学取得计算机科学学位。

**00:02:48 - Vinamrata Singal**：

我认为，作为一个产品经理拥有这种技术基础很重要。我很高兴自己通过计算机科学课程做到了这一点，因为我觉得自己不仅了解了如何编写程序来执行此操作，而且还了解了幕后的情况。

**00:03:06 - Saron Yitbarek**：

这位是 Vinamrata Singal。她于 2016 年毕业于斯坦福大学，并获得了计算机科学（CS）学位。她说，她的教育经历让她获得了 Facebook、Google 以及其他公司的产品经理职位。Clive，大多数的编程人员都有计算机科学学位吗？

**00:03:24 - Clive Thompson**：

如果你看一下 Stack Overflow（一个大型的开发者网站）的调查，他们每年会对成千上万的用户进行调查。他们的数据表明，在 Stack Overflow，60% 的编程人员都是专业人员，其中一些人接受过某种形式的正规计算机科学的教育，或者类似于电气工程之类的教育。可能比这个比例更高一点，就比如说是 2/3 吧。要成为一名编程人员，获得计算机科学或者与其相关的学位仍然是最普遍的途径。

**00:04:01 - Saron Yitbarek**：

这是因为计算机科学学位更值钱么？

**00:04:04 - Clive Thompson**：

是的，这就是经济学家所说的高成本信号。它们表明，我愿意花大量的时间来学习这些知识，所以我是一个好的雇佣对象。如果你是一个开发者，你必须不断学习。新的框架、新的语言、新的环境等等。一些雇主告诉我，他们喜欢使用获得计算机学位人选的原因是，这些人花了 4 年时间专注学习，而且他们会继续学习下去。

**00:04:37 - Vinamrata Singal**：

当你拿到本科学位的时候，除了学习这些计算机知识，你也学习了理论数学，也学习了算法、学习了网络和计算机系统。我认为所有的这些，给了你一个非常坚实的基础，所以不管你要转换还是不转换行业，那都很容易。

**00:04:56 - Vinamrata Singal**：

斯坦福大学的学位会让他们被认真对待。老实说，这就是信心。这也有很大的作用，让你不会感觉到自己滥竽充数。然后，就像你在申请工作后，雇主们都愿意和你谈谈，只是因为你身处这个庞大的网络就简单得多。

**00:05:12 - Saron Yitbarek**：

计算机科学学位是否使他们比非计算机专业的员工表现的更好？

**00:05:21 - Clive Thompson**：

这是一个非常好的问题。这个问题很难回答，因为我从不同的雇主那儿获得了完全不同的答案。一些人告诉我，“是的，学计算机的人相比自学成才或者来自培训机构的人更自信、更有底气而且遇到情况时能采取迅速有力的行动”。然而，我也听到过完全相反的观点，例如，David Kalt，他运营着 Reverb，该公司是一家主要销售音乐设备、出人意料的成长并且盈利的电子商务网站。他说，我曾经说过我只想要学计算机的毕业生，但是他们不具备想要成为高效率团队成员的所有技能。因此他开始越来越多的雇用培训班出身的人员、自我成才的人员，或者之前业余学过这方面的音乐人。

**00:06:11**：

你也会听到对非计算机科学出身的人的赞扬。我想是来自于某一类投资人或者是老派编程人员。他们有五六十岁，自学成才，在上世纪 80 年代就使用过 Commodore 64。当他们看到有人走过来说，“是的，我只是不喜欢在酒店的工作，所以在 YouTube 和 Code Academy 上学了很多东西。” 他们会说，“是的，我想要那个人”。我们应该说这是完全不同的两类选择。有一类雇主非常严格，只雇佣有计算机科学学位的人员。还有一类雇主有时觉得自学成才或为了改变职业而去参加培训班的人才真正值得自豪。

**00:06:55 - Ali Spittel**：

我的故事很独特。我在一个偏僻的地方长大，我的高中学校的经费肯定不高，所以直到我进了大学我才知道什么是编程。

**00:07:10 - Saron Yitbarek**：

Ali Spittel 是一名软件工程师，也是开发培训班 General Assembly 的一名杰出教职员。她从大学开始学计算机科学，然后发现自己走上了一条完全不同的道路，走向了编码生涯。

**00:07:24 - Ali Spittel**：

我学习了 Python，完全爱上了它。我觉得非常神奇的是，你将某些内容输入计算机，然后它就可以输出一些东西。然后我很快就决定主攻计算机科学双学位。但是当下学期我学习了 C++ 的自由开源软件的数据结构和算法，我确实通过了那门课程，但是我是点灯熬油，付出十分努力才通过的。然后我就觉得编程真的不适合我，就退学了，继续我原来的专业，也就是政治学。大约一个学期后，我在做一份实习，主要是政治工作的数据分析。我意识到我可以用编程来使很多工作自动化。他们发现了这一点，并推荐我担任软件工程师的职位。

**00:08:17 - Saron Yitbarek**：

我采访过数百人，我几乎总是会问这样一个问题: “计算机科学学位真的有价值吗？你真的需要它吗？你可以自学成才吗？” 我只是想了解一下这方面的情况。我猜，计算机科学学位会非常有价值，因为你要花 4 年的时间来学习这些精心挑选的信息。但是，在这些采访中，我会得到各种类型的答案。有人对我说，“实际上，它真的不太实用。” 也有人对我说：“那些理论知识太有价值了。”

**00:08:47 - Clive Thompson**：

是的，我也听到了各种反馈。我从一些人那里听到了一些说法，他们强调说，我们需要有计算机科学学位的人，我们不太想要那些没有这些学位的人。但还有另一群人，我想你听到过他们完全相反的意见。他们说，不不不，我们想要的是那些有实际经验的、能够团队合作的人，我们喜欢能跳出思维定式的人。如果一个人是自学的，他们会比上大学的人有更好的成长心态，因为也许上大学的人习惯了别人给他们东西。课程就在那里，他们按部就班地学习就行。而那些只是自学了一些 HTML、CSS、JavaScript 和 Node 的人，把自己变成了一个全栈工程师。毋庸置疑，在团队中就是想要这样一个放那儿就能干活的人。

**00:09:38 - Ali Spittel**：

不同的学习方法各有适合的人。计算机科学是不可思议的，因为你学到的所有这些理论基础可以为你的日常工作奠定基础。自学是另一个很好的途径。这是我的主要起步方式，它将使你在工作中拥有学习这些东西的基础，这是你无论如何都要需要的。最后是培训班。如果可以回头再来的话，我会去参加一个培训班，因为可以让一位指导老师来监督以及鼓励你的学习，有一个可以遵循的课程，而且在老师指导的课堂上，你仍然可以自学。但话虽如此，我认为每条路都有你选择它的合理性，它们都应该存在，不同的道理适合不同的人。

**00:10:44 - Kush Patel**：

8 年来，我们毕业了大约 3000 名学生，并且能将其中 95% 的学生安置到软件工程职位上，他们在旧金山校区的工资中位数约为 10 万美元，在纽约校区的工资中位数约为 9 万美元，并且这些学生是在顶尖的高科技公司里。

**00:11:00 - Saron Yitbarek**：

Kush Patel 是 App Academy 培训班的 CEO。他的培训班有一个学费模式，可让毕业生找到工作之后再付款。这使得更多的学生有机会学习编程。这些毕业生被 Google 之类的公司雇用，可以赚到可观的薪水。

**00:11:18 - Kush Patel**：

这些年来，我们有大约 100 名学生进入了 Google。基本上，这比那些顶尖的计算机科学教育都有优势，这是一种非常便捷的方式，可以让学生获得技术领域最热门的工作之一。

**00:11:32 - Saron Yitbarek**：

所以，Clive，App Academy 是编程培训班的典范么？

**00:11:36 - Clive Thompson**：

我想说的是，他们是优秀的编程培训班的典型代表，但是培训班本来就是良莠不齐的。有出色的、管理良好的、可以教人们很多东西的地方；也有一些非常不可靠，从来没让人找到过工作的机构。

**00:11:57 - Saron Yitbarek**：

我是在大约 6 年前从一个编程培训班毕业的，那时培训班感觉像雨后春笋般冒出来。它在成长，是一个萌芽中的产业。从那以后，我觉得培训班已经有了很大的发展。你觉得呢？

**00:12:12 - Clive Thompson**：

是的，是这样的。可能需要对最好的编程培训班稍微降低一些期望。我认为他们从一开始就承诺每个人都将得到这些好工作，但这并不总是可能的。他们设定的期望过高。他们也意识到他们必须在找工作这方面真的下很大功夫。因为他们可以给人这些技能，但让他们从事初级开发工作是非常重要的，在那里他们可以学到更多。

**00:12:43 - Saron Yitbarek**：

我认为，这些年来，为培训班支付费用的方式已经发生了改变。这真的很吸引人。甚至在接受培训后再付款的做法也更正式了，有了 ISA，有了收入分成协议，我想，这也是一种更有约束力的做法。这种做法有利有弊。有一种这样的风险，就是当你实际上没有得到任何收入的时候，你却不得不还钱。

**00:13:06 - Clive Thompson**：

我同意。因为培训班增长太快了，而且它们显然是在填补一个空缺。计算机科学学位的增长速度不足以满足公司的需求。它们需要其他的途径。培训班填补了这一空白。但这意味着它们以一种奇怪的方式向着社区学院的方式发展，从理论上讲，你希望它们这样发展。社区学院是受到监管的。实际上我认为，各级政府可能会给培训班制定一些标准，这肯定很好，因为如果他们能够制定出非常、非常好的标准，并且可能获得真正的认可，那么它会鼓励最好的培训班达到这些标准。其他不满足这些法规要求的培训班，要么被淘汰，要么被关闭。

**00:14:02 - Saron Yitbarek**：

让我们和一家大型科技公司的人谈谈关于非传统招聘的事情。作为 LinkedIn 的高级工程经理，Will White 多年来雇佣了很多程序员。他们中的大多数都是计算机科学专业的毕业生，但他意识到他们的数量不足以填补空缺的职位。三年前，该公司启动了一个名为 “Reach” 的学徒计划。

**00:14:25 - Will White**：

Reach 项目是一个多年的计划，我们引进学徒，通过将他们与不同的导师和经理配对，帮助他们培训工程技能。我们相信，顶尖的人才可以来自任何地方，而 Reach 是我们寻找人才的途径之一，尤其是在计算机专业之外的学生。一般来说，我们寻找的是对工程有激情的人，这种激情可以表现在很多方面，无论是花时间去培训班的人，还是花了很多时间在自学上的人，比如业余参与一个项目，或者编写代码，并试图提交一个拉取请求让开源项目接受它。

**00:15:16 - Saron Yitbarek**：

Clive，刚才 Will 和 Ali 都在谈论自学成才，在你的研究中，你也遇到了一些自学成才的编程人员吧。

**00:15:25 - Clive Thompson**：

有很多自学成才的编程人员。与我们之前提到的对应的是，Stack Overflow 调查中约有三分之一的人完全或至少基本上是自学成才的。Sarah Drasner 是一位出色的全栈工程师。最初因在 SVG 图形方面的开创性工作而闻名。而且，她真的是自学成才的，她原来是博物馆的插画师，但后来这份工作搁浅了，因为他们有了一台相机，拍照比她画的更好。她的雇主说：“要不你来为我们做网站吧？” 那时候网站还处于早期。然后她说，“当然可以。” 她回到家就开始看书，试着学习怎么去做个网站。她走了那条路，并在接下来的几年内成为了一名杰出的开发者，在她的领域大名鼎鼎。而这这种故事并不罕见。

**00:16:26**：

Mike Krieger 是 Instagram 的两位幕后开发者之一，他承担了很多繁重的工作。他最初还是个孩子的时候就开始自学做网站。最初是一些超小的开源项目，帮助创建过 Thunderbird 插件等等，这就是他起步的地方。这确实使他取得了很大的进步。对我来说，实际上我认为自学成才的机制真的很有趣，而且它变得比以往任何时候都容易，因为有很多资源都唾手可得，比如 FreeCodeCamp。实际上，我就是这样学习 HTML、CSS 和 JavaScript 的。然后还有无数的 YouTube 视频、开源项目和黑客马拉松。自学是一个令人惊讶的上升通道。

**00:17:24 - Rusty Justice**：

我是你所见过的最不可能从事技术工作的人之一。我是一名采矿工程师，学的是土木工程。我自学的动机是出于需要。我们的煤炭产业是这个地区占主导地位的行业，但这个行业崩溃了，因此出现了很多失业人员。

**00:17:43 - Saron Yitbarek**：

在这个片段里有我一直以来最喜欢的名字之一，Rustry Justice。他来自<ruby> 阿巴拉契亚 <rt>  Appalachia </rt></ruby>中部<ruby> 肯塔基州 <rt>  Kentucky </rt></ruby>的<ruby> 皮克维尔 <rt>  Pikeville </rt></ruby>，那里的主要产业一直是煤炭开采。Rusty 在采矿业经营业务已有多年，直到 5 年前该行业崩溃为止，然后他和他的商业伙伴决定采取行动。他们创立了数字服务公司 Bit Source。Clive，你在书中写过关于 Rsuty 的文章。他是越来越多的在职业生涯中期进入编程行业的一个例子。你使用了一个称为“<ruby> 码农 <rt>  blue collar coder </rt></ruby>”的术语。那是什么意思？

**00:18:22 - Clive Thompson**：

好吧，这主要是指以一种可能与我们在过去 15 到 20 年里谈论编程人员的方式有点不同的方式来进行这项工作的编程人员。长期以来，对编程人员的印象是穿着连帽衫的小伙子，他们搬家到硅谷，他们可以创办一家初创公司，并获得数百万美元的投资，也许成为了亿万富翁。码农的意思是，他更像是从事 20 世纪的蓝领工作的人，就像那些在克莱斯勒生产线上从事熟练技术工作、制造汽车的人一样。他们具有丰富的技术技能，但被认为是从事一种稳定的中产阶级工作，码农更像是这种。码农这种工作正在接近蓝领工作，因为我们做这项工作，不是为了成为赚取数百万美元的连帽衫小子，而是为了拥有一份稳定的 21 世纪的中产阶级工作。

**00:19:19**：

事实上，只有 8% 的编程工作在硅谷，在那种众所周知的消费软件领域。在美国的其他地方，都有从事编程工作的人。他们无处不在，他们在田纳西州、在俄亥俄州、在纽约州北部。他们不在 Facebook 和 Google，他们在银行、在保险公司、餐馆或工业公司工作。这些行业都需要软件开发人员。当人们把目光放在传统领域之外时，就会用一种不同的思考方式来思考职业轨迹。这就是我们看到的码农的来源。

**00:19:59 - Saron Yitbarek**：

你在书中提到了另外一个码农，另一个有着神奇名字的人，Garland Couch。他曾在一家大型矿业公司做了 15 年的维修计划员，后来被解雇了。后来他加入了 Rusty 的公司，进入了科技行业。下面是他刚开始在 Bit Source 工作时的情况。

**00:20:21 - Garland Couch**：

我过去开玩笑说，这是一个半严肃的笑话，工作了 22 周之后我们都不知道彼此的姓氏，因为每个人都是进来、坐下来、戴上耳机，然后开始工作。没有人说话、没有笑声、没有玩笑、也没有争吵。你要明白，这是 10 个失业的人试图找到一份工作。那是非常艰难的 22 周，我们 10 个人都非常专注于学习需要学习的东西。

**00:20:57 - Saron Yitbarek**：

Clive，你采访过很多转型做技术的蓝领工人，比如 Garland 和 Rusty，这些转型大部分情况下成功了吗？

**00:21:06 - Clive Thompson**：

是的。所有我采访过的人在很大程度上都取得了相当不错的成功。我认为有些事情对他们是有所帮助的，因为他们年纪稍大，在事业上小有建树。他们有严肃的目的，这可能是你年轻时没有的。他们知道如何学习，知道如何自学。他们知道自己付出的是什么，因为他们想要一个新的事业。也许他们以前的事业正在消失，就 Garland 来说。他们绝不缺乏热情和坚持不懈的精神，而这些正是我认为做好编程所需要的，而且他们对当地市场的需求也经常有所了解。

**00:21:46**：

在 Garland 的案例中，他有一个当地市场，那就是在肯塔基州成立了一家新的高科技公司。另一个优势是，一些我采访过的真正成功的人，他们对软件用在什么地方有更开阔的看法。如果你和一个普通的 19 岁学生交谈，他们会认为软件就是 Instagram，仅此而已。但是如果你和一个 31 岁在酒店业工作过的人交谈，他们知道酒店使用了大量的软件，他们会说，我要去那里工作，那些领域急需人才。

**00:22:22 - Rusty Justice**：

就我个人而言，最大的教训是，在被告知有这些编程工作时得到了太多的错误信息，我真的是太天真了。我们被告知缺少某某数量的开发者，所以从事它们就有赚钱的可能。而这种收入水平和我们在这些采矿工作中失去工作的收入水平是相当的。所以我们想，如果我们学会了编程，那么世界就会为我们打开大门，我们就会有工作。但是没有人会雇佣我们，因为你们为什么要雇佣我们呢？我们是一群从来没有做过这种工作的人。我们必须向市场证明我们提供了价值。

**00:23:03 - Garland Couch**：

我认为，现实世界的经验，在其他行业、其他环境和大公司工作过，干过我们之前干过的工作，对我们现在所做的事情肯定有帮助。我给你举个例子：有一个公司希望我们为公路卡车司机开发一个应用程序。我们这里的工作人员有 CDL 执照。大家马上就会想，等等，你们有真正开过卡车的开发人员吗？是的，我们有。

**00:23:41 - Saron Yitbarek**：

像阿巴拉契亚这样的地区有很多负面的刻板印象，但是 Rusty 和 Garland 以及他们社区的其他人正在做的是创造积极改变的模式，他们为此感到非常自豪。Garland 总结说，

**00:23:56 - Garland Couch**：

对我来说，蓝领意味着一个努力工作的人愿意投入工作，愿意苦干和解决问题。对我来说，码农这个词是一种赞美。

**00:24:17 - Gillian**：

在我参加培训班的一个月后，我想，“我到底在做什么？” 但随着时间推移。课程真的很紧张。尽管很困难，但我发现我自己并不是很累，只是很兴奋地想看到我第二天能做些什么，我如何能变得更强。在那个时候，我知道自己真的很喜欢所做的事情。

**00:24:42 - Saron Yitbarek**：

这位是 Gillian。她曾是一名 20 多年的物理学家，由于她的工作被裁员了，她决定试一试编写代码。她在 50 多岁时参加了一个 Java™ 培训班。从培训班毕业两周后，她在金融服务业找到了一份工作。现在，她的事业蒸蒸日上，但她知道她的剩下的职业生涯可能会一直处于初级阶段，因为她从业比较晚，但这对她来说没什么问题。她很开心，她为自己的团队做出了贡献。

**00:25:11 - Gillian**：

我可能没有他们做 Java 开发那么熟练，也没有他们那么丰富的经验，但是我可以思考，我可以分析，我可以发现问题，提出明智的疑问。我可能不知道答案，但至少我知道该问什么问题，因为我有很多解决问题的经验。

**00:25:33 - Saron Yitbarek**：

所以，Clive，让我们来谈谈这个行业的老年工作者。Gillian 提到她是一名初级程序员，可能在职业生涯的余下时间里她继续是一名初级程序员，她非常乐意这样做。我想知道，如果你在中年时才开始从事编程，什么样才算成功？

**00:25:49 - Clive Thompson**：

我采访过的很多人年纪都比较大，他们进入这个行业是因为他们对现有的行业不再感兴趣了，他们渴望创造东西，渴望成为一名工程师，或者可能他们现有的行业正在分崩离析。他们想，我需要一个真正成长的地方，所以他们并不一定一心要成为编程金字塔的顶尖人物。他们想要有回报的、稳定的工作。毫无疑问，他们会找到一份这样的编程工作，如果他们能找到第一份工作，踏踏实实地进入工作岗位，证明了自己的价值，那就够了。他们更倾向于码农。

**00:26:33 - Elisabeth Greenbaum Kasson**：

一般来说是这样的，但也有一种观念认为，如果你年纪大了，你就不再具有接受教育的能力，你不再灵活了，你觉得自己什么都知道了。这真的很可惜，因为招聘经理错过的是那些拥有丰富经验的人，他们知道如何在某个特定时间发生的事情上作出调整。

**00:26:57 - Saron Yitbarek**：

这位是技术及商业记者 Elisabeth Greenbaum Kasson。她说，“在技术行业，年龄歧视是非常现实的。许多程序员一生都在编程。随着年龄的增长，获得一个新的编程工作开始变得越来越难。很多年长的程序员在求职时都被忽视了。”

**00:27:18**：

那么 Clive，你采访过很多程序员。他们中有多少人经历过年龄歧视？他们有哪些故事？

**00:27:24 - Clive Thompson**：

如果他们没有成功跃入高层管理岗位，很多人就会遭遇年龄歧视。老年开发人员有两种类型：有些人成功地升到了管理层。他们管理着一个完整的团队，然后可能会成为副总裁、CTO，或者创办自己的公司成为 CEO。他们是快乐的，他们在发号施令。他们利用自己的经验来指挥和管理由年轻、求知若渴的开发人员组成的大型团队。但是还有另外一群程序员不想成为管理人员。他们喜欢创造东西。他们喜欢成为解决问题的工程师。他们面临的问题是，科技行业的环境不能让这些人一直这样做到四十岁、五十岁，乃至六十岁。

**00:28:19**：

这个行业想要年轻人，可以 996 而没有抱怨，没有孩子、没有任何责任、不要更多的钱。你会想，哇，软件开发人员的工资很高，确实如此。但如果你有几个孩子和一所房子，你可能想要更多的钱，你想要稳定，你不想工作那么长时间。也许你并不需要这些，因为你现在觉得这样挺好。但是雇主们错误的认为，如果你没有疯狂地每周工作 100 个小时，你就没有产出。所有这些打击都会针对那些只想成为高效率的开发者，他们开始被排挤出去。

**00:28:59 - Elisabeth Greenbaum Kasson**：

他们可以做的事情就是让自己变得更容易被雇用，出现在他们认为自己不可能出现的地方。例如，我认为很多 50 多岁的人应该多用用 GitHub，去参加可能都是年轻的人的聚会，去参加一些针对特定编程小组的聚会，在那儿他们可以结交一下人脉了解当前正在发生的事情。

**00:29:26 - Saron Yitbarek**：

Clive，你对程序员在职业生涯后期还有什么忠告吗？

**00:29:32 - Clive Thompson**：

当然，我实际上问过那些还在编程并且很乐意编程的老开发者，他们的秘密是什么。一般来说，他们告诉我的是，不断地学习、学习、学习，用新框架和新语言来构建些东西，这是至关重要的，这样他们就能有一个代码库来证明他们能做到这些事情。这是我展示的，使用新的工具集、使用新的语言、新的框架。这真的很重要。我认为 Elisabeth 说得很对。这些老开发者们还谈到了保持外向和现实联络的价值，以及从黑客马拉松到聚会的所有这些事情。

**00:30:15**：

我在旧金山遇到的这位典型的灰胡子，字面意义上的灰胡子。这位程序员说，他突破了，因为他参加了一个物联网黑客马拉松，都是嵌入式设备和非常小的处理器，比如 Arduinos，有非常严格的内存限制。他说就像是，“这把我带回了上世纪 70 年代，当时我刚进入这个领域，那时台式电脑的内存非常有限。” 这些都是他找到的让自己走出去并融入社区的方法。最后他意识到，哇，实际上有很多我可以做的物联网工作。让自己保持与时俱进，似乎真的能帮助许多较老的开发人员摆脱困境。

**00:31:01 - Saron Yitbarek**：

Clive，最后一个问题。无论一个程序员在职业生涯中处于什么位置，无论他们通过什么途径成为一名程序员，你采访过的程序员都有哪些共同之处？成功的关键指标是什么？

**00:31:15 - Clive Thompson**：

真正重要的是对学习和成长的持续渴望。我遇到的每一个成功的程序员都是如此。他们都有永不满足的好奇心。一旦他们发现某些东西存在可能性，比如一种发展起来的语言，出现了一个新框架，出现了一个新技术栈，他们就想了解它，想要探索它，摆弄它。他们会在业余时间创造一些东西，只是想看看到底有什么可能。

**00:31:42**：

如果有人听完这段话会想，嘿，也许我也想成为一名程序员。成功实现转型的人都有那种熊熊燃烧的好奇心，他们喜欢这份工作，会发现它的乐趣，会在业余时间为快乐而去做它。事实上，他们喜欢它，是因为它给了他们一种成就感和解决问题的感觉，这是他们在以前的工作中没有的。所以，如果让我说，每一个成功的人，包括那些成功转型的人，都有一种令人惊叹的好奇心和对琢磨这些新事物的渴望，这让他们不断进步。

**00:32:21 - Saron Yitbarek**：

Clive，非常感谢你和我一起来谈论程序员的职业道路。

**00:32:26 - Clive Thompson**：

我也很高兴。

**00:32:27 - Saron Yitbarek**：

现在我们了解了我们来自哪里，在我们的职业生涯中走过了什么道路，让我们看看如何以及在哪里做最好的工作。下一集，Clive，你会回来加入我，对吗？

**00:32:41 - Clive Thompson**：

肯定的。

**00:32:44 - Saron Yitbarek**：

《代码英雄》是红帽的原创播客。我们另外还有一些关于程序员职业道路的采访和研究。登录 [redhat.com/commandlineheroes](http://redhat.com/commandlineheroes) 了解更多信息。我是 Saron Yitbarek。

**00:32:58 - Clive Thompson**：

我是 Clive Thompson。

**00:32:58 - Saron Yitbarek**：

坚持编程。

**00:32:59 - Clive Thompson**：

坚持编程。

**00:33:01 - Saron Yitbarek**：

再来一遍。1，2，3 我们会坚持编程。1，2，3，坚持编程。

**00:33:10 - Clive Thompson**：

坚持编程。

**00:33:17 - Saron Yitbarek**：

坚持编程。

>
> **什么是 LCTT SIG 和 LCTT LCRH SIG**
>
>
> LCTT SIG 是 LCTT <ruby> 特别兴趣小组 <rt>  Special Interest Group </rt></ruby>，LCTT SIG 是针对特定领域、特定内容的翻译小组，翻译组成员将遵循 LCTT 流程和规范，参与翻译，并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽（Red Hat）发起的 SIG，当前专注任务是《代码英雄》系列播客的脚本汉化，已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。
>
>
> 欢迎[加入 LCRH SIG](/article-12436-1.html) 一同参与贡献，并领取红帽（Red Hat）和我们联合颁发的专属贡献者证书。
>
>
>

---

via: <https://www.redhat.com/en/command-line-heroes/season-5/becoming-a-coder>

作者：[Red Hat](https://www.redhat.com/en/command-line-heroes) 选题：[bestony](https://github.com/bestony) 译者：[mrpingan](https://github.com/mrpingan) 校对：[acyanbird](https://github.com/acyanbird), [wxy](https://github.com/wxy)

本文由 [LCRH](https://github.com/LCTT/LCRH) 原创编译，[Linux 中国](https://linux.cn/) 荣誉推出


2021 总结：5 个开源安全资源

Summary: 你现在需要读的 2021 安全总结文章。

个人电脑使用 LUKS 加密硬盘，防止成为冠希哥。服务器保持系统更新、禁用 ROOT 登录、使用密钥登录。<br />
只要别用来路不明的一键脚本，可以说是很安全了。

你现在需要读的 2021 安全总结文章。

>
> 你现在需要读的 2021 安全总结文章。
>
>
>

![](/data/attachment/album/202112/31/112208zcc0ccatn8mkvddk.jpg "A secure lock.")

2021 年我们最常见的讨论之一是你自己数据的安全和隐私。显然，你的数据是你的，密码是安全的关键。今年的安全类的作者们提供了有用的知识和开源工具来保持你的数据和硬件安全。

以下是我对今年安全之旅选出的前五篇文章。

### 《6 个开源工具和初学者保护 Linux 服务器的技巧》

[Sahana Sreeram](https://opensource.com/users/sahanasreeram01gmailcom) 提供了从更新到恶意软件扫描的 [六个基本的服务器安全小知识](https://opensource.com/article/21/4/securing-linux-servers)。这篇文章为你在家里或工作中的 Linux 服务器提供了一个起点。要特别注意密码强度部分和为你的服务器创建降低风险的密码策略要求的工具，因为这是你所使用的任何操作系统上最关键的做法。这篇文章是一篇实用指南，指导你在 Linux 服务器的日常工作中进行安全工作。正如 Sahana 所指出的，安全领域无疑正在扩大，这篇文章给了每个人着手预防的机会。

### 《用开源软件保护你的文件的 5 种方法》

接下来的 [这篇文章](https://opensource.com/article/21/4/secure-documents-open-source) 对于像我这样写了大量的文档（从文章到个人研究笔记都有）的人来说是非常有用的。作者 [Ksenia Fedoruk](https://opensource.com/users/ksenia-fedoruk) 首先列出了保存文档的开源云存储服务。接下来，她介绍了加密的重要性以及在我们的文档中使用加密的方法。她还清楚地介绍了文件的数字签名和水印以及使用哪些开源工具。最后，文章涵盖了对我们制作和使用的文档进行密码保护的情况。结尾处的提醒遵循了今年安全领域的一个共同主题：你的数据是你的。

### 《4 个清除你的数据的 Linux 工具》

在 [这篇文章](https://opensource.com/article/21/10/linux-tools-erase-data) 中，[Don Watkins](https://opensource.com/users/don-watkins) 涵盖了硬件的用途和维护。它以一系列擦除硬盘的工具作为引子，这样你的数据就不能被下一个使用设备的人拿走。在几个小的演练中，Don 涵盖了使用 GNU shred、ShredOS、`dd` 命令，以及最后的 `nvme-cli`。每一个都可以从你的硬件中删除所有的数据，并对你正在使用的、不再需要的硬盘进行删除。Don 的结论提供了一个温和的提醒：如果你要卖掉你的硬件，这并不意味着下一个人应该拥有你的数据。你的数据是你的。

### 《在 Linux 命令行上生成密码》

正如我在本期中早先时候指出的那样，密码对于今年的安全总结至关重要。在 [这篇文章](https://opensource.com/article/21/7/generate-passwords-pwgen) 中，我们的作者 [Sumantro Mukherjee](https://opensource.com/users/sumantro) 首先介绍了许多网站在涉及到密码时可以有（也应该有）一个严格的规定。这篇文章循序渐进地介绍了如何使用 `pwgen`，首先是安装它，然后是生成密码。这是一个有用的工具，Sumantro 详细介绍了如何使用一些标志来生成符合任何网站或应用的要求和策略的密码。在这篇读物的最后，最后的总结包含了链接到一个方便的开源密码管理器列表，这个列表是我们的另一位作者 [Jason Baker](https://opensource.com/users/jason-baker) 在今年早些时候写的。这是一个重要的读物，可以让你为你在网站上的日常使用制定更好的密码，以防止黑客攻击或丢失你的账户中的数据。

### 《用这个开源软件加密你的文件》

今年的安全总结的最后，是一篇关于加密和加密文件的 [文章](https://opensource.com/article/21/4/open-source-encryption)。[Seth Kenlon](https://opensource.com/users/seth) 介绍了一个名为 VeraCrypt 的开源跨平台加密工具。Seth 的演练深入解释了如何安装和使用 VeraCrypt，并展示了这个很酷的软件的易用性。但在此之前，他还简要介绍了 VeraCrypt 的前身 TrueCrypt 的历史，以及 VeraCrypt 是如何向后兼容以前用 TrueCrypt 的加密卷的。通过这个易于使用的开源加密软件，Seth 已经证明，你可以在本地拥有你的数据，并以你想要的方式进行加密。

### 荣誉提名

虽然这五篇是我今年的最爱，但这里还有两篇同样值得一读的提名文章。

* [Seth Kenlon](https://opensource.com/users/seth) 的《[了解开源安全的 Linus 法则](http://opensource.com/article/21/2/open-source-security)》。
* [Mike Calizo](https://opensource.com/users/mcalizo) 的《[如何成功执行 DevSecOps](http://opensource.com/article/21/2/devsecops)》。

每篇文章都对安全策略和采用情况进行了结构化解读。

### 关于安全的总结

我强烈建议在今年阅读这些文章和 [其他几篇](https://opensource.com/tags/security)。这些将使你为 2022 年安全世界的发展做好准备。你可以成为新一年的安全冠军。

你有一些想要推荐的工具吗？请留下评论或 [提出你的文章构思](https://opensource.com/how-submit-article)。

---

via: <https://opensource.com/article/21/12/open-source-security>

作者：[Jessica Cherry](https://opensource.com/users/cherrybomb) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #502 优麒麟软件商店上架“原生”微信应用

Summary: 更多：• 将密码存储在浏览器中是个糟糕的主意 • 因备份错误，日本京都大学丢失 77TB 的研究数据

看大佬们分析，好像还是用的 Electron？

至少能保存聊天记录了。

![](/data/attachment/album/202112/31/130106r7rcsg27ggzwz6zw.jpg)

![](/data/attachment/album/202112/31/130115s3174sbb329b18aa.jpg)

### 优麒麟软件商店上架“原生”微信应用

目前 Linux 发行版下的微信替代方案，都与原生版本有一定的差距，极大的影响了用户的日常工作效率，以及日常影音娱乐需求。而麒麟软件今天 [发布消息](https://www.ukylin.com/news/1728-cn.html) 称，“与腾讯公司联手推动了基于 Linux 平台的原生微信适配工作，微信官方版 2.1.1 正式上线，并在麒麟软件商店上架。”想要体验的用户，只需在麒麟商店搜索“微信”，一键完成安装，扫码登录即可随时畅聊。

>
> 老王点评：据我所知，腾讯从未有过“原生”微信，其官网也找不到可以下载的 Linux 版本。这应该是一个腾讯官方“封装”的可用于 Linux 的微信，不过既然是官方推出的，应该可靠。
>
>
>

![](/data/attachment/album/202112/31/130126q2rnptcdrcoko7ao.jpg)

### 将密码存储在浏览器中是个糟糕的主意

恶意软件 RedLine 瞄准了 Chrome、Edge 和 Opera 等流行浏览器，它针对的是基于 Chromium 浏览器的 Login Data 文件以及用于保存用户名和密码的 SQLite 数据库。RedLine 是一种商品化的信息窃取程序，可在网络犯罪论坛上以大约 200 美元买到，不需要太多知识即可轻松部署。安全专家 [警告称](https://asec.ahnlab.com/en/29885/)，贪图方便使用浏览器的自动登录功能正成为影响组织和个人的重大安全隐患。使用浏览器存储登录凭据的做法既诱人又方便，但是即使没有感染恶意软件，此举也有风险。因为这将允许在本地或者远程访问计算机的人在几分钟内窃取所有的密码。

>
> 老王点评：对于密码这么重要的信息，相信还是专用软件比浏览器更可靠一些。
>
>
>

![](/data/attachment/album/202112/31/130145yisecaj96769o379.jpg)

### 因备份错误，日本京都大学丢失 77TB 的研究数据

日本京都大学由于其惠普超级计算机的备份系统出现错误，[丢失](http://www.iimc.kyoto-u.ac.jp/ja/whatsnew/trouble/detail/211216056978.html) 了约 77TB 的研究数据，导致 14 个研究小组的 3400 万个文件从系统和备份文件中被抹去，其中四个受影响小组的工作已无法恢复。该校已经报废了备份系统，并计划应用改进措施，在 2022 年 1 月重新启用。

>
> 老王点评：数据的重要性如何强调都不过分，而有弹性的备份可能是最后一道保护。
>
>
>


Maui Shell 来了，开启 Linux 桌面新时代

相当好看，正在 poco f1 手机上用

>
> 除了 System76 宣布了基于 RUST 的新桌面环境之外，还有别的团队也给桌面 Linux 用户带来了一些新东西。
>
>
>

![](/data/attachment/album/202201/01/105131gfzvf5ruurfu5v0n.png)

过去的几年里，我们很欣慰地看到 [Nitrux Linux](https://nxos.org/) 背后的团队正在扩大他们对 Linux 社区的影响。如今，伴随着全新 Maui Shell 的发布，他们的影响也已经得到了进一步扩大。

让我们一起来看看吧！

### 关于 Maui 项目的一些背景介绍

![](/data/attachment/album/202201/01/105133um877m7nfdflj7d7.png)

作为由 Nitrux Linux 团队原班人马创建、开发、维护的项目，Maui 项目已经开发了许多基础应用。实际上，他们的文件管理器 [Index](http://mauikit.org/apps/index) 甚至成功进入了我们的 [2021 年五大应用列表](https://news.itsfoss.com/linux-apps-discovered-2021/) 之中！

他们的所有应用均使用 MauiKit 这款定制框架开发。基于 Kirigami 的 MauiKit 专注于跨终端融合性，因此开发出来的应用可以在电脑和手机端拥有一致的体验。此外，它为开发者提供了更多的预置组件，因此创建应用可以更加便捷。

目前 Maui 项目开发的部分应用包括：

* Index（文件管理器）
* Nota（文本编辑器）
* VVave（音乐播放器）
* Clip（视频播放器）
* Pix（图片查看器）

虽然这些自制应用本身质量不错，但它们在 Nitrux Linux 的默认桌面环境 KDE Plasma 里总显得不合群。因此，Maui Shell 应运而生。

### Maui Shell 介绍

![](/data/attachment/album/202201/01/105134y0k9db08vh94bnhy.png)

借助与 Maui 应用相同的 MauiKit 和 Qt 技术底层，Maui Shell 是 Nitrux 在桌面环境领域的一个新尝试。从上面的截图可以看出，它在很大程度上受到了 GNOME Shell 的启发，这在使用过程中也确实有所体现。

但，这并不意味着 Maui Shell 没有原创的地方。从底部上滑可打开类似于 GNOME “活动”的概览界面。与此相邻的是一个小 Dock，可以通过相当美观的启动器来启动应用。右上角有一个与 macOS 相似的控制中心，内有精心设计的菜单和许多控制功能。

在我使用它的过程中，一切都是如此精致、自然。我感觉这与它极致现代、扁平的设计美学有关，我甚至认为 Maui Shell 已经超越了 GNOME 和 KDE Plasma 等同类软件。说到 Plasma，与 Nitrux 的默认 Plasma 版本相比，Maui Shell 在低端设备（和虚拟机）上的反应更加灵敏。

总的来说，我预测 Maui Shell 将依靠其实用性成为 “Linux 桌面环境之王”。然而，我还没谈到 Maui Shell 最核心的特性：<ruby> 跨终端自适应性 <rt>  Convergence </rt></ruby>。

### 主流之中的融合

许多人可能还记得 2010 年 Canonical 开发了一款类似的跨终端桌面环境 Unity，它最终以失败落幕，到 2018 年则被完全淘汰了。但是，Unity 和 Maui Shell 有一个共同特性 —— 那就是跨终端融合性。

随着 Linux 在移动端的开发力度逐渐加大，跨终端支持变得尤为重要。由此来看，一个新的桌面环境竟能同时支持桌面端和移动端，的确不可思议。

这一点必须依靠大量的跨终端应用实现，而 Maui 已经处在了完美的衔接点上。这仅仅是我相信 Maui Shell 能成为 Linux 桌面未来的原因之一。

### 立即试用 Maui Shell

与其他新发布的软件不同，Maui Shell 已经预装于新发布的 Nitrux 1.8。如果你想亲自尝试一下，那请随时从下方链接中获取 ISO 镜像。但是，在尝试之前，请务必知晓：Maui Shell 仍处于早期开发阶段。

尽管 Maui Shell 拥有许多特色功能，但部分功能可能存在问题、尚未实现，要么就是缺失了，其中包括：

* 蓝牙支持
* PulseAudio 支持
* 网络开关
* 媒体控制（MPRIs）
* 拖放支持
* 多显示器支持
* 设置应用
* XWayland Shell 插件

因此，我暂时不能建议你使用 Maui Shell 作为主力桌面环境。为此，你可能需要等待 2022 年秋季发布的正式版本。

在此之前，我仍将持续关注 Maui Shell。对于这款桌面环境，你的评价如何？欢迎在评论区说出你的想法！

---

via: <https://news.itsfoss.com/maui-shell-unveiled/>

作者：[Jacob Crume](https://news.itsfoss.com/author/jacob/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[imgradeone](https://github.com/imgradeone) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


为什么在 Linux 中“文件夹”被称为“目录”？

Summary: 如果你想知道为什么文件夹在 Linux 中被称为目录，这里有一些解释。

在写一些会涉及到大量文件操作的教程时。

我倾向于使用 "文件/目录" 来描述，一目了然。

如果是用 "文件/文件夹"，看着就很乱。

Windows 一样使用 directory 一词。DOS 和 cmd 中列目录的命令叫dir, 很明显是取自这个词语的前 3 个字母。

名字不重要，不管叫什么都可以。用就是了。哈哈！

早期的DOS和Windows也叫目录。

文件夹算是win可视化之后的意译吧

如果你想知道为什么文件夹在 Linux 中被称为目录，这里有一些解释。

如果你最开始使用的是 Windows 电脑，你很可能会使用“<ruby> 文件夹 <rt>  folder </rt></ruby>”这个术语。

但当你换到 Linux 时，你会发现文件夹通常被称为“<ruby> 目录 <rt>  directory </rt></ruby>”。

这可能使一些新的 Linux 用户感到困惑。你应该叫它文件夹还是目录？它们有区别吗？

事情是这样的。如果你愿意，你可以叫它文件夹，如果你喜欢，也可以叫它目录。这没有什么区别。

但是，如果你想知道为什么文件夹在 Linux 中被称为目录，这里有一些解释。

### 为什么在 Linux 中文件夹被称为目录？

在我解释之前，让我们回顾一下文件夹和目录在现实世界中的用途。

在现实中，文件夹（封套）可以用来保存几个文件（或其他项目）。而目录则可以用来维护项目的索引，这样你就可以找到哪个项目位于哪里。

![文件夹和目录的示意](/data/attachment/album/202201/01/115319wd9w8w4ir83klk54.png)

现在，让我们回到目录。这个词甚至在 Linux 存在之前就已经存在了。它来自 UNIX 时代。Linux 继承了 UNIX 的很多东西，这只是其中的一个。

现在让我告诉你一些可能让你吃惊的事情。目录并不是真的把文件放在里面。目录是一个“特殊的文件”，它知道文件在存储中的位置（通过 [inode](https://linuxhandbook.com/inode-linux/)）。

这就说明了为什么它被称为目录。目录用来保存项目的索引，而不用保存项目本身。Linux 和 UNIX 中的目录并不保存它里面的文件。它们只是记录文件位置的信息。

如果你想了解更多关于它的信息，我这篇关于 [硬链接](https://linuxhandbook.com/hard-link/) 的文章应该可以帮助你。

那么，为什么它被称为文件夹呢？依我看，这是视角的原因。当你在一个图形环境中时，你会将事物可视化。在这里，文件可以像页面一样被可视化，这些文件页面被存储在一个封套（文件夹）中。

当操作系统开始使用图形元素时，我认为一些术语也相应地发生了变化，目录 -> 文件夹就是其中之一。

### 你应该叫它文件夹还是目录？

这完全取决于你。你可以按你的习惯使用这两个术语。

然而，如果你正在学习 Linux 命令行或经常使用它，使用目录这个术语可能会有一点帮助。

有一些 Linux 命令，如 `mkdir`、`rmdir` 等，术语 “dir” 给出了一个提示，即这些命令与目录有关。

同样，许多 Linux 命令和 bash 脚本会使用选项 `-d` 表示目录，`-f` 表示文件。

甚至终端中的文件属性也会通过在目录前面加上字母 “d” 来区分文件和文件夹（目录）。

拿这个例子来说，我有一个名为 `some` 的文件和一个名为 `something` 的文件夹/目录。请注意各种 Linux 命令是如何用 “dir” 或 “d” 来区分文件和目录的。

![显示文件和目录操作之间区别的例子](/data/attachment/album/202201/01/115319qbl7bb1mt130rmlr.png)

所有这些让我觉得，在使用 Linux 命令时，使用 “目录” 这个术语会有好处。你的潜意识会更容易将 “dir” 和 “d” 与目录联系起来。

再说一次，你想叫它文件夹或目录这完全取决于你。人们会明白你指的是什么。

我刚刚对目录一词的历史渊源做了一些分析，这应该会给你一些提示，为什么人们说 “在 Linux/UNIX 中，所有东西都是一个文件”。

现在我结束了我的胡言乱语，我请你对它进行评论。如果你发现任何技术上的不准确之处，请告诉我。

---

via: <https://itsfoss.com/folder-directory-linux/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #503 美国一州长重申将起诉查看网站源代码的记者

Summary: 更多：• 深度学习不可信 • CentOS Linux 8 到达生命终点

然而依然会处于并将长期处于有 CentOS 的时代，在新电脑都预装 Win7 的情况下，Win10 过了好几年才超过 Win7。

更别说还有很多人觉的软件老、不更新、能很长时间不重启就是稳定。

我建议你不要这么评价！ 前几天 中国把 阿里云也批评了，理由是直接把log4的漏洞提交给阿帕奇基金会！没有提前提交给有关部门。

来自湖北武汉的 Chrome Mobile iOS 96.0|iOS 15.1 用户

阿里云被批评是因为他作为网络安全威胁信息共享平台合作单位但没遵守规则, 这有问题吗

有这么严重bug不提交给合作的有关部门，反而给外国组织，且不说这些组织有没有政府属性，单是这种事就值得批评了。

更多：• 深度学习不可信 • CentOS Linux 8 到达生命终点

![](/data/attachment/album/202201/01/173416vkck7iciyjivgdck.jpg)

![](/data/attachment/album/202201/01/173431amonf1ug15t02125.jpg)

### 美国一州长重申将起诉查看网站源代码的记者

去年 10 月，一名美国记者使用浏览器自带的工具查看了美国密苏里州教育部门网站的网页源代码，发现其在网页中泄露了所有教师和管理人员的社会安全号码。他向该州政府报告了该问题，并在漏洞得到解决后才公开发布了这个事情。美国联邦调查局很早就告诉该州的官员，“这次事件并不是真正的网络入侵事件”。该州教育部门最初还写了一份新闻稿，感谢记者提醒他们注意此事。但该州州长坚持认为记者是黑客，并命令密苏里州公路巡警对他们进行“调查”，以便起诉。这一决定引来舆论大哗，但该州州长本周召开新闻发布会，[重申将起诉记者](https://www.theverge.com/2021/12/31/22861188/missouri-governor-mike-parson-hack-website-source-code)，因为他们揭露了他自己的政府运行了一个危险的计算机系统，使 60 万州雇员的私人信息面临危险。

>
> 老王点评：这世界就是因为这些愚蠢的官僚显现出几分滑稽。
>
>
>

![](/data/attachment/album/202201/01/173451kht224g923sfhih4.jpg)

### 深度学习不可信

过去 20 年，深度学习透过一系列商业应用逐渐主导了人工智能研究和应用。专家认为，该技术是 [不可信的](https://spectrum.ieee.org/deep-learning-cant-be-trusted)，因为它无法解释，而且不适用于某些应用，因为它会经历灾难性的遗忘。换言之，如果算法有效，无法理解它为什么有效。而当该工具慢慢学习新数据库时，其学习记忆的任意部分可能会突然崩塌。因此在任何攸关生死的应用（例如医疗应用）上使用深度学习都可能存在风险。

>
> 老王点评：虽然 AI 也确实在很多领域发挥了重要作用，或具有神奇的效果，但或许我们现在对 AI 的认识还只是盲人摸象。
>
>
>

![](/data/attachment/album/202201/01/173500iaaqlugg1ijjjdyz.jpg)

### CentOS Linux 8 到达生命终点

一年前红帽公司宣布他们将重点转移到 CentOS Stream 上，作为红帽企业 Linux（RHEL）的新上游。今年以来，CentOS Stream 已经初具规模，而这意味着 CentOS Linux 8 的完结。昨天，CentOS 8 正式到达终点，不会再有对它的支持和维护。之前发布的 RHEL 8.5 以及伴随的 CentOS 8.5 将成为绝响。

>
> 老王点评：CentOS 的落幕具有里程碑意义，我们将迎来一个没有 CentOS 的时代，这或许是好事，或许不是。
>
>
>


Kubernetes 集群日志基础

Summary: 探索 Kubernetes 中不同容器日志记录模式的工作原理。

探索 Kubernetes 中不同容器日志记录模式的工作原理。

>
> 探索 Kubernetes 中不同容器日志记录模式的工作原理。
>
>
>

![](/data/attachment/album/202201/02/105801igujabattghwzkjw.jpg "Wheel of a ship")

服务器和应用程序日志记录是开发人员、运维人员和安全团队了解应用程序在其生产环境中运行状态的重要工具。

日志记录使运维人员能够确定应用程序和所需组件是否运行平稳，并检测是否发生了异常情况，以便他们能够对这种情况做出反应。

对于开发人员，日志记录提供了在开发期间和之后对代码进行故障排除的可见性。在生产环境中，开发人员通常依赖于没有调试工具的日志记录工具。在加上系统的日志记录，开发人员可以与运维人员携手合作，有效地解决问题。

日志记录工具最重要的受益者是安全团队，尤其是在云原生的环境中。能够从应用程序和系统日志中收集信息使得安全团队能够分析来自身份验证、应用程序访问恶意软件活动的数据，并在需要时进行响应。

Kubernetes 是领先的容器平台，越来越多的应用程序通过 Kubernetes 部署到生产环境。我相信了解 Kubernetes 的日志架构是一项非常重要的工作，每个开发、运维和安全团队都需要认真对待。

在本文中，我将讨论 Kubernetes 中不同容器日志记录模式的工作原理。

### 系统日志记录和应用日志记录

在深入研究 Kubernetes 日志记录架构之前，我想探索不同的日志记录方法以及这两种功能如何成为 Kubernetes 日志记录的关键特性。

有两种类型的系统组件：在容器中运行的组件和不在容器中运行的组件。例如：

* Kubernetes 调度者和 `kube-proxy` 运行在容器中。
* `kubelet` 和容器运行时不在容器中运行。

与容器日志类似，系统容器日志存储在 `/var/log` 目录中，你应该定期轮换它们。

在这里，我研究的是容器日志记录。首先，我看一下集群级别的日志记录以及为什么它对集群运维人员很重要。集群日志提供有关集群如何执行的信息。诸如为什么 <ruby> 吊舱 <rt>  Pod </rt></ruby> 被下线或节点死亡之类的信息。集群日志记录还可以捕获诸如集群和应用程序访问以及应用程序如何利用计算资源等信息。总体而言，集群日志记录工具为集群运维人员提供操作集群和安全有用的信息。

捕获容器日志的另一种方法是通过应用程序的本机日志记录工具。现代应用程序设计很可能具有日志记录机制，可帮助开发人员通过标准输出 （`stdout`） 和错误流 （`stderr`） 解决应用程序性能问题。

为了拥有有效的日志记录工具，Kubernetes 实现需要应用程序和系统日志记录组件。

### Kubernetes 容器日志的 3 种类型

如今，在大多数的 Kubernetes 实现中，你可以看到三种主要的集群级日志记录方法。

1. 节点级日志代理
2. 用于日志记录的<ruby> 挎斗 <rt>  Sidecar </rt></ruby>容器应用程序
3. 将应用程序日志直接暴露给日志后端

#### 节点级日志代理

我想考虑节点级日志代理。你通常使用 DaemonSet 作为部署策略来实现这些，以便在所有 Kubernetes 节点中部署一个吊舱（充当日志代理）。然后，该日志代理被配置为从所有 Kubernetes 节点读取日志。你通常将代理配置为读取节点 `/var/logs` 目录捕获 `stdout`/`stderr` 流并将其发送到日志记录后端存储。

下图显示了在所有节点中作为代理运行的节点级日志记录。

![Node-level logging agent](/data/attachment/album/202201/02/105823jz5e65z3cb6e6iv0.png "Node-level logging agent")

以使用 `fluentd` 方法为例设置节点级日志记录，你需要执行以下操作：

1、首先，你需要创建一个名为 fluentdd 的服务账户。Fluentd 吊舱使用此服务账户来访问 Kubernetes API，你需要在日志命名空间中使用标签 `app: fluentd` 创建它们：

```
#fluentd-SA.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: fluentd
  namespace: logging
  labels:
    app: fluentd

```

你可以在此 [仓库](https://github.com/mikecali/kubernetes-logging-example-article) 中查看完整示例。

2、接着，你需要创建一个名称为 `fluentd-configmap` 的 ConfigMap。这为 `fluentd daemonset` 提供了一个配置文件，其中包含所有必需的属性。

```
#fluentd-daemonset.yaml
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: logging
  labels:
    app: fluentd
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      app: fluentd
      kubernetes.io/cluster-service: "true"
  template:
    metadata:
      labels:
        app: fluentd
        kubernetes.io/cluster-service: "true"
    spec:
      serviceAccount: fluentd
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:v1.7.3-debian-elasticsearch7-1.0
        env:
          - name: FLUENT_ELASTICSEARCH_HOST
            value: "elasticsearch.logging.svc.cluster.local"
          - name: FLUENT_ELASTICSEARCH_PORT
            value: "9200"
          - name: FLUENT_ELASTICSEARCH_SCHEME
            value: "http"
          - name: FLUENT_ELASTICSEARCH_USER
            value: "elastic"
          - name: FLUENT_ELASTICSEARCH_PASSWORD
            valueFrom:
              secretKeyRef:
                name: efk-pw-elastic
                key: password
          - name: FLUENT_ELASTICSEARCH_SED_DISABLE
            value: "true"
        resources:
          limits:
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
        - name: fluentconfig
          mountPath: /fluentd/etc/fluent.conf
          subPath: fluent.conf
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers
      - name: fluentconfig
        configMap:
          name: fluentdconf

```

你可以在此 [仓库](https://github.com/mikecali/kubernetes-logging-example-article) 中查看完整示例。

现在，我们来看看如何将 `fluentd daemonset` 部署为日志代理的代码。

```
#fluentd-daemonset.yaml
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: logging
  labels:
    app: fluentd
    kubernetes.io/cluster-service: "true"
spec:
  selector:
    matchLabels:
      app: fluentd
      kubernetes.io/cluster-service: "true"
  template:
    metadata:
      labels:
        app: fluentd
        kubernetes.io/cluster-service: "true"
    spec:
      serviceAccount: fluentd
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:v1.7.3-debian-elasticsearch7-1.0
        env:
          - name: FLUENT_ELASTICSEARCH_HOST
            value: "elasticsearch.logging.svc.cluster.local"
          - name: FLUENT_ELASTICSEARCH_PORT
            value: "9200"
          - name: FLUENT_ELASTICSEARCH_SCHEME
            value: "http"
          - name: FLUENT_ELASTICSEARCH_USER
            value: "elastic"
          - name: FLUENT_ELASTICSEARCH_PASSWORD
            valueFrom:
              secretKeyRef:
                name: efk-pw-elastic
                key: password
          - name: FLUENT_ELASTICSEARCH_SED_DISABLE
            value: "true"
        resources:
          limits:
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
        - name: fluentconfig
          mountPath: /fluentd/etc/fluent.conf
          subPath: fluent.conf
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers
      - name: fluentconfig
        configMap:
          name: fluentdconf

```

将这些放在一起执行：

```
kubectl apply -f fluentd-SA.yaml \
              -f fluentd-configmap.yaml \
              -f fluentd-daemonset.yaml

```

#### 用于日志记录的挎斗容器应用程序

另一种方法是使用带有日志代理的专用挎斗容器。容器最常见的实现是使用 [Fluentd](https://www.fluentd.org/) 作为日志收集器。在企业部署中（你无需担心一点计算资源开销），使用 `fluentd`（或[类似](https://www.g2.com/products/fluentd/competitors/alternatives)）实现的挎斗容器提供了集群级日志记录的灵活性。这是因为你可以根据需要捕获的日志类型、频率和其它可能的调整来调整和配置收集器代理。

下图展示了作为日志代理的挎斗容器。

![Sidecar container as logging agent](/data/attachment/album/202201/02/105823jgueyuw38e3oawua.png "Sidecar container as logging agent")

例如，一个吊舱运行单个容器，容器使用两种不同的格式写入两个不同的日志文件。吊舱的配置文件如下：

```
#log-sidecar.yaml
apiVersion: v1
kind: Pod
metadata:
  name: counter
spec:
  containers:
  - name: count
    image: busybox
    args:
   - /bin/sh
    - -c
    - >
     i=0;
      while true;
      do
        echo "$i: $(date)" >> /var/log/1.log;
        echo "$(date) INFO $i" >> /var/log/2.log;
        i=$((i+1));
        sleep 1;
      done
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  - name: count-log
    image: busybox
    args: [/bin/sh, -c, 'tail -n+1 -f /var/log/1.log']
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  volumes:
  - name: varlog
    emptyDir: {}

```

把它们放在一起，你可以运行这个吊舱：

```
$ kubectl apply -f log-sidecar.yaml

```

要验证挎斗容器是否用作日志代理，你可以执行以下操作：

```
$ kubectl logs counter count-log

```

预期的输出如下所示：

```
$ kubectl logs counter count-log-1

Thu 04 Nov 2021 09:23:21 NZDT
Thu 04 Nov 2021 09:23:22 NZDT
Thu 04 Nov 2021 09:23:23 NZDT
Thu 04 Nov 2021 09:23:24 NZDT

```

#### 将应用程序日志直接暴露给日志后端

第三种方法（在我看来）是 Kubernetes 容器和应用程序日志最灵活的日志记录解决方案，是将日志直接推送到日志记录后端解决方案。尽管此模式不依赖于原生 Kubernetes 功能，但它提供了大多数企业需要的灵活性，例如：

1. 扩展对网络协议和输出格式的更广泛支持。
2. 提供负载均衡能力并提高性能。
3. 可配置为通过上游聚合接受复杂的日志记录要求。

因为这第三种方法通过直接从每个应用程序推送日志来依赖非 Kubernetes 功能，所以它超出了 Kubernetes 的范围。

### 结论

Kubernetes 日志记录工具是企业部署 Kubernetes 集群的一个非常重要的组件。我讨论了三种可能的可用模式。你需要找到适合你需求的模式。

如上所述，使用 `daemonset` 的节点级日志记录是最容易使用的部署模式，但它也有一些限制，可能不适合你的组织的需要。另一方面，挎斗 模式提供了灵活性和自定义，允许你自定义要捕获的日志类型，但是会提高计算机的资源开销。最后，将应用程序日志直接暴露给后端日志工具是另一种允许进一步定制的诱人方法。

选择在你，你只需要找到适合你组织要求的方法。

---

via: <https://opensource.com/article/21/11/cluster-logging-kubernetes>

作者：[Mike Calizo](https://opensource.com/users/mcalizo) 选题：[lujun9972](https://github.com/lujun9972) 译者：[perfiffer](https://github.com/perfiffer) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


2021 年我最喜欢的五个 Linux 应用程序

Summary: 这些应用程序可能不是绝对的必需品，但我很高兴在 2021 年发现了它们。

我最喜欢的 5 个。

+ GloriousEggroll/proton-ge-custom

    + Proton 的 Fork，支持更多的游戏。

+ proton-caller-git

    + Proton 是 Steam 的配套工具，要运行其它 .exe 很麻烦。但这款工具能让你脱离 Steam 直接运行 .exe 。

+ simplescreenrecorder

    + 简单小巧的录频工具，该有的都有。

+ ...

+ ...

copyq - 剪贴簿管理

shutter - 截屏编辑

audicious - 音乐播放

这些应用程序可能不是绝对的必需品，但我很高兴在 2021 年发现了它们。

>
> 这些应用程序可能不是绝对的必需品，但我很高兴在 2021 年发现了它们。
>
>
>

![](/data/attachment/album/202201/02/165845wcz6cka5rfjc6lis.png)

在这个 2021 年，我目睹了数百个有趣的 Linux 应用程序的开发取得了进展，并因此获得了更多用户。虽然其中一些已经止步，但其它的应用还在继续发展，不断地获得更多的关注和新功能。

虽然我希望我可以对所有这些应用都有所了解，但显然这是不可能的。不过，我已经挑选了 5 个我最喜欢的应用，并在这里与你分享它们。它们可能不会被列入 [必需的 Linux 应用程序名单](https://itsfoss.com/essential-linux-applications/)，但我却十分青睐它们。

在开始之前，应该注意的是，所有这些应用程序，除了 EverSticky 之外，都是融合性的，这意味着它们同样适用于桌面和移动 Linux 设备。随着 PinePhone 和 Librem 5 等设备变得越来越流行，我认为融合性应用是相当重要的，看到这么多的此类应用正在开发中，真是太好了。

言归正传，让我们来看看第一个应用程序。

### Index

![图片来源：MauiKit](/data/attachment/album/202201/02/165847usdwb2r6igd9m962.png)

早在 2016 年，当 KDE 发布 Kirigami 时，很明显，它是 KDE 的应用程序的未来。不幸的是，将成千上万的应用程序转换到一个新的 UI 工具包是相当困难的，这导致了 KDE 应用程序之间严重的不一致。

五年后的今天，作为桌面级应用的 UI 工具包，我们终于看到 Kirigami 被真正重视起来，这在文件管理器 Index 中得到了完美的体现。这个漂亮的应用程序能成为 Plasma Mobile 和 Nitrix Linux 的默认文件管理器，自然有原因的。

虽然不像 KDE 的默认文件管理器 Dolphin 那样功能丰富，但它有集成终端、文件预览、标签和分割视图模式等功能。这使得它可以和 Gnome 的 Nautilus 相提并论，同时它还有融合性和基于 Kirigami 的明显优势。

自从发现了它，我就只用它了，甚至没有想过要换回 Dolphin 或 Nautilus。我强烈推荐给任何想尝试新文件管理器的人。

* [获取 Index](https://mauikit.org/apps/index/)

### Vakzination

我相信大家都会这样认为，过去的两年是艰难的，但是在隧道的尽头有一道光。随着疫苗的推出，我们似乎终于接近了这场大流行病的终点。

不幸的是，这也意味着许多人不得不习惯于疫苗证书的概念，其中许多现在是数字证书。这对 Linux 用户来说可能是个问题，因为卫生部门很少有资源为 Linux 开发疫苗接种证书应用程序。

然而，这并没有阻止一些社区成员致力于开发一个自由开源的替代方案，从而产生了 Vakzination。作为一个 KDE 应用程序，它使用 Kirigami 和 Qt Quick 创建了一个快速、现代和用户友好的疫苗接种证书应用程序，使用起来非常方便和快捷。

它目前支持以下证书格式：

* [印度疫苗接种证书](https://en.wikipedia.org/wiki/Verifiable_credentials)
* [欧盟 “数字绿色证书”（DCG）疫苗接种、测试和康复证书](https://github.com/eu-digital-green-certificates)

老实说，我觉得社区在这个应用程序上取得的成就相当不可思议，在此希望他们能尽快增加更多的格式支持。

* [获取 Vakzination](https://invent.kde.org/plasma-mobile/vakzination)

### Elisa

![](/data/attachment/album/202201/02/165849mvdlqd7eah7o7do5.png)

Elisa 是另一个基于 Kirigami 的应用程序，是一个来自 KDE 的快速而漂亮的音乐播放器。它支持所有主要的音频格式，并集成到 Baloo 文件索引器中，以确保你所有的音乐都被收录。

>
> Elisa 是一个由 KDE 社区开发的音乐播放器，努力做到简单和好用。我们也认识到，我们需要一个灵活的产品来考虑用户的不同工作流程和使用情况。我们专注于与 KDE 社区的 Plasma 桌面进行良好整合，而不影响对其他平台（其他 Linux 桌面环境、Windows 和 Android）的支持。
>
>
> 据 [Elisa 网站](https://elisa.kde.org/)
>
>
>

总的来说，对于任何平台来说，它都是一个伟大的音乐播放器，对于 KDE Plasma 和 Plasma Mobile 用户来说更是如此。

* [获取 Elisa](file:///Users/xingyuwang/develop/TranslateProject-wxy/translated/news/tmp.C4FwOdq3pZ)

### Fractal

![](/data/attachment/album/202201/02/165850u7m1nf39dldc7z9l.png)

继续看看 Gnome 应用程序，Fractal 已经迅速成为我最喜欢的信息应用。它使用了成熟的 Matrix 通信协议，并支持用户可能期望的现代消息应用程序的所有功能。

它有些值得注意的功能，如图像和视频预览，以及对所有 Matrix 功能的支持。此外，它使用 LibHandy 库，这意味着它可以在移动设备上完美地工作，如 PinePhone 和 Librem 5。

总的来说，我对这个应用程序非常满意，因为它几乎适合任何希望与朋友或家人交流的人。

* [获取 Fractal](https://wiki.gnome.org/Apps/Fractal)

### EverSticky

![](/data/attachment/album/202201/02/165851o33sq3c3xdeekqo3.png)

到目前为止，EverSticky 是这个名单上最小的项目，它是一个类似于 Windows 11 的<ruby> 便签应用 <rt>  Sticky Notes </rt></ruby> 的小型记事应用。与许多其他可用于 Linux 的便签应用不同，EverSticky 有一个关键优势，它能够同步到印象笔记。

这意味着所有在 EverSticky 上做的笔记也会出现在任何其他登录到印象笔记的设备上。为了帮助尽量减少用户界面混乱（用 Qt 构建），它利用了一个托盘图标，类似于所有最近版本的 Windows 中的图标。

从我的使用经验来看，它工作得非常好，我的所有笔记都能在我的所有设备之间无缝同步。我强烈建议你自己尝试一下。

* [获取 EverSticky](https://github.com/itsmejoeeey/eversticky)

总的来说，我对 Linux 上的应用程序的未来感到兴奋。随着越来越多的人开始关注对开源项目的贡献，我希望我们能得到更多像这样不可思议的应用程序。

你今年还发现了其他一些有趣的新应用吗？请在下面的评论中分享它们。

---

via: <https://news.itsfoss.com/linux-apps-discovered-2021/>

作者：[Jacob Crume](https://news.itsfoss.com/author/jacob/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #504 微软 Exchange 服务器出现 “2022 年错误”

Summary: 更多：• Nvidia 称其智能网卡速度已经超过了存储的世界纪录 • Haiku 可以通过 Wine 运行 Windows 应用程序

![](/data/attachment/album/202201/02/190629mrqc1rqcx11laq6a.jpg)

![](/data/attachment/album/202201/02/190641bdwzodqi8d0u0i0w.jpg)

### 微软 Exchange 服务器出现 “2022 年错误”

许多使用 Exchange 邮件系统公司在元旦期间接到了一条 [错误报告](https://www.reddit.com/r/sysadmin/comments/rt91z6/exchange_2019_antimalware_bad_update/)： “FIP-FS 扫描引擎加载失败，无法将 2201010001 转换为长整型。”这是因为微软在 2022 年伊始发布了新的更新：2201010001 其中 220101 代表 2022 年元旦。而微软在内部使用了一个 32 位的有符号长整型来存储这个版本号，但是有符号的长整型最大值为 2,147,483,647，因此这个版本号溢出了，出现了没有预料到的 “2022 年错误”。为了解决该问题，微软发布了 [新的更新](https://techcommunity.microsoft.com/t5/exchange-team-blog/email-stuck-in-transport-queues/ba-p/3049447) 2112330001 —— 嗯这意思 2021 年 12 月 33 日吧。

>
> 老王点评：之前我们刚刚说过 glibc 还没默认解决 2038 年错误，没想到微软就赶快站出来表示 2022 年也有问题。
>
>
>

![](/data/attachment/album/202201/02/190926mwlxw5ytyhzxww1n.jpg)

### Nvidia 称其智能网卡速度已经超过了存储的世界纪录

Nvidia 的智能网卡配置的 [Bluefield](https://www.theregister.com/2021/12/22/nvidia_bluefield_storage_benchmark/) 包括了一颗不错的 CPU ，因此它可以运行防火墙或加密引擎等工作负载，这样主板的 CPU 就可以被释放出来用于更重要的任务。在 Nvidia 的一些测试中，数据的移动速度比使用英特尔的 Optane 存储级内存的本地存储更快。Nvidia 称，该结果轻松地超过了“以前使用专有存储产品创造的 1000 万 IOPS 的世界纪录”，达到了 4150 万 IOPS，可以使 400Gb/s 的网络达到饱和。当然，他们也承认，这项测试并没有模拟真实世界的工作负载。

>
> 老王点评：智能网卡技术是近年来的网络技术发展的重要发现，这个技术突破很厉害。
>
>
>

![](/data/attachment/album/202201/02/191007b9ebbx1i21hw1bqz.jpg)

### Haiku 可以通过 Wine 运行 Windows 应用程序

作为 BeOS 的继任者，Haiku 已经开发了 20 年，在将 Wine 移植到 Haiku 上运行方面正在取得 [巨大进展](https://discuss.haiku-os.org/t/my-progress-in-porting-wine/11741/26)，能够通过 Wine 运行 Windows 应用程序。

>
> 老王点评：作为小众操作系统，兼容主流操作系统是非常有必要的。
>
>
>


2021 总结：10 个创意树莓派项目

Summary: 你的下一个最流行的树莓派项目。

树莓派最流行的项目不是当吸尘器吗？<br />
我的派已经吃灰好几年了。

来自四川自贡的 Chrome Mobile 83.0|Android 11 用户

你的下一个最流行的树莓派项目。

>
> 你的下一个最流行的树莓派项目。
>
>
>

![](/data/attachment/album/202201/03/094418bv7lgk6bkaa7dkdz.jpg "Raspberries with pi symbol overlay")

树莓派是最受欢迎的单板计算机品牌之一。它流行的部分原因是人们用树莓派制造了大量独特而有趣的项目。人们在各种项目中使用了树莓派，并提供了说明，以便其他人可以重新创建他们的项目。以下是在 2021 年发表的十篇最受欢迎的树莓派文章。我希望在你摆弄自己树莓派时，它们能给你带来启发。

### 《用树莓派建立一个家庭恒温器》

Joe Truncale 在 2020 年 10 月搬进了新家。家里的老式供暖系统需要改进。他的文章提供了关于他如何 [使用树莓派和 ThermOS](https://opensource.com/article/21/3/thermostat-raspberry-pi) 来替换家中的恒温器的详细说明。

### 《在树莓派上建立一个精简服务器》

树莓派可以作为一个很好的服务器。Alan Formy-Duval 展示了如何 [建立一个精简服务器](https://opensource.com/article/21/1/minimal-server-raspberry-pi) 以节约系统资源。他的说明提供了许多关于如何最大限度地利用树莓派的有用提示。

### 《我是如何在公共图书馆的树莓派 400 上教授 Python 的》

树莓派是一个很好的教学工具。在这篇文章中，Don Watkins 讲述了他如何在一个公共图书馆 [使用树莓派 400 教授 Python](https://opensource.com/article/21/6/teach-python-raspberry-pi)。他描述了他是如何设置树莓派 400 以及如何教授课程的。

### 《用 Cockpit 管理你的树莓派》

Alan Formy-Duval 解释了如何 [使用 Cockpit 来管理你的树莓派](/article-13487-1.html)。他详细介绍了如何在树莓派操作系统上安装和使用 Cockpit，并对 Cockpit 的功能做了大致的介绍。正如他在文章中指出的那样，“就像在其他 Linux 系统上一样，Cockpit 可以在树莓派上发挥功用”，这使得这篇文章也可以用于有兴趣在其他系统上使用 Cockpit 的用户。

### 《使用树莓派建立一个具有移动连接功能的路由器》

你可以用树莓派轻松地制作你自己的路由器。在这个教程中，Lukas Janėnas 解释了如何 [建立一个具有移动连接的路由器](https://opensource.com/article/21/3/router-raspberry-pi)。他提供了关于如何在树莓派上安装和配置 OpenWRT 的详细说明。

### 《用树莓派和一个低功耗显示器追踪你的家庭日历》

Javier Pena 使用树莓派和一个墨水屏显示器 [建立了一个家庭日历](/article-13222-1.html)。这篇文章提供了关于该项目中使用的硬件和软件的信息。使用所提供的说明，你可以轻松地为自己的家庭创建一个数字日历。

### 《用树莓派投射你的安卓设备》

在 Sudeshna Sur 的这篇文章中，可以了解到如何 [用树莓派投射你的安卓设备](https://opensource.com/article/21/3/android-raspberry-pi)。Sudeshna 使用 Scrcpy 来完成这个任务。她提供了关于如何设置 Scrcpy 和配置你的手机的说明，以便它们一起工作。

### 《对树莓派 400 的测评》

Don Watkins [测评了树莓派 400](https://opensource.com/article/21/3/raspberry-pi-400-review)，提供了多张他的树莓派 400 开箱图片，并提供了对该设备和捆绑配件的出色书面评论。关于这个 100 美元的大礼包，他有很多好话要说。

### 《用树莓派和 Prometheus 监控你家里的温度和湿度》

在 Chris Collins 的教程中，学习如何 [监测你家里的温度和湿度](https://opensource.com/article/21/7/home-temperature-raspberry-pi-prometheus)。Chris 解释了如何使用 Prometheus 和树莓派来收集和存储数据。他提供了关于安装 Prometheus 的说明，设置 Prometheus 来跟踪数据，创建一个 systemd 单元和日志记录等等，最后还说明了如何把所有的步骤结合起来创建完成的项目。

### 《在树莓派集群中部署 Ceph》

AJ Canlas 教授了如何 [在树莓派集群中部署 Ceph](/article-13020-1.html)。这篇文章提供了使用 `ceph-ansible` Ansible 剧本部署 Ceph 的说明。需要的硬件是四个树莓派 4B 4GB 型号，四个 32GB 的 microSD 卡用于启动操作系统，四个带风扇和散热器的外壳，四个树莓派电源，以及六个 32GB 的 USB 闪存用于 Ceph OSD 节点。这是一套很大的设备，但如果你手上有这样的硬件，这是一个迷人的项目，可以尝试一下。

---

via: <https://opensource.com/article/21/12/raspberry-pi-projects>

作者：[Joshua Allen Holm](https://opensource.com/users/holmja) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


2022 年值得期待的 7 款 Linux 发行版

英特尔做了一个独立的发行版—Clear OS，不知道用的人多不多？

过了喜欢折腾的年纪了，应该一直 Debian 养老了吧。

才出来的时候，各 Lnux 社区都在讨论，但最后似乎没几个人用

大部分都是debian系的

一直喜欢Linux Mint，因为他简洁、相对不卡顿、适应能力强，新老硬件通吃。希望以后的版本能更加顺畅，起码能堪比win7的流畅度！

真养老还得是Ubuntu

来自黑龙江哈尔滨哈尔滨工业大学的 Chrome 97.0|Windows 10 用户

ubuntu的用户路过

Arch邪教信徒路过

首推manjaro, 接着是mint, 其他都是非人类设计，不要因为一张图就觉得行了。是真用户就敢晒你的平时用的应用

其实试着OpenSUSE、KDE Neon、Fedora之类都不错

>
> 2022 年已至，是时候期待一些激动人心的发行版更新了！这里我们挑选了一些值得关注的发行版选择。
>
>
>

![](/data/attachment/album/202201/03/105918jgiiig5ont024oi2.png)

是时候和 2021 年说再见了。

如果你错过了 [2021 年的 Linux 大事件](/article-14103-1.html)，现在你也可以去回顾一下。

不过，考虑到 2021 年已有许多令人印象深刻的发行版推出，2022 年，对于较新的 Linux 发行版以及现有版本的更新，人们的期待值已经直达顶峰。

与十年前相比，Linux 发行版如今更加注重用户体验。这不仅仅关乎资源占用，更关系到发行版的外观及对现代桌面硬件的兼容性。

先来简单回顾一下 —— [elementary OS 6.1](https://news.itsfoss.com/elementary-os-6-1-release/)、[Zorin OS 16](https://news.itsfoss.com/zorin-os-16-release/)、[Pop!\_OS 21.10](/article-14083-1.html) 和 Linux Mint 20.3 都是于 2021 年推出的大型 Linux 发行版的更新版。这些发行版都专注于改善用户体验、改进视觉、优化生产力。

毫无疑问，你可以选择上述发行版并感受前所未有的桌面体验，也可以获取 [最佳 Linux 发行版](https://itsfoss.com/best-linux-distributions/) 的最新更新。

所以，到了 2022 年，你又应该期待什么？是否会有一个能让用户体验更上一层楼的发行版呢？

答案是肯定的，这里就有一些你值得关注的发行版。在此我列出了清单，重点强调 2022 年这些发行版的计划更新内容。

### 2022 年最值得期待的发行版

请注意：这里列出的大部分发行版的官方信息暂时缺失，不过本文章将定期更新以补充最新消息。

#### 1、Slackware 15

![](/data/attachment/album/202201/03/105918zycozo8d8mo87nng.png)

Slackware 是至今为止 [最长寿的活跃发行版](https://news.itsfoss.com/slackware-15-beta-release/)。Slackware 15 Beta 版已在去年发布，稳定版将于 2022 年初发布。

对于新手级桌面用户来说，这并不那么吸引人，不过如果你想要一款支持旧硬件，或者能够有效利用资源的发行版，Slackware 可以成为你的候选方案。

再次强调一下，Slackware 15 将是时隔六年后的一个大版本更新，所以这是一件大事。

不过，这款发行版会更适合有经验的 Linux 用户。

因此，如果你对此不感兴趣的话，你可以去看看 [最轻量级的 Linux 发行版列表](https://itsfoss.com/lightweight-linux-beginners/)。

#### 2、Ubuntu 22.04 LTS

![](/data/attachment/album/202201/03/105920zb5p29uuso8q9qxp.png)

Ubuntu 的下一个 LTS 版本 22.04（代号 Jammy Jellyfish）将于 2022 年 4 月 21 日发布。

在 Ubuntu 22.04 LTS 中，你将可以体验到 GNOME 42 桌面环境、全新的安装器，以及默认使用 Wayland 的桌面会话。

[Ubuntu 21.10](/article-13887-1.html) 的一系列改进也将在 Ubuntu 22.04 LTS 中一并出现。

#### 3、Zorin OS 17

![Zorin OS 16](/data/attachment/album/202201/03/105921aljaa99qpqdob5md.png)

[Zorin OS 16](https://news.itsfoss.com/zorin-os-16-features/) 凭借其新增的许多功能及用户体验改进，让我们留下了极其深刻的印象。

我认为 Zorin OS 16 是一次极大地增强了桌面体验的更新。

考虑到 Zorin OS 16 中已经有了大幅改进，我们应该转投于下一个大版本更新 —— 将于 2022 年发布的 Zorin OS 17。当然，它应该会基于 Ubuntu 22.04 LTS，不过你更应该期待一下视觉方面的改进。

#### 4、Pop!\_OS 22.04

![](/data/attachment/album/202201/03/105922igw6htlp86kcggu2.png)

[Pop!\_OS](https://pop.system76.com) 是一款开箱即用的稳定发行版。与其他发行版不同， Pop!\_OS 并不意在于“更棒的视觉体验”，而是专注于增强工作流环境，同时提供独特的桌面体验。

System76 [将仓库从 Launchpad 转移出去](https://news.itsfoss.com/pop-os-ppa-repo-move/) 和计划 [使用 Rust 从头构建桌面环境](https://news.itsfoss.com/pop-os-cosmic-rust/) 这几件激动人心的举措，使我更有意愿去关注他们的发展动态。

毫无疑问，[Pop!\_OS 能够成为我的主力系统](/article-14118-1.html)。

此外，Pop!\_OS 22.04 将会是 System76 对其操作系统后续规划的有力支撑，所以，拭目以待吧。

#### 5、Linux Mint 21

![](/data/attachment/album/202201/03/105923ncijfmzb0emcvjbm.png)

[Linux Mint](https://linuxmint.com) 团队可能不会推出很多变化，但从 Linux Mint 20.3 开始，他们开始专注于改善视觉了。

我并不希望有任何破坏性变更。不过，Linux Mint 21 仍旧有值得期待的重大视觉优化，毕竟他们确实需要向更现代的桌面环境发展了。

#### 6、CutefishOS

![](/data/attachment/album/202201/03/105925xq5q8l5ghl5kzvx5.png)

[CutefishOS](https://cn.cutefishos.com) 目前仍处于早期开发阶段（虽然已经到了 Beta 测试阶段），尚未进入稳定阶段。

根据我对其 Beta 测试版本的体验，CutefishOS 在用户体验上 [可以与深度操作系统相媲美](/article-14058-1.html)。当然我仍旧持谨慎态度，毕竟它还没到达稳定阶段。

不过，CutefishOS 确实是款值得关注的项目，毕竟，更多的发行版将开始意识到改进用户体验的重要性，并试图与现有的 [最美 Linux 发行版](https://itsfoss.com/beautiful-linux-distributions/) 一决高下，这么“卷”起来总归是好事。

#### 7、Fedora 36

![](/data/attachment/album/202201/03/105926asmc33cnkkntfmro.png)

[Fedora](https://getfedora.org) 团队已经从 [Linus Tech Tip 的 Linux 日用挑战系列视频](/article-14053-1.html) 中认真地听取了用户反馈。

事实上，[红帽公司已经捐赠了 1 万美元](https://www.gamingonlinux.com/2021/12/red-hat-donates-10k-to-obs-studio-flatpak-to-be-official-for-linux/) 来帮助 OBS 构建 Flatpak 官方包。

即便 Fedora 并非 Linux 游戏玩家的理想发行版，Fedora 团队也在努力使 Workstation 版本兼顾稳定性和最新功能。

[Fedora 35](/article-13949-1.html) 正是一个优秀案例，它带来了 GNOME 41 和全新的 KDE 变体版本。

我并不敢保证 Fedora 36 能更适合游戏玩家，但有一些预期的变化，比如 Wayland 默认使用 NVIDIA 专有驱动，以及新的 GNOME 42 桌面环境。如果你想关注开发动态，你可以查阅 [官方的更新内容列表](https://www.fedoraproject.org/wiki/Releases/36/ChangeSet)。

#### 额外：Nitrux Linux

我本来没有计划在这里介绍 Nitrux 的，但 Nitrux 几天前突然 [推出了 Maui Shell 项目](https://nxos.org/news/introducing-maui-shell/)。

Maui Shell 是一款跨终端的桌面环境，支持电脑、平板、手机。听起来是不是有点像当年 Ubuntu 的 Unity 呢？Nitrux 项目在设计方面一直很出色，所以我对这款新的桌面环境的期待值已经拉满了。

![](/data/attachment/album/202201/03/105926xgd0rakmprpmybpc.png)

Maui Shell 项目仍在大力开发中。它将在接下来的几个月里添加新功能，以确保其基本可用。我们可以期待 2022 年它会变成什么样子。

### 结束语

即便我们列出了这么多发行版，谁知道哪个发行版又会突然出现，并拿下头条呢？

也许是 [EndeavourOS](https://endeavouros.com)、[Garuda Linux](https://garudalinux.org) 的重量级更新，又或者是别的？

2022 年，你又会期待哪款发行版呢？不要介意，欢迎在评论区分享你的想法。

---

via: <https://news.itsfoss.com/linux-distro-releases-2022/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[imgradeone](https://github.com/imgradeone) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #505 人工智能重新“创造”了历史

Summary: 更多：• 新的补丁集将清理 Linux 内核的“依赖地狱”• Canonical 招聘 Linux 桌面游戏产品经理

Ubuntu商店像屎一样，也不见修一修，却不知道搞一些什么鬼。

来自120.230.61.0的 Chrome Mobile 75.0|Android 10 用户

好像是gnome的商店。

Ubuntu 有商店？snap？如果是 snap，Ubuntu 有些软件默认安装的是 snap 版的确很烦，其它用着还不错，就是国内没镜像。

如果指的其它商店，那可能说的是 GNOME 和 KDE 桌面自带的商店，这个锅就不是 Ubuntu 的了。

![](/data/attachment/album/202201/03/181010dxhhl74mmhvhlniv.jpg)

![](/data/attachment/album/202201/03/181020d76xj9rs3j35js0a.jpg)

### 人工智能重新“创造”了历史

人工智能越来越多的做到了之前 [无法做到的事情](https://www.bgdailynews.com/washington_post/artificial-intelligence-is-restoring-lost-works-by-klimt-picasso-and-rembrandt-but-not-everyone-is/article_935bf09a-d97a-5e0f-9a45-4f636df4d567.html)。谷歌使用机器学习创建了克里姆特 1900 年的画作《哲学》，而之前它只有一幅黑白照片传世。也有人利用 AI 重建了伦勃朗著名的《守夜人》边缘的缺失板块，并在夏天将它们暂时安装在原画旁边。还有人利用 3D 打印和 AI 重建了隐藏在毕加索《盲人餐》下面的早期画作。以及，德国波恩的一个管弦乐队完整地“演奏”了贝多芬的第十首未完成的交响曲，这个版本是由一个算法编写的。

>
> 老王点评：AI 修“旧”如“新”，这真的是原来的历史么？
>
>
>

![](/data/attachment/album/202201/03/181028tup69wyvmmej867u.jpg)

### 新的补丁集将清理 Linux 内核的“依赖地狱”

这项名为“[快速内核头文件](https://lore.kernel.org/lkml/YdIfz+LMewetSaEB@gmail.com/T/#u)”的工作花费了一年时间整理，包含了多达 2297 个补丁，完全重塑了 Linux 内核的头文件层次结构。其目标是加快内核的构建，同时清理构建过程，以解决“依赖地狱”问题。Linux 内核中大约有 1 万个主要的头文件，在过去的 30 多年里，它们已经成长为一套复杂而痛苦的交叉依赖关系。这套庞大的补丁涉及到大部分的 Linux 内核代码库。根据测试数据，启用了“快速内核头文件”的内核要比原始的内核构建性能有可能提高 50-80%。这个庞大的补丁系列已经在 x86/x86\_64、SPARC、MIPS 和 ARM64 等多种架构上进行了测试。这可能是 [有史以来代码规模最大](https://www.phoronix.com/scan.php?page=news_item&px=Linux-Fast-Kernel-Headers) 的一个 Linux 内核功能调整。

>
> 老王点评：这是一项功在千秋的工作，确实需要清理一下瓶瓶罐罐了。
>
>
>

![](/data/attachment/album/202201/03/181047nx7ym9y8zkvkzyx9.jpg)

### Canonical 招聘 Linux 桌面游戏产品经理

据 Steam Play 最新数据，Linux 上的游戏用户占比为 [1.11%](https://www.phoronix.com/scan.php?page=news_item&px=Steam-Linux-December-2021)，虽然略有下降。而 Ubuntu 背后的厂商 Canonical 也将目光放在了 Linux 桌面游戏上了，现在正在 [招聘](https://canonical.com/careers/3776036) Ubuntu 的桌面游戏产品经理的新职位，希望“使 Ubuntu 成为最适合游戏的 Linux 桌面”，将围绕 Ubuntu 的桌面图形驱动选择，致力于与 GPU 供应商和其他 IHV/ISV 的合作。

>
> 老王点评：Linux 还是不甘心在桌面上退让啊，让我们看看 Linux 能不能复制在服务器等领域的成功。
>
>
>


用 Samba 跨平台共享文件

samba一个不足是会丢失文件元数据，比如文件修改时间会变成上传时间

>
> Samba 是一种灵活的文件共享工具，它将你可能在组织中运行的所有不同平台结合在一起。
>
>
>

![](/data/attachment/album/202201/04/092708dsjqu1fbfjjhee1j.jpg "Files in a folder")

在我接触 Linux 的早期，我是纽约州一个小型学前教育学区的技术总监。我们的技术预算总是捉襟见肘。我们是一个 Windows 2000 活动目录域，但我们的中央服务器磁盘空间有限，而且没有教师的主目录。此外，我们经历过十几次员工电脑硬盘故障。

我正在寻找一种方法，以最小的成本保存员工的工作。这时我发现了 Samba。在那之前，我一直将 Linux 用于内容过滤，不知道我们的 Windows 工作站可以连接到服务器并保存文件备份。

[Samba 项目](https://www.samba.org/) 自 1992 年以来一直存在。当我开始试验这个项目的时候，这个项目已经有 10 年历史了，我对如何配置它一无所知。我买了一本书并阅读了如何实现它，然后我从我们的电脑柜中取出一台旧电脑，购买了一个 300G 的希捷 IDE 驱动器，安装了 Linux，并配置了 Samba。我使用了一个简单的配置，并且它成功了。在向我们的一个 IT 助理展示后，我们部署了这个解决方案。硬盘故障的问题继续存在，但我们的员工不再需要担心失去他们所有的辛苦工作。

Samba 采用 [GPL](https://www.samba.org/samba/docs/GPL.html) 许可证，并在大多数 Linux 发行版上广泛使用。Samba 有很好的 [文档](https://www.samba.org/samba/docs/)，Fedora 用户可以查阅这份在 [Fedora 上配置 Samba](https://docs.fedoraproject.org/en-US/quick-docs/samba/) 的文档。

### 在 Linux 上安装 Samba

你可以使用你的发行版的包管理器来安装 Samba。

在 Fedora、CentOS、RHEL、Mageia 和类似的系统上：

```
$ sudo dnf install samba

```

在 Debian, Linux Mint 和类似系统上：

```
$ sudo apt install samba

```

### 用 Samba 创建一个共享文件夹

创建一个简单的共享文件夹只需要五个步骤。

1、在你的 Linux 服务器上创建一个你希望用户能够保存共享文件的目录。这个目录可以是服务器上的任何地方：在 `/home` 或 `/opt` 或任何最适合你的地方。我使用我的主目录，我把共享目录称为 `sambashare`。

```
$ mkdir /home/don/sambashare

```

在 Fedora 和其他运行 SELinux 的发行版上，你必须对这个共享目录给予安全许可：

```
$ sudo semanage fcontext --add --type "samba_share_t" ~/sambashare
$ sudo restorecon -R ~/sambashare

```

2、用 Nano 或你选择的文本编辑器编辑 Samba 配置文件。

```
$ sudo nano /etc/samba/smb.conf

```

在 `smb.conf` 文件的底部添加以下内容，用你自己的共享目录的位置替换我例子中的 `/home/don/sambashare` 路径：

```
[sambashare]
        comment = Samba on Linux
        path = /home/don/sambashare
        read only = no
        browsable = yes

```

如果你使用 Nano，按 `Ctrl-O`，然后按**回车**来保存，按 `Ctrl-X` 退出。

3、启动或重启 Samba 服务，这取决于你的发行版。

在 Fedora 和类似的系统中，没有明确的许可，服务是不会启动的，所以现在就可以启动 Samba，并在启动时启动：

```
$ sudo systemctl enable –now smb.conf

```

在 Debian 和类似系统中，Samba 默认在安装后启动，所以你必须现在就重启它：

```
$ sudo service smbd restart

```

4、更新你的防火墙规则，允许访问你的 Samba 共享。该如何做取决于你的系统使用什么防火墙。

如果你正在运行 firewalld：

```
$ sudo firewall-cmd --permanent --add-service=samba
$ sudo firewall-cmd --reload

```

如果你正在运行 UFW：

```
$ sudo ufw allow samba

```

5、现在你需要设置一个密码来访问你的 Samba 共享。这个用户名（在我的例子中是 don）必须属于你系统中的一个账户。

```
$ sudo smbpasswd -a don

```

我在每个 Samba 共享中都放置了一个简单的 `README` 文件，这样用户就会明白这个目录位于服务器上，他们必须在 VPN 上才能从家里访问它等等。

### 从 Windows 和 Mac 访问 Samba

在 Windows 电脑上，打开文件管理器（Windows Explorer），访问路径 `ip-address-of-the-Linux-computer/sambashare`。系统会提示你输入 Samba 共享密码，然后 `sambashare` 目录中的文件会出现在你的文件管理器窗口中，就像它们存在于你的桌面上一样。你可以开始在网络上的这个新共享目录中存储你的文件。

在 macOS 电脑上，进入 Finder 菜单，选择 Go。在出现的对话框中，输入 `smb://ip-address/sambashare`，并按照提示输入 Samba 密码。

### Samba 意味着共享

Samba 使共享文件变得容易。你可以在 Samba 中使用许多其他方案来创建共享位置，包括用户组的公共文件夹，只接受传入文件的收件箱，以及其他你可能需要的东西。它是开源的、灵活的，而且它把你可能在你的办公室里运行的所有不同的平台联合起来。

---

via: <https://opensource.com/article/21/12/file-sharing-linux-samba>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出