Bash Shell 脚本新手指南（三）

Summary: 它将涉及到函数、用 if/elif 语句进行比较，并以研究 while 循环作为结尾。

不是打广告哈，阮一峰写了篇《Bash 脚本教程》，想看中文教程的可以看看。

链接：wangdoc.com/bash

如要要学 Zsh，可以试试这篇《Zsh 开发指南》。

链接：github.com/goreliu/zshguide

Zsh 和 Bash 语法是兼容的，学 Bash 也可以参考这个教程。当然 Zsh 和 Bash 也有一小部分不一样，里面的《Bash 和 zsh 用法简明对照表》小节有提到。

不是砸场子哈，博主翻译、分享这些很幸苦，很是感谢。这里只是整合一下 Bash 的教程哈，给想学的人一个参考。

国内的幕课网和 W3C School 也有 Bash 教程。

链接：

w3cschool.cn/bashshell

imooc.com/wiki/shelllesson

![](/data/attachment/album/202202/28/103333wnph1p1nqkb8b3zl.jpg)

欢迎来到面向初学者的 Bash Shell 脚本知识第三部分。这最后一篇文章将再来学习一些知识点，这些将使你为持续的个人发展做好准备。它将涉及到函数、用 `if`/`elif` 语句进行比较，并以研究 `while` 循环作为结尾。

### 函数

让我们从一个看似困难但其实很简单的基本概念开始，即函数。把它看作是一种简单的方法，可以把脚本中被反复使用的部分放到一个可重复使用的组中。你在本系列第一篇或第二篇文章中所做的任何事情都可以放在一个函数中。因此，让我们把一个函数放到我们的 `learnToScript.sh` 文件中。让我指出几个关键点。你将需要为你的函数起一个名字、一对小括号，以及用大括号包围放在你的函数中的命令。

```
#!/bin/bash

#A function to return an echo statement.
helloFunc() {
        echo "Hello from a function."
}

#invoke the first function helloFunc()
helloFunc

```

你会看到如下输出结果：

```
[zexcon@fedora ~]$ ./learnToScript.sh
Hello from a function.
[zexcon@fedora ~]$

```

函数是重复使用一组命令的好方法，但如果你能使它们在每次使用时对不同的数据进行操作，它们会更加有用。这就要求你在每次调用函数时提供数据，这称为参数。

要提供参数，你只需在调用函数时把它们加在函数名称后面。为了使用你提供的数据，你在函数命令中使用位置来引用它们。它们将被命名为 `$1`、`$2`、`$3`，以此类推，这取决于你的函数将需要多少个参数。

让我们修改上一个例子来帮助更好地理解这个问题。

```
#!/bin/bash

#A function to return an echo statement.
helloFunc() {
        echo "Hello from a function."
        echo $1
        echo $2
        echo "You gave me $# arguments"
}

#invoke the function helloFunc()
helloFunc "How is the weather?" Fine

```

输出如下：

```
Hello from a function.
How is the weather?
Fine
You gave me 2 arguments

```

输出中发生的事情是 `helloFunc()` 在每一行都做了一个回显。首先它回显了一个 `Hello from a function`，然后它继续回显变量 `$1` 的值，结果是你传递给 `helloFunc` 的 `"How is the weather?"`。然后它将继续处理变量 `$2`，并回显其值，这是你传递的第二个项目：`Fine`。该函数将以回显 `You gave me $# arguments` 结束。注意，第一个参数是一个用双引号括起来的单个字符串 `"How is the weather?"`。第二个参数 `Fine` 没有空格，所以不需要引号。

除了使用 `$1`、`$2` 等之外，你还可以通过使用变量 `$#` 来确定传递给函数的参数数量。这意味着你可以创建一个接受可变参数数量的函数。

