Ein Linux-Befehlszeilen-Grundlagenkurs

Einführung

Hinweis: Das interaktive Terminal in diesem Tutorial ist derzeit deaktiviert, da wir daran arbeiten, unsere interaktiven Lernerfahrungen zu verbessern. Sie können dieses Tutorial jedoch weiterhin verwenden, um etwas über die Befehlszeile zu lernen und Linux-Befehle zu üben, müssen jedoch das Terminal auf Ihrem Computer oder einer virtuellen Maschine verwenden.

Heutzutage sind viele von uns mit Computern (Desktops und Laptops), Smartphones und Tablets vertraut, die grafische Benutzeroberflächen (auch GUIs genannt) haben und es uns ermöglichen, Apps, das Web und unsere Dateien (wie Dokumente und Fotos) durch eine visuelle Erfahrung zu navigieren. Die Betriebssysteme Windows, macOS und Linux präsentieren jeweils Varianten einer Desktop-Umgebung (mit Bildern von Ordnern und Dateien zum Beispiel) sowie Dropdown-Menüs, die alle Zugriff auf Computerprogramme, Anwendungen und unsere eigenen Medien bieten.

Auch wenn GUIs für viele Benutzer eine intuitive Möglichkeit darstellen, einen Computer zu verwenden, bieten sie uns oft nicht die größte Kontrolle über unsere Maschinen und können uns daran hindern, volle administrativen Zugriff auf unsere Computer zu haben, einschließlich der Installation, Änderung oder Löschung von Software oder Dateien. Darüber hinaus sind GUIs größtenteils visuell und daher oft nicht so zugänglich, wie sie für alle Benutzer sein könnten.

Eine Möglichkeit, sowohl Ihren eigenen persönlichen Computer als auch entfernte Cloud-Server ohne GUI zu navigieren, ist über eine textbasierte Oberfläche oder eine Befehlszeilenschnittstelle (CLI).

Terminal-Schnittstellen existieren auf fast jedem Betriebssystem für Computer, und Terminal-Emulatoren sind auch als Apps für Tablets und Smartphones verfügbar. Terminals bieten Benutzern insgesamt einen größeren Zugriff auf ihre Maschinen durch erhöhten Administratorzugriff, eine größere Möglichkeit zur Anpassung von Umgebungen und Möglichkeiten zur Automatisierung von Prozessen. Sie bieten Benutzern auch die Möglichkeit, auf entfernte Computer wie Cloud-Server zuzugreifen.

Dieses Tutorial wird Benutzern, die neu in Terminalumgebungen sind, die Grundlagen der Verwendung einer Befehlszeilenschnittstelle über ein eingebettetes Web-Terminal in Ihrem Browser vermitteln, das Sie unten starten können. Wenn Sie bereits mit Terminals vertraut sind, möchten Sie möglicherweise unser Einführung in das Linux-Terminal-Tutorial durchgehen. Nach Abschluss dieses Tutorials sollten Sie ein Verständnis dafür haben, wie Sie ein Terminal auf einem Linux- (oder macOS-) Computer oder Server verwenden können.

Verständnis des Terminalfensters

Wenn Sie erstmals Zugriff auf einen neuen Computer oder ein Smartphone erhalten, möchten Sie wahrscheinlich, dass es eingeschaltet wird, und ein Gefühl dafür bekommen, wie Sie es verwenden können, indem Sie überprüfen, welche Apps verfügbar sind, und lernen, wo sich die Dinge befinden, damit Sie das Gerät an Ihre Bedürfnisse anpassen können. Sie können sich über ein Terminal auf ähnliche Weise mit einem Computer vertraut machen.

Das interaktive Terminal, das Sie in diesem Browserfenster gestartet haben, indem Sie oben auf die Schaltfläche Starten Sie ein interaktives Terminal! geklickt haben, zeigt ein weißes Rechteck am unteren Rand Ihres Browserfensters an:

Wenn Sie das Terminal noch nicht gestartet haben, tun Sie dies bitte jetzt mit der Schaltfläche am Anfang dieses Tutorials.

In Ihrem interaktiven Browser-Terminal sollte ein Dollarzeichen $ und ein blinkender Cursor angezeigt werden. Hier beginnen Sie, Befehle einzugeben, um dem Terminal mitzuteilen, was es tun soll.

Das Terminal, das Sie gestartet haben, ist ein Ubuntu 20.04 Terminal. Ubuntu ist eine beliebte Distribution von Linux, die ursprünglich auf dem Unix-Betriebssystem basierte. Das macOS-Betriebssystem basiert ebenfalls auf Unix. Wenn Sie dieses Tutorial auf einem Linux- oder macOS-Rechner lesen, sollten Sie ein Terminal auf Ihrem Betriebssystem haben, das ähnlich wie das eingebettete Terminal funktioniert, das wir in dieser Anleitung verwenden werden.

In vielen dieser Unix- (oder *nix-basierten) Betriebssysteme können die Symbole am Ende der Eingabeaufforderung ein $-Symbol oder ein #-Symbol sein, was folgendes bedeutet:

  • $ oder Dollarzeichen — Sie sind als regulärer Benutzer angemeldet
  • # oder Hashtag/Rautensymbol — Sie sind als Benutzer mit erweiterten Berechtigungen angemeldet

Der Benutzer, der in der Umgebung mit # gekennzeichnet ist, wird auch als Root-Benutzer bezeichnet, der standardmäßig als Superbenutzer oder Administrator gilt.

