2020年6月

source 就像 Python 的 import 或者 Java 的 include。学习它来扩展你的 Bash 能力。

登录 Linux shell 时,你将继承特定的工作环境。对于 shell 而言,“ 环境 environment ”意味着已经为你设置了某些变量,以确保你的命令可以按预期工作。例如,PATH 环境变量定义 shell 从哪里查找命令。没有它,几乎在 Bash 中尝试执行的所有操作都会因“命令未发现” 错误而失败。在执行日常任务时,环境对你几乎是不可见的,但它很重要。

有多种方法可以影响你的 shell 环境。你可以在配置文件中进行修改,例如 ~/.bashrc~/.profile,你可以在启动时运行服务,还可以创建自己的自定义命令或编写自己的 Bash 函数

通过 source 添加到你的环境

Bash(以及其他一些 shell)有一个称为 source 的内置命令。这就是令人困惑的地方:source 执行与命令 . 相同的功能(是的,那只是一个点),而与 Tcl 命令的 source 不是同一个(如果你输入 man source,也许在屏幕上显示的是它)。实际上,内置的 source 命令根本不在你的 PATH 中。这是 Bash 附带的命令,要获取有关它的更多信息,可以输入 help source

. 命令兼容 POSIX。 但 source 命令不是 POSIX 定义的,但可以与 . 命令互换使用。

根据 Bash helpsource 命令在你当前的 shell 中执行一个文件。 “在你当前的 shell 中” 这句很重要,因为它表示它不会启动子 shell。因此,用 source 执行的任何操作都发生在内部并影响当前环境。

在探讨 source 对环境的影响之前,请用 source 命令导入一个测试文件,以确保其按预期执行代码。首先,创建一个简单的 Bash 脚本并将其保存为 hello.sh

#!/usr/bin/env bash
echo "hello world"

使用 source,即使该脚本不设置可执行也可以运行:

$ source hello.sh
hello world

你也可以使用内置的 . 命令获得相同的结果:

$ . hello.sh
hello world

source. 命令成功地执行了测试文件的内容。

设置变量和导入函数

你可以使用 source 将文件 “导入” 到 shell 环境中,就像你可以在 C 或 C++ 中使用 include 关键字引用一个库,或者在 Python 中使用 import 关键字引入一个模块一样。这是 source 的最常见用法之一,它也是 .bashrc 中的一个默认包含方式,通过 source 导入 .bash_aliases,以便将任何你自定义的别名在登录时导入到你的环境。

这是导入 Bash 函数的示例。首先,在名为 myfunctions 的文件中创建一个函数。它将打印你的公共 IP 地址和本地 IP 地址:

function myip() {
        curl <http://icanhazip.com>      

        ip addr | grep inet$IP | \
        cut -d"/" -f 1 | \
        grep -v 127\\.0 | \
        grep -v \:\:1 | \
        awk '{$1=$1};1'
}

将该函数导入你的 shell:

$ source myfunctions

测试新函数:

$ myip
93.184.216.34
inet 192.168.0.23
inet6 fbd4:e85f:49c:2121:ce12:ef79:0e77:59d1
inet 10.8.42.38

source 的搜索

当你在 Bash 中使用 source 时,它将在当前目录中搜索你引用的文件。但并非所有 shell 都这样,因此,如果你不使用 Bash,请查看文档。

如果 Bash 找不到要执行的文件,它将搜索你的 PATH。同样,这并不是所有 shell 的默认设置,因此,如果你不使用 Bash,请查看文档。

这些都是 Bash 中不错的便利功能。这种出奇地强大,因为它允许你将常用函数保存在磁盘上的一个集中的位置,然后将你的环境视为集成开发环境 (IDE)。你不必担心函数的存储位置,因为你知道它们在你的本地位置等同于在 /usr/include 下,因此无论你在哪,当你导入它们时,Bash 都可以找到它们。

例如,你可以创建一个名为 ~/.local/include 的目录作为常见函数存储区,然后将此代码块放入 .bashrc 文件中:

for i in $HOME/.local/include/*;
  do source $i
done

这会将 ~/.local/include 中所有包含自定义函数的文件“导入”到 shell 环境中。

当你使用 source. 命令时,Bash 是唯一搜索当前目录和 PATH 的 shell。

将 source 用于开源

使用 source. 来执行文件是影响环境同时保持变更模块化的一种便捷方法。在下次考虑将大量代码复制并粘贴到 .bashrc 文件中时,请考虑将相关函数或别名组放入专用文件中,然后使用 source 导入它们。


via: https://opensource.com/article/20/6/bash-source-command

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

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

北斗“收官之星”成功发射

2020 年 6 月 23 日 9 时 43 分许,西昌卫星发射中心,搭载着北斗系统第 55 颗导航卫星暨北斗三号最后一颗全球组网卫星的长征三号乙运载火箭点火升空,北斗三号全球卫星导航系统星座部署终于全面完成。

来源:雷锋网

拍一拍:可喜可贺,掌握在美国人手里的 GPS 会带来什么潜在的危害就不用多说了,据称大部分中国境内的安卓手机都使用了北斗,而 iPhone 等产品则使用的是 GPS。

Electron 成为 OpenJS 基金会的 Impact 项目

2019 年 12 月,OpenJS 基金会发文宣布,Electron 已加入基金会的孵化计划。现如今,在 OpenJS World 上,Electron 则宣布正式从 OpenJS Foundation 的孵化计划毕业,成为 OpenJS 基金会的 Impact 项目。OpenJS 基金会由 Node.js 基金会与 JS 基金会合并而来,其托管了许多开源 JavaScript 项目,包括 jQuery、Node.js 和 webpack。Electron 是一款基于 Node.js 和 Chromium 的跨平台桌面应用开发工具,支持使用 JavaScript、HTML 和 CSS 编写跨平台的桌面应用程序。它被广泛用于许多著名的应用程序,包括 Discord、Microsoft Teams、Skype,Slack、Visual Studio Code 等。

来源:开源中国

拍一拍:Electron 虽然是一套 JavaScript 框架,但是你可能想不到身边很多常用的应用都是它开发的。

Microsoft Edge 未经允许静默导入 Firefox 数据

用户反馈,通过 Windows Update 更新到设备的新版 Edge 会出现从 Firefox 导入数据的情况,即便用户未授权 Edge 进行此操作。除非通过任务管理器关闭它而不是执行强制设置,否则无论如何它都会复制数据。除此之外,微软还会取消系统的默认浏览器设置,所以当用户点击一个 URL 时,需要重新选择默认浏览器。微软对此一直保持沉默。

来源:开源中国

拍一拍:这……有点厉害了,不过,希望微软可以澄清一下。

CNCF 宣布首个中国原创项目 Harbor 毕业

Harbor 是一个开源制品(artifact)仓库,可通过策略和基于角色的访问控制来保护制品(如容器镜像、Helm Chart等),扫描镜像并避免受安全漏洞的危害,并对镜像签名成为受信内容。Harbor 源于 2014 年 VMware中国研发中心云原生实验室的一个内部项目,旨在为容器的开发人员解决镜像管理的问题。众多的企业、互联网公司和初创公司在生产系统中使用Harbor,包括中国移动、京东、才云科技、网易云、三星SDS、Hyland软件、Mulesoft、腾讯云、趋势科技和 VMware 等等。

来源:开源中国

拍一拍:中国人在开源方面做出的贡献越来越多了。

Bash 的 history 命令在它提供的功能数量上超过了所有其他 Linux Shell 历史接口。

Bash 有丰富的历史。也就是说,它是一个古老的的 shell,还有一个更古老的 Shell (Bourne shell)的前辈,但是它还有一个很棒的 history 命令,它提供的功能数量超过了所有其他 shell 的历史接口。 Bash 版本的 history 可进行反向搜索、快速调用、重写历史记录等。

history 命令与许多其他命令不同。你可能习惯于将命令作为可执行文件放在常见的系统级位置,例如 /usr/bin/usr/local/bin 或者 ~/bin。 内置的 history 命令不在你的 PATH 中并且没有物理位置:

$ which history

which: no history in [PATH]

相反,history 是 shell 本身的内置函数:

$ type history
history is a shell builtin
$ help history
history: history [-c] [-d offset] [n] or
history -anrw [filename] or
history -ps arg [arg...]

Display or manipulate the history list.
[...]

出于这个原因,每个 shell 中的历史功能都是独特的,因此你在 Bash 中使用的功能可能无法在 Tcsh 或 Fish 或 Dash 中使用,而在这些 shell 中使用的功能可能也无法在 Bash 中使用。在某些情况下,了解 Bash 可以做什么可能会激发其他 shell 的用户创建有趣的改造来复制 Bash 行为,并且可能会解锁你从未知道的 Bash 功能。

查看你的 Bash 历史

history 命令最基本、最频繁的用法是查看 shell 会话的历史记录:

$ echo "hello"
hello
$ echo "world"
world
$ history
  1  echo "hello"
  2  echo "world"
  3  history

事件指示器

事件指示器 Event designator 按事件搜索你的历史记录。在这里,“事件”是指记录在历史中的命令,以换行符划定。换句话说,一行一个事件,以索引号来标记。

事件指示器大多以感叹号开头,有时也称为 “bang”(!)。

要从你的历史记录中重新运行命令,请使用感叹号,之后紧跟(之间没有空格)所需命令的索引号。例如,假设第 1 行包含命令 echo "hello",你想要想再次运行它:

$ !1
echo "hello"
hello

你可以使用相对定位,提供基于你历史中当前位置向后的负数行号。例如,返回到历史中倒数第三个条目:

$ echo "foo"
foo
$ echo "bar"
bar
$ echo "baz"
baz
$ !-3
echo "foo"
foo

如果只想回去一行,那么可以使用速记 !! 代替 !-1。这节省了按键时间!

$ echo "foo"
$ !!
echo "foo"
foo

字符串搜索

你也可以对条目搜索特定的字符串,反过来搜索要运行命令。要搜索以指定字符串开始的命令,请使用感叹号,之后紧跟(没有空格)要搜索的字符串:

$ echo "foo"
$ true
$ false
$ !echo
echo "foo"
foo

你还可以在任意位置(不仅是开头)搜索包含该字符串的命令。为此,请像之前一样使用 ! 加上要搜索的字符串,但在字符串的两端都用问号(?)围绕起来。如果你知道该字符串后紧跟一个换行符,那么可以省略最后的问号(就是在按回车之前输入的最后字符):

$ echo "foo"
$ true
$ false
$ !?foo?
echo "foo"
foo

字符串替换

类似于在行首搜索字符串,你可以搜索字符串并用新字符串替换它,以更改命令:

$ echo "hello"
hello
$ echo "world"
world
$ ^hello^foo
echo "foo"
foo

让 history 有用

在 Bash 中,history 命令的功能远远超过此处介绍的内容,但这是一个很好的开始, 可以让你习惯使用你的历史记录, 而不是仅仅把它当作一个参考。经常使用 history 命令,并试试无需输入命令即可执行的操作。你可能会感到惊讶!


via: https://opensource.com/article/20/6/bash-history-commands

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

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

是否一直在等待预装 Ubuntu 20.04 LTS 的新戴尔 XPS 13 开发者版的消息?好吧,你很幸运,因为戴尔已经宣布了这个消息!

对于戴尔 XPS 13 开发者版,你可能不需要太多的介绍。这个笔记本电脑系列在许多方面都受到 Linux 开发人员的欢迎,就像 IBM 著名的 ThinkPad 系列(最近也受到 Ubuntu 的青睐)一样。

戴尔开发者笔记本的最新迭代产品预装了 Ubuntu 20.04 LTS。该设备标榜了一个与 Ubuntu “兼容”的内置指纹识别器(开发人员正在向后移植新的指纹登录改进功能)以及其他一些功能。

在规格方面,这款笔记本的标准配置提供了一块 13.4 寸非触控的 InfinityEdge 显示屏(1920×1200,16:10)。可以将其换成同一面板的触控版本,也可以换成配备触控功能的像素组合版的 13.4″ UHD+(3840×2400)InfinityEdge 显示屏,不过这种替换会让价格上涨不少。

它的基本款宣传的是第十代英特尔酷睿 i5-1035G1 处理器,1.00 GHz(3.6 GHz 睿频加速)。再多花点钱,可以让你换成更气派的第十代英特尔酷睿 i7-1065G7 处理器,1.3GHz(3.9GHz 睿频加速)。这两款 CPU 都是四核。

其图形性能取决于你选择的处理器。i5 款配备了集成的英特尔 UHD 图形芯片,而第十代英特尔 i7 款则提供了集成的英特尔 Iris Plus 图形芯片。

这款笔记本标配 8GB 的 LPDDR4x 内存,但如果你想要的话,可以扩展到 16GB(是的,你可能确实想扩展一下,毕竟这东西运行 GNOME Shell)。

还有高达 2TB 的存储(M.2 PCIe NVMe 固态硬盘)、前面提到的指纹识别器和电池寿命 —— 注意这个 —— 戴尔说电池寿命高达 18 个小时。

在端口方面,它的连接方式很纤巧,只有两个 Thunderbolt 3 端口,用于视频和电源;一个普通的 3.5mm 耳机插孔;以及一个 microSD 闪存读卡器。主板上带有杀手级的 Wi-Fi 6 AX1650(2 x 2)和蓝牙 5.1,它们在 Ubuntu 20.04 中都可以“正常工作”。

在外观风格方面也没有什么变化。戴尔 XPS 13 开发者版有时尚的“铂银配黑色的碳纤维掌托”或更精致的“磨砂白配高山白的复合纤维掌托”(不过要多花 50 美元)。

“我们很高兴看到首批搭载 Ubuntu 20.04 LTS 的戴尔系统。企业们正越来越多地为他们的开发人员和工程师配备他们所选择的操作系统,以确保终端用户的高生产力。”Ubuntu 台式机负责人 Martin Wimpress 谈到这台新设备时说。

这款新近通过 Ubuntu 认证的机型在美国的定价为 1,099.99 美元起。价格将根据配置和地区的不同而有所不同。

戴尔的 Ubuntu 20.04 LTS 的 OEM 版本随附一些额外预装和预配置的东西,包括恢复工具、恢复分区、任何相关的驱动程序、戴尔 OEM 软件仓库,以及(可能不太受欢迎)谷歌 Chrome Web 浏览器。

有兴趣买一台?前往戴尔网站了解更多信息(不过要注意的是,在写这篇文章时,规格仍然列出的是 Ubuntu 18.04 LTS)。


via: https://www.omgubuntu.co.uk/2020/06/dell-xps-13-developer-edition-ubuntu-20-04

作者:Joey Sneddon 译者:wxy 校对:wxy

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

日本 ARM 超算富岳登顶 Top 500 榜单

Top 500 公布了最新的榜单,日本基于 ARM 架构的超算富岳登顶,其 Linpack 运算性能达到 415.5 petaflops,是排在第二位的美国橡树岭国家实验室 IBM 超算 Summit 的 2.8 倍。富岳运行的操作系统为 Red Hat Enterprise Linux 8 和 McKernel(轻量级多内核操作系统)。中国的神威太湖之光、天河二号 A 分别排名第四和第五。中国依旧保持超算数量第一,有 226 台,美国 114 台,日本 30 台,法国 18 台,德国 16,美国超算的总性能高于中国。500 台超算中 469 台使用英特尔 CPU,AMD CPU 的有 11 台。

来源:solidot

拍一拍:结合下一条,ARM 不仅在移动设备用的多,在桌面计算机也开始大量使用,甚至在超算上都要占个鳌头。

苹果宣布其设备将全面转向自建的“Apple Silicon”计算体系

苹果在 WWDC 2020 宣布转向自己的 ARM 芯片 Apple Sillicon 体系,在 Mac 设备上不仅允许安装经过修改的英特尔应用程序,还能原生运行现有的 iOS 和 iPadOS 应用程序。Apple Silicon 将使用各种定制技术,包括神经网络、GPU、Secure Enclave 等。兼容性方面,所有在 Intel 硬件平台上运行的应用,都将可以在新 Mac 和定制处理器上运行。开发人员需要的一切都被内置在 xCode 中,他们要做的是打开项目并重新编译,改造只需要几天时间。Rosetta 是苹果从 PowerPC 向英特尔处理器过渡时使用的技术,现在,Rosetta 2 能够让 Mac 更好地从英特尔处理器无缝迁移至 Apple Silicon 平台。

来源:cnBeta.COM

拍一拍:ARM 架构大行其道,CPU 行业真是三十年河东三十年河西。

Safari 终于加入对谷歌 WebP 图片格式的支持

苹果在 WWDC 2020 上展示了 Safari 浏览器诸多新特性,表示在 Safari 中首次加入了对 WebP 格式图片的支持。WebP是谷歌开发的一种较新的图像格式,于 2010 年公布。与 JPEG 和 PNG 文件相比,它提供了有损和无损的压缩,文件尺寸更小。与 JPEG 相比,据说 WebP 在相同质量的情况下,文件大小可减少 25-35%。动画的加入也让它也可以作为动图 GIF 的替代品。目前,Chrome、Firefox 和 Edge 等主流浏览器均支持 WebP 图片格式,但在 iOS 和 macOS 的 Safari 上一直缺席。

来源:cnBeta.COM

拍一拍:终于等到了,这样我们是不是以后可以只用 WebP 格式了?

霍尼韦尔称研发出世界上最快量子计算机

科技巨头霍尼韦尔表示,该公司目前拥有世界上最快的量子计算机,其在关键指标量子体积上达到 IBM 机器的两倍。这意味着霍尼韦尔开始兑现在 3 月份做出的承诺,即在未来五年内每年将其量子计算能力提高 10 倍。几十年前,霍尼韦尔主要是大型机的顶级制造商,但它出售了这项业务,不再关注计算机行业。直到近年,该公司在科罗拉多州和明尼苏达州悄悄组建了由 120 名研究人员组成的团队,并利用其在材料科学和工业运营方面的专业知识来解决量子计算问题。

来源:网易科技

拍一拍:老牌科技巨头果然厉害,话说,我前段时间还买过它家的产品呢——嗯,几只口罩~

WireGuard 合并到 OpenBSD

这意味着未来 OpenBSD 将能原生支持 WireGuard VPN。WireGuard 由 Jason Donenfeld 开发,前身是是一个数据渗漏工具。它支持最新的加密算法和协议。WireGuard 今年初合并到了 Linux 内核主线。它被认为将对 VPN 服务产生深远影响。

来源:solidot

拍一拍:暂时还看不到影响。

Ubuntu MATE 20.04 LTS 无疑是最流行的 Ubuntu 官方特色版本之一。

不仅仅是我,这份Ubuntu 20.04 调查报告也持同样观点。不过不管流行与否,它都是一个令人印象深刻的 Linux 发行版,尤其是用在较旧的硬件上时。事实上,它也是可用的最轻量的 Linux 发行版之一。

所以,我想在一个虚拟机中尝试一下,为你提供一个概览,这样你可以了解其中有何值得期盼的变化,以及是否值得尝试。

在 Ubuntu MATE 20.04 LTS 中有什么新功能?

Ubuntu MATE 20.04 LTS 的主要亮点应该是增加了 MATE Desktop 1.24。

你可以期待 MATE Desktop 1.24 中的所有新特色都被打包到 Ubuntu MATE 20.04 中。除此之外,还有很多重要的变化、改进和增补。

这是 Ubuntu MATE 20.04 中变化的概述:

  • 新增 MATE Desktop 1.24
  • 大量视觉改进
  • 数十处错误修复
  • 基于 Linux 内核 5.4 系列
  • 添加了实验性的 ZFS 支持
  • 添加了来自 Feral Interactive 的 GameMode
  • 一些软件包更新

现在,为了更好地了解 Ubuntu MATE 20.04,我将给你提供更多的细节。

用户体验改善

考虑到越来越多的用户倾向于在桌面上使用 Linux,而用户体验在桌面中起着至关重要的作用。

如果有一些易于使用和令人愉悦的东西,那么第一印象就会有很大不同。

对于 Ubuntu MATE 20.04 LTS,我没有感到失望。就我个人而言,我是最新的 GNOME 3.36 的粉丝。我喜欢在我 Pop!\_OS 20.04 上使用它,但是随着 MATE 1.24 的出现,使得 Ubuntu MATE 也同样具有很好的体验。

你会看到窗口管理器有一些重大更改,包括:增加了用于重新调整大小的隐形边框,HiDPI 图标渲染,重新设计了 ALT+TAB 工作区切换器的弹出窗口和一些其它的更改,这些是最新的 MATE 1.24 桌面环境的一部分。

此外, MATE Tweak 也得到了一些贴心的改进,即使你更改桌面的布局,也可以保留用户偏好。新的 MATE 欢迎屏幕也会告知用户更改桌面布局的能力,因此,用户无需不断摸索就能知道这个变化。

此外,我最喜欢的新增功能之一是可以预览最小化的应用程序。

例如,你已经最小化了一个应用程序,但是你想在拉起它之前看到它的预览 —— 现在你只需将鼠标悬停在任务栏上就可以做到这一点,如下图所示:

不过,我必须指出,并不是每个应用程序都可以如预期般的工作。因此,这个功能是有缺陷的,还需要改进。

应用程序新增或升级

在 MATE 20.04 中,你会注意到有一个新的固件更新器,它是 fwupd 的 GTK 前端。你可以使用这个更新器来轻松地管理你的固件驱动。

这个版本也使用 Evolution 替换了 Thunderbird 电子邮件客户端。尽管 Thunderbird 是一个非常流行的电子邮件客户端,但是 Evolution 与 MATE 桌面集成得更好,并且证明它更有用。

考虑到我们已经搭载了 MATE 1.24,你也将发现一个新的时间和日期管理应用程序。不仅如此,如果你需要一个放大镜,Ubuntu MATE 20.04 还内置了 Magnus

Ubuntu MATE 20.04 也包括了众多预安装的软件包/应用程序的升级包。

尽管这些是小的增补,但却能在很大程度上帮助发行版变得更有用。

Linux Kernel 5.4

Ubuntu MATE 20.04 带有 2019 年最后一个主要的稳定版内核,即 Linux 内核 5.4

使用该内核,你可以获得原生的 exFAT 支持、改进的硬件支持。更不用说,拥有 WireGuard VPN 的支持也是一件极好的事。

所以,你会注意到 Linux Kernel 5.4 的众多好处,包括内核锁定功能。如果你好奇,你可以阅读我们关于 Linux Kernel 5.4 的新闻报道来了解更多的细节。

增加了 Feral Interactive 的 GameMode

以将游戏带到 Linux 平台而闻名的 Feral Interactive 带来了一款实用的命令行工具,即 GameMode

它没有提供图形界面,但是在启动一个游戏前,你可以使用命令行请求临时性的系统优化。

虽然这可能不会给每个系统都带来很大的不同,而是给玩游戏提供了更多的资源,并且 GameMode 可以确保你获得必要的优化。

实验性的 ZFS 安装选项

你可以使用 ZFS 作为根文件系统了。值得注意的是,它是一个实验性的功能,如果你不确定自己在做什么,那么就不应该使用它。

要更好地了解 ZFS,我建议你阅读我们的一篇文章,John Paul 所写的《ZFS 是什么》的文章。

性能和其它的改进

Ubuntu MATE 是一款完美的轻量级发行版,同时也是一款适合现代台式机的发行版。

在这个评测中,我没有运行任何特殊的基准测试工具,以一个普通用户来说,我在虚拟机设置中没有发现任何性能问题。我在一台使用了一颗 i5-7400 处理器、配备 GTX 1050 显卡和 16 GB 内存的主机系统上进行了测试。并且,我将 7 GB 的内存 + 768 MB 的显存 + 2 个处理器核心分配给了虚拟机。

如果你要自己测试它,请随时告诉我你对它的感觉如何。

总的来说,除了所有主要的改进之外,还有一些细微的改变/修复/改进,使得 Ubuntu MATE 20.04 LTS 成为了一个很好的升级版本。

我应该升级吗?

如果你正在运行 Ubuntu MATE 19.10,你应该立即升级它,因为它的支持将在 2020 年 6 月结束。

对于 Ubuntu MATE 18.04 用户(支持到 2021 年 4 月)来说,这取决于你的需求。如果你需要最新发布版本的功能,你应该选择立即升级它。

但是,如果你不一定需要新的功能,你可以查看现存的错误列表 并加入 Ubuntu MATE 社区 来了解更多最新发布版本的问题。

在你做完必要的研究后,你可以继续升级你的系统到 Ubuntu MATE 20.04 LTS,它将支持到 2023 年 4 月。

你试过最新的 Ubuntu MATE 20.04 吗?你认为它怎么样?在评论中让我知道。


via: https://itsfoss.com/ubuntu-mate-20-04-review/

作者:Ankush Das 选题:lujun9972 译者:robsean 校对:wxy

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