bash Befehle und bash scripting

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

bash Befehle und bash scripting

Beitrag von dmant » 23.10.2017 11:49:53

Hallo,

Ich interessiere mich für das bash scripting. Hin und wieder würde ich Mir gerne mal kleine scripte schreiben jedoch fehlt es mir an dem Wissen der Möglichkeit bzw weiß ich nicht wonach ich suchen muss um mir das entsprechende durchzulesen. Da ich hier kein passenden Thema gefunden habe hoffe ich bei Programme richtig zu sein. So eine Art sammel thread.

Derzeit suche ich nach einer Möglichkeit Text zu ersetzten. Ähnlich str_replace aus php.

Ich Paste des öfteren Dateien direkt von der bash mit termbin. Um nicht immer

Code: Alles auswählen

cat DATEINAME | nc termbin.com 9999
zu schreiben, erstelle ich mir ein kleines Script paste.sh unter /usr/bin/ mit folgendem Inhalt

Code: Alles auswählen

#!/bin/bash

cat $1 | nc termbin.com 9999
Da es ja hin und wieder vorkommt das man Code mit Passwörter pastet muss ich jedesmal alles was nicht gepastet werden soll "x" en. Hierfür suche ich nun eine Möglichkeit das ganze automatisch zu machen. Also z.b. rufe ich auf

Code: Alles auswählen

paste DATEI ersetzte1 ersetzte2
also alles was nach der DATEI folgt, ob eins oder mehrere eingaben, wird automatisch in der Datei gesucht, mit XXXXXX ersetzt und erst dann an termbin.com übergeben.

Wie bzw womit kann ich das erreichen?

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: bash Befehle und bash scripting

Beitrag von heisenberg » 23.10.2017 12:28:03

Ein exzellentes Buch zum lernen der Shellprogrammierung, was auch online komplett lesbar ist, ist dieses hier:

Shell-Programmierung von Jürgen Wolf
Einführung, Praxis, Referenz(Rheinwerk Verlag)

http://openbook.rheinwerk-verlag.de/she ... ammierung/
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

DeletedUserReAsG

Re: bash Befehle und bash scripting

Beitrag von DeletedUserReAsG » 23.10.2017 12:38:27

Ansonsten gibt es auf tldp.org den Beginners-Guide und das Advanced Tutorial.

Die Sache mit nc würde ich eher als Alias anlegen, Suchen& Ersetzen ist die Domäne von sed. Wird beides auch in der erwähnten Doku behandelt.

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: bash Befehle und bash scripting

Beitrag von hikaru » 23.10.2017 13:50:27

Nur als Hinweis:
Wenn du Passwörter als Übergabeparameter verwendest, dann landen diese Passwörter im Klartext in deiner .bash_history.

Zur eigentlichen Anfrage schließe ich mich niemand an. String-Ersetzungen sind Sache von sed.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: bash Befehle und bash scripting

Beitrag von dmant » 23.10.2017 22:04:05

Hallo und danke :) sed hat mich zum erfolgt gebracht. Nun suche ich eine Möglichkeit nur einen bestimmten Teil einer Ausgabe in ein array einzulesen. Also z.b. ein

Code: Alles auswählen

nmap localhost
Davon will ich jetzt nur die Liste in einem Array haben, also nur

Code: Alles auswählen

22/tcp    open  ssh
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
Ich würde das dann in eine Datei schreiben und diese zeilenweise einlesen aber wie schneide ich den kompletten Anfang von nmap ab?

Danke

owl102

Re: bash Befehle und bash scripting

Beitrag von owl102 » 23.10.2017 22:23:29

niemand hat geschrieben: ↑ zum Beitrag ↑
23.10.2017 12:38:27
Ansonsten gibt es auf tldp.org den Beginners-Guide und das Advanced Tutorial.
Ersteres finde ich mäßig (aber ok), letzteres ist IMHO gruselig. Der "Advanced Bash Scripting Guide" ist kein Guide, sondern eine Ansammelung von Sammelsurium, von dem sehr viel veraltet ist und mit Bash 4 viel einfacher und eleganter gelöst werden könnte. Außerdem ist er voller Lösungen, wo sich mir die Zehennägel aufstellen, weil sie Blaupausen dafür sind, wie man es eigentlich nicht machen sollte bzw. wie man sich am besten selber in den Fuß schießt. (Für denjenigen, der schon Bash Scripting kann, sind allerdings einige lesenswerte Ausführungen bzw. Beobachtungen dabei.)

Bisher habe ich nichts besseres als http://mywiki.wooledge.org/BashGuide gefunden. Kompakt, und er erklärt sehr viel, wie man es macht und vor allem auch, warum man es "so" und nicht anders macht. Seine FAQ ist IMHO auch Gold wert: http://mywiki.wooledge.org/BashFAQ . ABER: Wer (wie Meillo :mrgreen: ) möchte, daß seine Scripte auch unter SunOS 3 laufen, ist hier fehl am Platze. Denn sowohl das gute als auch das schlechte an diesem Bash Guide ist, daß er gnadenlos alle Vorteile/Features der Bash ausnutzt. Warum auch nicht, schließlich ist es ein "Bash Guide" und kein "Shell Scripting Guide".
Zuletzt geändert von owl102 am 24.10.2017 10:48:47, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash Befehle und bash scripting