Für unsere Zwecke innerhalb des unten stehenden Browser-Terminals sind Sie als regulärer Benutzer angemeldet, haben aber auch Administratorrechte über das sudo-Befehl. Da es sich um ein temporäres Terminal handelt, müssen Sie sich keine Gedanken darüber machen, was Sie in das Terminal eingeben, da wir alles zerstören werden, sobald wir fertig sind. Ebenso ist es bei einem Cloud-Server möglich, einen Server zu zerstören und neu zu starten, wenn etwas schief geht.

Bitte beachten Sie, dass es am besten ist, beim Arbeiten im Terminal eines lokalen Computers mehr Vorsicht walten zu lassen, da es Änderungen gibt, die Sie als Administrator im Terminal vornehmen können, die dauerhafte Änderungen am Computer, den Sie verwenden, bewirken können.

Zu diesem Zeitpunkt können Sie mit Ihrem im Browser gestarteten Terminal beginnen, indem Sie Ihren lokalen Computer eingeben. Ihr Text wird am blinkenden Cursor angezeigt. In den nächsten Abschnitten werden wir lernen, was wir hier eingeben können.

Vertrautheit mit Verzeichnissen erlangen

Wir werden mit dem Terminal arbeiten, indem wir einen Befehl eingeben. Ein Befehl ist eine Anweisung, die vom Benutzer gegeben wird und kommuniziert, was der Benutzer möchte, dass der Computer tut. Sie werden Ihre Befehle in das Terminal eingeben und dann ENTER oder RETURN drücken, wenn Sie möchten, dass der Computer einen bestimmten Befehl ausführt.

Geben Sie den folgenden Befehl ein, gefolgt von ENTER. Sie können auch den Befehl kopieren oder ihn ausführen lassen in einem gestarteten interaktiven Terminal, indem Sie auf die entsprechenden Links im folgenden Code-Block klicken, wenn Sie mit der Maus darüber fahren.

  1. pwd

Nach Ausführung dieses Befehls erhalten Sie folgende Ausgabe:

Output
/home/sammy

Der Befehl pwd steht für „Aktuelles Arbeitsverzeichnis“ und zeigt Ihnen an, wo Sie sich innerhalb des aktuellen Dateisystems befinden.

In diesem Beispiel befinden Sie sich im Verzeichnis (oder Ordner) namens /home/sammy, das für den Benutzer namens sammy steht. Wenn Sie als root eingeloggt sind, einem Benutzer mit erhöhten Rechten, würde das Verzeichnis /root genannt. Auf einem persönlichen Computer könnte dieses Verzeichnis den Namen des Benutzers haben, dem der Computer gehört. Der Computer von Sammy Shark könnte beispielsweise /sammy, /sammy-shark oder /home/sammy als primäres Benutzerverzeichnis haben.

Dieses Verzeichnis ist momentan leer. Erstellen wir ein Verzeichnis, um die Dateien zu speichern, die wir im Verlauf dieses Tutorials erstellen werden. Wir könnten es beispielsweise files nennen.

Um dies zu tun, werden wir den mkdir-Befehl verwenden, der für „make directory“ steht. Nachdem wir den Befehl eingegeben haben, müssen wir den Namen des Ordners eingeben, der dann an den Befehl übergeben wird, damit dieser den Ordner erstellen kann. Dieser Wert (der Name des Ordners) wird als Argument bezeichnet, das eine Eingabe darstellt, die dem Befehl übergeben wird. Wenn Sie mit der Grammatik natürlicher Sprache vertraut sind, können Sie das Argument als Objekt betrachten, das von dem Verb des Befehls bearbeitet wird.

Um ein neues Verzeichnis namens files zu erstellen, geben wir folgendes ein, wobei mkdir der Befehl und files das Argument ist:

  1. mkdir files

Nach Ausführung dieses Befehls erhalten Sie keine Ausgabe außer einer neuen Zeile mit einem blinkenden Cursor. Mit dieser neuen Zeile in Ihrem Terminal sind Sie bereit für Ihren nächsten Befehl.

Auflistung der Inhalte und Verständnis der Berechtigungen

Da wir noch kein konkretes Feedback zu unserem neuen Verzeichnis erhalten haben, werden wir einen Befehl verwenden, um mehr über den Inhalt unseres aktuellen Arbeitsverzeichnisses zu erfahren. Sie können bestätigen, dass das neue Verzeichnis tatsächlich vorhanden ist, indem Sie die Dateien im Verzeichnis auflisten, mit dem ls-Befehl (der „list“ bedeutet):

  1. ls

Sie erhalten eine Ausgabe, die bestätigt, dass das Verzeichnis files vorhanden ist:

Output
files

Dies gibt uns allgemeine Informationen darüber, was sich in unserem aktuellen Arbeitsverzeichnis befindet. Wenn wir mehr Details haben möchten, können wir den Befehl ls mit dem sogenannten Flag ausführen. In Linux-Befehlen wird ein Flag mit einem Bindestrich - und Buchstaben geschrieben und übermittelt zusätzliche Optionen (und weitere Argumente) an den Befehl. In unserem Beispiel fügen wir das -l-Flag hinzu, das — in Kombination mit ls — angibt, dass wir die Option verwenden möchten, einen langen Listenformat mit unserem Befehl zu verwenden.

