Keyboard shortcuts (Русский)
В этой статье приведен список (не общеизвестных) стандартных сочетаний клавиш и предоставляется информация о пользовательской настройке.
Стандартные сочетания клавиш
Ядро (SysRq)
Имеется несколько низкоуровненных сочетаний клавиш, реализованных в ядре и которые могут быть использованы для отладки и восстановления зависнувшей системы. Всякий раз, когда это возможно, рекомендуется использовать эти сочетания клавиш вместо аппаратного выключения (удержание кнопки включения компьютера до полного отключения системы).
Подробнее: Wikipedia:Magic SysRq key
Включение
В systemd битовая маска разрешений sysrq по умолчанию установлена на 0x10, что не позволяет, в частности, отправлять процессам сигналы или перезагружаться. Чтобы разрешить полное использование sysrq в вашей системе, добавьте kernel.sysrq = 1
в конфигурацию sysctl. Значения больше 1 могут использоваться для выборочного включения функций sysrq; подробности описаны в документации ядра. Если хотите убедиться, что они будут включены даже до монтирования разделов и перед initrd, добавьте sysrq_always_enabled=1
в параметры ядра.
Обратите внимание, что изменение этих настроек является постоянным. Если вы хотите изменить параметры sysrq только для текущего сеанса, можно использовать sysctl kernel.sysrq=1
или echo "1" > /proc/sys/kernel/sysrq
.
Полное включение sysrq связано с некоторыми очевидными рисками безопасности. Помимо принудительных перезагрузок и тому подобного, sysrq может использоваться для дампа содержимого регистров процессора, что теоретически может раскрыть конфиденциальную информацию. Поскольку для его использования требуется физический доступ к системе (если только вы не вынесете управление sysrq за её пределы), большинство пользователей настольных компьютеров, вероятно, сочтут уровень риска приемлемым. Тем не менее, прежде чем включить sysrq, убедитесь, что вы полностью понимаете последствия его использования и динамику контекста, в котором работает ваша система.
Перезагрузка
Общая идиома для запоминания этих сочетаний клавиш - "Reboot Even If System Utterly Broken" (сокращенно "REISUB"). Кроме того, подумайте об этом наоборот "BUSIER".
Сочетание клавиш | Описание | Код для включения | Другие включаемые функции |
---|---|---|---|
Alt+SysRq+r Unraw
|
Забирает клавиатуру от X для управления. | 4 | Alt+SysRq+k SAK
|
Alt+SysRq+e Terminate
|
Отправляет SIGTERM всем процессам. Этот сигнал запрашивает завершение процесса, но он может быть проигнорирован. | 64 | Alt+SysRq+f OOM kill Alt+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, хотя это также включает дополнительные функции, перечисленные в последнем столбце таблицы. Дополнительную документацию смотрите в документации ядра и в исходном файле ядра /drivers/tty/sysrq.c
.
Завершение процесса, занимающего много памяти
Можно использовать Alt+SysRq+f
для вызова OOM (out-of-memory) killer, не вызывая паники ядра, если ничего не может быть убито. OOM killer использует набор эвристик, чтобы выбрать не очень важный процесс, использующий больше всего памяти, и убить его. Это очень полезно для завершения процесса, который заблокировал вашу систему, например, запущенный скрипт браузера, и во многих случаях может избавить от необходимости перезагрузки. Обратите внимание, что OOM killer может быть нацелен на широкий спектр процессов, несмотря на его благонамеренную эвристику, и может быть несколько непредсказуемым, поэтому будьте осторожны с его вызовом.
Решение проблем
- Если вы используете экранный менеджер и после
Alt+SysRq+e
появляется экран входа в систему (или рабочий стол, если включен автовход), скорее всего это вызвано директивойRestart=always
в соответствующем файле службы. Если нужно отредактируйте юнит, однако это не должно препятствовать работе последовательности "REISUB". - Если все вышеперечисленные комбинации работают, кроме
Alt+SysRq+b
, попробуйте использовать контралатеральную клавишуAlt
. - На ноутбуках, использующих клавишу
Fn
для переключенияSysRq
/PrtScrn
, на самом деле не обязательно использоватьFn
(например,Alt+PrtSc+буква
должно работать). - На ноутбуках Lenovo клавиша
SysRq
часто настроена какFn+S
. Чтобы использовать ее нажмите и держитеAlt
, затем нажмитеFn+s
, отпуститеFn
иs
все еще удерживайтеAlt
, а затем нажмите необходимую клавишу-букву. - Вам может потребоваться нажать
Ctrl
вместе сAlt
. Так например, полное сочетание клавиш будет таким:Ctrl+Alt+SysRq+b
.
Консоль Linux
Смотрите Консоль Linux#Горячие клавиши.
Xorg и Wayland
Сочетание клавиш | Описание | Примечание |
---|---|---|
Ctrl+Alt+F1 , F2 , F3 , ...
|
Переключиться на n-ную виртуальную консоль | Если это не работает, попробуйте Ctrl+Fn+Alt+F… .
|
Shift+Insert Mouse Button 2
|
Вставить текст из буфера PRIMARY | По умолчанию Shift+Insert Qt соответствует CLIPBOARD вместо буфера PRIMARY (посмотрите, например, [1]) и Ctrl+Shift+Insert - буферу PRIMARY.
|
Настройка
Readline
Readline — это широко используемая библиотека для редактирования строк; она используется, например, в Bash, FTP и многих других программах (больше примеров можно посмотреть в разделе "Required By" в описании пакета readline). Она имеет Emacs-подобные и vi-подобные режимы редактирования, которые можно настроить с помощью управляющих последовательностей. Стандартные сочетания клавиш описаны в readline(3) и документации Info.
Zsh
Zsh использует ZLE для виджетов, скриптов и команд.
Xorg
Чтобы узнать некоторые общие сочетания клавиш, которые по умолчанию отключены, смотрите Конфигурация клавиатуры в Xorg#Часто используемые опции XKB.
Когда мы находимся в графическом окружение, мы можем захотеть выполнить команду при нажатии определенной комбинации клавиш (то есть привязать команду к keysym). Существует несколько способов сделать это:
- Самый портативный способ. Использование инструментов низкого уровня, таких как acpid. Не все клавиши поддерживаются, но конфигурация в унифицированном виде возможна для клавиш клавиатуры, подключения адаптера питания и даже для подключения/отключения наушников. Также трудно запускать программы внутри X сеанса правильно.
- Универсальный способ. Использование утилит Xorg (например, xbindkeys) и, в конечном итоге, инструментов вашего окружения рабочего стола или оконного менеджера.
- Более быстрый способ. Использование сторонних программ, где все можно сделать в GUI, таких как Gnome Control Center.
sxhkd
Простой демон X hotkey с мощным и компактным синтаксисом конфигурации. Для получения дополнительной информации смотрите sxhkd.
actkbd
- actkbdAUR (доступно в AUR) - простой демон, который связывает действия с событиями клавиатуры. Он распознаёт сочетания клавиш и может обрабатывать события нажатия, удержания и отпускания. В настоящее время он поддерживает только интерфейс linux-2.6 evdev. Он использует текстовый файл конфигурации, который содержит все привязки.
Образец конфигурации и руководство по настройке можно найти здесь.
xbindkeys
xbindkeys позволяет расширенное сопоставление клавиш с действиями независимо от окружения рабочего стола.
xbindkeys
сложным в использование, попробуйте графический менеджер xbindkeys_config-gtk2AUR из AUR.Среды рабочего стола
Оконные менеджеры
Сочетание клавиш для X-selection-paste
Пользователи, которые предпочитают работать скорее с клавиатурой, чем с мышью, могут извлечь выгоду из сочетаний клавиш к операции вставки средней кнопки мыши. Это особенно полезно в среде, которая управляется клавиатурой. Пример работы:
- В Firefox выберите строку, которую вы хотите использовать для Google (с помощью мыши).
- Нажмите
Ctrl+k
, чтобы ввести поле "поисковая система". - Нажмите
F9
, чтобы вставить буфер, вместо того, чтобы перемещать указатель мыши в поле и щелкать по колесику для вставки.
Shift+Insert
имеет сходную, но другую функциональность, для получения дополнительной информации смотрите #Xorg: Shift+Insert
вставляет буфер clipboard, а не x-selection-paste. В некоторых приложениях эти два буфера зеркалируются.В предлагаемом здесь способе используются следующие три пакета:
- xsel для предоставления доступа к содержимому буфера the x-selection-buffer.
- Xbindkeys для связывания клавиши к действию.
- xvkbdAUR для передачи буферной строки в приложение путем эмуляции ввода клавиатуры.
В этом примере операция x-selection-paste связывается с клавишей F9
:
.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null" F9
Префикс кода "\D1"
устанавливает задержку 100 мс для вставки буфера (для получения дополнительной информации смотрите домашнюю страницу xvkbd).
-xsendevent
для xvkbd.Коды клавиш отличных от F9
можно определить с помощью xbindkeys -k
.
Связанные с этим ссылки:
Оконный менеджер XMonad
В оконном менеджере xmonad есть встроенная функция для вставки содержимого x-selection-buffer. Чтобы связать эту функцию с клавишей (здесь с Insert
) , можно использовать следующие настройки:
xmonad.hs
import XMonad.Util.Paste ... -- X-selection-paste buffer , ((0, xK_Insert), pasteSelection) ]
Советы и рекомендации
- Если вам нравится работать с клавиатурой, вы также можете оценить фреймовые оконные менеджеры.