Gyakorlat – A Bash kipróbálása
A Linux rendszerű számítógépén helyileg futtathatja a Bash-parancsokat. Ha rendelkezik hozzáféréssel Linux-kiszolgálókhoz távvezérelheti őket innen, és futtathatja a Bash-parancsokat ezeken. De senki sem akar élő éles rendszerben kísérletezni, különösen a Northwind első napján.
Ebben a leckében a jobb oldali Azure Cloud Shellt fogja használni Linux-terminálként. Az Azure Cloud Shell egy olyan rendszerhéj, amelyet az Azure Portalon vagy a webhelyen https://shell.azure.comkeresztül érhet el. Semmit sem kell telepíteni a számítógépén vagy a laptopján, hogy használhassa.
Ismerkedjen meg a Cloud Shellel
Először az elsajátított Bash-parancsokkal fedezze fel, mi található a Cloud Shellben.
Az
ls
paranccsal az aktuális könyvtár összes fájlját és alkönyvtárát listázhatja:ls
A következőhöz hasonló kimenetnek kell megjelennie:
yourname@Azure:~$ ls clouddrive
A clouddrive a jelenlegi könyvtár alkönyvtára. Ez egy csatlakoztatott fájlmegosztás, amely tartósan megmarad, ha az Azure Cloud Shellt a saját fiókjában használja. Jelenleg a Microsoft Learn tesztkörnyezetben használja.
De várjon, mi a jelenlegi könyvtár? A parancsot használva
pwd
derítsük ki.pwd
jelentése: "print working directory". Kiírja a hosszú formátumú elérési utat ahhoz a könyvtárhoz, amelyben most van.pwd
A következőhöz hasonló kimenetnek kell megjelennie:
yourname@Azure:~$ pwd /home/yourname
Ez a kimenet azt jelenti, hogy egy yourname nevű könyvtárban van a home elnevezésű könyvtáron belül, a Linux-fájlrendszer gyökerénél.
Úgy tűnik nem sok minden van a jelenlegi könyvtárban. Használjon egy Bash jelölőt az összes rejtett fájl és könyvtár kinyomtatásához, hogy meggyőződjön róla, hogy ez valóban így van-e.
ls -a
Hoppá! Ez a kimenet sokkal több mindent jelenített meg ebben a könyvtárban, mint ahogyan kezdetben gondoltuk.
yourname@Azure:~$ ls -a . .. .azure .bash_history .bash_logout .bashrc clouddrive .profile .tmux.conf .viminfo
Mi volt ez a sok fájl és alkönyvtár? Néhány ezek közül a háttérben feladatot betöltő fájl, amely lehetővé teszi a Cloud Shell működését. Beszéljünk meg néhány továbbit.
- A
.
a jelenlegi könyvtárra hivatkozik, a..
pedig a szülőkönyvtárra. Bárhol is van, ha kinyomtatja az összes rejtett fájlt és könyvtárat, akkor láthatja a.
és a..
kinyomtatott tartalmát. - A
.bash_history
egy olyan speciális Bash-fájl, ahol a rendszerhéjban megadott minden parancsot tárolja. A Bash emlékszik a parancsok előzményeire, ami hasznos dolog, amint azt később látni fogjuk. - A
.bash_logout
egy másik különleges Bash-fájl, amelyet a program minden alkalommal olvas és futtat, amikor van bejelentkezési rendszerhéj. A Linux superuser felhasználói módosíthatják a környezet testreszabásához. - A
.bashrc
egy fontos Bash konfigurációs fájl, amely minden alkalommal fut, amikor egy új rendszerhéjat indít. Ha úgy dönt, hogy megnyitja ezt a fájlt megtekintésre, legyen óvatos a módosításokkal, mert ezek nem kívánatos következményekkel járhatnak.
- A
Az előzmények és az automatikus kitöltési parancsok visszahívása
Amikor ehhez hasonló bonyolult parancsokat ad meg, egyszerű hibát véteni:
ls -a .azure/commands/202?*.log
Szerencsére a Bash-nek van több olyan funkciója is, amelyek a segítségére lehetnek.
Az előző parancsok visszahívása
Próbálja megadni ezt a parancsot, amelyben helyesírási hiba található (
203?
a202?
helyett):ls -a .azure/commands/203?*.log
Ezt a kimenetet kell látnia, amelyből megtudhatja, hogy nem volt a mintázatnak megfelelő fájl:
ls: cannot access '.azure/commands/203?*.log': No such file or directory
Ahelyett, hogy újból mindent megadna a hiba javításához, a korábban megadott parancsokat a Fel nyíl és a Le nyíl billentyűkkel hívhatja vissza. Próbálja a Fel nyíl billentyűvel visszahívni a helytelenül megadott parancsot. Ezután használja a Bal nyíl billentyűt a javításhoz, lecserélve a záró
3
értéket a2
értékkel. A megfelelő parancs küldéséhez nyomja le újra az Enter billentyűt.Ha a Fel nyíl billentyűt egy sorban többször is lenyomja, akkor több paranccsal is visszalép. Későbbi parancsokra a Le nyíl billentyűvel léphet.
Most az alábbihoz hasonló kimenetet kell látnia. Ebből tudhatja, hogy a parancs megfelelően működött a megadott mintával egyező fájlok listázásakor.
.azure/commands/2020-01-29.21-56-35.login.103.log .azure/commands/2020-01-29.21-56-38.account_set.112.log
Automatikus kiegészítés
Tegyük fel, hogy el szeretné olvasni az éppen megtalált fájlok egyikének tartalmát. A cat
(„catenate” – összefűzés) paranccsal a fájl tartalmát a képernyőre nyomtathatja.
Ennek a parancsnak a használatához megadhatja a teljes fájlnevet, például:
cat .azure/commands/2020-01-29.21-56-35.login.103.log
De ehhez rengeteget kell gépelni, és sok hibára ad lehetőséget. Ehelyett használhatja a Bash kezdetleges automatikus kiegészítési funkcióját, amely elvégzi a munka dandárját Ön helyett. Próbáljon gépelni:
cat .a
Majd nyomja le a Tab billentyűt. Mi történik?
Láthatja az „azure/” szó további részét megjelenni a parancsában:
cat .azure/
Folytassa a szavak kezdetének begépelését és a Tab használatát az automatikus kiegészítéshez. Ne feledje, hogy ha a Bash kétértelműséggel találkozik, nem fog semmit sem kitölteni. Ha kétszer lenyomja a Tab billentyűt, a Bash az adott elérési úton található összes fájlt és könyvtárat kinyomtatja, amelyek megfelelnek a már begépelt betűknek.
Töltsön el ezzel egy kis időt, amíg egy valódi .log fájlt nem kap a parancselőzményekben. Ezután nyomja le az Enter billentyűt, hogy a
cat
paranccsal a képernyőre nyomtassa a fájl tartalmát. Ez a következőhöz hasonlóan nézhet ki:CMD-LOG-LINE-BEGIN 103 | 2020-01-29 21:56:35,426 | INFO | az_command_data_logger | command args: login --identity CMD-LOG-LINE-BEGIN 103 | 2020-01-29 21:56:37,604 | INFO | az_command_data_logger | exit code: 0
Tartsa szem előtt, hogy ha már beírt egy helytelen betűt, a Bash nem fogja tudni kitalálni, hogy milyen betűt szeretett volna beírni.
Használja a következő parancsot: man
Az imént a cat
parancsot használtuk, de még nem tud róla sok mindent. Gyakorolja a man
parancs használatát a cat
parancsra vonatkozó további információ betöltéséhez.
Adja meg az alábbi parancsot, hogy jobban megérthesse, mi a
cat
, és hogyan használja:man cat
Igen, megadta a „man cat” parancsot a rendszerhéjban. A Bash-parancsok lehetnek rejtélyesek és mulatságosak!
A következőhöz hasonló kimenetnek kell megjelennie:
CAT(1) User Commands CAT(1) NAME cat - concatenate files and print on the standard output SYNOPSIS cat [OPTION]... [FILE]... DESCRIPTION Concatenate FILE(s) to standard output. With no FILE, or when FILE is -, read standard input. -A, --show-all equivalent to -vET -b, --number-nonblank number nonempty output lines, overrides -n -e equivalent to -vE ...
A fel és a le nyilakkal görgetheti a kézikönyv oldalait, és a
q
megadásával léphet ki.
Könyvtárváltás
Gyakoroljunk még egy alapvető Bash-parancsot: cd
.
A rendszerhéj használatakor mindig egy könyvtárban van, amely a számítógép vagy Mac mappájához hasonló. A mappák közötti váltáshoz használhatja a cd
„change directory” (könyvtárváltás) parancsot.
Ez egyszerű, de gyakoroljuk egy kicsit.
Először adja meg ezt a parancsot, hogy meggyőződjön róla, biztosan a megfelelő helyen van:
cd ~
Ezzel a paranccsal visszalépett a rendszerhéj speciális home könyvtárába, ha még nem ott volt.
Ellenőrizze még egyszer újra a
pwd
paranccsal:pwd
A következőhöz hasonló kimenetnek kell megjelennie:
/home/yourname
A
~
még egy különleges karakter a Bash-ben, amely erre a home könyvtárra hivatkozik. A~
karakterrel hivatkozhat a /home/yourname helyre, függetlenül attól, hol van a rendszerhéjban.Váltson át arra a könyvtárra, amely a naplófájlokat tartalmazza (ahol korábban volt):
cd .azure/commands/
Megadhatja a teljes parancsot saját maga, vagy használhatja a Tab billentyűt az automatikus kitöltéséhez.
Most láthatja, hogy az a sor, ahol a parancsokat adja meg, másképpen néz ki, ez mutatja, hogy hol van a rendszerhéjban:
yourname@Azure:~/.azure/commands$
Egy könyvtárral feljebb a speciális
..
szintaxissal léphet:cd ..
Most egy szinttel feljebb kell lennie a könyvtárstruktúrában, és a parancsnak a következőhöz hasonlón kell kinéznie:
yourname@Azure:~/.azure$
Szép munka! Megtette az első lépéseket, hogy Bash-szakértővé váljon. Folytassa a tanulást.