В чем разница между встроенными функциями оболочки и сочетаниями клавиш оболочки?

В чем разница между встроенными функциями оболочки и сочетаниями клавиш оболочки?

В чем разница между встроенными командами оболочки (например, cdили echo) и сочетаниями клавиш оболочки (например, ctrl+uили ctrl+l)?

Мне кажется, что оба варианта «встроенные». В чем их основное различие с точки зрения архитектуры системы?

Лично я использую Bash, но считаю, что этот вопрос актуален и для многих других shоболочек.

решение1

Большинство встроенных функций изменяют состояние/поведение оболочки («навсегда») echoи printfявляются исключениями.

^Uи ^Lявляются привязками клавиш. Они просто обрабатывают редактирование строки ввода. Вы могли бы сделать то же самое без этих функций. Они просто экономят время. После выполнения команды не имеет значения, использовалась ли ранее функция привязки клавиш.

Возможно, наиболее очевидным отличием является то, что привязки клавиш не являются командой, которую можно запустить из командной строки. Вам нужна встроенная команда ( bind) для их настройки (shell "изменение состояния").

Связанный контент