 So, ja. Vielen Dank, dass ihr alle hier seid. Es geht ja heute um, was der Unix-Opa noch wusste. Das ist ein bisschen wie Eulen nach Athen tragen, hier vor einer Hacker-Veranstaltung zu sagen, wir reden mal über Basics, aber gerade das, finde ich, ist heute wichtig, weil wir haben heutzutage mal Werkstudenten in der Firma und dann heißt, ja, unser Prof hat uns mal gesagt, ja, mach das mal mit Unix, mit Linux ist voll gut, lade das mal runter, fang mal an. Dann schwimmen die Jungs so ein bisschen und Mädels und sagen, oh, das ist ja alles ganz kompliziert oder warum soll ich das so machen? Und heute haben wir mal überlegt, was bringt das überhaupt? Wo gibt es vielleicht den einen anderen Trick, den man mal gebrauchen kann im alltäglichen Doing? Es geht ein bisschen um im Bett, es geht ein bisschen um die Administration. Ich glaube, für jeden mal was dabei, mal so grob in die Runde. Wer ist so in den 2000ern geboren? Mal die Hand hoch, bitte. Aha, okay. In den 90ern geboren. Ja, das werden wir schon mal mehr. Wer ist in den 80ern geboren? Gut. Und dann, genau, da werde ich auf, sonst wird es politisch incorrect. Deshalb, ja, wir haben also ein gewischtes Publikum, ich habe gedacht, mir werden hier die Obers, ist auch gut. Freut mich, dass natürlich auch Leute hier sind, die vielleicht auch ein bisschen älter sind. Wir haben einen schönen Altersdurchschnitt hier und sehen mal von allen Seiten das Ganze. Ja, dann gebe ich mal an meinen Kollegen. Das ist der Fabos, ich bin der Peter und er fängt jetzt erst mal an und wir schauen mal, wie weit er durch die Vorlesung kommt oder durch den Talk. Ja, eine der Sachen bei der ganzen Konsolenkiste ist, also wer das ja schon kennt, dem erzählen wir da nicht viel Neues, aber warum überhaupt Konsole? Wir haben doch heute so viel ganz viel Grafik, wir haben Fensterchen, die wir aufmachen können, das ist alles ganz super. Wir können klicken und können Fensterchen schieben, Copy und Paste und all das ist alles wunderbar. Aber wofür brauchen wir überhaupt die Konsole? Das ist doch sowas von 90er. Wir haben doch alle jetzt diese ganzen vollen Fenster, aber eigentlich ist Konsole 70er, aber echt schnell. Ja, und da haben wir dann auch noch mal so einen kleinen Auszug, was bei UNIX ja so bekannt ist. Wir wollen Programme machen, die jeweils immer eine Aufgabe füllen können, die die richtig gut können und sobald es irgendwas gibt, sobald es komplizierter wird, dass das Programm mehr Optionen braucht und es wäre doch schön, wenn das noch mit drin wäre. Stopp, dann nehmen wir uns ein neues Programm, was das auch wieder richtig gut kann. Wir wollen uns also ein bisschen spezialisieren dabei. Was wir auch machen können ist, wenn ein Programm geschrieben wird, weil die jetzt untereinander zusammen arbeiten wollen, sollen wir daran denken, dass der Output von dem Programm am besten gleich so ist, dass es das nächste Programm gleich wieder mit verarbeiten kann. Das ist an der Stichpunkt, wenn wir das Ganze pipen wollen, weiterleiten wollen, da ist das ganz praktisch, wenn das nächste Programm das auch wieder gut verarbeiten kann. Und das alle Wichtigste von all dem ist, lasst Computer die Arbeit für dich machen und nicht irgendwelche Hilfskräfte. Der Computer soll die Arbeit machen und wir, wir die davor sitzen, wir können denken. Das ist, ich weiß, Computer können mittlerweile auch sehr, sehr gut denken, aber in der Mehrzahl wollen wir eigentlich oder in der Mehrheit wollen wir, dass wir denken und der Computer soll für uns die ganze Arbeit erledigt. Und Konsole ist auch noch wunderbar, Ressourcen schon. Unser Vorredner hat ja erzählt, wie das ist, wenn du mit Temux irgendwas aufmachst, hast du eine SSH Slash und irgendwie sitzt grad im Zug, verbindest dich irgendwo hin, wenn ihr das Ganze über eine grafische Sache machen wollt, über ein grafische, weiß was ich, Remote Desktop oder in VNC oder in TeamView oder sonst irgendwas und die Verbindung ist echt schlecht, dann ist auch eure Fernwartung sehr, sehr schlecht. Aber eine Konsole, da braucht ihr sehr, sehr wenig Daten, das ist sehr ressourcenschund. Interaktiv beziehen wir jetzt eher da drauf, ihr könnt halt einzelne Programme wirklich zusammenstellen, wie ihr das wollt. Ihr seid nicht darauf gebunden, dass ihr ein Fenster habt, wo irgendwelche Sachen eintippen könnt und das ist die einzige Sache, die ihr machen könnt. Ihr könnt irgendwas eintippen und ihr müsst das annehmen, was das Programm von euch will. Ihr könnt diese Programme weiter kombinieren. Ihr nehmt den einen, ist eine Programm, den Output davon, verbindet es mit dem nächsten und in dieser ganzen Kombination schafft ihr dann halt ein neues Programm. Das ist das, was wir mit Interaktiv meinen. Schnell, eine Konsole ist auch ziemlich schnell. Ihr tippt zwei, drei Sachen ein und ihr habt sofort ein Ergebnis. Ein krawes Programm muss oft erst noch mal laden, dann müsst ihr finden, wo muss ich es eigentlich eintippen, was ich eintippen will. In der Zeit habt ihr in der Konsole in der Regel schon genau die fünf, sechs Zeichen mehr eingetippt, die ihr eigentlich braucht. Aber um nochmal den nächsten Punkt zu überspringen, die Lernkurve ist nur einmal steil, denn wenn ihr jemanden, was war das? Wenn ihr eine Konsole habt und ihr setzt jemanden davor, der damit noch nichts gemacht hat, der guckt sich das an und sagt, oh, das ist aber scheiße kompliziert. Also passiert mir regelmäßig, wenn ich irgendjemand erklären will, was man damit machen kann, heißt es aber, ja, wenn der Programm ist das so viel leichter, da kann ich doch einen Button drücken und da drüben, da kann ich aber, das erzählt mir das alles und da habe ich so tolle Wizards, die mir das alles erklären und mich alle den ganzen Kram abfragen. Wenn ihr das erste Mal eine Konsole habt, dann ist das total anstrengend, weil ihr müsst all diese ganzen Befehle irgendwie erkennen, ihr müsst das alles lernen. Das ist richtig, aber wenn man einmal das System dahinter verstanden hat, wie das funktioniert, dann seid ihr da sehr, sehr schnell. Also die Lernkurve ist nur einmal steil. Habt ihr es verstanden? Geht das Ganze recht gut vorhin. Braucht wenig Bandbreit ist im Prinzip das Gleiche, was wir oben bei Ressourcen schon auch gesagt haben. Ihr habt nicht sehr viel Daten, die übertragen werden müssen, weil ihr ja eigentlich nur noch Characters übertragt. Vielleicht ist noch eine Verschlüsselung dabei, ist richtig, aber im Prosen und Ganzen seid ihr damit relativ schnell. Da sind wir auch schon wieder bei diesem Grundsatz. Junix ist ein riesiger Baukasten, man kann es als Werkzeugsatz an riesengroßen Werkzeugkasten betrachten. Wer sich mal angeguckt hat, was in den Verzeichnissen bin, User bin, S-Bin oder sonst übertrend rumliegt, da sind ganz, ganz viele Programme. Und wir von euch kennt dann noch eine Zeit ohne Internet, wo man nicht ständig irgendwas nach googeln konnte. Auch mal die Hand heben. Wunderbar, okay. Da gab es so eine Zeit, wo man sich angefangen hat, die Programme durchzusuchen. Man hat Manpages aufgerufen, hat die alle durchgelesen und hat einfach mal geguckt, was da so alles drin steht. Was können diese Kisten alle? Manche haben sich auch so ein schönes Buch gekauft. Liedungs in der Nutshell dürfte vielleicht jemandem im Begriff sein. Da kann man das alles mal nachlesen, auch in gedruckter Form. Und wenn man dabei dann merkt, was das alles kann, stellt man auf einmal fest, wie mächtig dieser Werkzeugkasten eigentlich ist. Es gibt dann aber auch wieder, und das, was der Kollege vorhin gesagt hat, da kommt ein Werkstudent an, nichts gegen Werkstudenten, aber wir haben die Erfahrung gemacht, da kommt der Profi hin und sagt, hey, ihr habt da irgendwas mit Linux, macht einfach mal. Aber ich kann euch jetzt nicht so genau sagen, wie das eigentlich funktioniert. Der erste Reflex, sobald ihr in die Firma kommen ist, gibt es nicht so was wie Excel, da kann ich doch auch irgendwie Charts mitmachen oder gibt es nicht ein grafisches Programm. Und da ist halt genau der Punkt, es gibt viele, die bauen ein wunderbares großes grafisches Programm auf, mit dem kann ich fast alles machen. Aber wir haben ja gesagt, Unix ist so, wir haben viele kleine, spezialisierte Programme. Wir müssen nicht ein großes Programm machen, das alles kann, sondern wir können diese vielen einzelnen Spezialisierungen wunderbar zusammen basteln. Der große Werkzeugkasten. Und jetzt, nachdem wir wunderbar schon ein bisschen was erzählt haben, wo ich schon mich in mein Mundfussellig geredet habe, kommen wir zu einem Punkt, wo wir gesagt haben, wir haben ja hier 30 Minuten Zeit. Wir wissen nicht so, wie das Publikum aufgeteilt ist und wir nicht wissen, wollt ihr jetzt lieber Basics hören oder wollt ihr lieber ein bisschen tiefergreifendes wissen. Und an der Stelle überlassen wir euch mal die Entscheidung. Wer möchte denn lieber ein paar Grundlagen hören und wer möchte ein bisschen erweiterte Magie haben? Wir fangen mal damit an, Grundlagen, Hände heben. Ihr glaubt mir gar nicht, wie der mich das freut, weil dann darf ich an die Kollegen übergeben. Ich kann was trinken und ich kann zusätzlich einen kleinen Schluck trinken. Dann erübt sich das Sache, aber hebt doch mal die Hand für die erweiterte Magie. Also okay, ich weiß, ob der Stream das sieht, aber das ist im Prinzip der komplette Saal. Wunderbar. Und an dieser Stelle sag ich dann einfach mal, Peter, viel Spaß. Dankeschön. Erzähl uns ein bisschen was über erweiterte Magie. Gut, erweiterte Magie habe ich gesagt, okay, es gibt so ein paar Dinge, kann man mal brauchen und man hat öfters mal so ein Problem, denkt sich, oh, was mache ich denn jetzt? Das ist so ein Klassiker, den habe ich auch irgendwann mal von einem anderen Unixoper wirklich gelernt, der gesagt hat, Junge, du kannst schneller kopieren wie CP. Hab ich gesagt, bist du bescheuert? Wer kopiert schneller wie CP? Ersing vielleicht. Kann man machen, aber da hat er gesagt, ne, kannst du mit Standard Tools machen. Fand ich irgendwie cool. Da hat er gesagt, mach zwei Sub-Shels auf und kombinier die Marminer Pipe. Kann man ja machen. Dann nehme ich auf der einen Seite, wechsle ich mein altes Verzeichnis, wo ich die Daten her kopieren will, nehm mir einen Tag und pack mir die ganze Soße zusammen. Auf der anderen Seite von der Pipe gehe ich in ein anderes Verzeichnis. In meinen Zielverzeichnissen sag ich, oh, prima, pack ich aus. Denke, muss ich ja prima, was hat mir das jetzt gebracht? Ganz einfach. Ich habe zwei Tasks. Der eine in der Quellplatte hat nix anderes zu tun als einzulesen. Der kann sich damit schön beschäftigen. Auf der Zielplatte kann der sich ruhig mit seinem Schreiben beschäftigen. Sekunde. Und der Trick ist dabei, dass wenn die auf zwei verschiedenen Bussen sind, was meistens gerade heute bei dem ganzen USB doch durchaus mal ein Thema ist, habe ich da schon auch meine Ruhe. Das heißt, die beiden lassen sich in Ruhe. Ich habe möglichst viele Busttransfers gleichzeitig in der Luft und ich habe zwei CPUs, mindestens damit der ganzen Aktionen beschäftigt. Wenn ich ein Multikorpsystem habe, auf dem Single-Corpsystem ist das nicht so witzig, aber gerade bei modernen Multikorpsystem mit mehreren Platten, da geht schon was. Aber da war eine Frage, da kommt noch eine Ergänzung, eine Ergänzung. Wenn man so kopiert, sind auch alle Rechte, alle Modified, alles dabei. Bei CEP müsste ich jetzt noch richtig, da muss ich mir erst mal einen abbrechen. Also der Hinweis war gerade, dass wenn ich mit dem Tare arbeite, ich natürlich dankenswerterweise auch noch die Archive-Bits und sonstige, die ganzen User-Permissions, Sim-Links und alles andere gleich mit sauber kopiere und Hard-Links, aber das ist ein kleines Beiverk dabei noch. Aber da gibt es noch was? Ja, ich schreib es immer der Vollständigkeit halber hin, des guten Gefühls halber, dass man da was getan hat. Gut, man kann es weglassen, richtig. Ja, man kann viel weglassen. Wir machen nicht Shell-Golf 4, es geht wirklich darum. Also das machen wir vielleicht das nächste Mal, das wäre auch mal cool. Wer kriegt es mit weniger Befehlen hin? Voll- oder Mediatippen hin? Man muss ja faul sein. So, dann gibt es auch so ein Klassiker, es gibt Firmen, die sagen, oh prima, wir haben hier euer Treiber rausgegeben, den haben wir open source, dann kommen die an und liefen einem Doxygen-Fall mit. Super, HTML-Klasse, Jungs. Dann sagt man, ich will den Kram aber dann doch irgendwie mal kompilieren, vielleicht habe ich das auf der falschen Plattform, vielleicht funktioniert die Library nicht mehr. Ich habe den ganzen Murks hier als HTML-Seiten bekommen, wo ich das ganze Listing drin habe. Hm, ist ja auch irgendwie blöd. Dann nimmt man sich mal wieder seine Kommando-Zeile, bevor man den ganzen Tag sitzt, Copy-Paste, man ist ja faul, man nimmt W3M, dampzt sich diesen ganzen Kram raus, lässt ja einen Text rausfahren. Dann sagt man, okay, wir haben ja gesehen, alles was mit der Zeile an, mit der Zahl vorne anfing, ist ein Zeilennummer, prima, die Zeilen verarbeiten, wir resten schmeißen mit E-Grad weg. Klasse. Dann mit dem geschickten G-Sub schmeißen wir noch die Zeilennummer vorne weg, printen den Rest aus, geben das in die Datei aus, Thema durch, das ganze auf alle Dateien angewendet, Sache von zehn Minuten habe ich meinen Quellcode wieder. Habe ich jetzt schon eine Riesenfreude, wenn man da sagt, oh Gott, ein ganzes Tag Copy-and-Paste. Jo, dann seriale Schnittstelle ist so ein bisschen eher aus der Embedded Welt. Ich habe da auch beruflich viel mit zu tun gehabt und auch immer wieder mal mit der serialen Schnittstelle Commander Unix. Everything is a file, doch sehr schnell sehr viel anfangen. Und da gibt es halt zum Beispiel SCTY, okay, ich möchte die USB Null, mein USB Serial zum Beispiel umschalten, auf 115.2, der soll hier bloß nicht anfangen, irgendwelche Character zu verarbeiten, also 8-Bit Clean arbeiten. Ich möchte auch nicht, dass er mir das aufs Gerät zurückechot, vielleicht mag das mein Embedded Gerät oder mein Arduino, Raspberry Pi oder was ich auch hinten dran hänge, nicht so, wenn ich ihm da irgendwie das zurückwerfe, was er mir eben erzählt hat. Und dann kann ich einfach nach dieser Konfiguration gemacht habe. Ganz stumpf, das Ding einfach ketten, das Device, bekomme alle Daten, die ich daraus bekomme, mache mein Examt davon und schon habe ich mal schnell eben geguckt, was läuft auf der AS232 oder auf der TTYU Art. Und dasselbe, man kann da auch ein Echo und das klingt jetzt erstmal relativ trivial, aber wenn man dann schon mal irgendwann sich ein Update schnell freckeln musste für irgendeine obscure Hardware und da nicht erstmal anfangen wollte, sich mit den Term Caps und Term Ios und sonstigen Späßchen rumzuschlagen, also da kommt man ziemlich schnell zu relativ coolen Ergebnissen. Ja, wie immer, man kann es natürlich noch schöner und more sophisticated machen, aber manchmal lieber mal schnell als gar nicht. Das ist auch so ein Klassiker, der typische USB auf SD-Kartenadapter, man steckt neue SD-Karte rein, sagt Prima, wo ist die SD-Karte weg? Blöd. Also nehme ich mein LS-USB, liste mir einfach alle USB-Devices in der Kiste auf, habe ich schon mal eine Liste, da steht dann vorne drin der USB-File-Disk, die WenderID, die Product ID, der Bus und was für ein Kram und steht auch drin, wer es hergestellt hat. Prima. Die Firma Transcend war das zum Beispiel an der Stelle, sag ich, ich mache jetzt keine Werbung für dich, das ist halt häufig das Zeug. Also greppe ich danach, da habe ich schon mal die Zeile, wo der String drin steht. Dann hole ich mir die WenderID und die Product ID raus und dann baue ich meine USB-Mode-Switch Kommando zusammen, nehme ich ein Org, splitte, oh, da ist mir ein Doppelpunkt verloren gegangen, splittet das am Doppelpunkt, das heißt den WenderID und die Product ID, hofe USB-Mode-Switch auf, sag dem Resetmit auch bitte mal, dass die weiß von dem Wender mit der Product ID. Und schon habe ich den, habe ich den, ja ich habe leider dummer Weise keine Wanne erwaffeln dabei, ansonsten würde ich, es finde ich aber eine coole Idee übrigens. Ja, da müsste das ist dann die V2, da hat mal die neuen die Slides nachher hoch. Oder jetzt hinten rausgefallen, man weiß es immer nicht so genau. Ja, jedenfalls, schon habe ich mein zickiges USB-Gerät resettet, ist ein Klassiker, wie man bedet umfällt, man hat dann gerade was am wickeln, am frickelen und dann kommt auch noch, muss man ständig USB-Stick da rein und raus und Adapter und man ist da nur am rumfuddeln, gerade das hier in so einem automatisierten Testsystem teilweise kann einem das mal ein ganz Nachmittag retten. Und da die erweiterte Magie relativ kurz war, ich dachte naja prima, vielleicht wollen dann noch mal Leute ein bisschen die Basics sehen, habe ich dann noch eins dazu, ich habe auf vorn noch ein paar, die vielleicht auch noch mal interessanter sind, also wo wir gesagt haben, das sind grundsätzlich erst mal Basics, aber vielleicht auch eher eine kreative Anwendung, dann machen wir aber den erst mal Signalverarbeitung ModOrg, auch wieder hier zum Beispiel, ich habe mir irgendeine Hardware an der selben Schnittstelle gehabt, das waren Anemometer, da habe ich dann Wind durchgeschoben und da war dann ziemlich viel Neues drauf. Hab das in Knoblot gepackt, habe gesagt, oh prima plott ich mir aus. Ja, ist ja noch nicht so spannend, aber das Gute ist, Knoblot kann sich per Pipe-Daten einlesen. Was kann man da also schönes machen? Erst mal, wie gesagt, oh prima, erst mal Daten durchschieben, plotten, aber indem ich mir einfach mal ein Filter 2. Ordnung im Org zusammen gebaut habe, habe ich mir die Datensatz ausgeglättet und ich brauchte keinen Matlab-Starten. Genau, weil es kommt, ich, seit, genau, das geht seit Georg. Das sind die, das sind die kleinen Feinheiten. Wir spielen beim nächsten Marsch Helge und finde ich voll cool. Dann gehe ich nochmal kurz auf die Table of Contents, weil, ja, das gibt, es gibt fast, bitte, ja, oder halt die Busybox wenigstens einigermaßen aktuell ist, da habe ich, gut, für das Thema Telefonnummern bereinigen und sonstige kleinere Späßchen, hätte ich dann nochmal Sebastian für einen, für einen, ja, er muss auch noch mal rankommen, ganz kommt er mir nicht. Dann nehmen wir mal den hier, falls wieder irgendeiner das Frage hat. Also beim Telefonnummernbereinigung geht es eigentlich nur darum, wir haben öfters mal so kleine Skripte geschrieben, um zum Beispiel eine Telefonanlage hat, die man skripten kann, das ist immer ganz angenehm, der möchte man zum Beispiel eine Telefonnummer übergeben in dem Format, wie sie das gerne hätte. Blöderweise ist egal, wo man diese Telefonnummern herbekommt, die sind immer irgendwie, jeder schreibt es anders. Manchmal werden sie tatsächlich mit dem plus 4 9 vorne dran geschrieben, manchmal schreiben nur 0 dran, dann gibt sie noch diese Kombination wie von wegen wir schreiben plus 4 9 in Klammern 0 und irgendwas dahinter. Wenn man im Aushand ist, werden manchmal die Telefonnummernblöcke auch gerne mit Punkten getrennt und lauter so Späßchen, also auf jeden Fall die kommen immer irgendwie in irgendeinem Format an. Das ist der Gedanke, wir haben jetzt hier eine Variable, wo wir erstmal einfach unseren Nummer reinschreiben. Danach geben wir diese ganze Nummer weiter an ein Set. Okay, Set ist für euch auch nichts Neues, aber wie gesagt, das sind jetzt diese Basics mit Set kann man ziemlich viel machen. Es ist ein sehr, sehr mächtiges Tool. Wir nutzen das jetzt nur mal an der Stelle um ein bisschen Suchen und Ersetzen zu spielen. Das Suchen und Ersetzen machen wir hier an der Stelle, wo wir vorne das S mit dem Slash dran haben und wir sagen eigentlich mit dieser kleinen Recula Expression vorne nur, nimm alle Zeichen, die nicht 0 bis 9 sind, die Ziffer 0 bis 9, das plus Zeichen und das Ersetzen bitte gegen nichts. Also das ist quasi lösches einfach mal alles raus. Da haben wir eine Frage, gibt es mal kurz das Mikro? Ich mach das. Oder so? Ich glaub oder filtern, ich hatte das plus an dieser Stelle, weil eigentlich filte ich jetzt alle Sachen, die auch kein plus drinnen haben. Nein, ich möchte explizit das plus rausfiltern, das plus ist in dem Fall kein Repetitor, sondern es ist quasi das Zeichen selbst an der Stelle. Das Ziel ist, dass das plus drin bleibt, weil das brauchen wir noch um die Country Escapes hinzubekommen. Richtig, deswegen sagen wir, das muss erstmal alles raus. Wir können selbst aber mehr wie nur diesen Einbefehl mit reinpacken, wir packen da den nächsten noch mit rein und sagen, jetzt wollen wir gerne noch das plus 4,9, wenn es denn vorne mit dran steht, auch rausschmeißen. Das fällt an dieser Stelle dann halt weg und ersetzen es einfach nur durch eine stumpfe 0. Das Ergebnis sieht man dann unten auch schon. Wenn wir von oben von diesem plus 4,9 mit den ganzen Bindestrichen drin vorkommen, bleibt letztendlich das da unten rausstehen. Wie ist es bei Telefonnummern, die mehr als einmal 49 enthalten? Da wir... Es matcht ja erstmal direkt auf das erste plus, das heißt, wenn mehrfach in einer Telefonnummer plus 49 vorkommen, dann ist die sowieso sowas von Grund falsch, das wird dann eh nicht mehr viel. Aber du hast... damit wir es escapen mussten. Das war einfach hier dem Textsatz geschuldet. Das war so ein bisschen Workaround um Late-Hack übrigens. Das kann man dann auch nochmal... Ja, implizit kommt er ja dadurch, dass wenn du mehrfach plus 49 in irgendeinem Telefonnummer hast, dann... Ja, die Anwender gehen auch immer tolle Dinge ein, muss man ja auch sagen. Also auch das kann man natürlich beliebig erweitern. Wir haben jetzt hier mal ein Beispiel rausgebracht, man kann diese ganzen Sachen noch immer schön weiter verbacken. Wer das übrigens kennt, diese Nummer, die da unten rausgefallen ist, kennt ihr irgendjemand, sagt ihr dem jemand was? Ja, das ist die Telefonnummer und damit haben wir bestimmt alle schon mal schöne Erfahrungen gehabt. Ja, da fehlt was, es hilft ja mich unbedingt was, es kommt drauf an, welchen der vielen Dienste du anrufen willst. Aber das nur mal am Rande. Natürlich haben wir das jetzt auch nochmal ran gepackt, wenn jetzt immer noch ein plus vorne dran stehen sollte, nachdem wir alles ersetzt haben, dann könnte es ja sein, dass es kein plus 49 war, sondern plus 4 3, plus irgendwas, plus 1 und damit packen wir dann halt ein 0 0 davor. Das ist in dem Fall nicht der Fall und deswegen bleibt unsere Nummer unten im Ergebnis auch so stehen wie es ist. Aber das hat den charmanten Vorteil, dieses Format würde jetzt zum Beispiel eine der Telefonanlagen, die wir immer ganz gerne im Einsatz haben, erwarten und damit können wir dann einen Shell Script machen, was dann direkt vom Rechner aus mit der Tastenkombination das Telefon anschreit und die Nummer anruft. Das ist richtig, aber wir gehen jetzt halt mal von dem aus, wo wir sind und da funktioniert das eigentlich ganz gut so auf. Also das ganze bedeutet, also genauer gesagt, das Ganze bezieht sich auf den deutschen Rufnummern planen, wenn man das mal ganz genauer nimmt. Aber ja, das kommt halt immer landespezifisch drauf an oder hängt man irgendwie genässt in den Telefonanlagen drin oder was hat man für ein SQL Code, aber da kann man auch wieder beliebig viel tun. Dann haben wir noch einen anderen kleinen und zwar Datenträger-Images erzeugen und zurückschreiben. In dem Fall erzeugen wir einfach mal, also nehmen wir ein Image und schreiben es irgendwo drauf. Das ist einfach auch nur ein kleiner Klassiker, auch jeder wird das von euch können. Ihr habt zum Beispiel irgendeinen Raspberry Pylen, wollt da auf die SD-Karte was draufpacken. Dann können wir davon ausgehen. Wir haben mal rausgeschaut, als was wird diese SD-Karte in unserem System erkannt. Wir sagen, das ist jetzt DEF-SDB. Das haben wir jetzt halt mal so festgelegt, wo das kommt schon mal vor, dass das so ist. Dann haben wir eine Image Datei, die irgendwo abliegt und mit dem einfachen Befehl DD können wir quasi eine Datei in eine andere Datei überschreiben. Das ist im Prinzip genau das. IF steht dann im Fall für In-File, OF für Out-File und wir sagen, unsere Box-Size soll 1M sein. Ich habe gesehen, vorhin auch schon, das sitzen hier manche Leute mit einem Mac in der Gegend rum. Und der Mac ist das übrigens ein kleines M. Also, wer das gerne wissen möchte. Aber auch das ist eigentlich keine große Magie. Es ist eine Kleinigkeit halt. Wir können einfach direkt an eine Datei nehmen und so, wie sie ist, ohne dass wir extra noch ein Datei-System erzeugen müssen oder sonst irgendwas, ist direkt auf die SD-Karte drauf schreiben und dann in unseren Raspberry Pi oder wo auch immer rein stopfen, geht auch mit USB-Sticks um da drauf ganz andere Sachen zu installieren. Und das funktioniert dann ganz gut. An dieses DD könnte man noch ein Status ist gleich Progress dran fühlen. Wir werden Sachen, wir haben uns... Das ist ein modernes Unix. Das ist dann für morgen. Wir machen hier das Opa... Wir machen so halb Opa-Unix. Wir machen so, ich sage mal, 2000er-Unix. Man kann da noch... Man kann da immer beliebig more sophisticated werden. Und das ist ja auch noch die Anfrage gewesen, warum man könnte das ja noch... Man könnte auch diesen Brokes dranpacken. Das ist richtig. Was wir halt unten noch haben ist, wenn ihr eine zweite Konsole aufmacht oder das dann halt mit dem T-Mux zum Beispiel, der Vorredner. Da können wir einfach mit einem Watch. Watch ist quasi ein Programm, was einen anderen Befehl in einer gewissen Zeit immer wieder ausführt. In dem Fall sagen wir, alle zehn Sekunden, dafür steht das N10, soll ein Kill All machen. Also im Prinzip einfach nur das User Signal 1 an DD schicken. Und das Ergebnis ist, der wird uns sagen, wie viel habe ich denn schon geschrieben. So, da haben wir noch eine Frage. Da hinten war zuerst... Was ist für meinen Setting das die optimale Blocksize-Größe? Das kommt auf deine... Das kommt auf deine Festplatte an. Deshalb, aber momentan, 4.690 hat sich gezeigt, es ist also Vielfaches von 4.690, ist ein Klassiker, kommt auf die ganzen Buffers, cashes an. Da kann man sich zu Tode optimieren, gerade in Produktionsprozessen, kann man da viel Zeit reinstecken. Ich sage mal, wenn man faul ist und das One-off macht, ein Megawatt rein tut. Dann gab es da in der Mitte noch eine. Da braucht man noch ein Mikro für. Hach, stopp, da kam schon, ja, prima. Das ist richtig, aber ich... Okay, stimmt auch wieder, aber das ist jetzt das Problem, wenn ich jetzt anfange, ihr könnt das einsetzen, ihr könnt das einsetzen, wir wussten ja jetzt nicht, welche Audien sich dann da so hinsetzen und das alles wissen will. Man kann sehr vieles auch da rein sagen. Aber ja, ist richtig, wenn ich das unter einem anderes Betriebssystem mache, funktioniert der eventuell nicht, braucht es einen anderen Firmen. Deshalb, man-page-lesen bildet, weil da steht dann immer drin, wie es das Betriebssystem gerne hätte. Daumenregel ist, die meisten von uns haben hier Linux, ansonsten, Megawass, ist es einfach nur Ctrl-D drücken. T. Und dann könnte man jetzt Ctrl-T drücken und dann kann sich den ganzen Speiser sparen. Ja, richtig. Das machst du genau einmal. Danach machst du es nicht. Gut, wir haben die 5 Minuten-Marke überschritten, die noch verbleibt. Gibt es noch andere Anregungen, Fragen? Ich hätte noch eine einzige Frage, kleine Audience-Participation und dann habe ich sicher auch noch eine Frage. Wer ist für nächstes Jahr mal Shell-Golf? Sehr gut. Ja, da entwickelt sich eine Mehrheit. Das ist sehr gut. Wir können das auch ein paar Mal noch mal machen, bis alle zustimmen. Das ist so. Gut, und da gab es noch eine Frage. Ich wiederhole das gleich noch mal, aber ich kenne den Trick. Genau. Es gibt den Trick für Mac OS. Ich wusste ja, manchmal hat man das Problem, dass das DD ewig lang rum mehrt. Es gibt nämlich die sogenannte Raw Device. Ich weiß im Detail nicht, was der BSD-Körnel da ein bisschen anders macht. Es gibt Disk, Slash Dev Slash Disk X und Slash Dev Slash R-Disk X. Die R-Disk nehmen die Raw Disk, dann geht das irgendwie Faktor 3. Schneller ist man auch irgendwann mal aufgefallen. Auch da, das hätten wir unter dem Bonus packen können. Aber Danke für den Tip. Das ist auch so ein Klassiker. Ah, stimmt, dann geht das nicht als Block. Da war es doch. Also okay, falls das ziemlich gut das Character weiß vs. Block Device. Also das war noch mal der Anwurf. Haben wir noch Zeit für eine Frage? Da hat es hier noch einer gemeldet. Dann immer da hoch. Eine Frage noch, genau. Dann ein Mikro bitte noch mal schnell. Na klar. Schön. Die Frage, wer kann ich das nicht? Äquivalent zu dem Beispiel von irgendwann am Anfang auch mit dem Pip einfach machen? Du kannst die DDS zusammenpipen. Ja, bringt auch noch mal ein bisschen Performance. Das ist dann, das wäre dann wieder unter erweiterte Magie das Spiegelbild gewesen. Man kann da gerade mit Pipes doch überraschende Dinge tun. Ist immer klasse. Aber Danke für den Tip. Und da hinten ist noch was. Ne, du kannst CDs aneinander pipen. Ein DD? Ne, die Frage war, kann ich 2 DDS mit Pipen verbinden? Das geht dann wieder ein bisschen mehr Multithreading, mehr Processing Power. Ja, dann bedanken wir uns, glaube ich. Oder da gibt es noch eine Frage, dürfen wir die noch? Gut. Dann einmal mal durchreichen das Mikro. Einer geht noch. Einer haben wir noch. Du kannst auch, wenn du 2 DDS aneinander Pipes noch ein PV dazwischen setzen, dann kommst du den Progress auch um Bonds genug Kerne zu haben. Genau, der tipt mit dem. Das ist morgen. Das ist morgen. Ja, der Kollege ist von morgen dran. Dem wollen wir nicht zu viel klauen. Das ist ein ganz modernes High Tech Unix. Gut, dann danken wir euch. Ja, danke auch. Und es hat noch viel Spaß.