Lassen Sie uns diesen Befehl und das Flag eingeben, wie folgt:

  1. ls -l

Nachdem Sie ENTER gedrückt haben, erhalten Sie die folgende Ausgabe in Ihrem Terminal:

Output
total 4 drwxr-xr-x 2 sammy sammy 4096 Nov 13 18:06 files

Hier gibt es zwei Zeilen Ausgabe. Die erste Zeile bezieht sich auf die Zuweisung von Speicherblöcken des Computers an dieses Verzeichnis, die zweite Zeile bezieht sich größtenteils auf Benutzerberechtigungen für die Datei.

Um eine etwas menschenlesbare Ausgabe zu erhalten, können wir auch das -h– oder --human-readable-Flag übergeben, das Speichergrößen in einem menschenlesbaren Format ausdruckt, wie unten angezeigt. Generell steht ein Bindestrich - für einzeilige Optionen, und zwei Bindestriche -- stehen für Optionen, die in Worten ausgeschrieben sind. Beachten Sie, dass einige Optionen beide Formate verwenden können. Wir können mehrere Optionen in einem Befehl durch Verkettung von Flags zusammenstellen, wie in -lh.

Zum Beispiel liefern die beiden untenstehenden Befehle die gleichen Ergebnisse, obwohl sie unterschiedlich geschrieben sind:

  1. ls -lh
  1. ls -l --human-readable

Beide dieser Befehle geben die folgende Ausgabe zurück, ähnlich wie die oben gezeigte Ausgabe, jedoch mit größerem Kontext der Speicherblöcke:

Output
total 4.0K drwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

Die erste Zeile der Ausgabe informiert uns darüber, dass 4K des Computerspeichers dem Ordner gewidmet sind. Die zweite Zeile der Ausgabe enthält viele weitere Details, die wir genauer betrachten werden. Eine allgemeine Referenz auf Hochzeitebene aller Informationen, die wir abdecken werden, ist in der untenstehenden Tabelle angegeben.

File type Permissions Link count Owner Group File size Last modified date File name
d rwxr-xr-x 2 sammy sammy 4.0K Nov 13 18:06 files

Sie werden feststellen, dass der Name unseres Verzeichnisses, files, am Ende der zweiten Zeile der Ausgabe steht. Dieser Name gibt an, welches spezifische Element im Benutzerverzeichnis /home/sammy durch die Zeile der Ausgabe beschrieben wird. Wenn wir eine weitere Datei im Verzeichnis hätten, hätten wir eine weitere Zeile der Ausgabe mit Details zu dieser Datei.

Am Anfang der Zeile befindet sich eine Liste von Zeichen und Strichen. Lassen Sie uns die Bedeutung jedes Zeichens aufschlüsseln:

Character Description
d directory (or folder) — a type of file that can hold other files, useful for organizing a file system; if this were - instead, this would refer to a non-directory file
r read — permission to open and read a file, or list the contents of a directory
w write — permission to modify the content of a file; and to add, remove, rename files in a directory
x execute — permission to run a file that is a program, or to enter and access files within a directory

In den ersten drwx Zeichen des Strings bedeutet der erste Buchstabe d, dass das Element files ein Verzeichnis ist. Wenn dies eine Datei wäre und kein Verzeichnis, würde diese Zeichenfolge mit einem Bindestrich beginnen, wie in -rwx, wobei der erste Bindestrich eine Nicht-Verzeichnisdatei kennzeichnet. Die folgenden drei Buchstaben, rwx, repräsentieren die Berechtigungen für den Besitzer des Verzeichnisses files und bedeuten, dass das Verzeichnis files vom Besitzer der Datei gelesen, geschrieben und ausgeführt werden kann. Wenn eines dieser Zeichen durch Bindestriche ersetzt würde, würde das bedeuten, dass der Besitzer nicht über die Art der Berechtigung verfügt, die durch dieses Zeichen dargestellt wird. Wir werden gleich besprechen, wie man den Besitzer einer Datei identifiziert.

Die nächsten drei Zeichen im Ausgabestring sind r-x, die die Gruppen-Berechtigungen für das Verzeichnis files repräsentieren. In diesem Fall hat die Gruppe Lese- und Ausführungsberechtigungen, aber keine Schreibberechtigungen, da das w durch ein - ersetzt ist. Wir werden gleich besprechen, wie man die Gruppe identifiziert.

Die letzten drei Zeichen des ersten Strings, r-x, repräsentieren die Berechtigungen für alle anderen Gruppen, die Zugriff auf die Maschine haben. In diesem Fall können diese Benutzergruppen auch lesen und ausführen, aber nicht schreiben.

Die Zahl 2 in der Ausgabe bezieht sich auf die Anzahl der Verknüpfungen zu dieser Datei. In Linux stellen Links eine Methode bereit, um Verknüpfungen zu erstellen, die Benutzern helfen, durch das Dateisystem zu navigieren. Als Sie diese Datei erstellt haben, hat Linux im Hintergrund einige Arbeiten ausgeführt, um eine absolute Verknüpfung zur Datei zu erstellen, und eine selbstbezügliche Verknüpfung zur Datei, um Benutzern das Navigieren entlang eines relativen Pfads zu ermöglichen. Absolute und relative Pfade werden wir im nächsten Abschnitt besprechen.

