键盘快捷键
本文提供一份(不常用的)默认键盘快捷键列表,并提供关于用户自定义的信息。
标准快捷键
内核 (SysRq)
内核通过 SysRq 键实现了几个底层快捷键,可用于调试和从无响应的系统中恢复。在可能的情况下,建议您使用这些快捷键,而不是硬关机(按住电源按钮以完全关闭系统)。
有关更多详细信息,请参阅 Wikipedia:Magic SysRq key。
启用
systemd 默认将 SysRq 权限位掩码 设置为 0x10,这 不允许进程信号处理或重启 等操作。 要允许在您的系统上完全使用 SysRq
键,请将 kernel.sysrq = 1
添加到您的 sysctl 配置 中。 大于 1 的值可用于有选择地启用 SysRq 功能; 有关详细信息,请参阅 Linux 内核文档。 如果您想确保即使在分区挂载之前和 initrd 中也启用它,请将 sysrq_always_enabled=1
添加到您的 内核参数 中。
请注意,通过这些方法更改设置将导致更改在重启后仍然存在。 如果您只想尝试为当前会话更改 SysRq 设置,您可以运行 sysctl kernel.sysrq=1
或 echo "1" > /proc/sys/kernel/sysrq
。
为了避免完全启用 SysRq
功能所涉及的安全风险,用户可以启用部分功能,如下节所述。 如果启用对 SysRq
的无限制使用,则允许杀死进程和强制重启,这不会增加桌面和笔记本电脑用户的风险。 但它也可用于转储 CPU 寄存器的内容,这在理论上可能会泄露敏感信息。 除非您 刻意为之,否则这需要物理访问系统。
重启
一个常用的助记符是“Reboot Even If System Utterly Broken”(也称为“REISUB”)。 或者,可以将其反过来记为“BUSIER”。
键盘快捷键 | 描述 | 启用代码 | 启用的其他功能 |
---|---|---|---|
Alt+SysRq+r Unraw |
将当前虚拟控制台的键盘模式从原始模式切换到 ASCII 模式(也称为 XLATE 模式) [1]。 | 4 | Alt+SysRq+k SAK |
Alt+SysRq+e Terminate |
向所有进程发送 SIGTERM 信号,允许它们正常终止。 | 64 | Alt+SysRq+f OOM killAlt+SysRq+j Thaw |
Alt+SysRq+i Kill |
向所有进程发送 SIGKILL 信号,强制它们立即终止。 | ||
Alt+SysRq+s Sync |
将数据刷新到磁盘。 | 16 | - |
Alt+SysRq+u Unmount |
卸载并以只读方式重新挂载所有文件系统。 | 32 | - |
Alt+SysRq+b Reboot |
重启 | 128 | - |
例如,要选择性地仅启用重启功能,请将 kernel.sysrq
设置为 128。 REISUB 功能的完整集合可以通过将其设置为 244 来启用,尽管这也启用了其他功能,例如表中最后一列列出的功能。 有关更多文档,请参阅 SysRq 键文档 和内核源文件 /drivers/tty/sysrq.c
。
杀死占用大量内存的进程
Alt+SysRq+f
可用于调用 OOM(内存不足)killer,而不会在没有进程可杀死时导致内核panic。 OOM killer 使用一组启发式方法来选择使用最多内存的相对非关键进程并将其杀死。 这对于杀死因过度抖动而导致系统软锁定的进程(例如失控的浏览器脚本)非常有用,并且可以在许多情况下减轻重启的需要。 请注意,尽管 OOM killer 的启发式方法是善意的,但它可能会针对各种各样的进程,并且可能有些不可预测,因此请谨慎随意调用它。
远程使用
sysrqdAUR 是一个用于远程使用 SysRq
功能的守护进程。 它目前似乎无人维护。 [2]
故障排除
- 如果 SysRq 操作产生输出,它将被发送到内核环缓冲区,systemd 日志 将会拾取它。 当没有任何东西阻止输出显示在 Linux 控制台 上时,它也会出现在那里。 控制台上没有响应并不能证明 SysRq 命令未成功处理。 如果是这种情况,请运行
journalctl -kf
以监控到达内核环缓冲区的输出。 - 如果您正在使用显示管理器,并且在
Alt+SysRq+e
后您看到登录屏幕(如果启用了自动登录,则为完整桌面),则很可能是由相关 服务文件 中的Restart=always
指令引起的。 如果有必要,编辑单元文件,但这不应阻止 “REISUB” 序列工作。 - 如果除了
Alt+SysRq+b
之外的所有上述组合都有效,请尝试使用另一个Alt
键。 - 在笔记本电脑上,
Fn
键用于区分SysRq
和PrintScreen
,可能实际上不需要使用Fn
键(即,Alt+PrintScreen+字母
可能有效)。 - 在联想笔记本电脑(Legion 系列除外)上,
SysRq
通常配置为Fn+S
。 要使用它,请按住Alt
,然后按Fn+s
,释放Fn
和s
,仍然按住Alt
,然后按上面的键。 - 您可能需要同时按下
Ctrl
和Alt
,或者AltGr
[3]。 完整的快捷键将是Ctrl+Alt+SysRq+b
或AltGr+SysRq+b
。 - 某些键盘,例如罗技 K835,使用
Fn+Ins
来产生SysRq
。
Xorg 和 Wayland
键盘快捷键 | 描述 | 注释 |
---|---|---|
Ctrl+Alt+F1 , F2 , F3 , ... |
切换到第 n 个虚拟控制台 | 如果它不起作用,请尝试 Ctrl+Alt+Fn+F… 。 |
Shift+Insert 鼠标中键
|
从 PRIMARY 缓冲区 粘贴文本 | 默认情况下,Qt 将 Shift+Insert 映射到 CLIPBOARD 而不是 PRIMARY 缓冲区(例如,请参阅 [4]),而 Ctrl+Shift+Insert 则映射到 PRIMARY 缓冲区。 |
自定义
Readline
Readline 是一个常用的行编辑库; 例如,Bash、FTP 和更多程序(有关更多示例,请参阅 readline 软件包下的“Required By”)。 它具有 Emacs 风格和 vi 风格的编辑模式,可以使用转义序列进行自定义。 默认按键绑定在 readline(3) 和 Info 文档 中列出。
Xorg
有关一些默认情况下禁用的常用快捷键,请参阅 Xorg/键盘配置#常用 XKB 选项。
当我们在图形环境时,我们可能希望在按下某些组合键时执行命令(即,将命令绑定到键符)。 有多种方法可以做到这一点
- 最便捷的方式是使用底层工具,例如 acpid。 并非所有按键都受支持,但可以统一配置键盘按键、电源适配器连接甚至耳机插孔(拔出)事件。 在 X 会话中正确运行程序也很困难。
- 通用方法是使用 Xorg 实用程序(例如 xbindkeys)以及您的桌面环境或窗口管理器工具。
- 更快的方法是使用第三方程序在 GUI 中完成所有操作,例如 Gnome 控制中心。
sxhkd
一个简单的 X 热键守护进程,具有强大而紧凑的配置语法。 有关详细信息,请参阅 sxhkd。
actkbd
来自 actkbd 主页
- actkbdAUR 是一个简单的守护进程,它将操作绑定到键盘事件。 它识别按键组合,并且可以处理按下、重复和释放事件。 目前它仅支持 linux-2.6 evdev 接口。 它使用纯文本配置文件,其中包含所有绑定。
此处提供了示例配置和指南 here。
xbindkeys
xbindkeys 允许独立于桌面环境高级映射键符到操作。
xbindkeys
难以使用,请尝试图形管理器 xbindkeys_config-gtk2AUR。X 选择粘贴的按键绑定
喜欢使用键盘而不是鼠标的用户可能会从用于粘贴鼠标中键操作的按键绑定中受益。 这在以键盘为中心的环境中尤其有用。 工作流程示例是
- 在 Firefox 中,选择您要进行网络搜索的字符串(使用鼠标)。
- 按
Ctrl+k
进入“搜索引擎”字段。 - 按
F9
粘贴缓冲区,而不是将鼠标指针移动到字段并单击鼠标中键以粘贴。
Shift+Insert
具有类似但不同的功能,请参阅 #Xorg:Shift+Insert
插入剪贴板缓冲区,而不是 x-selection-paste 缓冲区。 在某些应用程序中,这两个缓冲区是镜像的。此处建议的方法使用以下三个软件包:
此示例将 x-selection-paste 操作绑定到 F9
键
.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null" F9
代码 "\D1"
在插入选择缓冲区之前添加 100 毫秒的暂停(请参阅 xvkbd 主页)。
-xsendevent
参数到 xvkbd。可以使用 xbindkeys -k
确定 F9
以外的键的键代码。
参考