4

По умолчанию в большинстве терминалов вы можете нажать ctrl \, чтобы отправить сигнал SIGQUIT процессу.

Однако на моей клавиатуре, чтобы ввести обратную косую черту, вы должны сделать это так: alt shift 7

Выполнение Ctrl Alt Shift 7 не работает, так как мне сделать сочетание клавиш?

4 ответа4

3

Я не знаю, как вы можете набрать Ctrl+\, но я могу дать вам альтернативный способ генерировать SIGQUIT с клавиатуры.  Найдите символ, который вы можете ввести как простую комбинацию клавиш.  Это, вероятно, необходимо сопоставить с (одним) символом ASCII (т. Е. Одним байтом); например, Ctrl+A. Затем введите

stty quit ^A

Это может быть либо с т т у д U I т Ctrl+A Enter (если вы получаете сообщение об ошибке, попробуйте набрать Ctrl+V перед Ctrl+A) или буквально s t t y д U I т ^ A Enter (если вы получаете сообщение об ошибке, попробуйте поставить ^ A в кавычках).  Затем введите команду, подобную sleep 9 , нажмите комбинацию клавиш (например, Ctrl+A) и посмотрите, выйдет ли программа так, как вы ожидаете от Ctrl+\.

Если вы найдете комбинацию, которая работает, поместите ее (команда stty quit ) в свой файл .login , .profile , .bashrc или в любой файл команды инициализации, который вы используете.

0

Ctrl - \ может генерировать код ASCII 28. Попробуйте сделать что-то еще, что отправляет код ASCII 28.

Например, может быть, попробуйте это: удерживайте Alt, затем нажмите 2 на цифровой клавиатуре, затем 8 на цифровой клавиатуре, а затем отпустите клавишу Alt . (Конечно, если у вас есть проблемы с обратным слешем, возможно, у вас есть проблемы с использованием цифровых клавиш.) У меня нет Mac, но он работает на многих Unix-системах (и DOS/Microsoft Windows), поэтому стоит попробовать.

Если вы взаимодействуете с удаленной системой, вы можете поместить символ в файл, а затем некоторые терминальные программы позволят вам использовать "ASCII upload" для отправки нажатия клавиши.

Еще один возможный ресурс: AppleScript: отправка ключей для OSX

0

У меня была почти такая же проблема с французской " азертой " клавиатурой.

Чтобы получить символ обратной косой черты \ , я должен нажать Alt Shift /.

Но нажатие Ctrl Alt Shift / не отправляет сигнал, он просто вставляет точку . в Терминале.

Я обнаружил, что нажатие ctrl ` (клавиши обратного кавычка или обратной кавычки) отправляет сигнал SIGQUIT :

$ sleep 9
^\Quit: 3

Нажатие CTRL + SHIFT + `также работает.

Следует отметить, что на французском клавиатуре, "сдвиг" Открывающая кавычка характер (например , нажатие кнопки сдвиг `) производит фунт знак £.

Вы можете получить список всех сигналов с помощью команды kill -l :

$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT  4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGEMT   8) SIGFPE
 9) SIGKILL     10) SIGBUS      11) SIGSEGV 12) SIGSYS
13) SIGPIPE     14) SIGALRM     15) SIGTERM 16) SIGURG
17) SIGSTOP     18) SIGTSTP     19) SIGCONT 20) SIGCHLD
21) SIGTTIN     22) SIGTTOU     23) SIGIO   24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF 28) SIGWINCH
29) SIGINFO     30) SIGUSR1     31) SIGUSR2 
0

Вы пытались сопоставить другой ключ с ^\?

Например (в терминале macOS):

Перейдите в «Терминал -> Настройки -> Настройки -> Клавиатура», нажмите « + и сопоставьте что-то вроде control+f4 с \034 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .