Om vi använder något större operativsystem interagerar vi indirekt med skal . När vi kör Ubuntu, Linux Mint eller någon annan Linux-distribution interagerar vi med skalet genom att använda terminalen. I den här artikeln kommer vi att diskutera Linux-skal och skalskript, så innan vi förstår skalskript måste vi bekanta oss med följande terminologier:
- Kärna
- Skal
- Terminal
Innehållsförteckning
Vad är Kernel?
Kärnan är ett datorprogram som är kärnan i en dators operativsystem, med fullständig kontroll över allt i systemet. Den hanterar följande resurser i Linux-systemet –
- Filhantering
- Processledning
- I/O-hantering
- Minneshantering
- Enhetshantering etc.
Det är ofta felaktigt att Linus Torvalds har utvecklat Linux OS, men egentligen är han bara ansvarig för utvecklingen av Linux-kärnan.
Komplett Linux-system = Kernel + GNU systemverktyg och bibliotek + andra hanteringsskript + installationsskript.
Vad är Shell?
Ett skal är ett speciellt användarprogram som tillhandahåller ett gränssnitt för användaren att använda operativsystemtjänster. Shell accepterar läsbara kommandon från användare och konverterar dem till något som kärnan kan förstå. Det är en kommandospråkstolk som utför kommandon som läses från indataenheter som tangentbord eller från filer. Skalet startar när användaren loggar in eller startar terminalen.
hög sort

Linux-skal
Shell klassificeras i stora drag i två kategorier –
- Kommandoradsskal
- Grafiskt skal
Kommandoradsskal
Shell kan nås av användare med hjälp av ett kommandoradsgränssnitt. Ett speciellt program som heter Terminal i Linux/macOS, eller Kommandotolken i Windows OS tillhandahålls för att skriva in de mänskliga läsbara kommandona som cat, ls etc. och sedan körs det. Resultatet visas sedan på terminalen för användaren. En terminal i Ubuntu 16.4-systemet ser ut så här -

linux kommandorad
I skärmdumpen ovan ls kommando med -l alternativet exekveras. Det kommer att lista alla filer i den aktuella arbetskatalogen i ett långt listformat.
Att arbeta med ett kommandoradsskal är lite svårt för nybörjare eftersom det är svårt att memorera så många kommandon. Den är mycket kraftfull; det tillåter användare att lagra kommandon i en fil och köra dem tillsammans. På så sätt kan alla repetitiva uppgifter enkelt automatiseras. Dessa filer kallas vanligtvis batchfiler i Windows och Skal Skript i Linux/macOS-system.
Grafiska skal
Grafiska skal tillhandahåller medel för att manipulera program baserade på det grafiska användargränssnittet (GUI), genom att tillåta operationer som att öppna, stänga, flytta och ändra storlek på fönster, samt byta fokus mellan fönster. Window OS eller Ubuntu OS kan betraktas som ett bra exempel som ger användaren GUI för att interagera med programmet. Användare behöver inte skriva in kommandon för varje åtgärd. Ett typiskt gränssnitt i Ubuntu-systemet –

