Seth Kenlon 发布的文章

安装 Java,使用 Maven 安装 JDBC,并安装数据库。然后,你就可以在 Java 代码中与数据库进行交互了。

当你编写一个应用时,需要数据存储是很常见的。有时你要存储你的应用需要的素材数据,其他时候你要存储用户数据,包括偏好和保存的数据。存储数据的一种方式是在数据库中,为了在你的代码和数据库之间进行通信,你需要为你的语言提供一个数据库绑定或连接器。对于 Java 来说,一个常见的数据库连接器是 JDBC( Java 数据库连接 Java database connectivity )。

1、安装 Java

当然,要使用 Java 进行开发,你还必须安装 Java。对于 Linux、macOS 和 WSL 或 Cygwin,我推荐 SDKman。对于 Windows,你可以从 developers.redhat.com 下载 OpenJDK。

2、使用 Maven 安装 JDBC

JDBC 是一种 API,通过语句 import java.sql.* 导入到你的代码中,但要使其有用,你必须安装数据库驱动和数据库以与之交互。你使用的数据库驱动和要通信的数据库必须匹配:要与 MySQL 交互,你需要 MySQL 驱动,要与 SQLite3 交互,你必须具有 SQLite3 驱动等等。

在本文中,我使用 PostgreSQL,但所有主流数据库,包括 MariaDBSQLite3,都有 JDBC 驱动程序。

你可以从 jdbc.postgresql.org 下载 JDBC for PostgreSQL。我使用 Maven 来管理 Java 依赖项,因此我将它包含在 pom.xml 中(调整 Maven Central 上的当前版本号):

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.5.0</version>
</dependency>

3、安装数据库

你必须安装要通过 JDBC 连接的数据库。有几个非常好的开源数据库,但是我只能为这篇文章选择一个,所以我选择了 PostgreSQL。

要在 Linux 上安装 PostgreSQL,请使用你的软件仓库。在 Fedora、CentOS、Mageia 和类似设备上:

$ sudo dnf install postgresql postgresql-server

在 Debian、Linux Mint、Elementary 和类似平台上:

$ sudo apt install postgresql postgresql-contrib

数据库连接

如果你不使用 PostgreSQL,同样的一般过程也适用:

  1. 安装 Java。
  2. 为你选择的数据库找到 JDBC 驱动,并将其包含在你的 pom.xml 文件中。
  3. 在你的开发系统上安装数据库(服务器和客户端)。

三个步骤,你就可以开始编写代码了。


via: https://opensource.com/article/22/9/install-jdbc-linux

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

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

都有谁可以访问你的家庭网络?随着物联网(IoT)的普及,有时在运行在你家庭网络上的服务比你想象的更多。我们应当设法保护它免受不需要的访问。

今天,互联网连接的典型结构是家里有一个路由器,通常是一个位于你家某个地方的小盒子,它充当了通往互联网世界的网关。路由器创建了一个本地网络,你将你的设备连接到这个本地网络,包括你的电脑、手机、电视、游戏机,以及其他任何需要连接到互联网或相互连接的设备。我们很容易将路由器当作一个分界线,一边是互联网而另一边是你的设备。但这是一个可怕的误解,因为在现实中,你的路由器的一边是整个计算机网络世界,另一边是你的数字生活。当你直接使用互联网时,你是在访问别人的计算机网络的共享区域。当你不使用互联网时,它却并没有消失,有很多脚本和程序被设计用以访问数以百万计的路由器,试图找到开放的端口或服务。随着物联网(IoT)的普及,有时在运行在你家庭网络上的服务比你想象的更多。通过以下三个步骤,你可以审计并保护你的家庭网络免受不必要的访问和攻击。

1、协议先行

路由器的部分工作是将互联网与你的家庭网络分开。但当你访问互联网时,你邀请互联网的某些部分进入你的家庭。这意味着你创建了一个例外规则,绕过了阻止互联网进入你的本地网络的一般规则。

在许多网站上,通过你的路由器的仅是文本内容。例如,当你访问你最喜欢的博客网站,阅读最新的科技新闻时,你下载了几页文字。你阅读文本,然后继续访问。这是一个简单的一对一的连接。

然而,HTTPS 协议是强大的,在互联网上运行的应用程序也充满了多样性。例如,当你访问某个网站时,你不只是在下载文本。你会得到图形,也许还有脚本或电子书。你还在后台下载 cookie,这有助于网站管理员了解谁在访问网站、加强对移动设备的支持、为更好的可访问性提供新设计并了解读者喜欢的内容。当你网上冲浪时,你可能不会想到 cookie 或流量分析是与你交互的东西,它是被“藏入”页面交互的东西,因为 HTTPS 协议的设计是广泛而通用的,在多数场景被高度信任。当你通过 HTTPS(或者说,在一个浏览器中)访问一个网站时,你可能在不知情的情况下默认同意自动下载文件,但你认为这些文件是有用的和无关紧要的。对于一种旨在减少信任的文件共享模式,你可以尝试一下 GeminiGopher 协议。

