!! является синтаксически простым и, вероятно, наиболее распространенным выражением для расширения истории.
Как вы могли заметить, после замены последней команды, выполненной для !!, bash выполняет две вещи (в своем по умолчанию):
Вам будет показана полная команда с замещенным текстом. Например, если ваша команда была lshw -c video, и вы запускаете sudo !! дальше, тогда команда после расширения истории будет sudo lshw -c video. Эта команда запущена.Обычно эти два шага происходят без прерывания и не имеют возможности для взаимодействия с пользователем, поскольку shopt histverify отключен по умолчанию (shopt -u histverify).
Однако, если вы включите (shopt -s histverify), то расширение истории работает по-разному:
Вам показана полная команда с замещенным текстом. Например, если ваша команда была lshw -c video и вы запускаете sudo !! дальше, тогда команда после расширения истории будет sudo lshw -c video. Затем вы, пользователь, затем нажмите Enter, чтобы запустить команду. Или вы можете отредактировать команду, отменить ее (Ctrl + C) и т. Д. Обратите внимание, что это не специальное приглашение, а регулярное первичное приглашение. Это действительно так, как будто вы набрали текст самостоятельно.(Обратите внимание, что расширение истории histverify history вступает в силу только в том случае, если используется библиотека readline, но когда вы используете bash в интерактивном режиме на Ubuntu или другой системе GNU / Linux , это по существу всегда.)
Независимо от того, включена ли опция оболочки histverify, расширение истории отличается от многих других расширений оболочки. Другие расширения оболочки не показывают вам расширенную команду перед ее запуском. В отличие от других расширений, которые предназначены для использования как интерактивно, так и невзаимодействующим (например, в сценарии оболочки), расширение истории почти всегда используется в интерактивном режиме.
Alt + MouseClick используется Compiz для перемещения и изменения размеров окон, поэтому он конфликтует с панелью GNOME, которая использует Alt + RightClick для создания контекстного меню.
Это конфликт, который возникает из-за того, что оба хочет использовать Alt + Mouse. Использование Alt + Alt + Мышь - это обходной путь, который мешает Compiz захватить комбинацию клавиш и позволяет получить панель GNOME.
Вы можете переназначить комбинацию клавиш для Compiz, чтобы использовать другую ключ Alt . Я переназначил его, чтобы использовать Super.
gconftool-2 --set --type string /apps/metacity/general/mouse_button_modifier '<Super>'
Alt + MouseClick используется Compiz для перемещения и изменения размеров окон, поэтому он конфликтует с панелью GNOME, которая использует Alt + RightClick для отображения контекстного меню.
Это конфликт, который возникает из-за того, что оба хочет использовать Alt + Mouse. Использование Alt + Super + Mouse - это временное решение, которое не позволяет Compiz захватить комбинацию клавиш и позволяет получить панель GNOME.
Вы можете переназначить комбинацию клавиш для Compiz, чтобы использовать другой ключ, чем Alt. Я переназначил его, чтобы использовать Super.
gconftool-2 --set --type string /apps/metacity/general/mouse_button_modifier '<Super>'