Системна конзола, компютърна конзола, операторна конзола или само конзола е софтуерно приспособление за задаване на команди и изписване на системни съобщения чрез клавиатура и наблюдение на входната и изходната информация на монитор (традиционно текстови, но може да е и графичен терминал), като по-този начин се постига комуникация между потребителя и компютъра. Използва се за системно администриране, особено за съобщения на BIOS или boot loader, ядрото на ОС, системите init и syslog. Системните конзоли са вид компютърен терминал, които в абстрактната си форма могат да преминат във виртуална конзола и терминален емулатор. Системната конзола се използва в частност при интерфейс с команден ред (command line interface – CLI) – начин за потребителя за взаимодействие с операционната система на компютър, при който потребителят въвежда команди като последователни редове текст. Той е бил основен за повечето от разпространените през 70-те и 80-те години на 20 век операционни системи, включително MS-DOS, CP/M, UNIX и Apple DOS. Интерфейсът обикновено бива имплементиран с command line shell (програма, която приема команди под формата на текст и ги преобразува в съответни функции) на операционната система.

Този тип взаимодействие с операционната система не е толкова широко разпространен сред днешните потребители, които предпочитат графичен интерфейс, но се предпочита повече от по-напреднали потребители, тъй като това предлага по-мощни средства за работа.

С програмите с този тип интерфейс е по-лесно да се работи чрез скриптове.

Алтернативи на взаимодействието чрез въвеждане на команди са: избор от менюта (напр. IBM AIX SMIT), комбинации от клавиши на клавиатурата и други програми, обикновено управлявани с мишка.

Приложения, използващи Command Line Interface Съществуват компютърни приложения, които също използват Command Line Interface.

Компютърните приложения може да не поддържат, да поддържат някои или да поддържат и трите главни механизма на взаимодействие чрез команди:

Параметри: Повечето операционни системи поддържат начин за подаване на допълнителни параметри към програма, когато тя бъде стартирана. Когато дадена програма бъде стартирана от командния интерпретатор на операционната система, допълнителен текст заедно с името на програмата биват подавани към стартираната програма. Интерактивни сесии: След стартирането си дадена програма може да създаде оператор с независими ресурси, за да въвежда команди под формата на текст. Вътрешно-системно взаимодействие: Повечето операционни системи поддържат начини за вътрешно-системни взаимодействия. Командите от потребителски процеси могат да бъдат пренасочени към командния интерфейс, чрез един от тези методи.

CLI програми Някои приложения поддържат само този тип интерфейс, като на потребителя се предоставя възможност за подаване на команди и поведението на програмата се определя от тях. Примери за такива програми са: DEBUG Diskpart Ed Edlin Fdisk Ping

Хибридни програми Някои компютърни програми поддържат както интерфейс с въвеждане на команди (CLI), така и графичен интерфейс (GUI). В някои случаи програмата с графичен интерфейс е просто „обвивка“ около отделен изпълним файл на програма с въвеждане на команди. В други случаи някои програми предлагат алтернатива с въвеждане на команди, на програмата с графичен интерфейс. Не винаги обаче двата варианта предлагат сходна функционалност. Например MATLAB, компютърна програма за числени анализи, не предлага графична среда за някои изчисления, но интерфейсът с въвеждане на команди може да се справи с всяко изчисление, което MATLAB поддържа.

Ранните игри на компанията Sierra, като първите 3 версии на играта King’s Quest (1984 – 1986), използват команди от вграден в играта конзолен прозорец, чрез които героят се движи.

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

След време телеграфът бил заменен от устройство с клавиатура и екран с функциите на телеграф, наричано TTY, а после и от терминал, където компютърният софтуер може да използва целия екран, а не само да печата последователни редове.

През ноември 2006, Microsoft, издават версия 1.0 на програмата Windows Powershell (наричана в проект Monad), която комбинира в себе си програми за работа с команди на Unix с техния обектно-ориентиран .NET Framework. MinGW и Cygwin са безплатни програмни пакети, които предлагат CLI, подобен на този използван в UNIX. Microsoft предлага имплементацията на ksh на компанията MKS Inc. – MKS Korn Shell за Windows чрез добавката си Services for UNIX.

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

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

Структура на командния интерпретатор Общият модел на команден интерфейс за една операционна система e:

prompt command param1 param2 param3 ... paramN

