[в закладки] Bash für Anfänger: 21 nützliche Befehle

Das Material, das wir heute veröffentlichen, richtet sich an diejenigen, die die Linux-Befehlszeile erlernen möchten. Die effektive Nutzung dieses Werkzeugs kann eine Menge Zeit sparen. Insbesondere werden wir uns mit der Bash-Shell und 21 nützlichen Befehlen beschäftigen. Zudem werden wir darüber sprechen, wie man die Befehls-Flags und Bash-Aliase verwendet, die das Eingeben langer Anweisungen beschleunigen.

[в закладки] Bash für Anfänger: 21 nützliche Befehle

Lesen Sie auch in unserem Blog die Reihe von Beiträgen über Bash-Skripte.

Begriffe

Beim Erlernen der Arbeit mit der Linux-Befehlszeile werden Ihnen viele Begriffe begegnen, mit denen es hilfreich ist, sich auszukennen. Einige davon, wie "Linux" und "Unix" oder "Shell" und "Terminal", werden manchmal verwechselt. Lassen Sie uns über diese und andere wichtige Begriffe sprechen.

Unix ist ein beliebtes Betriebssystem, das in den 1970er Jahren von Bell Labs entwickelt wurde. Ihr Code war proprietär.

Linux ist das bekannteste Unix-ähnliche Betriebssystem. Es wird heutzutage auf vielen Geräten verwendet, einschließlich Computern.

Terminal (Terminal) oder Terminalemulator – das ist ein Programm, das Zugang zum Betriebssystem gewährt. Mehrere Terminalfenster können gleichzeitig geöffnet werden.

Shell (Shell) ist ein Programm, das es ermöglicht, dem Betriebssystem Befehle in einer speziellen Sprache zu senden.

Bash steht für Bourne Again SHell. Es ist die am weitesten verbreitete Kommandozeilensprache zur Interaktion mit dem Betriebssystem. Darüber hinaus wird die Bash-Shell standardmäßig in macOS verwendet.

Befehlszeileninterface (Command Line Interface, CLI) ist eine Methode der Interaktion zwischen Mensch und Computer, bei der der Benutzer Befehle über die Tastatur eingibt, und der Computer, indem er diese Befehle ausführt, Textnachrichten an den Benutzer zurückgibt. Hauptsächlich wird CLI verwendet, um aktuelle Informationen über bestimmte Entitäten, wie z. B. Dateien, abzurufen und um mit Dateien zu arbeiten. Das Befehlszeileninterface sollte vom grafischen Benutzerinterface (Graphical User Interface, GUI) unterschieden werden, bei dem hauptsächlich die Maus verwendet wird. Das Befehlszeileninterface wird häufig einfach als Kommandozeile bezeichnet.

Script (script) — ist ein kleines Programm, das eine Abfolge von Befehlen für die Kommandozeile enthält. Skripte werden in Dateien geschrieben, die mehrfach verwendet werden können. Beim Schreiben von Skripten können Variablen, bedingte Konstruktionen, Schleifen, Funktionen und andere Möglichkeiten genutzt werden.

Jetzt, da wir wichtige Begriffe besprochen haben, möchte ich anmerken, dass ich hier die Begriffe „Bash“, „Shell“ und „Kommandozeile“ synonym verwenden werde, ebenso wie die Konzepte „Verzeichnis“ (directory) und „Ordner“ (folder).

Standard- Streams, die wir hier verwenden werden, sind standardmäßiger Eingabe (standard input, stdin), standardmäßiger Ausgabe (standard output, stdout) und standardmäßiger Fehlerausgabe (standard error, stderr).

. Wenn Sie in den nachstehenden Beispielbefehlen etwas in der Art von my_whatever sehen, bedeutet dies, dass dieser Teil durch etwas Eigenes ersetzt werden muss. Zum Beispiel durch den Dateinamen.

Schauen wir uns jetzt, bevor wir zu den zu behandelnden Befehlen übergehen, die Liste und ihre kurzen Beschreibungen an.

21 Bash-Befehle