Nach der Zahl 2 wird das Wort sammy zweimal angezeigt. Dieser Teil der Ausgabe gibt Informationen über den Besitzer und die Gruppe, die mit dem Verzeichnis files verbunden sind. Die erste Instanz von sammy in dieser Zeile bezieht sich auf den Besitzer des Verzeichnisses, dessen Berechtigungen wir zuvor als rwx gesehen haben. Der Benutzer sammy ist der Besitzer, da wir das Verzeichnis files als Benutzer sammy erstellt haben und der aktuelle Besitzer der Datei sind. Obwohl der Benutzer sammy der einzige Benutzer in unserer aktuellen Umgebung ist, haben Unix-ähnliche Betriebssysteme oft mehr als einen Benutzer, daher ist es nützlich zu wissen, welcher Benutzer eine Datei besitzt.

Die zweite Instanz von sammy bezieht sich auf die Gruppe, die Zugriff auf das Verzeichnis files hat, dessen Berechtigungen wir zuvor als r-x gesehen haben. In diesem Fall ist der Gruppenname derselbe wie der Benutzername des Besitzers sammy. In realen Umgebungen können andere Gruppen auf dem Betriebssystem Zugriff auf das Verzeichnis haben, wie z.B. staff oder ein Benutzername wie admin.

Die restlichen Details auf dieser Ausgabenzeile sind die 4,0K für die Speicherzuweisung des Verzeichnisses auf dem Rechner und das Datum, an dem das Verzeichnis zuletzt geändert wurde (bisher haben wir es nur erstellt).

Mit diesem besseren Verständnis für Dateisysteme und Berechtigungen können wir nun mit der Navigation im Dateisystem auf unserer Linux-Konsole fortfahren.

Bisher haben wir gelernt, wie wir feststellen können, wo wir uns in einem Dateisystem befinden, wie wir ein neues Verzeichnis erstellen, wie wir Dateien auflisten und wie wir Berechtigungen bestimmen können.

Lernen wir als nächstes, wie wir uns im Dateisystem bewegen können. Wir haben ein neues Verzeichnis erstellt, befinden uns jedoch immer noch im Hauptbenutzerverzeichnis /home/sammy. Um in das Verzeichnis /home/sammy/files zu wechseln, das wir erstellt haben, verwenden wir den Befehl cd und geben den Namen des Verzeichnisses an, in das wir wechseln möchten, als Argument. Der Befehl cd steht für „change directory“ und wir werden ihn wie folgt verwenden:

  1. cd files

Erneut erhalten Sie keine Ausgabe außer einer neuen Zeile mit einem blinkenden Cursor, aber wir können überprüfen, ob wir uns im Verzeichnis /home/sammy/files befinden, mit dem Befehl pwd, den wir zuvor verwendet haben:

  1. pwd

Sie erhalten die folgende Ausgabe, die bestätigt, wo Sie sich befinden:

Output
/home/sammy/files

Dies bestätigt, dass Sie sich im Verzeichnis /home/sammy/files des Benutzerverzeichnisses /home/sammy befinden. Kommt Ihnen diese Syntax bekannt vor? Es erinnert vielleicht an eine Website-URL mit ihren Schrägstrichen, und tatsächlich sind Websites auch auf Servern in Verzeichnissen strukturiert.

Lassen Sie uns zum Hauptverzeichnis des Servers wechseln. Unabhängig davon, wo wir uns im Dateisystem befinden, können wir immer den Befehl cd / verwenden, um zum Hauptverzeichnis zu wechseln:

  1. cd /

Um zu bestätigen, dass wir uns bewegt haben und herauszufinden, was sich in diesem Verzeichnis befindet, führen wir unseren Listenbefehl aus:

  1. ls

Wir erhalten die folgende Ausgabe:

Output
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run s sbin srv sys tmp usr var

Da sind viele Dateien drin! Das Verzeichnis / ist das Hauptverzeichnis eines Linux-Servers, das als „root“-Verzeichnis bezeichnet wird. Beachten Sie, dass das Root-Verzeichnis sich vom Standard-„root“-Benutzer unterscheidet. Sie können das / Verzeichnis als die Hauptarterie einer Linux-Maschine betrachten, da es alle Ordner enthält, die zum Betrieb des Computers erforderlich sind. Zum Beispiel enthält das Verzeichnis sys den Linux-Kernel und das Systeminformations-Virtual-Dateisystem. Wenn Sie mehr über jedes dieser Verzeichnisse erfahren möchten, können Sie die Dokumentation der Linux Foundation besuchen.

Sie werden auch feststellen, dass es ein Verzeichnis gibt, in dem wir uns bereits befunden haben, das Benutzerverzeichnis /home. Vom / Verzeichnis aus können wir zurück in das Verzeichnis /home und dann zurück in das Verzeichnis files wechseln, oder wir können direkt in dieses Verzeichnis zurückkehren, indem wir den absoluten Pfad dort mit cd eingeben:

  1. cd /home/sammy/files

Nun, wenn Sie pwd ausführen, erhalten Sie /home/sammy/files als Ausgabe.

A file path is the representation of where a file or directory is located on your computer or server. You can call a path to a file or directory in either a relative or absolute way. A relative path would be when we move to a location relative to our current working directory, like we did when we were already in /home/sammy/ and then moved into files/. An absolute path is when we call the direct line to a location, as we did above with /home/sammy/files, showing that we started in the / directory, called the /home/sammy/ user directory and then the nested files/ directory.

