4 fontos Shell-parancsfájl-típus Linux kezdőknek (Hasznos)

Tartalomjegyzék:

Anonim

Képforrás: pixabay.com

Shell Scripting Linuxban - A számítógépek általában megértik a 0 és az 1 nyelvét, amelyet bináris nyelvként ismernek. Évtizedekkel ezelőtt az emberek programokat és alkalmazásokat írtak, például számológépeket bináris nyelveken. De ez nem volt csinos. Képzeld csak el! Meg akarod számítani a 73 + 96-ot, hogyan írnád? Inkább kiszámítania kellene a 73-as és a 96-os bináris egész számot, majd összeadnia őket. Az embernek elég hülyének kell lennie, hogy ezt megtegye. Inkább a 73-at és a 96-ot számolná egy papírra, és továbblépne. De ez a kisebb résznek szól. Mi van, ha ki kell számítania valamit (19273/23 * (2967 3)). Most azt mondanám, hogy ez elég intenzív.

Tehát egy értelmetlen embernek, aki megtanul mindent kódolni bináris nyelven, nincs értelme. Ez a fő oka annak, hogy a számítógépek nem voltak népszerűek a 70-es és a 80-as években. Később, még a Windows kifejlesztése előtt, az emberek elkezdték a kernelek és hasonló dolgok fejlesztését, amelyek az operációs rendszer alapvető részét képezték. A kernelek felhasználták egy adott program emberi olvasható formátumának megértésére, majd gépi kódra konvertálására. És itt alakultak ki a programozási nyelvek, és megváltoztatta a számítógépes világ teljes korszakát. Az alkalmazásokat C és C ++ formátumban építették fel, majd később a Java, Python, Ruby és Perl segítségével.

Jelenleg több mint 50 programozási nyelv működik a környéken. És ez legalább az, amit tudok. Nem is beszélve arról, hogy vannak más programozási nyelvek, amelyeket még nehezebb megérteni, mint a gépi kód. A dolgom: olyan példák, mint a csirkeprogramozás és a Malbolge. Néhány komoly csúnya dolog, amivel foglalkozni kell.

Héj programozás… .errr… Szkriptek?

Most kíváncsi lehet, hogy miért nem említettem fent a Shell programozást a többi programozási nyelvvel együtt. A fő ok, hogy a Shell maga nem programozási nyelv. Ez egy szkriptnyelv. A Shell csak egy felhasználói végű interaktív program, amely értelmezi a felhasználó bemeneteit, és eredményt ad, feltéve, hogy a parancs érvényes. Ezután átadja a programot a kernelnek annak végrehajtásához. A Shell nem része a Kernelnek, hanem a kernelt használja a fájlok futtatásához és létrehozásához.

A Shell Scripting program típusai

Most, ellentétben a C-vel, a C ++ -al vagy a Java-val, számos más típusú héj is használható a Shell Scriptinghez. Az alábbiakban látható a dátum előtt elérhető négy típusú héj:

Nem.Héj típusaLeírás
1.Bash, más néven Bourne Again ShellEz a leggyakoribb héj az összes Linux és debian alapú rendszeren. Nyílt forráskódú és ingyenes.
2.CSH vagy C ShellEz a Shell szkriptprogram a C programozás shell szintaxisát használja, és szinte hasonló a C-hez.
3.KSH vagy Korn ShellA Korn egy Unix alapú Shell szkriptprogram, amely eredetileg a Bash Shell szkriptáláson alapult. Ez a héj meglehetősen fejlett és magas szintű programozási nyelve.
4.tcshNincs specifikus teljes TCSH forma. Ahogy van. A TCSH a Berkeley Unix C shell továbbfejlesztett változata. Ismét támogatja a C stílus szintaxist

A mai napot illetően nem az összes fenti kagyló érdekel minket. Csak a Bash-kagyló érdekli, mivel ez manapság a leggyakrabban használt héj.

A Bash Shell

A Bash Shell szkriptprogram egy magas szintű szkriptnyelv, hasonlóan a python nyelvéhez. De ha korábban is van tapasztalata a Python-nal, akkor valójában azt fogja tapasztalni, hogy a Bash Shell Scripting sokkal könnyebb, mint bármely más szkriptnyelv. A bash-ban sokkal gyorsabban lehet szkripteket írni, mint a C, C ++, Java vagy Python esetén. Az alapértelmezett terminál a mai legtöbb Linux környezetben, például: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux vagy bármely más debian környezet Bash-t, mint alapértelmezett Shell-t jelent. Ellenőrizheti a rendszerben lévő összes shell környezetet az alábbiak beírásával az alapértelmezett terminálon: -

$ macska / stb / kagyló

(Megjegyzés: Az elején lévő dollárjelet a terminál azonosítására használják.)