Prompt – генерира се от програмата и извиква съдържание за потребителя. Command (команда) – извиква се от потребителя. Командите са обикновено една от трите вида: Вътрешна – разпозната и обработвана от самия интерпретатор на командния ред и независеща от никакъв външен изпълняващ файл (.exe). Добавена – отделен изпълняващ файл, основно считан за част от операционната среда и винаги добавен вътре заедно с ОС. Външна – външни изпълними файлове, които не са част от основната ОС, но са добавени от други източници за специфични цели и приложения. param1 ...paramN – Допълнителни параметри добавени от потребителя. Формата и значението на параметрите зависят от извиканата команда. В случай на добавена или външна команда, стойностите на параметрите се предават от процеса (определен от командата), когато процесът е стартиран от ОС. Параметрите могат да бъдат аргументи или опции.

В този пример сепараторите между елементите на командния интерфейс са празни полета (whitespace characters), а в края на реда сепаратора е нов ред. Това е широко употребявана (но не универсална) практика за командните интерфейси.

Интерефейс с команден ред се състои основно от синтаксис и семантика. Синтаксисът е „букварът“ или още граматиката, която всички команди трябва да следват. В случаите с операционната система MS-DOS или Unix всяка от тях дефинира техен собствен списък от правила, които всички команди следват. Когато има вградена системи (embedded systems), всяка компания продавач като Nortel, Juniper Networks или Cisco Systems, дефинира свой собствен списък с правила, към които командите вътре в командния интерпретатор се приспособяват. Тези правила също определят как потребителят ще навигира през системата от команди. Семантиката определя какъв вид операции са възможни, на какъв вид данни тези операции могат да бъдат изпълнени и как граматиката представя тези данни и операции – символичното значение в синтаксиса.

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

Един обикновен команден интерпретатор ще изпише „prompt“, ще приеме „команден ред“ въведен от потребителя и подаден за изпълнение с клавиша „Enter“, ще изпълни указаната команда и ще осигури текстова визуализация на резултати или съобщения за грешки. Един по-съвременен команден интерфейс би валидирал (оценка на данните), интерпретирал и разширил параметрите на командния интерфейс преди да изпълни подадената команда, и допълнително би могъл да прихване или пренасочи своя изход (резултат от изчисления).

За разлика от бутон или прозорец за меню в GUI (графичен потребителски интерфейс), командният интерпретатор е самодокументиращ се, показващ само това, което потребителят иска да бъде направено. В допълнение командният интерпретатор включва стандартни настройки, които могат да бъдат достъпени за промяна на резултатите. В случай че настройките са от помощ при компилирането на кода, така промененият команден интерпретатор може да бъде запазен чрез низ от символи (character string) или псевдоним, който представя цялата команда, или няколко команди могат да бъдат групирани, за да изпълняват по-сложна последователност – например компилиране на програмата, нейното инсталиране и пускане – създавайки единична цялост, наречена командна процедура или код, който сам по себе си може да бъде третиран като команда. Тези предимства означават, че потребителят трябва да изчисли комплексна команда или серии такива само веднъж, защото те могат да бъдат запазени, за да бъдат използвани отново.

Командите задавани на командния интерпретатор са често в една от следните форми:

правиНещо как къмФайл(ове) правиНещо как файлИзточник целевиФайл правиНещо как <входенФайл> изходенФайл правиНещо как | правиНещо как | правиНещо как > изходенФайл където „правиНещо“ като резултат е команда, а “как“ е обстоятелство (например как да бъде изпълнена командата) и „къмФайл“ е обект или обекти (обикновено един или повече файла), където командата трябва да действа (оперира). Символът ‘>’ в третия пример е оператор за пренасочване, който указва на командния интерпретатор да изпрати резултата от действията не към екрана, а към файла написан от дясно след ‘>’. Това действие ще презапише съдържанието на файла. Използвайки „>>“ ще пренасочи изхода по същия начин, ще го продължи файла без да изтрива текущото му състояние. Друг пренасочващ оператор е вертикалната черта ‘ | ’, който създава канал за обработка на процеса, където изходът на една команда става вход на следващата команда.

Команден интерпретатор и защита на ресурси Списъкът от налични команди може да бъде модифициран като бъде променена коя пътека се появява в променливата PATH. Под Unix, командите трябва да бъдат маркирани като изпълнителни файлове (executable или накратко .exe). Директориите в пътеката на променливата се търсят по реда, по който са дадени. Като се промени реда на пътеката, потребителя може да компилира например \OS2\MDOS\E.EXE вместо \OS2\E.EXE, а стандартната настройка е обратното. Работи и преименуване на изпълнимите файлове: потребителите често преименуват техния избран редактор (editor) на EDIT например.

Командният интерпретатор позволява и да се ограничават наличните команди, например достъпът до допълнителни вътрешни команди. Това прави в Windows CMD.EXE. Често shareware (споделен софтуер) програмите ограничават обсега на командите, включително изкарването на команда, за която администраторът ви е изключил изпълнението на batch файлове от prompt.