Komanda qatarı interfeysi

**Komanda qatarı interfeysi** yamasa **CLI** (ingl. *Command-line interface*) ‒ bul komanda qatarları dep atalatuǵın tekst qatarların kirgiziw arqalı kompyuter baǵdarlaması menen óz-ara tásir etiw usılı. Komanda qatarı interfeysleri 1960-jıllardıń ortasında kompyuter terminallarında payda boldı hám perfokartalar menen qollanılatuǵın interaktiv emes rejimge qaraǵanda interaktiv hám paydalanıwshıǵa qolaylıraq alternativa retinde payda boldı.

Búgingi kúnde kópshilik kompyuter paydalanıwshıları CLI ornına grafikalıq paydalanıwshı interfeyslerine ("GUI") isenedi. Biraq, kóp baǵdarlamalar hám operaciyalıq sistema utilitaları GUI ge iye emes hám CLI arqalı qollanılıwǵa arnalǵan.

CLI haqqında biliw skriptler jazıw arqalı baǵdarlamalardı avtomatlastırıw ushın da paydalı. Avtomatlastırıw tek ǵana grafikalıq interfeyslerge qaraǵanda CLI ge iye baǵdarlamalar ushın ashıq opciya bolıp tabıladı, óytkeni kóp jeke komandalardı skriptler dep atalatuǵın bir fayllarǵa birlestiriwge boladı. Óz aldına baǵdarlamalar retinde orınlanatuǵın skriptler óz ishine alǵan CLI komandalar toparın bir waqıtta bir komandalar toplamı sıpatında orınlawǵa múmkinshilik beredi.

CLI ler komanda qatarı interpretatorları yamasa komanda qatarı processorları arqalı múmkin boladı, bular komanda qatarların oqıytuǵın hám komandalardı orınlaytuǵın baǵdarlamalar.

CLI ge alternativalar - bul GUI ler (ásirese tıshqansha kórsetkishi bar stol metaforaları, mısalı Microsoft Windows), tekstke tiykarlanǵan paydalanıwshı interfeys menyuleri (mısalı DOS Shell hám IBM AIX SMIT) hám klavishler kombinaciyaları.

## Grafikalıq paydalanıwshı interfeysi menen salıstırıw

Grafikalıq paydalanıwshı interfeysine salıstırǵanda, komanda qatarı interfeysin ámelge asırıw ushın az sistema resursları talap etiledi. Komandalar ushın opciyalar hárbir komanda qatarında bir neshe háripler menen berilgenlikten, tájiriybeli paydalanıwshı kóbinese opciyalarǵa kiriwdi ańsatıraq tabadı. Qaytalanatuǵın tapsırmalardı avtomatlastırıw qatarlardı redakciyalaw hám jiyi qollanılatuǵın izbe-izliklerdi saqlaw ushın tariyx mexanizmleri arqalı ápiwayılastırıladı; bul parametrler hám ózgermeli opciyalardı qabıl ete alatuǵın skript tiline keńeytiliwi múmkin. Komanda qatarı tariyxı saqlanıwı múmkin, bul komandalardı qayta kóriw yamasa qaytalawǵa múmkinshilik beredi.

Komanda qatarı sisteması paydalanıwshınıń paydalanıwı ushın qaǵaz yamasa onlayn qollanbalardı talap etiwi múmkin, biraq kóbinese járdem opciyası komandanıń opciyalarınıń qısqasha sholıwın beredi. Komanda qatarı ortalıǵı GUI de tabılatuǵın hár qıylı shriftler yamasa keńeytilgen redaktorlaw aynaları sıyaqlı grafikalıq jaqsılanıwlardı bermewi múmkin. Jańa paydalanıwshı ushın, qollanbalarǵa baylanıspastan, grafikalıq paydalanıwshı interfeysiniń belgileri hám ashılmalı menyulerine salıstırǵanda, barlıq komandalar hám bar bolǵan opciyalar menen tanısıw qıyın bolıwı múmkin.

