Hvis vi bruger et større operativsystem, interagerer vi indirekte med skal . Mens vi kører Ubuntu, Linux Mint eller enhver anden Linux-distribution, interagerer vi med skallen ved at bruge terminalen. I denne artikel vil vi diskutere Linux-skaller og shell-scripting, så før vi forstår shell-scripting, er vi nødt til at blive fortrolige med følgende terminologier:
- Kernel
- Skal
- Terminal
Indholdsfortegnelse
- Hvad er Kernel?
- Hvad er Shell?
- Kommandolinje Shell
- Grafiske skaller
- Hvad er en terminal?
- Shell Scripting
Hvad er Kernel?
Kernen er et computerprogram, der er kernen i en computers operativsystem, med fuldstændig kontrol over alt i systemet. Det administrerer følgende ressourcer i Linux-systemet -
- Filhåndtering
- Procesledelse
- I/O-styring
- Hukommelseshåndtering
- Enhedshåndtering osv.
Det tager ofte fejl, at Linus Torvalds har udviklet Linux OS, men faktisk er han kun ansvarlig for udviklingen af Linux-kernen.
Komplet Linux-system = Kernel + GNU systemværktøjer og biblioteker + andre administrationsscripts + installationsscripts.
Hvad er Shell?
En shell er et specielt brugerprogram, der giver brugeren en grænseflade til at bruge operativsystemtjenester. Shell accepterer menneskelæselige kommandoer fra brugere og konverterer dem til noget, som kernen kan forstå. Det er en kommandosprogsfortolker, der udfører kommandoer læst fra inputenheder såsom tastaturer eller fra filer. Skallen starter, når brugeren logger på eller starter terminalen.
Sree Ramanujan

Linux Shell
Shell er bredt klassificeret i to kategorier –
- Kommandolinje Shell
- Grafisk skal
Kommandolinje Shell
Shell kan tilgås af brugere ved hjælp af en kommandolinjegrænseflade. Et særligt program kaldet Terminal i Linux/macOS eller Kommandoprompt i Windows OS er tilvejebragt til at indtaste de menneskeligt læsbare kommandoer såsom cat, ls osv., og derefter udføres det. Resultatet vises derefter på terminalen for brugeren. En terminal i Ubuntu 16.4-systemet ser sådan ud -

linux kommandolinje
I ovenstående skærmbillede ls kommando med -l option udføres. Det vil vise alle filerne i den aktuelle arbejdsmappe i et langt listeformat.
At arbejde med en kommandolinjeskal er lidt svært for begyndere, fordi det er svært at huske så mange kommandoer. Den er meget kraftfuld; det giver brugerne mulighed for at gemme kommandoer i en fil og udføre dem sammen. På denne måde kan enhver gentagne opgave nemt automatiseres. Disse filer kaldes normalt batch-filer i Windows og Skal Scripts i Linux/macOS-systemer.
Grafiske skaller
Grafiske skaller giver midler til at manipulere programmer baseret på den grafiske brugergrænseflade (GUI) ved at tillade operationer såsom at åbne, lukke, flytte og ændre størrelse på vinduer, samt skifte fokus mellem vinduer. Window OS eller Ubuntu OS kan betragtes som et godt eksempel, der giver GUI til brugeren til at interagere med programmet. Brugere behøver ikke at indtaste kommandoer for hver handling. En typisk GUI i Ubuntu-systemet –

