Ich zeige Ihnen einige Tricks auf der Bash oder Z-Shell, die Ihnen bei der Produktivität helfen werden.
Sie wissen wahrscheinlich, dass die Bash eine Historie der von Ihnen eingegebenen Befehle führt, standardmäßig speichert sie 1000 Codezeilen. Sie können sie in den Terminaleinstellungen unter der Registerkarte “Verhalten” einsehen, dort sollte “Größe des Verlaufs (in Zeilen)” stehen.
Kommen wir nun zur praktischen Seite. Nachdem wir viele Befehle getippt haben, wollen wir uns mit dem Befehl“history” beschäftigen.
Wie Sie sehen, sind die einzelnen Befehle nummeriert, so dass wir sie nicht erneut eingeben müssen, sondern sie mit Hilfe der Verlaufserweiterung einfach erneut ausführen können, indem wir die Nummer verwenden.
Geben Sie das Zeichen “!” gefolgt von der Zeilennummer ein, um den Befehl auszuführen.
Um den zuletzt ausgeführten Befehl erneut auszuführen, geben Sie “!!” ein.
Standardmäßig wird der Befehlsverlauf in der Datei .bash_history im Home-Verzeichnis des Benutzers gespeichert. Zwei Umgebungsvariablen steuern die Größe der Historie: HISTSIZE und HISTFILESIZE.
HISTSIZE steuert die Anzahl der Befehle, die für die aktuelle Sitzung im Speicher abgelegt werden, und HISTFILESIZE legt fest, wie viele Befehle in der Verlaufsdatei gespeichert werden. Diese Variablen können entsprechend unseren Bedürfnissen bearbeitet und in der Bash-Konfigurationsdatei (.bashrc) gespeichert werden, die wir später noch genauer untersuchen werden.
Ein weiterer nützlicher Trick ist das Drücken der Tastenkombination STRG + R, genau wie die Suche nach einem Wort auf einer Seite mit STRG + F, aber dieses Mal in unserem Verlauf. Das nennt man Reverse-i-Suchfunktion. Das erste Ergebnis ist der letzte Befehl, der den von Ihnen eingegebenen Buchstaben/Wort enthält.
Was sind Umleitung und Verrohrung?
STDIN, STDOUT und STDERR
Jedes von der Befehlszeile aus ausgeführte Programm hat drei Datenströme, die als Kommunikationskanäle mit der externen Umgebung dienen. Diese Ströme sind wie folgt definiert:
Name des Stroms | Beschreibung |
0 Standard-Eingang (STDIN) | In das Programm eingespeiste Daten |
1 Standardausgang (STDOUT) | Ausgabe des Programms (Standardeinstellung: Terminal) |
2 Standardfehler (STDERR) | Fehlermeldungen (Standardeinstellung: Terminal) |
Um es auf die einfachste Art und Weise zu sagen: Die Umleitung dient der Umleitung von die Standardausgabe, die Standardeingabe oder den Standardfehler entweder in eine Datei oder einen Stream, z. B. ls > output.txt. (Hinweis: Wenn die Datei output.txt bereits existiert, wird sie überschrieben und kann nicht rückgängig gemacht werden)
Normalerweise würde es das Ergebnis/die Ausgabe auf dem Terminal anzeigen/ausdrucken, aber jetzt haben wir die Standardausgabe in die Datei output.txt umgeleitet, indem wir die > Betreiber.
┌──(kali㉿kali)-[~] └─$ cat ausgabe.txt Schreibtisch Dokumente Herunterladen Musik Hinweise output.txt Bilder Öffentlich Schablonen Videos
Wir können die Umleitung auch in die “andere Richtung” nutzen. Um Daten auf dem “anderen Weg”, d.h. aus einer Datei, zu senden, verwenden wir die < Betreiber. Im folgenden Beispiel leiten wir die Standardeingabe des“wc“-Befehls mit Daten um, die direkt aus der Datei stammen, die wir im vorherigen Beispiel erzeugt haben. “wc -m” zählt die Zeichen in der Datei.
Leiten wir den Standardfehler um, indem wir die Dateideskriptor-Nummern (die roten Zahlen in der Tabelle oben) in unserer Befehlszeile verwenden. Wir leiten die Fehlermeldung in eine Datei um, indem wir die Streamnummer 2 an das “>Operator”.
┌──(kali㉿kali)-[~] └─$ cat file.txt 2> error.txt
┌──(kali㉿kali)-[~] └─$ cat error.txt cat: file.txt: No such file or directory
Rohrleitungen
Rohre ( | ) werden verwendet, um die Ausgabe an die Eingabe eines anderen Programms oder Dienstprogramms zu übergeben. Die Pipe nimmt alles, was von cat error.txt auf die Standardausgabe geschrieben wird, und sendet es an die Standardeingabe von wc -m, die dann auf der Standardausgabe ausgegeben wird, sofern nichts anderes angegeben ist.
┌──(kali㉿kali)-[~] └─$ cat error.txt | wc -m 41
┌──(kali㉿kali)-[~] └─$ cat error.txt | wc -m > characters.txt
┌──(kali㉿kali)-[~] └─$ cat characters.txt 41
0 Comments