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.
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:
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):
Sie erhalten eine Ausgabe, die bestätigt, dass das Verzeichnis files
vorhanden ist:
Outputfiles
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:
Nachdem Sie ENTER
gedrückt haben, erhalten Sie die folgende Ausgabe in Ihrem Terminal:
Outputtotal 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:
Beide dieser Befehle geben die folgende Ausgabe zurück, ähnlich wie die oben gezeigte Ausgabe, jedoch mit größerem Kontext der Speicherblöcke:
Outputtotal 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.
Navigieren im Dateisystem
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:
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:
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:
Um zu bestätigen, dass wir uns bewegt haben und herauszufinden, was sich in diesem Verzeichnis befindet, führen wir unseren Listenbefehl aus:
Wir erhalten die folgende Ausgabe:
Outputbin 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:
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:
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:
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:
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.
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.
Outputocean.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:
OutputHello, 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:
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
.
Outputocean.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.
Nach Ausführung des Befehls erhalten wir die folgende Ausgabe:
OutputSammy 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.
Nun, wenn wir cat
auf die Datei ausführen, erhalten wir die Ausgabe des gerade eingegebenen Textes.
OutputSome 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.
Die Datei wird in Ihrem Terminal geöffnet:
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 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:
OutputSave 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:
OutputFile 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:
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.
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.
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:
Jetzt können wir alex.txt
öffnen und sie inspizieren.
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 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:
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:
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:
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.
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.
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
).
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:
Wenn Sie ls
ausführen, kann Ihr Ordner einige Dateien haben, wie folgt:
Outputalex.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.
Wenn wir jetzt ls
ausführen, stellen wir fest, dass sammy.txt
nicht mehr im Ordner vorhanden ist:
Outputalex.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).
Aus dem Benutzerverzeichnis /home/sammy/
können wir rmdir
auf students
ausführen.
Dies funktioniert jedoch nicht, da wir folgendes Feedback erhalten:
Outputrmdir: 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.
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.
In unserem interaktiven Terminal erhalten wir die folgende Ausgabe, die bestätigt, dass unsere Sitzung beendet ist.
OutputSession 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