Клавиатурные сокращения C-h, C-m в bash [дубликат]

Насколько я могу судить, это история MAKEDEV в Linux:

  • в марте 1992 года Джим Уинстед добавил помощник установки в версии 0.95a его корневой дискеты, называемый /INSTALL/mkdev;
  • в июле 1992 г. он стал /dev/MAKEDEV в версии 0.96 корневой дискеты;
  • к декабрю 1993 года Ник Холлоуэй расширил это в специальном проекте MAKEDEV (версия 1.2, по-видимому, является первой общедоступной версией).

Таким образом, ключом к названию скрипта является переключение с /INSTALL/mkdev на /dev/MAKEDEV. Я предполагаю, что это было в верхнем регистре, чтобы избежать любой потенциальной путаницы и конфликтов пространств имен с именами узлов устройств, поскольку они (всегда?) начинаются с буквы нижнего регистра. Это было задолго до FHS, когда двоичные файлы располагались в разных местах (включая /etc), поэтому иметь сценарий создания узла устройства в /dev было достаточно разумно.

1
24.06.2016, 01:38
2 ответа

Связки (независимо от того, есть они в руководстве или нет) появляются при вводе

bind -p

Например (частичный листинг):

"\C-g": abort
"\C-x\C-g": abort
"\e\C-g": abort
"\C-j": accept-line
"\C-m": accept-line
# alias-expand-line (not bound)
# arrow-key-prefix (not bound)
# backward-byte (not bound)
"\C-b": backward-char
# backward-byte (not bound)
"\C-b": backward-char
"\eOD": backward-char
"\e[D": backward-char
"\C-h": backward-delete-char
"\e[3;5~": backward-delete-char
"\C-?": backward-delete-char
"\C-x\C-?": backward-kill-line
"\e\C-h": backward-kill-word
"\e\C-?": backward-kill-word
"\eb": backward-word
"\e<": beginning-of-history

Руководство документирует опцию -p:

Команда bind -p отображает Readline имена функций и связки в формате, который можно поместить непосредственно в файл инициализации. См. Bash Builtins.

Связки (чтение исходного кода) зависят от карты клавиш. Те, что я процитировал, взяты из emacs keymap, которая инициализируется из встроенной таблицы перед применением скриптов. Существует соответствующий файл с таблицами для vi keymap.

Все это является частью Readline (который поставляется в комплекте с bash). Когда bash запускается, он определяет привязки, используя эти таблицы. В зависимости от других файлов, которые он читает из /etc/inputrc, ~/.inputrc, он может добавить, изменить или удалить некоторые из этих встроенных привязок.

2
27.01.2020, 23:47

Как указано в разделе «1.3 Readline Init File» руководства, на которое вы ссылаетесь, библиотека readline настраивается. Привязки клавиш могут быть определены либо в /etc/inputrc, либо в локальном ~/.inputrc.

0
27.01.2020, 23:47

Теги

Похожие вопросы