[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle

Das Material, dessen Übersetzung wir heute veröffentlichen, richtet sich an diejenigen, die die Linux-Befehlszeile beherrschen möchten. Die Möglichkeit, dieses Tool effektiv einzusetzen, kann viel Zeit sparen. Insbesondere werden wir hier über die Bash-Shell und 21 nützliche Befehle sprechen. Wir werden auch darüber sprechen, wie man Befehlsflags und Bash-Aliase verwendet, um die Eingabe langer Anweisungen zu beschleunigen.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle

Lesen Sie in unserem Blog auch eine Reihe von Veröffentlichungen über Bash-Skripte

Bedingungen

Wenn Sie lernen, mit der Linux-Befehlszeile zu arbeiten, werden Sie auf viele Konzepte stoßen, die bei der Navigation hilfreich sind. 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 geschlossen.

Linux ist das beliebteste Unix-ähnliche Betriebssystem. Es wird mittlerweile auf vielen Geräten verwendet, darunter auch Computern.

Terminal (Terminal) oder Terminalemulator ist ein Programm, das Zugriff auf das Betriebssystem ermöglicht. Sie können mehrere Terminalfenster gleichzeitig geöffnet haben.

Schale (Shell) ist ein Programm, mit dem Sie in einer speziellen Sprache geschriebene Befehle an das Betriebssystem senden können.

Bash steht für Bourne Again Shell. Es ist die am häufigsten verwendete Shell-Sprache für die Interaktion mit dem Betriebssystem. Außerdem ist die Bash-Shell die Standard-Shell unter macOS.

Befehlszeilenschnittstelle (Command Line Interface, CLI) ist eine Methode der Interaktion zwischen einer Person und einem Computer, bei der der Benutzer Befehle über die Tastatur eingibt und der Computer, der diese Befehle ausführt, dem Benutzer Nachrichten in Textform anzeigt. Der Hauptzweck der CLI besteht darin, aktuelle Informationen über bestimmte Entitäten, beispielsweise Dateien, abzurufen und mit Dateien zu arbeiten. Die Befehlszeilenschnittstelle ist von der grafischen Benutzeroberfläche (GUI) zu unterscheiden, die hauptsächlich die Maus verwendet. Die Befehlszeilenschnittstelle wird oft einfach als Befehlszeile bezeichnet.

Skript (Skript) ist ein kleines Programm, das eine Folge von Shell-Befehlen enthält. Skripte werden in Dateien geschrieben und können wiederholt verwendet werden. Beim Schreiben von Skripten können Sie Variablen, Bedingungen, Schleifen, Funktionen und andere Funktionen verwenden.

Nachdem wir uns nun mit den wichtigen Begriffen befasst haben, möchte ich darauf hinweisen, dass ich hier die Begriffe „Bash“, „Shell“ und „Befehlszeile“ sowie die Begriffe „Verzeichnis“ und „Ordner“ austauschbar verwende.

Standard Bäche, die wir hier verwenden werden, ist die Standardeingabe (Standardeingabe, stdin), Standardausgabe (Standardausgabe, stdout) und Standardfehlerausgabe (Standardfehler, stderr).

Wenn Sie in den Beispielbefehlen, die unten angegeben werden, etwas finden wie my_whatever - Das bedeutet, dass dieses Fragment durch etwas von Ihnen ersetzt werden muss. Zum Beispiel der Name einer Datei.

Bevor wir nun mit der Analyse der Befehle fortfahren, denen dieses Material gewidmet ist, werfen wir einen Blick auf ihre Liste und ihre kurzen Beschreibungen.

21 Bash-Befehle

▍Informationen erhalten

  • man: Zeigt das Benutzerhandbuch (Hilfe) für den Befehl an.
  • pwd: Zeigt Informationen zum Arbeitsverzeichnis an.
  • ls: Zeigt den Inhalt eines Verzeichnisses an.
  • ps: Ermöglicht das Anzeigen von Informationen zu laufenden Prozessen.

▍Manipulation des Dateisystems

  • cd: Arbeitsverzeichnis ändern.
  • touch: eine Datei erstellen.
  • mkdir: Erstellen Sie ein Verzeichnis.
  • cp: Eine Datei kopieren.
  • mv: Eine Datei verschieben oder löschen.
  • ln: Link erstellen.

▍E/A-Umleitung und Pipelines

  • <: umleiten stdin.
  • >: umleiten stdout.
  • |: Die Ausgabe eines Befehls wurde an die Eingabe eines anderen Befehls weitergeleitet.

▍Dateien lesen

  • head: Den Anfang der Datei lesen.
  • tail: Ende der Datei lesen.
  • cat: Eine Datei lesen und deren Inhalt auf dem Bildschirm ausgeben oder Dateien verketten.

▍Dateien löschen, Prozesse stoppen

  • rm: Eine Datei löschen.
  • kill: Stoppen Sie den Vorgang.

▍Suchen

  • grep: Suche nach Informationen.
  • ag: erweiterter Befehl zum Suchen.

▍Archivierung

  • tar: Archive erstellen und mit ihnen arbeiten.

Lassen Sie uns ausführlicher über diese Befehle sprechen.

Teamdetails

Befassen wir uns zunächst mit den Befehlen, deren Ergebnisse im Formular ausgegeben werden stdout. Normalerweise werden diese Ergebnisse in einem Terminalfenster angezeigt.

▍Informationen erhalten

man command_name: Zeigt die Befehlsanleitung an, d. h. Hilfeinformationen.

pwd: Zeigt den Pfad zum aktuellen Arbeitsverzeichnis an. Bei der Arbeit mit der Kommandozeile muss der Benutzer oft genau herausfinden, wo im System er sich befindet.

ls: Zeigt den Inhalt eines Verzeichnisses an. Dieser Befehl wird auch häufig verwendet.

ls -a: zeige versteckte Dateien. Flagge hier angewendet -a команды ls. Die Verwendung von Flags hilft dabei, das Verhalten der Befehle anzupassen.

ls -l: Detaillierte Informationen zu Dateien anzeigen.

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

ps: Laufende Prozesse anzeigen.

ps -e: Zeigt Informationen zu allen laufenden Prozessen an, nicht nur zu denen, die mit der aktuellen Benutzer-Shell verknüpft sind. Dieser Befehl wird häufig in dieser Form verwendet.

▍Manipulation des Dateisystems

cd my_directory: Arbeitsverzeichnis ändern zu my_directory. Um im Verzeichnisbaum eine Ebene nach oben zu gelangen, verwenden Sie my_directory relativer Pfad ../.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
cd-Befehl

touch my_file: Dateierstellung my_file entlang des vorgegebenen Weges.

mkdir my_directory: Einen Ordner erstellen my_directory entlang des vorgegebenen Weges.

mv my_file target_directory: Datei bewegen my_file zum Ordner target_directory. Bei der Angabe des Zielverzeichnisses müssen Sie den absoluten Pfad dazu verwenden (und keine Konstruktion wie ../).

Team mvkann auch zum Umbenennen von Dateien oder Ordnern verwendet werden. Es könnte zum Beispiel so aussehen:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: Erstellen Sie eine Kopie einer Datei my_source_file und legen Sie es in einen Ordner target_directory.

ln -s my_source_file my_target_file: Einen symbolischen Link erstellen my_target_file pro Datei my_source_file. Wenn Sie den Link ändern, ändert sich auch die Originaldatei.

Wenn die Datei my_source_file wird dann gelöscht my_target_file wird bleiben. Flagge -s команды ln ermöglicht das Erstellen von Links für Verzeichnisse.

Lassen Sie uns nun über E/A-Umleitung und Pipelines sprechen.

▍E/A-Umleitung und Pipelines

my_command < my_file: ersetzt den Standard-Eingabedateideskriptor (stdin) pro Datei my_file. Dies kann nützlich sein, wenn der Befehl auf eine Eingabe über die Tastatur wartet und diese Daten bereits in einer Datei gespeichert sind.

my_command > my_file: Leitet die Ergebnisse des Befehls um, d. h. das, was normalerweise hineingehen würde stdout und auf dem Bildschirm in eine Datei ausgeben my_file. Wenn die Datei my_file existiert nicht – es wird erstellt. Wenn die Datei vorhanden ist, wird sie überschrieben.

Zum Beispiel nach der Ausführung des Befehls ls > my_folder_contents.txt Es wird eine Textdatei erstellt, die eine Liste der Inhalte im aktuellen Arbeitsverzeichnis enthält.

Wenn anstelle des Symbols > die Konstruktion nutzen >>vorausgesetzt, dass die Datei, in die die Ausgabe des Befehls umgeleitet wird, existiert, wird diese Datei nicht überschrieben. Die Daten werden am Ende dieser Datei hinzugefügt.

Werfen wir nun einen Blick auf die Datenpipeline-Verarbeitung.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
Die Ausgabe eines Befehls wird in die Eingabe eines anderen Befehls eingespeist. Es ist, als würde man ein Rohr mit dem anderen verbinden

first_command | second_command: Fördersymbol, |, wird verwendet, um die Ausgabe eines Befehls an einen anderen Befehl zu senden. Wohin der Befehl auf der linken Seite der beschriebenen Struktur sendet stdout, Hineinfallen stdin Befehl rechts neben dem Pipeline-Symbol.

Unter Linux können Daten mit nahezu jedem wohlgeformten Befehl weitergeleitet werden. Es wird oft gesagt, dass alles in Linux eine Pipeline ist.

Mithilfe des Pipeline-Symbols können Sie mehrere Befehle verketten. Es sieht aus wie das:

first_command | second_command | third_command

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
Eine Pipeline aus mehreren Befehlen kann mit einer Pipeline verglichen werden

Beachten Sie, dass sich beim Befehl links neben dem Symbol befindet |, gibt etwas aus an stdout, was sie ausgibt, ist sofort verfügbar als stdin zweite Mannschaft. Das heißt, es stellt sich heraus, dass es sich bei der Verwendung der Pipeline um die parallele Ausführung von Befehlen handelt. Manchmal kann dies zu unerwarteten Ergebnissen führen. Details hierzu können nachgelesen werden hier.

Lassen Sie uns nun über das Lesen von Daten aus Dateien und deren Anzeige auf dem Bildschirm sprechen.

▍Dateien lesen

head my_file: Liest Zeilen vom Anfang einer Datei und gibt sie auf dem Bildschirm aus. Sie können nicht nur den Inhalt der Dateien lesen, sondern auch die Ausgabe der Befehle stdinVerwenden dieses Befehls als Teil der Pipeline.

tail my_file: Liest Zeilen vom Ende der Datei. Dieser Befehl kann auch in einer Pipeline verwendet werden.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
Kopf (Kopf) ist vorne und Schwanz (Schwanz) ist hinten

Wenn Sie mithilfe der Pandas-Bibliothek mit Daten arbeiten, dann sind dies die Befehle head и tail dürfte Ihnen bekannt vorkommen. Wenn dies nicht der Fall ist, werfen Sie einen Blick auf die obige Abbildung, dann werden Sie sie sich leicht merken.

Erwägen Sie andere Möglichkeiten zum Lesen von Dateien. Lassen Sie uns über den Befehl sprechen cat.

Team cat Gibt entweder den Inhalt einer Datei auf dem Bildschirm aus oder verkettet mehrere Dateien. Es hängt davon ab, wie viele Dateien beim Aufruf an diesen Befehl übergeben werden.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
Katzenbefehl

cat my_one_file.txt: Wenn eine einzelne Datei an diesen Befehl übergeben wird, wird sie an ausgegeben stdout.

Wenn Sie ihm zwei oder mehr Dateien geben, verhält es sich anders.

cat my_file1.txt my_file2.txt: Nachdem mehrere Dateien als Eingabe empfangen wurden, verkettet dieser Befehl deren Inhalte und zeigt an, was passiert ist stdout.

Wenn das Ergebnis der Dateiverkettung als neue Datei gespeichert werden muss, können Sie den Operator verwenden >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Lassen Sie uns nun darüber sprechen, wie Sie Dateien löschen und Prozesse stoppen.

▍Dateien löschen, Prozesse stoppen

rm my_file: Datei löschen my_file.

rm -r my_folder: löscht einen Ordner my_folder und alle darin enthaltenen Dateien und Ordner. Flagge -r gibt an, dass der Befehl im rekursiven Modus ausgeführt wird.

Um zu verhindern, dass das System jedes Mal, wenn eine Datei oder ein Ordner gelöscht wird, eine Bestätigung anfordert, verwenden Sie das Flag -f.

kill 012345: Stoppt den angegebenen laufenden Prozess und gibt ihm Zeit, ordnungsgemäß herunterzufahren.

kill -9 012345: Beendet den angegebenen laufenden Prozess zwangsweise. Flagge anzeigen -s SIGKILL bedeutet dasselbe wie die Flagge -9.

▍Suchen

Sie können verschiedene Befehle verwenden, um nach Daten zu suchen. Insbesondere - grep, ag и ack. Beginnen wir unsere Bekanntschaft mit diesen Befehlen mit grep. Dabei handelt es sich um einen bewährten, zuverlässigen Befehl, der jedoch langsamer als andere und nicht so komfortabel zu verwenden ist.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
grep-Befehl

grep my_regex my_file: sucht my_regex в my_file. Wenn eine Übereinstimmung gefunden wird, wird für jede Übereinstimmung die gesamte Zeichenfolge zurückgegeben. Default my_regex als regulärer Ausdruck behandelt.

grep -i my_regex my_file: Die Suche wird ohne Berücksichtigung der Groß-/Kleinschreibung durchgeführt.

grep -v my_regex my_file: Gibt alle Zeilen zurück, die nicht enthalten my_regex. Flagge -v bedeutet Inversion, es ähnelt dem Operator NOT, kommt in vielen Programmiersprachen vor.

grep -c my_regex my_file: Gibt Informationen über die Anzahl der Übereinstimmungen für das gesuchte Muster in der Datei zurück.

grep -R my_regex my_folder: führt eine rekursive Suche in allen Dateien durch, die sich im angegebenen Ordner und in den darin verschachtelten Ordnern befinden.

Lassen Sie uns nun über das Team sprechen ag. Sie kam später grep, es ist schneller, es ist bequemer, damit zu arbeiten.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
ag-Befehl

ag my_regex my_file: Gibt Informationen über Zeilennummern und die Zeilen selbst zurück, in denen Übereinstimmungen gefunden wurden my_regex.

ag -i my_regex my_file: Die Suche wird ohne Berücksichtigung der Groß-/Kleinschreibung durchgeführt.

Team ag Verarbeiten Sie die Datei automatisch .gitignore und schließt aus der Ausgabe aus, was in den in dieser Datei aufgeführten Ordnern oder Dateien enthalten ist. Es ist sehr bequem.

ag my_regex my_file -- skip-vcs-ignores: Inhalte automatischer Versionskontrolldateien (wie .gitignore) wird bei der Suche nicht berücksichtigt.

Darüber hinaus, um es dem Team mitzuteilen ag Auf welchen Dateipfaden Sie von der Suche ausschließen möchten, können Sie eine Datei erstellen .agignore.

Am Anfang dieses Abschnitts haben wir den Befehl erwähnt ack. Mannschaften ack и ag sehr ähnlich, wir können sagen, dass sie zu 99 % austauschbar sind. Allerdings das Team ag Funktioniert schneller, deshalb habe ich es beschrieben.

Lassen Sie uns nun über die Arbeit mit Archiven sprechen.

▍Archivierung

tar my_source_directory: Verkettet Dateien aus einem Ordner my_source_directory in eine einzige Tarball-Datei. Solche Dateien sind nützlich, um große Dateimengen an jemanden zu übertragen.

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle
tar-Befehl

Die von diesem Befehl generierten Tarball-Dateien sind Dateien mit der Erweiterung .tar (Bandarchiv). Die Tatsache, dass das Wort „tape“ (Band) im Namen des Befehls und in der Erweiterung der Namen der von ihm erstellten Dateien versteckt ist, zeigt an, wie lange dieser Befehl bereits existiert.

tar -cf my_file.tar my_source_directory: Erstellt eine Tarball-Datei mit dem Namen my_file.tar mit Ordnerinhalten my_source_directory. Flagge -c steht für „create“ (Erschaffung) und die Flagge -f als „Datei“ (Datei).

Zum Extrahieren von Dateien .tar-file, verwenden Sie den Befehl tar mit Fahnen -x („extrahieren“, Extraktion) und -f ("Datei", Datei).

tar -xf my_file.tar: Extrahiert Dateien aus my_file.tar in das aktuelle Arbeitsverzeichnis.

Lassen Sie uns nun darüber sprechen, wie man komprimiert und dekomprimiert .tar-Dateien.

tar -cfz my_file.tar.gz my_source_directory: hier mit der Flagge -z („zip“, Komprimierungsalgorithmus) gibt an, dass der Algorithmus zum Komprimieren von Dateien verwendet werden soll gzip (GNUzip). Durch die Dateikomprimierung wird beim Speichern solcher Dateien Speicherplatz gespart. Wenn die Dateien beispielsweise an andere Benutzer übertragen werden sollen, trägt dies zu einem schnelleren Download solcher Dateien bei.

Datei entpacken .tar.gz Sie können eine Flagge hinzufügen -z zum Befehl zum Extrahieren von Inhalten .tar-Dateien, die wir oben besprochen haben. Es sieht aus wie das:

tar -xfz my_file.tar.gz
Es ist zu beachten, dass das Team tar Es gibt viele weitere nützliche Flags.

Bash-Aliase

Bash-Aliase (auch Aliase oder Abkürzungen genannt) dienen dazu, abgekürzte Namen von Befehlen oder deren Sequenzen zu erstellen, deren Verwendung anstelle regulärer Befehle die Arbeit beschleunigt. Wenn Sie einen Alias ​​haben bu, wodurch der Befehl ausgeblendet wird python setup.py sdist bdist_wheelUm diesen Befehl aufzurufen, reicht es aus, diesen Alias ​​​​zu verwenden.

Um einen solchen Alias ​​zu erstellen, fügen Sie einfach den folgenden Befehl zur Datei hinzu ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Wenn Ihr System nicht über die Datei verfügt ~/.bash_profile, dann können Sie es mit dem Befehl selbst erstellen touch. Nachdem Sie den Alias ​​erstellt haben, starten Sie das Terminal neu. Anschließend können Sie diesen Alias ​​verwenden. In diesem Fall ersetzt die Eingabe von zwei Zeichen die Eingabe von mehr als drei Dutzend Zeichen des dafür vorgesehenen Befehls Baugruppen Python-Pakete.

В ~/.bash_profile Sie können Aliase für alle häufig verwendeten Befehle hinzufügen.

▍Ergebnisse

In diesem Beitrag haben wir 21 beliebte Bash-Befehle behandelt und über das Erstellen von Befehlsaliasen gesprochen. Wenn Sie sich für dieses Thema interessieren - hier eine Reihe von Veröffentlichungen, die Bash gewidmet sind. Hier Eine PDF-Version dieser Publikationen finden Sie hier. Wenn Sie Bash erlernen möchten, denken Sie außerdem daran, dass Übung der Schlüssel zum Erfolg ist, wie bei jedem anderen Programmiersystem auch.

Liebe Leser! Welche für Anfänger nützlichen Befehle würden Sie zu den in diesem Artikel besprochenen hinzufügen?

Lesen Sie in unserem Blog auch eine Reihe von Veröffentlichungen über Bash-Skripte

[mit Lesezeichen versehen] Bash für Anfänger: 21 nützliche Befehle

Source: habr.com

Kommentar hinzufügen