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.
→
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.
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 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
<
: umleitenstdin
.>
: umleitenstdout
.|
: 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 ../
.
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 mv
kann 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
: Erstellen Sie eine Kopie einer Datei
cp my_source_file target_directorymy_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.
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
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
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 stdin
Verwenden dieses Befehls als Teil der Pipeline.
tail my_file
: Liest Zeilen vom Ende der Datei. Dieser Befehl kann auch in einer Pipeline verwendet werden.
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.
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.
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.
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.
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_wheel
Um 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
В ~/.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 -
Liebe Leser! Welche für Anfänger nützlichen Befehle würden Sie zu den in diesem Artikel besprochenen hinzufügen?
→
Source: habr.com