当你加入一个视频会议时,你也使用了类似的协议。你不仅要下载页面上的文字、用于流量监控的cookie,还要下载视频和音频材料。

有些网站的设计甚至更进一步,它们被设计成允许用户分享其电脑屏幕,有时甚至是对他们电脑的控制。这样设计的初衷是有助于远程技术人员修复电脑上的问题,但在现实中,用户可能被欺骗访问这一网站,导致财务凭证和个人数据被盗。

如果一个提供文字文章的网站要求你允许它在你阅读时调用网络摄像头,你理应高度警惕。当一个设备需要访问互联网时,你也应当保持同样的谨慎和警惕。当你把一个设备连接到网络时,重要的是要关注你同意了何种隐性协议。一个旨在控制你房子里的照明的设备不应该要求互联网接入,但事实上许多设备需要并且没有明确说明你授予该设备什么权限。许多物联网设备都希望接入互联网,这样你就可以在离家时通过互联网访问该设备。这也是“智慧家庭”的部分吸引力。然而,我们不可能知道所有设备运行的是什么代码。在可能的情况下,使用开源和值得信赖的软件,如 Home Assistant 来与你的物联网设备对接。

2、创建访客网络

许多现代路由器可以为你的家庭创建第二个网络(通常在配置面板中称为 “访客网络”)。你可能觉得你不需要访客网络,但实际上,访客网络是十分有意义的。它旨在为访问你房子的人提供互联网访问,而你不需要告诉他们你的私人网络密码。例如在我家的门厅里,我有一个牌子标明了访客网络的名称和密码。任何来访的人都可以加入该网络以访问互联网。

另一方面可以用于物联网、边缘设备和家庭实验室的应用。当我去年购买 “可编程” 的圣诞灯时,我惊讶地发现,为了连接这些灯,它们必须连接到互联网。当然,这些来自无名工厂的 50 美元的灯没有附带源代码,也没有任何方法可以与嵌入在适配器中的固件进行交互或检查,所以我对我同意将它们连接到我的本地网络有一定的顾虑。它们已经被永久地归入了我的访客网络。

每个路由器供应商都是不同的,所以没有关于如何在你的路由器上创建一个 “沙盒” 访客网络的通用指令。一般来说,你通过一个网络浏览器访问你的家庭路由器。你的路由器的地址有时印在路由器的底部,它以 192.168 或 10 开头。

访问路由器地址,用你配置互联网服务时使用的凭证登录。这通常是简单的 “admin” 和一个数字密码(有时,这个密码也印在路由器上)。如果你不知道登录方式,请致电给你的互联网供应商或者制造商咨询。

在图形界面中,找到 “访客网络” 的面板。这个选项在我的路由器的高级配置中,但它可能在你的路由器的其他地方,它甚至可能不叫 “访客网络”(或者它甚至可能不是一个选项)。具体情况因厂商而异。

创建访客网络

这可能需要耐心的寻找。如果你发现你的设备有这个选择,那么你可以为访客建立一个访客网络,包括在不受信任的灯泡上运行的应用程序。

3、配置防火墙

你的路由器可能已经存在一个默认运行的防火墙。防火墙将不需要的流量挡在你的网络之外,通常是将传入的数据包限制在 HTTP 和 HTTPS(浏览器流量)以及其他一些常用的协议上,并拒绝不是你发起的请求。你可以通过登录你的路由器并寻找 “防火墙” 或 “安全” 设置来检查防火墙是否正在运行。

然而,许多设备可以运行它们自己的防火墙。网络之所以被称为网络是因为在网络上的设备互相能进行连接。在设备之间设置防火墙,就像在你的房子里锁上一扇门。客人可以在大厅里游荡,但如果没有合适的钥匙,他们就不会被邀请进入你的私人办公室。

在 Linux 上,你可以使用 firewalld 接口和 firewall-cmd 命令来配置你的防火墙。在其他操作系统上,防火墙有时在一个标有 “安全” 或 “共享” 的控制面板中(有时两者都有)。 大多数默认的防火墙设置只允许出站流量(即你通过打开浏览器并导航到一个网站而启动的流量)和响应你的请求的入站流量(即响应你的导航的网络数据)。不是由你发起的传入流量会被阻止。

