Un shell de comandă ( CLI pentru interpretul de linie de comandă în limba engleză) este un sistem software care face parte din componentele de bază ale unui sistem de operare . Funcția sa este de a interpreta de comenzi pe care un utilizator de pe tastatură în interfață linie de comandă .
Primele sisteme capabile să interpreteze liniile de comandă au apărut la începutul anilor 1960 , alături de tastatura computerului . Anterior, computerele erau utilizate doar în procesarea în serie .
Sub DOS , indiferent de versiune ( MS-DOS , FreeDOS , DR-DOS , PC-DOS ...), există un interpret numit COMMAND . Există, de asemenea, 4DOS (sau versiunea Norton NDOS) un interpret mai avansat, dar care consumă mult mai multă memorie.
Interpretul de comandă este pornit de executabil COMMAND.COMsau cmd.exedin Windows NT . Până la Windows 3.x , Windows a fost doar o interfață grafică pentru DOS, dar a început să ofere mai multe funcționalități decât a oferit-o din Windows 95 . Familia Windows NT , până la Windows XP, care este versiunea 5.1, renunță aproape complet la linia de comandă, iar promptul de comandă pe care îl oferă este utilizat în esență ca un emulator restricționat de comenzi DOS .
De cand 24 martie 2009, un al treilea interpret de comenzi a fost dezvoltat de Microsoft: PowerShell 1.0 este distribuit ca o actualizare software opțională de către serviciul Windows Update din Windows XP și Vista . Este integrat nativ în versiunea 2.0 în Windows 7 .
Pe UNIX , linia de comandă a fost întotdeauna mijlocul preferat de comunicare cu computerul. Bourne shell ( sh ) este interpretul original al UNIX mediu . La vremea sa, marea sa originalitate a fost utilizarea tuburilor (caracterul "|"), care permit conectarea ieșirii unei comenzi la intrarea alteia. Putem astfel scrie comenzi complexe din comenzi simple.
GNU / Linux , familia BSD și alte derivate UNIX au moștenit această particularitate, deși au și interfețe grafice complete (în special X Window și Xorg ).
Printre aceste derivate, macOS este prezentat ca un mediu în primul rând grafic, dar are un interpret de comenzi ( tcsh , bash sau zsh ) care este activat din utilitarul Terminal .
Dacă utilizatorul dorește, limbajele de scriptare precum Perl , Python sau Ruby pot înlocui unele funcționalități ale procesorului de linie de comandă, de exemplu manipularea expresiilor regulate.
Dependența interpretilor de comenzile externe face ca scripturile să nu fie foarte portabile, chiar dacă interpretii înșiși au fost transportați în alte medii decât mediul lor original UNIX.
Dacă astăzi, tot mai multe dispozitive de rețea oferă o interfață de administrare grafică prin intermediul paginilor web, primele interfețe utilizator pentru acest tip de dispozitive au fost interfețele de linie de comandă.
Vom cita cazul echipamentelor Cisco și CLI integrate în sistemul de operare IOS , care rămâne o referință CLI ( Cisco Like Interface pentru cei care sunt inspirați de acesta).
Solicitarea este cea mai simplă interfață pentru a crea și păstrează multe avantaje față de mediile grafice :
Multe servere pot fi administrate numai din linia de comandă, deoarece există puține motive pentru a avea nevoie de o interfață grafică pe un server, o interfață care ar putea fi o sursă de defecțiuni și a cărei telecomandă este mai dificilă. Excepție de Windows în care se impune interfața grafică, chiar dacă serverul nu are ecran, precum și multe utilitare precum Media Player. Rețineți totuși aspectul unei versiuni Core Server a MS 2008 Server , o versiune în care interfața grafică nu este instalată, controlul făcându-se în modul linie de comandă în limbajul de proprietate al Microsoft PowerShell sau prin intermediul consolelor de management Microsoft.
În utilizarea zilnică de birou, administratorii de fișiere grafice și alte meniuri de lansare a aplicațiilor tind să înlocuiască interpretul oferind o alternativă mai ușor de utilizat. Cu toate acestea, interpretul rămâne cel mai versatil instrument, încă de neînlocuit pentru anumite sarcini. Astfel, interpretul și software-ul utilitar în modul grafic sunt complementare în orice utilizare extinsă a instrumentului computerizat.
În programarea Windows , funcțiile exportate de Explorer sunt numite și funcții shell (sau shell API ) . De exemplu, funcția se ocupă de gestionarea fișierelor (copiere, mutare, ștergere etc.) SHFileOperation()
Sarcina oricărui interpret de comandă poate fi rezumată în următorul algoritm foarte simplu:
TANT QUE l'utilisateur ne ferme pas la session FAIRE # Émettre un signe d'invite (prompt) # Lire la ligne courante # Exécuter la commande indiquée sur cette ligne FINDe fapt, în registrul Windows, foarte multe programe sunt considerate interpreti.
O sesiune cu interpretul tcsh:
[ske:~] ske% cd /usr/ [ske:/usr] ske% ls bin lib local share include libexec sbin standalone [ske:/usr] ske% top [ske:/usr] ske% cd /tmp [ske:/tmp] ske% ls -l total 152 -rw-r--r-- 1 ske admin 68328 15 Apr 10:54 93633C68062E855100FCE70A -rw-r--r-- 1 ske admin 0 19 Apr 09:28 cs_cache_lock_501 -rw-r--r-- 1 root admin 644 23 Apr 09:05 mcx_compositor drwxr-xr-x 3 ske admin 102 19 Apr 11:39 pb-man -rw-r--r-- 1 ske admin 74 15 Apr 10:54 reload-stub.s srwxrw-rw- 1 root admin 0 23 Apr 09:04 slp_ipc [ske:/tmp] ske% echo Hello World >test.tmp [ske:/tmp] ske% cat test.tmp Hello World [ske:/tmp] ske% rm test.tmp [ske:/tmp] ske%