Zusätzlich nutzt Linux die Punktnotation, um Benutzern beim Navigieren über relative Pfade zu helfen. Ein einzelnes . steht für das Verzeichnis, in dem Sie sich gerade befinden, und ein doppeltes .. steht für das übergeordnete Verzeichnis. Also können wir von unserem aktuellen Standort aus (/home/sammy/files) zwei Punkte verwenden, um zum übergeordneten /home/sammy-Benutzerverzeichnis zurückzukehren, wie folgt:

  1. cd ..

Wenn Sie pwd ausführen, erhalten Sie /home/sammy als Ausgabe, und wenn Sie ls ausführen, erhalten Sie files als Ausgabe.

Ein weiteres wichtiges Symbol, mit dem Sie vertraut sein sollten, ist ~, das für das Startverzeichnis Ihrer Maschine steht. Hier heißt unser Startverzeichnis /home/sammy für den Benutzer sammy, aber auf einem lokalen Rechner kann es Ihr eigener Name sein wie in sammy-shark/.

Sie können folgendes von überall auf Ihrer Maschine eingeben und zu diesem Startverzeichnis zurückkehren:

  1. cd ~

Zu diesem Zeitpunkt können Sie sich frei im Dateisystem mit den bisher erlernten Befehlen bewegen. Im nächsten Abschnitt werden wir mit Textdateien arbeiten.

Erstellen und Bearbeiten von Textdateien

Nun, da wir eine Grundlage im Linux-Dateisystem und im Navigieren darin haben, fangen wir an, neue Dateien zu erstellen und zu lernen, wie man Text auf der Befehlszeile manipuliert.

Lassen Sie uns zunächst sicherstellen, dass wir uns im Verzeichnis files/ des Benutzerverzeichnisses /home/sammy befinden, was wir entweder durch Überprüfen mit pwd oder durch Ändern des Verzeichnisses im absoluten Pfad tun können:

  1. cd /home/sammy/files

Jetzt erstellen wir eine neue Textdatei. Wir werden eine .txt-Datei erstellen, die eine Standarddatei ist, die über Betriebssysteme hinweg gelesen werden kann. Im Gegensatz zu .doc-Dateien besteht eine .txt-Datei aus unformatiertem Text. Unformatierter Text, einschließlich des Textes in .txt-Dateien, kann problemlos auf der Befehlszeile verwendet werden und kann daher verwendet werden, wenn Sie programmatisch mit Textdaten arbeiten (zum Beispiel für die Automatisierung von Textanalysen, zum Extrahieren von Informationen aus Text und mehr).

Wir beginnen mit dem touch-Befehl, der eine neue Datei erstellen oder eine vorhandene Datei ändern kann. Um ihn zu verwenden, können Sie den Befehl touch verwenden und den Namen der Textdatei, die Sie erstellen möchten, als Argument übergeben, wie unten dargestellt.

  1. touch ocean.txt

Nachdem Sie ENTER gedrückt haben, erhalten Sie eine neue Zeile des Befehlszeilen-Prompt, und Sie können den aktuellen Inhalt von files/ auflisten, um sicherzustellen, dass er erstellt wurde.

  1. ls
Output
ocean.txt

Bisher haben wir eine ocean.txt-Datei erstellt, die zum Zeitpunkt der Erstellung keinen Text enthält.

Wenn wir eine Textdatei erstellen möchten, die mit Text initialisiert ist, können wir den echo-Befehl verwenden, der verwendet wird, um Textzeichenfolgen in Linux anzuzeigen.

Wir können echo direkt in der Befehlszeile verwenden, damit die Oberfläche uns nachspricht. Das traditionelle erste Programm, "Hallo, Welt!", kann mit echo wie folgt geschrieben werden:

  1. echo Hello, World!
Output
Hello, World!

Benannt nach Echo von Ovids Metamorphosen gibt der echo-Befehl zurück, was wir anfordern. In diesem Fall hat es „Hallo, Welt!“ widerhallt. Allerdings erlaubt der echo-Befehl allein uns nicht, den Wert unseres Textes in eine Textdatei zu speichern. Um das zu tun, müssen wir Folgendes eingeben:

  1. echo "Sammy the Shark" > sammy.txt

Der obige Befehl verwendet echo, dann den Text, den wir unserer Datei hinzufügen möchten, in Anführungszeichen, dann den Umleitungsoperator > und schließlich den Namen unserer neuen Textdatei, sammy.txt.

Wir können überprüfen, ob unsere neue Datei existiert, wieder mit ls.

  1. ls
Output
ocean.txt sammy.txt

Wir haben jetzt zwei Textdateien in unserem Benutzerordner /home/sammy/files. Als nächstes können wir bestätigen, dass die Datei sammy.txt den Text enthält, den wir das Terminal gebeten haben, in sie zu schreiben. Das können wir mit dem Befehl cat tun. Kurz für konkatenieren ist der cat-Befehl sehr nützlich zum Arbeiten mit Dateien. Zu seinen Funktionen gehört das Anzeigen des Inhalts einer Datei.

  1. cat sammy.txt

Nach Ausführung des Befehls erhalten wir die folgende Ausgabe:

Output
Sammy the Shark

