如何在 Ubuntu 中安装 Viber

Summary: 这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。

有木有开源的社交软件，自己搭服务器，局域网交流的

你现在不就是在局域网内么？

这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。

![](/data/attachment/album/202211/02/161951egly6ylguc6g0w5g.jpg)

>
> 这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。
>
>
>

[Viber](https://www.viber.com/) 是一个免费、安全的通话和聊天程序，适用于所有流行的移动平台和操作系统。

它具有丰富的功能，例如语音/视频通话、支持 GIF 的文本消息、贴纸、照片和视频。此外，Viber 还具有群聊、群呼和消失消息功能。

Viber 是一个闭源程序，但有免费的 Linux 原生可执行客户端。

下面是安装它的方法。

### 在 Linux 上安装 Viber

它以 AppImage 可执行文件、deb 和 rpm 包的形式提供。按照下面的相应按钮直接下载。平均可执行文件大小约为 180MB。

>
> **[下载适用于所有 Linux 发行版的 Appimage](https://download.cdn.viber.com/desktop/Linux/viber.AppImage)**
>
>
>

>
> **[适用于 Ubuntu 的 Deb 可执行文件](https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb)**
>
>
>

>
> **[Fedora 的 RPM 包](https://download.cdn.viber.com/desktop/Linux/viber.rpm)**
>
>
>

如果你已下载 AppImage，只需从任意文件管理器将权限更改为可执行文件即可。然后运行。

对于 Ubuntu、Linux Mint、Debian 和相关发行版，你可以通过[多种方法](https://www.debugpoint.com/install-deb-files/)安装 deb 包。

你可以通过已安装的软件管理器双击打开。或者通过 `dpkg` 命令安装，如下所示。

```
sudo dpkg -i viber.deb

```

对于 Fedora 和基于 RPM 的软件包，你可以通过以下命令安装。

```
sudo dnf localinstall viber.rpm

```

对于 Arch Linux 和其他发行版，你可以使用我上面提到的 Appimage。

### 使用

完成安装 Viber 后，通过应用菜单打开它。以下是你需要记住的几件事。

在从笔记本电脑/台式机开始使用 Viber 之前，你需要在手机上进行设置。从以下链接为你的移动平台下载并安装 Viber。

* [谷歌应用商店](https://play.google.com/store/apps/details?id=com.viber.voip&hl=en_IN&gl=US)
* [苹果应用商店](https://apps.apple.com/us/app/viber-messenger-chats-calls/id382617920)

安装后，设置 Viber。请记住，它需要你的手机号码才能注册。

设置完成后，在 Linux 桌面上打开应用。你应该会看到如下页面。

![Viber 在 Linux 中运行](/data/attachment/album/202211/02/161956fy8y492998t8t222.jpg)

从你的手机应用扫描二维码，你应该可以在 Linux 桌面上使用 Viber。

**注意：** 由于它是一个闭源应用，请确保你在使用 Viber 时了解此应用的条款和与隐私相关的情况。

---

via: <https://www.debugpoint.com/install-viber-linux/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


关于配置 Terraform 的五条建议

Summary: 本文介绍我使用 Terraform 五年之后吸取到的经验。

本文介绍我使用 Terraform 五年之后吸取到的经验。

>
> 本文介绍我使用 Terraform 五年之后吸取到的经验。
>
>
>

![](/data/attachment/album/202211/02/220728ngg0kzjg0rldu0l7.jpg "Puzzle pieces coming together to form a computer screen")

使用 Terraform 五年的经历让我吸取到一些重要经验。无论团队大小、项目性质，有五条要点对于配置合乎逻辑且可用的 Terraform 平台至关重要。

### 1、了解你的目标受众

这一点似乎显而易见，但我也见过一些在这方面犯错的案例。当组织和规划 Terraform 的相关代码时，无论是将目录结构标准化还是确定命名规范，考虑目标受众是非常重要的。例如：你的团队是否会使用这些 Terraform 脚本和模块？你是否会向其他团队交接工作？你的团队是否会有新成员加入？你是否正在独自进行项目开发？你是否会半年或一年后仍然使用这些配置，还是会将它安排给别人？

这类问题会影响某些决策。理想情况下，无论如何都应该有 <ruby>   远程状态  <rt>  Remote State </rt></ruby> 和 <ruby>   状态锁定  <rt>  State Locking </rt></ruby> 两种状态。远程状态确保你的笔记本电脑不是你的 Terraform 唯一运行的机器，状态锁定确保同一时刻只有一个人对基础设施进行修改操作。

命名规范应该对项目的最终拥有者有意义，而不是只对开发团队有意义。如果项目会转交给其他团队，应该确保他们对命名规范有发言权。如果代码由非技术的利益相关者或内部安全/ GCR 团队负责审查，应该确保他们会检查命名规范。另外，对于资源名称，为了让代码审查人员更仔细地进行检查，你应该使用资源标签，把有关的数据分类/隐私需求（高、中、低）标示出来。

### 2、重用，重用，重用

[Terraform 注册表](https://registry.terraform.io/) 为大多数普通用例提供了现成模块类库。我已经使用过 VPC 模块和安全模块中的大量功能，这些功能只需要提供相关的参数就能使用。使用不同的参数，简单调用这些模块对于处理大部分用例已经足够了。尽可能多地重用这些公共模块，可以避免大量且重复的编码、测试、检查、修复、重构等操作。

我也发现，基于使用或变更的频率划分模块和资源大有好处。例如，只使用一次的基础设施手脚架，例如 VPC 相关设置、安全模块、路由表、VPC 端点等，可以放在一起。但是像私有托管域条目、自动伸缩模块、目标模块、负载均衡器等，每次部署时都会变化，所以把这些与一次性的基础设施手脚架分离开来，会令代码检查更方便，调试更快速。

### 3、要明确，而非隐含

Terraform 代码中有一些常见的模式，它会导致设计中出现错误的假设。团队可以假设用来写代码的 Terraform 版本永远保持不变，外部模块不会变化，或它们使用的提供者不会变更。当这些外部依赖不可避免地发生变化时，就会导致一些难以发现的问题。

无论何处（包括主要的 Terraform 组、提供者组、功能模块组）都要确保定义是明确的。事先定义版本，可以确保依赖库是固定的，因此你可以在讨论、审查、测试后，明明白白地更新依赖关系。

### 4、自动化每一处，包括笔记本电脑、共享虚拟机、CI/CD。

在部署的各个阶段使用自动化方法，可以避免可能发生的问题。

在你提交代码前，使用 [Git 预提交钩子](https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6) 运行 `terraform fmt` 和 `terraform validate`。预提交钩子的作用是确保你的代码满足最低程度的格式和语法正确。把这个预提交文件检入到仓库，对你的团队成员都有好处。项目的第一步就进行质量控制相关的操作，它虽然表面上是小事一桩，但也很重要，能为项目节省大量时间。

一切现代化部署工具都有 CI 流程。当你向原始仓库推送代码时，可以使用它来运行 SAST 和单元测试工具。我写过一篇 [博客](https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov)，是关于使用 Checkov 测试 Terraform 代码的安全性和合规性，并为组织特定的惯例创建自定义检查。把这些单元测试工具加入到你的 CI 管道，可以改进代码质量和健壮性。

### 5、写个好的 README.md 文件

我们都认为 Terraform 代码是自文档化的。的确如此，但是只有当未来的团队已经了解你的公司的命名规范、开发指南、机密通信、圈内笑话，以及你的仓库内除有效的 Terraform 代码之外其他所有东西，才会如此。维护 `README.md` 文件是个好习惯，它能节省大量时间，而且团队成员要为自己向 README 文件提交的任何内容负责，这样也就确保团队成员的忠诚度。

你的 README 文件至少应该包含在你的工作环境下（Linux、 Windows、Mac 等等）初始化 Terraform 环境的步骤，包括 Terraform 的版本信息。它应当确定需要的依赖库（Checkov、 TerraGrunt 及其他依赖）和其版本，以及团队使用的方便的 Linux 别名（例如有人喜欢将 `terraform fmt` 简写为 `tff`）。最重要的是，需要确定分支和 PR 审核策略和流程、命名规范和资源标签的相关标准。

README 文件需要通过这样的检验：如果团队有新成员加入，能否告诉他们做什么以及如何正确地完成工作？如果不能，在后续的几个月内，你将面对的是无休止的标准和流程讨论会议。

### 结束语

这些就是我使用 Terraform 多年后，认为需要传授给大家的五条有用的建议。也欢迎你分享自己的最佳实践。

---

via: <https://opensource.com/article/21/8/terraform-tips>

作者：[Ayush Sharma](https://opensource.com/users/ayushsharma) 选题：[lujun9972](https://github.com/lujun9972) 译者：[cool-summer-021](https://github.com/cool-summer-021) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #809 安卓占所有操作系统份额的 40% 以上

Summary: • 安卓占所有操作系统份额的 40% 以上 • 英国准备立法废除传真机 • OpenSSL 3 漏洞补丁释出，危险程度比预想要轻

![](/data/attachment/album/202211/03/051744r5wsj9zn2sep522w.jpg)

![](/data/attachment/album/202211/03/051756lps9cmeyqjpecicm.jpg)

### 安卓占所有操作系统份额的 40% 以上

Statcounter 是一个网站分析服务，在 150 万个网站上安装了跟踪代码，记录每个网站的数十亿次页面浏览。据 Statcounter 最新数据，安卓占全球所有操作系统份额为 42.37%，Windows 30.11%、iOS 17.6%、OS X 6.24%、除了安卓之外的 Linux 1.04%。而就桌面市场而言，Windows 占 75.93%，OS X 15.74%，Linux 2.6%，Chrome OS 2.38%。对于移动市场，安卓占 70.96%，iOS 28.43%。

>
> **[消息来源：Statcounter](https://gs.statcounter.com/os-market-share)**
>
>
>

>
> 老王点评：安卓的成功，也是移动操作系统的成功，也是广义上的 Linux 的成功。
>
>
>

![](/data/attachment/album/202211/03/051814daias8r8z2l98al8.jpg)

### 英国准备立法废除传真机

传真机由施乐公司在 1964 年商业化，1980 年代起被世界各地的企业广泛使用，如今已被电子邮件、扫描仪、云端传真和即时通讯服务所取代。虽然传真机早已过时，但英国卫生服务机构仍在大量使用它，英国国家医疗服务系统现在还有数百台传真机。英国通信监管机构 Ofcom 表示它准备修订电信规则淘汰传真机。

>
> **[消息来源：The Register](https://www.theregister.com/2022/11/02/ofcom_fax_death_knell/)**
>
>
>

>
> 老王点评：之前利用互联网发送传真都被视作违法，而现今，几乎没有人用传真了。
>
>
>

![](/data/attachment/album/202211/03/051828lh4hmvqnm4imq4vv.jpg)

### OpenSSL 3 漏洞补丁释出，危险程度比预想要轻

由于 OpenSSL 3 出现了严重安全漏洞，原计划在 10 月底发布的 Fedora Linux 37 延迟发布。现在，OpenSSL 3 发布了补丁，修复了两个缓冲溢出漏洞。漏洞等级从之前被认为与“心脏流血”漏洞相当的“超危”降为“高危”。这两个漏洞影响所有 OpenSSL 3.x 系列，不过目前主要使用的版本 OpenSSL 1.x 不受影响。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/OpenSSL-1-November-2022)**
>
>
>

>
> 老王点评：还好，不过互联网安全需要更可靠安全的 SSL 实现。
>
>
>


Linux Lite 6.2 发布

>
> Linux Lite 6.2 是一个理想的升级，带来一些有用的变化，没什么太花哨的东西。
>
>
>

![Linux Lite 6.2 Released](/data/attachment/album/202211/04/050118f4tnazpstsk2fr4e.png)

Linux Lite 是一种流行的轻量级的类 Windows 发行版，为用户提供了一个熟悉的操作系统感受。

最新版本 Linux Lite 6.2 基于 Ubuntu 22.04 LTS，对 UI 进行了各种更改以及各种错误的修复。

### Linux Lite 6.2：有什么新功能？

![linux lite 6.2 desktop](/data/attachment/album/202211/04/050120yogogtttfusn6udn.png)

此版本的 Linux Lite 侧重于用户界面调整和错误修复，并对一些应用程序进行了更改。

一些主要亮点包括：

* 更新的图标
* 新壁纸
* Shotcut 视频编辑器
* 删除微软 Teams
* LibreOffice 7.3.6.2
* Linux 内核 5.15

#### Shotcut 取代 OpenShot

![linux lite 6.2 shotcut video editor](/data/attachment/album/202211/04/050120qznzln9gmlqo0x5a.png)

是的，[Shotcut](https://shotcut.org/) 现在取代了 [OpenShot](https://www.openshot.org/)，成为 Linux Lite 6.2 上的默认视频编辑器。

OpenShot 之所以被删除，是因为它不能很好地与 Ubuntu 22.04 配合使用，而如果没有一个好用的视频编辑器，用户将不得不自己寻找一个。

Shotcut 无疑是一款出色的视频编辑器。所以，应该是一个不错的选择。

#### 微软 Teams 已删除

另一个重大变化是微软 Teams 不再包含在发行版中。

其原因是微软停止了 Linux 应用程序，转而支持一个渐进式 Web 应用程序版本。

我们之前的报道可以让你更深入地了解：

>
> **[微软决定放弃 Teams 的 Linux 应用，代之以渐进式Web应用](https://news.itsfoss.com/microsoft-linux-app-retire/)**
>
>
>

#### 更新的图标和新壁纸

![linux lite 6.2 new wallpapers](/data/attachment/album/202211/04/050121tu2552ua6aibaic5.png)

Linux Lite 6.2 具有最新的 [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) 图标集以及一系列新的 Linux Lite 主题壁纸。

这应该会给发行版带来用户可能喜欢的焕然一新的外观。

#### ? 其他更改和改进

![](/data/attachment/album/202211/04/050121g9e00pzzzn9emu0l.png)

其他值得注意的变化包括：

* 任务管理器的更新
* 改进了 Lite 升级应用程序中的结束对话。
* 各种应用程序的最新更新、错误修复等。

你可以阅读完整的发行说明以 [了解更多信息](https://www.linuxliteos.com/forums/release-announcements/linux-lite-6-2-final-released/)。

Linux Lite 6.2 看起来是对以前版本的令人满意的升级，有许多重大的变化和补充。

### ? 下载 Linux Lite 6.2

你可以从其官方网站下载最新的 ISO 或使用 Lite 升级工具升级到它。

>
> **[Linux Lite 6.2](https://www.linuxliteos.com/download.php)**
>
>
>

? 你如何看待 Linux Lite 6.2？愿意试一试吗？

---

via: <https://news.itsfoss.com/linux-lite-6-2-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[littlebirdnest](https://github.com/littlebirdnest) 校对：[wxy](https://github.com/wxy)

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


关于编译代码你应该知道的

Summary: 用这个方便的捕鼠器比喻来理解编译代码。

用这个方便的捕鼠器比喻来理解编译代码。

![](/data/attachment/album/202211/04/054126nec50keexencosc4.jpg)

>
> 用这个方便的捕鼠器比喻来理解编译代码。
>
>
>

源代码必须要经过编译才能够运行程序，而对于开源软件，每个人都可以获取源代码。无论你是自己编写了代码，想要编译和运行它，还是下载了某人的项目来尝试它，了解如何通过 [编译器](https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters) 处理源代码，以及编译器如何处理这些代码，这都很有用。

### 创建一个更好的捕鼠器

一般情况我们不会将一个捕鼠器比作电脑，但不管你信不信，它确实与你正在使用的设备（手机或电脑）的 CPU 有一些相似之处。经典的捕鼠器（我说的不是 ?）有两种状态：打开或者释放。你可以认为 *打开* 是将捕鼠器设置好准备捕获老鼠，以及 *释放* 是捕鼠器被老鼠触发。某种意义上来说，捕鼠器就像是一台有鼠标的电脑。你可以想象一下这个代码，用一种虚构的语言来描述这个过程：

```
if mousetrap == 0 then
  There's a mouse!
else
  There's no mouse yet.
end

```

换句话说，你可以基于捕鼠器的状态发现是否有老鼠（数据）。当然，捕鼠器不是万无一失的，有可能有一只老鼠在捕鼠器旁边，由于老鼠还没有触发捕鼠器，所以它的状态还是 *打开* 的。因此该程序可以进行改进，这都是非常典型的。

### 开关

总的来说，捕鼠器就是一个开关。你会在家里使用开关打开灯。可以从开关中获得许多信息。比如，人们会从你家灯的状态了解到你是否在家。

你可以根据邻居家灯的状态来改变行为。如果邻居家所有的灯都熄灭了，那么请关掉你大声的音乐，因为人们可能已经上床睡觉了。

CPU 也使用这样的逻辑，只不过乘以几个数量级，缩小到了微观级别。当 CPU 在特定寄存器上接收到电信号时，可以触发其他一些寄存器，然后触发另一个，以此类推。如果这些寄存器有特定的意义，那么就可以通信。也许激活同一主板上某处的芯片，或者使 LED 亮起，或者改变屏幕上的像素颜色。

种瓜得瓜，种豆得豆。如果你真的想在多个位置而不是仅限于一处发现老鼠，但是你只有一个捕鼠器，那你应该开发一个应用才行。使用网络摄像头和一些基本的图像识别软件，你可以建立空厨房的模型，然后扫描变化。当老鼠进入厨房，在原先没有老鼠的图像上会有像素的变化。记录下这些数据，如果有无人机可以追踪老鼠并捕获会更好，这样就可以将老鼠赶出厨房了。这时，你通过打开和关闭信号的魔法，创造了一个更好的捕鼠器。

### 编译器

代码编译器将人们可阅读的代码转换成 CPU 可以理解的机器语言。这是非常复杂的过程，因为 CPU 非常复杂（甚至比捕鼠器更加复杂），同时因为该过程比严格“需要”的更加灵活。并不是所有的编译器都很灵活。有一些编译器只有一个目标，它们只会处理特定格式的代码文件，处理过程也因此而简单明了。

幸运的是，现代的通用编译器并不简单。它们允许你编写不同语言的代码，也允许你用不同的方式链接库文件，并且可以生成运行在不同架构上的文件。[GNU 编译器集合](https://opensource.com/article/22/5/gnu-c-compiler)（GCC）的 `gcc` 编译器 `--help` 会输出超过 50 行的选项，LLVM 的 `clang` 编译器的 `--help` 输出超过 1000 行。GCC 指导手册的字数超过 10 万。

当你在编译代码时会有很多选项。

当然，大多数人并不需要知道所有的选项。我从未读过 GCC 的手册页，因为它们是针对 Objective-C、Fortran 以及我从未听说过的芯片架构的。不过我重视它将代码编译为不同的架构 —— 64 位或者 32 位 —— 的能力，以及在其他行业已经落后的计算机上运行开源软件的能力。

### 编译生命周期

同样重要的是，理解编译代码的不同阶段。这是一个简单的 C 语言程序的生命周期：

1. 带有宏定义的 C 源代码 `.c` 文件，用 `cpp` 预处理为 `.i` 文件。
2. 扩展了宏定义的 C 源代码 `.i` 文件，会被 `gcc` 转译成 `.s` 文件。
3. 以汇编语言写的文本文件 `.s` 文件被汇编为目标 `.o` 文件。
4. 带有 CPU 指令的二进制目标代码，以及其他目标文件和库 `*.o` 文件，以内存区域无关的偏移量，使用 `ld` 链接以生成可执行文件。
5. 最终的二进制文件要么包含所有需要的目标，要么设置以动态链接库 `*.so` 文件加载。

你可以试试这个简单示例（可能需要对库路径做一些调整）：

```
$ cat << EOF >> hello.c
 #include
 int main(void)
 { printf("hello world\n");
   return 0; }
   EOF
$ cpp hello.c > hello.i
$ gcc -S hello.i
$ as -o hello.o hello.s
$ ld -static -o hello \
  -L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \
  /usr/lib64/crt1.o /usr/lib64/crti.o hello.o \
  /usr/lib64/crtn.o  --start-group -lc -lgcc \
  -lgcc_eh --end-group
$ ./hello
hello world

```

### 可获得的知识

计算机已经变得非常强大，并且用户友好。请不要走向这两种可能的极端中的任何一种：计算机不像捕鼠器和电灯开关那么简单，但它们也不是无法理解的。你可以了解编译代码、如何链接以及针对不同架构进行编译。一旦你知道了，你就可以更好地调试代码。你可以理解你下载的代码，甚至可以修复其中的一两个错误。同时从理论上来讲，你可以建造一个更好的捕鼠器，或者用捕鼠器造一个 CPU。由你决定。

---

via: <https://opensource.com/article/22/10/compiling-code>

作者：[Alan Smithee](https://opensource.com/users/alansmithee) 选题：[lkxed](https://github.com/lkxed) 译者：[Donkey-Hao](https://github.com/Donkey-Hao) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #810 微软考虑提供用广告和订阅支持的廉价 PC

Summary: • 微软考虑提供用广告和订阅支持的廉价 PC • 阿塔卡马亚毫米波干涉阵望远镜遭受严重网络攻击 • 谷歌的文字转图像 AI 将首次公开亮相

可惜中国人还只能坐井观天，连接触最新的科技消息都做不到。

来自湖北武汉的 Chrome Mobile iOS 106.0|iOS 16.0 用户

是您在坐进观天吧？

中国，呵呵

![](/data/attachment/album/202211/04/075403lb19ngc8cux9xvzo.jpg)

![](/data/attachment/album/202211/04/075415q0saz2n7669psv23.jpg)

### 微软考虑提供用广告和订阅支持的廉价 PC

微软正在为“新成立的 Windows 孵化团队”招聘人员，其任务是“将 Windows 转移到一个结合了云和微软 365 优点的地方”。其可能的模式包括通过订阅提供的低成本 PC，通过广告帮助抵消一些成本。也就是说，你需要接受微软推送的广告。不过，这目前还只是计划。

>
> **[消息来源：The Register](https://www.theregister.com/2022/11/02/microsoft_windows_pc_ads/)**
>
>
>

>
> 老王点评：这是一个提供了硬件的微软 365？
>
>
>

![](/data/attachment/album/202211/04/075424mm0ioeaadg9099mo.jpg)

### 阿塔卡马亚毫米波干涉阵望远镜遭受严重网络攻击

前两天，位于智利的阿塔卡马沙漠的亚毫米波干涉阵望远镜（ALMA）遭受严重网络攻击。ALMA 是世界上规模最大、海拔最高、最灵敏的毫米波/亚毫米波干涉阵。ALMA 由 66 个观测天线组成。这次攻击造成 ALMA 停止科学观测，位于智利的网站全部下线。攻击并未造成天线或观测数据库受损，且目前网络威胁已得到控制。但 ALMA 仍未恢复正常运行。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/alma-observatory-shuts-down-operations-due-to-a-cyberattack/)**
>
>
>

>
> 老王点评：连科研机构都攻击。
>
>
>

![](/data/attachment/album/202211/04/075443agfnbbxn14bb4fkz.jpg)

### 谷歌的文字转图像 AI 将首次公开亮相

AI Testr Kitchen 应用是谷歌对各种 AI 系统进行测试的一种方式，以收集该技术的早期反馈，之前，该应用程序提供了一些与谷歌的文本模型 LaMDA 交互的方式。谷歌的文本转图像 AI 系统 Imagen 也正在被添加到 Kitchen 中，提供了两种方式互动方式：“城市梦想家” 和 “摇摇晃晃”。谷歌说，测试用户的参与度远超预期。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/11/2/23434361/google-text-to-image-ai-model-imagen-test-kitchen-app)**
>
>
>

>
> 老王点评：现在各大公司都展开了 AI 军备竞赛，而且其中一些进展令人惊讶。
>
>
>


12 个对新手最重要的 Linux 命令

Summary: 我向所有的 Linux 初学者推荐以下这些命令。

新手不需要用命令

我向所有的 Linux 初学者推荐以下这些命令。

>
> 我向所有的 Linux 初学者推荐以下这些命令。
>
>
>

![](/data/attachment/album/202211/05/092308plqfl6a6z0g7afx7.jpg)

在使用 Linux 命令行时，很容易就会迷失方向，这可能会导致灾难性的后果：我有一次使用删除命令 `rm` 删除文件，然而删除之后我才意识到我刚刚是删除了计算机的引导目录。后来，我学会了使用 `pwd` 命令，来知道当前在文件系统的哪个目录下；并且我使用了 [trashy 和 trash-cli](https://www.redhat.com/sysadmin/recover-file-deletion-linux) 这一命令行回收站工具（LCTT 译注：在删除文件时 `trash-cli` 会充当中间人，将文件先“删除”到桌面上的垃圾箱中，能够通过垃圾箱或通过终端的 `trash` 命令，来恢复垃圾箱中已删除的文件。）

当我刚开始使用 Linux 时，我有一个放在桌子上的“速查表”，它就是《101 条你应该知道的 Linux 命令》，我在管理 Linux 服务器时能参考速查表上面的这些命令。随着我越来越熟悉这些命令，我越来越精通服务器管理了。

以下是我认为最有用的 12 个 Linux 命令。

### 1、打印工作目录（pwd）

`pwd` 命令会打印出你的工作目录。换句话来说，它输出你当前所在目录的路径。`pwd` 命令有两种选项：`-L` 或 `--logical`（即逻辑路径）用来打印当前的目录路径（不解析符号链接），`-P` 或 `--physial`（即物理路径）会打印出解析符号链接后的物理目录。（LCTT 译注：你可以进一步阅读我们翻译的 [另一篇文章](/article-4356-1.html)。）

### 2、创建目录（mkdir）

使用 `mkdir` 命令来创建一个新目录，是非常容易的。以下命令，创建了一个名为 `example` 目录（若 `example` 已存在，则无法创建）：

```
$ mkdir example

```

你也可以在嵌套地创建目录及其子目录：

```
$ mkdir -p example/one/two

```

如果目录 `example` 和目录 `one` 都已存在，则仅会创建目录 `two`。如果上述目录都不存在，则会创建这三个嵌套的目录。

### 3、列出文件（ls）

我最早使用的是 MS-DOS（微软磁盘操作系统），因此我习惯于使用 `dir` 命令，来列出文件。我不记得当时是否能在 Linux 上使用 `dir` 命令，但是如今 `dir` 命令已经包含在 <ruby> GNU 核心实用程序包 <rt>  GNU Core Utilities package </rt></ruby> 中了。大多数人会使用 `ls` 命令，来显示目录中的文件及其所有的属性。`ls` 命令有许多选项，包括 `-l` 查看文件的长列表，显示文件所有者和权限等信息。

### 4、更改当前工作目录（cd）

在 Linux 中经常要更改当前工作目录，这就是 `cd` 命令的功能。例如，以下的示例将让你从 <ruby> 主目录 <rt>  home </rt></ruby> 进入 `Documents` 目录：

```
$ cd Documents

```

你可以使用 `cd ~` 或者 `cd`，来快速转换到你的主目录。你可以使用 `cd ..` 来返回到上一级目录。

### 5、删除文件（rm）

删除文件是很危险的，因为在 Linux 终端上用 `rm` 命令会**彻底地**删除文件，并没有像桌面的垃圾桶那样依旧保存着删除的文件。许多终端用户有一个坏习惯，他们会永久地删除他们认为不再需要的文件。然而，因为没有“取消删除”命令，这个坏习惯可能会导致严重的问题：你会不小心删除了包含重要数据的目录。

Linux 系统为文件删除提供了 `rm` 和 `shred` 命令。要删除文件 `example.txt`，请输入以下内容：

```
$ rm example.txt

```

然而，使用 `trash` 命令要安全得多，例如 [trashy](https://gitlab.com/trashy/trashy) 或者 [trash-cli](https://github.com/andreafrancia/trash-cli)，它会将文件先“删除”到桌面上的垃圾箱中：

```
$ trash example.txt

```

（LCTT 译注：关于 Trash-Cli 的更多信息可以参考我们翻译的 [另一篇文章](/article-10029-1.html)。）

### 6、复制文件（cp）

使用 `cp` 命令，来复制文件。`cp` 的语法是从*旧文件*复制到*新文件*。这里有一个例子：

```
$ cp file1.txt newfile1.txt

```

你也可以复制整个目录：

```
$ cp -r dir1 newdirectory

```

### 7、移动并重命名文件（mv）

重命名和移动文件在功能上是相同的过程。当你移动文件时，从一个目录中取出一个文件，并将其放入一个新目录中；当你重命名文件时，将一个目录中的文件更改为新名称，并放回到同一目录或另一个目录下。无论是重命名还是移动文件，你都可以使用 `mv` 命令：

```
$ mv file1.txt file_001.txt

```

### 8、创建一个空文件（touch）

使用 `touch` 命令可以简单地创建一个空文件：

```
$ touch one.txt

$ touch two.txt

$ touch three.md

```

### 9、更改权限（chmod）

使用 `chmod` 命令，来更改文件的权限。`chmod` 最常见的用途是让文件能够执行：

```
$ chmod +x myfile

```

以下的示例展示了如何用 `chmod` 命令给文件赋予权限，这对于脚本来说特别方便。尝试一下这个简单的练习吧：

```
$ echo 'echo Hello $USER' > hello.sh

$ chmod +x hello.sh

$ ./hello.sh
Hello, Don

```

### 10、提升为 root 权限（sudo）

在管理自己的 Linux 系统时，可能需要提升为超级用户（也称为 root），这就是 `sudo`（即 <ruby> 以超级用户做 <rt>  super user do </rt></ruby>）命令的来源。假设你想要做一些只有管理员（或 root 用户）才能做的事情，只需在命令前加一个 `sudo` 即可：

```
$ touch /etc/os-release && echo "Success"
touch: cannot touch '/etc/os-release': Permission denied

$ sudo touch /etc/os-release && echo "Success"
Success

```

### 11、关机（poweroff）

`poweroff` 命令的功能和它的字面意思一样：把你的计算机关机。需要在 `poweroff` 前面加一个 `sudo` 才能成功关机。

实际上，还有很多方法可以关闭你的计算机，这些方法有略微的不同。例如，`shutdown` 命令会在指定的时间（例如 60 秒）后关闭计算机：

```
$ sudo shutdown -h 60

```

或者立即关闭计算机：

```
$ sudo shutdown -h now

```

你也可以用 `sudo shutdown -r now` 或者 `reboot` 来重启计算机。

### 12、阅读手册（man）

`man` 命令可能是 Linux 中最重要的命令了，你可以通过 `man` 命令查看 Linux 系统上每个命令的官方文档。例如，要阅读更多有关 `mkdir` 的信息，可以输入：

```
$ man mkdir

```

一个与 `man` 相关的命令是 `info` 命令，它提供了一组不同的手册，它通常会提供比简洁的 `man` 页面更详细一点的内容。

### 你最喜欢的 Linux 命令是什么？

Linux 系统上还有数百个其他命令！你最喜欢使用的 Linux 命令是什么呢？什么命令是你一直反复使用的呢？

---

via: <https://opensource.com/article/22/5/essential-linux-commands>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

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


如何检查： 是 Xorg 还是 Wayland 显示服务器？

Summary: 以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。

以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。

![](/data/attachment/album/202211/05/102913nmpm4pzka6b6aar1.jpg)

>
> 以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。
>
>
>

随着时间的推移，现代 Wayland 显示服务器正在进入所有 Linux 发行版。尽管老旧的 Xorg 仍然能用并且会继续存在，但 Wayland 无疑在安全性和其他性能方面更好。

但是，Xorg 不会很快完全淘汰。可能永远不会。

如果你在运行任何 Linux 发行版，如何检查运行的是 Xorg 还是 Wayland？下面是方法。

### Wayland 或 Xorg：你在运行哪一个？

在你的 Linux 发行版（例如 Ubuntu、Fedora、Arch 等）中打开一个终端窗口（`CTRL+ALT+T`）。

然后输入以下命令并回车：

```
echo $XDG_SESSION_TYPE

```

命令输出会告诉你当前会话是 Wayland 还是 Xorg（X11）。

```
[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland

```

![此命令可以为你提供有关 Xorg 或 Wayland 的详细信息](/data/attachment/album/202211/05/102932buz2r6rb6obu7c62.jpg)

这很简单。但是，还有其他方法。

### 其他方法

#### 使用设置

如果你需要图形方法，请打开你的 Linux 发行版的设置应用。在关于部分，你应该看到某个标签下中的 Wayland/X11。

例如，在 GNOME 设置中，你可以在 “<ruby> 窗口子系统 <rt>  Windowing system </rt></ruby>” 下找到它，如下图所示：

![在 GNOME 设置中可以找到它](/data/attachment/album/202211/05/102932g7jib9jvgqrcgwwb.jpg)

#### 使用会话值

你还可以使用 [systemd](https://www.debugpoint.com/tag/systemd/) 登录管理器 `loginctl` 找到它。请记住，它仅适用于基于 systemd 的系统。

打开终端并运行以下命令。你可以看到会话 id 值。在此示例中为 `c2`：

```
loginctl

```

现在，将会话 ID 传递给以下命令以获取显示服务器类型。确保将 c2 更改为你的系统规格。

```
loginctl show-session c2 -p Type

```

![使用 loginctl 查找](/data/attachment/album/202211/05/102932hf2gmyakecvqqc0s.jpg)

### 总结

这些是你可以确定在 Linux 系统中运行的是 Systemd 还是 Xorg 的一些方法。你还可以在 shell 脚本中使用上述命令来实现进一步的流程自动化。

祝好。

---

via: <https://www.debugpoint.com/check-wayland-or-xorg/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


在 Ubuntu 上安装 WoeUSB 来创建一个可启动 Windows USB

>
> 想在 Linux 上创建一个可启动 Windows USB ？Ventoy 是一个很好的选择。
>
>
>

但是，在 Ventoy 出道之前，WoeUSB 是用于创建可启动 Windows USB 的首选工具。原版 WoeUSB 工程在 2014 年左右香消玉损。

鉴于其流行程度，一位新的开发者接过了将其起死回生的任务。因此，WoeUSB-ng 诞生了。在这里，“ng” 是 <ruby> 新生代 <rt>  new generation </rt></ruby> 的缩写。换句话说，[WoeUSB-ng](https://github.com/WoeUSB/WoeUSB-ng) 是新生代的 WoeUSB 。但是，因为原版的工具已经不存在了，我将 WoeUSB-ng 描述为 WoeUSB 。

在这篇教程中，我将向你展示如何在 Ubuntu Linux 上安装 WoeUSB 。我也将分享使用 WoeUSB 来创建可启动 Windows USB 的步骤。

但是，在此之前，让我们快速查看这个令人惊叹的工具的特色。

### WoeUSB

![install woeusb ubuntu](/data/attachment/album/202211/05/151038m69dowd8w6i6fdfr.png)

WoeUSB 是一个简单的工具，其唯一的目的是 [在 Linux 上创建可启动 Windows USB](https://itsfoss.com/bootable-windows-usb-linux/) 。

原版 WoeUSB 是一个 shell 脚本。这个原版 WoeUSB 被使用 Python 重写为 WoeUSB-ng ，它可以安装在你的系统上，并且通过命令行或 GUI 界面。

特色：

* 支持老式 PC 启动或 UEFI 启动
* 支持 FAT32 和 NTFS 文件系统
* 支持使用物理安装盘或磁盘镜像作为源
* 它可以用于 Windows Vista 及其更高版本的任意语言或变体版本
* 老式的 MBR/IBM PC 兼容启动模式
* 本机 UEFI 启动支持 Windows 7 及其更高版本的镜像（仅限于将 FAT 文件系统作为目标的情况）

### 在 Ubuntu 和其它的 Linux 发行版上安装 WoeUSB

Arch Linux 用户可以从 AUR 安装 WoeUSB-ng 。

对于其它的发行版，可以使用 PIP 来安装 WoeUSB 。毕竟，它是一个 Python 应用程序。在这里，我将为 Ubuntu/Debian 提供一些命令。

为安装 WoeUSB-ng ，你首先需要 [安装 PIP](https://itsfoss.com/install-pip-ubuntu/) 和其它必要的依赖项。

```
sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin

```

在这之后，你可以安装 WoeUSB-ng ，通过运行：

```
sudo pip3 install WoeUSB-ng

```

对于所有的其它安装，你可以参考其 [操作指南](https://github.com/WoeUSB/WoeUSB-ng#installation) 。

>
> **[WoeUSB-ng](https://github.com/WoeUSB/WoeUSB-ng)**
>
>
>

### 前提条件: 获取 Windows 的 ISO 文件和一个兼容的 USB 磁盘

这一点没有什么需要说的。你需要有一个你将要安装的 Windows 版本的 ISO 文件。

从微软的网站，你应该能够获取 Windows 10 和 11 的ISO 文件。

>
> **[下载 Windows](https://www.microsoft.com/en-in/software-download/)**
>
>
>

如果你有较旧的 Windows 版本的 ISO 文件，也可以使用它们。

除此之外，你需要有一个至少 8 GB 大小的 USB 驱动器磁盘。你应该使用 NTFS 的文件系统来格式化它filesystem.

### 方法 1: 使用图形用户界面化的 WoeUSB 来创建一个可启动的 Windows USB（推荐）

从 <ruby> 活动概述 <rt>  activity overview </rt></ruby> 或菜单中打开 woeusb-gui 。

![woeusb in ubuntu activities overview](/data/attachment/album/202211/05/151038si222jek25j72wy2.png)

在应用程序窗口中，选择下载的 Windows ISO 和所希望的 USB 驱动器，如截屏所示，然后按下 <ruby> 安装 <rt>  Install </rt></ruby> 按钮。

![woeusb gui setup](/data/attachment/album/202211/05/151039jwkb8z5ad7mdaqe6.png)

在应用程序中也其它可用的调整，可以通过顶部的菜单栏来访问使用。

在按下“安装”按钮后，woeUSB 将开始格式化和复制文件。你需要等待一些时间，因为这里有大约 6 GB 的文件需要复制。

![woeusb writing windows iso to the usb drive](/data/attachment/album/202211/05/151039hl5yalsyjqml5jew.png)

在复制完成后，WoeUSB 将会提示一个成功的对话框。你现在可以安全地弹出 USB 驱动器，并将其作为一个可启动 USB 驱动器来使用。

![woeusb completed writing and gives a success message](/data/attachment/album/202211/05/151039x0nmtte6fftnnpft.png)

### 方法 2: 从终端中使用 WoeUSB（针对专家）

WoeUSB-ng 软件包也提供一个名称为 `woeusb` 的命令行实用程序。

为使用 WoeUSb 来创建一个可启动的 Windows USB ，你需要运行下面的命令：

```
sudo woeusb --device <path/to/Windows/ISO> <name/of/the/USB/device> --target-filesystem ntfs

```

在这里，`--device` 标识用于擦除 USB 和从零开始创建一个可启动 USB 驱动器。同样，`--target-filesystem` 标识用于设置为 NTFS ，来避免将要复制的文件大小超过 FAT 文件系统的限制。

![woeusb commandline](/data/attachment/album/202211/05/151040vfgc66ig1e6xb1j2.png)

该过程将花费一些时间来完成复制。在完成复制后，它将显示一条成功的信息。

![woeusb commandline success message](/data/attachment/album/202211/05/151040qfj9f2z9c2c25pj4.png)

此时，你可以安全地弹出 USB 驱动器，并在其它的个人电脑上将其作为一个 Windows 可启动 USB 来使用。

### 超值: 使用 WoeUSB 的 Bash Shell 脚本（针对专家）

WoeUSB 也提供一个 Bash Shell 脚本，在你的系统上，它不需要安装任何东西就可以使用。

首先，你需要从 [该工程的发布版本页面](https://github.com/WoeUSB/WoeUSB/releases/tag/v5.2.4) 下载 Shell 脚本。

在 [执行 Shell 文件](https://itsfoss.com/run-shell-script-linux/) 之前，你需要获取所需要的依赖项。为安装它，运行：

```
sudo apt install wimtools

```

现在，通过文件管理器或通过命令行来使它可执行。

![make woeusb script executable](/data/attachment/album/202211/05/151041n91lgx6dgl1l88lx.png)

或者，你可以运行 `chmod +x <path/to/script>` 来使它可执行。现在，运行已下载目录中的 `./woeusb-5.2.4.bash -h` 来获取帮助。

为创建一个现场 USB ，该进程类似于 woeusb-ng 的命令行部分，但是你没有安装任何东西。

因此，在一个终端中，运行：

```
sudo <path/to/downloaded/script/file> --device <path/to/windows/ISO> <name-of-USB-device> --target-filesystem ntfs

```

这将开始将 ISO 写入 USB 驱动器，如下面的截屏所示：

![woeusb bash script running without installation](/data/attachment/album/202211/05/151041g9ukvuxmlv9bbd9w.png)

在完成后，你可以安全地弹出 USB 驱动器，并将其作为可启动 USB 使用。

### 移除 WoeUSB

如果你使用 PIP 安装 WoeUSB ，你也可以类似地移除它：

```
pip3 uninstall WoeUSB-ng

```

你可以在你的系统上保留或移除已安装的依赖项。这完全取决于你。我建议保留它们。

### 总结

大约 10 年前，WoeUSB 是一个非常流行的工具。其他人以另外一种形式将其复活是很好的，这就是开源的艺术。

我希望这篇教程会帮助你。如果通过 WoeUSB 创建的 Windows USB 不能按部就班地工作，你可以 [尝试使用 Ventoy](https://itsfoss.com/bootable-windows-usb-linux/) 。享受它。

---

via: <https://itsfoss.com/install-woeusb-ubuntu/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #811 用“古代”计算机建造可演奏的手风琴

Summary: • 用“古代”计算机建造可演奏的手风琴 • Web 之父说 Web3 根本不是互联网 • OpenAI 将为 10 家 AI 初创企业各提供 100 万美元支持

没有物理连接去中心化都是G8玩意

![](/data/attachment/album/202211/05/165123brsi0slfrctfph0s.jpg)

![](/data/attachment/album/202211/05/165151a00l10ynmpwm0buo.jpg)

### 用“古代”计算机建造可演奏的手风琴

一位工程师用两台不带显示器的 Commodore 64 “古代”电脑作为键盘，用五寸软盘粘在一起作为风箱，制作了一台可以演奏的手风琴。这个项目采用了大量定制的软件和硬件黑科技。通过测量风箱挤压时通过的空气噪音并转换为信号。Commodore 电脑本身没有音频设备，音频信号是通过插孔输出发声的。Commodore 64 是有史以来最畅销的电脑，于 1982 年开始生产。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2022/11/playable-commodore-64-accordion-delights-with-homemade-chiptune-goodness/)**
>
>
>

>
> 老王点评：有钱有闲的人才能做出来这些“无聊”项目。而为生活，甚至是为基本的生存需求而努力的人是不配谈这些的。有感而发，唉。
>
>
>

![](/data/attachment/album/202211/05/165132x3yxl2pfh2hkflxw.jpg)

### Web 之父说 Web3 根本不是互联网

发明 Web 的蒂姆·伯纳斯-李在里斯本周五举行的 Web 峰会上表示，“真正的 Web3 的名字被以太坊的人拿去做区块链的东西，这真是一个耻辱。事实上，Web3 根本就不是 Web。”Web3 是科技界的一个模糊的术语，用来描述一个假设的未来版本的互联网，它比今天更去中心化，而不被各大巨头所支配。他认为需要澄清 Web 3 和 Web 3.0，并开发了自己的 Web 3.0 项目 Solid。

>
> **[消息来源：CNBC](https://www.cnbc.com/2022/11/04/web-inventor-tim-berners-lee-wants-us-to-ignore-web3.html)**
>
>
>

>
> 老王点评：名词并不重要，重要的真正有用，依我看，Solid 也是空中楼阁，未必比以太坊等 Web 3 项目有希望。
>
>
>

![](/data/attachment/album/202211/05/165217fiqqznn404q34hqw.jpg)

### OpenAI 将为 10 家 AI 初创企业各提供 100 万美元支持

开发了 GPT-3 和 DALL-E 2 等人工智能系统的 OpenAI，推出了一个新项目，为早期人工智能初创企业提供资金和访问 OpenAI 技术和资源。OpenAI 去年宣布了 1 亿美元的创业资金，得到了微软和其他合作伙伴的支持。OpenAI 表示，申请“不要求事先有人工智能系统的工作经验。”

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2022/11/02/openai-will-give-roughly-ten-ai-startups-1m-each-and-early-access-to-its-systems/)**
>
>
>

>
> 老王点评： AI 行业现在是投资热点，这一波 AI 热看来还不会过期。
>
>
>


如何清理 Snap 版本以释放磁盘空间

![](/data/attachment/album/202211/06/082905iomvvhsgoooc5czg.jpg)

>
> 这个带有脚本的快速指南有助于清理旧的 Snap 版本并释放 Ubuntu 系统中的一些磁盘空间。
>
>
>

我正在使用的 Ubuntu 测试系统中的磁盘空间不足。因此，我通过 GNOME 的磁盘使用分析器进行调查，以找出哪个包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录，令我惊讶的是，我发现 Snap 和 Flatpak 消耗了大量的存储空间。

![Snap 大小 - 清理前](/data/attachment/album/202211/06/083337kiwpxipidd1g51dh.jpg)

尽管如此，我始终坚持一个规则：除非必要，否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢原生 deb 和 rpm 包。多年来，我在这个测试系统中安装和移除了一定数量的 Snap 包。

但卸载后还有问题。Snap 在系统中保留了一些残留文件，一般用户不知道。

所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`，发现 Snap 保留了以前安装/卸载的软件包的旧版本。

例如，在下图中，你可以看到 GNOME 3.28、3.34 和 Wine 都被删除了。但它们还在那里。发生这种情况是因为 Snap 的设计，它在正确卸载后保留已卸载软件包的版本。

![snaps 目录下的文件](/data/attachment/album/202211/06/083344r0qq90x11d6zaudf.jpg)

或者，你可以在终端中使用：

```
snap list --all

```

![snap 列出全部](/data/attachment/album/202211/06/083353cwbfze1upweee55e.jpg)

对于保留的版本，默认值为 3。这意味着 Snap 会保留每个软件包的三个旧版本，包括活动版本。如果你对磁盘空间没有限制，这是可以的。

但是对于服务器和其他情况，这很容易遇到成本问题，它会消耗你的磁盘空间。

但是，你可以使用以下命令轻松修改计数。该值可以在 2 到 20 之间。

```
sudo snap set system refresh.retain=2

```

### 清理 Snap 版本

在 SuperUser 的一篇文章中，Canonical 的前工程经理 Popey [提供了一个简单的脚本](https://superuser.com/a/1330590)，它可以清理旧版本的 Snaps 并保留最新版本。

这是我们将用来清理 Snap 的脚本。

```
#!/bin/bash
#Removes old revisions of snaps
#CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
    snap remove "$snapname" --revision="$revision"
done

```

将上面的脚本以 `.sh` 扩展名保存在一个目录中（例如 `clean_snap.sh`），赋予它可执行权限并运行。

```
chmod +x clean_snap.sh

```

当我运行脚本后，它减少了很多磁盘空间。该脚本还将显示要删除的包的名称。

![执行脚本](/data/attachment/album/202211/06/083402gtjtpa1ga7xsa8xa.jpg)

![清理后的 Snap 大小](/data/attachment/album/202211/06/083408z1fqh1ghtrfbhfud.jpg)

### 结束语

对于 Snap 的设计效率如何，人们总是争论不休。许多人说，它的设计是坏的，是臃肿的，是消耗系统资源的。这种说法的某些部分是真实的，我不会否认它。如果实施和加强得当，整个沙盒应用的概念是很好的。但我相信，与 Snap 相比，Flatpak 工作做得更好。

也就是说，我希望这可以帮助你清理一些磁盘空间。尽管它只在 Ubuntu 中进行了测试，但它应该适用于所有支持 Snap 的 Linux 发行版。

此外，请查看我们关于 [如何清理 Ubuntu](https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/) 的指南以及其他步骤。

最后，如果你要清理 **Flatpak** 应用，请参阅 [这篇指南](https://www.debugpoint.com/clean-up-flatpak/)。

---

via: <https://www.debugpoint.com/clean-up-snap/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


用 git log 命令显示在特定日期的提交记录

Summary: git log 命令是 Git 中一个很重要的查看提交记录的工具，它也是人们喜欢使用 Git 的原因之一。

![](/data/attachment/album/202211/06/085449j5diiljl7dzgdr0z.jpg)

>
> `git log` 命令是 Git 中一个很重要的查看提交记录的工具，它也是人们喜欢使用 Git 的原因之一。
>
>
>

`git log` 命令能够让你了解到更多关于贡献者 <ruby> 提交 <rt>  commit </rt></ruby> 的记录。使用 `git log` 的一种方式是按日期查看提交记录 。要查看**在指定日期或日期范围内**创建的 Git 存储库中的提交记录，请使用带有选项 `--since` 或 `--until` 或者同时使用以上两个选项的 `git log` 命令。

首先，进入你要查看的分支（例如，`main` 分支）：

```
$ git checkout main

```

接下来，你可以使用以下命令，来显示当前日期（即今天）的提交记录：

```
$ git log --oneline --since="yesterday"

```

仅显示某一特定用户（例如，用户 `Agil`）在今天的提交记录：

```
$ git log --oneline --since="yesterday" --author="Agil"

```

还可以显示在某一日期范围内的提交记录。使用以下命令，显示在任意两个日期之间（例如，2022 年 4 月 22 日至 2022 年 4 月 24 日）的提交记录：

```
$ git log --oneline --since="2022-04-22" --until="2022-04-24"

```

在上面这个例子中，会输出 2022 年 4 月 22 日至 2022 年 4 月 24 日期间，不包括 2022 年 4 月 22 日的所有提交记录。如果你想要包括 2022 年 4 月 22 日的提交记录，请将命令中的 `2022-04-22` 替换为 `2022-04-21`。

运行以下命令，能够显示某一特定用户（例如，用户 `Agil`）在两个指定的日期之间的提交记录：

```
$ git log --oneline --since="2022-04-22" --until="2022-04-24" --author="Agil"

```

### 总结

Git 有很多优点，其中一个优点就是 Git 让你能够收集你项目的相关数据。`git log` 命令是一个重要的查看提交记录的工具，也是人们喜欢使用 Git 的原因之一！

---

via: <https://opensource.com/article/22/10/git-log-command>

作者：[Agil Antony](https://opensource.com/users/agantony) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

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


安卓开源项目（AOSP）现在兼容 RISC-V 了

Summary: 安卓的一个重要进展是将安卓开源项目Android Open Source Project（AOSP）移植到 RISC-V 处理器架构。

>
> 安卓的一个重要进展是将<ruby> 安卓开源项目 <rt>  Android Open Source Project </rt></ruby>（AOSP）移植到 RISC-V 处理器架构。
>
>
>

![](/data/attachment/album/202211/06/091143bfvf3wz0sluua229.jpg)

AOSP 已经开始在上游启用 RISC-V，这将促进 RISC-V CPU 在可穿戴设备、物联网，以及最终在智能手机和笔记本电脑中的使用。

为了开放生态系统，中国科学院 PLCT 实验室的工程师和软件开发人员在 2020 年开始将 Android 10 移植到 RISC-V 架构上。阿里巴巴的云计算部门和平头哥芯片子公司一起努力保持开发与最新的安卓版本同步。

“我们很高兴看到谷歌对构建针对 RISC-V 的 AOSP 的更多支持！阿里云一直致力于通过一系列的创新来支持 RISC-V 社区的发展，比如将安卓的基本功能移植到 RISC-V 上，这证明了在从多媒体到信号处理、设备互联和人工智能等场景中使用基于 RISC-V 的设备的可行性。”阿里云生态系统总监、RISC-V 国际组织的应用与工具水平委员会副主席 David Chen 博士说：“我们期待着与安卓团队合作，为繁荣的 RISC-V 社区做出贡献。”

通过增强 RISC-V 上的安卓系统的基本功能，在 2021 年，阿里云的专家们付出了巨大的努力，积极推动了软件生态系统的发展。 RISC-V on Android 的工作集中在 RISC-V Android 工作组和软件库中进行。

---

via: <https://www.opensourceforu.com/2022/11/the-android-open-source-project-is-now-risc-v-compatible/>

作者：[Laveesh Kocher](https://www.opensourceforu.com/author/laveesh-kocher/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #812 GitHub Copilot 被诉“规模空前的软件盗版”

Summary: • GitHub Copilot 被诉“规模空前的软件盗版” • 经过六年等待，Rust 终于支持通用关联类型了 • 谷歌计划建立支持世界上 1000 种最常用的语言的 AI 模型

是吗， 可惜你用不了谷歌

来自湖北武汉的 Chrome Mobile iOS 107.0|iOS 16.0 用户

![](/data/attachment/album/202211/06/095200pgql0ws4gl033lat.jpg)

![](/data/attachment/album/202211/06/095205w9zss5ya5w95oos9.jpg)

### GitHub Copilot 被诉“规模空前的软件盗版”

周四，有程序员在旧金山提起诉讼，称其代表数百万可能受每月 10 美元的 Copilot 服务影响的 GitHub 用户。该诉讼旨在挑战 GitHub Copilot 的合法性。诉讼对象包括 GitHub 其所有者微软，以及为该工具提供支持的 OpenAI。该诉讼认为“被告已经侵犯了大量创作者的合法权利，这些创作者在 GitHub 上根据某些开源许可证发布代码或其他作品。”包括 MIT 许可证、GPL 许可证和 Apache 许可证等 11 个流行的开源许可证，都要求注明作者姓名和版权。Copilot 违反并删除这些许可证，“因此，它正在实施规模空前的软件盗版行为。”

>
> **[消息来源：IT Pro](https://www.itpro.co.uk/software/369456/github-copilot-sued-over-software-piracy-on-unprecendented-scale)**
>
>
>

>
> 老王点评：虽然可能是旷日持久的诉讼，但是目前的 AI 没有理会开源许可证就直接拿过来用代码的方式，肯定是有问题的。
>
>
>

![](/data/attachment/album/202211/06/095213bsuu1411u0j4zxsu.jpg)

### 经过六年等待，Rust 终于支持通用关联类型了

最新的 Rust 稳定版 1.65.0 支持了通用关联类型（GAT），可以在关联类型上声明生命期、类型和常量泛型。Rust 官方称，“很难用几个字来形容这些东西有多有用。”为了支持 GAT，必须对编译器进行大量的修改，而这项功能的 RFC 是 2016 年提出的。总的来说，GAT 为大量的模式和 API 提供了基础性的依据。大量项目因为 GAT 的稳定而受阻。即使你不需要直接使用 GAT，你所使用的库也很有可能在内部或公开场合使用它，很多时候，GAT 是唯一实现方式。

>
> **[消息来源：Slashdot](https://developers.slashdot.org/story/22/11/05/2048240/new-features-in-rust-include-generic-associated-types-gats-after-six-year-wait)**
>
>
>

>
> 老王点评：Rust 越来越发展完善，真的可以预期成为主要的底层语言。
>
>
>

![](/data/attachment/album/202211/06/095226gpgvopmm6yy486o6.jpg)

### 谷歌计划建立支持世界上 1000 种最常用的语言的 AI 模型

该公司公布了一个经过 400 多种语言训练的 AI 模型，它将其描述为 “目前在语音模型中看到的最大的语言覆盖范围”，并宣布建立一个支持 1000 种语言的模型。谷歌认为，创建一个如此规模的模型将使其更容易将各种人工智能功能带入在线空间和人工智能训练数据集中表现不佳的语言（也被称为 “低资源语言”）。谷歌称，建立单一模型，而不是建立 1000 种不同的模型，有助于 AI 将从高资源语言获得的能力转化为低资源语言的能力。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/11/2/23434360/google-1000-languages-initiative-ai-llm-research-project)**
>
>
>

>
> 老王点评：这样的进展，或许过几年，不需要专门学习外语了。
>
>
>


如何在 Ubuntu 和其他 Linux 中检查 CPU 和硬盘温度

对于win的wsl，好像都没法检测。

![](/data/attachment/album/202211/07/151624auhj011bqnzk9qfu.jpg)

>
> 想知道如何在台式机或笔记本电脑上检查 Ubuntu 和其他 Linux 中的 CPU 和硬盘温度？这是一个快速指南。
>
>
>

如果你是普通用户，那么实际上不需要检查 CPU 或 HDD 温度。但是，如果你使用的是非常旧的硬件或轻薄型的硬件，你可能会遇到过热问题。因为这些薄的硬件内部紧密耦合在一起，无论做了多少传热机制，它都会升温。因此，必须监控硬件的温度。然而，现代 Linux 发行版能够通过软件传感器很好地处理过热情况。

### 在 Ubuntu 上监控 CPU 和硬盘温度的步骤

#### 使用终端

我们将使用几个包来实现相同的目的。在基于 Ubuntu 的系统中打开一个终端并安装以下内容。

```
sudo apt install hddtemp
sudo apt install lm-sensors

```

[hddtemp](https://wiki.archlinux.org/title/Hddtemp) 程序为你提供硬盘和 SSD （根据我的测试）的温度。 [lm-sensors](https://github.com/lm-sensors/lm-sensors) 包为你提供来自 CPU 和其他通过 PCI 端口访问的传感器的温度详细信息。

安装后，从终端运行以下命令。你需要知道你的磁盘标识符，例如 `/dev/sda` 或 `/dev/sdb` 等。

要找出磁盘标识符，你可以使用 `fdisk`。

```
sudo fdisk -l

```

然后运行以下命令检查 HDD 或 SSD 温度。

```
sudo hddtemp

```

![HDD or SSD Temperature from terminal](/data/attachment/album/202211/07/151709dammktput8wg4o8p.png)

*来自终端的 HDD 或 SSD 温度*

检查 CPU 温度和其他信息需要额外的步骤。

首先，运行以下命令，以便传感器程序可以检测到系统中的传感器。

```
sudo sensors-detect

```

上面的命令可能会问你一些是/否的问题。继续按回车选择默认选项。

完成后，运行以下命令查看 CPU 和其他接口温度。

```
sensors

```

![using sensors](/data/attachment/album/202211/07/151626puuq7iiirqtzz7i4.png)

*使用传感器*

#### 使用 GUI 工具

如果你更喜欢能完成上述所有操作的漂亮 GUI，你可以安装 [psensor](https://wpitchoune.net/psensor/)。该程序适用于 Linux 系统，例如 Ubuntu、Fedora、[Arch](https://www.debugpoint.com/tag/arch-linux) 和其他变体。它为你提供了漂亮的图形和表格视图：

Ubuntu 及其衍生版：

```
sudo apt install psensor

```

Fedora 和基于 RPM 的衍生版：

```
sudo dnf install psensor

```

Arch、Manjaro 和类似的衍生版：

```
pacman -S psensor

```

安装后，从终端运行 `psensor` 或从应用菜单启动它。

正如你在下面的截图中所见，它通过漂亮的图表让你可以很好地了解 CPU、GPU 和 HDD 的所有重要温度。使用它的首选项，你可以根据需要对其进行调整。这个轻量级的程序在很多情况下都会很有帮助。

![psensor running](/data/attachment/album/202211/07/151721odev7ev3vd578zfv.jpg)

*psensor 运行*

因此，这些是你可以在 Ubuntu 和其他 Linux 系统中监控 CPU、GPU 或 HDD 温度的一些方法。如果你知道其他方法，请通过下面的评论栏告诉我。

---

via: <https://www.debugpoint.com/cpu-hdd-temperature-ubuntu/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


使用 Pip 升级 Python 软件包

Python软件包的依赖关系令人头疼。如果可以运行，建议不要升级它。

![](/data/attachment/album/202211/07/153408lqflbw3mwxja3qm4.jpg)

你上次更新通过 Pip 安装的 Python 软件包是什么时候？大多数用户往往会忘记这些 Python 软件包也需要手动更新，因为仅仅更新系统存储库对于软件包来说是不起作用的。

因此，让我们花点时间看看如何使用 Pip，来更新旧的 Python 软件包吧。

### 如何使用 Pip 升级 Python 软件包

[Pip（Pip Installs Packages）](https://itsfoss.com/install-pip-ubuntu/) 是一个用于管理 Python 软件包的 <ruby> 命令行实用程序 <rt>  command line utility </rt></ruby> 。你可以将 Pip 安装 Python 软件包，类比为在 Ubuntu 和 Debian 中使用 `apt` 管理软件包那样。

因此，接下来就让我们深入了解如何使用这个极好的工具 Pip，来管理与 Python 软件包相关的内容吧。

#### 1、列出过时的 Python 软件包

在计划更新什么软件包之前，我们先要列出有哪些过时的软件包，你可以在其中选择想要更新的软件包，因为大多数人不会想一下子更新整个软件包库。

要列出过时的 Python 软件包，你只需将 `pip` 命令与 `list` 选项、`--outdated` 标志一同使用即可，如下图所示：

```
pip list --outdated

```

![outdated packages](/data/attachment/album/202211/07/153410v48318bnb0z4qxap.png)

#### 2、升级特定的软件包

获得可更新的软件包列表后，你可以像我之前提到的那样，选择你要更新的那个特定的软件包，pip 升级软件包命令的语法如下：

```
pip install package_name -U

```

例如，我想将名为 `anime-api` 的软件包升级到最新版本，所以我将使用下面的命令来升级：

```
pip install anime-api -U

```

![update anime api](/data/attachment/album/202211/07/153411w56fs9s0rslzsf63.png)

#### 3、将软件包升级到特定的版本

没有必要总是使用软件的最新版本，如果你想将软件包升级到不是最新的某个特定版本，参考如下的命令语法：

```
pip install --upgrade <package>==<version>

```

例如，我想将名为 `xdg` 的软件包更新到 5.1 版本，5.1 版本是最新版本的前一个版本，所以可以使用以下命令：

```
pip install --upgrade xdg==5.1

```

![upgrade xdg to specific iteration](/data/attachment/album/202211/07/153411ioeej6hj6k6dhvko.png)

#### 4、使用 Pip 一次性升级所有软件包

**请注意：我不建议你一次性升级所以软件包，因为 Python 软件包的依赖项太复杂了，一次性的升级无法处理相互依赖项。**

要一次性升级所有 python 软件包，你可以使用以下命令：

```
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U

```

![upgrade everything](/data/attachment/album/202211/07/153412m71rz1246h22xavc.png)

上面的命令使用了 [xargs](https://linuxhandbook.com/xargs-command/)。首先，会得到所有需要更新的软件包，然后对每个软件包执行 `pip3 install -U` 命令。

我在这里使用的是 `pip3`，而不是 `pip`。在 Ubuntu 22.04 及更高的版本中，`pip` 和 `pip3` 命令都可以使用。

### 总结

使用 Pip 一次性更新所有 Python 软件包并不是一个好主意。我发现一次性更新后，软件包之间的依赖关系被破坏了，所以请确保只更新你想要更新的软件包。

如果你还有其他的疑问，就请在评论区中留言吧。

---

via: <https://itsfoss.com/upgrade-pip-packages/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #813 systemd 252 如预期的锁定了 Linux 引导过程

Summary: • systemd 252 如预期的锁定了 Linux 引导过程 • Mastodon 用户激增 • Arc 显卡的更新只能在支持英特尔 ME 的系统进行

![](/data/attachment/album/202211/07/170746s5y630xm53fez55b.jpg)

![](/data/attachment/album/202211/07/170755d8bivwffrxib7rbt.jpg)

### systemd 252 如预期的锁定了 Linux 引导过程

之前，我们 [报道](/article-15184-1.html) 过，systemd 创始人发文指出 Linux 引导过程不安全，并提出采用加密签名的统一内核镜像（UKI），使用 TPM 2.0 硬件加强 Linux 系统启动过程的安全性。UKI 将 Linux 内核和 initrd，以及一些其他的小组件，合并到一个文件中，允许整个文件被加密签名。在刚刚发布的 systemd 252 中，几个重要的功能都与新的 UKI 全签名启动过程有关。除此以外，还很一些重要特性也值得关注。

>
> **[消息来源：The Register](https://www.theregister.com/2022/11/03/version_252_systemd/)**
>
>
>

>
> 老王点评：我是觉得 sytemd 有些激进了，虽然确实 systemd 在引入新特性方面进展很快。
>
>
>

![](/data/attachment/album/202211/07/170808niq9okmlt6e697e1.jpg)

### Mastodon 用户激增

在埃隆·马斯克接管 Twitter 的一周内，Mastodon 激增了 23 万名用户，月活用户已达 65 万。但与 Twitter 相比，仍然非常少，Twitter 有将近 “2.38 亿日活用户”。其创始人说，“它显然没有 Twitter 那么大，但它是这个网络有史以来最大的。”Mastodon 出现于 2016 年，可以免费使用，也没有广告，由一个非营利组织开发的，并通过众筹获得支持。

>
> **[消息来源：CNN](https://www.cnn.com/2022/11/05/tech/mastodon/index.html)**
>
>
>

>
> 老王点评：没用过，也不知道是啥。
>
>
>

![](/data/attachment/album/202211/07/170823hp9gnntjtf9i8v91.jpg)

### Arc 显卡的更新只能在支持英特尔 ME 的系统进行

英特尔管理引擎（ME）是隐藏在英特尔 CPU 中的一个操作系统，它是一个修改版的 MINIX 3，运行在用户根本接触不到的 -3 层。这个事情我们以前 [介绍](/article-9040-1.html) 过。根据 Fwupd 开发者的消息，至少现在，英特尔的 Arc 显卡只能通过 ME 来更新其图形系统控制器的固件。因此，旧的英特尔系统或非英特尔系统，如 AMD、RISC-V 等系统，将无法更新 Arc 显卡的固件。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Intel-GSC-Firmware-Needs-ME)**
>
>
>

>
> 老王点评：这显然是越来越封闭了。从最近的一些趋势来看，一些硬件厂商看似开放，其实本质上还是想各种办法封闭起来。
>
>
>


如何在 Web 浏览器中启用深色模式

现在黑暗模式有了，请问linuxcn打算什么时候启用黑暗主题啊？

![](/data/attachment/album/202211/08/110615dax28a8fhx13hxhi.jpg)

>
> 本指南旨在帮助你在 Firefox、Chrome、Chromium 和 Edge 等流行的网页浏览器中启用深色模式。
>
>
>

我们都喜欢深色模式。与标准浅色模式相比，许多人更喜欢它。许多桌面应用原生提供深色模式，而一些应用则是通过桌面环境的底层模式适应深色模式。

不可否认，我们都在网页浏览器上花费了很多时间。我们很少使用桌面应用（除非你从事专门的工作，例如视频编辑等）。因此，当你花费大量时间在浏览器中阅读和学习时，你始终可以选择深色模式。不过，对于网页浏览器，启用深色模式的方法略有不同。

本指南为你提供了在 Firefox、Chromium、Chrome 和 Edge 浏览器中启用深色模式的简单步骤。

### 在网页浏览器中启用深色模式

#### 在 Firefox 中启用深色模式

打开 Firefox 并点击右上角的菜单。

单击 “<ruby> 设置 <rt>  Settings </rt></ruby> > <ruby> 扩展和主题 <rt>  Extension and Themes </rt></ruby>”。

选择 “<ruby> 深色主题 <rt>  Dark Theme </rt></ruby>” 并点击 “<ruby> 启用 <rt>  enable </rt></ruby>”。你应该会看到深色模式已应用于 Firefox。

![Enable dark mode in Firefox](/data/attachment/album/202211/08/110810neemc77dz6bd6c71.jpg)

*在 Firefox 浏览器中启用深色模式*

![Firefox in Dark Mode](/data/attachment/album/202211/08/110817k1zx1casxoz8n5nn.jpg)

*深色模式下的 Firefox*

要将其还原，请按照相同的步骤并选择浅色主题。

#### Chromium 和 Chrome 中的深色模式

默认情况下，Chromium 或 Chrome 不会预安装任何深色主题。因此，你需要前往 Chrome 应用商店并下载你想要的深色主题。对于本指南，我会推荐超过一百万用户使用的 “Morpheon Dark” 主题。

从 Chromium 浏览器打开 Morpheon Dark 主题页面（以下链接）。

>
> **[Chrome 应用商店中的 Morpheon Dark 主题](https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB)**
>
>
>

点击 “<ruby> 添加到 Chrome <rt>  Add To Chrome </rt></ruby>” 按钮。它应该会在 Chrome 中启用。

你可能想探索 Chrome 应用店中提供的其他深色或浅色主题。 [访问此页面获取所有深色主题的集合](https://chrome.google.com/webstore/category/collection/dark_themes)。

但是，你应该要记住的一件事是：此主题不会更改设置或上下文菜单，这是显而易见的。因为它只是改变了浏览器窗口，而这些菜单（有时）是操作系统本身的一部分。

![Chromium Dark Theme](/data/attachment/album/202211/08/110824gicty6szmmphaaoe.jpg)

*Chromium 深色主题*

对 Chrome 浏览器也遵循相同的步骤。

#### Edge 浏览器 – 深色模式

但是，[Edge 浏览器](https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/) 默认带有更好的深色主题。它允许你从设置中使用 GTK+、浅色和深色模式。

打开 Edge 浏览器，点击右上角的三个小点。

转到 “<ruby> 外观 <rt>  Appearance </rt></ruby>” 并选择 “<ruby> 深色 <rt>  Dark </rt></ruby>”。这样应该就好了。

Edge 的这种深色主题实现更好，因为它改变了上下文菜单和地址栏。

![Edge in Dark Theme](/data/attachment/album/202211/08/110832hiqo0bl0ig0oga0a.jpg)

*深色主题的 Edge*

### 总结

如果你是高级用户，你可能不需要本指南。你可以自己弄清楚。

但我们为所有读者涵盖了所有基础到高级教程。许多新的 Linux 用户可能不知道如何在浏览器中启用深色模式。

所以，就是说，我希望这对你和其他人有帮助。如果你遇到任何问题，请在下面的评论框中告诉我。

---

via: <https://www.debugpoint.com/dark-mode-browser/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


我们如何建立一个开源的设计系统来创造新的社区徽标

>
> 了解 Ansible 的新徽标是如何根据相关人员的意见开发的，以确保整个项目的品牌一致性。
>
>
>

![UX design Mac computer with mobile and laptop](/data/attachment/album/202211/08/123703nrcyz52pcoqvpn52.jpg "UX design Mac computer with mobile and laptop")

作为红帽的用户体验（UX）设计和 Ansible 产品团队的交互设计师，我们花了大约 6 个月的时间为 Ansible 社区设计了一系列徽标。这件事其实在更早的时候就开始了，当时一位项目经理要求我们为一个幻灯片提供一个 “快速而简单” 的徽标。在收集了一些需求后，我们在几天内就向相关人员展示了一个徽标，而且没有经过太多调整。几个月后，另一个相关人员说他们也需要类似的徽标，所以我们重复了这个过程。

于是，我们注意到一个模式：像这样的徽标资源不仅仅代表个人的要求，而是整个 Ansible 项目的共同需要。在完成了几个徽标要求后，我们有了一系列临时的设计，但在没有意识到品牌和设计惯例的情况下，这可能给整个 Ansible 的品牌视觉造成了不一致。随着这个徽标系列的增加，我们认识到了这个迫在眉睫的问题，并需要解决它。

我们的解决方案是创建一个 Ansible 设计系统，这是一个针对品牌的资源，可以指导未来一致的徽标设计。

### 什么是设计系统？

设计系统是一个可重复使用的资源和指导方法的集合，有助于告知任何数字产品套件的视觉语言。设计系统创造了一些模式，将独立的产品整合在一起，并通过可扩展性和一致性提升品牌。

特别是在一个有多种产品的大公司里，如果没有标准化，扩展起来就不容易，因为不同的团队对每个产品都有贡献。设计系统可以作为每个团队建立新资产的基线。有了标准化的外观和感觉，产品在整个组合中被统一为一个家族。

### 从头构建一个设计系统

在收到相关人员提出的为 Ansible 开源社区（如 Ansible Builder、Ansible Runner 和Project Receptor）创建徽标的一系列要求后，我们决定为我们的工作流程设计一个结构，并创建一个单一的事实来源，为之努力。

首先，我们对现有的徽标进行了视觉审计，以确定我们要做的是什么。Ansible 的原始徽标系列由四个主要图像组成：代表 AWX 的 Angry Spud，代表 Ansible 核心/引擎的 Ansibull，以及代表 AWX 的带翅膀的显示器。大部分的徽标都是用一致的红色阴影和公牛的形象联系在一起的，但是笔画的宽度、笔画的颜色、线条的质量和排版复杂而多样。

![Original Ansible logos](/data/attachment/album/202211/08/123717xdv8tzc0ddvobvdd.png "Original Ansible logos")

Angry Spud 使用棕褐色的轮廓和手绘风格，而 Ansibull 则是一个对称的几何矢量图。AWX 显示器是一个异类，它有细线画的翅膀，蓝色的矢量矩形，以及古英语字体（这里没有包括在内，但与家族中其他使用现代无衬线的字体相比，它是一个例外）。

### 确立新的设计标准

考虑到调色板、排版和图像，我们产生了一个一致的构图，以 Ansibull 代表所有核心的 Ansible 产品，以及大胆的线条和充满活力的颜色。

![Ansible design system](/data/attachment/album/202211/08/123727ws6ssdn4d4phrdh5.png "Ansible design system")

新的 Ansible 社区徽标设计风格指南详细说明了 Ansible 产品徽标的调色、排版、尺寸、间距和徽标变化。

新的风格指南展示了一种全新的、现代的定制字体，该字体基于瑞士独立字体厂商 [Grilli Type](https://www.grillitype.com/) 的 GT America 字体。我们为该字体创造了一个柔和的外观，通过圆润每个字母某些角落来配合图像的圆润度。

我们决定通过在光谱中加入更多的颜色并以原色为基础，设计一个更生动、更饱和、更普遍的调色板。新的调色板以浅蓝色、黄色和粉红色为主色调，每种颜色都有较浅的高光和较深的阴影。这种更广泛的颜色范围使系统内有更多的灵活性，并引入了 3D 的外观和感觉。

![New Ansible logos](/data/attachment/album/202211/08/123741zj0q6cfdgx5gxxdc.png "New Ansible logos")

我们还引入了新的图像，如 Receptor 和 AWX 徽标中的六边形，以保持视觉上的连续性。最后，我们确保每个徽标在浅色和深色背景上都能使用，以获得最大的灵活性。

### 拓展设计组合

一旦我们建立了核心徽标系列，我们就开始为 Ansible 服务创建徽章，如 Ansible Demo 和 Ansible Workshop。为了将服务与产品区分开来，我们决定将服务图形包围在一个圆圈中，圆圈中包含了相同的定制排版的服务名称。新的服务徽章显示了幼儿版的 Ansibull（来自 Ansible Builder 的徽标）正在完成与每个服务相关的任务，例如 Ansible Demo 指向白板，Ansible Workshop 则使用构建工具。

![New Ansible services logos](/data/attachment/album/202211/08/123752t8dkl0iqufzobeiq.png "New Ansible services logos")

### 利用开放源码进行设计决策

最初的 AWX 徽标受到了摇滚乐图像的影响，如翅膀和重金属字体（此处省略）。

![Original AWX logo](/data/attachment/album/202211/08/123809ya76zsoooifoqo3i.png "Original AWX logo")

(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/))

Ansible 社区的一些成员，包括红帽多样性和包容性小组，提请我们注意，这些元素类似于仇恨团体使用的图像。

考虑到原徽标的社会影响，我们必须迅速与 Ansible 社区合作，设计一个替代徽标。我们没有像最初的徽标那样闭门造车，而是扩大了项目的范围，仔细考虑了更多的相关人员，包括 Ansible 社区、红帽多样性和包容性小组，以及红帽法律团队。

我们开始了头脑风暴，向 Ansible 开源社区征求意见。Ansible 的一位工程师 Rebeccah Hunter 在草图绘制阶段做出了贡献，后来成为我们设计团队中的一员。让一大群相关人员参与进来的挑战之一是，我们对新的徽标概念有了各种各样的想法，比如一条辅助电缆、一碗拉面等等。

我们勾画了五个社区贡献的徽标创意，每个徽标都有不同的品牌视觉：一个芽、一个火箭、一个显示器、一碗拉面和一个辅助电缆。

![AWX logo concepts](/data/attachment/album/202211/08/123819ott2een6mue38tk5.jpg "AWX logo concepts")

在完成这些初步的概念草图后，我们建立了一个虚拟的投票机制，并在整个迭代过程中使用。这个投票系统使我们能够利用社区的反馈，从五个初始概念缩小到三个：火箭、一碗拉面和显示器。我们在这三个方向上进一步迭代，并通过专门的 Slack 频道进行反馈，直到我们找到一个符合社区愿景的方向，即 AWX 显示器。

![New AWX logo](/data/attachment/album/202211/08/123829r4eekh2qfeqm4n2q.png "New AWX logo")

以社区的意见为指导，我们围绕显示器为 AWX 打造了徽标概念。我们保留了原徽标中的显示器元素，同时使其外观和感觉现代化，以配合我们更新的设计系统。我们使用了更鲜艳的色调，更简洁的无衬线字体，以及来自 Project Receptor 徽标的元素，包括六角形图案。

通过从一开始就与我们的社区接触，我们能够在公开场合进行设计和迭代，所有相关人员都有一种包容感。最后，我们认为这是取代一个有争议的徽标的最好方法。最终的版本被移交给了红帽法律团队，在获得批准后，我们用这个新的徽标替换了所有的现有资产。

### 主要收获

为设计系统创建一套规则和资源，使你的数字产品全面保持一致，消除品牌混乱，并实现可扩展性。

当你探索在自己的社区建立一个设计系统时，你可能会从我们在这条路上学到的这些关键经验中受益：

* 用设计系统来扩展新的徽标，比没有设计系统要容易得多。
* 当你使用投票系统来验证结果时，杂乱无章的设计方案就会变得不那么令人生畏。
* 将大量受众的注意力引向三套方案，可以消除决策疲劳，集中社区反馈。

我们希望这篇文章能够提供用于开源社区的设计系统的启示，并帮助你认识到在早期开发一个系统的好处。如果你正在创建一个新的设计系统，你有什么问题？如果你已经创建了一个，你学到了什么教训？请在评论中分享你的想法。

*（图像来自：Fiona Lin and Taufique Rahman, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)）*

---

via: <https://opensource.com/article/21/4/ansible-community-logos>

作者：[Fiona Lin](https://opensource.com/users/fionalin) 选题：[lujun9972](https://github.com/lujun9972) 译者：[MareDevi](https://github.com/MareDEvi) 校对：[wxy](https://github.com/wxy)

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


前瞻：Xfce 4.18 主要新功能

Summary: 有关 Xfce 4.18 的核心和原生应用程序的功能的全面介绍。

我以为各种各大系统和桌面的圆角的设计已经够丑了，看了这些图才发现还有更丑的设计（也可能这些软件没做过设计？）。

小厂子哪来的设计，视觉设计非常耗时耗力(参考方正设计的100美元1个的微软雅黑字体），程序员修bug又没空，只能摆烂了

你的审美观有问题才觉得丑

来自广东广州的 Chrome Mobile 79.0|Android 7.0 用户

这用的gtk3的默认主题是真的丑，gtk4就顺眼多了

有关 Xfce 4.18 的核心和原生应用程序的功能的全面介绍。

>
> 有关 Xfce 4.18 的核心和原生应用程序的功能的全面介绍。
>
>
>

经过近两年的开发，Xfce 4.18 将在 2022 年圣诞节期间发布。作为 [Xfce 4.16](https://www.debugpoint.com/xfce-4-16-review/) 以来的重要的版本，其一直在开发标签 4.17 下进行开发，以增强这个轻量级桌面。

考虑到 GTK4 的更新、初步的 Wayland 支持，以及核心和本地应用程序的改进，Xfce 4.18 是一个重要的里程碑版本，其带来了大量更新。

从发布时间来看，第一个 Xfce 4.18 预发布版（pre1）已经发布。2022 年 12 月的第一周会有另一个预发布版。而 Xfce 4.18 的最终版本预计将在 2022 年 12 月 15 日至 12 月 29 日之间发布。

由于目前还没有官方的详细介绍，我在这篇文章中总结了 Xfce 4.18 的基本和主要功能。

请继续阅读。

![Xfce 4.18 pre1 (compiled in Arch)](/data/attachment/album/202211/08/153406pe8px2ttgx0pejx8.jpg)

### Xfce 4.18 的新功能

#### 1、核心库更新

Xfce 4.18 的依赖关系有所改变，并使用以下版本进行编译：

* glib-2.0 >= 2.66
* gtk >= 3.24
* libcairo >= 1.16
* gdk-pixbuf-2.0 >= 2.40
* gobject-introspection >= 1.66

#### 2、桌面和面板

顶部的主面板带来了新的设置和调整。但整体外观仍与以前的 4.16 版本中的一样。一些默认的面板小程序在这个版本中也有变化。桌面图标、右键上下文菜单和项目保持不变。

面板的首选项设置有两个新的选项。首先，面板的长度现在以**像素**设置，而不是百分比。其次，一个新的选项，“<ruby> 保持面板在窗口上方 <rt>  Keep panel above windows </rt></ruby>” ，可以让你将窗口对话放到面板后面。之前，应用程序的窗口只能达到面板的边缘。

![Xfce 4.18 中的面板首选项](/data/attachment/album/202211/08/153415a6a6066arlq2v0ml.jpg)

彻底修改了时钟小程序的设置。是的，你终于可以改变 Xfce 时钟小程序的字体风格。与此同时，它提供了四种时钟布局：

* 只有日期
* 只有时间
* 日期和时间
* 时间和日期

此外，你还可以向日历中添加命令。

![终于你可以改变 Xfce 时钟小程序的字体了](/data/attachment/album/202211/08/153425dh53mmbhy05qhhrr.jpg)

#### 3、Thunar 文件管理器

也许这个版本中最令人兴奋的变化是 Thunar 文件管理器的功能。首先，一个新的“搜索”图标取代了工具栏上的“重新加载”按钮。当点击时，它会在地址栏上出现搜索，可以使用你的搜索关键词进行递归搜索。重新加载按钮被放到了 “<ruby> 查看 <rt>  View </rt></ruby>” 菜单中。

其次，在左边的导航栏上增加了一个的新项目，“<ruby> 最近 <rt>  Recent </rt></ruby>”。在底部，元数据更有条理（从逗号分隔改为竖线分隔），还有一个新的上下文菜单项可以选择你想要显示的元数据。

![Thunar 4.18 的视觉变化](/data/attachment/album/202211/08/153440mq87yqwyq893qq8q.jpg)

Thunar 的主菜单有很多变化。下面列出了主要的变化。在下面的图片中还标注了自 4.16 以来的变化。

* 引入了一个**新的书签菜单**，可以将当前文件夹作为快捷方式添加到侧边栏。
* “<ruby> 编辑 <rt>  Edit </rt></ruby>”菜单有了 “<ruby> 撤销 <rt>  undo </rt></ruby>” 和 “<ruby> 重做 <rt>  redo </rt></ruby>” 选项。
* “<ruby> 前往 <rt>  Go </rt></ruby>” 菜单有了 “<ruby> 最近 <rt>  Recent </rt></ruby>” 和 “<ruby> 搜索 <rt>  Search </rt></ruby>” 的选项。

Thunar 首次通过 “<ruby> 视图 <rt>  View </rt></ruby>”菜单项有了“<ruby> 分割视图 <rt>  Split view </rt></ruby>”！ 是的，你现在可以在视图面板中拖放项目。

前不久，我 [报道](https://debugpointnews.com/thunar-image-preview/) 说图像预览即将在 Thunar 中出现。而它终于来了。作为谷歌代码之夏 2022 的部分开发成果，你现在可以嵌入在侧边栏中看到图片预览。或者在右边的一个独立的新面板上查看。它可以通过偏好设置来改变。

下面是它的外观。

![带有独立图像预览的 Thunar 分割视图](/data/attachment/album/202211/08/153454l88gdpbvdbu8gdbu.jpg)

![嵌入图像预览的 Thunar 分割视图](/data/attachment/album/202211/08/153504vykysz4nkhuodz6u.jpg)

#### 4、Thunar 的首选项

Thunar 设置中出现了大量调整。首先，一个新的选项卡可以为 Thunar 定制你的键盘快捷键。你可以直接指定新的快捷键组合，并从这个选项卡中改变现有的快捷键组合。

![Thunar 的新快捷键标签](/data/attachment/album/202211/08/153512ou72gng5sgwjdu49.jpg)

“<ruby> 显示 <rt>  Display </rt></ruby>” 设置中新增了一个缩略图部分，你现在可以指定缩略图的文件大小。缩略图的具体设置也被归为一组。

![4.18 版的 Thunar 显示设置](/data/attachment/album/202211/08/153520ju6c4pqsdpkcouuo.jpg)

“<ruby> 侧面板 <rt>  Side Pane </rt></ruby>” 选项卡有了一个新的图像预览选项，你在上面看到过。你可以设置为嵌入式或独立式预览。此外，“<ruby> 行为 <rt>  Behaviour </rt></ruby>” 选项卡增加了 “<ruby> 启动时恢复选项卡 <rt>  restore tabs on startup </rt></ruby>” 和在选项卡标题中显示 “<ruby> 完整的目录路径 <rt>  full directory path </rt></ruby>” 的选项，这将有很大帮助。

“<ruby> 高级 <rt>  Advanced </rt></ruby>” 选项卡为 “<ruby> 文件传输 <rt>  File Transfer </rt></ruby>” 提供了一个新的设置部分，有两个新的选项：“<ruby> 中间文件复制 <rt>  Intermediate file copy </rt></ruby>”和“<ruby> 验证校验和 <rt>  Verify checksum </rt></ruby>”。此外，在这个选项卡中还增加了一个新的递归搜索的选项。你还可以通过以下选项将 Thunar 设置为直接 “<ruby> 执行 Shell 脚本 <rt>  Execute Shell script </rt></ruby>”。

![Thunar 4.18 的高级选项](/data/attachment/album/202211/08/153525tiq7evh7ncnrjnhv.jpg)

除了上述变化外，文件夹属性对话框现在可以显示文件和文件夹的数量。另外，一个新的高亮选项使你能够为你的文件夹图标背景和前景选择任何自定义颜色。如果你有一个复杂的文件夹结构，这将使你能够快速导航。

下面是它的外观。

![文件夹高亮演示](/data/attachment/album/202211/08/153534qvl455qlo6oalow6.jpg)

#### 设置

“<ruby> 外观 <rt>  Appearances </rt></ruby>” 设置现在允许你打开和关闭对话框的标题栏。

“<ruby> 桌面 <rt>  Desktop </rt></ruby>” 设置允许文件上下文菜单中的删除选项（打开或关闭）。

“<ruby> 显示 <rt>  Display </rt></ruby>” 设置现在允许你为多种显示情况设置默认值：镜像、扩展显示还是什么都不做。早些时候，这些选项在显示器被连接时才可用。

#### Wayland 和其他更新

除了上述 Xfce 4.18 的功能外，窗口管理器和桌面还有许多额外的错误修复和性能改进。这些都是在底层的，你应该能感受到一个更精良的 Xfce 桌面体验。

Xfce 桌面核心和原生应用程序的 Wayland 迁移工作开始了。离它完全准备好还有很长的路要走。在这个版本中，你可能不会看到很多 Wayland 的更新。然而，许多应用程序在 Wayland 下已经可以正常工作了。你可以在 [本页](https://wiki.xfce.org/releng/wayland_roadmap) 了解更多关于迁移状态的信息。

### 下载及什么时候出现在发行版

Xfce 4.18 应该会在 2023 年 4 月进入 Ubuntu 23.04 Lunar Lobster，并在 Fedora 38 中出现。基于滚动发布的发行版，如 Arch Linux、Manjaro 和 OpenSUSE Tumbleweed 应该会在 2022 年 12 月发布后的几天内得到它。轻量级的流行发行版 [MX Linux](https://www.debugpoint.com/tag/mx-linux) 应该在 2023 年采用这个版本，这个时候也是 Debian Bookworm 更新的时候。

Xfce 4.18 的第一个预发布版本 [现已发布](https://www.reddit.com/r/xfce/comments/yjiwwv/announce_xfce_418pre1_released/)。你可以从下面的页面下载源码压缩包，并编译它们。请参考官方的 [编译指南](https://docs.xfce.org/xfce/building)。

>
> **[下载 Xfce 4.18 源代码（pre1）](https://archive.xfce.org/xfce/4.18pre1/fat_tarballs)**
>
>
>

### 总结

总的来说，变化的数量巨大。许多核心变化和需要的变化都进入了这个版本。Thunar 文件管理器的更新是早该进行的，对于 Xfce 的爱好者来说应该是完美的。

随着 Wayland 的支持，未来的 Xfce 版本可能会带来一个可行的 Xfce 版本。Wayland 的支持仍在进行中，每个组件都有许多决定有待作出。许多发行版和关键部署仍然喜欢 Xfce 而不是 KDE Plasma 或 GNOME。考虑到这些用例和未来的路线图，Xfce 4.18 是下一个版本之前的一个重要的里程碑。

列表中你最喜欢的功能是什么？请在评论栏里告诉我。

---

via: <https://www.debugpoint.com/xfce-4-18-features/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #814 美国没收窃取自丝绸之路的 33.6 亿美元比特币

Summary: • 美国没收窃取自丝绸之路的 33.6 亿美元比特币 • 被下载了数千次的偷取密码的 Python 软件包 • 微软在 Windows 11 的注销菜单中显示广告

Microsoft: I study from Chine's

不应该是Ubuntu吗？中国对不起你吗？你为什么要抹黑自己的国家？难道你不是中国人吗？谈产品就谈产品不要上升到国家层面。你啥也不是。

咱也不必先入为主认为这是国人自黑。用法语表达的中国，结合IP地址估计也有可能是法国的开源同道。

但凡你有点文化也不至于乱喷，最早是谁？乐视？小米ADUI？Ubuntu弟弟都不配，你是不是墙久了?

![](/data/attachment/album/202211/08/173122fl4z1p045a8c4hwc.jpg)

![](/data/attachment/album/202211/08/173131lh541ss243z40a1s.jpg)

### 美国没收窃取自丝绸之路的 33.6 亿美元比特币

现年 32 岁的 James Zhong 在 2012 年利用快存快取的方式从丝绸之路非法获取了 5 万枚比特币。他窃取的比特币当时只值 65 万美元，现在价值已超过 33 亿美元。去年 11 月，美国执法部门搜查了他的住处，查获了约 5 万枚比特币。这次扣押是当时美国司法部历史上最大的加密货币扣押。周一美国司法部宣布，James Zhong 已承认电信欺诈。

>
> **[消息来源：Slashdot](https://yro.slashdot.org/story/22/11/07/1447244/us-attorney-announces-336-billion-crypto-seizure-and-conviction-in-connection-with-silk-road-dark-web-fraud)**
>
>
>

>
> 老王点评：螳螂捕蝉黄雀在后。
>
>
>

![](/data/attachment/album/202211/08/173141c6bkff0xqkrzv0aq.jpg)

### 被下载了数千次的偷取密码的 Python 软件包

安全研究专家在 PyPi 上发现了 30 多个恶意 Python 软件包，试图安装 W4SP，这是一个可以从浏览器会话中偷取密码和 Cookie 的脚本。这些恶意软件包的名字听起来很普通，比如 typeutil、colorwin 等等。攻击者通常会复制一个现有的软件包，并稍作修改，以使用户错误输入时无意中安装了恶意软件。

>
> **[消息来源：Dev Class](https://devclass.com/2022/11/03/phylum-report-password-stealing-pypi-packages-discovered-downloaded-over-5700-times/)**
>
>
>

>
> 老王点评：虽然 PyPi 已经做了一些工作，但是显然还是为恶意行为留下了广阔空间。
>
>
>

![](/data/attachment/album/202211/08/173156oacl92alx95mwqqw.jpg)

### 微软在 Windows 11 的注销菜单中显示广告

根据用户反馈的截图，微软在 Windows 11 的注销菜单中宣传其 OneDrive 文件托管服务，并提示用户创建或完成他们的微软账户。不过，看起来这可能只是针对特定群体的 A/B 测试。微软以前也在文件资源管理器、开始菜单等处发布过各种广告。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/microsoft/microsoft-is-showing-ads-in-the-windows-11-sign-out-menu/)**
>
>
>

>
> 老王点评：不管是微软还是 Canonical，似乎都把用户安装的操作系统当成了自家的广告牌。问题是，这是谁赋予的权利？
>
>
>


如何在 Ubuntu 等 Linux 中安装 Python 3.11

>
> 打算为你的项目开发工作安装 Python 3.11？下面是如何在 Ubuntu 等发行版中安装 Python 3.11 的方法。
>
>
>

![](/data/attachment/album/202211/09/084627sf3qgfv0g9ms9mmf.jpg)

Python 3.11 于 2022 年 10 月 25 日发布，并声称比之前的 [Python 3.10](https://www.debugpoint.com/install-python-3-10-ubuntu/) 版本快 10% - 60%。

一如既往，3.11 中的功能和改进列表明显较多。下面是一个简介：

* 错误回溯更明确，可以指出导致错误的确切语句。
* 引入异常组和新的 except\* 语法。
* 你可以在基础表达式中添加自定义文本，以便在你的代码中更好地处理错误。
* 引入 Variadic 泛型，允许在 Python 数值库（如 NumPy）中使用类似数组的结构。
* 字典类型 TypedDict 得到了改进，现在你可以指定个别字典项目是必须的还是可选的。
* 引入了 Self 注解，允许类返回它们自己的类型实例。

还有很多，你可以在官方的 [3.11 亮点页面](https://docs.python.org/3.11/whatsnew/3.11.html) 上详细了解。

### Linux 发行版中的当前 Python 版本

[Ubuntu 22.04 LTS](https://www.debugpoint.com/ubuntu-22-04-review/) 带有 Python 3.10，而最近发布的 [Ubuntu 22.10 Kinetic Kudu](https://www.debugpoint.com/ubuntu-22-10/) 也是同样的版本。然而， Kinetick Kudu 可能会在几周内采用 3.11。

另外，[Fedora 37](https://www.debugpoint.com/fedora-37/) 已经有了 Python 3.11 RC2，并将提供该版本。

所以，如果你正在运行 Ubuntu 22.04 LTS、[Linux Mint 21](https://www.debugpoint.com/linux-mint-21-review/) 或任何基于 Ubuntu-LTS 的发行版，这里是你如何通过 PPA 安装 Python 3.11 的方法。

**注意**：谨慎地使用这个方法。确保你知道你在做什么，因为替换 Linux 发行版的基础 Python 版本可能会导致系统不稳定。许多默认的应用程序和软件包都依赖于 3.10 版本。

### 如何在 Ubuntu 和相关发行版中安装 Python 3.11

打开终端提示，添加以下 PPA：

```
sudo add-apt-repository ppa:deadsnakes/ppa

```

使用下面的命令刷新缓存：

```
sudo apt update

```

并使用下面的命令安装 Python 3.11：

```
sudo apt install python3.11

```

![在 Ubuntu 22.04 LTS 中安装 Python 3.11](/data/attachment/album/202211/09/084635sg7go00h6cotcgi7.jpg)

### 设置默认的 Python 版本

理论上，你可以在 Linux 发行版中安装多个版本的 Python，但只能默认一个版本。将 Python 3.11 设置为默认版本需要一些额外的步骤。请跟我做。

然而，在这之前，请确保你知道哪些应用程序依赖于 Python 3.10。你可以使用 `apt-cache rdepends` 命令轻松地找到它，如下所示：

```
debugpoint@debugpoint-22-04:~$ apt-cache rdepends python3.10
python3.10
Reverse Depends:
python3.10-dbg
python3.10-venv
python3.10-full
libpython3.10-testsuite
idle-python3.10
idle-python3.10
python3.10-minimal
python3.10-doc
python3.10-dev
python3
[截断]
python3
python3-uno
python3-all
gedit

```

#### 使用 Python 3.11 作为默认的 Python3

首先，从终端使用以下命令检查当前的默认版本：

```
python3 --version

```

使用 `update-alternatives` 来创建 `python3` 的符号链接：

```
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1

```

```
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2

```

并通过命令选择哪一个作为 Python3 使用：

```
sudo update-alternatives --config python3

```

![设置默认的 Python 版本为 3.11](/data/attachment/album/202211/09/084642h7bv6ftesb5kcmbk.jpg)

现在你可以开始在你当前的 Ubuntu 版本中使用最新的 Python 来进行工作/学习了。你可以使用上述命令切换到库存版本，并随时改变版本。

如果你使用上述安装方法切换到 3.11，那么请确保你检查所有必要的应用程序，看它们是否工作正常。

最后，如果你遇到问题，请在评论区告诉我。

---

via: <https://www.debugpoint.com/install-python-3-11-ubuntu/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


为你的 awk 脚本注入 Groovy

Summary: awk 和 Groovy 相辅相成，可以创建强大、有用的脚本。

awk 和 Groovy 相辅相成，可以创建强大、有用的脚本。

![](/data/attachment/album/202211/09/100129hp5bze5bbbbmddw6.jpg)

>
> awk 和 Groovy 相辅相成，可以创建强大、有用的脚本。
>
>
>

最近我写了一个使用 Groovy 脚本来清理我的音乐文件中的标签的系列。我开发了一个 [框架](https://opensource.com/article/22/8/music-tagging-framework-groovy)，可以识别我的音乐目录的结构，并使用它来遍历音乐文件。在该系列的最后一篇文章中，我从框架中分离出一个实用类，我的脚本可以用它来处理文件。

这个独立的框架让我想起了很多 awk 的工作方式。对于那些不熟悉 awk 的人来说，你学习下这本电子书：

>
> **[《awk 实用指南》](https://opensource.com/downloads/awk-ebook)**
>
>
>

我从 1984 年开始大量使用 awk，当时我们的小公司买了第一台“真正的”计算机，它运行的是 System V Unix。对我来说，awk 是非常完美的：它有<ruby> 关联内存 <rt>  associative memory </rt></ruby>——将数组视为由字符串而不是数字来索引的。它内置了正则表达式，似乎专为处理数据而生，尤其是在处理数据列时，而且结构紧凑，易于学习。最后，它非常适合在 Unix 工作流使用，从标准输入或文件中读取数据并写入到输出，数据不需要经过其他的转换就出现在了输入流中。

说 awk 是我日常计算工具箱中的一个重要部分一点也不为过。然而，在我使用 awk 的过程中，有几件事让我感到不满意。

可能主要的问题是 awk 善于处理以分隔字段呈现的数据，但很奇怪它不善于处理 CSV 文件，因为 CSV 文件的字段被引号包围时可以嵌入逗号分隔符。另外，自 awk 发明以来，正则表达式已经有了很大的发展，我们需要记住两套正则表达式的语法规则，而这并不利于编写无 bug 的代码。[一套这样的规则已经很糟糕了](http://regex.info/blog/2006-09-15/247)。

由于 awk 是一门简洁的语言，因此它缺少很多我认为有用的东西，比如更丰富的基础类型、结构体、`switch` 语句等等。

相比之下，Groovy 拥有这些能力：可以使用 [OpenCSV 库](http://opencsv.sourceforge.net/)，它很擅长处理 CSV 文件、Java 正则表达式和强大的匹配运算符、丰富的基础类型、类、`switch` 语句等等。

Groovy 所缺乏的是简单的面向管道的概念，即把要处理数据作为一个传入的流，以及把处理过的数据作为一个传出的流。

但我的音乐目录处理框架让我想到，也许我可以创建一个 Groovy 版本的 awk “引擎”。这就是我写这篇文章的目的。

### 安装 Java 和 Groovy

Groovy 是基于 Java 的，需要先安装 Java。最新的、合适的 Java 和 Groovy 版本可能都在你的 Linux 发行版的软件库中。Groovy 也可以按照 [Groovy 主页](https://groovy.apache.org/download.html) 上的说明进行安装。对于 Linux 用户来说，一个不错的选择是 [SDKMan](https://opensource.com/article/22/3/manage-java-versions-sdkman)，它可以用来获得多个版本的 Java、Groovy 和其他许多相关工具。在这篇文章中，我使用的是 SDK 的版本：

* Java：OpenJDK 11 的 11.0.12 的开源版本
* Groovy：3.0.8

### 使用 Groovy 创建 awk

这里的基本想法是将打开一个或多个文件进行处理、将每行分割成字段、以及提供对数据流的访问等复杂情况封装在三个部分：

* 在处理数据之前
* 在处理每行数据时
* 在处理完所有数据之后

我并不打算用 Groovy 来取代 awk。相反，我只是在努力实现我的典型用例，那就是：

* 使用一个脚本文件而不是在命令行写代码
* 处理一个或多个输入文件
* 设置默认的分隔符为 `|`，并基于这个分隔符分割所有行
* 使用 OpenCSV 完成分割工作（awk 做不到）

### 框架类

下面是用 Groovy 类实现的 “awk 引擎”：

```
@Grab('com.opencsv:opencsv:5.6')
import com.opencsv.CSVReader
public class AwkEngine {
    // With admiration and respect for
    //     Alfred Aho
    //     Peter Weinberger
    //     Brian Kernighan
    // Thank you for the enormous value
    // brought my job by the awk
    // programming language
    Closure onBegin
    Closure onEachLine
    Closure onEnd
    private String fieldSeparator
    private boolean isFirstLineHeader
    private ArrayList<String> fileNameList
    public AwkEngine(args) {
        this.fileNameList = args
        this.fieldSeparator = "|"
        this.isFirstLineHeader = false
    }
    public AwkEngine(args, fieldSeparator) {
        this.fileNameList = args
        this.fieldSeparator = fieldSeparator
        this.isFirstLineHeader = false
    }
    public AwkEngine(args, fieldSeparator, isFirstLineHeader) {
        this.fileNameList = args
        this.fieldSeparator = fieldSeparator
        this.isFirstLineHeader = isFirstLineHeader
    }
    public void go() {
        this.onBegin()
        int recordNumber = 0
        fileNameList.each { fileName ->
            int fileRecordNumber = 0
            new File(fileName).withReader { reader ->
                def csvReader = new CSVReader(reader,
                    this.fieldSeparator.charAt(0))
                if (isFirstLineHeader) {
                    def csvFieldNames = csvReader.readNext() as
                        ArrayList<String>
                    csvReader.each { fieldsByNumber ->
                        def fieldsByName = csvFieldNames.
                            withIndex().
                            collectEntries { name, index ->
                                [name, fieldsByNumber[index]]
                            }
                        this.onEachLine(fieldsByName,
                                recordNumber, fileName,
                                fileRecordNumber)
                        recordNumber++
                        fileRecordNumber++
                    }
                } else {
                    csvReader.each { fieldsByNumber ->
                        this.onEachLine(fieldsByNumber,
                            recordNumber, fileName,
                            fileRecordNumber)
                        recordNumber++
                        fileRecordNumber++
                    }
                }
            }
        }
        this.onEnd()
    }
}
```

虽然这看起来是相当多的代码，但许多行是因为太长换行了（例如，通常你会合并第 38 行和第 39 行，第 41 行和第 42 行，等等）。让我们逐行看一下。

第 1 行使用 `@Grab` 注解从 [Maven Central](https://mvnrepository.com/artifact/com.opencsv/opencsv) 获取 OpenCSV 库的 5.6 本周。不需要 XML。

第 2 行我引入了 OpenCSV 的 `CSVReader` 类

第 3 行，像 Java 一样，我声明了一个 `public` 实用类 `AwkEngine`。

第 11-13 行定义了脚本所使用的 Groovy 闭包实例，作为该类的钩子。像任何 Groovy 类一样，它们“默认是 `public`”，但 Groovy 将这些字段创建为 `private`，并对其进行外部引用（使用 Groovy 提供的 getter 和 setter 方法）。我将在下面的示例脚本中进一步解释这个问题。

第 14-16 行声明了 `private` 字段 —— 字段分隔符，一个指示文件第一行是否为标题的标志，以及一个文件名的列表。

第 17-31 行定义了三个构造函数。第一个接收命令行参数。第二个接收字段的分隔符。第三个接收指示第一行是否为标题的标志。

第 31-67 行定义了引擎本身，即 `go()` 方法。

第 33 行调用了 `onBegin()` 闭包（等同于 awk 的 `BEGIN {}` 语句）。

第 34 行初始化流的 `recordNumber`（等同于 awk 的 `NR` 变量）为 0（注意我这里是从 00 而不是 1 开始的）。

第 35-65 行使用 `each` `{}` 来循环处理列表中的文件。

第 36 行初始化文件的 `fileRecordNumber`（等同于 awk 的 `FNR` 变量）为 0（从 0 而不是 1 开始）。

第 37-64 行获取一个文件对应的 `Reader` 实例并处理它。

第 38-39 行获取一个 `CSVReader` 实例。

第 40 行检测第一行是否为标题。

如果第一行是标题，那么在 41-42 行会从第一行获取字段的标题名字列表。

第 43-54 行处理其他的行。

第 44-48 行把字段的值复制到 `name:value` 的映射中。

第 49-51 行调用 `onEachLine()` 闭包（等同于 awk 程序 `BEGIN {}` 和 `END {}` 之间的部分，不同的是，这里不能输入执行条件），传入的参数是 `name:value` 映射、处理过的总行数、文件名和该文件处理过的行数。

第 52-53 行是处理过的总行数和该文件处理过的行数的自增。

如果第一行不是标题：

第 56-62 行处理每一行。

第 57-59 调用 `onEachLine()` 闭包，传入的参数是字段值的数组、处理过的总行数、文件名和该文件处理过的行数。

第 60-61 行是处理过的总行数和该文件处理过的行数的自增。

第 66 行调用 `onEnd()` 闭包（等同于 awk 的 `END {}`）。

这就是该框架的内容。现在你可以编译它：

```
$ groovyc AwkEngine.groovy

```

一点注释：

如果传入的参数不是一个文件，编译就会失败，并出现标准的 Groovy 堆栈跟踪，看起来像这样：

```
Caught: java.io.FileNotFoundException: not-a-file (No such file or directory)
java.io.FileNotFoundException: not-a-file (No such file or directory)
at AwkEngine$_go_closure1.doCall(AwkEngine.groovy:46)

```

OpenCSV 可能会返回 `String[]` 值，不像 Groovy 中的 `List` 值那样方便（例如，数组没有 `each {}`）。第 41-42 行将标题字段值数组转换为 list，因此第 57 行的 `fieldsByNumber` 可能也应该转换为 list。

### 在脚本中使用这个框架

下面是一个使用 `AwkEngine` 来处理 `/etc/group` 之类由冒号分隔并没有标题的文件的简单脚本：

```
def ae = new AwkEngine(args, ':')
int lineCount = 0
ae.onBegin = {
    println “in begin”
}
ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber ->
    if (lineCount < 10)
        println “fileName $fileName fields $fields”
    lineCount++
}
ae.onEnd = {
    println “in end”
    println “$lineCount line(s) read”
}
ae.go()

```

第 1 行 调用的有两个参数的构造函数，传入了参数列表，并定义冒号为分隔符。

第 2 行定义一个脚本级的变量 `lineCount`，用来记录处理过的行数（注意，Groovy 闭包不要求定义在外部的变量为 `final`）。

第 3-5 行定义 `onBegin()` 闭包，在标准输出中打印出 “in begin” 字符串。

第 6-10 行定义 `onEachLine()` 闭包，打印文件名和前 10 行字段，无论是否为前 10 行，处理过的总行数 `lineCount` 都会自增。

第 11-14 行定义 `onEnd()` 闭包，打印 “in end” 字符串和处理过的总行数。

第 15 行运行脚本，使用 `AwkEngine`。

像下面一样运行一下脚本：

```
$ groovy Test1Awk.groovy /etc/group
in begin
fileName /etc/group fields [root, x, 0, ]
fileName /etc/group fields [daemon, x, 1, ]
fileName /etc/group fields [bin, x, 2, ]
fileName /etc/group fields [sys, x, 3, ]
fileName /etc/group fields [adm, x, 4, syslog,clh]
fileName /etc/group fields [tty, x, 5, ]
fileName /etc/group fields [disk, x, 6, ]
fileName /etc/group fields [lp, x, 7, ]
fileName /etc/group fields [mail, x, 8, ]
fileName /etc/group fields [news, x, 9, ]
in end
78 line(s) read
$

```

当然，编译框架类生成的 `.class` 文件需要在 classpath 中，这样才能正常运行。通常你可以用 `jar` 把这些 class 文件打包起来。

我非常喜欢 Groovy 对行为委托的支持，这在其他语言中需要各种诡异的手段。许多年来，Java 需要匿名类和相当多的额外代码。Lambda 已经在很大程度上解决了这个问题，但它们仍然不能引用其范围之外的非 final 变量。

下面是另一个更有趣的脚本，它很容易让人想起我对 awk 的典型使用方式：

```
def ae = new AwkEngine(args, ';', true)
ae.onBegin = {
    // nothing to do here
}
def regionCount = [:]
    ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber ->
        regionCount[fields.REGION] =
            (regionCount.containsKey(fields.REGION) ?
                regionCount[fields.REGION] : 0) +
            (fields.PERSONAS as Integer)
}
ae.onEnd = {
    regionCount.each { region, population ->
        println “Region $region population $population”
    }
}
ae.go()

```

第 1 行调用了三个函数的构造方法，`true` 表示这是“真正的 CSV” 文件，第一行为标题。由于它是西班牙语的文件，因此它的逗号表示数字的`点`，标准的分隔符是分号。

第 2-4 行定义 `onBegin()` 闭包，这里什么也不做。

第 5 行定义一个（空的）`LinkedHashmap`，键是 String 类型，值是 Integer 类型。数据文件来自于智利最近的人口普查，你要在这个脚本中计算出智利每个地区的人口数量。

第 6-11 行处理文件中的行（加上标题一共有 180,500 行）—— 请注意在这个案例中，由于你定义 第 1 行为 CSV 列的标题，因此 `fields` 参数会成为 `LinkedHashMap<String,String>` 实例。

第 7-10 行是 `regionCount` 映射计数增加，键是 `REGION` 字段的值，值是 `PERSONAS` 字段的值 —— 请注意，与 awk 不同，在 Groovy 中你不能在赋值操作的右边使用一个不存在的映射而期望得到空值或零值。

第 12-16 行，打印每个地区的人口数量。

第 17 行运行脚本，调用 `AwkEngine` 。

像下面一样运行一下脚本：

```
$ groovy Test2Awk.groovy ~/Downloads/Censo2017/ManzanaEntidad_CSV/Censo*csv
Region 1 population 330558
Region 2 population 607534
Region 3 population 286168
Region 4 population 757586
Region 5 population 1815902
Region 6 population 914555
Region 7 population 1044950
Region 8 population 1556805
Region 16 population 480609
Region 9 population 957224
Region 10 population 828708
Region 11 population 103158
Region 12 population 166533
Region 13 population 7112808
Region 14 population 384837
Region 15 population 226068
$

```

以上为全部内容。对于那些喜欢 awk 但又希望得到更多的东西的人，我希望你能喜欢这种 Groovy 的方法。

---

via: <https://opensource.com/article/22/9/awk-groovy>

作者：[Chris Hermansen](https://opensource.com/users/clhermansen) 选题：[lkxed](https://github.com/lkxed) 译者：[lxbwolf](https://github.com/lxbwolf) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #815 微软为 Linux 内核提供了套娃支持

Summary: • 微软为 Linux 内核提供了套娃支持 • 能打败顶尖的围棋 AI 却会输给业余选手 • Linux 内核中出现一个丑陋的“黑科技”

惊了，xz，xfs套件，二进制文件不都是x开头的吗

这提交者不会去修补X11吗，改内核做什么

等着你去修呢

来自江西南昌的 Chrome Mobile iOS 107.0|iOS 16.0 用户

属实是闭源细作渗透了

![](/data/attachment/album/202211/09/165723z4iu5f51f1t5i5il.jpg)

![](/data/attachment/album/202211/09/165748mxqez4armrddcrcj.jpg)

### 微软为 Linux 内核提供了套娃支持

微软提交了一个一百多行的补丁，使 Linux 内核可以在嵌套的微软虚拟化管理程序（MSHV）下运行，即可以在 Hyper-V 虚拟机中运行 Hyper-V 虚拟机。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Nested-MS-Hypervisor-Linux)**
>
>
>

>
> 老王点评：你真的需要在套娃运行 Linux 吗？你可以试试。
>
>
>

![](/data/attachment/album/202211/09/165922htz9k1okdkgpzzxt.jpg)

### 能打败顶尖的围棋 AI 却会输给业余选手

自从 AlphaGo 使用神经网络而通过自我对弈精通围棋后，人类就一败涂地了。研究人员创建了一个对抗性的围棋程序，使用一些超乎常规的下法训练，它在与业余棋手的对弈中败北，但是却可以打败一个顶尖的开源围棋 AI KataGo。KataGo 使用数百万次自我对弈学习围棋，但这仍然不足以覆盖所有可能的情况，留下了可利用的漏洞。研究显示，达到人类水平的 AI 往往会犯一些非常奇怪的错误，以让人类感到惊讶的方式失败。

>
> **[消息来源：Ars Technica](https://arstechnica.com/?p=1894833)**
>
>
>

>
> 老王点评：不按套路出牌，连 AI 都受不了。
>
>
>

![](/data/attachment/album/202211/09/165938ni48pzgbcn4rs3n6.jpg)

### Linux 内核中出现一个丑陋的“黑科技”

安全研究人员在 Linux 主线内核中发现了一个已经存在三年的“黑科技”：Linux 内核会识别以 “X” 字母开始的进程，并返回“不支持原子模式设置”的错误。这个丑陋的“黑科技”是为了解决旧版本的 [X.Org](http://x.org/) 服务器中的一个错误。但由于没有人愿意再维护 X11，于是这个补丁的提交者觉得，与其修复有问题的代码，不如调整内核以绕开。但事实上这只是检查第一个字母是否是 “X”，扩大了打击面，因为不是所有以 “X” 开头的进程都是 [X.Org](http://x.org/) 的进程。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Linux-DRM-Process-Start-With-X)**
>
>
>

>
> 老王点评：这样丑陋的代码显然会被 Linus 破口大骂的，不知道怎么悄悄潜入到内核当中的。
>
>
>


使用 PSCP 将文件和文件夹从 Windows 传输到 Linux

直接Filezilla登录SSH，通过FTP on SSH传不好？

![](/data/attachment/album/202211/10/074452ys2lgjdqq8gaj8rg.jpg)

>
> 开源的 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。
>
>
>

你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法？开源的 PSCP 程序可以轻松传输文件和文件夹，当然它是开源的。

### 在 Windows 中设置 PATH

了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程，请阅读 [如何在 Windows 上设置 PATH](https://opensource.com/article/22/10/set-path-powershell)。

### 使用 PSCP

PSCP（PuTTY 安全复制协议）是一个命令行工具，用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。

* 从 [网站](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) 下载 `pscp.exe`。
* 将 `pscp.exe` 移动到 `PATH` 中的文件夹（例如，如果你按照 [Opensource.com](http://Opensource.com) 上的 PATH 教程进行操作，则为 `Desktop\App`）。如果你没有设置 `PATH` 变量，你也可以将 `pscp.exe` 移动到保存要传输的文件的文件夹中。
* 使用 Windows 任务栏中的搜索栏在 Windows 计算机上打开 Powershell（在搜索栏中输入 `powershell`。）
* 输入 `pscp -version` 以确认你的计算机可以找到该命令。

### IP 地址

在进行传输之前，你必须知道目标计算机的 IP 地址或完全限定域名。假设它是同一网络上的计算机，并且你没有运行 DNS 服务器来解析计算机名称，你可以在 Linux 机器上使用 `ip` 命令找到目标 IP 地址：

```
[linux]$ ip addr show |grep 'inet '
inet 127.0.0.1/8 scope host lo
inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0

```

在所有情况下，127.0.0.1 都是计算机仅用于与自身通信的环回地址，因此在此示例中，正确的地址是 192.168.1.23。在你的系统上，IP 地址可能不同。如果你不确定哪个是哪个，你可以连续尝试每个，直到找到正确的（然后在某处写下来！）

或者，你可以查看路由器的设置，其中列出了通过 DHCP 分配的所有地址。

### 防火墙和服务器

`pscp` 命令使用 OpenSSH 协议，因此你的 Linux 计算机必须运行 OpenSSH 服务器软件，并且防火墙必须允许 SSH 流量。

如果你不确定你的 Linux 机器是否正在运行 SSH，请在 Linux 机器上运行以下命令：

```
[linux]$ sudo systemctl enable --now sshd

```

要确保你的防火墙允许 SSH 流量，请运行以下命令：

```
[linux]$ sudo firewall-cmd --add-servicessh --permanent

```

有关 Linux 上的防火墙的更多信息，请阅读 [使用防火墙使 Linux 更强大](https://opensource.com/article/19/7/make-linux-stronger-firewalls)。

### 传输文件

在这个例子中，我有一个名为 `pscp-test.txt` 的文件，我想将它从我的 Windows 计算机上的 `C:\Users\paul\Documents` 传输到我的目标 Linux 计算机主目录 `/home/paul`。

现在你已经有了 `pscp` 命令和目标地址，你可以传输测试文件 `pscp-test.txt`。打开 Powershell 并使用 `dir` 命令切换到示例文件所在的 `Documents` 文件夹：

```
PS> dir %USERPROFILE%\Documents\

```

现在执行传输：

```
PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul
| Password:
End of keyboard-interactive prompts from server
pscp-test.txt | 0 kb | 0.0 kB/s | ETA: 00:00:00 | 100%

```

这是语法，逐字逐句来：

* `pscp`：用于传输文件的命令。
* `pscp-test.txt` 是你要从 Windows 传输的文件的名称。
* `paul@192.168.1.23` 是我在 Linux 计算机上的用户名，以及 Linux 计算机的 IP 地址。你必须将其替换为你自己的用户和目的地信息。请注意，`pscp` 需要目标计算机上的目标路径，而 IP 地址末尾的 `:/home/paul` 指定我希望将文件复制到我的主文件夹。

对 Linux 计算机进行身份验证后，`pscp-test.txt` 文件将传输到 Linux 计算机。

### 验证已传输

在你的 Linux 计算机上，打开终端并使用 `ls` 命令验证文件 `pscp-test.txt` 是否出现在你的主目录中。

```
[linux]$ ls
Documents
Downloads
Music
Pictures
pscp-test.txt

```

### 从 Linux 系统复制文件

你不仅限于将文件复制到 Linux 系统。使用 `pscp`，你还可以将文件从 Linux 复制到 Windows。语法是一样的，只是反过来：

```
PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt

```

这是语法：

* `pscp`：用于传输文件的命令。
* `paul@192.168.1.23:/home/paul/pscp-test.txt` 是我在 Linux 计算机上的用户名、Linux 计算机的 IP 地址，以及我要复制的文件的路径。
* `%USERPROFILE%\Documents` 是我的 Windows 计算机上我要保存文件的位置。 请注意，在将文件复制回我的 Windows 计算机时，我可以给它一个新名称，例如 `pscp-win.txt`，以区别于原始文件。 当然，你不必重命名文件，但对于本演示来说，它是一个有用的快捷方式。

打开文件管理器以验证 `pscp-win.txt` 文件是否已从 Linux 计算机复制到 Windows `C:\Users\paul\Documents` 下。

![Image of a file manager.](/data/attachment/album/202211/10/074501j3lbc8ch4eseuvr6.png)

### 远程复制

借助开源 `pscp` 命令的强大功能，你可以访问家中的任何计算机、拥有帐户的服务器，甚至是移动设备和 [边缘设备](https://opensource.com/tags/edge-computing)。

---

via: <https://opensource.com/article/22/10/transfer-files-windows-linux-pscp>

作者：[Paul](https://opensource.com/users/plaubscher) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


使用 Lua 解析配置文件

Summary: 使用 Lua 配置持久化应用设置。

使用 Lua 配置持久化应用设置。

![](/data/attachment/album/202211/10/084609uq6vvp1vjzqzpc9k.jpg)

>
> 使用 Lua 配置持久化应用设置。
>
>
>

不是所有的应用都需要配置文件；对很多应用来说，在启动时变得焕然一新对它们更有利。例如，简单的工具就极少需要偏好项和设置在使用过程中保持稳定不变。然而，当你编写一个复杂的应用程序时，如果能让用户设置与应用的交互方式，以及应用与系统交互的方式会很不错。这就是配置文件用来做的事情。本文将讨论一些利用 Lua 进行持久化配置的方法。

### 选择一种格式

关于配置文件很重要的两点是一致性和可预见性。你不会希望为了保存用户偏好项，将信息转储到文件中，然后再花几天去编码实现“逆向工程”，处理最后出现在文件里的随机信息。

这里用一些常用的 [配置文件格式](https://opensource.com/article/21/6/config-files-and-their-formats)。Lua 有一些库可以处理大多数常用的配置格式；在本文中，我会采用 INI 格式。

### 安装库

Lua 库的核心仓库是 [Luarocks.org](https://opensource.com/article/19/11/getting-started-luarocks)。你可以在这个网站搜索库，或者你可以安装并使用 `luarocks` 终端命令。

Linux 环境中，你可以从发行版的软件仓库中下载它，例如：

```
$ sudo dnf install luarocks

```

在 macOS 上，请使用 [MacPorts](https://opensource.com/article/20/11/macports) 或者 [Homebrew](https://opensource.com/article/20/6/homebrew-mac)。在 Windows 上，请使用 [Chocolatey](https://opensource.com/article/20/3/chocolatey)。

`luarocks` 安装后，你可以使用 `search` 子命令来搜索一个恰当的库。如果你不知道库的名字，可以通过关键词来搜索这个库，例如 `ini`、xml`或者`json`，这取决于你想要用这个库做什么。打个比方，你可以搜索`inifile`， 这个库被我用来解析 INI 格式的文本文件。

```
$ luarocks search inifile
Search results:
inifile
 1.0-2 (rockspec) - https://luarocks.org
 1.0-2 (src) - https://luarocks.org
 1.0-1 (rockspec) - https://luarocks.org
 [...]

```

一个开发者容易犯的错误是在系统上安装了这个库却忘了把它和应用打包。这会给没有安装这个库的用户带来麻烦。为了防止这个问题发生，可以使用 `--tree` 选项将它安装在项目的本地文件夹中。如果你没有这个项目文件夹，那就先创建这个文件夹再安装库：

```
$ mkdir demo
$ cd demo
$ luarocks install --tree=local inifile

```

`--tree` 选项指示 `luarocks` 创建一个新文件夹并在其中安装你的库，例如这个例子中的 `local` 文件夹。 使用这个简单的技巧，你可以将所有你项目要使用的依赖项直接安装到项目文件夹中。

### 配置代码

首先，在一个名 `myconfig.ini` 的文件中创建一些 INI 数据。

```
[example]
name=Tux
species=penguin
enabled=false

[demo]
name=Beastie
species=demon
enabled=false

```

将这个文件保存到你的主目录下，命名为 `myconfig.ini`, *不要* 存到项目文件夹下。你通常会希望配置文件独立于你的文件存在，这样当用户卸载你的应用时，使用应用时产生的数据可以保存在系统中。有些用户会删除不重要的配置文件，但大多数不会。最终，如果他们要重装这个应用，还会保留着所有的用户偏好项。

配置文件的位置以技术来说并不重要，但每一个操作系统都有存储它们的特定或者默认的路径。在 Linux 中，这个路径由 [Freedesktop 规范](https://www.freedesktop.org/wiki/Specifications) 指定。它规定配置文件被保存在一个名为 `~/.config` 的隐藏文件夹中。为了操作时更加清晰明确，可以在主目录下存储配置文件，以便于使用和寻找。

创建第二个文件，命名为 `main.lua`，并在你喜欢的文本编辑器中打开它。

首先，你必须告诉 Lua 你将想要使用的附加库放置在哪里。`package.path` 变量决定了 Lua 到哪里去寻找这些库。你可以从终端中查看 Lua 默认的包地址：

```
$ Lua
> print(package.path)
./?.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua

```

在你的 Lua 代码中，将你本地库的路径添加到 `package.path` 中：

```
package.path = package.path .. ';local/share/lua/5.3/?.lua

```

### 使用 Lua 解析 INI 文件

当包的位置确定以后，下一件事就是引入 `inifile` 库并处理一些操作系统逻辑。即使这是一个很简单的应用，代码也需要从操作系统获取到用户主目录的路径，并建立在必要时将文件系统路径返回给操作系统的通信方式。

```
package.path = package.path .. ';local/share/lua/5.3/?.lua
inifile = require('inifile')

-- find home directory
home = os.getenv('HOME')

-- detect path separator
-- returns '/' for Linux and Mac
-- and '\' for Windows
d = package.config:sub(1,1)

```

现在你可使用 `inifile` 来从配置文件解析数据到 Lua 表中。一旦这些数据被导入进表中，你可以像查询其他的 Lua 表一样查询它。

```
-- parse the INI file and
-- put values into a table called conf
conf = inifile.parse(home .. d .. 'myconfig.ini')

-- print the data for review
print(conf['example']['name'])
print(conf['example']['species'])
print(conf['example']['enabled'])

```

在终端中运行代码可以看见结果：

```
$ lua ./main.lua
Tux
penguin
false

```

这看起来是正确的。试试在 `demo` 块中执行同样的操作。

### 使用 INI 格式存储数据

不是所有用来解析的库都会读写数据（通常被称为 \_编码 和 *解码*），但是 `inifile` 会这样做。这意味着你可以使用它对配置文件进行修改。

为了改变配置文件中的值，你可以对被解析的表中的变量进行设置，然后把表重写回配置文件中。

```
-- set enabled to true
conf['example']['enabled'] = true
conf['demo']['enabled'] = true

-- save the change
inifile.save(home .. d .. 'myconfig.ini', conf)

```

现在再来看看配置文件：

```
$ cat ~/myconfig.ini
[example]
name=Tux
species=penguin
enabled=true

[demo]
name=Beastie
species=demon
enabled=true

```

### 配置文件

按照用户的设想来存储数据对程序来说是至关重要的。幸运的是，这对工程师来说是一个很常规的任务，大多数工作可能早已被完成了。只要找到一个好用的库完成开放格式下编码和解码，你就能为用户提供一致且持续的体验。

以下是完整的演示代码，可供参考。

```
package.path = package.path .. ';local/share/lua/5.3/?.lua'
inifile = require('inifile')

-- find home directory
home = os.getenv('HOME')

-- detect path separator
-- returns '/' for Linux and Mac
-- and '\' for Windows
d = package.config:sub(1,1)

-- parse the INI file and
-- put values into a table called conf
conf = inifile.parse(home .. d .. 'myconfig.ini')

-- print the data for review
print(conf['example']['name'])
print(conf['example']['species'])
print(conf['example']['enabled'])

-- enable Tux
conf['example']['enabled'] = true

-- save the change
inifile.save(home .. d .. 'myconfig.ini', conf)

```

---

via: <https://opensource.com/article/21/6/parsing-config-files-lua>

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

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


硬核观察 #816 Fedora 38 考虑提供面向手机的版本

Summary: • Fedora 38 考虑提供面向手机的版本 • 罗马法院要求 Cloudflare 的 DNS 封锁 BT 网站 • 15000 个网站被黑帽 SEO 利用

老王 某个地方长期被DNS投毒，阻止解析。不知道你有什么看法

老王 某个地方长期被DNS投毒，阻止解析。不知道你有什么看法

互联网就是撕逼网，你拉着网线赚别人钱时就说公平共享，现在到别人赚你钱下载几个种子就说是盗版，什么是公平共享？这bt不就是共享本质吗?

不敢有看法。

![](/data/attachment/album/202211/10/105256sj3dv99sfjrpjr3w.jpg)

![](/data/attachment/album/202211/10/105308z763ishcmishxhsf.jpg)

### Fedora 38 考虑提供面向手机的版本

虽然 Fedora 37 还没有发布，但是开发人员已经在计划下一个版本。一个新的提案建议提供一个面向移动设备的 Phosh 镜像，用于运行专注于智能手机和平板电脑的 Wayland shell，同时提供一个良好的基于 GNOME 的体验。另外预计也会引入一个带有 KDE Plasma Mobile 的镜像。Fedora 38 预计明年春天发布。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Fedora-38-Phosh-Proposal)**
>
>
>

>
> 老王点评：期待看到 Fedora 运行在手机上。
>
>
>

![](/data/attachment/album/202211/10/105319qjjqbeljpqsvdmj7.jpg)

### 罗马法院要求 Cloudflare 的 DNS 封锁 BT 网站

罗马法院已经确认，Cloudflare 必须通过其公共的 1.1.1.1 DNS 解析器阻止三个 BT 网站。Cloudflare 并不反对阻止针对其客户网站的请求，但认为干扰其 DNS 解析器是有问题的，因为这些措施不容易在地理上加以限制，将影响封锁该政府管辖范围以外的终端用户。

>
> **[消息来源：Slashdot](https://yro.slashdot.org/story/22/11/09/2320228/court-upholds-piracy-blocking-order-against-cloudflares-1111-dns-resolver)**
>
>
>

>
> 老王点评：DNS 作为互联网流量入口的方向标，屡屡被用来做各种滥用。已经习惯了，不是吗？
>
>
>

![](/data/attachment/album/202211/10/105333u3mty066v9keyc6t.jpg)

### 15000 个网站被黑帽 SEO 利用

安全专家发现，有 15000 个网站（其中大部分是 WordPress 网站），这些网站被重定向到虚假的问答讨论区。恶意威胁者的目标是产生足够的索引页面，以增加虚假问答网站的权重，从而在搜索引擎中获得更好的排名。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/15-000-sites-hacked-for-massive-google-seo-poisoning-campaign/)**
>
>
>

>
> 老王点评：WordPress 这样的 CMS 系统越流行，其被一网打尽的可能越多，尤其是都采用了某些存在缺陷的插件或主题时。
>
>
>


Kate 文本编辑器增加了四个非常棒的新功能

Summary: 这个由 KDE 开发的功能丰富的文本编辑器正在变得更好和更有用！

棒棒哒

kate启动快，kwrite启动更快，写个sh脚本、 配置文件什么的，比VScode好用

使用过kde,gnome,xfce,lxqt几个桌面环境，就属kde的应用体积最大，启动最慢，

来自广东江门的 Chrome Mobile 104.0|Android 12 用户

这个由 KDE 开发的功能丰富的文本编辑器正在变得更好和更有用！

>
> 这个由 KDE 开发的功能丰富的文本编辑器正在变得更好和更有用！
>
>
>

![Kate 文本编辑器获得了四个非常棒的新功能](/data/attachment/album/202211/10/234753oeczppydgcgpr33z.jpg)

[Kate 文本编辑器](https://kate-editor.org/) 是一个不断发展和强大的开源文本编辑器，它可以作为微软的 Visual Studio Code 应用程序的替代品。

它可以在 Linux、Windows 和 macOS 上使用。

这个代码编辑器在 2021 年进行了重大升级，这可能使它成为了 KDE 对微软产品的回应。

在即将到来的 Kate 和 KWrite 22.12 版本上，他们的目标是添加许多非常有用的功能。

来简单看看我们可以从 Kate 中期待什么。

### ? Kate Editor 的新增功能

如果你读了 [Nate 的博客](https://pointieststick.com) 了解 KDE 的改进，你可能已经知道了 KDE Plasma 和应用程序即将获得的升级。

但是，我想强调一些 Kate 22.12 将会带来的令人激动的新功能：

* 对 Qt 部件的支持
* 更新的欢迎页面
* Git 差异查看器
* 配置标签页
* 剪切板历史

#### 欢迎页面

![kate 22.12 欢迎页面](/data/attachment/album/202211/10/234753bnio6v3v011emanc.png)

和许多其他 [KDE 应用程序](https://news.itsfoss.com/content/images/2022/11/Kate_22.12_GitDiff-1.png) 一样，Kate 现在将显示一个欢迎页面，该页面将欢迎用户并显示创建或打开文件、启动新会话、查看最近的文档等选项。

对于不喜欢这个页面的用户，欢迎页面上将提供一个选项，以在新窗口上禁用欢迎页面。

#### Git 差异查看器

![kate 22.12 git 差异支持](/data/attachment/album/202211/10/234756m69i996bei6jb94n.png)

Kate 终于增加了对显示 git-diff 的支持；用户将能够比较他们的代码以检查差异，并找到那些令人讨厌的、会导致他们的应用程序无法正常运行错误。

用户也可以从多种视图中进行选择，例如统一视图、并排视图和原始视图。

#### 新的剪贴板历史粘贴对话框

![kate 22.12 剪贴板历史](/data/attachment/album/202211/10/234757zmfy93mmrjffg7rh.png)

Kate 现在添加了一个新的对话框，在粘贴的时候显示用户剪贴板内容的列表。

当你在多行代码之间切换，而又不想丢失重要的内容时，这可能会很有用。

#### 配置标签页

![kate 22.12 配置标签页](/data/attachment/album/202211/10/234758h073i9zwsb440his.png)

Kate 也将添加一个配置标签页，让用户可以更改重要的设置，并添加了一个搜索栏，使用户可以快速查找特定的设置。

#### ? 其他变更和改进

Kate 22.12 将带来的其他值得注意的改进包括：

* 优化的状态栏
* 对构建插件的改进
* 可移动的侧边栏按钮
* 对窗口处理的改进

Kate 正在成为微软的 [Visual Studio Code](https://code.visualstudio.com/) 的合适替代品，并且自 2021 年大规模重构以来已经取得了很大的进步。

在 Kate 的 [官方博客文章](https://kate-editor.org/post/2022/2022-10-31-treats-for-kate/) 中，你可以了解更多关于这些变化的信息，并看看它们实际是怎么工作的。

? 你期待 Kate 22.12 的发布吗？还是更喜欢 VS Code？

---

via: <https://news.itsfoss.com/kate-editor-22-12-features/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[Cubik65536](https://github.com/Cubik65536) 校对：[wxy](https://github.com/wxy)

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


Ubuntu 所有版本的吉祥物

Summary: 在这篇文章中，我们会介绍迄今为止所有 Ubuntu 发行版本的吉祥物。

在这篇文章中，我们会介绍迄今为止所有 Ubuntu 发行版本的吉祥物。

![](/data/attachment/album/202211/11/130502q6500yvm0znvktz9.jpg)

>
> 在这篇文章中，我们会介绍迄今为止所有 Ubuntu 发行版本的吉祥物。
>
>
>

你可能已经注意到了：每个 Ubuntu 版本都会有一个版本名称和代号。代号由两个单词组成，这两个单词有相同的首字母，第一个单词是形容词，另一个单词通常是一个濒危的物种名称。

对应于其代号，这些 Ubuntu 版本也有一个吉祥物。例如，Ubuntu 22.04 的代号为 “Jammy Jellyfish”，因此 Ubuntu 22.04 的桌面壁纸上有 **吉祥物：水母** 的图像。

但是实际上，这些“吉祥物”并不总是 Ubuntu 版本的一部分，因为吉祥物在早期的 Ubuntu 版本中是没有的。

有史以来第一个 Ubuntu 版本是在 2004 年 10 月发布的 4.10 版（LCTT 译注：Ubuntu 的版本号是由年份和月份的组合来表示的。）但是，直到 Ubuntu 8.04 LTS “Hardy Heron” 版本，你才会看到相关的吉祥物。

在我之前写的 [另一篇文章](https://itsfoss.com/Ubuntu-default-wallpapers-download/) 中，我整理了所有 Ubuntu 版本的默认壁纸。在本文中，你将了解到所有 Ubuntu 版本的吉祥物。

现在，就让我们按时间倒序，一起进入 Ubuntu 的吉祥物之旅吧。

（LCTT 校注：本文原文发表时，Ubuntu 22.10 尚未发布，它的代号是 “Kinetic Kudu”，吉祥物是“捻角羚”。）

（LCTT 校注：由于 Ubuntu 系列的代号和吉祥物选择的都是比较少见的动物和晦涩的描述，因此尽管译者和校对虽然尽力了，但是应该还有谬误。我觉得原文作者为了找出这些说明也尽力，恐怕真正权威的诠释只有 Canonical 才能给出吧。）

### Ubuntu 22.04 Jammy Jellyfish（幸运水母）

![Ubuntu 22.04 mascot](/data/attachment/album/202211/11/130510z9k7cccc1mocgono.jpg)

于 2021 年 4 月 21 日发布。

Jammy 的意思是被果酱覆盖着的、充满果酱的。不太正式地，Jammy 还有**幸运**的意思。

<ruby> 水母 <rt>  Jellyfish </rt></ruby> 是一种自由游动的水生动物，它的身体就像是一把透明伞，还具有拖曳的触须。少数水母是通过茎干固定在海床上，而不能移动。全世界的海洋中有超过两百种的水母，它们分布于全球各地的水域里。

### Ubuntu 21.10 Impish Indri（顽皮大狐猴）

![Ubuntu 21.10 mascot](/data/attachment/album/202211/11/130510z37173h11xz2z1zh.jpg)

于 2021 年 10 月 14 日发布。

Impish 的意思是以**顽皮**而不是严肃的方式，对某人/某事不太尊重。

<ruby> 大狐猴 <rt>  Indri </rt></ruby>，也称为 babakoto，是现存的最大的狐猴之一。它的头身长约 64 至 72 厘米，体重在 6 至 9.5 公斤之间。它的毛发是黑白相间的。在攀爬或攀爬时，它会保持竖直的姿势。

>
> 据维基：2014 年的世界自然保护联盟（IUCN） <ruby> 红色名录 <rt>  Red List </rt></ruby> 中，仅出现在马达加斯加的大狐猴首次被提升至极危级别。
>
>
>

### Ubuntu 21.04 Hirsute Hippo（多毛河马）

![Ubuntu 21.04 mascot](/data/attachment/album/202211/11/130511egpjehejuacjmglz.jpg)

于 2021 年 4 月 22 日发布。

Hirsute 的意思是**多毛的**。

<ruby> 河马 <rt>  Hippo </rt></ruby>，是一种生活在非洲大陆撒哈拉以南的大型半水生哺乳动物。河马是河马科中仅有的两个现存物种之一，另一个物种是 <ruby> 侏儒河马 <rt>  pygmy hippopotamus </rt></ruby>。河马的名字来源于古希腊语“river horse”。

>
> 据维基：在 2006 年 5 月已被 IUCN 红色名录中分为易危物种，世界仅存约 12.5 万－15 万头
>
>
>

但是其实，我并没有见过很多多毛的河马 ?。

### Ubuntu 20.10 Groovy Gorilla（时髦大猩猩）

![Ubuntu 20.10 mascot](/data/attachment/album/202211/11/130511bmbpvlwkzzcbk3c0.jpg)

于 2020 年 10 月 22 日发布。

Groovy 的意思是**时尚的**和令人兴奋的。

<ruby> 大猩猩 <rt>  Gorilla </rt></ruby>，是一种草食性的地栖巨猿。它主要栖息在赤道非洲的热带森林中。大猩猩属分为两个物种：东部大猩猩和西部大猩猩，以及进一步可分为四个或五个亚种。

### Ubuntu 20.04 LTS Focal Fossa（瞩目狸猫）

![Ubuntu 20.04 mascot](/data/attachment/album/202211/11/130511glmmm6hxd6slii7d.jpg)

于 2020 年 4 月 23 日发布。

Focal 的意思是令人注目的、**瞩目**。

<ruby> 马岛长尾狸猫 <rt>  Fossa </rt></ruby>，是**马达加斯加岛上最大的食肉性哺乳动物**。它身体的长度可以达到近六英尺，其中它们的长尾巴占了一半。它们看起来就像是猫、狗和獴的杂交体。它们有细长的身体、肌肉发达的四肢和短的红棕色毛发。

### Ubuntu 19.10 Eoan Ermine（东方白鼬）

![Ubuntu 19.10 mascot](/data/attachment/album/202211/11/130511x8iiuioc343zc935.jpg)

于 2019 年 10 月 17 日发布。

Eoan 的意思是**与黎明或东方有关的**。

<ruby> 白鼬 <rt>  Stoat </rt></ruby>，也被称为欧亚貂、白令貂，简称 <ruby> 貂 <rt>  Ermine </rt></ruby>，是一种原产于欧亚大陆和北美北部的鼬科动物。由于鼬在极地广泛分布，因此它被 IUCN 列为最不担忧灭绝的物种。

>
> 据维基：IUCN 将其列为世界百大外来入侵种。
>
>
>

### Ubuntu 19.04 Disco Dingo（迪斯科野犬）

![Ubuntu 19.04 mascot](/data/attachment/album/202211/11/130511j7e4lee4ker581e7.jpg)

于 2019 年 4 月 18 日发布。

Disco 与**迪斯科**音乐和夜总会有关。

<ruby> 澳洲野犬 <rt>  Dingo </rt></ruby>，是在澳大利亚发现的一种古老的犬种。澳洲野犬的科属分类在不同出版物中不太一样，因此它的科属分类存在争议。

### Ubuntu 18.10 Cosmic Cuttlefish（外星墨鱼）

![Ubuntu 18.10 mascot](/data/attachment/album/202211/11/130512kyfckfq8y8yafzzq.jpg)

于 2018 年 10 月 18 日发布。

Cosmic 意味着与地球**不同的**、宇宙的。

<ruby> 墨鱼 <rt>  Cuttlefish </rt></ruby>，是乌贼目的一种海洋软体动物。它属于头足类，这一类还包含了鱿鱼、章鱼和鹦鹉螺。墨鱼有一个独特的内壳，即墨鱼骨，它可以用于控制浮力。

### Ubuntu 18.04 LTS Bionic Beaver（仿生河狸）

![Ubuntu 18.04 mascot](/data/attachment/album/202211/11/130512rydjc3iojoc4ed1r.jpg)

于 2018 年 4 月 26 日发布。

Bionic 意味着**仿生的**，或者是机电的。

<ruby> 河狸 <rt>  Beaver </rt></ruby>，是北半球温带的一种大型半水生啮齿动物。有两种现存的海狸：北美河狸和欧亚河狸。河狸是仅次于水豚的现存第二大啮齿动物。

>
> 据维基：它们处于 IUCN 哺乳动物红色名录中的无危物种，在中国河狸被列为一级保护动物。
>
>
>

英国用户认为这个版本的名称特别有趣。

### Ubuntu 17.10 Artful Aardvark（机灵土豚）

![Ubuntu 17.10 mascot](/data/attachment/album/202211/11/130512pi7z44kok14j621l.jpg)

于 2017 年 10 月 19 日发布。

Ubuntu 在此版本中默认切换回了 GNOME。

Artful 的意思是聪明的或**机灵的**。

<ruby> 土豚 <rt>  Aardvark </rt></ruby>，是一种原产于非洲的穴居、夜间活动的中型哺乳动物。它是管齿目中唯一的现存物种。与大多数其他食虫动物不同，它有一个长长的像猪一样的鼻子，可以闻出食物在哪里。

### Ubuntu 17.04 Zesty Zapus（开心跳鼠）

![Ubuntu 17.04 mascot](/data/attachment/album/202211/11/130512nb1gbsbasrrc5zqn.jpg)

于 2017 年 4 月 13 日发布。

这个版本是最后一个以 Unity 桌面为特色的版本。

Zesty 意味着有一种强烈的、**令人开心的**、有点辛辣的味道。

<ruby> 跳鼠 <rt>  Zapus </rt></ruby> 是北美跳鼠中唯一一个有牙齿的一个属。跳鼠是除 <ruby> 指猴 <rt>  Aye-aye </rt></ruby>之外，唯一现存的有 18 颗牙齿的哺乳动物。

### Ubuntu 16.10 Yakkety Yak（唠叨牦牛）

![Ubuntu 16.10 mascot](/data/attachment/album/202211/11/130513cclkvee6e9jsn3ce.jpg)

于 2016 年 10 月 13 日发布。

Yakkety 有很多意思。OMG Ubuntu 说，“yakking” 有唠唠叨叨这一非正式意思，yakkety 还可能是一种知名的流行爵士乐器 “Yakety Sax” 的另一种拼写。

<ruby> 牦牛 <rt>  Yak </rt></ruby>，是一种大型驯养的野牛。它的毛发蓬松，肩部隆起，有很大的角。在一些地方它是一种驮畜，人们也可以食用它的奶和肉、以及加工它的皮制作东西。

### Ubuntu 16.04 LTS Xenial Xerus（好客地松鼠）

![Ubuntu 16.04 mascot](/data/attachment/album/202211/11/130513qk4z00khkw1kphpt.jpg)

于 2016 年 4 月 21 日发布。

Xenial 的意思是**热情好客的**。

<ruby> 非洲地松鼠 <rt>  Xerus </rt></ruby>，有四个亚种，分别是**开普地松鼠，条纹地松鼠，山地松鼠和无条纹地松鼠**。这些动物是昼行性的，是食草动物，通常吃坚果、根和种子。然而，有时它们也会吃蛋类和其他小动物。

### Ubuntu 15.10 Wily Werewolf（狡猾狼人）

![Ubuntu 15.10 mascot](/data/attachment/album/202211/11/130514rw9sf3v9hksw02kf.jpg)

于 2015 年 10 月 22 日发布。

这个版本可能是少有的发布代号中带有虚构动物的 Ubuntu 版本之一。

Wily 的意思是善于获得优势，尤其在欺骗上十分**狡猾的**。

<ruby> 狼人 <rt>  Werewolf </rt></ruby>，是可以隐藏住耳朵和尾巴的一种神话生物。它是人，也是狼，大多数人因为它们的长相而害怕它们。

### Ubuntu 15.04 Vivid Vervet（活泼绿猴）

![Ubuntu 15.04 mascot](/data/attachment/album/202211/11/130514yl6lfs06iirsdslr.jpg)

于 2015 年 4 月 23 日发布。

Vivid 的意思是**活泼**的、明亮的。

<ruby> 黑长尾猴 <rt>  Vervet monkey </rt></ruby>，是一种原产于非洲的角猿科的旧大陆猴。“vervet”一词也用于表示<ruby> 绿猴属 <rt>  Chlorocebus </rt></ruby>的所有动物，其中包含五个不同的亚种，这五个不同的亚种主要分布在南部非洲以及一些东部国家。

### Ubuntu 14.10 Utopic Unicorn（乌托邦独角兽）

![Ubuntu 14.10 mascot](/data/attachment/album/202211/11/130514sd2u3yvvqc7u7q32.jpg)

于 2014 年 10 月 23 日发布。

这个版本是另一个其发布代号中带有虚构动物的 Ubuntu 版本。

Utopic 与**乌托邦**有关，乌托邦是一个虚构的、不存在但是一个理想的地方。

<ruby> 独角兽 <rt>  Unicorn </rt></ruby>，是一种传说中的生物。自古以来，它就被描述为前额有一个巨大的、尖的、螺旋状的角的一种野兽。

### Ubuntu 14.04 LTS Trusty Tahr（可靠塔尔羊）

![Ubuntu 14.04 mascot](/data/attachment/album/202211/11/130514fo2727pb6gqnnocp.jpg)

于 2014 年 4 月 17 日发布。

Trusty 意味着**可靠的**或忠实的。

<ruby> 塔尔羊 <rt>  Tahr </rt></ruby>，是一种很像山羊的哺乳动物。它们会栖息在阿曼、印度南部和喜马拉雅山脉的悬崖和山坡上。

### Ubuntu 13.10 Saucy Salamander（活泼蝾螈）

![Ubuntu 13.10 mascot](/data/attachment/album/202211/11/130515ltnrzkqt7601qtq0.jpg)

于 2013 年 10 月 17 日发布。

Saucy 意味着大胆的、**活泼的**或精神饱满的。

<ruby> 蝾螈 <rt>  Salamander </rt></ruby>是一类两栖动物。其典型特征是有着蜥蜴般的外观，它们有细长的身体，钝的鼻子，以及与身体成直角突出的短肢，并且幼体和成体都有尾巴。现存的所有十个蝾螈科都属于有尾目。

### Ubuntu 13.04 Raring Ringtail（热情猫熊）

![Ubuntu 13.04 mascot](/data/attachment/album/202211/11/130515yux5fdr5u5uvrqyg.jpg)

于 2013 年 4 月 25 日发布。

Raring 的意思是热情的和**非常渴望做某事**。

<ruby> 猫熊 <rt>  Ringtail </rt></ruby>，是**一种像猫一样大的食肉动物，类似于一只长着浣熊尾巴的小狐狸**。它浓密的尾巴是扁平的，几乎和头部和身体一样长，有黑白交替的环。它们是夜行动物，一天中的大部分时间都在它们的巢穴里睡觉。

### Ubuntu 12.10 Quantal Quetzal（量子大咬鹃）

![Ubuntu 12.10 mascot](/data/attachment/album/202211/11/130515dcw33vfacsffio0q.jpg)

于 2012 年 10 月 18 日发布。

Quantal 意味着与**量子**或量子理论有关的。

<ruby> 大咬鹃 <rt>  Quetzal </rt></ruby>，是咬鹃家族中的一种色彩鲜艳的鸟类。它们生活在森林中，主要是在潮湿的高地。来自*凤尾绿咬鹃属*的五种物种生活在新热带的，而另外一个物种，即角咬鹃，生活在墨西哥和美国最南端的局部地区。大咬鹃相当地大，它们的身体长度超过 32 厘米或者有 13 英寸长，比其他咬鹃科的物种都大。绚丽的大咬鹃因其鲜艳的色彩，而成为危地马拉的国鸟。

### Ubuntu 12.04 LTS Precise Pangolin（精准穿山甲）

![Ubuntu 12.04 mascot](/data/attachment/album/202211/11/130515hz00w30q3o1a6ozg.jpg)

于 2012 年 4 月 26 日发布。

Precise 意味着能**精确**或准确地表达细节。

<ruby> 穿山甲 <rt>  Pangolin </rt></ruby>，有时被称为有鳞食蚁兽，是鳞甲目的一种哺乳动物。它现存的一个科是穿山甲科，有三个属：穿山甲亚属、长尾穿山甲亚属和地穿山甲亚属。穿山甲亚属包括在亚洲发现的四种物种，而长尾穿山甲亚属和地穿山甲亚属各包括两种物种，均在撒哈拉以南非洲发现。

>
> 据维基百科：2014 年，IUCN 红色名录物种存续委员会穿山甲专门小组，指出穿山甲是目前全世界最常被走私买卖的哺乳动物。所有穿山甲都面临巨大的生存威胁，其中中华穿山甲和马来穿山甲被 IUCN 评估为“极危”物种，非法走私的活动极为猖獗。随着亚洲的 4 种穿山甲数量锐减，走私贸易商家已转移目标至非洲，以满足市场上的庞大需求。
>
>
>

### Ubuntu 11.10 Oneiric Ocelot（梦幻豹猫）

![Ubuntu 11.10 mascot](/data/attachment/album/202211/11/130516qkkrq0j40k0gvxee.jpg)

于 2011 年 10 月 13 日发布。

Oneiric 的意思是与**梦**有关的。

<ruby> 豹猫 <rt>  Ocelot </rt></ruby>，是一种中等大小的斑点野猫。它的肩长可达 40 至 50 厘米，体重在 8 至 15.5 公斤之间。<ruby> 卡尔·林奈 <rt>  Carl Linnaeus </rt></ruby> 于 1758 年首次在书中描述了它。

>
> 据维基：华盛顿公约将孟加拉国、印度以及泰国的豹猫族群列入附录一禁止进行国际贸易，而其他族群亦列入华盛顿公约附录二。
>
>
>

### Ubuntu 11.04 Natty Narwhal（聪明独角鲸）

![Ubuntu 11.04 mascot](/data/attachment/album/202211/11/130516f9e08e5l00p5xj8a.jpg)

于 2011 年 4 月 28 日发布。

这个版本是第一个采用 Unity 桌面的版本。

Natty 意味着**聪明**和时尚的。

<ruby> 独角鲸 <rt>  Narwhal </rt></ruby>，是一种中等大小的齿鲸。拥有一颗突出的犬齿的大“獠牙”。它常年生活在格陵兰、加拿大和俄罗斯周围的北极水域。它是一角鲸科中现存的两种鲸鱼物种之一，另一个物种是 <ruby> 白鲸 <rt>  Beluga whale </rt></ruby>。

### Ubuntu 10.10 Maverick Meerkat（独行猫鼬）

![Ubuntu 10.10 mascot](/data/attachment/album/202211/11/130516o1ytt47pf4rbilkw.jpg)

于 2010 年 10 月 10 日发布。

Maverick 的意思是**特立独行的**或有独立思想的。

<ruby> 猫鼬 <rt>  Meerkat </rt></ruby>，是一种在南部非洲发现的小型猫鼬。它的特点是头宽、眼睛大、鼻子尖、腿长、尾巴很细，毛色有斑纹。

### Ubuntu 10.04 LTS Lucid Lynx（清醒猞狸）

![Ubuntu 10.04 mascot](/data/attachment/album/202211/11/130517k7nm6fpmdtkdkvs6.jpg)

于 2010 年 4 月 29 日发布。

Lucid 意味着**易于理解的**或明亮的。

<ruby> 猞猁 <rt>  Lynx </rt></ruby>，是中型野猫属猞猁中的一种。猞猁这个名字起源于中古英语，源自希腊语 λύγξ，λύγξ 又源自于印欧语词根 leuk-，指的是它眼睛能反射发光的样子。

### Ubuntu 9.10 Karmic Koala（幸运考拉）

![Ubuntu 9.10 mascot](/data/attachment/album/202211/11/130517o66jhjmhqdhn6h8q.jpg)

于 2009 年 10 月 29 日发布。

Karmic 意味着与**命运**、业力有关。

<ruby> 考拉 <rt>  Koala </rt></ruby>，是一种原产于澳大利亚的树栖草食性的有袋动物。它是袋鼠科唯一现存的物种，它的近亲是<ruby> 袋熊 <rt>  Wombat </rt></ruby>。

>
> 据维基：在 19 世纪初树袋熊遭到捕杀出口，数量由百万只锐减至一千多只，于是澳大利亚政府立法保护。
>
>
>

### Ubuntu 9.04 Jaunty Jackalope（自信鹿角兔）

![Ubuntu 9.04 mascot](/data/attachment/album/202211/11/130517w12z8c2j7ee5f66m.jpg)

于 2009 年 4 月 23 日发布。

这个版本是我用的第一个 Ubuntu 版本。

Jaunty 是指拥有活泼、开朗和**自信**的态度。

<ruby> 鹿角兔 <rt>  Jackalope </rt></ruby>，是**北美民间传说中的一种神话动物**，被描述为长着羚羊角的可怕的长角兔。Jackalope 这个词是由 jackrabbit 和 antelope 组合而成的。许多鹿角兔的标本都是由用鹿角制成的。

### Ubuntu 8.10 Intrepid Ibex（无畏野山羊）

![Ubuntu 8.10 mascot](/data/attachment/album/202211/11/130517bwn99739nvvio8v3.jpg)

于 2008 年 10 月 30 日发布。

Intrepid 意味着**无所畏惧**、冒险的。

<ruby> 野山羊 <rt>  Ibex </rt></ruby>，以雄性的大弯角为特征，在前面形成像横向的脊那样。它主要分布于欧亚大陆、北非和东非。

### Ubuntu 8.04 LTS Hardy Heron（坚韧苍鹭）

![Ubuntu 8.04 mascot](/data/attachment/album/202211/11/130518e4q6h3s4gjgwitgq.jpg)

于 2008 年 4 月 24 日发布。

这个版本是第一个吉祥物出现在其默认壁纸上的 Ubuntu 版本。

Hardy 意味着能够**忍受**困难条件的、强大的。

<ruby> 苍鹭 <rt>  Heron </rt></ruby>，是一种长腿、长颈、生活在淡水和沿海的鸟类。

### Ubuntu 7.10 Gutsy Gibbon（阵风长臂猿）

![Ubuntu 7.10 mascot](/data/attachment/album/202211/11/130518w8pbubulp6btvvbl.jpg)

于 2007 年 10 月 18 日发布。

Gusty 表示以**阵风**的方式吹动。

<ruby> 长臂猿 <rt>  Gibbon </rt></ruby>，是一种猿类，它们生活在孟加拉国东部、印度东北部、中国南部和印度尼西亚的亚热带和热带雨林地区。

### Ubuntu 7.04 Feisty Fawn（活泼小鹿）

![Ubuntu 7.04 mascot](/data/attachment/album/202211/11/130518xmrlj00r4xqra0ym.jpg)

于 2007 年 4 月 19 日发布。

Feisty 意味着**小而坚定**的。

<ruby> 小鹿 <rt>  Fawn </rt></ruby>，指的是第一年刚出生的小鹿。

### Ubuntu 6.10 Edgy Eft（紧张水蜥）

![Ubuntu 6.10 mascot](/data/attachment/album/202211/11/130518c54zff7jqqfn0477.jpg)

于 2006 年 10 月 26 日发布。

Edgy 的意思是**紧张的**。

<ruby> 水蜥 <rt>  Eft </rt></ruby>，是蝾螈的陆生幼年期。蝾螈是一种蜥蜴，它具有三个不同的发育生命阶段：水生幼虫、陆生幼体和成体。

所以水蜥指的是一个青年的蝾螈。

### Ubuntu 6.06 Dapper Drake（整洁公鸭）

![Ubuntu 6.06 mascot](/data/attachment/album/202211/11/130519hy5mtbyub1pblyp4.jpg)

于 2006 年 6 月 1 日发布。

Dapper 的意思是衣着整洁，**外表整洁的**。

<ruby> 公鸭 <rt>  Drake </rt></ruby>，是完全性成熟的成年雄性鸭子。

### Ubuntu 5.10 Breezy Badger（微风之獾）

![Ubuntu 5.10 mascot](/data/attachment/album/202211/11/130519mytntnxnpstmrqsb.jpg)

于 2005 年 10 月 12 日发布。

Breezy 的意思是有**微风**的。

<ruby> 獾 <rt>  Badger </rt></ruby>，一种是短腿的杂食动物，经常蹲下身挤在一起。

### Ubuntu 5.04 Hoary Hedgehog（灰白刺猬）

![Ubuntu 5.04 mascot](/data/attachment/album/202211/11/130519z5wosjwuwswdsvdf.jpg)

于 2005 年 4 月 8 日发布。

Hoary 是**灰白色的**意思。

<ruby> 刺猬 <rt>  Hedgehogis </rt></ruby>，是一种多刺的哺乳动物，遍布于欧洲、亚洲和非洲的部分地区，并引入到了新西兰。

### Ubuntu 4.10 : Warty Warthog（有疣疣猪）

![Ubuntu 4.10 mascot](/data/attachment/album/202211/11/130519kkg2fqjbww8nmkwy.jpg)

于 2004 年 10 月 20 日发布。

Ubuntu 就是从这个版本开始的。

Wart 是由病毒引起的一种小的、坚硬的、良性的皮肤生长物。Warty 的意思是**长满疣的**。

<ruby> 疣猪 <rt>  Warthog </rt></ruby>，是猪科的一种野生动物，它是在撒哈拉以南非洲的草原、稀树草原和林地中被发现的。

### 总结

本文有没有让 Ubuntu 用户了解了更多知识呢？从技术上讲，并没有，但回顾历史是件好事。如果你多年来一直是 Ubuntu 用户，那么这篇文章可能会引发你的怀旧之情。

Ubuntu 9.04 是我第一次尝试 Linux 桌面。如果我没记错的话，那是在 2009 年 9 月下旬。仅仅几周后，我的系统就升级到了 Ubuntu 9.10。那些天我经常在 Ubuntu 论坛上浏览，探索这个新的操作系统，并学习新的东西。

那么，这篇文章有没有勾起你的一些美好的回忆呢？你的第一个 Ubuntu 版本又是哪个呢？在评论区中分享你的 Ubuntu 使用经历吧。

---

via: <https://itsfoss.com/all-Ubuntu-mascots/>

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

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


如何在 VLC 播放器中裁剪视频

Summary: 这不是 裁剪视频 的最佳方式，但它可以作为一个选择使用。

这不是 裁剪视频 的最佳方式，但它可以作为一个选择使用。

![](/data/attachment/album/202211/11/153202yhomxyc1ysuq57x1.jpg)

VLC 媒体播放器是 [最好的媒体播放器](https://itsfoss.com/video-players-linux/) 之一。这款跨平台播放器功能丰富，可以播放任何可用的媒体格式。

你会惊讶地发现 VLC 不仅仅是一个视频播放器。它可以对你的媒体文件做很多事情。

我们分享过 [使用 VLC 下载 YouTube 视频](https://itsfoss.com/download-youtube-videos-vlc/) 的 [VLC 技巧](https://itsfoss.com/simple-vlc-tips/)。

让我再和你分享一个。用 VLC 裁剪视频怎么样？这不是 [裁剪视频](https://itsfoss.com/video-trimmer/) 的最佳方式，但它可以作为一个选择使用。

### 使用 VLC 裁剪视频

在 VLC 中裁剪视频本质上意味着从所需部分的开头到结尾录制视频。默认情况下，录制控制工具通常在 VLC 面板中不可见。

让我详细介绍一下步骤。

#### 步骤 1：启用高级控件

要获取控件，你需要使其在主控制面板上可见。

首先选择“<ruby> 视图 <rt>  View </rt></ruby>”选项，然后选中“<ruby> 高级控件 <rt>  Advanced Controls </rt></ruby>”复选框。现在，如截图所示，出现了带有几个按钮的新控件行。

![在 vlc 播放器中启用高级控件视图](/data/attachment/album/202211/11/153221gzuxxndmjm6534wd.png)

#### 步骤 2：打开视频

为了裁剪视频，你需要在 VLC 中打开它。你可以通过“<ruby> 媒体 <rt>  Media </rt></ruby> > <ruby> 打开文件 <rt>  Open File </rt></ruby>”在 VLC 播放器中打开视频：

![通过 vlc 文件菜单打开媒体文件](/data/attachment/album/202211/11/153222rmg5t19655zy7tl9.png)

或者你可以使用 Nautilus 文件管理器中的 VLC 打开视频文件：

![使用 nautilus 文件管理器中的 vlc 播放器打开媒体文件](/data/attachment/album/202211/11/153222ojzh0m84j4zhmm2i.png)

#### 步骤 3：使用 VLC 的录制功能裁剪视频

打开视频文件后，将时间线设置为所需输出的起点并暂停视频。之后，按“录制”按钮并播放视频。

![在起点暂停，按录制键开始录制](/data/attachment/album/202211/11/153223by2027h4zkhni3iz.png)

当达到所需输出的终点时，暂停视频并再次按下“录制”按钮停止录制。

![在终点暂停并按下录制](/data/attachment/album/202211/11/153224mjzqe8xzwyk1cwjw.png)

这应该将裁剪后的输出保存到你的 `~/Videos` 目录中。

![nautilus 文件管理器中的原始和裁剪后文件](/data/attachment/album/202211/11/153224r5whm4nvxiizl4yk.png)

### 故障排除：无法识别的输出文件

VLC 以 .ts 文件格式录制视频。这在 VLC 中受支持，你可以根据需要使用它。但是 Ubuntu 中的许多其他播放器，包括本地视频播放器，都无法识别该格式。因此，在这种情况下，有两种解决方案。

#### Gnome-Video 提示安装 GStreamer 包

当你尝试打开文件时，GNOME-Videos 会提示错误并建议安装 Gstreamer 多媒体编解码器。

![转换后的视频在 gnome 视频播放器中显示播放错误](/data/attachment/album/202211/11/153225wa6qyq90yaj0zvoy.png)

你可以点击上图所示的 “<ruby> 在 Ubuntu 软件应用中查找 <rt>  Find in Ubuntu Software </rt></ruby>” 按钮，这将打开 Ubuntu 软件中心。你可以在那里安装所需的编解码器包。

![根据 GNOME 视频播放器的提示从软件中心安装 gstreamer](/data/attachment/album/202211/11/153225abnnub4zz8v46hy4.png)

同样安装 Gnome-videos 并使用它打开视频将解决问题。

#### 使用 VLC 转换视频文件

如果你不想为此安装任何额外的软件包，你可以使用 VLC 本身将 .ts 文件转换为 mp4 格式以在任何其他播放器中播放。

为此，打开 VLC 并在“<ruby> 媒体 <rt>  Media </rt></ruby>”菜单下选择“<ruby> 转换/保存 <rt>  Conver/Save </rt></ruby>”选项。

![从媒体菜单中选择转换](/data/attachment/album/202211/11/153226tguplld7lccz2aup.png)

现在，使用“<ruby> 添加 <rt>  Add </rt></ruby>”按钮提供需要转换的文件的位置，然后选择“<ruby> 转换/保存 <rt>  Conver/Save </rt></ruby>”，如截图所示。

![在媒体转换对话框中选择要转换的文件](/data/attachment/album/202211/11/153226v4y3q41j0joy11w0.png)

选择所需的输出配置（MP4）并为输出设置文件名，然后按“<ruby> 开始 <rt>  Start </rt></ruby>”。

![在 vlc 媒体转换菜单中设置转换配置和输出文件名](/data/attachment/album/202211/11/153227hyaqjaoaaaqr77er.png)

这将开始转换，并根据源的时长决定转换时间。完成后，你可以从 `~/Videos` 目录访问转换后的输出。

![nautilus 文件管理器中的原始裁剪和转换文件](/data/attachment/album/202211/11/153227c73j6dtah883ia0i.png)

### 总结

虽然确实可以使用 VLC 播放器来裁剪视频，但整个过程与专门的 [视频编辑器](https://itsfoss.com/open-source-video-editors/) 完全不同。

最大的问题是你需要观看所有裁剪部分才能完成裁剪，如果你要裁剪跨越数分钟的视频的一大部分，这就不方便了。

无论如何，这个很酷的功能在某些情况下可能是一个方便的工具，比如你想要的只是裁剪一个特定的小剪辑或从电影场景中制作一个 Gif。

---

via: <https://itsfoss.com/vlc-trim-video/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #817 一家神秘公司掌握着一个主流 SSL 根证书机构

Summary: • 一家神秘公司掌握着一个主流 SSL 根证书机构 • GitHub 实验 “Hey, GitHub!” 语音编程 • 美国国家安全局敦促各组织转向内存安全编程语言

作为Linux浏览器用户，又如何鉴别开源社区的公共证书安不安全呢？<br />
如何默认屏蔽特定CA签名的网站呢？

以Firefox为例，setting>privacy & security>certificate<br />
编辑信任与不信任的证书（如自带的TrustCor RootCert CA-1/2 ,...)。

安全公司开后门，司空见惯了，赚钱嘛，不寒碜

![](/data/attachment/album/202211/11/165344jhmy3ydmkqggdmdx.jpg)

![](/data/attachment/album/202211/11/165353ywa0z8kzoerkiowb.jpg)

### 一家神秘公司掌握着一个主流 SSL 根证书机构

据报道，Chrome、Safari、Firefox 和其他浏览器都接受一家名为 TrustCor 的根证书机构（CA）。CA 是互联网基础设施的基石，它签署的 SSL 证书可以保证网站不是假的，流量是加密的。因而，CA 可以签发“伪造”证书从而劫持加密流量。此外，该公司在巴拿马的注册记录显示，其信息与今年被确认的一家的间谍软件制造商相同，文件显示，该公司十多年来一直向美国政府机构出售通信拦截服务。Mozilla 表示它可能会取消 TrustCor 的根证书。

>
> **[消息来源：华盛顿邮报](https://www.washingtonpost.com/technology/2022/11/08/trustcor-internet-addresses-government-connections/)**
>
>
>

>
> 老王点评：谷歌当年就因为有根 CA 滥用而取消过该根 CA 证书，看看这次谷歌会如何？
>
>
>

![](/data/attachment/album/202211/11/165406n4s00un000i0zpvj.jpg)

### GitHub 实验 “Hey, GitHub!” 语音编程

GitHub Next 团队宣布了一项新的实验：“Hey, GitHub!”，允许与 Copilot 进行语音互动。也就是说，你甚至不需要使用键盘就可以让 VSCode 为你提供编程建议。GitHub 称，该实验可以识别“自然语言”。除了编写和编辑代码，它还允许程序员进行代码导航和执行其它 VSCode 命令。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/11/9/23449175/hey-github-voice-copilot-code-programming-system)**
>
>
>

>
> 老王点评：连键盘都不用了，直接讲你要干啥就好了。
>
>
>

![](/data/attachment/album/202211/11/165414uyaj1j7ukkbs7yah.jpg)

### 美国国家安全局敦促各组织转向内存安全编程语言

美国国家安全局（NSA）表示，建议各组织通过利用 C#、Go、Java、Ruby 或 Swift 等语言内存安全编程语言进行战略性转变。NSA 表示“内存管理问题已经被利用了几十年，今天仍然很常见。”软件内存安全问题是约 70% 的漏洞背后的原因。不良的内存管理也会导致技术问题，如不正确的程序结果，随着时间的推移程序性能的下降，以及程序崩溃。

>
> **[消息来源：NSA](https://www.nsa.gov/Press-Room/News-Highlights/Article/Article/3215760/nsa-releases-guidance-on-how-to-protect-against-software-memory-safety-issues/)**
>
>
>

>
> 老王点评：建议是好的，但是 NSA 不太值得信任。
>
>
>