Dacă folosim orice sistem de operare major, interacționăm indirect cu coajă . În timp ce rulăm Ubuntu, Linux Mint sau orice altă distribuție Linux, interacționăm cu shell-ul utilizând terminalul. În acest articol vom discuta despre shell-urile Linux și despre scripturile shell, așa că înainte de a înțelege scripturile shell trebuie să ne familiarizăm cu următoarele terminologii:
- Nucleu
- Coajă
- Terminal
Cuprins
- Ce este Kernel?
- Ce este Shell?
- Shell linie de comandă
- Cochilii grafice
- Ce este un terminal?
- Shell Scripting
Ce este Kernel?
Nucleul este un program de calculator care este nucleul sistemului de operare al unui computer, cu control complet asupra tuturor lucrurilor din sistem. Gestionează următoarele resurse ale sistemului Linux -
- Gestionarea fișierelor
- Administrarea procesului
- management I/O
- Gestionarea memoriei
- Gestionarea dispozitivelor etc.
Este adesea greșit că Linus Torvalds a dezvoltat sistemul de operare Linux, dar, de fapt, el este responsabil doar pentru dezvoltarea nucleului Linux.
Sistem Linux complet = Kernel + GNU utilități de sistem și biblioteci + alte scripturi de management + scripturi de instalare.
Ce este Shell?
Un shell este un program special de utilizator care oferă utilizatorului o interfață pentru a utiliza serviciile sistemului de operare. Shell acceptă comenzi care pot fi citite de oameni de la utilizatori și le convertește în ceva pe care nucleul le poate înțelege. Este un interpret de limbaj de comandă care execută comenzi citite de pe dispozitive de intrare, cum ar fi tastaturi sau din fișiere. Shell-ul începe când utilizatorul se conectează sau pornește terminalul.
diferența dintre $ și $$

Linux Shell
Shell este clasificat în general în două categorii -
- Shell linie de comandă
- Înveliș grafic
Shell linie de comandă
Shell poate fi accesat de utilizatori folosind o interfață de linie de comandă. Un program special numit Terminal în Linux/macOS sau Command Prompt în sistemul de operare Windows este furnizat pentru a introduce comenzile care pot fi citite de om, cum ar fi cat, ls etc. și apoi este executat. Rezultatul este apoi afișat utilizatorului pe terminal. Un terminal din sistemul Ubuntu 16.4 arată astfel -

linia de comandă linux
În captura de ecran de mai sus ls comanda cu -l opțiunea este executată. Acesta va lista toate fișierele din directorul de lucru curent într-un format de listare lungă.
Lucrul cu un shell de linie de comandă este puțin dificil pentru începători, deoarece este greu să memorezi atât de multe comenzi. Este foarte puternic; permite utilizatorilor să stocheze comenzi într-un fișier și să le execute împreună. În acest fel, orice sarcină repetitivă poate fi automatizată cu ușurință. Aceste fișiere sunt de obicei numite fișiere batch în Windows și Coajă Scripturi în sistemele Linux/macOS.
Cochilii grafice
Shell-urile grafice oferă mijloace pentru manipularea programelor bazate pe interfața grafică cu utilizatorul (GUI), permițând operațiuni precum deschiderea, închiderea, mutarea și redimensionarea ferestrelor, precum și comutarea focalizării între ferestre. Sistemul de operare Windows sau Ubuntu poate fi considerat un exemplu bun care oferă utilizatorului GUI pentru a interacționa cu programul. Utilizatorii nu trebuie să introducă comenzi pentru fiecare acțiune. O interfață grafică tipică în sistemul Ubuntu -