Wenn wir cat auf die leere Datei ocean.txt ausführen würden, würden wir nichts zurückbekommen, da sich kein Text in dieser Datei befindet. Wir können auch Text zu dieser vorhandenen Datei mit echo hinzufügen. Fügen wir der Datei ein Zitat von Zora Neale Hurston hinzu.

  1. echo "Some people could look at a mud puddle and see an ocean with ships." > ocean.txt

Nun, wenn wir cat auf die Datei ausführen, erhalten wir die Ausgabe des gerade eingegebenen Textes.

  1. cat ocean.txt
Output
Some people could look at a mud puddle and see an ocean with ships.

Bisher haben wir Textdateien erstellt und Text zu diesen Dateien hinzugefügt, aber wir haben diese Dateien noch nicht geändert. Wenn wir das tun möchten, können wir einen Texteditor über die Befehlszeile verwenden. Mehrere beliebte Optionen stehen zur Verfügung, darunter Vim und Emacs. Für unsere Zwecke verwenden wir nano, das ein weniger komplexes CLI-Texteditorprogramm ist, mit dem wir unsere Erkundung beginnen können.

Der Nano-Texteditor kann mit dem Befehl nano aufgerufen werden. Wenn wir unsere vorhandene sammy.txt-Datei bearbeiten möchten, können wir dies tun, indem wir den Dateinamen als Argument übergeben.

  1. nano sammy.txt

Die Datei wird in Ihrem Terminal geöffnet:

sammy.txt
Sammy the Shark

Mit den Pfeiltasten Ihrer Tastatur bewegen Sie den Cursor ans Ende der Zeile und beginnen, ein paar Zeilen aus Sammys Perspektive zu tippen.

Hinweis: Auf der Befehlszeile können Sie Ihre Maus oder einen anderen Zeiger nicht verwenden, um im Dateisystem und innerhalb von Dateien zu navigieren. Sie müssen Ihre Tastatur und insbesondere Ihre Pfeiltasten verwenden, um sich in Textdateien zu bewegen.

Wenn Sie mit Ihrer Datei fertig sind, könnte sie so aussehen:

sammy.txt
Sammy the Shark

Hello, I am Sammy.
I am studying computer science.
Nice to meet you!

Da Ihre Datei nun den gewünschten Text enthält, können wir die Datei jetzt speichern und schließen. Möglicherweise sehen Sie unten in Ihrem Terminalfenster einige Anleitungen:

^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

Da wir derzeit mit der Arbeit an dieser Datei fertig sind, möchten wir die Datei schließen. Hierbei bezieht sich das Symbol ^ auf die Control– oder CTRL-Taste auf Ihrer Tastatur, und die Ausgabe oben zeigt uns, dass wir diese Taste mit der Taste X kombinieren müssen (diese klein schreiben, ohne die SHIFT-Taste zu drücken), um die Datei zu verlassen. Lassen Sie uns diese beiden Tasten zusammen drücken:

CTRL x

Das oben Genannte wird oft in technischen Dokumentationen inline als STRG + X oder Strg+x geschrieben.

Zu diesem Zeitpunkt erhalten Sie die folgende Aufforderung:

Output
Save modified buffer? Y Yes N No ^C Cancel

Um sie zu speichern, drücken wir den Buchstaben y für Ja:

y

Sie erhalten ein Feedback wie folgt:

Output
File Name to Write: sammy.txt

Es gibt zusätzliche Optionen, einschließlich des Abbruchs mit STRG + C, aber wenn Sie mit dem Schließen der Datei vertraut sind, können Sie an dieser Stelle die Taste ENTER drücken, um die Datei zu speichern und zu schließen.

Angenommen, wir möchten einige Dateien von Studenten an der DigitalOcean University erstellen. Lassen Sie uns ein neues Verzeichnis in files/ namens students erstellen:

  1. mkdir students

Dann verschieben wir sammy.txt in das neue Verzeichnis students/. Der mv-Befehl, der für movieren steht, ermöglicht es uns, den Speicherort einer Datei zu ändern. Der Befehl wird durch Angabe der zu verschiebenden Datei als erstes Argument und des neuen Speicherorts als zweites Argument konstruiert. Beide der folgenden Ausführungen führen zum gleichen Ergebnis.

  1. mv sammy.txt students
  1. mv sammy.txt students/sammy.txt

Diese letztere Option wäre nützlich, wenn wir den Dateinamen ändern möchten, wie in mv sammy.txt students/sammy-the-shark.txt.

Jetzt, wenn wir den Befehl ls ausführen, sehen wir, dass nur ocean.txt und das Verzeichnis students/ in unserem aktuellen Verzeichnis (files/) sind. Lassen Sie uns in den Ordner students/ wechseln.

  1. cd students

Um eine Vorlage für die anderen Schüler zu haben, können wir die Datei sammy.txt kopieren, um mehr Dateien zu erstellen. Dazu können wir den Befehl cp verwenden, der für copy steht. Dieser Befehl funktioniert ähnlich wie der Befehl mv, wobei die originale Datei als erstes Argument und die neue Datei als zweites Argument übergeben wird. Wir werden eine Datei für Alex den Blattmeerdrachen erstellen:

  1. cp sammy.txt alex.txt

Jetzt können wir alex.txt öffnen und sie inspizieren.

  1. nano alex.txt

Bisher sieht alex.txt genauso aus wie sammy.txt. Indem wir einige der Wörter ersetzen, können wir diese Datei wie folgt ändern. Beachten Sie, dass Sie STRG + K verwenden können, um eine ganze Zeile zu entfernen.

