Übung: Ausprobieren von Bash

Abgeschlossen

Auf Ihrem eigenen Linux-Computer können Sie Bash-Befehle lokal ausführen. Wenn Sie Zugriff auf Linux-Server haben, können Sie eine Remoteverbindung zu diesen herstellen und dort Bash-Befehle ausführen. Aber niemand möchte auf einem aktiven Produktionssystem experimentieren – insbesondere nicht an seinem ersten Tag bei Northwind.

In dieser Einheit verwenden Sie Azure Cloud Shell auf der rechten Seite als Ihr Linux-Terminal. Azure Cloud Shell ist eine Shell, auf die Sie über das Azure-Portal oder unter https://shell.azure.com zugreifen können. Sie müssen nichts auf Ihrem PC oder Laptop installieren, um die Shell verwenden zu können.

Machen Sie sich mit Cloud Shell vertraut

Sehen Sie sich zunächst an, was sich in Cloud Shell befindet, indem Sie die Bash-Befehle verwenden, die Sie kennengelernt haben.

  1. Verwenden Sie den Befehl ls, um alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis aufzulisten:

    ls
    
  2. Die angezeigte Ausgabe sollte so ähnlich aussehen wie die folgende:

    yourname@Azure:~$ ls
    clouddrive
    

    clouddrive ist ein Unterverzeichnis Ihres aktuellen Verzeichnisses. „clouddrive“ ist eine eingebundene Dateifreigabe, die erhalten bleibt, wenn Sie Cloud Shell für Ihr eigenes Konto verwenden. Zurzeit verwenden Sie sie in der Microsoft Learn-Sandbox.

  3. Aber es fragt sich, was ist das aktuelle Verzeichnis? Verwenden Sie den Befehl pwd, um dies zu ermitteln. pwd steht für „print working directory“. Der Befehl gibt den Pfad zu dem Verzeichnis, in dem Sie sich befinden, in der langen Form aus.

    pwd
    
  4. Die angezeigte Ausgabe sollte in etwa so aussehen:

    yourname@Azure:~$ pwd
    /home/yourname
    

    Diese Ausgabe bedeutet, dass Sie sich in einem Verzeichnis namens IhrName in einem Verzeichnis namens home im Stammverzeichnis des Linux-Dateisystems befinden.

  5. Es scheint, dass Ihr Verzeichnis nicht viele Elemente enthält. Verwenden Sie ein Bash-Flag, um alle versteckten Dateien und Verzeichnisse anzuzeigen und zu prüfen, dass dies seine Richtigkeit hat.

    ls -a
    
  6. Wow! Diese Ausgabe enthält viel mehr Elemente in diesem Verzeichnis, als anfangs gedacht.

    yourname@Azure:~$ ls -a
    .  ..  .azure  .bash_history  .bash_logout  .bashrc  clouddrive  .profile  .tmux.conf  .viminfo
    
  7. Wozu gibt es alle diese Dateien und Unterverzeichnisse? Einige davon sind Hintergrunddateien, die erforderlich sind, damit Cloud Shell funktioniert. Einige der anderen Dateien und Verzeichnisse sollen nun erläutert werden.

    • . verweist auf das aktuelle Verzeichnis, und .. verweist auf Ihr übergeordnetes Verzeichnis. Egal, wo Sie sich befinden, wenn Sie alle ausgeblendeten Dateien und Verzeichnisse anzeigen, werden . und .. angezeigt.
    • .bash_history ist eine spezielle Bash-Datei, in der alle Befehle, die Sie in die Shell eingeben, gespeichert werden. Bash protokolliert Ihren Befehlsverlauf, was, wie später zu sehen sein wird, nützlich ist.
    • .bash_logout eine weitere spezielle Bash-Datei, die jedes Mal gelesen und ausgeführt wird, wenn eine Anmelde-Shell vorhanden ist. Linux-Superuser können diese ändern, um Ihre Umgebung anzupassen.
    • .bashrc ist eine wichtige Bash-Konfigurationsdatei, die immer dann ausgeführt wird, wenn Sie eine neue Shell starten. Wenn Sie diese Datei öffnen, um sich ihren Inhalt anzusehen, sollten Sie beim Vornehmen von Änderungen sehr vorsichtig sein, weil diese unbeabsichtigte Folgen haben können.