A „macska” szintaxis a szöveges fájlok olvasásához. A Linux, Unix vagy Debian környezetben található parancsfájlíró programok típusait a shell fájl tartalmazza az etc könyvtárban. Minden héjnak van saját egyedi szintaxiskészlete és saját beépített funkcióinak halmaza. A DOS-nak vagy a Windows-nak is van saját héja, amelyet a hírhedt „parancssor” -nak vagy a „PowerShell-nek” hívnak, a Windows 8.1-től kezdve, de még mindig nem olyan erős, mint a bash. A macska szintaxisa megadja a rendszerben elérhető héjak listáját, azonban az alapértelmezett héj megtalálásához vagy az aktuális ellenőrzéséhez a héj használatával a következő szintaxist lehet használni a Shell Scripting Terminalban: -

$ echo $ SHELL

Az 'echo' szintaxist bármilyen nyilatkozat kinyomtatásához használjuk. A 'SHELL' itt egy változó, amely hozzá van rendelve az aktuális héj kinyomtatásához. Az „echo” utáni dollárjelet a Shell Scripting változójának ábrázolására használják.

Ajánlott tanfolyamok

  • Tanúsító tanfolyam a Java hibernátumban
  • Java tavaszi tanfolyam
  • WordPress Online képzés
  • Ruby edzés

Shell Scripting

Tehát, most már tudja, mi a héj, vessünk egy pillantást a Shell Scripting-re és miért ismerték azt. A Shell Scripting nem más, mint egy parancssorozat egy egyszerű szöveges fájlban, amely a .sh kiterjesztéssel zárul. A '.sh' azt határozza meg, hogy egy shell végrehajtható fájl. A shell parancsfájl írása után meg kell változtatni a futtatható engedélyt a 'chmod function' használatával. Alapértelmezés szerint az újonnan létrehozott héj nem futtatható a UNIX vagy a Linux környezetben, kivéve ha az engedélyeket kifejezetten megváltoztatják. A Shell Scripting szinte hasonló a Windows Batch programozásához, de a különbség az, hogy a Shell Scripting meglehetősen erősebb és sokkal több csúcskategóriás interaktív környezetet biztosít a lapok kitöltéseivel együtt. Használnia kell egy jó szövegszerkesztőt a parancsfájl szkript írásához. Néhány jobbat ismerek Vimről, Geditről és a Leafpadról.

Más programozási nyelvektől eltérően a Shell szkriptek gyorsabban írhatók és futtathatók. A végrehajtáshoz nem kell letöltenie konkrét kötegeket vagy függőségeket. Nemcsak a rendszergazdák, hanem egy normál személy is használhatja őket automatizált szkriptek napi végrehajtására. Az alábbiakban bemutatjuk az itt írt szkript egyszerű példáját.

#! / bin / bash echo -e “Üdvözöljük az első shell programban. \ n” echo -e “Írj ide valamit, és ez a program ugyanazt fogja kinyomtatni. \ n” #a felhasználó felkérése a bemeneti olvasási bemenetre # a bemenet olvasása a felhasználói visszhangból “You megadva: $ input ” kilépés 0

Most hadd magyarázzam meg a fenti kód összes paraméterét. Mindenekelőtt írja a fenti kódot egy olyan szövegfájlba, ahogyan van, és mentse el egy .sh-vel végződő kiterjesztéssel. Például nevezze a fájlt „main_program.sh” néven. Győződjön meg arról, hogy nem 'main_program.sh.txt'. A legtöbb kezdő általában hajlandó ugyanezt tenni, és akkor ez nem futtatható. A fenti kód másolása után változtassa meg annak engedélyét a következő szintaxissal a terminálon: -

$ chmod + x main_program.sh VAGY $ chmod 755 main_program.sh

Nyugodtan használhatja a fenti parancsok egyikét, mivel mindkettő ugyanazt a műveletet végzi. A modern bash shell szkriptprogramokban a '755' érték '+ x' -re változik; tehát nem számít, melyiket valójában használja. Miután megváltoztatta az engedélyeket, írja be az alábbiakat az érvényesítéshez.

$. / main_program.sh

A periódus és a perjel használatos a shell parancsfájlok azonosításához és végrehajtásához. A fenti szkript végrehajtása után kinyomtatja az első visszhang-nyilatkozatot, majd kéri, hogy írjon be valamit. Miután belépett, ugyanazt kinyomtatja neked, és kilép a tolmácsból. Tehát hadd magyarázzam meg az összes fenti szintaxist. A '!! / Bin / bash' használatával azt mondják a tolmácsnak, hogy ez egy bash szkript és a Bash shell parancsfájl-készítési program a 'bin' könyvtárban található. Az 'echo' paranccsal bármilyen nyilatkozatot kinyomtathatunk, az '-e' jelző pedig arra szolgál, hogy jelezze a héjat, hogy új sor jelenik meg, amelyet 'perjel n vagy \ n' jelöl, vagy a lapon perjel t vagy \ t 'vagy az ehhez hasonló kijelentés. A második sor kivonatrészét egy bash szkript megjegyzésének azonosítására használják. Amit a hash után írsz, kommentálják és nem fogják végrehajtani. De ez nem vonatkozik az első sorban található „#! / Bin / bash” -ra. Így működik a szkript. Az 'read' szintaxist a felhasználó bármilyen bemenete beolvasására használjuk. És az 'input', amelyet már említettem az 'read' szintaxis után, az a változó, amelyben a felhasználó bemenete tárolódik. A bemenet helyett bármilyen változó használható. A második utolsó sorban a $ bemenet arra szolgál, hogy változóként azonosítsa magát, és kiadja a benne tárolt bemenetet. Végül az exit parancs arra szolgál, hogy tiszta kilépési nullával lépjen ki a tolmácsból.