## Túrleri

### Operaciyalıq sistema komanda qatarı interfeysleri
Operaciyalıq sistema (OS) komanda qatarı interfeysleri ádette operaciyalıq sistema menen birge beriletuǵın ayrıqsha baǵdarlamalar bolıp tabıladı. Bunday tekst interfeysin ámelge asıratuǵın baǵdarlama kóbinese komanda qatarı interpretatorı, komanda processorı yamasa shell dep ataladı.

Komanda qatarı interpretatorlarına mısallar: Nushell, DEC kompaniyasınıń OpenVMS hám RSX-11 degi DIGITAL Command Language (DCL), hár túrli Unix shelleri (sh, ksh, csh, tcsh, zsh, Bash hám t.b.), CP/M niń CCP si, DOS tıń COMMAND.COM ı, sonday-aq OS/2 hám Windows tıń CMD.EXE baǵdarlamaları, sońǵı toparlar kóbinese DEC kompaniyasınıń RSX-11 hám RSTS CLI lerine tiykarlanǵan. Kópshilik operaciyalıq sistemalarda standart shell baǵdarlamasın basqa alternativalar menen almastırıw múmkin; mısallar qatarına DOS ushın 4DOS, OS/2 ushın 4OS2 hám Windows ushın 4NT / Take Command kiredi.

Geyde "shell" termini komandalıq qatar interpretatorın táriyiplew ushın qollanılsa da, qatań túrde aytqanda, shell tolıq grafikalıq baǵdarlanǵanlardı da óz ishine alıp, paydalanıwshı interfeysin quraytuǵın hár qanday programma bolıwı múmkin. Mısalı, standart Windows GUI - bul WIN.INI konfiguraciya faylındaǵı SHELL=EXPLORER.EXE qatarı menen anıqlanǵan EXPLORER.EXE atlı shell programması. Bul programmalar shell bolsa da, CLI (komanda qatar interfeysi) emes.

### Qosımsha komanda qatar interfeysleri

Qosımsha programmalar (ámeliyat sistemalarınan ayırmashılıǵı) da komanda qatar interfeyslerine iye bolıwı múmkin.

Qosımsha programması tómendegi úsh tiykarǵı komanda qatar interfeys mexanizmleriniń hesh birin, hár qanday yamasa hámmesin qollay aladı:

* Parametrler: Kópshilik komandalıq qatar interfeysleri programma isletilgende oǵan qosımsha informaciya jiberiw usılın qollaydı.
* Interaktiv komandalıq qatar sessiyaları: Isletilgennen keyin, programma operatorǵa komandalardı engiziw ushın ǵárezsiz usıl usınıwı múmkin.
* Processler aralıq baylanıs: Kópshilik operaciyalıq sistemaları processler aralıq baylanıs usılların qollaydı (mısalı, standart aǵımlar yamasa atalǵan qubırlar). Klient processlerinen komanda qatarlar usı usıllardıń biri arqalı CLI programmasına qayta baǵdarlanıwı múmkin.

Geypara qollanbalar CLI di qollap, paydalanıwshıǵa ózleriniń soraw belgisin kórsetedi hám komandalıq qatarlardı qabıl etedi. Basqa programmalar CLI di de, GUI di de qollaydı. Geybir jaǵdaylarda, GUI ápiwayı túrde bólek CLI orınlanbalı faylı ushın qabıq bolıp tabıladı. Basqa jaǵdaylarda, programma GUI ge alternativ retinde CLI di qosımsha usınıwı múmkin. CLI ler hám GUI ler kóbinese hár qıylı funkcionallıqtı qollaydı. Mısalı, san analizi kompyuter programması MATLAB tıń barlıq múmkinshilikleri CLI arqalı qoljetimli, al MATLAB GUI múmkinshiliklerdiń tek kishi toplamın kórsetedi.

