Ha beírja az ls *.c parancsot a terminálba, azonnal megjeleníti az összes .c formátumú fájl listáját. Úgy tűnik, minden már fel van töltve, és arra vár, hogy megkérje, hogy mutassa meg, de a valóságban nem így van.

Ebben a cikkben elmondom, melyik folyamatot hajtja végre a terminál, hogy elérje ezt az eredményt. Mielőtt elmagyaráznám ezt a folyamatot, elmondom, mely részek teszik lehetővé.

Mi is pontosan a héj?

A shell egy olyan szoftver, amely parancsokkal működik. Ezeket a parancsokat a felhasználó szerzi be (ezt szabványos bemenetnek nevezik). A megrendelés beérkezése után a shell végrehajtja a parancsot, és megjeleníti az eredményt a képernyőn.

Mi az a terminál?

A terminál egy grafikus felhasználói felület (GUI), amely lehetővé teszi a héjjal való interakciót. Különféle terminálok vannak; ezen a "linken" megtalálhatja a leggyakrabban használt listát.

Mi a felszólítás?

A prompt az a hely, ahol a felhasználó beírja a parancsait (ahol a shell megkapja a szabványos bemenetet). A prompt olyan információkat jelenít meg, mint a bejelentkezett felhasználó és a gazdagép, amelyhez a felhasználó csatlakozik; ez a kettő azért különböztethető meg, mert egy „@” választja el őket, a felhasználó a „@” előtt, a gazdagép pedig utána jön.

Ez az információ alapértelmezés szerint megjelenik (bár módosíthatja), és a kurzor annak a szövegsornak a végén található, ahová beszúrja az utasításokat.

Változók

A változó egy karakterlánc, amely adatokat tartalmaz. Lehet szám, szó, fájlnév vagy egyéb adat. Először a változó nevét írjuk, az egyenlőségjel után a tartalmat

A változót úgy is felfoghatjuk, mint a benne tárolt információkkal való kapcsolatot, így egyszerűbben hivatkozhatunk rá.

PS1 változó

A PS1 egy változó, amelyet a shell a prompt ábrázolására használ, ami azt jelenti, hogy a számítógépet használó felhasználó és a kapcsolódva állomás neve ebben a változóban van tárolva.

Mi az a parancs?

A parancs egy parancs, amelyet a felhasználó ad ki a számítógépnek egy adott feladat elvégzésére.

A parancsokat általában úgy adják ki, hogy beírják azokat a terminálba, majd megnyomják az ENTER billentyűt, aminek hatására a shell feldolgozza a rendelést, és megjeleníti az eredményt a képernyőn.

A shell előre meghatározott parancsokkal rendelkezik, amelyeket beépített parancsoknak nevezünk. Ebben a helyzetben az „ls” paranccsal megjelenítheti az összes fájlt a megadott könyvtárban; ha nem ad meg könyvtárat, akkor abban a könyvtárban jeleníti meg a fájlokat, amelyben éppen tartózkodik.

Álnév

Az alias parancs hasonló a változóhoz, mivel más parancsokat tárol, beleértve az általuk használt paramétereket, argumentumokat és átirányításokat.

Az álnév lehetővé teszi, hogy egyszerű neveket generáljon bizonyos parancsokhoz. Kényelmes, ha bonyolultságuk miatt meglehetősen hosszú utasításokat kell használnia; nagyon munkaigényes (nem beszélve az időigényesről) minden alkalommal begépelni őket; az álnevekkel rövid neveket kínálhat, akár egy betűt is.

Speciális karakterek vagy helyettesítő karakterek

Hosszú fájlnév vagy hosszú fájlnevek bevitele helyett a helyettesítő karakterrel szórészeket adhat meg. A kiválasztott helyettesítő karaktertől függően gondoskodik a hiányzó karakterek beszerzéséről a név, kifejezés vagy szám kiegészítéséhez.

Példánkban a „*” helyettesítő karaktert használjuk, hogy megkapjuk a megadott mintával való bármilyen egyezést. Ha nincs megadva karakterminta, akkor a könyvtárban lévő összes fájlt megkapja. További helyettesítő karakterekért kövesse ezt a "linket".

Terjeszkedés

Egyszerűen fogalmazva, amikor bővítést használunk, akkor beírunk valamit, ami valami mássá bővül (könyvtár, fájl stb.), még mielőtt a shell bármit is csinálna vele.

Ebben a helyzetben a shell a „.c” formátumot használja a „*” kibontására a fájlnevekben az aktuális munkakönyvtárban.

Amikor megnyomjuk az enter billentyűt, a shell azonnal kibontja a megfelelő karaktereket a könyvtárban, mielőtt végrehajtaná az ls parancsot. Így az ls parancs nem a „*” helyettesítő karakterrel működik, hanem a keresés eredményével.

PÁLYA

A PATH egy változó, amely megőrzi az információkat azokról a könyvtárakról, amelyekben a shell futtatható fájlokat keres, a könyvtárakat „:” választja el. Ha használni szeretne egy programot, nem kell megadnia a könyvtárát; ehelyett egyszerűen beírja a nevét, és a shell futtatja.

Hogyan működik a PATH?

Amikor a felhasználó beír egy parancsot a terminálba, a shell megkeresi azt a könyvtárat, ahol a parancs található, és végrehajtja azt; ha a parancsot tartalmazó könyvtár szerepel a PATH-ban, akkor a shell minden, a PATH-ban elmentett könyvtárat keres, és amint megtalálta, végrehajtja a fájlt.

Ha nem szerepel a PATH-ban, akkor jeleznie kell a shell-nek azt a könyvtárat, ahol a fájl található; ellenkező esetben nem tudja végrehajtani, mert nem található.

Mi történik a kagylóban a színfalak mögött

A folyamatban részt vevő összes rész ismerete segíthet lépésről lépésre megérteni, mi történik.

1 – Megadjuk a shell szabványos bemenetét, ebben a példában az „ls *.c”, és megnyomjuk az enter billentyűt.

2 — A shell kiértékeli az általunk szolgáltatott adatokat.

3 – A „*” helyettesítő karakterrel kezdődik, bontsa ki, és keresse meg az aktuális könyvtárban a „.c” kiterjesztésű fájlokat.

4. A „.c” formátumú fájlok beszerzése után adja meg az adatokat az „ls” parancsnak, de először ellenőrizze, hogy az „ls” álnév-e (ha igen, folytassa a 6. lépéssel); ellenkező esetben folytassa a következő lépéssel.

5 – Ha az „ls” nem álnév, ellenőrizze, hogy beépített parancs-e.

6 – Keresse meg az „ls” parancsot a PATH összes mappájában.

7 – Amikor észleli az „ls” parancsot, a funkcióját minden olyan fájlon futtatja, amely megfelel a helyettesítő karakterek eredményeinek.

8 – A shell megjeleníti a képernyőn az összes „.c” kiterjesztésű fájl ábécé szerinti listáját.

9 – A parancs végrehajtása után a shell ismét megjeleníti a promptot a PS1 változó használatával.