- Ich habe mich gefragt, wo ich etwas allgemeines über die
Befehlszeilenschnittstelle von Linux
und Bash finden und
lernen kann? -
Bisher habe ich solche Informationen
nur aus
Erfahrung gefunden, wie zum Beispiel- Für cat akzeptiert es ohne weitere
Argumente stdin-Eingaben.
Aber Sie können STDIN
explizit angeben, indem Sie den speziellen Namen-
verwenden , und beide
Wege sind gleichwertig.cat
kann auch
einen Dateinamen alscat filename
akzeptieren .
Ebenso-
Soll ein
Argument für den Dateinamen eingegeben werden? Ist
diese Verwendung von-
auch üblich für
andere Befehle? - In
chardet <<<somestring
,<<<
bedeutet, dass ein String als stdin verwendet wird,
dasselbe wieecho somestring |
. Ist dies die Verwendung von
chardet<<<
auch üblich? - In
cut -c 1-3,20,25- employees
, ist
der Weg1-3,20,25-
einen
Zahlenbereich für ein Argument angeben
auch in anderen Befehlen üblich?
- Für cat akzeptiert es ohne weitere
- Last but not least, sind diese
allgemeinen Ideen nur in
Bash oder in Linux und Unix oder
in Software, die getopt als
Befehlszeilen-Parser verwendet, gemeinsam?
Akzeptierte Antwort:
Ich empfehle, ein Buch über die Verwendung von Unix- oder Linux-Shells und Befehlszeilen zu lesen, um die grundlegende Verwendung zu erlernen und ein Gefühl für einige fortgeschrittene Funktionen zu bekommen. Dann können Sie sich der Referenzdokumentation zuwenden.
Die Verwendung bestimmter Befehle ist in deren Handbuch beschrieben. man cat
zeigt das Handbuch der cat
Befehl auf Ihrem System. Handbuchseiten sind normalerweise Referenzen, keine Tutorials, obwohl sie oft Beispiele enthalten. Unter Linux cat --help
zeigt eine knappe Verwendungsmeldung (für schnelles Durchlesen gedacht, wenn Sie die Grundlagen bereits kennen und eine Option für eine bestimmte Aufgabe finden möchten).
Der POSIX-Standard spezifiziert einen Mindestsatz an Befehlen, Optionen und Shell-Funktionen, die jedes Unix-System unterstützen soll. Die meisten aktuellen Systeme unterstützen im Großen und Ganzen POSIX:2004 (auch bekannt als Single UNIX Version 3 und Ausgabe 6 der Open Group Base Specifications). GNU-Software (die Dienstprogramme, die unter Linux zu finden sind) hat oft viele Erweiterungen zu diesem Mindestsatz.
Es gibt allgemeine Konventionen für Befehlszeilenargumente. POSIX spezifiziert Dienstprogrammkonventionen, denen die meisten Dienstprogramme folgen, insbesondere:
- Optionen bestehen aus
-
gefolgt von einem einzelnen Buchstaben;-ab
ist eine Abkürzung für-a -b
. --
bedeutet das Ende der Optionen. Zum Beispiel inrm -- -a
,-a
ist keine Option, sondern ein Operand, d.h. eine Datei, auf die reagiert werden soll, also entfernt dieser Befehl die Datei namens-a
.- Ein einzelner
-
steht für Standardeingabe, wo eine Eingabedatei erwartet wird. Es steht für Standardausgabe, wo eine Ausgabedatei erwartet wird.
GNU-Dienstprogramme und andere unterstützen auch „lange Optionen“ der Form --name
. Einige Dienstprogramme verstoßen gegen die allgemeine Konvention und akzeptieren Optionen mit mehreren Buchstaben mit einem einzigen vorangestellten Bindestrich:-name
.
Die Umleitung ist eine Shell-Funktion, daher finden Sie sie im Handbuch Ihrer Shell. <<<
Einen String als Standardeingabe zu verwenden ist eine ksh-Erweiterung, die auch von bash und zsh unterstützt wird. Solange die Shell dies unterstützt, kann es für jeden Befehl verwendet werden.