1975-jılǵı Colossal Cave Adventure oyınında paydalanıwshı úńgir sistemasın izertlew ushın CLI arqalı bir yamasa eki sóz engizedi.

## Tariyxı
Komanda qatarı interfeysi teleprinter (TTY) mashinaları arqalı adamlar tárepinen alıp barılǵan baylanıs formasınan rawajlandı. Geyde bular teleks arqalı buyrıq yaki tastıyıqlaw jiberiwdi óz ishine aladı. Dáslepki kompyuter sistemaları kóbinese operator menen óz-ara tásirlesiw quralları retinde teleprinterdi paydalanǵan.

Mexanikalıq teleprinter "shiyshe TTY", teleprinterdi imitaciyalawshı klaviatura hám ekran menen almastırıldı. "Aqıllı" terminallar pútkil ekranda kursordıń júriwi yaki kompyuterge jiberiw ushın terminaldaǵı maǵlıwmatlardı jergilikli redakciyalaw sıyaqlı qosımsha funkciyalarǵa ruqsat etti. Mikrokompyuter revolyuciyası dástúrli – minikompyuter + terminallar – waqıt bólisiw arxitekturasın almastırǵanda, apparatlıq terminallar terminal emulyatorları – JK-nıń seriyalıq portları arqalı jiberilgen terminal signalların tártiplewshi JK baǵdarlamalıq támiynatı menen almastırıldı. Bular ádette shólkemniń jańa JK-ların olardıń bar minikompyuterleri yaki meynfreym kompyuterleri menen baylanıstırıw yaki JK-dan JK-ǵa baylanıstırıw ushın paydalanıldı. Bul JK-lardıń ayırımları Byulleten Taqtası Sisteması baǵdarlamalıq támiynatın isletken.

Dáslepki operaciyalıq sistema CLI-leri rezident monitor baǵdarlamalarınıń bir bólegi retinde ámelge asırıldı hám ańsat almastırıla almadı. Almastırılatuǵın komponent retinde shelldiń birinshi ámelge asırılıwı Multics waqıt bólisiw operaciyalıq sistemasınıń bir bólegi boldı. 1964-jılı MIT Esaplaw Orayınıń xızmetkeri Lui Puzin argument almastırıwǵa ruqsat ete otırıp, buyrıq skriptlerin orınlaw ushın RUNCOM quralların islep shıqtı. Puzin baǵdarlamalastırıw tili sıyaqlı buyrıqlardı paydalanıw texnikasın súwretlew ushın shell terminin oylap taptı hám Multics operaciyalıq sistemasında ideyanı qalay ámelge asırıw haqqında maqala jazdı. Puzin 1965-jılı ózi tuwılǵan Franciyasına qaytıp keldi hám birinshi Multics shelli Glenda Shreder tárepinen islep shıǵıldı.

Birinshi Unix shelli, V6 shelli, 1971-jılı Bell Labsta Ken Tompson tárepinen islep shıǵıldı hám Shrederdiń Multics shellinen úlgi alındı. Born shelli 1977-jılı V6 shelliniń ornına kirgizildi. Ol óz-ara tásirlesiwshi buyrıq tártiplewshisi retinde paydalanılsa da, ol skript tili retinde de mólsherlengen hám ádette strukturalıq baǵdarlamalardı islep shıǵarıw ushın esaplanatuǵın funkciyalardıń kóplerin óz ishine aladı. Born shelli KornShell (ksh), Almquist shell (ash) hám belgili Born-qayta shelli (yaki Bash) rawajlanıwına alıp keldi.

