Gyakorlat – A Bash kipróbálása

Befejeződött

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.

  1. Az ls paranccsal az aktuális könyvtár összes fájlját és alkönyvtárát listázhatja:

    ls
    
  2. 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.

  3. 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
    
  4. 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.

  5. Ú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
    
  6. 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
    
  7. 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.

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

  1. Próbálja megadni ezt a parancsot, amelyben helyesírási hiba található (203? a 202? helyett):

    ls -a .azure/commands/203?*.log
    
  2. 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
    
  3. 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 a 2 é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.

  4. 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.

  1. 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
    
  2. 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?

  3. 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.

  4. 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.

  1. 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!

  2. 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
    
    ...
    
  3. 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.

  1. 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.

  2. Ellenőrizze még egyszer újra a pwd paranccsal:

    pwd
    
  3. 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.

  4. 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$
    
  5. 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.

Tesztelje tudását

1.

Milyen könyvtárra váltana a cd . Bash-parancs beírásával?