Aufrufen Ihres Verlaufs und automatische Vervollständigung von Befehlen

Wenn Sie komplizierte Befehle wie diesen eingeben, kann es leicht zu einem Fehler kommen:

ls -a .azure/commands/202?*.log

Glücklicherweise bietet Bash einige Funktionalitäten, die Ihnen helfen.

Erneutes Aufrufen früherer Befehle

  1. Geben diesen Befehl ein, in dem es einen Tippfehler gibt (203? anstelle von 202?):

    ls -a .azure/commands/203?*.log
    
  2. Sie sollten die folgende Ausgabe sehen, in der Sie darauf hingewiesen werden, dass keine Dateien vorhanden sind, die mit diesem Muster übereinstimmen:

    ls: cannot access '.azure/commands/203?*.log': No such file or directory
    
  3. Anstatt den gesamten Befehl erneut einzugeben, um den Fehler zu beheben, können Sie zuvor eingegebene Befehle erneut aufrufen, indem Sie die NACH-OBEN-TASTE und die NACH-UNTEN-TASTE verwenden. Verwenden Sie die NACH-OBEN-TASTE, um den fehlerhaften Befehl erneut anzuzeigen. Verwenden Sie dann die NACH-LINKS-TASTE, um den Befehl zu korrigieren, indem Sie die am Ende stehende 3 durch eine 2 ersetzen. Drücken Sie erneut EINGABE, um den korrigierten Befehl zu senden.

    Wenn Sie die NACH-OBEN-TASTE mehrmals in einer Zeile drücken, gehen Sie mehrere Befehle zurück. Verwenden Sie die NACH-UNTEN-TASTE, um zu späteren Befehlen zu gelangen.

  4. Nun sollte die angezeigte Ausgabe in etwa wie die folgende aussehen. Der Ausgabe können Sie entnehmen, dass Ihr Befehl korrekt funktioniert hat, um Dateien aufzulisten, die dem angegebenen Muster entsprechen.

    .azure/commands/2020-01-29.21-56-35.login.103.log
    .azure/commands/2020-01-29.21-56-38.account_set.112.log
    

Automatische Vervollständigung

Angenommen, Sie möchten den Inhalt von einer der Dateien lesen, die Sie soeben gefunden haben. Sie können den Befehl cat (kurz für „catenate“) verwenden, um den Inhalt einer Datei auf dem Bildschirm auszugeben.

  1. Dazu können Sie den vollständigen Dateinamen verwenden, etwa:

    cat .azure/commands/2020-01-29.21-56-35.login.103.log
    
  2. Aber das ist viel zu tippen und sehr fehleranfällig. Stattdessen können Sie die rudimentäre automatische Vervollständigung von Bash verwenden, um den größten Teil der Arbeit für Sie zu erledigen. Geben Sie Folgendes ein:

    cat .a
    

    Drücken Sie dann die TAB-TASTE. Was passiert?

  3. Sie sollten den Rest des Wortes „azure/“ in Ihrem Befehl sehen:

    cat .azure/
    

    Gehen Sie weiter so vor, dass Sie den Anfang des jeweiligen Worts eingeben und TAB verwenden, um automatisch zu vervollständigen. Beachten Sie, dass Bash nichts ausfüllt, wenn eine Mehrdeutigkeit vorliegt. Sie können TAB zweimal drücken, damit Bash alle Dateien und Verzeichnisse anzeigt, die sich in einem bestimmten Pfad befinden und den Buchstaben entsprechen, die Sie bereits eingegeben haben.

  4. Experimentieren Sie so lange, bis Sie zu einer echten .log-Datei im Befehlsverzeichnis gelangt sind. Drücken Sie dann EINGABE, um den Befehl cat dazu zu verwenden, den Inhalt der Datei auf dem Bildschirm anzuzeigen. Diese Ausgabe sieht ungefähr so aus:

    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
    

    Beachten Sie Folgendes: Wenn Sie bereits einen falschen Buchstaben eingegeben haben, kann Bash nicht erraten, welchen Buchstaben Sie eigentlich eingeben wollten.

