Интерфейс командной строки

редактировать
Тип компьютерного интерфейса, основанный на вводе текстовых команд и просмотренных результатов текста

Снимок экрана образца Bash сеанс в Терминале GNOME 3, Fedora 15 Снимок экрана Windows PowerShell 1.0, работающего в Windows Vista

A интерфейс командной строки (CLI ) обрабатывает команды компьютерной программе в виде строк текста. Программа, которая обрабатывает интерфейс, называется интерпретатором командной строки или процессором командной строки . Операционные системы реализуют интерфейс командной строки в для интерактивного доступа к функциям или службам операционной системы. Такой доступ в основном предоставлялся пользователям с помощью компьютерных терминалов, начиная с середины 1960-х, и продолжал на протяжении 1970-х и 1980-х годов на VAX / VMS, Unix <463.>системы и системы персональных компьютеров, включая DOS, CP / M и Apple DOS.

Сегодня многие пользователи полагаются на графический пользовательский интерфейс и меню -приводимые встречи. Однако некоторые задачи программирования и обслуживания могут не иметь графического пользовательского интерфейса и по-прежнему использовать командную строку.

Альтернативы интерфейса командной строки включают текстовый пользовательский интерфейс меню (например, IBM AIX SMIT ), клавиатура ярлыки и различные метафоры рабочего стола, сосредоточенные на указателе (обычно управляются с помощью мыши ). Примеры этого включают Microsoft Windows, DOS Shell и Mouse Systems PowerPanel. Интерфейсы часто реализуются в оконечных устройствах, которые также включают экранно-ориентированные текстовые пользовательские интерфейсы, использующие адресацию курсора для размещения символов на экране дисплея.

Программы с помощью интерфейса командной строки обычно легче автоматизировать с помощью сценариев.

Многие программные системы реализуют интерфейс командной строки для управления и работы. Сюда входят среды программирования и служебные программы.