Dáslepki mikrokompyuterlerdiń ózleri CP/M, DOS yaki AppleSoft BASIC sıyaqlı komanda qatarı interfeysine tiykarlanǵan edi. 1980-jıllar hám 1990-jıllarda Apple Macintosh hám JKlarda Microsoft Windowstıń kirgiziliwi komanda qatarı interfeysiniń Grafikalıq Paydalanıwshı Interfeysi menen almastırılǵan tiykarǵı paydalanıwshı interfeysi retinde kórildi. Komanda qatarı sistema administratorları hám sistema administraciyası, kompyuter baǵdarlamalastırıw hám paketli islew ushın basqa aldınǵı paydalanıwshılar tárepinen kóbinese paydalanılatuǵın alternativ paydalanıwshı interfeysi retinde bar bolıp qaldı.

2006-jıldıń noyabr ayında Microsoft Windows PowerShell-diń 1.0 versiyasın (burınǵı kod atı Monad) shıǵardı, ol dástúrli Unix shellleriniń funkciyaların olardıń menshikli obektke baǵdarlanǵan .NET Framework-i menen birlestirdi. MinGW hám Cygwin Windows ushın Unix-qa uqsas CLI-di usınatuǵın ashıq kodlı paketler. Microsoft MKS Inc.-nıń ksh ámelge asırılıwın MKS Korn shell-di Windows ushın UNIX ushın Xızmetleri qosımshası arqalı támiyinleydi.

2001-jıldan baslap Macintosh operaciyalıq sisteması macOS Darwin dep atalatuǵın Unix-qa uqsas operaciyalıq sistemasına tiykarlanǵan. Bul kompyuterlerde paydalanıwshılar Qosımshalar papkasınıń Utilitalar pod-papkasında tabılatuǵın Terminal dep atalatuǵın terminal emulyator baǵdarlamasın isletiw arqalı yaki ssh arqalı mashinaǵa alıstan kiriw arqalı Unix-qa uqsas buyrıq qatarı interfeysine kire aladı. Z shell macOS ushın ádepki shell bolıp tabıladı; Bash, tcsh hám KornShell de támiyinlengen. macOS Catalina-ǵa shekem Bash ádepki shell edi.

## Qollanılıwı
Keń (yamasa erkin) opciyalar diapazonı menen birge úlken komandalar yaki sorawlar sózligi bolǵanda, taza GUI-ge qaraǵanda tekst retinde tezirek kirgiziliwi múmkin bolǵan jaǵdaylarda CLI paydalanıladı. Bul ádette operaciyalıq sistema komanda shelllerinde boladı. CLI-ler grafikalıq paydalanıwshı interfeysin qollap-quwatlaw ushın jetkilikli resursları bolmaǵan sistemalar tárepinen de paydalanıladı. Ayırım kompyuter tili sistemaları (Python, Forth, LISP, Rexx hám BASIC-tıń kóp dialektleri sıyaqlı) kodtı tez bahalawǵa ruqsat etiw ushın óz-ara tásirlesiwshi komanda qatarı rejimin támiyinleydi.

CLI-ler kóbinese baǵdarlamashılar hám sistema administratorları, injenerlik hám ilimiy ortalıqlarda hám texnikalıq jaqtan aldınǵı jeke kompyuter paydalanıwshıları tárepinen paydalanıladı. CLI-ler kózi ázzi insanlar arasında da keń tarqalǵan, sebebi komandalar hám juwaplar jańalanıwshı Brayl displeyleri arqalı kórsetiliwi múmkin.

## Shell CLI-diń anatomiyası
Komanda qatarı interfeysiniń ulıwma úlgisi:
 Prompt command param1 param2 param3 … paramN

