Einführung
Dieses Tutorial, das erste einer Reihe zu den Linux-Grundlagen, behandelt den Einstieg in das Terminal, die Linux-Befehlszeile und die Ausführung von Befehlen. Wenn Sie Linux-Neuling sind, sollten Sie sich mit dem Terminal vertraut machen, da es die Standardmethode zur Interaktion mit einem Linux-Server darstellt.
Um dieses Tutorial optimal zu nutzen, benötigen Sie einen Linux-Server. Falls Sie noch keinen haben, können Sie schnell einen erstellen, indem Sie diesem Link folgen: So erstellen Sie ein DigitalOcean-Droplet. Dieses Tutorial wurde für Ubuntu 22.04 Server geschrieben, die allgemeinen Prinzipien gelten jedoch für jede andere Linux-Distribution.
Beginnen wir mit der Erklärung, was ein Terminalemulator ist.
Terminalemulator
Ein Terminalemulator ist ein Programm, das die Nutzung eines Terminals in einer grafischen Umgebung ermöglicht. Da die meisten Anwender für ihre täglichen Computeraufgaben ein Betriebssystem mit grafischer Benutzeroberfläche (GUI) verwenden, ist die Nutzung eines Terminalemulators für die meisten Linux-Server-Nutzer unerlässlich.
Hier sind einige der beliebtesten kostenlosen Terminalemulatoren nach Betriebssystem:
- macOS: Terminal (Standard), iTerm2
- Windows: ConEmu, Windows Terminal, PuTTy
- Linux: Gnome Terminal, Konsole, XTerm
Jeder Terminalemulator verfügt über eigene Funktionen. Im Allgemeinen sollte ein moderner Terminalemulator Registerkarten und Texthervorhebung unterstützen.
Hülse
Auf einem Linux-System ist eine Shell eine Kommandozeilenschnittstelle, die Benutzerbefehle und Skriptdateien interpretiert und dem Serverbetriebssystem Anweisungen zur Verarbeitung gibt. Es gibt mehrere weit verbreitete Shells, wie beispielsweise die Bourne-Again-Shell (Bash) und die Z-Shell (Zsh). Jede Shell verfügt über eigene Merkmale und Komplexitäten hinsichtlich der Befehlsinterpretation, aber alle bieten Funktionen wie Ein- und Ausgabeumleitung, Variablen, Bedingungsprüfungen und vieles mehr.
Dieses Tutorial wurde unter Verwendung der Bourne-Again-Shell, allgemein als Bash bezeichnet, verfasst. Bash ist die Standard-Shell der meisten Linux-Distributionen, darunter Ubuntu, Fedora und RHEL.
Befehlszeile
Beim ersten Einloggen auf einem Server wird Ihnen üblicherweise eine Nachricht des Tages (MOTD) angezeigt. Diese enthält in der Regel Informationen wie beispielsweise die Version der verwendeten Linux-Distribution. Im Anschluss an die MOTD gelangen Sie zur Kommandozeile oder Shell, über die Sie Befehle an den Server senden können.
Die in der Befehlszeile angezeigten Informationen können vom Benutzer angepasst werden. Hier ist ein Beispiel für die Standard-Befehlszeile von Ubuntu 20.04:
sammy@webapp:~$
Hier eine Zusammenfassung der Befehlszeilensyntax:
- sammy: Benutzername des aktuellen Benutzers
- webapp: Server-Hostname
- ~: Das aktuelle Verzeichnis. In Bash, der Standard-Shell, ist ~ (Tilde) ein Sonderzeichen, das zum Pfad des Home-Verzeichnisses des aktuellen Benutzers erweitert wird. In diesem Fall steht es für /home/sammy.
- $: Benachrichtigungssymbol. Dieses Symbol signalisiert das Ende der Befehlszeile, woraufhin die Benutzereingabe über die Tastatur erfolgt.
Hier ist ein Beispiel dafür, wie die Befehlszeile aussehen könnte, wenn sie als Root im Ordner /var/log eingegeben wird:
root@webapp:/var/log#
Beachten Sie, dass das Symbol am Ende der Befehlszeile # ist, das Standard-Zeilensymbol für Root. In Linux ist der Root-Benutzer ein Superuser-Konto, ein spezielles Benutzerkonto mit systemweiten administrativen Funktionen. Er ist ein uneingeschränkter Benutzer mit der Berechtigung, alles auf dem Server zu tun.
Befehle ausführen
Befehle können über die Kommandozeile durch Angabe des Namens einer ausführbaren Datei, beispielsweise eines Binärprogramms oder eines Skripts, ausgeführt werden. Zahlreiche Standardbefehle und -tools von Linux sind bereits im Betriebssystem enthalten und ermöglichen die Navigation im Dateisystem, die Installation von Softwarepaketen sowie die Konfiguration des Systems und von Anwendungen.
Eine Instanz eines laufenden Befehls wird als Prozess bezeichnet. Wenn ein Befehl im Vordergrund ausgeführt wird, was die Standardmethode zur Befehlsausführung ist, muss der Benutzer warten, bis der Prozess abgeschlossen ist, bevor er zur Eingabeaufforderung zurückkehren und weitere Befehle ausführen kann.
Wichtig zu wissen: In Linux wird fast alles zwischen Groß- und Kleinschreibung unterschieden, einschließlich Datei- und Verzeichnisnamen, Befehlen, Argumenten und Optionen. Falls etwas nicht wie erwartet funktioniert, überprüfen Sie die Schreibweise und Groß-/Kleinschreibung Ihrer Befehle!
Hier sind einige Beispiele, die die Grundlagen der Befehlsausführung abdecken.
Ohne Argumente oder Alternativen.
Um einen Befehl ohne Argumente oder Optionen auszuführen, geben Sie den Befehlsnamen ein und drücken Sie die Eingabetaste.
Wenn Sie einen solchen Befehl ausführen, wird sein Standardverhalten angezeigt, das je nach Befehl variiert. Wenn Sie beispielsweise den Befehl `cd` ohne Argumente ausführen, gelangen Sie zurück in Ihr Benutzerverzeichnis. Der Befehl `ls` gibt eine Liste der Dateien und Verzeichnisse im aktuellen Verzeichnis aus. Der Befehl `ip` ohne Argumente gibt eine Meldung aus, die die Verwendung des Befehls `ip` erklärt.
Um die Dateien und Verzeichnisse in Ihrem aktuellen Verzeichnis aufzulisten, führen Sie den Befehl ls ohne Argumente aus (es können auch keine vorhanden sein):
lsDurch Argumentation
Viele Befehle akzeptieren Argumente oder Parameter, die das Verhalten des Befehls beeinflussen können. Beispielsweise wird der Befehl `cd` üblicherweise mit einem einzelnen Argument verwendet, das das Zielverzeichnis angibt. Um beispielsweise in das Verzeichnis `/usr/bin` zu wechseln, in dem viele Standardbefehle installiert sind, geben Sie folgenden Befehl ein:
cd /usr/bin
Der Befehl `cd` wird mit dem ersten Argument `/usr/bin` ausgeführt. Beachten Sie, wie der Pfad in Ihrer Befehlszeile aktualisiert wurde.
Versuchen Sie, den Befehl ls auszuführen, um die Dateien in Ihrem aktuellen neuen Verzeichnis anzuzeigen.
ls
Output
…
grub-mkrescue sdiff zgrep
grub-mkstandalone sed zipdetails
grub-mount see zless
grub-ntldr-img select-editor zmore
grub-render-label semver znew
grub-script-check sensible-browserMit Optionen
Die meisten Befehle akzeptieren Optionen, auch Flags oder Schalter genannt, die das Verhalten des Befehls verändern. Optionen folgen einem Befehl und bestehen aus einem einzelnen Zeichen, gefolgt von einer oder mehreren Optionen in Groß- oder Kleinbuchstaben. Einige mehrteilige Optionen beginnen mit einem Minuszeichen (—), gefolgt vom Flag-Text.
Um zu veranschaulichen, wie Optionen funktionieren, betrachten wir den Befehl `ls`. Hier sind einige gängige Optionen, die bei der Verwendung von `ls` nützlich sind:
- -l: Gibt eine “lange Liste” aus, die zusätzliche Details wie Berechtigungen, Eigentümer, Dateigröße und Zeitstempel enthält.
- -a: Listet alle Dateien im Verzeichnis auf, einschließlich versteckter Dateien (solche, die mit . beginnen).
Um den Parameter -l bei ls zu verwenden, nutzen Sie folgenden Befehl:
ls -lBeachten Sie, dass die Liste die gleichen Dateien wie zuvor enthält, jedoch mit zusätzlichen Informationen zu jeder Datei.
Wie bereits erwähnt, lassen sich Optionen oft gruppieren. Wenn Sie die Optionen `-l` und `-a` zusammen verwenden möchten, können Sie `ls -l -a` ausführen oder sie einfach so kombinieren:
ls -laBeachten Sie, dass die Liste aufgrund der Option -a auch versteckte .- und ..-Verzeichnisse enthält.
Mit Optionen und Argumenten
Bei der Ausführung von Befehlen ist es fast immer möglich, Optionen und Argumente zu kombinieren.
Beispielsweise können Sie den Inhalt von /home untersuchen, ohne auf Ihr aktuelles Verzeichnis achten zu müssen, indem Sie den Befehl ls ausführen:
ls -la /home
Der Befehl lautet `ls`, die Option `-la` und das Argument `/home` gibt an, welche Datei oder welches Verzeichnis aufgelistet werden soll. Die Ausgabe sollte eine detaillierte Auflistung des Verzeichnisses `/home` enthalten, einschließlich der Home-Verzeichnisse aller regulären Benutzer des Servers.
Umweltvariablen
Umgebungsvariablen sind benannte Werte, die die Ausführung von Befehlen und Prozessen steuern. Beim erstmaligen Anmelden an einem Server werden anhand verschiedener Konfigurationsdateien standardmäßig mehrere Umgebungsvariablen festgelegt.
Alle Umgebungsvariablen anzeigen
Um alle für eine bestimmte Terminal-Sitzung festgelegten Umgebungsvariablen anzuzeigen, führen Sie den Befehl env aus:
env
Es wird wahrscheinlich eine umfangreiche Ausgabe erzeugen. Suchen Sie nach dem PATH-Eintrag:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gamesDie Umgebungsvariable PATH ist eine durch Doppelpunkte getrennte Liste von Verzeichnissen, in denen die Shell beim Ausführen eines Befehls nach ausführbaren Programmen oder Skripten sucht. Beispielsweise befindet sich der Befehl `env` im Verzeichnis `/usr/bin` und kann ausgeführt werden, ohne den vollständigen Pfad anzugeben, da dieser in der Umgebungsvariablen PATH enthalten ist.
Den Wert einer Variablen anzeigen
Der Wert einer Umgebungsvariablen kann abgerufen werden, indem dem Variablennamen ein $ vorangestellt wird. Dadurch wird die referenzierte Variable zu ihrem Wert erweitert.
Um beispielsweise den Wert der PATH-Variablen auszugeben, können Sie den Befehl echo verwenden:
echo $PATH
Alternativ können Sie die Variable HOME verwenden, die standardmäßig auf das Home-Verzeichnis des Benutzers gesetzt ist, um in Ihr Home-Verzeichnis zu wechseln:
cd $HOME
Wenn Sie versuchen, auf eine Umgebungsvariable zuzugreifen, die nicht gesetzt ist, wird sie zu nichts erweitert. Zu einer leeren Zeichenkette.
Umgebungsvariablen festlegen
Nachdem Sie nun wissen, wie Sie Ihre Umgebungsvariablen anzeigen können, müssen Sie lernen, wie Sie diese festlegen.
Um eine Umgebungsvariable festzulegen, müssen Sie lediglich mit dem Variablennamen beginnen, unmittelbar gefolgt von einem Gleichheitszeichen (=) und dann dem gewünschten Wert:
VAR=value
Beachten Sie, dass beim Festlegen eines Werts für eine bereits vorhandene Variable der ursprüngliche Wert überschrieben wird. Falls die Variable zuvor nicht existierte, wird sie erstellt.
Bash enthält den Befehl `export`, der eine Variable exportiert, die von Kindprozessen übernommen wird. Dadurch können Sie Skripte verwenden, die auf eine Umgebungsvariable Ihrer aktuellen Sitzung zugreifen.
Sie können beim Festlegen einer Variablen auch auf bereits vorhandene Variablen verweisen. Wenn Sie beispielsweise eine Anwendung in /opt/app/bin installiert haben, können Sie dieses Verzeichnis mit folgendem Befehl am Ende Ihrer PATH-Umgebungsvariablen hinzufügen:
export PATH=$PATH:/opt/app/bin
Überprüfen Sie nun mit dem Befehl `echo:`, ob `/opt/app/bin` am Ende Ihrer PATH-Variablen hinzugefügt wurde.
echo $PATH
Beachten Sie, dass Umgebungsvariablen auf diese Weise nur für Ihre aktuelle Sitzung gelten. Das bedeutet, dass die Änderungen, die Sie an der Umgebung vorgenommen haben, nicht erhalten bleiben, wenn Sie sich abmelden oder zu einer anderen Sitzung wechseln. Es gibt eine Möglichkeit, Umgebungsvariablen dauerhaft zu ändern; dies wird jedoch in einem späteren Tutorial behandelt.
Ergebnis
Nachdem Sie nun erste Erfahrungen mit dem Linux-Terminal (und einigen Befehlen) gesammelt haben, verfügen Sie über eine gute Grundlage, um Ihr Wissen über Linux-Befehle zu erweitern. Lesen Sie das nächste Tutorial dieser Reihe, um zu erfahren, wie Sie Dateien und deren Berechtigungen verwalten, anzeigen und bearbeiten.