alex.txt
Alex the Leafy Seadragon

Hello, I am Alex.
I am studying oceanography.
Nice to meet you!

Sie können die Datei speichern und schließen, indem Sie STRG + X drücken, dann y und dann ENTER.

Wenn Sie mehr Übung mit Textdateien möchten, erwägen Sie, Dateien für Jamie den Fangschreckenkrebs, Jesse den Oktopus, Drew den Tintenfisch oder Taylor den Gelbflossenthunfisch zu erstellen.

Wenn Sie sich beim Erstellen, Bearbeiten, Kopieren und Verschieben von Textdateien wohl fühlen, können wir mit dem nächsten Abschnitt fortfahren.

Autocompletion und Verlauf

Viele Versionen der Befehlszeile, einschließlich des interaktiven Terminals, das in diesem Tutorial eingebettet ist, ermöglichen es Ihnen, die Autovervollständigung zu verwenden und Befehle wiederzuverwenden, während Sie arbeiten. Dies ermöglicht es Ihnen, sich schneller zu bewegen, da Sie Zeit beim Tippen sparen.

Versuchen Sie, cat einzugeben, zusammen mit den ersten Buchstaben einer der Textdateien, an denen Sie gearbeitet haben – zum Beispiel cat sa. Bevor Sie den vollständigen Dateinamen von sammy.txt eintippen, drücken Sie stattdessen die TAB-Taste. Dadurch wird der vollständige Dateiname automatisch vervollständigt, sodass Ihre Terminal-Eingabeaufforderung wie folgt angezeigt wird:

  1. cat sammy.txt

Wenn Sie jetzt ENTER drücken, sollte das Terminal den Inhalt der Datei auf der Befehlszeile anzeigen.

Eine weitere Abkürzung besteht darin, die UP-Pfeiltaste zu drücken, um durch die zuletzt verwendeten Befehle zu blättern. Drücken Sie auf einer neuen Zeile mit einem blinkenden Cursor einige Male die UP-Pfeiltaste, um schnell auf Ihre vorherigen Befehle zugreifen zu können.

Wenn Sie alle Befehle, die Sie in Ihrem Terminal ausgeführt haben, replizieren müssen, können Sie auch den gesamten Verlauf dieser Sitzung mit dem treffend benannten Befehl history aufrufen:

  1. history

Je nachdem, wie viel Sie geübt haben, sollten Sie 30 oder mehr Zeilen von Befehlen erhalten, beginnend mit der folgenden Ausgabe:

Output
1 pwd 2 mkdir files 3 ls 4 ls -l ...

Vertraut machen mit diesen Verknüpfungen wird Sie unterstützen, während Sie sich mit der Befehlszeilenschnittstelle vertrauter werden.

Arbeiten mit Dateien aus dem Web

Einer der aufregendsten Aspekte der Arbeit mit einer Befehlszeilenschnittstelle, die mit dem Internet verbunden ist, ist, dass Sie Zugriff auf alle Ressourcen im Web haben und auf sie in automatisierter Weise zugreifen können. Mit dem Terminal können Sie auch direkt auf Cloud-Server zugreifen, für die Sie Anmeldeinformationen haben, Cloud-Infrastrukturen verwalten und orchestrieren, Ihre eigenen Webanwendungen erstellen und vieles mehr. Vorläufig werden wir, da wir bereits gelernt haben, wie man mit Textdateien im Terminal arbeitet, darüber sprechen, wie man eine Textdatei aus dem Web herunterlädt, damit die Maschine, die wir verwenden, diese Textdatei zur Verfügung hat.

Begeben wir uns zurück in das files/-Verzeichnis:

  1. cd /home/sammy/files

Von hier aus werden wir den curl-Befehl verwenden, um Daten aus dem Web auf unser persönliches interaktives Terminal im Browser zu übertragen. Der Befehl curl steht für client URL (Webadresse).

Wir haben einen kurzen Auszug aus Jules Vernes Zwanzigtausend Meilen unter den Meeren auf einem Cloud-Server hochgeladen. Wir werden die URL dieser Datei an den curl-Befehl übergeben, wie unten gezeigt.

  1. curl https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

Sobald wir ENTER drücken, erhalten wir den Text des Auszugs als Ausgabe auf unserem Terminal (nachstehend auszugsweise dargestellt).

Output
"You like the sea, Captain?" "Yes; I love it! The sea is everything. It covers seven tenths of the terrestrial globe. ... "Captain Nemo," said I to my host, who had just thrown himself on one of the divans, "this is a library which would do honor to more than one of the continental palaces, and I am absolutely astounded when I consider that it can follow you to the bottom of the seas."

Während es interessant ist, den Text in unserem Terminalfenster anzuzeigen, haben wir die Datei nicht zur Verfügung. Wir haben nur die Daten übertragen, aber nicht gespeichert. (Sie können überprüfen, ob die Datei nicht vorhanden ist, indem Sie ls ausführen).

Um den Text in einer Datei zu speichern, müssen wir curl mit dem -O-Flag ausführen, das es uns ermöglicht, den Text in eine Datei auszugeben und dabei denselben Namen der entfernten Datei für unsere lokale Kopie zu verwenden.

  1. curl -O https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

Sie erhalten ein Feedback vom Terminal, dass Ihre Datei heruntergeladen wurde.