* Prompt — paydalanıwshı ushın kontekst támiyinlew ushın baǵdarlama tárepinen islep shıǵarıladı.
* Komanda — paydalanıwshı tárepinen támiyinlenedi. Komandalar ádette eki klasstıń biri boladı: 
*# Ishki komandalar komanda qatarı tártiplewshisi tárepinen tanıladı hám islep shıǵarıladı. Ishki komandalar sonday-aq ornatılǵan komandalar dep ataladı.
*# Sırtqı komandalar ayırım orınlanatuǵın fayllarda tabılatuǵın orınlanatuǵın fayllardı isletedi. Komanda qatarı tártiplewshisi sırtqı komandaǵa sáykes keletuǵın atawları bar orınlanatuǵın fayllardı izleydi.
* param1 …paramN — paydalanıwshı tárepinen támiyinlengen parametrler. Parametrlerdiń formatı hám mánisi komandaǵa baylanıslı. Sırtqı komandalar jaǵdayında parametrlerdiń mánleri OS tárepinen isletilgende baǵdarlamaǵa jetkiziledi. Parametrler argumentler yaki opciyalar bolıwı múmkin.

Bul formatta komanda qatarı elementleri arasındaǵı delimiterler bos orın belgileri hám qatar aqırı delimiterı jańa qatar delimiterı bolıp tabıladı. Bul keń tarqalǵan (biraq universal emes) konvenciya.

CLI ádette sintaksis hám semantikadan turadı dep esaplanıwı múmkin. Sintaksis barlıq komandalar ámel etiwi kerek bolǵan grammatika bolıp tabıladı. Operaciyalıq sistemalar jaǵdayında DOS hám Unix hárbiri barlıq komandalar ámel etiwi kerek bolǵan óz qaǵıydalar jıynaǵın belgileydi. Ornatılǵan sistemalar jaǵdayında Nortel, Juniper Networks yaki Cisco Systems sıyaqlı hárbir satıwshı óz menshikli qaǵıydalar jıynaǵın belgileydi. Bul qaǵıydalar sonday-aq paydalanıwshınıń komandalar sisteması arqalı qalay alıp barılatuǵının belgileydi. Semantika qanday operaciyalardıń múmkin ekenligin, bul operaciyalar qanday maǵlıwmatlarda orınlanıwı múmkinligin hám grammatika bul operaciyalar hám maǵlıwmatlardı qalay kórsetedi – sintaksistegi simvolikalıq mánisti belgileydi.

Eki túrli CLI sintaksis yamasa semantika boyınsha kelisiwi múmkin, biraq olar ekewi boyınsha da keliskende ǵana paydalanıwshılar hesh nárse úyreniw talap etilmesten eki CLI-di de paydalanıwǵa ruqsat etiw, sonday-aq skriptlerdi qayta paydalanıwǵa ruqsat etiw ushın jetkilikli dárejede uqsas dep esaplanıwı múmkin.

Ápiwayı CLI (komanda qatarı interfeysi) soraw belgisin kórsetedi, paydalanıwshı tárepinen Enter túymesi menen juwmaqlanǵan terilgen komandalıq qatardı qabıl etedi, sonnan keyin kórsetilgen komandanı orınlaydı hám nátiyjeler yamasa qáte xabarlarınıń tekstlik kórinisin usınadı. Rawajlanǵan CLI ler komandanı orınlawdan aldın komandalıq qatardı tekseredi, interpretaciyalaydı hám parametrlerin keńeytedi, sonday-aq qálegen jaǵdayda onıń shıǵısın qamtıp aladı yamasa qayta baǵdarlaydı.

GUI degi túyme yamasa menyu elementinen ayırmashılıǵı, komandalıq qatar ádette ózin-ózi hújjetlestiredi, paydalanıwshı neni isletiwdi qáleytuǵının anıq aytadı. Sonıń menen bir qatarda, komandalıq qatarlar ádette nátiyjelerdi ózlestiriw ushın ózgertiliwi múmkin bolǵan kóplegen standart mánislerdi óz ishine aladı. Paydalı komandalıq qatarlardı tolıq komandaǵa wákillik etetuǵın háriplik qatar yamasa teń atama (alias) tayınlaw arqalı saqlaw múmkin, yamasa bir neshe komandalardı, mısalı, programmanı kompilyaciyalaw, ornatıw hám isletiw sıyaqlı quramalıraq izbe-izlikti orınlaw ushın birlestiriw múmkin, sóytip komandalıq procedura yaki skript dep atalatuǵın bir birlik dúziwge boladı, onnan keyin onıń ózine komanda sıpatında qatnasıwǵa boladı. Bul artıqmashlıqlar paydalanıwshı quramalı komanda yamasa komandalar izbe-izligin tek bir ret oylap tabıwı kerek degendi ańlatadı, sebebi olardı saqlawǵa boladı, qayta qollanıw ushın.