你可以根据需要配置相关规则以允许特定的流量,例如 SSH 连接VNC 连接,或 游戏服务器 主机。

监控你的网络

这些技巧有助于建立起你对周围发生的事情的认识。下一步是 监控你的网络。你可以从简单的开始,例如在你的访客网络的测试服务器上运行 Fail2ban。看一下日志,如果你的路由器提供日志的话。你不必对 TCP/IP 和数据包以及其他进阶知识了如指掌,就可以看到互联网是一个繁忙而嘈杂的地方,当你在家里安装一个新设备时,无论是物联网、移动设备、台式机或笔记本电脑、游戏机,甚至是 树莓派,而亲身体会到这一点对你采取预防措施有很大启发。


via: https://opensource.com/article/22/9/protect-home-network

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

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

Linux cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。

互联网上有很多关于 Linux 和开源的信息,但是当你想要深入工作,通常需要一份便捷的文档。早在 Linux 出现之前的 Unix 系统中,就有 man(“manual” 的缩写)和 info 命令了,二者都会显示命令、配置文件、系统调用等的官方项目文档。

关于 maninfo 页面是对知晓如何使用工具的用户的有用提醒,还是为初次使用的用户提供介绍存在争议。不管怎样,maninfo 页面介绍了工具以及如何使用该工具,很少涉及特定任务以及如何完成它们。正是出于这个原因,开发了 cheat 命令。

例如,设想你想不起来如何 解压 tar 压缩包文件man 页面会给你展示所有的选项,但需要你将这些信息转换为命令:

tar -A [OPTIONS] ARCHIVE ARCHIVE
tar -c [-f ARCHIVE] [OPTIONS] [FILE...]
tar -d [-f ARCHIVE] [OPTIONS] [FILE...]
tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...]
tar -r [-f ARCHIVE] [OPTIONS] [FILE...]
tar -u [-f ARCHIVE] [OPTIONS] [FILE...]
tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]

这确实是一些用户需要的,但是也使一些用户感到困惑。相比之下,cheat 命令会罗列常用命令:

$ cheat tar

# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar

# To extract a .tar in specified Directory:
tar -xvf /path/to/foo.tar -C /path/to/destination/

# To create an uncompressed archive:
tar -cvf /path/to/foo.tar /path/to/foo/

# To extract a .tgz or .tar.gz archive:
tar -xzvf /path/to/foo.tgz
tar -xzvf /path/to/foo.tar.gz
[...]

这真是雪中送炭!

Linux Cheat 命令

cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。如大多数 Unix 命令一样,同一个概念有多种不同的实现方式,它包括一个 使用 Go 编写 的和一个由我帮助维护的 仅用 100 行 Bash 编写 的两个版本。

若要安装 Go 版本的,下载 最新版 并将它放在某个 路径 中,例如 ~/.local/bin//usr/local/bin 中。若安装 Bash 版本,下载最新版并运行 install-cheat.sh 脚本:

$ sh ./install-cheat.sh

如需配置后安装,请使用 自动工具(Autotools):

$ aclocal ; autoconf
$ automake --add-missing ; autoreconf
$ ./configure --prefix=$HOME/.local
$ make
$ make install

在 Linux 中安装 Cheat 程序

Cheat 只是包含常用命令的纯文本文件。该程序可以从 github.com/cheat/cheatsheets 获得。当你第一次运行命令时,Go 版本会自动为你下载支持列表。如果你使用 Bash 版本,用 --fetch 选项可以下载支持列表:

$ cheat --fetch

man 一样,你的系统上可以有多个备忘单集合。 Go 版本的 cheat 使用 YAML 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 github.com/cheat/cheatsheets 集合以及 opensource.com 自己的 gitlab.com/opensource.com/cheatsheets 集合。

列出 Cheat 支持项目

使用 --list 选项即可查看 cheat 支持的项目:

$ cheat --list
7z
ab
acl
alias
ansi
ansible
ansible-galaxy
ansible-vault
apk
[...]

使用 Cheat 查看 Linux 命令

使用 cheat 查看命令如同使用 maninfo 查看一样简单。只需要输入你需要查询的命令即可:

$ cheat alias

# To show a list of your current shell aliases:
alias

# To alias `ls -l` to `ll`:
alias ll='ls -l'

默认情况下,cheat 命令会使用你的 环境变量 PAGER 中指定的分页器。你可以在运行 cheat 命令前改写 PAGER 变量值,暂时修改环境变量。

$ PAGER=most cheat less

如果你只是想在没有 PAGER 的情况下将 cheat 输出 到终端里,在 Bash 版中有 --cat 选项可以使用:

$ cheat --cat less

这并不是作弊

cheat 系统抓住了要害,你不必拼凑有关如何使用命令的线索,你只需按照示例进行操作即可。当然,对于复杂的命令,它不是深入研究实际文档的捷径,但为了快速借用,它还是可以的。

甚至你可以通过将文件放入其中一个备忘单集合中,来创建自己的备忘单。好消息是,因为这些项目是开源的,所以你可以将你的个人备忘单贡献给 GitHub 集合。另一个好消息是,当有新的 opensource.com 备忘单 版本发布时,我们将从现在开始包含纯文本版本,以便你可以将其添加到你的收藏中。

该命令称为 “ 作弊 cheat ”,但正如任何 Linux 用户都会向你保证的那样,它实际上并不是作弊。它只是以开源的方式工作得更巧妙。


via: https://opensource.com/article/22/6/linux-cheat-command

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

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

通过使用这个简单而强大的 Linux 命令行工具,来安排备份、文件清理以及其他任务。

 title=

在计算机上让任务按照有规律并且可预测的时间表运行很重要。作为人类,我们有时会因为分心、脑子里想太多,或是度假而记不住要做的事情。计算机真的很擅长按计划做事,但在计算机采取行动之前,人类必须对计算机进行编程。

在某种程度上,cron 系统是编程的初级简单入门。通过编辑一个文件就可以让计算机做你想让它做的事。你甚至不需要知道文件保存在哪里。只需键入一个简单的命令,输入你希望电脑遵循的 “配方”,并保存。从那时起,计算机会在指定时间执行你的指令,直到被告知停止。

从设计上来看,cron 不是一个复杂的系统。这里有一些你需要了解的内容。

cron 是什么?

cron 命令在 Linux 和 Unix 中无处不在,而且它经常被模仿和重塑,以至于它几乎成了按计划发生的事情的一个通用术语。它是自动化的一种形式,尽管有不同的实现方式(比如 Dillon's cron、Vixie's cron、chrony 和其他),以及像 anacron 和 systemd 定时器这样的变化,但其语法和工作流程几十年来一直保持着基本一致。

cron 在一个 “ 假脱机 spool ” 系统上工作,像打印机和电子邮件一样。如果不你知道打印机和电子邮件使用假脱机也没关系,因为假脱机文件的意义在于,你不需要想太多。在 Linux 系统中,/var/spool 目录被设计为重要但低级的文件的中心枢纽,用户不需要直接与之交互。 在 /var/spool 中管理的一个假脱机是 cron 表(简称为 “crontab”)。 包括你在内的每个用户在 Linux 系统中都有一个 crontab。用户可以编辑、查看和删除自己的 crontab。除此之外,用户可以使用 crontab 来安排任务。cron 系统监控 crontab,并确保一个 crontab 中列出的任何工作都能在其指定时间执行。

编辑 cron 设置

你可以使用 crontab 命令和 -e(代表“编辑”)选项来编辑你的 crontab。默认情况下,大多数系统会调用 vim 文本编辑器。如果你和我一样,不使用 Vim,那么你可以在 ~/.bashrc 文件中为自己设置一个不同的编辑器。我把我的设置为 Emacs,但你也可以试试 NanoKate,或者任何你喜欢的编辑器。EDITOR 环境变量定义了你在终端使用的文本编辑器,而 VISUAL 变量定义了你在图形模式下使用的编辑器:

export EDITOR=nano
export VISUAL=kate

更新设置后刷新你的 shell 会话:

$ source ~/.bashrc

现在你可以用喜欢的编辑器编辑 crontab:

$ crontab -e

为任务执行安排时间

cron 系统本质上是一个日历系统。可以通过五个不同的属性告诉 cron 需要让一个任务多长时间运行一次:分、时、日、月、星期。这些属性的顺序是固定的,并且不一定是直观的,你可以把它们看作是过滤器或掩码。默认情况下,你可以理解为所有东西都被设置为“总是”或者“每一个”。此命令将在全年的每一天每小时每分钟运行 touch /tmp/hello

* * * * * touch /tmp/hello

可以通过设置每个属性的具体定义来限制这个包罗万象的时间安排表。使任务在每个小时的 30 分钟时运行,将分钟设置为 30

30 * * * * touch /tmp/hello

可以通过一个具体的小时来进一步约束这个指令。使任务在每个凌晨 3:30 运行:

30 3 * * * touch /tmp/hello

你也可以让这个任务只在每个月的第一天运行:

30 3 1 * * touch /tmp/hello

你可以用 112 表示 1 至 12 月来设置月份,用 06 表示周日至周六来设置星期。这项任务在 4 月份的周一的 3:15 运行:

15 3 * 4 1 touch /tmp/hello

设置增量

所有这些设置都与一个固定时间 完全 匹配。使用 cron 符号设置可以在特定时间段后运行任务,例如,每 15 分钟运行一个任务:

*/15 * * * * touch /tmp/hello

每三天在上午 10 点运行任务:

* 10 */3 * * touch /tmp/hello

每 6 小时运行一次任务:

* */6 * * * touch /tmp/hello

Cron 速记符

现代的 cron 实现已经为常见的时间安排表添加了方便的速记符,包括:

  • @hourly:每小时
  • @daily:每天
  • @weekly:每周
  • @monthly:每月
  • @yearly@annually:每年

列出 cron 任务

使用 crontab 命令,查看计划中的 cron 任务列表:

$ crontab -l
15 3 * 4 1 touch /tmp/hello

删除一个 crontab

当一个 crontab 任务不需要时,可以使用 -r 选项来删除它:

$ crontab -r -i

-i 选项代表 交互式。它在删除文件之前会提示你进行确认。

Cron 可以做什么

知道如何使用 cron 是一回事,但但知道它的用途是另一回事。经典用例就是备份计划。如果你的电脑一天中大部分时间都是开着的,或者整天整夜地开着,那么可以为重要分区进行例行备份。我会在每天凌晨 3 点在主要数据分区上运行一个名为 rdiff-backup 的备份程序:

$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/

另一个常见的用途是系统维护。在我的 Slackware 桌面上,每周五下午会更新本地版本库目录:

$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update

我还会每 3 天在 15:00 运行一个 Ansible 脚本来 清理我的下载文件夹

$ crontab -l | grep ansible
* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml

有一些重复数据删除脚本、文件大小和 /tmp 目录的监视器、照片调整器、文件移动工具以及很多琐碎的任务,你可以安排在后台运行,以帮助保持系统不受干扰。有了 cron,计算机可以以我希望我的实体公寓能够做到的方式来照顾自己。

记住 cron 的设置

除了想明白你为什么需要 cron 之外,根据我的经验,cron 最难的事情是记住它的语法。重复这句话给自己听,反反复复,直到你记牢它:

分、时、日、月、星

分、时、日、月、星

分、时、日、月、星

更好的做法是,去 下载我们免费的速查表 ,这样当你最需要它时,它触手可及!

Cron 速查表

via: https://opensource.com/article/21/11/cron-linux

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

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

不要让文件权限拖你后腿。以下是在 Linux 和 macOS 上管理它们的方法。

如果你通过网络或“跑腿网络”(将文件保存到硬盘,以将其复制到一台计算机)在两个用户之间共享文件,那么在尝试读取或写入文件时可能会遇到权限错误。即使你了解它的概念,你也可能不知道该如何诊断或解决问题。我曾经将数据迁移作为一项服务执行,因此我遇到了相当多的权限错误和所有权冲突。这是我快速修复它们的方法。

1、确定正确的用户

在修复权限错误之前,你必须确定需要权限的人是谁。你可能认为你已经知道这一点,但你可能没有意识到用户名并不是用户身份的最确定属性。你的计算机不会将你视为一个人,而是将你视为一个数字。要了解你的号码,请查看你的用户 ID:

$ id --user
1005

2、获取当前所有者

接下来,确定你无法与之交互的文件的所有者。由于发生了文件权限问题,你可能需要使用 sudo 命令查看有关文件的信息:

$ sudo ls --numeric-uid-gid
-rw------- 1 1000 100  23041 Aug  2 05:26 bar
-rw------- 1 1000 100  54281 Aug  2 04:58 baz
-rw------- 1 1000 100    822 Aug  2 08:19 foo

在此示例中,拥有文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与它们交互的原因。更糟糕的是,这些文件标记为仅由拥有它们的用户可读和可写,因此即使是同一组的成员也不能与这些文件进行交互。

3、更改权限以匹配

你知道需要权限的用户,因此你可以更改当前所有者以匹配你当前的用户:

$ sudo chown 1005 foo

你还可以通过更改文件模式授予你的组成员以及系统上可能的其他用户对文件的访问权限。例如,在向组和任何其他用户授予读取权限(4)的同时保持读取和写入权限(7):

$ sudo chmod 744 foo

了解更多

当你对文件权限不熟悉时,它们似乎很棘手。有关文件所有权如何工作的更多信息,请阅读 chown 简介


via: https://opensource.com/article/22/8/fix-file-permission-errors-linux

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

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

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

典型的键盘只有约 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中国 荣誉推出