Beitrag von Meillo » 24.10.2017 09:55:39

owl102 hat geschrieben: ↑ zum Beitrag ↑
23.10.2017 22:23:29
niemand hat geschrieben: ↑ zum Beitrag ↑
23.10.2017 12:38:27
Ansonsten gibt es auf tldp.org den Beginners-Guide und das Advanced Tutorial.
Ersteres finde ich mäßig (aber ok), letzteres ist IMHO gruselig. Der "Advanced Bash Scripting Guide" ist kein Guide, sondern eine Ansammelung von Sammelsurium, von dem sehr viel veraltet ist und mit Bash 4 viel einfacher und eleganter gelöst werden könnte. Außerdem ist er voller Lösungen, wo sich mir die Zehennägel aufstellen, weil sie Blaupausen dafür sind, wie man es eigentlich nicht machen sollte bzw. wie man sich am besten selber in den Fuß schießt.
Ich habe meine Meinung zu des Shellscripting-Guides von tldp.org schonmal kundgetan: viewtopic.php?f=15&t=155642#p1043857

Falls man schon Programmieren kann und wirkliches Verstaendnis sucht, dann sollte man IMO besser Buecher ueber Shells statt Buecher ueber Shellprogrammierung lesen, weil erstere die unterliegenden Konzepte besser vermitteln. Mir jedenfalls hat insbesondere Bolsky & Korn's Buch zur Korn-Shell viel gebracht. Aber das ist sicher nicht fuer jeden das passende Buch. Kommt halt darauf an, ob man der Typ ist, der Fahrradfahren anhand der unterliegenden Physik lernt statt durch Trial'n'Error. :-D

Bisher habe ich nichts besseres als http://mywiki.wooledge.org/BashGuide gefunden. Kompakt, und er erklärt sehr viel, wie man es macht und vor allem auch, warum man es "so" und nicht anders macht.
Deine Beschreibung hoert sich gut an. Mit so einer Herangehensweise erreicht man viel.


