Одна из печальных тенденций последних лет: отмирание клавиатуры. Смартфоны и планшетки, став доминирующей формой цифровых устройств, увы, сильно поменяли и основной способ ввода информации — отказавшись в пользу экранных клавиатур от клавиш механических. Это с одной стороны логично и даже радует: техника не стоит на месте, развивает идеи, ищет пути решения старой задачи новыми средствами. Но с другой, теряя клавиатуру, мы теряем и один из самых эффективных способов управления цифровым железом. Я говорю о клавиатурных шорткатах.
Шорткат (shortcut) в буквальном переводе с английского — дорожка, двигаясь по которой, человек «срезает» путь. Аналогия с компьютерами, сами видите, условная, но всё-таки напрашивается. Знаете эту историю о происхождении «трёхклавишного заклинания» Ctrl+Alt+Del? Его придумал не Билл Гейтс, а безвестный сотрудник IBM (имя у него конечно же было: Дэвид Брэдли), который, работая над тем, что впоследствии станет IBM PC, до того устал от постоянных полных перезагрузок машины после частых сбоев, что назначил сочетанию трёх клавиш функцию перезагрузки без теста памяти (в те далёкие времена, на переломе 70-х и 80-х годов, процессоры были медленными и на проверку памяти уходило заметное время).
Так появилась функция, сэкономившая цивилизации тысячи человеко-лет. И мы всё ещё её используем — отдавая дань уважения таланту человека, «открывшего» этот «короткий путь»: три клавиши, нажатые одновременно, приказывают системе совершить программно-контролируемый ребут — и до сих пор экономят нам время, избавляя от поисков соответствующего пункта в выпадающих меню или ввода команд в текстовой консоли.
Чем ещё примечательно детище Брэдли, так это тем, что придумано оно было примерно в то же время, когда создавались первые мощные программные продукты, продемонстрировавшие силу шорткатов. И нам, пользователям open source-софта, повезло больше других: мы, словно в живом музее, имеем возможность и сегодня посмотреть, попробовать и даже всерьёз использовать (как миллионы пользователей и делают) вышедшие из той эпохи продукты. Их два: это текстовые редакторы Emacs и Vi — и оба они появились в середине 70-х годов. Да, это своего рода динозавры компьютерного века, современники эпохи зарождения шорткатов. Но динозавры в хорошем смысле: для них были придуманы, на них были опробованы и благодаря им подтверждены десятилетиями эксплуатации многие клавиатурные сокращения.
Не поленитесь, запустите их прямо сейчас в эмуляторе терминала или даже в голой консоли, поиграйте пять минут — и вы увидите две важных вещи. Во-первых, что не все шорткаты и не всегда предполагали пользование функциональными клавишами: не менее удобны последовательности одноклавишных команд-сокращений. В Vi, например, к началу документа можно перескочить, нажав два раза подряд клавишу «g». И всё же шорткаты с функциональными клавишами более многочисленны и уже в те далёкие времена составляли основную часть клавиатурных сокращений (как в том же Vi сочетание Shift+g для перехода к последней строке).
Почему? Понять это можно, взглянув на клавиатуры 70-х годов. Вот, к примеру, клавиатура «тупого» терминала ADM-3A, сыгравшего важную роль не только в судьбе Vi, но и вообще UNIX-систем. Как видите, «клавиши особого назначения» занимали значительно больше места, нежели сегодня — предоставляя пользователю и большую гибкость в управлении системой.
Ещё круче была клавиатура Lisp-терминалов, на которых разрабатывался Emacs (см. фото ниже). Потом, в 80-х, всё это пёстрое многообразие кнопок было пущено под нож усилиями IBM и Microsoft — и снова в интересах пользователя: типичным юзером к тому моменту стал человек, не разбирающийся в компьютерах, и нужно было помочь ему не запутаться во всех этих «Control», «Meta», «Super», «Hyper», «Symbol» и прочих.
Отсюда, кстати, заметна вторая важная деталь: с ходом времени, шорткаты оставались неизменными, но менялось количество функциональных клавиш, менялось их расположение — из-за чего пользователю 80-го года, чудесным образом перенёсшемуся в 2017-й, пришлось бы переучивать пальцы. Например, Ctrl переместился в левый нижний угол клавиатурного поля, где его, конечно, удобней отыскать, нежели на древних Lisp-терминалах — но и роль, которую Ctrl играет сегодня, намного важнее той роли, что эта клавиша играла сорок лет назад.
Впрочем, нашему воображаемому путешественнику во времени, вероятно, пришлось бы разучивать и новые клавиатурные комбинации. Дело опять-таки в том, что от ориентированных на айтишников программных продуктов, компьютерная индустрия уже в 80-х годах перенацелилась на неспециалистов. Флагманом этого направления долгое время оставалась Apple — и именно ей мы обязаны целой серией популярнейших универсальных шорткатов для прикладного софта.
Ctrl+C для копирования, Ctrl+X для вырезания, Ctrl+V для вставки, а также хорошо знакомые всем вам Ctrl+A, Ctrl+W и многие другие были придуманы в Apple как набор, единый для всех приложений. С тех пор они проникли повсеместно, в том числе и в мир свободного софта: запустите сегодня LibreOffice или The GIMP, Firefox или Geany — и вы увидите, что эти шорткаты работают и там. Отсюда третий важный момент: несмотря ни на какие идеологические разногласия, шорткаты имеют свойства просачиваться из платформы в платформу, подчиняясь одному лишь критерию эффективности. Кто бы шорткат ни придумал, если он удобен, он распространится по всему компьютерному миру и утвердится на десятилетия.
А во второй половине 80-х важную роль вновь сыграла IBM и, с её подачи, Microsoft. Впервые в истории вычислительной техники количество пользователей одной платформы (да даже пользователей вообще!) стало измеряться десятками миллионов. Программ, естественно, стало очень много тоже — а шорткатов ещё больше! Зоопарк клавиатурных сокращений, царивший в мире MS-DOS, был поистине ужасным: например, одних только шорткатов для открытия документа существовало не менее дюжины. Так что IBM разработала, а Microsoft популяризовала так называемые правила Common User Access — своего рода правила хорошего тона для пользовательских интерфейсов, стандартизовавшие наиболее распространённые шорткаты. В частности, именно оттуда вышла привычка открывать выпадающие меню комбинацией Alt+<�подчёркнутая буква в названии>. Хорошо продуманные, а потому удобные, они проникли и в мир UNIX, а оттуда, получается, и в Linux.
Тем не менее Linux сегодня практикует особое отношение к шорткатам. Здесь и, кажется, только здесь имеются доступные каждому пользователю клавиатурные комбинации для управления операционной системой на самом низком уровне. Они работают практически всегда — зачастую даже когда кажется, что система безнадёжно зависла (а на самом деле просто не в состоянии сообщить вам, что с ней происходит, например, из-за сбоя драйвера графической карты). Вот за что их называют «волшебными».
Все такие шорткаты используют клавишу SysRq (то есть «system request» — «системный запрос»). Рядовым пользователям она более известна под именем PrtScr, как способ быстро получить снимок экрана. Однако объедините её с Alt — и вы получите прямую связь с Ядром.
Как использовать SysRq? Прежде всего — убедиться, что она включена, что система «слушает» её. Для этого выполните в терминале команду cat /proc/sys/kernel/sysrq Если результат единичка, значит, все функции SysRq разрешены. Если что-то большее единицы — значит, разрешены некоторые из её функций. Если же там чистый ноль, её нужно активировать, например, так: echo «1» > /proc/sys/kernel/sysrq Впрочем, если вы настроены не просто на разовый эксперимент, а на серьёзное долгосрочное использование, лучше почитать руководство по вашему дистрибутиву, чтобы знать особенности настройки этой клавиши (какие системные службы на неё завязаны, как они конфигурируются и т.д.).
Самый популярный сценарий с привлечением SysRq заключается в использовании её как «спасательного круга» при серьёзных сбоях системы. Представьте, что случилось нечто, что привело систему в нерабочее состояние: она не реагирует на клавиши и мышь вовсе, либо изображает на экране нечто невразумительное. Вы можете перезагрузить её «грубо», кнопкой RESET на корпусе компьютера, но в таком случае появляется некоторый риск повреждения файловой системы. Тут-то и поможет SysRq. Чтобы перезагрузить машину корректно, безболезненно для файловой системы, подайте следующую серию клавиатурных команд:
Alt+SysRq+r (чтобы отобрать управление клавиатурой у X Window),
Alt+SysRq+e (чтобы послать всем приложениям сигнал SIGTERM — сигнал вежливого завершения),
Alt+SysRq+i (чтобы послать SIGKILL — то есть приказ всем немедленно завершиться),
Alt+SysRq+s (чтобы завершить все отложенные операции с файлами),
Alt+SysRq+u (чтобы отмонтировать все носители и примонтировать их только для чтения),
Alt+SysRq+b (для перезагрузки).
И пока клавиатура ещё не отмерла, эволюция шорткатов продолжается. Свежее веяние: массовый отказ от «бесполезных» клавиш, а точнее, их переназначение. Скажем, Caps Lock очень редко используется по прямому назначению — и потому всё чаще на него вешают функцию переключения клавиатурных раскладок (которые раньше было принято переключать нажатием пары клавиш одновременно, скажем, Ctrl и Shift).
Куда кратчайшая выведёт дальше?
P.S. Использованы графические работы Nekonoko, Xah Lee.
--------------------------------------------
Этот текст всегда доступен по адресу linux.su/020917.shtml