Завершение командной строки


Завершение командной строки (также завершение с помощью табуляции ) — это обычная функция интерпретаторов командной строки , в которых программа автоматически заполняет частично введенные команды.

Интерпретаторы командной строки — это программы, которые позволяют пользователю взаимодействовать с базовой операционной системой, вводя команды в командной строке с помощью интерфейса командной строки (CLI), в отличие от наведения и щелчка мышью в графическом пользовательском интерфейсе (GUI). Завершение командной строки позволяет пользователю ввести первые несколько символов команды, программы или имени файла и нажать клавишу завершения (обычно Tab ↹), чтобы заполнить остальную часть элемента. Затем пользователь нажимает или для запуска команды или открытия файла.Return↵ Enter

Завершение командной строки полезно несколькими способами, как показано в анимации, сопровождающей эту статью. Для доступа к часто используемым командам, особенно с длинными именами, требуется меньшее количество нажатий клавиш. Команды с длинными или сложными для написания именами файлов можно вводить, вводя первые несколько символов и нажимая клавишу завершения, которая завершает команду или имя файла. В случае нескольких возможных дополнений некоторые интерпретаторы командной строки, особенно оболочки Unix, будут перечислять все возможные завершения, начинающиеся с этих нескольких символов. Пользователь может ввести больше символов и нажатьTab ↹еще раз, чтобы увидеть новый, суженный список, если введенные символы все еще неоднозначны, или в противном случае завершите команду/имя файла с пробелом в конце. Альтернативная форма завершения чередует все совпадающие результаты, когда ввод неоднозначен.

Завершаемые элементы могут включать в себя команды, аргументы, имена файлов и другие сущности, в зависимости от конкретного интерпретатора и его конфигурации. Завершение командной строки обычно работает только в интерактивном режиме . То есть его нельзя вызывать для завершения частично типизированных команд в сценариях или пакетных файлах , даже если завершение однозначно. Завершение имени с помощью табуляции происходит из-за того, что завершение командной строки часто вызывается нажатием клавиши табуляции .

Завершение с помощью табуляции появилось в начале истории вычислений; один из первых примеров появился в Berkeley Timesharing System для SDS 940 , где, если типизированная строка была неоднозначной, интерпретатор ничего не делал, но если строка не была неоднозначной, он автоматически завершал ее без какой-либо команды со стороны пользователя. Эта функция плохо работала из-за слишком частых опечаток , и поэтому была неоднозначной. Эта функция была сымитирована разработчиками Tenex , которые внесли важное изменение: Tenex использовала «распознавание побега», при котором интерпретатор не пытался бы выполнять автозаполнение, если бы не клавиша побега .был поражен (отсюда и название) пользователем. Домен также был расширен от только имен программ в системе Беркли до имен программ и файлов в Tenex. [1] Потомок Tenex, TOPS-20, переместил завершение командной строки из командного интерпретатора в операционную систему через системный вызов COMND JSYS, чтобы сделать его доступным для других пользовательских приложений. [2] Оттуда он был заимствован Unix.

В следующем примере показано, как работает завершение командной строки в Bash . Другие оболочки командной строки могут работать немного иначе.


Пример завершения командной строки в Bash .
Пример завершения командной строки в PowerShell с помощью Intellisense .