Btw:
ABER: Wer (wie Meillo :mrgreen: ) möchte, daß seine Scripte auch unter SunOS 3 laufen, [...]
Nur um das klarzustellen, ich habe kein grosses Interesse daran, dass meine Scripte auf SunOS 3 laufen, weil das Sonderloesungen (aka. die autoconf-Art von Kompatibilitaet) erfordert. Ich strebe mehr nach POSIX-Kompatiblitaet. Selbst in SunOS 5.9 kennt deren /bin/sh noch kein `test -e'! http://marmaro.de/lue/txt/2011-05-06.txt

Ich mag halt keine Umsetzungen, die nur mit genau einer der modernen Bourne-Shells laufen.
Use ed once in a while!

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: bash Befehle und bash scripting

Beitrag von dmant » 24.10.2017 10:10:55

Ich wollte hier keine Diskussion breittreten *g* aber interessant zu lesen.

Ich habe mir nun sowas gebastelt

https://nopaste.dmant.ovh/?v=Dhzfshbdhjcd

Es funktioniert. "was" genau das nun ist ist egal. Es erfüllt seinen Zweck.

owl102

Re: bash Befehle und bash scripting

Beitrag von owl102 » 24.10.2017 10:23:19

Meillo hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 09:55:39
Nur um das klarzustellen, ich habe kein grosses Interesse daran, dass meine Scripte auf SunOS 3 laufen
Mein Hinweis war nicht ernst gemeint. (Daß wir bezüglich Humor irgendwie inkompatibel sind, hatten wir ja schon einmal festgestellt.)

Und dann muß ich dir natürlich recht geben, ich hätte mir wenigstens die Mühe geben können, zu recherchieren, ab welcher Version von SunOS die sh POSIX-kompatibel ist.

Wo wir gerade bei POSIX-Kompatibilität sind: Du schreibst in dem anderen (von dir verlinkten) Thread, daß du viele Bücher zum Thema Shellscripting nur mittelmäßig findest. Kennst du "Classic Shell Scripting" aus dem O'Reilly Verlag? Das ist definitiv kein Buch für Leute, die man eben schnell Shell Scripting lernen möchten, die werden das Buch spätestens nach 20 Seiten in die Ecke werfen. Stattdessen wird viel Wert darauf gelegt, dazugehöriges Hintergrundwissen zu vermitteln und Kompatibilitätsprobleme aufzuzeigen. Ich zumindest finde dieses Buch sehr gut und es hebt sich IMHO sehr positiv von den üblichen "Wir lernen Shell Scripting" Büchern ab.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash Befehle und bash scripting

Beitrag von Meillo » 24.10.2017 10:24:30

dmant hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:10:55
https://nopaste.dmant.ovh/?v=Dhzfshbdhjcd
Was ich immer wieder interessant finde ist der Glaube von Neulingen, dass Shellvariablen in Grossbuchstaben sein muessten oder sollten. Dabei ist es vielmehr gegenteilig, dass man naemlich die Variablennamen in Grossbuchstaben eher als reservierten Namensraum fuer das System ansehen und man alle eigenen Variablen in Kleinbuchstaben benennen sollte.

Nun, ich verstehe schon den Hintergrund -- weil die Variablen mit denen man zuerst in Kontakt kommt eben in Grossbuchstaben sind und dann imitiert man natuerlich -- aber interessant finde ich es trotzdem immer wieder.



Ich bin aber durchaus auch ein Freund von solchem Pragmatismus, zu dem richtige Informatiker oft schon gar nicht mehr faehig sind, weil sie alles zu korrekt machen wollen:
dmant hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:10:55
Es funktioniert. "was" genau das nun ist ist egal. Es erfüllt seinen Zweck.
Use ed once in a while!

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash Befehle und bash scripting

Beitrag von Meillo » 24.10.2017 10:32:15

owl102 hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:23:19
Mein Hinweis war nicht ernst gemeint. (Daß wir bezüglich Humor irgendwie inkompatibel sind, hatten wir ja schon einmal festgestellt.)
Diesmal ist das schon richtig angekommen, es war nur ein zu passender Aufhaenger fuer mich. ;-)
Wo wir gerade bei POSIX-Kompatibilität sind: Du schreibst in dem anderen (von dir verlinkten) Thread, daß du viele Bücher zum Thema Shellscripting nur mittelmäßig findest. Kennst du "Classic Shell Scripting" aus dem O'Reilly Verlag? Das ist definitiv kein Buch für Leute, die man eben schnell Shell Scripting lernen möchten, die werden das Buch spätestens nach 20 Seiten in die Ecke werfen. Stattdessen wird viel Wert darauf gelegt, dazugehöriges Hintergrundwissen zu vermitteln und Kompatibilitätsprobleme aufzuzeigen. Ich zumindest finde dieses Buch sehr gut und es hebt sich IMHO sehr positiv von den üblichen "Wir lernen Shell Scripting" Büchern ab.
Nein, das kenne ich noch nicht. Hoert sich aber gut an. Das Cover kommt mir irgendwie bekannt vor. Vielleicht sollte ich mal in meinem Regal zuschause gucken, ob es da nicht vielleicht ungelesen steht. ;-) (Hab mal eine Menge alter Klassiker abgestaubt, die heutige Informatikstudenten nicht mehr lesen wollen. Ich arbeite die nun nach und nach ab. Dieses Buch ist zwar von 2008, koennte aber evtl. trotzdem dabei sein.) Guter Tipp jedenfalls! :THX:
Use ed once in a while!

owl102

Re: bash Befehle und bash scripting

Beitrag von owl102 » 24.10.2017 10:32:45

Meillo hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:24:30
Was ich immer wieder interessant finde ist der Glaube von Neulingen, dass Shellvariablen in Grossbuchstaben sein muessten oder sollten.
Es sind ja auch kleingeschriebene Variablen dabei. Wenn man mal von "INHALT" absieht, ist sogar System dahinter: Konstanten komplett groß, Variablen klein. Das muß nichts mit Glaube von Neulingen zu tun haben, es kann auch einfach jahrzehnte Gewohnheit aus dem C/C++/Java-Umfeld sein, die man nicht so einfach ablegen kann/mag.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: bash Befehle und bash scripting

Beitrag von dmant » 24.10.2017 10:41:00

owl102 hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:32:45
Das muß nichts mit Glaube von Neulingen zu tun haben, es kann auch einfach jahrzehnte Gewohnheit aus dem C/C++/Java-Umfeld sein, die man nicht so einfach ablegen kann/mag.
Jap. Gewohnheit.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash Befehle und bash scripting

Beitrag von Meillo » 24.10.2017 10:44:39

owl102 hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:32:45
Meillo hat geschrieben: ↑ zum Beitrag ↑
24.10.2017 10:24:30
Was ich immer wieder interessant finde ist der Glaube von Neulingen, dass Shellvariablen in Grossbuchstaben sein muessten oder sollten.
Es sind ja auch kleingeschriebene Variablen dabei. Wenn man mal von "INHALT" absieht, ist sogar System dahinter: Konstanten komplett groß, Variablen klein. Das muß nichts mit Glaube von Neulingen zu tun haben, es kann auch einfach jahrzehnte Gewohnheit aus dem C/C++/Java-Umfeld sein, die man nicht so einfach ablegen kann/mag.
Oh ja, stimmt. Die hab ich uebersehen. Dann macht das natuerlich Sinn. Hab zugegebenermassen nicht so genau hingeschaut. :roll:
Use ed once in a while!

Antworten