下一页 上一页 目录

8. Ctrl-Alt-Del 和其他特殊按键组合

8.1 Ctrl-Alt-Del (重启)

如果您按下 Ctrl-Alt-Del(或任何通过 loadkeys 分配了 keysym Boot 的按键),那么机器会立即重启(不进行同步),或者向 init 发送 SIGINT 信号。前者是默认行为。默认行为可以由 root 用户使用系统调用 reboot() 更改,请参阅 ctrlaltdel(8)。一些 init 程序会更改默认行为。当 init 收到 SIGINT 时会发生什么取决于所使用的 init 版本 - 通常这将由 /etc/inittab 中的 pf 条目决定(这意味着在这种情况下您可以运行任意程序)。在当前内核中,Ctrl-AltGr-Del 默认不再分配给 Boot。

8.2 其他组合

Name            Default binding
-------------------------------
Show_Memory     Shift-Scrollock
Show_Registers  AltGr-ScrollLock
Show_State      Ctrl-ScrollLock
Console_n       Alt-Fn and Ctrl-Alt-Fn  (1 <= n <= 12)
Console_{n+12}  AltGr-Fn                (1 <= n <= 12)
Incr_Console    Alt-RightArrow
Decr_Console    Alt-LeftArrow
Last_Console    Alt[Gr]-PrintScreen
Scroll_Backward Shift-PageUp
Scroll_Forward  Shift-PageDown
Caps_On                                 (CapsLock is a toggle; this key sets)
Compose         Ctrl-.

8.3 X 组合

Ctrl-Alt-Fn     Switch to VT n
Ctrl-Alt-KP+    Next mode
Ctrl-Alt-KP-    Previous mode
Ctrl-Alt-Backspace      Kill X
在某些主板上,Ctrl-Alt-KP- 和 Ctrl-Alt-KP+ 将等同于按下 Turbo 按钮。也就是说,两者都将产生扫描码 1d 38 4a ca b8 9d 和 1d 38 4e ce b8 9d,并且两者都将在 Turbo (>= 25MHz) 和非 Turbo (8 或 12 MHz) 之间切换。(通常,这些按键组合只有在主板上的跳线启用时才起作用。)

Perry F Nguyen (pfnguyen@netcom22.netcom.com) 写道:AMI BIOS 具有一个功能,如果在启用 BIOS 密码的情况下按下 Ctrl-Alt-Backspace 组合键,则会锁定键盘并闪烁 LED 指示灯,直到输入 CMOS/BIOS 密码。

在某些基于 SiS 的主板上,Ctrl-Alt-Backspace 组合键将导致断电,或使机器进入省电模式。(已报告 SiS 630 和 SiS645DX。)

8.4 Dosemu 组合

Ctrl-Alt-Fn     Switch to VT n (from version 0.50; earlier Alt-Fn)
Ctrl-Alt-PgDn   Kill dosemu (when in RAW keyboard mode)
(and many other combinations - see the dosemu documentation)

8.5 组合符号

一个符号可以使用多个按键组合构成。

请注意,至少有四种这样的组合机制

  1. Linux 键盘驱动程序机制,与 loadkeys 结合使用。
  2. X 机制 - 请参阅 X386keybd(1),后来的 XFree86kbd(1)。在 X11R6 下:编辑 /usr/X11R6/lib/X11/locale/iso8859-1/Compose

    另请参阅 Andrew D. Balsa 在 http://wauug.erols.com/~balsa/linux/deadkeys/index.html 的评论。

  3. 通过加载 "iso-insert.el" 或调用 `iso-accents-mode` 获得的 emacs 机制。
  4. vim 机制:通过按 Ctrl-K,后跟两个符号来插入组合符号。可以通过命令 :digraphs 获取可能的组合列表。
对于 X,两个符号的顺序是任意的:Compose-,-c 和 Compose-c-, 都会生成 c-cedilla;对于 Linux 和 emacs,默认情况下只有前一个序列有效。对于 X 和 vim,组合列表是固定的。Linux 和 emacs 是灵活的。默认列表有些相似,但细节有所不同。

8.6 SysRq 键

如果您的内核在编译时启用了 CONFIG_MAGIC_SYSRQ(Linux 2.1.43 版本之后的功能),则有一个单独的键(在 <linux/keyboard.h> 中定义)附加了特殊的系统功能,而与当前的键盘模式无关。对于 PC 架构,这个特殊键自然是 Alt+SysRq 键,并且两个 Alt 键中的任何一个都可以工作。(请注意,如果未启用 CONFIG_MAGIC_SYSRQ,则此键的默认操作是返回到上一个控制台。)

如果您按下此键,不要松开,然后按下另一个键,则会执行相应的操作。无论是否有人登录,是否是 root 用户,都会执行该操作。有关详细信息,请参阅 drivers/char/sysrq.c。由于此功能仅供内核黑客使用,因此这应该足够了。不过,让我补充几点说明。

对于键 r,键盘模式将重置为 K_XLATE。对于键 k,将执行 SAK 和控制台重置。对于键 b,机器将立即重启。(看到没,不希望在生产机器上启用此功能。)对于键 o,电源将被关闭(当机器有此功能时)。对于键 s,将安排紧急同步。对于键 u,将安排紧急只读重新挂载。对于键 p,t,m,将显示各种信息(即,与 RAlt、RCtrl、RShift+ScrollLock 显示的信息相同)。对于键 e,i,l,所有进程将分别收到 SIG_TERM 或 SIG_KILL;对于 l,甚至 init 进程也会被杀死。数字设置日志级别。任何其他键都会打印简短摘要:SysRq: unRaw saK Boot Off Sync Unmount showPc showTasks showMem loglevel0-8 tErm kIll killalL

注意:这些是非常危险的操作!并且它们不使用您的键盘映射 - 实际上,它们是为键盘映射甚至整个内核状态不确定的紧急情况而设计的。如果您使用 dvorak 键盘 - 真倒霉!大多数其他人都能幸存下来:在英语、法语和德语键盘上位置不同的危险字母 A、M、Q、W、Y、Z 不用于操作。(但是,如果您的手指滑了一下,按了 L 而不是 K - 那就跟您的系统说再见吧。)

在 Linux 2.3.13 中,添加了启用/禁用 SysRq 的功能。

        echo 0 > /proc/sys/kernel/sysrq
将禁用它(如果内核在编译时启用了 CONFIG_MAGIC_SYSRQ)。

8.7 问题

一个好的键盘能够准确报告多个按键按下。特别是对于使用键盘作为盲文输入设备的人来说,他们必须能够同时按下多达六个键,这一点非常重要。许多现代键盘在这方面表现不佳,原因是设计和测试马虎 - 当同时按下四个或更多键时,它们会误报或失效,有时甚至在同时按下两个非修饰键时也会出现这种情况。这在一定程度上影响了 Linux 用户:SysRq 键不是修饰键,并且有人报告了使用 Alt-SysRq-X 处理各种字母或数字 X 时出现问题。

很久以前,由于扫描矩阵的设计,也曾出现过类似的问题(“重影”):当按下三个键时,也会看到第四个键。这个问题通过使用二极管得到了解决。如今,缺陷在于接口逻辑。


下一页 上一页 目录