В целом, вы правы. Когда вы нажимаете клавишу, клавиатура отправляет скан-код, в основном последовательность чисел, идентифицирующих каждую клавишу. Коды сканирования сопоставляются с кодами клавиш. Каждый код клавиши соответствует функции, которая определяет, как программа должна реагировать на нажатие конкретной клавиши. Обратите внимание, что Xorg и консоль используют разные наборы кодов клавиш. Я мало что знаю о Wayland, но, возможно, он также использует свой собственный набор кодов клавиш. Коды клавиш сопоставляются с ключевыми символами. Ключевые символы позволяют разработчикам работать с клавиатурой на более высоком уровне абстракции.
Вы можете увидеть скан-коды и коды клавиш на консоли, выполнив showkey --scancode
и showkey --keycode
соответственно. В Xorg вы должны использовать xev
для последнего.
Эти уровни абстракции позволяют создавать гибкие и сложные схемы сопоставления, которые влияют на различные части вашей среды Linux. Эта статья ArchWiki содержит много информации о методах картографирования, и вам следует прочитать ее, если вы хотите узнать больше.
В Интернете также есть множество статей, в которых объясняется, как клавиатура работает на низком уровне. Неважно, была ли статья написана в 1999 или 2010 году — с тех пор в клавиатурах изменилось не так много вещей, но имейте в виду, что USB HID-устройства работают иначе, чем «классические» PS/2-клавиатуры.
Parece que aquí hay un error, porque:
sed -i "s/443 ssl default_server/443 ssl http2 default_server/" $s_a/$domain.conf
funcionará bien; reemplazará la primera aparición "443 ssl default _server" con "443 ssl http2 default _server" en todas las líneas de $s_a/$domain.conf
.
-l
solo es relevante con el comando l
.
sed
procesa todas las líneas a menos que usted le indique que no lo haga, por ejemplo, cerrando antes de tiempo. La opción g
del comando s
solo afecta la forma en que se procesan varias ocurrencias del término de búsqueda por línea:sin g
, solo la primera ocurrencia se reemplaza en cualquier línea dada, mientras que con g
, se reemplazan todas las apariciones. En ambos casos, la sustitución se aplica a todas las líneas.