CLI shell ge berilgen komandalar kóbinese tómendegi formalardıń birinde boladı:

* `doSomething how toFiles`
* `doSomething how sourceFile destinationFile`
* `doSomething how < inputFile > outputFile`
* `doSomething how | doSomething how | doSomething how > outputFile`

Bunda doSomething tásirde feyil, how ráwish (mısalı, komanda tolıq maǵlıwmatlı yamasa tınısh orınlanıwı kerek pe) hám toFiles komanda tásir etiwi kerek bolǵan obekt yamasa obektler (ádette bir yamasa bir neshe fayllar). Úshinshi mısaldaǵı > qayta baǵdarlaw operatorı bolıp, komanda-qatar interpretatorına komandanıń shıǵısın óziniń standart shıǵısına (ekranǵa) emes, atı atalǵan faylǵa jiberiwdi buyıradı. Bul fayldıń ústinen jazadı. >> di qollanıw shıǵıstı qayta baǵdarlaydı hám onı faylǵa qosadı. Basqa qayta baǵdarlaw operatorı - vertikal sızıq (|), ol bir komandanıń shıǵısı kelesi komandanıń kirisine aynalatuǵın qubır dúzedi.

### CLI hám resurslardı qorǵaw
PATH ámeliyat sisteması ózgeriwshisinde payda bolatuǵın jollardı ózgertiw arqalı ashıq komandalar toplamın ózgertiwge boladı. Unix tiykarında komandalar orınlanatuǵın fayllar retinde belgileniwi kerek. Jol ózgeriwshisindegi kataloglar berilgen tártipte izlenedi. Joldı qayta tártiplew arqalı, bir adam standart tártip qarama-qarsı bolǵan jaǵdayda, mısalı, \OS2\E.EXE ornına \OS2\MDOS\E.EXE ni islete aladı. Orınlanıwshı fayllardıń atın ózgertiw de isleydi: adamlar kóbinese ózleriniń súyikli redaktorın EDIT dep qayta ataydı.

Komanda qatarı ashıq komandalardı sheklewge múmkinshilik beredi, mısalı, rawajlanǵan ishki komandalarǵa kiriwdi. Windows CMD.EXE bunı isleydi. Kóbinese, shareware programmaları komandalar diapazonın shekleydi, soraw belgisinen "siziń administratorıńız toplam fayllardı isletiwdi óshirdi" degen komandanı shıǵarıwdı qosqanda.

Tarmaq marshrutizatorlarındaǵılar sıyaqlı geybir CLI lerdiń rejimler ierarxiyası bar bolıp, hárbir rejimde komandalardıń hár qıylı toplamı qollanıladı. Komandalar toplamı qáwipsizlik, sistema, interfeys hám t.b. menen baylanısı boyınsha toplanǵan. Bul sistemalarda paydalanıwshı bir qatar sub-rejimler arqalı ótiwi múmkin. Mısalı, eger CLI de interface hám system dep atalatuǵın eki rejim bolsa, paydalanıwshı interface komandasın interfeys rejimine kiriw ushın qollanıwı múmkin. Bul noqatta, sistema rejiminen komandalar paydalanıwshı interfeys rejiminen shıqpaǵansha hám sistema rejimine kirmegenshe ashıq bolmawı múmkin.

## Derekler

__BÖLİDİMÖNDEMEW__