Käsuinterpretaator

**Käsuinterpretaator** on tekstipõhine käsutöötlusprogramm (kasutajaliides), millega saab juhtida operatsioonisüsteemi. Paljud käsuinterpretaatorid võimaldavad ka programmeerimist tänu piiratud skriptimiskeele toetusele.

Käsuinterpretaatorite näiteid: 
* cmd.exe &ndash; (Windows NT/2000/XP/Vista)
* command.com &ndash; (DOS/Win 9x)
* CCP &ndash; (CP/M)
* DCL &ndash; (VMS/OpenVMS)
* FreeCOM &ndash; (FreeDOS)
* IPython &ndash; Python
* JCL &ndash; (OS/360, z/OS)
* rc Shell &ndash; (Plan 9)
* UNIX:is POSIX.2 standardis määratud Bourne shell (sh) ja sellega ühilduvad käsuinterpretaatorid nagu Bash (*Bourne-Again SHell*). Muud levinud käsuinterpretaatorid on nt csh (C shell), tcsh (TENEX C shell), zsh (Z shell) ja ksh (Korn shell).
* Windows PowerShell – (Windows XP, Windows Server 2003, Windows Vista, Microsoft Exchange Server 2007)
* Windows Recovery Console – (Windows 2000, Windows XP)

## Käsuinterpretaatori mõiste
Käsuinterpretaator oli välja töötatud arvutiprogrammide jaoks, mis interpreteerivad (tõlgendavad) tekstiridade järjekorda, mis kasutaja võib sisestada, ning loevad arvutifailist või teisest andmete voost välja. Interpreteerimise kontekstina võib olla üks antud operatsioonisüsteemidest või programmeerimiskeeltest.

Käsurea interpretaatorid teevad kasutajatele võimalikuks väljuda erinevatest käskudest väga efektiivsel (ja tihti ka mõttetihedal) viisil. Sel juhul peab kasutaja teadma käskude ning nende parameetrite nimesid, ning interpreteeritava programmeerimiskeele süntaksit.

Unix #! ja OS/2 EXTPROC käsud lihtsustavad pakkfailide edastamist välistele protsessoritele. Seda võib teha spetsiifilise protsessori käsu kirjutamisel ettenähtud tarvituseks ning failide pakis asuvate väliste (andmetega) failide töötlemisel.

Paljud graafilised liidesed, näiteks OS/2 Presentation Manager ning Microsoft Windows varased versioonid, kasutavad käsuridu abiprogrammide väljakutsumisel dokumentide ning programmide avamiseks. Käsud säilivad graafilises keskkonnas (inglise keeles *graphical shell*) või sellises failis, nagu register või OS/2 `os2user.ini` fail.

## Varajane ajalugu
Varajased arvutid ei toetanud interaktiivseid sisend- ning väljundseadeid, tihti lootes loogiliste lülitajate (inglise keeles *sense switches*) ning akende (arvutioperaatoriga suhtlemiseks) peale. See oli kohane pakksüsteemidele, mis korraga käitasid ainult ühte programmi, ning tihti töötas ka programmeerija operaatorina. Selle eeliseks olid väikesed lisakulud, kuna lülitajad ning aknad võisid olla testitud ning seatud ühes masina käsus. Hiljem oli lisatud üksik süsteemikonsool operaatori suhtlemiseks süsteemiga.

Alates 1960. aastatest toimus kasutaja suhtlemine arvutitega eelkõige käsuridade liideste abil. Esmalt sellistel masinatel nagu Teletype Model 33 ASR ja hiljem ka varasematel CRTl põhinevatel arvutiterminalidel nagu VT52.

Kõik need vahendid põhinesid puhtalt tekstil, ilma võimaluseta kuvada graafikut või pilti. Äriga seotud rakendusprogrammide jaoks olid kasutatud tekstil põhinevad menüüd, aga üldiseks kasutusliideseks oli käsurida.

1964. aastal viis Louis Pouzin kasutusse mõistet "kest" (*shell*), mis rajanes varasematel ning lihtsamatel CTSS (Compatible Time-Sharing System) vahenditel. Varasematest 1970. aastatest päris operatsioonisüsteem UNIX kohandas võimsa käsurea keskkonna mõistet ning kehtestas ka võimaluse ühe käsu väljundit panna sisendina teise käsu sisse. UNIX oli ka võimeline salvestama ning taaskäivitama käsude ridu nagu "kesta skripte" (*[[shell scripts]]*), mis käitusid nagu tavalised käsud.

Käsurida oli ka peamine liides varasematele arvutitele (Commodore PET, Apple II, BBC Micro), peaaegu alati BASIC interpreteerija vormis.

Käsurida oli esimest korda tõsiselt vaidlustatud PARC GUI meetodiga, mida kasutas 1983. aasta Apple Lisa ning 1984. aasta Apple Macintosh. Enamik IBM PC kasutajaid ei vahetanud nende command.com kesta graafilise kasutajaliidese (GUI) vastu kuni 1995. aastani, mil lasti käiku Windows 95.

## Vaata ka
*Käsurida
*Käsuviip
*Kasutajaliides
*Käsutöötlusprogramm (operatsioonisüsteemi kasutajaliides)