A source egy praktikus beépített shell-parancs, amely elfogadja az argumentumokat, elemzi a parancsokat egy parancsfájlban, és végrehajtja azokat a shell környezetben. A fájl tartalmát forrásonként beolvassa, majd továbbítja a Tool Command Language (TCL) értelmezőhöz, amely végrehajtja a parancsokat.
Tanuljuk meg, hogyan lehet a forráskódot parancsok végrehajtására és shell-környezetekkel dolgozni Linuxon, valamint röviden elmagyarázzuk, miben különbözik a bash parancstól.
Használja a forrást a parancsok végrehajtásához egy fájlban
A forrás parancs használatához először létre kell hoznia egy mintafájlt, és fel kell töltenie néhány shell-parancsot. Kezdje azzal, hogy hozzon létre egy új fájlt a az érintés parancsot. Nyissa meg a fájlt egy választott szövegszerkesztőben, és írjon néhány alapvető shell-parancsot.
érintésteszt.txt
viteszt.txt# Írja be a parancsokat a szöveges fájlba:
visszhang "Helló!"
pwd
ls
# A fájl forrása forrás vagy pont szintaxissal
. teszt.txt
forrásszöveg.txt
Írja ki a szövegfájlt, és adja át argumentumként a forrás parancsnak. A rendszer végrehajtja a fájlban lévő parancsokat, és egy kimenetet ad vissza.
Most, hogy ismeri a forráskód használatának alapjait, próbáljuk meg megváltoztatni a Bash shell környezetet. Mielőtt azonban továbblépne, alapvető ismeretekkel kell rendelkeznie környezeti változók Linuxban.
A Bash Shell környezet frissítéséhez használja a forrásparancsot
Linuxon a környezeti változók öröklődnek, de megváltoztathatatlanok. Ha olyan Bash shell szkriptet hajt végre, amely módosítja a $TEST környezeti változót, a szkript egy új, forked shell folyamat, és a $TEST módosítása fog megtörténni benne az eredeti Bash helyett környezet.
A gyermekfolyamat nem tudja módosítani a szülőfolyamat környezetét. Csak a saját környezetét tudja módosítani. Értsük meg ezt egy gyakorlati példával:
export TESZT="deb"
vi példa# Írja be ezeket a parancsokat a fájlba
export TESZT="ágy"
visszhang $TESZT
# Írja ki a fájlt, tegye végrehajthatóvá, majd futtassa
chmod +x példa
./példa # ez visszaadja az "ágyat"
visszhang $TESZT # ez a "deb" kifejezést adja vissza
Itt lép életbe a forrás parancs. A forrás paranccsal végrehajthat egy parancsfájlt ugyanabban a shell-környezetben, amely egyébként elágazva lett volna. Tehát, ha olyan szkriptet szerez be, amely módosítja a környezeti változókat, az elvégzi a módosításokat a Bash shell környezet számára.
A teszteléshez írja be a fenti kódmezőbe a parancsokat egy új fájlba, és használja a forrás parancsot ahelyett, hogy végrehajthatóvá tenné.
# Hozzon létre egy új fájlt, és szerkessze
vi teszt fájlt
. teszt_fájl
visszhang $TESZT # Ez visszaadja az "ágyat"
Mint látható, a forrás paranccsal frissíteni tudta a szülőfolyamat környezeti változóit. Ez a forrásparancs elsődleges használati esete, azaz a szülőkörnyezet módosítása.
Ez az összes lépés, amelyet a Bash shell-környezet forrásparanccsal történő frissítéséhez kell végrehajtania.
Különbség a Linux bash és a forrásparancsok között
A különbség a Linux bash és a forrásparancsok között az, hogy amikor a bash paranccsal futtatsz egy szkriptet, az megmondja a Linuxnak kernel, hogy hozzon létre egy új Bash-folyamatot a szkript olvasásához és végrehajtásához, másolja a kimenetet az eredeti shell-folyamatba, és jelenítse meg.
De a forrás parancs az beépített héj amely beolvas és kiértékel egy fájlt az aktuális shell folyamaton belül. Tehát a szkript által végrehajtott összes módosítás megmarad a Bash shellben.
A forrás parancshibáinak elhárítása
Egyes Linux rendszereken előfordulhat, hogy "forrás nem található" hibaüzenetet kap a forrás parancs használata közben. Ezt a hibát kétféleképpen javíthatja ki:
1. Változtassa meg a Shell-t
Egyes parancsértelmezők nem támogatják a forrás parancsot. Ebben az esetben módosítania kell a shell környezetét a chsh -s ($mely shell_name) parancs.
Ezután indítsa el az új terminált megváltoztatja a héját, és próbálja meg a source parancsot használni. Ha az új héj támogatja a beszerzést, akkor hibátlanul kell működnie.
2. Használja a pont/pont szintaxist
Egyes shell-környezetek nem támogatják a "forrás"szintaxis, de az alternatíva"." szintaxis. A "forrás" szintaxis a pont szinonimája a Bashban. De ez nem működik a POSIX shellben, ezért a maximális kompatibilitás érdekében használja a pont szintaxist.
Alapvető Linux-parancsok, amelyeket tudnia kell
A Linux shell parancsok nagyszerű módja annak, hogy a terminál használatával interakcióba lépjen a rendszerrel. Ezek jelentik a *NIX rendszerek használatának lényegét.
Noha nem kell ismernie az összes parancsot, néhány hasznos parancs ismerete minden bizonnyal gyümölcsöző lesz, amikor mélyen bemerül a Linux világába.