快捷键 - Arch Linux 中文维基

跳转到内容

# 快捷键

来自 Arch Linux 中文维基

本文介绍默认快捷键，以及用户自定义快捷键的信息。

提示：如果你需要键盘为主的工作流，参见平铺窗口管理器。

## 默认快捷键

### 内核（SysRq）

以下是系统底层的快捷键，通常被用于调试。遇到系统问题，请尽可能尝试这些快捷键，而不是按住电源开关强制关机。

详情参见 Magic SysRq key - Wikipedia。

#### 启用

systemd 有一个默认设置为 0x10 的 SysRq 权限掩码。这使得 SysRq 并不能允许进程做发出信号、重启等事项。为使用 `SysRq` 的完整功能，在 sysctl#配置 sysctl中加入 `kernel.sysrq = 1`。高于 1 的值用于选择性地开启 SysRq 功能，详见 Linux 内核文档。如果你想确保其在分区挂载前开启，在内核参数中加入 `sysrq_always_enabled=1`。

注意，改变上述设置将使这些快捷键在重启后保持开启。如果你只想在当前会话开启 SysRq，你可以执行 `sysctl kernel.sysrq=1` 或 `echo "1" > /proc/sys/kernel/sysrq`。

完全启用 SysRq 有明显的安全风险。除了强制重启，它还可以被用来丢弃 CPU 寄存器的内容，理论上来说可以泄露敏感信息。由于使用它需要物理访问系统(除非您通过 sysrqd 对外开放)，大多数桌面用户可能认为风险水平是可以接受的。尽管如此，在开启 SysRq 之前，你仍需要确保充分理解开启它的风险。

#### 重启

记住这个激活命令的通用口诀是 "Reboot Even If System Utterly Broken" (或者"REISUB")。 要是记不住，想象 "BUSIER" 吧。

注意：千万注意："REISUB" 只是个口诀，决非是一种取得某个死机的系统后门权限的方法。你不应该在不了解这些键的真正功能的情况下盲目按。

键盘快捷键 | 描述
--- | ---
`Alt`+`SysRq`+`r` Unraw | 从X收回对键盘的控制
`Alt`+`SysRq`+`e` Terminate | 向所有进程发送SIGTERM信号，让它们正常终止
`Alt`+`SysRq`+`i` Kill | 向所有进程发送SIGKILL信号，强制立即终止
`Alt`+`SysRq`+`s` Sync | 将待写数据写入磁盘
`Alt`+`SysRq`+`u` Unmount | 卸载所有硬盘然后重新按只读模式挂载
`Alt`+`SysRq`+`b` Reboot | 重启

#### 杀死内存占用过多的进程

`Alt+SysRq+f` 可用于唤醒 OOM（内存耗尽） 杀手。即使在没有可以杀死的进程下，这也不会造成内核恐慌。这个 OOM 杀手作出一系列尝试，来杀死相对不重要的进程并收回内存。当某个进程用太多内存，比如浏览器脚本运行失控，导致系统软锁的时候，这很有用，能缓解很多需要重启的情况。请注意，OOM 杀手能杀掉各种进程。尽管其本意是好的，但还是不可预测。因此，要小心使用,不要随意唤醒它。

#### 远程使用

sysrqdAUR 是一个远程使用 `SysRq` 的守护进程。它看起来没人维护了。[1]

#### 疑难解惑

- SysQq 将其结果输出到内核缓存环，会被 systemd 日志收集。即使 Linux 控制台没有输出任何东西，结果仍然在内核缓存环中。没有控制台输出并不意味着它没执行成功。如果碰上了这种情况，运行 `journalctl -kf` 来监控其到达内核缓存环的输出。
- 如果你在使用显示管理器，并且在按下 `Alt+SysRq+e` 后显示了登录界面（开启了自动登录的话，还可能是完全的桌面），这很有可能是由于与服务文件有关的 `Restart=always` 指令导致的。有必要的话，你可能需要编辑单元文件，但这应该不影响 "REISUB" 序列工作。
- 如果以上快捷键除了 `Alt+SysRq+b` 都成功了，尝试使用对测的 `Alt` 键。
- 对于一些用 `Fn` 键从 `PrtScrn` 键中区别出 `SysRq` 键的笔记本，可能并不需要同时按下 `Fn` 键（例如：`Alt+PrtScrn+字母` 可能可以工作）。
- 对于 Legion 系列以外的联想笔记本，经常将 `Fn+S` 设置为 `SysRq` 键。为了使用这个快捷键的功能，先持续按下 `Alt` 键，然后按 `Fn+S`，松开 `Fn` 与 `s`，始终保持 `Alt` 键，按先前提到的顺序继续按。
- 你可能需要和 `Alt` 一同按下 `Ctrl`。如果这样，完整的快捷键示例就像 `Ctrl+Alt+SysRq+b`。

### 终端

见 Linux 控制台#快捷键。

