2022年7月

使用组合键,你不会被键盘所限制住。

典型的键盘只有约 100 个键位。

由于 Shift 键,许多键得以有两个字符(也称之为 字形 glyph )。字形常用于键入带有重音和变音符号的字母,生成数学公式或者货币中的符号,或者添加有趣的表情符号。在一些地区,有些键甚至有三个字形。

然而,不论你身处何处,有一些字形不会出现在你的键盘上。幸运的是,Linux 提供了使用 组合键 Compose Key 来获取这些字形。

在你的键盘上没有组合键这个键,至少默认情况下没有,但是你可以设定一个你不用的键作为组合键。我在电脑上使用空格键旁边的 Alt 键,而在平板上使用菜单键,来作为组合键。

下载 Linux 组合键速查表

在 GNOME 中设置组合键

A screenshot shows the keyboard and mouse options visible. The "Compose Key" option is set to Right Alt.

在 GNOME 桌面,从软件库中安装 优化 Tweaks 应用。你也可以从终端安装(基于 Debian 发行版用 apt 命令,Fedora 用 dnf):

$ sudo dnf install gnome-tweaks

启动优化应用后:

  1. 单击左侧栏中的 键盘和鼠标 Keyboard & Mouse 类别
  2. 找到 组合键 Compose key 设置并指定一个键
  3. 关闭优化应用

在 KDE Plasma 桌面设置组合键

A screenshot shows the advanced options threaded under Keyboard settings. "Configure keyboard options" is checked, "Position of Compose Key" is checked within that menu, and "Right Alt" is checked within that menu.

在 KDE Plasma 桌面上,打开 系统设置 System Settings ,找到 输入设备 Input Devices 控制界面。然后:

  1. 输入设备 Input Devices 界面,点击 “ 高级 Advanced ” 标签
  2. 找到 组合键 Compose key 列表项并指定一个键
  3. 点击右下角 “ 应用 Apply ” 按钮,然后关闭 系统设置 System Settings

使用组合序列

为了输入隐藏字符,需要按下组合键后松开。这样就可以进入组合模式。处于组合模式,你按下然后松开键,然后再按下一个键来组合字符。