Nem interaktív szkriptek

A fenti példa most nagyon egyszerű. Vannak olyan beépített modulok is, amelyek használhatók ahelyett, hogy minden bemenetet megadnának. Az alábbiakban egy kódrészlet nyomtatja ki a bejelentkezett felhasználónevet, az aktuális időt, a naptári dátumot és a bejelentkezések számát is: -

#! / bin / bash # Ez a szkript kinyomtatja az aktuális bejelentkezett felhasználói információkat, a bejelentkezett felhasználók számát, a dátumot, az időt és a naptárat echo “Hello, $ USER” echo “A mai dátum és idő“ date ”” echo “Bejelentkezett felhasználók száma:` Who | wc-l` ”

echo “Naptár”

cal

kilépés 0

Hajtsa végre a szkriptet a fenti fájl engedélyének megváltoztatása után. Most már azon tűnődhet, hogy az előző szkriptben valóban bevittük a bemenetet, majd a th változó segítségével adta vissza a bemenetet. De itt nem adtunk semmilyen adatot a '$ USER' változóban, akkor miért nyomtatja ki a pontos felhasználót. Ennek fő oka, hogy ezek a dolgok már be vannak állítva a rendszerben. Emlékszel, hogy már korábban az elején elmondtam neked a $ SHELL-ről, hogyan határozza meg alapértelmezés szerint? Igen, hasonló a helyzet itt a $ USER-rel. A dátumot illetően: ha csak a „dátumot” gépel be idézőjelek nélkül a terminálon, akkor kinyomtatja a pontos dátumot és időt. Csak egy idézetet (`) használtam, hogy szintaxisként azonosítsam önmagát, nem pedig a visszhangzó állítás részeként. Az egyetlen idézet (`) végrehajtja a benne nyomtatott szintaxist, legyen az utasításban vagy bárhol másutt. Ami a felhasználók számát illeti, a 'Who' paranccsal ellenőrizhetők az aktuális felhasználók bejelentkezve a bejelentkezett folyamatokkal, valamint az indítás dátuma és időpontja. Ami a fenti parancsot illeti, valójában csonkítottam, hogy csak azt a felhasználót tudjam megadni, amelyet a wc-l paranccsal naplóztak. A sáv (|) vagy néven néven ismert cső két parancs kombinálására szolgál. A cső valójában ennél sokkal többet jelent, de itt nem fogok részletesebben foglalkozni. És végül kinyomtattam a naptárat a beépített 'cal' paranccsal a naptár aktuális dátumának kinyomtatásához.

Az Exit Zero

Az Exit Zero valami olyasmit, amelyet még a fenti írásos programok egyikében sem magyaráztam meg. A fő ok, hogy az „Exit Zero” sokkal súlyosabb, mint bármelyik fenti Shell Scripting szintaxisban. Alapértelmezés szerint, amikor egy parancsfájlt végrehajt egy Linux vagy Unix disztribúcióban, akkor kétféle értéket ad vissza, vagy pontosabban a kilépési állapotot, hogy ellenőrizze, hogy a shell parancsfájl végrehajtása sikeres-e. Ha nulla értékként adja vissza az értéket, akkor a végrehajtás sikeres volt, egyébként vagy nem került végrehajtásra, vagy volt valamilyen hiba a végrehajtás során. Így az „exit 0” beírásával bármely szkript végére ellenőrizhető a szkript végrehajtási állapota.

A dolgok, amiket itt fedeztem fel, a Shell szkriptkészítésének legkevésbé alapvető részét képezik a linux disztribúcióban. A kilépési nulla rész és a cső fontos szerepet játszik a több parancsértelmező parancsfájl végrehajtásakor a linux parancsokban, és a feltételes if és else utasításokkal együtt történő használatakor.

Kapcsolódó cikkek:-

Íme néhány cikk, amely segít részletesebben megismerni a Shell Script típusokat a Linux kezdők számára, ezért csak keresse meg a linket.

  1. Héjas parancsfájlokkal készített interjúkérdések | A 10 legfontosabb hasznos kérdés
  2. Linux vs Windows - Fedezze fel a 9 legfélelmetesebb különbséget
  3. Linux interjúval kapcsolatos kérdések és válaszok Hasznos és a legtöbb kérdés
  4. Karrier a Linux adminisztrációban
  5. A Shell Script paramétereinek szabályai