▍Informationen abrufen

  • man: gibt die Benutzerhandbuch (Hilfe) zum Befehl aus.
  • pwd: gibt Informationen zum aktuellen Arbeitsverzeichnis aus.
  • ls: listet den Inhalt des Verzeichnisses auf.
  • ps: ermöglicht die Anzeige von Informationen zu laufenden Prozessen.

▍Dateisystemmanipulationen

  • cd: wechselt das Arbeitsverzeichnis.
  • touch: erstellt eine Datei.
  • mkdir: erstellt ein Verzeichnis.
  • cp: kopiert eine Datei.
  • mv: verschiebt oder löscht eine Datei.
  • ln: erstellt einen Link.

▍Eingabe-/Ausgabenumleitung und Pipes

  • <: umleiten stdin.
  • >: umleiten stdout.
  • |: leitet die Ausgabe eines Befehls als Eingabe für einen anderen Befehl um.

▍Dateien lesen

  • head: liest den Anfang einer Datei.
  • tail: liest das Ende einer Datei.
  • cat: liest eine Datei und gibt ihren Inhalt auf dem Bildschirm aus oder verknüpft Dateien.

▍Dateien löschen, Prozesse stoppen

  • rm: löscht eine Datei.
  • kill: stoppt einen Prozess.

▍Suche

  • grep: sucht Informationen.
  • ag: erweiterter Befehl zur Suche.

▍Archivierung

  • ,: erstellt Archive und bearbeitet diese.

Lassen Sie uns diese Befehle näher besprechen.

Details zu den Befehlen

Zunächst lassen Sie uns die Befehle betrachten, deren Ergebnisse in Form von stdoutdas üblicherweise im Terminalfenster angezeigt wird.

▍Informationen abrufen

man command_name: gibt das Handbuch für den Befehl aus, d.h. — die Referenzinformationen.

pwd: Ausgabe des aktuellen Arbeitsverzeichnisses. Bei der Arbeit mit der Kommandozeile muss der Benutzer oft wissen, wo genau er sich im System befindet.

ls: Ausgabe des Inhalts des Verzeichnisses. Dieser Befehl wird ebenfalls häufig verwendet.

ls -a: Ausgabe verborgener Dateien. Hier wird die Option -a verwendet. Die Verwendung von Optionen hilft, das Verhalten der Befehle anzupassen. lsls -l

ls -l: Ausgabe detaillierter Informationen zu Dateien.

Beachten Sie, dass Optionen kombiniert werden können. Zum Beispiel so: ls -al.

ps: Anzeige der laufenden Prozesse.

ps -e: Ausgabe von Informationen über alle laufenden Prozesse und nicht nur über die, die mit der aktuellen Benutzershell verbunden sind. Dieser Befehl wird oft genau in dieser Form verwendet.

▍Dateisystemmanipulationen

cd my_directory: Ändern des Arbeitsverzeichnisses auf my_directory. Um ein Verzeichnis höher in der Verzeichnisstruktur zu wechseln, verwenden Sie als my_directory relativen Pfad ../.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Der Befehl cd

touch my_file: Erstellen einer Datei my_file an dem angegebenen Pfad.

mkdir my_directory: Erstellen eines Ordners my_directory an dem angegebenen Pfad.

mv my_file target_directory: Verschieben der Datei my_file in den Ordner target_directory. Bei Angabe des Zielverzeichnisses ist der absolute Pfad zu verwenden (nicht eine Konstruktion wie ../).

Befehl mv, zudem kann er verwendet werden, um Dateien oder Ordner umzubenennen. Zum Beispiel könnte das so aussehen:

mv my_old_file_name.jpg my_new_file_name.jpg
cp meine_quell_datei ziel_verzeichnis
: eine Datei kopieren my_source_file und sie in einen Ordner verschieben target_directory.

ln -s my_source_file my_target_file: eine symbolische Verknüpfung erstellen my_target_file auf die Datei my_source_file. Wenn die Verknüpfung geändert wird, ändert sich auch die ursprüngliche Datei.