Verwenden von man

Sie haben soeben den Befehl cat verwendet, aber Sie wissen noch nicht viel über ihn. Nutzen Sie man, um weitere Informationen über den Befehl cat anzuzeigen.

  1. Geben Sie den folgenden Befehl ein, um mehr darüber zu erfahren, was der Befehl cat ist und wie er verwendet wird:

    man cat
    

    Ja, Sie haben „man cat“ in Ihre Shell eingegeben. Bash-Befehle können sowohl kryptisch als auch amüsant sein!

  2. Die angezeigte Ausgabe sollte in etwa so aussehen:

    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. Verwenden Sie die NACH-OBEN- und NACH-UNTEN-TASTE, um durch die Handbuchseite zu scrollen, und drücken Sie q, um die Seite zu beenden.

Wechseln von Verzeichnissen

Experimentieren Sie nun mit einem weiteren elementaren Bash-Befehl: cd.

Wenn Sie die Shell verwenden, befinden Sie sich immer in einem Verzeichnis – genau wie in einem Ordner auf Ihrem PC oder Mac. Um zwischen Verzeichnissen zu wechseln, verwenden Sie den Befehl cd (change directory).

Dieser ist einfach, aber Sie sollten etwas Übung bekommen.

  1. Geben Sie zunächst diesen Befehl ein, um sicherzustellen, dass Sie sich an der richtigen Stelle befinden:

    cd ~
    

    Dieser Befehl hat Sie in Ihr spezielles home-Verzeichnis in der Shell gebracht, sofern Sie sich nicht bereits dort befunden haben.

  2. Überprüfen Sie dies, indem Sie nochmals den Befehl pwd verwenden:

    pwd
    
  3. Die angezeigte Ausgabe sollte in etwa so aussehen:

    /home/yourname
    

    ~ ist ein weiteres Sonderzeichen in Bash, das auf dieses Stammverzeichnis (home) verweist. Sie können ~ verwenden, um auf den Speicherort /home/IhrName zu verweisen, unabhängig davon, wo Sie sich in der Shell befinden.

  4. Wechseln Sie in das Verzeichnis, das die Protokolldateien enthält (wo Sie sich bereits vorher befunden haben):

    cd .azure/commands/
    

    Sie können entweder den vollständigen Befehl selbst eingeben oder TAB verwenden, um ihn automatisch zu vervollständigen.

    Nun sollten Sie sehen, dass die Zeile, in der Sie Befehle eingeben, anders aussieht, indem sie zeigt, wo Sie sich in der Shell befinden:

    yourname@Azure:~/.azure/commands$
    
  5. Verwenden Sie die spezielle Syntax .., um sich ein Verzeichnis nach oben zu bewegen:

    cd ..
    

    Sie sollten sich nun eine Ebene höher in der Verzeichnisstruktur befinden, und Ihre Befehlszeile sollte wie folgt aussehen:

    yourname@Azure:~/.azure$
    

Ausgezeichnet! Sie haben Ihre ersten Schritte in Richtung Bash-Experte gemacht. Bleiben Sie am Ball, und lernen Sie weiter.

Überprüfen Sie Ihr Wissen

1.

In welches Verzeichnis wechseln Sie, wenn Sie den Bash-Befehl cd . eingegeben haben?