GUI Shell
primtal java
Der er flere skaller tilgængelige til Linux-systemer som -
- BASH (Bourne Again SHell) – Det er den mest udbredte shell i Linux-systemer. Det bruges som standard login-shell i Linux-systemer og i macOS. Det kan også installeres på Windows OS.
- CSH (C SHell) - C-skallens syntaks og dens brug er meget lig C-programmeringssproget.
- KSH (Korn SHell) – Korn Shell var også basen for POSIX Shell standard specifikationer osv.
Hver shell udfører det samme job, men forstår forskellige kommandoer og giver forskellige indbyggede funktioner.
Hvad er en terminal?
Et program, der er ansvarlig for at give en brugergrænseflade, så han/hun kan få adgang til skallen. Det giver grundlæggende brugere mulighed for at indtaste kommandoer og se outputtet af disse kommandoer i en tekstbaseret grænseflade. Store scripts, der er skrevet for at automatisere og udføre komplekse opgaver, udføres i terminalen.
dynamisk array i java
For at få adgang til terminalen skal du blot søge i søgefeltets terminal og dobbeltklikke på den.
åben terminal
Her kan du se, hvordan terminalen ser ud på Red Hat Linux.
terminal
Shell Scripting
Normalt er skaller interaktive, hvilket betyder, at de accepterer kommandoer som input fra brugere og udfører dem. Men nogle gange ønsker vi at udføre en masse kommandoer rutinemæssigt, så vi skal indtaste alle kommandoer hver gang i terminalen.
Da en shell også kan tage kommandoer som input fra fil, kan vi skrive disse kommandoer i en fil og kan udføre dem i shell for at undgå dette gentagne arbejde. Disse filer kaldes Shell Scripts eller Shell programmer . Shell-scripts ligner batchfilen i MS-DOS. Hvert shell-script gemmes med `.sh` filtypenavn, f.eks. myscript.sh.
Et shell-script har syntaks ligesom ethvert andet programmeringssprog. Hvis du har nogen tidligere erfaring med et hvilket som helst programmeringssprog som Python, C/C++ osv. Det ville være meget nemt at komme i gang med det.
Et shell-script består af følgende elementer –
- Shell Nøgleord – hvis, andet, pause osv.
- Shell-kommandoer – cd, ls, echo, pwd, touch osv.
- Funktioner
- Styr flow – hvis..så..andet, kasse- og skalløkker mm.
Hvorfor har vi brug for shell-scripts?
Der er mange grunde til at skrive shell-scripts:
eksempler på dfa automater
- For at undgå gentagende arbejde og automatisering
- Systemadministratorer bruger shell-scripting til rutinemæssige sikkerhedskopier.
- Systemovervågning
- Tilføjelse af ny funktionalitet til skallen osv.
Nogle fordele ved shell-scripts
- Kommandoen og syntaksen er nøjagtig de samme som dem, der er indtastet direkte på kommandolinjen, så programmører behøver ikke at skifte til en helt anden syntaks
- At skrive shell-scripts er meget hurtigere
- Hurtig start
- Interaktiv debugging osv.
Nogle ulemper ved shell-scripts
- Udsat for dyre fejl, kan en enkelt fejl ændre kommandoen, som kan være skadelig.
- Langsom udførelseshastighed
- Designfejl inden for sprogsyntaksen eller implementeringen
- Ikke velegnet til store og komplekse opgaver
- Giv minimal datastruktur i modsætning til andre scriptsprog. etc.
Simpel demo af shell-scripting ved hjælp af Bash Shell
Hvis du arbejder på en terminal, er det noget, du krydser dybt nede i mapper. Så for at komme nogle få mapper op i stien skal vi udføre en kommando som denne som vist nedenfor for at komme til python-mappen:

komme til python-biblioteket:
Det er ret frustrerende, så hvorfor ikke vi kan have et hjælpeprogram, hvor vi bare skal skrive navnet på mappen, og vi kan hoppe direkte til det uden at udføre cd../ kommando igen og igen. Gem scriptet som jump.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 }>
For nu kan vi ikke udføre vores shell-script, fordi det ikke har tilladelser. Vi skal gøre det eksekverbart ved at skrive følgende kommando -
$ chmod +x sti/til/vores/fil/jump.sh
For nu at gøre dette tilgængeligt på hver terminalsession, er vi nødt til at sætte dette ind .bashrc fil.
.bashrc er et shell-script, som Bash shell kører, når det startes interaktivt. Formålet med en .bashrc-fil er at give et sted, hvor du kan opsætte variabler, funktioner og aliaser, definere vores prompt og definere andre indstillinger, som vi ønsker at bruge, hver gang vi åbner et nyt terminalvindue.
Åbn nu terminalen og skriv følgende kommando:
forespørgselsvælger
$ echo source ~/path/to/our/file/jump.sh>> ~/.bashrc
Åbn nu din terminal og prøv ny jump-funktionalitet ved at skrive følgende kommando-
$ hoppe dir_name
ligesom nedenstående skærmbillede:

hoppe dir_name
Konklusion
I denne artikel lærte vi om de væsentlige dele af Linux-systemer: kernen, der styrer alt, skallen, som lader os interagere med operativsystemet, og terminalen, vores grænseflade til at give kommandoer. Vi udforskede kommandolinje og grafiske skaller, som BASH, og forstod, at terminalen er der, hvor vi indtaster vores kommandoer. Artiklen introducerede shell scripting, en måde at automatisere opgaver ved hjælp af simple scripts, og diskuterede fordele og ulemper ved at bruge dem. Et praktisk eksempel demonstrerede oprettelse af et script til hurtig mappenavigation. Endelig så vi, hvordan man får scriptet til at fungere og bliver tilgængeligt i hver terminalsession. Denne artikel er en begyndervenlig guide til at forstå og bruge Linux-skaller og shell-scripting.linux er et godt sprog, det er skrevet på linux-sprog