Я говорю о сочетаниях клавиш, которые вы используете в командной строке / терминале.
Пример: Ctrl+, cкоторый убивает процесс, Ctrl+ dтот выход, Ctrl+ zкоторый отправляет процесс в фоновый режим ... и т. Д.
Я проверил некоторые и обнаружил , что они не являются ни терминал (то есть gnome-terminal
, xterm
, konsole
) специфичные ни оболочки (т.е. bash
, zsh
) специфический, они даже работают в tty
с.
Итак, я хочу знать:
- Кто предоставляет эти ярлыки?
- Как я могу перечислить и изменить / определить их?
bind -p
перечислить, так же как иhelp bind
для другихОтветы:
Драйвер терминала ядра (
termios
) интерпретирует специальные ключи, которые можно вводить для отправки сигнала процессу, отправки конца файла, удаления символов и т. Д. Это базовая функциональность ядра Unix и очень похожа на большинство реализаций Unix и Linux.Команда
stty
отображает или устанавливаетtermios
специальные символы, а также другие параметры для драйвера терминала.Вызвать,
stty -a
чтобы увидеть текущие значения специальных символов и другие «настройки линии терминала». В следующих примерах вы можете видеть, чтоintr
это Ctrl+ C,eof
это Ctrl+ D,susp
это Ctrl+ Z. (Я удалил другой вывод, чтобы показать только настройки специальных символов):stty -a
специальные символы в GNU / Linux:stty -a
специальные символы на FreeBSD:Чтобы изменить значение специального символа, например, чтобы изменить символ прерывания с Ctrl+ Cна Ctrl+, Eвызовите
stty
это так (^E
буквально два символа, roundflex (^
), за которым следует букваE
):Для получения дополнительной информации см. Справочные страницы для
stty
иtermios
. В GNU / Linux вы также можете посмотретьtty_ioctl
справочную страницу.Заметки:
intr
Ключ ( Ctrl+ Cпо умолчанию), на самом деле не убить процесс, но заставляет ядро посылать сигнал прерывания (SIGINT
) ко всем процессам в группе процессов. Процессы могут организовывать перехват или игнорирование сигнала, но большинство процессов завершается, что является поведением по умолчанию.Причина, по которой Ctrl+ dвыводит вас из системы, заключается в том, что драйвер линии терминала отправляет EOF (конец файла) на стандартный ввод оболочки. Оболочка завершается, когда получает стандартный конец файла.
источник
-a
была добавлена опция POSIXstty
.stty intr '^E'
это работает (устанавливает), но временно и только для текущего терминала / TTY. Как я могу изменить это глобально и навсегда?stty
из вашего $ HOME / .profile или $ HOME / .bashrc или какой-либо другой файл инициализации запуска оболочки.tty
tty
? Может быть, это может быть новый вопрос?С http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
Команды для редактирования ярлыков
Команды быстрого вызова Recall
Командные клавиши управления
Команды Bash Bang (!)
Bash также имеет некоторые удобные функции, которые используют! (взрыв), чтобы позволить вам сделать некоторые интересные вещи с командами Bash .
источник
^U
, чтоstty -a
показывает, определенный для SIGKILL в Linux, из bash? Желательно, не отменяя определения readline (возможно, через третий мод / мета-ключ). Я предполагаю, что это только затенено привязкой ctrl + u readline?