Bash Pipe: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Was ist das?=
 
=Was ist das?=
*Die Bash-Pipe, symbolisiert durch das Vertikalstrich-Symbol "|", ermöglicht die Verbindung von mehreren Befehlen, indem die Ausgabe des vorherigen Befehls als Eingabe für den nächsten Befehl dient.
+
* Die Bash-Pipe, symbolisiert durch das Vertikalstrich-Symbol "|", ermöglicht die Verbindung von mehreren Befehlen, indem die Ausgabe des vorherigen Befehls als Eingabe für den nächsten Befehl dient.
*Durch die Verwendung von Pipes können komplexe Befehlsketten erstellt werden, bei denen die Ausgabe eines Befehls direkt an einen anderen Befehl weitergeleitet wird, um komplexe Aufgaben effizient zu erledigen.
+
* Durch die Verwendung von Pipes können komplexe Befehlsketten erstellt werden, bei denen die Ausgabe eines Befehls direkt an einen anderen Befehl weitergeleitet wird, um komplexe Aufgaben effizient zu erledigen.
=Die Pipe=
+
* Bei der Pipe wird der Standard Output des Kommandos links zum Standard Input des Kommandos rechts.
Bei der Pipe wird der Standard Output des Kommandos links zum Standard Input des Kommandos recht.
+
* '''cat < /etc/passwd | wc -l'''
*cat < /etc/passwd | wc -l
+
 
 +
34
 +
=Symbolbild=
 
{{#drawio:std8}}
 
{{#drawio:std8}}
 +
 +
* Die Pipe übergibt nur den Datenstrom, daher kennt '''wc''' beim obrigen Befehl nicht den Dateinamen
 +
* '''wc -l /etc/passwd'''
 +
 +
34 /etc/passwd
 +
 +
= Aufgaben =
 +
 +
== Anzeigen von nicht Systembenutzern ==
 +
 +
* Benutzer, die vom System angelegt wurden sollen nicht angezeigt werden (mit Ausnahme von root)
 +
* Nur der Benutzername und das Homeverzeichnis soll zu sehen sein
 +
<!-- * '''grep -v nologin /etc/passwd | grep -v /bin/false ''' -->
 +
 +
== Anzeigen der IP Adressen ==
 +
 +
* der Befehl '''ip address show''' soll so gefiltert werden, dass am Ende nur die IP Adresse ausgegeben wird
 +
<!-- * '''ip a''' | grep "inet " | tr -s " " | cut -f 3 -d " " -->
 +
 +
== Größte Ordner anzeigen ==
 +
* Zeigen Sie mithilfe von '''du''' und '''sort''' die größten Ordner unter ''/etc/'' an
 +
* ...und die Top 10 Dateien unter ''/usr/bin''
 +
 +
== pgreppier ==
 +
 +
* '''pgrep''' zeigt nur PID und den Prozessnamen an
 +
* mit '''ps alx''' kann man sich auch Dinge wie die ID des Elternprozesses anzeigen
 +
* Kombinieren Sie '''ps alx''', '''head''' und '''grep''', um ein besseres pgrep zu bauen
 +
<!-- * '''vim pgreppier''' -->
 +
 +
<!-- <syntaxhighlight lang=bash> -->
 +
<!-- #!/bin/bash -->
 +
 +
<!-- ps alx | head -n 1 && ps alx | grep $1 | grep -v grep -->
 +
<!-- </syntaxhighlight> -->
 +
 +
<!-- * '''chmod +x pgreppier''' -->
 +
<!-- * '''./pgreppier sshd''' -->

Aktuelle Version vom 18. Juni 2024, 14:40 Uhr

Was ist das?

  • Die Bash-Pipe, symbolisiert durch das Vertikalstrich-Symbol "|", ermöglicht die Verbindung von mehreren Befehlen, indem die Ausgabe des vorherigen Befehls als Eingabe für den nächsten Befehl dient.
  • Durch die Verwendung von Pipes können komplexe Befehlsketten erstellt werden, bei denen die Ausgabe eines Befehls direkt an einen anderen Befehl weitergeleitet wird, um komplexe Aufgaben effizient zu erledigen.
  • Bei der Pipe wird der Standard Output des Kommandos links zum Standard Input des Kommandos rechts.
  • cat < /etc/passwd | wc -l
34

Symbolbild

  • Die Pipe übergibt nur den Datenstrom, daher kennt wc beim obrigen Befehl nicht den Dateinamen
  • wc -l /etc/passwd
34 /etc/passwd

Aufgaben

Anzeigen von nicht Systembenutzern

  • Benutzer, die vom System angelegt wurden sollen nicht angezeigt werden (mit Ausnahme von root)
  • Nur der Benutzername und das Homeverzeichnis soll zu sehen sein

Anzeigen der IP Adressen

  • der Befehl ip address show soll so gefiltert werden, dass am Ende nur die IP Adresse ausgegeben wird

Größte Ordner anzeigen

  • Zeigen Sie mithilfe von du und sort die größten Ordner unter /etc/ an
  • ...und die Top 10 Dateien unter /usr/bin

pgreppier

  • pgrep zeigt nur PID und den Prozessnamen an
  • mit ps alx kann man sich auch Dinge wie die ID des Elternprozesses anzeigen
  • Kombinieren Sie ps alx, head und grep, um ein besseres pgrep zu bauen