Output
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2671 100 2671 0 0 68487 0 --:--:-- --:--:-- --:--:-- 68487

Wenn Sie einen spezifischen und alternativen Dateinamen verwenden möchten, könnten Sie dies mit dem -o-Flag tun und den Namen der neuen Datei als Argument übergeben (in diesem Fall jules.txt).

  1. curl -o jules.txt https://assets.digitalocean.com/articles/command-line-intro/verne_twenty-thousand-leagues.txt

Wir können nun an dieser Datei genau so arbeiten wie an jeder anderen Textdatei. Versuchen Sie es mit cat oder bearbeiten Sie es mit nano.

In dem nächsten Abschnitt werden wir einige der Dateien aufräumen und unser Terminal verlassen.

Entfernen von Dateien und Beenden von Befehlen

Wie bei jedem anderen Computer müssen wir manchmal Dateien und Ordner entfernen, die nicht mehr relevant sind, und das Programm beenden, das wir verwenden.

Angenommen, die Studierenden, die wir von der DigitalOcean University kennen, haben ihren Abschluss gemacht, und wir müssen ihre Dateien und den entsprechenden Ordner aufräumen. Stellen Sie sicher, dass Sie sich im students/-Verzeichnis befinden:

  1. cd /home/sammy/files/students

Wenn Sie ls ausführen, kann Ihr Ordner einige Dateien haben, wie folgt:

Output
alex.txt drew.txt jamie.txt jesse.txt sammy.txt taylor.txt

Einzelne Dateien können wir mit dem Befehl rm entfernen, der für remove steht. Wir müssen die Datei, die wir entfernen möchten, als Argument übergeben.

Warnung: Beachten Sie, dass eine entfernte Datei nicht wiederhergestellt werden kann. Stellen Sie sicher, dass Sie die Datei wirklich entfernen möchten, bevor Sie ENTER drücken.

  1. rm sammy.txt

Wenn wir jetzt ls ausführen, stellen wir fest, dass sammy.txt nicht mehr im Ordner vorhanden ist:

Output
alex.txt drew.txt jamie.txt jesse.txt taylor.txt

Obwohl wir nun wissen, dass wir einzelne Dateien mit rm entfernen können, ist dies nicht sehr zeiteffizient, wenn wir das gesamte Verzeichnis students/ und alle seine Inhalte entfernen möchten.

Der Befehl, der zum Entfernen von Verzeichnissen verwendet wird, heißt rmdir, was für remove directory steht. Lassen Sie uns zum übergeordneten Ordner von files wechseln, damit wir von dort aus mit dem Verzeichnis students/ arbeiten können (wir könnten kein Verzeichnis löschen, in dem wir uns derzeit befinden).

  1. cd ..

Aus dem Benutzerverzeichnis /home/sammy/ können wir rmdir auf students ausführen.

  1. rmdir students

Dies funktioniert jedoch nicht, da wir folgendes Feedback erhalten:

Output
rmdir: failed to remove 'students': Directory not empty

Der Befehl hat nicht funktioniert, da rmdir nur auf leeren Verzeichnissen funktioniert und das Verzeichnis students immer noch Dateien enthält. (Hier können Sie einen neuen, leeren Ordner erstellen und rmdir darauf ausführen. Leere Ordner können mit rmdir entfernt werden.)

Um das Verzeichnis mit noch vorhandenen Dateien zu entfernen, müssen wir eine andere Option ausprobieren. In der Informatik wird Rekursion häufig verwendet, um sich iterativ selbst zu referenzieren; so können wir sowohl ein Primärelement als auch alle seine Abhängigkeiten aufrufen. Mit dem Befehl rm können wir das primäre Verzeichnis students und alle seine abhängigen Inhalte rekursiv entfernen. Wir verwenden das Flag -r, das für rekursiv steht, und übergeben den Ordner students als Argument.

  1. rm -r students

Zu diesem Zeitpunkt, wenn wir ls ausführen, bemerken wir, dass students/ nicht mehr in unserem aktuellen Verzeichnis vorhanden ist und keine der Dateien, die es enthielt, verfügbar sind, da sie alle gelöscht wurden.

Wenn Sie mit einer Terminalsession fertig sind, insbesondere wenn Sie an einem Remote-Server arbeiten, können Sie das Terminal mit dem Befehl exit verlassen. Sobald Sie sich mit dem, was Sie in dieser Sitzung erreicht haben, wohl fühlen (da Sie es nicht wiederherstellen können), können Sie Folgendes eingeben, gefolgt von ENTER, um das Terminal zu verlassen.

  1. exit

In unserem interaktiven Terminal erhalten wir die folgende Ausgabe, die bestätigt, dass unsere Sitzung beendet ist.

Output
Session ended

Mit dem Abschluss dieser Sitzung können Sie diese Seite aktualisieren und dann ein neues Terminal starten, um alternative Befehle auszuprobieren oder ein neues Dateisystem zu erkunden.

Abschluss

Herzlichen Glückwunsch! Sie kennen sich nun mit der Terminal-Schnittstelle aus und sind auf dem besten Weg, mehr mit Computern und Servern zu erreichen.

Um Ihr Lernen fortzusetzen, können Sie einen geführten Pfad zur Einrichtung und Verwaltung von Remote-Servern mit unserem Lehrplan Einführung in Cloud Computing einschlagen.

Source:
https://www.digitalocean.com/community/tutorials/a-linux-command-line-primer