Wenn die Datei my_source_file gelöscht wird, bleibt my_target_file . Das Flag -s verwendet. Die Verwendung von Optionen hilft, das Verhalten der Befehle anzupassen. ln erlaubt es auch, Verknüpfungen für Verzeichnisse zu erstellen.

Jetzt sprechen wir über die Umleitung von Ein- und Ausgaben und Pipelines.

▍Eingabe-/Ausgabenumleitung und Pipes

my_command < my_file: ersetzt den Deskriptor der Standardeingabedatei (stdin) durch die Datei my_file. Dies kann nützlich sein, wenn der Befehl Eingaben von der Tastatur erwartet und diese Daten bereits in einer Datei gespeichert sind.

my_command > my_file: leitet die Ergebnisse des Befehls um, das heißt, das, was normalerweise in stdout steht und auf dem Bildschirm angezeigt wird, in die Datei my_file. Wenn die Datei my_file nicht existiert, wird sie erstellt. Wenn die Datei existiert, wird sie überschrieben.

Zum Beispiel, nach Ausführung des Befehls ls > my_folder_contents.txt wird eine Textdatei erstellt, die die Liste der in dem aktuellen Arbeitsverzeichnis befindlichen Elemente enthält.

Wenn statt des Symbols > die Konstruktion >>, solange eine Datei existiert, in die die Ausgaben des Befehls umgeleitet werden, wird diese Datei nicht überschrieben. Die Daten werden am Ende dieser Datei angefügt.

Lassen Sie uns nun einen Blick auf die Datenstromverarbeitung werfen.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Was eine Befehlsausgabe erzeugt, wird als Eingabe für einen anderen Befehl verwendet. Es ist vergleichbar mit dem Anschluss eines Rohres an ein anderes.

first_command | second_command: das Pipeline-Zeichen, |, wird verwendet, um die Ergebnisse des Betriebs eines Befehls an einen anderen Befehl weiterzuleiten. Was der Befehl auf der linken Seite der beschriebenen Konstruktion sendet, stdout, gelangt in stdin den Befehl, der sich rechts vom Pipeline-Zeichen befindet.

In Linux kann die Datenstromverarbeitung mit praktisch jedem korrekt konzipierten Befehl organisiert werden. Oft wird gesagt, dass alles in Linux eine Pipeline ist.

Mit dem Pipeline-Zeichen können mehrere Befehle zu einer Kette verbunden werden. So sieht das aus:

first_command | second_command | third_command

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Eine Pipeline aus mehreren Befehlen kann mit einer Rohrleitung verglichen werden.

Beachten Sie, dass wenn der Befehl, der sich links vom Zeichen befindet, etwas in |, ausgibt, das, was er ausgegeben hat, sofort in Form von stdoutverfügbar wird. stdin Das bedeutet, dass wir es bei der Verwendung einer Pipeline mit der parallelen Ausführung von Befehlen zu tun haben. Manchmal kann dies unerwartete Ergebnisse zur Folge haben. Details dazu finden Sie hier. hier.

Jetzt sprechen wir darüber, wie man Daten aus Dateien liest und diese auf dem Bildschirm ausgibt.

▍Dateien lesen

head my_file: liest die Zeilen vom Anfang der Datei und gibt sie auf dem Bildschirm aus. Man kann nicht nur den Inhalt von Dateien lesen, sondern auch das, was die Befehle ausgeben, stdin, indem man diesen Befehl als Teil der Pipeline verwendet.

tail my_file: liest die Zeilen vom Ende der Datei. Auch diesen Befehl kann man in einer Pipeline verwenden.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Der Head (Kopf) befindet sich vorne, der Tail (Schwanz) hinten.

Wenn Sie mit Daten unter Verwendung der Pandas-Bibliothek arbeiten, sind Ihnen die Befehle head und tail sicher bekannt. Falls nicht, schauen Sie sich das obige Bild an, und Sie werden sie mühelos auswendig lernen.

Lassen Sie uns andere Möglichkeiten zum Lesen von Dateien betrachten und über den Befehl cat.

