Jump to content

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

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

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

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

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

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

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

Чтобы открыть файл Introduction-to-command-line-completion.html в Firefox можно было бы ввести:

 firefox introduction-to-command-line-completion.html

Это длинная команда для ввода. Вместо этого мы можем использовать завершение командной строки.

Подсказка о завершении

[ редактировать ]

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

Сначала набираем первые три буквы нашей команды:

 fir

Затем мы нажимаем Tab ↹ и поскольку единственная команда в нашей системе, начинающаяся с «fir», — это «firefox», она будет завершена до:

 firefox

Затем начинаем вводить имя файла:

 firefox i

Но на этот раз введение-to-command-line-completion.html — не единственный файл в текущем каталоге, который начинается с «i». В каталоге также есть файлы введение в bash.html и введение-в-firefox.html . Система не может решить, какое из этих имен файлов мы хотим ввести, но она знает, что файл должен начинаться с «introduction-to-», поэтому команда будет завершена до:

 firefox introduction-to-

Теперь набираем «с»:

 firefox introduction-to-c

После нажатия Tab ↹ оно будет завершено до всего имени файла:

 firefox introduction-to-command-line-completion.html

Короче говоря, мы набрали:

 firTab ↹iTab ↹cTab ↹

Это всего лишь восемь нажатий клавиш, что значительно меньше, чем 52 нажатия клавиш, которые нам потребовались бы для ввода без использования автодополнения командной строки.

Вращающееся завершение

[ редактировать ]

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

Мы следуем той же процедуре, что и для запроса на завершение, пока не получим:

 firefox i

Мы нажимаем Tab ↹ один раз, с результатом:

 firefox introduction-to-bash.html

Мы нажимаем Tab ↹ снова получаем:

 firefox introduction-to-command-line-completion.html

Короче говоря, мы набрали:

 firTab ↹iTab ↹Tab ↹

Это всего лишь семь нажатий клавиш, что сравнимо с завершением в стиле подсказки. Это работает лучше всего, если мы знаем, какие возможности будет использовать интерпретатор.

Завершение в различных интерфейсах командной строки

[ редактировать ]
  • Оболочки Unix , включая Bash (оболочка по умолчанию в большинстве дистрибутивов Linux ) и ksh среди многих других, имеют давнюю традицию расширенных и настраиваемых возможностей завершения. [ 3 ]
    • Bash , Программируемое завершение complete и compgen команды [ 4 ] доступны с бета-версии 2.04. [ 3 ] в 2000 году [ 5 ] и предлагает по крайней мере завершение пути и имени файла.
    • Для пользователей KornShell завершение имени файла зависит от значения переменной EDITOR. Если для EDITOR установлено значение vi, вы вводите часть имени, а затем Escape, \. Если для EDITOR установлено значение Emacs , вы вводите часть имени, а затем Escape, Escape.
    • Оболочка Z (zsh) стала пионером в поддержке полностью программируемого завершения, позволяя пользователям автоматически заполнять параметры различных команд, не связанных с самой оболочкой, что достигается путем заполнения оболочки определениями всех известных переключателей, а также соответствующими типы параметров. Это позволяет пользователю, например, ввести tar xzf Tab ↹ и пусть оболочка завершает только tar-архивы gzip из реальной файловой системы, пропуская файлы, которые несовместимы с входными параметрами. Современная установка zsh содержит определения завершения для более чем пятисот команд.
    • Tcsh предлагает завершение имени файла, команды и переменной по умолчанию, активируемое с помощью Tab ↹. Встроенная команда Complete обеспечивает полностью программируемое завершение. Исходный код поставляется с файлом Complete.tcsh, содержащим множество примеров синтаксиса завершения.
  • Windows PowerShell , расширяемая командная оболочка от Microsoft, основанная на объектно-ориентированном программировании и платформе Microsoft .NET , предоставляет мощные и настраиваемые возможности завершения, аналогичные традиционным оболочкам Unix. [ 6 ] [ 7 ] [ нужна ссылка ]
  • The cmd.exe Командный процессор систем на базе Windows NT поддерживает базовое завершение. Можно использовать отдельную привязку клавиш только для сопоставления имен каталогов.
  • cmd.exe /F:ON включает символы завершения имени файла и каталога (по умолчанию ^F и ^D). Использовать cmd.exe /? для получения дополнительной информации.
  • TweakUI можно использовать для настройки ключей, используемых для завершения имени файла и имени каталога. [ 8 ]
  • Командный MS-DOS процессор В COMMAND.COM не было автодополнения командной строки: нажатие клавиши табуляции просто перемещало курсор . Однако различные расширенные оболочки для MS-DOS, такие как 4DOS , FreeDOS , версия COMMAND.COM или расширенная функция DOSKEY.COM для завершения табуляции в стиле Unix.
  • Far Manager, помимо функций управления файлами, предоставляет историю команд и завершение строк для Windows.

См. также

[ редактировать ]
  1. ^ «Истоки и развитие ТОПС-20» . www.opost.com . Архивировано из оригинала 01 августа 2020 г. Проверено 10 сентября 2006 г.
  2. ^ Руководство по языку ассемблера DECSYSTEM-20
  3. ^ Jump up to: а б «Более продуктивная работа с bash 2.x/3.x» . www.caliban.org .
  4. ^ «Справочное руководство по Bash» . tiswww.case.edu .
  5. ^ «Индекс /gnu/bash» . ftp.swin.edu.au.
  6. ^ «Парень из PowerShell» . thepowershellguy.com .
  7. ^ «Парень из PowerShell» . thepowershellguy.com .
  8. ^ «Саймон Пейтон Джонс из Microsoft Research» . Майкрософт .
[ редактировать ]

оболочки Unix

[ редактировать ]

Интерпретаторы команд Windows

[ редактировать ]

(Обязательно проверьте раздел «Относится к» в каждой статье.)

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 11279951b97270f4d2eb30d8c6d03b02__1702886700
URL1:https://arc.ask3.ru/arc/aa/11/02/11279951b97270f4d2eb30d8c6d03b02.html
Заголовок, (Title) документа по адресу, URL1:
Command-line completion - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)