GUI-skal
java har nästa
Det finns flera skal tillgängliga för Linux-system som -
- BASH (Bourne Again SHell) – Det är det mest använda skalet i Linux-system. Det används som standardinloggningsskal i Linux-system och i macOS. Det kan också installeras på Windows OS.
- CSH (C SHell) – C-skalets syntax och dess användning är mycket lik programmeringsspråket C.
- KSH (Korn SHell) – Korn Shell var också basen för POSIX Shell standardspecifikationer etc.
Varje skal gör samma jobb men förstår olika kommandon och ger olika inbyggda funktioner.
Vad är en terminal?
Ett program som ansvarar för att tillhandahålla ett gränssnitt till en användare så att han/hon kan komma åt skalet. Det tillåter i princip användare att ange kommandon och se resultatet av dessa kommandon i ett textbaserat gränssnitt. Stora skript som är skrivna för att automatisera och utföra komplexa uppgifter exekveras i terminalen.
För att komma åt terminalen, sök helt enkelt i sökrutan terminal och dubbelklicka på den.
öppen terminal
Här kan du se hur terminalen ser ut på Red Hat Linux.
sträng till boolesk java
terminal
Skalskript
Vanligtvis är skalen interaktiva, vilket innebär att de accepterar kommandon som input från användare och kör dem. Men ibland vill vi köra ett gäng kommandon rutinmässigt, så vi måste skriva in alla kommandon varje gång i terminalen.
Eftersom ett skal också kan ta kommandon som indata från fil, kan vi skriva dessa kommandon i en fil och kan köra dem i skal för att undvika detta repetitiva arbete. Dessa filer kallas Skalskript eller Shell-program . Skalskript liknar batchfilen i MS-DOS. Varje skalskript sparas med `.sh` filtillägg, t.ex. myscript.sh.
Ett skalskript har syntax precis som alla andra programmeringsspråk. Om du har någon tidigare erfarenhet av något programmeringsspråk som Python, C/C++ etc. Det skulle vara väldigt enkelt att komma igång med det.
få aktuellt datum i java
Ett skalskript består av följande element –
- Shell Nyckelord – om, annars, bryta etc.
- Skalkommandon – cd, ls, echo, pwd, touch etc.
- Funktioner
- Styr flöde – om..då..annat, fodral och skalslingor mm.
Varför behöver vi skalskript?
Det finns många anledningar till att skriva skalskript:
- För att undvika repetitivt arbete och automatisering
- Systemadministratörer använder skalskript för rutinmässiga säkerhetskopieringar.
- Systemövervakning
- Lägger till ny funktionalitet i skalet etc.
Några fördelar med skalskript
- Kommandot och syntaxen är exakt samma som de som anges direkt på kommandoraden, så programmerare behöver inte byta till en helt annan syntax
- Att skriva skalskript går mycket snabbare
- Snabbstart
- Interaktiv felsökning etc.
Några nackdelar med skalskript
- Utsatt för kostsamma fel kan ett enda misstag ändra kommandot vilket kan vara skadligt.
- Långsam exekveringshastighet
- Designfel inom språksyntaxen eller implementeringen
- Inte väl lämpad för stora och komplexa uppgifter
- Ge minimal datastruktur till skillnad från andra skriptspråk. etc.
Enkel demo av skalskript med Bash Shell
Om du arbetar på en terminal, något du går igenom djupt ner i kataloger. Sedan för att komma några kataloger upp i sökvägen måste vi köra ett kommando som detta som visas nedan för att komma till python-katalogen:

komma till pythonkatalogen:
Det är ganska frustrerande, så varför inte kan vi ha ett verktyg där vi bara måste skriva in namnet på katalogen och vi kan direkt hoppa till det utan att köra CD ../ kommandot om och om igen. Spara skriptet som jump.sh
våldsamt slag # !/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 }>
För närvarande kan vi inte köra vårt skalskript eftersom det inte har behörighet. Vi måste göra det körbart genom att skriva följande kommando -
$ chmod +x sökväg/till/vår/fil/jump.sh
Nu för att göra detta tillgängligt på varje terminalsession måste vi lägga in detta .bashrc fil.
.bashrc är ett skalskript som Bash shell kör när det startas interaktivt. Syftet med en .bashrc-fil är att tillhandahålla en plats där du kan ställa in variabler, funktioner och alias, definiera vår prompt och definiera andra inställningar som vi vill använda när vi öppnar ett nytt terminalfönster.
Öppna nu terminalen och skriv följande kommando:
Freddie Mercury född
$ ekokälla ~/path/to/our/file/jump.sh>> ~/.bashrc
Öppna nu din terminal och prova nya hoppfunktioner genom att skriva följande kommando-
$ hoppa dir_name
precis som skärmdumpen nedan:

hoppa dir_name
Slutsats
I den här artikeln lärde vi oss om de väsentliga delarna av Linux-system: kärnan, som styr allt, skalet, som låter oss interagera med operativsystemet, och terminalen, vårt gränssnitt för att ge kommandon. Vi utforskade kommandoraden och grafiska skal, som BASH, och förstod att terminalen är där vi skriver in våra kommandon. Artikeln introducerade skalskript, ett sätt att automatisera uppgifter med enkla skript, och diskuterade fördelarna och nackdelarna med att använda dem. Ett praktiskt exempel visade att man skapade ett skript för snabb katalognavigering. Slutligen såg vi hur man får skriptet att fungera och bli tillgängligt i varje terminalsession. Den här artikeln är en nybörjarvänlig guide för att förstå och använda Linux-skal och skal scripting.linux är ett bra språk det är skrivet på linux-språket