Der Befehl cat reden, der entweder den Inhalt einer Datei auf dem Bildschirm ausgibt oder mehrere Dateien miteinander verknüpft. Das hängt davon ab, wie viele Dateien diesem Befehl beim Aufruf übergeben werden.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Der Befehl cat

cat my_one_file.txt: wenn diesem Befehl eine Datei übergeben wird – gibt er sie aus. stdout.

Wenn Sie ihr jedoch zwei oder mehr Dateien übergeben, verhält sie sich anders.

cat my_file1.txt my_file2.txt: Diese Befehlszeile verkettet die Inhalte mehrerer Dateien und gibt das Ergebnis aus in stdout.

Wenn das Ergebnis der Dateikonkatenation als neue Datei gespeichert werden soll, kann der Operator verwendet werden >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Lassen Sie uns nun darüber sprechen, wie man Dateien löscht und Prozesse stoppt.

▍Dateien löschen, Prozesse stoppen

rm my_file: löscht die Datei my_file.

rm -r my_folder: löscht den Ordner my_folder und alle darin enthaltenen Dateien und Ordner. Das Flag -r gibt an, dass der Befehl im rekursiven Modus arbeitet.

Um zu verhindern, dass das System bei jeder Löschoperation um Bestätigung fragt, verwenden Sie das Flag -f.

kill 012345: stoppt den angegebenen laufenden Prozess und gibt ihm Zeit für eine ordnungsgemäße Beendigung.

kill -9 012345: beendet den angegebenen gestarteten Prozess sofort. Das Flag -s SIGKILL hat die gleiche Bedeutung wie das Flag -9.

▍Suche

Um Daten zu suchen, können verschiedene Befehle verwendet werden. Insbesondere — grep, ag und ack. Lassen Sie uns mit diesen Befehlen anfangen grep. Dies ist ein bewährtes, zuverlässiges Team, das zwar langsamer als andere ist, aber nicht weniger benutzerfreundlich.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Das grep-Kommando

grep my_regex my_file: führt eine Suche durch my_regex in my_file. Bei Übereinstimmungen wird für jede gefundene Zeile die gesamte Zeile zurückgegeben. Standardmäßig my_regex wird als regulärer Ausdruck betrachtet.

grep -i my_regex my_file: die Suche erfolgt ohne Berücksichtigung der Groß- und Kleinschreibung.

grep -v my_regex my_file: gibt alle Zeilen zurück, die nicht enthalten my_regex. Das Flag -v bedeutet Inversion, es ähnelt dem Operator NOT, der in vielen Programmiersprachen vorkommt.

grep -c my_regex my_file: gibt Informationen über die Anzahl der Übereinstimmungen mit dem gesuchten Muster in der Datei zurück.

grep -R my_regex my_folder: führt eine rekursive Suche in allen Dateien innerhalb des angegebenen Ordners und in den darin enthaltenen Ordnern durch.

Jetzt sprechen wir über das Kommando ag. Es kam später heraus, grep, es ist schneller und einfacher zu bedienen.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Das ag-Kommando

ag my_regex my_file: gibt die Zeilennummern und die Zeilen selbst zurück, in denen Übereinstimmungen mit my_regex.

ag -i my_regex my_file: die Suche erfolgt ohne Berücksichtigung der Groß- und Kleinschreibung.

Der Befehl ag verarbeitet automatisch die Datei .gitignore und schließt aus, was in den darin aufgelisteten Ordnern oder Dateien gefunden wird. Das ist sehr praktisch.

ag my_regex my_file -- skip-vcs-ignores: Inhalt von Dateien des automatischen Versionskontrollsystems (ähnlich .gitignore) wird bei der Suche nicht berücksichtigt.

Darüber hinaus, um der Team ag anzuzeigen, welche Dateiwege von der Suche ausgeschlossen werden sollen, kann eine Datei .agignore.

Am Anfang dieses Abschnitts haben wir das Kommando erwähnt, ack. Die Kommandos ack und ag sind sehr ähnlich, man kann sagen, sie sind zu 99 % austauschbar. Allerdings funktioniert das Kommando ag schneller, weshalb ich dieses beschrieben habe.

Jetzt sprechen wir über die Arbeit mit Archiven.