关于 bash 函数的更多细节，网上有很多好的参考资料。[这里有一个可以让你入门的资料](https://opensource.com/article/20/6/bash-functions)。

我希望你能了解到函数如何在你的 bash 脚本中提供巨大的灵活性。

### 数值比较 []

如果你想进行数字比较，你需要在方括号 `[]` 中使用以下运算符之一：

* `-eq` （等于）
* `-ge` （等于或大于）
* `-gt` （大于）
* `-le` （小于或等于）
* `-lt` （小于）
* `-ne` （不相等）

因此，举例来说，如果你想看 12 是否等于或小于 25，可以像 `[ 12 -le 25 ]` 这样。当然，12 和 25 可以是变量。例如，`[ $twelve -le $twentyfive ]`。（LCTT 译注：注意保留方括号和判断语句间的空格）

### if 和 elif 语句

那么让我们用数字比较来介绍 `if` 语句。Bash 中的 `if` 语句将以 `if` 开始, 以 `fi` 结束。`if` 语句 以 `if` 开始，然后是你想做的检查。在本例中，检查的内容是变量 `numberOne` 是否等于 `1`。如果 `numberOne` 等于 `1`，将执行 `then` 语句，否则将执行 `else` 语句。

```
#!/bin/bash

numberTwelve=12

if [ $numberTwelve -eq 12 ]
then
        echo "numberTwelve is equal to 12"
elif [ $numberTwelve -gt 12 ]
then
        echo "numberTwelve variable is greater than 12"
else
        echo "neither of the statemens matched"
fi

```

输出如下：

```
[zexcon@fedora ~]$ ./learnToScript.sh
numberTwelve variable is equal to 12

```

你所看到的是 `if` 语句的第一行，它在检查变量的值是否真的等于 `12`。如果是的话，语句就会停止，并发出 `numberTwelve is equal to 12` 的回显，然后在 `fi` 之后继续执行你的脚本。如果变量大于 `12` 的话，就会执行 `elif` 语句，并在 `fi` 之后继续执行。当你使用 `if` 或 `if`/`elif` 语句时，它是自上而下工作的。当第一条语句是匹配的时候，它会停止并执行该命令，并在 `fi` 之后继续执行。

### 字符串比较 [[]]

这就是数字比较。那么字符串的比较呢？使用双方括号 `[[]]` 和以下运算符等于或不等于。（LCTT 译注：注意保留方括号和判断语句间的空格）

* `=` （相等）
* `!=` （不相等）

请记住，字符串还有一些其他的比较方法，我们这里不会讨论，但可以深入了解一下它们以及它们是如何工作的。

```
#!/bin/bash

#variable with a string
stringItem="Hello"

#This will match since it is looking for an exact match with $stringItem
if [[ $stringItem = "Hello" ]]
then
        echo "The string is an exact match."
else
        echo "The strings do not match exactly."
fi

#This will utilize the then statement since it is not looking for a case sensitive match
if [[ $stringItem = "hello" ]]
then
        echo "The string does match but is not case sensitive."
else
        echo "The string does not match because of the capitalized H."
fi

```

你将得到以下三行：

```
[zexcon@fedora ~]$ ./learnToScript.sh
The string is an exact match.
The string does not match because of the capitalized H.
[zexcon@fedora ~]$

```

### while 循环

在结束这个系列之前，让我们看一下循环。一个关于 `while` 循环的例子是：“当 1 小于 10 时，在数值上加 1”，你继续这样做直到该判断语句不再为真。下面你将看到变量 `number` 设置为 `1`。在下一行，我们有一个 `while` 语句，它检查 `number` 是否小于或等于 `10`。在 `do` 和 `done` 之间包含的命令被执行，因为 `while` 的比较结果为真。所以我们回显一些文本，并在 `number` 的值上加 `1`。我们继续执行，直到 `while` 语句不再为真，它脱离了循环，并回显 `We have completed the while loop since $number is greater than 10.`。

```
#!/bin/bash

number=1

while [ $number -le 10 ]
do
        echo "We checked the current number is $number so we will increment once"
        ((number=number+1))
done
        echo "We have completed the while loop since $number is greater than 10."

```

`while` 循环的结果如下：

```
[zexcon@fedora ~]$ ./learnToScript.sh
We checked the current number is 1 so we will increment once
We checked the current number is 2 so we will increment once
We checked the current number is 3 so we will increment once
We checked the current number is 4 so we will increment once
We checked the current number is 5 so we will increment once
We checked the current number is 6 so we will increment once
We checked the current number is 7 so we will increment once
We checked the current number is 8 so we will increment once
We checked the current number is 9 so we will increment once
We checked the current number is 10 so we will increment once
We have completed the while loop since 11 is greater than 10.
[zexcon@fedora ~]$

```

正如你所看到的，实现这一目的所需的脚本量要比用 `if` 语句不断检查每个数字少得多。这就是循环的伟大之处，而 `while` 循环只是众多方式之一，它以不同的方式来满足你的个人需要。

### 总结

下一步是什么？正如文章所指出的，这是，面向 Bash Shell 脚本初学者的。希望我激发了你对脚本的兴趣或终生的热爱。我建议你去看看其他人的脚本，了解你不知道或不理解的地方。请记住，由于本系列每篇文章都介绍了数学运算、比较字符串、输出和归纳数据的多种方法，它们也可以用函数、循环或许多其他方法来完成。如果你练习所讨论的基础知识，你将会很开心地把它们与你还要学习的所有其他知识结合起来。试试吧，让我们在 Fedora Linux 世界里见。

---

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

作者：[Matthew Darnell](https://fedoramagazine.org/author/zexcon/) 选题：[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/) 荣誉推出


如何让 KDE 看起来像 GNOME

Summary: 在不放弃你的 Plasma 桌面的情况下获得 GNOME 的感觉。

能反过来吗？

我第一次用 GNOME 的时候，GNOME 还在疯狂的内存泄露（几年后，听说后面给修复了），这个阴影伴随我多年。

KDE Connect 真的很赞，KDE + i3WM 更赞。

这是什么操作？

来自福建福州的 Chrome Mobile 98.0|Android 8.0 用户

正在使用2015款MacBook上真机体验GNOME 41，完美支持触控板操作，相当流畅（比最新的macOS反应更快），开销也不比KDE高，UI一致性比KDE更好。

在不放弃你的 Plasma 桌面的情况下获得 GNOME 的感觉。

>
> 在不放弃你的 Plasma 桌面的情况下获得 GNOME 的感觉。
>
>
>

![](/data/attachment/album/202202/28/121405fxmzdms3a4p4mspa.jpg "Digital images of a computer desktop")

GNOME 有一种极简主义设计的倾向。它是一种美丽的桌面体验，并且是第一个在我使用 Linux 时引起别人赞叹的自由桌面。然后（请原谅我的形而上的哲学思考），没有复杂性就没有极简主义，而 KDE 以其极具定制性而闻名。我认为测试一下 KDE 的配置可能会很有趣，并尝试在 KDE Plasma 桌面上重新实现，至少在表面上实现 GNOME 的体验。

如果你尝试这个，请在一个临时用户帐户中进行。这些变化相对来说比较剧烈，撤销它以回到你的标准 KDE 布局可能是一个很大的工作。

### Adwaita 主题

GNOME 的默认主题叫做 Adwaita，是为 GTK 设计的，这是 GNOME 用于窗口和部件的工具包。KDE 使用 Qt 工具包，但 Fedora-Qt 项目已经开发了一个模仿 Adwaita 的 Qt 主题。这是在 KDE 上模仿 GNOME 的第一步，也是最明显的一步。使用你的发行版的包管理器安装 Adwaita for Qt：

```
$ sudo dnf install adwaita-qt{,5}

```

在基于 Debian 的发行版上，请使用 `apt` 命令而不是 `dnf`。

安装完毕后，进入“<ruby> 系统设置 <rt>  System Settings </rt></ruby>”，选择“<ruby> 应用风格 <rt>  Application Style </rt></ruby>”。选择你喜欢的 Adwaita 主题变体：有一个浅色主题和一个深色主题，以及两者之间的变化。点击“<ruby> 应用 <rt>  Apply </rt></ruby>”按钮来更新你的主题，但先不要关闭这个控制面板。

### 窗口装饰

在“<ruby> 应用风格 <rt>  Application Style </rt></ruby>”窗口的左侧面板中选择“<ruby> 窗口装饰 <rt>  Window Decorations </rt></ruby>”分类。如果有一个适合 Adwaita 的标题栏样式，通过选择它并点击“<ruby> 应用 <rt>  Apply </rt></ruby>”来激活它。如果没有安装额外的装饰，点击面板右下方的“<ruby> 获取新窗口装饰 <rt>  Get new window decorations </rt></ruby>”按钮，下载合适的东西。我使用了用户 x-varlesh-x 提供的 “Arc” 主题，但你可以四处看看，看看什么最适合你的其他主题。

GNOME 著名的是它的窗口标题栏上只有一个按钮，所以导航到“<ruby> 标题栏按钮 <rt>  Titlebar Buttons </rt></ruby>”标签，然后通过将“<ruby> 关闭 <rt>  Close </rt></ruby>”按钮从标题栏图像拖到处置区域来删除所有按钮。

![Removing buttons](/data/attachment/album/202202/28/121413idyu922u2cbo2f5b.jpg "Removing buttons")

取消选择“<ruby> 显示标题栏按钮提示 <rt>  Show titlebar button tooltips </rt></ruby>”，因为 GNOME 不倾向于在系统部件上做提示。

点击“<ruby> 应用 <rt>  Apply </rt></ruby>”来保存你的修改。

### GTK 主题

在 KDE 上，使用 GTK 的应用通常会被重新主题化成与 KDE 的默认主题一致。现在你已经把你的主题从 KDE Breeze 改为 GNOME Adwaita，你必须告诉 GTK 使用 Adwaita 主题。

点击“<ruby> 应用风格 <rt>  Application Style </rt></ruby>”面板底部的“<ruby> 配置 GNOME/GTK 应用风格 <rt>  Configure GNOME/GTK application style </rt></ruby>”按钮，在下拉菜单中选择 “Adwaita”。

### 工作区行为

GNOME 在视觉上比 KDE 更安静，所以在“<ruby> 系统设置 <rt>  System Settings </rt></ruby>”中找到“<ruby> 工作区行为 <rt>  Workspace behavior </rt></ruby>”面板，停用“<ruby> 在鼠标悬停时显示信息提示 <rt>  Display informational tooltips on mouse hover </rt></ruby>”和“<ruby> 显示状态变化的视觉反馈 <rt>  Display visual feedback for status changes </rt></ruby>”。

你也可以把打开文件和文件夹改为需要双击而不是单击（在实际中，这对我来说太不方便了）。

### 图标和光标

你可以在“<ruby> 系统设置 <rt>  System Settings </rt></ruby>”中把光标改为 Adwaita 主题，然后选择一个图标主题。我喜欢 Breeze 的图标，但它们确实感觉像 KDE。GNOME 使用 Adwaita 图标集，但由于它们是为 GNOME 设计的，所以缺少一些重要的 KDE 组件的图标。你可以点击“<ruby> 图标 <rt>  Icons </rt></ruby>”控制面板中的“<ruby> 获取新图标 <rt>  Get New Icons </rt></ruby>”按钮来浏览很多图标集，最后我选择了用户 alvatip 提供的 “Nordzy”。不过，有很多不错的图标集可用，查看它们，看看你喜欢什么。我发现任何不属于 Breeze 的东西都会使 KDE 看起来与我习惯的东西有足够的不同。

### 系统面板

GNOME 的面板在屏幕的顶部，而 KDE 的面板默认在屏幕的底部。GNOME 的面板在默认情况下也是比较空的，所以我发现最简单的做法是先把当前的 KDE 面板完全删除。

右键点击并选择“<ruby> 编辑面板 <rt>  Edit panel </rt></ruby>”。进入编辑模式后，再次右键点击面板，选择“<ruby> 删除面板 <rt>  Remove panel </rt></ruby>”。当它消失了，右击桌面上的任何地方，选择“<ruby> 添加面板 <rt>  Add panel </rt></ruby>”并添加一个空面板。这样就在屏幕底部添加了一个面板，所以右击它，选择“<ruby> 编辑面板 <rt>  Edit panel </rt></ruby>”，然后点击并拖动“<ruby> 屏幕边缘 <rt>  Screen Edge </rt></ruby>”按钮到屏幕的顶部。

当仍处于编辑模式时，点击“<ruby> 添加部件 <rt>  Add widgets </rt></ruby>”按钮，将“<ruby> 应用仪表板 <rt>  Application dashboard </rt></ruby>”部件添加到面板的最左端。然后从“<ruby> 编辑面板 <rt>  Edit panel </rt></ruby>”视图中添加一个“<ruby> 间隔 <rt>  Spacer </rt></ruby>”块，然后是一个“<ruby> 时钟 <rt>  Clock </rt></ruby>”，然后是另一个“<ruby> 间隔 <rt>  Spacer </rt></ruby>”。你可以拖动这些小部件来排列它们，所以我发现最简单的做法是添加上应用仪表板和时钟，然后是两个间隔，再把它们排列起来。

![Editing the panel](/data/attachment/album/202202/28/121413n2g18q203dy570y8.jpg "Editing the panel")

你可以右键点击每个小组件来定制图标和布局。例如，我把日期从时钟上移走了，因为它在附加了日期后看起来很挤，尽管 GNOME 确实包含了日期。

通过进入“<ruby> 系统设置 <rt>  System Settings </rt></ruby>”，选择一个深色的 Plasma 主题，比如 “Breeze Dark”，将面板改为黑色。

### GNOME Plasma 桌面

通过一些快速的调整，你的桌面现在在各个方面接近于 GNOME。布局是类似的。

![GNOME layout](/data/attachment/album/202202/28/121413jq45vuvv6fv13mv4.jpg "GNOME layout")

应用仪表板提供了一个 GNOME 风格的应用启动器。

![Application dashboard](/data/attachment/album/202202/28/121414hbcaz56b8jjbqq8b.jpg "Application dashboard")

其他小的修改进一步有助于产生这种错觉。例如，我简化了 Dolphin 文件管理器，去掉了“<ruby> 位置 <rt>  Places </rt></ruby>”面板，也去掉了工具栏上的大部分按钮。

### 一个不同的视角

这不是一个精确的匹配，比我更具钻研精神的人可以做的更多，得到更接近正确的结果。然而，像这样有趣的变化证明了 KDE 是多么的灵活，拥有大量的选项意味着你可以缩减你的交互内容以适应你的偏好。一个类似 GNOME 的桌面可以给你一个新的视角来看待你与桌面的互动，即使你不会永远保持这种布局，它可以帮助你发现你可能没有想到要寻找的选项。

---

via: <https://opensource.com/article/22/2/make-kde-look-like-gnome>

作者：[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/) 荣誉推出


硬核观察 #561 大部分 Rust 程序员认为 Rust 很有挑战性，但值得

Summary: 更多：• FSF 公布五篇探讨 GitHub Copilot 的论文 • 中国手机品牌几乎统治欧洲最大的通信展

坐等杀妻作者在2024年去除废弃标记

欧洲苦三星久矣。

来自江西南昌的 Chrome Mobile 65.0|Android 8.1 用户

![](/data/attachment/album/202202/28/164302eir6w3yvcc37p33v.jpg)

![](/data/attachment/album/202202/28/164311eq4lyue8q4lg9997.jpg)

### 大部分 Rust 程序员认为 Rust 很有挑战性，但值得

在对 Rust 社区的 [年度调查中发现](https://blog.rust-lang.org/2022/02/15/Rust-Survey-2021.html)，使用 Rust 的人中，81% 的人至少每周都在使用这种语言。75% 的 Rust 用户表示用于生产环境。在工作中使用 Rust 的人，83% 的人认为它具有挑战性。只有 13% 的受访者认为该语言拖累了他们的团队，而 82% 的人认为 Rust 有助于他们的团队实现他们的目标。只有 1% 的受访者认为挑战不值得，而 79% 的受访者说肯定值得。90% 的人表示将有可能在未来再次使用 Rust。96% 的人使用它的人是因为它可以“构建相对正确和没有错误的软件”，其次是 92% 的人因为性能选择了它。

>
> 老王点评：Rust 虽然很难，但是明显已经准备好在生产环境取代 C 语言了。
>
>
>

![](/data/attachment/album/202202/28/164321po1dd8zifvyorvdw.jpg)

### FSF 公布五篇探讨 GitHub Copilot 的论文

FSF 称微软的 GitHub Copilot 为“服务即软件替代物（SaaSS）”，他们认为它“立即对自由软件运动和我们保障用户和开发者自由的能力提出了严重的问题”，因而向社区征文讨论这一新生事物。现在他们 [公布了其中五篇论文](https://www.fsf.org/news/publication-of-the-fsf-funded-white-papers-on-questions-around-copilot)，虽然 FSF 不一定同意或反对这些论文的观点，但认为它们推动了对这一问题的讨论。

顺便说一句，Copilot 的意思不是“复制许多”，而是指（飞机上的）“副驾驶”、“自动驾驶仪”，虽然确实是由 AI 从代码库中“复制”出许多代码的。

>
> 老王点评：这种写出的代码版权和知识产权该如何界定，还需要讨论，但是我认为这种技术是一种有益的进步。
>
>
>

![](/data/attachment/album/202202/28/164341lc1szc7rhccqyjtm.jpg)

### 中国手机品牌几乎统治欧洲最大的通信展

下周，世界最大的手机贸易展，世界移动通信大会（WMC）将在巴塞罗那举办。从目前的情况来看，展会上所有最大的硬件发布似乎都可能 [来自中国](https://www.theverge.com/2022/2/27/22950422/mwc-mobile-world-congress-2022-chinese-phone-brands-honor-oppo-huawei-tcl-poco)，如 OPPO、荣耀、TCL、小米的子品牌 Poco 和华为，而不是前些年来自欧洲、美国，甚至像韩国这样的亚洲国家的品牌。截至去年，IDC 报告称，全球最受欢迎的五大智能手机品牌中的三个（小米、Oppo 和 vivo）总部都在中国，虽然第一和第二的位置被三星和苹果占据。

>
> 老王点评：虽然苹果和谷歌不太重视这个展会，但是也代表了中国手机制造行业的兴盛。
>
>
>

### 回音

* 之前我们 [报道过](/article-14300-1.html) Linux 讨论废弃 ReiserFS 文件系统，现在已经标记该文件系统为废弃，并将在 2025 年删除它。另外，它的作者因杀妻入狱 15 年后，将在 [2023 年获释](https://www.solidot.org/story?sid=66625)。


Fedora 36 发布时间表和新功能

哟，看看，这是谁来了？<br />
哦，原来是跳票王 Fedora 啊。

Fedora 一到店，所有发行版便都看着他笑，有的叫道，"Fedora，你今年打算跳几次票！" 他不回答，对柜里说，"更两个包，要一个新内核。" 便排出一张路线图。

他们又故意的高声嚷道，"你一定又遇到重大 BUG 了！" Fedora 睁大眼睛说，"你怎么这样凭空污人清白……" "什么清白？我前天亲眼见你遇到 GPU 的 BUG，直接卡住。"

Fedora 便涨红了脸，额上的青筋条条绽出，争辩道，"BUG 不能算……BUG！……Feature 的事，能算 BUG 么？" 接连便是难懂的话，什么 "致力创新"，什么 "First" 之类，引得众人都哄笑起来：店内外充满了快活的空气。

注：

1.GPU 的 BUG 是指 bugzilla.redhat.com/show_bug.cgi?id=1825046

2.Features、First、致力创新是 Fedora 的自我介绍 (docs.fedoraproject.org/en-US/project)

老鲁乙己了

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

正在用Fedora35写评论，非常期待36

fedora还是挺好的，我选arch

果然跳票了...

>
> Fedora 36 很快就要发布了，预期会有哪些功能呢？还有，它准备什么时候发布？
>
>
>

![](/data/attachment/album/202203/01/085043qonnsjnn5qtlnhna.jpg)

Fedora 36 是 [今年最值得期待的发布](https://news.itsfoss.com/linux-distro-releases-2022/) 之一。

虽然我们期待每一个重要的发布，但去年，[Fedora 35](https://news.itsfoss.com/fedora-35-release/) 以 GNOME 41 和一个新的 KDE 流派（Kinoite）让人期待它带来一些令人兴奋的变化。

别着急；如果你等不及要看到 Fedora 36，我将重点指出有关该版本的基本细节。

### Fedora 36 发布日期

按照官方的时间表，Fedora 36 测试版的早期发布日期是 **2022 年 3 月 15 日**。而且，Fedora 36 测试版的延迟发布日期（万一延迟）是 **2022 年 3 月 22 日**。

一旦公开测试完成，最终的发布日期可望在 **2022 年 4 月 19 日**。如果出现延迟，发布日期将被推至 **2022 年 4 月 26 日**。

你还应该注意，Fedora Linux 34 将在 **2022 年 5 月 17 日** 走到其生命的终点。

![](/data/attachment/album/202203/01/085043qtoitf885zhft74h.jpg)

你现在可以尝试用每夜构建版来下载 Fedora 36（链接在本文底部），但是距离测试版发布还有几周时间，你应该等等。

### Fedora 36 功能

![](/data/attachment/album/202203/01/085044jyy54wfe88bmy3e3.png)

像往常一样，Fedora 36 拥有最新的 GNOME 以及其他的补充和改进。

主要的亮点包括：

#### 1、GNOME 42

[GNOME 42](https://news.itsfoss.com/gnome-42-features/) 是一次令人兴奋的升级，有各种视觉和功能的变化。

它还包括性能和视觉上的调整及其他改进。如果你没了解过 [GNOME 41 增加的功能](https://news.itsfoss.com/gnome-41-release/)，你也应该看看。

当然，你可以预期在 Fedora 36 中找到所有这些变化。在这里，我将重点指出那些 Fedora 36 中的细节（如果你没有用上 GNOME 42）。

#### 2、全系统的深色模式

![](/data/attachment/album/202203/01/085044o10j9e9r0z0i9r9s.jpg)

Fedora 36 享有从 GNOME 42 引入的全系统深色模式。

虽然在其他 Linux 发行版上有深色模式的实现，但 GNOME 42 帮助 Fedora 36 成为桌面用户的一个有吸引力的选择。

深色模式完美地融合在一起，给人一种干净的 GNOME 体验。

#### 3、新壁纸

如果没有一张新的壁纸，其他的改进听起来都很乏味。

所以，Fedora 设计团队在 Fedora 36 中带来了一张制作精美的壁纸，这是一张风景插图，看起来很不错。

![](/data/attachment/album/202203/01/085045idxuocd6uexlaagt.jpg)

默认的壁纸有日间/夜间的变体。正如你所注意到的上面的白天的壁纸，下面是晚上的艺术作品。

![](/data/attachment/album/202203/01/085046q6izg8eflez5aaz6.jpg)

两者看起来都很奇妙，对眼睛也很舒畅。

#### 4、Linux 内核 5.17

众所周知，Fedora 36 提供最新的 Linux 内核版本。截至目前，它正在运行即将发布的 Linux 内核 5.17 的候选版本。

随着 Fedora 36 的最终发布，你应该看到 Linux 内核 5.17 的稳定版本。

#### 5、深色/浅色壁纸

除了 Fedora 36 的新默认壁纸之外，它还具有与 GNOME 42 一起引入的深色/浅色模式壁纸集。

![](/data/attachment/album/202203/01/085047zy4stsznfsnys4yh.jpg)

截至目前，在测试 Fedora 36 工作站（预发布版本）时，我只能找到其中一张壁纸，而不是 GNOME 42 中的整个系列。

所以，你也许可以期待在 Fedora 36 测试版中增加更多的内容。

你可以从外观上选择壁纸及其可用的深色/浅色变体。

#### 6、屏幕截图用户界面和本地屏幕录制

GNOME 42 引入的新的屏幕截图用户界面是一个奇妙的补充。另外，只需切换一下，你就可以开始录制你的屏幕了！

![](/data/attachment/album/202203/01/085048z4464qd4y46aj4hh.jpg)

你可以看到 Fedora 36 的这个功能，工作得非常好。

#### 7、桌面环境更新

由于显而易见的原因，你应该在 Fedora 36 看到提供的最新的桌面环境。

最基本的应该是 GNOME 42、[KDE Plasma 5.24](https://news.itsfoss.com/kde-plasma-5-24-lts-release/) 和 Xfce 4.16。

除此之外，LXQt 也已经更新到 1.0.0。

#### 8、重要的技术变化

除了视觉上的变化和 Linux 内核的升级，Fedora 36 还有各种技术改进。

其中一些值得一提的包括：

* 将系统的 openJDK 包从 Java 11 更新为 Java 17。
* 引入了即将推出的 Golang 1.18 版本。
* 将各种语言的字体切换为 Noto 字体作为默认字体，以确保文本渲染的一致性。
* 今后自动升级时排除推荐软件包的行为（如果你没有安装它们）。
* GNU 工具链更新至 gcc 12 和 glibc 2.35。
* 修复某些情况下的升级性问题。
* 默认的 Wayland 会话与 NVIDIA 专有驱动程序。
* 更新 PHP 栈到最新的 8.1.x。
* RPM 数据库将被重新定位到 `/usr` 目录，目前它在 `/var`。

关于更多的技术细节，你可以参考 [官方变更集](https://fedoraproject.org/wiki/Releases/36/ChangeSet)。如果你想下载预发布版本，你可以从下面的链接抓取 ISO。

* [Fedora 36（预发布）](https://kojipkgs.fedoraproject.org/compose/branched/latest-Fedora-36/compose/Workstation/x86_64/iso/)。

### 总结

Fedora 36 将会是一个令人激动的版本。

当它发布时，我很期待在 Fedora 36 工作站上尝试 Wayland 会话与 NVIDIA 专有驱动程序。

你对这个版本有什么期待？请在下面的评论中告诉我。

---

via: <https://news.itsfoss.com/fedora-36-release-date-features/>

作者：[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/) 荣誉推出


Kubernetes 部署的可视化地图

@admin , @wxy ，提个建议。

pod 这种名词在业内都在使用英文的情况下，建议不要自行选一个解释作翻译，就使用英文，免得产生歧义（除非你是中文社区第一个翻译的人）。

不然翻译成 "吊舱"，感觉很诡异好吧，之前还见过一个人把 pod 译成 "豆荚"，就离谱。虽然 pod 也有这两个意思，但看着太怪了。

>
> 通过查看创建一个吊舱或一个部署时的 10 个步骤，可以更好地了解 Kubernetes。
>
>
>

![](/data/attachment/album/202203/01/095801szxq9lx5prdqkb5y.jpg "Parts, modules, containers for software")

当你在 Kubernetes 上使用容器时，你经常把应用程序组合在一个<ruby> 吊舱 <rt>  pod </rt></ruby>中。当你把一个容器或一个吊舱发布到生产环境中时，它被称为一个<ruby> 部署 <rt>  deployment </rt></ruby>。如果你每天甚至每周都在使用 Kubernetes，你可能已经这样做过几百次了，但你有没有想过，当你创建一个吊舱或一个部署时到底会发生什么？

我发现在高层次上了解事件链条是有帮助的。当然，你不一定要理解它。即使你不知道为什么，它仍然在工作。我不打算列出每一件发生的小事，但我的目标是涵盖所有重要的事情。

这里有一张 Kubernetes 不同组件如何互动的视觉地图。

![吊舱链条](/data/attachment/album/202203/01/095811km2pfu1vm1vnvhpj.png "Pod chain")

你可能注意到，在上图中，我没有包括 etcd。API 服务器是唯一能够直接与 etcd 对话的组件，而且只有它能够对 etcd 进行修改。因此，你可以认为 etcd 在这张图中存在于（隐藏的）API 服务器后面。

另外，我在这里只讲到了两个主要的控制器（<ruby> 部署控制器 <rt>  Deployment controller </rt></ruby>和<ruby> 复制集控制器 <rt>  ReplicaSet controller </rt></ruby>）。其他的控制器的工作方式类似。

下面的步骤描述了当你执行 `kubectl create` 命令时会发生什么。

### 步骤 1

当你使用 `kubectl create` 命令时，一个 HTTP POST 请求被发送到 API 服务器，其中包含部署清单。API 服务器将其存储在 etcd 数据存储中，并返回一个响应给 `kubectl`。

### 步骤 2 和 3

API 服务器有一个观察机制，所有观察它的客户都会得到通知。客户端通过打开与 API 服务器的 HTTP 连接来观察变化，API 服务器会流式地发出通知。其中一个客户端是部署控制器。部署控制器检测到一个<ruby> 部署 <rt>  Deployment </rt></ruby>对象，它用部署的当前规格创建一个<ruby> 复制集 <rt>  ReplicaSet </rt></ruby>。该资源被送回 API 服务器，并存储在 etcd 数据存储中。

### 步骤 4 和 5

与上一步类似，所有观察者都会收到关于 API 服务器中的变化的通知。这一次，复制集控制器会接收这一变化。该控制器了解所需的副本数量和对象规格中定义的吊舱选择器，创建吊舱资源，并将这些信息送回 API 服务器，存储在 etcd 数据存储中。

### 步骤 6 和 7

Kubernetes 现在拥有运行吊舱所需的所有信息，但吊舱应该在哪个节点上运行？<ruby> 调度器 <rt>  Scheduler </rt></ruby>观察那些还没有分配到节点的吊舱，并开始对所有节点进行过滤和排序，以选择最佳节点来运行吊舱。一旦节点被选中，该信息将被添加到吊舱规格中。而且它被送回 API 服务器并存储在 etcd 数据存储中。

### 步骤 8、9 和 10

到目前为止的所有步骤都发生在<ruby> 控制平面 <rt>  control plane </rt></ruby>本身。<ruby> 工作节点 <rt>  worker node </rt></ruby>还没有做任何工作。不过，吊舱的创建并不是由控制平面处理的。相反，在所有节点上运行的 `kubelet` 服务观察 API 服务器中的吊舱规格，以确定它是否需要创建任何吊舱。在调度器选择的节点上运行的 kubelet 服务获得吊舱规格，并指示工作节点上的容器运行时创建容器。这时就会下载一个容器镜像（如果它还不存在的话），容器就会实际开始运行。

### 理解 Kubernetes 的部署

对这个一般流程的理解可以帮助你理解 Kubernetes 中的许多事件。考虑一下 Kubernetes 中的<ruby> 守护进程集 <rt>  DaemonSet </rt></ruby>或<ruby> 状态集 <rt>  StatefulSet </rt></ruby>。除了使用不同的控制器外，吊舱的创建过程是一样的。

课后作业：如果部署被修改为有三个应用程序的副本，导致创建吊舱的事件链条会是什么样子？你可以参考图表或列出的步骤，但你肯定有你需要弄清楚的知识。知识就是力量，你现在有了了解 Kubernetes 的一个重要组成部分。

---

via: <https://opensource.com/article/22/3/visual-map-kubernetes-deployment>

作者：[Nived Velayudhan](https://opensource.com/users/nivedv) 选题：[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/) 荣誉推出


硬核观察 #562 比特币挖矿正变得越来越不环保

Summary: 更多：• 备份不再能有效阻止勒索软件攻击 • Mozilla 计划建立新的社区 Connect

Mozilla做点Bug，在社区收集用户数据，再卖给Google。妙

真的假的？

不对呀，这东西曾经“环保”过吗

![](/data/attachment/album/202203/01/185210f4qrozll0zxlglbx.jpg)

![](/data/attachment/album/202203/01/185221e9g7hxxf7dxargpz.jpg)

### 比特币挖矿正变得越来越不环保

过去比特币矿工对可再生能源的依赖度，经常在 40~70% 之间大幅波动。自中国清退高能耗加密货币挖矿行业以来，迁移到世界各地的比特币开采工作，正变得较以往任何时候更加不环保。[专家指出](https://www.cell.com/joule/fulltext/S2542-4351(22)00086-1)，这可能是矿工使用了更多燃煤和天然气电力，而不是中国丰富的水电资源的结果。在比特币挖矿中，可再生能源发电的占比出现了大幅下降，从 2020 年的平均 42%、滑落到了 2021 年 8 月的 25% 。

>
> 老王点评：大量接收了比特币矿场的美国，不知道对此怎么看。
>
>
>

![](/data/attachment/album/202203/01/185241cbydtjj6k9cgr0yo.jpg)

### 备份不再能有效阻止勒索软件攻击

[调查发现](https://www.computerweekly.com/news/252513735/Backups-no-longer-effective-for-stopping-ransomware-attacks)，83% 的成功勒索攻击使用了替代勒索方法：38% 使用窃取的数据勒索客户，35% 向暗网泄露数据，只有 17% 的攻击只要求赎金以换取解密密钥。备份能最小化数据被加密带来的影响，但无法阻止勒索软件组织使用窃取的数据进行二次甚至三次勒索。调查发现 18% 的受害者在支付赎金之后数据仍然泄露，这一比例甚至高于 16% 拒绝支付赎金的受害者。

>
> 老王点评：对抗勒索攻击已经成为各个稍有规模的公司必须认真面对的事情了。
>
>
>

![](/data/attachment/album/202203/01/185259thavuak4ekazkv4u.jpg)

### Mozilla 计划建立新的社区 Connect

Mozilla 在去年 6 月推出了 Mozilla Ideas，以让用户可以贡献想法、和开发者沟通。但该项目已经失败，一方面是 Ideas 在一个需要创建账户的私人服务上，而用户不喜欢；另外一方面是没有用户浪费他们的时间来贡献想法，也没有开发者投入他们的时间来浏览该网站。Mozilla Ideas 将在[Mozilla Connect](https://voonze.com/mozilla-ideas-closes-its-doors-but-the-mozilla-idea-persists/) 品牌下重新出现，支持 Firefox 账号，会有 Mozilla 员工的更多参与。但目前还不知道 Mozilla Connect 何时开放。

>
> 老王点评：问题是，就算有这样的沟通社区，Mozilla 也得听才行。
>
>
>

### 回音

* 英伟达 [反击黑客失败](/article-14312-1.html) 后，黑客开始开始出售窃取的数据，并销售一种可以绕过 RTX 30 系列中的 [挖矿限制](https://www.bleepingcomputer.com/news/security/hackers-to-nvidia-remove-mining-cap-or-we-leak-hardware-data/) 的代码。


用 SELinux 保护你的容器

哈哈，很多 Linux 教程第一步就是关闭 SELinux。

>
> 黑掉你的系统，了解为什么配置 SELinux 作为你的第一道容器防线是很重要的。
>
>
>

![](/data/attachment/album/202203/02/093614t53cfb857841qzzk.jpg "Three closed doors")

当有些事情在你的 Linux 环境中不能正常工作时，最简单的方法就是禁用<ruby> 安全增强型 Linux <rt>  Security-Enhanced Linux </rt></ruby>（[SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux)）。而当它突然可以工作了，你就会忘记了禁用这件事 —— 这是一个常见的陷阱，意味着你已经失去了一个非常强大的安全工具。

随着容器、微服务和分布式架构的兴起，威胁也在上升。这是由于一个老的、众所周知的问题：速度。容器的优势在于它们能让你快速行动，做更多的事情，并迅速改变。这意味着容器的采用已经飞速发展，但它所提供的速度也意味着你会遇到更多的问题和漏洞。当你越来越快地做更多的事情时，这自然会发生。

### 如何减轻威胁

正如孙子所说，“不战而屈人之兵”。当涉及到容器的基本防御时，这句话真的很有共鸣。为了避免问题（战斗），确保你的容器主机是安全的，你可以使用 SELinux 作为你的第一道防线。

SELinux 是一个开源项目，于 2000 年发布，2003 年集成到 Linux 内核中。根据 [红帽公司的解释](https://www.redhat.com/en/topics/linux/what-is-selinux)，“SELinux 是 [Linux 系统](https://www.redhat.com/en/topics/linux/what-is-linux) 的一个安全架构，允许管理员对谁可以访问系统有更多的控制。它最初是由美国国家安全局（NSA）开发的，是使用 Linux 安全模块（LSM）对 [Linux 内核](https://www.redhat.com/en/topics/linux/what-is-the-linux-kernel) 的一系列补丁。”

### 开始吧

当你想到容器时，首先想到的可能是 [Docker](https://opensource.com/resources/what-docker)。Docker 在 2013 年出现后掀起了一场容器采用革命。它是容器爆炸性流行的主要原因之一，但如上所述，大量采用增加了用户对安全风险的脆弱性。

在你用 SELinux 保护你的 Docker 容器之前，你需要设置一些东西。

#### 前置条件

* 安装并配置了 CentOS 8/RHEL 8。
* 安装并配置好 Docker CE
* 创建两个账户：root 和 非 root 用户（下面的例子中是 `mcalizo`）。

如果你需要在你的 RHEL 8/CentOS 8 服务器上设置 Docker，你可以按照这些 [说明](https://www.linuxtechi.com/install-docker-ce-centos-8-rhel-8/)。如果你运行的是 RHEL 8，你需要在开始之前删除预装的 Podman 和 runc 包。

首先，确保 SELinux 被启用：

```
[mcalizo@Rhel82 ~]$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31
[mcalizo@Rhel82 ~]$

```

然后，验证你的操作系统版本和 Docker 正在运行。以 root 身份登录并运行：

```
[root@rhel82 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)
[root@rhel82 ~]#

[root@rhel82 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-10-28 19:10:14 EDT; 15s ago
     Docs: https://docs.docker.com
 Main PID: 30768 (dockerd)
    Tasks: 8
   Memory: 39.0M
   CGroup: /system.slice/docker.service
           └─30768 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.889602941-04:00" level=error msg=">
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.903413613-04:00" level=warning msg>
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.903427451-04:00" level=warning msg>
Oct 28 19:10:13 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:13.903538271-04:00" level=info msg="L>
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.132060506-04:00" level=info msg="D>
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.308943088-04:00" level=info msg="L>
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.319438549-04:00" level=info msg="D>
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.319570298-04:00" level=info msg="D>
Oct 28 19:10:14 rhel82.home.labs.com dockerd[30768]: time="2020-10-28T19:10:14.333419209-04:00" level=info msg="A>
Oct 28 19:10:14 rhel82.home.labs.com systemd[1]: Started Docker Application Container Engine

```

检查你的 Docker 版本：

```
[root@rhel82 ~]# docker --version
Docker version 19.03.13, build 4484c46d9d

```

### 黑掉主机

了解一个问题的最好方法之一就是去体验它。因此，我将告诉你，如果你的安全设置不当，向 Docker 主机注入恶意代码是多么容易。

为了能够在 Docker 主机上做坏事，“恶意”的非 root 用户（本教程中为 `mcalizo`）必须是可以实例化 Docker 容器的组的成员。

首先，确认 `mcalizo` 用户属于哪个组：

```
[root@Rhel82 ~]# groups mcalizo
mcalizo : mcalizo

```

输出显示，`mcalizo` 只属于它自己的组。这意味着 `mcalizo` 不能实例化 Docker 容器，如果它试图这样做，将会得到这个错误：

```
[mcalizo@Rhel82 ~]$ docker run -it --rm centos:latest /bin/sh
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

```

要允许 `mcalizo` 实例化容器，将用户加入 `docker` 组：

```
[root@Rhel82 ~]# usermod -G docker -a mcalizo
[root@Rhel82 ~]# groups mcalizo
mcalizo : mcalizo docker

```

接下来，部署一个 `fedora:latest` 的容器，并登录到实例化的容器中去探索它：

```
[mcalizo@Rhel82 ~]$ docker run -it --rm fedora:latest /bin/sh
Unable to find image 'fedora:latest' locally
latest: Pulling from library/fedora
ee7e89337106: Pull complete
Digest: sha256:b9ec86d36fca7b1d3de39cd7c258e8d90c377d312c21a7748071ce49069b8db4
Status: Downloaded newer image for fedora:latest
sh-5.0# cat /etc/redhat-release
Fedora release 33 (Thirty Three)

```

当你登录到新创建的容器时，你可以看到你是以 root 身份自动登录的：

```
sh-5.0# whoami
root
sh-5.0#

```

作为 `root` 用户，你可以在这个容器中做任何事情，这意味着你可以利用容器主机，做很多破坏。因为你可以实例化一个容器，即使你不属于主机的 sudoers 账户，你也可以对主机做一些事情。

退出你刚刚创建的容器，并创建一个新的容器来演示这个漏洞：

```
[mcalizo@Rhel82 ~]$ docker run -it --rm -v /:/exploit fedora:latest /bin/bash
[root@131043f2e306 /]#

```

[-v 选项](https://docs.docker.com/storage/volumes/) 将 Docker 主机的 `/` 目录挂载到 `/exploit` 目录下的容器：

```
[root@131043f2e306 /]#ls exploit/
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

```

因为它已被挂载，你可以在 Docker 主机上做任何事情。例如，你可以删除文件、编辑特定的配置来破害系统，甚至安装木马程序或其他恶意软件来窃取重要信息。

### 为什么会发生这种情况？

你可能想知道，既然 SELinux 处于强制模式，为什么会出现这种情况？深入挖掘 SELinux，看看哪里出了问题。

验证 SELinux 是否有一个 [Docker 上下文](https://docs.docker.com/engine/reference/commandline/context/)：

```
[mcalizo@Rhel82 ~]$ ps -eZ | grep docker
system_u:system_r:container_runtime_t:s0 30768 ? 00:00:04 dockerd
[mcalizo@Rhel82 ~]$

```

正如预期的那样，它确实有。这意味着 SELinux 管理着 Docker 守护进程。检查 Docker 守护进程，看看 SELinux 是否默认启用：

```
[mcalizo@Rhel82 ~]$ docker info | grep Security -A3
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.18.0-193.el8.x86_64

```

Docker 守护进程中的 SELinux 在默认情况下是 **不启用** 的。 这就是问题所在！要解决这个问题，按 [文档](https://docs.docker.com/engine/reference/commandline/dockerd/) 说明，通过更新或创建文件 `/etc/docker/daemon.json` 来启用 SELinux 来控制和管理 Docker（你必须有 root 权限才能这样做）：

```
[root@Rhel82 ~]# cat /etc/docker/daemon.json
{
  "selinux-enabled": true
}
[root@Rhel82 ~]#
[root@Rhel82 ~]# systemctl restart docker

```

在创建或更新该文件并重启 Docker 后，你应该看到 Docker 守护进程中启用了 SELinux 支持：

```
[root@Rhel82 ~]# systemctl restart docker
[mcalizo@Rhel82 root]$ docker info | grep Security -A3
 Security Options:
  seccomp
   Profile: default
  selinux
[mcalizo@Rhel82 root]$

```

虽然仍然可以在你的 Docker 容器上挂载 Docker 主机中的特定文件系统，但不再允许更新或访问该文件：

```
[mcalizo@Rhel82 root]$ docker run -it --rm -v /:/exploit fedora:latest /bin/bash
[root@ecb5836da1f6 /]# touch /exploit/etc/shadow.sh
touch: cannot touch '/exploit/etc/shadow.sh': Permission denied
[root@ecb5836da1f6 /]#

```

### 了解更多

你在容器世界中的第一道防线取决于你对容器主机的操作系统的设置有多强。有许多方法可以实现 Linux 的安全性，包括市场上可供选择的方案，以增强你的安全态势。

SELinux 是一个额外的安全层，默认情况下内置于 [Linux 发行版](https://www.redhat.com/en/topics/linux/whats-the-best-linux-distro-for-you) 中。为了借助它保护你的系统不被破坏，请确保 SELinux 保持开启状态。

如果你想了解更多，请参阅：

* [如何在 CentOS 8 / RH 上安装 Docker CE](https://www.linuxtechi.com/install-docker-ce-centos-8-rhel-8/)
* [Docker 安全速查表](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)
* [dockerd 文档](https://docs.docker.com/engine/reference/commandline/dockerd/)
* [卷的使用文档](https://docs.docker.com/storage/volumes/)
* [什么是 SELinux？](https://www.redhat.com/en/topics/linux/what-is-selinux)

---

via: <https://opensource.com/article/20/11/selinux-containers>

作者：[Mike Calizo](https://opensource.com/users/mcalizo) 选题：[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/) 荣誉推出


KDE 与 GNOME：什么是 Linux 桌面的终极选择？

Summary: 在 最佳桌面环境 中，KDE Plasma 和 GNOME 特别受欢迎。在这里，我打算强调其中的关键区别，以帮助你做出决定。

KDE 是比 XFCE 更轻的桌面环境

对内存占用表示反对，我自己都试过同一个fedora35，两个桌面都是1.2G

以前用gnome,现在用kde

以前用gnome,现在用kde

Arch Linux 德国社区有个软件宝统计。

+ plasma-workspace: 30.46%

+ gnome-shell: 21.46%

+ xfdesktop: 14.19%

+ cinnamon: 4.05%

+ lxde-common: 3.48%

+ mate-panel: 2.9%

链接：pkgstats.archlinux.de/fun

我个人一如即往的推荐 KDE+i3WM。

一直gnome + awesome wm的路过 看来我是小众

gnome感觉是独立于win和mac之外交互相对成熟的UI，Kde就太像win，没有新鲜感。个人意见:)

只用gnome，没空定制。kde也用过，不喜欢kde系的应用软件，gtk系的在kde里面很丑，kde有苹果的臭味，也有微软的臭味。不喜欢gnome提供的应用软件，但是gnome提供的少，gtk系的有自由的味道。

GTK 的自由就是阻止用户换主题？笑死。

xfce is best.

surface安装linux，gnome触屏操作做的更好,我选择gnome

Gnome3确实是一个不错的选择，我也使用了很长时间，但是每次大的升级它的插件都会挂一大批，比如Hide Top bar 和 Dash to dock 是我必装的两款插件，但是升级Gnome3到V45后，发现一个多月过去了Hide Top bar目前还没有适配, 这个体验导致我放弃了Gnome3, 现在开始在KDE下工作了。希望有一天，那些优秀的Gnome插件被官方内置并同步更新，然后我再回到Gnome3.

![](/data/attachment/album/202203/02/160920u0pqhbfqdob7kt22.jpg)

说到 Linux，<ruby> 桌面环境 <rt>  desktop environment </rt></ruby>（DE）是个大问题。

桌面环境构成了图形用户界面（GUI），以及你在 Linux 发行版上得到的一组应用。

你可以通过我们的 [解释什么是桌面环境的文章](https://itsfoss.com/what-is-desktop-environment/) 了解。

选择一个好的桌面环境可以帮助你提高生产力、工作流程、易用性和整体体验。

在 [最佳桌面环境](https://itsfoss.com/best-linux-desktop-environments/) 中，KDE Plasma 和 GNOME 特别受欢迎。在这里，我打算强调其中的关键区别，以帮助你做出决定。

>
> 注意：KDE 是整个社区的人在其名下开发的各种项目。其中桌面环境的名字是 Plasma。在这里，我们将 Plasma 桌面与 GNOME 进行比较。然而，为了简单起见，我们倾向于使用 “KDE” 而不是 “Plasma”。
>
>
>

### 用户界面：功能与外观

用户界面通常涉及到布局类型、图标、主题、小工具和 GUI 的其他组件。

#### KDE

KDE 的目标是提供一个传统的桌面布局，让大多数 Windows 用户感到舒适。

![](/data/attachment/album/202203/02/160931kwl4qdb7hum4zqqx.png)

不过，不要被这一点所迷惑。它的外观很简单，但却专注于更多的功能。

事实上，Windows 从 KDE 中获得了灵感，对其用户界面进行了一些改进，比如通过滚动任务栏中的音量图标来调整音量的能力。

![](/data/attachment/album/202203/02/160932rlj8zajjo6xsjvyh.png)

而且，KDE 以其一致的外观和感觉而闻名，即使多年来有许多改进。

#### GNOME

另一方面，GNOME 提供了一种独特的桌面体验。如果你正在寻找一个不同的、现代的用户界面设计，GNOME 应该很适合你。

其图标/主题/壁纸可能看起来更符合现代标准。偏好有所侧重，但在我看来，GNOME 看起来更有吸引力。

![](/data/attachment/album/202203/02/160934k0a00zrm22dmugk2.png)

然而，如果你已经适应了传统的类似 Windows 的布局，调整工作流程可能需要一段时间。

这里没有开始/应用/菜单按钮。你必须点击活动概览来访问你的工作空间（或虚拟桌面），并从同一个地方访问应用菜单。

对一些人来说，没有任务栏可能看起来更干净，但这取决于你的喜好。

请注意，与 KDE 相比，UI 可能没有那么多功能，也没那么丰富。例如，系统托盘中的部件提供了比 GNOME 上的小程序更多的选项。

![](/data/attachment/album/202203/02/160935dikn27yn9i83j889.png)

因此，在 UI 方面，KDE 与 GNOME 并没有明显的赢家，而是取决于你对功能或现代外观的要求。

### 应用生态

#### KDE

使用 KDE，你可以获得 [无数的实用程序](https://apps.kde.org)。

你可能会被 KDE 提供给 KDE 上使用的应用所淹没。

![](/data/attachment/album/202203/02/160935znx9kxrxtzrh2hrn.png)

不止如此，整个 KDE 社区都一直忙于为这个武器库添加新的应用和工具。

它们中许多在现有的应用中脱颖而出，如 Krita、Kdenlive、Kate 编辑器等等。

#### GNOME

GNOME 默认也具有 [众多的应用](https://apps.gnome.org/en-GB/)。虽然对于大多数用户来说，这可能是一个足够的列表，但与 KDE 相比，它在目录上有所不足。

![](/data/attachment/album/202203/02/160936b0331f3ja0xua30h.png)

我发现自己并没有使用过很多来自 GNOME 的应用。

而且，值得注意的是，与 GNOME 的默认应用相比，KDE 桌面环境自带的应用得到了更快的改进。

这是与 GNOME 应用程序相比的 KDE 的开发更新频度，不过这只是个人观察，这可能会随着时间而改变。

### 什么是最好的定制？

#### KDE

如果你想改造和控制用户体验，KDE 是一个很好的选择。

不要光听我说，你可以按照我们的 [KDE 定制指南](https://itsfoss.com/kde-customization/) 了解可用选项。

![](/data/attachment/album/202203/02/160936uqu2mmd3qzhoo3wo.png)

不仅仅是定制的能力，你还可以得到很多开箱即用的控制，用于改变主题、颜色、工作区效果、窗口管理等等，而不需要任何特定的应用程序/扩展。

对于一些人来说，如果你想坚持使用原版的体验，这么多的选项也不会产生什么影响，不用担心。

#### GNOME

至于 GNOME，你没有那么多开箱即用的控制。相反，你必须得依靠 GNOME “优化”或一些扩展来改变。但是，是的，你可以在很大程度上自定义体验。

![](/data/attachment/album/202203/02/160937cycokpayqfljaiwq.png)

另外，请注意，在写这篇文章的时候，[GNOME 42](https://news.itsfoss.com/gnome-42-features/) 还没有成为稳定版本。所以，你可以期待一个系统级的深色模式的实现，以及一些外观/感觉上的改进。

当然，这不是一个公平的比较，考虑到两者都提供不同的 GUI 元素和布局。然而，对于想要更多控制和定制选项的用户来说，KDE 会被选择。

GNOME 适合于不想要很多选项的用户。如果你喜欢 GNOME 提供的东西，并且愿意用额外的努力来定制体验，你也可以这么做。

### 额外的能力：KDE 与 GNOME

#### GNOME

如前所述，GNOME 提供了给你当前的配置 [增加更多的功能的扩展功能](https://itsfoss.com/gnome-shell-extensions/)。

你可以前往 [GNOME 的 shell 扩展网站](https://extensions.gnome.org) 来探索各种选择，或者看看我们的 [最佳 GNMOE 扩展列表](https://itsfoss.com/best-gnome-extensions/)。

![](/data/attachment/album/202203/02/160937jpsvkjq2pppwjgqr.png)

GNOME 扩展让你可以轻松地做很多事情，比如使用自动移动窗口切换器来自动化应用启动的工作区。

有各种各样的扩展来改善你的工作流程，使事情变得简单。

然而，这些扩展取决于 GNOME shell 的版本。此外，由于从一个版本到另一个版本的激进变化，GNOME 扩展可能在未来的版本中停止工作。

#### KDE

另一方面，KDE 也提供了一个充满附加组件、小工具和应用附加组件的袋子。

![](/data/attachment/album/202203/02/160938ysv20cqyjqtmly0r.png)

不像 GNOME 从浏览器中添加扩展的那种不方便的方式（使用另一个浏览器扩展），你可以使用“发现”软件中心直接访问 KDE 的附加组件。

![](/data/attachment/album/202203/02/160938dhqu1hr0rmhhxuhv.png)

所以，添加额外的功能或主题就变成了一种无缝的体验，而不需要遵循一套单独的步骤。

不要忘了，像 KDE Connect 这样的工具提供了额外的能力，让你把你的手机和你的电脑连接起来。

总的来说，你可以在两者上扩展功能，但如果你想有更多的选择，KDE 更有优势。

### 无障碍选项

#### KDE

虽然 KDE 在几个方面做得很好，但增强桌面无障碍的可用能力非常有限（比如没有开箱即用的屏幕阅读器）。

![](/data/attachment/album/202203/02/160940hyd26n62n7bmhadd.png)

有一种可能是，开发者正在用 Orca 屏幕阅读器应用来测试其功能，比如桌面的听力/视觉辅助，但在 KDE Plasma 5.24 中，它不够实用。

正如我们的一位读者所指出的，KDE 在安装前后都不能“说话”。所以，这对他们来说不是一个选择。

#### GNOME

然而，GNOME 做得更好，它有读屏器、视觉提醒、屏幕键盘、声音键、点击辅助等。

![](/data/attachment/album/202203/02/160942i26253dcpvkcldgy.png)

所以，如果一个用户依赖无障碍选项来使用桌面，GNOME 应该是个选择。

### KDE 比 GNOME 更快？

拥有一个能在可用系统资源下有效工作的桌面环境是很重要的。如果你想进行多任务处理，而又没有超好的配置来支持的话，这一点就显得无比重要。

KDE 通常被认为比其他大多数桌面环境要快，因为它对资源的占用很轻。

然而，为了给你一个参考，我创建了两个虚拟机（Fedora 35 和 KDE Neon 用户版），在你继续尝试之前提供一些想法。

两个虚拟机的设置都使用类似的资源配置，分配了两个核心和 8GB 内存，下面是我们的情况：

![Resource usage on GNOME 41 ](/data/attachment/album/202203/02/160943yqdq8qo4kd4za911.png)

这个资源使用情况是在开启虚拟机后，后台没有任何东西运行的情况下的截图。

相比之下，由 KDE 驱动的发行版 KDE Neon 被证明在后台没有运行截图程序的情况下消耗了不到 1GB 的内存。

![](/data/attachment/album/202203/02/160944cp6hq649opqpp16i.png)

即使在截图程序运行的情况下，它消耗的资源也较少。

如果这还不能说服你，过去也有许多报告，比如 [Jason 的报告](https://www.forbes.com/sites/jasonevangelho/2019/10/23/bold-prediction-kde-will-steal-the-lightweight-linux-desktop-crown-in-2020/?sh=1338b70026d2)，提到 KDE 是比 XFCE 更轻的桌面环境。

### 可用的发行版：GNOME 与 KDE

大多数流行的发行版都将 GNOME 作为默认（或唯一）的桌面环境。Fedora、Ubuntu 和 Pop!\_OS 是流行的例子。

你应该能找到许多有单独的 GNOME 版本的发行版。

至于 KDE，你可以尝试了解一下我们的 [基于 KDE 的发行版](https://itsfoss.com/best-kde-distributions/) 列表，或者寻找像 Kubuntu 这样的选择。在大多数主流发行版中，你可能不会发现 KDE 是默认选择的发行版，但你应该发现几乎所有的发行版都有 KDE 的变体。

### 那么，你应该选择什么来定义你的桌面体验？

对桌面环境的选择带给了你想要的桌面体验。

如果你想要简单、性能和众多的选项/工具，KDE 应该是一个常青的选择。

如果你想要一个现代的/更干净的外观，并且不介意不同的布局（或用户体验），GNOME 可以成为一个不错的补充。

虽然 GNOME 可能无法给你同样多的控制，但你仍然可以用它做很多事情。Pop!\_OS 是一个例子，它将 GNOME 作为桌面环境，并在其上添加扩展/功能，使其成为一个光鲜的桌面发行版。

所以，你需要评估什么对你的用户体验更重要。

**我的看法**：我会选择 GNOME 而不是 KDE，以获得独特/完美的桌面体验。

你会选择什么？请在下面的评论区告诉我你的想法。

### 常见问题：如果你还在为做出选择而感到困惑

看完比较后，你可能会有一些问题，所以我想解决一些潜在的问题：

**1、为什么 KDE 不流行**

KDE 可以说是继 GNOME 之后第二受欢迎的桌面环境。然而，它并不是主流发行版和 Ubuntu、Pop!\_OS、Fedora 等流行选项的默认选择；因此，你可以看到身边都是 GNOME。

**2、GNOME 比 KDE 更稳定吗？**

这两个桌面环境都是由有经验的开发者团队建立的，并定期进行修复和改进。

到目前为止，GNOME 已经有多次彻底的改变。所以，从这个角度来说，KDE 可以被认为是更一致和稳定的体验。

**3、KDE 是否比 GNOME 更快？**

虽然我们已经在文章中试图解决这个问题，但应该注意的是，性能取决于你做什么和可用的系统资源。

对于一些用户来说，最少的资源消耗可能是一个很大的胜利。而对某些人来说，随着可用资源的增加，差异也会逐渐消失。

**4、KDE 比 GNOME 好吗？**

KDE 具有更多的应用、自定义选项和额外的功能。然而，对于那些不希望获得任何此类选项的用户来说，它可能会让人感到不知所措。

如果用户喜欢简洁的用户体验，提供现代的外观，GNOME 可能是一个更好的选择。

归根结底，这都是你的喜好，而不是一个桌面环境的优势。

---

via: <https://itsfoss.com/kde-vs-gnome/>

作者：[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/) 荣誉推出


硬核观察 #563 勒索团伙要求英伟达开源其驱动程序

Summary: 更多：• Mozilla 推出新版 MDN 开发者网络，付费版随后就来 • OWA 组织希望 iOS 可运行第三方浏览器引擎

虽然勒索团伙是应该讨伐，但要求开源其 Linux 平台的驱动，我倒是举双手赞同。

SO, NVIDIA F*** YOU!

NVIDIA早点开源吧.......

近几年英伟达 GPU 的所有完整芯片设计、图形技术、计算技术资料等等——这里面没驱动吗？

我澄清，要求英伟达开源的勒索团伙，不是我~

我希望英伟达开源其Linux驱动，其他的无所谓

来自河南许昌的 Chrome Mobile 78.0|Android 10 用户

已经通过BT泄露出的大约20G的压缩包里面有驱动。

就算有驱动源码，你敢用吗？用了英伟达就告你<br />
这个和英伟达自己开源的性质是不一样的

我敢啊，英伟达是神仙吗，他能知道我的电脑里装的是什么？还告？

直接用当然不行，但遵守净室原则重写就行了，利好 Nouveau。

![](/data/attachment/album/202203/02/180421oo2vnbjnoqb18ei2.jpg)

![](/data/attachment/album/202203/02/180430krur84dy7m2fgod8.jpg)

### 勒索团伙要求英伟达开源其驱动程序

在 [昨天的回音](/article-14318-1.html) 中我们提到，入侵英伟达的勒索团伙，似乎被英伟达的 [反击](/article-14312-1.html) 激怒了，开始出售英伟达的数据和代码，这包括该公司员工的密码哈希、RTX 30 系列显卡的挖矿限制绕过代码。现在，勒索团伙又 [要求](https://voonze.com/those-responsible-for-the-cyber-attack-on-nvidia-demand-that-geforce-drivers-be-open-source/) 英伟达必须将其显卡驱动完全开源，包括 Windows、macOS、Linux 各个系统版本，而且必须马上开源，永远开源。否则，将在本周五公开近几年英伟达 GPU 的所有完整芯片设计、图形技术、计算技术资料等等。

>
> 老王点评：我想英伟达不可能答应这样的要求，而勒索团伙也不会从开源这件事得到好处，或许这是勒索团伙为了粉饰其“正义性”的烟雾弹，最终还是为了钱。且让我们拭目以待。
>
>
>

![](/data/attachment/album/202203/02/180446jm858emh77set1wt.jpg)

### Mozilla 推出新版 MDN 开发者网络，付费版随后就来

Mozilla 开发者网络（MDN）一直是 Web 开发者的宝贵资源，它提供了大量关于各种 HTML、CSS 和 JavaScript 功能的开放、详细的文档，以及广泛的 Web API 参考资料。但在 Mozilla 裁员期间，MDN 的作者团队被裁掉了，并将 MDN 捐给了一个新的项目 Open Web Docs（OWD），谷歌、微软等也参与了进来。但现在 Mozilla [重新设计了其 MDN](https://developer.mozilla.org/) 网站，并准备推出一个每月 5 美元的 MDN Plus [收费服务](https://hacks.mozilla.org/2022/03/a-new-year-a-new-mdn/)。

>
> 老王点评：虽然重新设计的 MDN 看起来不错，但这是因为准备提供收费服务才重整的么？
>
>
>

![](/data/attachment/album/202203/02/180503xji49az1x9vv4j5g.jpg)

### OWA 组织希望 iOS 可运行第三方浏览器引擎

新成立的开放网络倡导组织（OWA）希望 [说服苹果公司](https://open-web-advocacy.org/)，允许第三方浏览器引擎在 iOS 上运行。iOS 上的所有浏览器，无论是 Chrome、Firefox 还是 Edge，实际上只是 Safari 的一个皮肤。第三方浏览器也不能在主屏幕上添加快捷方式，不能以全屏操作，也不能使用苹果支付。OWA 称，Safari/WebKit 团队过去十年里在创新方面停滞不前，并积极阻止了 Web 应用在移动领域的普及。

>
> 老王点评：我就纳闷了，当年微软因为 IE 被判垄断败诉，为什么苹果公司这么多年能一直这样垄断 iOS 浏览器？
>
>
>


在 KDE 中添加、切换、删除和管理 Linux 用户

KDE 的设置项是真的全。

>
> 在一台电脑上维护独立的用户是一种奢侈，也是保护你自己和你关心的人的数据安全的一个好方法。
>
>
>

![](/data/attachment/album/202203/03/104151iwevek3xzcr1113u.jpg "people in different locations who are part of the same team")

在一个家庭中共享一台电脑通常是一件很随意的事情。当你需要电脑时，你拿起它并开始使用它。这在理论上很简单，而且大部分情况下是有效的。也就是说，直到你不小心拿起公用电脑，不小心把你的服务器的正常运行时间的截图发到你伴侣的烹饪博客上。然后，就到了建立独立用户帐户的时候了。

从一开始，Linux 就是一个多用户系统。它的设计是把每个用户，只要他们登录，都当作一个独特的人，有一个属于他们自己的桌面，一个独特的网络浏览器配置文件，访问他们自己的文档和文件，等等。KDE Plasma 桌面做了很多工作，使得从一个帐户切换到另一个帐户很容易，但首先你必须为每个你期望使用电脑的人设置一个用户帐户。你也可以为客人设置一个特殊的帐户（我称这个帐户为 `guest`）。

### 在 KDE 中添加用户

在 Linux 上有不同的方法来添加用户。一种方法是系统管理员式的 [使用终端](https://www.redhat.com/sysadmin/linux-commands-manage-users)。当你有很多用户需要添加时，这是非常有效的，所以你想把这个过程自动化或者只是减少鼠标点击的次数。

不过在 Plasma 桌面上，你可以用<ruby> 用户 <rt>  Users </rt></ruby>程序来添加用户。<ruby> 用户 <rt>  Users </rt></ruby>实际上是<ruby> 系统设置 <rt>  System Settings </rt></ruby>中的一个控制面板，但你可以从你的应用菜单中启动它，就像它是一个独立的应用。

![Users in KDE System Settings](/data/attachment/album/202203/03/104200y0qqnxhi34ox6xt4.jpg "Users in KDE System Settings")

要添加一个用户，点击窗口底部的<ruby> 添加新用户 <rt>  Add New User </rt></ruby>按钮。

![Adding a user in KDE](/data/attachment/album/202203/03/104201w6kscf6kk5giiuzi.jpg "Adding a user in KDE")

给新用户一个<ruby> 名字 <rt>  Name </rt></ruby>和一个<ruby> 用户名 <rt>  Username </rt></ruby>。这些可能是相同的，但意图是他们的名字是他们的姓名，而他们的用户名是他们用于使用的入口。例如，我的名字是 “Seth Kenlon”，而我的用户名是 `seth`。

将新用户指定为<ruby> 标准用户 <rt>  Standard </rt></ruby>或<ruby> 管理员 <rt>  Administraor </rt></ruby>。标准用户只对自己的环境有完全的控制权。他们可以 [安装 Flatpak](https://opensource.com/article/21/11/install-flatpak-linux) 并将数据保存到他们的主目录，但他们不能影响机器上的其他用户。这是有用户帐户的好处之一。我不会认为我允许使用我的电脑的任何人打算删除对我很重要的数据，但意外还是发生了。通过为我自己和我的伴侣创建一个单独的用户帐户，我在保护我们每个人的数据，我也在保护我们每个人，避免意外地移动一个文件或误放对另一个人很重要的数据。

管理员可以进行全系统的更改。我通常在我的电脑上为自己保留这个角色，我也希望我的伴侣在她自己的电脑上为自己保留这个角色。然而，在工作中，这个角色属于 IT 部门。

为用户创建一个<ruby> 密码 <rt>  Password </rt></ruby>，并重复<ruby> 确认 <rt>  Confirm </rt></ruby>。登录后，新用户可以改变他们的密码。

要完成用户创建，请点击<ruby> 创建 <rt>  Create </rt></ruby>按钮。

### 切换用户

在桌面有两种不同的方式来切换用户。你可以注销，然后让另一个用户登录，或者你可以从应用菜单的<ruby> 电源/会话 <rt>  Power / Sessions </rt></ruby>子菜单中选择<ruby> 切换用户 <rt>  Switch user </rt></ruby>。

![Switching users in KDE](/data/attachment/album/202203/03/104202t0ueuufuvtiz2eqf.jpg "Switching users in KDE")

当一个新用户登录时，你的当前桌面会被“冻结”或暂停，而另一个用户的新桌面会被调出来。你所有的窗口都保持打开。你甚至可以在游戏中切换用户（如果你正在战斗中，你应该先暂停一下），当你切换回来时，你可以从你离开的地方继续。更好的是，你的所有进程也会继续运行。所以你可以在渲染视频或编译代码时切换用户，当你切换回来时，你的视频已经完成了渲染，或者你的代码已经完成了编译（只要有足够的时间）。

![Login](/data/attachment/album/202203/03/104202z5jcs7eccs2ctwtc.jpg "Login")

### 删除用户

当我有客人时，我经常在他们的逗留期间创建一个客人帐户，当他们离开后，我就删除这个帐户。

你可以通过删除一个用户的用户帐户来从你的电脑中删除该用户。这将删除他们的所有数据，所以要确保你要删除的用户已经把他们需要的东西从机器上迁移掉了！

<ruby> 删除用户 <rt>  Delete User </rt></ruby>按钮位于<ruby> 用户 <rt>  Users </rt></ruby>控制面板中的每个用户帐户下，也就是你最初创建用户的地方。

![Deleting a user](/data/attachment/album/202203/03/104203tot27o70vnm7lnt9.jpg "Deleting a user")

### Linux 用户管理

在计算机上维护独立的用户是一种奢侈，也是保护你自己的数据和你关心的人的数据安全的好方法。它允许每个用户都是独一无二的，并使桌面成为他们自己的。在 Linux 中，这很容易，而且没什么影响，因此可以为朋友、房客和家人创建用户。

---

via: <https://opensource.com/article/22/2/manage-linux-users-kde>

作者：[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/) 荣誉推出


2021 总结：DevOps 促进转型的 13 个例子

DevOps 赛高。

>
> 2021 年，我们的顶级 DevOps 文章聚焦于工具、最佳实践和最关键的部分：转型。
>
>
>

![](/data/attachment/album/202203/03/112426i6am9jokk88z9n89.jpg "Tips and gears turning")

2021 年对于 DevOps 来说是激动人心的一年，开发团队不断适应远程和混合工作模式。这一年最受欢迎的 DevOps 文章展示了我们的社区如何关注工具、创新、最佳实践和转型。

### DevOps 工具和创新

该行业的工具仍然是读者的首选读物。[Nimisha Mukherjee](https://opensource.com/users/nimisha) 是红帽的一名工程经理，她编写了 [面向开发人员的 13 个开源工具](https://opensource.com/article/21/6/open-source-developer-tools)。她将工具分为“内环”和“外环”两个部分，“内环”是开发人员最常见的任务，“外环”是开发人员的代码通过持续集成和交付（CI/CD）部署到生产环境的地方。

我们的读者对实现 DevOps 工具链的兴趣也很高。首次投稿的 [Tereza Denkova](https://opensource.com/users/tereza-denkova) 是一家 IT 专业服务公司 Accedia 的营销助理，他撰写了 [如何实现 DevOps 工具链](https://opensource.com/article/21/1/devops-tool-chain)，并将其与创新紧密联系在一起。

### DevOps 实践

[Daniel Oh](https://opensource.com/users/daniel-oh) 是我们的主要支持者，也是一位多产的内容创作者，他写了 [2021 年需要关注的 3 个无服务器策略](https://opensource.com/article/21/1/devapps-strategies)，概述了当今无服务器应用程序开发和部署方法是如何加速采用 DevApps 实践的。

[Evan “Hippy” Satis](https://opensource.com/users/hippyod) 在他的文章 [解决 CI/CD 中的存储库阻抗不匹配](https://opensource.com/article/21/8/impedance-mismatch-cicd) 中提供了调整部署映像和描述符的策略。他是红帽公司的高级顾问，他在文章中采用的有条不紊的方法证明了他的行业经验。另外，请参阅他的文章 [在 shell 中处理模块化和动态配置文件](https://opensource.com/article/21/5/processing-configuration-files-shell)。

在我的文章 [DevOps 文档指南](https://opensource.com/article/21/3/devops-documentation) 中，我提出了让文档成为 DevOps 讨论的一部分的理由。我从读者那里得到了一些有见地的评论，因此我正在为未来的一篇文章跟进这些评论。

### DevOps 转型

我们有时不相信 DevOps 能够适应组织需求。理解其他形式的运维的潜在影响是非常必要的，这些运维可能在现在或将来补充或增强 DevOps。[Bryant Son](https://opensource.com/users/brson)，一个自称是<ruby> 章鱼猫 <rt>  Octocat </rt></ruby>的人，在 [GitOps 和 DevOps 有何不同？](http://opensource.com/article/21/3/gitops) 中提出 GitOps 是 DevOps 的进化形式。

[Mike Calizo](https://opensource.com/users/mcalizo) 是新西兰奥克兰的一位红帽公司解决方案架构师，他撰写了 [如何成功采用 DevSecOps](https://opensource.com/article/21/2/devsecops)。本文将介绍他作为解决方案架构师的经验。他解释了在你迁移到 DevSecOps 的过程中可能会遇到的一些安全挑战。

我写了一系列关于 DevOps 到 DevSecOps 转型的文章。它们是：

* [启动从 DevOps 到 DevSecOps 的转型](http://opensource.com/article/21/10/devops-to-devsecops)
* [开始 DevSecOps 转型的 3 个阶段](https://opensource.com/article/21/10/first-phases-devsecops-transformation)
* [遵循 DevSecOps 成熟度模型](https://opensource.com/article/21/10/devsecops-maturity-model)
* [DevSecOps 转型的另外 3 个阶段](https://opensource.com/article/21/10/last-phases-devsecops-transformation)
* [使 DevSecOps 的采用成为团队努力的 4 个步骤](https://opensource.com/article/21/10/devsecops-team-effort)

### 2022 年和 DevOps 的未来

看到 DevOps 的文章登上了 2021 年最受欢迎的名单，说明 DevOps 将迎来一个更加有趣的 2022 年，因为组织正在继续掌握他们的工具，改进他们的战略，并继续他们的 [数字化转型](https://enterprisersproject.com/what-is-digital-transformation)，以便在不断变化的市场中有效地竞争。

感谢所有阅读我们的 DevOps 文章、喜欢这些文章，并通过网站和社交媒体给我们发送评论的人。

---

via: <https://opensource.com/article/22/1/devops-transformation>

作者：[Will Kelly](https://opensource.com/users/willkelly) 选题：[lujun9972](https://github.com/lujun9972) 译者：[CN-QUAN](https://github.com/CN-QUAN) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #564 冰淇淋机黑客起诉麦当劳索赔 9 亿美元

Summary: 更多：• 红帽正在开发一个基于 RHEL 的车载 Linux 发行版 • Steam Deck 可以安装 Windows 系统，但驱动还不足

不如来猜猜后面 Valve 会提供用于 Windows 驱动吗。

2022 年 03 月 11 日，Steam Deck 宣布推出 Windows 驱动：目前仅限 Win10， Win11 所需 BIOS 仍在制作中

消息来源：www。ithome.com/0/607/122.htm

![](/data/attachment/album/202203/03/200229z67n7c06v0zk0o4l.jpg)

![](/data/attachment/album/202203/03/200241oamwmm8j88ehem5m.jpg)

### 冰淇淋机黑客起诉麦当劳索赔 9 亿美元

2019 年以来，小型创业公司 Kytch 致力于发明和销售一种手机大小的工具，它安装在麦当劳的冰激凌机内，可以拦截冰淇淋机的内部通信，并将其发送到网络或智能手机界面，以帮助远程监控和排除冰淇淋机内普遍存在的许多缺陷。许多麦当劳经营者都会安装这个设备。麦当劳向经营者们发送了电子邮件，要求他们立即将该设备从冰淇淋机中撤出，称该设备不仅违反了冰淇淋机的保修，截获了他们的机密信息，而且还构成了安全威胁，并宣传了一种具有该设备类似功能的新冰淇淋机。Kytch 公司的业务停摆之后，对麦当劳提起了 [法律诉讼](https://www.wired.com/story/kytch-ice-cream-machine-hackers-sue-mcdonalds-900-million/)，指控麦当劳公司存在虚假广告和侵权干涉其与客户的合同，要求获得不少于 9 亿美元的赔偿。

>
> 老王点评：这个事情比较有意思，到底是谁对呢？
>
>
>

![](/data/attachment/album/202203/03/200253iagjgsg9no1x9a4z.jpg)

### 红帽正在开发一个基于 RHEL 的车载 Linux 发行版

今天，CentOS 汽车 SIG 宣布了用于汽车上的新发行版 [AutoSD](https://blog.centos.org/2022/03/centos-automotive-sig-announces-new-autosd-distro/)，它是一个二进制发行版，将作为红帽即将推出的车载操作系统的公开的开发预览版。像 CentOS Stream 是 RHEL 的上游一样，它是红帽的汽车发行版的上游。AutoSD 将采用专门的内核，而不是 CentOS Stream 的内核。开发商可以加入汽车 SIG，围绕汽车硬件做开发，在 SIG 中启用新硬件并不意味着它会自动成为红帽汽车发行版的一部分。

>
> 老王点评：这些年汽车 Linux 一直没有很好的发展起来，但是随着对车载系统的更多功能要求，一个更强大的操作系统市场显然在成长。
>
>
>

![](/data/attachment/album/202203/03/200404plk7syyjkx9lsdlx.jpg)

### Steam Deck 可以安装 Windows 系统，但驱动还不足

Steam Deck 在硬件上是一台 x86 PC，而预装的 Steam OS 是基于 Arch Linux。由于 Linux 原生游戏不足，虽然可以利用 Proton 技术来运行 Windows 游戏，但还是有人希望能原生运行 Windows 游戏。Steam Deck 默认开放了启动引导，因此可以开机引导到 Windows 的安装 U 盘来[安装](https://www.tomshardware.com/how-to/install-windows-steam-deck)。不过，目前虽然可以顺利安装和进入桌面，但缺少显卡、Wi-Fi、有线网络等大量重要驱动。

>
> 老王点评：如果是给 Steam Deck 打造 Linux 驱动，我想社区可能就已经动起手了，而 Windows 用户可没这个习惯，显然用户只能等待 Valve 公司了。
>
>
>


4 个用于提高生产力的 Vim 功能

Summary: Vim 有很多技巧，即使是用过它很多年的人仍然可以学习新东西。

大家对于vim编辑超长的行有什么心得体会吗，如何更方便点

来自广东广州的 Chrome Mobile 71.0|Android 6.0 用户

俺的心得就是避免有超长行。

避免不了的话，需要快速移动就使用搜索功能，而非HJKL或者 vim-easymotion 之类的插件。

说到 Vim 自动补全，推荐一下韦易笑写的 vim-auto-popmenu 插件。

一个只有 169 行代码的超级轻量级代码补全系统，无需安装各种后端的补全 LSP 服务器，即可提供类似于 YouCompleteMe 的补全体验。

介绍：zhuanlan.zhihu.com/p/349271041

地址：github.com/skywind3000/vim-auto-popmenu

Vim 有很多技巧，即使是用过它很多年的人仍然可以学习新东西。

>
> Vim 有很多技巧，即使是用过它很多年的人仍然可以学习新东西。
>
>
>

![](/data/attachment/album/202203/04/102118tgy1i7albn6ndiri.jpg "Person using a laptop")

Vim 总在那里。Vim 是当今最流行的文本编辑器之一。这在很大程度上是因为它随处可见。当你通过 SSH 连接到另一个系统时，你可能找不到 [Emacs](https://opensource.com/article/20/3/getting-started-emacs)、[Nano](https://opensource.com/article/20/12/gnu-nano) 或 [VSCodium](https://opensource.com/article/20/6/open-source-alternatives-vs-code)，但你可以放心，Vim 就在那里。

在本文中，我介绍了一些你可以用 Vim 做的中级事情，以加快你的工作流程并通常让你的一天更轻松。本文假设你以前使用过 Vim，已经了解编辑器的基础知识，并希望将你的 Vim 技能提高一个档次。Vim 充满了有用的技巧，没有人真正掌握它，但本文中的五个技巧可以提高你的技能，并希望让你更加爱上最受欢迎和喜爱的文本编辑器之一。

### Vim 书签

Vim 提供了一种在文本中添加书签的简单方法。假设你正在编辑一个大文件，并且当前的编辑会话要求你在文件中不同位置的两段文本之间来回跳转。

首先，你输入 `m`（用于标记）为当前位置设置一个书签，然后为其命名。例如，如果我正在编辑的文件中有一个名称列表，我想稍后再跳回，我可以使用 `mn`（n 表示名称）为文件的该部分添加书签。

稍后，在编辑文件的另一部分并希望跳回该名称列表时，我有两个选项。我可以输入 ``n`（反引号 n）转到书签的位置，或者我可以键入 `'n`（单引号 n）转到书签所在行的开头。

当我不再需要书签时，我可以使用 `:delmarks n` 将其删除。`:marks` 会显示我所有的书签。

请注意，我使用小写字母来命名我的书签。这是故意的。你可以使用小写字母作为本地书签，使用大写字母来使书签在多个文件中具有全局性。

### Vim 用户定义的缩写

如果你正在处理的文本有一个长词或短语多次出现，那么每次都完整地输入它会很快变得烦人。幸运的是，Vim 提供了一种创建缩写的简单方法。

要将 `Acme Painted Fake Roadways, Inc.` 的用户定义缩写设置为 `apfr`， 你需要输入 `:ab apfr Acme Painted Fake Roadways, Inc.`。现在当在编辑模式时，当你在输入 `apfr` 后面更上空格，就会变成 `Acme Painted Fake Roadways, Inc.`。

当你关闭 Vim 会话时，你使用 `:ab` 设置的任何缩写都会丢失。如果你想在此之前取消设置缩写，你可输入 `:una apfr`。

### Vim 自动补全

许多人没有意识到 Vim 带有自动补全功能。如果你在文件中输入以前使用过的长词，这是一个方便的工具。

假设你正在撰写一篇文章，多次使用 `Antarctica` 一词。使用一次后，下次你可以只输入前几个字母。例如，你输入 `Ant` 然后按下 `Ctrl+P`。 Vim 要么补全单词（如果只有一个选项），要么为你提供可以用箭头键选择的单词列表，继续输入以进一步缩小搜索范围并使用 `Tab` 键选择单词。

### Vim 范围选择

使用 Vim，你可以轻松地对文件中的一系列行执行操作。你可以通过起始行号、逗号和结束行号（包括）来指示范围。除了文字行号之外，你还可以使用句点（`.`）表示当前行，使用美元符号 （`$`） 表示文件缓冲区中的最后一行，以及使用百分号（`%`）表示整个文件。

这里举几个例子来说明。

如果要删除第 2 到 10 行，请输入（在命令模式下）：

```
:2,10d

```

要删除从第 25 行到文件末尾的每一行：

```
:25,$d

```

你可以使用以下命令删除每一行：

```
:%d

```

要将第 5 到 10 行复制（或转移）到第 15 行之后：

```
:5,10t 15

```

要将第 5 行到第 10 行移动到第 15 行之后（而不是复制）：

```
:5,10m 15

```

### Vim 提高生产力

我希望这篇文章教会了你一些关于 Vim 文本编辑器的新知识。 Vim 有很多技巧，即使是使用了多年的人仍然可以学习新事物。总有一些新的和有用的东西可以学习。

---

via: <https://opensource.com/article/22/3/vim-features-productivity>

作者：[Hunter Coleman](https://opensource.com/users/hunterc) 选题：[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/) 荣誉推出


简简单单的 Vim 就很好

Summary: 这就是我如何从 35 个 Vim 插件降到只有 6 个的原因。

国外也喜欢写这种过时的水文呀，都 2022 年了 (只针对作者，不针对译者)。

+ CtrlP 性能差的要死 (虽然后面也支持了异步模式)，建议用 leaderf、fzf.vim、denite 替代。

+ Airline 中规中距，要是追求速度可用 lightline。

+ Ale 倒没啥问题，作为一款 lint 插件很是优秀，不过更推荐使用 LSP 提供的语法检查。

matchit其实问题也不少

`引导键` 是什么鬼？<br />
应该是 `mapleader` 吧

这就是我如何从 35 个 Vim 插件降到只有 6 个的原因。

>
> 这就是我如何从 35 个 Vim 插件降到只有 6 个的原因。
>
>
>

![](/data/attachment/album/202203/04/161603q6mmr6q7kkkd2yky.jpg "Person drinking a hot drink at the computer")

当你用 `—clean` 选项启动 Vim 时，它以 “素” 模式展示 Vim。没有插件、没有配置，一切回到了最初。多年来，我收集了一堆配置语句，其中一些可以追溯到 MS-DOS 或 Windows 3.1 时期。我是这样打算的：从头开始，只用 Fedora 35 中可用的插件，找到一个好的配置起点。我可以在一周的编码生活中生存下来吗？我会找到答案的！

规则是这样的：尽可能少的配置语句，并且只使用 Fedora 35+ 中的插件。顺便说一下，如果你不是 Fedora 用户，也请继续阅读。你可以随时从你的操作系统软件包管理器手动安装或者使用 Vim 插件管理器安装这些插件。

在我开始之前，有一个大问题需要解决：用 Vim 还是 Neovim（Vim 的一个复刻）。好吧，这由你决定。这篇文章中的所有内容应该对两者都适用。然而，我只用 Vim 测试过。当你登录到一个只有 `vi` 可用的服务器时，所有的这些技能都会派上用场。它可以是一个旧的 UNIX 系统、一个安装了最少的软件以提高安全性的 Linux 服务器、一个容器中的交互式 shell，或者一个空间宝贵的嵌入式系统。

闲话少说，下面是我提炼出来的使用 Vim 进行编码的绝对最低限度的东西：

```
# dnf install --allowerasing vim-default-editor \
        vim-enhanced \
        vim-ctrlp \
        vim-airline \
        vim-trailing-whitespace \
        vim-fugitive \
        vim-ale \
        ctags

```

不要担心 `—allowerasing` 选项。在确认之前，只需查看一下安装的东西。这个选项的作用是告诉软件包管理器把现有的 `nano-default-editor` 包替换为 `vim-default-editor`。这是一个小软件包，它在 shell 配置文件中将 `EDITOR` 环境变量设置为 `vim`，如果你想默认使用 Vim（例如，与 `git` 一起使用），这是必须的。这是专门针对 Fedora 的。你不需要在其他发行版或操作系统上这样做，只要确保你的 `EDITOR` shell 变量被正确设置就行。

### 概览

简单介绍一下我认为好的、干净的插件集：

* **CtrlP**：尽可能小的模糊查找插件（纯 vimscript）
* **Fugitive**：一个 git 的必备工具
* **Trailing-whitespace**：显示并修复（删除）尾部的空格
* **Airline**：一个改进的状态行（纯 vimscript）
* **Ale**：在你打字时高亮显示错别字或语法错误
* **Ctags**：不是 Vim 插件，但却是一个非常需要的工具

还有其他的模糊查找插件，如 command-t 或我最喜欢的 `fzf.vim`（非常快）。问题是，`fzf.vim` 不在 Fedora 中，而我想要尽可能少的配置。CtrlP 就可以了，而且配置它更容易，因为它不需要什么依赖。

如果让我选择一个绝对最小的配置，那就是：

```
# cat ~/.vimrc
let mapleader=","
let maplocalleader="_"
filetype plugin indent on
let g:ctrlp_map = '<leader><leader>'
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
set exrc
set secure

```

但这可能太极端了，所以这里是一个稍大的配置，下面是我的详细解释：

```
" vim: nowrap sw=2 sts=2 ts=2 et:

" leaders
let mapleader=","
let maplocalleader="_"

" filetype and intent
filetype plugin indent on

" incompatible plugins
if has('syntax') && has('eval')
  packadd! matchit
end

" be SSD friendly (can be dangerous!)
"set directory=/tmp

" move backups away from projects
set backupdir=~/.vimbackup

" fuzzy searching
let g:ctrlp_map = '<leader><leader>'
let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
nnoremap <leader>b :CtrlPBuffer<cr>
nnoremap <leader>t :CtrlPTag<cr>
nnoremap <leader>f :CtrlPBufTag<cr>
nnoremap <leader>q :CtrlPQuickfix<cr>
nnoremap <leader>m :CtrlPMRU<cr>

" buffers and quickfix
function! ToggleQuickFix()
  if empty(filter(getwininfo(), 'v:val.quickfix'))
    copen
  else
    cclose
  endif
endfunction
nnoremap <leader>w :call ToggleQuickFix()<cr>
nnoremap <leader>d :bd<cr>

" searching ang grepping
nnoremap <leader>g :copen<cr>:Ggrep!<SPACE>
nnoremap K :Ggrep "\b<C-R><C-W>\b"<cr>:cw<cr>
nnoremap <leader>s :set hlsearch! hlsearch?<cr>

" ctags generation
nnoremap <leader>c :!ctags -R .<cr><cr>

" per-project configs
set exrc
set secure

```

### 使用逗号作为引导键

我喜欢把我的 `引导键` 映射成逗号 `,`，而不是默认的反斜杠 `\`。当你的手处于书写位置时，它是 Vim 中最接近的自由键。另外，这个键在大多数键盘布局中都是一样的，而 `\` 在每个型号或布局都不一样。我很少使用 `本地引导键`，但下划线 `_` 看起来很合适。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/map.txt.html#map-which-keys) 中的 `:help map-which-keys`。
* 参见 [Vim Tips Wiki](https://vim.fandom.com/wiki/Unused_keys) 中的 Vim 中未使用的键。

### 文件类型和关闭语法高亮

接下来是非常重要的 `filetype` 命令。看，Vim 自带“内置电池”，8.2 版本包含 644 种语言的语法高亮，251 个文件类型定义（`ftplugins`），以及 138 种语言的缩进规则。然而，缩进在默认情况下是不启用的，也许是为了给所有人提供一个一致的编辑体验。我喜欢启用它。

一个简单的技巧：如果你正在编辑一个非常大的文件，并且 Vim 感觉很慢，你可能想禁用语法高亮来加快速度。只要输入 `:syn off` 命令即可。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/filetype.txt.html) 中的 `:help filetype`。
* 参见 [Vim 参考手册](https://vimhelp.org/syntax.txt.html) 中的 `:help syntax`。
* 参见 [Vim 参考手册](https://vimhelp.org/indent.txt.html) 中的 `:help indent`。

### Matchit 插件

Vim 甚至额外带有使得一些功能不兼容的插件，其中一个相当有用。它就是 `matchit` 插件，它使按下 `%` 键可以在某些语言中查找匹配的括号。通常情况下，你可以找到一个块的开始或结束（开始和结束括号）或 HTML 匹配标签及类似的。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/usr_05.txt.html#matchit-install) 中的 `:help matchit`。

### 交换文件

我想从我的旧配置中保留的许多设置之一是使用 `/tmp` 进行交换，并在我的家目录的一个单独目录中创建备份，你需要用 `mkdir ~/.vimbackup` 来创建这个目录。重要的是要明白，当你开始编辑时，Vim 会创建一个名为 “交换文件” 的副本，所有未保存的工作都会保存在这个文件中。所以即使停电了，你的交换文件也包含了大部分未保存的工作。我更喜欢使用 `tmpfs`，因为我所有的笔记本电脑和服务器都有 UPS 保护，而且我经常保存。另外，大多数情况下，你会使用到交换文件是当你的 SSH 连接丢失而不是由于停电时。对于大文件来说，交换文件可能相当大，我很珍视我的固态硬盘，所以我决定这样做。如果你不确定，可以删除这句话，使用 `/var/tmp`，这样更安全。

延伸阅读；

* 参见 [Vim 参考手册](https://vimhelp.org/recover.txt.html#swap-file) 中的 `:help swap-file`。

### 模糊寻找插件

现在，模糊查找是一个我不能没有的插件。在服务器上当你每天需要打开 20 个文件时，使用 `:Ex` 或 `:e` 或 `:tabe` 等命令打开文件是没问题的。而当编码时，我通常需要打开数百个文件。正如我所说，CtrlP 很好地完成了这项工作。它很小，没有依赖性，纯 Vim。它用 `Ctrl + P` 组合键打开，这对我来说有点奇怪。我知道一些著名的编辑器（我记得是 VSCode）使用这个组合键。问题是，这已经是很重要的 Vim 绑定键，我不想覆盖它。所以对我来说，赢家是 `引导键 + 引导键`（逗号按两次）。

`ctrlp_user_command` 只是改变了 CtrlP 获取文件列表的方式。它不使用内置的递归文件列表（glob），而是使用 `git ls-files`，这通常更好，因为它忽略了 `.gitignore` 中的东西，所以像 `node_modules` 或其他可能拖慢列表的不相关目录不会受到影响。

使用 `引导键` + `B`/`T`/`F`/`Q`/`M` 来打开缓冲区、标签、当前文件的标签、快速修复缓冲区和最近使用的文件的列表，非常有用。具体来说，一旦你用 `ctags` 生成了标签列表，这基本上就是数百种编程语言的“去……定义处”，而且不需要插件！这都是 Vim 内置的。现在澄清一下，当我说输入 `引导键 + B` 时，是指按下逗号，然后按 `B` 键，而不是像用 `Control` 或 `Shift` 那样一起按。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/pi_netrw.txt.html#netrw-explore) 中的 `:help Explore`。
* 参见 [ctrlp.vim GitHub](https://github.com/kien/ctrlp.vim)。

### 缓冲区管理

虽然现在 Vim 支持标签，但缓冲区管理是掌握 Vim 的一个重要技能。我通常会有很多缓冲区，我需要经常做 `:bdelete`。那么，`引导键 + D` 似乎是一个不错的选择，可以更快地完成这个任务。我也喜欢关闭 Quickfix 窗口，所以也有 `引导键 + W` 的组合键，我在浏览搜索结果时经常使用这个功能。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/windows.txt.html#buffer-hidden) 中的 `:help buffer-hidden`。

### Ggrep 和 fugitive 插件

说到搜索，它和打开文件一样重要。我希望能够对代码库进行检索。为此，有一个来自 fugitive 插件的很棒的 `:Ggrep` 命令，它使用 `git grep`，忽略了垃圾文件，只搜索 Git 中的内容。由于 `Shift + K` 是 Vim 中的一个自由键，它非常适用于自动检索光标位置的词语。最后，能够使用 `引导键 + G` 输入任意的搜索模式也很好。注意，这将打开一个叫做 Quickfix 的窗口，你可以在这里浏览结果、查看下一个/上一个/最后一个/第一个出现的地方，等等。这个窗口也用于编译器或其他工具的输出，所以要熟悉它。如果你对此感到陌生，我建议进一步阅读文档。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/quickfix.txt.html) 中的 `:help quickfix`。
* 参见 [vim-fugitive GitHub](https://github.com/tpope/vim-fugitive)。

### 用 fugitive 进行搜索、检索

顺便说一下，用 `/` 键搜索是智能和大小写敏感的，这意味着如果所有的搜索字符都是小写的，Vim 的搜索会忽略大小写。默认情况下，它会高亮显示结果，我觉得我已经敲了无数次的 `:noh`（来关闭高亮显示）。这就是为什么我有 `引导键 + S` 来切换高亮显示。我建议以后也多读读手册中关于搜索的内容。

接下来是搜索、检索。fugitive 插件已经为你提供了。使用命令 `:Ggrep pattern` 来进行 `git grep`，结果会进入 Quickfix 窗口。然后简单地使用快速修复命令（`:cn`、`:cp` 等等）浏览结果，或者简单地使用 `:CtrlPQuickfix`（`引导键 + Q`）来直观地滚动它们。CtrlP 的快速修复整合的酷炫之处是，你可以通过输入以匹配文件名或内容来进一步在搜索结果中搜索。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/quickfix.txt.html#grep) 中的 `:help grep`。
* 参见 [Vim 参考手册](https://vimhelp.org/pattern.txt.html#noh) 中的 `:help noh`。
* 参见 [vim-fugitive GitHub](https://github.com/tpope/vim-fugitive) 。

### Ctags

`引导键 + C` 可以生成一个 ctags 文件，以便更好地导航，这在处理一个新的代码库或做一个有很多跳转的较长的编码任务时很有用。ctags 支持数百种语言，而 Vim 可以利用所有这些知识来导航。后面会有更多关于如何配置它的内容。注意我已经讨论过 `引导键 + T` 来打开所有标签的模糊搜索，记得吗？这两个是非常相同的。

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/tagsrch.txt.html) 中的 `:help ctags`。
* 参见 [Universal Ctags 网站](https://ctags.io)。

### 按键映射

能够通过在项目目录下创建一个 `.vimrc` 文件来覆盖该项目中的任何设置是一个好主意。只要把它放在（全局的） `.gitignore` 中，以确保你不需要在每个项目中编辑成千上万的 `.gitignore` 文件。这样的一个项目的 `.vimrc` 可以是这样的（对于使用 GNU Makefile 的 C/C++ 项目）：

```
" coding style
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab
" include and autocomplete path
let &path.="/usr/local/include"
" function keys to build and run the project
nnoremap <F9> :wall!<cr>:make!<cr><cr>
nnoremap <F10> :!LD_LIBRARY_PATH=/usr/local/lib ./project<cr><cr>

```

正如你所看到的，我通常将 `F2` 到 `F10` 等键映射到编译、运行、测试和类似的操作。用 `F9` 来调用 `make`，听起来不错。还记得 MS-DOS 上的蓝色 Borland IDE 吗？

如前所述，在全局范围内忽略 `.vimrc` 和（由 `ctags` 生成的）`tags` 是个好主意，所以不需要每次都更新 `.gitignore`：

```
# git config --global core.excludesfile ~/.gitignore
# cat ~/.gitignore
/.vimrc
/tags
/TAGS

```

在我的个人配置中还有几条只与那些非美国键盘布局的人有关（我用捷克语）。我需要用“死键”来输入许多字符（LCTT 译注：“死键”是一种通过将变音符号与后面的字母结合起来打出重音字符的方法。这种方法在历史上被用于机械打字机），这根本不可能，我宁愿输入命令而不是按那些难以按下的组合键。这里有一个解决问题的办法：

```
" CTRL-] is hard on my keyboard layout
map <C-K> <C-]>
" CTRL-^ is hard on my keyboard layout
nnoremap <F1> :b#<cr>
nnoremap <F2> :bp<cr>
nnoremap <F3> :bn<cr>
" I hate entering Ex mode by accident
map Q <Nop>

```

延伸阅读：

* 参见 [Vim 参考手册](https://vimhelp.org/map.txt.html) 中的 `:help map`。

功能键在 Vim 中都是自由的，除了 `F1`，它被绑定在帮助上。我不需要帮助，并不是说我已经会对 Vim 了如指掌，并不是。但如果需要的话，我可以简单地输入 `:help`。而 `F1` 是一个关键的键，离 `Esc` 键如此之近。我喜欢将它用于缓冲区交换（`:b#`），将 `F2`/`F3` 用作下一个/上一个。你越是与缓冲区打交道，你就越需要这个。如果你没有使用过 `Ctrl + ^`，我建议你要习惯于它。哦，你有没有丑陋地输入 `:visual` 进入过 Ex 模式？许多初学者都不知道如何从该模式下退出 Vim。对我来说，这就是打扰，因为我很少使用它。

现在，熟悉 `ctags` 是成功使用 Vim 的一个关键因素。这个工具支持数百种语言，它不小心就为你不想创建标签的文件创建它，因此我建议忽略典型的垃圾目录：

```
# cat ~/.ctags.d/local.ctags
  --recurse=yes
  --exclude=.git
  --exclude=build/
  --exclude=.svn
  --exclude=vendor/*
  --exclude=node_modules/*
  --exclude=public/webpack/*
  --exclude=db/*
  --exclude=log/*
  --exclude=test/*
  --exclude=tests/*
  --exclude=\*.min.\*
  --exclude=\*.swp
  --exclude=\*.bak
  --exclude=\*.pyc
  --exclude=\*.class
  --exclude=\*.cache

```

### Airline 插件

我一定不能忘记 Vim 的 Airline 插件。在 Fedora 的两个插件中，这个插件很轻量级，不需要外部依赖，而且可以开箱即用我所有的字体。你可以定制它，而且还有主题之类的东西。我只是碰巧喜欢它的默认设置。

我必须提到，有两个主要的 Ctags 项目：Exuberant Ctags 和 Universal Ctags。后者是一个更现代的复刻。如果你的发行版有，就用它。如果你在 Fedora 35+ 上，你应该知道你现在用的是 Universal Ctags。

### 总结

作为总结，我的建议是这样的。尽量保持你的 Vim 配置流畅和干净。这将在未来得到回报。在我转换到新配置之后，我不得不重新学习“写入并退出”的命令，因为我总是不小心把它打成 `:Wq`，而我在旧的配置里有一个“小技巧”，让它实际上按我的意思工作。好吧，这个可能真的很有用，并能入选，我希望你能明白我的意思：

```
:command Wq wq
:command WQ wq

```

最后的一个快速技巧是：你可能需要经常改变你的默认 Vim 配置，来找到我在这里向你介绍的和你自己口味之间的舒适区。使用下面的别名，这样你就不需要一直搜索历史。相信我，当一个 Vim 用户在命令历史里搜索 “vim” 时，找不到什么是相关的内容：

```
alias vim-vimrc='vim ~/.vimrc'

```

就是这些了。也许这可以帮助你在没有大量插件的情况下在 Vim 的丰富世界遨游。“简简单单” 的 Vim 也很不错！

要尝试你刚刚读到的内容，请安装软件包并检出这些配置：

```
test -f ~/.vimrc && mv ~/.vimrc ~/.vimrc.backup
curl -s https://raw.githubusercontent.com/lzap/vim-lzap/master/.vimrc -o ~/.vimrc
mkdir ~/.vimbackup

```

特别感谢 Marc Deop 和 [Melanie Corr](https://opensource.com/users/melanie-corr) 对本文的审阅。

### 更新

我已经在这种配置下生存下来了！我唯一的纠结是 CtrlP 插件的结果顺序不同。文件的模糊算法与 `fzf.vim` 插件不同，所以我以前用各种搜索词能找到的文件现在找不到了。我最后安装了 Fedora 的 fzf 包以获得更相关的文件搜索，它附带了一个 vim 函数 `FZF`，可以绑定到引导键组合上。请看我的 [GitHub 仓库](https://github.com/lzap) 中更新后的配置文件。一路走来，我学到了很多东西。有一些键的绑定我已经忘记了，这要感谢许多插件。

这篇文章最初发表在 [作者的网站](https://lukas.zapletalovi.com/2021/11/a-sane-vim-configuration-for-fedora.html) 上，经许可后重新发表。

---

via: <https://opensource.com/article/21/12/vanilla-vim-config>

作者：[Lukáš Zapletal](https://opensource.com/users/lzap) 选题：[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/) 荣誉推出


硬核观察 #565 甲骨文发布持续更新的免费 Solaris

Summary: 更多：• 三星正在降低上万个流行应用程序的性能 • 纯商业的 Qt 5.15.3 LTS 现在开源了

Qt长期支持版本只提供给了商业用途使用，是指只有二进制提供给了商业用途，还是说连源代码一起给呢？<br />
购买Qt的商用能否获得源代码？

Solaris 不是死了吗？

2016年12月03日：甲骨文可能终止了Solaris开发 (来源：solidot.org/story?sid=50602)

2017年01月19日：甲骨文从其路线图中抹掉Solaris 12 (来源：solidot.org/story?sid=51144)

2017年09月03日：甲骨文解雇所有 Solaris 技术员工 (来源：solidot.org/story?sid=53699)

2017年09月07日：甲骨文解雇了 983 名雇员 (来源：solidot.org/story?sid=53759)

是的，11.4 是最后一个版本，但是继续有人用，这个消息看起来，还会继续给打补丁。

![](/data/attachment/album/202203/04/203237wfofo9ooud5gz9tz.jpg)

![](/data/attachment/album/202203/04/203257ffdm98yccx8ucdp9.jpg)

### 甲骨文发布持续更新的免费 Solaris

甲骨文公司在 2009 年收购 Sun 公司时，为其获得的 Solaris 操作系统创建了一个附加版本，它被称为通用构建环境（CBE），算是一种测试版的 Solaris。该公司允许免费使用 Solaris，用于测试和开发，或个人使用。它刚刚发布了 [新的 Solaris 11.4 CBE](https://blogs.oracle.com/solaris/post/announcing-the-first-oracle-solaris-114-cbe)，并采用支持库更新/微型版本的持续交付模式，而不是每隔几年就发布更大的小型版本。

>
> 老王点评：甲骨文公司想起来给 Solaris 提供持续更新了，虽然 Solaris 已经乏人问津了。
>
>
>

![](/data/attachment/album/202203/04/203315o3km9kfvkvlck6mb.jpg)

### 三星正在降低上万个流行应用程序的性能

三星有一个名为游戏优化服务的应用程序，预装在许多 Galaxy 手机上。虽然其名字表明该应用有助于提高游戏性能，但它显然被用来限制非游戏应用的性能。[一项新的发现表明](https://www.xda-developers.com/samsung-throttling-popular-android-apps/)，三星正在扼杀上万个的安卓应用的性能，包括谷歌和三星的第一方应用。值得注意的是，这个黑名单上没有基准应用程序，因而其性能可以得到自由发挥。

>
> 老王点评：手机厂商们为了你的电池续航简直“操碎了心”啊。
>
>
>

![](/data/attachment/album/202203/04/203335dayhhhaq2on2bj7h.jpg)

### 纯商业的 Qt 5.15.3 LTS 现在开源了

一年前的这个星期，Qt 5.15.3 LTS 发布了，但这个长期支持版本只提供给了商业用途使用。根据 Qt 公司的计划，Qt LTS 的小版本发布将只针对商业客户，而 Qt 5.15.3 LTS 是第一个这样做的版本，这让那些不是 Qt 商业客户的开源 Linux 桌面用户无法得到更新。今天，Qt 公司 [开源](https://www.phoronix.com/scan.php?page=news_item&px=Qt-5.15.3-Open-Source) 了 Qt 5.15.3 修改版。

>
> 老王点评：好吧，这也完全可以理解，毕竟 KDE 一直在免费使用。
>
>
>


Vim 与 nano：你应该选择哪个？

Summary: Vim 和 nano 是最流行的 CLI 文本编辑器 之二。

对我来说，如果同时预装 Vi 和 Nano，用 Nano；同时预装 Vim 和 Nano，那就用 Vim。

很多人只把 Nano 当成一个极简的记事本来用 (就像 Winows 上的 Notepad)，其实 Nano 也支持语法高亮、代码补全的。

高亮：github.com/scopatz/nanorc

补全：github.com/orsonteodoro/nano-ycmd

还有zile和mg啦, emacs的确是有点大, 但是zile和mg是一个更小的版本啦, zile有一些无伤大雅的小bug, mg会更稳定一些.<br />
mg和zile提供多重BUFFER和undo等高级功能.

Vim 和 nano 是最流行的 CLI 文本编辑器 之二。

我们需要利用文本编辑器来做笔记、写程序，或者编辑系统配置文件来完成一些事情。

不管你用来做什么，你的 Linux 发行版已经预装了文本编辑器。

你很可能会注意到一些 [最好的现代文本编辑器](https://itsfoss.com/best-modern-open-source-code-editors-for-linux/)，如 Gedit、Geany、Kate 等，它们已经预装在你的 Linux 发行版中。然而，这些都是基于 GUI 的程序。

如果你想通过终端访问文本编辑器怎么办？你应该发现它也内置在你的 Linux 发行版中了。

![](/data/attachment/album/202203/05/111304bfqgs8hr3yzh2isj.png)

Vim 和 nano 是最流行的 [CLI 文本编辑器](https://itsfoss.com/command-line-text-editors-linux/) 之二。

但是，是什么让它们如此受欢迎？你应该选择哪个作为你的文本编辑器？让我指出一下 Vim 和 nano 的区别，以帮助你决定。

### 1、基于终端的编辑器介绍

nano 和 Vim 都提供了大部分的基本功能。虽然 nano 在大多数 Linux 发行版上是内置的，但你必须手动安装 Vim。

为了比较这两者，让我给你简单介绍一下这两者。

#### Vim

![](/data/attachment/album/202203/05/111304t2duy5zu59ymawjn.jpg)

Vim 是 “Vi” 文本编辑器的改进版，开发于 1991 年。Vim 是 “<ruby> Vi 改进版 <rt>  Vi IMproved </rt></ruby>” 的意思。

Vi 是一个基于终端的文本编辑器，最初于 1976 年为 Unix 操作系统而开发。Vim 是它的一个具有现代功能的增强版。

考虑到它的各种功能可以帮助编辑程序文件，它也被称为“程序员的文本编辑器”。虽然它提供了一些高级功能，但你也可以用来编辑纯文本文件。

#### GNU nano

![](/data/attachment/album/202203/05/111305hwp9m2dr3w39fcxw.jpg)

GNU nano（我们在文章中称它为 “nano”）是一个简单的基于终端的文本编辑器，其灵感来自于 Pico —— 这个基于 Unix 的文本编辑器是华盛顿大学 1989 年开发的 Pine 电子邮件套件的一部分。

Pico 文本编辑器没有 GPL（许可证），这使得它很难被纳入 Linux 发行版。

因此，nano 被开发出来作为它的自由软件替代品。nano 编辑器最初被称为 “tip”，然后在 Richard Stallman 宣布它成为正式的 GNU 程序之前重新命名为 nano。

这个编辑器的亮点是它的易用性和极小的学习曲线。你不一定需要成为程序员才能使用 nano。

### 2、功能差异

下面是 Vim 和 nano 的主要功能差异：

#### Vim 的主要特点

* 多级撤销
* 语法高亮
* 命令行编辑
* 文件名补完
* 多窗口和缓冲区
* 折叠
* 会话
* 支持宏

#### nano 的主要特点

* 打开多个文件
* 逐行滚动
* 撤销/重做
* 语法着色
* 行号

请注意，一般来说，Vim 提供了更高级的功能。然而，它们都提供了编辑系统配置文件、编程和文本编辑等基本功能。

### 3、用作文本编辑器

在 Vim 或 nano 中打开一个文件很简单，只要输入你想使用的编辑器的名字，然后再输入文件的路径。路径可以是文件的绝对路径，也可以是文件的相对路径。

```
vim Documents/text.txt

```

```
nano Documents/text.txt

```

但是，除了用作文本编辑器访问或打开一个文件之外，还有很多功能，对吗？

如果你想快速比较一下，这里有一些基于我的使用情况的比较点：

Vim：

* 模式驱动的编辑器
* 在开始时有巨大的学习曲线
* 会话恢复
* 语法高亮/着色
* 提供高级功能

nano：

* 易于使用（经常使用的功能及其组合键列在底部）
* 不存在学习曲线
* 旨在进行快速编辑

nano 和 Vim 的主要区别在于，它们的目标受众非常不同。

#### Vim

Vim 是一个模式驱动的编辑器。这意味着字母、数字和标点符号键在按下时都要做一件独特的事情，而不是在屏幕上打出一个字符。

这些模式包括：

* 正常模式
* 视觉模式
* 插入模式
* 命令行命令
* 命令行编辑

默认情况下，当你启动 Vim 时，它以 **正常** 模式打开。每个键都有其独特的功能，不会立即开始输入所按下的字符。

不管什么模式，如果你愿意，你也可以 [把 Vim 配置成一个写作工具](https://news.itsfoss.com/configuring-vim-writing/)。

要知道更多关于这些有趣的事情，你可以参考我们关于 [基本 Vim 命令](https://linuxhandbook.com/basic-vim-commands/) 以及 [Vim 技巧和窍门](https://itsfoss.com/pro-vim-tips/) 的文章。

![当你启动 Vim（无参数）时的终端屏幕](/data/attachment/album/202203/05/111305t2ifsba9zxx1ai5s.jpg)

在正常模式下，按特定的键会移动你的光标。

例如，如果你按下 `l`（小写字母 L），它将把光标向右移动一个字符，按 `h` 键将把光标向左移动一个字符。

如果你想把光标向下移动一行，你就按 `j` 键，如果要把光标向上移动一行，你应该按 `k` 键。

在正常模式下 `l`、`k`、`j`、`h` 是导航键。虽然你可以用方向键来移动，但这样做更有效率。

这些是 Vim 中的基本导航键。

接下来最常用的键是 `w`、`b`、`e`：

* 按 `w` 键可将光标移到下一个词。如果它已经在一个词的开头，它就会移动到下一个词的开头。
* 按 `b` 键，光标会移到左边的词的开头。
* 而 `e` 键，则将光标移到右边的词的末尾。

你甚至可以用这些键混合数字（作为前缀）。例如，按 `6w` 可以将光标向前（向右）移动六个词。

如果你想进入一个模式，你必须按类似的组合键：

* `i` 为插入模式
* `CTRL+C` 回到正常模式
* `:wq` 写入文件并关闭窗口。

最后，我们已经 [列出了退出 Vim 的多种方法](https://itsfoss.com/how-to-exit-vim/)，如果你想了解一下的话。

这只是冰山一角。要学习更多关于 Vim 的知识，你可以使用`vimtutor` 命令，它可以给你提供大多数基本命令的信息，如删除、编辑、保存文件等。

![](/data/attachment/album/202203/05/111305h85pa2gc552565ki.png)

#### GNU nano

nano 有一个基本的交互界面，在窗口的底部给你提供关键信息。

要想有个初步的了解，你可以参考我们的 [nano 编辑器指南](https://itsfoss.com/nano-editor-guide/)。

![Terminal screen when you launch nano without argumentswithoutarguments] [13](https://i0.wp.com/itsfoss.com/wp-content/uploads/2022/01/03_nano_interface.webp?resize=800%2C430&ssl=1)

你不需要参考手册页或任何文档来执行基本操作。这就是为什么与 Vim 相比，nano 被认为是用户友好的。

尽管如此，nano 中使用的一些术语仍然是“旧术语”，一个例子是 “<ruby> 写出 <rt>  Write Out </rt></ruby>”、“<ruby> 在哪里 <rt>  Where Is </rt></ruby>”短语，而不是分别用“<ruby> 保存 <rt>  Save </rt></ruby>”和“<ruby> 查找 <rt>  Find </rt></ruby>”。

但是，这并不是什么大问题。

虽然很容易习惯，但它与使用记事本或 Gedit（GUI 程序）并不完全相同。

例如，在大多数现代编辑器中，执行剪切操作的组合键通常是 `Ctrl + X`，但在 nano 中，它是 `Ctrl + K`。

符号 `^` 是用来表示将 `Ctrl` 键作为修饰键使用，并与旁边的键组合使用。

你还可以找到像 `Ctrl + F`（将光标向前移动）、`Ctrl + B`（将光标向后移动）这样的组合键。一些快捷键包括：

* `Ctrl + X` 退出
* `Ctrl + O` 写入（或保存为）
* `Alt + U` 撤销上一个动作
* `Ctrl + ←` 向后退一个字
* `Ctrl + →` 向前进一个字

你可以看看 [GNU nano 的官方速查表](https://www.nano-editor.org/dist/latest/cheatsheet.html) 来学习更多的快捷键。

总的来说，nano 是一个更适合初学者的编辑器，当你只想偶尔编辑一个文件时，它可以简单地让你完成。

### 4、学习曲线

考虑到上面的所有信息，你一定已经意识到 Vim 与你所习惯的传统文本编辑器不同。

这是真的，这就是为什么 Vim 在学习的初始阶段会显得很艰难。

然而，对于高级用户来说，使用宏、自动补完等高级能力很重要，可以节省时间。

因此，如果你是一个程序员，或者碰巧经常编辑许多文件，Vim 的学习曲线可能是富有成效的。

另一方面，nano 提供了极小的学习曲线，而且感觉比基于图形用户界面的文本编辑器如 Gedit 或 Notepad 更让你熟悉。

### 哪个是最适合你的？

Vim 和 nano 都是合格的基于终端的文本编辑器。但是，当涉及到你如何与上述编辑器互动和使用时，它们有很大的不同。

Vim 很灵活，可以适应各种工作流程，前提是你已经习惯了它的工作方式。

相比之下，nano 工作起来很简单，可以帮助你编辑任何你想要的东西。

如果你还不确定，我建议先开始使用 nano。而且，如果你认为你需要更快地完成工作，并且想要更多的功能，那么就换成 Vim。

### 常见的问题

继续，让我来谈谈几个问题，这将有助于你获得一个良好的开端。

**Vim 比 nano 好吗？**

从技术上讲，是的。但是，如果你不需要它提供的所有功能，使用起来可能会感到力不从心。

**程序员是否使用 Vim？**

系统管理员和程序员喜欢 Vim 的高级功能。所以，是的，他们倾向于使用它。

**nano 是否更受欢迎？**

可以说是的。nano 是一个基于终端的编辑器，被大多数用户使用。此外，它还内置在大多数 Linux 发行版中。

因此，它在用户中普遍受欢迎，而 Vim 仍然是一个为特定人群服务的编辑器。

---

via: <https://itsfoss.com/vim-vs-nano/>

作者：[Pratham Patel](https://itsfoss.com/author/pratham/) 选题：[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/) 荣誉推出


用 Juk 在 Linux 上听你喜欢的音乐

Summary: Juk 是 Linux 上的 KDE Plasma 桌面的默认开源音乐播放器。

它是多么幸运啊，成为 KDE Plasma 桌面上的默认播放器。

真挺好的，用了一段时间了，简洁，优雅，占用低。就是我的歌词显示有点问题无法显示

>
> Juk 是 Linux 上的 KDE Plasma 桌面的默认开源音乐播放器。
>
>
>

![](/data/attachment/album/202203/05/180154hu1nse2p2crv5q1r.jpg "Headphones on a yellow backdrop")

KDE 项目不只是提供了一个著名的桌面，它还产生了很多软件，从 [视频编辑](https://opensource.com/article/21/12/kdenlive-linux-creative-app)、[摄影](https://opensource.com/life/16/5/how-use-digikam-photo-management) 和 [插图](https://opensource.com/article/21/12/krita-digital-paint) 工具，到图形计算器、电子邮件和办公工作。这些都是生产力工具，但 KDE 也适合于放松。它有游戏和媒体播放器，而我使用的音乐播放器是 [Juk](https://juk.kde.org/)。

### 在 Linux 上安装 Juk

只要你的 Linux 发行版提供 KDE 软件包，你就可以用你的包管理器安装 Juk。

在 Fedora、Mageia 和类似发行版上：

```
$ sudo dnf install juk

```

在 Elementary、Linux Mint 和其他基于 Debian 的发行版上：

```
$ sudo apt install juk

```

### 使用 Juk

当你第一次启动 Juk 时，你会被问到你想用什么目录作为你的音乐集的来源。选择你希望 Juk 寻找音乐的文件夹，并可选择排除你希望 Juk 忽略的任何子目录。

![Adding music to Juk](/data/attachment/album/202203/05/180227s2itzsltsti6d3sk.jpg "Adding music to Juk")

取决于你有多少音乐，Juk 可能需要一些时间来解析文件系统和元数据。当它完成后，通常的 Juk 窗口就会出现，你所有的音乐都在一个叫做“<ruby> 收藏列表 <rt>  Collection List </rt></ruby>”的中央收藏列表中。

![Juk music player](/data/attachment/album/202203/05/180227vqu4xk024m04m5ij.jpg "Juk music player")

在顶部的搜索栏中，你可以在任何领域搜索任何字符串。双击歌曲，开始播放。

Juk 默认为连续播放，这意味着在它播放完你的选择后，它会继续播放收藏列表中的下一首歌曲，即使你已经将你的列表过滤到只有一首歌曲。这使音乐总是会不断播放，就像一个真正的点唱机。

就我个人而言，我更喜欢听完整的专辑，中间有足够的休息时间去厨房喝咖啡，所以我使用播放列表。

### Juk 中的播放列表

Juk 中的播放列表可以包含你收藏列表中的任何内容。Juk 会在播放列表中播放一次，然后停止。

要创建一个播放列表，在左边的播放列表栏中点击右键，在出现的上下文菜单中选择 “<ruby> 新建 <rt>  New </rt></ruby>”。你可以创建一个空的播放列表，或者从你硬盘上的特定文件夹中创建一个播放列表。

![Creating a new playlist](/data/attachment/album/202203/05/180227skqkynnn80k08yfo.jpg "Creating a new playlist")

### 自动播放列表

你还可以创建一个与特定搜索绑定的特殊播放列表，这对那些你经常购买并添加到你的收藏中的艺术家很有用。有了搜索播放列表，他们的新音乐就会被添加到他们的播放列表中，而无需你的手动干预。

### 打标签

让我们面对现实吧，音乐播放器是一堆一堆的出现，而且它们大多都做同样的事情。然而，Juk 增加了一个重要的功能。它让你有能力修改元数据标签。

![Metadata editor](/data/attachment/album/202203/05/180228lnd37ds013xau035.png "Metadata editor")

很多音乐的标签是不一致的、不完整的，或者根本就没有，所以当你发现它们出现在播放队列中时，能够纠正它们是一种奢侈。

它还有一个标签猜测器的功能，它试图解析文件名，并对歌曲进行相应的标记。

### 明显的选择

当你在 KDE 上寻找一个音乐播放器时，Juk 是一个简单而明显的选择。当然，还有很多其他非常好的选择，正如我们的常驻发烧友 [Chris Hermansen](https://opensource.com/users/clhermansen) 在他的 [3 个开源音乐播放器](https://opensource.com/article/17/1/open-source-music-players) 文章中详细介绍的那样，但有时你只是想使用你最容易想到的东西。Juk 既能直观地使用，又能出色地完成它的任务。它是多么幸运啊，成为 KDE Plasma 桌面上的默认播放器。

---

via: <https://opensource.com/article/22/2/listen-music-linux-juk-kde>

作者：[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/) 荣誉推出


硬核观察 #566 RISC-V 走向成功的原因

Summary: 更多：• 主要浏览器厂商共同建立了浏览器兼容性标准 • 《第二人生》开始对游戏中的购买行为收税

RISC-V 社区成员认为成功的原因是免费和自由……这……<br />
难道前面列举的OpenRISC不免费不自由？

一直用 Chromium，没有 Mac，Safari 没用过。

Firefox 倒是很想支持它，可是一大堆网站渲染出来，样式多多少少和 Chromium 上有些不一样，看着怪怪的。

看到 RISC-V 就想起了瑞士……中立……呵呵

有道理

![](/data/attachment/album/202203/05/202520urp5cedp5iiiberd.jpg)

![](/data/attachment/album/202203/05/202512dhr8992h888x8fh2.jpg)

### RISC-V 走向成功的原因

RISC-V 不是第一款开源指令集的处理器，在它之前有 OpenPOWER、OpenSPARC、OpenRISC 等等，但 RISC-V 在短时间内就取得了令竞争对手 [难以匹敌的成功](https://semiengineering.com/why-risc-v-is-succeeding/)。RISC-V 社区成员认为成功的原因是免费和自由，一些人想要能免费使用的核心，另一些人则想要自由定制核心。RISC-V 是第一种开放可定制的指令集，对自定义扩展的支持给予芯片设计师巨大的自由度。相比 ARM，它促进了竞争，你只能从 ARM 获得 ARM 核心，但你可以从不同供应商获得不同的 RISC-V 核心实现。

>
> 老王点评：RISC-V 就是 CPU 界的 Linux，总有一天，它会复制 Linux 的成功。
>
>
>

![](/data/attachment/album/202203/05/202530q27zh5x8ooo15geh.jpg)

### 主要浏览器厂商共同建立了浏览器兼容性标准

有史以来第一次，所有主要的浏览器供应商坐到了一起，苹果、谷歌、微软和 Mozilla 等合作建立了一个名为 Interop 2022 的基准，以解决浏览器兼容性问题。该基准主要是面向设计的，衡量主要浏览器在 15 个 Web 平台规范的测试套件中的表现。现有浏览器的稳定版本，[情况看起来都相当糟糕](https://wpt.fyi/interop-2022)。Chrome 和 Edge 得分 61 分；Firefox 得分 69分；Safari 得分 50 分。而它们的测试版本的表现要好一些。

>
> 老王点评：虽然现在浏览器兼容性问题看起来没那么令人苦恼，但是我没想到各个主要浏览器的兼容性得分会这么低。
>
>
>

![](/data/attachment/album/202203/05/202546xqbv7btav1g6naua.jpg)

### 《第二人生》开始对游戏中的购买行为收税

《第二人生》是一个历史悠久的在线虚拟空间，吸引着近百万的月度活跃用户，自 2003 年推出以来，它 [首次宣布](https://arstechnica.com/gaming/2022/03/even-in-the-metaverse-you-cant-escape-the-taxman/) 将对游戏中的购买行为收取美国用户的当地销售税。从 3 月 31 日开始，《第二人生》的用户将被要求缴纳订阅费和土地费等经常性账单的地方税。它将继续减免一次性购买产生的税款，如改名和购买游戏中的货币，但这些费用将在“未来的某个时候”转嫁给用户。

>
> 老王点评：这才叫现实走入虚拟世界，看来以后的元宇宙也免不了税务官。
>
>
>

### 回音

* [三星表示](https://9to5google.com/2022/03/04/samsung-gos-update-coming-throttling/)，它正在努力“尽快”发布一个软件更新，允许用户通过游戏启动器来切换性能降低的开关，以解决 Galaxy 手机的 [应用降速](/article-14327-1.html) 的投诉。


在 Linux 手机上测试了新的 Maui Shell 后我发现……

真希望有一天也能在手机上自由的安装各种 Linux 系统，换成喜爱的桌面。<br />
再运行 neofetch、截图、晒图、锁屏，美滋滋。

>
> 我在 PinePhone 上测试了 Maui Shell，结果有好有坏。如果你想冒险尝鲜一下，可以按照这个说明进行试验！
>
>
>

![](/data/attachment/album/202203/06/095020dcqx046q62x70v6x.png)

就在一个多月前，我们写了 [Maui Shell 初窥](/article-14136-1.html)。它是由 Nitrux Linux 团队开发的，我对它流畅的视觉效果，特别是它的融合功能印象深刻。

同时，我结束了 [我一年的 PinePhone 日用实验](/article-14235-1.html)，这意味着它可以再次自由地进行实验。结果，我很快就自己安装了 Maui Shell，花了不少时间来测试它。

下面是我的发现！

### 关于 Maui Shell 开发状态的简短说明

在我们开始之前，我想指出，Maui Shell 仍处于早期开发阶段。因此，我一般不会提到我注意到的 bug，而是将重点放在它的更基本的方面。

不过，对于更大的、更耗时的问题例外，所以请记住这一点。

说完了这些，让我们开始测试吧！

### 手机上的 Maui Shell

![](/data/attachment/album/202203/06/095021icc606ajm6vjm59g.jpg)

安装完之后，我就看到了 Maui Shell 的（现在熟悉的）桌面上。随即，非常明显的是，它的缩放比例完全错误，这使得它很难使用。

幸运的是，Maui 项目的 Telegram 群组的人提供了极大帮助，我没用了一个小时就成功地修复了缩放比例（感谢 @wachidadinugroho）。

现在好了，我开始测试。

#### 其性能堪比糖浆流动

如果你读过我的 PinePhone 点评，你可能记得把它的性能比作糖蜜滴落的速度。不幸的是，Maui Shell 将这一点提升到了一个全新的高度。即使是最基本的互动，如打开快速控制菜单，也要花上五秒钟的时间！

不幸的是，我的水平还不足以判断这种缓慢的原因，但它很有可能是由软件渲染造成的。如果你不清楚，“软件渲染”是指图形不在 GPU 上渲染，而是在效率和优化程度都更低的 CPU 上（利用软件来）渲染。

我考虑的另一个可能的罪魁祸首是糟糕的优化（毕竟它还处在早期阶段）。如果是这样的话，那么在未来的几个月里，极有可能在为 Maui Shell 的第一个稳定版本做准备的过程中修复这个问题。

然而，正如我之前所说的，对我的早期看法要多加注意。

#### 有望实现的用户体验

![](/data/attachment/album/202203/06/095022vialsslewgwsarnq.jpg)

与几乎所有的移动 UI 一样，Maui Shell 在触摸屏上使用起来简单而直观。然而，它也结合了许多桌面元素，这对提高用户体验有很大的作用。

例如，从屏幕顶部向下滑动会出现一个快速设置菜单，类似于在安卓和 iOS 上发现的那些。

然而，可以单独点击顶部通知栏的不同部分，会只显示相关的设置，类似于许多桌面环境面板和任务栏上的各种小程序。

现在，让我们前往 **窗口管理**。

对于窗口管理，Maui Shell 团队显然从 GNOME 和 iOS 中获得了一些灵感，从屏幕底部向上滑动会显示一个类似 GNOME 的所有运行中的应用程序的概览。我发现这非常直观和简单，老实说，我很惊讶以前没有这样操作过！

最后，托盘也是 Maui Shell 在手机上的一个重要方面。它在默认情况下自动隐藏，可以通过从屏幕底部向上轻扫来访问。从这里，它显示了所有正在运行的应用程序的图标，以及一个打开应用程序启动器的按钮。

说到应用启动器，它与 iOS 14 及更高版本中的应用库非常相似。每个应用都被分类，只需轻点几下就能轻松找到并启动。

总的来说，其实用性有点独特，而且值得探究。而且，这种特性也延伸到了应用程序，它们是用 Mauikit 和 Kirigami 制作的。

我认为 Maui Shell 团队把基本的东西做得很完美。

#### 应用程序超棒

![](/data/attachment/album/202203/06/095023rbiex9c7rojyrrlj.png)

任何用 Mauikit 构建的东西都能与 Maui Shell 完美整合。到目前为止，最大的 Mauikit 应用程序集来自 Maui Shell 的开发方 Maui 项目。其中一些包括：

* Index
* Nota
* Station
* VVave
* Pix
* Clip
* Buho
* Shelf
* Communicator

所有这些应用都能在移动和桌面设备上完美运行，并将桌面级应用带到手机上。我对 [Index](https://mauikit.org/apps/index/) 特别满意，它是一个有趣而实用的手机文件管理器。

![Maui Index app](/data/attachment/album/202203/06/095025tw596bk9rkwrrrtq.png)

除了 Mauikit 应用外，Kirigami 应用也很好用。因此，在桌面和移动设备上都有一个非常适合 Maui Shell 的庞大的应用程序库。

### 其他观点

除了这些观察之外，还有一些小问题我想提一下：

* 不幸的是，现在似乎还没有虚拟键盘。我通过使用 USB-C 连接的键盘来规避这个问题，但这并不意味着不能把它作为手机使用。
* 我还发现了几个缩放的问题，我无法解决这些问题。这些问题包括应用程序的缩放比例远远超过 Maui Shell 本身，以及根本没有缩放比例。这也许是由于我的错误造成的，但我觉得不能指望一般的用户能够钻研晦涩的 Qt 专用环境变量。

### 自己测试 Maui Shell

如果所有这些问题都不影响你，那么你可以使用下面的说明在 PinePhone 上测试 Maui Shell。需要注意的是，这些都是针对 PinePhone 的，但也可以根据其他需要进行修改：

* 下载 [Arch Linux ARM](https://github.com/dreemurrs-embedded/Pine64-Arch/releases) 并刷入到 SD 卡上
* 用 SD 卡启动，并连接一个外部键盘
* 使用凭证 `alarm`/`123456` 登录
* 现在使用 `nmtui` 连接到 Wi-Fi，并使用 `sudo pacman -Syu` 更新软件包列表
* 运行以下命令（这些命令将需要很长的时间来运行）：

```
sudo pacman -S base-devel
git clone https://aur.archlinux.org/packages/maui-shell-git
git clone https://aur.archlinux.org/packages/mauikit-git
cd mauikit-git
makepkg -Asi
cd ..
cd maui-shell-git
makepkg -Asi

```
* 使用 [nano](https://news.itsfoss.com/gnu-nano-6-0-released/) 创建一个启动脚本：

```
cd
nano start.sh

```

输入如下内容：

```
#!/bin/sh

# in case it's not detected
# or you wish to override
#
# export QT_QPA_EGLFS_PHYSICAL_WIDTH=480
# export QT_QPA_EGLFS_PHYSICAL_HEIGHT=270

export QT_QPA_PLATFORM=eglfs
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=2
cask -r -plugin libinput

```
* 使脚本可执行：`chmod +x start.sh`。

现在，可以用 `./start.sh` 启动 Maui Shell 了。

就这样！

你对 Maui Shell 有什么看法？你认为它的融合功能有用吗？请在下面的评论中告诉我们！

---

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

作者：[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/) 荣誉推出


如何在 KDE Plasma 桌面进行屏幕共享

不得不说，GNOME/KDE 的软件是真的全,啥样的软件都有。

很多需求/操作可以让用户不用跳出 GNOME/KDE，保证了一致的操作体验。

不足的是数量虽然多，但优质的软件很少。

>
> krfb 和 krdc 的组合是使远程 Linux 支持变得无挫折感的宝贵工具。
>
>
>

![](/data/attachment/album/202203/06/102407oi1sz113151dd5bw.jpg "Person using a laptop")

如果你曾经做过专业的或出于家庭义务的远程支持，在待命支持时，解决问题只是第二步，更重要的是可见用户屏幕上的实际内容。有多少次你描述了复杂的桌面任务，后来才发现你的用户甚至还没有打开他们的电脑？支持是重要的，但挫折感是真实的，对于需要支持的人和慷慨地试图提供支持的人来说，这都是一种共同的经历。我相信，作为学习新技能的一种方式，人们自己执行任务是很重要的，但也有一种说法是观察专家应该如何做。这就是屏幕共享的作用，KDE Plasma 桌面已经内置了它。

### 网络安全

Plasma 桌面使用点对点的邀请模式进行屏幕共享。用户启动一个应用，启动一个虚拟网络连接（VNC）服务器，这时，支持人员就可以远程查看甚至控制计算机。如果这听起来像是潜在的不安全，那是因为它可能就是，但有防火墙的干预。如果你是一个与你不在同一网络上的人的支持人员，那么你必须在屏幕共享工作之前建立一个从你的网络到你的用户的网络的安全通道。理想情况下，你会在紧急情况发生前完成这项工作。

1. [配置用户的路由器](https://opensource.com/article/20/9/firewall)，将 VNC 端口（默认为 5900，但你可以使用任何你喜欢的端口）路由到他们的计算机。
2. [在用户的本地防火墙中打开一个服务](https://opensource.com/article/19/7/make-linux-stronger-firewalls)，允许 VNC 流量（在你在第一步中指定的端口）。

### 远程邀请

为了启动屏幕共享会话，用户必须启动 **krfb**（表示 “KDE remote frame buffer”）应用。这将启动一个 VNC 服务器，并创建一个临时密码。

![krfb](/data/attachment/album/202203/06/102415ksljos1myoyzofmr.jpg "krfb")

**krfb** 使用的默认端口是 5900，但如果你需要，可以在 **krfb** 设置中改变。不过，这可能是你想提前做的事情，这样你就可以避免向你的用户解释如何改变协议的端口。

### 查看和控制

当这个窗口打开时，你可以使用你喜欢的 VNC 客户端通过 VNC 登录。KDE 有 **krdc**（表示 “KDE remote desktop client”）应用。在支持的计算机上，启动它并向它提供目标 IP 地址。当你被提示输入密码时，输入你正在连接的 **krfb** 会话中显示的密码。

![Screen sharing with krdc](/data/attachment/album/202203/06/102416bbpygc8g4bz0oglx.jpg "Screen sharing with krdc")

连接上后，你就可以看到你用户的屏幕，你可以在他们遵循你的指示时引导他们。如果他们在遵循你的指示方面有困难，那么你可以控制他们的鼠标，并演示如何做某事。默认情况下，**krfb**（即他们正在运行的应用）在将控制权交给你之前会征求他们的同意。

### 帮助进行中

能够看到你的用户所看到的东西可以加速故障排除，减少支持电话双方的挫折感。只要你事先为你的支持设置好网络，**krfb** 和 **krdc** 的组合对于指导新用户完成 Linux 桌面发现之旅的 Linux 专业人士来说是很有价值的工具。

---

via: <https://opensource.com/article/22/2/screen-share-linux-kde>

作者：[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/) 荣誉推出


硬核观察 #567 树莓派不考虑采用 RISC-V 核心

Summary: 更多：• Linux 基金会发布“第二次普查”报告 • 超过一半的安全漏洞已经存在五年以上了

产业链生态不成熟，只会更贵。树莓派为什么要用?

这几天，树莓派的价格炒得太离谱了。

树莓派 和 arm 都是 英国公司，应该有什么肮脏的py交易把

![](/data/attachment/album/202203/06/173001ngbf32vpfro6prp8.jpg)

![](/data/attachment/album/202203/06/173010ok878kj2dfq2ywdw.jpg)

### 树莓派不考虑采用 RISC-V 核心

树莓派上市于 2012 年 2 月 29 日，已经上市十年了，到目前为止已经生产了大约 4600 万台树莓派。树莓派的负责人在 [接受采访时表示](https://www.theregister.com/2022/02/28/pi_at_10/)，RISC-V 并不在计划之内，甚至下一代树莓派也不会考虑。即便他也承认 RISC-V 核心和树莓派 4 的 ARM 核心一样好，但在 2030 年之前，RISC-V 树莓派的可能性或许只有 10%。

>
> 老王点评：树莓派在硬件上从来不是自由的，虽然用的是 Linux 操作系统。
>
>
>

![](/data/attachment/album/202203/06/173037tdc4dmq2bftudry4.jpg)

### Linux 基金会发布“第二次普查”报告

Linux 基金会与合作方联合进行了自由开源软件库的“<ruby> 第二次普查 <rt>  Census II </rt></ruby>”。这是 2015 年进行的“第一次普查”的后继报告，“第一次普查”目的是确定 Debian Linux 中对内核的运行和安全最关键的软件包。“[第二次普查](https://www.linuxfoundation.org/tools/census-ii-of-free-and-open-source-software--application-libraries/)”是为了更全面了解自由开源软件采用情况。该报告汇总了来自数千家公司生产应用中使用的 50 多万个自由开源软件库的数据。调查的重要发现之一是，许多最广泛使用的自由开源软件是由少数几个贡献者开发的。

>
> 老王点评：也就是说现在的自由开源软件生态的基础还是很不稳定。
>
>
>

![](/data/attachment/album/202203/06/173054wx7ldh99jhpzu9qj.jpg)

### 超过一半的安全漏洞已经存在五年以上了

安全研究人员的 [分析表明](https://www.zdnet.com/article/these-old-security-vulnerabilities-are-creating-new-opportunities-for-hackers/)，企业网络中存在的 61% 的安全漏洞是 2016 年甚至更早的，尽管补丁已经出现了至少五年。甚至一些继续被利用来入侵网络的漏洞已经超过十年了。困扰企业的最常见的未修补漏洞之一是 CVE-2017-11882，这是微软 Office（包括 Office 365）中的一个老的内存损坏问题，该问题在 2017 年被发现并修补，但自 2000 年以来一直存在。它是 Windows 上最活跃的漏洞之一，而该漏洞几乎不需要用户的交互，这为钓鱼活动创造了条件。

>
> 老王点评：相比互联网，企业网络的安全其实很脆弱。
>
>
>

### 回音

* 之前我们 [报道](/article-14321-1.html) 过，勒索团伙要求在本周五之前，英伟达“开源”其所有显卡驱动，否则将公开更多技术资料。而现在最后期限已经过了，吃瓜群众们还在等黑客兑现威胁，或英伟达“开源”驱动程序，但目前双方都没有动静。不过勒索团伙用偷来的英伟达证书 [签署了两个恶意软件](https://www.bleepingcomputer.com/news/security/malware-now-using-stolen-nvidia-code-signing-certificates/)。


为什么每个人都可以试试 Linux

Summary: 如果你对 Linux 有着充满好奇，那开源社区可以让你轻松上手 Linux。

Elementary ?和大牌搭边吗?

广义来说，全球几乎每个人都在用 Linux 系统。

+ 搭载 Android 系统的手机

+ 很多智能电视、电视盒子也用的 Android 系统

狭义来说，就是 Linux 桌面系统没啥人用，才一天天 "每个人都应该试试 Linux"、"使用 Linux 的 XX 个理由"。

你看，就没有这么说 Windows 的。

还有些汽车的车机也是 Android 系统。

fedora 5 年用户在此

这必须得承认，Linux 桌面仅仅个位数的占有率~~

你说的对

你说的对

你说的对

如果你对 Linux 有着充满好奇，那开源社区可以让你轻松上手 Linux。

>
> 如果你对 Linux 有着充满好奇，那开源社区可以让你轻松上手 Linux。
>
>
>

![](/data/attachment/album/202203/07/091531g2rex2ne073xeler.jpg "Woman sitting in front of her computer")

*开源朗读者 | 若愚*

如今，人们有更多的理由喜欢 Linux。在这里，我会分享使用 Linux 的 21 个不同的理由。我们来讨论讨论，为什么每个人都可以尝试一下 Linux。

Linux 对外行人来说，好像是一个神秘的东西。每当人们说起 Linux，就觉得它是计算机管理员或者系统管理员使用的，但也在讨论在笔记本电脑和手机上使用 Linux。技术网站上列出了 [你需要知道](https://opensource.com/article/19/12/linux-commands) 的 [十大 Linux 命令](https://opensource.com/article/18/4/10-commands-new-linux-users)，但也有很多人在讨论 [Linux 桌面（不止一个）是多么令人激动](https://opensource.com/article/20/5/linux-desktops)。

那么， Linux 到底是干嘛的呢？

Linux 对可用性的支持是它众多重要特性之一。如果你对 Linux 有着充满好奇，那开源社区可以让你轻松上手 Linux。

### 先尝试 Linux 应用

无论是从 Windows 换到 Linux、还是在 Windows 和 Mac 之间横跳，亦或是从 Mac 换到 Linux，要想改变一个人的计算机操作系统的使用习惯是一件很难的事。虽然这件事很少会去讨论，不过现在的电脑是一个比较个性化的东西，每个人都习惯于自己电脑当前的使用习惯，他们往往不愿意去做太大的变化。对我来说，就算在工作电脑跟个人电脑中来回切换（两者都运行相同的操作系统），也需要我调整我的心理和肌肉习惯，仅仅是因为两个电脑针对不同的活动场景进行了优化。尽管我被附近的人称为“很了解计算机的家伙”（，我也这么认为）。但如果我不得不更换我常用的操作系统，我会觉得自己的生产力跟舒适感将在一两周内直线下降。不过这还是比较表层的，虽然我知道怎么用其他的操作系统，但是我需要时间去形成新的直觉跟习惯，需要记住在新系统中，一些不起眼的配置选项的位置，还得知道要怎么使用新的功能。

出于这个原因，我经常告诉那些对 Linux 感到新奇的人，学习 Linux 的第一步就是要去使用 Linux 的应用。实际上，Linux 上专用的应用程序不多，主要是因为 Linux 的大多数应用程序是开源的，因此热衷于在所有平台之间移植。在 Linux 上的很多应用程序，可以在你目前的非 Linux 的平台上去尝试。把替换你默认的应用程序作为一个目标，不管是出于习惯还是方便，都要用开源的等价物。

### 应用替换

这个练习的目的是通过你最终要运行的应用软件，来实现向 Linux 的软过渡。一旦你习惯了一套新的应用程序，那么在 Linux 系统上，除了系统设置和文件管理外，就没有其他什么要适应的了。

如果你还不确定哪个是自己常用的应用，只需看看你的最近使用的应用程序列表（如果你的系统上没有最近使用应用的列表，那还等啥，赶紧换成 Linux 系统吧）。一旦你确定了必须使用的应用程序，可以看看我们的 [应用替代方案](https://opensource.com/alternatives) 页面，了解许多被视为与流行的专有应用程序等效的常用开源应用程序。

### 获取 Linux

不是所有的开源软件都能移植到其他平台，并从在 Linux 上运行而受益。如果你想最终切换到 Linux，那就得完成这个过渡。幸运的是，要安装 Linux 就像下载它一样简单，几乎就像是另一个开源程序一样。

通常，Linux 的安装镜像提供了实时模式跟安装模式两种模式，这意味着你可以从 Linux 介质启动，并且在实时模式下运行使用，而无需将系统安装到计算机。这是了解操作系统的好方法，但因为只是一种临时体验，所以启动后不会保留数据。但是，有些发行版，如 [Porteus Linux](http://porteus.org)，是专门为在 USB 上运行而设计的，这样你的个人数据就能保存。我在钥匙串上挂了一个 Porteus 的 U 盘，所以我无论在哪里，我都有一个可以启动的Linux 系统。

![Porteus Live Linux 发行版本](/data/attachment/album/202203/07/091535t440k36c3044hnia.png)

### “最好的” Linux

一旦你决定开始安装 Linux 系统，你会发现有很多 Linux 发行版都是免费的。如果你之前用的操作系统版本只有一两个选择（例如，家庭版或商业版），那么你会对 Linux 操作系统有这么多发行版感到困惑。不过，实际情况没这么复杂。Linux 就是 Linux，它的下载和安装的不同“流派”没有什么太大的不同。像 [Fedora](http://getfedora.org)、 [Debian](http://debian.org)、[Linux Mint](http://linuxmint.com) 和 [Elementary](http://elementary.io) 这些大牌的系统厂商都提供了同样的体验，只是在重点略有不同。

* Fedora 以软件更新迭代快而出名
* Linux Mint 可以轻松安装缺失的驱动程序
* Debian 因能提供长期的支持而受欢迎，因而更新是相对缓慢，但是可靠性很高
* Elementary 提供了精美的桌面体验和几个定制的特殊应用程序

总而言之，所谓最好的“Linux 系统”，即是最适合你的 Linux 系统。而最适合你的 Linux，就是，在你尝试过后，发现你所有的计算机功能仍然能按预期工作的 Linux。

### 获取驱动程序

大多数的驱动程序已经被捆绑在 Linux 的内核中了（或者作为内核模块），特别是在使用一到两年前的计算机零件和外围设备时常常如此。对于已经上市一段时间的设备，Linux 程序员有机会去开发驱动程序或者将公司的驱动程序集成到系统里。我曾不止一次让人惊讶，只需将 Wacom 图形输入板、游戏控制器、打印机或扫描仪连接到我的 Linux 计算机中，不需要下载安装驱动程序，而且几乎不用配置，可以立即使用。

专有操作系统在处理设备驱动程序方面有两种策略。要么是限制用户在操作系统中使用的设备，要么是付费给公司，让他们编写驱动程序并与设备一起提供。第一种方法有种让人不适的限制性，但是大多数人（可悲的）习惯了某些设备只能在某些平台上运行的想法。而后一种方法，被认为是一种奢侈，但在实践中，这种方法太过于依赖程序员。旧货店有很多计算机外围设备，虽然它们设备状况良好，但却基本上报废了。因为设备制造商已经不再维护此设备在现代系统运行所需要的驱动程序了。

对于 Linux 来说，驱动程序要么由制造设备的厂商来开发，要么是由 Linux 的程序员来开发。这就可能会导致，某些驱动程序集成到操作系统的时间会被延迟（例如，新的设备可能要在发布后六个月才能在 Linux 系统上运行），但它有一个明显的优势，即长期支持。

如果你发现有一个驱动程序还没有进入发行版，那你可以等几个月再试一次，有可能是驱动程序已经集成到了系统的镜像里了，或者可以到不同的发行版中找找有没有你要的驱动程序。

### 为 Linux 付费

通过购买预装 Linux 的 PC 或者经过 Linux 认证的 PC，可以避免所有的选择和关于兼容性的担忧。一些供应商提供预装 Linux 的计算机，如所有的 [System76](http://system76.com) 和部分 [Lenovo](http://lenovo.com) 型号。此外，所有的 Lenovo 型号都有 [Linux 兼容性认证](https://forums.lenovo.com/t5/Linux-Operating-Systems/ct-p/lx_en)。

这是迄今为止尝试使用 Linux 最简单的方法。

### 迈向 Linux

这是一个挑战，浏览自己电脑上安装的每个应用程序，并找到潜在的对应开源替代程序。选择一个你经常使用但不是每天都用的应用程序，在下次要用的时候换成开源的应用程序。花点时间学习新的应用程序，直到能够将它作为你的新的默认程序，或者直到你确定需要尝试一个新的选择。

随着你使用的开源产品越多，你就越准备好进入激动人心的 Linux 世界。最后，你会用上 Linux 桌面还有你最喜欢的开源应用程序。

---

via: <https://opensource.com/article/21/2/try-linux>

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

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


Linux 中国开源社区公开接受投稿

Summary: 你想将你的知识和智慧分享给更多人吗？

仓库地址：github.com/LCTT/Articles

404 - Page not found

有两个问题。

1、为啥至少得有一张符合要求的题图？

如果是翻译投稿，原文有题图还好说。要是原文没题图还得再弄一张题图。自己做吧费时间、还没艺术细胞，网上找又可能有版权。

而且很多人写技术博客也没使用题图的习惯。

2、投稿是否会有分成 (豪绅先捐，百姓后捐。事成之后，豪绅的钱如数奉还，百姓的钱三七分成)。

三七分成，一开口老国粹了，哈哈哈

建议设置个捐赠。

金主先捐，用户后捐。事成之后，金主的钱如数奉还，用户的钱三七分成

来自223.104.217.74的 Chrome Mobile 83.0|Android 11 用户

忘记公开了。现在好了~

应该增加gitee或者其他方式投稿,github有不少时候无法访问

三分有点少吧

不是写了不收取任何费用，也不支付任何报酬嘛

你想将你的知识和智慧分享给更多人吗？

![](/data/attachment/album/202203/07/111231hcbyoebk9umzm13y.jpg)

熟悉我们的朋友都知道，Linux 中国（<https://linux.cn/>）的内容以旗下 LCTT 翻译组贡献的内容为主，间或有一些朋友私下投递的稿件，嗯，也有一些我们为金主写的软文。不过，近来，常有朋友问，我们是否接受投稿。

考虑之后，在与我的拖延症搏斗中，我终于设置了一个接受投稿的渠道。遵循我们的传统，投稿方式以 GitHub 协作的方式来进行：

* 仓库地址：<https://github.com/LCTT/Articles>
* 投稿方式：采用拉取请求（PR）方式向仓库投递

### 投稿约定

投稿者递交投稿即表示 **接受** 以下约定：

* 投稿者应拥有其所投稿件及稿件内图片的完整版权，如因此出现的任何版权纠纷，由投稿者承担相应责任。
* 投稿者所投稿件采用 **CC-BY-SA** 协议发布。
* 投稿者及其委托方不得对提交的投稿，及「Linux 中国」发布的投稿提起版权异议。
* 「Linux 中国」有权在其发布平台（包括但不限于 Linux 中国的官网、微信公众号、知乎等）声明原创，并享有相应的原创权利。
* 「Linux 中国」发布投稿不向投稿者收取任何费用，也不向投稿者和任何利益相关方支付任何费用。

### 投稿方式

请按照模板创造你的稿件，默认模板为：`templates/article.md`。

* 稿件接受 Markdown 格式
* 投稿文件名格式：“日期 英文标题.md”，例如：`20220222 How To Make Live.md`
* 投稿请发送拉取请求到 `contributions` 目录，标题为文件名
* 文章内图片请自行放置于图床，并引用
* 文章要求至少有一张符合要求的题图
* 提交投稿后，我们会对稿件内容提出修改意见，符合标准后才会发布

### 内容要求

我们接受纯技术投稿，也接受非技术投稿，但是不接受广告内容。比如：

* 包括 Linux 在内的开源技术，如编程、运维、架构、安全、DevOps、云计算、Linux 桌面、开源软件、操作系统等
* 关于开源文化、历史、思考等
* 与开源有关的最新新闻、事件等

如果文章内容和投稿方存在利益相关，可以在文末对相关产品、事件做简短说明。

如果是个人投稿者，可以在文末做简短介绍。

另外,我们只接受简体中文投稿，如是其它语言，请自行转换。

最后，感谢您的投稿和贡献！


硬核观察 #568 科学家扩展 DNA “字母表”以存储更多数据

Summary: 更多：• 研究人员发布第一个开源的代码生成 AI 模型 • 9% 的安全事件由 USB 和其他可移动介质引起

人类才是最大的安全漏洞。

—— 电影《我是谁：没有绝对安全的系统》

![](/data/attachment/album/202203/07/165716njgg44kgbdddia6i.jpg)

![](/data/attachment/album/202203/07/165729mkd22i45btkdz0uk.jpg)

### 科学家扩展 DNA “字母表”以存储更多数据

科学家们一直在研究一种相当独特的解决方案：将文件、照片和文档存储在大自然自己的信息数据库中 —— DNA。每天，互联网上都会产生几百 PB 的数据，而只要一克的 DNA 就足以存储这些数据。DNA 用四种叫做核苷酸的分子来编码遗传信息，分别用 A、G、C 和 T 来代表。这相当于一个四字母的字母表。为了存储更多数据，科学家们在 DNA “字母表”中人为 [增加了七个新字母](https://www.cnet.com/news/dna-gets-artificial-upgrade-to-store-humanitys-boundless-digital-data/)，即新的核苷酸。为了可以精确地读回合成 DNA 的数据，研究人员使用了深度学习算法和人工智能。

>
> 老王点评：这就是字面意义上的“交换 DNA 就是交换信息”。
>
>
>

![](/data/attachment/album/202203/07/165739ndzbu8noswyxbxho.jpg)

### 研究人员发布第一个开源的代码生成 AI 模型

尽管像 OpenAI 和 DeepMind 等已经开发出了强大的代码生成人工智能，但这些系统并没有开源，比如， 为 GitHub Copilot 提供动力的 OpenAI Codex 的训练数据尚未公开。研究人员开发了 [PolyCoder](https://github.com/VHellendoorn/Code-LMs)，这是一个基于 OpenAI 的 GPT-2 的模型，在 12 种编程语言的 249 GB 代码数据库上进行了训练。虽然 PolyCoder 在表现上无法与顶级代码生成器相提并论，但研究人员声称，PolyCoder 能够用 C 语言编写代码，其准确度高于所有已知模型，包括 Codex。

>
> 老王点评：只有开源才能让更多的人参与进来，才能培养出生态，而不仅仅是某些大公司的专有服务。
>
>
>

![](/data/attachment/album/202203/07/165759a6iim8l86bq08sqq.jpg)

### 9% 的安全事件由 USB 和其他可移动介质引起

在一份 [报告](https://expel.com/blog/top-attack-vectors-january-2022/) 中发现，可移动媒体占所有安全事件的 9%。而在去除涉及云服务的事件后，这一比例增加到 20%。受信任的 USB 设备可能会感染恶意软件，然后会搜索连接到受害者主机的外部存储设备，以感染它们并进一步传播。当终端用户将 USB 设备从个人设备转移到企业资产时，这种风险会更大。

>
> 老王点评：USB 是安全风险的重要源头，但这事我觉得不能怨 USB。
>
>
>


12 款简单好用的保护隐私的软件

Summary: 本文将会推荐一些简单的软件，可以轻松保护你的网络隐私。

这种类型的文章，这几个软件都说烂了。

Tor、DuckDuckGo、Startpage、Linux Mint... 之类的确很棒，

但文末的 Bitwarden 是夹带私货吗？推荐用 KeePassXC。

有一个整理了各类隐私保护软件的网站：privacytools.io

不过这个站也有 Bitwarden，还是推荐用 KeePass / KeePassXC。

人要恰饭哈

bitwarden自建服务还是不错的，我一直在用，官方的付费功能感觉不太值

本文将会推荐一些简单的软件，可以轻松保护你的网络隐私。

![](/data/attachment/album/202203/08/114751t43jbqlfcic3w348.jpg)

数据是最宝贵的一项资产。

无论影响好坏，数据收集技术都会一直存在。现实生活中，人们进行分析、研究以及学习，都需要各种各样的数据。

当然，数据收集也会带来风险，比如不法机构会收集用户的浏览数据（或网络活动）。

匿名数据收集等技术虽然在不断发展，但在隐私保护这方面可能做的并不是十分完善。

不过先别担心，保护好自己的隐私并不是件难事。

一些简单好用的软件可以在不影响用户体验的前提下，增强用户的隐私保护。更重要的是，搞明白这些软件，你根本不需要着急花大把的时间。

本文将会推荐一些简单的软件，可以轻松保护你的网络隐私。

### 一些增强隐私保护的基本工具

保护数据安全最有效的办法就是，关注你使用频率最高的产品。

担心数据安全是必要的，但不能顾此失彼，忘记产品最基本的用途。

比如，你使用一款去中心化的社交软件，但是你的亲朋好友都不去用它，他们大多时候还是使用 WhatsApp。那么，你的这种做法就没有任何意义。

因此，我们在这里列出了一些不用付出特别的努力就能轻松试用的软件，并将它们归为以下几类：

* 网页浏览器
* 虚拟专用网络
* 搜索引擎
* 社交软件
* 操作系统
* 密码管理

### 关注隐私保护的开源网页浏览器

从办理银行业务到访问社交媒体，网页浏览器能帮你做各种事情。

如果你选择了一款提供优质安全服务以及强大隐私保护功能的网页浏览器，你几乎就可以高枕无忧了。

在我们推荐的 [最好的网页浏览器](https://itsfoss.com/best-browsers-ubuntu-linux/) 之中，（重点关注隐私的）包括:

#### 1、Tor 浏览器

![](/data/attachment/album/202203/08/114826kh4rodjj63c9z7q5.png)

[Tor 浏览器](https://www.torproject.org/download/) 是一款自由开源的网页浏览器，提供了强大的隐私保护功能。它是火狐浏览器的定制版本。

Tor 浏览器借助 [Tor 网络](https://itsfoss.com/tor-guide/) 连接，通过多个节点来传递你的网络请求，以隐藏 IP 地址和位置信息。

在 Tor 浏览器上浏览网页，几乎没有人可以追踪到你。

然而，Tor 浏览器的浏览体验可能稍差一些，它的响应速度极慢。所以，如果你不介意这一点，Tor 浏览器绝对是你的不二之选。

#### 2、Firefox

![](/data/attachment/album/202203/08/114827txm9k64upkzkmpmw.png)

可以说，[Firefox](https://www.mozilla.org/en-US/firefox/new/) 是最优秀的 [开源浏览器](https://itsfoss.com/open-source-browsers-linux/)。也难怪 [我会一次又一次地回归 Firefox](https://news.itsfoss.com/why-mozilla-firefox/)。

Firefox 浏览器不仅内置最强大的隐私保护功能，而且还经常引入新的行业标准，以确保用户安全地浏览网页。

你可以在 Firefox 上安装一些 [最好的开源插件](https://itsfoss.com/best-firefox-add-ons/)，然后自行配置，更好地保护自己的隐私。

#### 3、Brave

![](/data/attachment/album/202203/08/114827slsg9jlws1wszsl7.png)

[Brave](https://brave.com/) 是 Linux 系统上最好的浏览器之一，用户体验清新简洁，外观与 Chrome 有些相似。

Brave 凭借其强大的跟踪保护功能，以及开箱即用的自动运行的跟踪拦截器，一直以来都是 Linux 用户的最佳选择。

请阅读我们的文章：《[Brave vs. Firefox：你的私人网络体验的终极浏览器选择](/article-13736-1.html)》，进一步了解 Brave 的优点与缺陷。

### 保护隐私的虚拟专用网络

无论你使用的是电脑还是手机，虚拟专用网络都可以全程保护你的网络连接。

它还可以隐藏你真实的 IP 地址与位置，让你轻松浏览受限制的内容。

[专注隐私保护的虚拟专用网络服务](https://itsfoss.com/best-vpn-linux/) 有很多，这里我们推荐以下几款：

#### 1、ProtonVPN

![](/data/attachment/album/202203/08/114828y4tx9szs19yx2z21.png)

[ProtonVPN](https://itsfoss.com/recommends/protonvpn/) 是一款强大的隐私保护服务，提供桌面版和移动版的开源客户端。

你可以免费使用这款软件；也可以选择付费，享受恶意软件拦截以及跟踪保护等功能。ProtonVPN 还可以与 ProtonMail 一起付费订阅。

#### 2、Mullvad

![](/data/attachment/album/202203/08/114829w8844mfu9umuq6l6.png)

[Mullvad](https://mullvad.net/en/) 也提供了开源的客户端。有趣的是，它不需要你使用邮箱注册。

你只需生成一个用户 ID，然后就可以使用加密货币或信用卡购买服务。

### 使用保护隐私的搜索引擎，确保网络活动的安全

网上浏览信息会透露你的身份和工作。

不法组织可能会利用你的搜索内容，对你实施欺诈。

所以，能够保护隐私的搜索引擎就显得十分重要了。我推荐以下两款：

#### 1、DuckDuckGo

![](/data/attachment/album/202203/08/114829s2ohkhd28nn118ci.png)

[DuckDuckGo](https://duckduckgo.com/) 是最流行的 [保护隐私的搜索引擎](https://itsfoss.com/privacy-search-engines/)之一，它声明不会记录用户的任何浏览数据。

一直以来，DuckDuckGo 也在不断提升自身的搜索结果质量，所以一般情况下你都可以搜索到想要的内容。

#### 2、Startpage

![](/data/attachment/album/202203/08/114829br1ydd4j2ddj4huq.jpg)

[Startpage](https://startpage.com/) 是一款很有趣的搜索引擎，外观和谷歌搜索相似，搜索结果也与谷歌搜索同步。不过，它不会收集你的信息。

如果你想要获取和谷歌搜索最相似的搜索结果，并且还希望可以使用隐私保护功能，那么你可以试试 Startpage。

### 使用安全的社交软件，保护聊天隐私

无论是政府还是软件本身，如果你不想别人在未经同意下获取你的聊天记录，你需要使用具有隐私保护功能的社交软件。

尽管大多数用户选择信赖 WhatsApp，但是它并不是最有效的隐私保护解决方案。当然，Facebook Messenger就更不用考虑了。

这里我推荐一些 [能够代替 WhatsApp 的社交软件](https://itsfoss.com/private-whatsapp-alternatives/)：

#### 1、Signal

![](/data/attachment/album/202203/08/114830o9zouo961ocy7zdc.jpg)

[Signal](https://signal.org/en/) 是一款开源的社交软件，支持端对端加密，[可安装在 Linux 桌面上](https://itsfoss.com/install-signal-ubuntu/)。

它也有一些隐私保护功能，可以保证聊天对话的安全。

#### 2、Threema

![](/data/attachment/album/202203/08/114831op4qfxzs64qs4x4f.jpg)

[Threema](https://threema.ch/en) 是一款付费软件，内置 Signal 的全部核心功能，无需手机号码即可登录使用。

这款软件也提供了办公版本。如果你的亲朋好友愿意一次性花费 3 美元购买一款软件，那么Threema 是一个不错的选择。

### 选用安全的操作系统，为隐私保护打好基础

可以理解，为了满足个人需求，你 [选择了 Windows，而没有选择 Linux](https://itsfoss.com/linux-better-than-windows/)。

但是，如果你为了保护隐私，想换个系统，可以考虑下面这些 [安全的 Linux 发行版](https://itsfoss.com/privacy-focused-linux-distributions/)。

#### 1、Linux Mint

![](/data/attachment/album/202203/08/114831wpujb0ssddxg1dpd.png)

[Linux Mint](https://linuxmint.com/) 可以满足日常所需，是一款非常出色的 Linux 发行版。它基于 Ubuntu，追求青出于蓝胜于蓝，[希望在一些方面做得更好](https://itsfoss.com/linux-mint-vs-ubuntu/)

Linux Mint 通过关注用户的选择以及常规的安全升级，确保操作系统的安全。

#### 2、Qubes OS

![](/data/attachment/album/202203/08/114831jmd01hi5vvy6jvmq.jpg)

[Qubes OS](https://www.qubes-os.org/) 专注安全和隐私问题。对新手来说，使用起来可能比较困难。

不过，如果你想尝试体验一下最安全、最强大的隐私保护操作系统，那你一定要试试 Qubes OS。

### 选择可靠的密码管理器，保护账号安全

如果不法分子可以轻易获取你的账户信息，那么就算你准备再多的隐私措施，也无济于事。

因此，你必须设置更强大、更复杂的密码。此外，要想做到这些，必须先有密码管理器。

在 [Linux 上最好的密码管理器](https://itsfoss.com/password-managers-linux/) 之中，我建议使用下面这个:

#### 1、Bitwarden

![](/data/attachment/album/202203/08/114832qka4pawka44wtlo4.png)

[Bitwarden](https://bitwarden.com/) 是一款开源的密码管理器，全部的主要功能均可免费使用。

解锁这款软件的高级功能，每年只需花费 10 美元。

### 总结

专注隐私保护的软件有很多，数不胜数。

但是，很多都只是打着“隐私保护”的幌子，实际上不过是营销噱头；还有一些则根本无法使用。

所以，坚持使用那些自己用过的、适合自己的软件，才是比较好的选择。

以上软件你喜欢哪些？最喜欢的又是哪一款呢？请在下方评论留言。

---

via: <https://itsfoss.com/privacy-tools/>

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

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


硬核观察 #569 Chrome 在 Mac 上性能测试首超 Safari

Summary: 更多：• Linux 发现严重的 “Dirty Pipe” 本地提权漏洞 • Fedora 鼓励放弃支持 32 位 x86 软件包

安卓内核普遍在4.9.xxx或4.1x.xxx版本吧，如果是5.8引入的漏洞，那影响安卓的范围会比较小吧

32 位的软件我只剩 Steam 了，正考虑是否使用 Flatpak 版本。

算是吧。

5.8 <= 漏洞影响版本 < 5.16.11 / 5.15.25 / 5.10.102。

但大量新发布的安卓 12 手机已经用上了 Linux 内核 5.8 版本及以上，因此这些设备将受到影响，包括搭载骁龙 8 Gen 1、天玑 8000 系列、天玑 9000、Exynos 2200 和谷歌 Tensor 的设备等。

消息来源：ithome.com/0/606/910.htm

![](/data/attachment/album/202203/08/183545ikdz31z9dkfctktf.jpg)

![](/data/attachment/album/202203/08/183555zzrwv6mfc6go729z.jpg)

### Chrome 在 Mac 上性能测试首超 Safari

[谷歌今天宣布](https://www.macrumors.com/2022/03/07/chrome-faster-safari-speedometer-benchmark/)，在 Mac 上的最新版 Chrome 浏览器 Chrome 99 在 Speedometer 测试中首次超过 Safari，得分超过 300。Speedometer 是苹果 WebKit 团队开发的网页响应测试工具，模拟用户与网页之间的各种交互。谷歌表示，自 M1 Mac 发布后，Chrome 在这期间速度提升了 43%，在图形处理方面，Chrome 浏览器比 Safari 快 15%。

>
> 老王点评：性能是越来越好，内存占用是越来越多。
>
>
>

![](/data/attachment/album/202203/08/183606cd3fsj5alaedje55.jpg)

### Linux 发现严重的 “Dirty Pipe” 本地提权漏洞

安全研究人员发现了一个被称为 [Dirty Pipe](https://dirtypipe.cm4all.com/) 的 Linux 本地提权漏洞，其概念验证利用代码也一同被披露。该漏洞在内核 5.8 中被引入。正常登录的用户或正在运行的流氓程序可以利用它来获得 root 权限；恶意应用程序也可以利用它来接管有漏洞的安卓设备。这个错误可以被滥用来添加或覆盖敏感的只读文件中的数据，例如从 `/etc/passwd` 中删除 root 密码，允许系统中的任何人获得超级用户权限，或者暂时改变一个 setuid 二进制文件来授予 root 权限。

>
> 老王点评：一般来说，Linux 发行版都会很快打上补丁，不过安卓往往要慢得多。
>
>
>

![](/data/attachment/album/202203/08/183626fk33m7cxa4iw4mmf.jpg)

### Fedora 鼓励放弃支持 32 位 x86 软件包

Fedora 已经很久没有专注于 32 位 x86（i686）硬件支持了，但仍在继续构建一些 i686 软件包，但其中一些软件包没有被使用。为了释放构建/编译阶段的资源和减轻软件包维护者的负担，正在开发中的 Fedora 37 [鼓励](https://www.phoronix.com/scan.php?page=news_item&px=Fedora-37-Stop-Unused-i686-Pkgs) 软件包维护者放弃末端或未使用的 32 位 x86 软件包。但这一变化不会影响对 multilib 的支持，或其他软件包依赖的 i686 软件包。

>
> 老王点评：32 位硬件该落幕了。
>
>
>


如何安装和使用 Latte Dock

用多了之后就不喜欢用dock了

只觉得这玩意碍事，gnome3一个插件的事。最主要是不好用，而且并不好看

其实这个没傻用，主要是屏幕比例问题，16:9用这0疼，竖边栏才是正道。又一个盲目学苹果(苹果屏幕16:10)的垃圾产物。

楼上各位，青菜萝卜各有所爱，不必踩一捧一。

sudo apt install latte-dock这个指令害人不浅，一不注意同时安装了一大堆东西

![](/data/attachment/album/202203/09/091040v3n0vlxvt9a0zokx.jpg)

你知道什么是“<ruby> 停靠区 <rt>  Dock </rt></ruby>” 吧，它通常是你的应用程序“停靠”的底栏，以便快速访问。

![](/data/attachment/album/202203/09/091047f5mw8eoi41rc4m4c.jpg)

许多发行版和桌面环境都提供了某种停靠实现。如果你的发行版没有“<ruby> 停靠区 <rt>  Dock </rt></ruby>”，或者你想尝试一些新的停靠应用，Latte Dock 是一个不错的选择。它类似于 macOS 上的停靠区，每次你用鼠标悬停在任何停靠对象上时，都会有一个的抛物线动画。

在本教程中，我将告诉你如何在 Ubuntu 上安装 Latte Dock。我还会展示一些关于使用和定制 Latte Dock 的事情。

### 在 Ubuntu 上安装 Latte Dock

[Latte Dock](https://invent.kde.org/plasma/latte-dock) 是一个流行的应用程序，可以从大多数 Linux 发行版的官方软件库中获得。也就是说你可以使用你的发行版的软件中心或软件包管理器来安装 Latte dock。

![Latte 可以从软件中心获得](/data/attachment/album/202203/09/091049d5dha50dwle5aa56.png)

在 Ubuntu 和其他基于 Ubuntu 的发行版，如 elementary OS、Linux Mint、Pop!\_OS、Zorin OS 上，使用 `apt` 命令：

```
sudo apt install latte-dock

```

这就行了！现在你已经在 Ubuntu 上安装了 Latte Dock。

#### 停用 Ubuntu 自带的停靠区（针对 Ubuntu 用户）

在你启动你闪亮的新停靠区之前，我建议你禁用 Ubuntu 默认提供的停靠区。这里有一个 [关于如何禁用 Ubuntu 的停靠区的指南](https://itsfoss.com/disable-ubuntu-dock/)。

要禁用停靠区，请在你的终端输入以下内容：

```
gnome-extensions disable ubuntu-dock@ubuntu.com

```

如果你最终改变了主意，你可以用以下命令再次启用 Ubuntu 停靠区：

```
gnome-extensions enable ubuntu-dock@ubuntu.com

```

>
> 注意：
>
>
> 这不能禁用 Pop!\_OS 20.04 LTS 上的默认停靠区（尽管它在桌面上默认是隐藏的；只在活动概览中可见）。在使用 COSMIC 桌面环境/扩展的 Pop!\_OS 上，你可以通过“<ruby> 设置 <rt>  Settings </rt></ruby>”应用中的“<ruby> 桌面 <rt>  Desktop </rt> -> <ruby>  停靠区  <rt>   Dock  </rt> </ruby> ”来禁用或启用停靠区。</ruby>
>
>
>

### 开始使用 Latte Dock

我在教程中使用的是 Pop!\_OS，但这些步骤适用于任何 Linux 发行版。

一旦安装完毕，你会在你的应用程序抽屉里发现一个 Latte Dock 的启动器图标。你可以在这里访问它，或者按 `Super` 键（通常是 `Windows` 键；如果你有 Mac 键盘，则按 `Command` 键）键 + `A`。

从这里打开 Latte Dock：

![应用抽屉里高亮显示的 Latte dock](/data/attachment/album/202203/09/091050dhzk4yw1k2eo1zfw.jpg)

酷！现在你的桌面上已经打开了 Latte Dock。

![桌面上的 Latte Dock 屏幕截图](/data/attachment/album/202203/09/091053ovyy7q3ynvy7vkhq.jpg)

#### 启用 Latte Dock 的自动启动功能

随着 Latte Dock 的打开，以及 Ubuntu 自带停靠区的禁用，如果你现在重启，那么下次你的电脑开机时就不会有任何停靠区了。

让我们现在就来解决这个问题。

在停靠区上点击右键。点击“<ruby> 布局 <rt>  Layouts </rt></ruby>”子菜单下的“<ruby> 配置 <rt>  Configure </rt></ruby>”选项。

![通过进入“布局” -> “配置” 启动设置面板窗口](/data/attachment/album/202203/09/091055h9ayzffddu8d12it.png)

现在，在“<ruby> 偏好 <rt>  Preferences </rt></ruby>”选项卡下，确保“<ruby> 在启动时启用自动启动 <rt>  Enable autostart during startup </rt></ruby>”复选框被选中。

![启用启动时自动启动复选框](/data/attachment/album/202203/09/091058dnq3x1aa9oxu3sq9.jpg)

### 定制你的停靠区

如果你安装了任何 KDE 的产品，定制应该是永无止境的。如果 Latte Dock 不允许定制，那就奇怪了。幸运的是，情况并非如此。

你可以做各种各样的事情来定制 Latte Dock。增加它的大小，使它更透明或半透明，为它设计主题等等。

#### 将应用程序固定在停靠区上

要把你的应用程序固定在 Latte Dock 上，打开该应用程序，右键点击在你停靠区中的应用程序图标。现在点击“<ruby> 固定启动器 <rt> </rt> Pin Launcher</ruby>”。完成了！你的应用程序现在已经被固定到了停靠区上。

![右击正在运行的应用程序并选择钉住启动器选项](/data/attachment/album/202203/09/091059df6zboab15cs5c5n.jpg)

你可以通过点击和拖动移动它到左边或右边来改变它在停靠区中的位置。

#### 搜索和安装 Latte Dock 主题

通过右击停靠区打开 Latte Dock 的“<ruby> 设置 <rt>  Settings </rt></ruby>”窗口，点击“<ruby> 布局 <rt>  Layout </rt></ruby>”子菜单下的“<ruby> 配置 <rt>  Configure </rt></ruby>”选项。

你可能已经安装了一些主题（呃...布局）。从已安装的选项列表中选择它，然后点击右侧的切换按钮。

![改变 Latte Dock 的主题](/data/attachment/album/202203/09/091101zz2g0z27bgi4sxn7.jpg)

你也可以通过点击“<ruby> 下载 <rt>  Download </rt></ruby>”按钮来下载更多的主题。它应该向你显示一个可用的主题列表，以供安装。

![Latte Dock 插件安装窗口](/data/attachment/album/202203/09/091103dwxhnbj5x9jw9899.jpg)

#### 改变停靠区的外观和行为

正如我前面提到的，在 KDE 产品中有大量的定制选项。

让我们来试试。

右键点击停靠区，点击 “<ruby> 停靠区设置 <rt>  Dock Settings </rt></ruby>”。

![通过右键点击停靠区进入 Latte Dock 设置](/data/attachment/album/202203/09/091104quioopk00uucq0ec.jpg)

在这里，你会得到各种类型的可以切换的选项。想把停靠区移到显示器的左侧吗？你可以通过“<ruby> 位置 <rt>  Location </rt></ruby>”子菜单下提供的选项来实现。

![Dock 设置和定制窗口](/data/attachment/album/202203/09/091106jxkcn75d7484eet7.jpg)

如果你觉得可用的选项有任何限制，请拨动右上角的“<ruby> 高级 <rt>  Advanced </rt></ruby>”开关。

![现在可以看到带有高级选项的停靠区设置和定制窗口](/data/attachment/album/202203/09/091109m8cg9079ctmi93mz.jpg)

现在看起来真是太棒了！

试着切换每个可用的开关。你可以延迟隐藏停靠区。你可以把它放在显示器的一个边缘，把它放在该边缘的中心、左边或右边。你可以做到这一切。

想修饰启动、悬停等效果？在“<ruby> 效果 <rt>  Effects </rt></ruby>”选项卡下有更多的调整选项等待着你。

### 从你的系统中删除 Latte Dock

你安装了 Latte Dock，并对其进行了定制，但觉得它不是你想要的东西。而你现在正在寻找删除 Latte Dock 的方法。很好，我帮你。

你可以使用 `apt` 软件包管理器删除 Latte Dock。用下面的命令来做：

```
sudo apt autoremove --purge latte-dock

```

![](/data/attachment/album/202203/09/091111f79hnswwf2sksq7e.jpg)

`--purge` 标志将删除 Latte Dock 在系统目录中的任何配置文件，除了 `~/.config`。

#### 仅供高级用户使用：删除用户特定的遗留文件

这不是强制性的，但如果你想删除通常放在 `$HOME/.config`（即 `~/.config`）目录中的用户配置文件。[使用 find 命令](https://linuxhandbook.com/find-command-examples/) 来定位 Latte Dock 的配置文件：

```
find ~/.config -iname "latte*"

```

![](/data/attachment/album/202203/09/091112jy02yrzl11a4ryc3.jpg)

你可以安全地从你的 `~/.config` 目录中删除这些目录和配置文件。

#### 对于 Ubuntu 用户：重新启用 Ubuntu 停靠区

不要忘了启用 Ubuntu 的停靠区。如果你不记得了，再次启用停靠区的命令在下面：

```
gnome-extensions enable ubuntu-dock@ubuntu.com

```

### 总结

Latte Dock 是一个来自 KDE 社区的令人惊艳的停靠区 ( ͡° ͜ʖ ͡°)

它提供了大量的主题（布局）、外观和自定义选项，以及一些漂亮的效果。如果你正在考虑定制你的桌面外观和感觉，它肯定是你应该寻找的东西。

如果你最终喜欢上了 Latte Dock 并开始每天使用它，请在评论中告诉我。如果你不喜欢 Latte Dock，也请发表评论让我知道原因。

---

via: <https://itsfoss.com/install-use-latte-dock-ubuntu/>

作者：[Pratham Patel](https://itsfoss.com/author/pratham/) 选题：[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/) 荣誉推出