### Xorg 与 Wayland

快捷键 | 解释 | 注意
--- | --- | ---
`Ctrl+Alt+F1`, `F2`, `F3`, ... | 切换到第 n 个虚拟控制台。 | 不能用的话，尝试 `Ctrl+Alt+Fn+F…`。
`Shift+Insert` `鼠标按键 2` | 从主缓冲区粘贴文本 | 默认情况下，Qt 将 `Shift+Insert` 映射到剪贴版而非主缓冲区（见[2]），而 `Ctrl+Shift+Insert` 才映射到主缓冲区。

注意：译注：鼠标按键 2 一般是中键。

## 自定义快捷键

### Readline

Readline 是行编辑领域常用的库，用例见 Bash、FTP，以及很多的其他软件（详见 readline包 包页面下“被依赖”节）。它提供 Emacs 与 vi 风格的编缉模式，因而有很多可以自定义的空序列。默认快捷键在 readline(3) 和文档页（或 `info readline`）列出。

### Zsh

Zsh 使用 ZLE 将快捷键映射到小部件、脚本与指令。

### Xorg

Xorg/Keyboard configuration#Frequently used XKB options 记载了一些常见的快捷键，但它们默认关闭。

在桌面环境下，我们可以通过几种办法来实现一个按键序列被按下的时候自动执行一个指令（例如：将一个指令绑定到 keysym）：

- 最可移植的办法是使用低级工具，例如 acpid。不是所有的键位都受到支持，但是它也可能通用于键盘案件、电源键甚至耳机接口的插拔事件。但，仍然要注意：它可能很难在 X 会话上正确地运行程序。
- 最普遍的方法是使用 Xorg 工具（如 xbindkeys）和桌面环境（窗口管理器）的工具。
- 快速的办法是用第三方程序，把所有的东西都放到 GUI，例如 Gnome 控制中心。

#### sxhkd

简单的 X 热键守护进程，提供了又小又强的配置语法。详见 sxhkd。

#### actkbd

根据 actkbd 的主页：

  actkbdAUR 是一个简单的将事件绑定到键盘事件上的守护进程。它可以识别组合键、连击、按下与释放按键的事件。它只支持 linux-2.6 edev 界面。它使用富文本的配置档案来记录所有的绑定.

配置示例和指南可以访问这个链接。

#### xbindkeys

xbindkeys 支持独立于桌面环境的键-事件映射。

提示：如果你觉得 `xbindkeys` 很难用，有一个图形化的管理器 xbindkeys_config-gtk2AUR 可用。

### 桌面环境

- LXDE#键盘快捷键
- Xfce#键盘快捷键

### 窗口管理器

- Fluxbox#键盘快捷键
- Openbox#键盘快捷键
- i3#键盘快捷键
- Xmonad#X-Selection-Paste

### X-selection-paste 的键位映射

本文或本章节的事实准确性存在争议。

原因： `Shift+Insert` 从主缓存粘贴（在 Talk:快捷键 中讨论）

这篇文章的某些内容需要扩充。

原因：为何有 100 毫秒的延迟？ (在 Talk:快捷键 中讨论)

更喜欢使用键盘工作的用户可能希望用快捷键来替代用中键粘贴，特别是在键盘中心的环境中使用的时候。一个工作流示例如下：

1. 在使用火狐的时候，用鼠标选择一个你想在网上搜索的字符串。
2. 按下 `Ctrl+k` 进入“搜索引擎”区。
3. 按 `F9` 来粘贴缓冲区中的内容，代替用鼠标移到搜索引擎区再按中键。

注意：`Shift+Insert` 的功能很相似，但是略有不同，见#Xorg：`Shift+Insert` 在 QT 环境下从剪贴版缓冲区而非 x-selection-paste 缓冲区粘贴。在一些程序中，此二者互相映射。

如上示例使用以下三样包：

- xsel包 来访问 x-selection 缓冲区内容。
- Xbindkeys 来将快捷键绑定到行为。
- xvkbdAUR 用于通过模拟键盘输入来将缓冲区中的字符串输入到应用中。

这个示例将 x-selection 粘贴操作绑定到 `F9` 键：

    .xbindkeysrc

    "xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null"
        F9

`"\D1"` 码前置 100 毫秒延迟来插入到选定的缓冲区（详见 xvkbd 主页）。

注意：取决于你的 X 设置，你可能需要不在 xvkbd 使用 `--xsendevent` 参数。

除了 `F9` 以外的键也可以用 `xbindkeys -k` 绑定。

引用：

- 用键盘粘贴 X-selection（而非剪贴板）的内容
- xvkbd 主页

## 参见

- Linux Newbie 管理员指南 - 快捷键与指令
- 如何使用 Linux 下的键盘与控制台

分类：​

- 键盘
- X 服务器

隐藏分类：​

- 使用“模板:准确性”标记的页面或章节

快捷键
添加话题