GUI Shell
string ti int
Există mai multe shell-uri disponibile pentru sistemele Linux, cum ar fi -
- BASH (Bourne Again SHell) – Este cel mai utilizat shell în sistemele Linux. Este folosit ca shell de conectare implicit în sistemele Linux și în macOS. Poate fi instalat și pe sistemul de operare Windows.
- CSH (C SHell) – Sintaxa shell-ului C și utilizarea sa sunt foarte asemănătoare cu limbajul de programare C.
- KSH (Korn SHell) – Korn Shell a fost, de asemenea, baza pentru specificațiile standard POSIX Shell etc.
Fiecare shell face aceeași treabă, dar înțelege comenzi diferite și oferă diferite funcții încorporate.
Ce este un terminal?
Un program care este responsabil pentru furnizarea unei interfețe unui utilizator, astfel încât acesta să poată accesa shell-ul. Practic, permite utilizatorilor să introducă comenzi și să vadă rezultatul acestor comenzi într-o interfață bazată pe text. Scripturile mari care sunt scrise pentru a automatiza și a efectua sarcini complexe sunt executate în terminal.
excepție personalizată în java
Pentru a accesa terminalul, pur și simplu căutați în terminalul casetei de căutare și faceți dublu clic pe el.
terminal deschis
Aici puteți vedea cum arată terminalul Red Hat Linux.
Terminal
Shell Scripting
De obicei, shell-urile sunt interactive, ceea ce înseamnă că acceptă comenzi ca intrare de la utilizatori și le execută. Cu toate acestea, uneori vrem să executăm o grămadă de comenzi în mod obișnuit, așa că trebuie să introducem toate comenzile de fiecare dată în terminal.
Deoarece un shell poate prelua comenzi ca intrare din fișier, putem scrie aceste comenzi într-un fișier și le putem executa în shell pentru a evita această muncă repetitivă. Aceste fișiere sunt numite Scripturi Shell sau Programe Shell . Scripturile Shell sunt similare cu fișierul batch din MS-DOS. Fiecare script shell este salvat cu `.sh` extensia de fișier de ex., myscript.sh.
Un script shell are sintaxă la fel ca orice alt limbaj de programare. Dacă aveți experiență anterioară cu orice limbaj de programare precum Python, C/C++ etc. Ar fi foarte ușor să începeți cu el.
Un script shell cuprinde următoarele elemente:
- Cuvinte cheie Shell – dacă, altfel, rupe etc.
- Comenzi Shell – cd, ls, echo, pwd, touch etc.
- Funcții
- Flux de control – dacă... atunci... altfel, bucle de case și shell etc.
De ce avem nevoie de scripturi shell?
Există multe motive pentru a scrie scripturi shell:
arian khan
- Pentru a evita munca repetitivă și automatizarea
- Administratorii de sistem folosesc scripturi shell pentru backup-uri de rutină.
- Monitorizarea sistemului
- Adăugarea de noi funcționalități la shell etc.
Câteva avantaje ale scripturilor shell
- Comanda și sintaxa sunt exact aceleași cu cele introduse direct în linia de comandă, astfel încât programatorii nu trebuie să treacă la o sintaxă complet diferită
- Scrierea scripturilor shell este mult mai rapidă
- Pornire rapidă
- Depanare interactivă etc.
Câteva dezavantaje ale scripturilor shell
- Predispusă la erori costisitoare, o singură greșeală poate schimba comanda care ar putea fi dăunătoare.
- Viteză lentă de execuție
- Defecte de proiectare în sintaxa sau implementarea limbajului
- Nu este potrivit pentru sarcini mari și complexe
- Furnizați o structură de date minimă, spre deosebire de alte limbaje de scripting. etc.
Demo simplă de scripting shell folosind Bash Shell
Dacă lucrezi pe un terminal, ceva pe care îl traversezi adânc în directoare. Apoi, pentru a veni câteva directoare în cale, trebuie să executăm o comandă ca aceasta, așa cum se arată mai jos, pentru a ajunge la directorul python:

ajunge la directorul python:
Este destul de frustrant, așa că de ce nu putem avea un utilitar în care trebuie doar să introducem numele directorului și să putem sări direct la el fără a executa cd ../ comanda din nou și din nou. Salvați scriptul ca sari.sh
bash # !/bin/bash # A simple bash script to move up to desired directory level directly function jump() { # original value of Internal Field Separator OLDIFS=$IFS # setting field separator to '/' IFS=/ # converting working path into array of directories in path # eg. /my/path/is/like/this # into [, my, path, is, like, this] path_arr=($PWD) # setting IFS to original value IFS=$OLDIFS local pos=-1 # ${path_arr[@]} gives all the values in path_arr for dir in '${path_arr[@]}' do # find the number of directories to move up to # reach at target directory pos=$[$pos+1] if [ '' = '$dir' ];then # length of the path_arr dir_in_path=${#path_arr[@]} #current working directory cwd=$PWD limit=$[$dir_in_path-$pos-1] for ((i=0; i; i++)) do cwd=$cwd/.. done cd $cwd break fi done }>
Deocamdată, nu putem executa scriptul nostru shell deoarece nu are permisiuni. Trebuie să îl facem executabil tastând următoarea comandă -
$ chmod +x cale/la/nostru/fișier/jump.sh
Acum, pentru a face acest lucru disponibil în fiecare sesiune de terminal, trebuie să îl introducem .bashrc fişier.
.bashrc este un script shell pe care shell-ul Bash îl rulează ori de câte ori este pornit interactiv. Scopul unui fișier .bashrc este de a oferi un loc în care puteți configura variabile, funcții și alias-uri, defini promptul nostru și definiți alte setări pe care dorim să le folosim ori de câte ori deschidem o nouă fereastră de terminal.
Acum deschideți terminalul și tastați următoarea comandă:
Logica propozițională
$ echo source ~/path/to/our/file/jump.sh>> ~/.bashrc
Acum deschideți terminalul și încercați o nouă funcționalitate de salt, tastând următoarea comandă-
$ jump dir_name
la fel ca în captura de ecran de mai jos:

săriți numele_dir
Concluzie
În acest articol, am aflat despre părțile esențiale ale sistemelor Linux: nucleul, care controlează totul, shell-ul, care ne permite să interacționăm cu sistemul de operare și terminalul, interfața noastră pentru a da comenzi. Am explorat linia de comandă și shell-urile grafice, cum ar fi BASH, și am înțeles că terminalul este locul în care introducem comenzile. Articolul a introdus scripturile shell, o modalitate de a automatiza sarcinile folosind scripturi simple și a discutat despre avantajele și dezavantajele utilizării acestora. Un exemplu practic a demonstrat crearea unui script pentru navigarea rapidă în director. În cele din urmă, am văzut cum să facem ca scriptul să funcționeze și să devină accesibil în fiecare sesiune de terminal. Acest articol este un ghid prietenos pentru începători pentru înțelegerea și utilizarea shell-urilor Linux și a scripturilor shell.linux este un limbaj bun, este scris în limbajul Linux