Содержание

  • 1 Сравнение с графическими пользовательскими интерфейсами
  • 2 Типы
    • 2.1 Интерфейсы командной строки системы
    • 2.2 Интерфейсы командной строки приложений
  • 3 История
  • 4 Использование
  • 5 Анатомия оболочки CLI
  • 5.1 Интерфейс командной строки и защита ресурсов
  • 5.2 Командная строка
  • 5.3.1 Параметры командной строки
    • 5.3.1.1 Сокращение команд
    • 5.3.1.2 Параметр в DOS, Windows, OS / 2
    • 5.3.1.3 Соглашения по параметрам в Unix-системах
    • 5.3.1.4 Соглашения по параметрам в других системах
  • 5.4 Встроенная справка по использованию
  • 5.5 Синтаксис описания команд
  • 5.6 Пробел
  • 6 Интерпретатор командной строки
    • 6.1 Ранняя история
    • 6.2 Современное использование в качестве оболочки операционной системы
  • 7 Сценарии
  • 8 Другие интерфейсы командной строки
  • 9 См. также
  • 10 Примечания
  • 11 Ссылки
  • 12 Внешние ссылки
  • Сравнение с графическим пользовательским интерфейсом

    Графический пользовательский интерфейс со значками и окнами (GEM 1.1 Desktop )

    По сравнению с графическим пользовательским Интерфейс, com Для реализации интерфейса mand-line требуется меньше системных ресурсов. ; это может распространяться на язык сценариев , который может вести историю строки, что позволяет просматривать или повторять команды.

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

    Типы

    Интерфейсы командной строки системы системы

    CommandShell Apple Computer в A / UX 3.0.1

    Интерфейсы операционной системы (OS) операционной системы строки обычно предоставляемые собой отдельные программы, поставляемые с операционной системой. Программа, реализующая такой текстовый интерфейс, называется интерпретатором командной строки, оболочкой.

    Примеры интерпретаторов строки включает DEC ЦИФРОВОЙ командный язык (DCL) в OpenVMS и RSX-11, различных оболочках Unix (sh, ksh, csh, tcsh, zsh, баш и т. Д.), CP / M CCP, DOS COMMAND.COM, а также программы OS / 2 и Windows CMD.EXE, причем последние группы в степени основаны на DEC RSX-11 и RSTS интерфейс командной строки. В операционных системах можно заменить программу оболочки по умолчанию альтернативными; примеры включают 4DOS для DOS, 4OS2 для OS / 2 и 4NT / Take Command для Windows.

    Хотя термин «оболочка» часто используется для описания интерпретатора командной строки, строго говоря, «оболочка» может быть любая программа, составляющая пользовательский интерфейс, включая полностью графически ориентированные. Например, графический интерфейс Windows по умолчанию - это программа оболочки с именем EXPLORER.EXE, как определено в строке SHELL = EXPLORER.EXE в файле конфигурации WIN.INI. Эти программы являются оболочками, но не интерфейсами командной строки.

    Интерфейсы командной строки приложений

    Графический интерфейс GNU Octave с интерфейсом командной строки

    Прикладные программы (в отличие от операционных систем) могут также иметь интерфейс командной строки.

    Прикладная программа может не поддерживать ни один, ни один или все эти три основные системы механизмов системы командной строки:

    • Параметры: основные системы средств передачи последовательной программы, когда она запущен. Когда программа запускается из программы программы ОС, в запущенной программе передается дополнительный текст, предоставляющий вместе с именем программы.
    • Интерактивные средства командной строки: после запуска программа может предоставить оператору независимые для ввода команд в виде текста.
    • Межпроцессные основные средства системы межпроцессного взаимодействия (например, стандартные потоки или именованные каналы ). Командные строки из клиентских процессов могут быть перенаправлены в программу CLI одним из этих методов.

    Некоторые приложения только CLI, представляя подсказку CLI пользователю и действуя в соответствии с командными строками по мере их ввода. Другие программы как интерфейс строки, так и графический интерфейс. В некоторых случаях графический интерфейс - это просто оболочка вокруг отдельного исполняемого файла CLI . Альтернативная версия программного обеспечения для системного интерфейса. Интерфейсы командной строки и графические интерфейсы часто разные функции. Например, все функции MATLAB, компьютерной программы численного анализа, доступны через интерфейс программы, тогда как графический интерфейс пользователя MATLAB предоставляет только подмножество функций.

    Ранние игры Sierra, такие как первые три игры King's Quest (1984–1986), использовали команды из внутренней строки для перемещения персонажа в графическом окне.

    История

    Интерфейс командной строки развился из формы диалога, когда-то проводившийся людьми с помощью телетайп (TTY) машин, в операторы дистанционно обменивались информацией, обычно по одной строку текста за раз. Ранние компьютерные системы часто использовали телепринтеры как средство взаимодействия с человеком-оператором. Компьютер стал одним из концов модели телетайпа от человека к человеку. Таким образом, вместо того, чтобы человек общался с другим человеком через телетайп, человек общался с компьютером.

    Механический телетайп был заменен на «стеклянный терминал», клавиатура и экран, имитирующие телепринтер. «Умные» терминалы допускают дополнительные функции, такие как перемещение по всему экрану или локальное редактирование данных на терминале для передачи на компьютер. Время революция микрокомпьютеров заменила традиционную архитектуру - миникомпьютер + терминалы - с разделением времени, аппаратные терминалы были заменены на эмуляторы терминала - программное обеспечение ПК, которое интерпретировало сигналы терминала, передаваемые через последовательные порты ПК. Обычно они используются для сопряжения нового устройства с использованием мини- или мэйнфреймами или для подключения ПК к ПК. На некоторых из этих компьютеров было установлено программное обеспечение Доска объявлений.

    Интерфейсы ранних программных систем были реализованы как часть резидентного монитора, и их было нелегко заменить. Первая реализация оболочки в качестве заменяемого компонента была частью Multics разделение времени операционной системы. В 1964 году сотрудник вычислительного центра MIT Луи Пузен разработал инструмент RUNCOM для выполнения командных сценариев с помощью подстановки аргументов. Пузен ввел термин «оболочка » для описания техники использования команд, таких как язык программирования, и написал статью о том, как реализовать эту идею в системе Multics. Пузен вернулся в свою родную Францию ​​в 1965 году, и первая оболочка Multics была лишена Глендой Шредером.

    оболочкой Борна взаимодействием с версией 7 Unix

    первой оболочкой Unix, оболочка V6, была ограничена Кеном Томпсоном в 1971 году в Bell Labs и была смоделирована по образцу оболочки Multics Шредера. Корпус Bourne представлен в 1977 году в качестве замены корпуса V6. Он также используется как интерактивный интерпретатор команд, он также использует другие функции, которые обычно используются для создания структурированных программ. Оболочка Bourne привела к разработке KornShell (ksh), оболочки Almquist (ash) и популярной оболочки Bourne-again (или Bash).

    Сами ранние микрокомпьютеры были основаны на интерфейсе строки, таком как CP / M, DOS или AppleSoft BASIC. В течение 1980-х и 1990-х годов появление на ПК Apple Macintosh и Microsoft Windows привело к замене интерфейса командной строки в качестве основного пользовательского интерфейса на графический интерфейс пользователя. Командная строка оставалась доступной в качестве альтернативного пользовательского интерфейса, часто используемого системными администраторами и другими продвинутыми пользователями для системного администрирования, компьютерного программирования и пакетной обработки.

    В ноябре 2006 г., Microsoft выпустила версию 1.0 Windows PowerShell (прежнее кодовое название Monad), которая объединила функции оболочек Unix с их проприетарным объектно-ориентированным .NET Framework. MinGW и Cygwin - это пакеты с открытым исходным кодом для Windows, которые запускают Unix-подобный интерфейс командной строки. Microsoft предоставляет MKS Inc. контрол ksh оболочки MKS Korn для Windows через свою надстройку Services для UNIX.

    С 2001 года операционная система Macintosh macOS была основана на Unix-подобной операционной системе под названием Darwin.. На этих компьютерах пользователи могут получить доступ к Unix-подобному интерфейсу командной строки, запустить программу эмулятора терминала под названием Терминал, который находится в подпапке Утилиты папки Приложения, или путем удаленного входа в систему с С помощью ssh. Z shell - это оболочка по умолчанию для macOS; Также налог bash, tcsh и KornShell. До macOS Catalina по умолчанию использовался bash.

    Использование

    Интерфейс командной строки используется всякий раз, когда словарь может быть введен в виде текста быстрее, чем с чистым графическим интерфейсом.. Обычно это происходит с командными оболочками операционной системы. Интерфейсы системы также используются системами с недостаточными ресурсами для поддержки графического пользовательского интерфейса. Некоторые компьютерные языковые системы (например, Python, Forth, LISP, Rexx и многие диалекты BASIC ) защищены интерактивный режим командной строки для быстрой оценки кода.

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

    Анатомия интерфейса командной строки оболочки

    Общий шаблон интерфейса командной строки ОС следующий:

    Подсказка команда param1 param2 param3… paramN
    • Подсказка - автоматически программа для предоставления контекста для клиента.
    • Команда - предоставляется клиентом. Команды обычно к одному из трех классов:
      1. Внутренние команды распознаются и обрабатываются самим интерпретатором строки и не зависят от какого-либо исполняемого файла.
      2. Включенные команды запускают отдельные исполняемые файлы, которые обычно относятся к операционной среде и всегда включены в ОС.
      3. Внешние команды запускают исполняемые файлы, которые не связаны с определенными ОС, но добавлены другие параметры для определенных целей и приложений.
    • param1… paramN - Необязательно параметры, предоставленные клиентом. Формат и значение зависит от выданной команды. В случае Включенных или Внешних команд значения параметров доставляются программе (заданной Командой) по мере ее запуска ОС. Параметры могут быть либо Аргументами, либо Параметры.

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

    CLI обычно можно рассматривать как состоящий из синтаксиса и семантики. Синтаксис - это грамматика, которой должны следовать все команды. В случае операционных систем, DOS и Unix определяет каждый свой собственный набор правил, которым должны следовать все команды. В случае встроенных систем каждый поставщик, например Nortel, Juniper Networks или Cisco Systems, определяет свой собственный набор правил, которым соответствуют все команды в их CLI. Эти правила также определяют, как пользователь перемещается по системе команд. Семантика определяет, какие операции возможны, с какими данными они могут быть выполнены и как грамматика представляет эти операции и данные - символическое значение в синтаксисе.

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

    Интерфейс командной строки показывает приглашение, примет «командную строку», введенную и завершенную клавишей Введите, выполнит текст указанную и обеспечитовое отображение результатов или сообщений об ошибках.. Расширенные интерфейсы командной строки, интерпретировать и расширять параметры команды перед выполнением, возможно, захватывать или перенаправлять ее вывод.

    В отличие от кнопки или меню в графическом интерфейсе пользователя, командная строка обычно самодокументируется, нет в точности то, что пользователь хочет сделать. Кроме того, командные строки обычно содержат множество значений по умолчанию, которые можно изменить, чтобы настроить. Полезные командные строки можно сохранить, назначив строку символов или псевдоним для представления полной команды, или несколько команд могут быть сгруппированы для выполнения более сложной последовательности - например, скомпилировать программу, установите его и запустите, создав единый объект, называемый процедурой команды или сценарием, который сам по себе можно рассматривать как команду. Эти преимущества означают, что пользователь должен вычислить сложную команду или серию команд только один раз, потому что их можно сохранить, чтобы использовать снова.

    Команды, передаваемые в оболочку CLI, часто имеют одну из следующих форм:

    • doSomething how toFiles
    • doSomething how sourceFile destinationFile
    • doSomething how < inputFile>outputFile
    • doSomething how | doSomething how | doSomething how>outputFile

    где doSomething - это, по сути, глагол, как наречие (например, должна ли команда выполняться «подробно» или «тихо») и toFiles объект или объекты (обычно один или несколько файлов), с которыми должна действовать команда. >в третьем примере - это оператор перенаправления, сообщающий интерпретатору командной строки отправлять выходные данные команды не на его собственный стандартный вывод (экран), а на названный файл. Это перезапишет файл. Использование >>перенаправит вывод и добавит его в файл. Другой оператор перенаправления - это вертикальная черта (|), которая создает конвейер, где выходные данные одной команды становятся входными данными для следующей команды.

    Интерфейс командной строки и защита ресурсов

    Можно изменить набор доступных команд, изменив пути, отображаемые в переменной среды PATH. В Unix команды также должны быть помечены как исполняемые файлы. Каталоги в переменной пути ищутся в том порядке, в котором они указаны. Изменив порядок пути, можно запустить, например, \ OS2 \ MDOS \ E.EXE вместо \ OS2 \ E.EXE, если по умолчанию установлено обратное. Также работает переименование исполняемых файлов: например, люди часто переименовывают свой любимый редактор в EDIT.

    Командная строка позволяет ограничивать доступные команды, например, доступ к расширенным внутренним командам. Это делает Windows CMD.EXE. Часто условно-бесплатные программы ограничивают диапазон команд, включая печать команды «ваш администратор отключил запуск командных файлов» из командной строки.

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

    Командная строка

    Приглашение BBC Micro после включения или аппаратного сброса

    Командная строка (или просто приглашение) представляет собой последовательность (одного или нескольких) символов используется в интерфейсе командной строки,чтобы указать готовность принимать команды. Он буквально побуждает пользователя предпринять действия. Приглашение обычно используется одним из символов $, %, #,:, >или -и часто включает другую информацию, такую ​​как путь к текущему рабочему каталогу и имя хоста.

    Во многих Unix и производных систем приглашение заканчивается на $или %, обычно если пользователь является обычным пользователем, но в #, если пользователь является суперпользователем («root» в терминологии Unix).

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

    В COMMAND.COM DOS и cmd.exe пользователи Windows NT могут изменить приглашение, ввести команду PROMPTили напрямую изменить значение, соответствующее % PROMPT % переменная среда. По умолчанию в большинстве современных систем стиль C:\>получается, например, с помощью PROMPT $ P $ G. По умолчанию для старых систем DOS C>получается просто PROMPT, хотя в некоторых системах это дает новый стиль C:\>, если он не используется в дисководы гибких дисков A: или B:; в этих системах ЗАПРОСИТЬ $ N $ Gможет объявить отмены автоматического значения по умолчанию и явного переключения на старый стиль.

    Многие системы Unix имеют переменную $ PS1(строка приглашения 1), хотя другие переменные также могут влиять на приглашение (в зависимости от используемой оболочки ). В оболочке bash приглашение формы:

    [время] пользователь @ хост: рабочий_каталог $

    можно задать, введя команду

    экспорт PS1 = '[\ t] \ u @ \ H: \ W $ '

    В zsh переменная $ RPROMPTуправляет необязательной «подсказкой» в правой части экрана. Это не настоящая подсказка, поскольку место ввода текста не меняется. Он используется для отображения информации в той же строке, что и приглашение, но с выравниванием по правому краю.

    В RISC OS командная строка представляет собой символ *, и поэтому (OS) команды CLI часто называют «командами звездочки». Можно также получить доступ к тем же командам из других командных строк (например, из командной строки BBC BASIC ), указав перед командой *.

    Параметры

    Командная строка MS-DOS, показать синтаксический анализ в команде и аргументы

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

    Когда командный процессор активен, программа обычно вызывается путем ввода ее имени, за которым следуют аргументы командной строки (если есть). Например, в Unix и Unix-подобных средах который пример аргумента командной строки:

    rm file.s

    "file.s" - это Аргумент командной строки, сообщает программу rm удалить файл "file.s".

    Некоторые языки программирования, такие как C, C ++ и Java, позволяют интерпретировать аргументы командной строки, обрабатывая их как строковые параметры в основная функция. Другие языки, такие как Python, настроить специфичный для операционной системы API (функциональность) через sysмодуль и, в частности, sys.argvдля аргументов системы строки ».

    В один из операционных систем Unix один дефис, используемый вместо имени файла специальным значением, указывающим, что программа должна обрабатывать данные, поступающие из стандартного ввода или отправьте данные в стандартный вывод.

    параметр командной строки

    A параметр строки или просто параметр (также известный как флаг или переключатель ) изменяет действие команды; эффект определяет программу команды. Параметры следуют за именем команды в строке, разделенных пробелами. Пробел перед первым параметром не всегда требуется, например, Dir /?и DIR /?в DOS, которые имеют такой же эффект при перечислении доступных параметров команды DIR, тогда как dir --help(во многих версиях Unix) действительно требует, чтобы перед параметром был хотя бы один пробел (и чувствителен к регистру).

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

    Несколько репрезативных систем ряда команд, используемых в качестве проиллюстрировать некоторые системы:

    Операционная системаКомандаДопустимая альтернативаПримечания
    OpenVMS каталог / владелецДиректор / владелецуказывает нам каталог также отображать права собственности на файлы.. Обратите внимание на имя команды каталога не учитывается, и для уникальности его можно сократить несколько букв.
    WindowsDIR / Q / O: S d *dir / qd * / o: sdisplay владение файлов, имена которых начинаются с "D", отсортированные по размеру, начиная с наименьшего.. Обратите внимание на пробелы вокруг аргумента d *.
    Unix-подобных системыls -lS D *ls -S -l D *отображать файлы и каталоги в длинном формате, начинающиеся с «D» (но не «d»), отсортированные по размеру (сначала больший).. Примечание пробелы обязательны для всех аргументов и опций, но некоторые из них можно запускать вместе, например -lS то же самое, что -l -S .
    Data General RDOS CLI list / e / s 04-26-80 / bList / S / E 4-26-80 / Bперечислить все атрибуты для файлов, созданных до 26 апреля 1980 года.. Обратите внимание, что / B в конце аргумента даты является локальным переключателем, который изменяет значение этого аргумента, в то время как / S и / E являются глобальными переключателями, т.е. применяются ко всей команде.
    Сокращение команд

    в Мультики, системные строки и ключевые слова подсистемы могут быть сокращены. Эта идея, по-видимому, происходит от языка программирования PL / I с его сокращенными ключевыми словами (например, STRG для STRINGRANGE и DCL для DECLARE). Например, в подсистеме Multics "forum" параметр -long_subject может быть сокращен до -lgsj. Для команд Mult также часто используются сокращения, обычно соответствующие начальным буквам слов, которые соединяются вместе с подчеркиванием для формирования имен команд, например, использование did для delete_iacl_dir.

    В некоторых других системах имени являются автоматическими, например, достаточное количество первых символов команды для ее уникальной идентификации (например, SUкак сокращение для SUPERUSER), в то время как другие могут иметь заранее запрограммированные сокращения (например, MDдля MKDIR в COMMAND.COM) или определяемые с помощью пакетных сценариев и псевдонимов (например, псевдоним md mkdirв tcsh ).

    Соглашения о параметрах в DOS, Windows, OS / 2

    В DOS, OS / 2 и Windows различные программы, вызываемые из их COMMAND.COM или CMD.EXE (или их внутренних команд) могут использовать другой синтаксис в одной операционной системе. Например:

    • Параметры могут быть обозначены одним из «символов переключения»: /, -, либо любой из них может быть разрешен. См. Ниже.
    • Они могут быть или не быть чувствительными к регистру.
    • Иногда параметры и их аргументы запускаются вместе, иногда разделенные пробелом, а иногда и символом, обычно :или =; таким образом Prog -fFilename, Prog -f Filename, Prog -f: Filename, Prog -f = Filename.
    • Некоторые программы допускают одиночный - комбинируемые варианты персонажей; другие нет. Переключатель -fAможет означать то же, что и -f -A, или он может быть неправильным, или даже может быть действительным, но другим параметром.

    В DOS, OS / 2 и Windows, косая черта (/) является наиболее распространенной, хотя иногда также используется дефис -минус. Во многих версиях DOS (MS-DOS / PC DOS 2.xx и выше, все версии DR-DOS начиная с 5.0, а также PTS-DOS, Embedded DOS, FreeDOS и RxDOS ) символ переключения (иногда сокращенно Switchar или switchchar ) на использовать определяется соответствующий, возвращаемым системным вызовом (INT 21h / AH = 37h). Символ по умолчанию, возвращаемый этим API, - /, но может быть изменен на дефис-минус в вышеупомянутых системах, за исключением Datalight ROM-DOS и MS-DOS / PC DOS 5.0 и выше, которые всегда возвращают /из этого вызова (если не загружен один из многих доступных TSR для повторного включения функции SwitChar). В некоторых из этих систем (MS-DOS / PC DOS 2.xx, DOS Plus 2.1, DR-DOS 7.02 и выше, PTS-DOS, Embedded DOS, FreeDOS и RxDOS) также можно начать настроить с помощью SWITCHAR в CONFIG.SYS. Встроенная DOS компании General Software предоставляет команду SWITCH для той же цели, тогда как 4DOS позволяет тестировать настройку с помощью SETDOS / W: n. В DR-DOS, если настройка была изменена с /, первый раздел каталогов \в отображении PROMPT $ Gизменится на косую черту /(которая также является допустимым разделителем каталогов в DOS, FlexOS, 4680 OS, 4690 OS, OS / 2 и Windows), тем самым служа визуальной подсказкой для обозначения изменений. Кроме того, текущая настройка отражается также во встроенных экранх справки. Некоторые версии DR-DOS COMMAND.COM также настройки токен PROMPT $ /для текущей текущей. COMMAND.COM, начиная с DR-DOS 7.02, также предоставляет переменную псевдо-окружения с именем %/% , позволяющую записывать переносимые пакетные задания. Несколько внешних команд DR-DOS Различные переменные среды % SWITCHAR% для отмены настройки системы.

    Многие программы жестко запрограммированы с использованием только /, вместо того, чтобы извлекать настройку переключателя перед анализом аргументов системы строк. Очень небольшое количество, в основном порты из Unix-подобных систем, запрограммировано на прием «-», даже если для него не установлен символателя (например, netstat и ping , поставленный с Microsoft Windows, параметр /? Для вывода списка доступных параметров указано соглашение «-»).

    Соглашение о параметрах в Unix-подобных системах

    В Unix-подобных системах, ASCII дефис-минус начинается с параметров; новое (и GNU ) соглашение заключается в использовании двух соглашений, а затем слова (например, - создать дефект) для обозначения использования опции, в то время как старое соглашение (и все еще доступно как опция для часто используемые параметры) - использовать один дефис, а затем одну букву (например, -c); если за дефисом следуют две опции, это может означать, что указываются две опции, или это может означать две последующие буквы, указанные в параметрах (например, именем файла или датой) для первой опции.

    Два символа дефиса-минус без следующих букв (-) могут указывать на то, что оставшиеся аргументы следует рассматривать как параметры, что полезно, например, если само имя файла начинается с дефис, или если дополнительные аргументы предназначены для внутренней команды (например, sudo ). Двойные дефисы-минусы также используются для префикса «длинных опций», где используются более информативные имена опций. Это обычная особенность программного обеспечения GNU. Функция и программа getopt и команда getopts обычно используются для синтаксического анализа параметров командной строки.

    Имена команд, аргументы и параметры Unix чувствительны к регистру (за исключением нескольких примеров, в основном, когда популярные команды из других операционных систем были перенесены в Unix).

    Условные обозначения в других системах

    FlexOS, 4680 OS и 4690 OS используют -.

    CP / M обычно используются [.

    Система мониторинга разговоров (CMS) использует одну левую скобку для отделения параметров в конце команды от других аргументов. Например, в следующей команде параметры указывают на то, что целевой файл должен быть исправлен, если он существует, и дата и время исходного файла должны быть сохранены в копии: КОПИРОВАТЬ исходный файл целевой файл b (ЗАМЕНИТЬ OLDDATE

    CLI Data General в их Операционные системы RDOS, AOS и т. Д., также версия интерфейса командной строки, поставляемая с их Business Basic, использовать только /в качестве переключателя. символ, нечувствителен к регистру и позволяет "локальным переключателям" управлять некоторыми аргументами способом их интерпретации, например, MAC / U LIB / SABC $ LPT / Lглобальную опцию "U" для команды макроса ассемблера для добавления пользовательских символов, но два локальных переключателя, один для инструкций LIB должен быть пропущен на проходе 2, другой - для прямого вывода на принтер, $ LPT.

    Встроенная справка по использованию

    Одним из недостатков интерфейса командно й строки является отсутствием подсказок для пользователя о доступных действиях. В отличие от этого, графические интерфейсы пользователя обычно информируют пользователя о доступных действиях с помощью меню, значков или других визуальных подсказок. Чтобы преодолеть это ограничение, многие программы CLI отображают краткую сводку его допустимых параметров, при вызове без аргументов или с одним из ?, -?, -h, -H, /?, /h, /H, / Help, -helpили --help.

    Предоставление программных аргументов в надежде, что она предназначена для использования.

    Хотя это желательно, по крайней мере, для справки, программы не поддерживать все вводные символы, приведенные выше в примере. В DOS, где по умолчанию символ последовательности последовательности может быть изменен с /на -, программы запрашивать SwitChar API могут быть определены текущую настройку. Таким образом, если программа не поддерживает их все аппаратно, пользователю может потребоваться текущие настройки даже для того, чтобы иметь возможность надежно запросить помощь. Если SwitChar был изменен на -и, следовательно, символ /принимается в качестве альтернативного разделителя пути также в текущей строке DOS, программы могут неправильно интерпретировать такие параметры, как / hили / Hв качестве путей, а не параметров справки. Однако, если он указан в качестве первого или единственного параметра большинства программ, DOS по соглашению принимает его как запрос о помощи независимо от текущего проекта SwitChar.

    В некоторых случаях для запроса могут быть выбраны разные уровни помощи. программа. Некоторые программы, поддерживающие это, позволяют указывать уровень детства в качестве необязательного аргумента для справки (как в / H: 1, / H: 2и т. Д.), дают просто краткая справка по параметрам справки с вопросом знаком и более длинный экран справки по другим параметрам справки.

    В зависимости от программной дополнительной дополнительной или более конкретной справки по заданным параметрам, указав соответствующий параметр как аргумент параметра справки или наоборот (как в / H: Wили в / W :?(при условии, что / Wбудет другим параметром, поддерживаемым программой)).

    Аналогично параметры справки, но гораздо реже, некоторые программы дополнительной дополнительной информации о себе (например, режим, статус, версию, автора, лицензию или контактную информацию) при вызове с помощью параметра "около", например -!, /!, -поили - около.

    Буквальные символы ?и !обычно также доставайте другим целям в командную строку, они могут досту пны не во всех сценариях.

    Конец вывода команды HELPиз RT-11SJ, отображаемый на VT100

    Если необходима более подробная справка, чем предоставляется встроенная программа внутренняя справка, многие системы ставую внешнюю справку команду «команда» (или аналогичную), которая принимает имя команды в качестве вызова и вызывает внешнюю справочную систему.

    В семействе DR-DOS при вводе /?или / Hв приглашении COMMAND.COM вместо самой команды будет качественно динамически сгенерированный список доступных внутренних команд; 4DOS и NDOS при условии ту же функцию, набрав ?в приглашении (что также поддерживает новые версии DR -DOS COMMAND.COM); внутренние команды могут быть индивидуально отключены или повторно через SETDOS / I. В дополнение к этому, некоторые новые версии DR-DOS COMMAND.COM также принимают команду ?%для отображения списка доступных встроенных чисел псевдо-среды. Помимо того, что они предназначены для быстрой справки, их можно использовать в пакетных заданиях для прогнозирования возможностей базового инструмента последовательности.

    Синтаксис описания команды

    Встроенная справка по использованию и man на страницах обычно используется небольшой синтаксис для описания допустимой команды:

    • угловые скобки для обязательных параметров: ping
    • квадратные скобки для дополнительных параметров: mkdir [-p]
    • многоточия для повторяющихся элементов: cp [source2…]
    • вертикальные полосы для выбора элементов: netstat {-t | -u}

    Обратите внимание, что эти символы имеют другое значение, чем при прямом использовании в оболочке. Угловые скобки могут быть опущены, если невозможно спутать имя с буквальной строкой.

    Пробел

    Во многих областях вычислений, но особенно в области командной строки, пробел может вызвать проблемы, поскольку он выполняет две разные и несовместимые функции: как часть команды или команды, или как параметр или имя разделитель. Двусмысленность может быть предотвращена либо путем запрета встроенных пробелов в именах файлов и каталогов в первую очередь (например, путем замены их первоначального обозначения _), либо путем включения имени со встроенными пробелами между символами кавычек или с использованием escape- символ перед пробелом, обычно обратная косая черта (\). Например,

    Длинный путь / Длинное имя программы. Первый параметр. Второй параметр

    неоднозначен (является ли «имя программы» частью имени программы или функции?); однако

    Long_path / Long_program_name Parameter_one Parameter_two…,
    LongPath / LongProgramName ParameterOne ParameterTwo…,
    «Длинный путь / длинное имя программы» «Первый параметр» «Второй параметр»

    и

    Long \ path / Long \ program \ name Parameter \ one Parameter \ two

    не являются двусмысленными. Операционные системы на основе Unix сводят к минимуму использования встроенных пробелов, чтобы свести к минимуму необходимость в кавычках. В Microsoft Windows часто приходится использовать кавычки, поскольку встроенные пробелы (например, в именах каталогов) являются обычным явлением.

    Интерпретатор командной строки

    Большинство пользователей думают о том, как об интерактивном интерпретаторе команд, на самом деле это язык программирования, на котором действует каждый оператор команды. Он должен выполнить пользовательский интерфейс, так и программный язык выполнения.

    Брайан В. Керниган Роб Пайк

    Термин интерпретатор системы строки (CLI ) применяемым к компьютерным программам, разработанным для интерпретации последовательность строк текста, которые могут быть введены пользователем, прочитанным из файла или другого типа потока данных. Средства интерпретации обычно являются одними из заданных операционной системы или языка программирования.

    Интерпретаторы команды позволяют вводить различные очень эффективные методы (и часто кратким) способом. Это требует, чтобы пользователь знал имена команд и их параметров, а также синтаксис интерпретируемого языка .

    Механизм Unix #! и команда OS / 2 EXTPROC облегчают передачу командных файлов внешним процессорам. Эти механизмы можно использовать для специального использования и обработки файлов внешних данных, которые находятся в пакетных файлах.

    Многие графические интерфейсы, такие как OS / 2 Presentation Manager и ранние версии Microsoft Windows, используют командные строки для вызова программ для открытия документов и программ. Команды хранятся в графической оболочке или в таких файлах, как реестр, или файл OS/2 OS2USER.INI.

    Ранняя история

    A Teletype Model 33 Клавиатура телетайпа ASR со считывателем перфоленты и перфорацией DEC VT52 терминал

    Самые ранние компьютеры не поддерживали интерактивные устройства ввода / вывода, часто использующие сенсорные переключатели и индикаторы для связи с оператором компьютера. Этого было достаточно для пакетных систем, которые запускают одну программу за раз, с программистом, часто действующим в операторе. Это также было проверено с помощью пониженных накладных расходов. Позже была добавлена ​​единственная системная консоль , позволяющая оператору связываться с системой.

    Начиная с 1960-х годов, взаимодействие пользователя с компьютерами в основном осуществлялось с помощью интерфейса командной строки, сначала на таких машинах, как Teletype Model 33 ASR, но на ранних CRT компьютерные терминалы, такие как VT52.

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

    Примерно в 1964 году Луи Пузен представил концепцию и оболочку имени в Multics, опираясь на более ранние, более простые возможности в Совместимой системе разделения времени (CTSS).

    С начала 1970-х годов операционная система Unix адаптировала концепцию мощной среды системы строки и представила возможность конвейерной передачи вывод одной команды в входных данных для другого. В Unix также была установлена ​​возможность и повторно запускать строки команд в виде «сценариев оболочки », которые действовали как пользовательские команды.

    Командная строка также был основным интерфейсом для ранних домашних компьютеров, таких как Commodore PET, Apple II и BBC Micro - почти всегда в виде интерпретатора ОСНОВНОЙ. Когда появились более мощные бизнес-ориентированные микрокомпьютеры с компьютерами CP / M и более поздними DOS, такими как IBM PC, командная строка заимствовать часть синтаксиса и особенности оболочек Unix, такие как подстановка и конвейерная передача вывод.

    Первым серьезным вызовом для командной строки стал подход PARC GUI, использовавшийся в Apple Lisa 1983 года и в 1984 Apple. Macintosh. Некоторые пользователи использовали такие графические интерфейсы, как GEOS и Windows 3.1, но большинство пользователей IBM PC не заменили свой COMMAND.COM оболочка с графическим интерфейсом до Windows 95 была выпущена в 1995 году.

    Современное использование в качестве большинства пользователей компьютеров, не являющихся экспертами, теперь используют графический интерфейс почти исключительно, более продвинутые пользователи имеют доступ к мощным средам командной строки:

    • Командная оболочка VAX / VMS по умолчанию, использующая язык DCL, была перенесена на систему Windows как минимум три раза, включая Acceler8 DCL Lite. Командные оболочки Unix были перенесены на VMS и операционные системы DOS / Windows 95 и Windows NT. COMMAND.COM и Windows NT cmd.exe были перенесены в Windows CE и предположительно работают в Microsoft Windows NT Embedded 4.0
    • Windows Resource Kit и Windows Services для Unix, включая оболочки Korn и Bourne вместе с интерпретатором Perl (Службы Unix содержат Active State ActivePerl в более поздних версиях и Interix для версий 1 и 2 и оболочку, скомпилированную Microsoft)
    • IBM OS / 2 (и ее производные, такие как eComStation и ArcaOS ) имеют процессор cmd.exe. Это копирует команды COMMAND.COM с расширениями до REXX.
    • cmd.exe и COMMAND.COM являются частью нескольких операционных систем Windows NT.
    • Еще одна cmd.exe - это урезанная оболочка для Windows CE 3.0.
    • Вызываемый интерпретатор типа MS-DOS был перенесен на компьютеры Windows CE; самый последний выпуск инструмента идентичен MS-DOS 6.22 и может также работать под Windows 1, 2 и 3.0, QBasic и другими разработками, 4NT и 4DOS. Последний выпуск включает несколько оболочек, а именно MS-DOS 6.22, PC DOS 7, DR DOS 3.xx и др.
    • Пользователи Windows имеют среду интерфейса командной строки с именем Командная строка Windows, которая может использовать интерфейс CScript для альтернативных программ. PowerShell интерфейс командной строки, но его апплеты не написаны в сценарии оболочки. Реализации оболочки Unix также доступны как часть подсистемы POSIX, Cygwin, MKS Toolkit, UWIN., Hamilton C shell и другие программные пакеты. Доступные оболочки для этих инструментов взаимодействия включают csh, ksh, sh, bash, rsh, tclsh и реже zsh, psh
    • COMMAND.COM (4DOS), Windows NT cmd.exe (4NT, TCC) и OS / 2 cmd.exe (4OS2) и другие, основанные на них, являются расширенными оболочками, которые могут быть замена собственной оболочки или средство улучшения оболочки по умолчанию.
    • Реализации PHP имеют оболочку для интерактивного использования под названием php-cli.
    • Стандартный Tcl / Tk имеет две интерактивные оболочки, Tclsh и Wish, последнюю версией графического интерфейса пользователя.
    • Python, Ruby, Lua, XLNT и другие интерпретаторы также имеют командные оболочки для интерактивного использования.
    • FreeBSD использует tcsh в интерактивной оболочке по умолчанию для суперпользователя и ash в качестве оболочки сценариев по умолчанию.
    • Apple macOS и многие дистрибутивы Linux имеют работу Bash оболочки Unix. Ранние версии macOS использовали tcsh в качестве оболочки по умолчанию.
    • Встроенный Linux (и другие встроенные Unix-подобные ) устройство часто используют Ash реализацию оболочки Unix, как часть Busybox.
    • Android, использует оболочку mksh, которая заменяет оболочку, производную от ash, которая использовалась в более старых версиях Android версии, дополненные команды из отдельного двоичного файла Toolbox.
    • Маршрутизаторы с Cisco IOS, Junos и многими другими обычно настраиваются из командной строки.

    Сценарии

    Основные интерпретаторы системы строки сценарии в различной степени. (В конце концов, они являются интерпретаторами интерпретируемого языка программирования, хотя во многих случаях язык является уникальным для конкретного интерпретатора строки.) Они будут интерпретировать сценарии (по-разному называемые сценариями оболочки или командные файлы ), написанные на языке, который они интерпретируют. Некоторые интерпретаторы системы также включают в себя механизмы интерпретатора других языков, таких как REXX, в дополнение к своим собственным, что выполнять свои собственные сценарии на языках непосредственно в самом интерпретаторе командной строки.

    И наоборот, языки программирования сценариев, в частности языки с функцией eval (такие как REXX, Perl, Python, Ruby или Jython ), и они могут реализовать интерпретаторов и фильтров моей строки. Для некоторых операционных систем, в первую очередь для DOS, такой интерпретатор обеспечивает более гибкий интерфейс командной строки, чем поставляемый. В других случаях такой интерпретатор представляет собой настраиваемый пользовательский интерфейс с использованием пользовательского интерфейса и средств ввода / вывода языка.

    Другие интерфейсы командной строки

    Командная строка интерфейса между программами, а также пользователь. В этом смысле командная строка является альтернативой диалоговому окну . Редакторы и базы данных предоставляют собой командную команду, которая может работать альтернативные командные процессы. С другой стороны, в строке могут быть параметры, открывающие диалоговое окно. Последняя версия Take Command имеет эту функцию. DBase использовала диалоговое окно для создания командных строк, которое можно было редактировать перед использованием.

    Такие программы, как BASIC, diskpart, Edlin и QBASIC, все пользовательские интерфейсы командной строки, некоторые из которых используют системную оболочку. Базовая версия моделируется на основе интерфейса по умолчанию для 8-битных компьютеров Intel. Калькуляторы можно запускать в виде командной строки или диалоговых интерфейсов.

    Emacs интерфейс командной строки в виде своего минибуфера. Команды и аргументы могут быть введены с использованием стандартной поддержки редактирования текста Emacs, отображается в другом буфере.

    Существуют ряд игр в текстовом режиме, таких как Adventure или King's Quest 1-3, в которых пользователь вводит команды в нижней части экрана. Один управляет персонажем, набирая такие команды, как «получить кольцо» или «посмотреть». Программа возвращает текст, который является, как персонаж видит это, или заставляет выполнить действие. Текстовое приключение Автостопом по Галактике, отрывок интерактивной фантастики, основанный на одноименной книге Дугласа Адама, игра в стиле системы строки в стиле телетайпа.

    Наиболее заметным из этих интерфейсов является интерфейс стандартные потоковые, который позволяет выходные данные одной команды на вход другой. Текстовые файлы также могут служить любой цели. Это интерфейсы трубопроводов, фильтров и перенаправления. В устройстве Unix также возникают обычные файлы, поэтому используется тип файла для оболочки, используемой для stdin, stdout и stderr, является файлом устройства tty.

    Другой интерфейс командной строки позволяет программе запускать вспомогательные программы либо для запуска документов, либо для запуска программ. Команда обрабатывается оболочкой внутри, а затем передается другая программа для запуска документа. Графический интерфейс Windows и OS / 2 в степени зависит от командных строк, которые обычно обрабатываются другими программными консолями, которые обычно обрабатываются без представления пользовательской консоли.

    Такие программы, как OS / 2 E-редактор и некоторые другие программы IBM, могут обрабатывать командные строки, обычно предназначенные для оболочки, вывод которых помещается непосредственно в окно документа.

    Поле ввода URL-адреса веб-браузера может использоваться как командная строка. Его можно использовать для «запуска» веб-приложений, доступа к конфигурации браузера, а также для выполнения поиска. Google, который был назван «командной строкой Интернета», будет выполнять поиск по домену, когда обнаруживает параметры поиска в известном формате. Эта функция присутствует независимо от того, запускается ли поиск из поля браузера или на веб-сайте Google.

    Многие видеоигры на ПК имеют интерфейс командной строки, часто называемый консолью. Обычно он используется разработчиками игр во время разработки и разработчиками модов для отладки, а также для обмана или пропуска частей игры.

    См. Также

    Примечания

    Ссылки

    Внешние ссылки

    Последняя правка сделана 2021-05-15 06:43:52
    Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
    Обратная связь: support@alphapedia.ru
    Соглашение
    О проекте