▍Archivierung

tar my_source_directory: kombiniert Dateien aus dem Ordner my_source_directory in eine Tarball-Datei. Solche Dateien sind nützlich, um große Dateisets an jemanden zu übergeben.

[в закладки] Bash für Anfänger: 21 nützliche Befehle
Das Kommando tar

Die von diesem Kommando erstellten Tarball-Dateien haben die Erweiterung .tar (Tape ARchive). Das Wort „tape“ im Namen des Kommandos und in der Erweiterung der von ihm erzeugten Dateien zeigt, wie lange dieses Kommando schon existiert.

tar -cf my_file.tar my_source_directory: erstellt eine Tarball-Datei mit dem Namen my_file.tar mit dem Inhalt des Ordners my_source_directory. Das Flag -c steht für „create“ (erstellen), und das Flag -f für „file“ (Datei).

Um Dateien, die sich in .tar-Dateien befinden, zu extrahieren, wird das Kommando , mit den Flags verwendet -x («extract», Extraction) und -f («file», Datei).

tar -xf my_file.tar: extrahiert Dateien aus my_file.tar dem aktuellen Arbeitsverzeichnis.

Jetzt reden wir darüber, wie man .tar-Dateien komprimiert und entpackt.

tar -cfz my_file.tar.gz my_source_directory: hier wird mit dem Schalter -z («zip», Komprimierungsalgorithmus) angegeben, dass zur Komprimierung der Dateien der Algorithmus gzip (GNU zip) verwendet werden soll. Das Komprimieren von Dateien spart Speicherplatz bei der Speicherung solcher Dateien. Wenn die Dateien jedoch an andere Benutzer übertragen werden sollen, unterstützt dies ein schnelleres Laden dieser Dateien.

Eine Datei .tar.gz kann entpackt werden, indem man den Schalter -z zur Extraktionskommando .tar-Dateien hinzufügt, das wir oben besprochen haben. Das sieht so aus:

tar -xfz my_file.tar.gz
Es sollte erwähnt werden, dass der Befehl , noch viele nützliche Schalter hat.

Bash-Alias

Bash-Alias (auch als Aliase oder Abkürzungen bezeichnet) dienen dazu, verkürzte Befehlsnamen oder Befehlsfolgen zu erstellen, deren Verwendung die Arbeit beschleunigt. Wenn Sie beispielsweise ein Alias buhaben, das dem Befehl python setup.py sdist bdist_wheel entspricht., um diesen Befehl aufzurufen, genügt es, diesen Alias zu verwenden.

Um einen solchen Alias zu erstellen, fügen Sie einfach den folgenden Befehl in die Datei ein ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Wenn in Ihrem System keine Datei existiert ~/.bash_profile, können Sie diese selbst erstellen, indem Sie den Befehl nutzen touch. Nach der Erstellung des Aliases starten Sie das Terminal neu, danach können Sie diesen Alias verwenden. In diesem Fall ersetzt die Eingabe von zwei Zeichen mehr als dreißig Zeichen des Befehls, der für die Erstellung Python-Pakete vorgesehen ist.

In ~/.bash_profile Sie können Aliase für beliebige häufig verwendete Befehle hinzufügen.

▍Fazit

In diesem Artikel haben wir 21 beliebte Bash-Befehle besprochen und über die Erstellung von Aliasen für Befehle gesprochen. Wenn Ihnen dieses Thema gefällt — hier ist eine Reihe von Veröffentlichungen, die sich mit Bash befassen. Hier Sie können eine pdf-Version dieser Veröffentlichungen finden. Außerdem, wenn Sie Bash lernen möchten, denken Sie daran, dass wie beim Lernen anderer Software-Systeme auch hier die Praxis wichtig ist.

Sehr geehrte Leser! Welche Befehle, die für Anfänger nützlich sind, würden Sie zu den in diesem Artikel behandelten hinzufügen?

Lesen Sie auch in unserem Blog die Reihe von Beiträgen über Bash-Skripte.

[в закладки] Bash für Anfänger: 21 nützliche Befehle

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster