Я работаю с CentOS 7, которая может иметь другую настройку. Однако для меня вызов getty
управляется служебным файлом /usr/lib/systemd/system/getty@.service
. (Символ @
служит для шаблонизации; он запускается как getty@tty1.service
, а строка tty1
передается в файл и определяет, на каком TTY он запускается.) В этом файле есть строка, начинающаяся с ExecStart=
, которая определяет командную строку. Здесь будут добавлены опции. (Лучше не редактировать файл под /usr
напрямую, так как он может быть перезаписан при обновлении системы; сначала его следует скопировать куда-нибудь под /etc
, возможно, под /etc/systemd/system
, где он будет затенять файл, предоставленный производителем. )
Похоже, что то, что вы хотите получить при выключении/перезагрузке, лучше всего реализовать не путем изменения непосредственно процесса выключения/перезагрузки, а путем добавления действия в список действий по выключению службы, которые systemd
будет автоматически выполнять при остановке или перезагрузке системы (или когда вы выключаете службу вручную с помощью systemctl
). Быстрый способ сделать это - превратить сценарий в строку ExecStop
команды системной службы; в зависимости от того, как все настроено, вы также можете создать пользовательский служебный файл, управляющий всем этим, и поместить ExecStop
туда.
Вы не можете.
Терминалы отправляют символы, а не ключи. (См. Как работает ввод с клавиатуры и вывод текста? для более подробной информации. )Но не все клавиши имеют соответствующий символ. Когда вы нажимаете клавишу или аккорд, у которого нет соответствующего символа, терминал отправляет последовательность символов, представляющую его, или, в некоторых случаях, непечатаемый -управляющий символ). Эти последовательности всегда начинаются с определенного символа, который называется escape-символом .Этот символ также является тем, что посылает Ctrl + [ .
Таким образом, если бы вы могли связать^[
(Ctrl + [ ), это сломало бы все клавиши, которые отправляют управляющие последовательности. Например, Up отправляет либо три символа (^[
, [
, A
), либо три символа (^[
, O
, A
), в зависимости от терминала. Если бы вы могли переназначить ^[
, то клавиша Вверх выполнила бы действие ^[
, а затем вставила бы [
и A
.
Alt +charотправляет escape-символ, за которым следует char . Таким образом, если вы переназначаете M-[
, вы действительно перепривязываете две -последовательности символов (^[
, [
), что может привести к поломке некоторых курсорных и функциональных клавиш.
Nano технически допускает повторную привязку^[
(начиная с версии 2.5.3 ), но это не имеет никакого эффекта, потому что когда он читает ^[
, он классифицирует это как начало управляющей последовательности (Я упрощаю бит )и никогда не ищет привязку для ^[
. Nano явно запрещает повторное связывание M-[
.
Есть способы обойти это на некоторых терминалах , но лишь немногие редакторы пользуются ими. Nano — относительно простой редактор, ориентированный в первую очередь на пользователей, которые не используют терминалы, где такие способы существуют, и не поддерживает эту функцию.