例如:

  1. 按下组合键并释放,你会进入组合模式
  2. 按下单引号(')并松开
  3. 按下 E 并松开,这是一个有效的组合,所以现在退出了组合模式

你输入了一个字符:É

一些组合序列只需要两个键的组合,然而还有一些需要三个键,并且至少有一个特殊字符要按四次键。

变音字符

这是一个很小众的世界,所以你的朋友的名字很有可能使用的字形不是你的键盘原生的字形。你现在可以跳过变音符号并使用适当的修饰符输入名字。

以下是常见变音符号的组合序列示例:

  • ' + <字母> = á é í ó ú ć ń ý j́́ ẃ ź
  • ` + <字母> = à è ì ò ù ǹ ỳ ẁ
  • ~ + <字母> = ã ẽ ĩ õ ũ ñ ỹ
  • ^ + <字母> = â ê î ô û ĉ ŷ ĵ ŵ ẑ
  • u + <字母> = ă ĕ ĭ ŏ ŭ
  • c + c = č
  • - + <字母> = ā ē ī ō ū đ
  • , + <字母> = ą ę į ǫ ų ç ḑ ţ

这里仅仅罗列了常见的几个,并不是所有的组合。

货币符号

得益于组合键,国际银行业务也变得容易:

  • - + Y = ¥
  • - + L = £
  • = + E =
  • = + L =
  • = + N =
  • = + R =
  • = + W =
  • / + m =
  • R + s =
  • C + r =
  • F + r =

重申,这不是完整的列表,但是一个好的开始。

有趣的字形

变音符号和货币符号具有实用性,但是组合键也可以用来娱乐:

  • < + 3 =
  • < + > =
  • # + q =
  • : + ) =
  • : + ( =
  • p + o + o = ?

长寿和繁荣

在 Linux 中我最喜欢的“秘密”字形是传统的 Vulcan 称呼,“长寿和繁荣”。

  • L + L + A + P = ?

找到所有的字形

通过组合键可以使用更多字形,你可以通过按随机组合序列来发现新的字形。查找字形的一种更有条理的方法是参考位于 /usr/share/X11/locale/en_US.UTF-8 中的 Compose 文件(需要根据你键盘使用的语言环境调整绝对路径)。

这个文件令人崩溃,因为它包含超过 6000 行的组合序列,其中许多是 ASCII 和 Unicode 的复杂组合。要快速轻松地参考常见和基础序列,你可以 下载我们的组合键速查表。它提供涵盖数学、排版、音乐、箭头、变音符号、货币等的序列。

现在你知道了这个秘密,你可以表达更多内容了。

(图片源自:Seth Kenlon, CC BY-SA 4.0)


via: https://opensource.com/article/22/7/linux-compose-key-cheat-sheet

作者:Seth Kenlon 选题:lkxed 译者:Donkey 校对:wxy

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

本文将帮助你设计一个基于 Web 的应用程序,使用 Node-RED 为地铁站的汽车提供一个自动智能停车系统。

Smart car parking

Web 应用程序是在 Web 服务器上运行的软件。终端用户通过 Web 浏览器访问 Web 应用程序。Web 应用程序使用客户端—服务器(C/S)架构进行编程,该架构是用户(客户端)通过远程服务器(可能由第三方托管)提供服务。Web API(应用程序编程接口)在整个 Web 上是可用的,用户可以通过 HTTP 协议访问该接口,如图 1 所示。

Figure 1: Web API

本文将演示如何为地铁设计一个基于 Web 的汽车自动智能停车系统。 它是使用开源的 Node-RED 设计。该系统使用模板节点创建了一个交互式的、时尚的用户登录表单,用 HTML 和 CSS 编码以获取车主的详细信息,从而实现停车系统的自动化。我们可以在图 2 和图 3 看到登录表单和提交表单的流程图。

使用的节点如下:

table function

地铁智能停车节点流程设计

Node-RED 由 node-red 命令激活。访问网址 http://127.0.0.1:1880/ 可以看到 Node-RED 用户界面流程浏览器已经启用,可以认为 Node-RED 设置已完成,可以正常工作了。

按照下面给出的步骤创建登录表单和提交表单。

Figure 2: Login form flow diagram

Figure 3: Submission form flow diagram

登录表单

1、在节点画布中,拖放 http 输入 http in 节点,这会为创建 Web 服务创建一个 HTTP 访问点。

2、将 http 输入 http in 节点连接到 函数 function 节点。函数节点有助于编写 JavaScript 函数处理节点接收到的消息。

Figure 4: Login form for smart parking for cars

3、将 函数 function 节点连接到 模板 template 节点,模板节点基于提供的模板创建一个 Web API。

4、将 模板 template 节点连接到 http 响应 http response 节点,它将响应 http 输入 http in 节点的请求。

Figure 5: Submission form for smart parking for cars

提交表单

1、拖放 http 输入 http in 节点并将其连接到 json 节点,json 节点将数据转换为 JSON 字符串进行通信。

2、将 http 输入 http in 节点连接到 调试 debug 节点,调试节点的调试监控器会输出结果。

3、将 json 节点放置并连接到 函数 function 节点,将后者连接到 http 响应 http response 节点。

创建完整流程后,单击 Node-RED 窗口右上角的 部署 Deploy 按钮。访问 http://127.0.0.1:1880/ui/ 这个链接查看用户界面。

输入链接然后单击 提交 Submit 后,该链接会跳转到下一页,你可以在该页面阅读所有新闻。

Node-RED 工作流程

在单个 Node-RED 流程中,你可以创建登录表单和提交表单,如图 4 和图 5 所示。

现在我们将配置节点属性。

登录表单

编辑 http 输入 http in 属性:

  • 方法 method 选择 “Get”
  • 网址 URL 设为 /MetroStation
  • 名称 name 配置为 “ 智能停车系统 Smart Parking ”。

(LCTT 译注:下文 http 响应节点的名称为 Smart parking,p 字母小写,为了区分,此处中文翻译成智能停车系统。)

Figure 6: Http in node property configurations

注意:URL 可以使用任何用户定义的本地变量。

现在选择 函数 function 节点,编辑函数节点属性:输入代码 msg.url = project ,并配置代码 名称 name 字段为 “ 项目提交 Project Submission ”。

Figure 7: Function node property configurations

模板 template 节点的属性窗口,为登录表单配置相应的 HTML 代码,并将代码 名称 name 命名为 “ 显示面板 Display panel ”。在此流程使用了 Mustache 模板格式(LCTT 译注:Mustache 是胡子的意思,因为它的嵌入标记 {{ }} 非常像胡子)。Mustache 是一个简单的 Web 模板系统,被描述为无逻辑的模板引擎。Mustache 没有任何显式的控制流语句,例如 ifelse 条件和 for 循环。可以通过使用块标签处理列表和lambdas 来实现循环和条件评估。

Figure 8: Template node property configurations

配置编辑 http 响应 http response 节点的属性, 名称 name 设为 “ 智能停车 Smart parking ”(图 9) 。

Figure 9: Http response node property configurations

提交表单

http 输入 http in 节点的编辑属性窗口, 方法 method 选择 “POST” , 网址 URL 设为 /project

Figure 10: Http in node property configurations

在 JSON 节点的编辑窗口, 操作 Action 设为 “ JSON字符串与对象互转 Convert between JSON String & Object ”,参考图 11。

Figure 11: JSON node property configurations

函数 function 节点的配置如图 12 所示。

Figure 12: Function node property configurations

http 响应 http response 节点,编辑属性 名称 name 为 “ 已提交项目 Project Submitted ”。

Figure 13: Http response node property configurations

注意:添加带有评论的评论节点作为 “登录表单” 和 “提交表单”。

Figure 14: Debug node property configurations

用户界面的控制面板

当用户单击 提交 Submit ,给出的数据将显示在用户界面和调试节点。如果单击 重置 Reset ,详细信息将被清除,允许用户输入新的详细信息(图15)。

Figure 15: User login UI

地铁停车费率通过超链接提供,收费表在用户界面显示。因此,汽车智能停车系统通过适当的超链接实现自动化,展示地铁站的停车费。该自动化系统的最终输出可以在 Node-RED 控制面板的用户界面和调试监控器调取和展示。

Figure 16: Metro parking tariff


via: https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/

作者:Dr Maheswari R. 选题:lkxed 译者:Maisie-x 校对:wxy

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

System76 终于为其最新的 Pop!\_OS 22.04 LTS 增加了对树莓派 4 的支持。

Pop os

Pop!\_OS 是 最好的初学者友好的 Linux 发行版 之一。

它基于 Ubuntu,显然,Pop!\_OS 22.04 LTS 是基于 Ubuntu 22.04 LTS 的。

然而,与 Ubuntu 不同,Pop!\_OS 22.04 在发布时并没有正式支持树莓派。

因此,期待 Pop!\_OS 22.04 LTS 版本对树莓派的支持是合理的。

如果你还记得,System76 在 Pop!\_OS 21.10 中首次增加了对树莓派的支持。我们在测试时也 报道过

而且,据 System76 的首席工程师 Jeremy Soller 透露, System76 最新的 Pop!\_OS 版本现在正准备支持树莓派 4。

Pop!\_OS 22.04 LTS for Raspberry Pi 4

如果你一直在你的树莓派 4 上使用 Pop!\_OS 21.10,这对你来说是个好消息。

而且,对于任何想在树莓派 4 上尝试 Pop!\_OS 的人来说,它终于有了一个 LTS 版本。

截至目前,该 ISO 是作为技术预览版提供的。因此,如果你想试试它,你应该有出现错误和可用性问题的心理预期。请注意,目前还 只限于树莓派 4,不支持其他树莓派设备,这是个遗憾。

我们不知道 System76 是否计划在这个 LTS 版本中支持其他树莓派板,或者他们是否坚持只支持树莓派 4。

然而,考虑到树莓派 4 现在相当流行,对于许多寻求替代 Ubuntu 的 树莓派的替代操作系统 的爱好者们来说,这应该是一个很好的进展。

有了 Pop!\_OS 22.04 LTS,树莓派 4 的用户应该能够体验到一些最令人兴奋的升级,以及更新的 Linux 内核 5.15 LTS

要下载该技术预览版,请前往 Pop!\_OS 的 官方网站,点击下载按钮,找到该选项。

Pop OS

你对树莓派 4 上的 Pop!\_OS 22.04 有什么期望?请在下面的评论中告诉我们你的想法。


via: https://news.itsfoss.com/pop-os-22-04-raspberry-pi-4/

作者:Ankush Das 选题:lkxed 译者:wxy 校对:wxy

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

量子计算在 6 分钟内解决了 3854 个变量的宝马优化问题

在汽车尤其是自动驾驶汽车上安放传感器涉及大量的变量,如底盘设计,有没有障碍物(不同位置提供了不同视野),风阻和重量平衡等等,这需要大量的试错,不同的车型还需要重新制定不同的方案。宝马汽车的问题涉及到了 3854 个变量和 500 个约束条件,经典计算机解决这个问题需要大量的时间。量子计算公司 QCI 使用的是其新量子硬件,在 6 分钟内解决了该问题,提供了一个由 15 个传感器构成的方案。

消息来源:Tom's Hardware
老王点评:居然可以解决某种具体问题了?那说明量子计算步入实用更进一步了。

亚马逊将关闭其网盘存储服务

亚马逊周五早上发送电子邮件通知用户,将于 2023 年 12 月 31 日关闭其已运营 11 年的网盘存储服务,以更充分地将精力集中在“亚马逊照片”上。亚马逊表示,用户帐户中的照片和视频已自动保存到亚马逊照片中。如果你依靠该服务进行文件存储,则需要在结束服务日期之前访问并下载文件。

消息来源:Geek Wire
老王点评:看来网盘服务盈利前景堪忧啊,有这个风向标,国内的网盘服务会如何呢?

QEMU 7.1 将带来龙芯架构支持

QEMU 7.1-rc0 已经发布,其稳定版本将在几周后发布。QEMU 7.1 将初始支持 64 位龙芯架构的 3A5000 系列 SoC。QEMU 7.1 也将支持更多的 RISC-V 特性,如 RISC-V 特权规格 1.12 版,改进的 PMU 实现,Zmmul 扩展等。对于 QEMU 迁移,它现在支持 Linux 上的零拷贝发送,以减少源主机上的 CPU 使用率。

消息来源:Phoronix
老王点评:龙芯不断地将各种驱动提交到上游,可见其发展速度在加快。

如何在 Linux 终端中运行一个 Python 程序?像这样,对吗?

python program.py

然而,如果你试图在 Ubuntu(和其他一些发行版)中使用 python 命令,它会抛出一个错误。

command ‘python’ not found, did you mean:
command ‘python3’ from deb python3
command ‘python’ from deb python-is-python3

如果你注意这个错误信息,它说明了很多东西。这里的 python 命令实际上是 python3

如果你不理解,不用担心。我将在这里详细解释。

为什么在 Ubuntu 上没有发现 python 命令?

这是因为 Python 语言不是以 python 的形式安装的,而是以 python3python2 的形式安装的(在一些老的 Ubuntu 版本中)。

在遥远的过去的某个时间点,Python 实际上是作为 python 包/可执行文件提供的。当 Python 发布第二版时,Ubuntu 和其他发行版不得不同时支持 Python 1.x 和 2.x 版本。

因此,他们将较新的 Python 版本命名为 python2,以区分这两个版本。其他应用或库也在其代码中指定 pythonpython2

最终,Python 1 版本被完全停用,但软件包继续被命名为 python2

类似地,当 Python 3 版本发布时,发行版开始同时提供 python2python3 包。

Python 2 不再被支持,Python 3.x 是你在 Ubuntu 上安装的版本。该软件包仍被命名为 python3

总结一下,你已经在 Ubuntu 上安装了 Python。它是以 python3 软件包方式使用的。

那么,当你 在 Ubuntu 上看到 “Python command not found” 的错误 时,你有什么选择?让我来介绍一下。

确保你的系统中已经安装了 Python

它应该已经安装了,但仔细检查一下也无妨。

Ubuntu 18.04 也有 Python 2,但 20.04 及更高版本只有 Python 3。不过,你有哪个版本:

type python python2 python3

正如你在下面的截图中看到的,我的系统上安装了 Python 3 版本。

Checking Python version in Ubuntu

如果你没有安装任何 Python 版本,你可以用以下命令安装 Python 3 版本。

sudo apt install python3

使用 python3 而不是 python

如果对你来说不是太麻烦,在需要的地方使用 python3 命令而不是 python

想检查已安装的 Python 版本吗?请这样输入:

python3 --version

然后你会在输出中得到版本的详细信息:

~$ python3 --version
Python 3.10.4

如果你必须运行一个 Python 程序,请像这样执行它:

python3 program.py

这在大多数情况下应该对你有用。但是,如果你使用的是一些(旧的)Python 应用,期望在其代码中运行 Python 可执行文件,你就会有问题。别担心,你也可以绕过它。

将 python3 链接为 python

你可以在你的 .bashrc 文件中创建一个永久别名,像这样:

alias python='python3'

这样,你可以运行 python 命令,而你的系统运行 python3

这在大多数情况下都会起作用,除非某些程序期望运行 /usr/bin/python。现在,你可以在 /usr/bin/python/usr/bin/python3 之间建立符号链接,但对于 Ubuntu 用户来说,存在一个更简单的选择。

对于 Ubuntu 20.04 和更高版本,如果你安装了 python-is-python3 软件包,你有一个软件包可以自动完成所有链接创建。这也是原始错误信息所提示的。

sudo apt install python-is-python3

install python is python3 ubuntu

你可以看到符号链接已经被创建,你可以使用 python 命令(实际上是运行 python3),没有任何问题。

checking python ubuntu

我希望这能澄清 Ubuntu 中 Python 软件包的问题。如果你有任何问题或建议,请告诉我。


via: https://itsfoss.com/python-not-found-ubuntu/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

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

如果你想获得安全的体验,你可能不会再继续使用 32 位 Linux 内核。

我们有很多 为 32 位系统定制的 Linux 发行版

那么,为什么我想要不鼓励使用 32 位,而升级到 64 位 Linux 呢?

有几个原因,其中一个最大的原因,在本周引发了很多关注。

32 位:古老的电子垃圾硬件?

没错,与其他操作系统不同的是,Linux 发行版允许你重新利用旧硬件。

你能够将一个老机器转换为 媒体服务器、存储服务器,等等。

在这里,我并不是要给你一些如何贡献更多的电子垃圾的思路。尽可能长地利用你的硬件,而不更换它们总是好的。

然而,不使用 32 位系统的理由可能比以往更有说服力。关键的问题是在安全和维护方面。

利用 64 位 Linux 提高安全性

2018 年,危险的处理器安全问题 Spectre 漏洞引发了热议。虽然英特尔和 AMD 对这个漏洞进行了修复,但情况并不乐观。

不幸的是,一个新的漏洞 Retbleed,它是 Spectre 的一个变种,正在影响英特尔和 AMD 芯片。

你可以在下面由发现它的研究人员分享的视频中看到它的情况。

因此,我们自然需要适当的措施来解决这个新的安全漏洞的修复问题。

令人震惊的事情来了。64 位 Linux 内核已经收到了对它的修复,以保护有关的英特尔/AMD 的处理器。但是,正如 Phoronix 所报道的,Linux 32 位内核仍然容易受到 Retbleed 漏洞的影响。

英特尔的 Pawan Gupta 在 内核邮件列表 中回应了这些担忧,他提到:

英特尔不知道还有谁在 Skylake 那一代的 CPU 上使用 32 位模式的生产环境。所以这不应该是一个问题。

另外,很少看到为 32 位维护所做的任何努力。所以,这应该不算什么意外。

因此,如果你使用你的系统进行任何可能受到安全问题影响的任务,你应该避开 32 位内核。

当然,如果你有一个完全离线的环境可以算做例外。所以,你可以这样做,但不建议这样做。

不关心安全问题?

即使你认为得不到像 Retbleed 这样的关键安全修复没有关系,2022 年的 32 位系统也会有更多的麻烦。

软件维护者们最终会放弃对 32 位系统上的工具和 Linux 发行版的更新。

因此,你的 32 位 Linux 系统可能很快就不会再有积极维护的程序了。

因此,现在进行转换(和升级)将是一个好主意。

你还在使用 32 位的 Linux 吗?你对此有什么看法?在下面的评论中分享你的想法。


via: https://news.itsfoss.com/64-bit-linux/

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

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