[{"data":1,"prerenderedAt":128041},["ShallowReactive",2],{"faecher-docs":3},[4,299,1293,2433,3991,4583,5772,12235,12697,35631,61783,62561,63041,63444,64442,66901,67636,68954,69338,70083,70545,71120,72222,72871,76032,77208,78504,78632,78914,99187,123352,124052,124423,124444,124465,125941,126393,127395],{"id":5,"title":6,"body":7,"class":282,"description":269,"extension":283,"meta":284,"navigation":285,"path":287,"pdfDownload":288,"scope":289,"scopeName":290,"seo":291,"stem":292,"subject":293,"subjectName":294,"type":295,"typeName":296,"year":297,"__hash__":298},"faecher\u002Ffaecher\u002Fbps\u002F5-6-zsmf-sa1.md","Zusammenfassung – Schulaufgabe 1",{"type":8,"value":9,"toc":268},"minimark",[10,15,20,33,37,70,74,85,89,103,107,111,122,126,143,147,161,165,199,203,256,260],[11,12,14],"h1",{"id":13},"führung","Führung",[16,17,19],"h2",{"id":18},"führungsziele","Führungsziele",[21,22,23,27,30],"ul",{},[24,25,26],"li",{},"Motivation der Mitarbeiter",[24,28,29],{},"Leistungssteigerung\u002FProduktivität",[24,31,32],{},"Förderung der Zusammenarbeit im Team",[16,34,36],{"id":35},"führungskompetenzen","Führungskompetenzen",[21,38,39,46,52,58,64],{},[24,40,41,45],{},[42,43,44],"strong",{},"Fachkompetenz",": Keine Führungskompetenz",[24,47,48,51],{},[42,49,50],{},"Prozess- und Methodenkompetenz",": Techniken zur Organisation und Steuerung",[24,53,54,57],{},[42,55,56],{},"Sozial-kommunikative Kompetenz",": Soft-Skills um ein Team zu bilden – Anerkennung von Leistung und konstruktive Kritik",[24,59,60,63],{},[42,61,62],{},"Integrative Kompetenz",": Konfliktfreie Vernetzung verschiedener Bereiche und Abteilungen",[24,65,66,69],{},[42,67,68],{},"Selbstkompetenz",": Methoden der persönlichen Organisation und des Zeitmanagements",[16,71,73],{"id":72},"neues-führungsverständnis","Neues Führungsverständnis",[21,75,76,79,82],{},[24,77,78],{},"Engagierte und selbstständige Mitarbeiter sind Wettbewerbsvorteil",[24,80,81],{},"Mitarbeiter müssen mehr als nur Fachwissen vorweisen können -> Soft-Skills für Teamarbeit",[24,83,84],{},"Individuelle Mitarbeiterführung entsprechend der Fähigkeiten des Mitarbeiters",[16,86,88],{"id":87},"richtiges-coaching","Richtiges Coaching",[21,90,91,94,97,100],{},[24,92,93],{},"Nicht belehren -> Hilfestellung zur selbstständigen Lösung",[24,95,96],{},"Aufmerksam und aktiv zuhören -> nicht nur sachliche Informationen sondern auch Bedeutung für den Mitarbeiter aufnehmen",[24,98,99],{},"Keine schnellen Antworten -> Weißt den Weg mit zielorientierten Fragen -> Fördert das Verständnis des Mitarbeiters",[24,101,102],{},"Ziel- und Lösungsorientiert",[11,104,106],{"id":105},"mitarbeiterbeurteilung","Mitarbeiterbeurteilung",[16,108,110],{"id":109},"schritte-der-mitarbeiterbeurteilung","Schritte der Mitarbeiterbeurteilung",[21,112,113,116,119],{},[24,114,115],{},"Beobachten",[24,117,118],{},"Beurteilen",[24,120,121],{},"Besprechen",[16,123,125],{"id":124},"mitarbeitergespräch","Mitarbeitergespräch",[21,127,128,131,134,137,140],{},[24,129,130],{},"Austausch der Vorstellungen und Erwartungen",[24,132,133],{},"Rückmeldung über erbrachte Leistung",[24,135,136],{},"Individuelle Personalentwicklung",[24,138,139],{},"Transparente Personalentscheidungen",[24,141,142],{},"Vergleichbare Beurteilung aller Mitarbeiter",[16,144,146],{"id":145},"fehler-bei-der-informationsgewinnung","Fehler bei der Informationsgewinnung",[21,148,149,155],{},[24,150,151,154],{},[42,152,153],{},"Vorschnelle Beurteilung:"," Zu wenig Informationen \u002F Zu kurzer Beobachtungszeitraum",[24,156,157,160],{},[42,158,159],{},"Subjektive Vorlieben \u002F Geheime Absichten",": Informationen sind geschönt\u002Fselektiert",[16,162,164],{"id":163},"allgemeine-wahrnehmungsverzerrung","Allgemeine Wahrnehmungsverzerrung",[21,166,167,173,179,193],{},[24,168,169,172],{},[42,170,171],{},"Überstrahlung",": Ein einziges auffälliges Charaktermerkmal (positiv\u002Fnegativ) übernimmt das komplette Bild",[24,174,175,178],{},[42,176,177],{},"Aktualitätseffekt",": Aktuellere Ereignisse prägen den Gesamteindruck stärker",[24,180,181,184,185],{},[42,182,183],{},"Sympathieeffekt",": Nahe stehende Menschen werden entweder\n",[21,186,187,190],{},[24,188,189],{},"Großzügig positiv beurteilt",[24,191,192],{},"Streng beurteilt (es wird mehr erwartet als von anderen)",[24,194,195,198],{},[42,196,197],{},"Hierarchieeffekt",": Titel und Status beschönigen die Wahrnehmung",[16,200,202],{"id":201},"persönlichkeitsbedingte-wahrnehmungsverzerrung","Persönlichkeitsbedingte Wahrnehmungsverzerrung",[21,204,205,222,236,250],{},[24,206,207,210,211],{},[42,208,209],{},"Nachsichtig",": Harmonie ist wichtig\n",[21,212,213,216,219],{},[24,214,215],{},"Sieht über Fehler hinweg",[24,217,218],{},"Keine Konsequenzen",[24,220,221],{},"Beurteilung zu positiv",[24,223,224,227,228],{},[42,225,226],{},"Fordernd-Streng",": Eigene Leistung wird Maßstab für andere\n",[21,229,230,233],{},[24,231,232],{},"Herausragende Leistungen als erwarteter Normalzustand",[24,234,235],{},"Beurteilung zu streng",[24,237,238,241,242],{},[42,239,240],{},"Vorsichtig-Zurückhaltend",": Fehlender Mut unterschiede zwischen Mitarbeitern deutlich zu machen\n",[21,243,244,247],{},[24,245,246],{},"Einschätzungen schwammig",[24,248,249],{},"Keine großen Unterschiede zwischen Mitarbeitern",[24,251,252,255],{},[42,253,254],{},"Vorurteile",": Positive\u002FNegative Erfahrungen aus der Vergangenheit gegenüber einer Gruppe\u002FPerson",[16,257,259],{"id":258},"selbsterfüllende-prophezeiung","Selbsterfüllende Prophezeiung",[21,261,262,265],{},[24,263,264],{},"Eigene Befürchtung wird erst durch eigenes dagegen Arbeiten wahr, obwohl sie vorher womöglich unbegründet war und dies durch genauere Beobachtung aufgefallen wäre",[24,266,267],{},"Bsp: Eine Führungskraft hält seine Mitarbeiter für faul und unmotiviert. Er gibt ständig Anweisungen, kontrolliert und kritisiert viel. Die Mitarbeiter sind genervt und verärgert. Dadurch werden Sie unmotivierter und nutzen die Zeiten ohne Kontrolle um durchzuatmen.",{"title":269,"searchDepth":270,"depth":270,"links":271},"",2,[272,273,274,275,276,277,278,279,280,281],{"id":18,"depth":270,"text":19},{"id":35,"depth":270,"text":36},{"id":72,"depth":270,"text":73},{"id":87,"depth":270,"text":88},{"id":109,"depth":270,"text":110},{"id":124,"depth":270,"text":125},{"id":145,"depth":270,"text":146},{"id":163,"depth":270,"text":164},{"id":201,"depth":270,"text":202},{"id":258,"depth":270,"text":259},"5-6","md",{},{"title":286},"Zusammenfassung – Schulaufgabe 1 (2024\u002F2025)","\u002Ffaecher\u002Fbps\u002F5-6-zsmf-sa1","\u002Fdownloads\u002FBPS\u002FBPS_5-6_ZSMF_SA1.pdf","SA1","Schulaufgabe 1",{"title":6,"description":269},"faecher\u002Fbps\u002F5-6-zsmf-sa1","BPS","Betriebswirtschaftliche Prozesse (Sonderfach)","ZSMF","Zusammenfassung","2024\u002F2025","Gmh7TyvDKDi68W6my9wLZogdn8BlyUnnakqbHdMgbGk",{"id":300,"title":301,"body":302,"class":282,"description":269,"extension":283,"meta":1283,"navigation":1284,"path":1286,"pdfDownload":1287,"scope":1288,"scopeName":1289,"seo":1290,"stem":1291,"subject":293,"subjectName":294,"type":295,"typeName":296,"year":297,"__hash__":1292},"faecher\u002Ffaecher\u002Fbps\u002F5-6-zsmf-sa2.md","Zusammenfassung – Schulaufgabe 2",{"type":8,"value":303,"toc":1255},[304,308,313,317,384,388,409,413,417,421,452,456,469,474,479,487,491,499,503,511,515,523,527,531,555,559,597,601,604,608,612,620,623,634,637,645,649,660,664,708,712,726,730,760,764,837,841,845,862,866,882,886,902,906,919,923,936,940,972,976,1007,1011,1015,1029,1033,1036,1047,1051,1071,1075,1089,1093,1113,1117,1226,1230],[11,305,307],{"id":306},"kommunikation","Kommunikation",[21,309,310],{},[24,311,312],{},"Bereitschaft\u002FKompetenz des Einzelnen sich bewusst, offen und ehrlich mitzuteilen",[16,314,316],{"id":315},"vier-verständlich-macher","Vier Verständlich Macher",[318,319,320,333,349,365],"ol",{},[24,321,322,325],{},[42,323,324],{},"Einfachheit",[318,326,327,330],{},[24,328,329],{},"kurze, einfache Sätze",[24,331,332],{},"Fachwörter werden erklärt",[24,334,335,338],{},[42,336,337],{},"Gliederung - Ordnung",[318,339,340,343,346],{},[24,341,342],{},"Ein Satz pro Gedanke",[24,344,345],{},"Ein Absatz pro Thema",[24,347,348],{},"Sichtbarer roter Faden",[24,350,351,354],{},[42,352,353],{},"Kürze – Prägnanz",[318,355,356,359,362],{},[24,357,358],{},"Aufs Wesentliche beschränkt",[24,360,361],{},"Kurze Ausdrucksweise",[24,363,364],{},"Konzentration aufs Thema",[24,366,367,370],{},[42,368,369],{},"Stimulanz",[318,371,372,375,378,381],{},[24,373,374],{},"Persönlich",[24,376,377],{},"Interessant",[24,379,380],{},"Anschaulich",[24,382,383],{},"Abwechslungsreich",[16,385,387],{"id":386},"nonverbale-kommunikation","Nonverbale Kommunikation",[21,389,390,393,396,399,402],{},[24,391,392],{},"Blickverhalten",[24,394,395],{},"Mimik",[24,397,398],{},"Gestik",[24,400,401],{},"Haltung",[24,403,404,405],{},"Taktilität: ",[406,407,408],"em",{},"Berührungen z.B. Händedruck",[11,410,412],{"id":411},"gesprächstechniken","Gesprächstechniken",[414,415,416],"p",{},"Erfolgreiche Kommunikation ist die, die Ziele und Bedürfnisse erreicht und im annehmbaren Rahmen befriedigt",[16,418,420],{"id":419},"ichdu-botschaft","Ich\u002FDu-Botschaft",[21,422,423,429,435,438,441],{},[24,424,425,428],{},[42,426,427],{},"Du-Botschaft",": Wirkt oft als Angriff",[24,430,431,434],{},[42,432,433],{},"Ich-Botschaft",": nicht provozierend, da es eine subjektive Äußerung ist",[24,436,437],{},"Ich-Botschaft teilt Meinung mit und überlässt Einschätzung dem Zuhörer",[24,439,440],{},"Ich-Botschaft stellt eigenen Standpunkt dar",[24,442,443,444],{},"Beispiel:\n",[21,445,446,449],{},[24,447,448],{},"Du: „Du versuchts dich vor dem Sortieren der Ablage zu drücken!“",[24,450,451],{},"Ich: „Ich werde diese Woche die Ablage nicht mehr sortieren.“",[16,453,455],{"id":454},"feedback","Feedback",[21,457,458,461],{},[24,459,460],{},"Rückmeldung des Empfängers auf die empfangene Mitteilung",[24,462,463,464],{},"In eigenen Worten wiederholen, um Absicht abzugleichen\n",[21,465,466],{},[24,467,468],{},"Falls nicht übereinstimmt: Sender wiederholt diesen Teil",[470,471,473],"h3",{"id":472},"aussagebereiche","Aussagebereiche",[475,476,478],"h4",{"id":477},"sachebene","Sachebene",[21,480,481,484],{},[24,482,483],{},"Aussage, die sich um den eigentlichen Tatbestand dreht",[24,485,486],{},"z.B. weitere Informationen austauschen",[475,488,490],{"id":489},"selbstaussage","Selbstaussage",[21,492,493,496],{},[24,494,495],{},"Rückmeldung des Verstandenen",[24,497,498],{},"Warten auf Ergänzung\u002FRichtigstellung\u002FBestätigung durch Sender",[475,500,502],{"id":501},"beziehungsaussage","Beziehungsaussage",[21,504,505,508],{},[24,506,507],{},"Bezug nehmen auf die mitschwingende Beziehungsdefinition",[24,509,510],{},"Dazu müssen beide Parteien bereit sein, sonst ggf. eher schädlich für die Kommunikation",[475,512,514],{"id":513},"apell-aussage","Apell-Aussage",[21,516,517,520],{},[24,518,519],{},"Soll verhindern völlig aneinander vorbei zu agieren",[24,521,522],{},"Kann Arbeitsklima verbessern",[470,524,526],{"id":525},"drei-stufen-feedback","Drei-Stufen-Feedback",[475,528,530],{"id":529},"problem","Problem",[21,532,533,536,539,552],{},[24,534,535],{},"Wahrnehmung, Interpretation und Gefühle verschmelzen in der Reaktion",[24,537,538],{},"Dabei wird Wahrgenommenes und dessen Interpretation als wahr vernommen",[24,540,443,541],{},[21,542,543,546,549],{},[24,544,545],{},"Wahrnehmung: Der Gesprächspartner zieht die Augenbrauen hoch",[24,547,548],{},"Interpretation: Er ist genervt",[24,550,551],{},"Gefühl: Ich bin enttäuscht",[24,553,554],{},"Reaktion (Feedback): „Sie haben mir doch ihre Hilfe versprochen“",[475,556,558],{"id":557},"lösung","Lösung",[21,560,561,575,578],{},[24,562,563,564],{},"Drei-Stufen-Feedback verwenden\n",[21,565,566,569,572],{},[24,567,568],{},"Wahrnehmung",[24,570,571],{},"Wirkung",[24,573,574],{},"Wunsch",[24,576,577],{},"Alle 3 Punkte werden dem Gesprächspartner mitgeteilt",[24,579,443,580],{},[21,581,582,587,592],{},[24,583,584,586],{},[42,585,568],{},": „Mir ist aufgefallen, dass Sie am Telefon auf aggressive Kunden teilweise unfreundlich reagieren.“",[24,588,589,591],{},[42,590,571],{},": „Das kann leicht zu schlechten Bewertungen und Verlust von Kunden führen.“",[24,593,594,596],{},[42,595,574],{},": „Bitte reagieren Sie in Zukunft in solchen Situationen ruhiger.“",[16,598,600],{"id":599},"aktives-zuhören","Aktives Zuhören",[414,602,603],{},"Verarbeitungsprozess, der Wahrnehmen, Deuten und Fühlen beinhält",[470,605,607],{"id":606},"abstufungen","Abstufungen",[475,609,611],{"id":610},"spontanes-antwortverhalten","Spontanes Antwortverhalten",[21,613,614,617],{},[24,615,616],{},"Zuhören ohne Bezug auf die ursprüngliche Aussage meistens Selbstbezug oder Ratschlag",[24,618,619],{},"Sender fühlt sich gehört, aber nicht verstanden",[475,621,455],{"id":622},"feedback-1",[21,624,625,628,631],{},[24,626,627],{},"Reaktion auf Sachebene",[24,629,630],{},"Sender wird Interesse und Achtung signalisiert",[24,632,633],{},"Eigene Meinung wird zurückgehalten",[475,635,600],{"id":636},"aktives-zuhören-1",[21,638,639,642],{},[24,640,641],{},"Wiederholt Informationsanteil und geht auf vermutete Gefühle vom Sender ein",[24,643,644],{},"Sender fühlt sich ganzheitlich verstanden",[470,646,648],{"id":647},"zuhörerreaktion-türöffner","Zuhörerreaktion „Türöffner“",[21,650,651,654,657],{},[24,652,653],{},"Einladung zur Kommunikation z.B.: „Ich würde gern hören, was Sie meinen“",[24,655,656],{},"Gesprächsbereitschaft wird signalisiert",[24,658,659],{},"Aufmerksamkeitsreaktionen um Interesse zu signalisieren z.B.: Blickkontakt, Nicken",[470,661,663],{"id":662},"kommunikationsstörer","Kommunikationsstörer",[21,665,666,672,678,684,690,696,702],{},[24,667,668,671],{},[42,669,670],{},"Von sich selbst reden",": Sender fühlt sich nicht wahrgenommen bzw. oberflächlich behandelt",[24,673,674,677],{},[42,675,676],{},"Lösungen\u002FRatschläge",": Sender fühlt sich bevormundet",[24,679,680,683],{},[42,681,682],{},"Herunterspielen",": Sender fühlt sich nicht ernst genommen",[24,685,686,689],{},[42,687,688],{},"Ausfragen",": Zuhörer befriedigt persönliche Neugier. Sender kann sich nicht richtig mitteilen",[24,691,692,695],{},[42,693,694],{},"Interpretieren",": Zuhörer lenkt Gespräch in eine Richtung",[24,697,698,701],{},[42,699,700],{},"Urteilen",": Hilft dem Sender nicht",[24,703,704,707],{},[42,705,706],{},"Warnen\u002FDrohen",": Wertschätzung des Gesprächspartners geht verloren",[11,709,711],{"id":710},"meta-kommunikation","Meta-Kommunikation",[21,713,714,717,720,723],{},[24,715,716],{},"Wenn das Gespräch nicht mehr sinnvoll verläuft",[24,718,719],{},"Kommunikationsweise wird zum Thema des Gesprächs",[24,721,722],{},"Nachdem die Kommunikation wieder auf sinnvolle Art und Weise hergestellt wurde kann zum eigentlichen Thema zurückgekehrt werden",[24,724,725],{},"Wirkt befreiend und konstruktiv",[11,727,729],{"id":728},"_4-seiten4-ohren-modell","4-Seiten\u002F4-Ohren Modell",[21,731,732],{},[24,733,734,735],{},"Jede Nachricht kann auf vier Wege interpretiert werden\n",[21,736,737,742,748,754],{},[24,738,739,741],{},[42,740,478],{},": Daten und Fakten",[24,743,744,747],{},[42,745,746],{},"Selbstoffenbarung",": Gedanken und Gefühle des Senders",[24,749,750,753],{},[42,751,752],{},"Beziehungsebene",": Wie steht Sender zum Empfänger",[24,755,756,759],{},[42,757,758],{},"Appell",": Ziel des Senders beim Empfänger",[16,761,763],{"id":762},"beispiel","Beispiel",[765,766,767,786],"table",{},[768,769,770],"thead",{},[771,772,773,776,781],"tr",{},[774,775],"th",{},[774,777,778],{},[42,779,780],{},"Sender",[774,782,783],{},[42,784,785],{},"Empfänger",[787,788,789,801,813,825],"tbody",{},[771,790,791,796,799],{},[792,793,794],"td",{},[42,795,478],{},[792,797,798],{},"Die Klausur war leicht",[792,800,798],{},[771,802,803,807,810],{},[792,804,805],{},[42,806,746],{},[792,808,809],{},"Bei mir ist die Klausur gut gelaufen",[792,811,812],{},"Er meint, er wird eine 1 bekommen",[771,814,815,819,822],{},[792,816,817],{},[42,818,752],{},[792,820,821],{},"Dir geht es bestimmt genauso",[792,823,824],{},"Er meint, ich bin schlechter als er",[771,826,827,831,834],{},[792,828,829],{},[42,830,758],{},[792,832,833],{},"Erzähl mir, wie es bei dir gelaufen ist",[792,835,836],{},"Ich soll ihn bewundern",[11,838,840],{"id":839},"fragetechniken","Fragetechniken",[16,842,844],{"id":843},"geschlossene-frage","Geschlossene Frage",[21,846,847,850,856,859],{},[24,848,849],{},"Ja\u002FNein-Antwort gefordert",[24,851,852,855],{},[42,853,854],{},"Verwendung",": Kontrolle\u002FZeitsparende Informationsbeschaffung",[24,857,858],{},"Darf nicht wie bei einem Verhör wirken",[24,860,861],{},"Beispiel: „Kennen Sie unser neues Angebot schon?“",[16,863,865],{"id":864},"offene-frage","Offene Frage",[21,867,868,871,876,879],{},[24,869,870],{},"Ausgewogene Kommunikation",[24,872,873,875],{},[42,874,854],{},": Fordert wortkarge Menschen",[24,877,878],{},"Fragender gibt Gesprächsrichtung vor",[24,880,881],{},"Beispiel: „Welche Gründe sprechen für E-Autos?“",[16,883,885],{"id":884},"alternativ-frage","Alternativ-Frage",[21,887,888,891,896,899],{},[24,889,890],{},"Beinhält „oder“",[24,892,893,895],{},[42,894,854],{},": Entscheidungsfindung",[24,897,898],{},"Strukturiert Gespräch stark",[24,900,901],{},"Beispiel: „Möchten Sie einen BMW oder ein schlechtes Auto?“",[16,903,905],{"id":904},"suggestiv-frage","Suggestiv-Frage",[21,907,908,911,916],{},[24,909,910],{},"Arbeitet mit Unterstellung",[24,912,913,915],{},[42,914,854],{},": Abzielen auf Widerspruch (Zuhörer soll korrigieren)",[24,917,918],{},"Beispiel: „Nico, du bist doch auch der Meinung, dass BMW das bessere Auto ist.“",[16,920,922],{"id":921},"rhetorische-frage","Rhetorische Frage",[21,924,925,928,933],{},[24,926,927],{},"Fragender antwortet selbst",[24,929,930,932],{},[42,931,854],{},": Aufmerksamkeit des Zuhörers wecken",[24,934,935],{},"Beispiel: „Wollen Sie etwa, dass wir Pleite machen?“",[11,937,939],{"id":938},"grips-gesprächsvorbereitung","GRIPS – Gesprächsvorbereitung",[21,941,942,948,954,960,966],{},[24,943,944,947],{},[42,945,946],{},"G – Grund des Gesprächs",": Warum soll das Gespräch geführt werden?",[24,949,950,953],{},[42,951,952],{},"R – Ratio",": Wird vernünftig\u002Frational an das Thema herangegangen?",[24,955,956,959],{},[42,957,958],{},"I – Intention",": Was soll erreicht werden?",[24,961,962,965],{},[42,963,964],{},"P – Prioritäten",": Was ist wichtig?",[24,967,968,971],{},[42,969,970],{},"S – Struktur",": Welche Struktur soll das Gespräch haben?",[11,973,975],{"id":974},"zegum-gesprächsführung","ZEGUM – Gesprächsführung",[21,977,978,983,989,995,1001],{},[24,979,980,959],{},[42,981,982],{},"Z – Ziele",[24,984,985,988],{},[42,986,987],{},"E – Erklärung",": Was sind Hintergrundinfos und Gründe?",[24,990,991,994],{},[42,992,993],{},"G – Gemeinsamkeiten",": Wo ist man sich einig?",[24,996,997,1000],{},[42,998,999],{},"U – Unterschiede",": Wo gibt es unterschiedliche Ansichten?",[24,1002,1003,1006],{},[42,1004,1005],{},"M – Maßnahmen",": Wie geht es weiter? Worauf einigt man sich?",[11,1008,1010],{"id":1009},"kritikgespräch","Kritikgespräch",[16,1012,1014],{"id":1013},"vorteile","Vorteile",[21,1016,1017,1020,1023,1026],{},[24,1018,1019],{},"Mitarbeiter erkennt, dass Fehler in Ordnung sind und keine Perfektion erwartet wird",[24,1021,1022],{},"Mitarbeiter erfährt Wertschätzung",[24,1024,1025],{},"Motivation Fehler zu vermeiden",[24,1027,1028],{},"Beziehung zwischen Führungskraft und Mitarbeiter wird verbessert",[16,1030,1032],{"id":1031},"anlässe","Anlässe",[414,1034,1035],{},"Anlass sollte dem Mitarbeiter kommuniziert werden",[21,1037,1038,1041,1044],{},[24,1039,1040],{},"Leistung weist erheblichen Mangel auf",[24,1042,1043],{},"Klares Fehlverhalten vom Mitarbeiter",[24,1045,1046],{},"Häufung von Fehlern in bestimmten Abläufen",[16,1048,1050],{"id":1049},"ziele","Ziele",[21,1052,1053,1056,1059,1062,1065,1068],{},[24,1054,1055],{},"Leistung des Teams zu verbessern",[24,1057,1058],{},"Mitarbeiter bestmöglich unterstützen (Potentiale ausschöpfen)",[24,1060,1061],{},"Zusammenarbeit verbessern",[24,1063,1064],{},"Konstruktive Lösung gemeinsam mit Mitarbeiter entwickeln",[24,1066,1067],{},"Konsequenzen für weiteres Fehlverhalten erläutern",[24,1069,1070],{},"Herausfinden ob der Mitarbeiter Unterstützung benötigt",[16,1072,1074],{"id":1073},"rahmenbedingungen","Rahmenbedingungen",[21,1076,1077,1083],{},[24,1078,1079,1082],{},[42,1080,1081],{},"Zeitpunkt",": Zeitnah nach dem Vorfall",[24,1084,1085,1088],{},[42,1086,1087],{},"Ort",": Neutraler Ort – Kein Verhör-Charakter (z.B. im rechten Winkel statt gegenübersitzen)",[16,1090,1092],{"id":1091},"vorbereitung","Vorbereitung",[21,1094,1095,1098,1101,1104,1107,1110],{},[24,1096,1097],{},"Thema beschreiben",[24,1099,1100],{},"Zeile definieren",[24,1102,1103],{},"Konsequenzen für weiteres Fehlverhalten festlegen",[24,1105,1106],{},"Vermutete Gründe für das kritisierte Fehlverhalten",[24,1108,1109],{},"Auswirkung auf Team und Abläufe definieren",[24,1111,1112],{},"Selbstverschulden überprüfen",[16,1114,1116],{"id":1115},"ablauf-6-phasen","Ablauf – 6 Phasen",[318,1118,1119,1135,1154,1170,1186,1202],{},[24,1120,1121,1124],{},[42,1122,1123],{},"Begrüßung",[318,1125,1126,1129,1132],{},[24,1127,1128],{},"Freundliche Atmosphäre schaffen",[24,1130,1131],{},"Anlass nennen",[24,1133,1134],{},"Lösungsorientiertheit versichern",[24,1136,1137,1140],{},[42,1138,1139],{},"Kritik benennen",[318,1141,1142,1145,1148,1151],{},[24,1143,1144],{},"Eindeutig formulieren",[24,1146,1147],{},"Versichern, dass das Fehlverhalten selbst beobachtet wurde",[24,1149,1150],{},"Ruhig und sachlich bleiben",[24,1152,1153],{},"Bei aktuellem Vorfall bleiben",[24,1155,1156,1159],{},[42,1157,1158],{},"Stellungnahme des Mitarbeiters",[318,1160,1161,1164,1167],{},[24,1162,1163],{},"Möglichkeit geben für Mitarbeiter sich dazu zu äußern",[24,1165,1166],{},"Klarmachen, dass Interesse an echten Gründen und nicht an Ausreden besteht",[24,1168,1169],{},"Dranbleiben, bis der Mitarbeiter einsichtig ist und Konsequenzen erkennt",[24,1171,1172,1175],{},[42,1173,1174],{},"Bewertung und Lösungsansätze",[318,1176,1177,1180,1183],{},[24,1178,1179],{},"Zusammenfassen des bisherigen Gesprächs",[24,1181,1182],{},"Prüfen, ob Mitarbeiter die Faktenlage anerkennt",[24,1184,1185],{},"Lösungsvorschläge erfragen",[24,1187,1188,1191],{},[42,1189,1190],{},"Vereinbarung treffen – Kontrollen etablieren",[318,1192,1193,1196,1199],{},[24,1194,1195],{},"Konkretes Ergebnis des Gesprächs",[24,1197,1198],{},"Folgetermine unterstreichen Ernsthaftigkeit",[24,1200,1201],{},"Mitarbeiter hat Chance für die Umsetzung innerhalb eines festen Zeitraums",[24,1203,1204,1207],{},[42,1205,1206],{},"Gesprächsabschluss",[318,1208,1209,1212,1215,1218],{},[24,1210,1211],{},"Vereinbarung wiederholen",[24,1213,1214],{},"Dankbarkeit für das konstruktive Gespräch ausdrücken",[24,1216,1217],{},"Zuversicht äußern",[24,1219,1220,1221],{},"Mitarbeiter sollte das Gespräch mit gutem Gefühl verlassen\n",[318,1222,1223],{},[24,1224,1225],{},"Betonen, dass es kein Beziehungsproblem gibt",[16,1227,1229],{"id":1228},"reflektieren","Reflektieren",[21,1231,1232,1252],{},[24,1233,1234,1235],{},"Im Anschluss des Gesprächs selbst reflektieren\n",[21,1236,1237,1240,1243,1246,1249],{},[24,1238,1239],{},"Konnte der Leitfaden beibehalten werden",[24,1241,1242],{},"Wurde das Ziel erreicht?",[24,1244,1245],{},"Welche Vereinbarung wurde getroffen?",[24,1247,1248],{},"Wie hat man sich währen des Gesprächs gefühlt?",[24,1250,1251],{},"Konnte man sachlich bleiben?",[24,1253,1254],{},"Erkenntnisse festhalten für das nächste Gespräch",{"title":269,"searchDepth":270,"depth":270,"links":1256},[1257,1258,1259,1260,1265,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282],{"id":315,"depth":270,"text":316},{"id":386,"depth":270,"text":387},{"id":419,"depth":270,"text":420},{"id":454,"depth":270,"text":455,"children":1261},[1262,1264],{"id":472,"depth":1263,"text":473},3,{"id":525,"depth":1263,"text":526},{"id":599,"depth":270,"text":600,"children":1266},[1267,1268,1269],{"id":606,"depth":1263,"text":607},{"id":647,"depth":1263,"text":648},{"id":662,"depth":1263,"text":663},{"id":762,"depth":270,"text":763},{"id":843,"depth":270,"text":844},{"id":864,"depth":270,"text":865},{"id":884,"depth":270,"text":885},{"id":904,"depth":270,"text":905},{"id":921,"depth":270,"text":922},{"id":1013,"depth":270,"text":1014},{"id":1031,"depth":270,"text":1032},{"id":1049,"depth":270,"text":1050},{"id":1073,"depth":270,"text":1074},{"id":1091,"depth":270,"text":1092},{"id":1115,"depth":270,"text":1116},{"id":1228,"depth":270,"text":1229},{},{"title":1285},"Zusammenfassung – Schulaufgabe 2 (2024\u002F2025)","\u002Ffaecher\u002Fbps\u002F5-6-zsmf-sa2","\u002Fdownloads\u002FBPS\u002FBPS_5-6_ZSMF_SA2.pdf","SA2","Schulaufgabe 2",{"title":301,"description":269},"faecher\u002Fbps\u002F5-6-zsmf-sa2","EfhPtcY3oQjdlaZ3RwpyJh8AB19w7no1nwFG12cb83Q",{"id":1294,"title":6,"body":1295,"class":2421,"description":1303,"extension":283,"meta":2422,"navigation":2423,"path":2425,"pdfDownload":2426,"scope":289,"scopeName":290,"seo":2427,"stem":2428,"subject":2429,"subjectName":2430,"type":295,"typeName":296,"year":2431,"__hash__":2432},"faecher\u002Ffaecher\u002Fbsa\u002F3-4-zsmf-sa1.md",{"type":8,"value":1296,"toc":2385},[1297,1301,1304,1318,1321,1335,1339,1391,1395,1398,1412,1415,1429,1433,1436,1456,1459,1473,1476,1490,1494,1498,1501,1507,1511,1557,1561,1564,1596,1600,1603,1653,1657,1674,1678,1682,1705,1708,1716,1720,1725,1729,1755,1759,1764,1790,1794,1797,1800,1820,1824,1835,1839,1882,1886,1918,1922,2008,2016,2020,2023,2028,2032,2046,2050,2075,2079,2122,2126,2131,2151,2155,2193,2197,2219,2223,2259,2264,2268,2282,2287,2291,2342,2347,2351,2355,2366,2370,2373,2377,2380],[11,1298,1300],{"id":1299},"betriebssysteme","Betriebssysteme",[414,1302,1303],{},"Im engeren Sinne nur der Kernel",[21,1305,1306,1312],{},[24,1307,1308,1311],{},[42,1309,1310],{},"Kernel",": sehr klein, enthält Grundfunktionen",[24,1313,1314,1317],{},[42,1315,1316],{},"Pakete",": Rest der Betriebssysteminstallation",[414,1319,1320],{},"Beispiel: Bestandteile Linux",[21,1322,1323,1329],{},[24,1324,1325,1328],{},[42,1326,1327],{},"Linux-Kernel",": hardwarenahe Software für Scheduling, Multitasking, Gerätetreiber, Speicherverwaltung etc.",[24,1330,1331,1334],{},[42,1332,1333],{},"GNU-Paketen",": Shell, Compiler, Bibliotheken usw.",[16,1336,1338],{"id":1337},"aufgaben","Aufgaben",[21,1340,1341,1361,1372,1380],{},[24,1342,1343,1344],{},"Prozessverwaltung\n",[21,1345,1346,1352,1355,1358],{},[24,1347,1348,1351],{},[42,1349,1350],{},"Prozess",": ausführbares Programm – besteht aus Code, Daten und Ressourcen",[24,1353,1354],{},"Überwacht Prozesse",[24,1356,1357],{},"Erzeugt neue Prozesse",[24,1359,1360],{},"Regelt Kommunikation unter den Prozessen",[24,1362,1363,1364],{},"Speicherverwaltung\n",[21,1365,1366,1369],{},[24,1367,1368],{},"Verwaltung des Hauptspeichers",[24,1370,1371],{},"Speicherzuteilung zu Prozessen",[24,1373,1374,1375],{},"Verwaltung des Dateisystems\n",[21,1376,1377],{},[24,1378,1379],{},"Erzeugung eines Namensraums mit dem auf das Dateisystem zugegriffen werden kann",[24,1381,1382,1383],{},"Verwaltung von Geräten\n",[21,1384,1385,1388],{},[24,1386,1387],{},"Zugriff auf Ein- und Ausgabegeräte mittels überwachter Aufrufe",[24,1389,1390],{},"Effiziente Aufteilung der E\u002FA Geräte zu Prozessen",[16,1392,1394],{"id":1393},"ringe-der-cpu","Ringe der CPU",[414,1396,1397],{},"Ring: Sicherheitsstufe eines Prozesses. Bestimmt nutzbaren Befehlssatz und Speicherbereich",[21,1399,1400,1406],{},[24,1401,1402,1405],{},[42,1403,1404],{},"Kernel-Mode",": Ring 0",[24,1407,1408,1411],{},[42,1409,1410],{},"User-Mode",": Ring 1-3",[414,1413,1414],{},"Ringe:",[21,1416,1417,1420,1423,1426],{},[24,1418,1419],{},"0: meisten Berechtigungen, direkte Hardwarezugriffe & Zugriff auf alle RAM-Bereiche",[24,1421,1422],{},"1: wird nicht verwendet",[24,1424,1425],{},"2: wird nicht verwendet",[24,1427,1428],{},"3: Anwenderprogramme: eingeschränkte Rechte (z.B. keine Interrupts – Programmunterbrechungen – erlaubt)",[16,1430,1432],{"id":1431},"arten","Arten",[414,1434,1435],{},"Allgemein",[21,1437,1438,1444,1450],{},[24,1439,1440,1443],{},[42,1441,1442],{},"Batch-System",": z.B. DOS",[24,1445,1446,1449],{},[42,1447,1448],{},"Dialogsystem",": z.B. Windows, Linux, Unix",[24,1451,1452,1455],{},[42,1453,1454],{},"Echtzeitsystem",": für Industrieanwendungen",[414,1457,1458],{},"Anzahl der parallel bedienbaren Benutzer",[21,1460,1461,1467],{},[24,1462,1463,1466],{},[42,1464,1465],{},"Singleuser-System",": nur ein Nutzer",[24,1468,1469,1472],{},[42,1470,1471],{},"Multiuser-System",": mehrere Nutzer",[414,1474,1475],{},"Anzahl der parallel bearbeitbaren Aufträge",[21,1477,1478,1484],{},[24,1479,1480,1483],{},[42,1481,1482],{},"Ein-Prozess-Betriebssysteme"," (Single Tasking): DOS",[24,1485,1486,1489],{},[42,1487,1488],{},"Mehr-Prozess-Betriebssysteme"," (Multi-Tasking): Linux, Windows",[11,1491,1493],{"id":1492},"rechnerarchitektur","Rechnerarchitektur",[16,1495,1497],{"id":1496},"von-neumann","Von-Neumann",[414,1499,1500],{},"Code und Daten des Programms liegen im gleichen Speicherbereich",[414,1502,1503],{},[1504,1505],"img",{"alt":269,"src":1506},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_1.png",[470,1508,1510],{"id":1509},"komponenten","Komponenten",[21,1512,1513,1519,1525,1545,1551],{},[24,1514,1515,1518],{},[42,1516,1517],{},"Rechenwerk (ALU):"," Ausführung von Befehlen (Addition, logische Operationen)",[24,1520,1521,1524],{},[42,1522,1523],{},"Steuerwerk",": Koordiniert die Abarbeitung des Programms (Laden von Befehlen, Operanden holen)",[24,1526,1527,1530,1531],{},[42,1528,1529],{},"Bussystem",": Kommunikation zwischen den einzelnen Komponenten\n",[21,1532,1533,1539],{},[24,1534,1535,1538],{},[406,1536,1537],{},"Adressbus",": Auf welche Adresse soll zugegriffen werden?",[24,1540,1541,1544],{},[406,1542,1543],{},"Datenbus",": Liefert Daten",[24,1546,1547,1550],{},[42,1548,1549],{},"Speicher",": Arbeitsspeicher mit Daten und Code",[24,1552,1553,1556],{},[42,1554,1555],{},"Ein-\u002FAusgabewerk",": Schnittstellen zum Anwender oder anderen Systemen",[470,1558,1560],{"id":1559},"zyklus","Zyklus",[414,1562,1563],{},"5 Phasen:",[21,1565,1566,1572,1578,1584,1590],{},[24,1567,1568,1571],{},[42,1569,1570],{},"Fetch",": Nächsten Befehl holen",[24,1573,1574,1577],{},[42,1575,1576],{},"Decode",": Befehl dekodieren (Mit Mikrocode – Befehlssatz der CPU)",[24,1579,1580,1583],{},[42,1581,1582],{},"Fetch Operands",": Benötigte Operanden holen",[24,1585,1586,1589],{},[42,1587,1588],{},"Execute",": Befehl ausführen",[24,1591,1592,1595],{},[42,1593,1594],{},"Write back",": Ergebnis zurückschreiben",[16,1597,1599],{"id":1598},"simplifizierte-rechnerarchitektur","Simplifizierte Rechnerarchitektur",[470,1601,1510],{"id":1602},"komponenten-1",[21,1604,1605,1611,1617,1623,1629,1635,1641,1647],{},[24,1606,1607,1610],{},[42,1608,1609],{},"ALU",": Führt Rechenoperationen aus",[24,1612,1613,1616],{},[42,1614,1615],{},"Mehrzweck- und Gleitkommaregister",": Spezielle Speicher mit denen die CPU rechnen kann",[24,1618,1619,1622],{},[42,1620,1621],{},"Befehlsregister",": Spezielles Register, in dem der Maschinencode des aktuell ausgeführten Befehls steht",[24,1624,1625,1628],{},[42,1626,1627],{},"Programmstatuswort\u002FStatusregister",": Enthält Flags die ALU setzt (Überlauf, negatives Ergebnis etc.)",[24,1630,1631,1634],{},[42,1632,1633],{},"Stackpointer",": Spezielles Register, das auf die Adresse des obersten Elements des Programmstacks zeigt",[24,1636,1637,1640],{},[42,1638,1639],{},"Befehlszähler",": Register, das auf die Adresse des nächsten Befehls zeigt, der geholt werden soll",[24,1642,1643,1646],{},[42,1644,1645],{},"Memory Management Unit (MMU):"," Verwaltet Zugriff auf den Arbeitsspeicher",[24,1648,1649,1652],{},[42,1650,1651],{},"L1\u002FL2\u002FL3 Cache:"," Sehr schneller Pufferspeicher zwischen RAM und CPU – Speichert häufig benutze Daten",[16,1654,1656],{"id":1655},"maschinensprache","Maschinensprache",[21,1658,1659,1662,1668],{},[24,1660,1661],{},"Programmiersprache, die aus Elementen besteht, die der Prozessor direkt ausführen kann",[24,1663,1664,1667],{},[42,1665,1666],{},"Befehlssatz",": Menge der Befehle eines Prozessors",[24,1669,1670,1673],{},[42,1671,1672],{},"Mnenomics",": Für bessere Lesbarkeit von Maschinencode",[16,1675,1677],{"id":1676},"betriebssystemaufrufe","Betriebssystemaufrufe",[470,1679,1681],{"id":1680},"ablauf","Ablauf",[21,1683,1684,1687,1690,1693,1696,1699,1702],{},[24,1685,1686],{},"Die zugehörige Interrupt-Service-Routine wird ausgeführt (dadurch wird Betriebssystem-Code ausgeführt)",[24,1688,1689],{},"Es wird in den Kerne-Mode geschaltet",[24,1691,1692],{},"Notwendige Überprüfungen werden durchgeführt (z.B.: dürfen nicht quasi-gleichzeitig mehrere Prozesse in eine Datei schreiben)",[24,1694,1695],{},"Der Datenzugriff wird entweder erlaubt und durchgeführt oder verweigert",[24,1697,1698],{},"Es wird in den User-Mode zurückgeschaltet",[24,1700,1701],{},"Der zuvor angehaltene Prozess wird wieder gestartet",[24,1703,1704],{},"Dabei wird ihm ein Rückgabewert mit dem Ergebnis des Systemaufrufs zur Verfügung gestellt",[414,1706,1707],{},"Interrupt: Signal, das von Gerät oder Thread an das OS geschickt wird, um rauszufinden, was als Nächstes zu tun ist:",[21,1709,1710,1713],{},[24,1711,1712],{},"Software: Programm fordert Betriebsdienste an oder Gerätetreiber mit System interagieren wollen",[24,1714,1715],{},"Hardware: Hardware benötigt OS (bewegen der Maus, drücken einer Taste)",[470,1717,1719],{"id":1718},"aufruf-unter-linux","Aufruf unter Linux",[414,1721,1722],{},[1504,1723],{"alt":269,"src":1724},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_2.png",[11,1726,1728],{"id":1727},"prozesse","Prozesse",[21,1730,1731,1737,1740,1746,1752],{},[24,1732,1733,1736],{},[42,1734,1735],{},"Prozess\u002FTask",": Ablaufumgebung für ein Programm auf einem Rechnersystem",[24,1738,1739],{},"Prozess ist Programm zur Laufzeit",[24,1741,1742,1745],{},[406,1743,1744],{},"Multitasking",": Mehrere Prozesse konkurrieren um Betriebsmittel wie CPU und Speicher",[24,1747,1748,1751],{},[406,1749,1750],{},"Single-Task",": Immer nur ein Prozess",[24,1753,1754],{},"Zuteilung\u002FScheduling: Wird vom Betriebssystem übernommen",[16,1756,1758],{"id":1757},"prozesslebenszyklus","Prozesslebenszyklus",[414,1760,1761],{},[1504,1762],{"alt":269,"src":1763},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_3.png",[21,1765,1766,1772,1778,1784],{},[24,1767,1768,1771],{},[42,1769,1770],{},"Bereit",": Prozess wird erzeugt",[24,1773,1774,1777],{},[42,1775,1776],{},"Aktiv",": Prozess arbeitet gerade und ist einer CPU zugeteilt",[24,1779,1780,1783],{},[42,1781,1782],{},"Blockiert",": Prozess wartet auf Ressource\u002FBetriebsmittel während der Ausführung",[24,1785,1786,1789],{},[42,1787,1788],{},"Nicht-existent",": Nicht erzeugt oder bereits beendet",[16,1791,1793],{"id":1792},"prozesskontext","Prozesskontext",[414,1795,1796],{},"Informationen zu einem Prozess",[414,1798,1799],{},"Drei Bereiche des Prozesskontexts:",[21,1801,1802,1808,1814],{},[24,1803,1804,1807],{},[42,1805,1806],{},"Benutzerkontext",": Daten des Prozesses",[24,1809,1810,1813],{},[42,1811,1812],{},"Hardwarekontext",": Inhalte der CPU-Register, Stackpointer, Befehlszähler, Programmstatuswort",[24,1815,1816,1819],{},[42,1817,1818],{},"Systemkontext",": Informationen aus Sicht des Betriebssystems (Prozessnummer, geöffnete Dateien…)",[470,1821,1823],{"id":1822},"kontextwechsel","Kontextwechsel",[21,1825,1826,1829,1832],{},[24,1827,1828],{},"CPU wird dem aktuell laufenden Prozess entzogen und einem anderen Prozess zugeteilt",[24,1830,1831],{},"Prozesskontext des alten Prozesses muss gesichert werden",[24,1833,1834],{},"Prozesskontext des neuen Prozesses muss geladen werden",[16,1836,1838],{"id":1837},"prozesstabelle-process-control-block","Prozesstabelle & Process Control Block",[21,1840,1841,1847,1879],{},[24,1842,1843,1846],{},[42,1844,1845],{},"Prozesstabelle",": Alle Prozesse eines Betriebssystems",[24,1848,1849,1852,1853],{},[42,1850,1851],{},"Process Control Block",": Datenstruktur in der Prozesstabelle, die wichtige Informationen eines Prozesses speichert\n",[21,1854,1855,1858,1861,1864,1867,1870,1873,1876],{},[24,1856,1857],{},"Programmzähler",[24,1859,1860],{},"Prozesszustand",[24,1862,1863],{},"Priorität",[24,1865,1866],{},"Verbrauchte Prozessorzeit",[24,1868,1869],{},"Eigene Prozessnummer",[24,1871,1872],{},"Prozessnummer des erzeugenden Prozesses (Elternprozess)",[24,1874,1875],{},"Zugeordnete Betriebsmittel (geöffnete Dateien)",[24,1877,1878],{},"Registerinhalte, Stackpointer, Programmstatuswort",[24,1880,1881],{},"Beim Kontextwechsel werden Daten aus dem alten Prozess in einen PCB gespeichert und aus dem PCB des laufenden Prozesses geladen.",[16,1883,1885],{"id":1884},"threads-leichtgewichtprozesse","Threads (Leichtgewichtprozesse)",[21,1887,1888,1910],{},[24,1889,1890,1891],{},"Kontextwechsel bei einem Prozess ist zeitaufwändig\n",[21,1892,1893,1896],{},[24,1894,1895],{},"Innerhalb eines Prozesses kann es nebenläufige Aufgaben geben, die sich Betriebsmittel teilen, sog. Threads",[24,1897,1898,1899],{},"Wechsel zwischen Threads ist schneller als zwischen Prozessen unter anderem aufgrund von geteilten Betriebsmitteln zwischen Threads:\n",[21,1900,1901,1904,1907],{},[24,1902,1903],{},"Codesegment",[24,1905,1906],{},"Datensegment",[24,1908,1909],{},"Dateideskriptoren (geöffnete Dateien)",[24,1911,1912,1913],{},"Beispiel Word:\n",[21,1914,1915],{},[24,1916,1917],{},"Je ein Thread für Eingabeverarbeitung, Darstellung, Druckaufträge",[470,1919,1921],{"id":1920},"kernel-level-threads-heavy-weight-threads-user-level-threads","Kernel-Level-Threads (Heavy-Weight-Threads) & User-Level-Threads",[765,1923,1924,1943],{},[768,1925,1926],{},[771,1927,1928,1933,1938],{},[774,1929,1930],{},[42,1931,1932],{},"Art",[774,1934,1935],{},[42,1936,1937],{},"Kernel Level Threads",[774,1939,1940],{},[42,1941,1942],{},"User Level Threads",[787,1944,1945,1958,1971,1984,1996],{},[771,1946,1947,1952,1955],{},[792,1948,1949],{},[42,1950,1951],{},"Verwaltung",[792,1953,1954],{},"Werden durch das Betriebssystem verwaltet:   - Erzeugen, Beenden - Scheduling",[792,1956,1957],{},"Betriebssystem kennt die Threads nicht. Werden durch Threadbibliothek verwaltet:   - Erzeugen, Beenden - Scheduling",[771,1959,1960,1965,1968],{},[792,1961,1962],{},[42,1963,1964],{},"Basisinfo",[792,1966,1967],{},"- Aktuelle Werte eines Threads werden in einem Thread Control Block (TCB) gespeichert - Äquivalent zu PCB",[792,1969,1970],{},"- Threadbibliothek wird durch den Prozess eingebunden - Threadbibliothek teilt CPU auf Threads auf",[771,1972,1973,1978,1981],{},[792,1974,1975],{},[42,1976,1977],{},"Verhalten",[792,1979,1980],{},"Warten auf ein Signal blockiert andere Threads nicht",[792,1982,1983],{},"Warten auf ein Signal blockiert andere Threads",[771,1985,1986,1990,1993],{},[792,1987,1988],{},[42,1989,1823],{},[792,1991,1992],{},"Fast wie bei Prozessen",[792,1994,1995],{},"Sehr einfach",[771,1997,1998,2002,2005],{},[792,1999,2000],{},[42,2001,763],{},[792,2003,2004],{},"Windows",[792,2006,2007],{},"Java-Threads",[414,2009,2010,2013],{},[1504,2011],{"alt":269,"src":2012},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_4.png",[1504,2014],{"alt":269,"src":2015},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_5.png",[16,2017,2019],{"id":2018},"cpu-scheduling","CPU-Scheduling",[414,2021,2022],{},"Nebenläufige Prozesse müssen sich die CPU teilen",[21,2024,2025],{},[24,2026,2027],{},"Zuteilung der CPU wird durch das CPU-Scheduling geregelt",[470,2029,2031],{"id":2030},"arten-des-cpu-scheduling","Arten des CPU-Scheduling",[21,2033,2034,2040],{},[24,2035,2036,2039],{},[42,2037,2038],{},"Non-preemptiv"," (nicht verdrängend): Prozess wird nicht unterbrochen, bis er selbst die CPU frei gibt",[24,2041,2042,2045],{},[42,2043,2044],{},"Preemptiv"," (verdrängend): Einem Prozess kann die CPU durch das Betriebssystem entzogen werden",[470,2047,2049],{"id":2048},"bestandteile-des-cpu-scheduling","Bestandteile des CPU-Scheduling",[21,2051,2052,2058,2069],{},[24,2053,2054,2057],{},[42,2055,2056],{},"Prozessmanager",": Verwaltet Prozesse",[24,2059,2060,2063,2064],{},[42,2061,2062],{},"Scheduler",": Teil des Prozessmanagers – regelt Planung der CPU-Zuteilung\n",[21,2065,2066],{},[24,2067,2068],{},"Bereite Prozesse stehen in der „Ready-Queue“. Scheduler legt die Reihenfolge fest",[24,2070,2071,2074],{},[42,2072,2073],{},"Dispatcher",": Führt Prozesswechsel aus",[470,2076,2078],{"id":2077},"verschiedene-schedulingziele","Verschiedene Schedulingziele",[21,2080,2081,2087,2093,2099,2104,2110,2116],{},[24,2082,2083,2086],{},[42,2084,2085],{},"Fairness",": Garantierte Mindestzuteilung",[24,2088,2089,2092],{},[42,2090,2091],{},"Effizienz",": Möglichst hohe CPU-Auslastung",[24,2094,2095,2098],{},[42,2096,2097],{},"Minimale Antwortzeit",": Reaktionszeit auf ein Ereignis soll minimiert werden",[24,2100,2101],{},[42,2102,2103],{},"Durchschnittliche Wartezeit",[24,2105,2106,2109],{},[42,2107,2108],{},"Durchsatz",": Möglichst viele Prozesse bearbeiten",[24,2111,2112,2115],{},[42,2113,2114],{},"Durchlaufzeit",": Mittlere Zeit, bis ein Prozess abgearbeitet ist, soll möglichst gering sein",[24,2117,2118,2121],{},[42,2119,2120],{},"Kalkulierbarkeit",": Zeit, bis zu der ein Prozess abgearbeitet ist, ist berechenbar",[470,2123,2125],{"id":2124},"arten-des-scheduling","Arten des Scheduling",[414,2127,2128],{},[1504,2129],{"alt":269,"src":2130},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_6.png",[21,2132,2133,2139,2145],{},[24,2134,2135,2138],{},[42,2136,2137],{},"Kurzfristig (Short-Term)",": Regelt, welcher Prozess aus der Warteschlange als nächstes die CPU bekommt",[24,2140,2141,2144],{},[42,2142,2143],{},"Mittelfristig (Medium-Term)",": Kann Prozesse aus dem Hauptspeicher auf die Festplatte auslagern, wenn der Prozess lange nicht im Zustand „Bereit“ war",[24,2146,2147,2150],{},[42,2148,2149],{},"Langfristig (Long-Term):"," Regelt, welche Prozesse überhaupt in die Warteschlange dürfen. Bei Überlastung des Systems können Prozesse abgewiesen werden",[470,2152,2154],{"id":2153},"strategien","Strategien",[21,2156,2157,2163,2169,2175,2181,2187],{},[24,2158,2159,2162],{},[42,2160,2161],{},"First Come First Serve:"," Abarbeitung nach Ankunftszeit",[24,2164,2165,2168],{},[42,2166,2167],{},"Shortest Job First",": Kürzeste Bearbeitungszeit zuerst",[24,2170,2171,2174],{},[42,2172,2173],{},"Priority Scheduling",": Höchste Priorität zuerst",[24,2176,2177,2180],{},[42,2178,2179],{},"Shortest Remaining Time First",": Kürzeste Restbearbeitungszeit zuerst – Prozess mit kürzerer Restbearbeitungszeit als laufender Prozess kommt an -> laufender Prozess wird unterbrochen",[24,2182,2183,2186],{},[42,2184,2185],{},"Round Robin",": Nach bestimmtem Zeitabschnitt wird der Prozess gewechselt",[24,2188,2189,2192],{},[42,2190,2191],{},"Dynamic Priority Round Robin",": Statische Priorität zu Prozessbeginn, kann sich aber zur Laufzeit ändern",[16,2194,2196],{"id":2195},"prozesssynchronisation","Prozesssynchronisation",[21,2198,2199,2202,2205],{},[24,2200,2201],{},"Auf Mehr-Programm-Betriebssystemen werden Prozesse oder Threads quasi-parallel ausgeführt (Nebenläufigkeit)",[24,2203,2204],{},"Durch präemptives (verdrängendes) Scheduling kann einem Prozess der CPU entzogen werden, wenn ein anderer Prozess aktiviert werden muss",[24,2206,2207,2208],{},"Prozess kann nicht wissen wann er unterbrochen wird und es nur teilweise beeinflussen\n",[21,2209,2210,2213],{},[24,2211,2212],{},"Bearbeitet ein Prozess ein Betriebsmittel, das mit anderen geteilt wird, muss es in einem konsistenten Zustand hinterlassen werden",[24,2214,2215,2218],{},[42,2216,2217],{},"Atomare Aktionen",": Codebereiche, die an einem Stück bearbeitet werden müssen um Betriebsmittel konsistent zu hinterlassen",[470,2220,2222],{"id":2221},"lost-update-problem","Lost-Update-Problem",[21,2224,2225,2228,2247,2250,2253],{},[24,2226,2227],{},"Zwei Prozesse wollen auf dieselbe Variable zugreifen",[24,2229,2230,2231],{},"Prozess A erhöht die Variable um 1, Prozess B um 5\n",[21,2232,2233],{},[24,2234,2235,2236],{},"Aktion „Erhöhen um x“ auf Maschinenbefehlsebene:\n",[318,2237,2238,2241,2244],{},[24,2239,2240],{},"Counter lesen",[24,2242,2243],{},"Counter um x erhöhen",[24,2245,2246],{},"Counter schreiben",[24,2248,2249],{},"Wird Prozess A zwischen 1. Und 2. Von Prozess B unterbrochen, so wird das Ergebnis von Prozess B überschrieben, sobald Prozess A wieder CPU-Zeit hat, da Prozess A noch mit dem Variablenwert vor der Ausführung von Prozess B arbeitet.",[24,2251,2252],{},"Das Ergebnis der beiden Prozesse hängt von ihrer zeitlichen Reihenfolge ab",[24,2254,2255,2258],{},[42,2256,2257],{},"Race Condition",": Ergebnis zweier Prozesse mit dem gleichen Betriebsmittel, das von der zeitlichen Reihenfolge abhängt",[414,2260,2261],{},[1504,2262],{"alt":269,"src":2263},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_7.png",[475,2265,2267],{"id":2266},"lösung-wechselseitiger-ausschluss","Lösung: wechselseitiger Ausschluss",[21,2269,2270,2276],{},[24,2271,2272,2275],{},[42,2273,2274],{},"Kritischer Abschnitt",": Programmteil, der eine atomare Aktion beinhält",[24,2277,2278,2281],{},[42,2279,2280],{},"Wechselseitiger Ausschluss",": Sorgt dafür, dass sich in einem kritischen Abschnitt immer nur ein Prozess befindet (z.B. mit Hilfe einer Semaphore)",[414,2283,2284],{},[1504,2285],{"alt":269,"src":2286},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_8.png",[475,2288,2290],{"id":2289},"praktische-implementierung-binäre-semaphoren","Praktische Implementierung: (binäre) Semaphoren",[21,2292,2293,2304,2323,2339],{},[24,2294,2295,2298,2299],{},[42,2296,2297],{},"Semaphorenzähler",": Bestimmt wie viele Prozesse in einem kritischen Abschnitt sein dürfen\n",[21,2300,2301],{},[24,2302,2303],{},"Binäre Semaphore: Maximal ein Prozess in einem kritischen Abschnitt",[24,2305,2306,2307],{},"Eintritt in kritischen Abschnitt:\n",[21,2308,2309],{},[24,2310,2311,2312],{},"Funktion P() wird aufgerufen\n",[21,2313,2314,2317,2320],{},[24,2315,2316],{},"Sperrt kritischen Bereich",[24,2318,2319],{},"Reduziert Semaphorenzähler um 1, sofern er größer als 0 ist",[24,2321,2322],{},"Semaphorenzähler ist 0: Eintritt in kritischen Bereich wird verwehrt – Prozess verliert CPU",[24,2324,2325,2326],{},"Verlassen eines kritischen Abschnitts:\n",[21,2327,2328],{},[24,2329,2330,2331],{},"Funktion V() wird aufgerufen\n",[21,2332,2333,2336],{},[24,2334,2335],{},"Gibt kritischen Bereich frei",[24,2337,2338],{},"Semaphorenzähler wird um 1 erhöht",[24,2340,2341],{},"Jeder kritische Abschnitt\u002Fjedes Betriebsmittel hat eine zugeordnete Semaphore",[414,2343,2344],{},[1504,2345],{"alt":269,"src":2346},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_9.png",[470,2348,2350],{"id":2349},"probleme-mit-nebenläufigen-prozessen","Probleme mit nebenläufigen Prozessen",[475,2352,2354],{"id":2353},"blockieren","Blockieren",[21,2356,2357,2360,2363],{},[24,2358,2359],{},"Prozess 1 belegt ein Betriebsmittel",[24,2361,2362],{},"Prozess 2 benötigt das gleiche Betriebsmittel",[24,2364,2365],{},"Prozess 2 ist blockiert",[475,2367,2369],{"id":2368},"verhungern","Verhungern",[414,2371,2372],{},"Ein Prozess erhält ein Betriebsmittel nie, da immer andere Prozesse das Betriebsmittel belegen",[475,2374,2376],{"id":2375},"deadlock","Deadlock",[414,2378,2379],{},"Mehrere Prozesse versuchen auf Betriebsmittel zuzugreifen, die von jeweils einem der anderen Prozesse blockiert sind.",[414,2381,2382],{},[1504,2383],{"alt":269,"src":2384},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa1_img_10.png",{"title":269,"searchDepth":270,"depth":270,"links":2386},[2387,2388,2389,2390,2394,2397,2398,2402,2403,2406,2407,2410,2417],{"id":1337,"depth":270,"text":1338},{"id":1393,"depth":270,"text":1394},{"id":1431,"depth":270,"text":1432},{"id":1496,"depth":270,"text":1497,"children":2391},[2392,2393],{"id":1509,"depth":1263,"text":1510},{"id":1559,"depth":1263,"text":1560},{"id":1598,"depth":270,"text":1599,"children":2395},[2396],{"id":1602,"depth":1263,"text":1510},{"id":1655,"depth":270,"text":1656},{"id":1676,"depth":270,"text":1677,"children":2399},[2400,2401],{"id":1680,"depth":1263,"text":1681},{"id":1718,"depth":1263,"text":1719},{"id":1757,"depth":270,"text":1758},{"id":1792,"depth":270,"text":1793,"children":2404},[2405],{"id":1822,"depth":1263,"text":1823},{"id":1837,"depth":270,"text":1838},{"id":1884,"depth":270,"text":1885,"children":2408},[2409],{"id":1920,"depth":1263,"text":1921},{"id":2018,"depth":270,"text":2019,"children":2411},[2412,2413,2414,2415,2416],{"id":2030,"depth":1263,"text":2031},{"id":2048,"depth":1263,"text":2049},{"id":2077,"depth":1263,"text":2078},{"id":2124,"depth":1263,"text":2125},{"id":2153,"depth":1263,"text":2154},{"id":2195,"depth":270,"text":2196,"children":2418},[2419,2420],{"id":2221,"depth":1263,"text":2222},{"id":2349,"depth":1263,"text":2350},"3-4",{},{"title":2424},"Zusammenfassung – Schulaufgabe 1 (2023\u002F2024)","\u002Ffaecher\u002Fbsa\u002F3-4-zsmf-sa1","\u002Fdownloads\u002FBSA\u002FBSA_3-4_ZSMF_SA1.pdf",{"title":6,"description":1303},"faecher\u002Fbsa\u002F3-4-zsmf-sa1","BSA","Betriebssysteme und Administration","2023\u002F2024","UCml3q7ij2FGv2JpnjORZX6xjuNJlPZXqP7CYuzGgBY",{"id":2434,"title":301,"body":2435,"class":2421,"description":269,"extension":283,"meta":3983,"navigation":3984,"path":3986,"pdfDownload":3987,"scope":1288,"scopeName":1289,"seo":3988,"stem":3989,"subject":2429,"subjectName":2430,"type":295,"typeName":296,"year":2431,"__hash__":3990},"faecher\u002Ffaecher\u002Fbsa\u002F3-4-zsmf-sa2.md",{"type":8,"value":2436,"toc":3933},[2437,2441,2461,2465,2482,2486,2490,2501,2503,2550,2554,2565,2569,2608,2612,2616,2669,2673,2704,2708,2719,2723,2748,2752,2757,2761,2792,2796,2802,2848,2852,2924,2928,2967,2971,3008,3011,3059,3063,3065,3088,3092,3096,3120,3124,3144,3148,3175,3179,3195,3199,3213,3217,3236,3240,3271,3275,3306,3309,3351,3355,3393,3397,3401,3427,3431,3448,3452,3471,3474,3514,3518,3523,3527,3561,3565,3580,3584,3586,3591,3595,3609,3613,3629,3633,3649,3653,3664,3667,3671,3706,3710,3727,3731,3756,3760,3787,3791,3843,3847,3883,3887,3892,3895,3909,3913],[11,2438,2440],{"id":2439},"speicherverwaltung","Speicherverwaltung",[21,2442,2443,2446,2449,2455],{},[24,2444,2445],{},"Zuweisung von Speicher an Prozesse",[24,2447,2448],{},"Schutz vor unerlaubtem Zugriff auf OS-reservierten Bereich",[24,2450,2451,2454],{},[42,2452,2453],{},"Belegungstabelle (Memory Management Unit – MMU):"," Speichert freie und belegte Speicherbereiche",[24,2456,2457,2460],{},[42,2458,2459],{},"Seite",": Block von x Bytes, die zusammengefasst sind",[16,2462,2464],{"id":2463},"direkte-speicherbelegung","Direkte Speicherbelegung",[21,2466,2467,2473,2479],{},[24,2468,2469,2472],{},[42,2470,2471],{},"Ein Programm",": Prozess erhält den gesamten Speicher",[24,2474,2475,2478],{},[42,2476,2477],{},"Mehrere Programme",": Zuordnung erfolgt über Speicherbelegungstabelle",[24,2480,2481],{},"Wird ein freier Platz gesucht, wird die gesamte Tabelle auf eine passende Anzahl aufeinanderfolgender Nullen durchsucht",[470,2483,2485],{"id":2484},"speicherbelegungsstrategien","Speicherbelegungsstrategien",[475,2487,2489],{"id":2488},"kriterien","Kriterien",[21,2491,2492,2495,2498],{},[24,2493,2494],{},"Möglichst wenig Verschnitt",[24,2496,2497],{},"Restblöcke sollen noch eine „nutzbare“ Größe haben",[24,2499,2500],{},"Möglichst schnelles finden von freiem Speicher",[475,2502,2154],{"id":2153},[21,2504,2505,2511,2517,2520,2526,2529,2535,2538,2544,2547],{},[24,2506,2507,2510],{},[42,2508,2509],{},"First-Fit",": Erster passender, freier Speicherplatz wird gewählt",[24,2512,2513,2516],{},[42,2514,2515],{},"Best-Fit",": Am besten passender Speicherplatz wird gewählt",[24,2518,2519],{},"Wenig Verschnitt",[24,2521,2522,2525],{},[42,2523,2524],{},"Worst-Fit",": Am schlechtesten passender Speicherplatz wird gewählt",[24,2527,2528],{},"Viel Verschnitt",[24,2530,2531,2534],{},[42,2532,2533],{},"Next-Fit",": Nächster Platz an dem der angeforderte Speicher passt wird gewählt",[24,2536,2537],{},"Nächste Suche beginnt an dieser Stelle",[24,2539,2540,2543],{},[42,2541,2542],{},"Halbierung",": Speicher wird iterativ halbiert",[24,2545,2546],{},"Verschiedengroße Blöcke entstehen",[24,2548,2549],{},"Es wird immer ein kompletter Block belegt",[470,2551,2553],{"id":2552},"probleme","Probleme",[21,2555,2556,2562],{},[24,2557,2558,2561],{},[42,2559,2560],{},"Fragmentierung",": Speicher hat viele kleine, unbrauchbare Stücke",[24,2563,2564],{},"Belegungstabelle benötigt ebenfalls Platz",[16,2566,2568],{"id":2567},"virtuelle-speicherbelegung","Virtuelle Speicherbelegung",[21,2570,2571,2577,2583,2586],{},[24,2572,2573,2576],{},[42,2574,2575],{},"Logischer Adressraum",": Adressraum, auf den die Befehle eines Programms referieren",[24,2578,2579,2582],{},[42,2580,2581],{},"Physischer Adressraum",": Adressraum, in dem sich das Programm bei der Abarbeitung befindet",[24,2584,2585],{},"Beide Adressräume werden in gleichgroße Seiten eingeteilt",[24,2587,2588,2591,2592],{},[42,2589,2590],{},"Seitentabelle",": Dient zur Transformation von virtuellen in physische Seitenrahmen. Übersetzt virtuelle Adressen in reale Adressen.\n",[21,2593,2594],{},[24,2595,2596,2597],{},"Enthält:\n",[21,2598,2599,2602,2605],{},[24,2600,2601],{},"Für welche virtuelle Seite welche physische Seite verwendet werden soll",[24,2603,2604],{},"Bei nicht verwendeten Seiten, dass keine reale Seite dafür verwendet wird",[24,2606,2607],{},"Bei Auslagerung, wo in einer Programm-\u002FBibliotheks-\u002FAuslagerungsdatei der Inhalt gespeichert ist",[470,2609,2611],{"id":2610},"seitentabelleneintrag","Seitentabelleneintrag",[475,2613,2615],{"id":2614},"aufbau","Aufbau",[21,2617,2618,2624,2630,2641,2655],{},[24,2619,2620,2623],{},[42,2621,2622],{},"Seitenrahmennummer",": Physische Adresse im Arbeitsspeicher, auf die der Eintrag verweist",[24,2625,2626,2629],{},[42,2627,2628],{},"Present-Absent-Bit",": Im RAM(1) oder ausgelagert(0)",[24,2631,2632,2635,2636],{},[42,2633,2634],{},"Protection-Bits",": Regelt Zugriff auf die Seite\n",[21,2637,2638],{},[24,2639,2640],{},"z.B.: 1 Bit: 0 -> Lesen und Schreiben – 1 -> Schreiben",[24,2642,2643,2646,2647],{},[42,2644,2645],{},"Modified-Bit (M-Bit):"," Wird gesetzt, wenn auf eine Seite geschrieben wird\n",[21,2648,2649,2652],{},[24,2650,2651],{},"Beim Auslagern wird dadurch entschieden, ob die Version auf der Festplatte aktualisiert werden muss oder ob diese noch aktuell ist",[24,2653,2654],{},"Wurde es geändert?",[24,2656,2657,2660,2661],{},[42,2658,2659],{},"Referenced-Bit (R-Bit):"," Wird bei jedem Zugriff auf die Seite gesetzt\n",[21,2662,2663,2666],{},[24,2664,2665],{},"Hilft beim entscheiden welche Seite ausgelagert werden soll",[24,2667,2668],{},"Wurde es benutzt?",[475,2670,2672],{"id":2671},"adressabbildung","Adressabbildung",[21,2674,2675,2681,2687,2693],{},[24,2676,2677,2680],{},[42,2678,2679],{},"Virtuelle Adresse",": Seitennummer + Offset",[24,2682,2683,2686],{},[42,2684,2685],{},"Reale Adresse",": Basisadresse der realen Seite + Offset",[24,2688,2689,2692],{},[42,2690,2691],{},"Länge des Offsets",": Größe der Seite",[24,2694,2695,2698,2699],{},[42,2696,2697],{},"Länge der Seitentabelle",": Anzahl der Bits für die Seitennummer\u002FBasisadresse\n",[21,2700,2701],{},[24,2702,2703],{},"z.B.: Seite mit 1024 Byte -> 210 -> 10 Bit",[470,2705,2707],{"id":2706},"swapping","Swapping",[21,2709,2710,2713,2716],{},[24,2711,2712],{},"Kein freier Arbeitsspeicher -> Daten werden ausgelagert",[24,2714,2715],{},"Adressen von ausgelagerten Seiten werden nicht in der Seitentabelle gespeichert",[24,2717,2718],{},"Es kommt zum Seitenfehler -> OS greift auf eigene Tabellen zurück",[470,2720,2722],{"id":2721},"seitenfehler","Seitenfehler",[21,2724,2725,2728,2731,2734],{},[24,2726,2727],{},"Prozess spricht Adresse an, die nicht im RAM geladen ist",[24,2729,2730],{},"Seitenfehler entsteht",[24,2732,2733],{},"OS übernimmt Behandlung",[24,2735,2736,2737],{},"Mögliche Ursachen:\n",[21,2738,2739,2742,2745],{},[24,2740,2741],{},"Seite ist ausgelagert",[24,2743,2744],{},"Prozess greift das erste Mal auf die Seite zu",[24,2746,2747],{},"Seite ist ungültig bzw. Zugriff nicht erlaubt (Segmentation Fault)",[11,2749,2751],{"id":2750},"bootvorgang","Bootvorgang",[414,2753,2754],{},[1504,2755],{"alt":269,"src":2756},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa2_img_1.png",[16,2758,2760],{"id":2759},"bios-master-boot-record-mbr","BIOS: Master Boot Record (MBR)",[21,2762,2763,2769,2775,2780,2786],{},[24,2764,2765,2768],{},[42,2766,2767],{},"Bootloader",": Ruft Bootloader oder Bootmanager auf",[24,2770,2771,2774],{},[42,2772,2773],{},"Datenträgersignatur",": Identifikation des Datenträgers, der Bootinstruktionen enthält",[24,2776,2777],{},[42,2778,2779],{},"Schutzabstand",[24,2781,2782,2785],{},[42,2783,2784],{},"Partitionstabelle",": Partitionen auf dem physischen Laufwerk",[24,2787,2788,2791],{},[42,2789,2790],{},"Bootsektorsignatur",": 0x55AA als Ende des MBR",[16,2793,2795],{"id":2794},"uefi-general-partition-table-gpt","UEFI: General Partition Table (GPT)",[414,2797,2798,2801],{},[42,2799,2800],{},"LBA",": Logical Block Index z.B.: 1LBA = 512 Byte",[21,2803,2804,2810,2830,2836,2842],{},[24,2805,2806,2809],{},[42,2807,2808],{},"LBA0 – Protective MBR",": 512 Byte Platzhalter für MBR",[24,2811,2812,2815,2816],{},[42,2813,2814],{},"LBA1 – GPT Header",":\n",[21,2817,2818,2821,2824,2827],{},[24,2819,2820],{},"Position des Headers",[24,2822,2823],{},"Position des Backup-Headers",[24,2825,2826],{},"Anzahl und Größe der Partitionseinträge",[24,2828,2829],{},"CRC-Prüfsumme",[24,2831,2832,2835],{},[42,2833,2834],{},"LBA2 – LBA34",": Partitionseinträge",[24,2837,2838,2841],{},[42,2839,2840],{},"Ab LBA34",": Eigentliche Partitionen",[24,2843,2844,2847],{},[42,2845,2846],{},"In den letzten 34 LBAs",": Alles gespiegelt",[16,2849,2851],{"id":2850},"vergleich-mbr-vs-gpt","Vergleich: MBR vs. GPT",[765,2853,2854,2870],{},[768,2855,2856],{},[771,2857,2858,2860,2865],{},[774,2859],{},[774,2861,2862],{},[42,2863,2864],{},"Master Boot Record (MBR)",[774,2866,2867],{},[42,2868,2869],{},"General Partition Table (GPT)",[787,2871,2872,2885,2898,2911],{},[771,2873,2874,2879,2882],{},[792,2875,2876],{},[406,2877,2878],{},"Max. Festplattengröße",[792,2880,2881],{},"2TB",[792,2883,2884],{},"18 ExaByte",[771,2886,2887,2892,2895],{},[792,2888,2889],{},[406,2890,2891],{},"Primäre Partitionen",[792,2893,2894],{},"4",[792,2896,2897],{},"Unbegrenzt",[771,2899,2900,2905,2908],{},[792,2901,2902],{},[406,2903,2904],{},"Sicherheit",[792,2906,2907],{},"Keine Prüfsumme, nur ein Datensektor",[792,2909,2910],{},"Datensektor mit Prüfsumme und Backup",[771,2912,2913,2918,2921],{},[792,2914,2915],{},[406,2916,2917],{},"Standardisierung",[792,2919,2920],{},"Kein Standard; Lose Vereinbarung",[792,2922,2923],{},"Exakt definiert durch EFI",[11,2925,2927],{"id":2926},"datenträgerverwaltung","Datenträgerverwaltung",[21,2929,2930,2936],{},[24,2931,2932,2935],{},[42,2933,2934],{},"Unter Windows",": diskmgmt.msc (GUI) oder diskpart (CLI)",[24,2937,2938,2941,2942],{},[42,2939,2940],{},"Einfachste Variante",": Basisdatenträger\n",[21,2943,2944,2955,2961],{},[24,2945,2946,2949,2950],{},[42,2947,2948],{},"Partitionierung",": Einteilung in Untereinheiten (Volumes)\n",[21,2951,2952],{},[24,2953,2954],{},"Wird in MBR\u002FGPT geschrieben",[24,2956,2957,2960],{},[42,2958,2959],{},"Laufwerksbezeichnung",": Name und Laufwerksbuchstabe",[24,2962,2963,2966],{},[42,2964,2965],{},"Dateisystem",": Art, wie Dateien auf dem Datenträger abgelegt werden",[16,2968,2970],{"id":2969},"dynamische-datenträgerverwaltung","Dynamische Datenträgerverwaltung",[21,2972,2973,2979,2985,2991,2997,3002],{},[24,2974,2975,2978],{},[42,2976,2977],{},"Logical Volume Manager (LVM):"," kümmert sich um Verwaltung der logischen Datenträger",[24,2980,2981,2984],{},[42,2982,2983],{},"Physical Volume",": Physisches Laufwerk (HDD \u002F SSD)",[24,2986,2987,2990],{},[42,2988,2989],{},"Physical Partition",": Physische Partition auf einem Laufwerk",[24,2992,2993,2996],{},[42,2994,2995],{},"Logical Volume",": Logisches Laufwerk, das sich aus mehreren physischen Partitionen zusammensetzen kann",[24,2998,2999],{},[42,3000,3001],{},"Filesystem",[24,3003,3004,3007],{},[42,3005,3006],{},"Mounting-Point",": Ort, an dem ein Laufwerk eingegliedert wird",[470,3009,2934],{"id":3010},"unter-windows",[21,3012,3013,3019,3025,3042],{},[24,3014,3015,3018],{},[42,3016,3017],{},"Einfaches Volume",": zusammenhängender Bereiche einer physischen Festplatte",[24,3020,3021,3024],{},[42,3022,3023],{},"Übergreifendes Volume",": besteht aus Bereichen mehrere physischer Festplatten – max. 32",[24,3026,3027,3030,3031],{},[42,3028,3029],{},"Stripesetvolume",": Wie RAID 0\n",[21,3032,3033,3036,3039],{},[24,3034,3035],{},"Bestandteile auf Festplatten aufgeteilt",[24,3037,3038],{},"Beschleunigung von Lese- und Schreibvorgängen",[24,3040,3041],{},"Keine Redundanz",[24,3043,3044,3047,3048],{},[42,3045,3046],{},"Gespiegeltes Volume",": Wie RAID 1\n",[21,3049,3050,3053,3056],{},[24,3051,3052],{},"Daten auf Festplatten dupliziert",[24,3054,3055],{},"Fehlertoleranz",[24,3057,3058],{},"Beschleunigung von Lesevorgängen",[11,3060,3062],{"id":3061},"dateisysteme","Dateisysteme",[16,3064,1338],{"id":1337},[21,3066,3067,3070,3073,3076,3079,3082,3085],{},[24,3068,3069],{},"Physische Belegung von Speichereinheiten",[24,3071,3072],{},"Zuordnung von Speichereinheiten zu logischen Dateien",[24,3074,3075],{},"Benennung der logischen Dateien",[24,3077,3078],{},"Zugriffsberechtigung regeln",[24,3080,3081],{},"Führen von Dateiattributen (schreibgeschützt, versteckt…)",[24,3083,3084],{},"Verwalten von Metadaten (Größe, letzter Zugriff)",[24,3086,3087],{},"Bereitstellen standardisierter Zugriffsschnittstellen (open, read, write…)",[16,3089,3091],{"id":3090},"arten-der-speicherung","Arten der Speicherung",[470,3093,3095],{"id":3094},"kontinuierliche-speicherung","Kontinuierliche Speicherung",[21,3097,3098,3101,3104],{},[24,3099,3100],{},"Daten einer Datei werden aneinanderhängend in den Speicher geschrieben",[24,3102,3103],{},"Aufteilung in Blocks",[24,3105,3106,3107],{},"Probleme\n",[21,3108,3109,3112,3114,3117],{},[24,3110,3111],{},"Freien Speicherplatz finden",[24,3113,2560],{},[24,3115,3116],{},"Erweiterung schwierig",[24,3118,3119],{},"Größe von Dateien ggf. nicht im Voraus bekannt",[470,3121,3123],{"id":3122},"verkettete-speicherung","Verkettete Speicherung",[21,3125,3126,3129,3132],{},[24,3127,3128],{},"Dateien werden in Form einer verketten Liste gespeichert",[24,3130,3131],{},"Start jeder Datei wird in File Allocation Table gespeichert",[24,3133,3106,3134],{},[21,3135,3136,3138,3141],{},[24,3137,2560],{},[24,3139,3140],{},"Schlecht für random accesses",[24,3142,3143],{},"Fehleranfällig",[470,3145,3147],{"id":3146},"indizierte-speicherung","Indizierte Speicherung",[21,3149,3150,3153,3156,3167],{},[24,3151,3152],{},"Adressen der Speicherblöcke werden in einer Indextabelle gespeichert",[24,3154,3155],{},"Mehrere Stufen der Indizierung möglich",[24,3157,3158,3159],{},"Vorteile\n",[21,3160,3161,3164],{},[24,3162,3163],{},"Keine externe Fragmentierung",[24,3165,3166],{},"Random access sehr schnell",[24,3168,3169,3170],{},"Nachteil\n",[21,3171,3172],{},[24,3173,3174],{},"Speicher-Overhead für die zusätzlichen Indextabellen",[470,3176,3178],{"id":3177},"baumsequentielle-speicherung","Baumsequentielle Speicherung",[21,3180,3181,3184,3187],{},[24,3182,3183],{},"Adressen werden in einer Baumstruktur gespeichert",[24,3185,3186],{},"Nur unterste „Blätter“ enthalten Daten",[24,3188,3189,3190],{},"Vorteil\n",[21,3191,3192],{},[24,3193,3194],{},"Schneller Zugriff auf Dateien",[475,3196,3198],{"id":3197},"beispiel-ntfs","Beispiel NTFS",[21,3200,3201,3204,3207,3210],{},[24,3202,3203],{},"Jede Datei hat einen Eintrag im Master File Table (MFT)",[24,3205,3206],{},"Kleine Dateien sind direkt im MFT gespeichert",[24,3208,3209],{},"Bei größeren Dateien steht die Adresse der Daten im MFT",[24,3211,3212],{},"Bei Verzeichnissen wird weiter verzweigt",[16,3214,3216],{"id":3215},"unter-windows-10","Unter Windows 10",[21,3218,3219],{},[24,3220,3221,3222],{},"Mögliche Dateisysteme\n",[21,3223,3224,3227,3230,3233],{},[24,3225,3226],{},"NTFS (Standard)",[24,3228,3229],{},"FAT",[24,3231,3232],{},"FAT32",[24,3234,3235],{},"ReFS",[470,3237,3239],{"id":3238},"access-control-lists-acls-ntfs","Access Control Lists (ACLs) (NTFS)",[21,3241,3242,3245,3248,3254],{},[24,3243,3244],{},"Zugriffsrechte können verwaltet warden",[24,3246,3247],{},"Zugriffsrechte warden in Zugriffslisten (ACLs) gespeichert",[24,3249,3250,3253],{},[42,3251,3252],{},"ACL",": geordnete Liste von Zugriffseinträgen (Access Control Entries, ACEs)",[24,3255,3256,3259,3260],{},[42,3257,3258],{},"ACE",": Access Control Entry\n",[21,3261,3262,3265,3268],{},[24,3263,3264],{},"SID (Security Identifier): identifiziert User oder Gruppe",[24,3266,3267],{},"Spezifiziert Zugriffsrechte",[24,3269,3270],{},"Ein Bit, das besagt, ob das Recht vererbt wird",[11,3272,3274],{"id":3273},"registry","Registry",[21,3276,3277,3280,3283,3303],{},[24,3278,3279],{},"Zentrale Datenbank zur Speicherung von Informationen von System und Software",[24,3281,3282],{},"Einträge für OS, Anwendungen, Komponenten und Treiber",[24,3284,3285,3286],{},"Neue Einträge bei\n",[21,3287,3288,3291,3294,3297,3300],{},[24,3289,3290],{},"Installation",[24,3292,3293],{},"Systemeinstellungsänderungen",[24,3295,3296],{},"Programmeinstellungen",[24,3298,3299],{},"Konfig-Änderungen",[24,3301,3302],{},"Manuelles erstellen",[24,3304,3305],{},"Editieren über reg (CLI) oder regedit.exe (GUI)",[16,3307,2615],{"id":3308},"aufbau-1",[21,3310,3311,3335,3343],{},[24,3312,3313,3314],{},"Hauptschlüssel & Views\n",[21,3315,3316,3321,3326,3329,3332],{},[24,3317,3318],{},[42,3319,3320],{},"HKEY_LOCAL_MACHINE (Hauptschlüssel)",[24,3322,3323],{},[42,3324,3325],{},"HKEY_USERS (Hauptschlüssel)",[24,3327,3328],{},"HKEY_CLASSES_ROOT (View)",[24,3330,3331],{},"HKEY_CURRENT_USER (View)",[24,3333,3334],{},"HKEY_CURRENT_CONFIG (View)",[24,3336,3337,3338],{},"Unterschlüssel\n",[21,3339,3340],{},[24,3341,3342],{},"z.B.: \\SOFTWARE\\7-Zip",[24,3344,3345,3346],{},"Wert: Eintrag unter Unterschlüssel\n",[21,3347,3348],{},[24,3349,3350],{},"z.B.: \\SOFTWARE\\7-Zip\\Path",[16,3352,3354],{"id":3353},"datentypen","Datentypen",[21,3356,3357,3363,3369,3375,3381,3387],{},[24,3358,3359,3362],{},[42,3360,3361],{},"REG_BINARY",": binäre Darstellung",[24,3364,3365,3368],{},[42,3366,3367],{},"REG_DWORD",": 8 Hex-Stellen",[24,3370,3371,3374],{},[42,3372,3373],{},"REG_QWORD",": 16 Hex-Stellen",[24,3376,3377,3380],{},[42,3378,3379],{},"REG_SZ",": Zeichenkette (String)",[24,3382,3383,3386],{},[42,3384,3385],{},"REG_Expand_SZ",": Zeichenkette mit Systemvariablen",[24,3388,3389,3392],{},[42,3390,3391],{},"REG_MULTI_SZ",": Array aus Zeichenketten",[11,3394,3396],{"id":3395},"netzwerkverwaltung","Netzwerkverwaltung",[16,3398,3400],{"id":3399},"dns-domain-name-system","DNS: Domain Name System",[21,3402,3403,3406,3409,3412,3415,3421],{},[24,3404,3405],{},"„Adressbuch des Internets“",[24,3407,3408],{},"IP-Adressen schwer zu merken",[24,3410,3411],{},"Domain-Namen wurden entwickelt",[24,3413,3414],{},"Außerdem leichter wartbar, da beim benutzen eines Domain-Namen dem Nutzer nicht auffällt, wenn sich die IP-Adresse hinter dem Namen ändert",[24,3416,3417,3420],{},[42,3418,3419],{},"FQDN",": Fully Qualified Domain Name",[24,3422,3423,3426],{},[42,3424,3425],{},"NSLOOKUP",": Dienstprogramm zur “manuellen” Abfrage von Domain-Namen, z.B. für Debug",[470,3428,3430],{"id":3429},"schritte","Schritte",[318,3432,3433,3436,3439,3442,3445],{},[24,3434,3435],{},"Nutzer gibt Domain-Namen ein",[24,3437,3438],{},"Client sendet entsprechende DNS-Abfrage an DNS-Server",[24,3440,3441],{},"DNS-Server gleicht FQDN mit IP-Adresse ab",[24,3443,3444],{},"DNS-Server antwortet mit IP-Adresse des FQDN",[24,3446,3447],{},"Client verwendet die IP-Adresse für die tatsächliche Kommunikation mit dem Server",[16,3449,3451],{"id":3450},"dhcp-dynamic-host-configuration-protocol","DHCP: Dynamic Host Configuration Protocol",[21,3453,3454,3457,3460,3463],{},[24,3455,3456],{},"Automatisierte Zuweisung von Netzwerkeinstellungen wie IP-Adresse, Subnetzmaske, Gateway und DNS-Server",[24,3458,3459],{},"Gegenstück ist die statische Adressierung",[24,3461,3462],{},"DHCP-Netzwerkgeräte fordern beim Verbinden zum Netzwerk DHCP-Daten an",[24,3464,3465,3466],{},"Die DHCP-Daten haben eine definierte Gültigkeitsdauer (Lease-Dauer)\n",[21,3467,3468],{},[24,3469,3470],{},"Nach Ablauf werden die Daten neu angefordert",[470,3472,3430],{"id":3473},"schritte-1",[318,3475,3476,3482,3488,3494],{},[24,3477,3478,3481],{},[42,3479,3480],{},"Discover"," (Broadcast): Client sendet DHCP-Discover beim booten bzw. beim herstellen einer Verbindung in einem Netzwerk",[24,3483,3484,3487],{},[42,3485,3486],{},"Offer",": Ein DHCP-Server, der den Discover-Broadcast erhalten hat antwortet mit einem DHCP-Offer, in dem die Netzwerkdaten über eine bestimmte Lease-Dauer enthalten sind",[24,3489,3490,3493],{},[42,3491,3492],{},"Request",": Da ggf. mehrere DHCP-Server auf den Discover ein Offer senden muss der Client ein Offer wählen und es mit einem entsprechenden Request bestätigen",[24,3495,3496,3499],{},[42,3497,3498],{},"Ack",[318,3500,3501,3504],{},[24,3502,3503],{},"Wenn die angebotene Adresse aus dem Offer am Server noch verfügbar ist antwortet dieser mit einer entsprechenden Bestätigung",[24,3505,3506,3507,3510,3511,3513],{},"Ist die angebotene Adresse nicht mehr verfügbar antwortet der Server mit einer negativen Bestätigung (",[42,3508,3509],{},"NAK","). Das DHCP-Verfahren beginnt am Client mit einem ",[42,3512,3480],{}," von vorne.",[16,3515,3517],{"id":3516},"cli-befehle","CLI-Befehle",[414,3519,3520],{},[1504,3521],{"alt":269,"src":3522},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa2_img_2.png",[11,3524,3526],{"id":3525},"datensicherung-systembackup","Datensicherung & Systembackup",[21,3528,3529,3535,3541],{},[24,3530,3531,3534],{},[42,3532,3533],{},"Gründe",": Virusbefall, fehlerhafter Systemzustand, Hardwareausfall",[24,3536,3537,3540],{},[42,3538,3539],{},"Kosten",": Hardware, Software, Personal",[24,3542,3543,3544],{},"Kriterien für Art der Sicherung\n",[21,3545,3546,3549,3552,3555,3558],{},[24,3547,3548],{},"Häufigkeit der Sicherung",[24,3550,3551],{},"Häufigkeit der Wiederherstellung",[24,3553,3554],{},"Größe der Datenmenge",[24,3556,3557],{},"Dauer der Sicherung",[24,3559,3560],{},"Dauer der Wiederherstellung",[16,3562,3564],{"id":3563},"systemsicherung","Systemsicherung",[21,3566,3567],{},[24,3568,3569,3571,3572],{},[42,3570,2004],{},": Wiederherstellungspunkte\n",[21,3573,3574,3577],{},[24,3575,3576],{},"Werden automatisch erstellt",[24,3578,3579],{},"Deinstalliert bei Wiederherstellung ggf. auch Programme",[16,3581,3583],{"id":3582},"userdatensicherung","Userdatensicherung",[470,3585,1432],{"id":1431},[414,3587,3588],{},[1504,3589],{"alt":269,"src":3590},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa2_img_3.png",[475,3592,3594],{"id":3593},"vollsicherung","Vollsicherung",[21,3596,3597,3600,3603,3606],{},[24,3598,3599],{},"Alle Daten werden gesichert",[24,3601,3602],{},"Einfache Wiederherstellung",[24,3604,3605],{},"Große Datenmenge",[24,3607,3608],{},"Lange Backupdauer",[475,3610,3612],{"id":3611},"differentielle-sicherung","Differentielle Sicherung",[21,3614,3615,3618,3621],{},[24,3616,3617],{},"Alle Daten seit der letzten Vollsicherung werden gesichert",[24,3619,3620],{},"Geringe Datenmenge",[24,3622,3623,3624],{},"Vollsicherung zur Wiederherstellung nötig\n",[21,3625,3626],{},[24,3627,3628],{},"Aufwändige Wiederherstellung",[475,3630,3632],{"id":3631},"inkrementelle-sicherung","Inkrementelle Sicherung",[21,3634,3635,3638,3641],{},[24,3636,3637],{},"Alle Daten seit der letzten inkrementellen Sicherung werden gesichert",[24,3639,3640],{},"Noch geringere Datenmenge als bei differentieller Sicherung",[24,3642,3643,3644],{},"Alle Inkremente notwendig für Wiederherstellung\n",[21,3645,3646],{},[24,3647,3648],{},"Noch aufwändigere Wiederherstellung",[11,3650,3652],{"id":3651},"verschlüsselung","Verschlüsselung",[21,3654,3655,3658,3661],{},[24,3656,3657],{},"Benutzt Schlüssel um Nachrichten unleserlich zu machen",[24,3659,3660],{},"Ohne Schlüssel kann die Nachricht nicht gelesen werden",[24,3662,3663],{},"Rainbow-Table: Tabelle mit Hashwerten zu vorgegebenen Passwörtern",[16,3665,1432],{"id":3666},"arten-1",[470,3668,3670],{"id":3669},"symmetrische-verschlüsselung","Symmetrische Verschlüsselung",[21,3672,3673,3676,3687,3690,3693],{},[24,3674,3675],{},"Selber Schlüssel beim ver- und entschlüsseln",[24,3677,3678,3679],{},"Beispiel: Caesar \u002F Monoalphabetische Substitution\n",[21,3680,3681,3684],{},[24,3682,3683],{},"Buchstaben\u002FBytes werden durch einen anderen ersetzt",[24,3685,3686],{},"Leicht zu knacken durch Muster und Statistik",[24,3688,3689],{},"Schneller als asymmetrische Verschlüsselung",[24,3691,3692],{},"Beispiele: AES & DES",[24,3694,3695,3698,3699],{},[42,3696,3697],{},"Schlüsselaustauschproblem",": beide Parteien benötigen den gleichen Schlüssel für ver- und entschlüsseln -> Übertragung muss auf sicherem Weg erfolgen\n",[21,3700,3701],{},[24,3702,3703,3705],{},[42,3704,558],{},": Asymmetrische Verschlüsselung zum Austausch des Schlüssels",[470,3707,3709],{"id":3708},"asymmetrische-verschlüsselung","Asymmetrische Verschlüsselung",[21,3711,3712,3715,3718,3721,3724],{},[24,3713,3714],{},"Öffentlicher Schlüssel zum verschlüsseln",[24,3716,3717],{},"Privater Schlüssel zum entschlüsseln",[24,3719,3720],{},"Langsamer als symmetrische Verschlüsselung",[24,3722,3723],{},"Sicherer Schlüsselaustausch",[24,3725,3726],{},"Beispiele: RSA & DSA",[470,3728,3730],{"id":3729},"hybride-verschlüsselung","Hybride Verschlüsselung",[21,3732,3733,3736,3739,3742,3753],{},[24,3734,3735],{},"Nutzt symmetrische und asymmetrische Verschlüsselung",[24,3737,3738],{},"Effizienz: Symmetrische Verschlüsselung für Datenübertragung (schnell)",[24,3740,3741],{},"Sicherheit: Asymmetrische Verschlüsselung für sicheren Schlüsselaustausch",[24,3743,3744,3745],{},"Ablauf\n",[21,3746,3747,3750],{},[24,3748,3749],{},"Daten werden mit symmetrischem Schlüssel verschlüsselt",[24,3751,3752],{},"Symmetrischer Schlüssel wird asymmetrisch verschlüsselt",[24,3754,3755],{},"Beispiele: HTTPS & verschlüsselte Mails",[16,3757,3759],{"id":3758},"methoden-der-verschlüsselung","Methoden der Verschlüsselung",[21,3761,3762,3768,3776],{},[24,3763,3764,3767],{},[42,3765,3766],{},"Permutation am Eingang",": Durcheinanderwürfeln der Daten (Keine Statistik möglich)",[24,3769,3770,3771],{},"Veränderung des Schlüssels während des Verschlüsselungsvorgangs\n",[21,3772,3773],{},[24,3774,3775],{},"Wenn eine Nachricht geknackt wird können nicht automatisch andere Nachrichten geknackt werden",[24,3777,3778,3781,3782],{},[42,3779,3780],{},"Sicherheit der Verschlüsselung – Schlüssellänge",": Anzahl der möglichen Schlüssel\n",[21,3783,3784],{},[24,3785,3786],{},"z.B.: 128 Bit Schlüssel -> 2128 Schlüssel möglich",[16,3788,3790],{"id":3789},"schlüsselmöglichkeiten","Schlüsselmöglichkeiten",[21,3792,3793,3816,3827],{},[24,3794,3795,3798],{},[42,3796,3797],{},"Benutzerkennwort",[21,3799,3800],{},[24,3801,3106,3802],{},[21,3803,3804,3807,3810,3813],{},[24,3805,3806],{},"Standardkennwörter",[24,3808,3809],{},"Kennwort ist hinterlegt",[24,3811,3812],{},"Kennwort wird vergessen",[24,3814,3815],{},"Länge ist begrenzt",[24,3817,3818,3821,3822],{},[42,3819,3820],{},"Trusted Platform Module (TPM):"," Chip auf Mainboard, der einen Schlüssel enthält\n",[21,3823,3824],{},[24,3825,3826],{},"Verschlüsselung für Hardwarekonfiguration",[24,3828,3829,3832],{},[42,3830,3831],{},"Smartcard",[21,3833,3834,3837,3840],{},[24,3835,3836],{},"User identifiziert sich mit Smartcard",[24,3838,3839],{},"Smartcard stellt Schlüssel zur Verfügung",[24,3841,3842],{},"Verschlüsselung für einen User",[16,3844,3846],{"id":3845},"bitlocker","Bitlocker",[21,3848,3849,3855,3861,3866,3869,3880],{},[24,3850,3851,3854],{},[42,3852,3853],{},"Festplattenverschlüsselung",": Komplettes Laufwerk wird verschlüsselt",[24,3856,3857,3860],{},[42,3858,3859],{},"Aktivierung",": Kontext-Menü am Laufwerk -> „Bitlocker aktivieren“",[24,3862,3863,3865],{},[42,3864,3790],{},": Kennwort, TPM, SmartCard",[24,3867,3868],{},"Wiederherstellungsschlüssel wird bei Aktivierung generiert: Verwendung wenn regulärer Schlüssel nicht mehr verfügbar\u002Fdefekt",[24,3870,3871,3872],{},"Eingabe des Schlüssels\n",[21,3873,3874,3877],{},[24,3875,3876],{},"Systempartition: Bei Start",[24,3878,3879],{},"Keine Systempartition: Bei Zugriff",[24,3881,3882],{},"Verschlüsselung mit AES 128\u002F256 Bit",[16,3884,3886],{"id":3885},"aes-advanced-encryption-standard","AES: Advanced Encryption Standard",[414,3888,3889],{},[1504,3890],{"alt":269,"src":3891},"\u002Fdownloads\u002FBSA\u002Fimages\u002F3-4-zsmf-sa2_img_4.png",[414,3893,3894],{},"Zum Entschlüsseln notwendig:",[21,3896,3897,3900,3903,3906],{},[24,3898,3899],{},"Passwort",[24,3901,3902],{},"Salt",[24,3904,3905],{},"Geheimtext",[24,3907,3908],{},"Initialization Vector",[16,3910,3912],{"id":3911},"efs-encrypting-file-system","EFS: Encrypting File System",[21,3914,3915,3918,3921,3924,3927,3930],{},[24,3916,3917],{},"Dateiverschlüsselungssystem unter NTFS",[24,3919,3920],{},"Kann auch nur einzelne Dateien verschlüsseln",[24,3922,3923],{},"EFS verwendet sowohl symmetrische als auch asymmetrische Verschlüsselung",[24,3925,3926],{},"Nach Aktivierung wird ein File Encryption Key (FEK) generiert",[24,3928,3929],{},"Datei wird mittels DES\u002FAES + FEK symmetrisch verschlüsselt",[24,3931,3932],{},"FEK wird mittels RSA + Userkennwort asymmetrisch verschlüsselt",{"title":269,"searchDepth":270,"depth":270,"links":3934},[3935,3939,3944,3945,3946,3947,3950,3951,3957,3960,3961,3962,3965,3968,3969,3970,3973,3978,3979,3980,3981,3982],{"id":2463,"depth":270,"text":2464,"children":3936},[3937,3938],{"id":2484,"depth":1263,"text":2485},{"id":2552,"depth":1263,"text":2553},{"id":2567,"depth":270,"text":2568,"children":3940},[3941,3942,3943],{"id":2610,"depth":1263,"text":2611},{"id":2706,"depth":1263,"text":2707},{"id":2721,"depth":1263,"text":2722},{"id":2759,"depth":270,"text":2760},{"id":2794,"depth":270,"text":2795},{"id":2850,"depth":270,"text":2851},{"id":2969,"depth":270,"text":2970,"children":3948},[3949],{"id":3010,"depth":1263,"text":2934},{"id":1337,"depth":270,"text":1338},{"id":3090,"depth":270,"text":3091,"children":3952},[3953,3954,3955,3956],{"id":3094,"depth":1263,"text":3095},{"id":3122,"depth":1263,"text":3123},{"id":3146,"depth":1263,"text":3147},{"id":3177,"depth":1263,"text":3178},{"id":3215,"depth":270,"text":3216,"children":3958},[3959],{"id":3238,"depth":1263,"text":3239},{"id":3308,"depth":270,"text":2615},{"id":3353,"depth":270,"text":3354},{"id":3399,"depth":270,"text":3400,"children":3963},[3964],{"id":3429,"depth":1263,"text":3430},{"id":3450,"depth":270,"text":3451,"children":3966},[3967],{"id":3473,"depth":1263,"text":3430},{"id":3516,"depth":270,"text":3517},{"id":3563,"depth":270,"text":3564},{"id":3582,"depth":270,"text":3583,"children":3971},[3972],{"id":1431,"depth":1263,"text":1432},{"id":3666,"depth":270,"text":1432,"children":3974},[3975,3976,3977],{"id":3669,"depth":1263,"text":3670},{"id":3708,"depth":1263,"text":3709},{"id":3729,"depth":1263,"text":3730},{"id":3758,"depth":270,"text":3759},{"id":3789,"depth":270,"text":3790},{"id":3845,"depth":270,"text":3846},{"id":3885,"depth":270,"text":3886},{"id":3911,"depth":270,"text":3912},{},{"title":3985},"Zusammenfassung – Schulaufgabe 2 (2023\u002F2024)","\u002Ffaecher\u002Fbsa\u002F3-4-zsmf-sa2","\u002Fdownloads\u002FBSA\u002FBSA_3-4_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fbsa\u002F3-4-zsmf-sa2","z71fEe6EULsyqnpYuyqb9bilzVh3cHubGq8RX55H9Uc",{"id":3992,"title":6,"body":3993,"class":282,"description":269,"extension":283,"meta":4576,"navigation":4577,"path":4578,"pdfDownload":4579,"scope":289,"scopeName":290,"seo":4580,"stem":4581,"subject":2429,"subjectName":2430,"type":295,"typeName":296,"year":297,"__hash__":4582},"faecher\u002Ffaecher\u002Fbsa\u002F5-6-zsmf-sa1.md",{"type":8,"value":3994,"toc":4545},[3995,3999,4022,4026,4052,4056,4076,4080,4083,4087,4104,4108,4119,4123,4137,4141,4177,4181,4186,4190,4235,4239,4264,4268,4272,4280,4284,4289,4293,4310,4314,4319,4323,4328,4332,4343,4348,4350,4354,4367,4372,4376,4396,4401,4405,4421,4425,4454,4458,4480,4484,4497,4501],[11,3996,3998],{"id":3997},"powershell","PowerShell",[21,4000,4001,4007,4010,4016,4019],{},[24,4002,4003,4006],{},[42,4004,4005],{},"Objektorientiert",": Objekte haben Attribute und Methoden",[24,4008,4009],{},"Nachfolger der CMD",[24,4011,4012,4013],{},"CMDlets Aufbau: ",[42,4014,4015],{},"Verb-Substantiv",[24,4017,4018],{},"Variablen durch **vorgestelltes $-**Zeichen",[24,4020,4021],{},"Mit Pipe (|) kann das Ergebnis eines CMDlets als Eingabe an das nächste übergeben werden",[16,4023,4025],{"id":4024},"execution-policies","Execution-Policies",[21,4027,4028,4034,4040,4046],{},[24,4029,4030,4033],{},[42,4031,4032],{},"Restricted",": Skripte werden nicht ausgeführt",[24,4035,4036,4039],{},[42,4037,4038],{},"RemoteSigned",": Nur lokale Skripte und signierte Skripte werden ausgeführt",[24,4041,4042,4045],{},[42,4043,4044],{},"AllSigned",": Nur signierte Skripte werden ausgeführt",[24,4047,4048,4051],{},[42,4049,4050],{},"Unrestricted",": Alle Skripte werden ausgeführt",[16,4053,4055],{"id":4054},"parameterarten","Parameterarten",[21,4057,4058,4064,4070],{},[24,4059,4060,4063],{},[42,4061,4062],{},"Benannt",": Angabe mit Namen und vorangestelltem „-„(z.B. -Path)",[24,4065,4066,4069],{},[42,4067,4068],{},"Switch",": Boolean-Input allein durch die Nennung des Parameters (z.B. -Force)",[24,4071,4072,4075],{},[42,4073,4074],{},"Position",": Verwendung des Inputs abhängig von der Position des Inputs (z.B. Copy-Item \u003CQuelle> \u003CZiel>)",[16,4077,4079],{"id":4078},"assoziative-arrays","Assoziative Arrays",[414,4081,4082],{},"Ähnlich wie Objekte in JavaScript – Fördern die Übersichtlichkeit und Lesbarkeit",[16,4084,4086],{"id":4085},"foreach-schleifen","ForEach-Schleifen",[21,4088,4089,4092,4098,4101],{},[24,4090,4091],{},"Iteriert über eine vorgegebene Liste",[24,4093,4094,4095],{},"Keine Zählvariable, sondern eine ",[42,4096,4097],{},"Schleifenvariable",[24,4099,4100],{},"Schleifenvariable enthält aktuellen Datensatz des Durchlaufs",[24,4102,4103],{},"Bsp: ForEach($File in $FileList){…}",[16,4105,4107],{"id":4106},"csv-dateien","CSV-Dateien",[21,4109,4110,4116],{},[24,4111,4112,4115],{},[42,4113,4114],{},"Comma-separated-values",": Trennung durch definierte Trennzeichen (z.B. Komma)",[24,4117,4118],{},"Die 1. Zeile enthält die Namen der Datenfelder",[470,4120,4122],{"id":4121},"verwendung-in-powershell","Verwendung in PowerShell",[21,4124,4125,4131],{},[24,4126,4127,4130],{},[42,4128,4129],{},"Import",": Import-Csv (z.B. $csvfile = Import-Csv .\\File.csv -Delimiter “;”)",[24,4132,4133,4136],{},[42,4134,4135],{},"Export",": Export-Csv (z.B. Get-ChildItem . | Export-Csv -Path file.csv -Delimiter “;”)",[16,4138,4140],{"id":4139},"vergleichsoperator-like","Vergleichsoperator “like”",[21,4142,4143,4146,4149],{},[24,4144,4145],{},"Vergleicht String mit einem vorgegebenen Muster",[24,4147,4148],{},"Muster kann Platzhalter enthalten",[24,4150,4151,4152],{},"Platzhalter:\n",[21,4153,4154,4160,4166],{},[24,4155,4156,4159],{},[42,4157,4158],{},"Stern"," (*): Beliebige und beliebig viele Zeichen",[24,4161,4162,4165],{},[42,4163,4164],{},"Fragezeichen"," (?): Ein beliebiges Zeichen",[24,4167,4168,4171,4172,4176],{},[42,4169,4170],{},"Range"," (",[4173,4174,4175],"span",{},"q-w","): Ein beliebiges Zeichen aus einer Auswahl an Zeichen",[16,4178,4180],{"id":4179},"regular-expressions","Regular Expressions",[21,4182,4183],{},[24,4184,4185],{},"Siehe Cheat-Sheet",[11,4187,4189],{"id":4188},"active-directory-ad","Active Directory (AD)",[21,4191,4192,4198,4201,4208,4225,4232],{},[24,4193,4194,4197],{},[42,4195,4196],{},"Verzeichnisdienst"," in Windows-Netzen",[24,4199,4200],{},"Aufbau in Datenbank (NTDS.dit)",[24,4202,4203,4204,4207],{},"Zur Abfrage der Datenbank wird ",[42,4205,4206],{},"LDAP"," (Lightweight Directory Access Protocol) verwendet",[24,4209,4210,4211],{},"In der Struktur vorhanden:\n",[21,4212,4213,4219],{},[24,4214,4215,4218],{},[42,4216,4217],{},"Objekte",": Benutzer, Gruppen, Computer",[24,4220,4221,4224],{},[42,4222,4223],{},"Orte",": Organistationseinheiten (OU), Domäne",[24,4226,4227,4228,4231],{},"Jedes Objekt in der Datenbank wird durch den ",[42,4229,4230],{},"Distinguished Name"," gekennzeichnet (entspricht dem absoluten Pfad in der Baumstruktur; ähnl. Primary-Key)",[24,4233,4234],{},"Struktur eines Unternehmens wird im AD abgebildet",[16,4236,4238],{"id":4237},"hauptkomponenten","Hauptkomponenten",[21,4240,4241,4246,4252,4258],{},[24,4242,4243,4245],{},[42,4244,4206],{},": Protokoll für den Zugriff auf den Verzeichnisdienst, in dem Informationen über Nutzer, Gruppen, Computer und anderen Objekten abgelegt sind",[24,4247,4248,4251],{},[42,4249,4250],{},"Kerberos-Protokoll",": Authentifizierung von Benutzern",[24,4253,4254,4257],{},[42,4255,4256],{},"CIFS\u002FSMB"," (Common Internet File System \u002F Server Message Block): Ablage von Dateien im Netzwerk",[24,4259,4260,4263],{},[42,4261,4262],{},"DNS"," (Domain Name System): Namensauflösung (früher NetBIOS\u002FWINS)",[16,4265,4267],{"id":4266},"bestandteile-des-ads","Bestandteile des Ads",[470,4269,4271],{"id":4270},"schema","Schema",[21,4273,4274,4277],{},[24,4275,4276],{},"Definiert Objekttypen, Klassen, Attribute und Attributsyntax",[24,4278,4279],{},"Wichtige Klassen: User, Computer, OU, Group",[470,4281,4283],{"id":4282},"konfiguration","Konfiguration",[21,4285,4286],{},[24,4287,4288],{},"Beschreibt die Gesamtstruktur (besteht aus Domänen) und deren Bäume",[470,4290,4292],{"id":4291},"domäne","Domäne",[21,4294,4295,4298,4301,4304,4307],{},[24,4296,4297],{},"Beinhält alle Informationen über die Objekte einer Domäne",[24,4299,4300],{},"Informationen werden im globalen Katalog gespeichert",[24,4302,4303],{},"Zentral verwaltbarer Sicherheitsbereich",[24,4305,4306],{},"Wird erstellt durch Installation eines Domänencontrollers",[24,4308,4309],{},"Domänencontroller speichert sämtliche Objekte einer Domäne (immer nur eine Domäne)",[470,4311,4313],{"id":4312},"strukturtree","Struktur\u002FTree",[21,4315,4316],{},[24,4317,4318],{},"Entsteht wenn Subdomänen erstellt werden",[470,4320,4322],{"id":4321},"gesamtstrukturforest","Gesamtstruktur\u002FForest",[21,4324,4325],{},[24,4326,4327],{},"Zwei Strukturen, die sich im selben AD befinden (braucht zweiten DC)",[16,4329,4331],{"id":4330},"vertrauensstellung","Vertrauensstellung",[21,4333,4334,4337,4340],{},[24,4335,4336],{},"Kann zwischen zwei oder mehr Domänen aufgebaut werden",[24,4338,4339],{},"Ermöglicht es Benutzern einer Domäne auf Ressourcen einer anderen zuzugreifen",[24,4341,4342],{},"Vertrauende Domäne lässt Authentifizierungen der vertrauten Domäne zu",[414,4344,4345],{},[1504,4346],{"alt":269,"src":4347},"\u002Fdownloads\u002FBSA\u002Fimages\u002F5-6-zsmf-sa1_img_1.png",[16,4349,1432],{"id":1431},[470,4351,4353],{"id":4352},"unidirektional","Unidirektional",[21,4355,4356,4359,4362],{},[24,4357,4358],{},"Nur in eine Richtung",[24,4360,4361],{},"Nicht durchlässig (Nicht transitiv)",[24,4363,4364],{},[406,4365,4366],{},"X vertraut Y, Y vertraut Z",[414,4368,4369],{},[1504,4370],{"alt":269,"src":4371},"\u002Fdownloads\u002FBSA\u002Fimages\u002F5-6-zsmf-sa1_img_2.png",[470,4373,4375],{"id":4374},"bidirektional","Bidirektional",[21,4377,4378,4381,4384],{},[24,4379,4380],{},"Beide Richtungen",[24,4382,4383],{},"Durchlässig (transitiv)",[24,4385,4386,4389],{},[406,4387,4388],{},"Teamup vertraut marketing und service",[21,4390,4391],{},[24,4392,4393],{},[406,4394,4395],{},"Dadurch vertraut service automatisch marketing",[414,4397,4398],{},[1504,4399],{"alt":269,"src":4400},"\u002Fdownloads\u002FBSA\u002Fimages\u002F5-6-zsmf-sa1_img_3.png",[16,4402,4404],{"id":4403},"ldap-lightweight-directory-access-protocol","LDAP: Lightweight Directory Access Protocol",[21,4406,4407,4410,4413],{},[24,4408,4409],{},"Netzwerkprotokoll zum Zugriff auf Verzeichnisdienste",[24,4411,4412],{},"Form einer Baumstruktur (directory information tree => dit)",[24,4414,4415,4416],{},"Arbeitet Objektorientiert: Alle Daten in Objekten, die einer Objektklasse zugeordnet sind\n",[21,4417,4418],{},[24,4419,4420],{},"Objekte haben Attribute und Methoden",[470,4422,4424],{"id":4423},"vererbung-bei-objekten","Vererbung bei Objekten",[21,4426,4427,4438,4445,4448,4451],{},[24,4428,4429,4430],{},"Neue Klassen können von einer Elternklasse abgeleitet werden\n",[21,4431,4432,4435],{},[24,4433,4434],{},"Sie erhalten alle Attribute der Elternklasse",[24,4436,4437],{},"Kann zusätzliche Attribute haben",[24,4439,4440,4441,4444],{},"Alle Klassen im AD sind von der Klasse ",[42,4442,4443],{},"top"," abgeleitet",[24,4446,4447],{},"Zu jeder Klasse kann ein Objekt angelegt werden und in der Baumstruktur abgelegt werden",[24,4449,4450],{},"Wurzel des Baumes ist die Domäne",[24,4452,4453],{},"Zur Strukturierung gibt es OUs (Organizational Units)",[16,4455,4457],{"id":4456},"ad-konten-verwalten","AD-Konten verwalten",[21,4459,4460,4471,4474,4477],{},[24,4461,4462,4463],{},"AD-Konten existieren für\n",[21,4464,4465,4468],{},[24,4466,4467],{},"Benutzer",[24,4469,4470],{},"Computer",[24,4472,4473],{},"Können in Gruppen zusammengefasst werden",[24,4475,4476],{},"Jedes Konto hat eine Sicherheitskennung SID",[24,4478,4479],{},"Zur Verwaltung von OUs können User einer OU Objektverwaltungsrechte eingeräumt werden",[470,4481,4483],{"id":4482},"verwaltungstools","Verwaltungstools",[21,4485,4486,4489,4492,4495],{},[24,4487,4488],{},"AD Benutzer und Computer",[24,4490,4491],{},"AD Verwaltungscenter",[24,4493,4494],{},"Kommandozeile",[24,4496,3998],{},[16,4498,4500],{"id":4499},"container-in-einer-domäne","Container in einer Domäne",[21,4502,4503,4509,4515,4521,4527,4533,4539],{},[24,4504,4505,4508],{},[42,4506,4507],{},"BuiltIn",": Spezielle lokale Sicherheitsgruppen (z.B. lokale Admins)",[24,4510,4511,4514],{},[42,4512,4513],{},"Computers",": Alle Computerkonten",[24,4516,4517,4520],{},[42,4518,4519],{},"Domain"," Controllers: Alle DCs einer Domäne",[24,4522,4523,4526],{},[42,4524,4525],{},"ForeignSecurityPrincipals",": Container für SIDs einer vertrauten Domäne",[24,4528,4529,4532],{},[42,4530,4531],{},"Program"," Data: Ablageort für Programmdaten im AD",[24,4534,4535,4538],{},[42,4536,4537],{},"Users",": Benutzerkonten und Gruppenkonten einer Domäne",[24,4540,4541,4544],{},[42,4542,4543],{},"Eigene",": Eigens erstellte OUs",{"title":269,"searchDepth":270,"depth":270,"links":4546},[4547,4548,4549,4550,4551,4554,4555,4556,4557,4564,4565,4569,4572,4575],{"id":4024,"depth":270,"text":4025},{"id":4054,"depth":270,"text":4055},{"id":4078,"depth":270,"text":4079},{"id":4085,"depth":270,"text":4086},{"id":4106,"depth":270,"text":4107,"children":4552},[4553],{"id":4121,"depth":1263,"text":4122},{"id":4139,"depth":270,"text":4140},{"id":4179,"depth":270,"text":4180},{"id":4237,"depth":270,"text":4238},{"id":4266,"depth":270,"text":4267,"children":4558},[4559,4560,4561,4562,4563],{"id":4270,"depth":1263,"text":4271},{"id":4282,"depth":1263,"text":4283},{"id":4291,"depth":1263,"text":4292},{"id":4312,"depth":1263,"text":4313},{"id":4321,"depth":1263,"text":4322},{"id":4330,"depth":270,"text":4331},{"id":1431,"depth":270,"text":1432,"children":4566},[4567,4568],{"id":4352,"depth":1263,"text":4353},{"id":4374,"depth":1263,"text":4375},{"id":4403,"depth":270,"text":4404,"children":4570},[4571],{"id":4423,"depth":1263,"text":4424},{"id":4456,"depth":270,"text":4457,"children":4573},[4574],{"id":4482,"depth":1263,"text":4483},{"id":4499,"depth":270,"text":4500},{},{"title":286},"\u002Ffaecher\u002Fbsa\u002F5-6-zsmf-sa1","\u002Fdownloads\u002FBSA\u002FBSA_5-6_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fbsa\u002F5-6-zsmf-sa1","wc6Ao1n9vLcHdHyzcC_c0u2w8ZuCIZv8Vin3E6VkJrA",{"id":4584,"title":301,"body":4585,"class":282,"description":269,"extension":283,"meta":5765,"navigation":5766,"path":5767,"pdfDownload":5768,"scope":1288,"scopeName":1289,"seo":5769,"stem":5770,"subject":2429,"subjectName":2430,"type":295,"typeName":296,"year":297,"__hash__":5771},"faecher\u002Ffaecher\u002Fbsa\u002F5-6-zsmf-sa2.md",{"type":8,"value":4586,"toc":5722},[4587,4591,4595,4617,4621,4637,4639,4643,4646,4674,4677,4680,4683,4692,4695,4698,4701,4704,4708,4712,4733,4737,4799,4863,4867,4884,4889,4893,4915,4919,4935,4939,4975,4989,4993,5098,5102,5104,5107,5109,5112,5133,5137,5156,5160,5187,5191,5224,5228,5245,5249,5265,5267,5281,5285,5315,5319,5322,5324,5332,5336,5339,5343,5354,5358,5374,5377,5391,5395,5399,5410,5414,5422,5426,5431,5435,5489,5492,5508,5512,5548,5552,5574,5578,5582,5590,5594,5602,5606,5625,5629,5645,5649,5660,5664,5678,5682,5693,5697,5701,5709,5713,5718],[11,4588,4590],{"id":4589},"active-directory","Active-Directory",[16,4592,4594],{"id":4593},"verwaltete-dienstkonten","Verwaltete Dienstkonten",[21,4596,4597,4600,4603,4606],{},[24,4598,4599],{},"Konten für Dienste",[24,4601,4602],{},"Interaktive Anmelden mit diesen Konten nicht möglich",[24,4604,4605],{},"Bsp.: SYSTEM",[24,4607,4608,4609],{},"Anwendungen\n",[21,4610,4611,4614],{},[24,4612,4613],{},"Datenbankserver",[24,4615,4616],{},"ERP-Server (SAP-Server)",[470,4618,4620],{"id":4619},"gruppenverwaltete-dienstkonten","Gruppenverwaltete Dienstkonten",[21,4622,4623,4626],{},[24,4624,4625],{},"Dienstkonten, die sich an verschiedenen Servern mit den gleichen Daten anmelden",[24,4627,4628,4629],{},"Typen:\n",[21,4630,4631,4634],{},[24,4632,4633],{},"Sicherheit: Gruppen, die Zugriffsrechte regeln (z.B. im Dateisystem)",[24,4635,4636],{},"Verteilung: Mailverteiler",[11,4638,3998],{"id":3997},[16,4640,4642],{"id":4641},"user-anlegen","User anlegen",[414,4644,4645],{},"$password = ConvertTo-SecureString \"LarsStinkt\" -AsPlainText -Force",[4647,4648,4652],"pre",{"className":4649,"code":4650,"language":4651,"meta":269,"style":269},"language-bash shiki shiki-themes github-light github-dark","New-ADUser -Name \"Max Mustermann\" `\n\n","bash",[4653,4654,4655],"code",{"__ignoreMap":269},[4173,4656,4659,4663,4667,4671],{"class":4657,"line":4658},"line",1,[4173,4660,4662],{"class":4661},"sScJk","New-ADUser",[4173,4664,4666],{"class":4665},"sj4cs"," -Name",[4173,4668,4670],{"class":4669},"sZZnC"," \"Max Mustermann\"",[4173,4672,4673],{"class":4669}," `\n",[414,4675,4676],{},"-GivenName \"Max\" `",[414,4678,4679],{},"-Surname \"Mustermann\" `",[414,4681,4682],{},"-SamAccountName \"mmustermann\" `",[414,4684,4685,4686,4691],{},"-UserPrincipalName \"",[4687,4688,4690],"a",{"href":4689},"mailto:mmustermann@domain.local","mmustermann@domain.local","\" `",[414,4693,4694],{},"-Path \"OU=IT,DC=domain,DC=local\" `",[414,4696,4697],{},"-AccountPassword $password `",[414,4699,4700],{},"-ChangePasswordAtLogon $true `",[414,4702,4703],{},"-Enabled $true",[16,4705,4707],{"id":4706},"ou-anlegen","OU anlegen",[470,4709,4711],{"id":4710},"root-ou","Root-OU",[4647,4713,4715],{"className":4649,"code":4714,"language":4651,"meta":269,"style":269},"New-ADOrganizationalUnit -Name \"IT\" -Path \"DC=domain,DC=local\"\n\n",[4653,4716,4717],{"__ignoreMap":269},[4173,4718,4719,4722,4724,4727,4730],{"class":4657,"line":4658},[4173,4720,4721],{"class":4661},"New-ADOrganizationalUnit",[4173,4723,4666],{"class":4665},[4173,4725,4726],{"class":4669}," \"IT\"",[4173,4728,4729],{"class":4665}," -Path",[4173,4731,4732],{"class":4669}," \"DC=domain,DC=local\"\n",[470,4734,4736],{"id":4735},"sub-ou","Sub-OU",[4647,4738,4740],{"className":4649,"code":4739,"language":4651,"meta":269,"style":269},"New-ADOrganizationalUnit -Name \"Support\" -Path \"OU=IT,DC=domain,DC=local\"\n\n# Gruppenrichtlinien\n\n- Konfigurationsanweisungen -> Einstellungen werden erzwungen\n",[4653,4741,4742,4756,4762,4768,4773],{"__ignoreMap":269},[4173,4743,4744,4746,4748,4751,4753],{"class":4657,"line":4658},[4173,4745,4721],{"class":4661},[4173,4747,4666],{"class":4665},[4173,4749,4750],{"class":4669}," \"Support\"",[4173,4752,4729],{"class":4665},[4173,4754,4755],{"class":4669}," \"OU=IT,DC=domain,DC=local\"\n",[4173,4757,4758],{"class":4657,"line":270},[4173,4759,4761],{"emptyLinePlaceholder":4760},true,"\n",[4173,4763,4764],{"class":4657,"line":1263},[4173,4765,4767],{"class":4766},"sJ8bj","# Gruppenrichtlinien\n",[4173,4769,4771],{"class":4657,"line":4770},4,[4173,4772,4761],{"emptyLinePlaceholder":4760},[4173,4774,4776,4779,4782,4786,4790,4793,4796],{"class":4657,"line":4775},5,[4173,4777,4778],{"class":4661},"-",[4173,4780,4781],{"class":4669}," Konfigurationsanweisungen",[4173,4783,4785],{"class":4784},"sVt8B"," -",[4173,4787,4789],{"class":4788},"szBVR",">",[4173,4791,4792],{"class":4669}," Einstellungen",[4173,4794,4795],{"class":4669}," werden",[4173,4797,4798],{"class":4669}," erzwungen\n",[21,4800,4801,4804,4818,4844,4852,4855],{},[24,4802,4803],{},"Konfigurationsanweisungen -> Einstellungen werden erzwungen",[24,4805,4806,4807],{},"Vorteile:\n",[21,4808,4809,4812,4815],{},[24,4810,4811],{},"Handlungsmöglichkeiten von Nutzern festlegen",[24,4813,4814],{},"Verwaltungsaufwand senken",[24,4816,4817],{},"Aufrechterhaltung von Computerkonfigurationen",[24,4819,4820,4821],{},"Einsatz:\n",[21,4822,4823,4826,4829,4832,4835,4838,4841],{},[24,4824,4825],{},"Registry-Einträge überschreiben",[24,4827,4828],{},"Kennwortrichtlinie",[24,4830,4831],{},"RDP-Anmeldung",[24,4833,4834],{},"Softwareinstallation",[24,4836,4837],{},"Ordnerumleitung",[24,4839,4840],{},"Netzlaufwerk einbinden",[24,4842,4843],{},"Skript-Ausführung",[24,4845,4846,4847],{},"Lokale Richtlinien: Konfiguration des lokalen Systems\n",[21,4848,4849],{},[24,4850,4851],{},"Keine Auswirkung auf die Domäne",[24,4853,4854],{},"Standort-, Domänen-, OU-Richtlinien: Wirken auf alle Nutzer innerhalb des gewählten Scopes",[24,4856,4857,4858],{},"In Gruppenrichtlinienverwaltung können neue Vorlagen für Gruppenrichtlinien erstellt werden\n",[21,4859,4860],{},[24,4861,4862],{},"Werden erst aktiv, wenn sie an einen Scope verknüpft werden",[16,4864,4866],{"id":4865},"anwendungsreihenfolge","Anwendungsreihenfolge",[318,4868,4869,4872,4875,4878,4881],{},[24,4870,4871],{},"Lokale Richtlinien",[24,4873,4874],{},"Multi-Lokale Richtlinien",[24,4876,4877],{},"Standortrichtlinie (Site)",[24,4879,4880],{},"Domänenrichtlinie (Domain)",[24,4882,4883],{},"OU-Richtlinie – übergeordnet zu untergeordnet",[21,4885,4886],{},[24,4887,4888],{},"Last-Write-Wins: Spätere Richtlinien überschreiben vorherige Richtlinien",[11,4890,4892],{"id":4891},"freigaben","Freigaben",[21,4894,4895,4909,4912],{},[24,4896,4897,4898],{},"SMB\n",[21,4899,4900,4903,4906],{},[24,4901,4902],{},"Windows-Freigabe",[24,4904,4905],{},"Netzwerkprotokoll für Dateizugriff",[24,4907,4908],{},"Aktuelle Version: SMBv3",[24,4910,4911],{},"NFS: Linux-Freigabe",[24,4913,4914],{},"Freigabe über Explorer\u002FServer-Manager",[16,4916,4918],{"id":4917},"berechtigungen","Berechtigungen",[21,4920,4921,4924],{},[24,4922,4923],{},"Vererbung: Rechte werden von übergeordneter Instanz übernommen",[24,4925,4926,4927],{},"Einträge werden von oben nach unten abgearbeitet\n",[21,4928,4929,4932],{},[24,4930,4931],{},"Oben: Verweigern",[24,4933,4934],{},"Unten: Zulassen",[16,4936,4938],{"id":4937},"access-control-lists-acls","Access Control Lists (ACLs)",[21,4940,4941,4944,4958,4972],{},[24,4942,4943],{},"Geordnete Liste von Zugriffseinträgen (ACEs)",[24,4945,4946,4947],{},"Access Control Entry (ACE)\n",[21,4948,4949,4952,4955],{},[24,4950,4951],{},"SID des Nutzers oder der Gruppe",[24,4953,4954],{},"Spezifizierte Rechte",[24,4956,4957],{},"Bit zur Entscheidung der Vererbung",[24,4959,4960,4961],{},"Abarbeitung ist beendet, wenn\n",[21,4962,4963,4966,4969],{},[24,4964,4965],{},"Explizit zugelassen",[24,4967,4968],{},"Explizit verweigert",[24,4970,4971],{},"Alle ACEs durchgelaufen",[24,4973,4974],{},"Reihenfolge der Abarbeitung",[318,4976,4977,4980,4983,4986],{},[24,4978,4979],{},"ACEs die explizit verweigern",[24,4981,4982],{},"ACEs die explizit erlauben",[24,4984,4985],{},"ACEs die vererbt verweigern",[24,4987,4988],{},"ACEs die vererbt erlauben",[16,4990,4992],{"id":4991},"gruppenrechtevergabe","Gruppenrechtevergabe",[765,4994,4995,5019],{},[768,4996,4997],{},[771,4998,4999,5004,5009,5014],{},[774,5000,5001],{},[42,5002,5003],{},"Gruppenart",[774,5005,5006],{},[42,5007,5008],{},"Lokale Gruppe",[774,5010,5011],{},[42,5012,5013],{},"Globale Grupp",[774,5015,5016],{},[42,5017,5018],{},"Universelle Gruppe",[787,5020,5021,5037,5052,5068,5083],{},[771,5022,5023,5028,5031,5034],{},[792,5024,5025],{},[406,5026,5027],{},"Sichtbarkeit",[792,5029,5030],{},"Sichtbar nur in lokaler Domäne",[792,5032,5033],{},"Auch außerhalb der eigenen Domäne sichtbar",[792,5035,5036],{},"Überall",[771,5038,5039,5044,5047,5050],{},[792,5040,5041],{},[406,5042,5043],{},"Mitgliederherkunft",[792,5045,5046],{},"Aus allen Domänen",[792,5048,5049],{},"Aus eigener Domäne",[792,5051,5046],{},[771,5053,5054,5059,5062,5065],{},[792,5055,5056],{},[406,5057,5058],{},"Mitgliedertypen",[792,5060,5061],{},"Mitglieder und Gruppen",[792,5063,5064],{},"Keine anderen Gruppen",[792,5066,5067],{},"Benutzer und Gruppen",[771,5069,5070,5075,5078,5081],{},[792,5071,5072],{},[406,5073,5074],{},"Berechtigung",[792,5076,5077],{},"Innerhalb eigener Domäne",[792,5079,5080],{},"In beliebiger Domäne",[792,5082,5080],{},[771,5084,5085,5090,5093,5095],{},[792,5086,5087],{},[406,5088,5089],{},"Bemerkung",[792,5091,5092],{},"Zusammenfassen globaler Gruppen möglich",[792,5094],{},[792,5096,5097],{},"Alle Informationen stehen im globalen Katalog, werden repliziert und produzieren damit Netzlast",[16,5099,5101],{"id":5100},"agdlp-regel","AGDLP-Regel",[470,5103,530],{"id":529},[414,5105,5106],{},"Admin sieht nicht direkt welche Rechte für einen User aktiv sind",[470,5108,558],{"id":557},[414,5110,5111],{},"AGDLP: Accounts Global, Domain Local, Permission",[21,5113,5114,5117,5120],{},[24,5115,5116],{},"Freigaben werden nur an lokale Gruppen vergeben, die nur dafür zuständig sind",[24,5118,5119],{},"Lokale Gruppen werden entsprechend ihres Zwecks und der damit verbundenen Rechte benannt",[24,5121,443,5122],{},[21,5123,5124,5127,5130],{},[24,5125,5126],{},"Lokale Gruppe „Share-Verwaltung“ wird auf die Freigabe \\server\\Verwaltung berechtigt",[24,5128,5129],{},"Die globale Gruppe „Verwaltung wird Mitglied der lokalen Gruppe und bekommt somit die Rechte auf die Freigabe",[24,5131,5132],{},"In der globalen Gruppe sind die tatsächlichen User der Verwaltung",[16,5134,5136],{"id":5135},"sysvol","SYSVOL",[21,5138,5139],{},[24,5140,5141,5142],{},"Freigabe in der Dateien mit Domäneneinstellungen geteilt werden\n",[21,5143,5144,5147,5150,5153],{},[24,5145,5146],{},"Logon-Scripts",[24,5148,5149],{},"Gruppenrichtlinien",[24,5151,5152],{},"File-Replication-Service",[24,5154,5155],{},"Junction-Points: Ähnlich wie eine Verlinkung",[11,5157,5159],{"id":5158},"domain-name-system-dns","Domain Name System (DNS)",[21,5161,5162,5165,5168,5171,5174],{},[24,5163,5164],{},"DNS-Server: Zuordnung von FQDNs zu IP-Adressen und umgekehrt",[24,5166,5167],{},"Alternative unter Windows: NetBIOS",[24,5169,5170],{},"Hierarchische Gliederung – Getrennt durch Punkte",[24,5172,5173],{},"Abfrage läuft Hierarchisch ab -> Anfragen werden weitergeleitet",[24,5175,5176,5177],{},"AD-Domain = DNS-Domain (Domänencontroller oft auch DNS-Server)\n",[21,5178,5179],{},[24,5180,5181,5182],{},"Bei Vertrauensstellungen zwischen Domänen muss DNS-Auflösung domänenübergreifend funktionieren\n",[21,5183,5184],{},[24,5185,5186],{},"In Zonendatei werden Delegierungen für Subdomänen und andere Domänen angelegt",[16,5188,5190],{"id":5189},"zonendatei","Zonendatei",[21,5192,5193,5204,5207],{},[24,5194,5195,5196],{},"Enthält gesamten Inhalt einer Domäne\n",[21,5197,5198,5201],{},[24,5199,5200],{},"Autoritätsursprung (SOA): Eintrag für primären DNS-Server und Einstellungen z.B. zum Zonentransfer",[24,5202,5203],{},"Verschiedenste Records: NS, A, AAAA, PTR, CNAME, SRV, MX",[24,5205,5206],{},"Ein Primary-Server (Master) und beliebig viele Secondary-Server (Slave)",[24,5208,5209,5210],{},"Replikationsmethoden\n",[21,5211,5212,5215,5218,5221],{},[24,5213,5214],{},"Vollständige Zonenübertragung: Gesamte Zonendatei auf Slaves übertragen",[24,5216,5217],{},"Inkrementelle Zonenübertragung: Nur Änderungen werden auf Slaves übertragen",[24,5219,5220],{},"Benachrichtigung vom Master: Nach Veränderung benachrichtigt Master alle Slaves",[24,5222,5223],{},"Slave veranlasst Zonenübertragung: Slave fragt bei Master nach Änderungen",[16,5225,5227],{"id":5226},"abfragenablauf","Abfragenablauf",[318,5229,5230,5233,5236,5239,5242],{},[24,5231,5232],{},"Client prüft, ob Hostname bereits in der lokalen Hostdatei enthalten ist",[24,5234,5235],{},"Wenn nicht wird rekursives Forward-Lookup-Request an den primären DNS-Server gesendet",[24,5237,5238],{},"DNS-Server prüft, ob er eine Zone für die angefragte Domain hat, wenn ja: Autoritativ Antwort zurück",[24,5240,5241],{},"Wenn der DNS-Server keine passende Zone hat prüft er den Cache -> Cache-Hit: Nicht-Autoritative Antwort zurück",[24,5243,5244],{},"Wenn auch im Cache nichts vorhanden ist wird die Anfragen an den Root-Server weitergeleitet",[16,5246,5248],{"id":5247},"antwortarten","Antwortarten",[21,5250,5251,5254],{},[24,5252,5253],{},"Autoritativ: Server hat Antwort in lokaler Zonendatei",[24,5255,5256,5257],{},"Nicht Autoritativ: Antwort obwohl Server nicht zuständig ist\n",[21,5258,5259,5262],{},[24,5260,5261],{},"Rekursiv: Server holt die Daten von einem anderen DNS-Server",[24,5263,5264],{},"Iterativ: Server antwortet mit einem Verweis auf einen anderen DNS-Server",[11,5266,3451],{"id":3450},[21,5268,5269,5271,5273,5275],{},[24,5270,3456],{},[24,5272,3459],{},[24,5274,3462],{},[24,5276,3465,5277],{},[21,5278,5279],{},[24,5280,3470],{},[16,5282,5284],{"id":5283},"ablauf-dora","Ablauf (DORA)",[318,5286,5287,5292,5296,5301],{},[24,5288,5289,5291],{},[42,5290,3480],{}," (Broadcast): Client sendet DHCP-Discover beim booten bzw. beim Herstellen einer Verbindung in einem Netzwerk",[24,5293,5294,3487],{},[42,5295,3486],{},[24,5297,5298,5300],{},[42,5299,3492],{}," (Broadcast): Da ggf. mehrere DHCP-Server auf den Discover ein Offer senden muss der Client ein Offer wählen und es mit einem entsprechenden Request bestätigen. Das Paket ist ein Broadcast um ggf. anderen DHCP-Servern mitzuteilen für welches Offer sich der Client entschieden hat.",[24,5302,5303,5305],{},[42,5304,3498],{},[318,5306,5307,5309],{},[24,5308,3503],{},[24,5310,3506,5311,3510,5313,3513],{},[42,5312,3509],{},[42,5314,3480],{},[16,5316,5318],{"id":5317},"lease-verlängerung","Lease Verlängerung",[414,5320,5321],{},"Funktioniert nur innerhalb eines Lease Zeitraums",[470,5323,1681],{"id":1680},[318,5325,5326,5329],{},[24,5327,5328],{},"DHCP-Request (Unicast): Eine direkte Anforderung an den DHCP-Server von dem das aktuelle Lease ist. Erhält der Client in einem bestimmten Zeitabstand keine Antwort sendet er das Request als Broadcast um andere verfügbare DHCP-Server zu erreichen.",[24,5330,5331],{},"DHCP-Ack (Unicast): Der Server bestätigt die Verlängerung",[11,5333,5335],{"id":5334},"authentifizierung","Authentifizierung",[414,5337,5338],{},"Echtheit bezeugen bei der Kommunikation zwischen Server und Client",[16,5340,5342],{"id":5341},"password-authentication-protocol-pap","Password Authentication Protocol (PAP)",[21,5344,5345,5348,5351],{},[24,5346,5347],{},"Client sendet Username und Passwort im Klartext",[24,5349,5350],{},"Server akzeptiert bei korrekten Credentials",[24,5352,5353],{},"Nachteil: Credentials können sehr leicht abgehört werden",[16,5355,5357],{"id":5356},"new-technology-lan-manager-ntlm","New Technology LAN Manager (NTLM)",[21,5359,5360,5363],{},[24,5361,5362],{},"Vorteil: Weder Passwort noch Passworthash werden im Klartext übertragen",[24,5364,5365,5366],{},"Problem:\n",[21,5367,5368,5371],{},[24,5369,5370],{},"Viele Anfragen -> Große Verwaltungslast durch Authentifizierungsprozess",[24,5372,5373],{},"Keine MFA-Unterstützung",[470,5375,1681],{"id":5376},"ablauf-1",[318,5378,5379,5382,5385,5388],{},[24,5380,5381],{},"Negotiate: Client sendet Anfrage mit Benutzernamen und Payload an Server",[24,5383,5384],{},"Challenge: Server generiert Zufallszahl und sendet diese an den Client",[24,5386,5387],{},"Authenticate: Client verschlüsselt die Zufallszahl mit DES und dem NT-Hash des eigenen Passworts als Schlüssel und sendet zurück an den Server. Damit beweist er, dass er das Passwort kennt.",[24,5389,5390],{},"Server führt parallel den gleichen Vorgang durch und gleicht die Ergebnisse ab. Server hat Zugriff auf den NT-Hash durch eigene SAM-Datenbank oder er leitet das Challenge\u002FResponse-Paar zur Validierung an den DC weiter",[470,5392,5394],{"id":5393},"angriffsvektoren","Angriffsvektoren",[475,5396,5398],{"id":5397},"pass-the-hash","Pass the Hash",[21,5400,5401,5404,5407],{},[24,5402,5403],{},"Sobald ein Angreifer an den NT-Hash und den passenden Username gekommen ist kann er die Authentifizierung durchführen -> Es wird kein Passwort benötigt",[24,5405,5406],{},"NT-Hash entweder aus lokaler SAM-Datei oder aus dem Arbeitsspeicher",[24,5408,5409],{},"Username wird oft im Klartext übertragen",[475,5411,5413],{"id":5412},"brute-force","Brute-Force",[21,5415,5416,5419],{},[24,5417,5418],{},"Hash-Algorithmus wird ohne Salt (Zufällige Zeichenkette am Ende des Passworts, vor der Verschlüsselung) verwendet",[24,5420,5421],{},"Mithilfe eines Rainbow-Tables können leicht Brute-Force-Angriffe durchgeführt werden",[475,5423,5425],{"id":5424},"ntlm-relay","NTLM-Relay",[21,5427,5428],{},[24,5429,5430],{},"Client kann die Identität des Servers nicht prüfen -> Angreifer kann sich als Server ausgeben (Man in the Middle)",[16,5432,5434],{"id":5433},"kerberos","Kerberos",[21,5436,5437,5440,5454,5480,5483,5486],{},[24,5438,5439],{},"Standard-Authentifizierungsprotokoll im AD",[24,5441,5442,5443],{},"Beteiligte Parteien:\n",[21,5444,5445,5448,5451],{},[24,5446,5447],{},"Client: Fordert Ressource an",[24,5449,5450],{},"Service-Server: Den der Client nutzen möchte",[24,5452,5453],{},"Kerberos-Server\u002FKey Distribution Center (KDC): Stellt Authentifizierung zur Verfügung",[24,5455,5456,5457],{},"Wichtige Komponenten:\n",[21,5458,5459,5470],{},[24,5460,5461,5462],{},"Ticket Granting Ticket (TGT): Ticket\u002FBerechtigung mit dem man weitere Tickets\u002FBerechtigungen erhalten kann (Vgl. Ticket für den Einlass zum Park)\n",[21,5463,5464,5467],{},[24,5465,5466],{},"Hat bestimmte Lebensdauer",[24,5468,5469],{},"Wird mit Passwort des krbtgt-Accounts verschlüsselt",[24,5471,5472,5473],{},"TGS\u002FServiceticket: Ticket\u002FBerechtigung für die Nutzung einer bestimmten Ressource\u002Feines Services (Vgl. Ticket für das Fahrgeschäft)\n",[21,5474,5475,5477],{},[24,5476,5466],{},[24,5478,5479],{},"Wird mit Passwort des angefragten Service-Nutzers verschlüsselt",[24,5481,5482],{},"Durch Ticketsystem kann der Client selbst die Authentifizierung durchführen ohne den DC",[24,5484,5485],{},"Es werden auch keine Passwort-Hashes verschickt",[24,5487,5488],{},"Zeitsynchronisation zwischen Client und KDC ist Voraussetzung",[470,5490,1681],{"id":5491},"ablauf-2",[318,5493,5494,5497],{},[24,5495,5496],{},"Nutzer meldet sich am PC an",[24,5498,5499,5500],{},"Anmeldedaten werden an den DC übergeben\n",[318,5501,5502,5505],{},[24,5503,5504],{},"Client erhält TGT vom DC.",[24,5506,5507],{},"Client kann sich mit TGT am KDC authentifizieren und TGS lösen",[475,5509,5511],{"id":5510},"beispiel-webaufruf","Beispiel Webaufruf",[318,5513,5514,5517,5525,5528,5531,5542,5545],{},[24,5515,5516],{},"Client verwendet Webbrowser um Verbindung zum Server aufzubauen. Vorerst Anonym.",[24,5518,5519,5520],{},"Server antwortet mit HTTP-Status 401 (Unauthorized) und fordert Client zur Anmeldung auf.\n",[318,5521,5522],{},[24,5523,5524],{},"Durch die Aufforderung erhält der Client den Namen der Ressource für die er ein Ticket braucht",[24,5526,5527],{},"Der Client verlangt am KDC nach einem TGS für die entsprechende Ressource",[24,5529,5530],{},"KDC sucht im AD nach der angeforderten Ressource (über ServicePrincipalName)",[24,5532,5533,5534],{},"KDC stellt TGS auf den Namen und mit den Daten des Benutzers aus. TGS wird signiert und an den Client übergeben\n",[318,5535,5536,5539],{},[24,5537,5538],{},"Client speichert TGS im Cache",[24,5540,5541],{},"TGS ist mit dem Passwort des Service-Benutzers verschlüsselt. Dieses Passwort kennt der Webserver ebenfalls.",[24,5543,5544],{},"Client stellt die Anfrage an den Webserver erneut und übergibt das TGS dabei an den Webserver.",[24,5546,5547],{},"Der Webserver vertraut dem KDC und kann somit unabhängig das Ticket validieren",[11,5549,5551],{"id":5550},"betriebsmasterrollen-flexible-single-master-operations-fsmos","Betriebsmasterrollen \u002F Flexible Single Master Operations (FSMOs)",[21,5553,5554,5557,5565,5568,5571],{},[24,5555,5556],{},"AD kann über mehrere DCs verteilt sein",[24,5558,5559,5560],{},"Jeder DC darf Objekte im AD anlegen\n",[21,5561,5562],{},[24,5563,5564],{},"Es gilt „last write wins“ -> Nur der letzte Schreibvorgang ist gültig",[24,5566,5567],{},"FSMOs sind Aufgaben die eine zentrale Instanz benötigen, da ein Konflikt fatal wäre",[24,5569,5570],{},"FSMOs: Spezielle Aufgaben innerhalb einer Domäne, die auf verschiedene Server verteilt werden können",[24,5572,5573],{},"FSMOs sind immer einmalig (Gesamtstruktur\u002FDomäne)",[16,5575,5577],{"id":5576},"auflistung","Auflistung",[470,5579,5581],{"id":5580},"domain-naming-master-gesamtstruktur","Domain Naming Master (Gesamtstruktur)",[21,5583,5584,5587],{},[24,5585,5586],{},"Zuständig für (Sub-)Domainnamen",[24,5588,5589],{},"Muss neue Domainnamen freigeben",[470,5591,5593],{"id":5592},"schema-master-gesamtstruktur","Schema Master (Gesamtstruktur)",[21,5595,5596,5599],{},[24,5597,5598],{},"Zwingend gleicher Server wie Domain Naming Master",[24,5600,5601],{},"Definiert Klassen-Schablone für AD-Objekte",[470,5603,5605],{"id":5604},"relative-id-master-domäne","Relative ID Master (Domäne)",[21,5607,5608,5611,5622],{},[24,5609,5610],{},"Sorgt dafür, dass RID eindeutig ist",[24,5612,5613,5614],{},"SID besteht vereinfacht aus:\n",[21,5615,5616,5619],{},[24,5617,5618],{},"Local-ID",[24,5620,5621],{},"Relative-ID",[24,5623,5624],{},"SIDs identifizieren Objekte im AD",[470,5626,5628],{"id":5627},"primary-domain-controller-pdc-emulator-domäne","Primary Domain Controller (PDC) Emulator (Domäne)",[21,5630,5631,5639,5642],{},[24,5632,5633,5634],{},"Problem: Replikation des Ads dauert sehr lange\n",[21,5635,5636],{},[24,5637,5638],{},"Passwortänderungen sind erst nach langer Zeit aktiv",[24,5640,5641],{},"PDC-Emulator zieht Passwortänderungen vor",[24,5643,5644],{},"Bei fehlerhaftem Anmeldeversuch: PDC-Emulator wird befragt ob Passwort gültig ist",[470,5646,5648],{"id":5647},"domain-infrastructure-master-domäne","Domain Infrastructure Master (Domäne)",[21,5650,5651,5654,5657],{},[24,5652,5653],{},"Stellt referentielle Integrität zwischen verlinkten Objekten sicher",[24,5655,5656],{},"Bsp.: Bei Gruppen und Mitgliedern: Attribute „Members“ und „MemberOf“ müssen übereinstimmen",[24,5658,5659],{},"DIM sorgt dafür, dass Änderung eines Attributs in das andere nachgezogen wird",[11,5661,5663],{"id":5662},"just-enough-administration-jea","Just Enough Administration (JEA)",[21,5665,5666,5669,5672,5675],{},[24,5667,5668],{},"Administrative Mitarbeiter sollen nur die minimalen Rechte für bestimmte Arbeiten erhalten",[24,5670,5671],{},"Unter PowerShell: User kann nur bestimmte CMDlets ausführen",[24,5673,5674],{},"Rechte werden in Role Capability Files (.psrc) gespeichert",[24,5676,5677],{},"Funktioniert nur in Bereichen für die es entsprechend auch PowerShell-Befehle gibt",[11,5679,5681],{"id":5680},"just-in-time-administration-jit","Just-In-Time Administration (JIT)",[21,5683,5684,5687,5690],{},[24,5685,5686],{},"Nur temporäres freigeben von administrativen Berechtigungen",[24,5688,5689],{},"Administrative Fähigkeiten werden nur auf Anfrage erlangt",[24,5691,5692],{},"Zur Verwaltung der Time-To-Live wird ein TGT von Kerberos verwendet. Privilegierter Zugriff ist nur möglich solange das TGT gültig ist.",[11,5694,5696],{"id":5695},"offene-punkte","Offene Punkte",[16,5698,5700],{"id":5699},"nur-klick-für-klick-anleitungen","Nur Klick-Für-Klick Anleitungen",[21,5702,5703,5706],{},[24,5704,5705],{},"Freigaben und Gruppenrichtlinien: Netzlaufwerk freigeben, Software installieren, Skript beim Start ausführen",[24,5707,5708],{},"User Homes",[16,5710,5712],{"id":5711},"unbekanntes-thema","Unbekanntes Thema",[21,5714,5715],{},[24,5716,5717],{},"NTLM für Service Server",[5719,5720,5721],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":269,"searchDepth":270,"depth":270,"links":5723},[5724,5727,5728,5732,5733,5734,5735,5736,5740,5741,5742,5743,5744,5745,5748,5749,5753,5756,5763,5764],{"id":4593,"depth":270,"text":4594,"children":5725},[5726],{"id":4619,"depth":1263,"text":4620},{"id":4641,"depth":270,"text":4642},{"id":4706,"depth":270,"text":4707,"children":5729},[5730,5731],{"id":4710,"depth":1263,"text":4711},{"id":4735,"depth":1263,"text":4736},{"id":4865,"depth":270,"text":4866},{"id":4917,"depth":270,"text":4918},{"id":4937,"depth":270,"text":4938},{"id":4991,"depth":270,"text":4992},{"id":5100,"depth":270,"text":5101,"children":5737},[5738,5739],{"id":529,"depth":1263,"text":530},{"id":557,"depth":1263,"text":558},{"id":5135,"depth":270,"text":5136},{"id":5189,"depth":270,"text":5190},{"id":5226,"depth":270,"text":5227},{"id":5247,"depth":270,"text":5248},{"id":5283,"depth":270,"text":5284},{"id":5317,"depth":270,"text":5318,"children":5746},[5747],{"id":1680,"depth":1263,"text":1681},{"id":5341,"depth":270,"text":5342},{"id":5356,"depth":270,"text":5357,"children":5750},[5751,5752],{"id":5376,"depth":1263,"text":1681},{"id":5393,"depth":1263,"text":5394},{"id":5433,"depth":270,"text":5434,"children":5754},[5755],{"id":5491,"depth":1263,"text":1681},{"id":5576,"depth":270,"text":5577,"children":5757},[5758,5759,5760,5761,5762],{"id":5580,"depth":1263,"text":5581},{"id":5592,"depth":1263,"text":5593},{"id":5604,"depth":1263,"text":5605},{"id":5627,"depth":1263,"text":5628},{"id":5647,"depth":1263,"text":5648},{"id":5699,"depth":270,"text":5700},{"id":5711,"depth":270,"text":5712},{},{"title":1285},"\u002Ffaecher\u002Fbsa\u002F5-6-zsmf-sa2","\u002Fdownloads\u002FBSA\u002FBSA_5-6_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fbsa\u002F5-6-zsmf-sa2","I9JuvyQtKKbEu_FTZ5wR7TPK8bffyEYdpKQhJCFtZeQ",{"id":5773,"title":5774,"body":5775,"class":12223,"description":269,"extension":283,"meta":12224,"navigation":12225,"path":12227,"pdfDownload":12228,"scope":1288,"scopeName":1289,"seo":12229,"stem":12230,"subject":2429,"subjectName":2430,"type":12231,"typeName":12232,"year":12233,"__hash__":12234},"faecher\u002Ffaecher\u002Fbsa\u002F7-8-cs-sa2.md","Cheat-Sheet – Schulaufgabe 2",{"type":8,"value":5776,"toc":12166},[5777,5781,6011,6015,6119,6123,6167,6172,6177,6185,6189,6192,6248,6253,6255,6352,6355,6361,6364,6366,6520,6526,6529,6531,6584,6590,6593,6595,6650,6655,6685,6690,6696,6702,6708,6713,6846,6851,6856,6858,6982,6987,6989,7043,7048,7050,7102,7106,7110,7113,7129,7142,7151,7154,7158,7165,7168,7183,7186,7198,7201,7219,7223,7240,7251,7261,7271,7281,7291,7301,7311,7321,7331,7341,7351,7361,7371,7381,7391,7401,7419,7434,7449,7461,7471,7487,7501,7518,7532,7547,7562,7577,7592,7602,7612,7622,7625,7629,7632,7666,7670,7673,7719,7723,7726,7776,7779,7788,7792,7818,7822,7827,7832,7838,7842,7848,7854,7860,7863,7870,7873,7880,7883,7890,7893,7900,7903,7909,7920,7926,7932,7935,7955,7961,7964,7985,7991,7994,8002,8008,8011,8031,8033,8052,8067,8073,8093,8099,8110,8116,8119,8125,8139,8142,8186,8191,8219,8224,8230,8233,8319,8325,8328,8336,8343,8350,8353,8360,8363,8369,8402,8406,8411,8426,8431,8444,8449,8471,8476,8479,8504,8509,8512,8515,8528,8531,8536,8539,8552,8557,8569,8574,8607,8612,8636,8638,8641,8646,8664,8669,8681,8686,8698,8703,8715,8720,8732,8737,8749,8754,8766,8771,8787,8791,8801,8806,8818,8823,8853,8857,8865,8870,8881,8885,8898,8903,8948,8954,9058,9062,9065,9081,9084,9102,9105,9122,9126,9137,9141,9152,9156,9175,9179,9193,9196,9241,9245,9249,9261,9264,9268,9282,9286,9301,9305,9308,9322,9326,9340,9344,9358,9362,9365,9382,9386,9389,9403,9406,9420,9424,9431,9435,9446,9450,9466,9470,9500,9503,9591,9595,9635,9639,9679,9683,9722,9724,9741,9744,9748,9751,9770,9773,9801,9805,9816,9820,9831,9835,9850,9854,9857,9863,9866,9922,9926,9930,9944,9948,9962,9966,9969,9984,9988,10008,10012,10015,10030,10033,10047,10051,10096,10100,10103,10159,10163,10208,10216,10220,10229,10235,10358,10363,10367,10371,10492,10497,11065,11069,11071,11074,11078,11080,11082,11086,11088,11090,11094,11115,11117,11119,11131,11133,11138,11142,11146,11262,11267,11271,11275,11320,11325,11741,11745,11911,11915,12028,12032,12163],[11,5778,5780],{"id":5779},"buchseiten","Buchseiten",[765,5782,5783,5801],{},[768,5784,5785],{},[771,5786,5787,5791,5796],{},[774,5788,5789],{},[42,5790,2459],{},[774,5792,5793],{},[42,5794,5795],{},"Inhalt",[774,5797,5798],{},[42,5799,5800],{},"Beschreibung",[787,5802,5803,5814,5825,5836,5847,5858,5869,5880,5891,5902,5913,5924,5935,5946,5957,5968,5979,5990,6001],{},[771,5804,5805,5808,5811],{},[792,5806,5807],{},"180",[792,5809,5810],{},"SystemD",[792,5812,5813],{},"Diensteverwaltung und Init-System.",[771,5815,5816,5819,5822],{},[792,5817,5818],{},"28",[792,5820,5821],{},"Verzeichnisbaum",[792,5823,5824],{},"Hierarchische Dateistruktur ab \u002F.",[771,5826,5827,5830,5833],{},[792,5828,5829],{},"161",[792,5831,5832],{},"Sudo",[792,5834,5835],{},"Befehle mit Root-Rechten ausführen.",[771,5837,5838,5841,5844],{},[792,5839,5840],{},"63",[792,5842,5843],{},"Ls-Befehl",[792,5845,5846],{},"Verzeichnisinhalt auflisten.",[771,5848,5849,5852,5855],{},[792,5850,5851],{},"90",[792,5853,5854],{},"Touch-Befehl",[792,5856,5857],{},"Neue, leere Datei erstellen.",[771,5859,5860,5863,5866],{},[792,5861,5862],{},"65",[792,5864,5865],{},"Cp-Befehl",[792,5867,5868],{},"Dateien\u002FOrdner kopieren.",[771,5870,5871,5874,5877],{},[792,5872,5873],{},"66",[792,5875,5876],{},"Mv-Befehl",[792,5878,5879],{},"Verschieben oder Umbenennen.",[771,5881,5882,5885,5888],{},[792,5883,5884],{},"67",[792,5886,5887],{},"Rm-Befehl",[792,5889,5890],{},"Dateien oder Ordner löschen.",[771,5892,5893,5896,5899],{},[792,5894,5895],{},"72",[792,5897,5898],{},"Mkdir-Befehl",[792,5900,5901],{},"Neues Verzeichnis erstellen.",[771,5903,5904,5907,5910],{},[792,5905,5906],{},"41",[792,5908,5909],{},"Umgebungsvariablen",[792,5911,5912],{},"Werte zur Systemkonfiguration (z. B. $PATH).",[771,5914,5915,5918,5921],{},[792,5916,5917],{},"60",[792,5919,5920],{},"Man-Befehl",[792,5922,5923],{},"Handbuch für Befehle anzeigen.",[771,5925,5926,5929,5932],{},[792,5927,5928],{},"109",[792,5930,5931],{},"Grep-Befehl",[792,5933,5934],{},"Text nach Mustern durchsuchen.",[771,5936,5937,5940,5943],{},[792,5938,5939],{},"124",[792,5941,5942],{},"Awk-Befehl",[792,5944,5945],{},"Text- und Spaltenbearbeitung.",[771,5947,5948,5951,5954],{},[792,5949,5950],{},"125",[792,5952,5953],{},"Sed-Befehl",[792,5955,5956],{},"Automatisierte Textveränderung.",[771,5958,5959,5962,5965],{},[792,5960,5961],{},"100",[792,5963,5964],{},"Find-Befehl",[792,5966,5967],{},"Dateien im System suchen.",[771,5969,5970,5973,5976],{},[792,5971,5972],{},"76",[792,5974,5975],{},"Head-Befehl",[792,5977,5978],{},"Dateianfang anzeigen (Standard: erste 10 Zeilen).",[771,5980,5981,5984,5987],{},[792,5982,5983],{},"77",[792,5985,5986],{},"Tail-Befehl",[792,5988,5989],{},"Dateiende anzeigen (Standard: letzte 10 Zeilen).",[771,5991,5992,5995,5998],{},[792,5993,5994],{},"86",[792,5996,5997],{},"Stat-Befehl",[792,5999,6000],{},"Zeigt detaillierte Datei-Metadaten an.",[771,6002,6003,6005,6008],{},[792,6004,5939],{},[792,6006,6007],{},"Tee-Befehl",[792,6009,6010],{},"Schreibt Ausgabe in Datei und zeigt sie zeitgleich an.",[11,6012,6014],{"id":6013},"_1-skript-grundlagen-datenfluss","1. Skript-Grundlagen & Datenfluss",[21,6016,6017,6023,6029,6035,6041,6047,6053,6059,6065,6071,6082,6091],{},[24,6018,6019,6022],{},[42,6020,6021],{},"Shebang:"," Beginne ein Skript immer mit #! (z. B. #!\u002Fbin\u002Fbash), um die Shell festzulegen.",[24,6024,6025,6028],{},[42,6026,6027],{},"Ausführbar machen",": chmod +x \u003Cscriptname>.sh",[24,6030,6031,6034],{},[42,6032,6033],{},"Ausgabe überschreiben:"," > file erstellt oder überschreibt eine Datei.",[24,6036,6037,6040],{},[42,6038,6039],{},"Ausgabe anhängen:"," >> file fügt Text ans Ende einer Datei an.",[24,6042,6043,6046],{},[42,6044,6045],{},"Eingabe lesen:"," \u003C file liest den Inhalt einer Datei ein.",[24,6048,6049,6052],{},[42,6050,6051],{},"Pipe:"," a | b leitet die Ausgabe von Befehl \"a\" als Eingabe an Befehl \"b\" weiter.",[24,6054,6055,6058],{},[42,6056,6057],{},"Kommentare",": # am Beginn der Zeile",[24,6060,6061,6064],{},[42,6062,6063],{},"Variablen-Zuweisung",": variablenname=”\u003Cwert>” (Kein Leerzeichen um das =)",[24,6066,6067,6070],{},[42,6068,6069],{},"Variablen-Aufruf",": $variablenname (Case-Sensitive)",[24,6072,6073,6076,6077],{},[42,6074,6075],{},"Umgebungsvariable",": export global=”\u003Cwert>”\n",[21,6078,6079],{},[24,6080,6081],{},"Für Unterprozesse sichtbar",[24,6083,6084,6087,6088],{},[42,6085,6086],{},"Script-Aufruf",": .\u002Fscriptname.sh ",[4173,6089,6090],{},"param1",[24,6092,6093,6096,6097,6100,6101,6100,6104,6107,6108],{},[42,6094,6095],{},"User-Eingabe während des Scripts",": read ",[4173,6098,6099],{},"-s"," ",[4173,6102,6103],{},"-r",[4173,6105,6106],{},"-p “\u003Cprompt>”"," \u003Cvariablenname>\n",[21,6109,6110,6113,6116],{},[24,6111,6112],{},"-p “\u003Cprompt>”: Prompt vor der Eingabe",[24,6114,6115],{},"-s: verdeckte Eingabe (Passwörter)",[24,6117,6118],{},"-r: verhindert Escape-Sequenzen",[11,6120,6122],{"id":6121},"_2-wichtige-variablen","2. Wichtige Variablen",[21,6124,6125,6131,6137,6143,6149,6155,6161],{},[24,6126,6127,6130],{},[42,6128,6129],{},"$0",": Der Name des aufgerufenen Programms.",[24,6132,6133,6136],{},[42,6134,6135],{},"$1, $2, …",": Das erste und zweite übergebene Argument.",[24,6138,6139,6142],{},[42,6140,6141],{},"$#",": Die Anzahl der übergebenen Argumente.",[24,6144,6145,6148],{},[42,6146,6147],{},"$","*: Alle übergebenen Argumente auf einmal.",[24,6150,6151,6154],{},[42,6152,6153],{},"$?",": Der Rückgabecode des letzten Befehls (0 = Fehlerfrei).",[24,6156,6157,6160],{},[42,6158,6159],{},"$$",": Die Prozess-ID (PID) des aktuellen Skripts.",[24,6162,6163,6166],{},[42,6164,6165],{},"${V:-default}",": Gibt den Wert von $V aus, oder \"default\", falls die Variable leer ist.",[318,6168,6169],{"start":1263},[24,6170,6171],{},"Logik & Bedingungen",[414,6173,6174],{},[42,6175,6176],{},"Befehle direkt verketten:",[21,6178,6179,6182],{},[24,6180,6181],{},"cmd1 && cmd2: Führe cmd1 aus; wenn er erfolgreich war, führe cmd2 aus.",[24,6183,6184],{},"cmd1 || cmd2: Führe cmd1 aus; wenn er fehlschlägt, führe cmd2 aus.",[470,6186,6188],{"id":6187},"die-if-abfrage","Die If-Abfrage:",[414,6190,6191],{},"Bash",[4647,6193,6195],{"className":4649,"code":6194,"language":4651,"meta":269,"style":269},"if [ \"$x\" -lt \"$y\" ]; then\n\n# do something\n\nfi\n\n",[4653,6196,6197,6230,6234,6239,6243],{"__ignoreMap":269},[4173,6198,6199,6202,6205,6208,6211,6213,6216,6219,6222,6224,6227],{"class":4657,"line":4658},[4173,6200,6201],{"class":4788},"if",[4173,6203,6204],{"class":4784}," [ ",[4173,6206,6207],{"class":4669},"\"",[4173,6209,6210],{"class":4784},"$x",[4173,6212,6207],{"class":4669},[4173,6214,6215],{"class":4788}," -lt",[4173,6217,6218],{"class":4669}," \"",[4173,6220,6221],{"class":4784},"$y",[4173,6223,6207],{"class":4669},[4173,6225,6226],{"class":4784}," ]; ",[4173,6228,6229],{"class":4788},"then\n",[4173,6231,6232],{"class":4657,"line":270},[4173,6233,4761],{"emptyLinePlaceholder":4760},[4173,6235,6236],{"class":4657,"line":1263},[4173,6237,6238],{"class":4766},"# do something\n",[4173,6240,6241],{"class":4657,"line":4770},[4173,6242,4761],{"emptyLinePlaceholder":4760},[4173,6244,6245],{"class":4657,"line":4775},[4173,6246,6247],{"class":4788},"fi\n",[414,6249,6250],{},[42,6251,6252],{},"Die Case-Anweisung (Mehrfach-Auswahl):",[414,6254,6191],{},[4647,6256,6258],{"className":4649,"code":6257,"language":4651,"meta":269,"style":269},"case $foo in\n\na) echo \"foo is A\" ;; #(foo = a)\n\nb) echo \"foo is B\" ;; #(foo = b)\n\n*) echo \"foo is not A or B\" ;; #(alles anderes)\n\nesac\n\n",[4653,6259,6260,6271,6275,6295,6299,6318,6323,6341,6346],{"__ignoreMap":269},[4173,6261,6262,6265,6268],{"class":4657,"line":4658},[4173,6263,6264],{"class":4788},"case",[4173,6266,6267],{"class":4784}," $foo ",[4173,6269,6270],{"class":4788},"in\n",[4173,6272,6273],{"class":4657,"line":270},[4173,6274,4761],{"emptyLinePlaceholder":4760},[4173,6276,6277,6280,6283,6286,6289,6292],{"class":4657,"line":1263},[4173,6278,4687],{"class":6279},"sA_wV",[4173,6281,6282],{"class":4788},")",[4173,6284,6285],{"class":4665}," echo",[4173,6287,6288],{"class":4669}," \"foo is A\"",[4173,6290,6291],{"class":4784}," ;; ",[4173,6293,6294],{"class":4766},"#(foo = a)\n",[4173,6296,6297],{"class":4657,"line":4770},[4173,6298,4761],{"emptyLinePlaceholder":4760},[4173,6300,6301,6304,6307,6310,6313,6315],{"class":4657,"line":4775},[4173,6302,6303],{"class":4661},"b",[4173,6305,6306],{"class":4784},") ",[4173,6308,6309],{"class":4665},"echo",[4173,6311,6312],{"class":4669}," \"foo is B\"",[4173,6314,6291],{"class":4784},[4173,6316,6317],{"class":4766},"#(foo = b)\n",[4173,6319,6321],{"class":4657,"line":6320},6,[4173,6322,4761],{"emptyLinePlaceholder":4760},[4173,6324,6326,6329,6331,6333,6336,6338],{"class":4657,"line":6325},7,[4173,6327,6328],{"class":4661},"*",[4173,6330,6306],{"class":4784},[4173,6332,6309],{"class":4665},[4173,6334,6335],{"class":4669}," \"foo is not A or B\"",[4173,6337,6291],{"class":4784},[4173,6339,6340],{"class":4766},"#(alles anderes)\n",[4173,6342,6344],{"class":4657,"line":6343},8,[4173,6345,4761],{"emptyLinePlaceholder":4760},[4173,6347,6349],{"class":4657,"line":6348},9,[4173,6350,6351],{"class":4788},"esac\n",[414,6353,6354],{},"(Wichtig: Das ;; am Ende jedes Blocks ist zwingend erforderlich ).",[470,6356,6358],{"id":6357},"_1-for-loop-beispiel-über-eine-liste-iterieren",[42,6359,6360],{},"1. for – loop Beispiel: Über eine Liste iterieren",[414,6362,6363],{},"Dies ist der klassische Anwendungsfall: Du gehst eine Liste von Dateien oder Werten nacheinander durch.",[414,6365,6191],{},[4647,6367,6369],{"className":4649,"code":6368,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\nMEIN_ARRAY=(\"Apfel Birne\" \"Banane\" \"Kirsche\")\n\nMEINE_LISTE=\"Apfel Birne Banane\"\n\nfor obst in $MEINE_LISTE; do\n\necho \"Ich mag $obst\"\n\nDone\n\n# Liste von Werten durchgehen\nfor tier in Hund Katze Maus; do\necho \"Das ist ein(e): $tier\"\ndone\n\n",[4653,6370,6371,6376,6380,6403,6407,6417,6421,6438,6442,6455,6460,6466,6471,6477,6501,6514],{"__ignoreMap":269},[4173,6372,6373],{"class":4657,"line":4658},[4173,6374,6375],{"class":4766},"#!\u002Fbin\u002Fbash\n",[4173,6377,6378],{"class":4657,"line":270},[4173,6379,4761],{"emptyLinePlaceholder":4760},[4173,6381,6382,6385,6388,6391,6394,6397,6400],{"class":4657,"line":1263},[4173,6383,6384],{"class":4784},"MEIN_ARRAY",[4173,6386,6387],{"class":4788},"=",[4173,6389,6390],{"class":4784},"(",[4173,6392,6393],{"class":4669},"\"Apfel Birne\"",[4173,6395,6396],{"class":4669}," \"Banane\"",[4173,6398,6399],{"class":4669}," \"Kirsche\"",[4173,6401,6402],{"class":4784},")\n",[4173,6404,6405],{"class":4657,"line":4770},[4173,6406,4761],{"emptyLinePlaceholder":4760},[4173,6408,6409,6412,6414],{"class":4657,"line":4775},[4173,6410,6411],{"class":4784},"MEINE_LISTE",[4173,6413,6387],{"class":4788},[4173,6415,6416],{"class":4669},"\"Apfel Birne Banane\"\n",[4173,6418,6419],{"class":4657,"line":6320},[4173,6420,4761],{"emptyLinePlaceholder":4760},[4173,6422,6423,6426,6429,6432,6435],{"class":4657,"line":6325},[4173,6424,6425],{"class":4788},"for",[4173,6427,6428],{"class":4784}," obst ",[4173,6430,6431],{"class":4788},"in",[4173,6433,6434],{"class":4784}," $MEINE_LISTE; ",[4173,6436,6437],{"class":4788},"do\n",[4173,6439,6440],{"class":4657,"line":6343},[4173,6441,4761],{"emptyLinePlaceholder":4760},[4173,6443,6444,6446,6449,6452],{"class":4657,"line":6348},[4173,6445,6309],{"class":4665},[4173,6447,6448],{"class":4669}," \"Ich mag ",[4173,6450,6451],{"class":4784},"$obst",[4173,6453,6454],{"class":4669},"\"\n",[4173,6456,6458],{"class":4657,"line":6457},10,[4173,6459,4761],{"emptyLinePlaceholder":4760},[4173,6461,6463],{"class":4657,"line":6462},11,[4173,6464,6465],{"class":4661},"Done\n",[4173,6467,6469],{"class":4657,"line":6468},12,[4173,6470,4761],{"emptyLinePlaceholder":4760},[4173,6472,6474],{"class":4657,"line":6473},13,[4173,6475,6476],{"class":4766},"# Liste von Werten durchgehen\n",[4173,6478,6480,6482,6485,6487,6490,6493,6496,6499],{"class":4657,"line":6479},14,[4173,6481,6425],{"class":4788},[4173,6483,6484],{"class":4784}," tier ",[4173,6486,6431],{"class":4788},[4173,6488,6489],{"class":4669}," Hund",[4173,6491,6492],{"class":4669}," Katze",[4173,6494,6495],{"class":4669}," Maus",[4173,6497,6498],{"class":4784},"; ",[4173,6500,6437],{"class":4788},[4173,6502,6504,6506,6509,6512],{"class":4657,"line":6503},15,[4173,6505,6309],{"class":4665},[4173,6507,6508],{"class":4669}," \"Das ist ein(e): ",[4173,6510,6511],{"class":4784},"$tier",[4173,6513,6454],{"class":4669},[4173,6515,6517],{"class":4657,"line":6516},16,[4173,6518,6519],{"class":4788},"done\n",[470,6521,6523],{"id":6522},"_2-beispiel-über-einen-zahlenbereich-iterieren",[42,6524,6525],{},"2. Beispiel: Über einen Zahlenbereich iterieren",[414,6527,6528],{},"Wenn du eine Aktion eine bestimmte Anzahl an Malen wiederholen willst (z. B. 5-mal):",[414,6530,6191],{},[4647,6532,6534],{"className":4649,"code":6533,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Zählen von 1 bis 5\nfor i in {1..5}; do\necho \"Durchlauf Nummer: $i\"\ndone\n\n",[4653,6535,6536,6540,6544,6549,6568,6580],{"__ignoreMap":269},[4173,6537,6538],{"class":4657,"line":4658},[4173,6539,6375],{"class":4766},[4173,6541,6542],{"class":4657,"line":270},[4173,6543,4761],{"emptyLinePlaceholder":4760},[4173,6545,6546],{"class":4657,"line":1263},[4173,6547,6548],{"class":4766},"# Zählen von 1 bis 5\n",[4173,6550,6551,6553,6556,6558,6561,6564,6566],{"class":4657,"line":4770},[4173,6552,6425],{"class":4788},[4173,6554,6555],{"class":4784}," i ",[4173,6557,6431],{"class":4788},[4173,6559,6560],{"class":4784}," {",[4173,6562,6563],{"class":4661},"1..5}",[4173,6565,6498],{"class":4784},[4173,6567,6437],{"class":4788},[4173,6569,6570,6572,6575,6578],{"class":4657,"line":4775},[4173,6571,6309],{"class":4665},[4173,6573,6574],{"class":4669}," \"Durchlauf Nummer: ",[4173,6576,6577],{"class":4784},"$i",[4173,6579,6454],{"class":4669},[4173,6581,6582],{"class":4657,"line":6320},[4173,6583,6519],{"class":4788},[470,6585,6587],{"id":6586},"_3-profi-tipp-dateien-im-verzeichnis-verarbeiten",[42,6588,6589],{},"3. Profi-Tipp: Dateien im Verzeichnis verarbeiten",[414,6591,6592],{},"Ein sehr häufiger Anwendungsfall in der Shell ist es, alle Dateien eines bestimmten Typs zu bearbeiten:",[414,6594,6191],{},[4647,6596,6598],{"className":4649,"code":6597,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Alle .txt Dateien im aktuellen Verzeichnis finden und ausgeben\nfor datei in *.txt; do\necho \"Verarbeite Datei: $datei\"\n# Hier könnte z.B. ein grep oder cat Befehl folgen\ndone\n\n",[4653,6599,6600,6604,6608,6613,6629,6641,6646],{"__ignoreMap":269},[4173,6601,6602],{"class":4657,"line":4658},[4173,6603,6375],{"class":4766},[4173,6605,6606],{"class":4657,"line":270},[4173,6607,4761],{"emptyLinePlaceholder":4760},[4173,6609,6610],{"class":4657,"line":1263},[4173,6611,6612],{"class":4766},"# Alle .txt Dateien im aktuellen Verzeichnis finden und ausgeben\n",[4173,6614,6615,6617,6620,6622,6625,6627],{"class":4657,"line":4770},[4173,6616,6425],{"class":4788},[4173,6618,6619],{"class":4784}," datei ",[4173,6621,6431],{"class":4788},[4173,6623,6624],{"class":4669}," *.txt",[4173,6626,6498],{"class":4784},[4173,6628,6437],{"class":4788},[4173,6630,6631,6633,6636,6639],{"class":4657,"line":4775},[4173,6632,6309],{"class":4665},[4173,6634,6635],{"class":4669}," \"Verarbeite Datei: ",[4173,6637,6638],{"class":4784},"$datei",[4173,6640,6454],{"class":4669},[4173,6642,6643],{"class":4657,"line":6320},[4173,6644,6645],{"class":4766},"# Hier könnte z.B. ein grep oder cat Befehl folgen\n",[4173,6647,6648],{"class":4657,"line":6325},[4173,6649,6519],{"class":4788},[414,6651,6652],{},[42,6653,6654],{},"Zusammenfassung der Struktur:",[21,6656,6657,6662,6668,6673,6679],{},[24,6658,6659,6661],{},[42,6660,6425],{},": Startet die Schleife.",[24,6663,6664,6667],{},[42,6665,6666],{},"variable",": Ein frei wählbarer Name, der bei jedem Durchlauf den aktuellen Wert annimmt.",[24,6669,6670,6672],{},[42,6671,6431],{},": Definiert die Liste oder den Bereich, der abgearbeitet wird.",[24,6674,6675,6678],{},[42,6676,6677],{},"do",": Leitet den Codeblock ein, der für jedes Element ausgeführt wird.",[24,6680,6681,6684],{},[42,6682,6683],{},"done",": Beendet den Schleifenblock.",[414,6686,6687,6689],{},[42,6688,6425],{}," Wenn die Anzahl der Elemente feststeht.",[414,6691,6692,6695],{},[42,6693,6694],{},"while"," Wenn du auf einen Zustand wartest.",[414,6697,6698,6701],{},[42,6699,6700],{},"continue"," Wenn ein einzelnes Element ignoriert werden soll.",[414,6703,6704,6707],{},[42,6705,6706],{},"break"," Wenn die Arbeit vorzeitig erledigt ist.",[318,6709,6710],{"start":4770},[24,6711,6712],{},"Test-Operatoren (Bedingungen prüfen)",[765,6714,6715,6734],{},[768,6716,6717],{},[771,6718,6719,6724,6729],{},[774,6720,6721],{},[42,6722,6723],{},"Typ",[774,6725,6726],{},[42,6727,6728],{},"Operatoren",[774,6730,6731],{},[42,6732,6733],{},"Bedeutung",[787,6735,6736,6749,6759,6769,6781,6791,6804,6814,6824,6836],{},[771,6737,6738,6743,6746],{},[792,6739,6740],{},[42,6741,6742],{},"Zahlen",[792,6744,6745],{},"-eq \u002F -ne",[792,6747,6748],{},"Gleich \u002F Ungleich",[771,6750,6751,6753,6756],{},[792,6752],{},[792,6754,6755],{},"-lt \u002F -le",[792,6757,6758],{},"Kleiner als \u002F Kleiner oder gleich",[771,6760,6761,6763,6766],{},[792,6762],{},[792,6764,6765],{},"-gt \u002F -ge",[792,6767,6768],{},"Größer als \u002F Größer oder gleich",[771,6770,6771,6776,6778],{},[792,6772,6773],{},[42,6774,6775],{},"Text",[792,6777,6387],{},[792,6779,6780],{},"Strings sind gleich",[771,6782,6783,6785,6788],{},[792,6784],{},[792,6786,6787],{},"-z \u002F -n",[792,6789,6790],{},"Länge ist Null (leer) \u002F Nicht leer",[771,6792,6793,6798,6801],{},[792,6794,6795],{},[42,6796,6797],{},"Dateien",[792,6799,6800],{},"-d \u002F -x",[792,6802,6803],{},"Ist ein Verzeichnis \u002F Ist ausführbar",[771,6805,6806,6808,6811],{},[792,6807],{},[792,6809,6810],{},"-r \u002F -w",[792,6812,6813],{},"Ist lesbar \u002F Ist schreibbar",[771,6815,6816,6818,6821],{},[792,6817],{},[792,6819,6820],{},"-nt",[792,6822,6823],{},"Ist neuer als (newer than)",[771,6825,6826,6831,6834],{},[792,6827,6828],{},[42,6829,6830],{},"Logik",[792,6832,6833],{},"&& \u002F `",[792,6835],{},[771,6837,6838,6840,6843],{},[792,6839],{},[792,6841,6842],{},"!",[792,6844,6845],{},"Logisches NICHT",[414,6847,6848],{},[42,6849,6850],{},"4. Schleifen, Case & Funktionen",[414,6852,6853],{},[42,6854,6855],{},"While-Schleife (Datei zeilenweise einlesen):",[414,6857,6191],{},[4647,6859,6861],{"className":4649,"code":6860,"language":4651,"meta":269,"style":269},"while read f\n\ndo\n\necho \"Line is $f\"\n\ndone \u003C dateiname.txt\n\nwhile read benutzer\n\ndo\n\nmkdir \"\u002Fhome\u002F$benutzer\"\n\necho \"Ordner für $benutzer wurde erstellt.\"\n\ndone \u003C benutzerliste.txt #Datei einlesen wird als 1. ausgeführt\n\n",[4653,6862,6863,6873,6877,6881,6885,6897,6901,6911,6915,6924,6928,6932,6936,6949,6953,6965,6969],{"__ignoreMap":269},[4173,6864,6865,6867,6870],{"class":4657,"line":4658},[4173,6866,6694],{"class":4788},[4173,6868,6869],{"class":4665}," read",[4173,6871,6872],{"class":4669}," f\n",[4173,6874,6875],{"class":4657,"line":270},[4173,6876,4761],{"emptyLinePlaceholder":4760},[4173,6878,6879],{"class":4657,"line":1263},[4173,6880,6437],{"class":4788},[4173,6882,6883],{"class":4657,"line":4770},[4173,6884,4761],{"emptyLinePlaceholder":4760},[4173,6886,6887,6889,6892,6895],{"class":4657,"line":4775},[4173,6888,6309],{"class":4665},[4173,6890,6891],{"class":4669}," \"Line is ",[4173,6893,6894],{"class":4784},"$f",[4173,6896,6454],{"class":4669},[4173,6898,6899],{"class":4657,"line":6320},[4173,6900,4761],{"emptyLinePlaceholder":4760},[4173,6902,6903,6905,6908],{"class":4657,"line":6325},[4173,6904,6683],{"class":4788},[4173,6906,6907],{"class":4788}," \u003C",[4173,6909,6910],{"class":4784}," dateiname.txt\n",[4173,6912,6913],{"class":4657,"line":6343},[4173,6914,4761],{"emptyLinePlaceholder":4760},[4173,6916,6917,6919,6921],{"class":4657,"line":6348},[4173,6918,6694],{"class":4788},[4173,6920,6869],{"class":4665},[4173,6922,6923],{"class":4669}," benutzer\n",[4173,6925,6926],{"class":4657,"line":6457},[4173,6927,4761],{"emptyLinePlaceholder":4760},[4173,6929,6930],{"class":4657,"line":6462},[4173,6931,6437],{"class":4788},[4173,6933,6934],{"class":4657,"line":6468},[4173,6935,4761],{"emptyLinePlaceholder":4760},[4173,6937,6938,6941,6944,6947],{"class":4657,"line":6473},[4173,6939,6940],{"class":4661},"mkdir",[4173,6942,6943],{"class":4669}," \"\u002Fhome\u002F",[4173,6945,6946],{"class":4784},"$benutzer",[4173,6948,6454],{"class":4669},[4173,6950,6951],{"class":4657,"line":6479},[4173,6952,4761],{"emptyLinePlaceholder":4760},[4173,6954,6955,6957,6960,6962],{"class":4657,"line":6503},[4173,6956,6309],{"class":4665},[4173,6958,6959],{"class":4669}," \"Ordner für ",[4173,6961,6946],{"class":4784},[4173,6963,6964],{"class":4669}," wurde erstellt.\"\n",[4173,6966,6967],{"class":4657,"line":6516},[4173,6968,4761],{"emptyLinePlaceholder":4760},[4173,6970,6972,6974,6976,6979],{"class":4657,"line":6971},17,[4173,6973,6683],{"class":4788},[4173,6975,6907],{"class":4788},[4173,6977,6978],{"class":4784}," benutzerliste.txt ",[4173,6980,6981],{"class":4766},"#Datei einlesen wird als 1. ausgeführt\n",[414,6983,6984],{},[42,6985,6986],{},"Case-Anweisung (Mehrfach-Auswahl):",[414,6988,6191],{},[4647,6990,6992],{"className":4649,"code":6991,"language":4651,"meta":269,"style":269},"case $foo in\n\na) echo \"foo is A\" ;;\n\n*) echo \"foo is not A\" ;;\n\nesac\n\n",[4653,6993,6994,7002,7006,7019,7023,7035,7039],{"__ignoreMap":269},[4173,6995,6996,6998,7000],{"class":4657,"line":4658},[4173,6997,6264],{"class":4788},[4173,6999,6267],{"class":4784},[4173,7001,6270],{"class":4788},[4173,7003,7004],{"class":4657,"line":270},[4173,7005,4761],{"emptyLinePlaceholder":4760},[4173,7007,7008,7010,7012,7014,7016],{"class":4657,"line":1263},[4173,7009,4687],{"class":6279},[4173,7011,6282],{"class":4788},[4173,7013,6285],{"class":4665},[4173,7015,6288],{"class":4669},[4173,7017,7018],{"class":4784}," ;;\n",[4173,7020,7021],{"class":4657,"line":4770},[4173,7022,4761],{"emptyLinePlaceholder":4760},[4173,7024,7025,7028,7030,7033],{"class":4657,"line":4775},[4173,7026,7027],{"class":4788},"*)",[4173,7029,6285],{"class":4665},[4173,7031,7032],{"class":4669}," \"foo is not A\"",[4173,7034,7018],{"class":4784},[4173,7036,7037],{"class":4657,"line":6320},[4173,7038,4761],{"emptyLinePlaceholder":4760},[4173,7040,7041],{"class":4657,"line":6325},[4173,7042,6351],{"class":4788},[414,7044,7045],{},[42,7046,7047],{},"Funktionen definieren und aufrufen:",[414,7049,6191],{},[4647,7051,7053],{"className":4649,"code":7052,"language":4651,"meta":269,"style":269},"doubleit() {\n\nexpr $1 * 2\n\n}\n\ndoubleit 3\n\n",[4653,7054,7055,7063,7067,7082,7086,7091,7095],{"__ignoreMap":269},[4173,7056,7057,7060],{"class":4657,"line":4658},[4173,7058,7059],{"class":4661},"doubleit",[4173,7061,7062],{"class":4784},"() {\n",[4173,7064,7065],{"class":4657,"line":270},[4173,7066,4761],{"emptyLinePlaceholder":4760},[4173,7068,7069,7072,7076,7079],{"class":4657,"line":1263},[4173,7070,7071],{"class":4661},"expr",[4173,7073,7075],{"class":7074},"s4XuR"," $1",[4173,7077,7078],{"class":4665}," *",[4173,7080,7081],{"class":4665}," 2\n",[4173,7083,7084],{"class":4657,"line":4770},[4173,7085,4761],{"emptyLinePlaceholder":4760},[4173,7087,7088],{"class":4657,"line":4775},[4173,7089,7090],{"class":4784},"}\n",[4173,7092,7093],{"class":4657,"line":6320},[4173,7094,4761],{"emptyLinePlaceholder":4760},[4173,7096,7097,7099],{"class":4657,"line":6325},[4173,7098,7059],{"class":4661},[4173,7100,7101],{"class":4665}," 3\n",[16,7103,7105],{"id":7104},"_42-if-ausführlich","4.2 If ausführlich",[470,7107,7109],{"id":7108},"_421-die-einfache-if-anweisung","4.2.1 Die einfache if-Anweisung",[414,7111,7112],{},"Grundsätzlich hat die if-Anweisung der Bourne-Shell eine sehr einfache Form. Nach dem if steht ein Befehl, der ausgeführt wird. Gibt dieses Kommando eine 0 als Rückgabewert zurück, so gilt die Bedingung als erfüllt und die Aktionen, die zwischen dem folgenden then und fi stehen werden ausgeführt.",[4647,7114,7116],{"className":4649,"code":7115,"language":4651,"meta":269,"style":269},"if Kommando\nthen\n",[4653,7117,7118,7125],{"__ignoreMap":269},[4173,7119,7120,7122],{"class":4657,"line":4658},[4173,7121,6201],{"class":4788},[4173,7123,7124],{"class":4661}," Kommando\n",[4173,7126,7127],{"class":4657,"line":270},[4173,7128,6229],{"class":4788},[414,7130,7131,7134,7137,7139,7141],{},[406,7132,7133],{},"Aktion",[7135,7136],"br",{},[406,7138,7133],{},[7135,7140],{},"\n...",[4647,7143,7145],{"className":4649,"code":7144,"language":4651,"meta":269,"style":269},"fi\n\n",[4653,7146,7147],{"__ignoreMap":269},[4173,7148,7149],{"class":4657,"line":4658},[4173,7150,6247],{"class":4788},[414,7152,7153],{},"Natürlich sind die Aktionen auch wieder normale Unix-Befehle. Das „fi“, das den Block beendet, der durch „if … then“ begonnen wurde, ist einfach nur das „if“ rückwärts geschrieben.",[470,7155,7157],{"id":7156},"_422-das-programm-test","4.2.2 Das Programm test",[414,7159,7160,7161,7164],{},"Damit es jetzt sinnvolle Möglichkeiten gibt, Bedingungen zu überprüfen brauchen wir ein Programm, das verschiedene Tests durchführt und jeweils bei gelungenem Test eine 0 als Rückgabewert zurückgibt, bei mislingenem Test eine 1. Dieses Programm heißt ",[406,7162,7163],{},"test"," und ermöglicht alle wesentlichen Bedingungsüberprüfungen, die für das Shell-Programmieren notwendig sind.",[414,7166,7167],{},"Damit wir nicht jedesmal schreiben müssen",[4647,7169,7171],{"className":4649,"code":7170,"language":4651,"meta":269,"style":269},"if test ...\n\n",[4653,7172,7173],{"__ignoreMap":269},[4173,7174,7175,7177,7180],{"class":4657,"line":4658},[4173,7176,6201],{"class":4788},[4173,7178,7179],{"class":4665}," test",[4173,7181,7182],{"class":4669}," ...\n",[414,7184,7185],{},"gibt es einen symbolischen Link auf das Programm test, der einfach [ heißt. Allerdings verlangt das Programm test, wenn es merkt, dass es als [ aufgerufen wurde, auch als letzten Parameter eine eckige Klammer zu. Damit ist es also möglich zu schreiben:",[4647,7187,7189],{"className":4649,"code":7188,"language":4651,"meta":269,"style":269},"if [ ... ]\n\n",[4653,7190,7191],{"__ignoreMap":269},[4173,7192,7193,7195],{"class":4657,"line":4658},[4173,7194,6201],{"class":4788},[4173,7196,7197],{"class":4784}," [ ... ]\n",[414,7199,7200],{},"Wichtig ist hierbei, dass unbedingt ein Leerzeichen zwischen if und der Klammer und zwischen der Klammer und den eigentlichen Tests stehen muß. Es handelt sich bei der Klammer ja tatsächlich um einen Programmaufruf!",[4647,7202,7204],{"className":4649,"code":7203,"language":4651,"meta":269,"style":269},"DATEI=\"test.txt\" # Prüfen, ob die Datei existiert UND sowohl lesbar als auch beschreibbar ist if [ -f \"$DATEI\" ] && [ -r \"$DATEI\" ] && [ -w \"$DATEI\" ]; then\n\n",[4653,7205,7206],{"__ignoreMap":269},[4173,7207,7208,7211,7213,7216],{"class":4657,"line":4658},[4173,7209,7210],{"class":4784},"DATEI",[4173,7212,6387],{"class":4788},[4173,7214,7215],{"class":4669},"\"test.txt\"",[4173,7217,7218],{"class":4766}," # Prüfen, ob die Datei existiert UND sowohl lesbar als auch beschreibbar ist if [ -f \"$DATEI\" ] && [ -r \"$DATEI\" ] && [ -w \"$DATEI\" ]; then\n",[475,7220,7222],{"id":7221},"_4221-die-verschiedenen-bedingungsüberprüfungen-mit-test-bzw-buch-seite-312","4.2.2.1 Die verschiedenen Bedingungsüberprüfungen mit test bzw. [ (Buch Seite 312)",[414,7224,7225,7235,7236,7239],{},[42,7226,7227,7228],{},"-r ",[406,7229,7230,7231,7234],{},"Dateiname: if ",[4173,7232,7233],{},"-r file.txt","; then:"," Die Datei ",[406,7237,7238],{},"Dateiname"," existiert und ist lesbar",[414,7241,7242,7247,7248,7250],{},[42,7243,7244,7245],{},"-w ",[406,7246,7238],{},": Die Datei ",[406,7249,7238],{}," existiert und ist beschreibbar",[414,7252,7253,7247,7258,7260],{},[42,7254,7255,7256],{},"-x ",[406,7257,7238],{},[406,7259,7238],{}," existiert und ist ausführbar",[414,7262,7263,7247,7268,7270],{},[42,7264,7265,7266],{},"-d ",[406,7267,7238],{},[406,7269,7238],{}," existiert und ist ein Verzeichnis",[414,7272,7273,7247,7278,7280],{},[42,7274,7275,7276],{},"-s ",[406,7277,7238],{},[406,7279,7238],{}," existiert und ist nicht leer",[414,7282,7283,7247,7288,7290],{},[42,7284,7285,7286],{},"-b ",[406,7287,7238],{},[406,7289,7238],{}," existiert und ist ein blockorientiertes Gerät",[414,7292,7293,7247,7298,7300],{},[42,7294,7295,7296],{},"-c ",[406,7297,7238],{},[406,7299,7238],{}," existiert und ist ein zeichenorientiertes Gerät",[414,7302,7303,7247,7308,7310],{},[42,7304,7305,7306],{},"-g ",[406,7307,7238],{},[406,7309,7238],{}," existiert und das SGID-Bit ist gesetzt",[414,7312,7313,7247,7318,7320],{},[42,7314,7315,7316],{},"-k ",[406,7317,7238],{},[406,7319,7238],{}," existiert und das Sticky-Bit ist gesetzt",[414,7322,7323,7247,7328,7330],{},[42,7324,7325,7326],{},"-u ",[406,7327,7238],{},[406,7329,7238],{}," existiert und das SUID-Bit ist gesetzt",[414,7332,7333,7247,7338,7340],{},[42,7334,7335,7336],{},"-p ",[406,7337,7238],{},[406,7339,7238],{}," existiert und ist ein Named Pipe",[414,7342,7343,7247,7348,7350],{},[42,7344,7345,7346],{},"-e ",[406,7347,7238],{},[406,7349,7238],{}," existiert",[414,7352,7353,7247,7358,7360],{},[42,7354,7355,7356],{},"-f ",[406,7357,7238],{},[406,7359,7238],{}," existiert und ist eine reguläre Datei",[414,7362,7363,7247,7368,7370],{},[42,7364,7365,7366],{},"-L ",[406,7367,7238],{},[406,7369,7238],{}," existiert und ist ein symbolischer Link",[414,7372,7373,7247,7378,7380],{},[42,7374,7375,7376],{},"-S ",[406,7377,7238],{},[406,7379,7238],{}," existiert und ist ein Socket",[414,7382,7383,7247,7388,7390],{},[42,7384,7385,7386],{},"-O ",[406,7387,7238],{},[406,7389,7238],{}," existiert und ist Eigentum des Anwenders, unter dessen UID das test-Programm gerade läuft",[414,7392,7393,7247,7398,7400],{},[42,7394,7395,7396],{},"-G ",[406,7397,7238],{},[406,7399,7238],{}," existiert und gehört zu der Gruppe, zu der der User gehört, unter dessen UID das test-Programm gerade läuft",[414,7402,7403,7412,7413,7415,7416,7418],{},[42,7404,7405,7408,7409],{},[406,7406,7407],{},"Datei1"," -nt ",[406,7410,7411],{},"Datei2",": ",[406,7414,7407],{}," ist neuer als ",[406,7417,7411],{}," (newer than)",[414,7420,7421,7412,7428,7430,7431,7433],{},[42,7422,7423,7425,7426],{},[406,7424,7407],{}," -ot ",[406,7427,7411],{},[406,7429,7407],{}," ist älter als ",[406,7432,7411],{}," (older than)",[414,7435,7436,7412,7443,7445,7446,7448],{},[42,7437,7438,7440,7441],{},[406,7439,7407],{}," -ef ",[406,7442,7411],{},[406,7444,7407],{}," und ",[406,7447,7411],{}," benutzen die gleiche I-Node (equal file)",[414,7450,7451,7457,7458,7460],{},[42,7452,7453,7454],{},"-z ",[406,7455,7456],{},"Zeichenkette",": Wahr wenn ",[406,7459,7456],{}," eine Länge von Null hat.",[414,7462,7463,7457,7468,7470],{},[42,7464,7465,7466],{},"-n ",[406,7467,7456],{},[406,7469,7456],{}," eine Länge von größer als Null hat.",[414,7472,7473,7457,7482,7484,7485],{},[42,7474,7475,7478,7479],{},[406,7476,7477],{},"Zeichenkette1"," = ",[406,7480,7481],{},"Zeichenkette2",[406,7483,7477],{}," gleich ",[406,7486,7481],{},[414,7488,7489,7457,7496,7498,7499],{},[42,7490,7491,7493,7494],{},[406,7492,7477],{}," != ",[406,7495,7481],{},[406,7497,7477],{}," ungleich ",[406,7500,7481],{},[414,7502,7503,7512,7513,7484,7515,7517],{},[42,7504,7505,7508,7509],{},[406,7506,7507],{},"Wert1"," -eq ",[406,7510,7511],{},"Wert2",": Wahr, wenn ",[406,7514,7507],{},[406,7516,7511],{}," (equal)",[414,7519,7520,7512,7527,7498,7529,7531],{},[42,7521,7522,7524,7525],{},[406,7523,7507],{}," -ne ",[406,7526,7511],{},[406,7528,7507],{},[406,7530,7511],{}," (not equal)",[414,7533,7534,7512,7541,7543,7544,7546],{},[42,7535,7536,7538,7539],{},[406,7537,7507],{}," -gt ",[406,7540,7511],{},[406,7542,7507],{}," größer ",[406,7545,7511],{}," (greater than)",[414,7548,7549,7512,7556,7558,7559,7561],{},[42,7550,7551,7553,7554],{},[406,7552,7507],{}," -ge ",[406,7555,7511],{},[406,7557,7507],{}," größer oder gleich ",[406,7560,7511],{}," (greater or equal)",[414,7563,7564,7512,7571,7573,7574,7576],{},[42,7565,7566,7568,7569],{},[406,7567,7507],{}," -lt ",[406,7570,7511],{},[406,7572,7507],{}," kleiner ",[406,7575,7511],{}," (less than)",[414,7578,7579,7512,7586,7588,7589,7591],{},[42,7580,7581,7583,7584],{},[406,7582,7507],{}," -le ",[406,7585,7511],{},[406,7587,7507],{}," kleiner oder gleich ",[406,7590,7511],{}," (less or equal)",[414,7593,7594,7599,7600],{},[42,7595,6842,7596],{},[406,7597,7598],{},"Ausdruck",": Logische Verneinung von ",[406,7601,7598],{},[414,7603,7604,7611],{},[42,7605,7606,7608,7609],{},[406,7607,7598],{}," -a ",[406,7610,7598],{},": Logisches UND. Wahr, wenn beide Ausdrücke wahr sind",[414,7613,7614,7621],{},[42,7615,7616,7618,7619],{},[406,7617,7598],{}," -o ",[406,7620,7598],{},": Logisches ODER. Wahr wenn mindestens einer der beiden Ausdrücke wahr ist",[414,7623,7624],{},"Mit diesen Tests sind so ziemlich alle denkbaren Bedingungsüberprüfungen möglich, die in einem Shellscript notwendig sind.",[475,7626,7628],{"id":7627},"_4222-die-erweiterte-if-else-anweisung","4.2.2.2 Die erweiterte if-else Anweisung",[414,7630,7631],{},"Natürlich bietet die if-Anweisung auch eine Erweiterung zur normalen Form, die sogenannte if-else Anweisung. Es ist also möglich zu schreiben:",[4647,7633,7635],{"className":4649,"code":7634,"language":4651,"meta":269,"style":269},"if [ Ausdruck ];\nthen\nKommandos\nelse\nKommandos\nfi\n\n",[4653,7636,7637,7644,7648,7653,7658,7662],{"__ignoreMap":269},[4173,7638,7639,7641],{"class":4657,"line":4658},[4173,7640,6201],{"class":4788},[4173,7642,7643],{"class":4784}," [ Ausdruck ];\n",[4173,7645,7646],{"class":4657,"line":270},[4173,7647,6229],{"class":4788},[4173,7649,7650],{"class":4657,"line":1263},[4173,7651,7652],{"class":4661},"Kommandos\n",[4173,7654,7655],{"class":4657,"line":4770},[4173,7656,7657],{"class":4788},"else\n",[4173,7659,7660],{"class":4657,"line":4775},[4173,7661,7652],{"class":4661},[4173,7663,7664],{"class":4657,"line":6320},[4173,7665,6247],{"class":4788},[475,7667,7669],{"id":7668},"_4223-die-if-elif-else-anweisung","4.2.2.3 Die if-elif-else Anweisung",[414,7671,7672],{},"Um noch einen Schritt weiterzugehen bietet die if-Anweisung sogar ein weiteres if im else, das sogenannte elif, das wieder eine Bedingung überprüft:",[4647,7674,7676],{"className":4649,"code":7675,"language":4651,"meta":269,"style":269},"if [ Ausdruck ];\nthen\nKommandos\nelif [ Ausdruck ];\nthen\nKommandos\nelse\nKommandos\nfi\n\n",[4653,7677,7678,7684,7688,7692,7699,7703,7707,7711,7715],{"__ignoreMap":269},[4173,7679,7680,7682],{"class":4657,"line":4658},[4173,7681,6201],{"class":4788},[4173,7683,7643],{"class":4784},[4173,7685,7686],{"class":4657,"line":270},[4173,7687,6229],{"class":4788},[4173,7689,7690],{"class":4657,"line":1263},[4173,7691,7652],{"class":4661},[4173,7693,7694,7697],{"class":4657,"line":4770},[4173,7695,7696],{"class":4788},"elif",[4173,7698,7643],{"class":4784},[4173,7700,7701],{"class":4657,"line":4775},[4173,7702,6229],{"class":4788},[4173,7704,7705],{"class":4657,"line":6320},[4173,7706,7652],{"class":4661},[4173,7708,7709],{"class":4657,"line":6325},[4173,7710,7657],{"class":4788},[4173,7712,7713],{"class":4657,"line":6343},[4173,7714,7652],{"class":4661},[4173,7716,7717],{"class":4657,"line":6348},[4173,7718,6247],{"class":4788},[475,7720,7722],{"id":7721},"_423-mehrfachauswahl-mit-case","4.2.3. Mehrfachauswahl mit case",[414,7724,7725],{},"Oft kommt es vor, dass eine Variable ausgewertet werden muß und es dabei viele verschiedenen Möglichkeiten gibt, welche Werte diese Variable annehmen kann. Natürlich wäre es mit einer langen if-elif-elif-elif… Anweisung möglich, so etwas zu realisieren, das wäre aber sowohl umständlich, als auch schwer zu lesen. Damit solche Fälle einfacher realisiert werden können, gibt es die Mehrfachauswahl mit case. Der prinzipielle Aufbau einer case-Entscheidung sieht folgendermaßen aus:",[4647,7727,7729],{"className":4649,"code":7728,"language":4651,"meta":269,"style":269},"case Variable in\nMuster1) Kommando1 ;;\nMuster2) Kommando2 ;;\nMuster3) Kommando3 ;;\n",[4653,7730,7731,7740,7752,7764],{"__ignoreMap":269},[4173,7732,7733,7735,7738],{"class":4657,"line":4658},[4173,7734,6264],{"class":4788},[4173,7736,7737],{"class":4784}," Variable ",[4173,7739,6270],{"class":4788},[4173,7741,7742,7745,7747,7750],{"class":4657,"line":270},[4173,7743,7744],{"class":6279},"Muster1",[4173,7746,6282],{"class":4788},[4173,7748,7749],{"class":4661}," Kommando1",[4173,7751,7018],{"class":4784},[4173,7753,7754,7757,7759,7762],{"class":4657,"line":1263},[4173,7755,7756],{"class":6279},"Muster2",[4173,7758,6282],{"class":4788},[4173,7760,7761],{"class":4661}," Kommando2",[4173,7763,7018],{"class":4784},[4173,7765,7766,7769,7771,7774],{"class":4657,"line":4770},[4173,7767,7768],{"class":6279},"Muster3",[4173,7770,6282],{"class":4788},[4173,7772,7773],{"class":4661}," Kommando3",[4173,7775,7018],{"class":4784},[414,7777,7778],{},"...",[4647,7780,7782],{"className":4649,"code":7781,"language":4651,"meta":269,"style":269},"esac\n\n",[4653,7783,7784],{"__ignoreMap":269},[4173,7785,7786],{"class":4657,"line":4658},[4173,7787,6351],{"class":4784},[16,7789,7791],{"id":7790},"_5-essenzielle-werkzeuge","5. Essenzielle Werkzeuge",[21,7793,7794,7800,7806,7812],{},[24,7795,7796,7799],{},[42,7797,7798],{},"Suchen:"," grep foo myfile findet Zeilen mit dem Text \"foo\" in einer Datei.",[24,7801,7802,7805],{},[42,7803,7804],{},"Dateien finden:"," find . -name \"*.txt\" -print sucht nach Textdateien im aktuellen Verzeichnis.",[24,7807,7808,7811],{},[42,7809,7810],{},"Text filtern:"," awk '{print $5}' file gibt nur das 5. Wort jeder Zeile aus.",[24,7813,7814,7817],{},[42,7815,7816],{},"Text ersetzen:"," sed s\u002Ffoo\u002Fbar\u002Fg file ersetzt \"foo\" durch \"bar\".",[11,7819,7821],{"id":7820},"_6-funktionen","6. Funktionen",[414,7823,7824],{},[1504,7825],{"alt":269,"src":7826},"\u002Fdownloads\u002FBSA\u002Fimages\u002F7-8-cs-sa2_img_1.png",[414,7828,7829],{},[1504,7830],{"alt":269,"src":7831},"\u002Fdownloads\u002FBSA\u002Fimages\u002F7-8-cs-sa2_img_2.png",[414,7833,7834,7835],{},".",[1504,7836],{"alt":269,"src":7837},"\u002Fdownloads\u002FBSA\u002Fimages\u002F7-8-cs-sa2_img_3.png",[11,7839,7841],{"id":7840},"_7-docker","7. Docker",[16,7843,7845],{"id":7844},"_1-der-workflow-vom-code-zum-container",[42,7846,7847],{},"1. Der Workflow: Vom Code zum Container",[414,7849,7850,7851],{},"Dieser Prozess lässt sich in drei Schritten zusammenfassen: ",[42,7852,7853],{},"Build, Pull, Run.",[470,7855,7857],{"id":7856},"images-verwalten-die-vorbereitungen",[42,7858,7859],{},"Images verwalten (Die Vorbereitungen)",[414,7861,7862],{},"Bevor etwas läuft, muss das Image existieren – entweder selbst gebaut oder heruntergeladen.",[21,7864,7865],{},[24,7866,7867],{},[42,7868,7869],{},"docker build -t name:tag .",[414,7871,7872],{},"Baut ein Image aus dem Dockerfile im aktuellen Verzeichnis (.). Das -t (Tag) gibt dem Kind einen Namen.",[21,7874,7875],{},[24,7876,7877],{},[42,7878,7879],{},"docker pull image_name",[414,7881,7882],{},"Lädt ein fertiges Image vom Docker Hub herunter (z. B. docker pull nginx).",[21,7884,7885],{},[24,7886,7887],{},[42,7888,7889],{},"docker images",[414,7891,7892],{},"Listet alle Images auf, die aktuell auf deinem Rechner gespeichert sind.",[21,7894,7895],{},[24,7896,7897],{},[42,7898,7899],{},"docker rmi image_id",[414,7901,7902],{},"Löscht ein Image (Remove Image).",[16,7904,7906],{"id":7905},"_2-docker-volumes-das-langzeitgedächtnis",[42,7907,7908],{},"2. Docker Volumes: Das Langzeitgedächtnis",[414,7910,7911,7912,7915,7916,7919],{},"Container sind ",[42,7913,7914],{},"ephemer",". Das ist ein schickes Wort für: Wenn du den Container löschst, sind alle Daten darin (Datenbanken, Uploads, Logs) ",[42,7917,7918],{},"weg",". Volumes sind die Lösung, um Daten \"auszulagern\".",[470,7921,7923],{"id":7922},"die-drei-arten-der-speicherung",[42,7924,7925],{},"Die drei Arten der Speicherung",[475,7927,7929],{"id":7928},"a-named-volumes-der-docker-standard",[42,7930,7931],{},"A. Named Volumes (Der Docker-Standard)",[414,7933,7934],{},"Docker verwaltet den Speicherort selbst (meist irgendwo tief in \u002Fvar\u002Flib\u002Fdocker\u002F).",[21,7936,7937,7943,7949],{},[24,7938,7939,7942],{},[42,7940,7941],{},"Syntax:"," -v mein_goldfisch_glas:\u002Fapp\u002Fdata",[24,7944,7945,7948],{},[42,7946,7947],{},"Vorteil:"," Performant, sicher und Docker kümmert sich um Backups und Verwaltung.",[24,7950,7951,7954],{},[42,7952,7953],{},"Einsatz:"," Datenbanken (PostgreSQL, MySQL).",[475,7956,7958],{"id":7957},"b-bind-mounts-der-entwickler-liebling",[42,7959,7960],{},"B. Bind Mounts (Der Entwickler-Liebling)",[414,7962,7963],{},"Du verbindest einen ganz konkreten Ordner von deiner Festplatte mit dem Container.",[21,7965,7966,7971,7980],{},[24,7967,7968,7970],{},[42,7969,7941],{}," -v \u002FUsers\u002Fname\u002Fprojekte\u002Fapp:\u002Fapp",[24,7972,7973,7975,7976,7979],{},[42,7974,7947],{}," Änderungen an deinem Code auf dem Host sind ",[42,7977,7978],{},"sofort"," im Container aktiv (Live-Reload).",[24,7981,7982,7984],{},[42,7983,7953],{}," Quellcode während der Entwicklung.",[475,7986,7988],{"id":7987},"c-anonymous-volumes",[42,7989,7990],{},"C. Anonymous Volumes",[414,7992,7993],{},"Werden erstellt, wenn du nur den Zielpfad angibst (-v \u002Fapp\u002Ftemp).",[21,7995,7996],{},[24,7997,7998,8001],{},[42,7999,8000],{},"Nachteil:"," Schwer wiederzufinden, wenn der Container weg ist.",[16,8003,8005],{"id":8004},"_3-die-ultimative-kombination-beispiel",[42,8006,8007],{},"3. Die ultimative Kombination (Beispiel)",[414,8009,8010],{},"Nehmen wir an, du willst eine Website entwickeln. Du brauchst:",[318,8012,8013,8019,8025],{},[24,8014,8015,8018],{},[42,8016,8017],{},"Port Mapping",", um die Seite im Browser zu sehen.",[24,8020,8021,8024],{},[42,8022,8023],{},"Bind Mount",", damit dein Code-Update sofort sichtbar ist.",[24,8026,8027,8030],{},[42,8028,8029],{},"Named Volume",", damit die User-Daten erhalten bleiben.",[414,8032,6191],{},[4647,8034,8036],{"className":4649,"code":8035,"language":4651,"meta":269,"style":269},"docker run -d \\\n",[4653,8037,8038],{"__ignoreMap":269},[4173,8039,8040,8043,8046,8049],{"class":4657,"line":4658},[4173,8041,8042],{"class":4661},"docker",[4173,8044,8045],{"class":4669}," run",[4173,8047,8048],{"class":4665}," -d",[4173,8050,8051],{"class":4665}," \\\n",[414,8053,8054,8055,8057,8058,8060,8061,8063,8064,8066],{},"--name meine_super_app \\",[7135,8056],{},"\n-p 3000:3000 \\",[7135,8059],{},"\n-v $(pwd):\u002Fapp \\",[7135,8062],{},"\n-v app_db_data:\u002Fvar\u002Flib\u002Fmysql \\",[7135,8065],{},"\nmeine_app_image",[470,8068,8070],{"id":8069},"kurze-checkliste-für-den-befehl-oben",[42,8071,8072],{},"Kurze Checkliste für den Befehl oben:",[21,8074,8075,8081,8087],{},[24,8076,8077,8080],{},[42,8078,8079],{},"-p 3000:3000",": \"Browser-Port 3000 funkt an App-Port 3000.\"",[24,8082,8083,8086],{},[42,8084,8085],{},"-v $(pwd):\u002Fapp",": \"Spiegle mein aktuelles Verzeichnis in den Container-Ordner \u002Fapp.\"",[24,8088,8089,8092],{},[42,8090,8091],{},"-v app_db_data:...",": \"Speichere die Datenbank-Daten sicher in einem Volume namens app_db_data.\"",[16,8094,8096],{"id":8095},"nützliche-volume-commands",[42,8097,8098],{},"Nützliche Volume-Commands",[21,8100,8101,8104,8107],{},[24,8102,8103],{},"docker volume ls: Zeigt alle \"Festplatten\" an, die Docker gerade verwaltet.",[24,8105,8106],{},"docker volume inspect \u003Cname>: Verrät dir, wo genau auf deiner echten Festplatte die Daten liegen.",[24,8108,8109],{},"docker volume prune: Löscht alle Volumes, die gerade von keinem Container benutzt",[16,8111,8113],{"id":8112},"_2-container-steuern-die-action",[42,8114,8115],{},"2. Container steuern (Die Action)",[414,8117,8118],{},"Hier erwachen deine Anwendungen zum Leben. Der Befehl docker run ist dabei das Schweizer Taschenmesser.",[470,8120,8122],{"id":8121},"der-docker-run-befehl",[42,8123,8124],{},"Der docker run Befehl",[4647,8126,8128],{"className":4649,"code":8127,"language":4651,"meta":269,"style":269},"docker run [FLAGS] IMAGE [COMMAND]\n\n",[4653,8129,8130],{"__ignoreMap":269},[4173,8131,8132,8134,8136],{"class":4657,"line":4658},[4173,8133,8042],{"class":4661},[4173,8135,8045],{"class":4669},[4173,8137,8138],{"class":4784}," [FLAGS] IMAGE [COMMAND]\n",[414,8140,8141],{},"Die wichtigsten Flags für run:",[21,8143,8144,8150,8164,8174,8180],{},[24,8145,8146,8149],{},[42,8147,8148],{},"-d (detached):"," Der Container läuft im Hintergrund. Dein Terminal bleibt frei.",[24,8151,8152,8163],{},[42,8153,8154,8155,8158,8159,8162],{},"-p 8080:80 (-p ",[4173,8156,8157],{},"HOST_PORT",":",[4173,8160,8161],{},"CONTAINER_PORT","):"," Mapping. Leitet Port 8080 deines Rechners auf Port 80 des Containers um.",[24,8165,8166,8169,8170,8173],{},[42,8167,8168],{},"--name mein_server:"," Gibt dem Container einen festen Namen statt eines zufälligen (wie ",[406,8171,8172],{},"focused_curie",").",[24,8175,8176,8179],{},[42,8177,8178],{},"-v \u002Fhost:\u002Fcontainer (volume):"," Verbindet einen Ordner auf deinem Rechner mit einem Ordner im Container (wichtig für Datenbank-Daten).",[24,8181,8182,8185],{},[42,8183,8184],{},"-it (interactive + tty):"," Brauchst du, wenn du interaktiv mit dem Container arbeiten willst (z.B. eine Shell öffnen).",[414,8187,8188],{},[42,8189,8190],{},"Beispiel:",[4647,8192,8194],{"className":4649,"code":8193,"language":4651,"meta":269,"style":269},"docker run -d -p 8080:80 --name web-server nginx\n\n",[4653,8195,8196],{"__ignoreMap":269},[4173,8197,8198,8200,8202,8204,8207,8210,8213,8216],{"class":4657,"line":4658},[4173,8199,8042],{"class":4661},[4173,8201,8045],{"class":4669},[4173,8203,8048],{"class":4665},[4173,8205,8206],{"class":4665}," -p",[4173,8208,8209],{"class":4669}," 8080:80",[4173,8211,8212],{"class":4665}," --name",[4173,8214,8215],{"class":4669}," web-server",[4173,8217,8218],{"class":4669}," nginx\n",[414,8220,8221],{},[406,8222,8223],{},"(Startet einen Nginx-Webserver im Hintergrund, erreichbar unter localhost:8080)",[16,8225,8227],{"id":8226},"_3-laufende-container-verwalten-das-management",[42,8228,8229],{},"3. Laufende Container verwalten (Das Management)",[414,8231,8232],{},"Wenn die Container erst einmal laufen, musst du sie überwachen und kontrollieren.",[765,8234,8235,8249],{},[768,8236,8237],{},[771,8238,8239,8244],{},[774,8240,8241],{},[42,8242,8243],{},"Befehl",[774,8245,8246],{},[42,8247,8248],{},"Zweck",[787,8250,8251,8265,8279,8289,8299,8309],{},[771,8252,8253,8258],{},[792,8254,8255],{},[42,8256,8257],{},"docker ps",[792,8259,8260,8261,8264],{},"Zeigt alle ",[42,8262,8263],{},"laufenden"," Container an.",[771,8266,8267,8272],{},[792,8268,8269],{},[42,8270,8271],{},"docker ps -a",[792,8273,8274,8275,8278],{},"Zeigt ",[42,8276,8277],{},"alle"," Container an (auch die gestoppten).",[771,8280,8281,8286],{},[792,8282,8283],{},[42,8284,8285],{},"docker stop \u003CID\u002FName>",[792,8287,8288],{},"Hält einen laufenden Container sanft an.",[771,8290,8291,8296],{},[792,8292,8293],{},[42,8294,8295],{},"docker start \u003CID\u002FName>",[792,8297,8298],{},"Startet einen gestoppten Container wieder.",[771,8300,8301,8306],{},[792,8302,8303],{},[42,8304,8305],{},"docker rm \u003CID\u002FName>",[792,8307,8308],{},"Löscht einen (gestoppten) Container endgültig.",[771,8310,8311,8316],{},[792,8312,8313],{},[42,8314,8315],{},"docker logs -f \u003CID\u002FName>",[792,8317,8318],{},"Zeigt die Konsolen-Ausgabe des Containers live an (super zum Debuggen!).",[16,8320,8322],{"id":8321},"_4-insider-befehle-für-profis",[42,8323,8324],{},"4. Insider-Befehle (Für Profis)",[414,8326,8327],{},"Manchmal musst du „in“ den Container hineinschauen oder aufräumen:",[21,8329,8330],{},[24,8331,8332,8335],{},[42,8333,8334],{},"docker exec -it \u003Ccontainername> bash"," (oder sh)",[414,8337,8338,8339,8342],{},"Damit öffnest du ein Terminal ",[42,8340,8341],{},"innerhalb"," eines bereits laufenden Containers. Es ist, als würdest du dich per SSH einloggen.",[21,8344,8345],{},[24,8346,8347],{},[42,8348,8349],{},"docker inspect \u003Ccontainername>",[414,8351,8352],{},"Gibt dir alle technischen Details (IP-Adresse, Mounts, Konfiguration) im JSON-Format aus.",[21,8354,8355],{},[24,8356,8357],{},[42,8358,8359],{},"docker system prune",[414,8361,8362],{},"Der „Frühlingsputz“. Löscht alle gestoppten Container, ungenutzten Netzwerke und verwaisten Images auf einmal.",[470,8364,8366],{"id":8365},"ein-typischer-workflow-in-der-praxis",[42,8367,8368],{},"Ein typischer Workflow in der Praxis:",[318,8370,8371,8377,8383,8389,8395],{},[24,8372,8373,8376],{},[42,8374,8375],{},"Code schreiben"," und Dockerfile erstellen.",[24,8378,8379,8382],{},[42,8380,8381],{},"docker build -t meine-app ."," (Image bauen)",[24,8384,8385,8388],{},[42,8386,8387],{},"docker run -d -p 3000:3000 meine-app"," (Container starten)",[24,8390,8391,8394],{},[42,8392,8393],{},"docker logs -f meine-app"," (Prüfen, ob alles okay ist)",[24,8396,8397,8398,8401],{},"Fehler gefunden? ",[42,8399,8400],{},"docker stop meine-app"," -> Code ändern -> Zurück zu Schritt 2.",[11,8403,8405],{"id":8404},"_8-docker-file","8. Docker File",[318,8407,8408],{},[24,8409,8410],{},"Build-Argumente (Optional beim Bauen übergeben)",[4647,8412,8416],{"className":8413,"code":8414,"language":8415,"meta":269,"style":269},"language-dockerfile shiki shiki-themes github-light github-dark","ARG PYTHON_VERSION=3.9-slim\n\n","dockerfile",[4653,8417,8418],{"__ignoreMap":269},[4173,8419,8420,8423],{"class":4657,"line":4658},[4173,8421,8422],{"class":4788},"ARG",[4173,8424,8425],{"class":4784}," PYTHON_VERSION=3.9-slim\n",[318,8427,8428],{"start":270},[24,8429,8430],{},"Basis-Image mit Variable",[4647,8432,8434],{"className":8413,"code":8433,"language":8415,"meta":269,"style":269},"FROM python:${PYTHON_VERSION}\n\n",[4653,8435,8436],{"__ignoreMap":269},[4173,8437,8438,8441],{"class":4657,"line":4658},[4173,8439,8440],{"class":4788},"FROM",[4173,8442,8443],{"class":4784}," python:${PYTHON_VERSION}\n",[318,8445,8446],{"start":1263},[24,8447,8448],{},"Metadaten (Gut für die Organisation)",[4647,8450,8452],{"className":8413,"code":8451,"language":8415,"meta":269,"style":269},"LABEL maintainer=\"dein-name@example.com\" LABEL description=\"Produktions-Image für meine Python Web-App\"\n\n",[4653,8453,8454],{"__ignoreMap":269},[4173,8455,8456,8459,8462,8465,8468],{"class":4657,"line":4658},[4173,8457,8458],{"class":4788},"LABEL",[4173,8460,8461],{"class":4784}," maintainer=",[4173,8463,8464],{"class":4669},"\"dein-name@example.com\"",[4173,8466,8467],{"class":4784}," LABEL description=",[4173,8469,8470],{"class":4669},"\"Produktions-Image für meine Python Web-App\"\n",[318,8472,8473],{"start":4770},[24,8474,8475],{},"Umgebungsvariablen setzen",[414,8477,8478],{},"Verhindert, dass Python .pyc Dateien schreibt und puffert die Ausgabe (loggt sofort)",[4647,8480,8482],{"className":8413,"code":8481,"language":8415,"meta":269,"style":269},"ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV APP_HOME=\u002Fapp\n\nWORKDIR $APP_HOME\n\n",[4653,8483,8484,8492,8496],{"__ignoreMap":269},[4173,8485,8486,8489],{"class":4657,"line":4658},[4173,8487,8488],{"class":4788},"ENV",[4173,8490,8491],{"class":4784}," PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV APP_HOME=\u002Fapp\n",[4173,8493,8494],{"class":4657,"line":270},[4173,8495,4761],{"emptyLinePlaceholder":4760},[4173,8497,8498,8501],{"class":4657,"line":1263},[4173,8499,8500],{"class":4788},"WORKDIR",[4173,8502,8503],{"class":4784}," $APP_HOME\n",[318,8505,8506],{"start":4775},[24,8507,8508],{},"Abhängigkeiten (Caching-Optimierung)",[414,8510,8511],{},"Wir kopieren NUR die requirements zuerst, damit der 'pip install' Layer",[414,8513,8514],{},"nur neu gebaut wird, wenn sich die Abhängigkeiten ändern.",[4647,8516,8518],{"className":8413,"code":8517,"language":8415,"meta":269,"style":269},"COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip\n",[4653,8519,8520],{"__ignoreMap":269},[4173,8521,8522,8525],{"class":4657,"line":4658},[4173,8523,8524],{"class":4788},"COPY",[4173,8526,8527],{"class":4784}," requirements.txt . RUN pip install --no-cache-dir --upgrade pip\n",[414,8529,8530],{},"&& pip install --no-cache-dir -r requirements.txt",[318,8532,8533],{"start":6320},[24,8534,8535],{},"Sicherheits-Check: Einen Non-Root User anlegen",[414,8537,8538],{},"Standardmäßig läuft Docker als 'root'. Das ist ein Sicherheitsrisiko.",[4647,8540,8542],{"className":8413,"code":8541,"language":8415,"meta":269,"style":269},"RUN useradd -m myuser USER myuser\n\n",[4653,8543,8544],{"__ignoreMap":269},[4173,8545,8546,8549],{"class":4657,"line":4658},[4173,8547,8548],{"class":4788},"RUN",[4173,8550,8551],{"class":4784}," useradd -m myuser USER myuser\n",[318,8553,8554],{"start":6325},[24,8555,8556],{},"App-Code kopieren (als der neue User)",[4647,8558,8560],{"className":8413,"code":8559,"language":8415,"meta":269,"style":269},"COPY --chown=myuser:myuser . .\n\n",[4653,8561,8562],{"__ignoreMap":269},[4173,8563,8564,8566],{"class":4657,"line":4658},[4173,8565,8524],{"class":4788},[4173,8567,8568],{"class":4784}," --chown=myuser:myuser . .\n",[318,8570,8571],{"start":6343},[24,8572,8573],{},"Healthcheck (Sagt Docker, ob die App wirklich \"lebt\")",[4647,8575,8577],{"className":8413,"code":8576,"language":8415,"meta":269,"style":269},"HEALTHCHECK --interval=30s --timeout=3s\nCMD curl -f http:\u002F\u002Flocalhost:8080\u002Fhealth || exit 1\n\nEXPOSE 8080 #Port\n\n",[4653,8578,8579,8587,8595,8599],{"__ignoreMap":269},[4173,8580,8581,8584],{"class":4657,"line":4658},[4173,8582,8583],{"class":4788},"HEALTHCHECK",[4173,8585,8586],{"class":4784}," --interval=30s --timeout=3s\n",[4173,8588,8589,8592],{"class":4657,"line":270},[4173,8590,8591],{"class":4788},"CMD",[4173,8593,8594],{"class":4784}," curl -f http:\u002F\u002Flocalhost:8080\u002Fhealth || exit 1\n",[4173,8596,8597],{"class":4657,"line":1263},[4173,8598,4761],{"emptyLinePlaceholder":4760},[4173,8600,8601,8604],{"class":4657,"line":4770},[4173,8602,8603],{"class":4788},"EXPOSE",[4173,8605,8606],{"class":4784}," 8080 #Port\n",[318,8608,8609],{"start":6348},[24,8610,8611],{},"Startbefehl",[4647,8613,8615],{"className":8413,"code":8614,"language":8415,"meta":269,"style":269},"CMD [\"python\", \"app.py\"]\n\n",[4653,8616,8617],{"__ignoreMap":269},[4173,8618,8619,8621,8624,8627,8630,8633],{"class":4657,"line":4658},[4173,8620,8591],{"class":4788},[4173,8622,8623],{"class":4784}," [",[4173,8625,8626],{"class":4669},"\"python\"",[4173,8628,8629],{"class":4784},", ",[4173,8631,8632],{"class":4669},"\"app.py\"",[4173,8634,8635],{"class":4784},"]\n",[16,8637,763],{"id":762},[414,8639,8640],{},"Docker-File Beispiel zum Bauen einer Node.js Applikation innerhalb eines Docker-Containers",[414,8642,8643],{},[406,8644,8645],{},"# Stage 1: Build the application",[4647,8647,8649],{"className":8413,"code":8648,"language":8415,"meta":269,"style":269},"FROM node:18-alpine as build-stage\n\n",[4653,8650,8651],{"__ignoreMap":269},[4173,8652,8653,8655,8658,8661],{"class":4657,"line":4658},[4173,8654,8440],{"class":4788},[4173,8656,8657],{"class":4784}," node:18-alpine ",[4173,8659,8660],{"class":4788},"as",[4173,8662,8663],{"class":4784}," build-stage\n",[414,8665,8666],{},[406,8667,8668],{},"# Install pnpm",[4647,8670,8672],{"className":8413,"code":8671,"language":8415,"meta":269,"style":269},"RUN npm install -g pnpm\n\n",[4653,8673,8674],{"__ignoreMap":269},[4173,8675,8676,8678],{"class":4657,"line":4658},[4173,8677,8548],{"class":4788},[4173,8679,8680],{"class":4784}," npm install -g pnpm\n",[414,8682,8683],{},[406,8684,8685],{},"# Set the working directory",[4647,8687,8689],{"className":8413,"code":8688,"language":8415,"meta":269,"style":269},"WORKDIR \u002Fapp\n\n",[4653,8690,8691],{"__ignoreMap":269},[4173,8692,8693,8695],{"class":4657,"line":4658},[4173,8694,8500],{"class":4788},[4173,8696,8697],{"class":4784}," \u002Fapp\n",[414,8699,8700],{},[406,8701,8702],{},"# Copy the package.json and pnpm-lock.yaml files",[4647,8704,8706],{"className":8413,"code":8705,"language":8415,"meta":269,"style":269},"COPY source\u002Fpackage.json source\u002Fpnpm-lock.yaml .\u002F\n\n",[4653,8707,8708],{"__ignoreMap":269},[4173,8709,8710,8712],{"class":4657,"line":4658},[4173,8711,8524],{"class":4788},[4173,8713,8714],{"class":4784}," source\u002Fpackage.json source\u002Fpnpm-lock.yaml .\u002F\n",[414,8716,8717],{},[406,8718,8719],{},"# Install dependencies",[4647,8721,8723],{"className":8413,"code":8722,"language":8415,"meta":269,"style":269},"RUN pnpm install\n\n",[4653,8724,8725],{"__ignoreMap":269},[4173,8726,8727,8729],{"class":4657,"line":4658},[4173,8728,8548],{"class":4788},[4173,8730,8731],{"class":4784}," pnpm install\n",[414,8733,8734],{},[406,8735,8736],{},"# Copy the rest of the application code",[4647,8738,8740],{"className":8413,"code":8739,"language":8415,"meta":269,"style":269},"COPY source\u002F .\u002F\n\n",[4653,8741,8742],{"__ignoreMap":269},[4173,8743,8744,8746],{"class":4657,"line":4658},[4173,8745,8524],{"class":4788},[4173,8747,8748],{"class":4784}," source\u002F .\u002F\n",[414,8750,8751],{},[406,8752,8753],{},"# Build the application",[4647,8755,8757],{"className":8413,"code":8756,"language":8415,"meta":269,"style":269},"RUN pnpm build\n\n",[4653,8758,8759],{"__ignoreMap":269},[4173,8760,8761,8763],{"class":4657,"line":4658},[4173,8762,8548],{"class":4788},[4173,8764,8765],{"class":4784}," pnpm build\n",[414,8767,8768],{},[406,8769,8770],{},"# Stage 2: Serve the application",[4647,8772,8774],{"className":8413,"code":8773,"language":8415,"meta":269,"style":269},"FROM node:18-alpine as production-stage\n\n",[4653,8775,8776],{"__ignoreMap":269},[4173,8777,8778,8780,8782,8784],{"class":4657,"line":4658},[4173,8779,8440],{"class":4788},[4173,8781,8657],{"class":4784},[4173,8783,8660],{"class":4788},[4173,8785,8786],{"class":4784}," production-stage\n",[414,8788,8789],{},[406,8790,8685],{},[4647,8792,8793],{"className":8413,"code":8688,"language":8415,"meta":269,"style":269},[4653,8794,8795],{"__ignoreMap":269},[4173,8796,8797,8799],{"class":4657,"line":4658},[4173,8798,8500],{"class":4788},[4173,8800,8697],{"class":4784},[414,8802,8803],{},[406,8804,8805],{},"# Copy the built application from the build stage",[4647,8807,8809],{"className":8413,"code":8808,"language":8415,"meta":269,"style":269},"COPY --from=build-stage \u002Fapp\u002F.output .\u002F\n\n",[4653,8810,8811],{"__ignoreMap":269},[4173,8812,8813,8815],{"class":4657,"line":4658},[4173,8814,8524],{"class":4788},[4173,8816,8817],{"class":4784}," --from=build-stage \u002Fapp\u002F.output .\u002F\n",[414,8819,8820],{},[406,8821,8822],{},"# Start the application",[4647,8824,8826],{"className":8413,"code":8825,"language":8415,"meta":269,"style":269},"CMD [\"node\", \"server\u002Findex.mjs\"]\n\n# 9. Wichtige andere Befehle\n\n",[4653,8827,8828,8844,8848],{"__ignoreMap":269},[4173,8829,8830,8832,8834,8837,8839,8842],{"class":4657,"line":4658},[4173,8831,8591],{"class":4788},[4173,8833,8623],{"class":4784},[4173,8835,8836],{"class":4669},"\"node\"",[4173,8838,8629],{"class":4784},[4173,8840,8841],{"class":4669},"\"server\u002Findex.mjs\"",[4173,8843,8635],{"class":4784},[4173,8845,8846],{"class":4657,"line":270},[4173,8847,4761],{"emptyLinePlaceholder":4760},[4173,8849,8850],{"class":4657,"line":1263},[4173,8851,8852],{"class":4766},"# 9. Wichtige andere Befehle\n",[16,8854,8856],{"id":8855},"_91-grep","9.1. grep",[414,8858,8859,8862,8864],{},[42,8860,8861],{},"Zweck:",[7135,8863],{},"\nSucht nach Textmustern (Patterns) in Dateien oder Ausgaben von Programmen.",[414,8866,8867],{},[42,8868,8869],{},"Typische Verwendung:",[21,8871,8872,8875,8878],{},[24,8873,8874],{},"Text in Dateien suchen",[24,8876,8877],{},"Logs durchsuchen",[24,8879,8880],{},"Ausgabe von Befehlen filtern",[414,8882,8883],{},[42,8884,7941],{},[4647,8886,8888],{"className":4649,"code":8887,"language":4651,"meta":269,"style":269},"grep [OPTIONEN] PATTERN DATEI\n\n",[4653,8889,8890],{"__ignoreMap":269},[4173,8891,8892,8895],{"class":4657,"line":4658},[4173,8893,8894],{"class":4661},"grep",[4173,8896,8897],{"class":4784}," [OPTIONEN] PATTERN DATEI\n",[414,8899,8900],{},[42,8901,8902],{},"Beispiele:",[4647,8904,8906],{"className":4649,"code":8905,"language":4651,"meta":269,"style":269},"grep \"error\" logfile.txt\nps aux | grep firefox\ngrep -i \"test\" datei.txt\n\n",[4653,8907,8908,8918,8935],{"__ignoreMap":269},[4173,8909,8910,8912,8915],{"class":4657,"line":4658},[4173,8911,8894],{"class":4661},[4173,8913,8914],{"class":4669}," \"error\"",[4173,8916,8917],{"class":4669}," logfile.txt\n",[4173,8919,8920,8923,8926,8929,8932],{"class":4657,"line":270},[4173,8921,8922],{"class":4661},"ps",[4173,8924,8925],{"class":4669}," aux",[4173,8927,8928],{"class":4788}," |",[4173,8930,8931],{"class":4661}," grep",[4173,8933,8934],{"class":4669}," firefox\n",[4173,8936,8937,8939,8942,8945],{"class":4657,"line":1263},[4173,8938,8894],{"class":4661},[4173,8940,8941],{"class":4665}," -i",[4173,8943,8944],{"class":4669}," \"test\"",[4173,8946,8947],{"class":4669}," datei.txt\n",[16,8949,8951],{"id":8950},"wichtige-optionen",[42,8952,8953],{},"Wichtige Optionen",[765,8955,8956,8969],{},[768,8957,8958],{},[771,8959,8960,8965],{},[774,8961,8962],{},[42,8963,8964],{},"Option",[774,8966,8967],{},[42,8968,6733],{},[787,8970,8971,8979,8987,8995,9002,9010,9018,9026,9034,9042,9050],{},[771,8972,8973,8976],{},[792,8974,8975],{},"-i",[792,8977,8978],{},"ignoriert Groß-\u002FKleinschreibung",[771,8980,8981,8984],{},[792,8982,8983],{},"-v",[792,8985,8986],{},"zeigt Zeilen ohne Treffer",[771,8988,8989,8992],{},[792,8990,8991],{},"-n",[792,8993,8994],{},"zeigt Zeilennummer",[771,8996,8997,8999],{},[792,8998,6103],{},[792,9000,9001],{},"rekursive Suche in Verzeichnissen",[771,9003,9004,9007],{},[792,9005,9006],{},"-l",[792,9008,9009],{},"zeigt nur Dateinamen mit Treffer",[771,9011,9012,9015],{},[792,9013,9014],{},"-c",[792,9016,9017],{},"zählt Treffer",[771,9019,9020,9023],{},[792,9021,9022],{},"-w",[792,9024,9025],{},"sucht nur ganze Wörter",[771,9027,9028,9031],{},[792,9029,9030],{},"-E",[792,9032,9033],{},"erweitert Regex (egrep)",[771,9035,9036,9039],{},[792,9037,9038],{},"-F",[792,9040,9041],{},"feste Strings (kein Regex)",[771,9043,9044,9047],{},[792,9045,9046],{},"-o",[792,9048,9049],{},"zeigt nur den Treffer",[771,9051,9052,9055],{},[792,9053,9054],{},"--color=auto",[792,9056,9057],{},"markiert Treffer",[414,9059,9060],{},[42,9061,8902],{},[414,9063,9064],{},"Suche ohne Groß-\u002FKleinschreibung",[4647,9066,9068],{"className":4649,"code":9067,"language":4651,"meta":269,"style":269},"grep -i \"linux\" datei.txt\n\n",[4653,9069,9070],{"__ignoreMap":269},[4173,9071,9072,9074,9076,9079],{"class":4657,"line":4658},[4173,9073,8894],{"class":4661},[4173,9075,8941],{"class":4665},[4173,9077,9078],{"class":4669}," \"linux\"",[4173,9080,8947],{"class":4669},[414,9082,9083],{},"Rekursive Suche",[4647,9085,9087],{"className":4649,"code":9086,"language":4651,"meta":269,"style":269},"grep -r \"main\" .\n\n",[4653,9088,9089],{"__ignoreMap":269},[4173,9090,9091,9093,9096,9099],{"class":4657,"line":4658},[4173,9092,8894],{"class":4661},[4173,9094,9095],{"class":4665}," -r",[4173,9097,9098],{"class":4669}," \"main\"",[4173,9100,9101],{"class":4669}," .\n",[414,9103,9104],{},"Nur Dateinamen anzeigen",[4647,9106,9108],{"className":4649,"code":9107,"language":4651,"meta":269,"style":269},"grep -rl \"TODO\" .\n\n",[4653,9109,9110],{"__ignoreMap":269},[4173,9111,9112,9114,9117,9120],{"class":4657,"line":4658},[4173,9113,8894],{"class":4661},[4173,9115,9116],{"class":4665}," -rl",[4173,9118,9119],{"class":4669}," \"TODO\"",[4173,9121,9101],{"class":4669},[16,9123,9125],{"id":9124},"_92-sed","9.2. sed",[414,9127,9128,9130,9132,9133,9136],{},[42,9129,8861],{},[7135,9131],{},"\nStream Editor zum ",[42,9134,9135],{},"Bearbeiten von Textströmen"," (Ersetzen, Löschen, Einfügen).",[414,9138,9139],{},[42,9140,8869],{},[21,9142,9143,9146,9149],{},[24,9144,9145],{},"Text ersetzen",[24,9147,9148],{},"bestimmte Zeilen löschen",[24,9150,9151],{},"Dateien automatisch bearbeiten",[414,9153,9154],{},[42,9155,7941],{},[4647,9157,9159],{"className":4649,"code":9158,"language":4651,"meta":269,"style":269},"sed [OPTIONEN] 'BEFEHL' DATEI\n\n",[4653,9160,9161],{"__ignoreMap":269},[4173,9162,9163,9166,9169,9172],{"class":4657,"line":4658},[4173,9164,9165],{"class":4661},"sed",[4173,9167,9168],{"class":4784}," [OPTIONEN] ",[4173,9170,9171],{"class":4669},"'BEFEHL'",[4173,9173,9174],{"class":4784}," DATEI\n",[414,9176,9177],{},[42,9178,8902],{},[4647,9180,9182],{"className":4649,"code":9181,"language":4651,"meta":269,"style":269},"sed 's\u002Falt\u002Fneu\u002F' datei.txt\n\n",[4653,9183,9184],{"__ignoreMap":269},[4173,9185,9186,9188,9191],{"class":4657,"line":4658},[4173,9187,9165],{"class":4661},[4173,9189,9190],{"class":4669}," 's\u002Falt\u002Fneu\u002F'",[4173,9192,8947],{"class":4669},[470,9194,8953],{"id":9195},"wichtige-optionen-1",[765,9197,9198,9210],{},[768,9199,9200],{},[771,9201,9202,9206],{},[774,9203,9204],{},[42,9205,8964],{},[774,9207,9208],{},[42,9209,6733],{},[787,9211,9212,9220,9227,9234],{},[771,9213,9214,9217],{},[792,9215,9216],{},"-e",[792,9218,9219],{},"mehrere Befehle",[771,9221,9222,9224],{},[792,9223,8991],{},[792,9225,9226],{},"keine automatische Ausgabe",[771,9228,9229,9231],{},[792,9230,8975],{},[792,9232,9233],{},"Datei direkt ändern (in-place)",[771,9235,9236,9238],{},[792,9237,6103],{},[792,9239,9240],{},"erweitertes Regex",[470,9242,9244],{"id":9243},"häufige-befehle","Häufige Befehle",[475,9246,9248],{"id":9247},"ersetzen","Ersetzen",[4647,9250,9251],{"className":4649,"code":9181,"language":4651,"meta":269,"style":269},[4653,9252,9253],{"__ignoreMap":269},[4173,9254,9255,9257,9259],{"class":4657,"line":4658},[4173,9256,9165],{"class":4661},[4173,9258,9190],{"class":4669},[4173,9260,8947],{"class":4669},[414,9262,9263],{},"Nur erstes Vorkommen pro Zeile.",[475,9265,9267],{"id":9266},"alle-vorkommen-ersetzen","Alle Vorkommen ersetzen",[4647,9269,9271],{"className":4649,"code":9270,"language":4651,"meta":269,"style":269},"sed 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n",[4653,9272,9273],{"__ignoreMap":269},[4173,9274,9275,9277,9280],{"class":4657,"line":4658},[4173,9276,9165],{"class":4661},[4173,9278,9279],{"class":4669}," 's\u002Falt\u002Fneu\u002Fg'",[4173,9281,8947],{"class":4669},[475,9283,9285],{"id":9284},"direkt-datei-ändern","Direkt Datei ändern",[4647,9287,9289],{"className":4649,"code":9288,"language":4651,"meta":269,"style":269},"sed -i 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n",[4653,9290,9291],{"__ignoreMap":269},[4173,9292,9293,9295,9297,9299],{"class":4657,"line":4658},[4173,9294,9165],{"class":4661},[4173,9296,8941],{"class":4665},[4173,9298,9279],{"class":4669},[4173,9300,8947],{"class":4669},[475,9302,9304],{"id":9303},"zeilen-löschen","Zeilen löschen",[414,9306,9307],{},"Zeile löschen",[4647,9309,9311],{"className":4649,"code":9310,"language":4651,"meta":269,"style":269},"sed '3d' datei.txt\n\n",[4653,9312,9313],{"__ignoreMap":269},[4173,9314,9315,9317,9320],{"class":4657,"line":4658},[4173,9316,9165],{"class":4661},[4173,9318,9319],{"class":4669}," '3d'",[4173,9321,8947],{"class":4669},[475,9323,9325],{"id":9324},"zeilenbereich-löschen","Zeilenbereich löschen",[4647,9327,9329],{"className":4649,"code":9328,"language":4651,"meta":269,"style":269},"sed '3,5d' datei.txt\n\n",[4653,9330,9331],{"__ignoreMap":269},[4173,9332,9333,9335,9338],{"class":4657,"line":4658},[4173,9334,9165],{"class":4661},[4173,9336,9337],{"class":4669}," '3,5d'",[4173,9339,8947],{"class":4669},[475,9341,9343],{"id":9342},"zeilen-mit-pattern-löschen","Zeilen mit Pattern löschen",[4647,9345,9347],{"className":4649,"code":9346,"language":4651,"meta":269,"style":269},"sed '\u002Ferror\u002Fd' datei.txt\n\n",[4653,9348,9349],{"__ignoreMap":269},[4173,9350,9351,9353,9356],{"class":4657,"line":4658},[4173,9352,9165],{"class":4661},[4173,9354,9355],{"class":4669}," '\u002Ferror\u002Fd'",[4173,9357,8947],{"class":4669},[475,9359,9361],{"id":9360},"zeilen-anzeigen","Zeilen anzeigen",[414,9363,9364],{},"Nur bestimmte Zeile",[4647,9366,9368],{"className":4649,"code":9367,"language":4651,"meta":269,"style":269},"sed -n '5p' datei.txt\n\n",[4653,9369,9370],{"__ignoreMap":269},[4173,9371,9372,9374,9377,9380],{"class":4657,"line":4658},[4173,9373,9165],{"class":4661},[4173,9375,9376],{"class":4665}," -n",[4173,9378,9379],{"class":4669}," '5p'",[4173,9381,8947],{"class":4669},[475,9383,9385],{"id":9384},"text-einfügen","Text einfügen",[414,9387,9388],{},"Vor Zeile einfügen",[4647,9390,9392],{"className":4649,"code":9391,"language":4651,"meta":269,"style":269},"sed '3i TEXT' datei.txt\n\n",[4653,9393,9394],{"__ignoreMap":269},[4173,9395,9396,9398,9401],{"class":4657,"line":4658},[4173,9397,9165],{"class":4661},[4173,9399,9400],{"class":4669}," '3i TEXT'",[4173,9402,8947],{"class":4669},[414,9404,9405],{},"Nach Zeile einfügen",[4647,9407,9409],{"className":4649,"code":9408,"language":4651,"meta":269,"style":269},"sed '3a TEXT' datei.txt\n\n",[4653,9410,9411],{"__ignoreMap":269},[4173,9412,9413,9415,9418],{"class":4657,"line":4658},[4173,9414,9165],{"class":4661},[4173,9416,9417],{"class":4669}," '3a TEXT'",[4173,9419,8947],{"class":4669},[16,9421,9423],{"id":9422},"_93-find","9.3. find",[414,9425,9426,9428,9430],{},[42,9427,8861],{},[7135,9429],{},"\nDateien und Verzeichnisse im Dateisystem suchen.",[414,9432,9433],{},[42,9434,8869],{},[21,9436,9437,9440,9443],{},[24,9438,9439],{},"Dateien nach Namen finden",[24,9441,9442],{},"Dateien nach Größe oder Datum suchen",[24,9444,9445],{},"Aktionen auf Dateien ausführen",[414,9447,9448],{},[42,9449,7941],{},[4647,9451,9453],{"className":4649,"code":9452,"language":4651,"meta":269,"style":269},"find PFAD [OPTIONEN] [AKTION]\n\n",[4653,9454,9455],{"__ignoreMap":269},[4173,9456,9457,9460,9463],{"class":4657,"line":4658},[4173,9458,9459],{"class":4661},"find",[4173,9461,9462],{"class":4669}," PFAD",[4173,9464,9465],{"class":4784}," [OPTIONEN] [AKTION]\n",[414,9467,9468],{},[42,9469,8902],{},[4647,9471,9473],{"className":4649,"code":9472,"language":4651,"meta":269,"style":269},"find . -name \"test.txt\"\nfind \u002Fhome -type f\n\n",[4653,9474,9475,9488],{"__ignoreMap":269},[4173,9476,9477,9479,9482,9485],{"class":4657,"line":4658},[4173,9478,9459],{"class":4661},[4173,9480,9481],{"class":4669}," .",[4173,9483,9484],{"class":4665}," -name",[4173,9486,9487],{"class":4669}," \"test.txt\"\n",[4173,9489,9490,9492,9495,9498],{"class":4657,"line":270},[4173,9491,9459],{"class":4661},[4173,9493,9494],{"class":4669}," \u002Fhome",[4173,9496,9497],{"class":4665}," -type",[4173,9499,6872],{"class":4669},[470,9501,8953],{"id":9502},"wichtige-optionen-2",[765,9504,9505,9517],{},[768,9506,9507],{},[771,9508,9509,9513],{},[774,9510,9511],{},[42,9512,8964],{},[774,9514,9515],{},[42,9516,6733],{},[787,9518,9519,9527,9535,9543,9551,9559,9567,9575,9583],{},[771,9520,9521,9524],{},[792,9522,9523],{},"-name",[792,9525,9526],{},"Name der Datei",[771,9528,9529,9532],{},[792,9530,9531],{},"-iname",[792,9533,9534],{},"Name ohne Groß-\u002FKleinschreibung",[771,9536,9537,9540],{},[792,9538,9539],{},"-type",[792,9541,9542],{},"Dateityp",[771,9544,9545,9548],{},[792,9546,9547],{},"-size",[792,9549,9550],{},"Dateigröße",[771,9552,9553,9556],{},[792,9554,9555],{},"-mtime",[792,9557,9558],{},"Änderungszeit",[771,9560,9561,9564],{},[792,9562,9563],{},"-user",[792,9565,9566],{},"Besitzer",[771,9568,9569,9572],{},[792,9570,9571],{},"-perm",[792,9573,9574],{},"Rechte",[771,9576,9577,9580],{},[792,9578,9579],{},"-maxdepth",[792,9581,9582],{},"maximale Tiefe",[771,9584,9585,9588],{},[792,9586,9587],{},"-mindepth",[792,9589,9590],{},"minimale Tiefe",[470,9592,9594],{"id":9593},"dateitypen","Dateitypen",[765,9596,9597,9609],{},[768,9598,9599],{},[771,9600,9601,9605],{},[774,9602,9603],{},[42,9604,6723],{},[774,9606,9607],{},[42,9608,6733],{},[787,9610,9611,9619,9627],{},[771,9612,9613,9616],{},[792,9614,9615],{},"-type f",[792,9617,9618],{},"normale Datei",[771,9620,9621,9624],{},[792,9622,9623],{},"-type d",[792,9625,9626],{},"Verzeichnis",[771,9628,9629,9632],{},[792,9630,9631],{},"-type l",[792,9633,9634],{},"symbolischer Link",[470,9636,9638],{"id":9637},"größe","Größe",[765,9640,9641,9653],{},[768,9642,9643],{},[771,9644,9645,9649],{},[774,9646,9647],{},[42,9648,763],{},[774,9650,9651],{},[42,9652,6733],{},[787,9654,9655,9663,9671],{},[771,9656,9657,9660],{},[792,9658,9659],{},"-size +10M",[792,9661,9662],{},"größer als 10 MB",[771,9664,9665,9668],{},[792,9666,9667],{},"-size -1M",[792,9669,9670],{},"kleiner als 1 MB",[771,9672,9673,9676],{},[792,9674,9675],{},"-size 100k",[792,9677,9678],{},"genau 100 KB",[470,9680,9682],{"id":9681},"zeit","Zeit",[765,9684,9685,9697],{},[768,9686,9687],{},[771,9688,9689,9693],{},[774,9690,9691],{},[42,9692,8964],{},[774,9694,9695],{},[42,9696,6733],{},[787,9698,9699,9706,9714],{},[771,9700,9701,9703],{},[792,9702,9555],{},[792,9704,9705],{},"Tage seit Änderung",[771,9707,9708,9711],{},[792,9709,9710],{},"-atime",[792,9712,9713],{},"letzter Zugriff",[771,9715,9716,9719],{},[792,9717,9718],{},"-ctime",[792,9720,9721],{},"Statusänderung",[414,9723,8190],{},[4647,9725,9727],{"className":4649,"code":9726,"language":4651,"meta":269,"style":269},"find . -mtime -7\n\n",[4653,9728,9729],{"__ignoreMap":269},[4173,9730,9731,9733,9735,9738],{"class":4657,"line":4658},[4173,9732,9459],{"class":4661},[4173,9734,9481],{"class":4669},[4173,9736,9737],{"class":4665}," -mtime",[4173,9739,9740],{"class":4665}," -7\n",[414,9742,9743],{},"Dateien der letzten 7 Tage.",[470,9745,9747],{"id":9746},"aktionen","Aktionen",[414,9749,9750],{},"Dateien löschen",[4647,9752,9754],{"className":4649,"code":9753,"language":4651,"meta":269,"style":269},"find . -name \"*.tmp\" -delete\n\n",[4653,9755,9756],{"__ignoreMap":269},[4173,9757,9758,9760,9762,9764,9767],{"class":4657,"line":4658},[4173,9759,9459],{"class":4661},[4173,9761,9481],{"class":4669},[4173,9763,9484],{"class":4665},[4173,9765,9766],{"class":4669}," \"*.tmp\"",[4173,9768,9769],{"class":4665}," -delete\n",[414,9771,9772],{},"Befehl ausführen",[4647,9774,9776],{"className":4649,"code":9775,"language":4651,"meta":269,"style":269},"find . -name \"*.log\" -exec rm {} \\;\n\n",[4653,9777,9778],{"__ignoreMap":269},[4173,9779,9780,9782,9784,9786,9789,9792,9795,9798],{"class":4657,"line":4658},[4173,9781,9459],{"class":4661},[4173,9783,9481],{"class":4669},[4173,9785,9484],{"class":4665},[4173,9787,9788],{"class":4669}," \"*.log\"",[4173,9790,9791],{"class":4665}," -exec",[4173,9793,9794],{"class":4669}," rm",[4173,9796,9797],{"class":4669}," {}",[4173,9799,9800],{"class":4665}," \\;\n",[16,9802,9804],{"id":9803},"_94-awk","9.4. awk",[414,9806,9807,9809,9811,9812,9815],{},[42,9808,8861],{},[7135,9810],{},"\nWerkzeug zur ",[42,9813,9814],{},"Textanalyse und Datenverarbeitung"," (besonders Tabellen).",[414,9817,9818],{},[42,9819,8869],{},[21,9821,9822,9825,9828],{},[24,9823,9824],{},"Spalten ausgeben",[24,9826,9827],{},"Daten filtern",[24,9829,9830],{},"Berechnungen durchführen",[414,9832,9833],{},[42,9834,7941],{},[4647,9836,9838],{"className":4649,"code":9837,"language":4651,"meta":269,"style":269},"awk 'BEDINGUNG {AKTION}' DATEI\n\n",[4653,9839,9840],{"__ignoreMap":269},[4173,9841,9842,9845,9848],{"class":4657,"line":4658},[4173,9843,9844],{"class":4661},"awk",[4173,9846,9847],{"class":4669}," 'BEDINGUNG {AKTION}'",[4173,9849,9174],{"class":4669},[470,9851,9853],{"id":9852},"grundprinzip","Grundprinzip",[414,9855,9856],{},"Jede Zeile wird automatisch verarbeitet.",[414,9858,9859,9860],{},"Standard-Trennzeichen: ",[42,9861,9862],{},"Whitespace",[414,9864,9865],{},"Spalten:",[765,9867,9868,9881],{},[768,9869,9870],{},[771,9871,9872,9877],{},[774,9873,9874],{},[42,9875,9876],{},"Variable",[774,9878,9879],{},[42,9880,6733],{},[787,9882,9883,9891,9899,9906,9914],{},[771,9884,9885,9888],{},[792,9886,9887],{},"$1",[792,9889,9890],{},"erste Spalte",[771,9892,9893,9896],{},[792,9894,9895],{},"$2",[792,9897,9898],{},"zweite Spalte",[771,9900,9901,9903],{},[792,9902,6129],{},[792,9904,9905],{},"ganze Zeile",[771,9907,9908,9911],{},[792,9909,9910],{},"NF",[792,9912,9913],{},"Anzahl Felder",[771,9915,9916,9919],{},[792,9917,9918],{},"NR",[792,9920,9921],{},"Zeilennummer",[470,9923,9925],{"id":9924},"beispiele","Beispiele",[475,9927,9929],{"id":9928},"erste-spalte-anzeigen","Erste Spalte anzeigen",[4647,9931,9933],{"className":4649,"code":9932,"language":4651,"meta":269,"style":269},"awk '{print $1}' datei.txt\n\n",[4653,9934,9935],{"__ignoreMap":269},[4173,9936,9937,9939,9942],{"class":4657,"line":4658},[4173,9938,9844],{"class":4661},[4173,9940,9941],{"class":4669}," '{print $1}'",[4173,9943,8947],{"class":4669},[475,9945,9947],{"id":9946},"mehrere-spalten","Mehrere Spalten",[4647,9949,9951],{"className":4649,"code":9950,"language":4651,"meta":269,"style":269},"awk '{print $1, $3}' datei.txt\n\n",[4653,9952,9953],{"__ignoreMap":269},[4173,9954,9955,9957,9960],{"class":4657,"line":4658},[4173,9956,9844],{"class":4661},[4173,9958,9959],{"class":4669}," '{print $1, $3}'",[4173,9961,8947],{"class":4669},[470,9963,9965],{"id":9964},"bedingungen","Bedingungen",[414,9967,9968],{},"Nur Zeilen mit Bedingung",[4647,9970,9972],{"className":4649,"code":9971,"language":4651,"meta":269,"style":269},"awk '$3 > 100 {print $1}' daten.txt\n\n",[4653,9973,9974],{"__ignoreMap":269},[4173,9975,9976,9978,9981],{"class":4657,"line":4658},[4173,9977,9844],{"class":4661},[4173,9979,9980],{"class":4669}," '$3 > 100 {print $1}'",[4173,9982,9983],{"class":4669}," daten.txt\n",[470,9985,9987],{"id":9986},"trennzeichen-ändern","Trennzeichen ändern",[4647,9989,9991],{"className":4649,"code":9990,"language":4651,"meta":269,"style":269},"awk -F \":\" '{print $1}' \u002Fetc\u002Fpasswd\n\n",[4653,9992,9993],{"__ignoreMap":269},[4173,9994,9995,9997,10000,10003,10005],{"class":4657,"line":4658},[4173,9996,9844],{"class":4661},[4173,9998,9999],{"class":4665}," -F",[4173,10001,10002],{"class":4669}," \":\"",[4173,10004,9941],{"class":4669},[4173,10006,10007],{"class":4669}," \u002Fetc\u002Fpasswd\n",[470,10009,10011],{"id":10010},"berechnungen","Berechnungen",[414,10013,10014],{},"Summe berechnen",[4647,10016,10018],{"className":4649,"code":10017,"language":4651,"meta":269,"style":269},"awk '{sum += $1} END {print sum}' zahlen.txt\n\n",[4653,10019,10020],{"__ignoreMap":269},[4173,10021,10022,10024,10027],{"class":4657,"line":4658},[4173,10023,9844],{"class":4661},[4173,10025,10026],{"class":4669}," '{sum += $1} END {print sum}'",[4173,10028,10029],{"class":4669}," zahlen.txt\n",[414,10031,10032],{},"Durchschnitt",[4647,10034,10036],{"className":4649,"code":10035,"language":4651,"meta":269,"style":269},"awk '{sum += $1} END {print sum\u002FNR}' zahlen.txt\n\n",[4653,10037,10038],{"__ignoreMap":269},[4173,10039,10040,10042,10045],{"class":4657,"line":4658},[4173,10041,9844],{"class":4661},[4173,10043,10044],{"class":4669}," '{sum += $1} END {print sum\u002FNR}'",[4173,10046,10029],{"class":4669},[16,10048,10050],{"id":10049},"wann-benutzt-man-welches-tool","Wann benutzt man welches Tool?",[765,10052,10053,10066],{},[768,10054,10055],{},[771,10056,10057,10062],{},[774,10058,10059],{},[42,10060,10061],{},"Tool",[774,10063,10064],{},[42,10065,854],{},[787,10067,10068,10075,10082,10089],{},[771,10069,10070,10072],{},[792,10071,8894],{},[792,10073,10074],{},"Text suchen",[771,10076,10077,10079],{},[792,10078,9165],{},[792,10080,10081],{},"Text automatisch bearbeiten",[771,10083,10084,10086],{},[792,10085,9459],{},[792,10087,10088],{},"Dateien im Dateisystem suchen",[771,10090,10091,10093],{},[792,10092,9844],{},[792,10094,10095],{},"Daten analysieren und Spalten verarbeiten",[16,10097,10099],{"id":10098},"typische-kombinationen","Typische Kombinationen",[414,10101,10102],{},"Mit Pipe:",[4647,10104,10106],{"className":4649,"code":10105,"language":4651,"meta":269,"style":269},"cat logfile | grep error\n\nps aux | grep firefox\n\nfind . -name \"*.log\" | grep error\n\n",[4653,10107,10108,10123,10127,10139,10143],{"__ignoreMap":269},[4173,10109,10110,10113,10116,10118,10120],{"class":4657,"line":4658},[4173,10111,10112],{"class":4661},"cat",[4173,10114,10115],{"class":4669}," logfile",[4173,10117,8928],{"class":4788},[4173,10119,8931],{"class":4661},[4173,10121,10122],{"class":4669}," error\n",[4173,10124,10125],{"class":4657,"line":270},[4173,10126,4761],{"emptyLinePlaceholder":4760},[4173,10128,10129,10131,10133,10135,10137],{"class":4657,"line":1263},[4173,10130,8922],{"class":4661},[4173,10132,8925],{"class":4669},[4173,10134,8928],{"class":4788},[4173,10136,8931],{"class":4661},[4173,10138,8934],{"class":4669},[4173,10140,10141],{"class":4657,"line":4770},[4173,10142,4761],{"emptyLinePlaceholder":4760},[4173,10144,10145,10147,10149,10151,10153,10155,10157],{"class":4657,"line":4775},[4173,10146,9459],{"class":4661},[4173,10148,9481],{"class":4669},[4173,10150,9484],{"class":4665},[4173,10152,9788],{"class":4669},[4173,10154,8928],{"class":4788},[4173,10156,8931],{"class":4661},[4173,10158,10122],{"class":4669},[16,10160,10162],{"id":10161},"kurzvergleich","Kurzvergleich",[765,10164,10165,10178],{},[768,10166,10167],{},[771,10168,10169,10173],{},[774,10170,10171],{},[42,10172,10061],{},[774,10174,10175],{},[42,10176,10177],{},"Stärke",[787,10179,10180,10187,10194,10201],{},[771,10181,10182,10184],{},[792,10183,8894],{},[792,10185,10186],{},"schnelles Suchen",[771,10188,10189,10191],{},[792,10190,9165],{},[792,10192,10193],{},"automatisches Bearbeiten",[771,10195,10196,10198],{},[792,10197,9459],{},[792,10199,10200],{},"Dateisystem durchsuchen",[771,10202,10203,10205],{},[792,10204,9844],{},[792,10206,10207],{},"strukturierte Daten analysieren",[11,10209,10211,10212,10215],{"id":10210},"anhang-juli-nützlich","Anhang “",[42,10213,10214],{},"Juli"," Nützlich”",[16,10217,10219],{"id":10218},"analysesh","Analyse.sh",[4647,10221,10223],{"className":4649,"code":10222,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n",[4653,10224,10225],{"__ignoreMap":269},[4173,10226,10227],{"class":4657,"line":4658},[4173,10228,6375],{"class":4766},[414,10230,10231,10234],{},[42,10232,10233],{},"anzahl","() {",[4647,10236,10238],{"className":4649,"code":10237,"language":4651,"meta":269,"style":269},"dateien=$(find \"$pfad\" -maxdepth 1 -type f | wc -l)\n\nverzeichnisse=$(find \"$pfad\" -maxdepth 1 -type d | wc -l)\n\necho \"Anzahl Verzeichnisse: $verzeichnisse\"\n\necho \"Anzahl Dateien: $dateien\"\n\n}\n\n",[4653,10239,10240,10280,10284,10318,10322,10334,10338,10350,10354],{"__ignoreMap":269},[4173,10241,10242,10245,10247,10250,10252,10254,10257,10259,10262,10265,10267,10270,10272,10275,10278],{"class":4657,"line":4658},[4173,10243,10244],{"class":4784},"dateien",[4173,10246,6387],{"class":4788},[4173,10248,10249],{"class":4784},"$(",[4173,10251,9459],{"class":4661},[4173,10253,6218],{"class":4669},[4173,10255,10256],{"class":4784},"$pfad",[4173,10258,6207],{"class":4669},[4173,10260,10261],{"class":4665}," -maxdepth",[4173,10263,10264],{"class":4665}," 1",[4173,10266,9497],{"class":4665},[4173,10268,10269],{"class":4669}," f",[4173,10271,8928],{"class":4788},[4173,10273,10274],{"class":4661}," wc",[4173,10276,10277],{"class":4665}," -l",[4173,10279,6402],{"class":4784},[4173,10281,10282],{"class":4657,"line":270},[4173,10283,4761],{"emptyLinePlaceholder":4760},[4173,10285,10286,10289,10291,10293,10295,10297,10299,10301,10303,10305,10307,10310,10312,10314,10316],{"class":4657,"line":1263},[4173,10287,10288],{"class":4784},"verzeichnisse",[4173,10290,6387],{"class":4788},[4173,10292,10249],{"class":4784},[4173,10294,9459],{"class":4661},[4173,10296,6218],{"class":4669},[4173,10298,10256],{"class":4784},[4173,10300,6207],{"class":4669},[4173,10302,10261],{"class":4665},[4173,10304,10264],{"class":4665},[4173,10306,9497],{"class":4665},[4173,10308,10309],{"class":4669}," d",[4173,10311,8928],{"class":4788},[4173,10313,10274],{"class":4661},[4173,10315,10277],{"class":4665},[4173,10317,6402],{"class":4784},[4173,10319,10320],{"class":4657,"line":4770},[4173,10321,4761],{"emptyLinePlaceholder":4760},[4173,10323,10324,10326,10329,10332],{"class":4657,"line":4775},[4173,10325,6309],{"class":4665},[4173,10327,10328],{"class":4669}," \"Anzahl Verzeichnisse: ",[4173,10330,10331],{"class":4784},"$verzeichnisse",[4173,10333,6454],{"class":4669},[4173,10335,10336],{"class":4657,"line":6320},[4173,10337,4761],{"emptyLinePlaceholder":4760},[4173,10339,10340,10342,10345,10348],{"class":4657,"line":6325},[4173,10341,6309],{"class":4665},[4173,10343,10344],{"class":4669}," \"Anzahl Dateien: ",[4173,10346,10347],{"class":4784},"$dateien",[4173,10349,6454],{"class":4669},[4173,10351,10352],{"class":4657,"line":6343},[4173,10353,4761],{"emptyLinePlaceholder":4760},[4173,10355,10356],{"class":4657,"line":6348},[4173,10357,7090],{"class":4784},[414,10359,10360,10234],{},[42,10361,10362],{},"groesse",[11,10364,10366],{"id":10365},"stat-c-zeigt-dateiinformationen-an","stat -c zeigt Dateiinformationen an,",[11,10368,10370],{"id":10369},"s-gibt-die-dateigröße-in-bytes-zurück-n-den-dateinamen","%s gibt die Dateigröße in Bytes zurück, %n den Dateinamen",[4647,10372,10374],{"className":4649,"code":10373,"language":4651,"meta":269,"style":269},"biggest=$(stat -c \"%s %n\" * | sort -n | tail -n 1)\n\nsmallest=$(stat -c \"%s %n\" * | sort -n | head -n 1)\n\necho \"Kleinste Datei: $smallest\"\n\necho \"Größte Datei: $biggest\"\n\n}\n\n",[4653,10375,10376,10414,10418,10452,10456,10468,10472,10484,10488],{"__ignoreMap":269},[4173,10377,10378,10381,10383,10385,10388,10391,10394,10396,10398,10401,10403,10405,10408,10410,10412],{"class":4657,"line":4658},[4173,10379,10380],{"class":4784},"biggest",[4173,10382,6387],{"class":4788},[4173,10384,10249],{"class":4784},[4173,10386,10387],{"class":4665},"stat",[4173,10389,10390],{"class":4665}," -c",[4173,10392,10393],{"class":4669}," \"%s %n\"",[4173,10395,7078],{"class":4665},[4173,10397,8928],{"class":4788},[4173,10399,10400],{"class":4661}," sort",[4173,10402,9376],{"class":4665},[4173,10404,8928],{"class":4788},[4173,10406,10407],{"class":4661}," tail",[4173,10409,9376],{"class":4665},[4173,10411,10264],{"class":4665},[4173,10413,6402],{"class":4784},[4173,10415,10416],{"class":4657,"line":270},[4173,10417,4761],{"emptyLinePlaceholder":4760},[4173,10419,10420,10423,10425,10427,10429,10431,10433,10435,10437,10439,10441,10443,10446,10448,10450],{"class":4657,"line":1263},[4173,10421,10422],{"class":4784},"smallest",[4173,10424,6387],{"class":4788},[4173,10426,10249],{"class":4784},[4173,10428,10387],{"class":4665},[4173,10430,10390],{"class":4665},[4173,10432,10393],{"class":4669},[4173,10434,7078],{"class":4665},[4173,10436,8928],{"class":4788},[4173,10438,10400],{"class":4661},[4173,10440,9376],{"class":4665},[4173,10442,8928],{"class":4788},[4173,10444,10445],{"class":4661}," head",[4173,10447,9376],{"class":4665},[4173,10449,10264],{"class":4665},[4173,10451,6402],{"class":4784},[4173,10453,10454],{"class":4657,"line":4770},[4173,10455,4761],{"emptyLinePlaceholder":4760},[4173,10457,10458,10460,10463,10466],{"class":4657,"line":4775},[4173,10459,6309],{"class":4665},[4173,10461,10462],{"class":4669}," \"Kleinste Datei: ",[4173,10464,10465],{"class":4784},"$smallest",[4173,10467,6454],{"class":4669},[4173,10469,10470],{"class":4657,"line":6320},[4173,10471,4761],{"emptyLinePlaceholder":4760},[4173,10473,10474,10476,10479,10482],{"class":4657,"line":6325},[4173,10475,6309],{"class":4665},[4173,10477,10478],{"class":4669}," \"Größte Datei: ",[4173,10480,10481],{"class":4784},"$biggest",[4173,10483,6454],{"class":4669},[4173,10485,10486],{"class":4657,"line":6343},[4173,10487,4761],{"emptyLinePlaceholder":4760},[4173,10489,10490],{"class":4657,"line":6348},[4173,10491,7090],{"class":4784},[414,10493,10494,10234],{},[42,10495,10496],{},"kategorie",[4647,10498,10500],{"className":4649,"code":10499,"language":4651,"meta":269,"style":269},"klein=0\n\nmittel=0\n\ngross=0\n\nfor datei in \"$pfad\"\u002F*\n\ndo\n\nif [ -f \"$datei\" ]\n\nthen\n\nsize=$(stat -c %s \"$datei\")\n\nif [ \"$size\" -lt 102400 ]\n\nthen\n\n((klein++))\n\nelif [ \"$size\" -le 1048576 ]\n\nthen\n\n((mittel++))\n\nelse\n\n((gross++))\n\nfi\n\nfi\n\ndone\n\necho \"kleine Dateien \u003C 100KB: $klein\"\n\necho \"mittlere Dateien \u003C 1MB: $mittel\"\n\necho \"grosse Dateien > 1MB: $gross\"\n\n}\n\nif [ $# != 1 ]\n\nthen\n\necho \"Keine Paramenter übergeben\"\n\nexit 1\n\nfi\n\npfad=\"$1\"\n\nwhile [ \"$auswahl\" != 4 ]\n\ndo\n\necho \" bitte wählen:\"\n\necho \"1) Anzahl der Dateien und Unterverzeichnisse\"\n\necho \"2) Größte und kleinste Datei finden\"\n\necho \"3) Dateien nach größe klassifizieren\"\n\necho \"4) Beenden\"\n\nread auswahl\n\ncase \"$auswahl\" in\n\n",[4653,10501,10502,10512,10516,10525,10529,10538,10542,10557,10561,10565,10569,10587,10591,10595,10599,10623,10627,10647,10652,10657,10662,10674,10679,10700,10705,10710,10715,10725,10730,10735,10740,10750,10755,10760,10765,10770,10775,10780,10785,10798,10803,10816,10821,10834,10839,10844,10849,10865,10870,10875,10880,10888,10893,10902,10907,10912,10917,10931,10936,10957,10962,10967,10972,10980,10985,10993,10998,11006,11011,11019,11024,11032,11037,11046,11051],{"__ignoreMap":269},[4173,10503,10504,10507,10509],{"class":4657,"line":4658},[4173,10505,10506],{"class":4784},"klein",[4173,10508,6387],{"class":4788},[4173,10510,10511],{"class":4669},"0\n",[4173,10513,10514],{"class":4657,"line":270},[4173,10515,4761],{"emptyLinePlaceholder":4760},[4173,10517,10518,10521,10523],{"class":4657,"line":1263},[4173,10519,10520],{"class":4784},"mittel",[4173,10522,6387],{"class":4788},[4173,10524,10511],{"class":4669},[4173,10526,10527],{"class":4657,"line":4770},[4173,10528,4761],{"emptyLinePlaceholder":4760},[4173,10530,10531,10534,10536],{"class":4657,"line":4775},[4173,10532,10533],{"class":4784},"gross",[4173,10535,6387],{"class":4788},[4173,10537,10511],{"class":4669},[4173,10539,10540],{"class":4657,"line":6320},[4173,10541,4761],{"emptyLinePlaceholder":4760},[4173,10543,10544,10546,10548,10550,10552,10554],{"class":4657,"line":6325},[4173,10545,6425],{"class":4788},[4173,10547,6619],{"class":4784},[4173,10549,6431],{"class":4788},[4173,10551,6218],{"class":4669},[4173,10553,10256],{"class":4784},[4173,10555,10556],{"class":4669},"\"\u002F*\n",[4173,10558,10559],{"class":4657,"line":6343},[4173,10560,4761],{"emptyLinePlaceholder":4760},[4173,10562,10563],{"class":4657,"line":6348},[4173,10564,6437],{"class":4788},[4173,10566,10567],{"class":4657,"line":6457},[4173,10568,4761],{"emptyLinePlaceholder":4760},[4173,10570,10571,10573,10575,10578,10580,10582,10584],{"class":4657,"line":6462},[4173,10572,6201],{"class":4788},[4173,10574,6204],{"class":4784},[4173,10576,10577],{"class":4788},"-f",[4173,10579,6218],{"class":4669},[4173,10581,6638],{"class":4784},[4173,10583,6207],{"class":4669},[4173,10585,10586],{"class":4784}," ]\n",[4173,10588,10589],{"class":4657,"line":6468},[4173,10590,4761],{"emptyLinePlaceholder":4760},[4173,10592,10593],{"class":4657,"line":6473},[4173,10594,6229],{"class":4788},[4173,10596,10597],{"class":4657,"line":6479},[4173,10598,4761],{"emptyLinePlaceholder":4760},[4173,10600,10601,10604,10606,10608,10610,10612,10615,10617,10619,10621],{"class":4657,"line":6503},[4173,10602,10603],{"class":4784},"size",[4173,10605,6387],{"class":4788},[4173,10607,10249],{"class":4784},[4173,10609,10387],{"class":4665},[4173,10611,10390],{"class":4665},[4173,10613,10614],{"class":4669}," %s",[4173,10616,6218],{"class":4669},[4173,10618,6638],{"class":4784},[4173,10620,6207],{"class":4669},[4173,10622,6402],{"class":4784},[4173,10624,10625],{"class":4657,"line":6516},[4173,10626,4761],{"emptyLinePlaceholder":4760},[4173,10628,10629,10631,10633,10635,10638,10640,10642,10645],{"class":4657,"line":6971},[4173,10630,6201],{"class":4788},[4173,10632,6204],{"class":4784},[4173,10634,6207],{"class":4669},[4173,10636,10637],{"class":4784},"$size",[4173,10639,6207],{"class":4669},[4173,10641,6215],{"class":4788},[4173,10643,10644],{"class":4665}," 102400",[4173,10646,10586],{"class":4784},[4173,10648,10650],{"class":4657,"line":10649},18,[4173,10651,4761],{"emptyLinePlaceholder":4760},[4173,10653,10655],{"class":4657,"line":10654},19,[4173,10656,6229],{"class":4788},[4173,10658,10660],{"class":4657,"line":10659},20,[4173,10661,4761],{"emptyLinePlaceholder":4760},[4173,10663,10665,10668,10671],{"class":4657,"line":10664},21,[4173,10666,10667],{"class":4784},"((klein",[4173,10669,10670],{"class":4788},"++",[4173,10672,10673],{"class":4784},"))\n",[4173,10675,10677],{"class":4657,"line":10676},22,[4173,10678,4761],{"emptyLinePlaceholder":4760},[4173,10680,10682,10684,10686,10688,10690,10692,10695,10698],{"class":4657,"line":10681},23,[4173,10683,7696],{"class":4788},[4173,10685,6204],{"class":4784},[4173,10687,6207],{"class":4669},[4173,10689,10637],{"class":4784},[4173,10691,6207],{"class":4669},[4173,10693,10694],{"class":4788}," -le",[4173,10696,10697],{"class":4665}," 1048576",[4173,10699,10586],{"class":4784},[4173,10701,10703],{"class":4657,"line":10702},24,[4173,10704,4761],{"emptyLinePlaceholder":4760},[4173,10706,10708],{"class":4657,"line":10707},25,[4173,10709,6229],{"class":4788},[4173,10711,10713],{"class":4657,"line":10712},26,[4173,10714,4761],{"emptyLinePlaceholder":4760},[4173,10716,10718,10721,10723],{"class":4657,"line":10717},27,[4173,10719,10720],{"class":4784},"((mittel",[4173,10722,10670],{"class":4788},[4173,10724,10673],{"class":4784},[4173,10726,10728],{"class":4657,"line":10727},28,[4173,10729,4761],{"emptyLinePlaceholder":4760},[4173,10731,10733],{"class":4657,"line":10732},29,[4173,10734,7657],{"class":4788},[4173,10736,10738],{"class":4657,"line":10737},30,[4173,10739,4761],{"emptyLinePlaceholder":4760},[4173,10741,10743,10746,10748],{"class":4657,"line":10742},31,[4173,10744,10745],{"class":4784},"((gross",[4173,10747,10670],{"class":4788},[4173,10749,10673],{"class":4784},[4173,10751,10753],{"class":4657,"line":10752},32,[4173,10754,4761],{"emptyLinePlaceholder":4760},[4173,10756,10758],{"class":4657,"line":10757},33,[4173,10759,6247],{"class":4788},[4173,10761,10763],{"class":4657,"line":10762},34,[4173,10764,4761],{"emptyLinePlaceholder":4760},[4173,10766,10768],{"class":4657,"line":10767},35,[4173,10769,6247],{"class":4788},[4173,10771,10773],{"class":4657,"line":10772},36,[4173,10774,4761],{"emptyLinePlaceholder":4760},[4173,10776,10778],{"class":4657,"line":10777},37,[4173,10779,6519],{"class":4788},[4173,10781,10783],{"class":4657,"line":10782},38,[4173,10784,4761],{"emptyLinePlaceholder":4760},[4173,10786,10788,10790,10793,10796],{"class":4657,"line":10787},39,[4173,10789,6309],{"class":4665},[4173,10791,10792],{"class":4669}," \"kleine Dateien \u003C 100KB: ",[4173,10794,10795],{"class":4784},"$klein",[4173,10797,6454],{"class":4669},[4173,10799,10801],{"class":4657,"line":10800},40,[4173,10802,4761],{"emptyLinePlaceholder":4760},[4173,10804,10806,10808,10811,10814],{"class":4657,"line":10805},41,[4173,10807,6309],{"class":4665},[4173,10809,10810],{"class":4669}," \"mittlere Dateien \u003C 1MB: ",[4173,10812,10813],{"class":4784},"$mittel",[4173,10815,6454],{"class":4669},[4173,10817,10819],{"class":4657,"line":10818},42,[4173,10820,4761],{"emptyLinePlaceholder":4760},[4173,10822,10824,10826,10829,10832],{"class":4657,"line":10823},43,[4173,10825,6309],{"class":4665},[4173,10827,10828],{"class":4669}," \"grosse Dateien > 1MB: ",[4173,10830,10831],{"class":4784},"$gross",[4173,10833,6454],{"class":4669},[4173,10835,10837],{"class":4657,"line":10836},44,[4173,10838,4761],{"emptyLinePlaceholder":4760},[4173,10840,10842],{"class":4657,"line":10841},45,[4173,10843,7090],{"class":4784},[4173,10845,10847],{"class":4657,"line":10846},46,[4173,10848,4761],{"emptyLinePlaceholder":4760},[4173,10850,10852,10854,10856,10858,10861,10863],{"class":4657,"line":10851},47,[4173,10853,6201],{"class":4788},[4173,10855,6204],{"class":4784},[4173,10857,6141],{"class":4665},[4173,10859,10860],{"class":4788}," !=",[4173,10862,10264],{"class":4665},[4173,10864,10586],{"class":4784},[4173,10866,10868],{"class":4657,"line":10867},48,[4173,10869,4761],{"emptyLinePlaceholder":4760},[4173,10871,10873],{"class":4657,"line":10872},49,[4173,10874,6229],{"class":4788},[4173,10876,10878],{"class":4657,"line":10877},50,[4173,10879,4761],{"emptyLinePlaceholder":4760},[4173,10881,10883,10885],{"class":4657,"line":10882},51,[4173,10884,6309],{"class":4665},[4173,10886,10887],{"class":4669}," \"Keine Paramenter übergeben\"\n",[4173,10889,10891],{"class":4657,"line":10890},52,[4173,10892,4761],{"emptyLinePlaceholder":4760},[4173,10894,10896,10899],{"class":4657,"line":10895},53,[4173,10897,10898],{"class":4665},"exit",[4173,10900,10901],{"class":4665}," 1\n",[4173,10903,10905],{"class":4657,"line":10904},54,[4173,10906,4761],{"emptyLinePlaceholder":4760},[4173,10908,10910],{"class":4657,"line":10909},55,[4173,10911,6247],{"class":4788},[4173,10913,10915],{"class":4657,"line":10914},56,[4173,10916,4761],{"emptyLinePlaceholder":4760},[4173,10918,10920,10923,10925,10927,10929],{"class":4657,"line":10919},57,[4173,10921,10922],{"class":4784},"pfad",[4173,10924,6387],{"class":4788},[4173,10926,6207],{"class":4669},[4173,10928,9887],{"class":4665},[4173,10930,6454],{"class":4669},[4173,10932,10934],{"class":4657,"line":10933},58,[4173,10935,4761],{"emptyLinePlaceholder":4760},[4173,10937,10939,10941,10943,10945,10948,10950,10952,10955],{"class":4657,"line":10938},59,[4173,10940,6694],{"class":4788},[4173,10942,6204],{"class":4784},[4173,10944,6207],{"class":4669},[4173,10946,10947],{"class":4784},"$auswahl",[4173,10949,6207],{"class":4669},[4173,10951,10860],{"class":4788},[4173,10953,10954],{"class":4665}," 4",[4173,10956,10586],{"class":4784},[4173,10958,10960],{"class":4657,"line":10959},60,[4173,10961,4761],{"emptyLinePlaceholder":4760},[4173,10963,10965],{"class":4657,"line":10964},61,[4173,10966,6437],{"class":4788},[4173,10968,10970],{"class":4657,"line":10969},62,[4173,10971,4761],{"emptyLinePlaceholder":4760},[4173,10973,10975,10977],{"class":4657,"line":10974},63,[4173,10976,6309],{"class":4665},[4173,10978,10979],{"class":4669}," \" bitte wählen:\"\n",[4173,10981,10983],{"class":4657,"line":10982},64,[4173,10984,4761],{"emptyLinePlaceholder":4760},[4173,10986,10988,10990],{"class":4657,"line":10987},65,[4173,10989,6309],{"class":4665},[4173,10991,10992],{"class":4669}," \"1) Anzahl der Dateien und Unterverzeichnisse\"\n",[4173,10994,10996],{"class":4657,"line":10995},66,[4173,10997,4761],{"emptyLinePlaceholder":4760},[4173,10999,11001,11003],{"class":4657,"line":11000},67,[4173,11002,6309],{"class":4665},[4173,11004,11005],{"class":4669}," \"2) Größte und kleinste Datei finden\"\n",[4173,11007,11009],{"class":4657,"line":11008},68,[4173,11010,4761],{"emptyLinePlaceholder":4760},[4173,11012,11014,11016],{"class":4657,"line":11013},69,[4173,11015,6309],{"class":4665},[4173,11017,11018],{"class":4669}," \"3) Dateien nach größe klassifizieren\"\n",[4173,11020,11022],{"class":4657,"line":11021},70,[4173,11023,4761],{"emptyLinePlaceholder":4760},[4173,11025,11027,11029],{"class":4657,"line":11026},71,[4173,11028,6309],{"class":4665},[4173,11030,11031],{"class":4669}," \"4) Beenden\"\n",[4173,11033,11035],{"class":4657,"line":11034},72,[4173,11036,4761],{"emptyLinePlaceholder":4760},[4173,11038,11040,11043],{"class":4657,"line":11039},73,[4173,11041,11042],{"class":4665},"read",[4173,11044,11045],{"class":4669}," auswahl\n",[4173,11047,11049],{"class":4657,"line":11048},74,[4173,11050,4761],{"emptyLinePlaceholder":4760},[4173,11052,11054,11056,11058,11060,11062],{"class":4657,"line":11053},75,[4173,11055,6264],{"class":4788},[4173,11057,6218],{"class":4669},[4173,11059,10947],{"class":4784},[4173,11061,6207],{"class":4669},[4173,11063,11064],{"class":4788}," in\n",[318,11066,11067],{},[24,11068],{},[414,11070,10233],{},[414,11072,11073],{},";;",[318,11075,11076],{"start":270},[24,11077],{},[414,11079,10362],{},[414,11081,11073],{},[318,11083,11084],{"start":1263},[24,11085],{},[414,11087,10496],{},[414,11089,11073],{},[318,11091,11092],{"start":4770},[24,11093],{},[4647,11095,11097],{"className":4649,"code":11096,"language":4651,"meta":269,"style":269},"echo \"Programm wird beendet\"\n\nbreak\n\n",[4653,11098,11099,11106,11110],{"__ignoreMap":269},[4173,11100,11101,11103],{"class":4657,"line":4658},[4173,11102,6309],{"class":4665},[4173,11104,11105],{"class":4669}," \"Programm wird beendet\"\n",[4173,11107,11108],{"class":4657,"line":270},[4173,11109,4761],{"emptyLinePlaceholder":4760},[4173,11111,11112],{"class":4657,"line":1263},[4173,11113,11114],{"class":4788},"break\n",[414,11116,11073],{},[414,11118,7027],{},[4647,11120,11122],{"className":4649,"code":11121,"language":4651,"meta":269,"style":269},"echo \"ungueltige Auswahl!\"\n\n",[4653,11123,11124],{"__ignoreMap":269},[4173,11125,11126,11128],{"class":4657,"line":4658},[4173,11127,6309],{"class":4665},[4173,11129,11130],{"class":4669}," \"ungueltige Auswahl!\"\n",[414,11132,11073],{},[414,11134,11135],{},[42,11136,11137],{},"esac",[414,11139,11140],{},[42,11141,6683],{},[16,11143,11145],{"id":11144},"backupsh","Backup.sh",[4647,11147,11149],{"className":4649,"code":11148,"language":4651,"meta":269,"style":269},"#!\u002Fusr\u002Fbin\u002Fenv bash\n\nset -euo pipefail\n\nBACKUP_SRC=(\"$1\")\n\nBACKUP_DEST=\"\u002Fhome\u002Fjuli\u002FSchreibtisch\u002Fbackup\"\n\nRETENTION_DAYS=7\n\nLOGFILE=\"\u002Fhome\u002Fjuli\u002FSchreibtisch\u002Fbackup.log\"\n\nLOCKFILE=\"\u002Ftmp\u002Fbackup.lock\"\n\nDRY_RUN=false\n\n",[4653,11150,11151,11156,11160,11171,11175,11192,11196,11206,11210,11220,11224,11234,11238,11248,11252],{"__ignoreMap":269},[4173,11152,11153],{"class":4657,"line":4658},[4173,11154,11155],{"class":4766},"#!\u002Fusr\u002Fbin\u002Fenv bash\n",[4173,11157,11158],{"class":4657,"line":270},[4173,11159,4761],{"emptyLinePlaceholder":4760},[4173,11161,11162,11165,11168],{"class":4657,"line":1263},[4173,11163,11164],{"class":4665},"set",[4173,11166,11167],{"class":4665}," -euo",[4173,11169,11170],{"class":4669}," pipefail\n",[4173,11172,11173],{"class":4657,"line":4770},[4173,11174,4761],{"emptyLinePlaceholder":4760},[4173,11176,11177,11180,11182,11184,11186,11188,11190],{"class":4657,"line":4775},[4173,11178,11179],{"class":4784},"BACKUP_SRC",[4173,11181,6387],{"class":4788},[4173,11183,6390],{"class":4784},[4173,11185,6207],{"class":4669},[4173,11187,9887],{"class":4665},[4173,11189,6207],{"class":4669},[4173,11191,6402],{"class":4784},[4173,11193,11194],{"class":4657,"line":6320},[4173,11195,4761],{"emptyLinePlaceholder":4760},[4173,11197,11198,11201,11203],{"class":4657,"line":6325},[4173,11199,11200],{"class":4784},"BACKUP_DEST",[4173,11202,6387],{"class":4788},[4173,11204,11205],{"class":4669},"\"\u002Fhome\u002Fjuli\u002FSchreibtisch\u002Fbackup\"\n",[4173,11207,11208],{"class":4657,"line":6343},[4173,11209,4761],{"emptyLinePlaceholder":4760},[4173,11211,11212,11215,11217],{"class":4657,"line":6348},[4173,11213,11214],{"class":4784},"RETENTION_DAYS",[4173,11216,6387],{"class":4788},[4173,11218,11219],{"class":4669},"7\n",[4173,11221,11222],{"class":4657,"line":6457},[4173,11223,4761],{"emptyLinePlaceholder":4760},[4173,11225,11226,11229,11231],{"class":4657,"line":6462},[4173,11227,11228],{"class":4784},"LOGFILE",[4173,11230,6387],{"class":4788},[4173,11232,11233],{"class":4669},"\"\u002Fhome\u002Fjuli\u002FSchreibtisch\u002Fbackup.log\"\n",[4173,11235,11236],{"class":4657,"line":6468},[4173,11237,4761],{"emptyLinePlaceholder":4760},[4173,11239,11240,11243,11245],{"class":4657,"line":6473},[4173,11241,11242],{"class":4784},"LOCKFILE",[4173,11244,6387],{"class":4788},[4173,11246,11247],{"class":4669},"\"\u002Ftmp\u002Fbackup.lock\"\n",[4173,11249,11250],{"class":4657,"line":6479},[4173,11251,4761],{"emptyLinePlaceholder":4760},[4173,11253,11254,11257,11259],{"class":4657,"line":6503},[4173,11255,11256],{"class":4784},"DRY_RUN",[4173,11258,6387],{"class":4788},[4173,11260,11261],{"class":4669},"false\n",[414,11263,11264,10234],{},[42,11265,11266],{},"log",[11,11268,11270],{"id":11269},"tee-macht-es-möglich-die-ausgabe-sowohl-auf-der-konsole","Tee macht es möglich, die Ausgabe sowohl auf der Konsole",[11,11272,11274],{"id":11273},"als-auch-in-einer-logdatei-zu-speichern","als auch in einer Logdatei zu speichern",[4647,11276,11278],{"className":4649,"code":11277,"language":4651,"meta":269,"style":269},"echo \"$(date '+%F %T') $1\" | tee -a \"$LOGFILE\"\n\n}\n\n",[4653,11279,11280,11312,11316],{"__ignoreMap":269},[4173,11281,11282,11284,11287,11290,11293,11295,11297,11299,11302,11305,11307,11310],{"class":4657,"line":4658},[4173,11283,6309],{"class":4665},[4173,11285,11286],{"class":4669}," \"$(",[4173,11288,11289],{"class":4661},"date",[4173,11291,11292],{"class":4669}," '+%F %T') ",[4173,11294,9887],{"class":4665},[4173,11296,6207],{"class":4669},[4173,11298,8928],{"class":4788},[4173,11300,11301],{"class":4661}," tee",[4173,11303,11304],{"class":4665}," -a",[4173,11306,6218],{"class":4669},[4173,11308,11309],{"class":4784},"$LOGFILE",[4173,11311,6454],{"class":4669},[4173,11313,11314],{"class":4657,"line":270},[4173,11315,4761],{"emptyLinePlaceholder":4760},[4173,11317,11318],{"class":4657,"line":1263},[4173,11319,7090],{"class":4784},[414,11321,11322,10234],{},[42,11323,11324],{},"cleanup",[4647,11326,11328],{"className":4649,"code":11327,"language":4651,"meta":269,"style":269},"rm -f \"$LOCKFILE\"\n\n}\n\n# trap fängt Signale ab, in diesem Fall EXIT, und führt die Funktion cleanup aus,\n\n# um sicherzustellen, dass die Lockdatei entfernt wird, wenn das Skript beendet wird,\n\n# egal ob es erfolgreich war oder durch einen Fehler unterbrochen wurde.\n\ntrap cleanup EXIT\n\n[[ -f \"$LOCKFILE\" ]] && { echo \"Already running\"; exit 1; }\n\ntouch \"$LOCKFILE\"\n\n# $@ enthält alle Argumente, die an das Skript übergeben wurden.\n\nfor arg in \"$@\"; do\n\n[[ \"$arg\" == \"--dry-run\" ]] && DRY_RUN=true\n\ndone\n\nTIMESTAMP=$(date +%F_%H-%M-%S)\n\nTARGET=\"$BACKUP_DEST\u002Fbackup_$TIMESTAMP.tar.gz\"\n\nlog \"Starting backup...\"\n\nif ! $DRY_RUN; then\n\ntar -czf \"$TARGET\" \"${BACKUP_SRC[@]}\"\n\nelse\n\nlog \"Dry run: tar -czf $TARGET ${BACKUP_SRC[*]}\"\n\nfi\n\nlog \"Cleaning old backups...\"\n\n# find sucht nach Dateien im Backup-Verzeichnis,\n\n# die älter als die angegebene Anzahl von Tagen sind und löscht sie,\n\n# um Speicherplatz freizugeben und die Anzahl der Backups zu begrenzen.\n\nfind \"$BACKUP_DEST\" -type f -mtime +$RETENTION_DAYS -name \"*.tar.gz\" -delete\n\nlog \"Backup finished.\"\n\n",[4653,11329,11330,11345,11349,11353,11357,11362,11366,11371,11375,11380,11384,11395,11399,11429,11433,11444,11448,11453,11457,11477,11481,11506,11510,11514,11518,11534,11538,11559,11563,11570,11574,11586,11590,11619,11623,11627,11631,11651,11655,11659,11663,11670,11674,11679,11683,11688,11692,11697,11701,11730,11734],{"__ignoreMap":269},[4173,11331,11332,11335,11338,11340,11343],{"class":4657,"line":4658},[4173,11333,11334],{"class":4661},"rm",[4173,11336,11337],{"class":4665}," -f",[4173,11339,6218],{"class":4669},[4173,11341,11342],{"class":4784},"$LOCKFILE",[4173,11344,6454],{"class":4669},[4173,11346,11347],{"class":4657,"line":270},[4173,11348,4761],{"emptyLinePlaceholder":4760},[4173,11350,11351],{"class":4657,"line":1263},[4173,11352,7090],{"class":4784},[4173,11354,11355],{"class":4657,"line":4770},[4173,11356,4761],{"emptyLinePlaceholder":4760},[4173,11358,11359],{"class":4657,"line":4775},[4173,11360,11361],{"class":4766},"# trap fängt Signale ab, in diesem Fall EXIT, und führt die Funktion cleanup aus,\n",[4173,11363,11364],{"class":4657,"line":6320},[4173,11365,4761],{"emptyLinePlaceholder":4760},[4173,11367,11368],{"class":4657,"line":6325},[4173,11369,11370],{"class":4766},"# um sicherzustellen, dass die Lockdatei entfernt wird, wenn das Skript beendet wird,\n",[4173,11372,11373],{"class":4657,"line":6343},[4173,11374,4761],{"emptyLinePlaceholder":4760},[4173,11376,11377],{"class":4657,"line":6348},[4173,11378,11379],{"class":4766},"# egal ob es erfolgreich war oder durch einen Fehler unterbrochen wurde.\n",[4173,11381,11382],{"class":4657,"line":6457},[4173,11383,4761],{"emptyLinePlaceholder":4760},[4173,11385,11386,11389,11392],{"class":4657,"line":6462},[4173,11387,11388],{"class":4665},"trap",[4173,11390,11391],{"class":4669}," cleanup",[4173,11393,11394],{"class":4669}," EXIT\n",[4173,11396,11397],{"class":4657,"line":6468},[4173,11398,4761],{"emptyLinePlaceholder":4760},[4173,11400,11401,11404,11406,11408,11410,11412,11415,11417,11420,11422,11424,11426],{"class":4657,"line":6473},[4173,11402,11403],{"class":4784},"[[ ",[4173,11405,10577],{"class":4788},[4173,11407,6218],{"class":4669},[4173,11409,11342],{"class":4784},[4173,11411,6207],{"class":4669},[4173,11413,11414],{"class":4784}," ]] && { ",[4173,11416,6309],{"class":4665},[4173,11418,11419],{"class":4669}," \"Already running\"",[4173,11421,6498],{"class":4784},[4173,11423,10898],{"class":4665},[4173,11425,10264],{"class":4665},[4173,11427,11428],{"class":4784},"; }\n",[4173,11430,11431],{"class":4657,"line":6479},[4173,11432,4761],{"emptyLinePlaceholder":4760},[4173,11434,11435,11438,11440,11442],{"class":4657,"line":6503},[4173,11436,11437],{"class":4661},"touch",[4173,11439,6218],{"class":4669},[4173,11441,11342],{"class":4784},[4173,11443,6454],{"class":4669},[4173,11445,11446],{"class":4657,"line":6516},[4173,11447,4761],{"emptyLinePlaceholder":4760},[4173,11449,11450],{"class":4657,"line":6971},[4173,11451,11452],{"class":4766},"# $@ enthält alle Argumente, die an das Skript übergeben wurden.\n",[4173,11454,11455],{"class":4657,"line":10649},[4173,11456,4761],{"emptyLinePlaceholder":4760},[4173,11458,11459,11461,11464,11466,11468,11471,11473,11475],{"class":4657,"line":10654},[4173,11460,6425],{"class":4788},[4173,11462,11463],{"class":4784}," arg ",[4173,11465,6431],{"class":4788},[4173,11467,6218],{"class":4669},[4173,11469,11470],{"class":4665},"$@",[4173,11472,6207],{"class":4669},[4173,11474,6498],{"class":4784},[4173,11476,6437],{"class":4788},[4173,11478,11479],{"class":4657,"line":10659},[4173,11480,4761],{"emptyLinePlaceholder":4760},[4173,11482,11483,11485,11487,11490,11492,11495,11498,11501,11503],{"class":4657,"line":10664},[4173,11484,11403],{"class":4784},[4173,11486,6207],{"class":4669},[4173,11488,11489],{"class":4784},"$arg",[4173,11491,6207],{"class":4669},[4173,11493,11494],{"class":4788}," ==",[4173,11496,11497],{"class":4669}," \"--dry-run\"",[4173,11499,11500],{"class":4784}," ]] && DRY_RUN",[4173,11502,6387],{"class":4788},[4173,11504,11505],{"class":4669},"true\n",[4173,11507,11508],{"class":4657,"line":10676},[4173,11509,4761],{"emptyLinePlaceholder":4760},[4173,11511,11512],{"class":4657,"line":10681},[4173,11513,6519],{"class":4788},[4173,11515,11516],{"class":4657,"line":10702},[4173,11517,4761],{"emptyLinePlaceholder":4760},[4173,11519,11520,11523,11525,11527,11529,11532],{"class":4657,"line":10707},[4173,11521,11522],{"class":4784},"TIMESTAMP",[4173,11524,6387],{"class":4788},[4173,11526,10249],{"class":4784},[4173,11528,11289],{"class":4661},[4173,11530,11531],{"class":4669}," +%F_%H-%M-%S",[4173,11533,6402],{"class":4784},[4173,11535,11536],{"class":4657,"line":10712},[4173,11537,4761],{"emptyLinePlaceholder":4760},[4173,11539,11540,11543,11545,11547,11550,11553,11556],{"class":4657,"line":10717},[4173,11541,11542],{"class":4784},"TARGET",[4173,11544,6387],{"class":4788},[4173,11546,6207],{"class":4669},[4173,11548,11549],{"class":4784},"$BACKUP_DEST",[4173,11551,11552],{"class":4669},"\u002Fbackup_",[4173,11554,11555],{"class":4784},"$TIMESTAMP",[4173,11557,11558],{"class":4669},".tar.gz\"\n",[4173,11560,11561],{"class":4657,"line":10727},[4173,11562,4761],{"emptyLinePlaceholder":4760},[4173,11564,11565,11567],{"class":4657,"line":10732},[4173,11566,11266],{"class":4661},[4173,11568,11569],{"class":4669}," \"Starting backup...\"\n",[4173,11571,11572],{"class":4657,"line":10737},[4173,11573,4761],{"emptyLinePlaceholder":4760},[4173,11575,11576,11578,11581,11584],{"class":4657,"line":10742},[4173,11577,6201],{"class":4788},[4173,11579,11580],{"class":4788}," !",[4173,11582,11583],{"class":4784}," $DRY_RUN; ",[4173,11585,6229],{"class":4788},[4173,11587,11588],{"class":4657,"line":10752},[4173,11589,4761],{"emptyLinePlaceholder":4760},[4173,11591,11592,11595,11598,11600,11603,11605,11608,11610,11613,11616],{"class":4657,"line":10757},[4173,11593,11594],{"class":4661},"tar",[4173,11596,11597],{"class":4665}," -czf",[4173,11599,6218],{"class":4669},[4173,11601,11602],{"class":4784},"$TARGET",[4173,11604,6207],{"class":4669},[4173,11606,11607],{"class":4669}," \"${",[4173,11609,11179],{"class":4784},[4173,11611,11612],{"class":4669},"[",[4173,11614,11615],{"class":4788},"@",[4173,11617,11618],{"class":4669},"]}\"\n",[4173,11620,11621],{"class":4657,"line":10762},[4173,11622,4761],{"emptyLinePlaceholder":4760},[4173,11624,11625],{"class":4657,"line":10767},[4173,11626,7657],{"class":4788},[4173,11628,11629],{"class":4657,"line":10772},[4173,11630,4761],{"emptyLinePlaceholder":4760},[4173,11632,11633,11635,11638,11640,11643,11645,11647,11649],{"class":4657,"line":10777},[4173,11634,11266],{"class":4661},[4173,11636,11637],{"class":4669}," \"Dry run: tar -czf ",[4173,11639,11602],{"class":4784},[4173,11641,11642],{"class":4669}," ${",[4173,11644,11179],{"class":4784},[4173,11646,11612],{"class":4669},[4173,11648,6328],{"class":4788},[4173,11650,11618],{"class":4669},[4173,11652,11653],{"class":4657,"line":10782},[4173,11654,4761],{"emptyLinePlaceholder":4760},[4173,11656,11657],{"class":4657,"line":10787},[4173,11658,6247],{"class":4788},[4173,11660,11661],{"class":4657,"line":10800},[4173,11662,4761],{"emptyLinePlaceholder":4760},[4173,11664,11665,11667],{"class":4657,"line":10805},[4173,11666,11266],{"class":4661},[4173,11668,11669],{"class":4669}," \"Cleaning old backups...\"\n",[4173,11671,11672],{"class":4657,"line":10818},[4173,11673,4761],{"emptyLinePlaceholder":4760},[4173,11675,11676],{"class":4657,"line":10823},[4173,11677,11678],{"class":4766},"# find sucht nach Dateien im Backup-Verzeichnis,\n",[4173,11680,11681],{"class":4657,"line":10836},[4173,11682,4761],{"emptyLinePlaceholder":4760},[4173,11684,11685],{"class":4657,"line":10841},[4173,11686,11687],{"class":4766},"# die älter als die angegebene Anzahl von Tagen sind und löscht sie,\n",[4173,11689,11690],{"class":4657,"line":10846},[4173,11691,4761],{"emptyLinePlaceholder":4760},[4173,11693,11694],{"class":4657,"line":10851},[4173,11695,11696],{"class":4766},"# um Speicherplatz freizugeben und die Anzahl der Backups zu begrenzen.\n",[4173,11698,11699],{"class":4657,"line":10867},[4173,11700,4761],{"emptyLinePlaceholder":4760},[4173,11702,11703,11705,11707,11709,11711,11713,11715,11717,11720,11723,11725,11728],{"class":4657,"line":10872},[4173,11704,9459],{"class":4661},[4173,11706,6218],{"class":4669},[4173,11708,11549],{"class":4784},[4173,11710,6207],{"class":4669},[4173,11712,9497],{"class":4665},[4173,11714,10269],{"class":4669},[4173,11716,9737],{"class":4665},[4173,11718,11719],{"class":4669}," +",[4173,11721,11722],{"class":4784},"$RETENTION_DAYS ",[4173,11724,9523],{"class":4665},[4173,11726,11727],{"class":4669}," \"*.tar.gz\"",[4173,11729,9769],{"class":4665},[4173,11731,11732],{"class":4657,"line":10877},[4173,11733,4761],{"emptyLinePlaceholder":4760},[4173,11735,11736,11738],{"class":4657,"line":10882},[4173,11737,11266],{"class":4661},[4173,11739,11740],{"class":4669}," \"Backup finished.\"\n",[16,11742,11744],{"id":11743},"countsh","Count.sh",[4647,11746,11748],{"className":4649,"code":11747,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\nif [ $# != 1 ]\n\nthen\n\necho \"Kein Argument übergeben\"\n\nexit 1\n\nfi\n\nDATEI=\"$1\"\n\n# überprüfen, ob die angegebene Datei existiert\n\nif [ -e \"$DATEI\" ];\n\nthen\n\necho \"Die Datei $DATEI wurde gefunden\"\n\nelse\n\necho \"Die Datei $DATEI wurde nicht gefunden\"\n\nfi\n\n",[4653,11749,11750,11754,11758,11772,11776,11780,11784,11791,11795,11801,11805,11809,11813,11825,11829,11834,11838,11856,11860,11864,11868,11880,11884,11888,11892,11903,11907],{"__ignoreMap":269},[4173,11751,11752],{"class":4657,"line":4658},[4173,11753,6375],{"class":4766},[4173,11755,11756],{"class":4657,"line":270},[4173,11757,4761],{"emptyLinePlaceholder":4760},[4173,11759,11760,11762,11764,11766,11768,11770],{"class":4657,"line":1263},[4173,11761,6201],{"class":4788},[4173,11763,6204],{"class":4784},[4173,11765,6141],{"class":4665},[4173,11767,10860],{"class":4788},[4173,11769,10264],{"class":4665},[4173,11771,10586],{"class":4784},[4173,11773,11774],{"class":4657,"line":4770},[4173,11775,4761],{"emptyLinePlaceholder":4760},[4173,11777,11778],{"class":4657,"line":4775},[4173,11779,6229],{"class":4788},[4173,11781,11782],{"class":4657,"line":6320},[4173,11783,4761],{"emptyLinePlaceholder":4760},[4173,11785,11786,11788],{"class":4657,"line":6325},[4173,11787,6309],{"class":4665},[4173,11789,11790],{"class":4669}," \"Kein Argument übergeben\"\n",[4173,11792,11793],{"class":4657,"line":6343},[4173,11794,4761],{"emptyLinePlaceholder":4760},[4173,11796,11797,11799],{"class":4657,"line":6348},[4173,11798,10898],{"class":4665},[4173,11800,10901],{"class":4665},[4173,11802,11803],{"class":4657,"line":6457},[4173,11804,4761],{"emptyLinePlaceholder":4760},[4173,11806,11807],{"class":4657,"line":6462},[4173,11808,6247],{"class":4788},[4173,11810,11811],{"class":4657,"line":6468},[4173,11812,4761],{"emptyLinePlaceholder":4760},[4173,11814,11815,11817,11819,11821,11823],{"class":4657,"line":6473},[4173,11816,7210],{"class":4784},[4173,11818,6387],{"class":4788},[4173,11820,6207],{"class":4669},[4173,11822,9887],{"class":4665},[4173,11824,6454],{"class":4669},[4173,11826,11827],{"class":4657,"line":6479},[4173,11828,4761],{"emptyLinePlaceholder":4760},[4173,11830,11831],{"class":4657,"line":6503},[4173,11832,11833],{"class":4766},"# überprüfen, ob die angegebene Datei existiert\n",[4173,11835,11836],{"class":4657,"line":6516},[4173,11837,4761],{"emptyLinePlaceholder":4760},[4173,11839,11840,11842,11844,11846,11848,11851,11853],{"class":4657,"line":6971},[4173,11841,6201],{"class":4788},[4173,11843,6204],{"class":4784},[4173,11845,9216],{"class":4788},[4173,11847,6218],{"class":4669},[4173,11849,11850],{"class":4784},"$DATEI",[4173,11852,6207],{"class":4669},[4173,11854,11855],{"class":4784}," ];\n",[4173,11857,11858],{"class":4657,"line":10649},[4173,11859,4761],{"emptyLinePlaceholder":4760},[4173,11861,11862],{"class":4657,"line":10654},[4173,11863,6229],{"class":4788},[4173,11865,11866],{"class":4657,"line":10659},[4173,11867,4761],{"emptyLinePlaceholder":4760},[4173,11869,11870,11872,11875,11877],{"class":4657,"line":10664},[4173,11871,6309],{"class":4665},[4173,11873,11874],{"class":4669}," \"Die Datei ",[4173,11876,11850],{"class":4784},[4173,11878,11879],{"class":4669}," wurde gefunden\"\n",[4173,11881,11882],{"class":4657,"line":10676},[4173,11883,4761],{"emptyLinePlaceholder":4760},[4173,11885,11886],{"class":4657,"line":10681},[4173,11887,7657],{"class":4788},[4173,11889,11890],{"class":4657,"line":10702},[4173,11891,4761],{"emptyLinePlaceholder":4760},[4173,11893,11894,11896,11898,11900],{"class":4657,"line":10707},[4173,11895,6309],{"class":4665},[4173,11897,11874],{"class":4669},[4173,11899,11850],{"class":4784},[4173,11901,11902],{"class":4669}," wurde nicht gefunden\"\n",[4173,11904,11905],{"class":4657,"line":10712},[4173,11906,4761],{"emptyLinePlaceholder":4760},[4173,11908,11909],{"class":4657,"line":10717},[4173,11910,6247],{"class":4788},[16,11912,11914],{"id":11913},"envinfosh","Envinfo.sh",[4647,11916,11918],{"className":4649,"code":11917,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Umgebungsvariablen\n\necho \"User: $USER\"\n\necho \"Homeverzeichnis: $HOME\"\n\necho \"Skript: $0\"\n\necho \"Datum: $(date)\"\n\necho \"PC Name: $(hostname)\"\n\necho \"Aktuelles Verzeichnis: $(pwd)\"\n\n",[4653,11919,11920,11924,11928,11933,11937,11949,11953,11965,11969,11980,11984,11996,12000,12012,12016],{"__ignoreMap":269},[4173,11921,11922],{"class":4657,"line":4658},[4173,11923,6375],{"class":4766},[4173,11925,11926],{"class":4657,"line":270},[4173,11927,4761],{"emptyLinePlaceholder":4760},[4173,11929,11930],{"class":4657,"line":1263},[4173,11931,11932],{"class":4766},"# Umgebungsvariablen\n",[4173,11934,11935],{"class":4657,"line":4770},[4173,11936,4761],{"emptyLinePlaceholder":4760},[4173,11938,11939,11941,11944,11947],{"class":4657,"line":4775},[4173,11940,6309],{"class":4665},[4173,11942,11943],{"class":4669}," \"User: ",[4173,11945,11946],{"class":4784},"$USER",[4173,11948,6454],{"class":4669},[4173,11950,11951],{"class":4657,"line":6320},[4173,11952,4761],{"emptyLinePlaceholder":4760},[4173,11954,11955,11957,11960,11963],{"class":4657,"line":6325},[4173,11956,6309],{"class":4665},[4173,11958,11959],{"class":4669}," \"Homeverzeichnis: ",[4173,11961,11962],{"class":4784},"$HOME",[4173,11964,6454],{"class":4669},[4173,11966,11967],{"class":4657,"line":6343},[4173,11968,4761],{"emptyLinePlaceholder":4760},[4173,11970,11971,11973,11976,11978],{"class":4657,"line":6348},[4173,11972,6309],{"class":4665},[4173,11974,11975],{"class":4669}," \"Skript: ",[4173,11977,6129],{"class":4665},[4173,11979,6454],{"class":4669},[4173,11981,11982],{"class":4657,"line":6457},[4173,11983,4761],{"emptyLinePlaceholder":4760},[4173,11985,11986,11988,11991,11993],{"class":4657,"line":6462},[4173,11987,6309],{"class":4665},[4173,11989,11990],{"class":4669}," \"Datum: $(",[4173,11992,11289],{"class":4661},[4173,11994,11995],{"class":4669},")\"\n",[4173,11997,11998],{"class":4657,"line":6468},[4173,11999,4761],{"emptyLinePlaceholder":4760},[4173,12001,12002,12004,12007,12010],{"class":4657,"line":6473},[4173,12003,6309],{"class":4665},[4173,12005,12006],{"class":4669}," \"PC Name: $(",[4173,12008,12009],{"class":4661},"hostname",[4173,12011,11995],{"class":4669},[4173,12013,12014],{"class":4657,"line":6479},[4173,12015,4761],{"emptyLinePlaceholder":4760},[4173,12017,12018,12020,12023,12026],{"class":4657,"line":6503},[4173,12019,6309],{"class":4665},[4173,12021,12022],{"class":4669}," \"Aktuelles Verzeichnis: $(",[4173,12024,12025],{"class":4665},"pwd",[4173,12027,11995],{"class":4669},[16,12029,12031],{"id":12030},"list_infosh","List_info.sh",[4647,12033,12035],{"className":4649,"code":12034,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Dateien eines bestimmten Typs auflisten, hier: alle .sh\n\nfor file in \"$1\"\u002F*.sh\n\ndo\n\n[ -e \"$file\" ] || continue\n\nif [ -s \"$file\" ]\n\nthen\n\necho \"$file\"\n\nfi\n\ndone\n",[4653,12036,12037,12041,12045,12050,12054,12070,12074,12078,12082,12105,12109,12125,12129,12133,12137,12147,12151,12155,12159],{"__ignoreMap":269},[4173,12038,12039],{"class":4657,"line":4658},[4173,12040,6375],{"class":4766},[4173,12042,12043],{"class":4657,"line":270},[4173,12044,4761],{"emptyLinePlaceholder":4760},[4173,12046,12047],{"class":4657,"line":1263},[4173,12048,12049],{"class":4766},"# Dateien eines bestimmten Typs auflisten, hier: alle .sh\n",[4173,12051,12052],{"class":4657,"line":4770},[4173,12053,4761],{"emptyLinePlaceholder":4760},[4173,12055,12056,12058,12061,12063,12065,12067],{"class":4657,"line":4775},[4173,12057,6425],{"class":4788},[4173,12059,12060],{"class":4784}," file ",[4173,12062,6431],{"class":4788},[4173,12064,6218],{"class":4669},[4173,12066,9887],{"class":4665},[4173,12068,12069],{"class":4669},"\"\u002F*.sh\n",[4173,12071,12072],{"class":4657,"line":6320},[4173,12073,4761],{"emptyLinePlaceholder":4760},[4173,12075,12076],{"class":4657,"line":6325},[4173,12077,6437],{"class":4788},[4173,12079,12080],{"class":4657,"line":6343},[4173,12081,4761],{"emptyLinePlaceholder":4760},[4173,12083,12084,12087,12089,12091,12094,12096,12099,12102],{"class":4657,"line":6348},[4173,12085,12086],{"class":4784},"[ ",[4173,12088,9216],{"class":4788},[4173,12090,6218],{"class":4669},[4173,12092,12093],{"class":4784},"$file",[4173,12095,6207],{"class":4669},[4173,12097,12098],{"class":4784}," ] ",[4173,12100,12101],{"class":4788},"||",[4173,12103,12104],{"class":4788}," continue\n",[4173,12106,12107],{"class":4657,"line":6457},[4173,12108,4761],{"emptyLinePlaceholder":4760},[4173,12110,12111,12113,12115,12117,12119,12121,12123],{"class":4657,"line":6462},[4173,12112,6201],{"class":4788},[4173,12114,6204],{"class":4784},[4173,12116,6099],{"class":4788},[4173,12118,6218],{"class":4669},[4173,12120,12093],{"class":4784},[4173,12122,6207],{"class":4669},[4173,12124,10586],{"class":4784},[4173,12126,12127],{"class":4657,"line":6468},[4173,12128,4761],{"emptyLinePlaceholder":4760},[4173,12130,12131],{"class":4657,"line":6473},[4173,12132,6229],{"class":4788},[4173,12134,12135],{"class":4657,"line":6479},[4173,12136,4761],{"emptyLinePlaceholder":4760},[4173,12138,12139,12141,12143,12145],{"class":4657,"line":6503},[4173,12140,6309],{"class":4665},[4173,12142,6218],{"class":4669},[4173,12144,12093],{"class":4784},[4173,12146,6454],{"class":4669},[4173,12148,12149],{"class":4657,"line":6516},[4173,12150,4761],{"emptyLinePlaceholder":4760},[4173,12152,12153],{"class":4657,"line":6971},[4173,12154,6247],{"class":4788},[4173,12156,12157],{"class":4657,"line":10649},[4173,12158,4761],{"emptyLinePlaceholder":4760},[4173,12160,12161],{"class":4657,"line":10654},[4173,12162,6519],{"class":4788},[5719,12164,12165],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":269,"searchDepth":270,"depth":270,"links":12167},[12168,12169,12170,12171,12172,12176,12177,12180,12183,12186,12187,12190,12191,12194,12195,12196,12197,12201,12208,12215,12216,12217,12218,12219,12220,12221,12222],{"id":6187,"depth":1263,"text":6188},{"id":6357,"depth":1263,"text":6360},{"id":6522,"depth":1263,"text":6525},{"id":6586,"depth":1263,"text":6589},{"id":7104,"depth":270,"text":7105,"children":12173},[12174,12175],{"id":7108,"depth":1263,"text":7109},{"id":7156,"depth":1263,"text":7157},{"id":7790,"depth":270,"text":7791},{"id":7844,"depth":270,"text":7847,"children":12178},[12179],{"id":7856,"depth":1263,"text":7859},{"id":7905,"depth":270,"text":7908,"children":12181},[12182],{"id":7922,"depth":1263,"text":7925},{"id":8004,"depth":270,"text":8007,"children":12184},[12185],{"id":8069,"depth":1263,"text":8072},{"id":8095,"depth":270,"text":8098},{"id":8112,"depth":270,"text":8115,"children":12188},[12189],{"id":8121,"depth":1263,"text":8124},{"id":8226,"depth":270,"text":8229},{"id":8321,"depth":270,"text":8324,"children":12192},[12193],{"id":8365,"depth":1263,"text":8368},{"id":762,"depth":270,"text":763},{"id":8855,"depth":270,"text":8856},{"id":8950,"depth":270,"text":8953},{"id":9124,"depth":270,"text":9125,"children":12198},[12199,12200],{"id":9195,"depth":1263,"text":8953},{"id":9243,"depth":1263,"text":9244},{"id":9422,"depth":270,"text":9423,"children":12202},[12203,12204,12205,12206,12207],{"id":9502,"depth":1263,"text":8953},{"id":9593,"depth":1263,"text":9594},{"id":9637,"depth":1263,"text":9638},{"id":9681,"depth":1263,"text":9682},{"id":9746,"depth":1263,"text":9747},{"id":9803,"depth":270,"text":9804,"children":12209},[12210,12211,12212,12213,12214],{"id":9852,"depth":1263,"text":9853},{"id":9924,"depth":1263,"text":9925},{"id":9964,"depth":1263,"text":9965},{"id":9986,"depth":1263,"text":9987},{"id":10010,"depth":1263,"text":10011},{"id":10049,"depth":270,"text":10050},{"id":10098,"depth":270,"text":10099},{"id":10161,"depth":270,"text":10162},{"id":10218,"depth":270,"text":10219},{"id":11144,"depth":270,"text":11145},{"id":11743,"depth":270,"text":11744},{"id":11913,"depth":270,"text":11914},{"id":12030,"depth":270,"text":12031},"7-8",{},{"title":12226},"Cheat-Sheet – Schulaufgabe 2 (2025\u002F2026)","\u002Ffaecher\u002Fbsa\u002F7-8-cs-sa2","\u002Fdownloads\u002FBSA\u002FBSA_7-8_CS_SA2.pdf",{"title":5774,"description":269},"faecher\u002Fbsa\u002F7-8-cs-sa2","CS","Cheat-Sheet","2025\u002F2026","hH_MKbPbyjUiRdVPc7ChbawdUF9ObLtKROjOcLshg5o",{"id":12236,"title":6,"body":12237,"class":12223,"description":269,"extension":283,"meta":12689,"navigation":12690,"path":12692,"pdfDownload":12693,"scope":289,"scopeName":290,"seo":12694,"stem":12695,"subject":2429,"subjectName":2430,"type":295,"typeName":296,"year":12233,"__hash__":12696},"faecher\u002Ffaecher\u002Fbsa\u002F7-8-zsmf-sa1.md",{"type":8,"value":12238,"toc":12681},[12239,12243,12245,12268,12272,12394,12398,12406,12410,12434,12436,12526,12530,12556,12560,12565,12569,12577,12579],[11,12240,12242],{"id":12241},"systemstart-und-initialisierung","Systemstart und Initialisierung",[16,12244,1681],{"id":1680},[318,12246,12247,12250,12253,12256,12259,12262,12265],{},[24,12248,12249],{},"Bootloader: Kernel und initramfs in RAM laden",[24,12251,12252],{},"Kernel laden: Hardware wird initialisiert",[24,12254,12255],{},"InitRamFS: Temporäres Root-Dateisystem zum laden von Modulen und Zugriff aufs echte FS",[24,12257,12258],{},"Mount Root FS: Kernel mountet Dateisystem nach \u002Fetc\u002Ffstab",[24,12260,12261],{},"Init starten: Erstes Prozessprogramm wird ausgeführt (init\u002Fsystemd)",[24,12263,12264],{},"Dienste starten",[24,12266,12267],{},"Boot abgeschlossen: Bereit zur Anmeldung",[16,12269,12271],{"id":12270},"sysinit-vs-systemd","SysInit vs. SystemD",[765,12273,12274,12289],{},[768,12275,12276],{},[771,12277,12278,12280,12285],{},[774,12279],{},[774,12281,12282],{},[42,12283,12284],{},"SysInit",[774,12286,12287],{},[42,12288,5810],{},[787,12290,12291,12304,12317,12329,12342,12355,12368,12381],{},[771,12292,12293,12298,12301],{},[792,12294,12295],{},[42,12296,12297],{},"Grundidee",[792,12299,12300],{},"- Traditionelles Init-System",[792,12302,12303],{},"- Modernes Init-System",[771,12305,12306,12311,12314],{},[792,12307,12308],{},[42,12309,12310],{},"Startverhalten",[792,12312,12313],{},"- Serielles Starten über Skripte",[792,12315,12316],{},"- Startet Parallel - Schnellere Startzeiten",[771,12318,12319,12323,12326],{},[792,12320,12321],{},[42,12322,4283],{},[792,12324,12325],{},"- Skripte in \u002Fetc\u002Finit.d",[792,12327,12328],{},"- Units-Dateien in \u002Fetc\u002Fsystemd\u002Fsystem",[771,12330,12331,12336,12339],{},[792,12332,12333],{},[42,12334,12335],{},"Abhängigkeiten",[792,12337,12338],{},"- Kaum Abhängigkeitslogik",[792,12340,12341],{},"- Umfangreiche Abhängigkeitsverwaltung - Abbrüche bei Fehlern",[771,12343,12344,12349,12352],{},[792,12345,12346],{},[42,12347,12348],{},"Logging",[792,12350,12351],{},"- Über Syslog",[792,12353,12354],{},"- Zentralisiertes Logging über journalctl",[771,12356,12357,12362,12365],{},[792,12358,12359],{},[42,12360,12361],{},"Resources & Sicherheitsfeatures",[792,12363,12364],{},"- Kaum integrierte Features",[792,12366,12367],{},"- Sandbox-Funktionen - Restriktionsmöglichkeiten",[771,12369,12370,12375,12378],{},[792,12371,12372],{},[42,12373,12374],{},"Ökosystem",[792,12376,12377],{},"- In vielen alten Distros - Leicht, aber weniger Funktionen",[792,12379,12380],{},"- Weit verbreitet - Oft Standard",[771,12382,12383,12388,12391],{},[792,12384,12385],{},[42,12386,12387],{},"Vor- & Nachteile",[792,12389,12390],{},"Vorteile   - Einfach, Transparent - Geringer Overhead   Nachteile   - Langsamer Start - Wenig Abhängigkeitslogik",[792,12392,12393],{},"Vorteile   - Schneller Start - Robuste Abhängigkeitsverwaltung - Viele Funktionen   Nachteile   - Komplex - Kritik an Zentralisierung",[11,12395,12397],{"id":12396},"verzeichnisbaum-alles-ist-eine-datei","Verzeichnisbaum – „Alles ist eine Datei“",[21,12399,12400,12403],{},[24,12401,12402],{},"Keine Laufwerksbuchstaben sondern Mountpoints",[24,12404,12405],{},"Jeder Benutzer hat ein Home-Verzeichnis (~)",[16,12407,12409],{"id":12408},"virtuelle-dateisysteme","Virtuelle Dateisysteme",[21,12411,12412,12415,12423],{},[24,12413,12414],{},"Belegen keinen Speicherplatz",[24,12416,12417,12418],{},"Zum Austausch zwischen Kernel und Anwendungen\n",[21,12419,12420],{},[24,12421,12422],{},"Nicht zum speichern",[24,12424,12425,12426],{},"Beispiele\n",[21,12427,12428,12431],{},[24,12429,12430],{},"\u002Fdev -> Zugang zu Hardware (Festplatte)",[24,12432,12433],{},"\u002Fproc -> Alle laufenden Prozesse",[16,12435,9594],{"id":9593},[765,12437,12438,12450],{},[768,12439,12440],{},[771,12441,12442,12444,12447],{},[774,12443,9542],{},[774,12445,12446],{},"Kürzel",[774,12448,12449],{},"Informationen",[787,12451,12452,12462,12473,12483,12494,12504,12515],{},[771,12453,12454,12457,12459],{},[792,12455,12456],{},"Reguläre Datei",[792,12458,4778],{},[792,12460,12461],{},"Texte, Grafiken, Audiodateien, Programme",[771,12463,12464,12467,12470],{},[792,12465,12466],{},"Verzeichnisdateien",[792,12468,12469],{},"d",[792,12471,12472],{},"Ordner; Tabelldatei mit Dateiname -> Inode-Nummer",[771,12474,12475,12478,12480],{},[792,12476,12477],{},"Blockdateien",[792,12479,6303],{},[792,12481,12482],{},"Schnittstelle zu Geräten (z.B. Laufwerk); Zugriffe werden an das Gerät weitergeleitet",[771,12484,12485,12488,12491],{},[792,12486,12487],{},"Zeichengerätedateien",[792,12489,12490],{},"c",[792,12492,12493],{},"Serieller Strom von Ein- & Ausgaben (z.B. Terminal)",[771,12495,12496,12499,12501],{},[792,12497,12498],{},"Pipe-Datei",[792,12500,414],{},[792,12502,12503],{},"Ähnlich wie Pipes\u002FShell; Direkte Kommunikation zwischen Programmen ohne Zwischenspeicher",[771,12505,12506,12509,12512],{},[792,12507,12508],{},"Symbolic link file",[792,12510,12511],{},"l",[792,12513,12514],{},"Enthält Pfadangabe (Verknüpfung)",[771,12516,12517,12520,12523],{},[792,12518,12519],{},"Socket-Files",[792,12521,12522],{},"s",[792,12524,12525],{},"Bidirektionale Interprozesskommunikation innerhalb eines Rechners",[16,12527,12529],{"id":12528},"inode-index-node","Inode (Index node)",[21,12531,12532,12535,12553],{},[24,12533,12534],{},"Datenstruktureintrag im Dateisystem",[24,12536,12537,12538],{},"Enthält Metadaten über eine Datei\n",[21,12539,12540,12542,12544,12547,12550],{},[24,12541,9550],{},[24,12543,9542],{},[24,12545,12546],{},"Benutzerrechte",[24,12548,12549],{},"Zeitstempel",[24,12551,12552],{},"…",[24,12554,12555],{},"Jede Datei hat eine eindeutige Inode-Nummer",[11,12557,12559],{"id":12558},"terminalbefehle","Terminalbefehle",[21,12561,12562],{},[24,12563,12564],{},"Siehe Buch für die meisten Befehle",[16,12566,12568],{"id":12567},"apropos","Apropos",[21,12570,12571,12574],{},[24,12572,12573],{},"Befehl um nach anderen Befehlen zu suchen anhand von Begriffen in deren Dokumentation",[24,12575,12576],{},"Apropos kernel: Liefert alle Befehle, die „kernel“ in der Dokumentation enthalten",[11,12578,5780],{"id":5779},[765,12580,12581,12589],{},[768,12582,12583],{},[771,12584,12585,12587],{},[774,12586,2459],{},[774,12588,5795],{},[787,12590,12591,12597,12603,12609,12615,12621,12627,12633,12639,12645,12651,12657,12663,12669,12675],{},[771,12592,12593,12595],{},[792,12594,5807],{},[792,12596,5810],{},[771,12598,12599,12601],{},[792,12600,5818],{},[792,12602,5821],{},[771,12604,12605,12607],{},[792,12606,5829],{},[792,12608,5832],{},[771,12610,12611,12613],{},[792,12612,5840],{},[792,12614,5843],{},[771,12616,12617,12619],{},[792,12618,5851],{},[792,12620,5854],{},[771,12622,12623,12625],{},[792,12624,5862],{},[792,12626,5865],{},[771,12628,12629,12631],{},[792,12630,5873],{},[792,12632,5876],{},[771,12634,12635,12637],{},[792,12636,5884],{},[792,12638,5887],{},[771,12640,12641,12643],{},[792,12642,5895],{},[792,12644,5898],{},[771,12646,12647,12649],{},[792,12648,5906],{},[792,12650,5909],{},[771,12652,12653,12655],{},[792,12654,5917],{},[792,12656,5920],{},[771,12658,12659,12661],{},[792,12660,5928],{},[792,12662,5931],{},[771,12664,12665,12667],{},[792,12666,5939],{},[792,12668,5942],{},[771,12670,12671,12673],{},[792,12672,5950],{},[792,12674,5953],{},[771,12676,12677,12679],{},[792,12678,5961],{},[792,12680,5964],{},{"title":269,"searchDepth":270,"depth":270,"links":12682},[12683,12684,12685,12686,12687,12688],{"id":1680,"depth":270,"text":1681},{"id":12270,"depth":270,"text":12271},{"id":12408,"depth":270,"text":12409},{"id":9593,"depth":270,"text":9594},{"id":12528,"depth":270,"text":12529},{"id":12567,"depth":270,"text":12568},{},{"title":12691},"Zusammenfassung – Schulaufgabe 1 (2025\u002F2026)","\u002Ffaecher\u002Fbsa\u002F7-8-zsmf-sa1","\u002Fdownloads\u002FBSA\u002FBSA_7-8_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fbsa\u002F7-8-zsmf-sa1","Xu56gLXsc-ZXVZUiJxjx4MBmJhtexDyJP0Q-x7sfURs",{"id":12698,"title":12699,"body":12700,"class":35621,"description":35622,"extension":283,"meta":35623,"navigation":35624,"path":35625,"pdfDownload":35626,"scope":35621,"scopeName":35627,"seo":35628,"stem":35629,"subject":2429,"subjectName":2430,"type":12231,"typeName":12232,"year":35627,"__hash__":35630},"faecher\u002Ffaecher\u002Fbsa\u002Fap-cs.md","Cheat-Sheet – Abschlussprüfung",{"type":8,"value":12701,"toc":35472},[12702,12705,12711,12724,12728,12777,12781,12867,12869,12873,12875,12879,12951,12955,12958,12962,12965,12969,12994,12998,13001,13083,13085,13089,13091,13095,13098,13101,13151,13154,13183,13186,13197,13209,13213,13220,13229,13232,13235,13245,13248,13280,13284,13366,13369,13373,13513,13517,13520,13523,13526,13528,13532,13624,13627,13630,13633,13667,13670,13687,13703,13707,13767,13770,13855,13858,13862,14068,14071,14075,14078,14082,14085,14088,14091,14116,14119,14133,14143,14147,14230,14234,14367,14371,14481,14484,14536,14540,14637,14640,14644,14892,14895,14899,14902,14906,14909,14913,14916,14920,14923,14927,14946,14950,14955,14978,14983,15009,15013,15155,15158,15178,15182,15186,15195,15200,15212,15216,15236,15240,15346,15348,15400,15403,15406,15410,15415,15433,15437,15458,15462,15586,15588,15616,15620,15710,15714,15718,15802,15827,15830,15835,15847,15850,15921,15926,15936,15939,15942,15946,15949,15953,16197,16200,16203,16206,16209,16213,16217,16221,16225,16228,16232,16235,16238,16241,16245,16248,16252,16255,16259,16331,16334,16337,16346,16357,16360,16423,16426,16430,16433,16437,16660,16663,16667,16670,16673,16676,16680,16683,16686,16689,16692,16695,16698,16701,16704,16708,16711,16714,16717,16720,16734,16745,16748,16838,16841,16845,16848,16852,17108,17111,17115,17118,17121,17124,17128,17135,17142,17149,17152,17156,17159,17162,17165,17192,17194,17202,17214,17217,17473,17477,17591,17594,17598,17996,17999,18003,18005,18009,18012,18015,18019,18022,18026,18033,18039,18045,18051,18057,18072,18075,18078,18081,18083,18088,18101,18103,18107,18191,18195,18302,18306,18394,18398,18446,18448,18520,18523,18571,18574,18578,19169,19172,19176,19179,19182,19185,19189,19192,19195,19199,19201,19204,19207,19210,19212,19224,19236,19241,19253,19259,19287,19291,19384,19387,19427,19432,19497,19501,19616,19631,19635,19718,19722,19726,19736,19740,19743,19748,19755,19760,19763,19767,19772,19776,19789,19793,19799,19802,19811,19815,19818,19821,19825,19829,19832,19836,20246,20249,20253,20255,20258,20261,20263,20267,20270,20273,20277,20280,20283,20286,20290,20293,20295,20300,20310,20314,20433,20437,20644,20648,20706,20710,20796,20800,20920,20923,20927,20931,22282,22285,22289,22292,22294,22298,22300,22302,22304,22317,22320,22324,22327,22330,22333,22337,22341,22346,22348,22353,22365,22368,22567,22571,22598,22623,22628,22684,22688,22767,22770,22774,23097,23100,23104,23107,23110,23113,23116,23119,23122,23125,23128,23131,23135,23138,23141,23144,23148,23150,23162,23171,23174,23204,23209,23220,23233,23236,23240,23261,23264,23268,23270,23274,23458,23461,23464,23467,23471,23475,23478,23482,23485,23488,23493,23504,23507,23705,23710,23725,23742,23745,23749,23752,23756,24080,24084,24087,24090,24094,24097,24100,24103,24105,24108,24110,24112,24114,24117,24121,24123,24125,24127,24129,24133,24135,24137,24139,24143,24145,24147,24149,24152,24156,24159,24162,24165,24168,24171,24173,24182,24193,24196,24305,24310,24357,24360,24364,24560,24562,24564,24567,24571,24627,24630,24634,24709,24712,24716,24718,24720,24722,24725,24729,24731,24733,24736,24740,24796,24798,24800,24804,24807,24816,24827,24830,24868,24871,24875,24878,24882,25036,25039,25043,25045,25047,25049,25052,25055,25057,25059,25061,25063,25067,25073,25077,25080,25095,25106,25109,25233,25238,25244,25247,25306,25311,25317,25376,25379,25383,25385,25389,25392,25396,25594,25597,25600,25603,25606,25609,25613,25616,25620,25624,25628,25632,25636,25640,25644,25647,25651,25654,25656,25664,25688,25697,25701,25709,25755,25780,25784,25969,25973,25994,26001,26039,26043,26046,26155,26160,26164,26176,26180,26182,26186,26228,26231,26235,26628,26631,26635,26639,26650,26655,26658,26662,26665,26668,26671,26674,26677,26680,26683,26686,26689,26692,26695,26698,26701,26704,26707,26710,26713,26716,26719,26722,26725,26728,26731,26734,26737,26740,26743,26746,26750,26969,26978,26986,26990,27010,27013,27017,27472,27476,27525,27529,27535,27538,27542,27546,28060,28063,28067,28090,28096,28101,28104,28113,28117,28122,28141,28145,28205,28208,28212,28216,28992,28995,28999,29002,29006,29009,29013,29016,29019,29022,29026,29028,29031,29035,29038,29040,29049,29057,29061,29133,29137,29141,29253,29256,29398,29402,29498,29502,29691,29695,29817,29852,29925,29937,29940,29943,30251,30254,30258,30570,30579,30596,30600,30809,30813,30932,30936,30990,30994,31058,31062,31121,31125,31195,31199,32764,32768,32817,32821,32861,32865,32869,32873,32925,32928,33008,33012,33016,33020,33812,33815,33819,33831,33837,33840,33856,33861,33867,33872,33875,33879,33990,33994,34119,34123,34141,34145,34149,34152,34155,34158,34161,34164,34167,34170,34173,34176,34180,34183,34186,34190,34193,34196,34200,34203,34206,34210,34214,34227,34231,34234,34237,34240,34244,34247,34251,34353,34369,34377,34382,34385,34388,34448,34452,34499,34503,34506,34509,34512,34515,34518,34521,34524,34527,34530,34534,34537,34540,34543,34547,34550,34554,34558,34561,34565,34577,34581,34584,34588,34591,34626,34630,34633,34636,34640,34643,34647,34651,34654,34658,34661,34665,34668,34672,34675,34679,34682,34686,34689,34692,34695,34697,34701,34705,34709,34712,34715,34719,34723,34727,34742,34749,34753,34756,34759,34816,34820,34831,34835,34838,34842,34845,34848,34852,34855,34858,34861,34864,34868,34872,34876,34879,34883,34886,34889,34903,34907,34910,34913,34915,34919,34922,34926,34929,34933,34936,34940,34943,34947,34950,34954,34956,34959,34962,34964,34967,34971,34975,34979,34982,34986,34990,35159,35163,35166,35174,35178,35241,35245,35304,35308,35446,35450,35457,35460,35466,35469],[11,12703,12704],{"id":12704},"id",[414,12706,12707,12710],{},[42,12708,12709],{},"Beschreibung:"," Gibt die UID (User ID), die primäre GID (Group ID) sowie alle Gruppen des aktuellen oder eines angegebenen Benutzers aus. Besonders nützlich zur schnellen Überprüfung von Rechten im System.",[414,12712,12713,6100,12715],{},[42,12714,7941],{},[42,12716,12717,12718,6100,12721],{},"id ",[4173,12719,12720],{},"OPTIONEN",[4173,12722,12723],{},"BENUTZER",[16,12725,12727],{"id":12726},"uid-bereiche-linux-konvention","UID-Bereiche (Linux-Konvention)",[765,12729,12730,12743],{},[768,12731,12732],{},[771,12733,12734,12739],{},[774,12735,12736],{},[42,12737,12738],{},"Bereich",[774,12740,12741],{},[42,12742,6733],{},[787,12744,12745,12753,12761,12769],{},[771,12746,12747,12750],{},[792,12748,12749],{},"0",[792,12751,12752],{},"root – Superuser mit vollen Systemrechten",[771,12754,12755,12758],{},[792,12756,12757],{},"1 – 999",[792,12759,12760],{},"System-\u002FDienst-Konten (daemon, www-data, ...)",[771,12762,12763,12766],{},[792,12764,12765],{},"1000 – 65533",[792,12767,12768],{},"Normale Benutzer",[771,12770,12771,12774],{},[792,12772,12773],{},"65534",[792,12775,12776],{},"nobody – minimale Rechte, für NFS o. ä.",[16,12778,12780],{"id":12779},"flags","Flags",[765,12782,12783,12801],{},[768,12784,12785],{},[771,12786,12787,12792,12797],{},[774,12788,12789],{},[42,12790,12791],{},"Flag",[774,12793,12794],{},[42,12795,12796],{},"Langform",[774,12798,12799],{},[42,12800,6733],{},[787,12802,12803,12814,12825,12836,12846,12856],{},[771,12804,12805,12808,12811],{},[792,12806,12807],{},"-u",[792,12809,12810],{},"--user",[792,12812,12813],{},"Nur die UID (User ID) numerisch ausgeben",[771,12815,12816,12819,12822],{},[792,12817,12818],{},"-g",[792,12820,12821],{},"--group",[792,12823,12824],{},"Nur die primäre GID numerisch ausgeben",[771,12826,12827,12830,12833],{},[792,12828,12829],{},"-G",[792,12831,12832],{},"--groups",[792,12834,12835],{},"Alle GIDs (primär + alle sekundären) aufzählen",[771,12837,12838,12840,12843],{},[792,12839,8991],{},[792,12841,12842],{},"--name",[792,12844,12845],{},"Namen statt numerischer ID ausgeben – immer mit -u, -g oder -G kombinieren",[771,12847,12848,12850,12853],{},[792,12849,6103],{},[792,12851,12852],{},"--real",[792,12854,12855],{},"Echte (reale) ID statt der effektiven ID ausgeben",[771,12857,12858,12861,12864],{},[792,12859,12860],{},"-Z",[792,12862,12863],{},"--context",[792,12865,12866],{},"SELinux-Sicherheitskontext ausgeben (nur auf SELinux-Systemen verfügbar)",[16,12868,9925],{"id":9924},[11,12870,12872],{"id":12871},"alle-ids-des-aktuell-eingeloggten-benutzers-ausgeben","Alle IDs des aktuell eingeloggten Benutzers ausgeben",[414,12874,12704],{},[11,12876,12878],{"id":12877},"nur-die-eigene-uid-numerisch","Nur die eigene UID numerisch",[4647,12880,12882],{"className":4649,"code":12881,"language":4651,"meta":269,"style":269},"id -u\n\n# Nur die eigene UID als Namen (Benutzername)\n\nid -un\n\n# Alle Gruppen-IDs des aktuellen Nutzers\n\nid -G\n\n# Alle Gruppennamen (keine Nummern)\n\nid -Gn\n\n",[4653,12883,12884,12891,12895,12900,12904,12911,12915,12920,12924,12931,12935,12940,12944],{"__ignoreMap":269},[4173,12885,12886,12888],{"class":4657,"line":4658},[4173,12887,12704],{"class":4661},[4173,12889,12890],{"class":4665}," -u\n",[4173,12892,12893],{"class":4657,"line":270},[4173,12894,4761],{"emptyLinePlaceholder":4760},[4173,12896,12897],{"class":4657,"line":1263},[4173,12898,12899],{"class":4766},"# Nur die eigene UID als Namen (Benutzername)\n",[4173,12901,12902],{"class":4657,"line":4770},[4173,12903,4761],{"emptyLinePlaceholder":4760},[4173,12905,12906,12908],{"class":4657,"line":4775},[4173,12907,12704],{"class":4661},[4173,12909,12910],{"class":4665}," -un\n",[4173,12912,12913],{"class":4657,"line":6320},[4173,12914,4761],{"emptyLinePlaceholder":4760},[4173,12916,12917],{"class":4657,"line":6325},[4173,12918,12919],{"class":4766},"# Alle Gruppen-IDs des aktuellen Nutzers\n",[4173,12921,12922],{"class":4657,"line":6343},[4173,12923,4761],{"emptyLinePlaceholder":4760},[4173,12925,12926,12928],{"class":4657,"line":6348},[4173,12927,12704],{"class":4661},[4173,12929,12930],{"class":4665}," -G\n",[4173,12932,12933],{"class":4657,"line":6457},[4173,12934,4761],{"emptyLinePlaceholder":4760},[4173,12936,12937],{"class":4657,"line":6462},[4173,12938,12939],{"class":4766},"# Alle Gruppennamen (keine Nummern)\n",[4173,12941,12942],{"class":4657,"line":6468},[4173,12943,4761],{"emptyLinePlaceholder":4760},[4173,12945,12946,12948],{"class":4657,"line":6473},[4173,12947,12704],{"class":4661},[4173,12949,12950],{"class":4665}," -Gn\n",[11,12952,12954],{"id":12953},"ids-eines-anderen-benutzers-abfragen-als-root-oder-für-eigenen-account","IDs eines anderen Benutzers abfragen (als root oder für eigenen Account)",[414,12956,12957],{},"id www-data",[11,12959,12961],{"id":12960},"ids-des-benutzers-alice-prüfen-nützlich-zur-berechtigungsprüfung","IDs des Benutzers \"alice\" prüfen – nützlich zur Berechtigungsprüfung",[414,12963,12964],{},"id alice",[11,12966,12968],{"id":12967},"prüfen-ob-ein-benutzer-in-einer-bestimmten-gruppe-ist-zb-sudo","Prüfen ob ein Benutzer in einer bestimmten Gruppe ist (z.B. sudo)",[4647,12970,12972],{"className":4649,"code":12971,"language":4651,"meta":269,"style":269},"id -Gn alice | grep -w sudo\n\n",[4653,12973,12974],{"__ignoreMap":269},[4173,12975,12976,12978,12981,12984,12986,12988,12991],{"class":4657,"line":4658},[4173,12977,12704],{"class":4661},[4173,12979,12980],{"class":4665}," -Gn",[4173,12982,12983],{"class":4669}," alice",[4173,12985,8928],{"class":4788},[4173,12987,8931],{"class":4661},[4173,12989,12990],{"class":4665}," -w",[4173,12992,12993],{"class":4669}," sudo\n",[16,12995,12997],{"id":12996},"ausgabe","Ausgabe",[11,12999,12704],{"id":13000},"id-1",[4647,13002,13004],{"className":4649,"code":13003,"language":4651,"meta":269,"style":269},"uid=1000(matta) gid=1000(matta) Gruppen=1000(matta),4(adm),27(sudo),999(docker)\n\n# id -u\n\n",[4653,13005,13006,13074,13078],{"__ignoreMap":269},[4173,13007,13008,13011,13013,13016,13018,13021,13024,13026,13028,13030,13032,13035,13037,13039,13041,13043,13045,13048,13050,13053,13055,13058,13060,13063,13065,13068,13070,13072],{"class":4657,"line":4658},[4173,13009,13010],{"class":4784},"uid",[4173,13012,6387],{"class":4788},[4173,13014,13015],{"class":4669},"1000",[4173,13017,6390],{"class":4784},[4173,13019,13020],{"class":4661},"matta",[4173,13022,13023],{"class":4784},") gid",[4173,13025,6387],{"class":4788},[4173,13027,13015],{"class":4669},[4173,13029,6390],{"class":4784},[4173,13031,13020],{"class":4661},[4173,13033,13034],{"class":4784},") Gruppen",[4173,13036,6387],{"class":4788},[4173,13038,13015],{"class":4669},[4173,13040,6390],{"class":4784},[4173,13042,13020],{"class":4661},[4173,13044,6282],{"class":4784},[4173,13046,13047],{"class":4669},",4",[4173,13049,6390],{"class":4784},[4173,13051,13052],{"class":4661},"adm",[4173,13054,6282],{"class":4784},[4173,13056,13057],{"class":4669},",27",[4173,13059,6390],{"class":4784},[4173,13061,13062],{"class":4661},"sudo",[4173,13064,6282],{"class":4784},[4173,13066,13067],{"class":4669},",999",[4173,13069,6390],{"class":4784},[4173,13071,8042],{"class":4661},[4173,13073,6402],{"class":4784},[4173,13075,13076],{"class":4657,"line":270},[4173,13077,4761],{"emptyLinePlaceholder":4760},[4173,13079,13080],{"class":4657,"line":1263},[4173,13081,13082],{"class":4766},"# id -u\n",[414,13084,13015],{},[11,13086,13088],{"id":13087},"id-un","id -un",[414,13090,13020],{},[11,13092,13094],{"id":13093},"id-gn","id -Gn",[414,13096,13097],{},"matta adm sudo docker",[11,13099,12957],{"id":13100},"id-www-data",[4647,13102,13104],{"className":4649,"code":13103,"language":4651,"meta":269,"style":269},"uid=33(www-data) gid=33(www-data) Gruppen=33(www-data)\n\n# id -Gn alice | grep -w sudo\n\n",[4653,13105,13106,13142,13146],{"__ignoreMap":269},[4173,13107,13108,13110,13112,13115,13117,13120,13122,13124,13126,13128,13130,13132,13134,13136,13138,13140],{"class":4657,"line":4658},[4173,13109,13010],{"class":4784},[4173,13111,6387],{"class":4788},[4173,13113,13114],{"class":4669},"33",[4173,13116,6390],{"class":4784},[4173,13118,13119],{"class":4661},"www-data",[4173,13121,13023],{"class":4784},[4173,13123,6387],{"class":4788},[4173,13125,13114],{"class":4669},[4173,13127,6390],{"class":4784},[4173,13129,13119],{"class":4661},[4173,13131,13034],{"class":4784},[4173,13133,6387],{"class":4788},[4173,13135,13114],{"class":4669},[4173,13137,6390],{"class":4784},[4173,13139,13119],{"class":4661},[4173,13141,6402],{"class":4784},[4173,13143,13144],{"class":4657,"line":270},[4173,13145,4761],{"emptyLinePlaceholder":4760},[4173,13147,13148],{"class":4657,"line":1263},[4173,13149,13150],{"class":4766},"# id -Gn alice | grep -w sudo\n",[414,13152,13153],{},"sudo \u003C- alice ist in der sudo-Gruppe",[414,13155,13156,6100,13161,6100,13164,13168,13169,6100,13173,6100,13176,6100,13180],{},[406,13157,13158],{},[42,13159,13160],{},"Hinweis:",[406,13162,13163],{},"Mit",[406,13165,13166],{},[42,13167,12704],{}," *lässt sich schnell überprüfen ob ein Benutzer Sudo-Rechte hat (*",[406,13170,13171],{},[42,13172,13062],{},[406,13174,13175],{},"in Gruppen) oder zu Dienst-Gruppen wie",[406,13177,13178],{},[42,13179,8042],{},[406,13181,13182],{},"gehört.",[11,13184,13185],{"id":13185},"umask",[414,13187,13188,6100,13190,13192,13193,13196],{},[42,13189,12709],{},[42,13191,13185],{}," (User file-creation Mode Mask) bestimmt, welche Berechtigungsbits beim Erstellen neuer Dateien und Verzeichnisse ",[42,13194,13195],{},"automatisch entfernt"," werden. Sie gilt für die aktuelle Shell-Sitzung und alle daraus gestarteten Prozesse.",[414,13198,13199,6100,13201],{},[42,13200,7941],{},[42,13202,13203,13204,6100,13206],{},"umask ",[4173,13205,12720],{},[4173,13207,13208],{},"MASKE",[16,13210,13212],{"id":13211},"funktionsprinzip","Funktionsprinzip",[414,13214,13215,13216,13219],{},"Die umask wirkt als ",[42,13217,13218],{},"Subtraktion"," von den maximalen Standardrechten:",[414,13221,13222,13223,13225,13226,13228],{},"Datei Verzeichnis",[7135,13224],{},"\nMaximale Rechte: 666 777",[7135,13227],{},"\nminus umask: -022 -022",[13230,13231],"hr",{},[414,13233,13234],{},"Ergebnis: 644 755",[414,13236,13237,6100,13242],{},[406,13238,13239],{},[42,13240,13241],{},"Wichtig:",[406,13243,13244],{},"Bei Dateien ist das Ausführ-Bit (1) grundsätzlich nicht im Maximum enthalten. Dateien werden nie direkt als ausführbar erstellt.",[16,13246,12780],{"id":13247},"flags-1",[765,13249,13250,13262],{},[768,13251,13252],{},[771,13253,13254,13258],{},[774,13255,13256],{},[42,13257,12791],{},[774,13259,13260],{},[42,13261,6733],{},[787,13263,13264,13272],{},[771,13265,13266,13269],{},[792,13267,13268],{},"-S",[792,13270,13271],{},"Symbolische Darstellung ausgeben (z. B. u=rwx,g=rx,o=rx)",[771,13273,13274,13277],{},[792,13275,13276],{},"-p",[792,13278,13279],{},"Aktuelle umask als umask-Befehl ausgeben (für Shell-Skripte \u002F Sicherung geeignet)",[16,13281,13283],{"id":13282},"häufige-umask-werte","Häufige umask-Werte",[765,13285,13286,13308],{},[768,13287,13288],{},[771,13289,13290,13294,13298,13303],{},[774,13291,13292],{},[42,13293,13185],{},[774,13295,13296],{},[42,13297,6797],{},[774,13299,13300],{},[42,13301,13302],{},"Verzeichnisse",[774,13304,13305],{},[42,13306,13307],{},"Typischer Einsatz",[787,13309,13310,13324,13338,13352],{},[771,13311,13312,13315,13318,13321],{},[792,13313,13314],{},"0022",[792,13316,13317],{},"rw-r--r-- (644)",[792,13319,13320],{},"rwxr-xr-x (755)",[792,13322,13323],{},"Standard auf den meisten Systemen",[771,13325,13326,13329,13332,13335],{},[792,13327,13328],{},"0027",[792,13330,13331],{},"rw-r----- (640)",[792,13333,13334],{},"rwxr-x--- (750)",[792,13336,13337],{},"Sicherere Server-Umgebungen",[771,13339,13340,13343,13346,13349],{},[792,13341,13342],{},"0077",[792,13344,13345],{},"rw------- (600)",[792,13347,13348],{},"rwx------ (700)",[792,13350,13351],{},"Sehr restriktiv (nur Eigentümer)",[771,13353,13354,13357,13360,13363],{},[792,13355,13356],{},"0002",[792,13358,13359],{},"rw-rw-r-- (664)",[792,13361,13362],{},"rwxrwxr-x (775)",[792,13364,13365],{},"Kollaborative Umgebungen",[16,13367,9925],{"id":13368},"beispiele-1",[11,13370,13372],{"id":13371},"aktuelle-umask-numerisch-anzeigen","Aktuelle umask numerisch anzeigen",[4647,13374,13376],{"className":4649,"code":13375,"language":4651,"meta":269,"style":269},"umask\n\n# Aktuelle umask symbolisch anzeigen\n\numask -S\n\n# umask auf 027 setzen – gilt ab diesem Moment für alle neuen Dateien\n\numask 027\n\n# So prüfen welche Dateirechte mit der aktuellen umask entstehen\n\numask 022\n\ntouch testdatei.txt\n\nls -l testdatei.txt\n\n# umask dauerhaft setzen: in ~\u002F.bashrc oder \u002Fetc\u002Fprofile eintragen\n\necho \"umask 027\" >> ~\u002F.bashrc\n\n# umask als Befehl ausgeben (Skript-Sicherung)\n\numask -p\n\n",[4653,13377,13378,13383,13387,13392,13396,13403,13407,13412,13416,13423,13427,13432,13436,13443,13447,13454,13458,13467,13471,13476,13480,13493,13497,13502,13506],{"__ignoreMap":269},[4173,13379,13380],{"class":4657,"line":4658},[4173,13381,13382],{"class":4665},"umask\n",[4173,13384,13385],{"class":4657,"line":270},[4173,13386,4761],{"emptyLinePlaceholder":4760},[4173,13388,13389],{"class":4657,"line":1263},[4173,13390,13391],{"class":4766},"# Aktuelle umask symbolisch anzeigen\n",[4173,13393,13394],{"class":4657,"line":4770},[4173,13395,4761],{"emptyLinePlaceholder":4760},[4173,13397,13398,13400],{"class":4657,"line":4775},[4173,13399,13185],{"class":4665},[4173,13401,13402],{"class":4665}," -S\n",[4173,13404,13405],{"class":4657,"line":6320},[4173,13406,4761],{"emptyLinePlaceholder":4760},[4173,13408,13409],{"class":4657,"line":6325},[4173,13410,13411],{"class":4766},"# umask auf 027 setzen – gilt ab diesem Moment für alle neuen Dateien\n",[4173,13413,13414],{"class":4657,"line":6343},[4173,13415,4761],{"emptyLinePlaceholder":4760},[4173,13417,13418,13420],{"class":4657,"line":6348},[4173,13419,13185],{"class":4665},[4173,13421,13422],{"class":4665}," 027\n",[4173,13424,13425],{"class":4657,"line":6457},[4173,13426,4761],{"emptyLinePlaceholder":4760},[4173,13428,13429],{"class":4657,"line":6462},[4173,13430,13431],{"class":4766},"# So prüfen welche Dateirechte mit der aktuellen umask entstehen\n",[4173,13433,13434],{"class":4657,"line":6468},[4173,13435,4761],{"emptyLinePlaceholder":4760},[4173,13437,13438,13440],{"class":4657,"line":6473},[4173,13439,13185],{"class":4665},[4173,13441,13442],{"class":4665}," 022\n",[4173,13444,13445],{"class":4657,"line":6479},[4173,13446,4761],{"emptyLinePlaceholder":4760},[4173,13448,13449,13451],{"class":4657,"line":6503},[4173,13450,11437],{"class":4661},[4173,13452,13453],{"class":4669}," testdatei.txt\n",[4173,13455,13456],{"class":4657,"line":6516},[4173,13457,4761],{"emptyLinePlaceholder":4760},[4173,13459,13460,13463,13465],{"class":4657,"line":6971},[4173,13461,13462],{"class":4661},"ls",[4173,13464,10277],{"class":4665},[4173,13466,13453],{"class":4669},[4173,13468,13469],{"class":4657,"line":10649},[4173,13470,4761],{"emptyLinePlaceholder":4760},[4173,13472,13473],{"class":4657,"line":10654},[4173,13474,13475],{"class":4766},"# umask dauerhaft setzen: in ~\u002F.bashrc oder \u002Fetc\u002Fprofile eintragen\n",[4173,13477,13478],{"class":4657,"line":10659},[4173,13479,4761],{"emptyLinePlaceholder":4760},[4173,13481,13482,13484,13487,13490],{"class":4657,"line":10664},[4173,13483,6309],{"class":4665},[4173,13485,13486],{"class":4669}," \"umask 027\"",[4173,13488,13489],{"class":4788}," >>",[4173,13491,13492],{"class":4669}," ~\u002F.bashrc\n",[4173,13494,13495],{"class":4657,"line":10676},[4173,13496,4761],{"emptyLinePlaceholder":4760},[4173,13498,13499],{"class":4657,"line":10681},[4173,13500,13501],{"class":4766},"# umask als Befehl ausgeben (Skript-Sicherung)\n",[4173,13503,13504],{"class":4657,"line":10702},[4173,13505,4761],{"emptyLinePlaceholder":4760},[4173,13507,13508,13510],{"class":4657,"line":10707},[4173,13509,13185],{"class":4665},[4173,13511,13512],{"class":4665}," -p\n",[11,13514,13516],{"id":13515},"temporäre-umask-in-einem-subshell-block-nur-in-dieser-subshell-aktiv","Temporäre umask in einem Subshell-Block (nur in dieser Subshell aktiv)",[414,13518,13519],{},"(umask 077; touch geheim.txt; ls -l geheim.txt)",[16,13521,12997],{"id":13522},"ausgabe-1",[11,13524,13185],{"id":13525},"umask-1",[414,13527,13314],{},[11,13529,13531],{"id":13530},"umask-s","umask -S",[4647,13533,13535],{"className":4649,"code":13534,"language":4651,"meta":269,"style":269},"u=rwx,g=rx,o=rx\n\n# umask 027 ; umask -S\n\nu=rwx,g=rx,o=\n\n# umask -p\n\numask 0022\n\n# touch testdatei.txt ; ls -l testdatei.txt (bei umask 022)\n\n",[4653,13536,13537,13563,13567,13572,13576,13595,13599,13604,13608,13615,13619],{"__ignoreMap":269},[4173,13538,13539,13542,13544,13547,13550,13552,13555,13558,13560],{"class":4657,"line":4658},[4173,13540,13541],{"class":4784},"u",[4173,13543,6387],{"class":4788},[4173,13545,13546],{"class":4669},"rwx,",[4173,13548,13549],{"class":4784},"g",[4173,13551,6387],{"class":4788},[4173,13553,13554],{"class":4669},"rx,",[4173,13556,13557],{"class":4784},"o",[4173,13559,6387],{"class":4788},[4173,13561,13562],{"class":4669},"rx\n",[4173,13564,13565],{"class":4657,"line":270},[4173,13566,4761],{"emptyLinePlaceholder":4760},[4173,13568,13569],{"class":4657,"line":1263},[4173,13570,13571],{"class":4766},"# umask 027 ; umask -S\n",[4173,13573,13574],{"class":4657,"line":4770},[4173,13575,4761],{"emptyLinePlaceholder":4760},[4173,13577,13578,13580,13582,13584,13586,13588,13590,13592],{"class":4657,"line":4775},[4173,13579,13541],{"class":4784},[4173,13581,6387],{"class":4788},[4173,13583,13546],{"class":4669},[4173,13585,13549],{"class":4784},[4173,13587,6387],{"class":4788},[4173,13589,13554],{"class":4669},[4173,13591,13557],{"class":4784},[4173,13593,13594],{"class":4788},"=\n",[4173,13596,13597],{"class":4657,"line":6320},[4173,13598,4761],{"emptyLinePlaceholder":4760},[4173,13600,13601],{"class":4657,"line":6325},[4173,13602,13603],{"class":4766},"# umask -p\n",[4173,13605,13606],{"class":4657,"line":6343},[4173,13607,4761],{"emptyLinePlaceholder":4760},[4173,13609,13610,13612],{"class":4657,"line":6348},[4173,13611,13185],{"class":4665},[4173,13613,13614],{"class":4665}," 0022\n",[4173,13616,13617],{"class":4657,"line":6457},[4173,13618,4761],{"emptyLinePlaceholder":4760},[4173,13620,13621],{"class":4657,"line":6462},[4173,13622,13623],{"class":4766},"# touch testdatei.txt ; ls -l testdatei.txt (bei umask 022)\n",[414,13625,13626],{},"-rw-r--r-- 1 matta matta 0 Apr 29 10:00 testdatei.txt",[11,13628,13519],{"id":13629},"umask-077-touch-geheimtxt-ls-l-geheimtxt",[414,13631,13632],{},"-rw------- 1 matta matta 0 Apr 29 10:00 geheim.txt",[414,13634,13635,6100,13640,6100,13643,6100,13648,6100,13651,6100,13656,6100,13659,6100,13664],{},[406,13636,13637],{},[42,13638,13639],{},"Tipp:",[406,13641,13642],{},"Die umask gilt nur für die aktuelle Shell-Sitzung. Soll sie dauerhaft aktiv sein, muss sie in",[406,13644,13645],{},[42,13646,13647],{},"\u002Fetc\u002Fprofile",[406,13649,13650],{},"(systemweit) oder",[406,13652,13653],{},[42,13654,13655],{},"~\u002F.bashrc",[406,13657,13658],{},"\u002F",[406,13660,13661],{},[42,13662,13663],{},"~\u002F.profile",[406,13665,13666],{},"(benutzerspezifisch) eingetragen werden.",[11,13668,13669],{"id":13669},"chown",[414,13671,13672,13674,13675,13678,13679,13682,13683,13686],{},[42,13673,12709],{}," Ändert den Eigentümer (",[42,13676,13677],{},"user",") und\u002Foder die Gruppe (",[42,13680,13681],{},"group",") einer Datei oder eines Verzeichnisses. Nur ",[42,13684,13685],{},"root"," darf beliebige Eigentümer setzen; normale Benutzer können nur Dateien ihrer eigenen Gruppe zuweisen.",[414,13688,13689,6100,13691],{},[42,13690,7941],{},[42,13692,13693,13694,13696,13697,13702],{},"chown ",[4173,13695,12720],{}," [EIGENTÜMER]",[4173,13698,13699],{},[13700,13701],"gruppe",{}," DATEI...",[16,13704,13706],{"id":13705},"syntax-varianten","Syntax-Varianten",[765,13708,13709,13722],{},[768,13710,13711],{},[771,13712,13713,13718],{},[774,13714,13715],{},[42,13716,13717],{},"Syntax",[774,13719,13720],{},[42,13721,571],{},[787,13723,13724,13732,13740,13748,13759],{},[771,13725,13726,13729],{},[792,13727,13728],{},"chown alice datei",[792,13730,13731],{},"Nur Eigentümer auf alice setzen",[771,13733,13734,13737],{},[792,13735,13736],{},"chown alice:dev datei",[792,13738,13739],{},"Eigentümer auf alice, Gruppe auf dev setzen",[771,13741,13742,13745],{},[792,13743,13744],{},"chown alice: datei",[792,13746,13747],{},"Eigentümer auf alice, Gruppe auf alice's Primärgruppe",[771,13749,13750,13756],{},[792,13751,13693,13752,13755],{},[13753,13754],"dev",{}," datei",[792,13757,13758],{},"Nur Gruppe ändern (Eigentümer unverändert)",[771,13760,13761,13764],{},[792,13762,13763],{},"chown 1001:1002 datei",[792,13765,13766],{},"Per numerischer UID:GID setzen",[16,13768,12780],{"id":13769},"flags-2",[765,13771,13772,13784],{},[768,13773,13774],{},[771,13775,13776,13780],{},[774,13777,13778],{},[42,13779,12791],{},[774,13781,13782],{},[42,13783,6733],{},[787,13785,13786,13794,13801,13808,13815,13823,13831,13839,13847],{},[771,13787,13788,13791],{},[792,13789,13790],{},"-R",[792,13792,13793],{},"Rekursiv: Verzeichnis und alle enthaltenen Dateien\u002FUnterverzeichnisse",[771,13795,13796,13798],{},[792,13797,8983],{},[792,13799,13800],{},"Verbose – zeigt jede durchgeführte Änderung an",[771,13802,13803,13805],{},[792,13804,9014],{},[792,13806,13807],{},"Wie -v, aber zeigt nur Zeilen mit tatsächlichen Änderungen",[771,13809,13810,13812],{},[792,13811,10577],{},[792,13813,13814],{},"Fehlermeldungen unterdrücken (force silent)",[771,13816,13817,13820],{},[792,13818,13819],{},"-h",[792,13821,13822],{},"Bei symbolischen Links: den Link selbst ändern, nicht das Ziel",[771,13824,13825,13828],{},[792,13826,13827],{},"--reference=REF",[792,13829,13830],{},"Eigentümer und Gruppe von der Datei REF übernehmen",[771,13832,13833,13836],{},[792,13834,13835],{},"--from=EIGEN:GRP",[792,13837,13838],{},"Nur Dateien ändern die momentan exakt diesen Eigentümer\u002FGruppe haben",[771,13840,13841,13844],{},[792,13842,13843],{},"-L",[792,13845,13846],{},"Bei -R: symbolische Links in Verzeichnisse verfolgen",[771,13848,13849,13852],{},[792,13850,13851],{},"-P",[792,13853,13854],{},"Bei -R: keine symbolischen Links verfolgen (Standard)",[16,13856,9925],{"id":13857},"beispiele-2",[11,13859,13861],{"id":13860},"eigentümer-einer-einzelnen-datei-ändern","Eigentümer einer einzelnen Datei ändern",[4647,13863,13865],{"className":4649,"code":13864,"language":4651,"meta":269,"style":269},"chown alice datei.txt\n\n# Eigentümer und Gruppe gleichzeitig setzen\n\nchown alice:entwickler datei.txt\n\n# Nur die Gruppe einer Datei ändern\n\nchown :webteam \u002Fvar\u002Fwww\u002Fhtml\u002Findex.html\n\n# Rekursiv für ein Webserver-Verzeichnis\n\nchown -R www-data:www-data \u002Fvar\u002Fwww\u002Fhtml\u002F\n\n# Verbose: Jede Änderung protokollieren\n\nchown -Rv matta:matta \u002Fhome\u002Fmatta\u002F\n\n# Eigentümer nur ändern wenn aktuell root gehört\n\nchown --from=root:root alice:alice \u002Fhome\u002Falice\u002Fwichtig.txt\n\n# Eigentümer\u002FGruppe von einer anderen Datei übernehmen\n\nchown --reference=\u002Fetc\u002Fpasswd \u002Ftmp\u002Fneue_passwd_kopie\n\n# Symbolischen Link selbst (nicht Ziel) ändern\n\nchown -h alice symlink_auf_datei\n\n# Numerische UID und GID verwenden\n\nchown 1000:1000 datei.txt\n\n",[4653,13866,13867,13875,13879,13884,13888,13897,13901,13906,13910,13920,13924,13929,13933,13946,13950,13955,13959,13972,13976,13981,13985,13998,14002,14007,14011,14021,14025,14030,14034,14046,14050,14055,14059],{"__ignoreMap":269},[4173,13868,13869,13871,13873],{"class":4657,"line":4658},[4173,13870,13669],{"class":4661},[4173,13872,12983],{"class":4669},[4173,13874,8947],{"class":4669},[4173,13876,13877],{"class":4657,"line":270},[4173,13878,4761],{"emptyLinePlaceholder":4760},[4173,13880,13881],{"class":4657,"line":1263},[4173,13882,13883],{"class":4766},"# Eigentümer und Gruppe gleichzeitig setzen\n",[4173,13885,13886],{"class":4657,"line":4770},[4173,13887,4761],{"emptyLinePlaceholder":4760},[4173,13889,13890,13892,13895],{"class":4657,"line":4775},[4173,13891,13669],{"class":4661},[4173,13893,13894],{"class":4669}," alice:entwickler",[4173,13896,8947],{"class":4669},[4173,13898,13899],{"class":4657,"line":6320},[4173,13900,4761],{"emptyLinePlaceholder":4760},[4173,13902,13903],{"class":4657,"line":6325},[4173,13904,13905],{"class":4766},"# Nur die Gruppe einer Datei ändern\n",[4173,13907,13908],{"class":4657,"line":6343},[4173,13909,4761],{"emptyLinePlaceholder":4760},[4173,13911,13912,13914,13917],{"class":4657,"line":6348},[4173,13913,13669],{"class":4661},[4173,13915,13916],{"class":4669}," :webteam",[4173,13918,13919],{"class":4669}," \u002Fvar\u002Fwww\u002Fhtml\u002Findex.html\n",[4173,13921,13922],{"class":4657,"line":6457},[4173,13923,4761],{"emptyLinePlaceholder":4760},[4173,13925,13926],{"class":4657,"line":6462},[4173,13927,13928],{"class":4766},"# Rekursiv für ein Webserver-Verzeichnis\n",[4173,13930,13931],{"class":4657,"line":6468},[4173,13932,4761],{"emptyLinePlaceholder":4760},[4173,13934,13935,13937,13940,13943],{"class":4657,"line":6473},[4173,13936,13669],{"class":4661},[4173,13938,13939],{"class":4665}," -R",[4173,13941,13942],{"class":4669}," www-data:www-data",[4173,13944,13945],{"class":4669}," \u002Fvar\u002Fwww\u002Fhtml\u002F\n",[4173,13947,13948],{"class":4657,"line":6479},[4173,13949,4761],{"emptyLinePlaceholder":4760},[4173,13951,13952],{"class":4657,"line":6503},[4173,13953,13954],{"class":4766},"# Verbose: Jede Änderung protokollieren\n",[4173,13956,13957],{"class":4657,"line":6516},[4173,13958,4761],{"emptyLinePlaceholder":4760},[4173,13960,13961,13963,13966,13969],{"class":4657,"line":6971},[4173,13962,13669],{"class":4661},[4173,13964,13965],{"class":4665}," -Rv",[4173,13967,13968],{"class":4669}," matta:matta",[4173,13970,13971],{"class":4669}," \u002Fhome\u002Fmatta\u002F\n",[4173,13973,13974],{"class":4657,"line":10649},[4173,13975,4761],{"emptyLinePlaceholder":4760},[4173,13977,13978],{"class":4657,"line":10654},[4173,13979,13980],{"class":4766},"# Eigentümer nur ändern wenn aktuell root gehört\n",[4173,13982,13983],{"class":4657,"line":10659},[4173,13984,4761],{"emptyLinePlaceholder":4760},[4173,13986,13987,13989,13992,13995],{"class":4657,"line":10664},[4173,13988,13669],{"class":4661},[4173,13990,13991],{"class":4665}," --from=root:root",[4173,13993,13994],{"class":4669}," alice:alice",[4173,13996,13997],{"class":4669}," \u002Fhome\u002Falice\u002Fwichtig.txt\n",[4173,13999,14000],{"class":4657,"line":10676},[4173,14001,4761],{"emptyLinePlaceholder":4760},[4173,14003,14004],{"class":4657,"line":10681},[4173,14005,14006],{"class":4766},"# Eigentümer\u002FGruppe von einer anderen Datei übernehmen\n",[4173,14008,14009],{"class":4657,"line":10702},[4173,14010,4761],{"emptyLinePlaceholder":4760},[4173,14012,14013,14015,14018],{"class":4657,"line":10707},[4173,14014,13669],{"class":4661},[4173,14016,14017],{"class":4665}," --reference=\u002Fetc\u002Fpasswd",[4173,14019,14020],{"class":4669}," \u002Ftmp\u002Fneue_passwd_kopie\n",[4173,14022,14023],{"class":4657,"line":10712},[4173,14024,4761],{"emptyLinePlaceholder":4760},[4173,14026,14027],{"class":4657,"line":10717},[4173,14028,14029],{"class":4766},"# Symbolischen Link selbst (nicht Ziel) ändern\n",[4173,14031,14032],{"class":4657,"line":10727},[4173,14033,4761],{"emptyLinePlaceholder":4760},[4173,14035,14036,14038,14041,14043],{"class":4657,"line":10732},[4173,14037,13669],{"class":4661},[4173,14039,14040],{"class":4665}," -h",[4173,14042,12983],{"class":4669},[4173,14044,14045],{"class":4669}," symlink_auf_datei\n",[4173,14047,14048],{"class":4657,"line":10737},[4173,14049,4761],{"emptyLinePlaceholder":4760},[4173,14051,14052],{"class":4657,"line":10742},[4173,14053,14054],{"class":4766},"# Numerische UID und GID verwenden\n",[4173,14056,14057],{"class":4657,"line":10752},[4173,14058,4761],{"emptyLinePlaceholder":4760},[4173,14060,14061,14063,14066],{"class":4657,"line":10757},[4173,14062,13669],{"class":4661},[4173,14064,14065],{"class":4669}," 1000:1000",[4173,14067,8947],{"class":4669},[16,14069,12997],{"id":14070},"ausgabe-2",[11,14072,14074],{"id":14073},"chown-v-alicealice-homealicetesttxt","chown -v alice:alice \u002Fhome\u002Falice\u002Ftest.txt",[414,14076,14077],{},"Eigentümer von '\u002Fhome\u002Falice\u002Ftest.txt' von root:root zu alice:alice geändert",[11,14079,14081],{"id":14080},"chown-vc-www-datawww-data-varwwwhtml","chown -Vc www-data:www-data \u002Fvar\u002Fwww\u002Fhtml\u002F",[414,14083,14084],{},"Eigentümer von '\u002Fvar\u002Fwww\u002Fhtml\u002F' von matta:matta zu www-data:www-data geändert",[414,14086,14087],{},"Eigentümer von '\u002Fvar\u002Fwww\u002Fhtml\u002Findex.html' von matta:matta zu www-data:www-data geändert",[414,14089,14090],{},"Eigentümer von '\u002Fvar\u002Fwww\u002Fhtml\u002Fstyle.css' von matta:matta zu www-data:www-data geändert",[414,14092,14093,6100,14098,6100,14101,6100,14106,6100,14109,6100,14113],{},[406,14094,14095],{},[42,14096,14097],{},"Sicherheitshinweis:",[406,14099,14100],{},"Sei bei rekursivem",[406,14102,14103],{},[42,14104,14105],{},"chown -R",[406,14107,14108],{},"auf",[406,14110,14111],{},[42,14112,13658],{},[406,14114,14115],{},"oder wichtigen Systemverzeichnissen äußerst vorsichtig – ein falsches Ziel kann das System unbrauchbar machen.",[11,14117,14118],{"id":14118},"chmod",[414,14120,14121,14123,14124,8629,14127,7445,14130,7834],{},[42,14122,12709],{}," Ändert die Zugriffsrechte (Berechtigungen) von Dateien und Verzeichnissen. Die Rechte werden für drei Klassen vergeben: ",[42,14125,14126],{},"Eigentümer (u)",[42,14128,14129],{},"Gruppe (g)",[42,14131,14132],{},"Andere (o)",[414,14134,14135,6100,14137],{},[42,14136,7941],{},[42,14138,14139,14140,14142],{},"chmod ",[4173,14141,12720],{}," MODUS DATEI...",[16,14144,14146],{"id":14145},"bedeutung-der-rechte","Bedeutung der Rechte",[765,14148,14149,14178],{},[768,14150,14151],{},[771,14152,14153,14158,14163,14168,14173],{},[774,14154,14155],{},[42,14156,14157],{},"Recht",[774,14159,14160],{},[42,14161,14162],{},"Zeichen",[774,14164,14165],{},[42,14166,14167],{},"Oktal",[774,14169,14170],{},[42,14171,14172],{},"Auf Dateien",[774,14174,14175],{},[42,14176,14177],{},"Auf Verzeichnisse",[787,14179,14180,14196,14213],{},[771,14181,14182,14185,14188,14190,14193],{},[792,14183,14184],{},"Lesen",[792,14186,14187],{},"r",[792,14189,2894],{},[792,14191,14192],{},"Dateiinhalt lesen",[792,14194,14195],{},"Verzeichnisinhalt auflisten (ls)",[771,14197,14198,14201,14204,14207,14210],{},[792,14199,14200],{},"Schreiben",[792,14202,14203],{},"w",[792,14205,14206],{},"2",[792,14208,14209],{},"Datei bearbeiten\u002Flöschen",[792,14211,14212],{},"Dateien erstellen\u002Flöschen im Verz.",[771,14214,14215,14218,14221,14224,14227],{},[792,14216,14217],{},"Ausführen",[792,14219,14220],{},"x",[792,14222,14223],{},"1",[792,14225,14226],{},"Datei ausführen",[792,14228,14229],{},"In Verzeichnis wechseln (cd)",[16,14231,14233],{"id":14232},"oktalnotation-vollständige-tabelle","Oktalnotation – vollständige Tabelle",[765,14235,14236,14258],{},[768,14237,14238],{},[771,14239,14240,14244,14249,14254],{},[774,14241,14242],{},[42,14243,14167],{},[774,14245,14246],{},[42,14247,14248],{},"Binär",[774,14250,14251],{},[42,14252,14253],{},"Symbolisch",[774,14255,14256],{},[42,14257,6733],{},[787,14259,14260,14274,14288,14302,14314,14328,14341,14354],{},[771,14261,14262,14265,14268,14271],{},[792,14263,14264],{},"7",[792,14266,14267],{},"111",[792,14269,14270],{},"rwx",[792,14272,14273],{},"Lesen, Schreiben, Ausführen",[771,14275,14276,14279,14282,14285],{},[792,14277,14278],{},"6",[792,14280,14281],{},"110",[792,14283,14284],{},"rw-",[792,14286,14287],{},"Lesen, Schreiben",[771,14289,14290,14293,14296,14299],{},[792,14291,14292],{},"5",[792,14294,14295],{},"101",[792,14297,14298],{},"r-x",[792,14300,14301],{},"Lesen, Ausführen",[771,14303,14304,14306,14308,14311],{},[792,14305,2894],{},[792,14307,5961],{},[792,14309,14310],{},"r--",[792,14312,14313],{},"Nur Lesen",[771,14315,14316,14319,14322,14325],{},[792,14317,14318],{},"3",[792,14320,14321],{},"011",[792,14323,14324],{},"-wx",[792,14326,14327],{},"Schreiben, Ausführen",[771,14329,14330,14332,14335,14338],{},[792,14331,14206],{},[792,14333,14334],{},"010",[792,14336,14337],{},"-w-",[792,14339,14340],{},"Nur Schreiben",[771,14342,14343,14345,14348,14351],{},[792,14344,14223],{},[792,14346,14347],{},"001",[792,14349,14350],{},"--x",[792,14352,14353],{},"Nur Ausführen",[771,14355,14356,14358,14361,14364],{},[792,14357,12749],{},[792,14359,14360],{},"000",[792,14362,14363],{},"---",[792,14365,14366],{},"Keine Rechte",[16,14368,14370],{"id":14369},"symbolische-notation","Symbolische Notation",[765,14372,14373,14385],{},[768,14374,14375],{},[771,14376,14377,14381],{},[774,14378,14379],{},[42,14380,14162],{},[774,14382,14383],{},[42,14384,6733],{},[787,14386,14387,14394,14401,14408,14415,14423,14430,14437,14444,14451,14458,14466,14473],{},[771,14388,14389,14391],{},[792,14390,13541],{},[792,14392,14393],{},"Eigentümer (user\u002Fowner)",[771,14395,14396,14398],{},[792,14397,13549],{},[792,14399,14400],{},"Gruppe (group)",[771,14402,14403,14405],{},[792,14404,13557],{},[792,14406,14407],{},"Andere (others)",[771,14409,14410,14412],{},[792,14411,4687],{},[792,14413,14414],{},"Alle (all = u+g+o)",[771,14416,14417,14420],{},[792,14418,14419],{},"+",[792,14421,14422],{},"Recht hinzufügen",[771,14424,14425,14427],{},[792,14426,4778],{},[792,14428,14429],{},"Recht entfernen",[771,14431,14432,14434],{},[792,14433,6387],{},[792,14435,14436],{},"Recht exakt setzen (andere Bits werden gelöscht)",[771,14438,14439,14441],{},[792,14440,14187],{},[792,14442,14443],{},"Lesen (read = 4)",[771,14445,14446,14448],{},[792,14447,14203],{},[792,14449,14450],{},"Schreiben (write = 2)",[771,14452,14453,14455],{},[792,14454,14220],{},[792,14456,14457],{},"Ausführen (execute = 1)",[771,14459,14460,14463],{},[792,14461,14462],{},"X",[792,14464,14465],{},"Ausführen nur setzen wenn bereits woanders x gesetzt ist",[771,14467,14468,14470],{},[792,14469,12522],{},[792,14471,14472],{},"SUID \u002F SGID setzen",[771,14474,14475,14478],{},[792,14476,14477],{},"t",[792,14479,14480],{},"Sticky Bit setzen",[16,14482,12780],{"id":14483},"flags-3",[765,14485,14486,14498],{},[768,14487,14488],{},[771,14489,14490,14494],{},[774,14491,14492],{},[42,14493,12791],{},[774,14495,14496],{},[42,14497,6733],{},[787,14499,14500,14507,14514,14521,14528],{},[771,14501,14502,14504],{},[792,14503,13790],{},[792,14505,14506],{},"Rekursiv – alle Dateien und Unterverzeichnisse",[771,14508,14509,14511],{},[792,14510,8983],{},[792,14512,14513],{},"Verbose – jede Änderung ausgeben",[771,14515,14516,14518],{},[792,14517,9014],{},[792,14519,14520],{},"Nur tatsächliche Änderungen ausgeben",[771,14522,14523,14525],{},[792,14524,10577],{},[792,14526,14527],{},"Fehlermeldungen unterdrücken",[771,14529,14530,14533],{},[792,14531,14532],{},"--reference=DATEI",[792,14534,14535],{},"Rechte von Referenzdatei übernehmen",[16,14537,14539],{"id":14538},"typische-oktalwerte","Typische Oktalwerte",[765,14541,14542,14558],{},[768,14543,14544],{},[771,14545,14546,14550,14554],{},[774,14547,14548],{},[42,14549,14167],{},[774,14551,14552],{},[42,14553,14253],{},[774,14555,14556],{},[42,14557,854],{},[787,14559,14560,14571,14582,14593,14604,14615,14626],{},[771,14561,14562,14565,14568],{},[792,14563,14564],{},"644",[792,14566,14567],{},"rw-r--r--",[792,14569,14570],{},"Standard für normale Dateien",[771,14572,14573,14576,14579],{},[792,14574,14575],{},"755",[792,14577,14578],{},"rwxr-xr-x",[792,14580,14581],{},"Standard für Verzeichnisse\u002FSkripte",[771,14583,14584,14587,14590],{},[792,14585,14586],{},"600",[792,14588,14589],{},"rw-------",[792,14591,14592],{},"Private Schlüssel (.ssh\u002Fid_rsa)",[771,14594,14595,14598,14601],{},[792,14596,14597],{},"700",[792,14599,14600],{},"rwx------",[792,14602,14603],{},"Private Verzeichnisse",[771,14605,14606,14609,14612],{},[792,14607,14608],{},"664",[792,14610,14611],{},"rw-rw-r--",[792,14613,14614],{},"Gemeinsame Projektdateien",[771,14616,14617,14620,14623],{},[792,14618,14619],{},"777",[792,14621,14622],{},"rwxrwxrwx",[792,14624,14625],{},"Alle Rechte für alle (gefährlich!)",[771,14627,14628,14631,14634],{},[792,14629,14630],{},"640",[792,14632,14633],{},"rw-r-----",[792,14635,14636],{},"Sensible Konfigdateien",[16,14638,9925],{"id":14639},"beispiele-3",[11,14641,14643],{"id":14642},"oktal-typisch-für-shell-skripte","Oktal: typisch für Shell-Skripte",[4647,14645,14647],{"className":4649,"code":14646,"language":4651,"meta":269,"style":269},"chmod 755 skript.sh\n\n# Oktal: typisch für normale Dateien\n\nchmod 644 README.txt\n\n# Oktal: nur Owner darf lesen und schreiben (z.B. SSH-Key)\n\nchmod 600 ~\u002F.ssh\u002Fid_rsa\n\n# Symbolisch: Ausführrecht für alle hinzufügen\n\nchmod a+x skript.sh\n\n# Symbolisch: Schreibrecht für Andere entfernen\n\nchmod o-w datei.txt\n\n# Symbolisch: Alle Rechte exakt setzen (löscht alles was nicht angegeben)\n\nchmod u=rwx,g=rx,o= private.sh\n\n# Symbolisch: Gruppe Schreibrecht hinzufügen\n\nchmod g+w projekt\u002F\n\n# Rekursiv für Webverzeichnis\n\nchmod -R 755 \u002Fvar\u002Fwww\u002Fhtml\u002F\n\n# Nur Ausführrecht setzen wenn es bereits für jemanden gesetzt war\n\nchmod -R a+X verzeichnis\u002F\n\n# Rechte von anderer Datei übernehmen\n\nchmod --reference=\u002Fetc\u002Fpasswd \u002Ftmp\u002Fmeine_passwdkopie\n\n# Verbose anzeigen was geändert wird\n\nchmod -vc 644 *.txt\n\n",[4653,14648,14649,14659,14663,14668,14672,14682,14686,14691,14695,14705,14709,14714,14718,14727,14731,14736,14740,14749,14753,14758,14762,14772,14776,14781,14785,14795,14799,14804,14808,14818,14822,14827,14831,14843,14847,14852,14856,14865,14869,14874,14878],{"__ignoreMap":269},[4173,14650,14651,14653,14656],{"class":4657,"line":4658},[4173,14652,14118],{"class":4661},[4173,14654,14655],{"class":4665}," 755",[4173,14657,14658],{"class":4669}," skript.sh\n",[4173,14660,14661],{"class":4657,"line":270},[4173,14662,4761],{"emptyLinePlaceholder":4760},[4173,14664,14665],{"class":4657,"line":1263},[4173,14666,14667],{"class":4766},"# Oktal: typisch für normale Dateien\n",[4173,14669,14670],{"class":4657,"line":4770},[4173,14671,4761],{"emptyLinePlaceholder":4760},[4173,14673,14674,14676,14679],{"class":4657,"line":4775},[4173,14675,14118],{"class":4661},[4173,14677,14678],{"class":4665}," 644",[4173,14680,14681],{"class":4669}," README.txt\n",[4173,14683,14684],{"class":4657,"line":6320},[4173,14685,4761],{"emptyLinePlaceholder":4760},[4173,14687,14688],{"class":4657,"line":6325},[4173,14689,14690],{"class":4766},"# Oktal: nur Owner darf lesen und schreiben (z.B. SSH-Key)\n",[4173,14692,14693],{"class":4657,"line":6343},[4173,14694,4761],{"emptyLinePlaceholder":4760},[4173,14696,14697,14699,14702],{"class":4657,"line":6348},[4173,14698,14118],{"class":4661},[4173,14700,14701],{"class":4665}," 600",[4173,14703,14704],{"class":4669}," ~\u002F.ssh\u002Fid_rsa\n",[4173,14706,14707],{"class":4657,"line":6457},[4173,14708,4761],{"emptyLinePlaceholder":4760},[4173,14710,14711],{"class":4657,"line":6462},[4173,14712,14713],{"class":4766},"# Symbolisch: Ausführrecht für alle hinzufügen\n",[4173,14715,14716],{"class":4657,"line":6468},[4173,14717,4761],{"emptyLinePlaceholder":4760},[4173,14719,14720,14722,14725],{"class":4657,"line":6473},[4173,14721,14118],{"class":4661},[4173,14723,14724],{"class":4669}," a+x",[4173,14726,14658],{"class":4669},[4173,14728,14729],{"class":4657,"line":6479},[4173,14730,4761],{"emptyLinePlaceholder":4760},[4173,14732,14733],{"class":4657,"line":6503},[4173,14734,14735],{"class":4766},"# Symbolisch: Schreibrecht für Andere entfernen\n",[4173,14737,14738],{"class":4657,"line":6516},[4173,14739,4761],{"emptyLinePlaceholder":4760},[4173,14741,14742,14744,14747],{"class":4657,"line":6971},[4173,14743,14118],{"class":4661},[4173,14745,14746],{"class":4669}," o-w",[4173,14748,8947],{"class":4669},[4173,14750,14751],{"class":4657,"line":10649},[4173,14752,4761],{"emptyLinePlaceholder":4760},[4173,14754,14755],{"class":4657,"line":10654},[4173,14756,14757],{"class":4766},"# Symbolisch: Alle Rechte exakt setzen (löscht alles was nicht angegeben)\n",[4173,14759,14760],{"class":4657,"line":10659},[4173,14761,4761],{"emptyLinePlaceholder":4760},[4173,14763,14764,14766,14769],{"class":4657,"line":10664},[4173,14765,14118],{"class":4661},[4173,14767,14768],{"class":4669}," u=rwx,g=rx,o=",[4173,14770,14771],{"class":4669}," private.sh\n",[4173,14773,14774],{"class":4657,"line":10676},[4173,14775,4761],{"emptyLinePlaceholder":4760},[4173,14777,14778],{"class":4657,"line":10681},[4173,14779,14780],{"class":4766},"# Symbolisch: Gruppe Schreibrecht hinzufügen\n",[4173,14782,14783],{"class":4657,"line":10702},[4173,14784,4761],{"emptyLinePlaceholder":4760},[4173,14786,14787,14789,14792],{"class":4657,"line":10707},[4173,14788,14118],{"class":4661},[4173,14790,14791],{"class":4669}," g+w",[4173,14793,14794],{"class":4669}," projekt\u002F\n",[4173,14796,14797],{"class":4657,"line":10712},[4173,14798,4761],{"emptyLinePlaceholder":4760},[4173,14800,14801],{"class":4657,"line":10717},[4173,14802,14803],{"class":4766},"# Rekursiv für Webverzeichnis\n",[4173,14805,14806],{"class":4657,"line":10727},[4173,14807,4761],{"emptyLinePlaceholder":4760},[4173,14809,14810,14812,14814,14816],{"class":4657,"line":10732},[4173,14811,14118],{"class":4661},[4173,14813,13939],{"class":4665},[4173,14815,14655],{"class":4665},[4173,14817,13945],{"class":4669},[4173,14819,14820],{"class":4657,"line":10737},[4173,14821,4761],{"emptyLinePlaceholder":4760},[4173,14823,14824],{"class":4657,"line":10742},[4173,14825,14826],{"class":4766},"# Nur Ausführrecht setzen wenn es bereits für jemanden gesetzt war\n",[4173,14828,14829],{"class":4657,"line":10752},[4173,14830,4761],{"emptyLinePlaceholder":4760},[4173,14832,14833,14835,14837,14840],{"class":4657,"line":10757},[4173,14834,14118],{"class":4661},[4173,14836,13939],{"class":4665},[4173,14838,14839],{"class":4669}," a+X",[4173,14841,14842],{"class":4669}," verzeichnis\u002F\n",[4173,14844,14845],{"class":4657,"line":10762},[4173,14846,4761],{"emptyLinePlaceholder":4760},[4173,14848,14849],{"class":4657,"line":10767},[4173,14850,14851],{"class":4766},"# Rechte von anderer Datei übernehmen\n",[4173,14853,14854],{"class":4657,"line":10772},[4173,14855,4761],{"emptyLinePlaceholder":4760},[4173,14857,14858,14860,14862],{"class":4657,"line":10777},[4173,14859,14118],{"class":4661},[4173,14861,14017],{"class":4665},[4173,14863,14864],{"class":4669}," \u002Ftmp\u002Fmeine_passwdkopie\n",[4173,14866,14867],{"class":4657,"line":10782},[4173,14868,4761],{"emptyLinePlaceholder":4760},[4173,14870,14871],{"class":4657,"line":10787},[4173,14872,14873],{"class":4766},"# Verbose anzeigen was geändert wird\n",[4173,14875,14876],{"class":4657,"line":10800},[4173,14877,4761],{"emptyLinePlaceholder":4760},[4173,14879,14880,14882,14885,14887,14889],{"class":4657,"line":10805},[4173,14881,14118],{"class":4661},[4173,14883,14884],{"class":4665}," -vc",[4173,14886,14678],{"class":4665},[4173,14888,7078],{"class":4665},[4173,14890,14891],{"class":4669},".txt\n",[16,14893,12997],{"id":14894},"ausgabe-3",[11,14896,14898],{"id":14897},"vorher-nach-touch-skriptsh","Vorher (nach touch skript.sh)",[414,14900,14901],{},"-rw-r--r-- 1 matta matta 0 Apr 29 10:00 skript.sh",[11,14903,14905],{"id":14904},"chmod-755-skriptsh","chmod 755 skript.sh",[414,14907,14908],{},"-rwxr-xr-x 1 matta matta 0 Apr 29 10:00 skript.sh",[11,14910,14912],{"id":14911},"chmod-600-sshid_rsa","chmod 600 ~\u002F.ssh\u002Fid_rsa",[414,14914,14915],{},"-rw------- 1 matta matta 2610 Apr 29 10:00 \u002Fhome\u002Fmatta\u002F.ssh\u002Fid_rsa",[11,14917,14919],{"id":14918},"chmod-vc-644-txt","chmod -vc 644 *.txt",[414,14921,14922],{},"Modus von 'notizen.txt' geändert: 0664 (rw-rw-r--) -> 0644 (rw-r--r--)",[16,14924,14926],{"id":14925},"spezialbits","Spezialbits",[414,14928,14929,14931,14932,14934,14935,8629,14938,14941,14942,14945],{},[42,14930,12709],{}," Neben den normalen ",[42,14933,14270],{},"-Bits existieren drei zusätzliche Sonderbits: ",[42,14936,14937],{},"SUID",[42,14939,14940],{},"SGID"," und das ",[42,14943,14944],{},"Sticky Bit",". Sie werden im führenden vierten Oktalblock angegeben.",[470,14947,14949],{"id":14948},"suid-set-user-id-oktal-4xxx","SUID (Set User ID) – Oktal: 4xxx",[414,14951,14952],{},[42,14953,14954],{},"Auf ausführbare Dateien:",[21,14956,14957,14964],{},[24,14958,14959,14960,14963],{},"Das Programm läuft mit den Berechtigungen des ",[42,14961,14962],{},"Eigentümers"," der Datei – nicht mit denen des ausführenden Benutzers.",[24,14965,14966,14967,14970,14971,14973,14974,14977],{},"Typisches Beispiel: ",[42,14968,14969],{},"\u002Fusr\u002Fbin\u002Fpasswd"," gehört ",[42,14972,13685],{},". Jeder Benutzer darf es ausführen und dadurch sein Passwort in ",[42,14975,14976],{},"\u002Fetc\u002Fshadow"," ändern.",[414,14979,14980],{},[42,14981,14982],{},"Anzeige in ls -l:",[21,14984,14985,14996],{},[24,14986,14987,14989,14990,14992,14993],{},[42,14988,12522],{}," statt ",[42,14991,14220],{}," beim Eigentümer-Ausführbit, wenn SUID+x gesetzt: ",[42,14994,14995],{},"-rwsr-xr-x",[24,14997,14998,15001,15002,15005,15006],{},[42,14999,15000],{},"S"," (Großbuchstabe) wenn SUID gesetzt aber ",[42,15003,15004],{},"kein"," Ausführrecht: ",[42,15007,15008],{},"-rwSr--r--",[11,15010,15012],{"id":15011},"suid-symbolisch-setzen","SUID symbolisch setzen",[4647,15014,15016],{"className":4649,"code":15015,"language":4651,"meta":269,"style":269},"chmod u+s \u002Fusr\u002Fbin\u002Fmyprog\n\n# SUID oktal setzen (4 + normale Rechte)\n\nchmod 4755 \u002Fusr\u002Fbin\u002Fmyprog\n\n# SUID entfernen\n\nchmod u-s \u002Fusr\u002Fbin\u002Fmyprog\n\n# Alle SUID-Dateien im System finden (Sicherheitscheck!)\n\nfind \u002F -type f -perm -4000 -ls 2>\u002Fdev\u002Fnull\n\n# Beispiel: passwd hat SUID\n\nls -l \u002Fusr\u002Fbin\u002Fpasswd-rwsr-xr-x 1 root root 63960 Apr 13 2023 \u002Fusr\u002Fbin\u002Fpasswd\n\n",[4653,15017,15018,15028,15032,15037,15041,15050,15054,15059,15063,15072,15076,15081,15085,15111,15115,15120,15124],{"__ignoreMap":269},[4173,15019,15020,15022,15025],{"class":4657,"line":4658},[4173,15021,14118],{"class":4661},[4173,15023,15024],{"class":4669}," u+s",[4173,15026,15027],{"class":4669}," \u002Fusr\u002Fbin\u002Fmyprog\n",[4173,15029,15030],{"class":4657,"line":270},[4173,15031,4761],{"emptyLinePlaceholder":4760},[4173,15033,15034],{"class":4657,"line":1263},[4173,15035,15036],{"class":4766},"# SUID oktal setzen (4 + normale Rechte)\n",[4173,15038,15039],{"class":4657,"line":4770},[4173,15040,4761],{"emptyLinePlaceholder":4760},[4173,15042,15043,15045,15048],{"class":4657,"line":4775},[4173,15044,14118],{"class":4661},[4173,15046,15047],{"class":4665}," 4755",[4173,15049,15027],{"class":4669},[4173,15051,15052],{"class":4657,"line":6320},[4173,15053,4761],{"emptyLinePlaceholder":4760},[4173,15055,15056],{"class":4657,"line":6325},[4173,15057,15058],{"class":4766},"# SUID entfernen\n",[4173,15060,15061],{"class":4657,"line":6343},[4173,15062,4761],{"emptyLinePlaceholder":4760},[4173,15064,15065,15067,15070],{"class":4657,"line":6348},[4173,15066,14118],{"class":4661},[4173,15068,15069],{"class":4669}," u-s",[4173,15071,15027],{"class":4669},[4173,15073,15074],{"class":4657,"line":6457},[4173,15075,4761],{"emptyLinePlaceholder":4760},[4173,15077,15078],{"class":4657,"line":6462},[4173,15079,15080],{"class":4766},"# Alle SUID-Dateien im System finden (Sicherheitscheck!)\n",[4173,15082,15083],{"class":4657,"line":6468},[4173,15084,4761],{"emptyLinePlaceholder":4760},[4173,15086,15087,15089,15092,15094,15096,15099,15102,15105,15108],{"class":4657,"line":6473},[4173,15088,9459],{"class":4661},[4173,15090,15091],{"class":4669}," \u002F",[4173,15093,9497],{"class":4665},[4173,15095,10269],{"class":4669},[4173,15097,15098],{"class":4665}," -perm",[4173,15100,15101],{"class":4665}," -4000",[4173,15103,15104],{"class":4665}," -ls",[4173,15106,15107],{"class":4788}," 2>",[4173,15109,15110],{"class":4669},"\u002Fdev\u002Fnull\n",[4173,15112,15113],{"class":4657,"line":6479},[4173,15114,4761],{"emptyLinePlaceholder":4760},[4173,15116,15117],{"class":4657,"line":6503},[4173,15118,15119],{"class":4766},"# Beispiel: passwd hat SUID\n",[4173,15121,15122],{"class":4657,"line":6516},[4173,15123,4761],{"emptyLinePlaceholder":4760},[4173,15125,15126,15128,15130,15133,15135,15138,15140,15143,15146,15149,15152],{"class":4657,"line":6971},[4173,15127,13462],{"class":4661},[4173,15129,10277],{"class":4665},[4173,15131,15132],{"class":4669}," \u002Fusr\u002Fbin\u002Fpasswd-rwsr-xr-x",[4173,15134,10264],{"class":4665},[4173,15136,15137],{"class":4669}," root",[4173,15139,15137],{"class":4669},[4173,15141,15142],{"class":4665}," 63960",[4173,15144,15145],{"class":4669}," Apr",[4173,15147,15148],{"class":4665}," 13",[4173,15150,15151],{"class":4665}," 2023",[4173,15153,15154],{"class":4669}," \u002Fusr\u002Fbin\u002Fpasswd\n",[414,15156,15157],{},"^",[4647,15159,15161],{"className":4649,"code":15160,"language":4651,"meta":269,"style":269},"s = SUID + Ausführrecht\n\n",[4653,15162,15163],{"__ignoreMap":269},[4173,15164,15165,15167,15170,15173,15175],{"class":4657,"line":4658},[4173,15166,12522],{"class":4661},[4173,15168,15169],{"class":4669}," =",[4173,15171,15172],{"class":4669}," SUID",[4173,15174,11719],{"class":4669},[4173,15176,15177],{"class":4669}," Ausführrecht\n",[470,15179,15181],{"id":15180},"sgid-set-group-id-oktal-2xxx","SGID (Set Group ID) – Oktal: 2xxx",[414,15183,15184],{},[42,15185,14954],{},[21,15187,15188],{},[24,15189,15190,15191,15194],{},"Das Programm läuft mit den Rechten der ",[42,15192,15193],{},"Gruppe des Eigentümers"," (nicht der Gruppe des Aufrufers).",[414,15196,15197],{},[42,15198,15199],{},"Auf Verzeichnisse (häufigster Einsatz):",[21,15201,15202,15209],{},[24,15203,15204,15205,15208],{},"Alle ",[42,15206,15207],{},"neu erstellten Dateien und Unterverzeichnisse erben die Gruppe"," des übergeordneten Verzeichnisses.",[24,15210,15211],{},"Ideal für Teamverzeichnisse.",[414,15213,15214],{},[42,15215,14982],{},[21,15217,15218,15228],{},[24,15219,15220,14989,15222,15224,15225],{},[42,15221,12522],{},[42,15223,14220],{}," beim Gruppen-Ausführbit: ",[42,15226,15227],{},"drwxrwsr-x",[24,15229,15230,15232,15233],{},[42,15231,15000],{}," wenn SGID gesetzt aber kein Gruppen-Ausführrecht: ",[42,15234,15235],{},"drwxrwSr-x",[11,15237,15239],{"id":15238},"sgid-auf-einem-gemeinsamen-projektverzeichnis-setzen","SGID auf einem gemeinsamen Projektverzeichnis setzen",[4647,15241,15243],{"className":4649,"code":15242,"language":4651,"meta":269,"style":269},"chmod g+s \u002Fshared\u002Fprojekt\n\nchmod 2775 \u002Fshared\u002Fprojekt\n\n# Prüfen ob SGID gesetzt ist\n\nls -ld \u002Fshared\u002Fprojekt\n\n# Alle SGID-Verzeichnisse finden\n\nfind \u002F -type d -perm -2000 -ls 2>\u002Fdev\u002Fnulldrwxrwsr-x 2 alice entwickler 4096 Apr 29 10:00 \u002Fshared\u002Fprojekt\n\n",[4653,15244,15245,15255,15259,15268,15272,15277,15281,15290,15294,15299,15303],{"__ignoreMap":269},[4173,15246,15247,15249,15252],{"class":4657,"line":4658},[4173,15248,14118],{"class":4661},[4173,15250,15251],{"class":4669}," g+s",[4173,15253,15254],{"class":4669}," \u002Fshared\u002Fprojekt\n",[4173,15256,15257],{"class":4657,"line":270},[4173,15258,4761],{"emptyLinePlaceholder":4760},[4173,15260,15261,15263,15266],{"class":4657,"line":1263},[4173,15262,14118],{"class":4661},[4173,15264,15265],{"class":4665}," 2775",[4173,15267,15254],{"class":4669},[4173,15269,15270],{"class":4657,"line":4770},[4173,15271,4761],{"emptyLinePlaceholder":4760},[4173,15273,15274],{"class":4657,"line":4775},[4173,15275,15276],{"class":4766},"# Prüfen ob SGID gesetzt ist\n",[4173,15278,15279],{"class":4657,"line":6320},[4173,15280,4761],{"emptyLinePlaceholder":4760},[4173,15282,15283,15285,15288],{"class":4657,"line":6325},[4173,15284,13462],{"class":4661},[4173,15286,15287],{"class":4665}," -ld",[4173,15289,15254],{"class":4669},[4173,15291,15292],{"class":4657,"line":6343},[4173,15293,4761],{"emptyLinePlaceholder":4760},[4173,15295,15296],{"class":4657,"line":6348},[4173,15297,15298],{"class":4766},"# Alle SGID-Verzeichnisse finden\n",[4173,15300,15301],{"class":4657,"line":6457},[4173,15302,4761],{"emptyLinePlaceholder":4760},[4173,15304,15305,15307,15309,15311,15313,15315,15318,15320,15322,15325,15328,15330,15333,15336,15338,15341,15344],{"class":4657,"line":6462},[4173,15306,9459],{"class":4661},[4173,15308,15091],{"class":4669},[4173,15310,9497],{"class":4665},[4173,15312,10309],{"class":4669},[4173,15314,15098],{"class":4665},[4173,15316,15317],{"class":4665}," -2000",[4173,15319,15104],{"class":4665},[4173,15321,15107],{"class":4788},[4173,15323,15324],{"class":4669},"\u002Fdev\u002Fnulldrwxrwsr-x",[4173,15326,15327],{"class":4665}," 2",[4173,15329,12983],{"class":4669},[4173,15331,15332],{"class":4669}," entwickler",[4173,15334,15335],{"class":4665}," 4096",[4173,15337,15145],{"class":4669},[4173,15339,15340],{"class":4665}," 29",[4173,15342,15343],{"class":4669}," 10:00",[4173,15345,15254],{"class":4669},[414,15347,15157],{},[4647,15349,15351],{"className":4649,"code":15350,"language":4651,"meta":269,"style":269},"s = SGID auf Verzeichnis\n\n# Neue Datei im Verzeichnis erstellt von Benutzer \"bob\":\n\ntouch \u002Fshared\u002Fprojekt\u002Fbob_datei.txt\n\nls -l \u002Fshared\u002Fprojekt\u002Fbob_datei.txt\n\n",[4653,15352,15353,15368,15372,15377,15381,15388,15392],{"__ignoreMap":269},[4173,15354,15355,15357,15359,15362,15365],{"class":4657,"line":4658},[4173,15356,12522],{"class":4661},[4173,15358,15169],{"class":4669},[4173,15360,15361],{"class":4669}," SGID",[4173,15363,15364],{"class":4669}," auf",[4173,15366,15367],{"class":4669}," Verzeichnis\n",[4173,15369,15370],{"class":4657,"line":270},[4173,15371,4761],{"emptyLinePlaceholder":4760},[4173,15373,15374],{"class":4657,"line":1263},[4173,15375,15376],{"class":4766},"# Neue Datei im Verzeichnis erstellt von Benutzer \"bob\":\n",[4173,15378,15379],{"class":4657,"line":4770},[4173,15380,4761],{"emptyLinePlaceholder":4760},[4173,15382,15383,15385],{"class":4657,"line":4775},[4173,15384,11437],{"class":4661},[4173,15386,15387],{"class":4669}," \u002Fshared\u002Fprojekt\u002Fbob_datei.txt\n",[4173,15389,15390],{"class":4657,"line":6320},[4173,15391,4761],{"emptyLinePlaceholder":4760},[4173,15393,15394,15396,15398],{"class":4657,"line":6325},[4173,15395,13462],{"class":4661},[4173,15397,10277],{"class":4665},[4173,15399,15387],{"class":4669},[414,15401,15402],{},"-rw-r--r-- 1 bob entwickler 0 Apr 29 10:01 bob_datei.txt",[414,15404,15405],{},"^^^^^^^^^^ Gruppe wird vererbt!",[470,15407,15409],{"id":15408},"sticky-bit-oktal-1xxx","Sticky Bit – Oktal: 1xxx",[414,15411,15412],{},[42,15413,15414],{},"Auf Verzeichnisse:",[21,15416,15417,15427],{},[24,15418,15419,15420,15423,15424,15426],{},"Dateien dürfen nur von ihrem ",[42,15421,15422],{},"eigenen Eigentümer"," oder ",[42,15425,13685],{}," gelöscht\u002Fumbenannt werden – selbst wenn andere Benutzer Schreibrecht auf das Verzeichnis haben.",[24,15428,15429,15430],{},"Klassisches Beispiel: ",[42,15431,15432],{},"\u002Ftmp",[414,15434,15435],{},[42,15436,14982],{},[21,15438,15439,15449],{},[24,15440,15441,14989,15443,15445,15446],{},[42,15442,14477],{},[42,15444,14220],{}," beim Anderen-Ausführbit: ",[42,15447,15448],{},"drwxrwxrwt",[24,15450,15451,15454,15455],{},[42,15452,15453],{},"T"," wenn Sticky gesetzt aber kein Ausführrecht für Andere: ",[42,15456,15457],{},"drwxrwxrwT",[11,15459,15461],{"id":15460},"sticky-bit-auf-verzeichnis-setzen","Sticky Bit auf Verzeichnis setzen",[4647,15463,15465],{"className":4649,"code":15464,"language":4651,"meta":269,"style":269},"chmod +t \u002Ftmp\u002Fgeteilt\n\nchmod 1777 \u002Ftmp\u002Fgeteilt\n\n# Sticky Bit entfernen\n\nchmod -t \u002Ftmp\u002Fgeteilt\n\n# Prüfen\n\nls -ld \u002Ftmp\n\n# Alle Verzeichnisse mit Sticky Bit finden\n\nfind \u002F -type d -perm -1000 -ls 2>\u002Fdev\u002Fnulldrwxrwxrwt 10 root root 4096 Apr 29 10:00 \u002Ftmp\n\n",[4653,15466,15467,15477,15481,15490,15494,15499,15503,15512,15516,15521,15525,15534,15538,15543,15547],{"__ignoreMap":269},[4173,15468,15469,15471,15474],{"class":4657,"line":4658},[4173,15470,14118],{"class":4661},[4173,15472,15473],{"class":4669}," +t",[4173,15475,15476],{"class":4669}," \u002Ftmp\u002Fgeteilt\n",[4173,15478,15479],{"class":4657,"line":270},[4173,15480,4761],{"emptyLinePlaceholder":4760},[4173,15482,15483,15485,15488],{"class":4657,"line":1263},[4173,15484,14118],{"class":4661},[4173,15486,15487],{"class":4665}," 1777",[4173,15489,15476],{"class":4669},[4173,15491,15492],{"class":4657,"line":4770},[4173,15493,4761],{"emptyLinePlaceholder":4760},[4173,15495,15496],{"class":4657,"line":4775},[4173,15497,15498],{"class":4766},"# Sticky Bit entfernen\n",[4173,15500,15501],{"class":4657,"line":6320},[4173,15502,4761],{"emptyLinePlaceholder":4760},[4173,15504,15505,15507,15510],{"class":4657,"line":6325},[4173,15506,14118],{"class":4661},[4173,15508,15509],{"class":4665}," -t",[4173,15511,15476],{"class":4669},[4173,15513,15514],{"class":4657,"line":6343},[4173,15515,4761],{"emptyLinePlaceholder":4760},[4173,15517,15518],{"class":4657,"line":6348},[4173,15519,15520],{"class":4766},"# Prüfen\n",[4173,15522,15523],{"class":4657,"line":6457},[4173,15524,4761],{"emptyLinePlaceholder":4760},[4173,15526,15527,15529,15531],{"class":4657,"line":6462},[4173,15528,13462],{"class":4661},[4173,15530,15287],{"class":4665},[4173,15532,15533],{"class":4669}," \u002Ftmp\n",[4173,15535,15536],{"class":4657,"line":6468},[4173,15537,4761],{"emptyLinePlaceholder":4760},[4173,15539,15540],{"class":4657,"line":6473},[4173,15541,15542],{"class":4766},"# Alle Verzeichnisse mit Sticky Bit finden\n",[4173,15544,15545],{"class":4657,"line":6479},[4173,15546,4761],{"emptyLinePlaceholder":4760},[4173,15548,15549,15551,15553,15555,15557,15559,15562,15564,15566,15569,15572,15574,15576,15578,15580,15582,15584],{"class":4657,"line":6503},[4173,15550,9459],{"class":4661},[4173,15552,15091],{"class":4669},[4173,15554,9497],{"class":4665},[4173,15556,10309],{"class":4669},[4173,15558,15098],{"class":4665},[4173,15560,15561],{"class":4665}," -1000",[4173,15563,15104],{"class":4665},[4173,15565,15107],{"class":4788},[4173,15567,15568],{"class":4669},"\u002Fdev\u002Fnulldrwxrwxrwt",[4173,15570,15571],{"class":4665}," 10",[4173,15573,15137],{"class":4669},[4173,15575,15137],{"class":4669},[4173,15577,15335],{"class":4665},[4173,15579,15145],{"class":4669},[4173,15581,15340],{"class":4665},[4173,15583,15343],{"class":4669},[4173,15585,15533],{"class":4669},[414,15587,15157],{},[4647,15589,15591],{"className":4649,"code":15590,"language":4651,"meta":269,"style":269},"t = Sticky Bit + Ausführrecht für Andere\n\n",[4653,15592,15593],{"__ignoreMap":269},[4173,15594,15595,15597,15599,15602,15605,15607,15610,15613],{"class":4657,"line":4658},[4173,15596,14477],{"class":4661},[4173,15598,15169],{"class":4669},[4173,15600,15601],{"class":4669}," Sticky",[4173,15603,15604],{"class":4669}," Bit",[4173,15606,11719],{"class":4669},[4173,15608,15609],{"class":4669}," Ausführrecht",[4173,15611,15612],{"class":4669}," für",[4173,15614,15615],{"class":4669}," Andere\n",[470,15617,15619],{"id":15618},"übersicht-spezialbits","Übersicht: Spezialbits",[765,15621,15622,15652],{},[768,15623,15624],{},[771,15625,15626,15631,15636,15640,15644,15648],{},[774,15627,15628],{},[42,15629,15630],{},"Bit",[774,15632,15633],{},[42,15634,15635],{},"Name",[774,15637,15638],{},[42,15639,14167],{},[774,15641,15642],{},[42,15643,14253],{},[774,15645,15646],{},[42,15647,14172],{},[774,15649,15650],{},[42,15651,14177],{},[787,15653,15654,15673,15692],{},[771,15655,15656,15658,15661,15664,15667,15670],{},[792,15657,14937],{},[792,15659,15660],{},"Set-UID",[792,15662,15663],{},"4000",[792,15665,15666],{},"u+s",[792,15668,15669],{},"Läuft als Eigentümer der Datei",[792,15671,15672],{},"Keine standardisierte Wirkung",[771,15674,15675,15677,15680,15683,15686,15689],{},[792,15676,14940],{},[792,15678,15679],{},"Set-GID",[792,15681,15682],{},"2000",[792,15684,15685],{},"g+s",[792,15687,15688],{},"Läuft als Gruppe der Datei",[792,15690,15691],{},"Neue Dateien erben Gruppe des Verzeichnisses",[771,15693,15694,15697,15699,15701,15704,15707],{},[792,15695,15696],{},"Sticky",[792,15698,14944],{},[792,15700,13015],{},[792,15702,15703],{},"+t",[792,15705,15706],{},"Veraltet, keine Wirkung",[792,15708,15709],{},"Nur Eigentümer\u002Froot kann löschen",[470,15711,15713],{"id":15712},"kombination-mit-normalen-rechten","Kombination mit normalen Rechten",[11,15715,15717],{"id":15716},"suid-755-4755","SUID + 755 = 4755",[4647,15719,15721],{"className":4649,"code":15720,"language":4651,"meta":269,"style":269},"chmod 4755 \u002Fusr\u002Flocal\u002Fbin\u002Fmyprog\n\n# -rwsr-xr-x\n\n# SGID + 2775 = setgid-Verzeichnis für Team\n\nchmod 2775 \u002Fsrv\u002Fteam\u002F\n\n# drwxrwsr-x\n\n# Sticky + 1777 = \u002Ftmp-ähnliches Verzeichnis\n\nchmod 1777 \u002Ftmp\n\n# drwxrwxrwt\n\n",[4653,15722,15723,15732,15736,15741,15745,15750,15754,15763,15767,15772,15776,15781,15785,15793,15797],{"__ignoreMap":269},[4173,15724,15725,15727,15729],{"class":4657,"line":4658},[4173,15726,14118],{"class":4661},[4173,15728,15047],{"class":4665},[4173,15730,15731],{"class":4669}," \u002Fusr\u002Flocal\u002Fbin\u002Fmyprog\n",[4173,15733,15734],{"class":4657,"line":270},[4173,15735,4761],{"emptyLinePlaceholder":4760},[4173,15737,15738],{"class":4657,"line":1263},[4173,15739,15740],{"class":4766},"# -rwsr-xr-x\n",[4173,15742,15743],{"class":4657,"line":4770},[4173,15744,4761],{"emptyLinePlaceholder":4760},[4173,15746,15747],{"class":4657,"line":4775},[4173,15748,15749],{"class":4766},"# SGID + 2775 = setgid-Verzeichnis für Team\n",[4173,15751,15752],{"class":4657,"line":6320},[4173,15753,4761],{"emptyLinePlaceholder":4760},[4173,15755,15756,15758,15760],{"class":4657,"line":6325},[4173,15757,14118],{"class":4661},[4173,15759,15265],{"class":4665},[4173,15761,15762],{"class":4669}," \u002Fsrv\u002Fteam\u002F\n",[4173,15764,15765],{"class":4657,"line":6343},[4173,15766,4761],{"emptyLinePlaceholder":4760},[4173,15768,15769],{"class":4657,"line":6348},[4173,15770,15771],{"class":4766},"# drwxrwsr-x\n",[4173,15773,15774],{"class":4657,"line":6457},[4173,15775,4761],{"emptyLinePlaceholder":4760},[4173,15777,15778],{"class":4657,"line":6462},[4173,15779,15780],{"class":4766},"# Sticky + 1777 = \u002Ftmp-ähnliches Verzeichnis\n",[4173,15782,15783],{"class":4657,"line":6468},[4173,15784,4761],{"emptyLinePlaceholder":4760},[4173,15786,15787,15789,15791],{"class":4657,"line":6473},[4173,15788,14118],{"class":4661},[4173,15790,15487],{"class":4665},[4173,15792,15533],{"class":4669},[4173,15794,15795],{"class":4657,"line":6479},[4173,15796,4761],{"emptyLinePlaceholder":4760},[4173,15798,15799],{"class":4657,"line":6503},[4173,15800,15801],{"class":4766},"# drwxrwxrwt\n",[414,15803,15804,6100,15808,6100,15811,6100,15816,6100,15819,6100,15824],{},[406,15805,15806],{},[42,15807,14097],{},[406,15809,15810],{},"SUID\u002FSGID auf Dateien sind häufige Angriffsvektoren (Privilege Escalation). Regelmäßige Überprüfung mit",[406,15812,15813],{},[42,15814,15815],{},"find \u002F -perm -4000",[406,15817,15818],{},"bzw.",[406,15820,15821],{},[42,15822,15823],{},"-perm -2000",[406,15825,15826],{},"ist empfehlenswert.",[11,15828,15829],{"id":15829},"wc",[414,15831,15832,15834],{},[42,15833,12709],{}," Zählt Zeilen, Wörter, Zeichen und Bytes in Dateien oder der Standardeingabe. Wird sehr oft mit Pipes kombiniert um schnelle Statistiken zu erhalten.",[414,15836,15837,6100,15839],{},[42,15838,7941],{},[42,15840,15841,15842,6100,15844],{},"wc ",[4173,15843,12720],{},[4173,15845,15846],{},"DATEI...",[16,15848,12780],{"id":15849},"flags-4",[765,15851,15852,15868],{},[768,15853,15854],{},[771,15855,15856,15860,15864],{},[774,15857,15858],{},[42,15859,12791],{},[774,15861,15862],{},[42,15863,12796],{},[774,15865,15866],{},[42,15867,6733],{},[787,15869,15870,15880,15890,15900,15911],{},[771,15871,15872,15874,15877],{},[792,15873,9006],{},[792,15875,15876],{},"--lines",[792,15878,15879],{},"Nur Zeilenanzahl ausgeben",[771,15881,15882,15884,15887],{},[792,15883,9022],{},[792,15885,15886],{},"--words",[792,15888,15889],{},"Nur Wortanzahl ausgeben",[771,15891,15892,15894,15897],{},[792,15893,9014],{},[792,15895,15896],{},"--bytes",[792,15898,15899],{},"Byte-Anzahl ausgeben",[771,15901,15902,15905,15908],{},[792,15903,15904],{},"-m",[792,15906,15907],{},"--chars",[792,15909,15910],{},"Zeichenanzahl ausgeben (Multibyte\u002FUnicode-sicher, unterscheidet sich von -c bei UTF-8)",[771,15912,15913,15915,15918],{},[792,15914,13843],{},[792,15916,15917],{},"--max-line-length",[792,15919,15920],{},"Länge der längsten Zeile ausgeben",[414,15922,15923],{},[42,15924,15925],{},"Reihenfolge der Standardausgabe",[414,15927,15928,15929,15931,15932,15935],{},"Ohne Flags gibt ",[42,15930,15829],{}," immer ",[42,15933,15934],{},"drei Werte"," aus in dieser Reihenfolge:",[414,15937,15938],{},"ZEILEN WÖRTER BYTES DATEINAME",[16,15940,9925],{"id":15941},"beispiele-4",[11,15943,15945],{"id":15944},"standard-zeilen-wörter-bytes","Standard: Zeilen, Wörter, Bytes",[414,15947,15948],{},"wc datei.txt",[11,15950,15952],{"id":15951},"nur-zeilen-zählen","Nur Zeilen zählen",[4647,15954,15956],{"className":4649,"code":15955,"language":4651,"meta":269,"style":269},"wc -l datei.txt\n\n# Nur Wörter zählen\n\nwc -w datei.txt\n\n# Nur Bytes zählen\n\nwc -c datei.txt\n\n# Zeichenanzahl (wichtig bei Umlauten\u002FUnicode)\n\nwc -m datei.txt\n\n# Längste Zeile finden\n\nwc -L datei.txt\n\n# Mehrere Dateien + Gesamtsumme\n\nwc -l *.txt\n\n# Anzahl der Prozesse zählen\n\nps aux | wc -l\n\n# Anzahl der Benutzer im System\n\nwc -l \u003C \u002Fetc\u002Fpasswd\n\n# Anzahl der Dateien in einem Verzeichnis\n\nls | wc -l\n\n# Anzahl der Treffer einer Suche\n\ngrep -r \"TODO\" . | wc -l\n\n# Datei auf maximale Zeilenlänge prüfen\n\nwc -L skript.sh\n\n",[4653,15957,15958,15966,15970,15975,15979,15987,15991,15996,16000,16008,16012,16017,16021,16030,16034,16039,16043,16052,16056,16061,16065,16075,16079,16084,16088,16101,16105,16110,16114,16124,16128,16133,16137,16147,16151,16156,16160,16176,16180,16185,16189],{"__ignoreMap":269},[4173,15959,15960,15962,15964],{"class":4657,"line":4658},[4173,15961,15829],{"class":4661},[4173,15963,10277],{"class":4665},[4173,15965,8947],{"class":4669},[4173,15967,15968],{"class":4657,"line":270},[4173,15969,4761],{"emptyLinePlaceholder":4760},[4173,15971,15972],{"class":4657,"line":1263},[4173,15973,15974],{"class":4766},"# Nur Wörter zählen\n",[4173,15976,15977],{"class":4657,"line":4770},[4173,15978,4761],{"emptyLinePlaceholder":4760},[4173,15980,15981,15983,15985],{"class":4657,"line":4775},[4173,15982,15829],{"class":4661},[4173,15984,12990],{"class":4665},[4173,15986,8947],{"class":4669},[4173,15988,15989],{"class":4657,"line":6320},[4173,15990,4761],{"emptyLinePlaceholder":4760},[4173,15992,15993],{"class":4657,"line":6325},[4173,15994,15995],{"class":4766},"# Nur Bytes zählen\n",[4173,15997,15998],{"class":4657,"line":6343},[4173,15999,4761],{"emptyLinePlaceholder":4760},[4173,16001,16002,16004,16006],{"class":4657,"line":6348},[4173,16003,15829],{"class":4661},[4173,16005,10390],{"class":4665},[4173,16007,8947],{"class":4669},[4173,16009,16010],{"class":4657,"line":6457},[4173,16011,4761],{"emptyLinePlaceholder":4760},[4173,16013,16014],{"class":4657,"line":6462},[4173,16015,16016],{"class":4766},"# Zeichenanzahl (wichtig bei Umlauten\u002FUnicode)\n",[4173,16018,16019],{"class":4657,"line":6468},[4173,16020,4761],{"emptyLinePlaceholder":4760},[4173,16022,16023,16025,16028],{"class":4657,"line":6473},[4173,16024,15829],{"class":4661},[4173,16026,16027],{"class":4665}," -m",[4173,16029,8947],{"class":4669},[4173,16031,16032],{"class":4657,"line":6479},[4173,16033,4761],{"emptyLinePlaceholder":4760},[4173,16035,16036],{"class":4657,"line":6503},[4173,16037,16038],{"class":4766},"# Längste Zeile finden\n",[4173,16040,16041],{"class":4657,"line":6516},[4173,16042,4761],{"emptyLinePlaceholder":4760},[4173,16044,16045,16047,16050],{"class":4657,"line":6971},[4173,16046,15829],{"class":4661},[4173,16048,16049],{"class":4665}," -L",[4173,16051,8947],{"class":4669},[4173,16053,16054],{"class":4657,"line":10649},[4173,16055,4761],{"emptyLinePlaceholder":4760},[4173,16057,16058],{"class":4657,"line":10654},[4173,16059,16060],{"class":4766},"# Mehrere Dateien + Gesamtsumme\n",[4173,16062,16063],{"class":4657,"line":10659},[4173,16064,4761],{"emptyLinePlaceholder":4760},[4173,16066,16067,16069,16071,16073],{"class":4657,"line":10664},[4173,16068,15829],{"class":4661},[4173,16070,10277],{"class":4665},[4173,16072,7078],{"class":4665},[4173,16074,14891],{"class":4669},[4173,16076,16077],{"class":4657,"line":10676},[4173,16078,4761],{"emptyLinePlaceholder":4760},[4173,16080,16081],{"class":4657,"line":10681},[4173,16082,16083],{"class":4766},"# Anzahl der Prozesse zählen\n",[4173,16085,16086],{"class":4657,"line":10702},[4173,16087,4761],{"emptyLinePlaceholder":4760},[4173,16089,16090,16092,16094,16096,16098],{"class":4657,"line":10707},[4173,16091,8922],{"class":4661},[4173,16093,8925],{"class":4669},[4173,16095,8928],{"class":4788},[4173,16097,10274],{"class":4661},[4173,16099,16100],{"class":4665}," -l\n",[4173,16102,16103],{"class":4657,"line":10712},[4173,16104,4761],{"emptyLinePlaceholder":4760},[4173,16106,16107],{"class":4657,"line":10717},[4173,16108,16109],{"class":4766},"# Anzahl der Benutzer im System\n",[4173,16111,16112],{"class":4657,"line":10727},[4173,16113,4761],{"emptyLinePlaceholder":4760},[4173,16115,16116,16118,16120,16122],{"class":4657,"line":10732},[4173,16117,15829],{"class":4661},[4173,16119,10277],{"class":4665},[4173,16121,6907],{"class":4788},[4173,16123,10007],{"class":4669},[4173,16125,16126],{"class":4657,"line":10737},[4173,16127,4761],{"emptyLinePlaceholder":4760},[4173,16129,16130],{"class":4657,"line":10742},[4173,16131,16132],{"class":4766},"# Anzahl der Dateien in einem Verzeichnis\n",[4173,16134,16135],{"class":4657,"line":10752},[4173,16136,4761],{"emptyLinePlaceholder":4760},[4173,16138,16139,16141,16143,16145],{"class":4657,"line":10757},[4173,16140,13462],{"class":4661},[4173,16142,8928],{"class":4788},[4173,16144,10274],{"class":4661},[4173,16146,16100],{"class":4665},[4173,16148,16149],{"class":4657,"line":10762},[4173,16150,4761],{"emptyLinePlaceholder":4760},[4173,16152,16153],{"class":4657,"line":10767},[4173,16154,16155],{"class":4766},"# Anzahl der Treffer einer Suche\n",[4173,16157,16158],{"class":4657,"line":10772},[4173,16159,4761],{"emptyLinePlaceholder":4760},[4173,16161,16162,16164,16166,16168,16170,16172,16174],{"class":4657,"line":10777},[4173,16163,8894],{"class":4661},[4173,16165,9095],{"class":4665},[4173,16167,9119],{"class":4669},[4173,16169,9481],{"class":4669},[4173,16171,8928],{"class":4788},[4173,16173,10274],{"class":4661},[4173,16175,16100],{"class":4665},[4173,16177,16178],{"class":4657,"line":10782},[4173,16179,4761],{"emptyLinePlaceholder":4760},[4173,16181,16182],{"class":4657,"line":10787},[4173,16183,16184],{"class":4766},"# Datei auf maximale Zeilenlänge prüfen\n",[4173,16186,16187],{"class":4657,"line":10800},[4173,16188,4761],{"emptyLinePlaceholder":4760},[4173,16190,16191,16193,16195],{"class":4657,"line":10805},[4173,16192,15829],{"class":4661},[4173,16194,16049],{"class":4665},[4173,16196,14658],{"class":4669},[16,16198,12997],{"id":16199},"ausgabe-4",[11,16201,15948],{"id":16202},"wc-dateitxt",[414,16204,16205],{},"42 187 1204 datei.txt",[11,16207,16208],{"id":269},"| | |",[11,16210,16212],{"id":16211},"bytes","| | +-- Bytes",[11,16214,16216],{"id":16215},"wörter","| +-------- Wörter",[11,16218,16220],{"id":16219},"zeilen","+------------- Zeilen",[11,16222,16224],{"id":16223},"wc-l-dateitxt","wc -l datei.txt",[414,16226,16227],{},"42 datei.txt",[11,16229,16231],{"id":16230},"wc-l-txt","wc -l *.txt",[414,16233,16234],{},"10 datei1.txt",[414,16236,16237],{},"32 datei2.txt",[414,16239,16240],{},"42 gesamt",[11,16242,16244],{"id":16243},"ps-aux-wc-l","ps aux | wc -l",[414,16246,16247],{},"127",[11,16249,16251],{"id":16250},"ls-wc-l","ls | wc -l",[414,16253,16254],{},"23",[11,16256,16258],{"id":16257},"wc-c-vs-wc-m-utf-8-umlaute","wc -c vs wc -m (UTF-8: Umlaute)",[4647,16260,16262],{"className":4649,"code":16261,"language":4651,"meta":269,"style":269},"echo \"Straße\" | wc -c\n\n8 \u003C- 8 Bytes (ß = 2 Bytes in UTF-8)\n\necho \"Straße\" | wc -m\n\n",[4653,16263,16264,16278,16282,16314,16318],{"__ignoreMap":269},[4173,16265,16266,16268,16271,16273,16275],{"class":4657,"line":4658},[4173,16267,6309],{"class":4665},[4173,16269,16270],{"class":4669}," \"Straße\"",[4173,16272,8928],{"class":4788},[4173,16274,10274],{"class":4661},[4173,16276,16277],{"class":4665}," -c\n",[4173,16279,16280],{"class":4657,"line":270},[4173,16281,4761],{"emptyLinePlaceholder":4760},[4173,16283,16284,16287,16289,16291,16294,16297,16300,16302,16304,16306,16309,16312],{"class":4657,"line":1263},[4173,16285,16286],{"class":4661},"8",[4173,16288,6907],{"class":4788},[4173,16290,4778],{"class":4669},[4173,16292,16293],{"class":4665}," 8",[4173,16295,16296],{"class":4669}," Bytes",[4173,16298,16299],{"class":4784}," (ß ",[4173,16301,6387],{"class":4669},[4173,16303,15327],{"class":4665},[4173,16305,16296],{"class":4669},[4173,16307,16308],{"class":4669}," in",[4173,16310,16311],{"class":4669}," UTF-8",[4173,16313,6402],{"class":4784},[4173,16315,16316],{"class":4657,"line":4770},[4173,16317,4761],{"emptyLinePlaceholder":4760},[4173,16319,16320,16322,16324,16326,16328],{"class":4657,"line":4775},[4173,16321,6309],{"class":4665},[4173,16323,16270],{"class":4669},[4173,16325,8928],{"class":4788},[4173,16327,10274],{"class":4661},[4173,16329,16330],{"class":4665}," -m\n",[414,16332,16333],{},"7 \u003C- 7 Zeichen",[11,16335,16336],{"id":16336},"head",[414,16338,16339,16341,16342,16345],{},[42,16340,12709],{}," Gibt die ",[42,16343,16344],{},"ersten Zeilen"," einer Datei aus. Standardmäßig werden die ersten 10 Zeilen angezeigt. Nützlich zum schnellen Einblick ohne alles laden zu müssen.",[414,16347,16348,6100,16350],{},[42,16349,7941],{},[42,16351,16352,16353,6100,16355],{},"head ",[4173,16354,12720],{},[4173,16356,15846],{},[16,16358,12780],{"id":16359},"flags-5",[765,16361,16362,16374],{},[768,16363,16364],{},[771,16365,16366,16370],{},[774,16367,16368],{},[42,16369,12791],{},[774,16371,16372],{},[42,16373,6733],{},[787,16375,16376,16384,16392,16400,16408,16416],{},[771,16377,16378,16381],{},[792,16379,16380],{},"-n N oder -N",[792,16382,16383],{},"Erste N Zeilen ausgeben",[771,16385,16386,16389],{},[792,16387,16388],{},"-n -N",[792,16390,16391],{},"Alle Zeilen außer die letzten N ausgeben",[771,16393,16394,16397],{},[792,16395,16396],{},"-c N",[792,16398,16399],{},"Erste N Bytes ausgeben",[771,16401,16402,16405],{},[792,16403,16404],{},"-c -N",[792,16406,16407],{},"Alle Bytes außer die letzten N",[771,16409,16410,16413],{},[792,16411,16412],{},"-q",[792,16414,16415],{},"Dateinamen-Header unterdrücken (quiet, bei mehreren Dateien)",[771,16417,16418,16420],{},[792,16419,8983],{},[792,16421,16422],{},"Dateinamen-Header immer anzeigen (verbose, auch bei einzelner Datei)",[16,16424,9925],{"id":16425},"beispiele-5",[11,16427,16429],{"id":16428},"erste-10-zeilen-standard","Erste 10 Zeilen (Standard)",[414,16431,16432],{},"head datei.txt",[11,16434,16436],{"id":16435},"erste-5-zeilen","Erste 5 Zeilen",[4647,16438,16440],{"className":4649,"code":16439,"language":4651,"meta":269,"style":269},"head -n 5 datei.txt\n\n# Kurzform: gleichbedeutend\n\nhead -5 datei.txt\n\n# Alle Zeilen AUSSER die letzten 3\n\nhead -n -3 datei.txt\n\n# Erste 100 Bytes der Datei\n\nhead -c 100 binärdatei\n\n# Erstes Kilobyte einer Datei\n\nhead -c 1K datei.bin\n\n# Erste Zeile einer Datei (z.B. CSV-Header lesen)\n\nhead -1 tabelle.csv\n\n# Mehrere Dateien – mit Trennlinien dazwischen\n\nhead -n 3 datei1.txt datei2.txt\n\n# Mehrere Dateien ohne Dateinamen-Header\n\nhead -q -n 3 *.conf\n\n# In welchen Shell-Skripten steht bash als Shebang?\n\nhead -1 *.sh | grep \"#!\u002Fbin\u002Fbash\"\n\n",[4653,16441,16442,16453,16457,16462,16466,16475,16479,16484,16488,16499,16503,16508,16512,16524,16528,16533,16537,16549,16553,16558,16562,16572,16576,16581,16585,16600,16604,16609,16613,16629,16633,16638,16642],{"__ignoreMap":269},[4173,16443,16444,16446,16448,16451],{"class":4657,"line":4658},[4173,16445,16336],{"class":4661},[4173,16447,9376],{"class":4665},[4173,16449,16450],{"class":4665}," 5",[4173,16452,8947],{"class":4669},[4173,16454,16455],{"class":4657,"line":270},[4173,16456,4761],{"emptyLinePlaceholder":4760},[4173,16458,16459],{"class":4657,"line":1263},[4173,16460,16461],{"class":4766},"# Kurzform: gleichbedeutend\n",[4173,16463,16464],{"class":4657,"line":4770},[4173,16465,4761],{"emptyLinePlaceholder":4760},[4173,16467,16468,16470,16473],{"class":4657,"line":4775},[4173,16469,16336],{"class":4661},[4173,16471,16472],{"class":4665}," -5",[4173,16474,8947],{"class":4669},[4173,16476,16477],{"class":4657,"line":6320},[4173,16478,4761],{"emptyLinePlaceholder":4760},[4173,16480,16481],{"class":4657,"line":6325},[4173,16482,16483],{"class":4766},"# Alle Zeilen AUSSER die letzten 3\n",[4173,16485,16486],{"class":4657,"line":6343},[4173,16487,4761],{"emptyLinePlaceholder":4760},[4173,16489,16490,16492,16494,16497],{"class":4657,"line":6348},[4173,16491,16336],{"class":4661},[4173,16493,9376],{"class":4665},[4173,16495,16496],{"class":4665}," -3",[4173,16498,8947],{"class":4669},[4173,16500,16501],{"class":4657,"line":6457},[4173,16502,4761],{"emptyLinePlaceholder":4760},[4173,16504,16505],{"class":4657,"line":6462},[4173,16506,16507],{"class":4766},"# Erste 100 Bytes der Datei\n",[4173,16509,16510],{"class":4657,"line":6468},[4173,16511,4761],{"emptyLinePlaceholder":4760},[4173,16513,16514,16516,16518,16521],{"class":4657,"line":6473},[4173,16515,16336],{"class":4661},[4173,16517,10390],{"class":4665},[4173,16519,16520],{"class":4665}," 100",[4173,16522,16523],{"class":4669}," binärdatei\n",[4173,16525,16526],{"class":4657,"line":6479},[4173,16527,4761],{"emptyLinePlaceholder":4760},[4173,16529,16530],{"class":4657,"line":6503},[4173,16531,16532],{"class":4766},"# Erstes Kilobyte einer Datei\n",[4173,16534,16535],{"class":4657,"line":6516},[4173,16536,4761],{"emptyLinePlaceholder":4760},[4173,16538,16539,16541,16543,16546],{"class":4657,"line":6971},[4173,16540,16336],{"class":4661},[4173,16542,10390],{"class":4665},[4173,16544,16545],{"class":4669}," 1K",[4173,16547,16548],{"class":4669}," datei.bin\n",[4173,16550,16551],{"class":4657,"line":10649},[4173,16552,4761],{"emptyLinePlaceholder":4760},[4173,16554,16555],{"class":4657,"line":10654},[4173,16556,16557],{"class":4766},"# Erste Zeile einer Datei (z.B. CSV-Header lesen)\n",[4173,16559,16560],{"class":4657,"line":10659},[4173,16561,4761],{"emptyLinePlaceholder":4760},[4173,16563,16564,16566,16569],{"class":4657,"line":10664},[4173,16565,16336],{"class":4661},[4173,16567,16568],{"class":4665}," -1",[4173,16570,16571],{"class":4669}," tabelle.csv\n",[4173,16573,16574],{"class":4657,"line":10676},[4173,16575,4761],{"emptyLinePlaceholder":4760},[4173,16577,16578],{"class":4657,"line":10681},[4173,16579,16580],{"class":4766},"# Mehrere Dateien – mit Trennlinien dazwischen\n",[4173,16582,16583],{"class":4657,"line":10702},[4173,16584,4761],{"emptyLinePlaceholder":4760},[4173,16586,16587,16589,16591,16594,16597],{"class":4657,"line":10707},[4173,16588,16336],{"class":4661},[4173,16590,9376],{"class":4665},[4173,16592,16593],{"class":4665}," 3",[4173,16595,16596],{"class":4669}," datei1.txt",[4173,16598,16599],{"class":4669}," datei2.txt\n",[4173,16601,16602],{"class":4657,"line":10712},[4173,16603,4761],{"emptyLinePlaceholder":4760},[4173,16605,16606],{"class":4657,"line":10717},[4173,16607,16608],{"class":4766},"# Mehrere Dateien ohne Dateinamen-Header\n",[4173,16610,16611],{"class":4657,"line":10727},[4173,16612,4761],{"emptyLinePlaceholder":4760},[4173,16614,16615,16617,16620,16622,16624,16626],{"class":4657,"line":10732},[4173,16616,16336],{"class":4661},[4173,16618,16619],{"class":4665}," -q",[4173,16621,9376],{"class":4665},[4173,16623,16593],{"class":4665},[4173,16625,7078],{"class":4665},[4173,16627,16628],{"class":4669},".conf\n",[4173,16630,16631],{"class":4657,"line":10737},[4173,16632,4761],{"emptyLinePlaceholder":4760},[4173,16634,16635],{"class":4657,"line":10742},[4173,16636,16637],{"class":4766},"# In welchen Shell-Skripten steht bash als Shebang?\n",[4173,16639,16640],{"class":4657,"line":10752},[4173,16641,4761],{"emptyLinePlaceholder":4760},[4173,16643,16644,16646,16648,16650,16653,16655,16657],{"class":4657,"line":10757},[4173,16645,16336],{"class":4661},[4173,16647,16568],{"class":4665},[4173,16649,7078],{"class":4665},[4173,16651,16652],{"class":4669},".sh",[4173,16654,8928],{"class":4788},[4173,16656,8931],{"class":4661},[4173,16658,16659],{"class":4669}," \"#!\u002Fbin\u002Fbash\"\n",[16,16661,12997],{"id":16662},"ausgabe-5",[11,16664,16666],{"id":16665},"head-n-3-etcpasswd","head -n 3 \u002Fetc\u002Fpasswd",[414,16668,16669],{},"root❌0:0:root:\u002Froot:\u002Fbin\u002Fbash",[414,16671,16672],{},"daemon❌1:1:daemon:\u002Fusr\u002Fsbin:\u002Fusr\u002Fsbin\u002Fnologin",[414,16674,16675],{},"bin❌2:2:bin:\u002Fbin:\u002Fusr\u002Fsbin\u002Fnologin",[11,16677,16679],{"id":16678},"head-n-3-datei1txt-datei2txt","head -n 3 datei1.txt datei2.txt",[414,16681,16682],{},"==> datei1.txt \u003C==",[414,16684,16685],{},"Zeile 1 aus Datei 1",[414,16687,16688],{},"Zeile 2 aus Datei 1",[414,16690,16691],{},"Zeile 3 aus Datei 1",[414,16693,16694],{},"==> datei2.txt \u003C==",[414,16696,16697],{},"Zeile 1 aus Datei 2",[414,16699,16700],{},"Zeile 2 aus Datei 2",[414,16702,16703],{},"Zeile 3 aus Datei 2",[11,16705,16707],{"id":16706},"head-n-3-dateitxt-datei-hat-6-zeilen-gibt-zeilen-1-3-aus","head -n -3 datei.txt (datei hat 6 Zeilen -> gibt Zeilen 1-3 aus)",[414,16709,16710],{},"Zeile 1",[414,16712,16713],{},"Zeile 2",[414,16715,16716],{},"Zeile 3",[11,16718,16719],{"id":16719},"tail",[414,16721,16722,16341,16724,16727,16728,16731,16732,7834],{},[42,16723,12709],{},[42,16725,16726],{},"letzten Zeilen"," einer Datei aus (Standard: 10). Besonders wertvoll zur ",[42,16729,16730],{},"Echtzeit-Überwachung"," von Log-Dateien mit ",[42,16733,10577],{},[414,16735,16736,6100,16738],{},[42,16737,7941],{},[42,16739,16740,16741,6100,16743],{},"tail ",[4173,16742,12720],{},[4173,16744,15846],{},[16,16746,12780],{"id":16747},"flags-6",[765,16749,16750,16762],{},[768,16751,16752],{},[771,16753,16754,16758],{},[774,16755,16756],{},[42,16757,12791],{},[774,16759,16760],{},[42,16761,6733],{},[787,16763,16764,16771,16779,16786,16794,16801,16808,16816,16824,16831],{},[771,16765,16766,16768],{},[792,16767,16380],{},[792,16769,16770],{},"Letzte N Zeilen ausgeben",[771,16772,16773,16776],{},[792,16774,16775],{},"-n +N",[792,16777,16778],{},"Ab Zeile N bis zum Ende ausgeben (Zeilen 1 bis N-1 überspringen)",[771,16780,16781,16783],{},[792,16782,16396],{},[792,16784,16785],{},"Letzte N Bytes ausgeben",[771,16787,16788,16791],{},[792,16789,16790],{},"-c +N",[792,16792,16793],{},"Ab Byte-Position N bis zum Ende",[771,16795,16796,16798],{},[792,16797,10577],{},[792,16799,16800],{},"Follow – Datei live verfolgen, neue Zeilen werden sofort angezeigt",[771,16802,16803,16805],{},[792,16804,9038],{},[792,16806,16807],{},"Wie -f, aber Datei wird neu geöffnet wenn sie rotiert\u002Fneu erstellt wird (robuster für Log-Rotation)",[771,16809,16810,16813],{},[792,16811,16812],{},"-s N",[792,16814,16815],{},"Intervall (Sekunden) zwischen Prüfungen bei -f (Standard: 1.0)",[771,16817,16818,16821],{},[792,16819,16820],{},"--pid=PID",[792,16822,16823],{},"Beendet sich automatisch wenn Prozess mit PID endet",[771,16825,16826,16828],{},[792,16827,16412],{},[792,16829,16830],{},"Dateinamen-Header unterdrücken",[771,16832,16833,16835],{},[792,16834,8983],{},[792,16836,16837],{},"Dateinamen-Header immer anzeigen",[16,16839,9925],{"id":16840},"beispiele-6",[11,16842,16844],{"id":16843},"letzte-10-zeilen-standard","Letzte 10 Zeilen (Standard)",[414,16846,16847],{},"tail datei.txt",[11,16849,16851],{"id":16850},"letzte-20-zeilen","Letzte 20 Zeilen",[4647,16853,16855],{"className":4649,"code":16854,"language":4651,"meta":269,"style":269},"tail -n 20 \u002Fvar\u002Flog\u002Fsyslog\n\n# Kurzform\n\ntail -20 \u002Fvar\u002Flog\u002Fsyslog\n\n# Log-Datei live verfolgen (Strg+C zum Beenden)\n\ntail -f \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log\n\n# Robusterer Follow (überlebt Log-Rotation)\n\ntail -F \u002Fvar\u002Flog\u002Fnginx\u002Ferror.log\n\n# Follow + gleichzeitig nach Fehlern filtern\n\ntail -f \u002Fvar\u002Flog\u002Fsyslog | grep -i \"error\\|warn\\|crit\"\n\n# Ab Zeile 50 bis Ende ausgeben\n\ntail -n +50 datei.txt\n\n# Letzten 1KB einer Datei ausgeben\n\ntail -c 1K datei.txt\n\n# Follow und automatisch beenden wenn Prozess endet\n\ntail -f --pid=4321 \u002Fvar\u002Flog\u002Fapp.log\n\n# Mehrere Log-Dateien gleichzeitig verfolgen\n\ntail -f \u002Fvar\u002Flog\u002Fsyslog \u002Fvar\u002Flog\u002Fauth.log\n\n# Letzten Eintrag in CSV-Datei\n\ntail -1 daten.csv\n\n# Alle außer die erste Zeile ausgeben (Header überspringen)\n\ntail -n +2 tabelle.csv\n\n",[4653,16856,16857,16869,16873,16878,16882,16891,16895,16900,16904,16913,16917,16922,16926,16935,16939,16944,16948,16966,16970,16975,16979,16990,16994,16999,17003,17013,17017,17022,17026,17038,17042,17047,17051,17062,17066,17071,17075,17084,17088,17093,17097],{"__ignoreMap":269},[4173,16858,16859,16861,16863,16866],{"class":4657,"line":4658},[4173,16860,16719],{"class":4661},[4173,16862,9376],{"class":4665},[4173,16864,16865],{"class":4665}," 20",[4173,16867,16868],{"class":4669}," \u002Fvar\u002Flog\u002Fsyslog\n",[4173,16870,16871],{"class":4657,"line":270},[4173,16872,4761],{"emptyLinePlaceholder":4760},[4173,16874,16875],{"class":4657,"line":1263},[4173,16876,16877],{"class":4766},"# Kurzform\n",[4173,16879,16880],{"class":4657,"line":4770},[4173,16881,4761],{"emptyLinePlaceholder":4760},[4173,16883,16884,16886,16889],{"class":4657,"line":4775},[4173,16885,16719],{"class":4661},[4173,16887,16888],{"class":4665}," -20",[4173,16890,16868],{"class":4669},[4173,16892,16893],{"class":4657,"line":6320},[4173,16894,4761],{"emptyLinePlaceholder":4760},[4173,16896,16897],{"class":4657,"line":6325},[4173,16898,16899],{"class":4766},"# Log-Datei live verfolgen (Strg+C zum Beenden)\n",[4173,16901,16902],{"class":4657,"line":6343},[4173,16903,4761],{"emptyLinePlaceholder":4760},[4173,16905,16906,16908,16910],{"class":4657,"line":6348},[4173,16907,16719],{"class":4661},[4173,16909,11337],{"class":4665},[4173,16911,16912],{"class":4669}," \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log\n",[4173,16914,16915],{"class":4657,"line":6457},[4173,16916,4761],{"emptyLinePlaceholder":4760},[4173,16918,16919],{"class":4657,"line":6462},[4173,16920,16921],{"class":4766},"# Robusterer Follow (überlebt Log-Rotation)\n",[4173,16923,16924],{"class":4657,"line":6468},[4173,16925,4761],{"emptyLinePlaceholder":4760},[4173,16927,16928,16930,16932],{"class":4657,"line":6473},[4173,16929,16719],{"class":4661},[4173,16931,9999],{"class":4665},[4173,16933,16934],{"class":4669}," \u002Fvar\u002Flog\u002Fnginx\u002Ferror.log\n",[4173,16936,16937],{"class":4657,"line":6479},[4173,16938,4761],{"emptyLinePlaceholder":4760},[4173,16940,16941],{"class":4657,"line":6503},[4173,16942,16943],{"class":4766},"# Follow + gleichzeitig nach Fehlern filtern\n",[4173,16945,16946],{"class":4657,"line":6516},[4173,16947,4761],{"emptyLinePlaceholder":4760},[4173,16949,16950,16952,16954,16957,16959,16961,16963],{"class":4657,"line":6971},[4173,16951,16719],{"class":4661},[4173,16953,11337],{"class":4665},[4173,16955,16956],{"class":4669}," \u002Fvar\u002Flog\u002Fsyslog",[4173,16958,8928],{"class":4788},[4173,16960,8931],{"class":4661},[4173,16962,8941],{"class":4665},[4173,16964,16965],{"class":4669}," \"error\\|warn\\|crit\"\n",[4173,16967,16968],{"class":4657,"line":10649},[4173,16969,4761],{"emptyLinePlaceholder":4760},[4173,16971,16972],{"class":4657,"line":10654},[4173,16973,16974],{"class":4766},"# Ab Zeile 50 bis Ende ausgeben\n",[4173,16976,16977],{"class":4657,"line":10659},[4173,16978,4761],{"emptyLinePlaceholder":4760},[4173,16980,16981,16983,16985,16988],{"class":4657,"line":10664},[4173,16982,16719],{"class":4661},[4173,16984,9376],{"class":4665},[4173,16986,16987],{"class":4669}," +50",[4173,16989,8947],{"class":4669},[4173,16991,16992],{"class":4657,"line":10676},[4173,16993,4761],{"emptyLinePlaceholder":4760},[4173,16995,16996],{"class":4657,"line":10681},[4173,16997,16998],{"class":4766},"# Letzten 1KB einer Datei ausgeben\n",[4173,17000,17001],{"class":4657,"line":10702},[4173,17002,4761],{"emptyLinePlaceholder":4760},[4173,17004,17005,17007,17009,17011],{"class":4657,"line":10707},[4173,17006,16719],{"class":4661},[4173,17008,10390],{"class":4665},[4173,17010,16545],{"class":4669},[4173,17012,8947],{"class":4669},[4173,17014,17015],{"class":4657,"line":10712},[4173,17016,4761],{"emptyLinePlaceholder":4760},[4173,17018,17019],{"class":4657,"line":10717},[4173,17020,17021],{"class":4766},"# Follow und automatisch beenden wenn Prozess endet\n",[4173,17023,17024],{"class":4657,"line":10727},[4173,17025,4761],{"emptyLinePlaceholder":4760},[4173,17027,17028,17030,17032,17035],{"class":4657,"line":10732},[4173,17029,16719],{"class":4661},[4173,17031,11337],{"class":4665},[4173,17033,17034],{"class":4665}," --pid=4321",[4173,17036,17037],{"class":4669}," \u002Fvar\u002Flog\u002Fapp.log\n",[4173,17039,17040],{"class":4657,"line":10737},[4173,17041,4761],{"emptyLinePlaceholder":4760},[4173,17043,17044],{"class":4657,"line":10742},[4173,17045,17046],{"class":4766},"# Mehrere Log-Dateien gleichzeitig verfolgen\n",[4173,17048,17049],{"class":4657,"line":10752},[4173,17050,4761],{"emptyLinePlaceholder":4760},[4173,17052,17053,17055,17057,17059],{"class":4657,"line":10757},[4173,17054,16719],{"class":4661},[4173,17056,11337],{"class":4665},[4173,17058,16956],{"class":4669},[4173,17060,17061],{"class":4669}," \u002Fvar\u002Flog\u002Fauth.log\n",[4173,17063,17064],{"class":4657,"line":10762},[4173,17065,4761],{"emptyLinePlaceholder":4760},[4173,17067,17068],{"class":4657,"line":10767},[4173,17069,17070],{"class":4766},"# Letzten Eintrag in CSV-Datei\n",[4173,17072,17073],{"class":4657,"line":10772},[4173,17074,4761],{"emptyLinePlaceholder":4760},[4173,17076,17077,17079,17081],{"class":4657,"line":10777},[4173,17078,16719],{"class":4661},[4173,17080,16568],{"class":4665},[4173,17082,17083],{"class":4669}," daten.csv\n",[4173,17085,17086],{"class":4657,"line":10782},[4173,17087,4761],{"emptyLinePlaceholder":4760},[4173,17089,17090],{"class":4657,"line":10787},[4173,17091,17092],{"class":4766},"# Alle außer die erste Zeile ausgeben (Header überspringen)\n",[4173,17094,17095],{"class":4657,"line":10800},[4173,17096,4761],{"emptyLinePlaceholder":4760},[4173,17098,17099,17101,17103,17106],{"class":4657,"line":10805},[4173,17100,16719],{"class":4661},[4173,17102,9376],{"class":4665},[4173,17104,17105],{"class":4669}," +2",[4173,17107,16571],{"class":4669},[16,17109,12997],{"id":17110},"ausgabe-6",[11,17112,17114],{"id":17113},"tail-n-3-etcpasswd","tail -n 3 \u002Fetc\u002Fpasswd",[414,17116,17117],{},"matta❌1000:1000:matta,,,:\u002Fhome\u002Fmatta:\u002Fbin\u002Fbash",[414,17119,17120],{},"www-data❌33:33:www-data:\u002Fvar\u002Fwww:\u002Fusr\u002Fsbin\u002Fnologin",[414,17122,17123],{},"nobody❌65534:65534:nobody:\u002Fnonexistent:\u002Fusr\u002Fsbin\u002Fnologin",[11,17125,17127],{"id":17126},"tail-f-varlogsyslog-live-neue-einträge-erscheinen-automatisch","tail -f \u002Fvar\u002Flog\u002Fsyslog (live, neue Einträge erscheinen automatisch)",[414,17129,17130,17131,17134],{},"Apr 29 10:00:01 server cron",[4173,17132,17133],{},"1234",": (root) CMD (\u002Fusr\u002Fbin\u002Fbackup.sh)",[414,17136,17137,17138,17141],{},"Apr 29 10:01:01 server cron",[4173,17139,17140],{},"1235",": (root) CMD (\u002Fusr\u002Fbin\u002Fcleanup.sh)",[414,17143,17144,17145,17148],{},"Apr 29 10:02:00 server sshd",[4173,17146,17147],{},"9876",": Accepted publickey for alice from 192.168.1.5",[414,17150,17151],{},"... \u003C- Strg+C zum Beenden",[11,17153,17155],{"id":17154},"tail-n-2-tabellecsv-header-wird-übersprungen","tail -n +2 tabelle.csv (Header wird übersprungen)",[414,17157,17158],{},"alice,30,Entwicklerin",[414,17160,17161],{},"bob,25,DevOps",[414,17163,17164],{},"charlie,35,Sysadmin",[414,17166,17167,17168],{},"***Tipp:*",[406,17169,17170,8173],{},[406,17171,17172,6100,17177,6100,17180,6100,17184,6100,17187],{},[406,17173,17174],{},[42,17175,17176],{},"tail -f",[406,17178,17179],{},"ist das wichtigste Werkzeug für Live-Log-Analyse.",[406,17181,17182],{},[42,17183,9038],{},[406,17185,17186],{},"ist stabiler bei Systemen mit Log-Rotation (z. B.",[406,17188,17189],{},[42,17190,17191],{},"logrotate",[11,17193,8894],{"id":8894},[414,17195,17196,17198,17199,7834],{},[42,17197,12709],{}," Sucht in Dateien oder der Standardeingabe nach Zeilen, die einem Muster (regulärer Ausdruck) entsprechen. \"grep\" steht für ",[406,17200,17201],{},"Global Regular Expression Print",[414,17203,17204,6100,17206],{},[42,17205,7941],{},[42,17207,17208,17209,17211,17212],{},"grep ",[4173,17210,12720],{}," MUSTER ",[4173,17213,15846],{},[16,17215,12780],{"id":17216},"flags-7",[765,17218,17219,17235],{},[768,17220,17221],{},[771,17222,17223,17227,17231],{},[774,17224,17225],{},[42,17226,12791],{},[774,17228,17229],{},[42,17230,12796],{},[774,17232,17233],{},[42,17234,6733],{},[787,17236,17237,17247,17257,17267,17277,17287,17297,17307,17317,17327,17337,17347,17357,17368,17379,17390,17400,17411,17422,17433,17443,17452,17462],{},[771,17238,17239,17241,17244],{},[792,17240,8975],{},[792,17242,17243],{},"--ignore-case",[792,17245,17246],{},"Groß-\u002FKleinschreibung ignorieren",[771,17248,17249,17251,17254],{},[792,17250,8983],{},[792,17252,17253],{},"--invert-match",[792,17255,17256],{},"Invertieren – nur nicht-passende Zeilen ausgeben",[771,17258,17259,17261,17264],{},[792,17260,6103],{},[792,17262,17263],{},"--recursive",[792,17265,17266],{},"Rekursiv in Verzeichnisbaum suchen",[771,17268,17269,17271,17274],{},[792,17270,13790],{},[792,17272,17273],{},"--dereference-recursive",[792,17275,17276],{},"Wie -r, folgt aber auch symbolischen Links",[771,17278,17279,17281,17284],{},[792,17280,8991],{},[792,17282,17283],{},"--line-number",[792,17285,17286],{},"Zeilennummer vor jede Ausgabezeile",[771,17288,17289,17291,17294],{},[792,17290,9006],{},[792,17292,17293],{},"--files-with-matches",[792,17295,17296],{},"Nur Dateinamen ausgeben (nicht Inhalt)",[771,17298,17299,17301,17304],{},[792,17300,13843],{},[792,17302,17303],{},"--files-without-match",[792,17305,17306],{},"Dateinamen ausgeben die NICHT passen",[771,17308,17309,17311,17314],{},[792,17310,9014],{},[792,17312,17313],{},"--count",[792,17315,17316],{},"Anzahl der Treffer pro Datei ausgeben",[771,17318,17319,17321,17324],{},[792,17320,9030],{},[792,17322,17323],{},"--extended-regexp",[792,17325,17326],{},"Erweiterte reguläre Ausdrücke (ERE)",[771,17328,17329,17331,17334],{},[792,17330,9038],{},[792,17332,17333],{},"--fixed-strings",[792,17335,17336],{},"Feste Zeichenkette, kein Regex-Parsing",[771,17338,17339,17341,17344],{},[792,17340,13851],{},[792,17342,17343],{},"--perl-regexp",[792,17345,17346],{},"Perl-kompatible Regex (PCRE)",[771,17348,17349,17351,17354],{},[792,17350,9046],{},[792,17352,17353],{},"--only-matching",[792,17355,17356],{},"Nur den genau passenden Teil ausgeben",[771,17358,17359,17362,17365],{},[792,17360,17361],{},"-A N",[792,17363,17364],{},"--after-context=N",[792,17366,17367],{},"N Zeilen nach dem Treffer ausgeben",[771,17369,17370,17373,17376],{},[792,17371,17372],{},"-B N",[792,17374,17375],{},"--before-context=N",[792,17377,17378],{},"N Zeilen vor dem Treffer ausgeben",[771,17380,17381,17384,17387],{},[792,17382,17383],{},"-C N",[792,17385,17386],{},"--context=N",[792,17388,17389],{},"N Zeilen vor und nach dem Treffer",[771,17391,17392,17394,17397],{},[792,17393,9022],{},[792,17395,17396],{},"--word-regexp",[792,17398,17399],{},"Nur ganze Wörter suchen",[771,17401,17402,17405,17408],{},[792,17403,17404],{},"-x",[792,17406,17407],{},"--line-regexp",[792,17409,17410],{},"Nur ganze Zeilen suchen",[771,17412,17413,17416,17419],{},[792,17414,17415],{},"--color",[792,17417,17418],{},"--colour",[792,17420,17421],{},"Treffer farbig hervorheben",[771,17423,17424,17427,17430],{},[792,17425,17426],{},"-m N",[792,17428,17429],{},"--max-count=N",[792,17431,17432],{},"Nach N Treffern abbrechen",[771,17434,17435,17437,17440],{},[792,17436,16412],{},[792,17438,17439],{},"--quiet",[792,17441,17442],{},"Keine Ausgabe, nur Exit-Code (0 = gefunden)",[771,17444,17445,17447,17450],{},[792,17446,6099],{},[792,17448,17449],{},"--no-messages",[792,17451,14527],{},[771,17453,17454,17456,17459],{},[792,17455,13819],{},[792,17457,17458],{},"--no-filename",[792,17460,17461],{},"Dateiname in Ausgabe unterdrücken",[771,17463,17464,17467,17470],{},[792,17465,17466],{},"-H",[792,17468,17469],{},"--with-filename",[792,17471,17472],{},"Dateiname immer ausgeben",[16,17474,17476],{"id":17475},"reguläre-ausdrücke-kurzübersicht","Reguläre Ausdrücke (Kurzübersicht)",[765,17478,17479,17492],{},[768,17480,17481],{},[771,17482,17483,17488],{},[774,17484,17485],{},[42,17486,17487],{},"Muster",[774,17489,17490],{},[42,17491,6733],{},[787,17493,17494,17501,17508,17515,17522,17529,17537,17547,17557,17567,17575,17583],{},[771,17495,17496,17498],{},[792,17497,7834],{},[792,17499,17500],{},"Ein beliebiges Zeichen",[771,17502,17503,17505],{},[792,17504,15157],{},[792,17506,17507],{},"Zeilenanfang",[771,17509,17510,17512],{},[792,17511,6147],{},[792,17513,17514],{},"Zeilenende",[771,17516,17517,17519],{},[792,17518,6328],{},[792,17520,17521],{},"0 oder mehr des vorigen Zeichens",[771,17523,17524,17526],{},[792,17525,14419],{},[792,17527,17528],{},"1 oder mehr (ERE: -E)",[771,17530,17531,17534],{},[792,17532,17533],{},"?",[792,17535,17536],{},"0 oder 1 (ERE: -E)",[771,17538,17539,17544],{},[792,17540,17541],{},[4173,17542,17543],{},"abc",[792,17545,17546],{},"Eines der Zeichen a, b oder c",[771,17548,17549,17554],{},[792,17550,17551],{},[4173,17552,17553],{},"^abc",[792,17555,17556],{},"Keines der Zeichen a, b, c",[771,17558,17559,17564],{},[792,17560,17561],{},[4173,17562,17563],{},"a-z",[792,17565,17566],{},"Zeichenklasse a bis z",[771,17568,17569,17572],{},[792,17570,17571],{},"\\b",[792,17573,17574],{},"Wortgrenze",[771,17576,17577,17580],{},[792,17578,17579],{},"(a",[792,17581,17582],{},"b)",[771,17584,17585,17588],{},[792,17586,17587],{},"{n,m}",[792,17589,17590],{},"n bis m Wiederholungen (ERE: -E)",[16,17592,9925],{"id":17593},"beispiele-7",[11,17595,17597],{"id":17596},"einfache-suche","Einfache Suche",[4647,17599,17601],{"className":4649,"code":17600,"language":4651,"meta":269,"style":269},"grep \"root\" \u002Fetc\u002Fpasswd\n\n# Groß-\u002FKleinschreibung ignorieren\n\ngrep -i \"error\" \u002Fvar\u002Flog\u002Fsyslog\n\n# Rekursiv in einem Verzeichnis suchen\n\ngrep -r \"TODO\" \u002Fhome\u002Fmatta\u002Fprojekt\u002F\n\n# Mit Zeilennummern\n\ngrep -n \"bash\" \u002Fetc\u002Fpasswd\n\n# Invertierte Suche: alle Nicht-Kommentar-Zeilen in Konfigdatei\n\ngrep -v \"^#\" \u002Fetc\u002Fssh\u002Fsshd_config | grep -v \"^$\"\n\n# Nur Dateinamen ausgeben (welche Dateien enthalten den Begriff?)\n\ngrep -rl \"passwort\" \u002Fetc\u002F\n\n# Anzahl der Treffer pro Datei\n\ngrep -rc \"ERROR\" \u002Fvar\u002Flog\u002F\n\n# Erweiterte Regex: root oder daemon am Zeilenanfang\n\ngrep -E \"^(root|daemon)\" \u002Fetc\u002Fpasswd\n\n# Zeilen mit Kontext ausgeben\n\ngrep -C 2 \"CRITICAL\" \u002Fvar\u002Flog\u002Fsyslog\n\n# Nur passende Teile ausgeben – alle IP-Adressen extrahieren\n\ngrep -oE \"[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\" access.log\n\n# Nur ganze Wörter finden\n\ngrep -w \"pass\" datei.txt\n\n# Stilles grep – nur Exit-Code prüfen (für Skripte)\n\nif grep -q \"error\" \u002Fvar\u002Flog\u002Fapp.log; then\n\necho \"Fehler gefunden!\"\n\nfi\n\n# Nach einem festen String suchen (kein Regex)\n\ngrep -F \"192.168.1.1\" \u002Fvar\u002Flog\u002Fauth.log\n\n# Maximal 5 Treffer ausgeben\n\ngrep -m 5 \"warn\" \u002Fvar\u002Flog\u002Fsyslog\n\n# Mehrere Dateien, mit Dateinamen ausgeben\n\ngrep -H \"PermitRootLogin\" \u002Fetc\u002Fssh\u002Fsshd_config\n\n",[4653,17602,17603,17612,17616,17621,17625,17635,17639,17644,17648,17659,17663,17668,17672,17683,17687,17692,17696,17718,17722,17727,17731,17743,17747,17752,17756,17769,17773,17778,17782,17794,17798,17803,17807,17821,17825,17830,17834,17847,17851,17856,17860,17871,17875,17880,17884,17901,17905,17912,17916,17920,17924,17929,17933,17944,17948,17953,17957,17970,17974,17979,17983],{"__ignoreMap":269},[4173,17604,17605,17607,17610],{"class":4657,"line":4658},[4173,17606,8894],{"class":4661},[4173,17608,17609],{"class":4669}," \"root\"",[4173,17611,10007],{"class":4669},[4173,17613,17614],{"class":4657,"line":270},[4173,17615,4761],{"emptyLinePlaceholder":4760},[4173,17617,17618],{"class":4657,"line":1263},[4173,17619,17620],{"class":4766},"# Groß-\u002FKleinschreibung ignorieren\n",[4173,17622,17623],{"class":4657,"line":4770},[4173,17624,4761],{"emptyLinePlaceholder":4760},[4173,17626,17627,17629,17631,17633],{"class":4657,"line":4775},[4173,17628,8894],{"class":4661},[4173,17630,8941],{"class":4665},[4173,17632,8914],{"class":4669},[4173,17634,16868],{"class":4669},[4173,17636,17637],{"class":4657,"line":6320},[4173,17638,4761],{"emptyLinePlaceholder":4760},[4173,17640,17641],{"class":4657,"line":6325},[4173,17642,17643],{"class":4766},"# Rekursiv in einem Verzeichnis suchen\n",[4173,17645,17646],{"class":4657,"line":6343},[4173,17647,4761],{"emptyLinePlaceholder":4760},[4173,17649,17650,17652,17654,17656],{"class":4657,"line":6348},[4173,17651,8894],{"class":4661},[4173,17653,9095],{"class":4665},[4173,17655,9119],{"class":4669},[4173,17657,17658],{"class":4669}," \u002Fhome\u002Fmatta\u002Fprojekt\u002F\n",[4173,17660,17661],{"class":4657,"line":6457},[4173,17662,4761],{"emptyLinePlaceholder":4760},[4173,17664,17665],{"class":4657,"line":6462},[4173,17666,17667],{"class":4766},"# Mit Zeilennummern\n",[4173,17669,17670],{"class":4657,"line":6468},[4173,17671,4761],{"emptyLinePlaceholder":4760},[4173,17673,17674,17676,17678,17681],{"class":4657,"line":6473},[4173,17675,8894],{"class":4661},[4173,17677,9376],{"class":4665},[4173,17679,17680],{"class":4669}," \"bash\"",[4173,17682,10007],{"class":4669},[4173,17684,17685],{"class":4657,"line":6479},[4173,17686,4761],{"emptyLinePlaceholder":4760},[4173,17688,17689],{"class":4657,"line":6503},[4173,17690,17691],{"class":4766},"# Invertierte Suche: alle Nicht-Kommentar-Zeilen in Konfigdatei\n",[4173,17693,17694],{"class":4657,"line":6516},[4173,17695,4761],{"emptyLinePlaceholder":4760},[4173,17697,17698,17700,17703,17706,17709,17711,17713,17715],{"class":4657,"line":6971},[4173,17699,8894],{"class":4661},[4173,17701,17702],{"class":4665}," -v",[4173,17704,17705],{"class":4669}," \"^#\"",[4173,17707,17708],{"class":4669}," \u002Fetc\u002Fssh\u002Fsshd_config",[4173,17710,8928],{"class":4788},[4173,17712,8931],{"class":4661},[4173,17714,17702],{"class":4665},[4173,17716,17717],{"class":4669}," \"^$\"\n",[4173,17719,17720],{"class":4657,"line":10649},[4173,17721,4761],{"emptyLinePlaceholder":4760},[4173,17723,17724],{"class":4657,"line":10654},[4173,17725,17726],{"class":4766},"# Nur Dateinamen ausgeben (welche Dateien enthalten den Begriff?)\n",[4173,17728,17729],{"class":4657,"line":10659},[4173,17730,4761],{"emptyLinePlaceholder":4760},[4173,17732,17733,17735,17737,17740],{"class":4657,"line":10664},[4173,17734,8894],{"class":4661},[4173,17736,9116],{"class":4665},[4173,17738,17739],{"class":4669}," \"passwort\"",[4173,17741,17742],{"class":4669}," \u002Fetc\u002F\n",[4173,17744,17745],{"class":4657,"line":10676},[4173,17746,4761],{"emptyLinePlaceholder":4760},[4173,17748,17749],{"class":4657,"line":10681},[4173,17750,17751],{"class":4766},"# Anzahl der Treffer pro Datei\n",[4173,17753,17754],{"class":4657,"line":10702},[4173,17755,4761],{"emptyLinePlaceholder":4760},[4173,17757,17758,17760,17763,17766],{"class":4657,"line":10707},[4173,17759,8894],{"class":4661},[4173,17761,17762],{"class":4665}," -rc",[4173,17764,17765],{"class":4669}," \"ERROR\"",[4173,17767,17768],{"class":4669}," \u002Fvar\u002Flog\u002F\n",[4173,17770,17771],{"class":4657,"line":10712},[4173,17772,4761],{"emptyLinePlaceholder":4760},[4173,17774,17775],{"class":4657,"line":10717},[4173,17776,17777],{"class":4766},"# Erweiterte Regex: root oder daemon am Zeilenanfang\n",[4173,17779,17780],{"class":4657,"line":10727},[4173,17781,4761],{"emptyLinePlaceholder":4760},[4173,17783,17784,17786,17789,17792],{"class":4657,"line":10732},[4173,17785,8894],{"class":4661},[4173,17787,17788],{"class":4665}," -E",[4173,17790,17791],{"class":4669}," \"^(root|daemon)\"",[4173,17793,10007],{"class":4669},[4173,17795,17796],{"class":4657,"line":10737},[4173,17797,4761],{"emptyLinePlaceholder":4760},[4173,17799,17800],{"class":4657,"line":10742},[4173,17801,17802],{"class":4766},"# Zeilen mit Kontext ausgeben\n",[4173,17804,17805],{"class":4657,"line":10752},[4173,17806,4761],{"emptyLinePlaceholder":4760},[4173,17808,17809,17811,17814,17816,17819],{"class":4657,"line":10757},[4173,17810,8894],{"class":4661},[4173,17812,17813],{"class":4665}," -C",[4173,17815,15327],{"class":4665},[4173,17817,17818],{"class":4669}," \"CRITICAL\"",[4173,17820,16868],{"class":4669},[4173,17822,17823],{"class":4657,"line":10762},[4173,17824,4761],{"emptyLinePlaceholder":4760},[4173,17826,17827],{"class":4657,"line":10767},[4173,17828,17829],{"class":4766},"# Nur passende Teile ausgeben – alle IP-Adressen extrahieren\n",[4173,17831,17832],{"class":4657,"line":10772},[4173,17833,4761],{"emptyLinePlaceholder":4760},[4173,17835,17836,17838,17841,17844],{"class":4657,"line":10777},[4173,17837,8894],{"class":4661},[4173,17839,17840],{"class":4665}," -oE",[4173,17842,17843],{"class":4669}," \"[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\"",[4173,17845,17846],{"class":4669}," access.log\n",[4173,17848,17849],{"class":4657,"line":10782},[4173,17850,4761],{"emptyLinePlaceholder":4760},[4173,17852,17853],{"class":4657,"line":10787},[4173,17854,17855],{"class":4766},"# Nur ganze Wörter finden\n",[4173,17857,17858],{"class":4657,"line":10800},[4173,17859,4761],{"emptyLinePlaceholder":4760},[4173,17861,17862,17864,17866,17869],{"class":4657,"line":10805},[4173,17863,8894],{"class":4661},[4173,17865,12990],{"class":4665},[4173,17867,17868],{"class":4669}," \"pass\"",[4173,17870,8947],{"class":4669},[4173,17872,17873],{"class":4657,"line":10818},[4173,17874,4761],{"emptyLinePlaceholder":4760},[4173,17876,17877],{"class":4657,"line":10823},[4173,17878,17879],{"class":4766},"# Stilles grep – nur Exit-Code prüfen (für Skripte)\n",[4173,17881,17882],{"class":4657,"line":10836},[4173,17883,4761],{"emptyLinePlaceholder":4760},[4173,17885,17886,17888,17890,17892,17894,17897,17899],{"class":4657,"line":10841},[4173,17887,6201],{"class":4788},[4173,17889,8931],{"class":4661},[4173,17891,16619],{"class":4665},[4173,17893,8914],{"class":4669},[4173,17895,17896],{"class":4669}," \u002Fvar\u002Flog\u002Fapp.log",[4173,17898,6498],{"class":4784},[4173,17900,6229],{"class":4788},[4173,17902,17903],{"class":4657,"line":10846},[4173,17904,4761],{"emptyLinePlaceholder":4760},[4173,17906,17907,17909],{"class":4657,"line":10851},[4173,17908,6309],{"class":4665},[4173,17910,17911],{"class":4669}," \"Fehler gefunden!\"\n",[4173,17913,17914],{"class":4657,"line":10867},[4173,17915,4761],{"emptyLinePlaceholder":4760},[4173,17917,17918],{"class":4657,"line":10872},[4173,17919,6247],{"class":4788},[4173,17921,17922],{"class":4657,"line":10877},[4173,17923,4761],{"emptyLinePlaceholder":4760},[4173,17925,17926],{"class":4657,"line":10882},[4173,17927,17928],{"class":4766},"# Nach einem festen String suchen (kein Regex)\n",[4173,17930,17931],{"class":4657,"line":10890},[4173,17932,4761],{"emptyLinePlaceholder":4760},[4173,17934,17935,17937,17939,17942],{"class":4657,"line":10895},[4173,17936,8894],{"class":4661},[4173,17938,9999],{"class":4665},[4173,17940,17941],{"class":4669}," \"192.168.1.1\"",[4173,17943,17061],{"class":4669},[4173,17945,17946],{"class":4657,"line":10904},[4173,17947,4761],{"emptyLinePlaceholder":4760},[4173,17949,17950],{"class":4657,"line":10909},[4173,17951,17952],{"class":4766},"# Maximal 5 Treffer ausgeben\n",[4173,17954,17955],{"class":4657,"line":10914},[4173,17956,4761],{"emptyLinePlaceholder":4760},[4173,17958,17959,17961,17963,17965,17968],{"class":4657,"line":10919},[4173,17960,8894],{"class":4661},[4173,17962,16027],{"class":4665},[4173,17964,16450],{"class":4665},[4173,17966,17967],{"class":4669}," \"warn\"",[4173,17969,16868],{"class":4669},[4173,17971,17972],{"class":4657,"line":10933},[4173,17973,4761],{"emptyLinePlaceholder":4760},[4173,17975,17976],{"class":4657,"line":10938},[4173,17977,17978],{"class":4766},"# Mehrere Dateien, mit Dateinamen ausgeben\n",[4173,17980,17981],{"class":4657,"line":10959},[4173,17982,4761],{"emptyLinePlaceholder":4760},[4173,17984,17985,17987,17990,17993],{"class":4657,"line":10964},[4173,17986,8894],{"class":4661},[4173,17988,17989],{"class":4665}," -H",[4173,17991,17992],{"class":4669}," \"PermitRootLogin\"",[4173,17994,17995],{"class":4669}," \u002Fetc\u002Fssh\u002Fsshd_config\n",[16,17997,12997],{"id":17998},"ausgabe-7",[11,18000,18002],{"id":18001},"grep-root-etcpasswd","grep \"root\" \u002Fetc\u002Fpasswd",[414,18004,16669],{},[11,18006,18008],{"id":18007},"grep-n-bash-etcpasswd","grep -n \"bash\" \u002Fetc\u002Fpasswd",[414,18010,18011],{},"1:root❌0:0:root:\u002Froot:\u002Fbin\u002Fbash",[414,18013,18014],{},"42:matta❌1000:1000::\u002Fhome\u002Fmatta:\u002Fbin\u002Fbash",[11,18016,18018],{"id":18017},"grep-c-error-varlogapplog","grep -c \"ERROR\" \u002Fvar\u002Flog\u002Fapp.log",[414,18020,18021],{},"15",[11,18023,18025],{"id":18024},"grep-c-2-critical-varlogsyslog","grep -C 2 \"CRITICAL\" \u002Fvar\u002Flog\u002Fsyslog",[414,18027,18028,18029,18032],{},"Apr 29 09:58:01 server app",[4173,18030,18031],{},"123",": Connection established",[414,18034,18035,18036,18038],{},"Apr 29 09:59:00 server app",[4173,18037,18031],{},": Retry attempt 3",[414,18040,18041,18042,18044],{},"Apr 29 09:59:30 server app",[4173,18043,18031],{},": CRITICAL: Database unreachable",[414,18046,18047,18048,18050],{},"Apr 29 09:59:31 server app",[4173,18049,18031],{},": Attempting failover...",[414,18052,18053,18054,18056],{},"Apr 29 09:59:45 server app",[4173,18055,18031],{},": Failover successful",[11,18058,18060,18061,18064,18065,18064,18067,18064,18069,18071],{"id":18059},"grep-oe-0-9130-9130-9130-913-accesslog","grep -oE \"",[4173,18062,18063],{},"0-9","{1,3}.",[4173,18066,18063],{},[4173,18068,18063],{},[4173,18070,18063],{},"{1,3}\" access.log",[414,18073,18074],{},"192.168.1.10",[414,18076,18077],{},"10.0.0.1",[414,18079,18080],{},"172.16.5.8",[11,18082,9459],{"id":9459},[414,18084,18085,18087],{},[42,18086,12709],{}," Sucht rekursiv nach Dateien und Verzeichnissen anhand von Name, Typ, Größe, Datum, Berechtigungen, Eigentümer u. v. m. Kann gefundene Dateien direkt weiterverarbeiten.",[414,18089,18090,6100,18092],{},[42,18091,7941],{},[42,18093,18094,18095,6100,18098],{},"find ",[4173,18096,18097],{},"STARTPFAD...",[4173,18099,18100],{},"AUSDRUCK",[16,18102,8953],{"id":8950},[470,18104,18106],{"id":18105},"typ-und-name","Typ und Name",[765,18108,18109,18121],{},[768,18110,18111],{},[771,18112,18113,18117],{},[774,18114,18115],{},[42,18116,8964],{},[774,18118,18119],{},[42,18120,6733],{},[787,18122,18123,18131,18139,18146,18152,18159,18167,18175,18183],{},[771,18124,18125,18128],{},[792,18126,18127],{},"-name MUSTER",[792,18129,18130],{},"Dateiname (case-sensitive, Wildcards z.B. *.txt)",[771,18132,18133,18136],{},[792,18134,18135],{},"-iname MUSTER",[792,18137,18138],{},"Wie -name, aber case-insensitive",[771,18140,18141,18143],{},[792,18142,9615],{},[792,18144,18145],{},"Reguläre Dateien",[771,18147,18148,18150],{},[792,18149,9623],{},[792,18151,13302],{},[771,18153,18154,18156],{},[792,18155,9631],{},[792,18157,18158],{},"Symbolische Links",[771,18160,18161,18164],{},[792,18162,18163],{},"-type p",[792,18165,18166],{},"Named Pipes",[771,18168,18169,18172],{},[792,18170,18171],{},"-type s",[792,18173,18174],{},"Sockets",[771,18176,18177,18180],{},[792,18178,18179],{},"-type b",[792,18181,18182],{},"Block-Gerät",[771,18184,18185,18188],{},[792,18186,18187],{},"-type c",[792,18189,18190],{},"Zeichen-Gerät",[470,18192,18194],{"id":18193},"größe-und-zeit","Größe und Zeit",[765,18196,18197,18209],{},[768,18198,18199],{},[771,18200,18201,18205],{},[774,18202,18203],{},[42,18204,8964],{},[774,18206,18207],{},[42,18208,6733],{},[787,18210,18211,18222,18230,18238,18246,18254,18262,18270,18278,18286,18294],{},[771,18212,18213,18219],{},[792,18214,18215,18216],{},"-size +N",[4173,18217,18218],{},"c\u002Fk\u002FM\u002FG",[792,18220,18221],{},"Größer als N (c=Bytes, k=1024B, M=Mega, G=Giga)",[771,18223,18224,18227],{},[792,18225,18226],{},"-size -N",[792,18228,18229],{},"Kleiner als N",[771,18231,18232,18235],{},[792,18233,18234],{},"-size N",[792,18236,18237],{},"Exakt N",[771,18239,18240,18243],{},[792,18241,18242],{},"-empty",[792,18244,18245],{},"Leere Dateien oder leere Verzeichnisse",[771,18247,18248,18251],{},[792,18249,18250],{},"-mtime N",[792,18252,18253],{},"Inhalt geändert vor genau N*24h",[771,18255,18256,18259],{},[792,18257,18258],{},"-mtime -N",[792,18260,18261],{},"Geändert innerhalb der letzten N Tage",[771,18263,18264,18267],{},[792,18265,18266],{},"-mtime +N",[792,18268,18269],{},"Geändert vor mehr als N Tagen",[771,18271,18272,18275],{},[792,18273,18274],{},"-atime N",[792,18276,18277],{},"Letzter Zugriff vor N Tagen",[771,18279,18280,18283],{},[792,18281,18282],{},"-ctime N",[792,18284,18285],{},"Status (Inode) geändert vor N Tagen",[771,18287,18288,18291],{},[792,18289,18290],{},"-newer DATEI",[792,18292,18293],{},"Neuer als angegebene Datei",[771,18295,18296,18299],{},[792,18297,18298],{},"-newermt DATUM",[792,18300,18301],{},"Neuer als angegebenes Datum",[470,18303,18305],{"id":18304},"eigentümer-und-berechtigungen","Eigentümer und Berechtigungen",[765,18307,18308,18320],{},[768,18309,18310],{},[771,18311,18312,18316],{},[774,18313,18314],{},[42,18315,8964],{},[774,18317,18318],{},[42,18319,6733],{},[787,18321,18322,18330,18338,18346,18354,18362,18370,18378,18386],{},[771,18323,18324,18327],{},[792,18325,18326],{},"-user NAME",[792,18328,18329],{},"Gehört diesem Benutzer",[771,18331,18332,18335],{},[792,18333,18334],{},"-group NAME",[792,18336,18337],{},"Gehört dieser Gruppe",[771,18339,18340,18343],{},[792,18341,18342],{},"-uid N",[792,18344,18345],{},"Numerische UID",[771,18347,18348,18351],{},[792,18349,18350],{},"-gid N",[792,18352,18353],{},"Numerische GID",[771,18355,18356,18359],{},[792,18357,18358],{},"-nouser",[792,18360,18361],{},"Kein gültiger Benutzer (verwaiste Dateien)",[771,18363,18364,18367],{},[792,18365,18366],{},"-nogroup",[792,18368,18369],{},"Keine gültige Gruppe",[771,18371,18372,18375],{},[792,18373,18374],{},"-perm MODUS",[792,18376,18377],{},"Exakt diese Berechtigungen",[771,18379,18380,18383],{},[792,18381,18382],{},"-perm -MODUS",[792,18384,18385],{},"Mindestens diese Bits gesetzt",[771,18387,18388,18391],{},[792,18389,18390],{},"-perm \u002FMODUS",[792,18392,18393],{},"Mindestens eines dieser Bits gesetzt",[470,18395,18397],{"id":18396},"navigation","Navigation",[765,18399,18400,18412],{},[768,18401,18402],{},[771,18403,18404,18408],{},[774,18405,18406],{},[42,18407,8964],{},[774,18409,18410],{},[42,18411,6733],{},[787,18413,18414,18422,18430,18438],{},[771,18415,18416,18419],{},[792,18417,18418],{},"-maxdepth N",[792,18420,18421],{},"Maximal N Verzeichnisebenen tief suchen",[771,18423,18424,18427],{},[792,18425,18426],{},"-mindepth N",[792,18428,18429],{},"Erst ab Tiefe N suchen",[771,18431,18432,18435],{},[792,18433,18434],{},"-depth",[792,18436,18437],{},"Verzeichnisinhalt vor dem Verzeichnis selbst verarbeiten",[771,18439,18440,18443],{},[792,18441,18442],{},"-follow",[792,18444,18445],{},"Symbolischen Links folgen",[470,18447,9747],{"id":9746},[765,18449,18450,18462],{},[768,18451,18452],{},[771,18453,18454,18458],{},[774,18455,18456],{},[42,18457,8964],{},[774,18459,18460],{},[42,18461,6733],{},[787,18463,18464,18472,18480,18488,18496,18504,18512],{},[771,18465,18466,18469],{},[792,18467,18468],{},"-print",[792,18470,18471],{},"Pfad ausgeben (Standard)",[771,18473,18474,18477],{},[792,18475,18476],{},"-print0",[792,18478,18479],{},"Pfad ausgeben, mit Null-Byte getrennt (für xargs -0)",[771,18481,18482,18485],{},[792,18483,18484],{},"-ls",[792,18486,18487],{},"Ausführliches ls -l-Format ausgeben",[771,18489,18490,18493],{},[792,18491,18492],{},"-delete",[792,18494,18495],{},"Gefundene Dateien\u002Fleere Verzeichnisse löschen",[771,18497,18498,18501],{},[792,18499,18500],{},"-exec BEFEHL {} ;",[792,18502,18503],{},"Befehl für jede Datei einzeln ausführen",[771,18505,18506,18509],{},[792,18507,18508],{},"-exec BEFEHL {} +",[792,18510,18511],{},"Befehl einmal mit allen Dateien ausführen (effizienter)",[771,18513,18514,18517],{},[792,18515,18516],{},"-ok BEFEHL {} ;",[792,18518,18519],{},"Wie -exec, aber mit Bestätigungsabfrage",[470,18521,6830],{"id":18522},"logik",[765,18524,18525,18537],{},[768,18526,18527],{},[771,18528,18529,18533],{},[774,18530,18531],{},[42,18532,8964],{},[774,18534,18535],{},[42,18536,6733],{},[787,18538,18539,18547,18555,18563],{},[771,18540,18541,18544],{},[792,18542,18543],{},"-not \u002F !",[792,18545,18546],{},"Negation",[771,18548,18549,18552],{},[792,18550,18551],{},"-and \u002F -a",[792,18553,18554],{},"UND (Standard, implizit)",[771,18556,18557,18560],{},[792,18558,18559],{},"-or \u002F -o",[792,18561,18562],{},"ODER",[771,18564,18565,18568],{},[792,18566,18567],{},"( AUSDRUCK )",[792,18569,18570],{},"Gruppierung",[16,18572,9925],{"id":18573},"beispiele-8",[11,18575,18577],{"id":18576},"alle-txt-dateien-ab-aktuellem-verzeichnis","Alle .txt-Dateien ab aktuellem Verzeichnis",[4647,18579,18581],{"className":4649,"code":18580,"language":4651,"meta":269,"style":269},"find . -name \"*.txt\"\n\n# Alle .conf-Dateien in \u002Fetc (case-insensitive)\n\nfind \u002Fetc -iname \"*.conf\" -type f\n\n# Leere Dateien finden\n\nfind \u002Ftmp -type f -empty\n\n# Dateien größer als 100MB\n\nfind \u002F -type f -size +100M -ls\n\n# Dateien in den letzten 24 Stunden geändert\n\nfind \u002Fhome -type f -mtime -1\n\n# Dateien älter als 30 Tage im \u002Ftmp-Verzeichnis löschen\n\nfind \u002Ftmp -type f -mtime +30 -delete\n\n# SUID-Bit-Dateien finden (Sicherheitscheck)\n\nfind \u002F -type f -perm -4000 -ls 2>\u002Fdev\u002Fnull\n\n# SGID-Bit-Verzeichnisse finden\n\nfind \u002F -type d -perm -2000 2>\u002Fdev\u002Fnull\n\n# Dateien mit genau Rechten 777 finden\n\nfind \u002Ftmp -perm 777 -type f\n\n# Verwaiste Dateien finden (ohne gültigen Eigentümer)\n\nfind \u002F -nouser -o -nogroup 2>\u002Fdev\u002Fnull\n\n# Dateien des Benutzers alice\n\nfind \u002Fhome -user alice -type f\n\n# Auf eine Verzeichnistiefe begrenzen\n\nfind \u002Fetc -maxdepth 1 -name \"*.conf\"\n\n# Ausführen: alle .sh-Dateien ausführbar machen\n\nfind . -name \"*.sh\" -exec chmod +x {} \\;\n\n# Effizienter mit + (ein Aufruf für alle Dateien)\n\nfind . -name \"*.log\" -exec gzip {} +\n\n# Mit xargs kombinieren (null-sicher)\n\nfind . -name \"*.bak\" -print0 | xargs -0 rm -f\n\n# Nicht in .git-Verzeichnissen suchen\n\nfind . -not -path \".\u002F.git\u002F\" -name \".py\"\n\n# Dateien zwischen zwei Größen\n\nfind . -type f -size +1k -size -10k\n\n# Mehrere Namen mit ODER\n\nfind . ( -name \".jpg\" -o -name \".png\" -o -name \"*.gif\" ) -type f\n\n# Dateien neuer als eine Referenzdatei\n\nfind . -newer referenz.txt -type f\n\n",[4653,18582,18583,18594,18598,18603,18607,18624,18628,18633,18637,18651,18655,18660,18664,18683,18687,18692,18696,18711,18715,18720,18724,18741,18745,18750,18754,18774,18778,18783,18787,18805,18809,18814,18818,18833,18837,18842,18846,18865,18869,18874,18878,18893,18897,18902,18906,18921,18925,18930,18934,18957,18961,18966,18970,18990,18994,18999,19003,19030,19034,19039,19043,19063,19067,19072,19076,19096,19100,19105,19109,19140,19144,19149,19153],{"__ignoreMap":269},[4173,18584,18585,18587,18589,18591],{"class":4657,"line":4658},[4173,18586,9459],{"class":4661},[4173,18588,9481],{"class":4669},[4173,18590,9484],{"class":4665},[4173,18592,18593],{"class":4669}," \"*.txt\"\n",[4173,18595,18596],{"class":4657,"line":270},[4173,18597,4761],{"emptyLinePlaceholder":4760},[4173,18599,18600],{"class":4657,"line":1263},[4173,18601,18602],{"class":4766},"# Alle .conf-Dateien in \u002Fetc (case-insensitive)\n",[4173,18604,18605],{"class":4657,"line":4770},[4173,18606,4761],{"emptyLinePlaceholder":4760},[4173,18608,18609,18611,18614,18617,18620,18622],{"class":4657,"line":4775},[4173,18610,9459],{"class":4661},[4173,18612,18613],{"class":4669}," \u002Fetc",[4173,18615,18616],{"class":4665}," -iname",[4173,18618,18619],{"class":4669}," \"*.conf\"",[4173,18621,9497],{"class":4665},[4173,18623,6872],{"class":4669},[4173,18625,18626],{"class":4657,"line":6320},[4173,18627,4761],{"emptyLinePlaceholder":4760},[4173,18629,18630],{"class":4657,"line":6325},[4173,18631,18632],{"class":4766},"# Leere Dateien finden\n",[4173,18634,18635],{"class":4657,"line":6343},[4173,18636,4761],{"emptyLinePlaceholder":4760},[4173,18638,18639,18641,18644,18646,18648],{"class":4657,"line":6348},[4173,18640,9459],{"class":4661},[4173,18642,18643],{"class":4669}," \u002Ftmp",[4173,18645,9497],{"class":4665},[4173,18647,10269],{"class":4669},[4173,18649,18650],{"class":4665}," -empty\n",[4173,18652,18653],{"class":4657,"line":6457},[4173,18654,4761],{"emptyLinePlaceholder":4760},[4173,18656,18657],{"class":4657,"line":6462},[4173,18658,18659],{"class":4766},"# Dateien größer als 100MB\n",[4173,18661,18662],{"class":4657,"line":6468},[4173,18663,4761],{"emptyLinePlaceholder":4760},[4173,18665,18666,18668,18670,18672,18674,18677,18680],{"class":4657,"line":6473},[4173,18667,9459],{"class":4661},[4173,18669,15091],{"class":4669},[4173,18671,9497],{"class":4665},[4173,18673,10269],{"class":4669},[4173,18675,18676],{"class":4665}," -size",[4173,18678,18679],{"class":4669}," +100M",[4173,18681,18682],{"class":4665}," -ls\n",[4173,18684,18685],{"class":4657,"line":6479},[4173,18686,4761],{"emptyLinePlaceholder":4760},[4173,18688,18689],{"class":4657,"line":6503},[4173,18690,18691],{"class":4766},"# Dateien in den letzten 24 Stunden geändert\n",[4173,18693,18694],{"class":4657,"line":6516},[4173,18695,4761],{"emptyLinePlaceholder":4760},[4173,18697,18698,18700,18702,18704,18706,18708],{"class":4657,"line":6971},[4173,18699,9459],{"class":4661},[4173,18701,9494],{"class":4669},[4173,18703,9497],{"class":4665},[4173,18705,10269],{"class":4669},[4173,18707,9737],{"class":4665},[4173,18709,18710],{"class":4665}," -1\n",[4173,18712,18713],{"class":4657,"line":10649},[4173,18714,4761],{"emptyLinePlaceholder":4760},[4173,18716,18717],{"class":4657,"line":10654},[4173,18718,18719],{"class":4766},"# Dateien älter als 30 Tage im \u002Ftmp-Verzeichnis löschen\n",[4173,18721,18722],{"class":4657,"line":10659},[4173,18723,4761],{"emptyLinePlaceholder":4760},[4173,18725,18726,18728,18730,18732,18734,18736,18739],{"class":4657,"line":10664},[4173,18727,9459],{"class":4661},[4173,18729,18643],{"class":4669},[4173,18731,9497],{"class":4665},[4173,18733,10269],{"class":4669},[4173,18735,9737],{"class":4665},[4173,18737,18738],{"class":4669}," +30",[4173,18740,9769],{"class":4665},[4173,18742,18743],{"class":4657,"line":10676},[4173,18744,4761],{"emptyLinePlaceholder":4760},[4173,18746,18747],{"class":4657,"line":10681},[4173,18748,18749],{"class":4766},"# SUID-Bit-Dateien finden (Sicherheitscheck)\n",[4173,18751,18752],{"class":4657,"line":10702},[4173,18753,4761],{"emptyLinePlaceholder":4760},[4173,18755,18756,18758,18760,18762,18764,18766,18768,18770,18772],{"class":4657,"line":10707},[4173,18757,9459],{"class":4661},[4173,18759,15091],{"class":4669},[4173,18761,9497],{"class":4665},[4173,18763,10269],{"class":4669},[4173,18765,15098],{"class":4665},[4173,18767,15101],{"class":4665},[4173,18769,15104],{"class":4665},[4173,18771,15107],{"class":4788},[4173,18773,15110],{"class":4669},[4173,18775,18776],{"class":4657,"line":10712},[4173,18777,4761],{"emptyLinePlaceholder":4760},[4173,18779,18780],{"class":4657,"line":10717},[4173,18781,18782],{"class":4766},"# SGID-Bit-Verzeichnisse finden\n",[4173,18784,18785],{"class":4657,"line":10727},[4173,18786,4761],{"emptyLinePlaceholder":4760},[4173,18788,18789,18791,18793,18795,18797,18799,18801,18803],{"class":4657,"line":10732},[4173,18790,9459],{"class":4661},[4173,18792,15091],{"class":4669},[4173,18794,9497],{"class":4665},[4173,18796,10309],{"class":4669},[4173,18798,15098],{"class":4665},[4173,18800,15317],{"class":4665},[4173,18802,15107],{"class":4788},[4173,18804,15110],{"class":4669},[4173,18806,18807],{"class":4657,"line":10737},[4173,18808,4761],{"emptyLinePlaceholder":4760},[4173,18810,18811],{"class":4657,"line":10742},[4173,18812,18813],{"class":4766},"# Dateien mit genau Rechten 777 finden\n",[4173,18815,18816],{"class":4657,"line":10752},[4173,18817,4761],{"emptyLinePlaceholder":4760},[4173,18819,18820,18822,18824,18826,18829,18831],{"class":4657,"line":10757},[4173,18821,9459],{"class":4661},[4173,18823,18643],{"class":4669},[4173,18825,15098],{"class":4665},[4173,18827,18828],{"class":4665}," 777",[4173,18830,9497],{"class":4665},[4173,18832,6872],{"class":4669},[4173,18834,18835],{"class":4657,"line":10762},[4173,18836,4761],{"emptyLinePlaceholder":4760},[4173,18838,18839],{"class":4657,"line":10767},[4173,18840,18841],{"class":4766},"# Verwaiste Dateien finden (ohne gültigen Eigentümer)\n",[4173,18843,18844],{"class":4657,"line":10772},[4173,18845,4761],{"emptyLinePlaceholder":4760},[4173,18847,18848,18850,18852,18855,18858,18861,18863],{"class":4657,"line":10777},[4173,18849,9459],{"class":4661},[4173,18851,15091],{"class":4669},[4173,18853,18854],{"class":4665}," -nouser",[4173,18856,18857],{"class":4665}," -o",[4173,18859,18860],{"class":4665}," -nogroup",[4173,18862,15107],{"class":4788},[4173,18864,15110],{"class":4669},[4173,18866,18867],{"class":4657,"line":10782},[4173,18868,4761],{"emptyLinePlaceholder":4760},[4173,18870,18871],{"class":4657,"line":10787},[4173,18872,18873],{"class":4766},"# Dateien des Benutzers alice\n",[4173,18875,18876],{"class":4657,"line":10800},[4173,18877,4761],{"emptyLinePlaceholder":4760},[4173,18879,18880,18882,18884,18887,18889,18891],{"class":4657,"line":10805},[4173,18881,9459],{"class":4661},[4173,18883,9494],{"class":4669},[4173,18885,18886],{"class":4665}," -user",[4173,18888,12983],{"class":4669},[4173,18890,9497],{"class":4665},[4173,18892,6872],{"class":4669},[4173,18894,18895],{"class":4657,"line":10818},[4173,18896,4761],{"emptyLinePlaceholder":4760},[4173,18898,18899],{"class":4657,"line":10823},[4173,18900,18901],{"class":4766},"# Auf eine Verzeichnistiefe begrenzen\n",[4173,18903,18904],{"class":4657,"line":10836},[4173,18905,4761],{"emptyLinePlaceholder":4760},[4173,18907,18908,18910,18912,18914,18916,18918],{"class":4657,"line":10841},[4173,18909,9459],{"class":4661},[4173,18911,18613],{"class":4669},[4173,18913,10261],{"class":4665},[4173,18915,10264],{"class":4665},[4173,18917,9484],{"class":4665},[4173,18919,18920],{"class":4669}," \"*.conf\"\n",[4173,18922,18923],{"class":4657,"line":10846},[4173,18924,4761],{"emptyLinePlaceholder":4760},[4173,18926,18927],{"class":4657,"line":10851},[4173,18928,18929],{"class":4766},"# Ausführen: alle .sh-Dateien ausführbar machen\n",[4173,18931,18932],{"class":4657,"line":10867},[4173,18933,4761],{"emptyLinePlaceholder":4760},[4173,18935,18936,18938,18940,18942,18945,18947,18950,18953,18955],{"class":4657,"line":10872},[4173,18937,9459],{"class":4661},[4173,18939,9481],{"class":4669},[4173,18941,9484],{"class":4665},[4173,18943,18944],{"class":4669}," \"*.sh\"",[4173,18946,9791],{"class":4665},[4173,18948,18949],{"class":4669}," chmod",[4173,18951,18952],{"class":4669}," +x",[4173,18954,9797],{"class":4669},[4173,18956,9800],{"class":4665},[4173,18958,18959],{"class":4657,"line":10877},[4173,18960,4761],{"emptyLinePlaceholder":4760},[4173,18962,18963],{"class":4657,"line":10882},[4173,18964,18965],{"class":4766},"# Effizienter mit + (ein Aufruf für alle Dateien)\n",[4173,18967,18968],{"class":4657,"line":10890},[4173,18969,4761],{"emptyLinePlaceholder":4760},[4173,18971,18972,18974,18976,18978,18980,18982,18985,18987],{"class":4657,"line":10895},[4173,18973,9459],{"class":4661},[4173,18975,9481],{"class":4669},[4173,18977,9484],{"class":4665},[4173,18979,9788],{"class":4669},[4173,18981,9791],{"class":4665},[4173,18983,18984],{"class":4669}," gzip",[4173,18986,9797],{"class":4669},[4173,18988,18989],{"class":4669}," +\n",[4173,18991,18992],{"class":4657,"line":10904},[4173,18993,4761],{"emptyLinePlaceholder":4760},[4173,18995,18996],{"class":4657,"line":10909},[4173,18997,18998],{"class":4766},"# Mit xargs kombinieren (null-sicher)\n",[4173,19000,19001],{"class":4657,"line":10914},[4173,19002,4761],{"emptyLinePlaceholder":4760},[4173,19004,19005,19007,19009,19011,19014,19017,19019,19022,19025,19027],{"class":4657,"line":10919},[4173,19006,9459],{"class":4661},[4173,19008,9481],{"class":4669},[4173,19010,9484],{"class":4665},[4173,19012,19013],{"class":4669}," \"*.bak\"",[4173,19015,19016],{"class":4665}," -print0",[4173,19018,8928],{"class":4788},[4173,19020,19021],{"class":4661}," xargs",[4173,19023,19024],{"class":4665}," -0",[4173,19026,9794],{"class":4669},[4173,19028,19029],{"class":4665}," -f\n",[4173,19031,19032],{"class":4657,"line":10933},[4173,19033,4761],{"emptyLinePlaceholder":4760},[4173,19035,19036],{"class":4657,"line":10938},[4173,19037,19038],{"class":4766},"# Nicht in .git-Verzeichnissen suchen\n",[4173,19040,19041],{"class":4657,"line":10959},[4173,19042,4761],{"emptyLinePlaceholder":4760},[4173,19044,19045,19047,19049,19052,19055,19058,19060],{"class":4657,"line":10964},[4173,19046,9459],{"class":4661},[4173,19048,9481],{"class":4669},[4173,19050,19051],{"class":4665}," -not",[4173,19053,19054],{"class":4665}," -path",[4173,19056,19057],{"class":4669}," \".\u002F.git\u002F\"",[4173,19059,9484],{"class":4665},[4173,19061,19062],{"class":4669}," \".py\"\n",[4173,19064,19065],{"class":4657,"line":10969},[4173,19066,4761],{"emptyLinePlaceholder":4760},[4173,19068,19069],{"class":4657,"line":10974},[4173,19070,19071],{"class":4766},"# Dateien zwischen zwei Größen\n",[4173,19073,19074],{"class":4657,"line":10982},[4173,19075,4761],{"emptyLinePlaceholder":4760},[4173,19077,19078,19080,19082,19084,19086,19088,19091,19093],{"class":4657,"line":10987},[4173,19079,9459],{"class":4661},[4173,19081,9481],{"class":4669},[4173,19083,9497],{"class":4665},[4173,19085,10269],{"class":4669},[4173,19087,18676],{"class":4665},[4173,19089,19090],{"class":4669}," +1k",[4173,19092,18676],{"class":4665},[4173,19094,19095],{"class":4665}," -10k\n",[4173,19097,19098],{"class":4657,"line":10995},[4173,19099,4761],{"emptyLinePlaceholder":4760},[4173,19101,19102],{"class":4657,"line":11000},[4173,19103,19104],{"class":4766},"# Mehrere Namen mit ODER\n",[4173,19106,19107],{"class":4657,"line":11008},[4173,19108,4761],{"emptyLinePlaceholder":4760},[4173,19110,19111,19113,19115,19118,19120,19123,19125,19127,19130,19132,19134,19137],{"class":4657,"line":11013},[4173,19112,9459],{"class":4661},[4173,19114,9481],{"class":4669},[4173,19116,19117],{"class":4784}," ( ",[4173,19119,9523],{"class":4665},[4173,19121,19122],{"class":4669}," \".jpg\"",[4173,19124,18857],{"class":4665},[4173,19126,9484],{"class":4665},[4173,19128,19129],{"class":4669}," \".png\"",[4173,19131,18857],{"class":4665},[4173,19133,9484],{"class":4665},[4173,19135,19136],{"class":4669}," \"*.gif\"",[4173,19138,19139],{"class":4784}," ) -type f\n",[4173,19141,19142],{"class":4657,"line":11021},[4173,19143,4761],{"emptyLinePlaceholder":4760},[4173,19145,19146],{"class":4657,"line":11026},[4173,19147,19148],{"class":4766},"# Dateien neuer als eine Referenzdatei\n",[4173,19150,19151],{"class":4657,"line":11034},[4173,19152,4761],{"emptyLinePlaceholder":4760},[4173,19154,19155,19157,19159,19162,19165,19167],{"class":4657,"line":11039},[4173,19156,9459],{"class":4661},[4173,19158,9481],{"class":4669},[4173,19160,19161],{"class":4665}," -newer",[4173,19163,19164],{"class":4669}," referenz.txt",[4173,19166,9497],{"class":4665},[4173,19168,6872],{"class":4669},[16,19170,12997],{"id":19171},"ausgabe-8",[11,19173,19175],{"id":19174},"find-name-txt-type-f","find . -name \"*.txt\" -type f",[414,19177,19178],{},".\u002Fdokumente\u002Fnotizen.txt",[414,19180,19181],{},".\u002Fbackup\u002Falt.txt",[414,19183,19184],{},".\u002FREADME.txt",[11,19186,19188],{"id":19187},"find-varlog-type-f-mtime-1-ls","find \u002Fvar\u002Flog -type f -mtime -1 -ls",[414,19190,19191],{},"12345678 8 -rw-r--r-- 1 syslog adm 7194 Apr 29 09:58 \u002Fvar\u002Flog\u002Fsyslog",[414,19193,19194],{},"12345679 4 -rw-r--r-- 1 root adm 1302 Apr 29 08:00 \u002Fvar\u002Flog\u002Fauth.log",[11,19196,19198],{"id":19197},"find-type-f-perm-4000-2devnull","find \u002F -type f -perm -4000 2>\u002Fdev\u002Fnull",[414,19200,14969],{},[414,19202,19203],{},"\u002Fusr\u002Fbin\u002Fsu",[414,19205,19206],{},"\u002Fusr\u002Fbin\u002Fsudo",[414,19208,19209],{},"\u002Fusr\u002Fbin\u002Fmount",[11,19211,9844],{"id":9844},[414,19213,19214,19216,19217,19219,19220,19223],{},[42,19215,12709],{}," Mächtiges Werkzeug zur strukturierten Textverarbeitung. ",[42,19218,9844],{}," liest Eingabe zeilenweise, teilt jede Zeile in Felder auf und wendet Muster-Aktions-Regeln an. Ideal für Logs, CSVs und ",[42,19221,19222],{},"\u002Fetc\u002Fpasswd","-ähnliche Dateien.",[414,19225,19226,6100,19228],{},[42,19227,7941],{},[42,19229,19230,19231,19233,19234],{},"awk ",[4173,19232,12720],{}," 'PROGRAMM' ",[4173,19235,15846],{},[414,19237,19238],{},[42,19239,19240],{},"Grundstruktur eines awk-Programms",[4647,19242,19244],{"className":4649,"code":19243,"language":4651,"meta":269,"style":269},"awk 'BEGIN { Initialisierungen }\n",[4653,19245,19246],{"__ignoreMap":269},[4173,19247,19248,19250],{"class":4657,"line":4658},[4173,19249,9844],{"class":4661},[4173,19251,19252],{"class":4669}," 'BEGIN { Initialisierungen }\n",[414,19254,19255,19256,19258],{},"\u002FMUSTER\u002F { Aktionen pro Zeile }",[7135,19257],{},"\nEND { Abschlussaktionen }' datei.txt",[21,19260,19261,19271,19280],{},[24,19262,19263,19266,19267,19270],{},[42,19264,19265],{},"BEGIN"," – wird einmal ",[42,19268,19269],{},"vor"," dem ersten Zeileneinlesen ausgeführt",[24,19272,19273,19266,19276,19279],{},[42,19274,19275],{},"END",[42,19277,19278],{},"nach"," dem letzten Zeileneinlesen ausgeführt",[24,19281,19282,19283,19286],{},"Ohne Muster gilt die Aktion für ",[42,19284,19285],{},"jede"," Zeile",[16,19288,19290],{"id":19289},"eingebaute-variablen","Eingebaute Variablen",[765,19292,19293,19305],{},[768,19294,19295],{},[771,19296,19297,19301],{},[774,19298,19299],{},[42,19300,9876],{},[774,19302,19303],{},[42,19304,6733],{},[787,19306,19307,19314,19322,19329,19336,19344,19352,19360,19368,19376],{},[771,19308,19309,19311],{},[792,19310,6129],{},[792,19312,19313],{},"Komplette aktuelle Zeile",[771,19315,19316,19319],{},[792,19317,19318],{},"$1, $2, ... $NF",[792,19320,19321],{},"Felder der Zeile (1-basiert)",[771,19323,19324,19326],{},[792,19325,9910],{},[792,19327,19328],{},"Anzahl der Felder in der aktuellen Zeile",[771,19330,19331,19333],{},[792,19332,9918],{},[792,19334,19335],{},"Aktuelle Zeilennummer (gesamt)",[771,19337,19338,19341],{},[792,19339,19340],{},"FNR",[792,19342,19343],{},"Zeilennummer innerhalb der aktuellen Datei",[771,19345,19346,19349],{},[792,19347,19348],{},"FS",[792,19350,19351],{},"Eingabe-Feldtrenner (Standard: Leerzeichen\u002FTab)",[771,19353,19354,19357],{},[792,19355,19356],{},"OFS",[792,19358,19359],{},"Ausgabe-Feldtrenner",[771,19361,19362,19365],{},[792,19363,19364],{},"RS",[792,19366,19367],{},"Eingabe-Zeilentrenner (Standard: \\n)",[771,19369,19370,19373],{},[792,19371,19372],{},"ORS",[792,19374,19375],{},"Ausgabe-Zeilentrenner",[771,19377,19378,19381],{},[792,19379,19380],{},"FILENAME",[792,19382,19383],{},"Name der aktuellen Eingabedatei",[16,19385,12780],{"id":19386},"flags-8",[765,19388,19389,19401],{},[768,19390,19391],{},[771,19392,19393,19397],{},[774,19394,19395],{},[42,19396,12791],{},[774,19398,19399],{},[42,19400,6733],{},[787,19402,19403,19411,19419],{},[771,19404,19405,19408],{},[792,19406,19407],{},"-F TRENNER",[792,19409,19410],{},"Feldtrenner festlegen (z.B. -F: oder -F\",\")",[771,19412,19413,19416],{},[792,19414,19415],{},"-v VAR=WERT",[792,19417,19418],{},"Variable vor Programmstart setzen",[771,19420,19421,19424],{},[792,19422,19423],{},"-f DATEI",[792,19425,19426],{},"awk-Programm aus Datei laden",[414,19428,19429],{},[42,19430,19431],{},"Vergleichsoperatoren",[765,19433,19434,19447],{},[768,19435,19436],{},[771,19437,19438,19443],{},[774,19439,19440],{},[42,19441,19442],{},"Operator",[774,19444,19445],{},[42,19446,6733],{},[787,19448,19449,19457,19465,19473,19481,19489],{},[771,19450,19451,19454],{},[792,19452,19453],{},"==",[792,19455,19456],{},"Gleich",[771,19458,19459,19462],{},[792,19460,19461],{},"!=",[792,19463,19464],{},"Ungleich",[771,19466,19467,19470],{},[792,19468,19469],{},"\u003C, >",[792,19471,19472],{},"Kleiner\u002FGrößer",[771,19474,19475,19478],{},[792,19476,19477],{},"\u003C=, >=",[792,19479,19480],{},"Kleiner-gleich\u002FGrößer-gleich",[771,19482,19483,19486],{},[792,19484,19485],{},"~",[792,19487,19488],{},"Regulärer Ausdruck passt",[771,19490,19491,19494],{},[792,19492,19493],{},"!~",[792,19495,19496],{},"Regulärer Ausdruck passt nicht",[16,19498,19500],{"id":19499},"string-funktionen","String-Funktionen",[765,19502,19503,19516],{},[768,19504,19505],{},[771,19506,19507,19512],{},[774,19508,19509],{},[42,19510,19511],{},"Funktion",[774,19513,19514],{},[42,19515,6733],{},[787,19517,19518,19526,19537,19545,19553,19564,19574,19582,19590,19598,19606],{},[771,19519,19520,19523],{},[792,19521,19522],{},"length(s)",[792,19524,19525],{},"Länge des Strings (ohne Arg: Länge von $0)",[771,19527,19528,19534],{},[792,19529,19530,19531,6282],{},"substr(s, start ",[4173,19532,19533],{},", len",[792,19535,19536],{},"Teilstring ab Position start, optional Länge len",[771,19538,19539,19542],{},[792,19540,19541],{},"index(s, such)",[792,19543,19544],{},"Position von such in s (0 = nicht gefunden)",[771,19546,19547,19550],{},[792,19548,19549],{},"split(s, arr, trenn)",[792,19551,19552],{},"s per Trenner in Array zerlegen; gibt Elementanzahl zurück",[771,19554,19555,19561],{},[792,19556,19557,19558,6282],{},"sub(regex, ersatz ",[4173,19559,19560],{},", s",[792,19562,19563],{},"Erste Übereinstimmung ersetzen (Standard: $0)",[771,19565,19566,19571],{},[792,19567,19568,19569,6282],{},"gsub(regex, ersatz ",[4173,19570,19560],{},[792,19572,19573],{},"Alle Übereinstimmungen ersetzen; gibt Anzahl zurück",[771,19575,19576,19579],{},[792,19577,19578],{},"match(s, regex)",[792,19580,19581],{},"Regex in s suchen – setzt RSTART (Position) und RLENGTH (Länge)",[771,19583,19584,19587],{},[792,19585,19586],{},"sprintf(format, ...)",[792,19588,19589],{},"Formatierter String (gibt String zurück, druckt nicht)",[771,19591,19592,19595],{},[792,19593,19594],{},"tolower(s)",[792,19596,19597],{},"Alle Zeichen in Kleinbuchstaben umwandeln",[771,19599,19600,19603],{},[792,19601,19602],{},"toupper(s)",[792,19604,19605],{},"Alle Zeichen in Großbuchstaben umwandeln",[771,19607,19608,19613],{},[792,19609,19610,19611,6282],{},"gensub(regex, ersatz, flag ",[4173,19612,19560],{},[792,19614,19615],{},"Erweitertes Ersetzen mit Rückreferenzen \\1 (gawk)",[414,19617,19618,19620,19621,19623,19624,19626,19627,19630],{},[42,19619,13160],{}," In sub\u002Fgsub steht & im Ersatzstring für den gesamten gefundenen Text.",[7135,19622],{},"\nBeispiel: gsub(\u002F",[4173,19625,18063],{},"+\u002F, \"",[4173,19628,19629],{},"&","\") → umschließt Zahlen mit eckigen Klammern.",[16,19632,19634],{"id":19633},"math-funktionen","Math-Funktionen",[765,19636,19637,19649],{},[768,19638,19639],{},[771,19640,19641,19645],{},[774,19642,19643],{},[42,19644,19511],{},[774,19646,19647],{},[42,19648,6733],{},[787,19650,19651,19659,19667,19675,19683,19691,19699,19707],{},[771,19652,19653,19656],{},[792,19654,19655],{},"int(x)",[792,19657,19658],{},"Integer-Anteil (abschneiden, nicht runden)",[771,19660,19661,19664],{},[792,19662,19663],{},"sqrt(x)",[792,19665,19666],{},"Quadratwurzel",[771,19668,19669,19672],{},[792,19670,19671],{},"sin(x), cos(x)",[792,19673,19674],{},"Sinus \u002F Kosinus (Argument in Radiant)",[771,19676,19677,19680],{},[792,19678,19679],{},"atan2(y, x)",[792,19681,19682],{},"Arcustangens von y\u002Fx",[771,19684,19685,19688],{},[792,19686,19687],{},"exp(x)",[792,19689,19690],{},"e hoch x",[771,19692,19693,19696],{},[792,19694,19695],{},"log(x)",[792,19697,19698],{},"Natürlicher Logarithmus (Basis e)",[771,19700,19701,19704],{},[792,19702,19703],{},"rand()",[792,19705,19706],{},"Zufallszahl im Bereich [0, 1)",[771,19708,19709,19715],{},[792,19710,19711,19712,6282],{},"srand(",[4173,19713,19714],{},"seed",[792,19716,19717],{},"Zufallszahlen-Seed setzen; gibt alten Seed zurück",[16,19719,19721],{"id":19720},"kontrollstrukturen","Kontrollstrukturen",[11,19723,19725],{"id":19724},"if-else","if \u002F else",[414,19727,19728,19729,19731,19732,19735],{},"{ ",[42,19730,6201],{}," ($3 > 100) print \"groß\"; ",[42,19733,19734],{},"else"," print \"klein\" }",[11,19737,19739],{"id":19738},"if-else-if-else","if \u002F else if \u002F else",[414,19741,19742],{},"{",[414,19744,19745,19747],{},[42,19746,6201],{}," ($3 > 100) print \"groß\";",[414,19749,19750,6100,19752,19754],{},[42,19751,19734],{},[42,19753,6201],{}," ($3 > 50) print \"mittel\";",[414,19756,19757,19759],{},[42,19758,19734],{}," print \"klein\"",[414,19761,19762],{},"}",[11,19764,19766],{"id":19765},"for-schleife-klassisch-über-alle-felder-einer-zeile-iterieren","for-Schleife (klassisch, über alle Felder einer Zeile iterieren)",[414,19768,19728,19769,19771],{},[42,19770,6425],{}," (i = 1; i \u003C= NF; i++) print i\": \"$i }",[11,19773,19775],{"id":19774},"for-schleife-über-array-schlüssel-reihenfolge-nicht-garantiert","for-Schleife über Array-Schlüssel (Reihenfolge nicht garantiert)",[414,19777,19778,19779,19781,19782,19784,19785,19788],{},"END { ",[42,19780,6425],{}," (key ",[42,19783,6431],{}," count) print key, count",[4173,19786,19787],{},"key"," }",[11,19790,19792],{"id":19791},"while-schleife","while-Schleife",[414,19794,19795,19796,19798],{},"{ i = 1; ",[42,19797,6694],{}," (i \u003C= NF) { print $i; i++ } }",[11,19800,19801],{"id":19801},"do-while",[414,19803,19804,19805,19807,19808,19810],{},"BEGIN { i = 1; ",[42,19806,6677],{}," { print i; i++ } ",[42,19809,6694],{}," (i \u003C= 5) }",[11,19812,19814],{"id":19813},"next-restliche-regeln-überspringen-sofort-nächste-zeile-holen","next: restliche Regeln überspringen, sofort nächste Zeile holen",[414,19816,19817],{},"\u002F^#\u002F { next } # Kommentarzeilen ignorieren",[414,19819,19820],{},"{ print } # (wird für Kommentarzeilen nie erreicht)",[11,19822,19824],{"id":19823},"exit-awk-sofort-beenden-end-block-wird-trotzdem-noch-ausgeführt","exit: awk sofort beenden (END-Block wird trotzdem noch ausgeführt)",[16,19826,19828],{"id":19827},"nr-100-exit-nur-die-ersten-100-zeilen-verarbeiten","NR > 100 { exit } # Nur die ersten 100 Zeilen verarbeiten",[16,19830,9925],{"id":19831},"beispiele-9",[11,19833,19835],{"id":19834},"erste-spalte-ausgeben","Erste Spalte ausgeben",[4647,19837,19839],{"className":4649,"code":19838,"language":4651,"meta":269,"style":269},"awk '{print $1}' datei.txt\n\n# Letzte Spalte ausgeben (NF = Anzahl Felder)\n\nawk '{print $NF}' datei.txt\n\n# Benutzernamen aus \u002Fetc\u002Fpasswd\n\nawk -F: '{print $1}' \u002Fetc\u002Fpasswd\n\n# Benutzername + Home-Verzeichnis + Shell\n\nawk -F: '{print $1, $6, $7}' \u002Fetc\u002Fpasswd\n\n# Eigener Ausgabe-Trennzeichen\n\nawk -F: 'OFS=\" | \" {print $1, $3, $6}' \u002Fetc\u002Fpasswd\n\n# Zeilennummer + Inhalt\n\nawk '{print NR\": \"$0}' datei.txt\n\n# Nur Zeilen die \"root\" enthalten\n\nawk '\u002Froot\u002F {print}' \u002Fetc\u002Fpasswd\n\n# Zeilen ausgeben bei denen Feld 3 (UID) größer 1000 ist\n\nawk -F: '$3 > 1000 {print $1, $3}' \u002Fetc\u002Fpasswd\n\n# Zeilen ausgeben wo Shell NICHT \u002Fnologin ist\n\nawk -F: '$7 !~ \u002Fnologin\u002F {print $1, $7}' \u002Fetc\u002Fpasswd\n\n# Summe einer Spalte berechnen\n\nawk '{sum += $1} END {print \"Summe:\", sum}' zahlen.txt\n\n# Durchschnitt berechnen\n\nawk '{sum += $1; count++} END {print \"Durchschnitt:\", sum\u002Fcount}' zahlen.txt\n\n# BEGIN und END mit Feldtrenner setzen\n\nawk 'BEGIN{print \"=== Start ===\"; FS=\":\"} {print $1} END{print \"=== Ende ===\"}' \u002Fetc\u002Fpasswd\n\n# Variable übergeben\n\nawk -v grenze=1000 -F: '$3 > grenze {print $1}' \u002Fetc\u002Fpasswd\n\n# printf für formatierte Ausgabe\n\nawk -F: '{printf \"%-15s UID: %4d\\n\", $1, $3}' \u002Fetc\u002Fpasswd\n\n# Feld ersetzen und neu ausgeben\n\nawk -F: 'OFS=\":\" {$7=\"\u002Fbin\u002Fsh\"; print}' \u002Fetc\u002Fpasswd\n\n# Zeilen zählen die ein Muster haben\n\nawk '\u002FERROR\u002F{count++} END{print count \" Fehler gefunden\"}' \u002Fvar\u002Flog\u002Fapp.log\n\n# Einzigartiger Trick: Duplikate entfernen (ohne sort)\n\nawk '!seen[$0]++' datei.txt\n\n# CSV ab Zeile 2 verarbeiten (Header überspringen)\n\nawk 'NR > 1 {print $1, $3}' tabelle.csv\n\n",[4653,19840,19841,19849,19853,19858,19862,19871,19875,19880,19884,19895,19899,19904,19908,19919,19923,19928,19932,19943,19947,19952,19956,19965,19969,19974,19978,19987,19991,19996,20000,20011,20015,20020,20024,20035,20039,20044,20048,20057,20061,20066,20070,20079,20083,20088,20092,20101,20105,20110,20114,20132,20136,20141,20145,20156,20160,20165,20169,20180,20184,20189,20193,20202,20206,20211,20215,20224,20228,20233,20237],{"__ignoreMap":269},[4173,19842,19843,19845,19847],{"class":4657,"line":4658},[4173,19844,9844],{"class":4661},[4173,19846,9941],{"class":4669},[4173,19848,8947],{"class":4669},[4173,19850,19851],{"class":4657,"line":270},[4173,19852,4761],{"emptyLinePlaceholder":4760},[4173,19854,19855],{"class":4657,"line":1263},[4173,19856,19857],{"class":4766},"# Letzte Spalte ausgeben (NF = Anzahl Felder)\n",[4173,19859,19860],{"class":4657,"line":4770},[4173,19861,4761],{"emptyLinePlaceholder":4760},[4173,19863,19864,19866,19869],{"class":4657,"line":4775},[4173,19865,9844],{"class":4661},[4173,19867,19868],{"class":4669}," '{print $NF}'",[4173,19870,8947],{"class":4669},[4173,19872,19873],{"class":4657,"line":6320},[4173,19874,4761],{"emptyLinePlaceholder":4760},[4173,19876,19877],{"class":4657,"line":6325},[4173,19878,19879],{"class":4766},"# Benutzernamen aus \u002Fetc\u002Fpasswd\n",[4173,19881,19882],{"class":4657,"line":6343},[4173,19883,4761],{"emptyLinePlaceholder":4760},[4173,19885,19886,19888,19891,19893],{"class":4657,"line":6348},[4173,19887,9844],{"class":4661},[4173,19889,19890],{"class":4665}," -F:",[4173,19892,9941],{"class":4669},[4173,19894,10007],{"class":4669},[4173,19896,19897],{"class":4657,"line":6457},[4173,19898,4761],{"emptyLinePlaceholder":4760},[4173,19900,19901],{"class":4657,"line":6462},[4173,19902,19903],{"class":4766},"# Benutzername + Home-Verzeichnis + Shell\n",[4173,19905,19906],{"class":4657,"line":6468},[4173,19907,4761],{"emptyLinePlaceholder":4760},[4173,19909,19910,19912,19914,19917],{"class":4657,"line":6473},[4173,19911,9844],{"class":4661},[4173,19913,19890],{"class":4665},[4173,19915,19916],{"class":4669}," '{print $1, $6, $7}'",[4173,19918,10007],{"class":4669},[4173,19920,19921],{"class":4657,"line":6479},[4173,19922,4761],{"emptyLinePlaceholder":4760},[4173,19924,19925],{"class":4657,"line":6503},[4173,19926,19927],{"class":4766},"# Eigener Ausgabe-Trennzeichen\n",[4173,19929,19930],{"class":4657,"line":6516},[4173,19931,4761],{"emptyLinePlaceholder":4760},[4173,19933,19934,19936,19938,19941],{"class":4657,"line":6971},[4173,19935,9844],{"class":4661},[4173,19937,19890],{"class":4665},[4173,19939,19940],{"class":4669}," 'OFS=\" | \" {print $1, $3, $6}'",[4173,19942,10007],{"class":4669},[4173,19944,19945],{"class":4657,"line":10649},[4173,19946,4761],{"emptyLinePlaceholder":4760},[4173,19948,19949],{"class":4657,"line":10654},[4173,19950,19951],{"class":4766},"# Zeilennummer + Inhalt\n",[4173,19953,19954],{"class":4657,"line":10659},[4173,19955,4761],{"emptyLinePlaceholder":4760},[4173,19957,19958,19960,19963],{"class":4657,"line":10664},[4173,19959,9844],{"class":4661},[4173,19961,19962],{"class":4669}," '{print NR\": \"$0}'",[4173,19964,8947],{"class":4669},[4173,19966,19967],{"class":4657,"line":10676},[4173,19968,4761],{"emptyLinePlaceholder":4760},[4173,19970,19971],{"class":4657,"line":10681},[4173,19972,19973],{"class":4766},"# Nur Zeilen die \"root\" enthalten\n",[4173,19975,19976],{"class":4657,"line":10702},[4173,19977,4761],{"emptyLinePlaceholder":4760},[4173,19979,19980,19982,19985],{"class":4657,"line":10707},[4173,19981,9844],{"class":4661},[4173,19983,19984],{"class":4669}," '\u002Froot\u002F {print}'",[4173,19986,10007],{"class":4669},[4173,19988,19989],{"class":4657,"line":10712},[4173,19990,4761],{"emptyLinePlaceholder":4760},[4173,19992,19993],{"class":4657,"line":10717},[4173,19994,19995],{"class":4766},"# Zeilen ausgeben bei denen Feld 3 (UID) größer 1000 ist\n",[4173,19997,19998],{"class":4657,"line":10727},[4173,19999,4761],{"emptyLinePlaceholder":4760},[4173,20001,20002,20004,20006,20009],{"class":4657,"line":10732},[4173,20003,9844],{"class":4661},[4173,20005,19890],{"class":4665},[4173,20007,20008],{"class":4669}," '$3 > 1000 {print $1, $3}'",[4173,20010,10007],{"class":4669},[4173,20012,20013],{"class":4657,"line":10737},[4173,20014,4761],{"emptyLinePlaceholder":4760},[4173,20016,20017],{"class":4657,"line":10742},[4173,20018,20019],{"class":4766},"# Zeilen ausgeben wo Shell NICHT \u002Fnologin ist\n",[4173,20021,20022],{"class":4657,"line":10752},[4173,20023,4761],{"emptyLinePlaceholder":4760},[4173,20025,20026,20028,20030,20033],{"class":4657,"line":10757},[4173,20027,9844],{"class":4661},[4173,20029,19890],{"class":4665},[4173,20031,20032],{"class":4669}," '$7 !~ \u002Fnologin\u002F {print $1, $7}'",[4173,20034,10007],{"class":4669},[4173,20036,20037],{"class":4657,"line":10762},[4173,20038,4761],{"emptyLinePlaceholder":4760},[4173,20040,20041],{"class":4657,"line":10767},[4173,20042,20043],{"class":4766},"# Summe einer Spalte berechnen\n",[4173,20045,20046],{"class":4657,"line":10772},[4173,20047,4761],{"emptyLinePlaceholder":4760},[4173,20049,20050,20052,20055],{"class":4657,"line":10777},[4173,20051,9844],{"class":4661},[4173,20053,20054],{"class":4669}," '{sum += $1} END {print \"Summe:\", sum}'",[4173,20056,10029],{"class":4669},[4173,20058,20059],{"class":4657,"line":10782},[4173,20060,4761],{"emptyLinePlaceholder":4760},[4173,20062,20063],{"class":4657,"line":10787},[4173,20064,20065],{"class":4766},"# Durchschnitt berechnen\n",[4173,20067,20068],{"class":4657,"line":10800},[4173,20069,4761],{"emptyLinePlaceholder":4760},[4173,20071,20072,20074,20077],{"class":4657,"line":10805},[4173,20073,9844],{"class":4661},[4173,20075,20076],{"class":4669}," '{sum += $1; count++} END {print \"Durchschnitt:\", sum\u002Fcount}'",[4173,20078,10029],{"class":4669},[4173,20080,20081],{"class":4657,"line":10818},[4173,20082,4761],{"emptyLinePlaceholder":4760},[4173,20084,20085],{"class":4657,"line":10823},[4173,20086,20087],{"class":4766},"# BEGIN und END mit Feldtrenner setzen\n",[4173,20089,20090],{"class":4657,"line":10836},[4173,20091,4761],{"emptyLinePlaceholder":4760},[4173,20093,20094,20096,20099],{"class":4657,"line":10841},[4173,20095,9844],{"class":4661},[4173,20097,20098],{"class":4669}," 'BEGIN{print \"=== Start ===\"; FS=\":\"} {print $1} END{print \"=== Ende ===\"}'",[4173,20100,10007],{"class":4669},[4173,20102,20103],{"class":4657,"line":10846},[4173,20104,4761],{"emptyLinePlaceholder":4760},[4173,20106,20107],{"class":4657,"line":10851},[4173,20108,20109],{"class":4766},"# Variable übergeben\n",[4173,20111,20112],{"class":4657,"line":10867},[4173,20113,4761],{"emptyLinePlaceholder":4760},[4173,20115,20116,20118,20120,20123,20125,20127,20130],{"class":4657,"line":10872},[4173,20117,9844],{"class":4661},[4173,20119,17702],{"class":4665},[4173,20121,20122],{"class":4669}," grenze=",[4173,20124,13015],{"class":4665},[4173,20126,19890],{"class":4665},[4173,20128,20129],{"class":4669}," '$3 > grenze {print $1}'",[4173,20131,10007],{"class":4669},[4173,20133,20134],{"class":4657,"line":10877},[4173,20135,4761],{"emptyLinePlaceholder":4760},[4173,20137,20138],{"class":4657,"line":10882},[4173,20139,20140],{"class":4766},"# printf für formatierte Ausgabe\n",[4173,20142,20143],{"class":4657,"line":10890},[4173,20144,4761],{"emptyLinePlaceholder":4760},[4173,20146,20147,20149,20151,20154],{"class":4657,"line":10895},[4173,20148,9844],{"class":4661},[4173,20150,19890],{"class":4665},[4173,20152,20153],{"class":4669}," '{printf \"%-15s UID: %4d\\n\", $1, $3}'",[4173,20155,10007],{"class":4669},[4173,20157,20158],{"class":4657,"line":10904},[4173,20159,4761],{"emptyLinePlaceholder":4760},[4173,20161,20162],{"class":4657,"line":10909},[4173,20163,20164],{"class":4766},"# Feld ersetzen und neu ausgeben\n",[4173,20166,20167],{"class":4657,"line":10914},[4173,20168,4761],{"emptyLinePlaceholder":4760},[4173,20170,20171,20173,20175,20178],{"class":4657,"line":10919},[4173,20172,9844],{"class":4661},[4173,20174,19890],{"class":4665},[4173,20176,20177],{"class":4669}," 'OFS=\":\" {$7=\"\u002Fbin\u002Fsh\"; print}'",[4173,20179,10007],{"class":4669},[4173,20181,20182],{"class":4657,"line":10933},[4173,20183,4761],{"emptyLinePlaceholder":4760},[4173,20185,20186],{"class":4657,"line":10938},[4173,20187,20188],{"class":4766},"# Zeilen zählen die ein Muster haben\n",[4173,20190,20191],{"class":4657,"line":10959},[4173,20192,4761],{"emptyLinePlaceholder":4760},[4173,20194,20195,20197,20200],{"class":4657,"line":10964},[4173,20196,9844],{"class":4661},[4173,20198,20199],{"class":4669}," '\u002FERROR\u002F{count++} END{print count \" Fehler gefunden\"}'",[4173,20201,17037],{"class":4669},[4173,20203,20204],{"class":4657,"line":10969},[4173,20205,4761],{"emptyLinePlaceholder":4760},[4173,20207,20208],{"class":4657,"line":10974},[4173,20209,20210],{"class":4766},"# Einzigartiger Trick: Duplikate entfernen (ohne sort)\n",[4173,20212,20213],{"class":4657,"line":10982},[4173,20214,4761],{"emptyLinePlaceholder":4760},[4173,20216,20217,20219,20222],{"class":4657,"line":10987},[4173,20218,9844],{"class":4661},[4173,20220,20221],{"class":4669}," '!seen[$0]++'",[4173,20223,8947],{"class":4669},[4173,20225,20226],{"class":4657,"line":10995},[4173,20227,4761],{"emptyLinePlaceholder":4760},[4173,20229,20230],{"class":4657,"line":11000},[4173,20231,20232],{"class":4766},"# CSV ab Zeile 2 verarbeiten (Header überspringen)\n",[4173,20234,20235],{"class":4657,"line":11008},[4173,20236,4761],{"emptyLinePlaceholder":4760},[4173,20238,20239,20241,20244],{"class":4657,"line":11013},[4173,20240,9844],{"class":4661},[4173,20242,20243],{"class":4669}," 'NR > 1 {print $1, $3}'",[4173,20245,16571],{"class":4669},[16,20247,12997],{"id":20248},"ausgabe-9",[11,20250,20252],{"id":20251},"awk-f-print-1-etcpasswd","awk -F: '{print $1}' \u002Fetc\u002Fpasswd",[414,20254,13685],{},[414,20256,20257],{},"daemon",[414,20259,20260],{},"bin",[414,20262,13020],{},[11,20264,20266],{"id":20265},"awk-f-3-1000-print-1-3-etcpasswd","awk -F: '$3 > 1000 {print $1, $3}' \u002Fetc\u002Fpasswd",[414,20268,20269],{},"matta 1001",[414,20271,20272],{},"alice 1002",[11,20274,20276],{"id":20275},"awk-f-printf-15s-uid-4dn-1-3-etcpasswd","awk -F: '{printf \"%-15s UID: %4d\\n\", $1, $3}' \u002Fetc\u002Fpasswd",[414,20278,20279],{},"root UID: 0",[414,20281,20282],{},"daemon UID: 1",[414,20284,20285],{},"matta UID: 1000",[11,20287,20289],{"id":20288},"awk-sum-1-count-end-print-summe-sum-schnitt-sumcount-zahlentxt","awk '{sum += $1; count++} END {print \"Summe:\", sum, \"Schnitt:\", sum\u002Fcount}' zahlen.txt",[414,20291,20292],{},"Summe: 165 Schnitt: 16.5",[11,20294,9165],{"id":9165},[414,20296,20297,20299],{},[42,20298,12709],{}," sed (Stream Editor) bearbeitet Text zeilenweise. Es liest Dateien oder stdin, wendet Transformationsregeln an und gibt das Ergebnis nach stdout aus. Ideal für automatisierte Textersetzung in Skripten.",[414,20301,20302,20304,20305,20307,20308],{},[42,20303,7941],{}," sed ",[4173,20306,12720],{}," 'SKRIPT' ",[4173,20309,15846],{},[16,20311,20313],{"id":20312},"alle-kommandozeilen-optionen","Alle Kommandozeilen-Optionen",[765,20315,20316,20332],{},[768,20317,20318],{},[771,20319,20320,20324,20328],{},[774,20321,20322],{},[42,20323,8964],{},[774,20325,20326],{},[42,20327,12796],{},[774,20329,20330],{},[42,20331,6733],{},[787,20333,20334,20344,20355,20365,20381,20392,20402,20413,20423],{},[771,20335,20336,20338,20341],{},[792,20337,8991],{},[792,20339,20340],{},"--quiet \u002F --silent",[792,20342,20343],{},"Automatische Ausgabe unterdrücken; Ausgabe nur mit p",[771,20345,20346,20349,20352],{},[792,20347,20348],{},"-e SKRIPT",[792,20350,20351],{},"--expression=SKRIPT",[792,20353,20354],{},"Skript direkt auf der Kommandozeile angeben",[771,20356,20357,20359,20362],{},[792,20358,19423],{},[792,20360,20361],{},"--file=DATEI",[792,20363,20364],{},"sed-Programm aus einer Datei lesen",[771,20366,20367,20372,20378],{},[792,20368,8975,20369],{},[4173,20370,20371],{},"SUFFIX",[792,20373,20374,20375],{},"--in-place",[4173,20376,20377],{},"=SUFFIX",[792,20379,20380],{},"Datei direkt bearbeiten (Backup mit optionalem Suffix)",[771,20382,20383,20386,20389],{},[792,20384,20385],{},"-E \u002F -r",[792,20387,20388],{},"--regexp-extended",[792,20390,20391],{},"Erweiterte reguläre Ausdrücke (ERE) aktivieren",[771,20393,20394,20396,20399],{},[792,20395,6099],{},[792,20397,20398],{},"--separate",[792,20400,20401],{},"Dateien separat behandeln (NR wird je Datei zurückgesetzt)",[771,20403,20404,20407,20410],{},[792,20405,20406],{},"-z",[792,20408,20409],{},"--null-data",[792,20411,20412],{},"NUL (\\0) als Zeilentrenner statt \\n (für find -print0)",[771,20414,20415,20418,20420],{},[792,20416,20417],{},"--sandbox",[792,20419],{},[792,20421,20422],{},"Sicherer Modus: e, r, w sind verboten",[771,20424,20425,20428,20430],{},[792,20426,20427],{},"--posix",[792,20429],{},[792,20431,20432],{},"Strikt POSIX-konform arbeiten",[16,20434,20436],{"id":20435},"sed-befehle-innerhalb-des-skripts","sed-Befehle (innerhalb des Skripts)",[765,20438,20439,20451],{},[768,20440,20441],{},[771,20442,20443,20447],{},[774,20444,20445],{},[42,20446,8243],{},[774,20448,20449],{},[42,20450,6733],{},[787,20452,20453,20461,20468,20475,20486,20496,20504,20512,20520,20528,20535,20543,20551,20559,20567,20575,20583,20591,20598,20606,20614,20624,20634],{},[771,20454,20455,20458],{},[792,20456,20457],{},"s\u002FREGEX\u002FERSATZ\u002FFLAGS",[792,20459,20460],{},"Substituieren (Ersetzen)",[771,20462,20463,20465],{},[792,20464,12469],{},[792,20466,20467],{},"Zeile löschen (delete)",[771,20469,20470,20472],{},[792,20471,414],{},[792,20473,20474],{},"Zeile ausgeben (print) – extra zur Normalausgabe",[771,20476,20477,20483],{},[792,20478,20479,20480],{},"q ",[4173,20481,20482],{},"CODE",[792,20484,20485],{},"Verarbeitung beenden (quit), optionaler Exit-Code",[771,20487,20488,20493],{},[792,20489,20490,20491],{},"Q ",[4173,20492,20482],{},[792,20494,20495],{},"Sofort beenden ohne letzte Zeile auszugeben",[771,20497,20498,20501],{},[792,20499,20500],{},"i\\TEXT",[792,20502,20503],{},"TEXT vor der Zeile einfügen (insert)",[771,20505,20506,20509],{},[792,20507,20508],{},"a\\TEXT",[792,20510,20511],{},"TEXT nach der Zeile anhängen (append)",[771,20513,20514,20517],{},[792,20515,20516],{},"c\\TEXT",[792,20518,20519],{},"Zeile durch TEXT ersetzen (change)",[771,20521,20522,20525],{},[792,20523,20524],{},"y\u002FZEICHEN\u002FERSATZ\u002F",[792,20526,20527],{},"Zeichen 1:1 austauschen (transliterate)",[771,20529,20530,20532],{},[792,20531,6387],{},[792,20533,20534],{},"Aktuelle Zeilennummer ausgeben",[771,20536,20537,20540],{},[792,20538,20539],{},"n",[792,20541,20542],{},"Nächste Zeile in Pattern Space laden (und ausgeben)",[771,20544,20545,20548],{},[792,20546,20547],{},"N",[792,20549,20550],{},"Nächste Zeile anhängen (Pattern Space wird mehrzeilig)",[771,20552,20553,20556],{},[792,20554,20555],{},"D",[792,20557,20558],{},"Erste Zeile des Pattern Space löschen, von vorne beginnen",[771,20560,20561,20564],{},[792,20562,20563],{},"P",[792,20565,20566],{},"Erste Zeile des Pattern Space ausgeben",[771,20568,20569,20572],{},[792,20570,20571],{},"r DATEI",[792,20573,20574],{},"Inhalt von DATEI nach der aktuellen Zeile einfügen",[771,20576,20577,20580],{},[792,20578,20579],{},"R DATEI",[792,20581,20582],{},"Eine Zeile aus DATEI einfügen (gawk-Erweiterung)",[771,20584,20585,20588],{},[792,20586,20587],{},"w DATEI",[792,20589,20590],{},"Matching-Zeilen in DATEI schreiben",[771,20592,20593,20595],{},[792,20594,12511],{},[792,20596,20597],{},"Zeile lesbar ausgeben (unsichtbare Zeichen als Escape)",[771,20599,20600,20603],{},[792,20601,20602],{},"e",[792,20604,20605],{},"Pattern Space als Shell-Befehl ausführen (GNU sed, unsicher!)",[771,20607,20608,20611],{},[792,20609,20610],{},": LABEL",[792,20612,20613],{},"Sprungmarke definieren",[771,20615,20616,20621],{},[792,20617,20618,20619],{},"b ",[4173,20620,8458],{},[792,20622,20623],{},"Zu LABEL springen (oder an Ende, Schleife möglich)",[771,20625,20626,20631],{},[792,20627,20628,20629],{},"t ",[4173,20630,8458],{},[792,20632,20633],{},"Zu LABEL springen wenn seit letztem t ein s erfolgreich war",[771,20635,20636,20641],{},[792,20637,20638,20639],{},"T ",[4173,20640,8458],{},[792,20642,20643],{},"Zu LABEL springen wenn seit letztem T kein s erfolgreich war",[16,20645,20647],{"id":20646},"s-befehl-flags","s-Befehl Flags",[765,20649,20650,20662],{},[768,20651,20652],{},[771,20653,20654,20658],{},[774,20655,20656],{},[42,20657,12791],{},[774,20659,20660],{},[42,20661,6733],{},[787,20663,20664,20671,20678,20685,20692,20699],{},[771,20665,20666,20668],{},[792,20667,13549],{},[792,20669,20670],{},"Alle Vorkommen ersetzen (global)",[771,20672,20673,20675],{},[792,20674,20547],{},[792,20676,20677],{},"Nur das N-te Vorkommen ersetzen (z.B. s\u002Fa\u002Fb\u002F2)",[771,20679,20680,20682],{},[792,20681,414],{},[792,20683,20684],{},"Ersetzte Zeile ausgeben (sinnvoll mit -n)",[771,20686,20687,20690],{},[792,20688,20689],{},"i \u002F I",[792,20691,17246],{},[771,20693,20694,20696],{},[792,20695,20602],{},[792,20697,20698],{},"Ergebnis als Shell-Befehl ausführen (GNU sed)",[771,20700,20701,20703],{},[792,20702,20587],{},[792,20704,20705],{},"Ersetzte Zeilen in DATEI schreiben",[16,20707,20709],{"id":20708},"adressierung-zeilen-auswählen","Adressierung (Zeilen auswählen)",[765,20711,20712,20725],{},[768,20713,20714],{},[771,20715,20716,20721],{},[774,20717,20718],{},[42,20719,20720],{},"Adresse",[774,20722,20723],{},[42,20724,6733],{},[787,20726,20727,20734,20742,20750,20758,20766,20774,20782,20789],{},[771,20728,20729,20731],{},[792,20730,20547],{},[792,20732,20733],{},"Nur Zeile N",[771,20735,20736,20739],{},[792,20737,20738],{},"N,M",[792,20740,20741],{},"Zeilen N bis M",[771,20743,20744,20747],{},[792,20745,20746],{},"N~SCHRITT",[792,20748,20749],{},"Ab Zeile N jede SCHRITT-te Zeile (z.B. 1~2 = alle ungeraden)",[771,20751,20752,20755],{},[792,20753,20754],{},"0~SCHRITT",[792,20756,20757],{},"Jede SCHRITT-te Zeile (z.B. 0~2 = alle geraden)",[771,20759,20760,20763],{},[792,20761,20762],{},"\u002FREGEX\u002F",[792,20764,20765],{},"Alle Zeilen, die REGEX entsprechen",[771,20767,20768,20771],{},[792,20769,20770],{},"\u002FREGEX\u002F,\u002FREGEX2\u002F",[792,20772,20773],{},"Von erster REGEX-Zeile bis REGEX2-Zeile (Range)",[771,20775,20776,20779],{},[792,20777,20778],{},"N,\u002FREGEX\u002F",[792,20780,20781],{},"Ab Zeile N bis zur ersten REGEX-Zeile",[771,20783,20784,20786],{},[792,20785,6147],{},[792,20787,20788],{},"Letzte Zeile",[771,20790,20791,20793],{},[792,20792,6842],{},[792,20794,20795],{},"Negation (z.B. 3!d = alle AUSSER Zeile 3 löschen)",[16,20797,20799],{"id":20798},"reguläre-ausdrücke-bre-vs-ere","Reguläre Ausdrücke (BRE vs ERE)",[765,20801,20802,20822],{},[768,20803,20804],{},[771,20805,20806,20810,20815],{},[774,20807,20808],{},[42,20809,7598],{},[774,20811,20812],{},[42,20813,20814],{},"BRE (Standard)",[774,20816,20817],{},[42,20818,20819,20820,6282],{},"ERE (",[4653,20821,9030],{},[787,20823,20824,20834,20843,20854,20865,20875,20885,20895,20904,20912],{},[771,20825,20826,20829,20832],{},[792,20827,20828],{},"Gruppe",[792,20830,20831],{},"(…)",[792,20833,20831],{},[771,20835,20836,20839,20841],{},[792,20837,20838],{},"Oder",[792,20840,17579],{},[792,20842,17582],{},[771,20844,20845,20848,20851],{},[792,20846,20847],{},"1 oder mehr",[792,20849,20850],{},"a* (mind. 0)",[792,20852,20853],{},"a+",[771,20855,20856,20859,20862],{},[792,20857,20858],{},"0 oder 1",[792,20860,20861],{},"(kein direktes)",[792,20863,20864],{},"a?",[771,20866,20867,20870,20873],{},[792,20868,20869],{},"N-mal",[792,20871,20872],{},"a{3}",[792,20874,20872],{},[771,20876,20877,20880,20883],{},[792,20878,20879],{},"N bis M mal",[792,20881,20882],{},"a{2,5}",[792,20884,20882],{},[771,20886,20887,20890,20893],{},[792,20888,20889],{},"Rückreferenz",[792,20891,20892],{},"\\1, \\2",[792,20894,20892],{},[771,20896,20897,20900,20902],{},[792,20898,20899],{},"Beliebig",[792,20901,7834],{},[792,20903,7834],{},[771,20905,20906,20908,20910],{},[792,20907,17507],{},[792,20909,15157],{},[792,20911,15157],{},[771,20913,20914,20916,20918],{},[792,20915,17514],{},[792,20917,6147],{},[792,20919,6147],{},[16,20921,9925],{"id":20922},"beispiele-10",[11,20924,20926],{"id":20925},"ersetzen-s-befehl","─── Ersetzen (s-Befehl) ─────────────────────────────────────",[11,20928,20930],{"id":20929},"erstes-vorkommen-pro-zeile-ersetzen","Erstes Vorkommen pro Zeile ersetzen",[4647,20932,20934],{"className":4649,"code":20933,"language":4651,"meta":269,"style":269},"sed 's\u002Falt\u002Fneu\u002F' datei.txt\n\n# Alle Vorkommen ersetzen (g = global)\n\nsed 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n# Nur das 2. Vorkommen pro Zeile ersetzen\n\nsed 's\u002Falt\u002Fneu\u002F2' datei.txt\n\n# Case-insensitive ersetzen\n\nsed 's\u002Ffehler\u002FFEHLER\u002Fgi' datei.txt\n\n# In-place bearbeiten (Datei direkt ändern)\n\nsed -i 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n# In-place mit Backup (Datei.bak wird angelegt)\n\nsed -i.bak 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n# Mehrere Befehle mit -e\n\nsed -e 's\u002Ffoo\u002Fbar\u002Fg' -e 's\u002Fbaz\u002Fqux\u002Fg' datei.txt\n\n# Mehrere Befehle mit Semikolon\n\nsed 's\u002Ffoo\u002Fbar\u002Fg; s\u002Fbaz\u002Fqux\u002Fg' datei.txt\n\n# sed-Programm aus Datei\n\nsed -f korrekturen.sed datei.txt\n\n# ─── Zeilen löschen (d-Befehl) ───────────────────────────────\n\n# Zeilen mit \"TODO\" löschen\n\nsed '\u002FTODO\u002Fd' datei.txt\n\n# Kommentarzeilen (# am Anfang) löschen\n\nsed '\u002F^#\u002Fd' datei.txt\n\nsed '\u002F^[[:space:]]*#\u002Fd' datei.txt # auch eingerückte Kommentare\n\n# Leerzeilen löschen\n\nsed '\u002F^$\u002Fd' datei.txt\n\n# Leerzeilen und Zeilen mit nur Leerzeichen löschen\n\nsed '\u002F^s*$\u002Fd' datei.txt\n\n# Erste Zeile löschen (z.B. Header)\n\nsed '1d' datei.txt\n\n# Letzte Zeile löschen\n\nsed '$d' datei.txt\n\n# Zeilen 3 bis 7 löschen\n\nsed '3,7d' datei.txt\n\n# Alle anderen Zeilen außer Zeile 5 löschen\n\nsed '5!d' datei.txt\n\n# ─── Ausgabe filtern (-n p) ────────────────────────────────\n\n# Nur Matching-Zeilen ausgeben (wie grep)\n\nsed -n '\u002Fmuster\u002Fp' datei.txt\n\n# Zeilen 5 bis 10 ausgeben\n\nsed -n '5,10p' datei.txt\n\n# Erste Zeile ausgeben (wie head -1)\n\nsed -n '1p' datei.txt\n\n# Letzte Zeile ausgeben (wie tail -1)\n\nsed -n '$p' datei.txt\n\n# Zeilen ausgeben, die NICHT dem Muster entsprechen (wie grep -v)\n\nsed -n '\u002Fmuster\u002F!p' datei.txt\n\n# ─── Einfügen und Anhängen (i, a, c) ────────────────────────\n\n# Text vor Zeile 3 einfügen\n\nsed '3iDies kommt vor Zeile 3' datei.txt\n\n# Text nach Zeile 3 anfügen\n\nsed '3aDies kommt nach Zeile 3' datei.txt\n\n# Zeile 3 komplett ersetzen\n\nsed '3cDas ist jetzt Zeile 3' datei.txt\n\n# Text nach jeder Zeile mit \"START\" einfügen\n\nsed '\u002FSTART\u002Fa---------' datei.txt\n\n# Dateiinhalt nach bestimmter Zeile einfügen\n\nsed '\u002FINSERT_HERE\u002Fr template.txt' datei.txt\n\n# ─── Whitespace bereinigen ───────────────────────────────────\n\n# Leerzeichen am Zeilenende entfernen (trailing whitespace)\n\nsed 's\u002F[[:space:]]*$\u002F\u002F' datei.txt\n\n# Führende Leerzeichen entfernen (leading whitespace)\n\nsed 's\u002F^[[:space:]]*\u002F\u002F' datei.txt\n\n# Beides (trim)\n\nsed 's\u002F^[[:space:]]\u002F\u002F; s\u002F[[:space:]]$\u002F\u002F' datei.txt\n\n# Tabulatoren durch Leerzeichen ersetzen\n\nsed 's\u002Ft\u002F \u002Fg' datei.txt\n\n# ─── Zeilenoperationen ───────────────────────────────────────\n\n# Zeilennummer vor jede Zeile (wie cat -n)\n\nsed '=' datei.txt | sed 'N; s\u002Fn\u002Ft\u002F'\n\n# Zeilen ab 5 ausgeben (bis Ende)\n\nsed -n '5,$p' datei.txt\n\n# Script nach N Zeilen beenden (wie head -5)\n\nsed '5q' datei.txt\n\n# Jede 2. Zeile löschen (gerade Zeilennummern)\n\nsed '0~2d' datei.txt\n\n# Jede 2. Zeile löschen (ungerade Zeilennummern)\n\nsed '1~2d' datei.txt\n\n# ─── Rückreferenzen ─────────────────────────────────────────\n\n# Wort in Anführungszeichen einschließen (BRE)\n\nsed 's\u002F(Hallo)\u002F\"1\"\u002F' datei.txt\n\n# Dasselbe mit ERE (-E)\n\nsed -E 's\u002F(Hallo)\u002F\"1\"\u002F' datei.txt\n\n# Datum von YYYY-MM-DD zu DD.MM.YYYY umformatieren\n\nsed -E 's\u002F([0-9]{4})-([0-9]{2})-([0-9]{2})\u002F3.2.1\u002F' datei.txt\n\n# Vornamen und Nachnamen tauschen (\"Muster, Hans\" → \"Hans Muster\")\n\nsed -E 's\u002F([A-Za-z] ), ([A-Za-z] )\u002F2 1\u002F' namen.txt\n\n# ─── Zeichenersatz (y-Befehl) ───────────────────────────────\n\n# Kleinbuchstaben in Großbuchstaben\n\nsed 'y\u002Fabcdefghijklmnopqrstuvwxyz\u002FABCDEFGHIJKLMNOPQRSTUVWXYZ\u002F' datei.txt\n\n# Umlaute vereinfachen\n\nsed 'y\u002FäöüÄÖÜ\u002FaouAOU\u002F' datei.txt\n\n# ─── Mehrzeilige Operationen (N-Befehl) ─────────────────────\n\n# Zeilenumbruch zwischen zusammengehörigen Zeilen entfernen\n\nsed 'N; s\u002Fn\u002F \u002F' datei.txt\n\n# ─── Praktische Anwendungen ──────────────────────────────────\n\n# HTML-Tags entfernen\n\nsed 's\u002F\u003C[^>]*>\u002F\u002Fg' seite.html\n\n# DOS-Zeilenenden (rn) in Unix-Zeilenenden (n) umwandeln\n\nsed 's\u002Fr\u002F\u002F' datei.txt\n\n# Alle IP-Adressen anonymisieren\n\nsed -E 's\u002F[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\u002FX.X.X.X\u002Fg' access.log\n\n# Passwort in Konfigurationsdatei ersetzen (sicher mit Backup)\n\nsed -i.bak \"s\u002F^password=.*\u002Fpassword=NEU\u002F\" \u002Fetc\u002Fapp\u002Fconfig.ini\n\n# Leerzeilen auf maximal eine reduzieren\n\nsed '\u002F^$\u002F{ N; \u002F^n$\u002Fd }' datei.txt\n\n# oder einfacher (GNU sed):\n\nsed -E '\u002F^$\u002F{ \u002F^n $\u002Fd }' datei.txt\n\n",[4653,20935,20936,20944,20948,20953,20957,20965,20969,20974,20978,20987,20991,20996,21000,21009,21013,21018,21022,21032,21036,21041,21045,21056,21060,21065,21069,21086,21090,21095,21099,21108,21112,21117,21121,21132,21136,21141,21145,21150,21154,21163,21167,21172,21176,21185,21189,21202,21206,21211,21215,21224,21228,21233,21237,21246,21250,21255,21259,21268,21272,21277,21281,21290,21294,21299,21303,21312,21316,21321,21325,21334,21338,21343,21347,21352,21356,21367,21372,21378,21383,21395,21400,21406,21411,21423,21428,21434,21439,21451,21456,21462,21467,21479,21484,21490,21495,21501,21506,21516,21521,21527,21532,21542,21547,21553,21558,21568,21573,21579,21584,21594,21599,21605,21610,21620,21625,21631,21636,21642,21647,21657,21662,21668,21673,21683,21688,21694,21699,21709,21714,21720,21725,21735,21740,21746,21751,21757,21762,21780,21785,21791,21796,21808,21813,21819,21824,21834,21839,21845,21850,21860,21865,21871,21876,21886,21891,21897,21902,21908,21913,21923,21928,21934,21939,21950,21955,21961,21966,21978,21983,21989,21994,22007,22012,22018,22023,22029,22034,22044,22049,22055,22060,22070,22075,22081,22086,22092,22097,22107,22112,22118,22123,22129,22134,22145,22150,22156,22161,22171,22176,22182,22187,22199,22204,22210,22215,22228,22233,22239,22244,22254,22259,22265,22270],{"__ignoreMap":269},[4173,20937,20938,20940,20942],{"class":4657,"line":4658},[4173,20939,9165],{"class":4661},[4173,20941,9190],{"class":4669},[4173,20943,8947],{"class":4669},[4173,20945,20946],{"class":4657,"line":270},[4173,20947,4761],{"emptyLinePlaceholder":4760},[4173,20949,20950],{"class":4657,"line":1263},[4173,20951,20952],{"class":4766},"# Alle Vorkommen ersetzen (g = global)\n",[4173,20954,20955],{"class":4657,"line":4770},[4173,20956,4761],{"emptyLinePlaceholder":4760},[4173,20958,20959,20961,20963],{"class":4657,"line":4775},[4173,20960,9165],{"class":4661},[4173,20962,9279],{"class":4669},[4173,20964,8947],{"class":4669},[4173,20966,20967],{"class":4657,"line":6320},[4173,20968,4761],{"emptyLinePlaceholder":4760},[4173,20970,20971],{"class":4657,"line":6325},[4173,20972,20973],{"class":4766},"# Nur das 2. Vorkommen pro Zeile ersetzen\n",[4173,20975,20976],{"class":4657,"line":6343},[4173,20977,4761],{"emptyLinePlaceholder":4760},[4173,20979,20980,20982,20985],{"class":4657,"line":6348},[4173,20981,9165],{"class":4661},[4173,20983,20984],{"class":4669}," 's\u002Falt\u002Fneu\u002F2'",[4173,20986,8947],{"class":4669},[4173,20988,20989],{"class":4657,"line":6457},[4173,20990,4761],{"emptyLinePlaceholder":4760},[4173,20992,20993],{"class":4657,"line":6462},[4173,20994,20995],{"class":4766},"# Case-insensitive ersetzen\n",[4173,20997,20998],{"class":4657,"line":6468},[4173,20999,4761],{"emptyLinePlaceholder":4760},[4173,21001,21002,21004,21007],{"class":4657,"line":6473},[4173,21003,9165],{"class":4661},[4173,21005,21006],{"class":4669}," 's\u002Ffehler\u002FFEHLER\u002Fgi'",[4173,21008,8947],{"class":4669},[4173,21010,21011],{"class":4657,"line":6479},[4173,21012,4761],{"emptyLinePlaceholder":4760},[4173,21014,21015],{"class":4657,"line":6503},[4173,21016,21017],{"class":4766},"# In-place bearbeiten (Datei direkt ändern)\n",[4173,21019,21020],{"class":4657,"line":6516},[4173,21021,4761],{"emptyLinePlaceholder":4760},[4173,21023,21024,21026,21028,21030],{"class":4657,"line":6971},[4173,21025,9165],{"class":4661},[4173,21027,8941],{"class":4665},[4173,21029,9279],{"class":4669},[4173,21031,8947],{"class":4669},[4173,21033,21034],{"class":4657,"line":10649},[4173,21035,4761],{"emptyLinePlaceholder":4760},[4173,21037,21038],{"class":4657,"line":10654},[4173,21039,21040],{"class":4766},"# In-place mit Backup (Datei.bak wird angelegt)\n",[4173,21042,21043],{"class":4657,"line":10659},[4173,21044,4761],{"emptyLinePlaceholder":4760},[4173,21046,21047,21049,21052,21054],{"class":4657,"line":10664},[4173,21048,9165],{"class":4661},[4173,21050,21051],{"class":4665}," -i.bak",[4173,21053,9279],{"class":4669},[4173,21055,8947],{"class":4669},[4173,21057,21058],{"class":4657,"line":10676},[4173,21059,4761],{"emptyLinePlaceholder":4760},[4173,21061,21062],{"class":4657,"line":10681},[4173,21063,21064],{"class":4766},"# Mehrere Befehle mit -e\n",[4173,21066,21067],{"class":4657,"line":10702},[4173,21068,4761],{"emptyLinePlaceholder":4760},[4173,21070,21071,21073,21076,21079,21081,21084],{"class":4657,"line":10707},[4173,21072,9165],{"class":4661},[4173,21074,21075],{"class":4665}," -e",[4173,21077,21078],{"class":4669}," 's\u002Ffoo\u002Fbar\u002Fg'",[4173,21080,21075],{"class":4665},[4173,21082,21083],{"class":4669}," 's\u002Fbaz\u002Fqux\u002Fg'",[4173,21085,8947],{"class":4669},[4173,21087,21088],{"class":4657,"line":10712},[4173,21089,4761],{"emptyLinePlaceholder":4760},[4173,21091,21092],{"class":4657,"line":10717},[4173,21093,21094],{"class":4766},"# Mehrere Befehle mit Semikolon\n",[4173,21096,21097],{"class":4657,"line":10727},[4173,21098,4761],{"emptyLinePlaceholder":4760},[4173,21100,21101,21103,21106],{"class":4657,"line":10732},[4173,21102,9165],{"class":4661},[4173,21104,21105],{"class":4669}," 's\u002Ffoo\u002Fbar\u002Fg; s\u002Fbaz\u002Fqux\u002Fg'",[4173,21107,8947],{"class":4669},[4173,21109,21110],{"class":4657,"line":10737},[4173,21111,4761],{"emptyLinePlaceholder":4760},[4173,21113,21114],{"class":4657,"line":10742},[4173,21115,21116],{"class":4766},"# sed-Programm aus Datei\n",[4173,21118,21119],{"class":4657,"line":10752},[4173,21120,4761],{"emptyLinePlaceholder":4760},[4173,21122,21123,21125,21127,21130],{"class":4657,"line":10757},[4173,21124,9165],{"class":4661},[4173,21126,11337],{"class":4665},[4173,21128,21129],{"class":4669}," korrekturen.sed",[4173,21131,8947],{"class":4669},[4173,21133,21134],{"class":4657,"line":10762},[4173,21135,4761],{"emptyLinePlaceholder":4760},[4173,21137,21138],{"class":4657,"line":10767},[4173,21139,21140],{"class":4766},"# ─── Zeilen löschen (d-Befehl) ───────────────────────────────\n",[4173,21142,21143],{"class":4657,"line":10772},[4173,21144,4761],{"emptyLinePlaceholder":4760},[4173,21146,21147],{"class":4657,"line":10777},[4173,21148,21149],{"class":4766},"# Zeilen mit \"TODO\" löschen\n",[4173,21151,21152],{"class":4657,"line":10782},[4173,21153,4761],{"emptyLinePlaceholder":4760},[4173,21155,21156,21158,21161],{"class":4657,"line":10787},[4173,21157,9165],{"class":4661},[4173,21159,21160],{"class":4669}," '\u002FTODO\u002Fd'",[4173,21162,8947],{"class":4669},[4173,21164,21165],{"class":4657,"line":10800},[4173,21166,4761],{"emptyLinePlaceholder":4760},[4173,21168,21169],{"class":4657,"line":10805},[4173,21170,21171],{"class":4766},"# Kommentarzeilen (# am Anfang) löschen\n",[4173,21173,21174],{"class":4657,"line":10818},[4173,21175,4761],{"emptyLinePlaceholder":4760},[4173,21177,21178,21180,21183],{"class":4657,"line":10823},[4173,21179,9165],{"class":4661},[4173,21181,21182],{"class":4669}," '\u002F^#\u002Fd'",[4173,21184,8947],{"class":4669},[4173,21186,21187],{"class":4657,"line":10836},[4173,21188,4761],{"emptyLinePlaceholder":4760},[4173,21190,21191,21193,21196,21199],{"class":4657,"line":10841},[4173,21192,9165],{"class":4661},[4173,21194,21195],{"class":4669}," '\u002F^[[:space:]]*#\u002Fd'",[4173,21197,21198],{"class":4669}," datei.txt",[4173,21200,21201],{"class":4766}," # auch eingerückte Kommentare\n",[4173,21203,21204],{"class":4657,"line":10846},[4173,21205,4761],{"emptyLinePlaceholder":4760},[4173,21207,21208],{"class":4657,"line":10851},[4173,21209,21210],{"class":4766},"# Leerzeilen löschen\n",[4173,21212,21213],{"class":4657,"line":10867},[4173,21214,4761],{"emptyLinePlaceholder":4760},[4173,21216,21217,21219,21222],{"class":4657,"line":10872},[4173,21218,9165],{"class":4661},[4173,21220,21221],{"class":4669}," '\u002F^$\u002Fd'",[4173,21223,8947],{"class":4669},[4173,21225,21226],{"class":4657,"line":10877},[4173,21227,4761],{"emptyLinePlaceholder":4760},[4173,21229,21230],{"class":4657,"line":10882},[4173,21231,21232],{"class":4766},"# Leerzeilen und Zeilen mit nur Leerzeichen löschen\n",[4173,21234,21235],{"class":4657,"line":10890},[4173,21236,4761],{"emptyLinePlaceholder":4760},[4173,21238,21239,21241,21244],{"class":4657,"line":10895},[4173,21240,9165],{"class":4661},[4173,21242,21243],{"class":4669}," '\u002F^s*$\u002Fd'",[4173,21245,8947],{"class":4669},[4173,21247,21248],{"class":4657,"line":10904},[4173,21249,4761],{"emptyLinePlaceholder":4760},[4173,21251,21252],{"class":4657,"line":10909},[4173,21253,21254],{"class":4766},"# Erste Zeile löschen (z.B. Header)\n",[4173,21256,21257],{"class":4657,"line":10914},[4173,21258,4761],{"emptyLinePlaceholder":4760},[4173,21260,21261,21263,21266],{"class":4657,"line":10919},[4173,21262,9165],{"class":4661},[4173,21264,21265],{"class":4669}," '1d'",[4173,21267,8947],{"class":4669},[4173,21269,21270],{"class":4657,"line":10933},[4173,21271,4761],{"emptyLinePlaceholder":4760},[4173,21273,21274],{"class":4657,"line":10938},[4173,21275,21276],{"class":4766},"# Letzte Zeile löschen\n",[4173,21278,21279],{"class":4657,"line":10959},[4173,21280,4761],{"emptyLinePlaceholder":4760},[4173,21282,21283,21285,21288],{"class":4657,"line":10964},[4173,21284,9165],{"class":4661},[4173,21286,21287],{"class":4669}," '$d'",[4173,21289,8947],{"class":4669},[4173,21291,21292],{"class":4657,"line":10969},[4173,21293,4761],{"emptyLinePlaceholder":4760},[4173,21295,21296],{"class":4657,"line":10974},[4173,21297,21298],{"class":4766},"# Zeilen 3 bis 7 löschen\n",[4173,21300,21301],{"class":4657,"line":10982},[4173,21302,4761],{"emptyLinePlaceholder":4760},[4173,21304,21305,21307,21310],{"class":4657,"line":10987},[4173,21306,9165],{"class":4661},[4173,21308,21309],{"class":4669}," '3,7d'",[4173,21311,8947],{"class":4669},[4173,21313,21314],{"class":4657,"line":10995},[4173,21315,4761],{"emptyLinePlaceholder":4760},[4173,21317,21318],{"class":4657,"line":11000},[4173,21319,21320],{"class":4766},"# Alle anderen Zeilen außer Zeile 5 löschen\n",[4173,21322,21323],{"class":4657,"line":11008},[4173,21324,4761],{"emptyLinePlaceholder":4760},[4173,21326,21327,21329,21332],{"class":4657,"line":11013},[4173,21328,9165],{"class":4661},[4173,21330,21331],{"class":4669}," '5!d'",[4173,21333,8947],{"class":4669},[4173,21335,21336],{"class":4657,"line":11021},[4173,21337,4761],{"emptyLinePlaceholder":4760},[4173,21339,21340],{"class":4657,"line":11026},[4173,21341,21342],{"class":4766},"# ─── Ausgabe filtern (-n p) ────────────────────────────────\n",[4173,21344,21345],{"class":4657,"line":11034},[4173,21346,4761],{"emptyLinePlaceholder":4760},[4173,21348,21349],{"class":4657,"line":11039},[4173,21350,21351],{"class":4766},"# Nur Matching-Zeilen ausgeben (wie grep)\n",[4173,21353,21354],{"class":4657,"line":11048},[4173,21355,4761],{"emptyLinePlaceholder":4760},[4173,21357,21358,21360,21362,21365],{"class":4657,"line":11053},[4173,21359,9165],{"class":4661},[4173,21361,9376],{"class":4665},[4173,21363,21364],{"class":4669}," '\u002Fmuster\u002Fp'",[4173,21366,8947],{"class":4669},[4173,21368,21370],{"class":4657,"line":21369},76,[4173,21371,4761],{"emptyLinePlaceholder":4760},[4173,21373,21375],{"class":4657,"line":21374},77,[4173,21376,21377],{"class":4766},"# Zeilen 5 bis 10 ausgeben\n",[4173,21379,21381],{"class":4657,"line":21380},78,[4173,21382,4761],{"emptyLinePlaceholder":4760},[4173,21384,21386,21388,21390,21393],{"class":4657,"line":21385},79,[4173,21387,9165],{"class":4661},[4173,21389,9376],{"class":4665},[4173,21391,21392],{"class":4669}," '5,10p'",[4173,21394,8947],{"class":4669},[4173,21396,21398],{"class":4657,"line":21397},80,[4173,21399,4761],{"emptyLinePlaceholder":4760},[4173,21401,21403],{"class":4657,"line":21402},81,[4173,21404,21405],{"class":4766},"# Erste Zeile ausgeben (wie head -1)\n",[4173,21407,21409],{"class":4657,"line":21408},82,[4173,21410,4761],{"emptyLinePlaceholder":4760},[4173,21412,21414,21416,21418,21421],{"class":4657,"line":21413},83,[4173,21415,9165],{"class":4661},[4173,21417,9376],{"class":4665},[4173,21419,21420],{"class":4669}," '1p'",[4173,21422,8947],{"class":4669},[4173,21424,21426],{"class":4657,"line":21425},84,[4173,21427,4761],{"emptyLinePlaceholder":4760},[4173,21429,21431],{"class":4657,"line":21430},85,[4173,21432,21433],{"class":4766},"# Letzte Zeile ausgeben (wie tail -1)\n",[4173,21435,21437],{"class":4657,"line":21436},86,[4173,21438,4761],{"emptyLinePlaceholder":4760},[4173,21440,21442,21444,21446,21449],{"class":4657,"line":21441},87,[4173,21443,9165],{"class":4661},[4173,21445,9376],{"class":4665},[4173,21447,21448],{"class":4669}," '$p'",[4173,21450,8947],{"class":4669},[4173,21452,21454],{"class":4657,"line":21453},88,[4173,21455,4761],{"emptyLinePlaceholder":4760},[4173,21457,21459],{"class":4657,"line":21458},89,[4173,21460,21461],{"class":4766},"# Zeilen ausgeben, die NICHT dem Muster entsprechen (wie grep -v)\n",[4173,21463,21465],{"class":4657,"line":21464},90,[4173,21466,4761],{"emptyLinePlaceholder":4760},[4173,21468,21470,21472,21474,21477],{"class":4657,"line":21469},91,[4173,21471,9165],{"class":4661},[4173,21473,9376],{"class":4665},[4173,21475,21476],{"class":4669}," '\u002Fmuster\u002F!p'",[4173,21478,8947],{"class":4669},[4173,21480,21482],{"class":4657,"line":21481},92,[4173,21483,4761],{"emptyLinePlaceholder":4760},[4173,21485,21487],{"class":4657,"line":21486},93,[4173,21488,21489],{"class":4766},"# ─── Einfügen und Anhängen (i, a, c) ────────────────────────\n",[4173,21491,21493],{"class":4657,"line":21492},94,[4173,21494,4761],{"emptyLinePlaceholder":4760},[4173,21496,21498],{"class":4657,"line":21497},95,[4173,21499,21500],{"class":4766},"# Text vor Zeile 3 einfügen\n",[4173,21502,21504],{"class":4657,"line":21503},96,[4173,21505,4761],{"emptyLinePlaceholder":4760},[4173,21507,21509,21511,21514],{"class":4657,"line":21508},97,[4173,21510,9165],{"class":4661},[4173,21512,21513],{"class":4669}," '3iDies kommt vor Zeile 3'",[4173,21515,8947],{"class":4669},[4173,21517,21519],{"class":4657,"line":21518},98,[4173,21520,4761],{"emptyLinePlaceholder":4760},[4173,21522,21524],{"class":4657,"line":21523},99,[4173,21525,21526],{"class":4766},"# Text nach Zeile 3 anfügen\n",[4173,21528,21530],{"class":4657,"line":21529},100,[4173,21531,4761],{"emptyLinePlaceholder":4760},[4173,21533,21535,21537,21540],{"class":4657,"line":21534},101,[4173,21536,9165],{"class":4661},[4173,21538,21539],{"class":4669}," '3aDies kommt nach Zeile 3'",[4173,21541,8947],{"class":4669},[4173,21543,21545],{"class":4657,"line":21544},102,[4173,21546,4761],{"emptyLinePlaceholder":4760},[4173,21548,21550],{"class":4657,"line":21549},103,[4173,21551,21552],{"class":4766},"# Zeile 3 komplett ersetzen\n",[4173,21554,21556],{"class":4657,"line":21555},104,[4173,21557,4761],{"emptyLinePlaceholder":4760},[4173,21559,21561,21563,21566],{"class":4657,"line":21560},105,[4173,21562,9165],{"class":4661},[4173,21564,21565],{"class":4669}," '3cDas ist jetzt Zeile 3'",[4173,21567,8947],{"class":4669},[4173,21569,21571],{"class":4657,"line":21570},106,[4173,21572,4761],{"emptyLinePlaceholder":4760},[4173,21574,21576],{"class":4657,"line":21575},107,[4173,21577,21578],{"class":4766},"# Text nach jeder Zeile mit \"START\" einfügen\n",[4173,21580,21582],{"class":4657,"line":21581},108,[4173,21583,4761],{"emptyLinePlaceholder":4760},[4173,21585,21587,21589,21592],{"class":4657,"line":21586},109,[4173,21588,9165],{"class":4661},[4173,21590,21591],{"class":4669}," '\u002FSTART\u002Fa---------'",[4173,21593,8947],{"class":4669},[4173,21595,21597],{"class":4657,"line":21596},110,[4173,21598,4761],{"emptyLinePlaceholder":4760},[4173,21600,21602],{"class":4657,"line":21601},111,[4173,21603,21604],{"class":4766},"# Dateiinhalt nach bestimmter Zeile einfügen\n",[4173,21606,21608],{"class":4657,"line":21607},112,[4173,21609,4761],{"emptyLinePlaceholder":4760},[4173,21611,21613,21615,21618],{"class":4657,"line":21612},113,[4173,21614,9165],{"class":4661},[4173,21616,21617],{"class":4669}," '\u002FINSERT_HERE\u002Fr template.txt'",[4173,21619,8947],{"class":4669},[4173,21621,21623],{"class":4657,"line":21622},114,[4173,21624,4761],{"emptyLinePlaceholder":4760},[4173,21626,21628],{"class":4657,"line":21627},115,[4173,21629,21630],{"class":4766},"# ─── Whitespace bereinigen ───────────────────────────────────\n",[4173,21632,21634],{"class":4657,"line":21633},116,[4173,21635,4761],{"emptyLinePlaceholder":4760},[4173,21637,21639],{"class":4657,"line":21638},117,[4173,21640,21641],{"class":4766},"# Leerzeichen am Zeilenende entfernen (trailing whitespace)\n",[4173,21643,21645],{"class":4657,"line":21644},118,[4173,21646,4761],{"emptyLinePlaceholder":4760},[4173,21648,21650,21652,21655],{"class":4657,"line":21649},119,[4173,21651,9165],{"class":4661},[4173,21653,21654],{"class":4669}," 's\u002F[[:space:]]*$\u002F\u002F'",[4173,21656,8947],{"class":4669},[4173,21658,21660],{"class":4657,"line":21659},120,[4173,21661,4761],{"emptyLinePlaceholder":4760},[4173,21663,21665],{"class":4657,"line":21664},121,[4173,21666,21667],{"class":4766},"# Führende Leerzeichen entfernen (leading whitespace)\n",[4173,21669,21671],{"class":4657,"line":21670},122,[4173,21672,4761],{"emptyLinePlaceholder":4760},[4173,21674,21676,21678,21681],{"class":4657,"line":21675},123,[4173,21677,9165],{"class":4661},[4173,21679,21680],{"class":4669}," 's\u002F^[[:space:]]*\u002F\u002F'",[4173,21682,8947],{"class":4669},[4173,21684,21686],{"class":4657,"line":21685},124,[4173,21687,4761],{"emptyLinePlaceholder":4760},[4173,21689,21691],{"class":4657,"line":21690},125,[4173,21692,21693],{"class":4766},"# Beides (trim)\n",[4173,21695,21697],{"class":4657,"line":21696},126,[4173,21698,4761],{"emptyLinePlaceholder":4760},[4173,21700,21702,21704,21707],{"class":4657,"line":21701},127,[4173,21703,9165],{"class":4661},[4173,21705,21706],{"class":4669}," 's\u002F^[[:space:]]\u002F\u002F; s\u002F[[:space:]]$\u002F\u002F'",[4173,21708,8947],{"class":4669},[4173,21710,21712],{"class":4657,"line":21711},128,[4173,21713,4761],{"emptyLinePlaceholder":4760},[4173,21715,21717],{"class":4657,"line":21716},129,[4173,21718,21719],{"class":4766},"# Tabulatoren durch Leerzeichen ersetzen\n",[4173,21721,21723],{"class":4657,"line":21722},130,[4173,21724,4761],{"emptyLinePlaceholder":4760},[4173,21726,21728,21730,21733],{"class":4657,"line":21727},131,[4173,21729,9165],{"class":4661},[4173,21731,21732],{"class":4669}," 's\u002Ft\u002F \u002Fg'",[4173,21734,8947],{"class":4669},[4173,21736,21738],{"class":4657,"line":21737},132,[4173,21739,4761],{"emptyLinePlaceholder":4760},[4173,21741,21743],{"class":4657,"line":21742},133,[4173,21744,21745],{"class":4766},"# ─── Zeilenoperationen ───────────────────────────────────────\n",[4173,21747,21749],{"class":4657,"line":21748},134,[4173,21750,4761],{"emptyLinePlaceholder":4760},[4173,21752,21754],{"class":4657,"line":21753},135,[4173,21755,21756],{"class":4766},"# Zeilennummer vor jede Zeile (wie cat -n)\n",[4173,21758,21760],{"class":4657,"line":21759},136,[4173,21761,4761],{"emptyLinePlaceholder":4760},[4173,21763,21765,21767,21770,21772,21774,21777],{"class":4657,"line":21764},137,[4173,21766,9165],{"class":4661},[4173,21768,21769],{"class":4669}," '='",[4173,21771,21198],{"class":4669},[4173,21773,8928],{"class":4788},[4173,21775,21776],{"class":4661}," sed",[4173,21778,21779],{"class":4669}," 'N; s\u002Fn\u002Ft\u002F'\n",[4173,21781,21783],{"class":4657,"line":21782},138,[4173,21784,4761],{"emptyLinePlaceholder":4760},[4173,21786,21788],{"class":4657,"line":21787},139,[4173,21789,21790],{"class":4766},"# Zeilen ab 5 ausgeben (bis Ende)\n",[4173,21792,21794],{"class":4657,"line":21793},140,[4173,21795,4761],{"emptyLinePlaceholder":4760},[4173,21797,21799,21801,21803,21806],{"class":4657,"line":21798},141,[4173,21800,9165],{"class":4661},[4173,21802,9376],{"class":4665},[4173,21804,21805],{"class":4669}," '5,$p'",[4173,21807,8947],{"class":4669},[4173,21809,21811],{"class":4657,"line":21810},142,[4173,21812,4761],{"emptyLinePlaceholder":4760},[4173,21814,21816],{"class":4657,"line":21815},143,[4173,21817,21818],{"class":4766},"# Script nach N Zeilen beenden (wie head -5)\n",[4173,21820,21822],{"class":4657,"line":21821},144,[4173,21823,4761],{"emptyLinePlaceholder":4760},[4173,21825,21827,21829,21832],{"class":4657,"line":21826},145,[4173,21828,9165],{"class":4661},[4173,21830,21831],{"class":4669}," '5q'",[4173,21833,8947],{"class":4669},[4173,21835,21837],{"class":4657,"line":21836},146,[4173,21838,4761],{"emptyLinePlaceholder":4760},[4173,21840,21842],{"class":4657,"line":21841},147,[4173,21843,21844],{"class":4766},"# Jede 2. Zeile löschen (gerade Zeilennummern)\n",[4173,21846,21848],{"class":4657,"line":21847},148,[4173,21849,4761],{"emptyLinePlaceholder":4760},[4173,21851,21853,21855,21858],{"class":4657,"line":21852},149,[4173,21854,9165],{"class":4661},[4173,21856,21857],{"class":4669}," '0~2d'",[4173,21859,8947],{"class":4669},[4173,21861,21863],{"class":4657,"line":21862},150,[4173,21864,4761],{"emptyLinePlaceholder":4760},[4173,21866,21868],{"class":4657,"line":21867},151,[4173,21869,21870],{"class":4766},"# Jede 2. Zeile löschen (ungerade Zeilennummern)\n",[4173,21872,21874],{"class":4657,"line":21873},152,[4173,21875,4761],{"emptyLinePlaceholder":4760},[4173,21877,21879,21881,21884],{"class":4657,"line":21878},153,[4173,21880,9165],{"class":4661},[4173,21882,21883],{"class":4669}," '1~2d'",[4173,21885,8947],{"class":4669},[4173,21887,21889],{"class":4657,"line":21888},154,[4173,21890,4761],{"emptyLinePlaceholder":4760},[4173,21892,21894],{"class":4657,"line":21893},155,[4173,21895,21896],{"class":4766},"# ─── Rückreferenzen ─────────────────────────────────────────\n",[4173,21898,21900],{"class":4657,"line":21899},156,[4173,21901,4761],{"emptyLinePlaceholder":4760},[4173,21903,21905],{"class":4657,"line":21904},157,[4173,21906,21907],{"class":4766},"# Wort in Anführungszeichen einschließen (BRE)\n",[4173,21909,21911],{"class":4657,"line":21910},158,[4173,21912,4761],{"emptyLinePlaceholder":4760},[4173,21914,21916,21918,21921],{"class":4657,"line":21915},159,[4173,21917,9165],{"class":4661},[4173,21919,21920],{"class":4669}," 's\u002F(Hallo)\u002F\"1\"\u002F'",[4173,21922,8947],{"class":4669},[4173,21924,21926],{"class":4657,"line":21925},160,[4173,21927,4761],{"emptyLinePlaceholder":4760},[4173,21929,21931],{"class":4657,"line":21930},161,[4173,21932,21933],{"class":4766},"# Dasselbe mit ERE (-E)\n",[4173,21935,21937],{"class":4657,"line":21936},162,[4173,21938,4761],{"emptyLinePlaceholder":4760},[4173,21940,21942,21944,21946,21948],{"class":4657,"line":21941},163,[4173,21943,9165],{"class":4661},[4173,21945,17788],{"class":4665},[4173,21947,21920],{"class":4669},[4173,21949,8947],{"class":4669},[4173,21951,21953],{"class":4657,"line":21952},164,[4173,21954,4761],{"emptyLinePlaceholder":4760},[4173,21956,21958],{"class":4657,"line":21957},165,[4173,21959,21960],{"class":4766},"# Datum von YYYY-MM-DD zu DD.MM.YYYY umformatieren\n",[4173,21962,21964],{"class":4657,"line":21963},166,[4173,21965,4761],{"emptyLinePlaceholder":4760},[4173,21967,21969,21971,21973,21976],{"class":4657,"line":21968},167,[4173,21970,9165],{"class":4661},[4173,21972,17788],{"class":4665},[4173,21974,21975],{"class":4669}," 's\u002F([0-9]{4})-([0-9]{2})-([0-9]{2})\u002F3.2.1\u002F'",[4173,21977,8947],{"class":4669},[4173,21979,21981],{"class":4657,"line":21980},168,[4173,21982,4761],{"emptyLinePlaceholder":4760},[4173,21984,21986],{"class":4657,"line":21985},169,[4173,21987,21988],{"class":4766},"# Vornamen und Nachnamen tauschen (\"Muster, Hans\" → \"Hans Muster\")\n",[4173,21990,21992],{"class":4657,"line":21991},170,[4173,21993,4761],{"emptyLinePlaceholder":4760},[4173,21995,21997,21999,22001,22004],{"class":4657,"line":21996},171,[4173,21998,9165],{"class":4661},[4173,22000,17788],{"class":4665},[4173,22002,22003],{"class":4669}," 's\u002F([A-Za-z] ), ([A-Za-z] )\u002F2 1\u002F'",[4173,22005,22006],{"class":4669}," namen.txt\n",[4173,22008,22010],{"class":4657,"line":22009},172,[4173,22011,4761],{"emptyLinePlaceholder":4760},[4173,22013,22015],{"class":4657,"line":22014},173,[4173,22016,22017],{"class":4766},"# ─── Zeichenersatz (y-Befehl) ───────────────────────────────\n",[4173,22019,22021],{"class":4657,"line":22020},174,[4173,22022,4761],{"emptyLinePlaceholder":4760},[4173,22024,22026],{"class":4657,"line":22025},175,[4173,22027,22028],{"class":4766},"# Kleinbuchstaben in Großbuchstaben\n",[4173,22030,22032],{"class":4657,"line":22031},176,[4173,22033,4761],{"emptyLinePlaceholder":4760},[4173,22035,22037,22039,22042],{"class":4657,"line":22036},177,[4173,22038,9165],{"class":4661},[4173,22040,22041],{"class":4669}," 'y\u002Fabcdefghijklmnopqrstuvwxyz\u002FABCDEFGHIJKLMNOPQRSTUVWXYZ\u002F'",[4173,22043,8947],{"class":4669},[4173,22045,22047],{"class":4657,"line":22046},178,[4173,22048,4761],{"emptyLinePlaceholder":4760},[4173,22050,22052],{"class":4657,"line":22051},179,[4173,22053,22054],{"class":4766},"# Umlaute vereinfachen\n",[4173,22056,22058],{"class":4657,"line":22057},180,[4173,22059,4761],{"emptyLinePlaceholder":4760},[4173,22061,22063,22065,22068],{"class":4657,"line":22062},181,[4173,22064,9165],{"class":4661},[4173,22066,22067],{"class":4669}," 'y\u002FäöüÄÖÜ\u002FaouAOU\u002F'",[4173,22069,8947],{"class":4669},[4173,22071,22073],{"class":4657,"line":22072},182,[4173,22074,4761],{"emptyLinePlaceholder":4760},[4173,22076,22078],{"class":4657,"line":22077},183,[4173,22079,22080],{"class":4766},"# ─── Mehrzeilige Operationen (N-Befehl) ─────────────────────\n",[4173,22082,22084],{"class":4657,"line":22083},184,[4173,22085,4761],{"emptyLinePlaceholder":4760},[4173,22087,22089],{"class":4657,"line":22088},185,[4173,22090,22091],{"class":4766},"# Zeilenumbruch zwischen zusammengehörigen Zeilen entfernen\n",[4173,22093,22095],{"class":4657,"line":22094},186,[4173,22096,4761],{"emptyLinePlaceholder":4760},[4173,22098,22100,22102,22105],{"class":4657,"line":22099},187,[4173,22101,9165],{"class":4661},[4173,22103,22104],{"class":4669}," 'N; s\u002Fn\u002F \u002F'",[4173,22106,8947],{"class":4669},[4173,22108,22110],{"class":4657,"line":22109},188,[4173,22111,4761],{"emptyLinePlaceholder":4760},[4173,22113,22115],{"class":4657,"line":22114},189,[4173,22116,22117],{"class":4766},"# ─── Praktische Anwendungen ──────────────────────────────────\n",[4173,22119,22121],{"class":4657,"line":22120},190,[4173,22122,4761],{"emptyLinePlaceholder":4760},[4173,22124,22126],{"class":4657,"line":22125},191,[4173,22127,22128],{"class":4766},"# HTML-Tags entfernen\n",[4173,22130,22132],{"class":4657,"line":22131},192,[4173,22133,4761],{"emptyLinePlaceholder":4760},[4173,22135,22137,22139,22142],{"class":4657,"line":22136},193,[4173,22138,9165],{"class":4661},[4173,22140,22141],{"class":4669}," 's\u002F\u003C[^>]*>\u002F\u002Fg'",[4173,22143,22144],{"class":4669}," seite.html\n",[4173,22146,22148],{"class":4657,"line":22147},194,[4173,22149,4761],{"emptyLinePlaceholder":4760},[4173,22151,22153],{"class":4657,"line":22152},195,[4173,22154,22155],{"class":4766},"# DOS-Zeilenenden (rn) in Unix-Zeilenenden (n) umwandeln\n",[4173,22157,22159],{"class":4657,"line":22158},196,[4173,22160,4761],{"emptyLinePlaceholder":4760},[4173,22162,22164,22166,22169],{"class":4657,"line":22163},197,[4173,22165,9165],{"class":4661},[4173,22167,22168],{"class":4669}," 's\u002Fr\u002F\u002F'",[4173,22170,8947],{"class":4669},[4173,22172,22174],{"class":4657,"line":22173},198,[4173,22175,4761],{"emptyLinePlaceholder":4760},[4173,22177,22179],{"class":4657,"line":22178},199,[4173,22180,22181],{"class":4766},"# Alle IP-Adressen anonymisieren\n",[4173,22183,22185],{"class":4657,"line":22184},200,[4173,22186,4761],{"emptyLinePlaceholder":4760},[4173,22188,22190,22192,22194,22197],{"class":4657,"line":22189},201,[4173,22191,9165],{"class":4661},[4173,22193,17788],{"class":4665},[4173,22195,22196],{"class":4669}," 's\u002F[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\u002FX.X.X.X\u002Fg'",[4173,22198,17846],{"class":4669},[4173,22200,22202],{"class":4657,"line":22201},202,[4173,22203,4761],{"emptyLinePlaceholder":4760},[4173,22205,22207],{"class":4657,"line":22206},203,[4173,22208,22209],{"class":4766},"# Passwort in Konfigurationsdatei ersetzen (sicher mit Backup)\n",[4173,22211,22213],{"class":4657,"line":22212},204,[4173,22214,4761],{"emptyLinePlaceholder":4760},[4173,22216,22218,22220,22222,22225],{"class":4657,"line":22217},205,[4173,22219,9165],{"class":4661},[4173,22221,21051],{"class":4665},[4173,22223,22224],{"class":4669}," \"s\u002F^password=.*\u002Fpassword=NEU\u002F\"",[4173,22226,22227],{"class":4669}," \u002Fetc\u002Fapp\u002Fconfig.ini\n",[4173,22229,22231],{"class":4657,"line":22230},206,[4173,22232,4761],{"emptyLinePlaceholder":4760},[4173,22234,22236],{"class":4657,"line":22235},207,[4173,22237,22238],{"class":4766},"# Leerzeilen auf maximal eine reduzieren\n",[4173,22240,22242],{"class":4657,"line":22241},208,[4173,22243,4761],{"emptyLinePlaceholder":4760},[4173,22245,22247,22249,22252],{"class":4657,"line":22246},209,[4173,22248,9165],{"class":4661},[4173,22250,22251],{"class":4669}," '\u002F^$\u002F{ N; \u002F^n$\u002Fd }'",[4173,22253,8947],{"class":4669},[4173,22255,22257],{"class":4657,"line":22256},210,[4173,22258,4761],{"emptyLinePlaceholder":4760},[4173,22260,22262],{"class":4657,"line":22261},211,[4173,22263,22264],{"class":4766},"# oder einfacher (GNU sed):\n",[4173,22266,22268],{"class":4657,"line":22267},212,[4173,22269,4761],{"emptyLinePlaceholder":4760},[4173,22271,22273,22275,22277,22280],{"class":4657,"line":22272},213,[4173,22274,9165],{"class":4661},[4173,22276,17788],{"class":4665},[4173,22278,22279],{"class":4669}," '\u002F^$\u002F{ \u002F^n $\u002Fd }'",[4173,22281,8947],{"class":4669},[16,22283,12997],{"id":22284},"ausgabe-10",[11,22286,22288],{"id":22287},"sed-srootrootg-etcpasswd-head-2","sed 's\u002Froot\u002FROOT\u002Fg' \u002Fetc\u002Fpasswd | head -2",[414,22290,22291],{},"ROOT❌0:0:ROOT:\u002FROOT:\u002Fbin\u002Fbash",[414,22293,16672],{},[11,22295,22297],{"id":22296},"sed-n-13p-etcpasswd","sed -n '1,3p' \u002Fetc\u002Fpasswd",[414,22299,16669],{},[414,22301,16672],{},[414,22303,16675],{},[11,22305,22307,22308,22310,22311,22313,22314,22316],{"id":22306},"echo-2026-05-06-sed-e-s0-94-0-92-0-92321","echo \"2026-05-06\" | sed -E 's\u002F(",[4173,22309,18063],{},"{4})-(",[4173,22312,18063],{},"{2})-(",[4173,22315,18063],{},"{2})\u002F3.2.1\u002F'",[414,22318,22319],{},"06.05.2026",[11,22321,22323],{"id":22322},"sed-dateitxt-sed-n-snt","sed '=' datei.txt | sed 'N; s\u002Fn\u002Ft\u002F'",[414,22325,22326],{},"1 Zeile eins",[414,22328,22329],{},"2 Zeile zwei",[414,22331,22332],{},"3 Zeile drei",[11,22334,22336],{"id":22335},"sed-ibak-sdebuginfog-applog","sed -i.bak 's\u002FDEBUG\u002FINFO\u002Fg' app.log",[11,22338,22340],{"id":22339},"applog-wird-verändert-applogbak-enthält-das-original","(app.log wird verändert, app.log.bak enthält das Original)",[414,22342,22343,22345],{},[42,22344,13639],{}," Vor jedem sed -i (in-place) immer mit sed -n ... p oder ohne -i testen, damit keine Daten versehentlich zerstört werden!",[11,22347,13462],{"id":13462},[414,22349,22350,22352],{},[42,22351,12709],{}," Listet den Inhalt von Verzeichnissen auf. Eines der meistgenutzten Linux-Kommandos.",[414,22354,22355,6100,22357],{},[42,22356,7941],{},[42,22358,22359,22360,6100,22362],{},"ls ",[4173,22361,12720],{},[4173,22363,22364],{},"PFAD...",[16,22366,12780],{"id":22367},"flags-9",[765,22369,22370,22386],{},[768,22371,22372],{},[771,22373,22374,22378,22382],{},[774,22375,22376],{},[42,22377,12791],{},[774,22379,22380],{},[42,22381,12796],{},[774,22383,22384],{},[42,22385,6733],{},[787,22387,22388,22398,22409,22420,22430,22439,22450,22460,22469,22479,22489,22500,22510,22519,22528,22538,22548,22558],{},[771,22389,22390,22392,22395],{},[792,22391,9006],{},[792,22393,22394],{},"--format=long",[792,22396,22397],{},"Lange Listenansicht mit Rechten, Eigentümer, Größe, Datum",[771,22399,22400,22403,22406],{},[792,22401,22402],{},"-a",[792,22404,22405],{},"--all",[792,22407,22408],{},"Alle Dateien anzeigen, auch versteckte (.-Dateien)",[771,22410,22411,22414,22417],{},[792,22412,22413],{},"-A",[792,22415,22416],{},"--almost-all",[792,22418,22419],{},"Wie -a, aber ohne . und ..",[771,22421,22422,22424,22427],{},[792,22423,13819],{},[792,22425,22426],{},"--human-readable",[792,22428,22429],{},"Größen menschenlesbar (KB, MB, GB) – nur mit -l",[771,22431,22432,22434,22436],{},[792,22433,13790],{},[792,22435,17263],{},[792,22437,22438],{},"Rekursiv alle Unterverzeichnisse anzeigen",[771,22440,22441,22444,22447],{},[792,22442,22443],{},"-t",[792,22445,22446],{},"–",[792,22448,22449],{},"Nach Änderungszeit sortieren (neueste zuerst)",[771,22451,22452,22454,22457],{},[792,22453,6103],{},[792,22455,22456],{},"--reverse",[792,22458,22459],{},"Sortierung umkehren",[771,22461,22462,22464,22466],{},[792,22463,13268],{},[792,22465,22446],{},[792,22467,22468],{},"Nach Dateigröße sortieren (größte zuerst)",[771,22470,22471,22474,22476],{},[792,22472,22473],{},"-X",[792,22475,22446],{},[792,22477,22478],{},"Nach Dateiendung sortieren",[771,22480,22481,22483,22486],{},[792,22482,8975],{},[792,22484,22485],{},"--inode",[792,22487,22488],{},"Inode-Nummer ausgeben",[771,22490,22491,22494,22497],{},[792,22492,22493],{},"-d",[792,22495,22496],{},"--directory",[792,22498,22499],{},"Verzeichnis selbst anzeigen, nicht seinen Inhalt",[771,22501,22502,22505,22507],{},[792,22503,22504],{},"-1",[792,22506,22446],{},[792,22508,22509],{},"Eine Datei pro Zeile ausgeben",[771,22511,22512,22514,22516],{},[792,22513,15904],{},[792,22515,22446],{},[792,22517,22518],{},"Kommagetrennte Liste ausgeben",[771,22520,22521,22523,22525],{},[792,22522,17415],{},[792,22524,17418],{},[792,22526,22527],{},"Farbige Ausgabe (Dateitypen farbig)",[771,22529,22530,22532,22535],{},[792,22531,9038],{},[792,22533,22534],{},"--classify",[792,22536,22537],{},"Typkennzeichen anhängen (\u002F Verz., * ausführbar, @ Link, `",[771,22539,22540,22542,22545],{},[792,22541,8991],{},[792,22543,22544],{},"--numeric-uid-gid",[792,22546,22547],{},"Numerische UIDs\u002FGIDs statt Namen",[771,22549,22550,22552,22555],{},[792,22551,12829],{},[792,22553,22554],{},"--no-group",[792,22556,22557],{},"Gruppenname in Langansicht weglassen",[771,22559,22560,22562,22564],{},[792,22561,12860],{},[792,22563,22446],{},[792,22565,22566],{},"SELinux-Kontext anzeigen",[16,22568,22570],{"id":22569},"erklärung-der-langansicht-ls-l","Erklärung der Langansicht (ls -l)",[414,22572,22573,22574,22576,22577,22579,22580,22582,22583,22585,22586,22588,22589,22591,22592,22594,22595,22597],{},"drwxr-xr-x 2 matta matta 4096 Apr 29 10:00 dokumente",[7135,22575],{},"\n| | | | | | |",[7135,22578],{},"\n| | | | | | +-- Dateiname",[7135,22581],{},"\n| | | | | +-- Datum der letzten Änderung",[7135,22584],{},"\n| | | | +-- Dateigröße (Bytes)",[7135,22587],{},"\n| | | +-- Gruppe",[7135,22590],{},"\n| | +-- Eigentümer",[7135,22593],{},"\n| +-- Anzahl der Hard Links",[7135,22596],{},"\n+-- Typ + Berechtigungen:",[4647,22599,22601],{"className":4649,"code":22600,"language":4651,"meta":269,"style":269},"d = Verzeichnis\n- = Reguläre Datei\n",[4653,22602,22603,22611],{"__ignoreMap":269},[4173,22604,22605,22607,22609],{"class":4657,"line":4658},[4173,22606,12469],{"class":4661},[4173,22608,15169],{"class":4669},[4173,22610,15367],{"class":4669},[4173,22612,22613,22615,22617,22620],{"class":4657,"line":270},[4173,22614,4778],{"class":4661},[4173,22616,15169],{"class":4669},[4173,22618,22619],{"class":4669}," Reguläre",[4173,22621,22622],{"class":4669}," Datei\n",[21,22624,22625],{},[24,22626,22627],{},"= Reguläre Datei",[4647,22629,22631],{"className":4649,"code":22630,"language":4651,"meta":269,"style":269},"l = Symbolischer Link\nc = Zeichengerät\nb = Blockgerät\np = Named Pipe\ns = Socket\n\n",[4653,22632,22633,22645,22654,22663,22675],{"__ignoreMap":269},[4173,22634,22635,22637,22639,22642],{"class":4657,"line":4658},[4173,22636,12511],{"class":4661},[4173,22638,15169],{"class":4669},[4173,22640,22641],{"class":4669}," Symbolischer",[4173,22643,22644],{"class":4669}," Link\n",[4173,22646,22647,22649,22651],{"class":4657,"line":270},[4173,22648,12490],{"class":4661},[4173,22650,15169],{"class":4669},[4173,22652,22653],{"class":4669}," Zeichengerät\n",[4173,22655,22656,22658,22660],{"class":4657,"line":1263},[4173,22657,6303],{"class":4661},[4173,22659,15169],{"class":4669},[4173,22661,22662],{"class":4669}," Blockgerät\n",[4173,22664,22665,22667,22669,22672],{"class":4657,"line":4770},[4173,22666,414],{"class":4661},[4173,22668,15169],{"class":4669},[4173,22670,22671],{"class":4669}," Named",[4173,22673,22674],{"class":4669}," Pipe\n",[4173,22676,22677,22679,22681],{"class":4657,"line":4775},[4173,22678,12522],{"class":4661},[4173,22680,15169],{"class":4669},[4173,22682,22683],{"class":4669}," Socket\n",[16,22685,22687],{"id":22686},"dateitypen-durch-farben-bei-colorauto","Dateitypen durch Farben (bei --color=auto)",[765,22689,22690,22703],{},[768,22691,22692],{},[771,22693,22694,22699],{},[774,22695,22696],{},[42,22697,22698],{},"Farbe",[774,22700,22701],{},[42,22702,6723],{},[787,22704,22705,22712,22719,22727,22735,22743,22751,22759],{},[771,22706,22707,22710],{},[792,22708,22709],{},"Keine\u002FWeiß",[792,22711,12456],{},[771,22713,22714,22717],{},[792,22715,22716],{},"Blau",[792,22718,9626],{},[771,22720,22721,22724],{},[792,22722,22723],{},"Cyan",[792,22725,22726],{},"Symbolischer Link",[771,22728,22729,22732],{},[792,22730,22731],{},"Grün",[792,22733,22734],{},"Ausführbare Datei",[771,22736,22737,22740],{},[792,22738,22739],{},"Rot",[792,22741,22742],{},"Archivdatei",[771,22744,22745,22748],{},[792,22746,22747],{},"Magenta",[792,22749,22750],{},"Bild\u002FMediendatei",[771,22752,22753,22756],{},[792,22754,22755],{},"Gelb\u002FBlinkend",[792,22757,22758],{},"Gerätedatei",[771,22760,22761,22764],{},[792,22762,22763],{},"Rot auf Schwarz",[792,22765,22766],{},"Defekter Symlink",[16,22768,9925],{"id":22769},"beispiele-11",[11,22771,22773],{"id":22772},"einfache-liste","Einfache Liste",[4647,22775,22777],{"className":4649,"code":22776,"language":4651,"meta":269,"style":269},"ls\n\n# Lange Ansicht\n\nls -l\n\n# Alle Dateien inkl. versteckte + lange Ansicht + lesbare Größen\n\nls -lah\n\n# Alle Dateien, nach Zeit sortiert (neueste zuerst)\n\nls -laht\n\n# Alle Dateien, nach Größe sortiert (größte zuerst)\n\nls -lahS\n\n# Alle Dateien, nach Zeit sortiert (älteste zuerst)\n\nls -latr\n\n# Rekursiv alle Inhalte anzeigen\n\nls -lR \u002Fetc\u002F | head -30\n\n# Inode-Nummern anzeigen (nützlich für Hard Links)\n\nls -li\n\n# Verzeichnis selbst anzeigen (nicht seinen Inhalt)\n\nls -ld \u002Fetc\u002F\n\n# Nur Verzeichnisse im aktuellen Verzeichnis\n\nls -d *\u002F\n\n# Typkennzeichen anzeigen\n\nls -F\n\n# Numerische UIDs\u002FGIDs\n\nls -ln\n\n# Nur Verzeichnisse (grep auf d am Anfang)\n\nls -la | grep \"^d\"\n\n# Nur Symlinks\n\nls -la | grep \"^l\"\n\n# Alle ausführbaren Dateien\n\nls -la | grep \"^-.*x\"\n\n",[4653,22778,22779,22784,22788,22793,22797,22803,22807,22812,22816,22823,22827,22832,22836,22843,22847,22852,22856,22863,22867,22872,22876,22883,22887,22892,22896,22913,22917,22922,22926,22933,22937,22942,22946,22954,22958,22963,22967,22978,22982,22987,22991,22998,23002,23007,23011,23018,23022,23027,23031,23045,23049,23054,23058,23071,23075,23080,23084],{"__ignoreMap":269},[4173,22780,22781],{"class":4657,"line":4658},[4173,22782,22783],{"class":4661},"ls\n",[4173,22785,22786],{"class":4657,"line":270},[4173,22787,4761],{"emptyLinePlaceholder":4760},[4173,22789,22790],{"class":4657,"line":1263},[4173,22791,22792],{"class":4766},"# Lange Ansicht\n",[4173,22794,22795],{"class":4657,"line":4770},[4173,22796,4761],{"emptyLinePlaceholder":4760},[4173,22798,22799,22801],{"class":4657,"line":4775},[4173,22800,13462],{"class":4661},[4173,22802,16100],{"class":4665},[4173,22804,22805],{"class":4657,"line":6320},[4173,22806,4761],{"emptyLinePlaceholder":4760},[4173,22808,22809],{"class":4657,"line":6325},[4173,22810,22811],{"class":4766},"# Alle Dateien inkl. versteckte + lange Ansicht + lesbare Größen\n",[4173,22813,22814],{"class":4657,"line":6343},[4173,22815,4761],{"emptyLinePlaceholder":4760},[4173,22817,22818,22820],{"class":4657,"line":6348},[4173,22819,13462],{"class":4661},[4173,22821,22822],{"class":4665}," -lah\n",[4173,22824,22825],{"class":4657,"line":6457},[4173,22826,4761],{"emptyLinePlaceholder":4760},[4173,22828,22829],{"class":4657,"line":6462},[4173,22830,22831],{"class":4766},"# Alle Dateien, nach Zeit sortiert (neueste zuerst)\n",[4173,22833,22834],{"class":4657,"line":6468},[4173,22835,4761],{"emptyLinePlaceholder":4760},[4173,22837,22838,22840],{"class":4657,"line":6473},[4173,22839,13462],{"class":4661},[4173,22841,22842],{"class":4665}," -laht\n",[4173,22844,22845],{"class":4657,"line":6479},[4173,22846,4761],{"emptyLinePlaceholder":4760},[4173,22848,22849],{"class":4657,"line":6503},[4173,22850,22851],{"class":4766},"# Alle Dateien, nach Größe sortiert (größte zuerst)\n",[4173,22853,22854],{"class":4657,"line":6516},[4173,22855,4761],{"emptyLinePlaceholder":4760},[4173,22857,22858,22860],{"class":4657,"line":6971},[4173,22859,13462],{"class":4661},[4173,22861,22862],{"class":4665}," -lahS\n",[4173,22864,22865],{"class":4657,"line":10649},[4173,22866,4761],{"emptyLinePlaceholder":4760},[4173,22868,22869],{"class":4657,"line":10654},[4173,22870,22871],{"class":4766},"# Alle Dateien, nach Zeit sortiert (älteste zuerst)\n",[4173,22873,22874],{"class":4657,"line":10659},[4173,22875,4761],{"emptyLinePlaceholder":4760},[4173,22877,22878,22880],{"class":4657,"line":10664},[4173,22879,13462],{"class":4661},[4173,22881,22882],{"class":4665}," -latr\n",[4173,22884,22885],{"class":4657,"line":10676},[4173,22886,4761],{"emptyLinePlaceholder":4760},[4173,22888,22889],{"class":4657,"line":10681},[4173,22890,22891],{"class":4766},"# Rekursiv alle Inhalte anzeigen\n",[4173,22893,22894],{"class":4657,"line":10702},[4173,22895,4761],{"emptyLinePlaceholder":4760},[4173,22897,22898,22900,22903,22906,22908,22910],{"class":4657,"line":10707},[4173,22899,13462],{"class":4661},[4173,22901,22902],{"class":4665}," -lR",[4173,22904,22905],{"class":4669}," \u002Fetc\u002F",[4173,22907,8928],{"class":4788},[4173,22909,10445],{"class":4661},[4173,22911,22912],{"class":4665}," -30\n",[4173,22914,22915],{"class":4657,"line":10712},[4173,22916,4761],{"emptyLinePlaceholder":4760},[4173,22918,22919],{"class":4657,"line":10717},[4173,22920,22921],{"class":4766},"# Inode-Nummern anzeigen (nützlich für Hard Links)\n",[4173,22923,22924],{"class":4657,"line":10727},[4173,22925,4761],{"emptyLinePlaceholder":4760},[4173,22927,22928,22930],{"class":4657,"line":10732},[4173,22929,13462],{"class":4661},[4173,22931,22932],{"class":4665}," -li\n",[4173,22934,22935],{"class":4657,"line":10737},[4173,22936,4761],{"emptyLinePlaceholder":4760},[4173,22938,22939],{"class":4657,"line":10742},[4173,22940,22941],{"class":4766},"# Verzeichnis selbst anzeigen (nicht seinen Inhalt)\n",[4173,22943,22944],{"class":4657,"line":10752},[4173,22945,4761],{"emptyLinePlaceholder":4760},[4173,22947,22948,22950,22952],{"class":4657,"line":10757},[4173,22949,13462],{"class":4661},[4173,22951,15287],{"class":4665},[4173,22953,17742],{"class":4669},[4173,22955,22956],{"class":4657,"line":10762},[4173,22957,4761],{"emptyLinePlaceholder":4760},[4173,22959,22960],{"class":4657,"line":10767},[4173,22961,22962],{"class":4766},"# Nur Verzeichnisse im aktuellen Verzeichnis\n",[4173,22964,22965],{"class":4657,"line":10772},[4173,22966,4761],{"emptyLinePlaceholder":4760},[4173,22968,22969,22971,22973,22975],{"class":4657,"line":10777},[4173,22970,13462],{"class":4661},[4173,22972,8048],{"class":4665},[4173,22974,7078],{"class":4665},[4173,22976,22977],{"class":4669},"\u002F\n",[4173,22979,22980],{"class":4657,"line":10782},[4173,22981,4761],{"emptyLinePlaceholder":4760},[4173,22983,22984],{"class":4657,"line":10787},[4173,22985,22986],{"class":4766},"# Typkennzeichen anzeigen\n",[4173,22988,22989],{"class":4657,"line":10800},[4173,22990,4761],{"emptyLinePlaceholder":4760},[4173,22992,22993,22995],{"class":4657,"line":10805},[4173,22994,13462],{"class":4661},[4173,22996,22997],{"class":4665}," -F\n",[4173,22999,23000],{"class":4657,"line":10818},[4173,23001,4761],{"emptyLinePlaceholder":4760},[4173,23003,23004],{"class":4657,"line":10823},[4173,23005,23006],{"class":4766},"# Numerische UIDs\u002FGIDs\n",[4173,23008,23009],{"class":4657,"line":10836},[4173,23010,4761],{"emptyLinePlaceholder":4760},[4173,23012,23013,23015],{"class":4657,"line":10841},[4173,23014,13462],{"class":4661},[4173,23016,23017],{"class":4665}," -ln\n",[4173,23019,23020],{"class":4657,"line":10846},[4173,23021,4761],{"emptyLinePlaceholder":4760},[4173,23023,23024],{"class":4657,"line":10851},[4173,23025,23026],{"class":4766},"# Nur Verzeichnisse (grep auf d am Anfang)\n",[4173,23028,23029],{"class":4657,"line":10867},[4173,23030,4761],{"emptyLinePlaceholder":4760},[4173,23032,23033,23035,23038,23040,23042],{"class":4657,"line":10872},[4173,23034,13462],{"class":4661},[4173,23036,23037],{"class":4665}," -la",[4173,23039,8928],{"class":4788},[4173,23041,8931],{"class":4661},[4173,23043,23044],{"class":4669}," \"^d\"\n",[4173,23046,23047],{"class":4657,"line":10877},[4173,23048,4761],{"emptyLinePlaceholder":4760},[4173,23050,23051],{"class":4657,"line":10882},[4173,23052,23053],{"class":4766},"# Nur Symlinks\n",[4173,23055,23056],{"class":4657,"line":10890},[4173,23057,4761],{"emptyLinePlaceholder":4760},[4173,23059,23060,23062,23064,23066,23068],{"class":4657,"line":10895},[4173,23061,13462],{"class":4661},[4173,23063,23037],{"class":4665},[4173,23065,8928],{"class":4788},[4173,23067,8931],{"class":4661},[4173,23069,23070],{"class":4669}," \"^l\"\n",[4173,23072,23073],{"class":4657,"line":10904},[4173,23074,4761],{"emptyLinePlaceholder":4760},[4173,23076,23077],{"class":4657,"line":10909},[4173,23078,23079],{"class":4766},"# Alle ausführbaren Dateien\n",[4173,23081,23082],{"class":4657,"line":10914},[4173,23083,4761],{"emptyLinePlaceholder":4760},[4173,23085,23086,23088,23090,23092,23094],{"class":4657,"line":10919},[4173,23087,13462],{"class":4661},[4173,23089,23037],{"class":4665},[4173,23091,8928],{"class":4788},[4173,23093,8931],{"class":4661},[4173,23095,23096],{"class":4669}," \"^-.*x\"\n",[16,23098,12997],{"id":23099},"ausgabe-11",[11,23101,23103],{"id":23102},"ls-lah","ls -lah",[414,23105,23106],{},"gesamt 48K",[414,23108,23109],{},"drwxr-xr-x 5 matta matta 4,0K Apr 29 10:00 .",[414,23111,23112],{},"drwxr-xr-x 18 matta matta 4,0K Apr 28 09:00 ..",[414,23114,23115],{},"-rw-r--r-- 1 matta matta 220 Apr 27 08:00 .bash_logout",[414,23117,23118],{},"-rw-r--r-- 1 matta matta 3,5K Apr 27 08:00 .bashrc",[414,23120,23121],{},"drwxr-xr-x 2 matta matta 4,0K Apr 29 09:30 dokumente",[414,23123,23124],{},"-rw-r--r-- 1 matta matta 2,1K Apr 29 09:45 notizen.txt",[414,23126,23127],{},"-rwxr-xr-x 1 matta matta 1,2K Apr 29 10:00 skript.sh",[414,23129,23130],{},"lrwxrwxrwx 1 matta matta 11 Apr 29 10:00 link -> skript.sh",[11,23132,23134],{"id":23133},"ls-li-gleiche-inode-hard-links","ls -li (gleiche Inode = Hard Links)",[414,23136,23137],{},"524292 drwxr-xr-x 2 matta matta 4096 Apr 29 09:30 dokumente",[414,23139,23140],{},"524293 -rw-r--r-- 2 matta matta 1234 Apr 29 09:45 datei.txt",[414,23142,23143],{},"524293 -rw-r--r-- 2 matta matta 1234 Apr 29 09:45 hardlink.txt",[11,23145,23147],{"id":23146},"gleiche-inode-hard-links","^^^^^^^^^^ Gleiche Inode = Hard Links!",[11,23149,12025],{"id":12025},[414,23151,23152,23154,23155,23158,23159,7834],{},[42,23153,12709],{}," Gibt den ",[42,23156,23157],{},"absoluten Pfad"," des aktuellen Arbeitsverzeichnisses aus. \"pwd\" steht für ",[406,23160,23161],{},"Print Working Directory",[414,23163,23164,6100,23166],{},[42,23165,7941],{},[42,23167,23168,23169],{},"pwd ",[4173,23170,12720],{},[16,23172,12780],{"id":23173},"flags-10",[765,23175,23176,23188],{},[768,23177,23178],{},[771,23179,23180,23184],{},[774,23181,23182],{},[42,23183,12791],{},[774,23185,23186],{},[42,23187,6733],{},[787,23189,23190,23197],{},[771,23191,23192,23194],{},[792,23193,13843],{},[792,23195,23196],{},"Logischer Pfad (Standard): zeigt den Pfad wie er in der Shell geführt wird, Symlinks werden nicht aufgelöst",[771,23198,23199,23201],{},[792,23200,13851],{},[792,23202,23203],{},"Physischer Pfad: löst alle Symlinks auf und zeigt den echten Pfad im Dateisystem",[414,23205,23206],{},[42,23207,23208],{},"Unterschied -L vs. -P",[414,23210,23211,23212,23215,23216,23219],{},"Wenn ",[42,23213,23214],{},"\u002Fhome\u002Fmatta"," ein symbolischer Link auf ",[42,23217,23218],{},"\u002Fdata\u002Fusers\u002Fmatta"," ist:",[4647,23221,23223],{"className":4649,"code":23222,"language":4651,"meta":269,"style":269},"cd \u002Fhome\u002Fmatta\n\n",[4653,23224,23225],{"__ignoreMap":269},[4173,23226,23227,23230],{"class":4657,"line":4658},[4173,23228,23229],{"class":4665},"cd",[4173,23231,23232],{"class":4669}," \u002Fhome\u002Fmatta\n",[414,23234,23235],{},"pwd # oder pwd -L",[11,23237,23239],{"id":23238},"homematta-logischer-pfad-symlink-selbst","\u002Fhome\u002Fmatta \u003C- logischer Pfad (Symlink selbst)",[4647,23241,23243],{"className":4649,"code":23242,"language":4651,"meta":269,"style":269},"pwd -P\n\n# \u002Fdata\u002Fusers\u002Fmatta \u003C- physischer Pfad (echtes Ziel)\n\n",[4653,23244,23245,23252,23256],{"__ignoreMap":269},[4173,23246,23247,23249],{"class":4657,"line":4658},[4173,23248,12025],{"class":4665},[4173,23250,23251],{"class":4665}," -P\n",[4173,23253,23254],{"class":4657,"line":270},[4173,23255,4761],{"emptyLinePlaceholder":4760},[4173,23257,23258],{"class":4657,"line":1263},[4173,23259,23260],{"class":4766},"# \u002Fdata\u002Fusers\u002Fmatta \u003C- physischer Pfad (echtes Ziel)\n",[16,23262,9925],{"id":23263},"beispiele-12",[11,23265,23267],{"id":23266},"aktuelles-verzeichnis-ausgeben","Aktuelles Verzeichnis ausgeben",[414,23269,12025],{},[11,23271,23273],{"id":23272},"physischen-pfad-symlinks-aufgelöst","Physischen Pfad (Symlinks aufgelöst)",[4647,23275,23277],{"className":4649,"code":23276,"language":4651,"meta":269,"style":269},"pwd -P\n\n# In Skripten: aktuelles Verzeichnis speichern und später zurückkehren\n\norig=$(pwd)\n\ncd \u002Ftmp\n\necho \"Jetzt in: $(pwd)\"\n\ncd \"$orig\"\n\necho \"Zurück in: $(pwd)\"\n\n# Prüfen ob man sich im richtigen Verzeichnis befindet\n\nif [ \"$(pwd)\" != \"\u002Fvar\u002Fwww\u002Fhtml\" ]; then\n\necho \"Falsches Verzeichnis!\"\n\nexit 1\n\nfi\n\n# In Kombination mit find (absoluter Pfad als Startpunkt)\n\nfind \"$(pwd)\" -name \"*.conf\"\n\n",[4653,23278,23279,23285,23289,23294,23298,23311,23315,23321,23325,23336,23340,23351,23355,23366,23370,23375,23379,23402,23406,23413,23417,23423,23427,23431,23435,23440,23444],{"__ignoreMap":269},[4173,23280,23281,23283],{"class":4657,"line":4658},[4173,23282,12025],{"class":4665},[4173,23284,23251],{"class":4665},[4173,23286,23287],{"class":4657,"line":270},[4173,23288,4761],{"emptyLinePlaceholder":4760},[4173,23290,23291],{"class":4657,"line":1263},[4173,23292,23293],{"class":4766},"# In Skripten: aktuelles Verzeichnis speichern und später zurückkehren\n",[4173,23295,23296],{"class":4657,"line":4770},[4173,23297,4761],{"emptyLinePlaceholder":4760},[4173,23299,23300,23303,23305,23307,23309],{"class":4657,"line":4775},[4173,23301,23302],{"class":4784},"orig",[4173,23304,6387],{"class":4788},[4173,23306,10249],{"class":4784},[4173,23308,12025],{"class":4665},[4173,23310,6402],{"class":4784},[4173,23312,23313],{"class":4657,"line":6320},[4173,23314,4761],{"emptyLinePlaceholder":4760},[4173,23316,23317,23319],{"class":4657,"line":6325},[4173,23318,23229],{"class":4665},[4173,23320,15533],{"class":4669},[4173,23322,23323],{"class":4657,"line":6343},[4173,23324,4761],{"emptyLinePlaceholder":4760},[4173,23326,23327,23329,23332,23334],{"class":4657,"line":6348},[4173,23328,6309],{"class":4665},[4173,23330,23331],{"class":4669}," \"Jetzt in: $(",[4173,23333,12025],{"class":4665},[4173,23335,11995],{"class":4669},[4173,23337,23338],{"class":4657,"line":6457},[4173,23339,4761],{"emptyLinePlaceholder":4760},[4173,23341,23342,23344,23346,23349],{"class":4657,"line":6462},[4173,23343,23229],{"class":4665},[4173,23345,6218],{"class":4669},[4173,23347,23348],{"class":4784},"$orig",[4173,23350,6454],{"class":4669},[4173,23352,23353],{"class":4657,"line":6468},[4173,23354,4761],{"emptyLinePlaceholder":4760},[4173,23356,23357,23359,23362,23364],{"class":4657,"line":6473},[4173,23358,6309],{"class":4665},[4173,23360,23361],{"class":4669}," \"Zurück in: $(",[4173,23363,12025],{"class":4665},[4173,23365,11995],{"class":4669},[4173,23367,23368],{"class":4657,"line":6479},[4173,23369,4761],{"emptyLinePlaceholder":4760},[4173,23371,23372],{"class":4657,"line":6503},[4173,23373,23374],{"class":4766},"# Prüfen ob man sich im richtigen Verzeichnis befindet\n",[4173,23376,23377],{"class":4657,"line":6516},[4173,23378,4761],{"emptyLinePlaceholder":4760},[4173,23380,23381,23383,23385,23388,23390,23393,23395,23398,23400],{"class":4657,"line":6971},[4173,23382,6201],{"class":4788},[4173,23384,6204],{"class":4784},[4173,23386,23387],{"class":4669},"\"$(",[4173,23389,12025],{"class":4665},[4173,23391,23392],{"class":4669},")\"",[4173,23394,10860],{"class":4788},[4173,23396,23397],{"class":4669}," \"\u002Fvar\u002Fwww\u002Fhtml\"",[4173,23399,6226],{"class":4784},[4173,23401,6229],{"class":4788},[4173,23403,23404],{"class":4657,"line":10649},[4173,23405,4761],{"emptyLinePlaceholder":4760},[4173,23407,23408,23410],{"class":4657,"line":10654},[4173,23409,6309],{"class":4665},[4173,23411,23412],{"class":4669}," \"Falsches Verzeichnis!\"\n",[4173,23414,23415],{"class":4657,"line":10659},[4173,23416,4761],{"emptyLinePlaceholder":4760},[4173,23418,23419,23421],{"class":4657,"line":10664},[4173,23420,10898],{"class":4665},[4173,23422,10901],{"class":4665},[4173,23424,23425],{"class":4657,"line":10676},[4173,23426,4761],{"emptyLinePlaceholder":4760},[4173,23428,23429],{"class":4657,"line":10681},[4173,23430,6247],{"class":4788},[4173,23432,23433],{"class":4657,"line":10702},[4173,23434,4761],{"emptyLinePlaceholder":4760},[4173,23436,23437],{"class":4657,"line":10707},[4173,23438,23439],{"class":4766},"# In Kombination mit find (absoluter Pfad als Startpunkt)\n",[4173,23441,23442],{"class":4657,"line":10712},[4173,23443,4761],{"emptyLinePlaceholder":4760},[4173,23445,23446,23448,23450,23452,23454,23456],{"class":4657,"line":10717},[4173,23447,9459],{"class":4661},[4173,23449,11286],{"class":4669},[4173,23451,12025],{"class":4665},[4173,23453,23392],{"class":4669},[4173,23455,9484],{"class":4665},[4173,23457,18920],{"class":4669},[16,23459,12997],{"id":23460},"ausgabe-12",[11,23462,12025],{"id":23463},"pwd-1",[414,23465,23466],{},"\u002Fhome\u002Fmatta\u002Fprojekte\u002Fwebserver",[11,23468,23470],{"id":23469},"wenn-cwd-ein-symlink-ist","Wenn CWD ein Symlink ist:",[11,23472,23474],{"id":23473},"pwd-l","pwd -L",[414,23476,23477],{},"\u002Fhome\u002Fmatta \u003C- zeigt Symlink-Pfad",[11,23479,23481],{"id":23480},"pwd-p","pwd -P",[414,23483,23484],{},"\u002Fdata\u002Fusers\u002Fmatta \u003C- zeigt echten Pfad",[11,23486,23487],{"id":23487},"sort",[414,23489,23490,23492],{},[42,23491,12709],{}," Sortiert Zeilen eines Textes alphabetisch, numerisch oder nach anderen Kriterien.",[414,23494,23495,6100,23497],{},[42,23496,7941],{},[42,23498,23499,23500,6100,23502],{},"sort ",[4173,23501,12720],{},[4173,23503,15846],{},[16,23505,12780],{"id":23506},"flags-11",[765,23508,23509,23525],{},[768,23510,23511],{},[771,23512,23513,23517,23521],{},[774,23514,23515],{},[42,23516,12791],{},[774,23518,23519],{},[42,23520,12796],{},[774,23522,23523],{},[42,23524,6733],{},[787,23526,23527,23536,23546,23556,23564,23574,23585,23601,23612,23623,23633,23643,23653,23663,23674,23684,23695],{},[771,23528,23529,23531,23533],{},[792,23530,6103],{},[792,23532,22456],{},[792,23534,23535],{},"Umgekehrte Reihenfolge",[771,23537,23538,23540,23543],{},[792,23539,8991],{},[792,23541,23542],{},"--numeric-sort",[792,23544,23545],{},"Numerisch sortieren (nicht alphabetisch: 10 > 9)",[771,23547,23548,23550,23553],{},[792,23549,13819],{},[792,23551,23552],{},"--human-numeric-sort",[792,23554,23555],{},"Menschenlesbare Zahlen sortieren (1K \u003C 1M \u003C 1G)",[771,23557,23558,23560,23562],{},[792,23559,10577],{},[792,23561,17243],{},[792,23563,17246],{},[771,23565,23566,23568,23571],{},[792,23567,12807],{},[792,23569,23570],{},"--unique",[792,23572,23573],{},"Duplikate entfernen",[771,23575,23576,23579,23582],{},[792,23577,23578],{},"-b",[792,23580,23581],{},"--ignore-leading-blanks",[792,23583,23584],{},"Führende Leerzeichen ignorieren",[771,23586,23587,23593,23598],{},[792,23588,23589,23590],{},"-k N",[4173,23591,23592],{},",M",[792,23594,23595,23596],{},"--key=N",[4173,23597,23592],{},[792,23599,23600],{},"Sortierschlüssel: Ab Feld N (bis Feld M)",[771,23602,23603,23606,23609],{},[792,23604,23605],{},"-t TRENNER",[792,23607,23608],{},"--field-separator",[792,23610,23611],{},"Spaltentrenner festlegen",[771,23613,23614,23617,23620],{},[792,23615,23616],{},"-o DATEI",[792,23618,23619],{},"--output=DATEI",[792,23621,23622],{},"Ergebnis in Datei schreiben (kann Eingabedatei sein!)",[771,23624,23625,23627,23630],{},[792,23626,9014],{},[792,23628,23629],{},"--check",[792,23631,23632],{},"Prüfen ob Eingabe bereits sortiert ist",[771,23634,23635,23638,23640],{},[792,23636,23637],{},"-C",[792,23639,22446],{},[792,23641,23642],{},"Wie -c, aber ohne Fehlermeldung",[771,23644,23645,23647,23650],{},[792,23646,15904],{},[792,23648,23649],{},"--merge",[792,23651,23652],{},"Bereits sortierte Dateien zusammenführen",[771,23654,23655,23657,23660],{},[792,23656,13790],{},[792,23658,23659],{},"--random-sort",[792,23661,23662],{},"Zufällige Reihenfolge",[771,23664,23665,23668,23671],{},[792,23666,23667],{},"-V",[792,23669,23670],{},"--version-sort",[792,23672,23673],{},"Versionsnummern sortieren (1.9 \u003C 1.10)",[771,23675,23676,23678,23681],{},[792,23677,20406],{},[792,23679,23680],{},"--zero-terminated",[792,23682,23683],{},"Null-Byte als Zeilentrenner (für find -print0)",[771,23685,23686,23689,23692],{},[792,23687,23688],{},"-S N",[792,23690,23691],{},"--buffer-size=N",[792,23693,23694],{},"Puffergröße (z.B. -S 1G)",[771,23696,23697,23700,23702],{},[792,23698,23699],{},"--parallel=N",[792,23701,22446],{},[792,23703,23704],{},"N CPU-Kerne nutzen",[414,23706,23707],{},[42,23708,23709],{},"Sortierschlüssel -k verstehen",[4647,23711,23713],{"className":4649,"code":23712,"language":4651,"meta":269,"style":269},"sort -k ANFANG[,ENDE][OPTIONEN]\n\n",[4653,23714,23715],{"__ignoreMap":269},[4173,23716,23717,23719,23722],{"class":4657,"line":4658},[4173,23718,23487],{"class":4661},[4173,23720,23721],{"class":4665}," -k",[4173,23723,23724],{"class":4669}," ANFANG[,ENDE][OPTIONEN]\n",[414,23726,8902,23727,23729,23730,23732,23733,23735,23736,23738,23739,23741],{},[7135,23728],{},"\n-k2 Ab Feld 2 bis Zeilenende sortieren",[7135,23731],{},"\n-k2,2 Nur Feld 2 als Schlüssel",[7135,23734],{},"\n-k2,2n Feld 2 numerisch sortieren",[7135,23737],{},"\n-k3,3r Feld 3 rückwärts sortieren",[7135,23740],{},"\n-k2,2 -k1,1 Erst nach Feld 2, dann nach Feld 1",[16,23743,9925],{"id":23744},"beispiele-13",[11,23746,23748],{"id":23747},"alphabetisch-sortieren","Alphabetisch sortieren",[414,23750,23751],{},"sort namen.txt",[11,23753,23755],{"id":23754},"numerisch-sortieren-wichtig-sonst-10-2-alphabetisch","Numerisch sortieren (wichtig: sonst 10 \u003C 2 alphabetisch!)",[4647,23757,23759],{"className":4649,"code":23758,"language":4651,"meta":269,"style":269},"sort -n zahlen.txt\n\n# Umgekehrt alphabetisch\n\nsort -r namen.txt\n\n# Numerisch + umgekehrt (größte Zahl oben)\n\nsort -nr zahlen.txt\n\n# Groß-\u002FKleinschreibung ignorieren\n\nsort -f namen.txt\n\n# Duplikate entfernen\n\nsort -u namen.txt\n\n# \u002Fetc\u002Fpasswd nach UID (3. Feld, numerisch) sortieren\n\nsort -t: -k3,3n \u002Fetc\u002Fpasswd\n\n# Dateien nach Größe auflisten (du + sort)\n\ndu -sh \u002Fvar\u002F* | sort -h\n\n# Größte Dateien\u002FVerzeichnisse finden\n\ndu -sh \u002Fvar\u002Flog\u002F* | sort -rh | head -10\n\n# Prozesse nach CPU-Verbrauch sortieren\n\nps aux | sort -k3 -rn | head -10\n\n# IP-Adressen sortieren (nach Oktet)\n\nsort -t. -k1,1n -k2,2n -k3,3n -k4,4n ip_liste.txt\n\n# Versionsnummern sortieren\n\nsort -V versionen.txt\n\n# Prüfen ob Datei bereits sortiert ist\n\nsort -c namen.txt && echo \"Bereits sortiert\" || echo \"Nicht sortiert\"\n\n",[4653,23760,23761,23769,23773,23778,23782,23790,23794,23799,23803,23812,23816,23820,23824,23832,23836,23841,23845,23854,23858,23863,23867,23879,23883,23888,23892,23912,23916,23921,23925,23950,23954,23959,23963,23985,23989,23994,23998,24019,24023,24028,24032,24042,24046,24051,24055],{"__ignoreMap":269},[4173,23762,23763,23765,23767],{"class":4657,"line":4658},[4173,23764,23487],{"class":4661},[4173,23766,9376],{"class":4665},[4173,23768,10029],{"class":4669},[4173,23770,23771],{"class":4657,"line":270},[4173,23772,4761],{"emptyLinePlaceholder":4760},[4173,23774,23775],{"class":4657,"line":1263},[4173,23776,23777],{"class":4766},"# Umgekehrt alphabetisch\n",[4173,23779,23780],{"class":4657,"line":4770},[4173,23781,4761],{"emptyLinePlaceholder":4760},[4173,23783,23784,23786,23788],{"class":4657,"line":4775},[4173,23785,23487],{"class":4661},[4173,23787,9095],{"class":4665},[4173,23789,22006],{"class":4669},[4173,23791,23792],{"class":4657,"line":6320},[4173,23793,4761],{"emptyLinePlaceholder":4760},[4173,23795,23796],{"class":4657,"line":6325},[4173,23797,23798],{"class":4766},"# Numerisch + umgekehrt (größte Zahl oben)\n",[4173,23800,23801],{"class":4657,"line":6343},[4173,23802,4761],{"emptyLinePlaceholder":4760},[4173,23804,23805,23807,23810],{"class":4657,"line":6348},[4173,23806,23487],{"class":4661},[4173,23808,23809],{"class":4665}," -nr",[4173,23811,10029],{"class":4669},[4173,23813,23814],{"class":4657,"line":6457},[4173,23815,4761],{"emptyLinePlaceholder":4760},[4173,23817,23818],{"class":4657,"line":6462},[4173,23819,17620],{"class":4766},[4173,23821,23822],{"class":4657,"line":6468},[4173,23823,4761],{"emptyLinePlaceholder":4760},[4173,23825,23826,23828,23830],{"class":4657,"line":6473},[4173,23827,23487],{"class":4661},[4173,23829,11337],{"class":4665},[4173,23831,22006],{"class":4669},[4173,23833,23834],{"class":4657,"line":6479},[4173,23835,4761],{"emptyLinePlaceholder":4760},[4173,23837,23838],{"class":4657,"line":6503},[4173,23839,23840],{"class":4766},"# Duplikate entfernen\n",[4173,23842,23843],{"class":4657,"line":6516},[4173,23844,4761],{"emptyLinePlaceholder":4760},[4173,23846,23847,23849,23852],{"class":4657,"line":6971},[4173,23848,23487],{"class":4661},[4173,23850,23851],{"class":4665}," -u",[4173,23853,22006],{"class":4669},[4173,23855,23856],{"class":4657,"line":10649},[4173,23857,4761],{"emptyLinePlaceholder":4760},[4173,23859,23860],{"class":4657,"line":10654},[4173,23861,23862],{"class":4766},"# \u002Fetc\u002Fpasswd nach UID (3. Feld, numerisch) sortieren\n",[4173,23864,23865],{"class":4657,"line":10659},[4173,23866,4761],{"emptyLinePlaceholder":4760},[4173,23868,23869,23871,23874,23877],{"class":4657,"line":10664},[4173,23870,23487],{"class":4661},[4173,23872,23873],{"class":4665}," -t:",[4173,23875,23876],{"class":4665}," -k3,3n",[4173,23878,10007],{"class":4669},[4173,23880,23881],{"class":4657,"line":10676},[4173,23882,4761],{"emptyLinePlaceholder":4760},[4173,23884,23885],{"class":4657,"line":10681},[4173,23886,23887],{"class":4766},"# Dateien nach Größe auflisten (du + sort)\n",[4173,23889,23890],{"class":4657,"line":10702},[4173,23891,4761],{"emptyLinePlaceholder":4760},[4173,23893,23894,23897,23900,23903,23905,23907,23909],{"class":4657,"line":10707},[4173,23895,23896],{"class":4661},"du",[4173,23898,23899],{"class":4665}," -sh",[4173,23901,23902],{"class":4669}," \u002Fvar\u002F",[4173,23904,6328],{"class":4665},[4173,23906,8928],{"class":4788},[4173,23908,10400],{"class":4661},[4173,23910,23911],{"class":4665}," -h\n",[4173,23913,23914],{"class":4657,"line":10712},[4173,23915,4761],{"emptyLinePlaceholder":4760},[4173,23917,23918],{"class":4657,"line":10717},[4173,23919,23920],{"class":4766},"# Größte Dateien\u002FVerzeichnisse finden\n",[4173,23922,23923],{"class":4657,"line":10727},[4173,23924,4761],{"emptyLinePlaceholder":4760},[4173,23926,23927,23929,23931,23934,23936,23938,23940,23943,23945,23947],{"class":4657,"line":10732},[4173,23928,23896],{"class":4661},[4173,23930,23899],{"class":4665},[4173,23932,23933],{"class":4669}," \u002Fvar\u002Flog\u002F",[4173,23935,6328],{"class":4665},[4173,23937,8928],{"class":4788},[4173,23939,10400],{"class":4661},[4173,23941,23942],{"class":4665}," -rh",[4173,23944,8928],{"class":4788},[4173,23946,10445],{"class":4661},[4173,23948,23949],{"class":4665}," -10\n",[4173,23951,23952],{"class":4657,"line":10737},[4173,23953,4761],{"emptyLinePlaceholder":4760},[4173,23955,23956],{"class":4657,"line":10742},[4173,23957,23958],{"class":4766},"# Prozesse nach CPU-Verbrauch sortieren\n",[4173,23960,23961],{"class":4657,"line":10752},[4173,23962,4761],{"emptyLinePlaceholder":4760},[4173,23964,23965,23967,23969,23971,23973,23976,23979,23981,23983],{"class":4657,"line":10757},[4173,23966,8922],{"class":4661},[4173,23968,8925],{"class":4669},[4173,23970,8928],{"class":4788},[4173,23972,10400],{"class":4661},[4173,23974,23975],{"class":4665}," -k3",[4173,23977,23978],{"class":4665}," -rn",[4173,23980,8928],{"class":4788},[4173,23982,10445],{"class":4661},[4173,23984,23949],{"class":4665},[4173,23986,23987],{"class":4657,"line":10762},[4173,23988,4761],{"emptyLinePlaceholder":4760},[4173,23990,23991],{"class":4657,"line":10767},[4173,23992,23993],{"class":4766},"# IP-Adressen sortieren (nach Oktet)\n",[4173,23995,23996],{"class":4657,"line":10772},[4173,23997,4761],{"emptyLinePlaceholder":4760},[4173,23999,24000,24002,24005,24008,24011,24013,24016],{"class":4657,"line":10777},[4173,24001,23487],{"class":4661},[4173,24003,24004],{"class":4665}," -t.",[4173,24006,24007],{"class":4665}," -k1,1n",[4173,24009,24010],{"class":4665}," -k2,2n",[4173,24012,23876],{"class":4665},[4173,24014,24015],{"class":4665}," -k4,4n",[4173,24017,24018],{"class":4669}," ip_liste.txt\n",[4173,24020,24021],{"class":4657,"line":10782},[4173,24022,4761],{"emptyLinePlaceholder":4760},[4173,24024,24025],{"class":4657,"line":10787},[4173,24026,24027],{"class":4766},"# Versionsnummern sortieren\n",[4173,24029,24030],{"class":4657,"line":10800},[4173,24031,4761],{"emptyLinePlaceholder":4760},[4173,24033,24034,24036,24039],{"class":4657,"line":10805},[4173,24035,23487],{"class":4661},[4173,24037,24038],{"class":4665}," -V",[4173,24040,24041],{"class":4669}," versionen.txt\n",[4173,24043,24044],{"class":4657,"line":10818},[4173,24045,4761],{"emptyLinePlaceholder":4760},[4173,24047,24048],{"class":4657,"line":10823},[4173,24049,24050],{"class":4766},"# Prüfen ob Datei bereits sortiert ist\n",[4173,24052,24053],{"class":4657,"line":10836},[4173,24054,4761],{"emptyLinePlaceholder":4760},[4173,24056,24057,24059,24061,24064,24067,24069,24072,24075,24077],{"class":4657,"line":10841},[4173,24058,23487],{"class":4661},[4173,24060,10390],{"class":4665},[4173,24062,24063],{"class":4669}," namen.txt",[4173,24065,24066],{"class":4784}," && ",[4173,24068,6309],{"class":4665},[4173,24070,24071],{"class":4669}," \"Bereits sortiert\"",[4173,24073,24074],{"class":4788}," ||",[4173,24076,6285],{"class":4665},[4173,24078,24079],{"class":4669}," \"Nicht sortiert\"\n",[11,24081,24083],{"id":24082},"in-datei-schreiben-kann-auch-eingabedatei-sein","In Datei schreiben (kann auch Eingabedatei sein)",[414,24085,24086],{},"sort namen.txt -o namen.txt",[16,24088,12997],{"id":24089},"ausgabe-13",[11,24091,24093],{"id":24092},"cat-namentxt","cat namen.txt",[414,24095,24096],{},"Zara",[414,24098,24099],{},"Alice",[414,24101,24102],{},"bob",[414,24104,24099],{},[11,24106,23751],{"id":24107},"sort-namentxt",[414,24109,24099],{},[414,24111,24099],{},[414,24113,24096],{},[414,24115,24116],{},"bob \u003C- Großbuchstaben vor Kleinbuchstaben!",[11,24118,24120],{"id":24119},"sort-f-namentxt-case-insensitive","sort -f namen.txt (case-insensitive)",[414,24122,24099],{},[414,24124,24099],{},[414,24126,24102],{},[414,24128,24096],{},[11,24130,24132],{"id":24131},"sort-u-namentxt","sort -u namen.txt",[414,24134,24099],{},[414,24136,24096],{},[414,24138,24102],{},[11,24140,24142],{"id":24141},"sort-t-k33n-etcpasswd-head-4","sort -t: -k3,3n \u002Fetc\u002Fpasswd | head -4",[414,24144,16669],{},[414,24146,16672],{},[414,24148,16675],{},[414,24150,24151],{},"sys❌3:3:sys:\u002Fdev:\u002Fusr\u002Fsbin\u002Fnologin",[11,24153,24155],{"id":24154},"du-sh-varlog-sort-rh-head-5","du -sh \u002Fvar\u002Flog\u002F* | sort -rh | head -5",[414,24157,24158],{},"248M \u002Fvar\u002Flog\u002Fjournal",[414,24160,24161],{},"12M \u002Fvar\u002Flog\u002Fsyslog",[414,24163,24164],{},"4,5M \u002Fvar\u002Flog\u002Fauth.log",[414,24166,24167],{},"1,2M \u002Fvar\u002Flog\u002Fkern.log",[414,24169,24170],{},"440K \u002Fvar\u002Flog\u002Fdpkg.log",[11,24172,10112],{"id":10112},[414,24174,24175,24177,24178,24181],{},[42,24176,12709],{}," Gibt den Inhalt von Dateien aus, verbindet mehrere Dateien und leitet Inhalte weiter. \"cat\" steht für ",[406,24179,24180],{},"concatenate"," (verketten).",[414,24183,24184,6100,24186],{},[42,24185,7941],{},[42,24187,24188,24189,6100,24191],{},"cat ",[4173,24190,12720],{},[4173,24192,15846],{},[16,24194,12780],{"id":24195},"flags-12",[765,24197,24198,24214],{},[768,24199,24200],{},[771,24201,24202,24206,24210],{},[774,24203,24204],{},[42,24205,12791],{},[774,24207,24208],{},[42,24209,12796],{},[774,24211,24212],{},[42,24213,6733],{},[787,24215,24216,24226,24236,24246,24257,24267,24277,24287,24296],{},[771,24217,24218,24220,24223],{},[792,24219,8991],{},[792,24221,24222],{},"--number",[792,24224,24225],{},"Alle Zeilen nummerieren",[771,24227,24228,24230,24233],{},[792,24229,23578],{},[792,24231,24232],{},"--number-nonblank",[792,24234,24235],{},"Nur nicht-leere Zeilen nummerieren (überschreibt -n)",[771,24237,24238,24240,24243],{},[792,24239,22413],{},[792,24241,24242],{},"--show-all",[792,24244,24245],{},"Alles anzeigen: entspricht -vET (Tabs als ^I, Zeilenende als $)",[771,24247,24248,24251,24254],{},[792,24249,24250],{},"-T",[792,24252,24253],{},"--show-tabs",[792,24255,24256],{},"Tabs als ^I sichtbar machen",[771,24258,24259,24261,24264],{},[792,24260,9030],{},[792,24262,24263],{},"--show-ends",[792,24265,24266],{},"Zeilenenden als $ anzeigen",[771,24268,24269,24271,24274],{},[792,24270,8983],{},[792,24272,24273],{},"--show-nonprinting",[792,24275,24276],{},"Nicht-druckbare Zeichen sichtbar machen",[771,24278,24279,24281,24284],{},[792,24280,6099],{},[792,24282,24283],{},"--squeeze-blank",[792,24285,24286],{},"Mehrere aufeinanderfolgende Leerzeilen zu einer zusammenfassen",[771,24288,24289,24291,24293],{},[792,24290,9216],{},[792,24292,22446],{},[792,24294,24295],{},"Entspricht -vE",[771,24297,24298,24300,24302],{},[792,24299,22443],{},[792,24301,22446],{},[792,24303,24304],{},"Entspricht -vT",[414,24306,24307],{},[42,24308,24309],{},"Umleitungsoperatoren",[765,24311,24312,24324],{},[768,24313,24314],{},[771,24315,24316,24320],{},[774,24317,24318],{},[42,24319,19442],{},[774,24321,24322],{},[42,24323,6733],{},[787,24325,24326,24333,24341,24349],{},[771,24327,24328,24330],{},[792,24329,4789],{},[792,24331,24332],{},"Ausgabe in Datei umleiten (überschreibt!)",[771,24334,24335,24338],{},[792,24336,24337],{},">>",[792,24339,24340],{},"Ausgabe an Datei anhängen",[771,24342,24343,24346],{},[792,24344,24345],{},"\u003C",[792,24347,24348],{},"Eingabe aus Datei lesen",[771,24350,24351,24354],{},[792,24352,24353],{},"\u003C\u003CEOF",[792,24355,24356],{},"Here-Document: mehrzeilige Eingabe direkt im Skript",[16,24358,9925],{"id":24359},"beispiele-14",[11,24361,24363],{"id":24362},"datei-ausgeben","Datei ausgeben",[4647,24365,24367],{"className":4649,"code":24366,"language":4651,"meta":269,"style":269},"cat datei.txt\n\n# Mit Zeilennummern\n\ncat -n datei.txt\n\n# Nur nicht-leere Zeilen nummerieren\n\ncat -b datei.txt\n\n# Tabs und Zeilenenden sichtbar machen (Debugging von Skripten)\n\ncat -A skript.sh\n\n# Leerzeilen zusammenfassen\n\ncat -s datei.txt\n\n# Mehrere Dateien verketten und ausgeben\n\ncat datei1.txt datei2.txt datei3.txt\n\n# Mehrere Dateien zu einer zusammenführen\n\ncat datei1.txt datei2.txt > gesamt.txt\n\n# Ans Ende einer Datei anhängen\n\ncat neue_zeilen.txt >> bestehend.txt\n\n# Neue Datei interaktiv erstellen (Strg+D = EOF)\n\ncat > neue_datei.txt\n\n",[4653,24368,24369,24375,24379,24383,24387,24395,24399,24404,24408,24417,24421,24426,24430,24439,24443,24448,24452,24461,24465,24470,24474,24486,24490,24495,24499,24513,24517,24522,24526,24538,24542,24547,24551],{"__ignoreMap":269},[4173,24370,24371,24373],{"class":4657,"line":4658},[4173,24372,10112],{"class":4661},[4173,24374,8947],{"class":4669},[4173,24376,24377],{"class":4657,"line":270},[4173,24378,4761],{"emptyLinePlaceholder":4760},[4173,24380,24381],{"class":4657,"line":1263},[4173,24382,17667],{"class":4766},[4173,24384,24385],{"class":4657,"line":4770},[4173,24386,4761],{"emptyLinePlaceholder":4760},[4173,24388,24389,24391,24393],{"class":4657,"line":4775},[4173,24390,10112],{"class":4661},[4173,24392,9376],{"class":4665},[4173,24394,8947],{"class":4669},[4173,24396,24397],{"class":4657,"line":6320},[4173,24398,4761],{"emptyLinePlaceholder":4760},[4173,24400,24401],{"class":4657,"line":6325},[4173,24402,24403],{"class":4766},"# Nur nicht-leere Zeilen nummerieren\n",[4173,24405,24406],{"class":4657,"line":6343},[4173,24407,4761],{"emptyLinePlaceholder":4760},[4173,24409,24410,24412,24415],{"class":4657,"line":6348},[4173,24411,10112],{"class":4661},[4173,24413,24414],{"class":4665}," -b",[4173,24416,8947],{"class":4669},[4173,24418,24419],{"class":4657,"line":6457},[4173,24420,4761],{"emptyLinePlaceholder":4760},[4173,24422,24423],{"class":4657,"line":6462},[4173,24424,24425],{"class":4766},"# Tabs und Zeilenenden sichtbar machen (Debugging von Skripten)\n",[4173,24427,24428],{"class":4657,"line":6468},[4173,24429,4761],{"emptyLinePlaceholder":4760},[4173,24431,24432,24434,24437],{"class":4657,"line":6473},[4173,24433,10112],{"class":4661},[4173,24435,24436],{"class":4665}," -A",[4173,24438,14658],{"class":4669},[4173,24440,24441],{"class":4657,"line":6479},[4173,24442,4761],{"emptyLinePlaceholder":4760},[4173,24444,24445],{"class":4657,"line":6503},[4173,24446,24447],{"class":4766},"# Leerzeilen zusammenfassen\n",[4173,24449,24450],{"class":4657,"line":6516},[4173,24451,4761],{"emptyLinePlaceholder":4760},[4173,24453,24454,24456,24459],{"class":4657,"line":6971},[4173,24455,10112],{"class":4661},[4173,24457,24458],{"class":4665}," -s",[4173,24460,8947],{"class":4669},[4173,24462,24463],{"class":4657,"line":10649},[4173,24464,4761],{"emptyLinePlaceholder":4760},[4173,24466,24467],{"class":4657,"line":10654},[4173,24468,24469],{"class":4766},"# Mehrere Dateien verketten und ausgeben\n",[4173,24471,24472],{"class":4657,"line":10659},[4173,24473,4761],{"emptyLinePlaceholder":4760},[4173,24475,24476,24478,24480,24483],{"class":4657,"line":10664},[4173,24477,10112],{"class":4661},[4173,24479,16596],{"class":4669},[4173,24481,24482],{"class":4669}," datei2.txt",[4173,24484,24485],{"class":4669}," datei3.txt\n",[4173,24487,24488],{"class":4657,"line":10676},[4173,24489,4761],{"emptyLinePlaceholder":4760},[4173,24491,24492],{"class":4657,"line":10681},[4173,24493,24494],{"class":4766},"# Mehrere Dateien zu einer zusammenführen\n",[4173,24496,24497],{"class":4657,"line":10702},[4173,24498,4761],{"emptyLinePlaceholder":4760},[4173,24500,24501,24503,24505,24507,24510],{"class":4657,"line":10707},[4173,24502,10112],{"class":4661},[4173,24504,16596],{"class":4669},[4173,24506,24482],{"class":4669},[4173,24508,24509],{"class":4788}," >",[4173,24511,24512],{"class":4669}," gesamt.txt\n",[4173,24514,24515],{"class":4657,"line":10712},[4173,24516,4761],{"emptyLinePlaceholder":4760},[4173,24518,24519],{"class":4657,"line":10717},[4173,24520,24521],{"class":4766},"# Ans Ende einer Datei anhängen\n",[4173,24523,24524],{"class":4657,"line":10727},[4173,24525,4761],{"emptyLinePlaceholder":4760},[4173,24527,24528,24530,24533,24535],{"class":4657,"line":10732},[4173,24529,10112],{"class":4661},[4173,24531,24532],{"class":4669}," neue_zeilen.txt",[4173,24534,13489],{"class":4788},[4173,24536,24537],{"class":4669}," bestehend.txt\n",[4173,24539,24540],{"class":4657,"line":10737},[4173,24541,4761],{"emptyLinePlaceholder":4760},[4173,24543,24544],{"class":4657,"line":10742},[4173,24545,24546],{"class":4766},"# Neue Datei interaktiv erstellen (Strg+D = EOF)\n",[4173,24548,24549],{"class":4657,"line":10752},[4173,24550,4761],{"emptyLinePlaceholder":4760},[4173,24552,24553,24555,24557],{"class":4657,"line":10757},[4173,24554,10112],{"class":4661},[4173,24556,24509],{"class":4788},[4173,24558,24559],{"class":4669}," neue_datei.txt\n",[414,24561,16710],{},[414,24563,16713],{},[414,24565,24566],{},"^D",[11,24568,24570],{"id":24569},"here-document-mehrzeiligen-text-direkt-in-datei-schreiben","Here-Document – mehrzeiligen Text direkt in Datei schreiben",[4647,24572,24574],{"className":4649,"code":24573,"language":4651,"meta":269,"style":269},"cat > konfiguration.conf \u003C\u003C EOF\n\n# Automatisch generiert\n\nhost=localhost\n\nport=8080\n\ndebug=false\n\n",[4653,24575,24576,24591,24595,24600,24604,24609,24613,24618,24622],{"__ignoreMap":269},[4173,24577,24578,24580,24582,24585,24588],{"class":4657,"line":4658},[4173,24579,10112],{"class":4661},[4173,24581,24509],{"class":4788},[4173,24583,24584],{"class":4669}," konfiguration.conf",[4173,24586,24587],{"class":4788}," \u003C\u003C",[4173,24589,24590],{"class":4669}," EOF\n",[4173,24592,24593],{"class":4657,"line":270},[4173,24594,4761],{"emptyLinePlaceholder":4760},[4173,24596,24597],{"class":4657,"line":1263},[4173,24598,24599],{"class":4669},"# Automatisch generiert\n",[4173,24601,24602],{"class":4657,"line":4770},[4173,24603,4761],{"emptyLinePlaceholder":4760},[4173,24605,24606],{"class":4657,"line":4775},[4173,24607,24608],{"class":4669},"host=localhost\n",[4173,24610,24611],{"class":4657,"line":6320},[4173,24612,4761],{"emptyLinePlaceholder":4760},[4173,24614,24615],{"class":4657,"line":6325},[4173,24616,24617],{"class":4669},"port=8080\n",[4173,24619,24620],{"class":4657,"line":6343},[4173,24621,4761],{"emptyLinePlaceholder":4760},[4173,24623,24624],{"class":4657,"line":6348},[4173,24625,24626],{"class":4669},"debug=false\n",[414,24628,24629],{},"EOF",[11,24631,24633],{"id":24632},"leere-datei-erstellen","Leere Datei erstellen",[4647,24635,24637],{"className":4649,"code":24636,"language":4651,"meta":269,"style":269},"cat \u002Fdev\u002Fnull > datei.txt\n\n# Binäre Dateien verketten (z.B. Split-Archive)\n\ncat archiv.part1 archiv.part2 archiv.part3 > archiv.tar.gz\n\n# Inhalt einer Datei in eine Variable einlesen\n\nINHALT=$(cat konfiguration.conf)\n\n",[4653,24638,24639,24650,24654,24659,24663,24681,24685,24690,24694],{"__ignoreMap":269},[4173,24640,24641,24643,24646,24648],{"class":4657,"line":4658},[4173,24642,10112],{"class":4661},[4173,24644,24645],{"class":4669}," \u002Fdev\u002Fnull",[4173,24647,24509],{"class":4788},[4173,24649,8947],{"class":4669},[4173,24651,24652],{"class":4657,"line":270},[4173,24653,4761],{"emptyLinePlaceholder":4760},[4173,24655,24656],{"class":4657,"line":1263},[4173,24657,24658],{"class":4766},"# Binäre Dateien verketten (z.B. Split-Archive)\n",[4173,24660,24661],{"class":4657,"line":4770},[4173,24662,4761],{"emptyLinePlaceholder":4760},[4173,24664,24665,24667,24670,24673,24676,24678],{"class":4657,"line":4775},[4173,24666,10112],{"class":4661},[4173,24668,24669],{"class":4669}," archiv.part1",[4173,24671,24672],{"class":4669}," archiv.part2",[4173,24674,24675],{"class":4669}," archiv.part3",[4173,24677,24509],{"class":4788},[4173,24679,24680],{"class":4669}," archiv.tar.gz\n",[4173,24682,24683],{"class":4657,"line":6320},[4173,24684,4761],{"emptyLinePlaceholder":4760},[4173,24686,24687],{"class":4657,"line":6325},[4173,24688,24689],{"class":4766},"# Inhalt einer Datei in eine Variable einlesen\n",[4173,24691,24692],{"class":4657,"line":6343},[4173,24693,4761],{"emptyLinePlaceholder":4760},[4173,24695,24696,24699,24701,24703,24705,24707],{"class":4657,"line":6348},[4173,24697,24698],{"class":4784},"INHALT",[4173,24700,6387],{"class":4788},[4173,24702,10249],{"class":4784},[4173,24704,10112],{"class":4661},[4173,24706,24584],{"class":4669},[4173,24708,6402],{"class":4784},[16,24710,12997],{"id":24711},"ausgabe-14",[11,24713,24715],{"id":24714},"cat-n-dateitxt","cat -n datei.txt",[414,24717,22326],{},[414,24719,22329],{},[414,24721,14318],{},[414,24723,24724],{},"4 Zeile vier",[11,24726,24728],{"id":24727},"cat-b-dateitxt-leere-zeile-bekommt-keine-nummer","cat -b datei.txt (leere Zeile bekommt keine Nummer)",[414,24730,22326],{},[414,24732,22329],{},[414,24734,24735],{},"3 Zeile vier",[11,24737,24739],{"id":24738},"cat-a-skriptsh","cat -A skript.sh",[4647,24741,24743],{"className":4649,"code":24742,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash$\n\necho \"Hallo\"$\n\n^Ieingerückter Text$\n\n# ^I = Tab-Zeichen, $ = Zeilenende\n\n# cat -s datei.txt (Leerzeilen zusammengefasst)\n\n",[4653,24744,24745,24750,24754,24764,24768,24778,24782,24787,24791],{"__ignoreMap":269},[4173,24746,24747],{"class":4657,"line":4658},[4173,24748,24749],{"class":4766},"#!\u002Fbin\u002Fbash$\n",[4173,24751,24752],{"class":4657,"line":270},[4173,24753,4761],{"emptyLinePlaceholder":4760},[4173,24755,24756,24758,24761],{"class":4657,"line":1263},[4173,24757,6309],{"class":4665},[4173,24759,24760],{"class":4669}," \"Hallo\"",[4173,24762,24763],{"class":4784},"$\n",[4173,24765,24766],{"class":4657,"line":4770},[4173,24767,4761],{"emptyLinePlaceholder":4760},[4173,24769,24770,24773,24776],{"class":4657,"line":4775},[4173,24771,24772],{"class":4661},"^Ieingerückter",[4173,24774,24775],{"class":4669}," Text",[4173,24777,24763],{"class":4784},[4173,24779,24780],{"class":4657,"line":6320},[4173,24781,4761],{"emptyLinePlaceholder":4760},[4173,24783,24784],{"class":4657,"line":6325},[4173,24785,24786],{"class":4766},"# ^I = Tab-Zeichen, $ = Zeilenende\n",[4173,24788,24789],{"class":4657,"line":6343},[4173,24790,4761],{"emptyLinePlaceholder":4760},[4173,24792,24793],{"class":4657,"line":6348},[4173,24794,24795],{"class":4766},"# cat -s datei.txt (Leerzeilen zusammengefasst)\n",[414,24797,16710],{},[414,24799,16716],{},[11,24801,24803],{"id":24802},"vorher-waren-3-leerzeilen-zwischen-zeile-1-und-3","(vorher waren 3 Leerzeilen zwischen Zeile 1 und 3)",[11,24805,24806],{"id":24806},"tac",[414,24808,24809,24811,24812,24815],{},[42,24810,12709],{}," Gibt den Inhalt einer Datei in ",[42,24813,24814],{},"umgekehrter Zeilenreihenfolge"," aus. Der Name ist \"cat\" rückwärts geschrieben.",[414,24817,24818,6100,24820],{},[42,24819,7941],{},[42,24821,24822,24823,6100,24825],{},"tac ",[4173,24824,12720],{},[4173,24826,15846],{},[16,24828,12780],{"id":24829},"flags-13",[765,24831,24832,24844],{},[768,24833,24834],{},[771,24835,24836,24840],{},[774,24837,24838],{},[42,24839,12791],{},[774,24841,24842],{},[42,24843,6733],{},[787,24845,24846,24854,24861],{},[771,24847,24848,24851],{},[792,24849,24850],{},"-s TRENNER",[792,24852,24853],{},"Eigenen Datensatz-Trennzeichen verwenden (statt Newline \\n)",[771,24855,24856,24858],{},[792,24857,6103],{},[792,24859,24860],{},"Den Trenner als regulären Ausdruck interpretieren",[771,24862,24863,24865],{},[792,24864,23578],{},[792,24866,24867],{},"Trenner wird an den Anfang statt an das Ende gestellt",[16,24869,9925],{"id":24870},"beispiele-15",[11,24872,24874],{"id":24873},"datei-umgekehrt-ausgeben","Datei umgekehrt ausgeben",[414,24876,24877],{},"tac datei.txt",[11,24879,24881],{"id":24880},"log-datei-umgekehrt-anzeigen-neueste-einträge-zuerst","Log-Datei umgekehrt anzeigen: neueste Einträge zuerst",[4647,24883,24885],{"className":4649,"code":24884,"language":4651,"meta":269,"style":269},"tac \u002Fvar\u002Flog\u002Fsyslog | less\n\n# Nur die letzten 20 Einträge (von hinten)\n\ntac \u002Fvar\u002Flog\u002Fauth.log | head -20\n\n# Mit grep kombinieren: letzten Fehler suchen\n\ntac \u002Fvar\u002Flog\u002Fsyslog | grep -m 1 \"ERROR\"\n\n# History umgekehrt anzeigen (letzter Befehl zuerst)\n\nhistory | tac | head -10\n\n# Eigener Trenner (z.B. Datensätze durch \"---\" getrennt)\n\ntac -s \"---\" mehrteilig.txt\n\n# Zeilen umkehren und mit Zeilennummern versehen\n\ntac datei.txt | cat -n\n\n",[4653,24886,24887,24898,24902,24907,24911,24925,24929,24934,24938,24955,24959,24964,24968,24984,24988,24993,24997,25009,25013,25018,25022],{"__ignoreMap":269},[4173,24888,24889,24891,24893,24895],{"class":4657,"line":4658},[4173,24890,24806],{"class":4661},[4173,24892,16956],{"class":4669},[4173,24894,8928],{"class":4788},[4173,24896,24897],{"class":4661}," less\n",[4173,24899,24900],{"class":4657,"line":270},[4173,24901,4761],{"emptyLinePlaceholder":4760},[4173,24903,24904],{"class":4657,"line":1263},[4173,24905,24906],{"class":4766},"# Nur die letzten 20 Einträge (von hinten)\n",[4173,24908,24909],{"class":4657,"line":4770},[4173,24910,4761],{"emptyLinePlaceholder":4760},[4173,24912,24913,24915,24918,24920,24922],{"class":4657,"line":4775},[4173,24914,24806],{"class":4661},[4173,24916,24917],{"class":4669}," \u002Fvar\u002Flog\u002Fauth.log",[4173,24919,8928],{"class":4788},[4173,24921,10445],{"class":4661},[4173,24923,24924],{"class":4665}," -20\n",[4173,24926,24927],{"class":4657,"line":6320},[4173,24928,4761],{"emptyLinePlaceholder":4760},[4173,24930,24931],{"class":4657,"line":6325},[4173,24932,24933],{"class":4766},"# Mit grep kombinieren: letzten Fehler suchen\n",[4173,24935,24936],{"class":4657,"line":6343},[4173,24937,4761],{"emptyLinePlaceholder":4760},[4173,24939,24940,24942,24944,24946,24948,24950,24952],{"class":4657,"line":6348},[4173,24941,24806],{"class":4661},[4173,24943,16956],{"class":4669},[4173,24945,8928],{"class":4788},[4173,24947,8931],{"class":4661},[4173,24949,16027],{"class":4665},[4173,24951,10264],{"class":4665},[4173,24953,24954],{"class":4669}," \"ERROR\"\n",[4173,24956,24957],{"class":4657,"line":6457},[4173,24958,4761],{"emptyLinePlaceholder":4760},[4173,24960,24961],{"class":4657,"line":6462},[4173,24962,24963],{"class":4766},"# History umgekehrt anzeigen (letzter Befehl zuerst)\n",[4173,24965,24966],{"class":4657,"line":6468},[4173,24967,4761],{"emptyLinePlaceholder":4760},[4173,24969,24970,24973,24975,24978,24980,24982],{"class":4657,"line":6473},[4173,24971,24972],{"class":4665},"history",[4173,24974,8928],{"class":4788},[4173,24976,24977],{"class":4661}," tac",[4173,24979,8928],{"class":4788},[4173,24981,10445],{"class":4661},[4173,24983,23949],{"class":4665},[4173,24985,24986],{"class":4657,"line":6479},[4173,24987,4761],{"emptyLinePlaceholder":4760},[4173,24989,24990],{"class":4657,"line":6503},[4173,24991,24992],{"class":4766},"# Eigener Trenner (z.B. Datensätze durch \"---\" getrennt)\n",[4173,24994,24995],{"class":4657,"line":6516},[4173,24996,4761],{"emptyLinePlaceholder":4760},[4173,24998,24999,25001,25003,25006],{"class":4657,"line":6971},[4173,25000,24806],{"class":4661},[4173,25002,24458],{"class":4665},[4173,25004,25005],{"class":4669}," \"---\"",[4173,25007,25008],{"class":4669}," mehrteilig.txt\n",[4173,25010,25011],{"class":4657,"line":10649},[4173,25012,4761],{"emptyLinePlaceholder":4760},[4173,25014,25015],{"class":4657,"line":10654},[4173,25016,25017],{"class":4766},"# Zeilen umkehren und mit Zeilennummern versehen\n",[4173,25019,25020],{"class":4657,"line":10659},[4173,25021,4761],{"emptyLinePlaceholder":4760},[4173,25023,25024,25026,25028,25030,25033],{"class":4657,"line":10664},[4173,25025,24806],{"class":4661},[4173,25027,21198],{"class":4669},[4173,25029,8928],{"class":4788},[4173,25031,25032],{"class":4661}," cat",[4173,25034,25035],{"class":4665}," -n\n",[16,25037,12997],{"id":25038},"ausgabe-15",[11,25040,25042],{"id":25041},"cat-dateitxt","cat datei.txt",[414,25044,16710],{},[414,25046,16713],{},[414,25048,16716],{},[414,25050,25051],{},"Zeile 4",[11,25053,24877],{"id":25054},"tac-dateitxt",[414,25056,25051],{},[414,25058,16716],{},[414,25060,16713],{},[414,25062,16710],{},[11,25064,25066],{"id":25065},"tac-varlogauthlog-grep-m-1-failed","tac \u002Fvar\u002Flog\u002Fauth.log | grep -m 1 \"Failed\"",[414,25068,25069,25070,25072],{},"Apr 29 09:45:01 server sshd",[4173,25071,17147],{},": Failed password for invalid user admin from 10.0.0.5",[11,25074,25076],{"id":25075},"letzter-fehlgeschlagener-login-versuch","\u003C- letzter fehlgeschlagener Login-Versuch",[11,25078,25079],{"id":25079},"passwd",[414,25081,25082,25084,25085,25088,25089,25091,25092,25094],{},[42,25083,12709],{}," Verwaltet Benutzerpasswörter. Normale Benutzer können ihr ",[42,25086,25087],{},"eigenes"," Passwort ändern; root kann ",[42,25090,8277],{}," Passwörter und Konto-Ablaufzeiten verwalten. Das Passwort wird verschlüsselt in ",[42,25093,14976],{}," gespeichert.",[414,25096,25097,6100,25099],{},[42,25098,7941],{},[42,25100,25101,25102,6100,25104],{},"passwd ",[4173,25103,12720],{},[4173,25105,12723],{},[16,25107,12780],{"id":25108},"flags-14",[765,25110,25111,25127],{},[768,25112,25113],{},[771,25114,25115,25119,25123],{},[774,25116,25117],{},[42,25118,12791],{},[774,25120,25121],{},[42,25122,12796],{},[774,25124,25125],{},[42,25126,6733],{},[787,25128,25129,25139,25149,25159,25169,25180,25191,25202,25213,25223],{},[771,25130,25131,25133,25136],{},[792,25132,9006],{},[792,25134,25135],{},"--lock",[792,25137,25138],{},"Konto sperren – fügt ! vor den Hash in \u002Fetc\u002Fshadow ein (Login mit Passwort nicht mehr möglich, SSH-Key-Login aber weiterhin!)",[771,25140,25141,25143,25146],{},[792,25142,12807],{},[792,25144,25145],{},"--unlock",[792,25147,25148],{},"Konto entsperren – entfernt ! aus dem Hash",[771,25150,25151,25153,25156],{},[792,25152,22493],{},[792,25154,25155],{},"--delete",[792,25157,25158],{},"Passwort löschen (leeres Passwort = unsicher!)",[771,25160,25161,25163,25166],{},[792,25162,9216],{},[792,25164,25165],{},"--expire",[792,25167,25168],{},"Passwort sofort ablaufen lassen – Benutzer muss es beim nächsten Login ändern",[771,25170,25171,25174,25177],{},[792,25172,25173],{},"-n TAGE",[792,25175,25176],{},"--minimum=TAGE",[792,25178,25179],{},"Mindestanzahl Tage bis Passwort geändert werden darf (0 = jederzeit)",[771,25181,25182,25185,25188],{},[792,25183,25184],{},"-x TAGE",[792,25186,25187],{},"--maximum=TAGE",[792,25189,25190],{},"Maximale Gültigkeitsdauer in Tagen (99999 = unbegrenzt)",[771,25192,25193,25196,25199],{},[792,25194,25195],{},"-w TAGE",[792,25197,25198],{},"--warning=TAGE",[792,25200,25201],{},"Warnung N Tage vor Ablauf",[771,25203,25204,25207,25210],{},[792,25205,25206],{},"-i TAGE",[792,25208,25209],{},"--inactive=TAGE",[792,25211,25212],{},"Konto wird N Tage nach Ablauf deaktiviert",[771,25214,25215,25217,25220],{},[792,25216,13268],{},[792,25218,25219],{},"--status",[792,25221,25222],{},"Passwortstatus anzeigen",[771,25224,25225,25228,25230],{},[792,25226,25227],{},"--stdin",[792,25229,22446],{},[792,25231,25232],{},"Passwort von Standardeingabe lesen (nicht auf allen Systemen verfügbar)",[414,25234,25235],{},[42,25236,25237],{},"Status-Ausgabe (passwd -S)",[414,25239,25240,25241,25243],{},"BENUTZER STATUS DATUM MIN MAX WARN INAKTIV",[7135,25242],{},"\nalice P 04\u002F29\u002F2026 0 99999 7 -1",[414,25245,25246],{},"Status-Codes:",[4647,25248,25250],{"className":4649,"code":25249,"language":4651,"meta":269,"style":269},"P = Password (Passwort gesetzt)\nL = Locked (Konto gesperrt)\nNP = No Password (kein Passwort)\n\n",[4653,25251,25252,25269,25287],{"__ignoreMap":269},[4173,25253,25254,25256,25258,25261,25264,25267],{"class":4657,"line":4658},[4173,25255,20563],{"class":4661},[4173,25257,15169],{"class":4669},[4173,25259,25260],{"class":4669}," Password",[4173,25262,25263],{"class":4784}," (Passwort ",[4173,25265,25266],{"class":4669},"gesetzt",[4173,25268,6402],{"class":4784},[4173,25270,25271,25274,25276,25279,25282,25285],{"class":4657,"line":270},[4173,25272,25273],{"class":4661},"L",[4173,25275,15169],{"class":4669},[4173,25277,25278],{"class":4669}," Locked",[4173,25280,25281],{"class":4784}," (Konto ",[4173,25283,25284],{"class":4669},"gesperrt",[4173,25286,6402],{"class":4784},[4173,25288,25289,25292,25294,25297,25299,25302,25304],{"class":4657,"line":1263},[4173,25290,25291],{"class":4661},"NP",[4173,25293,15169],{"class":4669},[4173,25295,25296],{"class":4669}," No",[4173,25298,25260],{"class":4669},[4173,25300,25301],{"class":4784}," (kein ",[4173,25303,3899],{"class":4669},[4173,25305,6402],{"class":4784},[414,25307,25308],{},[42,25309,25310],{},"Zusammenhang mit chage",[414,25312,25313,25316],{},[42,25314,25315],{},"chage"," bietet erweiterte Kontrolle über Passwort-Ablauf:",[4647,25318,25320],{"className":4649,"code":25319,"language":4651,"meta":269,"style":269},"chage -l alice # Ablaufinformationen anzeigen\nchage -M 90 alice # Maximale Gültigkeit 90 Tage\nchage -E 2026-12-31 alice # Konto-Ablaufdatum setzen\nchage -d 0 alice # Passwort sofort ablaufen lassen\n\n",[4653,25321,25322,25333,25348,25362],{"__ignoreMap":269},[4173,25323,25324,25326,25328,25330],{"class":4657,"line":4658},[4173,25325,25315],{"class":4661},[4173,25327,10277],{"class":4665},[4173,25329,12983],{"class":4669},[4173,25331,25332],{"class":4766}," # Ablaufinformationen anzeigen\n",[4173,25334,25335,25337,25340,25343,25345],{"class":4657,"line":270},[4173,25336,25315],{"class":4661},[4173,25338,25339],{"class":4665}," -M",[4173,25341,25342],{"class":4665}," 90",[4173,25344,12983],{"class":4669},[4173,25346,25347],{"class":4766}," # Maximale Gültigkeit 90 Tage\n",[4173,25349,25350,25352,25354,25357,25359],{"class":4657,"line":1263},[4173,25351,25315],{"class":4661},[4173,25353,17788],{"class":4665},[4173,25355,25356],{"class":4669}," 2026-12-31",[4173,25358,12983],{"class":4669},[4173,25360,25361],{"class":4766}," # Konto-Ablaufdatum setzen\n",[4173,25363,25364,25366,25368,25371,25373],{"class":4657,"line":4770},[4173,25365,25315],{"class":4661},[4173,25367,8048],{"class":4665},[4173,25369,25370],{"class":4665}," 0",[4173,25372,12983],{"class":4669},[4173,25374,25375],{"class":4766}," # Passwort sofort ablaufen lassen\n",[16,25377,9925],{"id":25378},"beispiele-16",[11,25380,25382],{"id":25381},"eigenes-passwort-ändern-interaktiv","Eigenes Passwort ändern (interaktiv)",[414,25384,25079],{},[11,25386,25388],{"id":25387},"passwort-eines-benutzers-ändern-als-root","Passwort eines Benutzers ändern (als root)",[414,25390,25391],{},"passwd alice",[11,25393,25395],{"id":25394},"konto-sperren-root","Konto sperren (root)",[4647,25397,25399],{"className":4649,"code":25398,"language":4651,"meta":269,"style":269},"passwd -l alice\n\n# Konto entsperren\n\npasswd -u alice\n\n# Passwort sofort ablaufen lassen\n\npasswd -e alice\n\n# Passwortstatus anzeigen\n\npasswd -S alice\n\n# Minimale Gültigkeitsdauer setzen (7 Tage)\n\npasswd -n 7 alice\n\n# Maximale Gültigkeitsdauer setzen (90 Tage)\n\npasswd -x 90 alice\n\n# 14 Tage vorher warnen\n\npasswd -w 14 alice\n\n# 7 Tage nach Ablauf Konto deaktivieren\n\npasswd -i 7 alice\n\n# Passwort nicht-interaktiv setzen (sicher via chpasswd)\n\necho \"alice:neuespasswort\" | chpasswd\n\n",[4653,25400,25401,25410,25414,25419,25423,25431,25435,25440,25444,25452,25456,25461,25465,25474,25478,25483,25487,25498,25502,25507,25511,25522,25526,25531,25535,25546,25550,25555,25559,25569,25573,25578,25582],{"__ignoreMap":269},[4173,25402,25403,25405,25407],{"class":4657,"line":4658},[4173,25404,25079],{"class":4661},[4173,25406,10277],{"class":4665},[4173,25408,25409],{"class":4669}," alice\n",[4173,25411,25412],{"class":4657,"line":270},[4173,25413,4761],{"emptyLinePlaceholder":4760},[4173,25415,25416],{"class":4657,"line":1263},[4173,25417,25418],{"class":4766},"# Konto entsperren\n",[4173,25420,25421],{"class":4657,"line":4770},[4173,25422,4761],{"emptyLinePlaceholder":4760},[4173,25424,25425,25427,25429],{"class":4657,"line":4775},[4173,25426,25079],{"class":4661},[4173,25428,23851],{"class":4665},[4173,25430,25409],{"class":4669},[4173,25432,25433],{"class":4657,"line":6320},[4173,25434,4761],{"emptyLinePlaceholder":4760},[4173,25436,25437],{"class":4657,"line":6325},[4173,25438,25439],{"class":4766},"# Passwort sofort ablaufen lassen\n",[4173,25441,25442],{"class":4657,"line":6343},[4173,25443,4761],{"emptyLinePlaceholder":4760},[4173,25445,25446,25448,25450],{"class":4657,"line":6348},[4173,25447,25079],{"class":4661},[4173,25449,21075],{"class":4665},[4173,25451,25409],{"class":4669},[4173,25453,25454],{"class":4657,"line":6457},[4173,25455,4761],{"emptyLinePlaceholder":4760},[4173,25457,25458],{"class":4657,"line":6462},[4173,25459,25460],{"class":4766},"# Passwortstatus anzeigen\n",[4173,25462,25463],{"class":4657,"line":6468},[4173,25464,4761],{"emptyLinePlaceholder":4760},[4173,25466,25467,25469,25472],{"class":4657,"line":6473},[4173,25468,25079],{"class":4661},[4173,25470,25471],{"class":4665}," -S",[4173,25473,25409],{"class":4669},[4173,25475,25476],{"class":4657,"line":6479},[4173,25477,4761],{"emptyLinePlaceholder":4760},[4173,25479,25480],{"class":4657,"line":6503},[4173,25481,25482],{"class":4766},"# Minimale Gültigkeitsdauer setzen (7 Tage)\n",[4173,25484,25485],{"class":4657,"line":6516},[4173,25486,4761],{"emptyLinePlaceholder":4760},[4173,25488,25489,25491,25493,25496],{"class":4657,"line":6971},[4173,25490,25079],{"class":4661},[4173,25492,9376],{"class":4665},[4173,25494,25495],{"class":4665}," 7",[4173,25497,25409],{"class":4669},[4173,25499,25500],{"class":4657,"line":10649},[4173,25501,4761],{"emptyLinePlaceholder":4760},[4173,25503,25504],{"class":4657,"line":10654},[4173,25505,25506],{"class":4766},"# Maximale Gültigkeitsdauer setzen (90 Tage)\n",[4173,25508,25509],{"class":4657,"line":10659},[4173,25510,4761],{"emptyLinePlaceholder":4760},[4173,25512,25513,25515,25518,25520],{"class":4657,"line":10664},[4173,25514,25079],{"class":4661},[4173,25516,25517],{"class":4665}," -x",[4173,25519,25342],{"class":4665},[4173,25521,25409],{"class":4669},[4173,25523,25524],{"class":4657,"line":10676},[4173,25525,4761],{"emptyLinePlaceholder":4760},[4173,25527,25528],{"class":4657,"line":10681},[4173,25529,25530],{"class":4766},"# 14 Tage vorher warnen\n",[4173,25532,25533],{"class":4657,"line":10702},[4173,25534,4761],{"emptyLinePlaceholder":4760},[4173,25536,25537,25539,25541,25544],{"class":4657,"line":10707},[4173,25538,25079],{"class":4661},[4173,25540,12990],{"class":4665},[4173,25542,25543],{"class":4665}," 14",[4173,25545,25409],{"class":4669},[4173,25547,25548],{"class":4657,"line":10712},[4173,25549,4761],{"emptyLinePlaceholder":4760},[4173,25551,25552],{"class":4657,"line":10717},[4173,25553,25554],{"class":4766},"# 7 Tage nach Ablauf Konto deaktivieren\n",[4173,25556,25557],{"class":4657,"line":10727},[4173,25558,4761],{"emptyLinePlaceholder":4760},[4173,25560,25561,25563,25565,25567],{"class":4657,"line":10732},[4173,25562,25079],{"class":4661},[4173,25564,8941],{"class":4665},[4173,25566,25495],{"class":4665},[4173,25568,25409],{"class":4669},[4173,25570,25571],{"class":4657,"line":10737},[4173,25572,4761],{"emptyLinePlaceholder":4760},[4173,25574,25575],{"class":4657,"line":10742},[4173,25576,25577],{"class":4766},"# Passwort nicht-interaktiv setzen (sicher via chpasswd)\n",[4173,25579,25580],{"class":4657,"line":10752},[4173,25581,4761],{"emptyLinePlaceholder":4760},[4173,25583,25584,25586,25589,25591],{"class":4657,"line":10757},[4173,25585,6309],{"class":4665},[4173,25587,25588],{"class":4669}," \"alice:neuespasswort\"",[4173,25590,8928],{"class":4788},[4173,25592,25593],{"class":4661}," chpasswd\n",[16,25595,12997],{"id":25596},"ausgabe-16",[11,25598,25391],{"id":25599},"passwd-alice",[414,25601,25602],{},"Neues Passwort:",[414,25604,25605],{},"Neues Passwort wiederholen:",[414,25607,25608],{},"passwd: Passwort erfolgreich aktualisiert",[11,25610,25612],{"id":25611},"passwd-s-alice","passwd -S alice",[414,25614,25615],{},"alice P 04\u002F29\u002F2026 7 90 14 7",[11,25617,25619],{"id":25618},"_7-tage-inaktivität-bis-deaktivierung","| | | | | +-- 7 Tage Inaktivität bis Deaktivierung",[11,25621,25623],{"id":25622},"_14-tage-warnung-vor-ablauf","| | | | +-- 14 Tage Warnung vor Ablauf",[11,25625,25627],{"id":25626},"_90-tage-max-gültigkeit","| | | +-- 90 Tage max. Gültigkeit",[11,25629,25631],{"id":25630},"_7-tage-mindestgültigkeit","| | +-- 7 Tage Mindestgültigkeit",[11,25633,25635],{"id":25634},"datum-der-letzten-änderung","| +-- Datum der letzten Änderung",[11,25637,25639],{"id":25638},"p-passwort-gesetzt","+-- P = Passwort gesetzt",[11,25641,25643],{"id":25642},"passwd-l-alice","passwd -l alice",[414,25645,25646],{},"passwd: Passwort für alice gesperrt.",[11,25648,25650],{"id":25649},"sudo-grep-alice-etcshadow-cut-d-f12","sudo grep alice \u002Fetc\u002Fshadow | cut -d: -f1,2",[414,25652,25653],{},"alice:!$6$hash... \u003C- ! vor dem Hash = gesperrt",[11,25655,11164],{"id":11164},[414,25657,25658,25660,25661,25663],{},[42,25659,12709],{}," Das Shell-Built-in ",[42,25662,11164],{}," hat zwei Hauptfunktionen:",[318,25665,25666,25678],{},[24,25667,25668,25671,25672,25674,25675,25677],{},[42,25669,25670],{},"Shell-Optionen setzen"," mit ",[42,25673,4778],{}," (aktivieren) oder ",[42,25676,14419],{}," (deaktivieren)",[24,25679,25680,4171,25683,8629,25685,25687],{},[42,25681,25682],{},"Positionsparameter",[42,25684,9887],{},[42,25686,9895],{},", ...) neu setzen",[414,25689,25690,25692,25693,25696],{},[42,25691,11164],{}," ist ein ",[42,25694,25695],{},"Built-in der Shell"," (bash, sh) – kein externes Programm. Es gilt für den aktuellen Shell-Prozess und alle daraus gestarteten Unterprozesse.",[414,25698,25699],{},[42,25700,7941],{},[414,25702,25703,25704,6100,25706],{},"set ",[4173,25705,12720],{},[4173,25707,25708],{},"ARGUMENTE",[4647,25710,25712],{"className":4649,"code":25711,"language":4651,"meta":269,"style":269},"set -o OPTIONSNAME \u003C- langer Optionsname aktivieren\nset +o OPTIONSNAME \u003C- Option deaktivieren\n\n",[4653,25713,25714,25736],{"__ignoreMap":269},[4173,25715,25716,25718,25720,25723,25725,25727,25730,25733],{"class":4657,"line":4658},[4173,25717,11164],{"class":4665},[4173,25719,18857],{"class":4665},[4173,25721,25722],{"class":4669}," OPTIONSNAME",[4173,25724,6907],{"class":4788},[4173,25726,4778],{"class":4669},[4173,25728,25729],{"class":4669}," langer",[4173,25731,25732],{"class":4669}," Optionsname",[4173,25734,25735],{"class":4669}," aktivieren\n",[4173,25737,25738,25740,25743,25745,25747,25749,25752],{"class":4657,"line":270},[4173,25739,11164],{"class":4665},[4173,25741,25742],{"class":4669}," +o",[4173,25744,25722],{"class":4669},[4173,25746,6907],{"class":4788},[4173,25748,4778],{"class":4669},[4173,25750,25751],{"class":4669}," Option",[4173,25753,25754],{"class":4669}," deaktivieren\n",[414,25756,25757,25762,25763,6100,25768,25771,25772,6100,25777],{},[406,25758,25759],{},[42,25760,25761],{},"Merke:","***-***",[406,25764,25765],{},[42,25766,25767],{},"aktiviert",[406,25769,25770],{},"eine Option,"," ***+***",[406,25773,25774],{},[42,25775,25776],{},"deaktiviert",[406,25778,25779],{},"sie – das ist umgekehrt vom Intuitiven!",[16,25781,25783],{"id":25782},"wichtige-optionen-kurzform-langform","Wichtige Optionen (Kurzform \u002F Langform)",[765,25785,25786,25804],{},[768,25787,25788],{},[771,25789,25790,25795,25800],{},[774,25791,25792],{},[42,25793,25794],{},"Kurzform",[774,25796,25797],{},[42,25798,25799],{},"Langform (-o)",[774,25801,25802],{},[42,25803,6733],{},[787,25805,25806,25816,25826,25836,25846,25856,25869,25879,25889,25899,25909,25919,25929,25939,25949,25959],{},[771,25807,25808,25810,25813],{},[792,25809,9216],{},[792,25811,25812],{},"errexit",[792,25814,25815],{},"Skript sofort beenden wenn ein Befehl fehlschlägt (Exit-Code != 0)",[771,25817,25818,25820,25823],{},[792,25819,12807],{},[792,25821,25822],{},"nounset",[792,25824,25825],{},"Fehler bei nicht gesetzten Variablen statt leerem String",[771,25827,25828,25830,25833],{},[792,25829,17404],{},[792,25831,25832],{},"xtrace",[792,25834,25835],{},"Jeden Befehl vor Ausführung ausgeben (Debugging)",[771,25837,25838,25840,25843],{},[792,25839,8983],{},[792,25841,25842],{},"verbose",[792,25844,25845],{},"Jede gelesene Eingabezeile ausgeben (vor Substitution)",[771,25847,25848,25850,25853],{},[792,25849,8991],{},[792,25851,25852],{},"noexec",[792,25854,25855],{},"Befehle lesen und auf Syntaxfehler prüfen, aber nicht ausführen",[771,25857,25858,25860,25863],{},[792,25859,10577],{},[792,25861,25862],{},"noglob",[792,25864,25865,25866,25868],{},"Glob-Expansion deaktivieren (*, ?, ",[4173,25867,7778],{}," werden nicht expandiert)",[771,25870,25871,25873,25876],{},[792,25872,23637],{},[792,25874,25875],{},"noclobber",[792,25877,25878],{},"Vorhandene Dateien nicht mit > überschreiben",[771,25880,25881,25883,25886],{},[792,25882,23578],{},[792,25884,25885],{},"notify",[792,25887,25888],{},"Status beendeter Hintergrundprozesse sofort melden",[771,25890,25891,25893,25896],{},[792,25892,13819],{},[792,25894,25895],{},"hashall",[792,25897,25898],{},"Befehlspfade cachen (Standard: aktiviert)",[771,25900,25901,25903,25906],{},[792,25902,15904],{},[792,25904,25905],{},"monitor",[792,25907,25908],{},"Job-Control aktivieren (Standard in interaktiver Shell)",[771,25910,25911,25913,25916],{},[792,25912,22443],{},[792,25914,25915],{},"onecmd",[792,25917,25918],{},"Nach einem Befehl beenden",[771,25920,25921,25923,25926],{},[792,25922,22446],{},[792,25924,25925],{},"pipefail",[792,25927,25928],{},"Pipe schlägt fehl wenn irgendein Befehl in der Pipe fehlschlägt (kein Kurzform!)",[771,25930,25931,25933,25936],{},[792,25932,22446],{},[792,25934,25935],{},"nocaseglob",[792,25937,25938],{},"Glob-Matching ohne Groß-\u002FKleinschreibung",[771,25940,25941,25943,25946],{},[792,25942,22446],{},[792,25944,25945],{},"nullglob",[792,25947,25948],{},"Nicht-passende Globs werden zu leerem String",[771,25950,25951,25953,25956],{},[792,25952,22446],{},[792,25954,25955],{},"extglob",[792,25957,25958],{},"Erweiterte Glob-Muster aktivieren (*(...), +(...), etc.)",[771,25960,25961,25963,25966],{},[792,25962,22446],{},[792,25964,25965],{},"errtrace",[792,25967,25968],{},"-e gilt auch innerhalb von Funktionen",[16,25970,25972],{"id":25971},"die-sichere-skript-präambel","Die \"Sichere Skript-Präambel\"",[4647,25974,25976],{"className":4649,"code":25975,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\nset -euo pipefail\n\n",[4653,25977,25978,25982,25986],{"__ignoreMap":269},[4173,25979,25980],{"class":4657,"line":4658},[4173,25981,6375],{"class":4766},[4173,25983,25984],{"class":4657,"line":270},[4173,25985,4761],{"emptyLinePlaceholder":4760},[4173,25987,25988,25990,25992],{"class":4657,"line":1263},[4173,25989,11164],{"class":4665},[4173,25991,11167],{"class":4665},[4173,25993,11170],{"class":4669},[414,25995,25996,25997,26000],{},"Dies sind die ",[42,25998,25999],{},"drei wichtigsten Optionen"," für robuste Shell-Skripte:",[765,26002,26003,26016],{},[768,26004,26005],{},[771,26006,26007,26011],{},[774,26008,26009],{},[42,26010,8964],{},[774,26012,26013],{},[42,26014,26015],{},"Was sie verhindert",[787,26017,26018,26025,26032],{},[771,26019,26020,26022],{},[792,26021,9216],{},[792,26023,26024],{},"Skript läuft weiter obwohl ein Befehl fehlgeschlagen ist",[771,26026,26027,26029],{},[792,26028,12807],{},[792,26030,26031],{},"Eine nicht gesetzte Variable wird stillschweigend als leer behandelt",[771,26033,26034,26036],{},[792,26035,25925],{},[792,26037,26038],{},"Fehler in der Mitte einer Pipe wird ignoriert",[16,26040,26042],{"id":26041},"positionsparameter-setzen","Positionsparameter setzen",[414,26044,26045],{},"set -- alice bob charlie",[4647,26047,26049],{"className":4649,"code":26048,"language":4651,"meta":269,"style":269},"echo $1 # alice\n\necho $2 # bob\n\necho $3 # charlie\n\necho $@ # alice bob charlie\n\necho $# # 3 (Anzahl)\n\n# \"--\" löst das Problem wenn Argumente mit - beginnen\n\nset -- -n -v datei.txt\n\necho $1 # -n (ohne -- würde das als Option interpretiert)\n\n",[4653,26050,26051,26060,26064,26074,26078,26088,26092,26102,26106,26116,26120,26125,26129,26142,26146],{"__ignoreMap":269},[4173,26052,26053,26055,26057],{"class":4657,"line":4658},[4173,26054,6309],{"class":4665},[4173,26056,7075],{"class":7074},[4173,26058,26059],{"class":4766}," # alice\n",[4173,26061,26062],{"class":4657,"line":270},[4173,26063,4761],{"emptyLinePlaceholder":4760},[4173,26065,26066,26068,26071],{"class":4657,"line":1263},[4173,26067,6309],{"class":4665},[4173,26069,26070],{"class":7074}," $2",[4173,26072,26073],{"class":4766}," # bob\n",[4173,26075,26076],{"class":4657,"line":4770},[4173,26077,4761],{"emptyLinePlaceholder":4760},[4173,26079,26080,26082,26085],{"class":4657,"line":4775},[4173,26081,6309],{"class":4665},[4173,26083,26084],{"class":7074}," $3",[4173,26086,26087],{"class":4766}," # charlie\n",[4173,26089,26090],{"class":4657,"line":6320},[4173,26091,4761],{"emptyLinePlaceholder":4760},[4173,26093,26094,26096,26099],{"class":4657,"line":6325},[4173,26095,6309],{"class":4665},[4173,26097,26098],{"class":7074}," $@",[4173,26100,26101],{"class":4766}," # alice bob charlie\n",[4173,26103,26104],{"class":4657,"line":6343},[4173,26105,4761],{"emptyLinePlaceholder":4760},[4173,26107,26108,26110,26113],{"class":4657,"line":6348},[4173,26109,6309],{"class":4665},[4173,26111,26112],{"class":4665}," $#",[4173,26114,26115],{"class":4766}," # 3 (Anzahl)\n",[4173,26117,26118],{"class":4657,"line":6457},[4173,26119,4761],{"emptyLinePlaceholder":4760},[4173,26121,26122],{"class":4657,"line":6462},[4173,26123,26124],{"class":4766},"# \"--\" löst das Problem wenn Argumente mit - beginnen\n",[4173,26126,26127],{"class":4657,"line":6468},[4173,26128,4761],{"emptyLinePlaceholder":4760},[4173,26130,26131,26133,26136,26138,26140],{"class":4657,"line":6473},[4173,26132,11164],{"class":4665},[4173,26134,26135],{"class":4665}," --",[4173,26137,9376],{"class":4665},[4173,26139,17702],{"class":4665},[4173,26141,8947],{"class":4669},[4173,26143,26144],{"class":4657,"line":6479},[4173,26145,4761],{"emptyLinePlaceholder":4760},[4173,26147,26148,26150,26152],{"class":4657,"line":6503},[4173,26149,6309],{"class":4665},[4173,26151,7075],{"class":7074},[4173,26153,26154],{"class":4766}," # -n (ohne -- würde das als Option interpretiert)\n",[414,26156,26157],{},[42,26158,26159],{},"Aktuelle Einstellungen anzeigen",[11,26161,26163],{"id":26162},"alle-gesetzten-optionen-anzeigen","Alle gesetzten Optionen anzeigen",[4647,26165,26167],{"className":4649,"code":26166,"language":4651,"meta":269,"style":269},"set -o\n\n",[4653,26168,26169],{"__ignoreMap":269},[4173,26170,26171,26173],{"class":4657,"line":4658},[4173,26172,11164],{"class":4665},[4173,26174,26175],{"class":4665}," -o\n",[11,26177,26179],{"id":26178},"alle-variablen-und-funktionen-ausgeben","Alle Variablen und Funktionen ausgeben",[414,26181,11164],{},[11,26183,26185],{"id":26184},"aktive-optionen-als-buchstabenstring-prüfen","Aktive Optionen als Buchstabenstring prüfen",[4647,26187,26189],{"className":4649,"code":26188,"language":4651,"meta":269,"style":269},"echo $-\n\n# Prüfen ob eine bestimmte Option aktiv ist\n\n[[ $- == e ]] && echo \"errexit aktiv\"\n\n",[4653,26190,26191,26198,26202,26207,26211],{"__ignoreMap":269},[4173,26192,26193,26195],{"class":4657,"line":4658},[4173,26194,6309],{"class":4665},[4173,26196,26197],{"class":4665}," $-\n",[4173,26199,26200],{"class":4657,"line":270},[4173,26201,4761],{"emptyLinePlaceholder":4760},[4173,26203,26204],{"class":4657,"line":1263},[4173,26205,26206],{"class":4766},"# Prüfen ob eine bestimmte Option aktiv ist\n",[4173,26208,26209],{"class":4657,"line":4770},[4173,26210,4761],{"emptyLinePlaceholder":4760},[4173,26212,26213,26215,26218,26220,26223,26225],{"class":4657,"line":4775},[4173,26214,11403],{"class":4784},[4173,26216,26217],{"class":4665},"$-",[4173,26219,11494],{"class":4788},[4173,26221,26222],{"class":4784}," e ]] && ",[4173,26224,6309],{"class":4665},[4173,26226,26227],{"class":4669}," \"errexit aktiv\"\n",[16,26229,9925],{"id":26230},"beispiele-17",[11,26232,26234],{"id":26233},"skript-sofort-bei-fehler-beenden","Skript sofort bei Fehler beenden",[4647,26236,26238],{"className":4649,"code":26237,"language":4651,"meta":269,"style":269},"set -e\n\n# Fehler bei ungesetzten Variablen\n\nset -u\n\n# Pipe-Fehler aktivieren\n\nset -o pipefail\n\n# Debugging: jeden Befehl vor Ausführung anzeigen\n\nset -x\n\nls \u002Ftmp\n\nset +x # Debugging wieder deaktivieren\n\n# Syntaxcheck ohne Ausführung\n\nset -n\n\n# Alle drei auf einmal setzen (empfohlene Praxis)\n\nset -euo pipefail\n\n# Glob-Expansion deaktivieren (* als Literal behandeln)\n\nset -f\n\necho .txt # gibt \".txt\" aus – keine Dateinamen\n\nset +f\n\necho *.txt # gibt Dateinamen aus\n\n# Überschreiben mit > verhindern\n\nset -C\n\necho \"test\" > bereits_vorhanden.txt # Fehler: Datei existiert\n\nset +C\n\necho \"test\" > bereits_vorhanden.txt # Erfolgreich\n\n# Positionsparameter neu setzen\n\nset -- eins zwei drei\n\necho \"Anzahl: $#\" # 3\n\necho \"Alle: $@\" # eins zwei drei\n\n# Fehler für einen einzelnen Befehl erlauben (|| true verhindert -e-Abbruch)\n\nbefehl_der_fehlschlagen_kann || true\n\n# Alternative: Fehlerbehandlung mit if (ignoriert -e automatisch)\n\nif ! befehl_der_fehlschlagen_kann; then\n\necho \"Fehler aufgetreten, aber Skript läuft weiter\"\n\nfi\n\n",[4653,26239,26240,26247,26251,26256,26260,26266,26270,26275,26279,26287,26291,26296,26300,26307,26311,26317,26321,26330,26334,26339,26343,26349,26353,26358,26362,26370,26374,26379,26383,26389,26393,26403,26407,26414,26418,26430,26434,26439,26443,26450,26454,26468,26472,26479,26483,26496,26500,26505,26509,26524,26528,26542,26546,26560,26564,26569,26573,26583,26587,26592,26596,26609,26613,26620,26624],{"__ignoreMap":269},[4173,26241,26242,26244],{"class":4657,"line":4658},[4173,26243,11164],{"class":4665},[4173,26245,26246],{"class":4665}," -e\n",[4173,26248,26249],{"class":4657,"line":270},[4173,26250,4761],{"emptyLinePlaceholder":4760},[4173,26252,26253],{"class":4657,"line":1263},[4173,26254,26255],{"class":4766},"# Fehler bei ungesetzten Variablen\n",[4173,26257,26258],{"class":4657,"line":4770},[4173,26259,4761],{"emptyLinePlaceholder":4760},[4173,26261,26262,26264],{"class":4657,"line":4775},[4173,26263,11164],{"class":4665},[4173,26265,12890],{"class":4665},[4173,26267,26268],{"class":4657,"line":6320},[4173,26269,4761],{"emptyLinePlaceholder":4760},[4173,26271,26272],{"class":4657,"line":6325},[4173,26273,26274],{"class":4766},"# Pipe-Fehler aktivieren\n",[4173,26276,26277],{"class":4657,"line":6343},[4173,26278,4761],{"emptyLinePlaceholder":4760},[4173,26280,26281,26283,26285],{"class":4657,"line":6348},[4173,26282,11164],{"class":4665},[4173,26284,18857],{"class":4665},[4173,26286,11170],{"class":4669},[4173,26288,26289],{"class":4657,"line":6457},[4173,26290,4761],{"emptyLinePlaceholder":4760},[4173,26292,26293],{"class":4657,"line":6462},[4173,26294,26295],{"class":4766},"# Debugging: jeden Befehl vor Ausführung anzeigen\n",[4173,26297,26298],{"class":4657,"line":6468},[4173,26299,4761],{"emptyLinePlaceholder":4760},[4173,26301,26302,26304],{"class":4657,"line":6473},[4173,26303,11164],{"class":4665},[4173,26305,26306],{"class":4665}," -x\n",[4173,26308,26309],{"class":4657,"line":6479},[4173,26310,4761],{"emptyLinePlaceholder":4760},[4173,26312,26313,26315],{"class":4657,"line":6503},[4173,26314,13462],{"class":4661},[4173,26316,15533],{"class":4669},[4173,26318,26319],{"class":4657,"line":6516},[4173,26320,4761],{"emptyLinePlaceholder":4760},[4173,26322,26323,26325,26327],{"class":4657,"line":6971},[4173,26324,11164],{"class":4665},[4173,26326,18952],{"class":4669},[4173,26328,26329],{"class":4766}," # Debugging wieder deaktivieren\n",[4173,26331,26332],{"class":4657,"line":10649},[4173,26333,4761],{"emptyLinePlaceholder":4760},[4173,26335,26336],{"class":4657,"line":10654},[4173,26337,26338],{"class":4766},"# Syntaxcheck ohne Ausführung\n",[4173,26340,26341],{"class":4657,"line":10659},[4173,26342,4761],{"emptyLinePlaceholder":4760},[4173,26344,26345,26347],{"class":4657,"line":10664},[4173,26346,11164],{"class":4665},[4173,26348,25035],{"class":4665},[4173,26350,26351],{"class":4657,"line":10676},[4173,26352,4761],{"emptyLinePlaceholder":4760},[4173,26354,26355],{"class":4657,"line":10681},[4173,26356,26357],{"class":4766},"# Alle drei auf einmal setzen (empfohlene Praxis)\n",[4173,26359,26360],{"class":4657,"line":10702},[4173,26361,4761],{"emptyLinePlaceholder":4760},[4173,26363,26364,26366,26368],{"class":4657,"line":10707},[4173,26365,11164],{"class":4665},[4173,26367,11167],{"class":4665},[4173,26369,11170],{"class":4669},[4173,26371,26372],{"class":4657,"line":10712},[4173,26373,4761],{"emptyLinePlaceholder":4760},[4173,26375,26376],{"class":4657,"line":10717},[4173,26377,26378],{"class":4766},"# Glob-Expansion deaktivieren (* als Literal behandeln)\n",[4173,26380,26381],{"class":4657,"line":10727},[4173,26382,4761],{"emptyLinePlaceholder":4760},[4173,26384,26385,26387],{"class":4657,"line":10732},[4173,26386,11164],{"class":4665},[4173,26388,19029],{"class":4665},[4173,26390,26391],{"class":4657,"line":10737},[4173,26392,4761],{"emptyLinePlaceholder":4760},[4173,26394,26395,26397,26400],{"class":4657,"line":10742},[4173,26396,6309],{"class":4665},[4173,26398,26399],{"class":4669}," .txt",[4173,26401,26402],{"class":4766}," # gibt \".txt\" aus – keine Dateinamen\n",[4173,26404,26405],{"class":4657,"line":10752},[4173,26406,4761],{"emptyLinePlaceholder":4760},[4173,26408,26409,26411],{"class":4657,"line":10757},[4173,26410,11164],{"class":4665},[4173,26412,26413],{"class":4669}," +f\n",[4173,26415,26416],{"class":4657,"line":10762},[4173,26417,4761],{"emptyLinePlaceholder":4760},[4173,26419,26420,26422,26424,26427],{"class":4657,"line":10767},[4173,26421,6309],{"class":4665},[4173,26423,7078],{"class":4665},[4173,26425,26426],{"class":4669},".txt",[4173,26428,26429],{"class":4766}," # gibt Dateinamen aus\n",[4173,26431,26432],{"class":4657,"line":10772},[4173,26433,4761],{"emptyLinePlaceholder":4760},[4173,26435,26436],{"class":4657,"line":10777},[4173,26437,26438],{"class":4766},"# Überschreiben mit > verhindern\n",[4173,26440,26441],{"class":4657,"line":10782},[4173,26442,4761],{"emptyLinePlaceholder":4760},[4173,26444,26445,26447],{"class":4657,"line":10787},[4173,26446,11164],{"class":4665},[4173,26448,26449],{"class":4665}," -C\n",[4173,26451,26452],{"class":4657,"line":10800},[4173,26453,4761],{"emptyLinePlaceholder":4760},[4173,26455,26456,26458,26460,26462,26465],{"class":4657,"line":10805},[4173,26457,6309],{"class":4665},[4173,26459,8944],{"class":4669},[4173,26461,24509],{"class":4788},[4173,26463,26464],{"class":4669}," bereits_vorhanden.txt",[4173,26466,26467],{"class":4766}," # Fehler: Datei existiert\n",[4173,26469,26470],{"class":4657,"line":10818},[4173,26471,4761],{"emptyLinePlaceholder":4760},[4173,26473,26474,26476],{"class":4657,"line":10823},[4173,26475,11164],{"class":4665},[4173,26477,26478],{"class":4669}," +C\n",[4173,26480,26481],{"class":4657,"line":10836},[4173,26482,4761],{"emptyLinePlaceholder":4760},[4173,26484,26485,26487,26489,26491,26493],{"class":4657,"line":10841},[4173,26486,6309],{"class":4665},[4173,26488,8944],{"class":4669},[4173,26490,24509],{"class":4788},[4173,26492,26464],{"class":4669},[4173,26494,26495],{"class":4766}," # Erfolgreich\n",[4173,26497,26498],{"class":4657,"line":10846},[4173,26499,4761],{"emptyLinePlaceholder":4760},[4173,26501,26502],{"class":4657,"line":10851},[4173,26503,26504],{"class":4766},"# Positionsparameter neu setzen\n",[4173,26506,26507],{"class":4657,"line":10867},[4173,26508,4761],{"emptyLinePlaceholder":4760},[4173,26510,26511,26513,26515,26518,26521],{"class":4657,"line":10872},[4173,26512,11164],{"class":4665},[4173,26514,26135],{"class":4665},[4173,26516,26517],{"class":4669}," eins",[4173,26519,26520],{"class":4669}," zwei",[4173,26522,26523],{"class":4669}," drei\n",[4173,26525,26526],{"class":4657,"line":10877},[4173,26527,4761],{"emptyLinePlaceholder":4760},[4173,26529,26530,26532,26535,26537,26539],{"class":4657,"line":10882},[4173,26531,6309],{"class":4665},[4173,26533,26534],{"class":4669}," \"Anzahl: ",[4173,26536,6141],{"class":4665},[4173,26538,6207],{"class":4669},[4173,26540,26541],{"class":4766}," # 3\n",[4173,26543,26544],{"class":4657,"line":10890},[4173,26545,4761],{"emptyLinePlaceholder":4760},[4173,26547,26548,26550,26553,26555,26557],{"class":4657,"line":10895},[4173,26549,6309],{"class":4665},[4173,26551,26552],{"class":4669}," \"Alle: ",[4173,26554,11470],{"class":4665},[4173,26556,6207],{"class":4669},[4173,26558,26559],{"class":4766}," # eins zwei drei\n",[4173,26561,26562],{"class":4657,"line":10904},[4173,26563,4761],{"emptyLinePlaceholder":4760},[4173,26565,26566],{"class":4657,"line":10909},[4173,26567,26568],{"class":4766},"# Fehler für einen einzelnen Befehl erlauben (|| true verhindert -e-Abbruch)\n",[4173,26570,26571],{"class":4657,"line":10914},[4173,26572,4761],{"emptyLinePlaceholder":4760},[4173,26574,26575,26578,26580],{"class":4657,"line":10919},[4173,26576,26577],{"class":4661},"befehl_der_fehlschlagen_kann",[4173,26579,24074],{"class":4788},[4173,26581,26582],{"class":4665}," true\n",[4173,26584,26585],{"class":4657,"line":10933},[4173,26586,4761],{"emptyLinePlaceholder":4760},[4173,26588,26589],{"class":4657,"line":10938},[4173,26590,26591],{"class":4766},"# Alternative: Fehlerbehandlung mit if (ignoriert -e automatisch)\n",[4173,26593,26594],{"class":4657,"line":10959},[4173,26595,4761],{"emptyLinePlaceholder":4760},[4173,26597,26598,26600,26602,26605,26607],{"class":4657,"line":10964},[4173,26599,6201],{"class":4788},[4173,26601,11580],{"class":4788},[4173,26603,26604],{"class":4661}," befehl_der_fehlschlagen_kann",[4173,26606,6498],{"class":4784},[4173,26608,6229],{"class":4788},[4173,26610,26611],{"class":4657,"line":10969},[4173,26612,4761],{"emptyLinePlaceholder":4760},[4173,26614,26615,26617],{"class":4657,"line":10974},[4173,26616,6309],{"class":4665},[4173,26618,26619],{"class":4669}," \"Fehler aufgetreten, aber Skript läuft weiter\"\n",[4173,26621,26622],{"class":4657,"line":10982},[4173,26623,4761],{"emptyLinePlaceholder":4760},[4173,26625,26626],{"class":4657,"line":10987},[4173,26627,6247],{"class":4788},[16,26629,12997],{"id":26630},"ausgabe-17",[11,26632,26634],{"id":26633},"set-x-debugging-aktiv","set -x (Debugging aktiv)",[11,26636,26638],{"id":26637},"jeder-befehl-wird-mit-am-anfang-gezeigt","Jeder Befehl wird mit + am Anfang gezeigt",[4647,26640,26642],{"className":4649,"code":26641,"language":4651,"meta":269,"style":269},"ls \u002Ftmp\n\n",[4653,26643,26644],{"__ignoreMap":269},[4173,26645,26646,26648],{"class":4657,"line":4658},[4173,26647,13462],{"class":4661},[4173,26649,15533],{"class":4669},[21,26651,26652],{},[24,26653,26654],{},"ls \u002Ftmp",[414,26656,26657],{},"datei1.txt datei2.txt",[11,26659,26661],{"id":26660},"set-o-alle-optionen-anzeigen","set -o (alle Optionen anzeigen)",[414,26663,26664],{},"allexport off",[414,26666,26667],{},"braceexpand on",[414,26669,26670],{},"errexit off",[414,26672,26673],{},"errtrace off",[414,26675,26676],{},"functrace off",[414,26678,26679],{},"hashall on",[414,26681,26682],{},"histexpand on",[414,26684,26685],{},"history on",[414,26687,26688],{},"ignoreeof off",[414,26690,26691],{},"interactive-comments on",[414,26693,26694],{},"keyword off",[414,26696,26697],{},"monitor on",[414,26699,26700],{},"noclobber off",[414,26702,26703],{},"noexec off",[414,26705,26706],{},"noglob off",[414,26708,26709],{},"nolog off",[414,26711,26712],{},"notify off",[414,26714,26715],{},"nounset off",[414,26717,26718],{},"onecmd off",[414,26720,26721],{},"physical off",[414,26723,26724],{},"pipefail off",[414,26726,26727],{},"posix off",[414,26729,26730],{},"privileged off",[414,26732,26733],{},"verbose off",[414,26735,26736],{},"vi off",[414,26738,26739],{},"xtrace off",[11,26741,26742],{"id":6309},"echo $-",[414,26744,26745],{},"himBHs \u003C- aktive Optionen als Buchstaben",[16,26747,26749],{"id":26748},"praxisbeispiel-robustes-backup-skript","Praxisbeispiel: Robustes Backup-Skript",[4647,26751,26753],{"className":4649,"code":26752,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\nset -euo pipefail # Sicher und robust\n\nQUELLE=\"\u002Fhome\u002Fmatta\"\n\nZIEL=\"\u002Fbackup\u002Fmatta\"\n\necho \"Sicherung von $QUELLE nach $ZIEL\"\n\n# Ohne -e würde das Skript weiterlaufen auch wenn mkdir fehlschlägt\n\nmkdir -p \"$ZIEL\"\n\n# Ohne pipefail würde ein Fehler in tar ignoriert wenn gzip funktioniert\n\ntar czf - \"$QUELLE\" | gzip > \"$ZIEL\u002Fbackup_$(date +%F).tar.gz\"\n\necho \"Fertig!\"\n\nWichtig:set -e hat Ausnahmen – Befehle in if-Bedingungen, while-Tests sowie hinter || oder &&* lösen keinen Exit aus, da ihr Fehlschlag dort erwartet wird.*\n\n# rsync\n\n",[4653,26754,26755,26759,26763,26775,26779,26789,26793,26803,26807,26825,26829,26834,26838,26850,26854,26859,26863,26896,26900,26907,26911,26960,26964],{"__ignoreMap":269},[4173,26756,26757],{"class":4657,"line":4658},[4173,26758,6375],{"class":4766},[4173,26760,26761],{"class":4657,"line":270},[4173,26762,4761],{"emptyLinePlaceholder":4760},[4173,26764,26765,26767,26769,26772],{"class":4657,"line":1263},[4173,26766,11164],{"class":4665},[4173,26768,11167],{"class":4665},[4173,26770,26771],{"class":4669}," pipefail",[4173,26773,26774],{"class":4766}," # Sicher und robust\n",[4173,26776,26777],{"class":4657,"line":4770},[4173,26778,4761],{"emptyLinePlaceholder":4760},[4173,26780,26781,26784,26786],{"class":4657,"line":4775},[4173,26782,26783],{"class":4784},"QUELLE",[4173,26785,6387],{"class":4788},[4173,26787,26788],{"class":4669},"\"\u002Fhome\u002Fmatta\"\n",[4173,26790,26791],{"class":4657,"line":6320},[4173,26792,4761],{"emptyLinePlaceholder":4760},[4173,26794,26795,26798,26800],{"class":4657,"line":6325},[4173,26796,26797],{"class":4784},"ZIEL",[4173,26799,6387],{"class":4788},[4173,26801,26802],{"class":4669},"\"\u002Fbackup\u002Fmatta\"\n",[4173,26804,26805],{"class":4657,"line":6343},[4173,26806,4761],{"emptyLinePlaceholder":4760},[4173,26808,26809,26811,26814,26817,26820,26823],{"class":4657,"line":6348},[4173,26810,6309],{"class":4665},[4173,26812,26813],{"class":4669}," \"Sicherung von ",[4173,26815,26816],{"class":4784},"$QUELLE",[4173,26818,26819],{"class":4669}," nach ",[4173,26821,26822],{"class":4784},"$ZIEL",[4173,26824,6454],{"class":4669},[4173,26826,26827],{"class":4657,"line":6457},[4173,26828,4761],{"emptyLinePlaceholder":4760},[4173,26830,26831],{"class":4657,"line":6462},[4173,26832,26833],{"class":4766},"# Ohne -e würde das Skript weiterlaufen auch wenn mkdir fehlschlägt\n",[4173,26835,26836],{"class":4657,"line":6468},[4173,26837,4761],{"emptyLinePlaceholder":4760},[4173,26839,26840,26842,26844,26846,26848],{"class":4657,"line":6473},[4173,26841,6940],{"class":4661},[4173,26843,8206],{"class":4665},[4173,26845,6218],{"class":4669},[4173,26847,26822],{"class":4784},[4173,26849,6454],{"class":4669},[4173,26851,26852],{"class":4657,"line":6479},[4173,26853,4761],{"emptyLinePlaceholder":4760},[4173,26855,26856],{"class":4657,"line":6503},[4173,26857,26858],{"class":4766},"# Ohne pipefail würde ein Fehler in tar ignoriert wenn gzip funktioniert\n",[4173,26860,26861],{"class":4657,"line":6516},[4173,26862,4761],{"emptyLinePlaceholder":4760},[4173,26864,26865,26867,26870,26872,26874,26876,26878,26880,26882,26884,26886,26888,26891,26893],{"class":4657,"line":6971},[4173,26866,11594],{"class":4661},[4173,26868,26869],{"class":4669}," czf",[4173,26871,4785],{"class":4669},[4173,26873,6218],{"class":4669},[4173,26875,26816],{"class":4784},[4173,26877,6207],{"class":4669},[4173,26879,8928],{"class":4788},[4173,26881,18984],{"class":4661},[4173,26883,24509],{"class":4788},[4173,26885,6218],{"class":4669},[4173,26887,26822],{"class":4784},[4173,26889,26890],{"class":4669},"\u002Fbackup_$(",[4173,26892,11289],{"class":4661},[4173,26894,26895],{"class":4669}," +%F).tar.gz\"\n",[4173,26897,26898],{"class":4657,"line":10649},[4173,26899,4761],{"emptyLinePlaceholder":4760},[4173,26901,26902,26904],{"class":4657,"line":10654},[4173,26903,6309],{"class":4665},[4173,26905,26906],{"class":4669}," \"Fertig!\"\n",[4173,26908,26909],{"class":4657,"line":10659},[4173,26910,4761],{"emptyLinePlaceholder":4760},[4173,26912,26913,26916,26918,26921,26924,26927,26930,26932,26935,26938,26941,26944,26946,26949,26952,26954,26957],{"class":4657,"line":10664},[4173,26914,26915],{"class":4661},"Wichtig:set",[4173,26917,21075],{"class":4665},[4173,26919,26920],{"class":4669}," hat",[4173,26922,26923],{"class":4669}," Ausnahmen",[4173,26925,26926],{"class":4669}," –",[4173,26928,26929],{"class":4669}," Befehle",[4173,26931,16308],{"class":4669},[4173,26933,26934],{"class":4669}," if-Bedingungen,",[4173,26936,26937],{"class":4669}," while-Tests",[4173,26939,26940],{"class":4669}," sowie",[4173,26942,26943],{"class":4669}," hinter",[4173,26945,24074],{"class":4788},[4173,26947,26948],{"class":4661}," oder",[4173,26950,26951],{"class":4784}," &&",[4173,26953,6328],{"class":4788},[4173,26955,26956],{"class":4784}," lösen keinen Exit aus, da ihr Fehlschlag dort erwartet wird.",[4173,26958,26959],{"class":4788},"*\n",[4173,26961,26962],{"class":4657,"line":10676},[4173,26963,4761],{"emptyLinePlaceholder":4760},[4173,26965,26966],{"class":4657,"line":10681},[4173,26967,26968],{"class":4766},"# rsync\n",[414,26970,26971,26973,26974,26977],{},[42,26972,12709],{}," rsync (Remote Sync) synchronisiert Dateien und Verzeichnisse lokal oder über Netzwerk. Es überträgt dank ",[42,26975,26976],{},"Delta-Transfer-Algorithmus"," nur die tatsächlich geänderten Teile einer Datei – extrem schnell und bandbreitenschonend.",[414,26979,26980,26982,26983,26985],{},[42,26981,7941],{}," rsync ",[4173,26984,12720],{}," QUELLE ZIEL",[16,26987,26989],{"id":26988},"wie-rsync-intern-funktioniert","Wie rsync intern funktioniert",[318,26991,26992,26995,26998,27001,27004,27007],{},[24,26993,26994],{},"Zieldatei → Aufteilung in gleich große Blöcke",[24,26996,26997],{},"Für jeden Block: schwache Prüfsumme (rolling checksum) + starke Prüfsumme (MD5)",[24,26999,27000],{},"Prüfsummen → Sender",[24,27002,27003],{},"Sender gleicht Quelldatei mit den Prüfsummen ab",[24,27005,27006],{},"Nur NEUE \u002F GEÄNDERTE Blöcke werden übertragen",[24,27008,27009],{},"Zieldatei wird aus alten + neuen Blöcken zusammengesetzt",[414,27011,27012],{},"Ergebnis: Statt 500 MB werden vielleicht nur 3 KB übertragen.",[16,27014,27016],{"id":27015},"alle-wichtigen-optionen","Alle wichtigen Optionen",[765,27018,27019,27035],{},[768,27020,27021],{},[771,27022,27023,27027,27031],{},[774,27024,27025],{},[42,27026,8964],{},[774,27028,27029],{},[42,27030,12796],{},[774,27032,27033],{},[42,27034,6733],{},[787,27036,27037,27047,27056,27066,27076,27086,27095,27105,27115,27125,27135,27144,27154,27164,27173,27183,27193,27204,27213,27223,27233,27243,27253,27263,27273,27283,27293,27303,27313,27323,27333,27343,27353,27363,27373,27383,27393,27403,27413,27423,27432,27442,27452,27462],{},[771,27038,27039,27041,27044],{},[792,27040,22402],{},[792,27042,27043],{},"--archive",[792,27045,27046],{},"Archivmodus = -rlptgoD zusammengefasst (empfohlen)",[771,27048,27049,27051,27053],{},[792,27050,6103],{},[792,27052,17263],{},[792,27054,27055],{},"Verzeichnisse rekursiv übertragen",[771,27057,27058,27060,27063],{},[792,27059,9006],{},[792,27061,27062],{},"--links",[792,27064,27065],{},"Symlinks als Symlinks übertragen",[771,27067,27068,27070,27073],{},[792,27069,13276],{},[792,27071,27072],{},"--perms",[792,27074,27075],{},"Berechtigungen erhalten",[771,27077,27078,27080,27083],{},[792,27079,22443],{},[792,27081,27082],{},"--times",[792,27084,27085],{},"Zeitstempel erhalten",[771,27087,27088,27090,27092],{},[792,27089,12818],{},[792,27091,12821],{},[792,27093,27094],{},"Gruppeninfos erhalten",[771,27096,27097,27099,27102],{},[792,27098,9046],{},[792,27100,27101],{},"--owner",[792,27103,27104],{},"Eigentümer erhalten (nur root)",[771,27106,27107,27110,27112],{},[792,27108,27109],{},"-D",[792,27111],{},[792,27113,27114],{},"Gerätedateien + Sonderdateien erhalten",[771,27116,27117,27119,27122],{},[792,27118,8983],{},[792,27120,27121],{},"--verbose",[792,27123,27124],{},"Ausführliche Ausgabe",[771,27126,27127,27130,27132],{},[792,27128,27129],{},"-vv",[792,27131],{},[792,27133,27134],{},"Sehr ausführliche Ausgabe",[771,27136,27137,27139,27141],{},[792,27138,16412],{},[792,27140,17439],{},[792,27142,27143],{},"Keine Ausgabe außer Fehlern",[771,27145,27146,27148,27151],{},[792,27147,8991],{},[792,27149,27150],{},"--dry-run",[792,27152,27153],{},"Simulation – zeigt was passieren würde, ändert nichts",[771,27155,27156,27158,27161],{},[792,27157,20406],{},[792,27159,27160],{},"--compress",[792,27162,27163],{},"Daten vor Übertragung komprimieren",[771,27165,27166,27168,27170],{},[792,27167,13851],{},[792,27169],{},[792,27171,27172],{},"--partial --progress kombiniert: Fortschritt + Wiederaufnahme",[771,27174,27175,27178,27180],{},[792,27176,27177],{},"--progress",[792,27179],{},[792,27181,27182],{},"Fortschrittsbalken für jede Datei",[771,27184,27185,27188,27190],{},[792,27186,27187],{},"--partial",[792,27189],{},[792,27191,27192],{},"Unvollständige Übertragungen behalten (Wiederaufnahme möglich)",[771,27194,27195,27198,27201],{},[792,27196,27197],{},"-e BEFEHL",[792,27199,27200],{},"--rsh=BEFEHL",[792,27202,27203],{},"Remote-Shell angeben (Standard: ssh)",[771,27205,27206,27208,27210],{},[792,27207,25155],{},[792,27209],{},[792,27211,27212],{},"Dateien im Ziel löschen, die in der Quelle fehlen (echtes Spiegeln)",[771,27214,27215,27218,27220],{},[792,27216,27217],{},"--delete-before",[792,27219],{},[792,27221,27222],{},"Löschen VOR der Übertragung",[771,27224,27225,27228,27230],{},[792,27226,27227],{},"--delete-after",[792,27229],{},[792,27231,27232],{},"Löschen NACH der Übertragung",[771,27234,27235,27238,27240],{},[792,27236,27237],{},"--exclude=MUSTER",[792,27239],{},[792,27241,27242],{},"Dateien\u002FVerzeichnisse ausschließen",[771,27244,27245,27248,27250],{},[792,27246,27247],{},"--exclude-from=DATEI",[792,27249],{},[792,27251,27252],{},"Ausschlussliste aus Datei lesen",[771,27254,27255,27258,27260],{},[792,27256,27257],{},"--include=MUSTER",[792,27259],{},[792,27261,27262],{},"Ausschluss für bestimmtes Muster aufheben",[771,27264,27265,27268,27270],{},[792,27266,27267],{},"--filter=REGEL",[792,27269],{},[792,27271,27272],{},"Flexible Filterregel (+ einschließen, - ausschließen)",[771,27274,27275,27278,27280],{},[792,27276,27277],{},"--backup",[792,27279],{},[792,27281,27282],{},"Backup geänderter Zieldateien anlegen",[771,27284,27285,27288,27290],{},[792,27286,27287],{},"--backup-dir=DIR",[792,27289],{},[792,27291,27292],{},"Backup-Verzeichnis for geänderte Dateien",[771,27294,27295,27298,27300],{},[792,27296,27297],{},"--suffix=SUFFIX",[792,27299],{},[792,27301,27302],{},"Backup-Suffix (Standard: ~)",[771,27304,27305,27307,27310],{},[792,27306,12807],{},[792,27308,27309],{},"--update",[792,27311,27312],{},"Neuere Zieldateien nicht überschreiben",[771,27314,27315,27317,27320],{},[792,27316,9014],{},[792,27318,27319],{},"--checksum",[792,27321,27322],{},"Vergleich per Prüfsumme statt Größe + Mtime",[771,27324,27325,27327,27330],{},[792,27326,17466],{},[792,27328,27329],{},"--hard-links",[792,27331,27332],{},"Hardlinks als Hardlinks erhalten",[771,27334,27335,27337,27340],{},[792,27336,22413],{},[792,27338,27339],{},"--acls",[792,27341,27342],{},"ACLs (Access Control Lists) übertragen",[771,27344,27345,27347,27350],{},[792,27346,22473],{},[792,27348,27349],{},"--xattrs",[792,27351,27352],{},"Erweiterte Attribute übertragen",[771,27354,27355,27358,27360],{},[792,27356,27357],{},"--chmod=RECHTE",[792,27359],{},[792,27361,27362],{},"Berechtigungen an Zieldateien setzen",[771,27364,27365,27368,27370],{},[792,27366,27367],{},"--chown=USER:GRP",[792,27369],{},[792,27371,27372],{},"Eigentümer\u002FGruppe an Zieldateien setzen",[771,27374,27375,27378,27380],{},[792,27376,27377],{},"--max-size=GRÖSSE",[792,27379],{},[792,27381,27382],{},"Dateien über dieser Größe überspringen (z.B. 100M)",[771,27384,27385,27388,27390],{},[792,27386,27387],{},"--min-size=GRÖSSE",[792,27389],{},[792,27391,27392],{},"Dateien unter dieser Größe überspringen",[771,27394,27395,27398,27400],{},[792,27396,27397],{},"--bwlimit=KBPS",[792,27399],{},[792,27401,27402],{},"Bandbreitenlimit (KB\u002Fs)",[771,27404,27405,27408,27410],{},[792,27406,27407],{},"--timeout=SEK",[792,27409],{},[792,27411,27412],{},"I\u002FO-Timeout in Sekunden",[771,27414,27415,27418,27420],{},[792,27416,27417],{},"--stats",[792,27419],{},[792,27421,27422],{},"Übertragungsstatistik am Ende anzeigen",[771,27424,27425,27427,27429],{},[792,27426,13819],{},[792,27428,22426],{},[792,27430,27431],{},"Größen lesbar ausgeben (KB, MB, GB)",[771,27433,27434,27437,27439],{},[792,27435,27436],{},"--log-file=DATEI",[792,27438],{},[792,27440,27441],{},"Übertragungsprotokoll in Datei schreiben",[771,27443,27444,27447,27449],{},[792,27445,27446],{},"--password-file=DATEI",[792,27448],{},[792,27450,27451],{},"rsync-Daemon-Passwort aus Datei lesen",[771,27453,27454,27457,27459],{},[792,27455,27456],{},"--port=PORT",[792,27458],{},[792,27460,27461],{},"Alternativen Port angeben (rsync-Daemon)",[771,27463,27464,27467,27469],{},[792,27465,27466],{},"--list-only",[792,27468],{},[792,27470,27471],{},"Nur auflisten, nicht übertragen",[16,27473,27475],{"id":27474},"der-slash-trick-sehr-wichtig","Der Slash-Trick (sehr wichtig!)",[4647,27477,27479],{"className":4649,"code":27478,"language":4651,"meta":269,"style":269},"rsync -av \u002Fquelle \u002Fziel # ← Kopiert ORDNER \"quelle\" in \"ziel\" → \u002Fziel\u002Fquelle\u002F...\n\nrsync -av \u002Fquelle\u002F \u002Fziel # ← Kopiert INHALT von \"quelle\" → \u002Fziel\u002F...\n\n# ^\n\n",[4653,27480,27481,27498,27502,27516,27520],{"__ignoreMap":269},[4173,27482,27483,27486,27489,27492,27495],{"class":4657,"line":4658},[4173,27484,27485],{"class":4661},"rsync",[4173,27487,27488],{"class":4665}," -av",[4173,27490,27491],{"class":4669}," \u002Fquelle",[4173,27493,27494],{"class":4669}," \u002Fziel",[4173,27496,27497],{"class":4766}," # ← Kopiert ORDNER \"quelle\" in \"ziel\" → \u002Fziel\u002Fquelle\u002F...\n",[4173,27499,27500],{"class":4657,"line":270},[4173,27501,4761],{"emptyLinePlaceholder":4760},[4173,27503,27504,27506,27508,27511,27513],{"class":4657,"line":1263},[4173,27505,27485],{"class":4661},[4173,27507,27488],{"class":4665},[4173,27509,27510],{"class":4669}," \u002Fquelle\u002F",[4173,27512,27494],{"class":4669},[4173,27514,27515],{"class":4766}," # ← Kopiert INHALT von \"quelle\" → \u002Fziel\u002F...\n",[4173,27517,27518],{"class":4657,"line":4770},[4173,27519,4761],{"emptyLinePlaceholder":4760},[4173,27521,27522],{"class":4657,"line":4775},[4173,27523,27524],{"class":4766},"# ^\n",[11,27526,27528],{"id":27527},"abschließender-slash-bedeutet-der-inhalt-dieses-ordners","Abschließender Slash bedeutet: \"der Inhalt dieses Ordners\"",[414,27530,27531,27534],{},[42,27532,27533],{},"Faustregel:"," Mit \u002F am Ende der Quelle verhält sich rsync wie cp -r quelle\u002F* ziel\u002F.",[16,27536,9925],{"id":27537},"beispiele-18",[11,27539,27541],{"id":27540},"lokal","─── Lokal ───────────────────────────────────────────────────",[11,27543,27545],{"id":27544},"einfache-lokale-synchronisation","Einfache lokale Synchronisation",[4647,27547,27549],{"className":4649,"code":27548,"language":4651,"meta":269,"style":269},"rsync -av \u002Fhome\u002Fuser\u002Fdaten\u002F \u002Fbackup\u002Fdaten\u002F\n\n# Trockenlauf: erst prüfen, dann ausführen\n\nrsync -avn \u002Fhome\u002Fuser\u002Fdaten\u002F \u002Fbackup\u002Fdaten\u002F\n\n# Exaktes Spiegeln (überschüssige Zieldateien werden gelöscht)\n\nrsync -av --delete \u002Fhome\u002Fuser\u002F \u002Fbackup\u002Fuser\u002F\n\n# Mit Fortschrittsanzeige\n\nrsync -avP \u002Fquelle\u002F \u002Fziel\u002F\n\n# gleichwertig:\n\nrsync -av --progress --partial \u002Fquelle\u002F \u002Fziel\u002F\n\n# ─── Remote (SSH) ────────────────────────────────────────────\n\n# Lokal → Remote (push)\n\nrsync -avz \u002Fhome\u002Fuser\u002Fprojekt\u002F benutzer@server:\u002Fbackup\u002Fprojekt\u002F\n\n# Remote → Lokal (pull)\n\nrsync -avz benutzer@server:\u002Fvar\u002Fwww\u002Fhtml\u002F \u002Flokal\u002Fwebseite\u002F\n\n# SSH auf Port 2222\n\nrsync -avz -e \"ssh -p 2222\" \u002Fdaten\u002F user@server:\u002Fbackup\u002F\n\n# SSH mit spezifischem Key\n\nrsync -avz -e \"ssh -i ~\u002F.ssh\u002Fdeploy_key\" \u002Fdaten\u002F user@server:\u002Fbackup\u002F\n\n# ─── Filtern ─────────────────────────────────────────────────\n\n# Temporäre Dateien und Logs ausschließen\n\nrsync -av --exclude=\".tmp\" --exclude=\".log\" \u002Fdaten\u002F \u002Fbackup\u002Fdaten\u002F\n\n# Ausschlussdatei (eine Regel pro Zeile)\n\n# .rsync-exclude Inhalt: *.tmp \u002F logs\u002F \u002F .git\u002F\n\nrsync -av --exclude-from=\u002Fhome\u002Fuser\u002F.rsync-exclude \u002Fdaten\u002F \u002Fbackup\u002F\n\n# Nur Bilder synchronisieren\n\nrsync -av --include=\".jpg\" --include=\".png\" --exclude=\"*\" \u002Ffotos\u002F \u002Fbackup\u002Ffotos\u002F\n\n# node_modules ausschließen (typisch für Web-Projekte)\n\nrsync -av --exclude=\"node_modules\u002F\" \u002Fprojekt\u002F server:\u002Fdeploy\u002F\n\n# ─── Backup mit Versionierung ────────────────────────────────\n\n# Geänderte Dateien mit Datum in separatem Ordner sichern\n\nrsync -av --backup --backup-dir=\u002Fbackup\u002F$(date %Y-%m-%d) \u002Fhome\u002F \u002Fbackup\u002Faktuell\u002F\n\n# Bandbreite begrenzen (500 KB\u002Fs)\n\nrsync -avz --bwlimit=500 \u002Fdaten\u002F user@server:\u002Fbackup\u002F\n\n# Statistiken anzeigen\n\nrsync -av --stats \u002Fquelle\u002F \u002Fziel\u002F\n\n# Nur nach Prüfsumme vergleichen (langsamer, aber genauer)\n\nrsync -avc \u002Fquelle\u002F \u002Fziel\u002F\n\n",[4653,27550,27551,27563,27567,27572,27576,27587,27591,27596,27600,27615,27619,27624,27628,27640,27644,27649,27653,27669,27673,27678,27682,27687,27691,27704,27708,27713,27717,27729,27733,27738,27742,27759,27763,27768,27772,27787,27791,27796,27800,27805,27809,27830,27834,27839,27843,27848,27852,27866,27870,27875,27879,27907,27911,27916,27920,27937,27941,27946,27950,27955,27959,27984,27988,27993,27997,28010,28014,28019,28023,28036,28040,28045,28049],{"__ignoreMap":269},[4173,27552,27553,27555,27557,27560],{"class":4657,"line":4658},[4173,27554,27485],{"class":4661},[4173,27556,27488],{"class":4665},[4173,27558,27559],{"class":4669}," \u002Fhome\u002Fuser\u002Fdaten\u002F",[4173,27561,27562],{"class":4669}," \u002Fbackup\u002Fdaten\u002F\n",[4173,27564,27565],{"class":4657,"line":270},[4173,27566,4761],{"emptyLinePlaceholder":4760},[4173,27568,27569],{"class":4657,"line":1263},[4173,27570,27571],{"class":4766},"# Trockenlauf: erst prüfen, dann ausführen\n",[4173,27573,27574],{"class":4657,"line":4770},[4173,27575,4761],{"emptyLinePlaceholder":4760},[4173,27577,27578,27580,27583,27585],{"class":4657,"line":4775},[4173,27579,27485],{"class":4661},[4173,27581,27582],{"class":4665}," -avn",[4173,27584,27559],{"class":4669},[4173,27586,27562],{"class":4669},[4173,27588,27589],{"class":4657,"line":6320},[4173,27590,4761],{"emptyLinePlaceholder":4760},[4173,27592,27593],{"class":4657,"line":6325},[4173,27594,27595],{"class":4766},"# Exaktes Spiegeln (überschüssige Zieldateien werden gelöscht)\n",[4173,27597,27598],{"class":4657,"line":6343},[4173,27599,4761],{"emptyLinePlaceholder":4760},[4173,27601,27602,27604,27606,27609,27612],{"class":4657,"line":6348},[4173,27603,27485],{"class":4661},[4173,27605,27488],{"class":4665},[4173,27607,27608],{"class":4665}," --delete",[4173,27610,27611],{"class":4669}," \u002Fhome\u002Fuser\u002F",[4173,27613,27614],{"class":4669}," \u002Fbackup\u002Fuser\u002F\n",[4173,27616,27617],{"class":4657,"line":6457},[4173,27618,4761],{"emptyLinePlaceholder":4760},[4173,27620,27621],{"class":4657,"line":6462},[4173,27622,27623],{"class":4766},"# Mit Fortschrittsanzeige\n",[4173,27625,27626],{"class":4657,"line":6468},[4173,27627,4761],{"emptyLinePlaceholder":4760},[4173,27629,27630,27632,27635,27637],{"class":4657,"line":6473},[4173,27631,27485],{"class":4661},[4173,27633,27634],{"class":4665}," -avP",[4173,27636,27510],{"class":4669},[4173,27638,27639],{"class":4669}," \u002Fziel\u002F\n",[4173,27641,27642],{"class":4657,"line":6479},[4173,27643,4761],{"emptyLinePlaceholder":4760},[4173,27645,27646],{"class":4657,"line":6503},[4173,27647,27648],{"class":4766},"# gleichwertig:\n",[4173,27650,27651],{"class":4657,"line":6516},[4173,27652,4761],{"emptyLinePlaceholder":4760},[4173,27654,27655,27657,27659,27662,27665,27667],{"class":4657,"line":6971},[4173,27656,27485],{"class":4661},[4173,27658,27488],{"class":4665},[4173,27660,27661],{"class":4665}," --progress",[4173,27663,27664],{"class":4665}," --partial",[4173,27666,27510],{"class":4669},[4173,27668,27639],{"class":4669},[4173,27670,27671],{"class":4657,"line":10649},[4173,27672,4761],{"emptyLinePlaceholder":4760},[4173,27674,27675],{"class":4657,"line":10654},[4173,27676,27677],{"class":4766},"# ─── Remote (SSH) ────────────────────────────────────────────\n",[4173,27679,27680],{"class":4657,"line":10659},[4173,27681,4761],{"emptyLinePlaceholder":4760},[4173,27683,27684],{"class":4657,"line":10664},[4173,27685,27686],{"class":4766},"# Lokal → Remote (push)\n",[4173,27688,27689],{"class":4657,"line":10676},[4173,27690,4761],{"emptyLinePlaceholder":4760},[4173,27692,27693,27695,27698,27701],{"class":4657,"line":10681},[4173,27694,27485],{"class":4661},[4173,27696,27697],{"class":4665}," -avz",[4173,27699,27700],{"class":4669}," \u002Fhome\u002Fuser\u002Fprojekt\u002F",[4173,27702,27703],{"class":4669}," benutzer@server:\u002Fbackup\u002Fprojekt\u002F\n",[4173,27705,27706],{"class":4657,"line":10702},[4173,27707,4761],{"emptyLinePlaceholder":4760},[4173,27709,27710],{"class":4657,"line":10707},[4173,27711,27712],{"class":4766},"# Remote → Lokal (pull)\n",[4173,27714,27715],{"class":4657,"line":10712},[4173,27716,4761],{"emptyLinePlaceholder":4760},[4173,27718,27719,27721,27723,27726],{"class":4657,"line":10717},[4173,27720,27485],{"class":4661},[4173,27722,27697],{"class":4665},[4173,27724,27725],{"class":4669}," benutzer@server:\u002Fvar\u002Fwww\u002Fhtml\u002F",[4173,27727,27728],{"class":4669}," \u002Flokal\u002Fwebseite\u002F\n",[4173,27730,27731],{"class":4657,"line":10727},[4173,27732,4761],{"emptyLinePlaceholder":4760},[4173,27734,27735],{"class":4657,"line":10732},[4173,27736,27737],{"class":4766},"# SSH auf Port 2222\n",[4173,27739,27740],{"class":4657,"line":10737},[4173,27741,4761],{"emptyLinePlaceholder":4760},[4173,27743,27744,27746,27748,27750,27753,27756],{"class":4657,"line":10742},[4173,27745,27485],{"class":4661},[4173,27747,27697],{"class":4665},[4173,27749,21075],{"class":4665},[4173,27751,27752],{"class":4669}," \"ssh -p 2222\"",[4173,27754,27755],{"class":4669}," \u002Fdaten\u002F",[4173,27757,27758],{"class":4669}," user@server:\u002Fbackup\u002F\n",[4173,27760,27761],{"class":4657,"line":10752},[4173,27762,4761],{"emptyLinePlaceholder":4760},[4173,27764,27765],{"class":4657,"line":10757},[4173,27766,27767],{"class":4766},"# SSH mit spezifischem Key\n",[4173,27769,27770],{"class":4657,"line":10762},[4173,27771,4761],{"emptyLinePlaceholder":4760},[4173,27773,27774,27776,27778,27780,27783,27785],{"class":4657,"line":10767},[4173,27775,27485],{"class":4661},[4173,27777,27697],{"class":4665},[4173,27779,21075],{"class":4665},[4173,27781,27782],{"class":4669}," \"ssh -i ~\u002F.ssh\u002Fdeploy_key\"",[4173,27784,27755],{"class":4669},[4173,27786,27758],{"class":4669},[4173,27788,27789],{"class":4657,"line":10772},[4173,27790,4761],{"emptyLinePlaceholder":4760},[4173,27792,27793],{"class":4657,"line":10777},[4173,27794,27795],{"class":4766},"# ─── Filtern ─────────────────────────────────────────────────\n",[4173,27797,27798],{"class":4657,"line":10782},[4173,27799,4761],{"emptyLinePlaceholder":4760},[4173,27801,27802],{"class":4657,"line":10787},[4173,27803,27804],{"class":4766},"# Temporäre Dateien und Logs ausschließen\n",[4173,27806,27807],{"class":4657,"line":10800},[4173,27808,4761],{"emptyLinePlaceholder":4760},[4173,27810,27811,27813,27815,27818,27821,27823,27826,27828],{"class":4657,"line":10805},[4173,27812,27485],{"class":4661},[4173,27814,27488],{"class":4665},[4173,27816,27817],{"class":4665}," --exclude=",[4173,27819,27820],{"class":4669},"\".tmp\"",[4173,27822,27817],{"class":4665},[4173,27824,27825],{"class":4669},"\".log\"",[4173,27827,27755],{"class":4669},[4173,27829,27562],{"class":4669},[4173,27831,27832],{"class":4657,"line":10818},[4173,27833,4761],{"emptyLinePlaceholder":4760},[4173,27835,27836],{"class":4657,"line":10823},[4173,27837,27838],{"class":4766},"# Ausschlussdatei (eine Regel pro Zeile)\n",[4173,27840,27841],{"class":4657,"line":10836},[4173,27842,4761],{"emptyLinePlaceholder":4760},[4173,27844,27845],{"class":4657,"line":10841},[4173,27846,27847],{"class":4766},"# .rsync-exclude Inhalt: *.tmp \u002F logs\u002F \u002F .git\u002F\n",[4173,27849,27850],{"class":4657,"line":10846},[4173,27851,4761],{"emptyLinePlaceholder":4760},[4173,27853,27854,27856,27858,27861,27863],{"class":4657,"line":10851},[4173,27855,27485],{"class":4661},[4173,27857,27488],{"class":4665},[4173,27859,27860],{"class":4665}," --exclude-from=\u002Fhome\u002Fuser\u002F.rsync-exclude",[4173,27862,27755],{"class":4669},[4173,27864,27865],{"class":4669}," \u002Fbackup\u002F\n",[4173,27867,27868],{"class":4657,"line":10867},[4173,27869,4761],{"emptyLinePlaceholder":4760},[4173,27871,27872],{"class":4657,"line":10872},[4173,27873,27874],{"class":4766},"# Nur Bilder synchronisieren\n",[4173,27876,27877],{"class":4657,"line":10877},[4173,27878,4761],{"emptyLinePlaceholder":4760},[4173,27880,27881,27883,27885,27888,27891,27893,27896,27898,27901,27904],{"class":4657,"line":10882},[4173,27882,27485],{"class":4661},[4173,27884,27488],{"class":4665},[4173,27886,27887],{"class":4665}," --include=",[4173,27889,27890],{"class":4669},"\".jpg\"",[4173,27892,27887],{"class":4665},[4173,27894,27895],{"class":4669},"\".png\"",[4173,27897,27817],{"class":4665},[4173,27899,27900],{"class":4669},"\"*\"",[4173,27902,27903],{"class":4669}," \u002Ffotos\u002F",[4173,27905,27906],{"class":4669}," \u002Fbackup\u002Ffotos\u002F\n",[4173,27908,27909],{"class":4657,"line":10890},[4173,27910,4761],{"emptyLinePlaceholder":4760},[4173,27912,27913],{"class":4657,"line":10895},[4173,27914,27915],{"class":4766},"# node_modules ausschließen (typisch für Web-Projekte)\n",[4173,27917,27918],{"class":4657,"line":10904},[4173,27919,4761],{"emptyLinePlaceholder":4760},[4173,27921,27922,27924,27926,27928,27931,27934],{"class":4657,"line":10909},[4173,27923,27485],{"class":4661},[4173,27925,27488],{"class":4665},[4173,27927,27817],{"class":4665},[4173,27929,27930],{"class":4669},"\"node_modules\u002F\"",[4173,27932,27933],{"class":4669}," \u002Fprojekt\u002F",[4173,27935,27936],{"class":4669}," server:\u002Fdeploy\u002F\n",[4173,27938,27939],{"class":4657,"line":10914},[4173,27940,4761],{"emptyLinePlaceholder":4760},[4173,27942,27943],{"class":4657,"line":10919},[4173,27944,27945],{"class":4766},"# ─── Backup mit Versionierung ────────────────────────────────\n",[4173,27947,27948],{"class":4657,"line":10933},[4173,27949,4761],{"emptyLinePlaceholder":4760},[4173,27951,27952],{"class":4657,"line":10938},[4173,27953,27954],{"class":4766},"# Geänderte Dateien mit Datum in separatem Ordner sichern\n",[4173,27956,27957],{"class":4657,"line":10959},[4173,27958,4761],{"emptyLinePlaceholder":4760},[4173,27960,27961,27963,27965,27968,27971,27973,27976,27978,27981],{"class":4657,"line":10964},[4173,27962,27485],{"class":4661},[4173,27964,27488],{"class":4665},[4173,27966,27967],{"class":4665}," --backup",[4173,27969,27970],{"class":4665}," --backup-dir=\u002Fbackup\u002F$(",[4173,27972,11289],{"class":4661},[4173,27974,27975],{"class":4669}," %Y-%m-%d",[4173,27977,6282],{"class":4665},[4173,27979,27980],{"class":4669}," \u002Fhome\u002F",[4173,27982,27983],{"class":4669}," \u002Fbackup\u002Faktuell\u002F\n",[4173,27985,27986],{"class":4657,"line":10969},[4173,27987,4761],{"emptyLinePlaceholder":4760},[4173,27989,27990],{"class":4657,"line":10974},[4173,27991,27992],{"class":4766},"# Bandbreite begrenzen (500 KB\u002Fs)\n",[4173,27994,27995],{"class":4657,"line":10982},[4173,27996,4761],{"emptyLinePlaceholder":4760},[4173,27998,27999,28001,28003,28006,28008],{"class":4657,"line":10987},[4173,28000,27485],{"class":4661},[4173,28002,27697],{"class":4665},[4173,28004,28005],{"class":4665}," --bwlimit=500",[4173,28007,27755],{"class":4669},[4173,28009,27758],{"class":4669},[4173,28011,28012],{"class":4657,"line":10995},[4173,28013,4761],{"emptyLinePlaceholder":4760},[4173,28015,28016],{"class":4657,"line":11000},[4173,28017,28018],{"class":4766},"# Statistiken anzeigen\n",[4173,28020,28021],{"class":4657,"line":11008},[4173,28022,4761],{"emptyLinePlaceholder":4760},[4173,28024,28025,28027,28029,28032,28034],{"class":4657,"line":11013},[4173,28026,27485],{"class":4661},[4173,28028,27488],{"class":4665},[4173,28030,28031],{"class":4665}," --stats",[4173,28033,27510],{"class":4669},[4173,28035,27639],{"class":4669},[4173,28037,28038],{"class":4657,"line":11021},[4173,28039,4761],{"emptyLinePlaceholder":4760},[4173,28041,28042],{"class":4657,"line":11026},[4173,28043,28044],{"class":4766},"# Nur nach Prüfsumme vergleichen (langsamer, aber genauer)\n",[4173,28046,28047],{"class":4657,"line":11034},[4173,28048,4761],{"emptyLinePlaceholder":4760},[4173,28050,28051,28053,28056,28058],{"class":4657,"line":11039},[4173,28052,27485],{"class":4661},[4173,28054,28055],{"class":4665}," -avc",[4173,28057,27510],{"class":4669},[4173,28059,27639],{"class":4669},[16,28061,12997],{"id":28062},"ausgabe-18",[11,28064,28066],{"id":28065},"rsync-avp-homeuser-backup","rsync -avP \u002Fhome\u002Fuser\u002F \u002Fbackup\u002F",[414,28068,28069,28070,28072,28073,28075,28076,28078,28079,28081,28082,28084,28085,28087,28088,7141],{},"sending incremental file list",[7135,28071],{},"\n.\u002F",[7135,28074],{},"\ndokumente\u002F",[7135,28077],{},"\ndokumente\u002Fbericht.pdf",[7135,28080],{},"\n1,234,567 100% 12.34MB\u002Fs 0:00:00 (xfr#1, to-chk=23\u002F47)",[7135,28083],{},"\nfotos\u002Ffoto1.jpg",[7135,28086],{},"\n987,654 100% 9.87MB\u002Fs 0:00:00 (xfr#2, to-chk=22\u002F47)",[7135,28089],{},[414,28091,28092,28093,28095],{},"sent 2,345,678 bytes received 1,234 bytes 1,234,567.00 bytes\u002Fsec",[7135,28094],{},"\ntotal size is 45,678,901 speedup is 19.48",[414,28097,28098,28100],{},[42,28099,13639],{}," Bei regelmäßigen Backups ist rsync -avz --delete --backup --backup-dir=\u002Fbackup\u002F$(date +%F) eine einfache aber effektive Incremental-Backup-Strategie.",[11,28102,28103],{"id":28103},"basename",[414,28105,28106,28108,28109,28112],{},[42,28107,12709],{}," Entfernt den Verzeichnispfad aus einem Dateipfad und gibt nur den ",[42,28110,28111],{},"Dateinamen"," zurück. Optional kann auch die Dateiendung abgeschnitten werden. Gegenstück: dirname (gibt den Verzeichnispfad zurück).",[414,28114,28115],{},[42,28116,7941],{},[414,28118,28119,28120],{},"basename PFAD ",[4173,28121,20371],{},[4647,28123,28125],{"className":4649,"code":28124,"language":4651,"meta":269,"style":269},"basename -a PFAD... -s SUFFIX\n\n",[4653,28126,28127],{"__ignoreMap":269},[4173,28128,28129,28131,28133,28136,28138],{"class":4657,"line":4658},[4173,28130,28103],{"class":4661},[4173,28132,11304],{"class":4665},[4173,28134,28135],{"class":4669}," PFAD...",[4173,28137,24458],{"class":4665},[4173,28139,28140],{"class":4669}," SUFFIX\n",[16,28142,28144],{"id":28143},"alle-optionen","Alle Optionen",[765,28146,28147,28163],{},[768,28148,28149],{},[771,28150,28151,28155,28159],{},[774,28152,28153],{},[42,28154,8964],{},[774,28156,28157],{},[42,28158,12796],{},[774,28160,28161],{},[42,28162,6733],{},[787,28164,28165,28175,28185,28195],{},[771,28166,28167,28169,28172],{},[792,28168,22402],{},[792,28170,28171],{},"--multiple",[792,28173,28174],{},"Mehrere Pfade in einem Aufruf verarbeiten",[771,28176,28177,28180,28182],{},[792,28178,28179],{},"-s SUFFIX",[792,28181,27297],{},[792,28183,28184],{},"Dieses Suffix vom Ergebnis entfernen",[771,28186,28187,28190,28192],{},[792,28188,28189],{},"--help",[792,28191],{},[792,28193,28194],{},"Hilfe anzeigen",[771,28196,28197,28200,28202],{},[792,28198,28199],{},"--version",[792,28201],{},[792,28203,28204],{},"Versionsnummer anzeigen",[16,28206,9925],{"id":28207},"beispiele-19",[11,28209,28211],{"id":28210},"grundlegende-verwendung","─── Grundlegende Verwendung ─────────────────────────────────",[11,28213,28215],{"id":28214},"nur-dateiname-ohne-pfad","Nur Dateiname (ohne Pfad)",[4647,28217,28219],{"className":4649,"code":28218,"language":4651,"meta":269,"style":269},"basename \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf\n\n# → bericht.pdf\n\n# Dateiname ohne Endung\n\nbasename \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf .pdf\n\n# → bericht\n\n# Nur mit Programmname (Pfad egal)\n\nbasename \u002Fusr\u002Fbin\u002Fpython3\n\n# → python3\n\nbasename \u002Fusr\u002Flib\u002Fsystemd\u002Fsystemd-journald\n\n# → systemd-journald\n\n# ─── Suffix entfernen (-s) ───────────────────────────────────\n\n# Endung .txt entfernen\n\nbasename -s .txt \u002Fpfad\u002Fzur\u002Fdatei.txt\n\n# → datei\n\n# Doppeltes Suffix .tar.gz\n\nbasename \u002Fbackup\u002Farchiv.tar.gz .tar.gz\n\n# → archiv\n\n# ─── Mehrere Dateien auf einmal (-a) ────────────────────────\n\nbasename -a \u002Fetc\u002Fhosts \u002Fetc\u002Fpasswd \u002Fetc\u002Fshadow\n\n# → hosts\n\n# passwd\n\n# shadow\n\n# Mehrere Dateien Suffix entfernen\n\nbasename -a -s .conf \u002Fetc\u002Fssh\u002Fsshd_config.conf \u002Fetc\u002Fnginx\u002Fnginx.conf\n\n# → sshd_config\n\n# nginx\n\n# ─── In Skripten ─────────────────────────────────────────────\n\n# Skriptname ohne Pfad (für Fehlermeldungen)\n\nPROG=$(basename \"$0\")\n\necho \"Verwendung: $PROG [OPTIONEN]\" >&2\n\n# Lock-Datei basierend auf Skriptname\n\nPROG=$(basename \"$0\" .sh)\n\nLOCKFILE=\"\u002Ftmp\u002F${PROG}.lock\"\n\nif [ -f \"$LOCKFILE\" ]; then\n\necho \"$PROG läuft bereits!\" >&2\n\nexit 1\n\nfi\n\ntouch \"$LOCKFILE\"\n\ntrap \"rm -f '$LOCKFILE'\" EXIT\n\n# Alle .sh-Dateien ohne Endung verarbeiten\n\nfor f in \u002Fskripte\u002F*.sh; do\n\nname=$(basename \"$f\" .sh)\n\necho \"Verarbeite Skript: $name\"\n\ndone\n\n# Backup mit Datum und originalem Dateinamen\n\nDATEI=\"\u002Fetc\u002Fnginx\u002Fnginx.conf\"\n\nBACKUP=\"\u002Fbackup\u002F$(basename \"$DATEI\").$(date %Y%m%d)\"\n\ncp \"$DATEI\" \"$BACKUP\"\n\necho \"Backup: $BACKUP\"\n\n# ─── dirname als Gegenstück ──────────────────────────────────\n\nDATEI=\"\u002Fhome\u002Fuser\u002Fdaten\u002Freport.csv\"\n\nDIR=$(dirname \"$DATEI\") # → \u002Fhome\u002Fuser\u002Fdaten\n\nNAME=$(basename \"$DATEI\" .csv) # → report\n\necho \"Verzeichnis: $DIR\"\n\necho \"Dateiname: $NAME\"\n\necho \"Voller Pfad: $DIR\u002F$NAME.csv\"\n\n",[4653,28220,28221,28228,28232,28237,28241,28246,28250,28260,28264,28269,28273,28278,28282,28289,28293,28298,28302,28309,28313,28318,28322,28327,28331,28336,28340,28351,28355,28360,28364,28369,28373,28383,28387,28392,28396,28401,28405,28420,28424,28429,28433,28438,28442,28447,28451,28456,28460,28477,28481,28486,28490,28495,28499,28504,28508,28513,28517,28536,28540,28556,28560,28565,28569,28590,28594,28608,28612,28630,28634,28647,28651,28657,28661,28665,28669,28679,28683,28697,28701,28706,28710,28726,28730,28751,28755,28767,28771,28775,28779,28784,28788,28797,28801,28825,28829,28847,28851,28862,28866,28871,28875,28884,28888,28911,28915,28940,28944,28956,28960,28972,28976],{"__ignoreMap":269},[4173,28222,28223,28225],{"class":4657,"line":4658},[4173,28224,28103],{"class":4661},[4173,28226,28227],{"class":4669}," \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf\n",[4173,28229,28230],{"class":4657,"line":270},[4173,28231,4761],{"emptyLinePlaceholder":4760},[4173,28233,28234],{"class":4657,"line":1263},[4173,28235,28236],{"class":4766},"# → bericht.pdf\n",[4173,28238,28239],{"class":4657,"line":4770},[4173,28240,4761],{"emptyLinePlaceholder":4760},[4173,28242,28243],{"class":4657,"line":4775},[4173,28244,28245],{"class":4766},"# Dateiname ohne Endung\n",[4173,28247,28248],{"class":4657,"line":6320},[4173,28249,4761],{"emptyLinePlaceholder":4760},[4173,28251,28252,28254,28257],{"class":4657,"line":6325},[4173,28253,28103],{"class":4661},[4173,28255,28256],{"class":4669}," \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf",[4173,28258,28259],{"class":4669}," .pdf\n",[4173,28261,28262],{"class":4657,"line":6343},[4173,28263,4761],{"emptyLinePlaceholder":4760},[4173,28265,28266],{"class":4657,"line":6348},[4173,28267,28268],{"class":4766},"# → bericht\n",[4173,28270,28271],{"class":4657,"line":6457},[4173,28272,4761],{"emptyLinePlaceholder":4760},[4173,28274,28275],{"class":4657,"line":6462},[4173,28276,28277],{"class":4766},"# Nur mit Programmname (Pfad egal)\n",[4173,28279,28280],{"class":4657,"line":6468},[4173,28281,4761],{"emptyLinePlaceholder":4760},[4173,28283,28284,28286],{"class":4657,"line":6473},[4173,28285,28103],{"class":4661},[4173,28287,28288],{"class":4669}," \u002Fusr\u002Fbin\u002Fpython3\n",[4173,28290,28291],{"class":4657,"line":6479},[4173,28292,4761],{"emptyLinePlaceholder":4760},[4173,28294,28295],{"class":4657,"line":6503},[4173,28296,28297],{"class":4766},"# → python3\n",[4173,28299,28300],{"class":4657,"line":6516},[4173,28301,4761],{"emptyLinePlaceholder":4760},[4173,28303,28304,28306],{"class":4657,"line":6971},[4173,28305,28103],{"class":4661},[4173,28307,28308],{"class":4669}," \u002Fusr\u002Flib\u002Fsystemd\u002Fsystemd-journald\n",[4173,28310,28311],{"class":4657,"line":10649},[4173,28312,4761],{"emptyLinePlaceholder":4760},[4173,28314,28315],{"class":4657,"line":10654},[4173,28316,28317],{"class":4766},"# → systemd-journald\n",[4173,28319,28320],{"class":4657,"line":10659},[4173,28321,4761],{"emptyLinePlaceholder":4760},[4173,28323,28324],{"class":4657,"line":10664},[4173,28325,28326],{"class":4766},"# ─── Suffix entfernen (-s) ───────────────────────────────────\n",[4173,28328,28329],{"class":4657,"line":10676},[4173,28330,4761],{"emptyLinePlaceholder":4760},[4173,28332,28333],{"class":4657,"line":10681},[4173,28334,28335],{"class":4766},"# Endung .txt entfernen\n",[4173,28337,28338],{"class":4657,"line":10702},[4173,28339,4761],{"emptyLinePlaceholder":4760},[4173,28341,28342,28344,28346,28348],{"class":4657,"line":10707},[4173,28343,28103],{"class":4661},[4173,28345,24458],{"class":4665},[4173,28347,26399],{"class":4669},[4173,28349,28350],{"class":4669}," \u002Fpfad\u002Fzur\u002Fdatei.txt\n",[4173,28352,28353],{"class":4657,"line":10712},[4173,28354,4761],{"emptyLinePlaceholder":4760},[4173,28356,28357],{"class":4657,"line":10717},[4173,28358,28359],{"class":4766},"# → datei\n",[4173,28361,28362],{"class":4657,"line":10727},[4173,28363,4761],{"emptyLinePlaceholder":4760},[4173,28365,28366],{"class":4657,"line":10732},[4173,28367,28368],{"class":4766},"# Doppeltes Suffix .tar.gz\n",[4173,28370,28371],{"class":4657,"line":10737},[4173,28372,4761],{"emptyLinePlaceholder":4760},[4173,28374,28375,28377,28380],{"class":4657,"line":10742},[4173,28376,28103],{"class":4661},[4173,28378,28379],{"class":4669}," \u002Fbackup\u002Farchiv.tar.gz",[4173,28381,28382],{"class":4669}," .tar.gz\n",[4173,28384,28385],{"class":4657,"line":10752},[4173,28386,4761],{"emptyLinePlaceholder":4760},[4173,28388,28389],{"class":4657,"line":10757},[4173,28390,28391],{"class":4766},"# → archiv\n",[4173,28393,28394],{"class":4657,"line":10762},[4173,28395,4761],{"emptyLinePlaceholder":4760},[4173,28397,28398],{"class":4657,"line":10767},[4173,28399,28400],{"class":4766},"# ─── Mehrere Dateien auf einmal (-a) ────────────────────────\n",[4173,28402,28403],{"class":4657,"line":10772},[4173,28404,4761],{"emptyLinePlaceholder":4760},[4173,28406,28407,28409,28411,28414,28417],{"class":4657,"line":10777},[4173,28408,28103],{"class":4661},[4173,28410,11304],{"class":4665},[4173,28412,28413],{"class":4669}," \u002Fetc\u002Fhosts",[4173,28415,28416],{"class":4669}," \u002Fetc\u002Fpasswd",[4173,28418,28419],{"class":4669}," \u002Fetc\u002Fshadow\n",[4173,28421,28422],{"class":4657,"line":10782},[4173,28423,4761],{"emptyLinePlaceholder":4760},[4173,28425,28426],{"class":4657,"line":10787},[4173,28427,28428],{"class":4766},"# → hosts\n",[4173,28430,28431],{"class":4657,"line":10800},[4173,28432,4761],{"emptyLinePlaceholder":4760},[4173,28434,28435],{"class":4657,"line":10805},[4173,28436,28437],{"class":4766},"# passwd\n",[4173,28439,28440],{"class":4657,"line":10818},[4173,28441,4761],{"emptyLinePlaceholder":4760},[4173,28443,28444],{"class":4657,"line":10823},[4173,28445,28446],{"class":4766},"# shadow\n",[4173,28448,28449],{"class":4657,"line":10836},[4173,28450,4761],{"emptyLinePlaceholder":4760},[4173,28452,28453],{"class":4657,"line":10841},[4173,28454,28455],{"class":4766},"# Mehrere Dateien Suffix entfernen\n",[4173,28457,28458],{"class":4657,"line":10846},[4173,28459,4761],{"emptyLinePlaceholder":4760},[4173,28461,28462,28464,28466,28468,28471,28474],{"class":4657,"line":10851},[4173,28463,28103],{"class":4661},[4173,28465,11304],{"class":4665},[4173,28467,24458],{"class":4665},[4173,28469,28470],{"class":4669}," .conf",[4173,28472,28473],{"class":4669}," \u002Fetc\u002Fssh\u002Fsshd_config.conf",[4173,28475,28476],{"class":4669}," \u002Fetc\u002Fnginx\u002Fnginx.conf\n",[4173,28478,28479],{"class":4657,"line":10867},[4173,28480,4761],{"emptyLinePlaceholder":4760},[4173,28482,28483],{"class":4657,"line":10872},[4173,28484,28485],{"class":4766},"# → sshd_config\n",[4173,28487,28488],{"class":4657,"line":10877},[4173,28489,4761],{"emptyLinePlaceholder":4760},[4173,28491,28492],{"class":4657,"line":10882},[4173,28493,28494],{"class":4766},"# nginx\n",[4173,28496,28497],{"class":4657,"line":10890},[4173,28498,4761],{"emptyLinePlaceholder":4760},[4173,28500,28501],{"class":4657,"line":10895},[4173,28502,28503],{"class":4766},"# ─── In Skripten ─────────────────────────────────────────────\n",[4173,28505,28506],{"class":4657,"line":10904},[4173,28507,4761],{"emptyLinePlaceholder":4760},[4173,28509,28510],{"class":4657,"line":10909},[4173,28511,28512],{"class":4766},"# Skriptname ohne Pfad (für Fehlermeldungen)\n",[4173,28514,28515],{"class":4657,"line":10914},[4173,28516,4761],{"emptyLinePlaceholder":4760},[4173,28518,28519,28522,28524,28526,28528,28530,28532,28534],{"class":4657,"line":10919},[4173,28520,28521],{"class":4784},"PROG",[4173,28523,6387],{"class":4788},[4173,28525,10249],{"class":4784},[4173,28527,28103],{"class":4661},[4173,28529,6218],{"class":4669},[4173,28531,6129],{"class":4665},[4173,28533,6207],{"class":4669},[4173,28535,6402],{"class":4784},[4173,28537,28538],{"class":4657,"line":10933},[4173,28539,4761],{"emptyLinePlaceholder":4760},[4173,28541,28542,28544,28547,28550,28553],{"class":4657,"line":10938},[4173,28543,6309],{"class":4665},[4173,28545,28546],{"class":4669}," \"Verwendung: ",[4173,28548,28549],{"class":4784},"$PROG",[4173,28551,28552],{"class":4669}," [OPTIONEN]\"",[4173,28554,28555],{"class":4788}," >&2\n",[4173,28557,28558],{"class":4657,"line":10959},[4173,28559,4761],{"emptyLinePlaceholder":4760},[4173,28561,28562],{"class":4657,"line":10964},[4173,28563,28564],{"class":4766},"# Lock-Datei basierend auf Skriptname\n",[4173,28566,28567],{"class":4657,"line":10969},[4173,28568,4761],{"emptyLinePlaceholder":4760},[4173,28570,28571,28573,28575,28577,28579,28581,28583,28585,28588],{"class":4657,"line":10974},[4173,28572,28521],{"class":4784},[4173,28574,6387],{"class":4788},[4173,28576,10249],{"class":4784},[4173,28578,28103],{"class":4661},[4173,28580,6218],{"class":4669},[4173,28582,6129],{"class":4665},[4173,28584,6207],{"class":4669},[4173,28586,28587],{"class":4669}," .sh",[4173,28589,6402],{"class":4784},[4173,28591,28592],{"class":4657,"line":10982},[4173,28593,4761],{"emptyLinePlaceholder":4760},[4173,28595,28596,28598,28600,28603,28605],{"class":4657,"line":10987},[4173,28597,11242],{"class":4784},[4173,28599,6387],{"class":4788},[4173,28601,28602],{"class":4669},"\"\u002Ftmp\u002F${",[4173,28604,28521],{"class":4784},[4173,28606,28607],{"class":4669},"}.lock\"\n",[4173,28609,28610],{"class":4657,"line":10995},[4173,28611,4761],{"emptyLinePlaceholder":4760},[4173,28613,28614,28616,28618,28620,28622,28624,28626,28628],{"class":4657,"line":11000},[4173,28615,6201],{"class":4788},[4173,28617,6204],{"class":4784},[4173,28619,10577],{"class":4788},[4173,28621,6218],{"class":4669},[4173,28623,11342],{"class":4784},[4173,28625,6207],{"class":4669},[4173,28627,6226],{"class":4784},[4173,28629,6229],{"class":4788},[4173,28631,28632],{"class":4657,"line":11008},[4173,28633,4761],{"emptyLinePlaceholder":4760},[4173,28635,28636,28638,28640,28642,28645],{"class":4657,"line":11013},[4173,28637,6309],{"class":4665},[4173,28639,6218],{"class":4669},[4173,28641,28549],{"class":4784},[4173,28643,28644],{"class":4669}," läuft bereits!\"",[4173,28646,28555],{"class":4788},[4173,28648,28649],{"class":4657,"line":11021},[4173,28650,4761],{"emptyLinePlaceholder":4760},[4173,28652,28653,28655],{"class":4657,"line":11026},[4173,28654,10898],{"class":4665},[4173,28656,10901],{"class":4665},[4173,28658,28659],{"class":4657,"line":11034},[4173,28660,4761],{"emptyLinePlaceholder":4760},[4173,28662,28663],{"class":4657,"line":11039},[4173,28664,6247],{"class":4788},[4173,28666,28667],{"class":4657,"line":11048},[4173,28668,4761],{"emptyLinePlaceholder":4760},[4173,28670,28671,28673,28675,28677],{"class":4657,"line":11053},[4173,28672,11437],{"class":4661},[4173,28674,6218],{"class":4669},[4173,28676,11342],{"class":4784},[4173,28678,6454],{"class":4669},[4173,28680,28681],{"class":4657,"line":21369},[4173,28682,4761],{"emptyLinePlaceholder":4760},[4173,28684,28685,28687,28690,28692,28695],{"class":4657,"line":21374},[4173,28686,11388],{"class":4665},[4173,28688,28689],{"class":4669}," \"rm -f '",[4173,28691,11342],{"class":4784},[4173,28693,28694],{"class":4669},"'\"",[4173,28696,11394],{"class":4669},[4173,28698,28699],{"class":4657,"line":21380},[4173,28700,4761],{"emptyLinePlaceholder":4760},[4173,28702,28703],{"class":4657,"line":21385},[4173,28704,28705],{"class":4766},"# Alle .sh-Dateien ohne Endung verarbeiten\n",[4173,28707,28708],{"class":4657,"line":21397},[4173,28709,4761],{"emptyLinePlaceholder":4760},[4173,28711,28712,28714,28717,28719,28722,28724],{"class":4657,"line":21402},[4173,28713,6425],{"class":4788},[4173,28715,28716],{"class":4784}," f ",[4173,28718,6431],{"class":4788},[4173,28720,28721],{"class":4669}," \u002Fskripte\u002F*.sh",[4173,28723,6498],{"class":4784},[4173,28725,6437],{"class":4788},[4173,28727,28728],{"class":4657,"line":21408},[4173,28729,4761],{"emptyLinePlaceholder":4760},[4173,28731,28732,28735,28737,28739,28741,28743,28745,28747,28749],{"class":4657,"line":21413},[4173,28733,28734],{"class":4784},"name",[4173,28736,6387],{"class":4788},[4173,28738,10249],{"class":4784},[4173,28740,28103],{"class":4661},[4173,28742,6218],{"class":4669},[4173,28744,6894],{"class":4784},[4173,28746,6207],{"class":4669},[4173,28748,28587],{"class":4669},[4173,28750,6402],{"class":4784},[4173,28752,28753],{"class":4657,"line":21425},[4173,28754,4761],{"emptyLinePlaceholder":4760},[4173,28756,28757,28759,28762,28765],{"class":4657,"line":21430},[4173,28758,6309],{"class":4665},[4173,28760,28761],{"class":4669}," \"Verarbeite Skript: ",[4173,28763,28764],{"class":4784},"$name",[4173,28766,6454],{"class":4669},[4173,28768,28769],{"class":4657,"line":21436},[4173,28770,4761],{"emptyLinePlaceholder":4760},[4173,28772,28773],{"class":4657,"line":21441},[4173,28774,6519],{"class":4788},[4173,28776,28777],{"class":4657,"line":21453},[4173,28778,4761],{"emptyLinePlaceholder":4760},[4173,28780,28781],{"class":4657,"line":21458},[4173,28782,28783],{"class":4766},"# Backup mit Datum und originalem Dateinamen\n",[4173,28785,28786],{"class":4657,"line":21464},[4173,28787,4761],{"emptyLinePlaceholder":4760},[4173,28789,28790,28792,28794],{"class":4657,"line":21469},[4173,28791,7210],{"class":4784},[4173,28793,6387],{"class":4788},[4173,28795,28796],{"class":4669},"\"\u002Fetc\u002Fnginx\u002Fnginx.conf\"\n",[4173,28798,28799],{"class":4657,"line":21481},[4173,28800,4761],{"emptyLinePlaceholder":4760},[4173,28802,28803,28806,28808,28811,28813,28815,28817,28820,28822],{"class":4657,"line":21486},[4173,28804,28805],{"class":4784},"BACKUP",[4173,28807,6387],{"class":4788},[4173,28809,28810],{"class":4669},"\"\u002Fbackup\u002F$(",[4173,28812,28103],{"class":4661},[4173,28814,6218],{"class":4669},[4173,28816,11850],{"class":4784},[4173,28818,28819],{"class":4669},"\").$(",[4173,28821,11289],{"class":4661},[4173,28823,28824],{"class":4669}," %Y%m%d)\"\n",[4173,28826,28827],{"class":4657,"line":21492},[4173,28828,4761],{"emptyLinePlaceholder":4760},[4173,28830,28831,28834,28836,28838,28840,28842,28845],{"class":4657,"line":21497},[4173,28832,28833],{"class":4661},"cp",[4173,28835,6218],{"class":4669},[4173,28837,11850],{"class":4784},[4173,28839,6207],{"class":4669},[4173,28841,6218],{"class":4669},[4173,28843,28844],{"class":4784},"$BACKUP",[4173,28846,6454],{"class":4669},[4173,28848,28849],{"class":4657,"line":21503},[4173,28850,4761],{"emptyLinePlaceholder":4760},[4173,28852,28853,28855,28858,28860],{"class":4657,"line":21508},[4173,28854,6309],{"class":4665},[4173,28856,28857],{"class":4669}," \"Backup: ",[4173,28859,28844],{"class":4784},[4173,28861,6454],{"class":4669},[4173,28863,28864],{"class":4657,"line":21518},[4173,28865,4761],{"emptyLinePlaceholder":4760},[4173,28867,28868],{"class":4657,"line":21523},[4173,28869,28870],{"class":4766},"# ─── dirname als Gegenstück ──────────────────────────────────\n",[4173,28872,28873],{"class":4657,"line":21529},[4173,28874,4761],{"emptyLinePlaceholder":4760},[4173,28876,28877,28879,28881],{"class":4657,"line":21534},[4173,28878,7210],{"class":4784},[4173,28880,6387],{"class":4788},[4173,28882,28883],{"class":4669},"\"\u002Fhome\u002Fuser\u002Fdaten\u002Freport.csv\"\n",[4173,28885,28886],{"class":4657,"line":21544},[4173,28887,4761],{"emptyLinePlaceholder":4760},[4173,28889,28890,28893,28895,28897,28900,28902,28904,28906,28908],{"class":4657,"line":21549},[4173,28891,28892],{"class":4784},"DIR",[4173,28894,6387],{"class":4788},[4173,28896,10249],{"class":4784},[4173,28898,28899],{"class":4661},"dirname",[4173,28901,6218],{"class":4669},[4173,28903,11850],{"class":4784},[4173,28905,6207],{"class":4669},[4173,28907,6306],{"class":4784},[4173,28909,28910],{"class":4766},"# → \u002Fhome\u002Fuser\u002Fdaten\n",[4173,28912,28913],{"class":4657,"line":21555},[4173,28914,4761],{"emptyLinePlaceholder":4760},[4173,28916,28917,28920,28922,28924,28926,28928,28930,28932,28935,28937],{"class":4657,"line":21560},[4173,28918,28919],{"class":4784},"NAME",[4173,28921,6387],{"class":4788},[4173,28923,10249],{"class":4784},[4173,28925,28103],{"class":4661},[4173,28927,6218],{"class":4669},[4173,28929,11850],{"class":4784},[4173,28931,6207],{"class":4669},[4173,28933,28934],{"class":4669}," .csv",[4173,28936,6306],{"class":4784},[4173,28938,28939],{"class":4766},"# → report\n",[4173,28941,28942],{"class":4657,"line":21570},[4173,28943,4761],{"emptyLinePlaceholder":4760},[4173,28945,28946,28948,28951,28954],{"class":4657,"line":21575},[4173,28947,6309],{"class":4665},[4173,28949,28950],{"class":4669}," \"Verzeichnis: ",[4173,28952,28953],{"class":4784},"$DIR",[4173,28955,6454],{"class":4669},[4173,28957,28958],{"class":4657,"line":21581},[4173,28959,4761],{"emptyLinePlaceholder":4760},[4173,28961,28962,28964,28967,28970],{"class":4657,"line":21586},[4173,28963,6309],{"class":4665},[4173,28965,28966],{"class":4669}," \"Dateiname: ",[4173,28968,28969],{"class":4784},"$NAME",[4173,28971,6454],{"class":4669},[4173,28973,28974],{"class":4657,"line":21596},[4173,28975,4761],{"emptyLinePlaceholder":4760},[4173,28977,28978,28980,28983,28985,28987,28989],{"class":4657,"line":21601},[4173,28979,6309],{"class":4665},[4173,28981,28982],{"class":4669}," \"Voller Pfad: ",[4173,28984,28953],{"class":4784},[4173,28986,13658],{"class":4669},[4173,28988,28969],{"class":4784},[4173,28990,28991],{"class":4669},".csv\"\n",[16,28993,12997],{"id":28994},"ausgabe-19",[11,28996,28998],{"id":28997},"basename-homemattaprojektskriptsh","basename \u002Fhome\u002Fmatta\u002Fprojekt\u002Fskript.sh",[414,29000,29001],{},"skript.sh",[11,29003,29005],{"id":29004},"basename-homemattaprojektskriptsh-sh","basename \u002Fhome\u002Fmatta\u002Fprojekt\u002Fskript.sh .sh",[414,29007,29008],{},"skript",[11,29010,29012],{"id":29011},"basename-a-varlogsyslog-varlogauthlog-varlogkernlog","basename -a \u002Fvar\u002Flog\u002Fsyslog \u002Fvar\u002Flog\u002Fauth.log \u002Fvar\u002Flog\u002Fkern.log",[414,29014,29015],{},"syslog",[414,29017,29018],{},"auth.log",[414,29020,29021],{},"kern.log",[11,29023,29025],{"id":29024},"basename-a-s-log-varlogsyslog-varlogauthlog","basename -a -s .log \u002Fvar\u002Flog\u002Fsyslog \u002Fvar\u002Flog\u002Fauth.log",[414,29027,29015],{},[414,29029,29030],{},"auth",[11,29032,29034],{"id":29033},"dirname-homemattaprojektskriptsh","dirname \u002Fhome\u002Fmatta\u002Fprojekt\u002Fskript.sh",[414,29036,29037],{},"\u002Fhome\u002Fmatta\u002Fprojekt",[11,29039,8042],{"id":8042},[414,29041,29042,29044,29045,29048],{},[42,29043,12709],{}," Docker ist eine Plattform zur ",[42,29046,29047],{},"Containerisierung von Anwendungen",". Ein Container ist eine isolierte, portable Ausführungsumgebung mit allem was die Anwendung benötigt (Code, Bibliotheken, Konfiguration).",[414,29050,29051,29053,29054,29056],{},[42,29052,7941],{}," docker ",[4173,29055,12720],{}," BEFEHL",[16,29058,29060],{"id":29059},"grundkonzepte","Grundkonzepte",[765,29062,29063,29076],{},[768,29064,29065],{},[771,29066,29067,29072],{},[774,29068,29069],{},[42,29070,29071],{},"Begriff",[774,29073,29074],{},[42,29075,6733],{},[787,29077,29078,29086,29094,29102,29109,29117,29125],{},[771,29079,29080,29083],{},[792,29081,29082],{},"Image",[792,29084,29085],{},"Unveränderliche Vorlage\u002FBauplan für Container",[771,29087,29088,29091],{},[792,29089,29090],{},"Container",[792,29092,29093],{},"Laufende (oder gestoppte) Instanz eines Images",[771,29095,29096,29099],{},[792,29097,29098],{},"Dockerfile",[792,29100,29101],{},"Textdatei mit Anweisungen zum Bauen eines Images",[771,29103,29104,29106],{},[792,29105,3274],{},[792,29107,29108],{},"Speicher für Images (Docker Hub, ghcr.io, eigene)",[771,29110,29111,29114],{},[792,29112,29113],{},"Layer",[792,29115,29116],{},"Jede Dockerfile-Anweisung erzeugt eine unveränderliche Schicht",[771,29118,29119,29122],{},[792,29120,29121],{},"Volume",[792,29123,29124],{},"Persistenter Datenspeicher außerhalb des Containers",[771,29126,29127,29130],{},[792,29128,29129],{},"Network",[792,29131,29132],{},"Virtuelles Netzwerk für Container-Kommunikation",[16,29134,29136],{"id":29135},"wichtige-docker-befehle","Wichtige docker-Befehle",[470,29138,29140],{"id":29139},"images","Images",[765,29142,29143,29155],{},[768,29144,29145],{},[771,29146,29147,29151],{},[774,29148,29149],{},[42,29150,8243],{},[774,29152,29153],{},[42,29154,6733],{},[787,29156,29157,29170,29182,29190,29197,29205,29213,29221,29229,29237,29245],{},[771,29158,29159,29167],{},[792,29160,29161,29162],{},"docker pull IMAGE",[4173,29163,29164],{},[29165,29166],"tag",{},[792,29168,29169],{},"Image von Registry herunterladen",[771,29171,29172,29179],{},[792,29173,29174,29175],{},"docker push IMAGE",[4173,29176,29177],{},[29165,29178],{},[792,29180,29181],{},"Image in Registry hochladen",[771,29183,29184,29187],{},[792,29185,29186],{},"docker build -t NAME .",[792,29188,29189],{},"Image aus Dockerfile im aktuellen Verzeichnis bauen",[771,29191,29192,29194],{},[792,29193,7889],{},[792,29195,29196],{},"Alle lokalen Images auflisten",[771,29198,29199,29202],{},[792,29200,29201],{},"docker rmi IMAGE",[792,29203,29204],{},"Image löschen",[771,29206,29207,29210],{},[792,29208,29209],{},"docker tag QUELLE ZIEL",[792,29211,29212],{},"Image neu taggen",[771,29214,29215,29218],{},[792,29216,29217],{},"docker image prune",[792,29219,29220],{},"Unbenutzte Images löschen",[771,29222,29223,29226],{},[792,29224,29225],{},"docker image inspect IMAGE",[792,29227,29228],{},"Detaillierte Image-Infos",[771,29230,29231,29234],{},[792,29232,29233],{},"docker image history IMAGE",[792,29235,29236],{},"Layer-Historie anzeigen",[771,29238,29239,29242],{},[792,29240,29241],{},"docker save -o datei.tar IMAGE",[792,29243,29244],{},"Image als Tar-Archiv exportieren",[771,29246,29247,29250],{},[792,29248,29249],{},"docker load -i datei.tar",[792,29251,29252],{},"Image aus Tar-Archiv laden",[470,29254,29090],{"id":29255},"container",[765,29257,29258,29270],{},[768,29259,29260],{},[771,29261,29262,29266],{},[774,29263,29264],{},[42,29265,8243],{},[774,29267,29268],{},[42,29269,6733],{},[787,29271,29272,29280,29288,29296,29304,29312,29320,29327,29334,29342,29350,29358,29366,29374,29382,29390],{},[771,29273,29274,29277],{},[792,29275,29276],{},"docker run IMAGE",[792,29278,29279],{},"Container aus Image starten (erstellt neuen Container)",[771,29281,29282,29285],{},[792,29283,29284],{},"docker start CONTAINER",[792,29286,29287],{},"Gestoppten Container starten",[771,29289,29290,29293],{},[792,29291,29292],{},"docker stop CONTAINER",[792,29294,29295],{},"Container graceful stoppen (SIGTERM → SIGKILL)",[771,29297,29298,29301],{},[792,29299,29300],{},"docker restart CONTAINER",[792,29302,29303],{},"Container neu starten",[771,29305,29306,29309],{},[792,29307,29308],{},"docker kill CONTAINER",[792,29310,29311],{},"Container sofort beenden (SIGKILL)",[771,29313,29314,29317],{},[792,29315,29316],{},"docker rm CONTAINER",[792,29318,29319],{},"Gestoppten Container entfernen",[771,29321,29322,29324],{},[792,29323,8257],{},[792,29325,29326],{},"Laufende Container anzeigen",[771,29328,29329,29331],{},[792,29330,8271],{},[792,29332,29333],{},"Alle Container (auch gestoppte)",[771,29335,29336,29339],{},[792,29337,29338],{},"docker exec CONTAINER BEFEHL",[792,29340,29341],{},"Befehl in laufendem Container ausführen",[771,29343,29344,29347],{},[792,29345,29346],{},"docker logs CONTAINER",[792,29348,29349],{},"Container-Logs anzeigen",[771,29351,29352,29355],{},[792,29353,29354],{},"docker inspect CONTAINER",[792,29356,29357],{},"Detaillierte Container-Infos (JSON)",[771,29359,29360,29363],{},[792,29361,29362],{},"docker stats",[792,29364,29365],{},"Ressourcenverbrauch live anzeigen",[771,29367,29368,29371],{},[792,29369,29370],{},"docker top CONTAINER",[792,29372,29373],{},"Prozesse im Container anzeigen",[771,29375,29376,29379],{},[792,29377,29378],{},"docker diff CONTAINER",[792,29380,29381],{},"Dateisystemänderungen seit Start",[771,29383,29384,29387],{},[792,29385,29386],{},"docker cp CONTAINER:PFAD LOKAL",[792,29388,29389],{},"Datei aus Container kopieren",[771,29391,29392,29395],{},[792,29393,29394],{},"docker commit CONTAINER IMAGE",[792,29396,29397],{},"Container in Image umwandeln",[470,29399,29401],{"id":29400},"volumes-und-netzwerke","Volumes und Netzwerke",[765,29403,29404,29416],{},[768,29405,29406],{},[771,29407,29408,29412],{},[774,29409,29410],{},[42,29411,8243],{},[774,29413,29414],{},[42,29415,6733],{},[787,29417,29418,29426,29434,29442,29450,29458,29466,29474,29482,29490],{},[771,29419,29420,29423],{},[792,29421,29422],{},"docker volume create NAME",[792,29424,29425],{},"Volume erstellen",[771,29427,29428,29431],{},[792,29429,29430],{},"docker volume ls",[792,29432,29433],{},"Volumes auflisten",[771,29435,29436,29439],{},[792,29437,29438],{},"docker volume rm NAME",[792,29440,29441],{},"Volume löschen",[771,29443,29444,29447],{},[792,29445,29446],{},"docker volume inspect NAME",[792,29448,29449],{},"Volume-Details",[771,29451,29452,29455],{},[792,29453,29454],{},"docker volume prune",[792,29456,29457],{},"Unbenutzte Volumes löschen",[771,29459,29460,29463],{},[792,29461,29462],{},"docker network create NAME",[792,29464,29465],{},"Netzwerk erstellen",[771,29467,29468,29471],{},[792,29469,29470],{},"docker network ls",[792,29472,29473],{},"Netzwerke auflisten",[771,29475,29476,29479],{},[792,29477,29478],{},"docker network rm NAME",[792,29480,29481],{},"Netzwerk löschen",[771,29483,29484,29487],{},[792,29485,29486],{},"docker network inspect NAME",[792,29488,29489],{},"Netzwerk-Details",[771,29491,29492,29495],{},[792,29493,29494],{},"docker network connect NET CONT",[792,29496,29497],{},"Container zu Netzwerk hinzufügen",[16,29499,29501],{"id":29500},"docker-run-optionen-wichtigste","docker run Optionen (wichtigste)",[765,29503,29504,29516],{},[768,29505,29506],{},[771,29507,29508,29512],{},[774,29509,29510],{},[42,29511,8964],{},[774,29513,29514],{},[42,29515,6733],{},[787,29517,29518,29526,29534,29542,29550,29558,29566,29574,29582,29590,29598,29606,29614,29627,29635,29643,29651,29659,29667,29675,29683],{},[771,29519,29520,29523],{},[792,29521,29522],{},"-d \u002F --detach",[792,29524,29525],{},"Im Hintergrund starten",[771,29527,29528,29531],{},[792,29529,29530],{},"-it",[792,29532,29533],{},"Interaktives Terminal (-i: stdin offen, -t: TTY)",[771,29535,29536,29539],{},[792,29537,29538],{},"--name NAME",[792,29540,29541],{},"Container benennen",[771,29543,29544,29547],{},[792,29545,29546],{},"-p HOST:CONT",[792,29548,29549],{},"Port-Weiterleitung (z.B. -p 8080:80)",[771,29551,29552,29555],{},[792,29553,29554],{},"-v HOST:CONT",[792,29556,29557],{},"Volume \u002F Bind-Mount (-v \u002Flokal:\u002Fcontainer)",[771,29559,29560,29563],{},[792,29561,29562],{},"--volume=vol:\u002Fpfad",[792,29564,29565],{},"Named Volume einbinden",[771,29567,29568,29571],{},[792,29569,29570],{},"-e VAR=WERT",[792,29572,29573],{},"Umgebungsvariable setzen",[771,29575,29576,29579],{},[792,29577,29578],{},"--env-file DATEI",[792,29580,29581],{},"Umgebungsvariablen aus Datei",[771,29583,29584,29587],{},[792,29585,29586],{},"--rm",[792,29588,29589],{},"Container nach Beenden automatisch löschen",[771,29591,29592,29595],{},[792,29593,29594],{},"--restart POLICY",[792,29596,29597],{},"Neustart-Policy (no, always, on-failure, unless-stopped)",[771,29599,29600,29603],{},[792,29601,29602],{},"--network NETZWERK",[792,29604,29605],{},"Container in Netzwerk einbinden",[771,29607,29608,29611],{},[792,29609,29610],{},"--network=host",[792,29612,29613],{},"Host-Netzwerk direkt nutzen",[771,29615,29616,29624],{},[792,29617,29618,29619],{},"-u USER",[4173,29620,29621],{},[29622,29623],"grp",{},[792,29625,29626],{},"Als bestimmten Benutzer ausführen",[771,29628,29629,29632],{},[792,29630,29631],{},"-w DIR",[792,29633,29634],{},"Arbeitsverzeichnis im Container",[771,29636,29637,29640],{},[792,29638,29639],{},"--entrypoint CMD",[792,29641,29642],{},"Standard-Entrypoint überschreiben",[771,29644,29645,29648],{},[792,29646,29647],{},"--memory=512m",[792,29649,29650],{},"RAM-Limit setzen",[771,29652,29653,29656],{},[792,29654,29655],{},"--cpus=1.5",[792,29657,29658],{},"CPU-Limit setzen",[771,29660,29661,29664],{},[792,29662,29663],{},"--read-only",[792,29665,29666],{},"Dateisystem des Containers schreibgeschützt",[771,29668,29669,29672],{},[792,29670,29671],{},"--tmpfs \u002Ftmp",[792,29673,29674],{},"In-Memory-Dateisystem für bestimmten Pfad",[771,29676,29677,29680],{},[792,29678,29679],{},"-l KEY=WERT",[792,29681,29682],{},"Label setzen",[771,29684,29685,29688],{},[792,29686,29687],{},"--hostname NAME",[792,29689,29690],{},"Hostname im Container",[16,29692,29694],{"id":29693},"dockerfile-aufbau","Dockerfile Aufbau",[4647,29696,29698],{"className":8413,"code":29697,"language":8415,"meta":269,"style":269},"# ─── Basisimage ───────────────────────────────────────────────\n\nFROM ubuntu:22.04\n\n# oder für kleinere Images:\n\nFROM alpine:3.19\n\nFROM debian:bookworm-slim\n\n# ─── Metadaten ────────────────────────────────────────────────\n\nLABEL maintainer=\"admin@example.com\"\n\nLABEL version=\"1.0\"\n\nLABEL description=\"Meine Anwendung\"\n\n# ─── Umgebungsvariablen ───────────────────────────────────────\n\nENV APP_VERSION=1.0 \\\n\n",[4653,29699,29700,29705,29709,29716,29720,29725,29729,29736,29740,29747,29751,29756,29760,29769,29773,29783,29787,29797,29801,29806,29810],{"__ignoreMap":269},[4173,29701,29702],{"class":4657,"line":4658},[4173,29703,29704],{"class":4766},"# ─── Basisimage ───────────────────────────────────────────────\n",[4173,29706,29707],{"class":4657,"line":270},[4173,29708,4761],{"emptyLinePlaceholder":4760},[4173,29710,29711,29713],{"class":4657,"line":1263},[4173,29712,8440],{"class":4788},[4173,29714,29715],{"class":4784}," ubuntu:22.04\n",[4173,29717,29718],{"class":4657,"line":4770},[4173,29719,4761],{"emptyLinePlaceholder":4760},[4173,29721,29722],{"class":4657,"line":4775},[4173,29723,29724],{"class":4766},"# oder für kleinere Images:\n",[4173,29726,29727],{"class":4657,"line":6320},[4173,29728,4761],{"emptyLinePlaceholder":4760},[4173,29730,29731,29733],{"class":4657,"line":6325},[4173,29732,8440],{"class":4788},[4173,29734,29735],{"class":4784}," alpine:3.19\n",[4173,29737,29738],{"class":4657,"line":6343},[4173,29739,4761],{"emptyLinePlaceholder":4760},[4173,29741,29742,29744],{"class":4657,"line":6348},[4173,29743,8440],{"class":4788},[4173,29745,29746],{"class":4784}," debian:bookworm-slim\n",[4173,29748,29749],{"class":4657,"line":6457},[4173,29750,4761],{"emptyLinePlaceholder":4760},[4173,29752,29753],{"class":4657,"line":6462},[4173,29754,29755],{"class":4766},"# ─── Metadaten ────────────────────────────────────────────────\n",[4173,29757,29758],{"class":4657,"line":6468},[4173,29759,4761],{"emptyLinePlaceholder":4760},[4173,29761,29762,29764,29766],{"class":4657,"line":6473},[4173,29763,8458],{"class":4788},[4173,29765,8461],{"class":4784},[4173,29767,29768],{"class":4669},"\"admin@example.com\"\n",[4173,29770,29771],{"class":4657,"line":6479},[4173,29772,4761],{"emptyLinePlaceholder":4760},[4173,29774,29775,29777,29780],{"class":4657,"line":6503},[4173,29776,8458],{"class":4788},[4173,29778,29779],{"class":4784}," version=",[4173,29781,29782],{"class":4669},"\"1.0\"\n",[4173,29784,29785],{"class":4657,"line":6516},[4173,29786,4761],{"emptyLinePlaceholder":4760},[4173,29788,29789,29791,29794],{"class":4657,"line":6971},[4173,29790,8458],{"class":4788},[4173,29792,29793],{"class":4784}," description=",[4173,29795,29796],{"class":4669},"\"Meine Anwendung\"\n",[4173,29798,29799],{"class":4657,"line":10649},[4173,29800,4761],{"emptyLinePlaceholder":4760},[4173,29802,29803],{"class":4657,"line":10654},[4173,29804,29805],{"class":4766},"# ─── Umgebungsvariablen ───────────────────────────────────────\n",[4173,29807,29808],{"class":4657,"line":10659},[4173,29809,4761],{"emptyLinePlaceholder":4760},[4173,29811,29812,29814],{"class":4657,"line":10664},[4173,29813,8488],{"class":4788},[4173,29815,29816],{"class":4784}," APP_VERSION=1.0 \\\n",[4647,29818,29820],{"className":4649,"code":29819,"language":4651,"meta":269,"style":269},"NODE_ENV=production \\\n\nPORT=3000\n\n# ─── Build-Argumente (nur zur Build-Zeit verfügbar) ───────────\n\n",[4653,29821,29822,29834,29838,29843,29847],{"__ignoreMap":269},[4173,29823,29824,29827,29829,29832],{"class":4657,"line":4658},[4173,29825,29826],{"class":4784},"NODE_ENV",[4173,29828,6387],{"class":4788},[4173,29830,29831],{"class":4669},"production",[4173,29833,8051],{"class":4661},[4173,29835,29836],{"class":4657,"line":270},[4173,29837,4761],{"emptyLinePlaceholder":4760},[4173,29839,29840],{"class":4657,"line":1263},[4173,29841,29842],{"class":4784},"PORT=3000\n",[4173,29844,29845],{"class":4657,"line":4770},[4173,29846,4761],{"emptyLinePlaceholder":4760},[4173,29848,29849],{"class":4657,"line":4775},[4173,29850,29851],{"class":4766},"# ─── Build-Argumente (nur zur Build-Zeit verfügbar) ───────────\n",[4647,29853,29855],{"className":8413,"code":29854,"language":8415,"meta":269,"style":269},"ARG BUILD_DATE\n\nARG GIT_COMMIT\n\n# ─── Benutzer und Arbeitsverzeichnis ──────────────────────────\n\nRUN groupadd -r appuser && useradd -r -g appuser appuser\n\nWORKDIR \u002Fapp\n\n# ─── Pakete installieren ──────────────────────────────────────\n\nRUN apt-get update && apt-get install -y \\\n\n",[4653,29856,29857,29864,29868,29875,29879,29884,29888,29895,29899,29905,29909,29914,29918],{"__ignoreMap":269},[4173,29858,29859,29861],{"class":4657,"line":4658},[4173,29860,8422],{"class":4788},[4173,29862,29863],{"class":4784}," BUILD_DATE\n",[4173,29865,29866],{"class":4657,"line":270},[4173,29867,4761],{"emptyLinePlaceholder":4760},[4173,29869,29870,29872],{"class":4657,"line":1263},[4173,29871,8422],{"class":4788},[4173,29873,29874],{"class":4784}," GIT_COMMIT\n",[4173,29876,29877],{"class":4657,"line":4770},[4173,29878,4761],{"emptyLinePlaceholder":4760},[4173,29880,29881],{"class":4657,"line":4775},[4173,29882,29883],{"class":4766},"# ─── Benutzer und Arbeitsverzeichnis ──────────────────────────\n",[4173,29885,29886],{"class":4657,"line":6320},[4173,29887,4761],{"emptyLinePlaceholder":4760},[4173,29889,29890,29892],{"class":4657,"line":6325},[4173,29891,8548],{"class":4788},[4173,29893,29894],{"class":4784}," groupadd -r appuser && useradd -r -g appuser appuser\n",[4173,29896,29897],{"class":4657,"line":6343},[4173,29898,4761],{"emptyLinePlaceholder":4760},[4173,29900,29901,29903],{"class":4657,"line":6348},[4173,29902,8500],{"class":4788},[4173,29904,8697],{"class":4784},[4173,29906,29907],{"class":4657,"line":6457},[4173,29908,4761],{"emptyLinePlaceholder":4760},[4173,29910,29911],{"class":4657,"line":6462},[4173,29912,29913],{"class":4766},"# ─── Pakete installieren ──────────────────────────────────────\n",[4173,29915,29916],{"class":4657,"line":6468},[4173,29917,4761],{"emptyLinePlaceholder":4760},[4173,29919,29920,29922],{"class":4657,"line":6473},[4173,29921,8548],{"class":4788},[4173,29923,29924],{"class":4784}," apt-get update && apt-get install -y \\\n",[4647,29926,29928],{"className":4649,"code":29927,"language":4651,"meta":269,"style":269},"curl \\\n\n",[4653,29929,29930],{"__ignoreMap":269},[4173,29931,29932,29935],{"class":4657,"line":4658},[4173,29933,29934],{"class":4661},"curl",[4173,29936,8051],{"class":4665},[414,29938,29939],{},"nginx \\",[414,29941,29942],{},"&& rm -rf \u002Fvar\u002Flib\u002Fapt\u002Flists\u002F* # Image-Größe reduzieren!",[4647,29944,29946],{"className":8413,"code":29945,"language":8415,"meta":269,"style":269},"# ─── Dateien kopieren ─────────────────────────────────────────\n\nCOPY . . # Alles aus Build-Kontext kopieren\n\nCOPY package.json package-lock.json .\u002F # Zuerst nur package-Dateien\n\nRUN npm ci --only=production # Cache-freundlich: nur bei Paket-Änderung\n\nCOPY src\u002F .\u002Fsrc\u002F # Dann den Rest\n\nADD archiv.tar.gz \u002Fapp\u002F # ADD kann auch Archive entpacken\n\n# ─── Port deklarieren (Dokumentation, keine echte Weiterleitung) ─\n\nEXPOSE 3000\n\nEXPOSE 80\u002Ftcp\n\nEXPOSE 53\u002Fudp\n\n# ─── Volume deklarieren ───────────────────────────────────────\n\nVOLUME [\"\u002Fapp\u002Fdata\", \"\u002Fapp\u002Flogs\"]\n\n# ─── Gesundheitscheck ─────────────────────────────────────────\n\nHEALTHCHECK --interval=30s --timeout=10s --retries=3 \\\n\nCMD curl -f http:\u002F\u002Flocalhost:3000\u002Fhealth || exit 1\n\n# ─── Benutzer wechseln (nie als root laufen!) ─────────────────\n\nUSER appuser\n\n# ─── Entrypoint vs CMD ────────────────────────────────────────\n\n# ENTRYPOINT: unveränderlicher Hauptbefehl\n\n# CMD: Standardargumente (überschreibbar mit docker run ... BEFEHL)\n\nENTRYPOINT [\"node\"]\n\nCMD [\"server.js\"]\n\n# → docker run image → node server.js\n\n# → docker run image app.js → node app.js\n\n# → docker run --entrypoint sh image → sh\n\n# Nur CMD (kein Entrypoint):\n\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n\n",[4653,29947,29948,29953,29957,29964,29968,29975,29979,29986,29990,29997,30001,30009,30013,30018,30022,30029,30033,30040,30044,30051,30055,30060,30064,30081,30085,30090,30094,30101,30105,30112,30116,30121,30125,30133,30137,30142,30146,30151,30155,30160,30164,30175,30179,30190,30194,30199,30203,30208,30212,30217,30221,30226,30230],{"__ignoreMap":269},[4173,29949,29950],{"class":4657,"line":4658},[4173,29951,29952],{"class":4766},"# ─── Dateien kopieren ─────────────────────────────────────────\n",[4173,29954,29955],{"class":4657,"line":270},[4173,29956,4761],{"emptyLinePlaceholder":4760},[4173,29958,29959,29961],{"class":4657,"line":1263},[4173,29960,8524],{"class":4788},[4173,29962,29963],{"class":4784}," . . # Alles aus Build-Kontext kopieren\n",[4173,29965,29966],{"class":4657,"line":4770},[4173,29967,4761],{"emptyLinePlaceholder":4760},[4173,29969,29970,29972],{"class":4657,"line":4775},[4173,29971,8524],{"class":4788},[4173,29973,29974],{"class":4784}," package.json package-lock.json .\u002F # Zuerst nur package-Dateien\n",[4173,29976,29977],{"class":4657,"line":6320},[4173,29978,4761],{"emptyLinePlaceholder":4760},[4173,29980,29981,29983],{"class":4657,"line":6325},[4173,29982,8548],{"class":4788},[4173,29984,29985],{"class":4784}," npm ci --only=production # Cache-freundlich: nur bei Paket-Änderung\n",[4173,29987,29988],{"class":4657,"line":6343},[4173,29989,4761],{"emptyLinePlaceholder":4760},[4173,29991,29992,29994],{"class":4657,"line":6348},[4173,29993,8524],{"class":4788},[4173,29995,29996],{"class":4784}," src\u002F .\u002Fsrc\u002F # Dann den Rest\n",[4173,29998,29999],{"class":4657,"line":6457},[4173,30000,4761],{"emptyLinePlaceholder":4760},[4173,30002,30003,30006],{"class":4657,"line":6462},[4173,30004,30005],{"class":4788},"ADD",[4173,30007,30008],{"class":4784}," archiv.tar.gz \u002Fapp\u002F # ADD kann auch Archive entpacken\n",[4173,30010,30011],{"class":4657,"line":6468},[4173,30012,4761],{"emptyLinePlaceholder":4760},[4173,30014,30015],{"class":4657,"line":6473},[4173,30016,30017],{"class":4766},"# ─── Port deklarieren (Dokumentation, keine echte Weiterleitung) ─\n",[4173,30019,30020],{"class":4657,"line":6479},[4173,30021,4761],{"emptyLinePlaceholder":4760},[4173,30023,30024,30026],{"class":4657,"line":6503},[4173,30025,8603],{"class":4788},[4173,30027,30028],{"class":4784}," 3000\n",[4173,30030,30031],{"class":4657,"line":6516},[4173,30032,4761],{"emptyLinePlaceholder":4760},[4173,30034,30035,30037],{"class":4657,"line":6971},[4173,30036,8603],{"class":4788},[4173,30038,30039],{"class":4784}," 80\u002Ftcp\n",[4173,30041,30042],{"class":4657,"line":10649},[4173,30043,4761],{"emptyLinePlaceholder":4760},[4173,30045,30046,30048],{"class":4657,"line":10654},[4173,30047,8603],{"class":4788},[4173,30049,30050],{"class":4784}," 53\u002Fudp\n",[4173,30052,30053],{"class":4657,"line":10659},[4173,30054,4761],{"emptyLinePlaceholder":4760},[4173,30056,30057],{"class":4657,"line":10664},[4173,30058,30059],{"class":4766},"# ─── Volume deklarieren ───────────────────────────────────────\n",[4173,30061,30062],{"class":4657,"line":10676},[4173,30063,4761],{"emptyLinePlaceholder":4760},[4173,30065,30066,30069,30071,30074,30076,30079],{"class":4657,"line":10681},[4173,30067,30068],{"class":4788},"VOLUME",[4173,30070,8623],{"class":4784},[4173,30072,30073],{"class":4669},"\"\u002Fapp\u002Fdata\"",[4173,30075,8629],{"class":4784},[4173,30077,30078],{"class":4669},"\"\u002Fapp\u002Flogs\"",[4173,30080,8635],{"class":4784},[4173,30082,30083],{"class":4657,"line":10702},[4173,30084,4761],{"emptyLinePlaceholder":4760},[4173,30086,30087],{"class":4657,"line":10707},[4173,30088,30089],{"class":4766},"# ─── Gesundheitscheck ─────────────────────────────────────────\n",[4173,30091,30092],{"class":4657,"line":10712},[4173,30093,4761],{"emptyLinePlaceholder":4760},[4173,30095,30096,30098],{"class":4657,"line":10717},[4173,30097,8583],{"class":4788},[4173,30099,30100],{"class":4784}," --interval=30s --timeout=10s --retries=3 \\\n",[4173,30102,30103],{"class":4657,"line":10727},[4173,30104,4761],{"emptyLinePlaceholder":4760},[4173,30106,30107,30109],{"class":4657,"line":10732},[4173,30108,8591],{"class":4788},[4173,30110,30111],{"class":4784}," curl -f http:\u002F\u002Flocalhost:3000\u002Fhealth || exit 1\n",[4173,30113,30114],{"class":4657,"line":10737},[4173,30115,4761],{"emptyLinePlaceholder":4760},[4173,30117,30118],{"class":4657,"line":10742},[4173,30119,30120],{"class":4766},"# ─── Benutzer wechseln (nie als root laufen!) ─────────────────\n",[4173,30122,30123],{"class":4657,"line":10752},[4173,30124,4761],{"emptyLinePlaceholder":4760},[4173,30126,30127,30130],{"class":4657,"line":10757},[4173,30128,30129],{"class":4788},"USER",[4173,30131,30132],{"class":4784}," appuser\n",[4173,30134,30135],{"class":4657,"line":10762},[4173,30136,4761],{"emptyLinePlaceholder":4760},[4173,30138,30139],{"class":4657,"line":10767},[4173,30140,30141],{"class":4766},"# ─── Entrypoint vs CMD ────────────────────────────────────────\n",[4173,30143,30144],{"class":4657,"line":10772},[4173,30145,4761],{"emptyLinePlaceholder":4760},[4173,30147,30148],{"class":4657,"line":10777},[4173,30149,30150],{"class":4766},"# ENTRYPOINT: unveränderlicher Hauptbefehl\n",[4173,30152,30153],{"class":4657,"line":10782},[4173,30154,4761],{"emptyLinePlaceholder":4760},[4173,30156,30157],{"class":4657,"line":10787},[4173,30158,30159],{"class":4766},"# CMD: Standardargumente (überschreibbar mit docker run ... BEFEHL)\n",[4173,30161,30162],{"class":4657,"line":10800},[4173,30163,4761],{"emptyLinePlaceholder":4760},[4173,30165,30166,30169,30171,30173],{"class":4657,"line":10805},[4173,30167,30168],{"class":4788},"ENTRYPOINT",[4173,30170,8623],{"class":4784},[4173,30172,8836],{"class":4669},[4173,30174,8635],{"class":4784},[4173,30176,30177],{"class":4657,"line":10818},[4173,30178,4761],{"emptyLinePlaceholder":4760},[4173,30180,30181,30183,30185,30188],{"class":4657,"line":10823},[4173,30182,8591],{"class":4788},[4173,30184,8623],{"class":4784},[4173,30186,30187],{"class":4669},"\"server.js\"",[4173,30189,8635],{"class":4784},[4173,30191,30192],{"class":4657,"line":10836},[4173,30193,4761],{"emptyLinePlaceholder":4760},[4173,30195,30196],{"class":4657,"line":10841},[4173,30197,30198],{"class":4766},"# → docker run image → node server.js\n",[4173,30200,30201],{"class":4657,"line":10846},[4173,30202,4761],{"emptyLinePlaceholder":4760},[4173,30204,30205],{"class":4657,"line":10851},[4173,30206,30207],{"class":4766},"# → docker run image app.js → node app.js\n",[4173,30209,30210],{"class":4657,"line":10867},[4173,30211,4761],{"emptyLinePlaceholder":4760},[4173,30213,30214],{"class":4657,"line":10872},[4173,30215,30216],{"class":4766},"# → docker run --entrypoint sh image → sh\n",[4173,30218,30219],{"class":4657,"line":10877},[4173,30220,4761],{"emptyLinePlaceholder":4760},[4173,30222,30223],{"class":4657,"line":10882},[4173,30224,30225],{"class":4766},"# Nur CMD (kein Entrypoint):\n",[4173,30227,30228],{"class":4657,"line":10890},[4173,30229,4761],{"emptyLinePlaceholder":4760},[4173,30231,30232,30234,30236,30239,30241,30244,30246,30249],{"class":4657,"line":10895},[4173,30233,8591],{"class":4788},[4173,30235,8623],{"class":4784},[4173,30237,30238],{"class":4669},"\"nginx\"",[4173,30240,8629],{"class":4784},[4173,30242,30243],{"class":4669},"\"-g\"",[4173,30245,8629],{"class":4784},[4173,30247,30248],{"class":4669},"\"daemon off;\"",[4173,30250,8635],{"class":4784},[16,30252,9925],{"id":30253},"beispiele-20",[11,30255,30257],{"id":30256},"einfacher-container-start","Einfacher Container-Start",[4647,30259,30261],{"className":4649,"code":30260,"language":4651,"meta":269,"style":269},"docker run hello-world\n\n# Nginx-Webserver auf Port 8080\n\ndocker run -d -p 8080:80 --name mein-nginx nginx:alpine\n\n# Interaktive Shell in Ubuntu\n\ndocker run -it --rm ubuntu:22.04 bash\n\n# Image bauen\n\ndocker build -t meine-app:1.0 .\n\ndocker build -t meine-app:1.0 -f Dockerfile.prod .\n\n# Container-Logs verfolgen\n\ndocker logs -f mein-container\n\n# In laufenden Container einsteigen\n\ndocker exec -it mein-container bash\n\ndocker exec -it mein-container sh # für Alpine-Images\n\n# Port-Info anzeigen\n\ndocker port mein-container\n\n# Alle Container und Images aufräumen\n\ndocker system prune -af --volumes\n\n# Ressourcen aller laufenden Container\n\ndocker stats --no-stream\n\n# Container-IP-Adresse\n\ndocker inspect mein-container | grep -i ipaddress\n\n# docker compose\n\n",[4653,30262,30263,30272,30276,30281,30285,30305,30309,30314,30318,30336,30340,30345,30349,30363,30367,30384,30388,30393,30397,30409,30413,30418,30422,30436,30440,30456,30460,30465,30469,30478,30482,30487,30491,30507,30511,30516,30520,30530,30534,30539,30543,30561,30565],{"__ignoreMap":269},[4173,30264,30265,30267,30269],{"class":4657,"line":4658},[4173,30266,8042],{"class":4661},[4173,30268,8045],{"class":4669},[4173,30270,30271],{"class":4669}," hello-world\n",[4173,30273,30274],{"class":4657,"line":270},[4173,30275,4761],{"emptyLinePlaceholder":4760},[4173,30277,30278],{"class":4657,"line":1263},[4173,30279,30280],{"class":4766},"# Nginx-Webserver auf Port 8080\n",[4173,30282,30283],{"class":4657,"line":4770},[4173,30284,4761],{"emptyLinePlaceholder":4760},[4173,30286,30287,30289,30291,30293,30295,30297,30299,30302],{"class":4657,"line":4775},[4173,30288,8042],{"class":4661},[4173,30290,8045],{"class":4669},[4173,30292,8048],{"class":4665},[4173,30294,8206],{"class":4665},[4173,30296,8209],{"class":4669},[4173,30298,8212],{"class":4665},[4173,30300,30301],{"class":4669}," mein-nginx",[4173,30303,30304],{"class":4669}," nginx:alpine\n",[4173,30306,30307],{"class":4657,"line":6320},[4173,30308,4761],{"emptyLinePlaceholder":4760},[4173,30310,30311],{"class":4657,"line":6325},[4173,30312,30313],{"class":4766},"# Interaktive Shell in Ubuntu\n",[4173,30315,30316],{"class":4657,"line":6343},[4173,30317,4761],{"emptyLinePlaceholder":4760},[4173,30319,30320,30322,30324,30327,30330,30333],{"class":4657,"line":6348},[4173,30321,8042],{"class":4661},[4173,30323,8045],{"class":4669},[4173,30325,30326],{"class":4665}," -it",[4173,30328,30329],{"class":4665}," --rm",[4173,30331,30332],{"class":4669}," ubuntu:22.04",[4173,30334,30335],{"class":4669}," bash\n",[4173,30337,30338],{"class":4657,"line":6457},[4173,30339,4761],{"emptyLinePlaceholder":4760},[4173,30341,30342],{"class":4657,"line":6462},[4173,30343,30344],{"class":4766},"# Image bauen\n",[4173,30346,30347],{"class":4657,"line":6468},[4173,30348,4761],{"emptyLinePlaceholder":4760},[4173,30350,30351,30353,30356,30358,30361],{"class":4657,"line":6473},[4173,30352,8042],{"class":4661},[4173,30354,30355],{"class":4669}," build",[4173,30357,15509],{"class":4665},[4173,30359,30360],{"class":4669}," meine-app:1.0",[4173,30362,9101],{"class":4669},[4173,30364,30365],{"class":4657,"line":6479},[4173,30366,4761],{"emptyLinePlaceholder":4760},[4173,30368,30369,30371,30373,30375,30377,30379,30382],{"class":4657,"line":6503},[4173,30370,8042],{"class":4661},[4173,30372,30355],{"class":4669},[4173,30374,15509],{"class":4665},[4173,30376,30360],{"class":4669},[4173,30378,11337],{"class":4665},[4173,30380,30381],{"class":4669}," Dockerfile.prod",[4173,30383,9101],{"class":4669},[4173,30385,30386],{"class":4657,"line":6516},[4173,30387,4761],{"emptyLinePlaceholder":4760},[4173,30389,30390],{"class":4657,"line":6971},[4173,30391,30392],{"class":4766},"# Container-Logs verfolgen\n",[4173,30394,30395],{"class":4657,"line":10649},[4173,30396,4761],{"emptyLinePlaceholder":4760},[4173,30398,30399,30401,30404,30406],{"class":4657,"line":10654},[4173,30400,8042],{"class":4661},[4173,30402,30403],{"class":4669}," logs",[4173,30405,11337],{"class":4665},[4173,30407,30408],{"class":4669}," mein-container\n",[4173,30410,30411],{"class":4657,"line":10659},[4173,30412,4761],{"emptyLinePlaceholder":4760},[4173,30414,30415],{"class":4657,"line":10664},[4173,30416,30417],{"class":4766},"# In laufenden Container einsteigen\n",[4173,30419,30420],{"class":4657,"line":10676},[4173,30421,4761],{"emptyLinePlaceholder":4760},[4173,30423,30424,30426,30429,30431,30434],{"class":4657,"line":10681},[4173,30425,8042],{"class":4661},[4173,30427,30428],{"class":4669}," exec",[4173,30430,30326],{"class":4665},[4173,30432,30433],{"class":4669}," mein-container",[4173,30435,30335],{"class":4669},[4173,30437,30438],{"class":4657,"line":10702},[4173,30439,4761],{"emptyLinePlaceholder":4760},[4173,30441,30442,30444,30446,30448,30450,30453],{"class":4657,"line":10707},[4173,30443,8042],{"class":4661},[4173,30445,30428],{"class":4669},[4173,30447,30326],{"class":4665},[4173,30449,30433],{"class":4669},[4173,30451,30452],{"class":4669}," sh",[4173,30454,30455],{"class":4766}," # für Alpine-Images\n",[4173,30457,30458],{"class":4657,"line":10712},[4173,30459,4761],{"emptyLinePlaceholder":4760},[4173,30461,30462],{"class":4657,"line":10717},[4173,30463,30464],{"class":4766},"# Port-Info anzeigen\n",[4173,30466,30467],{"class":4657,"line":10727},[4173,30468,4761],{"emptyLinePlaceholder":4760},[4173,30470,30471,30473,30476],{"class":4657,"line":10732},[4173,30472,8042],{"class":4661},[4173,30474,30475],{"class":4669}," port",[4173,30477,30408],{"class":4669},[4173,30479,30480],{"class":4657,"line":10737},[4173,30481,4761],{"emptyLinePlaceholder":4760},[4173,30483,30484],{"class":4657,"line":10742},[4173,30485,30486],{"class":4766},"# Alle Container und Images aufräumen\n",[4173,30488,30489],{"class":4657,"line":10752},[4173,30490,4761],{"emptyLinePlaceholder":4760},[4173,30492,30493,30495,30498,30501,30504],{"class":4657,"line":10757},[4173,30494,8042],{"class":4661},[4173,30496,30497],{"class":4669}," system",[4173,30499,30500],{"class":4669}," prune",[4173,30502,30503],{"class":4665}," -af",[4173,30505,30506],{"class":4665}," --volumes\n",[4173,30508,30509],{"class":4657,"line":10762},[4173,30510,4761],{"emptyLinePlaceholder":4760},[4173,30512,30513],{"class":4657,"line":10767},[4173,30514,30515],{"class":4766},"# Ressourcen aller laufenden Container\n",[4173,30517,30518],{"class":4657,"line":10772},[4173,30519,4761],{"emptyLinePlaceholder":4760},[4173,30521,30522,30524,30527],{"class":4657,"line":10777},[4173,30523,8042],{"class":4661},[4173,30525,30526],{"class":4669}," stats",[4173,30528,30529],{"class":4665}," --no-stream\n",[4173,30531,30532],{"class":4657,"line":10782},[4173,30533,4761],{"emptyLinePlaceholder":4760},[4173,30535,30536],{"class":4657,"line":10787},[4173,30537,30538],{"class":4766},"# Container-IP-Adresse\n",[4173,30540,30541],{"class":4657,"line":10800},[4173,30542,4761],{"emptyLinePlaceholder":4760},[4173,30544,30545,30547,30550,30552,30554,30556,30558],{"class":4657,"line":10805},[4173,30546,8042],{"class":4661},[4173,30548,30549],{"class":4669}," inspect",[4173,30551,30433],{"class":4669},[4173,30553,8928],{"class":4788},[4173,30555,8931],{"class":4661},[4173,30557,8941],{"class":4665},[4173,30559,30560],{"class":4669}," ipaddress\n",[4173,30562,30563],{"class":4657,"line":10818},[4173,30564,4761],{"emptyLinePlaceholder":4760},[4173,30566,30567],{"class":4657,"line":10823},[4173,30568,30569],{"class":4766},"# docker compose\n",[414,30571,30572,30574,30575,30578],{},[42,30573,12709],{}," docker compose (früher docker-compose) verwaltet ",[42,30576,30577],{},"Multi-Container-Anwendungen"," über eine einzige YAML-Datei. Es orchestriert das gemeinsame Starten, Stoppen und Konfigurieren mehrerer zusammengehöriger Container.",[414,30580,30581,30583,30584,30586,30587,30590,30592,30595],{},[42,30582,7941],{}," docker compose ",[4173,30585,12720],{}," BEFEHL ",[4173,30588,30589],{},"SERVICE...",[7135,30591],{},[42,30593,30594],{},"Standarddatei:"," docker-compose.yml (oder docker-compose.yaml)",[16,30597,30599],{"id":30598},"alle-docker-compose-befehle","Alle docker compose Befehle",[765,30601,30602,30614],{},[768,30603,30604],{},[771,30605,30606,30610],{},[774,30607,30608],{},[42,30609,8243],{},[774,30611,30612],{},[42,30613,6733],{},[787,30615,30616,30624,30632,30640,30648,30655,30663,30671,30679,30687,30695,30702,30710,30717,30725,30733,30740,30747,30755,30762,30770,30778,30785,30793,30801],{},[771,30617,30618,30621],{},[792,30619,30620],{},"up",[792,30622,30623],{},"Container erstellen und starten",[771,30625,30626,30629],{},[792,30627,30628],{},"down",[792,30630,30631],{},"Container stoppen und entfernen",[771,30633,30634,30637],{},[792,30635,30636],{},"start",[792,30638,30639],{},"Gestoppte Container starten (ohne neu zu erstellen)",[771,30641,30642,30645],{},[792,30643,30644],{},"stop",[792,30646,30647],{},"Container graceful stoppen (SIGTERM)",[771,30649,30650,30653],{},[792,30651,30652],{},"restart",[792,30654,29303],{},[771,30656,30657,30660],{},[792,30658,30659],{},"pause",[792,30661,30662],{},"Container einfrieren (SIGSTOP)",[771,30664,30665,30668],{},[792,30666,30667],{},"unpause",[792,30669,30670],{},"Eingefrorene Container fortsetzen",[771,30672,30673,30676],{},[792,30674,30675],{},"build",[792,30677,30678],{},"Images (neu) bauen",[771,30680,30681,30684],{},[792,30682,30683],{},"pull",[792,30685,30686],{},"Images aller Services herunterladen",[771,30688,30689,30692],{},[792,30690,30691],{},"push",[792,30693,30694],{},"Images in Registry hochladen",[771,30696,30697,30699],{},[792,30698,8922],{},[792,30700,30701],{},"Status aller Container",[771,30703,30704,30707],{},[792,30705,30706],{},"logs",[792,30708,30709],{},"Logs aller oder bestimmter Services",[771,30711,30712,30715],{},[792,30713,30714],{},"exec",[792,30716,29341],{},[771,30718,30719,30722],{},[792,30720,30721],{},"run",[792,30723,30724],{},"Einmaligen Befehl in neuem Container ausführen",[771,30726,30727,30730],{},[792,30728,30729],{},"config",[792,30731,30732],{},"Konfiguration ausgeben \u002F validieren",[771,30734,30735,30737],{},[792,30736,29139],{},[792,30738,30739],{},"Images der definierten Services auflisten",[771,30741,30742,30744],{},[792,30743,11334],{},[792,30745,30746],{},"Gestoppte Container entfernen",[771,30748,30749,30752],{},[792,30750,30751],{},"kill",[792,30753,30754],{},"Container sofort mit Signal beenden",[771,30756,30757,30759],{},[792,30758,4443],{},[792,30760,30761],{},"Prozesse in laufenden Containern",[771,30763,30764,30767],{},[792,30765,30766],{},"events",[792,30768,30769],{},"Echtzeit-Ereignisstream ausgeben",[771,30771,30772,30775],{},[792,30773,30774],{},"port",[792,30776,30777],{},"Published Port eines Services anzeigen",[771,30779,30780,30782],{},[792,30781,28833],{},[792,30783,30784],{},"Dateien zwischen Host und Container kopieren",[771,30786,30787,30790],{},[792,30788,30789],{},"wait",[792,30791,30792],{},"Warten bis Container beendet sind",[771,30794,30795,30798],{},[792,30796,30797],{},"watch",[792,30799,30800],{},"Quellcode-Änderungen live in Container übertragen",[771,30802,30803,30806],{},[792,30804,30805],{},"version",[792,30807,30808],{},"Versionsinformationen",[16,30810,30812],{"id":30811},"optionen-für-docker-compose-up","Optionen für docker compose up",[765,30814,30815,30827],{},[768,30816,30817],{},[771,30818,30819,30823],{},[774,30820,30821],{},[42,30822,8964],{},[774,30824,30825],{},[42,30826,6733],{},[787,30828,30829,30836,30844,30852,30860,30868,30876,30884,30892,30900,30908,30916,30924],{},[771,30830,30831,30833],{},[792,30832,29522],{},[792,30834,30835],{},"Im Hintergrund starten (detached mode)",[771,30837,30838,30841],{},[792,30839,30840],{},"--build",[792,30842,30843],{},"Images neu bauen vor dem Start",[771,30845,30846,30849],{},[792,30847,30848],{},"--no-build",[792,30850,30851],{},"Images nicht bauen (auch wenn Dockerfile neuer)",[771,30853,30854,30857],{},[792,30855,30856],{},"--no-recreate",[792,30858,30859],{},"Existierende Container nicht neu erstellen",[771,30861,30862,30865],{},[792,30863,30864],{},"--force-recreate",[792,30866,30867],{},"Container immer neu erstellen",[771,30869,30870,30873],{},[792,30871,30872],{},"--always-recreate-deps",[792,30874,30875],{},"Abhängigkeiten immer neu erstellen",[771,30877,30878,30881],{},[792,30879,30880],{},"--remove-orphans",[792,30882,30883],{},"Container für nicht mehr definierte Services entfernen",[771,30885,30886,30889],{},[792,30887,30888],{},"--scale SERVICE=N",[792,30890,30891],{},"Service auf N Instanzen skalieren",[771,30893,30894,30897],{},[792,30895,30896],{},"-t N \u002F --timeout N",[792,30898,30899],{},"Stop-Timeout in Sekunden (Standard: 10)",[771,30901,30902,30905],{},[792,30903,30904],{},"--wait",[792,30906,30907],{},"Warten bis alle Container healthy sind",[771,30909,30910,30913],{},[792,30911,30912],{},"--wait-timeout N",[792,30914,30915],{},"Timeout für --wait",[771,30917,30918,30921],{},[792,30919,30920],{},"--no-attach SERVICE",[792,30922,30923],{},"Logs dieses Services nicht anzeigen",[771,30925,30926,30929],{},[792,30927,30928],{},"--pull always\u002Fmissing\u002Fnever",[792,30930,30931],{},"Pull-Policy für Images",[16,30933,30935],{"id":30934},"optionen-für-docker-compose-down","Optionen für docker compose down",[765,30937,30938,30950],{},[768,30939,30940],{},[771,30941,30942,30946],{},[774,30943,30944],{},[42,30945,8964],{},[774,30947,30948],{},[42,30949,6733],{},[787,30951,30952,30960,30968,30976,30983],{},[771,30953,30954,30957],{},[792,30955,30956],{},"-v \u002F --volumes",[792,30958,30959],{},"Named Volumes und anonyme Volumes ebenfalls löschen",[771,30961,30962,30965],{},[792,30963,30964],{},"--rmi all",[792,30966,30967],{},"Alle Images der Services entfernen",[771,30969,30970,30973],{},[792,30971,30972],{},"--rmi local",[792,30974,30975],{},"Nur lokal gebaute Images entfernen",[771,30977,30978,30980],{},[792,30979,30880],{},[792,30981,30982],{},"Orphan-Container entfernen",[771,30984,30985,30987],{},[792,30986,30896],{},[792,30988,30989],{},"Stop-Timeout",[16,30991,30993],{"id":30992},"optionen-für-docker-compose-logs","Optionen für docker compose logs",[765,30995,30996,31008],{},[768,30997,30998],{},[771,30999,31000,31004],{},[774,31001,31002],{},[42,31003,8964],{},[774,31005,31006],{},[42,31007,6733],{},[787,31009,31010,31018,31026,31034,31042,31050],{},[771,31011,31012,31015],{},[792,31013,31014],{},"-f \u002F --follow",[792,31016,31017],{},"Logs live verfolgen",[771,31019,31020,31023],{},[792,31021,31022],{},"--tail=N",[792,31024,31025],{},"Nur letzte N Zeilen anzeigen",[771,31027,31028,31031],{},[792,31029,31030],{},"-t \u002F --timestamps",[792,31032,31033],{},"Zeitstempel voranstellen",[771,31035,31036,31039],{},[792,31037,31038],{},"--no-log-prefix",[792,31040,31041],{},"Service-Namen nicht voranstellen",[771,31043,31044,31047],{},[792,31045,31046],{},"--since ZEIT",[792,31048,31049],{},"Logs ab bestimmtem Zeitpunkt (z.B. 1h, 2024-01-01)",[771,31051,31052,31055],{},[792,31053,31054],{},"--until ZEIT",[792,31056,31057],{},"Logs bis zu bestimmtem Zeitpunkt",[16,31059,31061],{"id":31060},"optionen-für-docker-compose-exec","Optionen für docker compose exec",[765,31063,31064,31076],{},[768,31065,31066],{},[771,31067,31068,31072],{},[774,31069,31070],{},[42,31071,8964],{},[774,31073,31074],{},[42,31075,6733],{},[787,31077,31078,31085,31092,31098,31105,31113],{},[771,31079,31080,31082],{},[792,31081,29530],{},[792,31083,31084],{},"Interaktives Terminal",[771,31086,31087,31089],{},[792,31088,29618],{},[792,31090,31091],{},"Als Benutzer ausführen",[771,31093,31094,31096],{},[792,31095,29570],{},[792,31097,29573],{},[771,31099,31100,31102],{},[792,31101,29631],{},[792,31103,31104],{},"Arbeitsverzeichnis setzen",[771,31106,31107,31110],{},[792,31108,31109],{},"--no-TTY",[792,31111,31112],{},"Kein TTY",[771,31114,31115,31118],{},[792,31116,31117],{},"--index=N",[792,31119,31120],{},"Bei skaliertem Service: N-te Instanz (Standard: 1)",[16,31122,31124],{"id":31123},"allgemeine-optionen-vor-dem-befehl","Allgemeine Optionen (vor dem Befehl)",[765,31126,31127,31139],{},[768,31128,31129],{},[771,31130,31131,31135],{},[774,31132,31133],{},[42,31134,8964],{},[774,31136,31137],{},[42,31138,6733],{},[787,31140,31141,31148,31156,31164,31171,31179,31187],{},[771,31142,31143,31145],{},[792,31144,19423],{},[792,31146,31147],{},"Andere Compose-Datei verwenden",[771,31149,31150,31153],{},[792,31151,31152],{},"-p NAME",[792,31154,31155],{},"Projektname festlegen (Standard: Verzeichnisname)",[771,31157,31158,31161],{},[792,31159,31160],{},"--profile PROFIL",[792,31162,31163],{},"Service-Profile aktivieren",[771,31165,31166,31168],{},[792,31167,29578],{},[792,31169,31170],{},"Andere .env-Datei verwenden",[771,31172,31173,31176],{},[792,31174,31175],{},"--no-ansi",[792,31177,31178],{},"Keine Farb-Ausgabe",[771,31180,31181,31184],{},[792,31182,31183],{},"--progress auto\u002Ftty\u002Fplain\u002Fquiet",[792,31185,31186],{},"Ausgabe-Stil",[771,31188,31189,31192],{},[792,31190,31191],{},"--ansi auto\u002Fnever\u002Falways",[792,31193,31194],{},"ANSI-Farben steuern",[16,31196,31198],{"id":31197},"aufbau-einer-docker-composeyml-vollständiges-beispiel","Aufbau einer docker-compose.yml – vollständiges Beispiel",[4647,31200,31204],{"className":31201,"code":31202,"language":31203,"meta":269,"style":269},"language-yaml shiki shiki-themes github-light github-dark","version: '3.9'\n\nservices:\n\nfrontend:\n\nbuild:\n\ncontext: .\u002Fclient-react\n\ndockerfile: Dockerfile\n\nargs:\n\n- REACT_APP_VERSION=1.0.0\n\nimage: 'mein-frontend:latest'\n\ncontainer_name: frontend\n\nhostname: frontend\n\nrestart: unless-stopped\n\nports:\n\n- '3000:3000'\n\n- '127.0.0.1:4000:4000'\n\nvolumes:\n\n- '.\u002Fsrc:\u002Fapp\u002Fsrc'\n\n- \u002Fapp\u002Fnode_modules\n\nenvironment:\n\nNODE_ENV: development\n\nAPI_URL: 'http:\u002F\u002Fbackend:8080'\n\nenv_file:\n\n- .env\n\n- .env.local\n\nnetworks:\n\n- frontend-net\n\ndepends_on:\n\nbackend:\n\ncondition: service_healthy\n\nhealthcheck:\n\ntest:\n\n- CMD\n\n- curl\n\n- '-f'\n\n- 'http:\u002F\u002Flocalhost:3000'\n\ninterval: 30s\n\ntimeout: 10s\n\nretries: 3\n\nstart_period: 60s\n\nlogging:\n\ndriver: json-file\n\noptions:\n\nmax-size: 10m\n\nmax-file: '3'\n\nlabels:\n\n- traefik.enable=true\n\n- traefik.http.routers.frontend.rule=Host(`app.example.com`)\n\ndeploy:\n\nresources:\n\nlimits:\n\ncpus: '0.5'\n\nmemory: 256M\n\nreservations:\n\nmemory: 128M\n\nbackend:\n\nbuild:\n\ncontext: .\u002Fapi-golang\n\nrestart: always\n\nports:\n\n- '8080:8080'\n\nenvironment:\n\n- DB_HOST=database\n\n- DB_PORT=5432\n\n- 'DB_NAME=${POSTGRES_DB}'\n\n- 'DB_USER=${POSTGRES_USER}'\n\n- 'DB_PASSWORD=${POSTGRES_PASSWORD}'\n\nnetworks:\n\n- frontend-net\n\n- backend-net\n\ndepends_on:\n\ndatabase:\n\ncondition: service_healthy\n\nhealthcheck:\n\ntest:\n\n- CMD-SHELL\n\n- 'wget -q --spider http:\u002F\u002Flocalhost:8080\u002Fhealth || exit 1'\n\ninterval: 10s\n\ntimeout: 5s\n\nretries: 5\n\nstart_period: 30s\n\ndatabase:\n\nimage: 'postgres:15-alpine'\n\nrestart: always\n\nvolumes:\n\n- 'db_data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata'\n\n- '.\u002Finit.sql:\u002Fdocker-entrypoint-initdb.d\u002Finit.sql'\n\nenvironment:\n\nPOSTGRES_DB: '${POSTGRES_DB:-myapp}'\n\nPOSTGRES_USER: '${POSTGRES_USER:-user}'\n\nPOSTGRES_PASSWORD: '${POSTGRES_PASSWORD:?DB-Passwort erforderlich!}'\n\nnetworks:\n\n- backend-net\n\nhealthcheck:\n\ntest:\n\n- CMD-SHELL\n\n- 'pg_isready -U ${POSTGRES_USER:-user}'\n\ninterval: 10s\n\ntimeout: 5s\n\nretries: 5\n\nexpose:\n\n- '5432'\n\ncache:\n\nimage: 'redis:7-alpine'\n\nrestart: unless-stopped\n\ncommand: redis-server --appendonly yes\n\nvolumes:\n\n- 'redis_data:\u002Fdata'\n\nnetworks:\n\n- backend-net\n\nprofiles:\n\n- cache\n\nvolumes:\n\ndb_data:\n\ndriver: local\n\nredis_data: null\n\nnginx_logs:\n\ndriver: local\n\ndriver_opts:\n\ntype: none\n\no: bind\n\ndevice: \u002Fsrv\u002Flogs\u002Fnginx\n\nnetworks:\n\nfrontend-net:\n\ndriver: bridge\n\nbackend-net:\n\ndriver: bridge\n\ninternal: true\n\nmonitoring:\n\nexternal: true\n\nname: monitoring_net\n\n","yaml",[4653,31205,31206,31216,31220,31227,31231,31238,31242,31248,31252,31262,31266,31275,31279,31286,31290,31298,31302,31312,31316,31326,31330,31338,31342,31351,31355,31362,31366,31373,31377,31384,31388,31395,31399,31406,31410,31417,31421,31428,31432,31441,31445,31455,31459,31466,31470,31477,31481,31488,31492,31499,31503,31510,31514,31521,31525,31532,31536,31546,31550,31557,31561,31567,31571,31578,31582,31589,31593,31600,31604,31611,31615,31625,31629,31639,31643,31653,31657,31667,31671,31678,31682,31692,31696,31703,31707,31717,31721,31731,31735,31742,31746,31753,31757,31764,31768,31775,31779,31786,31790,31797,31801,31811,31815,31825,31829,31836,31840,31849,31853,31859,31863,31869,31873,31882,31886,31895,31899,31905,31909,31916,31920,31926,31930,31937,31941,31948,31952,31959,31963,31970,31974,31981,31985,31991,31995,32001,32005,32012,32016,32022,32026,32033,32037,32045,32049,32055,32059,32065,32069,32076,32080,32087,32091,32099,32103,32112,32116,32125,32129,32137,32141,32147,32151,32160,32164,32172,32176,32182,32186,32193,32197,32204,32208,32214,32218,32228,32232,32242,32246,32256,32260,32266,32270,32276,32280,32286,32290,32296,32300,32306,32310,32317,32321,32329,32333,32341,32345,32353,32357,32364,32368,32375,32379,32386,32390,32399,32403,32411,32415,32425,32429,32435,32439,32446,32451,32458,32463,32470,32475,32483,32488,32496,32501,32508,32513,32521,32526,32536,32541,32552,32557,32565,32570,32579,32584,32592,32597,32608,32613,32623,32628,32639,32644,32651,32656,32664,32669,32679,32684,32692,32697,32706,32711,32721,32726,32734,32739,32749,32754],{"__ignoreMap":269},[4173,31207,31208,31211,31213],{"class":4657,"line":4658},[4173,31209,30805],{"class":31210},"s9eBZ",[4173,31212,7412],{"class":4784},[4173,31214,31215],{"class":4669},"'3.9'\n",[4173,31217,31218],{"class":4657,"line":270},[4173,31219,4761],{"emptyLinePlaceholder":4760},[4173,31221,31222,31225],{"class":4657,"line":1263},[4173,31223,31224],{"class":31210},"services",[4173,31226,2815],{"class":4784},[4173,31228,31229],{"class":4657,"line":4770},[4173,31230,4761],{"emptyLinePlaceholder":4760},[4173,31232,31233,31236],{"class":4657,"line":4775},[4173,31234,31235],{"class":31210},"frontend",[4173,31237,2815],{"class":4784},[4173,31239,31240],{"class":4657,"line":6320},[4173,31241,4761],{"emptyLinePlaceholder":4760},[4173,31243,31244,31246],{"class":4657,"line":6325},[4173,31245,30675],{"class":31210},[4173,31247,2815],{"class":4784},[4173,31249,31250],{"class":4657,"line":6343},[4173,31251,4761],{"emptyLinePlaceholder":4760},[4173,31253,31254,31257,31259],{"class":4657,"line":6348},[4173,31255,31256],{"class":31210},"context",[4173,31258,7412],{"class":4784},[4173,31260,31261],{"class":4669},".\u002Fclient-react\n",[4173,31263,31264],{"class":4657,"line":6457},[4173,31265,4761],{"emptyLinePlaceholder":4760},[4173,31267,31268,31270,31272],{"class":4657,"line":6462},[4173,31269,8415],{"class":31210},[4173,31271,7412],{"class":4784},[4173,31273,31274],{"class":4669},"Dockerfile\n",[4173,31276,31277],{"class":4657,"line":6468},[4173,31278,4761],{"emptyLinePlaceholder":4760},[4173,31280,31281,31284],{"class":4657,"line":6473},[4173,31282,31283],{"class":31210},"args",[4173,31285,2815],{"class":4784},[4173,31287,31288],{"class":4657,"line":6479},[4173,31289,4761],{"emptyLinePlaceholder":4760},[4173,31291,31292,31295],{"class":4657,"line":6503},[4173,31293,31294],{"class":4784},"- ",[4173,31296,31297],{"class":4669},"REACT_APP_VERSION=1.0.0\n",[4173,31299,31300],{"class":4657,"line":6516},[4173,31301,4761],{"emptyLinePlaceholder":4760},[4173,31303,31304,31307,31309],{"class":4657,"line":6971},[4173,31305,31306],{"class":31210},"image",[4173,31308,7412],{"class":4784},[4173,31310,31311],{"class":4669},"'mein-frontend:latest'\n",[4173,31313,31314],{"class":4657,"line":10649},[4173,31315,4761],{"emptyLinePlaceholder":4760},[4173,31317,31318,31321,31323],{"class":4657,"line":10654},[4173,31319,31320],{"class":31210},"container_name",[4173,31322,7412],{"class":4784},[4173,31324,31325],{"class":4669},"frontend\n",[4173,31327,31328],{"class":4657,"line":10659},[4173,31329,4761],{"emptyLinePlaceholder":4760},[4173,31331,31332,31334,31336],{"class":4657,"line":10664},[4173,31333,12009],{"class":31210},[4173,31335,7412],{"class":4784},[4173,31337,31325],{"class":4669},[4173,31339,31340],{"class":4657,"line":10676},[4173,31341,4761],{"emptyLinePlaceholder":4760},[4173,31343,31344,31346,31348],{"class":4657,"line":10681},[4173,31345,30652],{"class":31210},[4173,31347,7412],{"class":4784},[4173,31349,31350],{"class":4669},"unless-stopped\n",[4173,31352,31353],{"class":4657,"line":10702},[4173,31354,4761],{"emptyLinePlaceholder":4760},[4173,31356,31357,31360],{"class":4657,"line":10707},[4173,31358,31359],{"class":31210},"ports",[4173,31361,2815],{"class":4784},[4173,31363,31364],{"class":4657,"line":10712},[4173,31365,4761],{"emptyLinePlaceholder":4760},[4173,31367,31368,31370],{"class":4657,"line":10717},[4173,31369,31294],{"class":4784},[4173,31371,31372],{"class":4669},"'3000:3000'\n",[4173,31374,31375],{"class":4657,"line":10727},[4173,31376,4761],{"emptyLinePlaceholder":4760},[4173,31378,31379,31381],{"class":4657,"line":10732},[4173,31380,31294],{"class":4784},[4173,31382,31383],{"class":4669},"'127.0.0.1:4000:4000'\n",[4173,31385,31386],{"class":4657,"line":10737},[4173,31387,4761],{"emptyLinePlaceholder":4760},[4173,31389,31390,31393],{"class":4657,"line":10742},[4173,31391,31392],{"class":31210},"volumes",[4173,31394,2815],{"class":4784},[4173,31396,31397],{"class":4657,"line":10752},[4173,31398,4761],{"emptyLinePlaceholder":4760},[4173,31400,31401,31403],{"class":4657,"line":10757},[4173,31402,31294],{"class":4784},[4173,31404,31405],{"class":4669},"'.\u002Fsrc:\u002Fapp\u002Fsrc'\n",[4173,31407,31408],{"class":4657,"line":10762},[4173,31409,4761],{"emptyLinePlaceholder":4760},[4173,31411,31412,31414],{"class":4657,"line":10767},[4173,31413,31294],{"class":4784},[4173,31415,31416],{"class":4669},"\u002Fapp\u002Fnode_modules\n",[4173,31418,31419],{"class":4657,"line":10772},[4173,31420,4761],{"emptyLinePlaceholder":4760},[4173,31422,31423,31426],{"class":4657,"line":10777},[4173,31424,31425],{"class":31210},"environment",[4173,31427,2815],{"class":4784},[4173,31429,31430],{"class":4657,"line":10782},[4173,31431,4761],{"emptyLinePlaceholder":4760},[4173,31433,31434,31436,31438],{"class":4657,"line":10787},[4173,31435,29826],{"class":31210},[4173,31437,7412],{"class":4784},[4173,31439,31440],{"class":4669},"development\n",[4173,31442,31443],{"class":4657,"line":10800},[4173,31444,4761],{"emptyLinePlaceholder":4760},[4173,31446,31447,31450,31452],{"class":4657,"line":10805},[4173,31448,31449],{"class":31210},"API_URL",[4173,31451,7412],{"class":4784},[4173,31453,31454],{"class":4669},"'http:\u002F\u002Fbackend:8080'\n",[4173,31456,31457],{"class":4657,"line":10818},[4173,31458,4761],{"emptyLinePlaceholder":4760},[4173,31460,31461,31464],{"class":4657,"line":10823},[4173,31462,31463],{"class":31210},"env_file",[4173,31465,2815],{"class":4784},[4173,31467,31468],{"class":4657,"line":10836},[4173,31469,4761],{"emptyLinePlaceholder":4760},[4173,31471,31472,31474],{"class":4657,"line":10841},[4173,31473,31294],{"class":4784},[4173,31475,31476],{"class":4669},".env\n",[4173,31478,31479],{"class":4657,"line":10846},[4173,31480,4761],{"emptyLinePlaceholder":4760},[4173,31482,31483,31485],{"class":4657,"line":10851},[4173,31484,31294],{"class":4784},[4173,31486,31487],{"class":4669},".env.local\n",[4173,31489,31490],{"class":4657,"line":10867},[4173,31491,4761],{"emptyLinePlaceholder":4760},[4173,31493,31494,31497],{"class":4657,"line":10872},[4173,31495,31496],{"class":31210},"networks",[4173,31498,2815],{"class":4784},[4173,31500,31501],{"class":4657,"line":10877},[4173,31502,4761],{"emptyLinePlaceholder":4760},[4173,31504,31505,31507],{"class":4657,"line":10882},[4173,31506,31294],{"class":4784},[4173,31508,31509],{"class":4669},"frontend-net\n",[4173,31511,31512],{"class":4657,"line":10890},[4173,31513,4761],{"emptyLinePlaceholder":4760},[4173,31515,31516,31519],{"class":4657,"line":10895},[4173,31517,31518],{"class":31210},"depends_on",[4173,31520,2815],{"class":4784},[4173,31522,31523],{"class":4657,"line":10904},[4173,31524,4761],{"emptyLinePlaceholder":4760},[4173,31526,31527,31530],{"class":4657,"line":10909},[4173,31528,31529],{"class":31210},"backend",[4173,31531,2815],{"class":4784},[4173,31533,31534],{"class":4657,"line":10914},[4173,31535,4761],{"emptyLinePlaceholder":4760},[4173,31537,31538,31541,31543],{"class":4657,"line":10919},[4173,31539,31540],{"class":31210},"condition",[4173,31542,7412],{"class":4784},[4173,31544,31545],{"class":4669},"service_healthy\n",[4173,31547,31548],{"class":4657,"line":10933},[4173,31549,4761],{"emptyLinePlaceholder":4760},[4173,31551,31552,31555],{"class":4657,"line":10938},[4173,31553,31554],{"class":31210},"healthcheck",[4173,31556,2815],{"class":4784},[4173,31558,31559],{"class":4657,"line":10959},[4173,31560,4761],{"emptyLinePlaceholder":4760},[4173,31562,31563,31565],{"class":4657,"line":10964},[4173,31564,7163],{"class":31210},[4173,31566,2815],{"class":4784},[4173,31568,31569],{"class":4657,"line":10969},[4173,31570,4761],{"emptyLinePlaceholder":4760},[4173,31572,31573,31575],{"class":4657,"line":10974},[4173,31574,31294],{"class":4784},[4173,31576,31577],{"class":4669},"CMD\n",[4173,31579,31580],{"class":4657,"line":10982},[4173,31581,4761],{"emptyLinePlaceholder":4760},[4173,31583,31584,31586],{"class":4657,"line":10987},[4173,31585,31294],{"class":4784},[4173,31587,31588],{"class":4669},"curl\n",[4173,31590,31591],{"class":4657,"line":10995},[4173,31592,4761],{"emptyLinePlaceholder":4760},[4173,31594,31595,31597],{"class":4657,"line":11000},[4173,31596,31294],{"class":4784},[4173,31598,31599],{"class":4669},"'-f'\n",[4173,31601,31602],{"class":4657,"line":11008},[4173,31603,4761],{"emptyLinePlaceholder":4760},[4173,31605,31606,31608],{"class":4657,"line":11013},[4173,31607,31294],{"class":4784},[4173,31609,31610],{"class":4669},"'http:\u002F\u002Flocalhost:3000'\n",[4173,31612,31613],{"class":4657,"line":11021},[4173,31614,4761],{"emptyLinePlaceholder":4760},[4173,31616,31617,31620,31622],{"class":4657,"line":11026},[4173,31618,31619],{"class":31210},"interval",[4173,31621,7412],{"class":4784},[4173,31623,31624],{"class":4669},"30s\n",[4173,31626,31627],{"class":4657,"line":11034},[4173,31628,4761],{"emptyLinePlaceholder":4760},[4173,31630,31631,31634,31636],{"class":4657,"line":11039},[4173,31632,31633],{"class":31210},"timeout",[4173,31635,7412],{"class":4784},[4173,31637,31638],{"class":4669},"10s\n",[4173,31640,31641],{"class":4657,"line":11048},[4173,31642,4761],{"emptyLinePlaceholder":4760},[4173,31644,31645,31648,31650],{"class":4657,"line":11053},[4173,31646,31647],{"class":31210},"retries",[4173,31649,7412],{"class":4784},[4173,31651,31652],{"class":4665},"3\n",[4173,31654,31655],{"class":4657,"line":21369},[4173,31656,4761],{"emptyLinePlaceholder":4760},[4173,31658,31659,31662,31664],{"class":4657,"line":21374},[4173,31660,31661],{"class":31210},"start_period",[4173,31663,7412],{"class":4784},[4173,31665,31666],{"class":4669},"60s\n",[4173,31668,31669],{"class":4657,"line":21380},[4173,31670,4761],{"emptyLinePlaceholder":4760},[4173,31672,31673,31676],{"class":4657,"line":21385},[4173,31674,31675],{"class":31210},"logging",[4173,31677,2815],{"class":4784},[4173,31679,31680],{"class":4657,"line":21397},[4173,31681,4761],{"emptyLinePlaceholder":4760},[4173,31683,31684,31687,31689],{"class":4657,"line":21402},[4173,31685,31686],{"class":31210},"driver",[4173,31688,7412],{"class":4784},[4173,31690,31691],{"class":4669},"json-file\n",[4173,31693,31694],{"class":4657,"line":21408},[4173,31695,4761],{"emptyLinePlaceholder":4760},[4173,31697,31698,31701],{"class":4657,"line":21413},[4173,31699,31700],{"class":31210},"options",[4173,31702,2815],{"class":4784},[4173,31704,31705],{"class":4657,"line":21425},[4173,31706,4761],{"emptyLinePlaceholder":4760},[4173,31708,31709,31712,31714],{"class":4657,"line":21430},[4173,31710,31711],{"class":31210},"max-size",[4173,31713,7412],{"class":4784},[4173,31715,31716],{"class":4669},"10m\n",[4173,31718,31719],{"class":4657,"line":21436},[4173,31720,4761],{"emptyLinePlaceholder":4760},[4173,31722,31723,31726,31728],{"class":4657,"line":21441},[4173,31724,31725],{"class":31210},"max-file",[4173,31727,7412],{"class":4784},[4173,31729,31730],{"class":4669},"'3'\n",[4173,31732,31733],{"class":4657,"line":21453},[4173,31734,4761],{"emptyLinePlaceholder":4760},[4173,31736,31737,31740],{"class":4657,"line":21458},[4173,31738,31739],{"class":31210},"labels",[4173,31741,2815],{"class":4784},[4173,31743,31744],{"class":4657,"line":21464},[4173,31745,4761],{"emptyLinePlaceholder":4760},[4173,31747,31748,31750],{"class":4657,"line":21469},[4173,31749,31294],{"class":4784},[4173,31751,31752],{"class":4669},"traefik.enable=true\n",[4173,31754,31755],{"class":4657,"line":21481},[4173,31756,4761],{"emptyLinePlaceholder":4760},[4173,31758,31759,31761],{"class":4657,"line":21486},[4173,31760,31294],{"class":4784},[4173,31762,31763],{"class":4669},"traefik.http.routers.frontend.rule=Host(`app.example.com`)\n",[4173,31765,31766],{"class":4657,"line":21492},[4173,31767,4761],{"emptyLinePlaceholder":4760},[4173,31769,31770,31773],{"class":4657,"line":21497},[4173,31771,31772],{"class":31210},"deploy",[4173,31774,2815],{"class":4784},[4173,31776,31777],{"class":4657,"line":21503},[4173,31778,4761],{"emptyLinePlaceholder":4760},[4173,31780,31781,31784],{"class":4657,"line":21508},[4173,31782,31783],{"class":31210},"resources",[4173,31785,2815],{"class":4784},[4173,31787,31788],{"class":4657,"line":21518},[4173,31789,4761],{"emptyLinePlaceholder":4760},[4173,31791,31792,31795],{"class":4657,"line":21523},[4173,31793,31794],{"class":31210},"limits",[4173,31796,2815],{"class":4784},[4173,31798,31799],{"class":4657,"line":21529},[4173,31800,4761],{"emptyLinePlaceholder":4760},[4173,31802,31803,31806,31808],{"class":4657,"line":21534},[4173,31804,31805],{"class":31210},"cpus",[4173,31807,7412],{"class":4784},[4173,31809,31810],{"class":4669},"'0.5'\n",[4173,31812,31813],{"class":4657,"line":21544},[4173,31814,4761],{"emptyLinePlaceholder":4760},[4173,31816,31817,31820,31822],{"class":4657,"line":21549},[4173,31818,31819],{"class":31210},"memory",[4173,31821,7412],{"class":4784},[4173,31823,31824],{"class":4669},"256M\n",[4173,31826,31827],{"class":4657,"line":21555},[4173,31828,4761],{"emptyLinePlaceholder":4760},[4173,31830,31831,31834],{"class":4657,"line":21560},[4173,31832,31833],{"class":31210},"reservations",[4173,31835,2815],{"class":4784},[4173,31837,31838],{"class":4657,"line":21570},[4173,31839,4761],{"emptyLinePlaceholder":4760},[4173,31841,31842,31844,31846],{"class":4657,"line":21575},[4173,31843,31819],{"class":31210},[4173,31845,7412],{"class":4784},[4173,31847,31848],{"class":4669},"128M\n",[4173,31850,31851],{"class":4657,"line":21581},[4173,31852,4761],{"emptyLinePlaceholder":4760},[4173,31854,31855,31857],{"class":4657,"line":21586},[4173,31856,31529],{"class":31210},[4173,31858,2815],{"class":4784},[4173,31860,31861],{"class":4657,"line":21596},[4173,31862,4761],{"emptyLinePlaceholder":4760},[4173,31864,31865,31867],{"class":4657,"line":21601},[4173,31866,30675],{"class":31210},[4173,31868,2815],{"class":4784},[4173,31870,31871],{"class":4657,"line":21607},[4173,31872,4761],{"emptyLinePlaceholder":4760},[4173,31874,31875,31877,31879],{"class":4657,"line":21612},[4173,31876,31256],{"class":31210},[4173,31878,7412],{"class":4784},[4173,31880,31881],{"class":4669},".\u002Fapi-golang\n",[4173,31883,31884],{"class":4657,"line":21622},[4173,31885,4761],{"emptyLinePlaceholder":4760},[4173,31887,31888,31890,31892],{"class":4657,"line":21627},[4173,31889,30652],{"class":31210},[4173,31891,7412],{"class":4784},[4173,31893,31894],{"class":4669},"always\n",[4173,31896,31897],{"class":4657,"line":21633},[4173,31898,4761],{"emptyLinePlaceholder":4760},[4173,31900,31901,31903],{"class":4657,"line":21638},[4173,31902,31359],{"class":31210},[4173,31904,2815],{"class":4784},[4173,31906,31907],{"class":4657,"line":21644},[4173,31908,4761],{"emptyLinePlaceholder":4760},[4173,31910,31911,31913],{"class":4657,"line":21649},[4173,31912,31294],{"class":4784},[4173,31914,31915],{"class":4669},"'8080:8080'\n",[4173,31917,31918],{"class":4657,"line":21659},[4173,31919,4761],{"emptyLinePlaceholder":4760},[4173,31921,31922,31924],{"class":4657,"line":21664},[4173,31923,31425],{"class":31210},[4173,31925,2815],{"class":4784},[4173,31927,31928],{"class":4657,"line":21670},[4173,31929,4761],{"emptyLinePlaceholder":4760},[4173,31931,31932,31934],{"class":4657,"line":21675},[4173,31933,31294],{"class":4784},[4173,31935,31936],{"class":4669},"DB_HOST=database\n",[4173,31938,31939],{"class":4657,"line":21685},[4173,31940,4761],{"emptyLinePlaceholder":4760},[4173,31942,31943,31945],{"class":4657,"line":21690},[4173,31944,31294],{"class":4784},[4173,31946,31947],{"class":4669},"DB_PORT=5432\n",[4173,31949,31950],{"class":4657,"line":21696},[4173,31951,4761],{"emptyLinePlaceholder":4760},[4173,31953,31954,31956],{"class":4657,"line":21701},[4173,31955,31294],{"class":4784},[4173,31957,31958],{"class":4669},"'DB_NAME=${POSTGRES_DB}'\n",[4173,31960,31961],{"class":4657,"line":21711},[4173,31962,4761],{"emptyLinePlaceholder":4760},[4173,31964,31965,31967],{"class":4657,"line":21716},[4173,31966,31294],{"class":4784},[4173,31968,31969],{"class":4669},"'DB_USER=${POSTGRES_USER}'\n",[4173,31971,31972],{"class":4657,"line":21722},[4173,31973,4761],{"emptyLinePlaceholder":4760},[4173,31975,31976,31978],{"class":4657,"line":21727},[4173,31977,31294],{"class":4784},[4173,31979,31980],{"class":4669},"'DB_PASSWORD=${POSTGRES_PASSWORD}'\n",[4173,31982,31983],{"class":4657,"line":21737},[4173,31984,4761],{"emptyLinePlaceholder":4760},[4173,31986,31987,31989],{"class":4657,"line":21742},[4173,31988,31496],{"class":31210},[4173,31990,2815],{"class":4784},[4173,31992,31993],{"class":4657,"line":21748},[4173,31994,4761],{"emptyLinePlaceholder":4760},[4173,31996,31997,31999],{"class":4657,"line":21753},[4173,31998,31294],{"class":4784},[4173,32000,31509],{"class":4669},[4173,32002,32003],{"class":4657,"line":21759},[4173,32004,4761],{"emptyLinePlaceholder":4760},[4173,32006,32007,32009],{"class":4657,"line":21764},[4173,32008,31294],{"class":4784},[4173,32010,32011],{"class":4669},"backend-net\n",[4173,32013,32014],{"class":4657,"line":21782},[4173,32015,4761],{"emptyLinePlaceholder":4760},[4173,32017,32018,32020],{"class":4657,"line":21787},[4173,32019,31518],{"class":31210},[4173,32021,2815],{"class":4784},[4173,32023,32024],{"class":4657,"line":21793},[4173,32025,4761],{"emptyLinePlaceholder":4760},[4173,32027,32028,32031],{"class":4657,"line":21798},[4173,32029,32030],{"class":31210},"database",[4173,32032,2815],{"class":4784},[4173,32034,32035],{"class":4657,"line":21810},[4173,32036,4761],{"emptyLinePlaceholder":4760},[4173,32038,32039,32041,32043],{"class":4657,"line":21815},[4173,32040,31540],{"class":31210},[4173,32042,7412],{"class":4784},[4173,32044,31545],{"class":4669},[4173,32046,32047],{"class":4657,"line":21821},[4173,32048,4761],{"emptyLinePlaceholder":4760},[4173,32050,32051,32053],{"class":4657,"line":21826},[4173,32052,31554],{"class":31210},[4173,32054,2815],{"class":4784},[4173,32056,32057],{"class":4657,"line":21836},[4173,32058,4761],{"emptyLinePlaceholder":4760},[4173,32060,32061,32063],{"class":4657,"line":21841},[4173,32062,7163],{"class":31210},[4173,32064,2815],{"class":4784},[4173,32066,32067],{"class":4657,"line":21847},[4173,32068,4761],{"emptyLinePlaceholder":4760},[4173,32070,32071,32073],{"class":4657,"line":21852},[4173,32072,31294],{"class":4784},[4173,32074,32075],{"class":4669},"CMD-SHELL\n",[4173,32077,32078],{"class":4657,"line":21862},[4173,32079,4761],{"emptyLinePlaceholder":4760},[4173,32081,32082,32084],{"class":4657,"line":21867},[4173,32083,31294],{"class":4784},[4173,32085,32086],{"class":4669},"'wget -q --spider http:\u002F\u002Flocalhost:8080\u002Fhealth || exit 1'\n",[4173,32088,32089],{"class":4657,"line":21873},[4173,32090,4761],{"emptyLinePlaceholder":4760},[4173,32092,32093,32095,32097],{"class":4657,"line":21878},[4173,32094,31619],{"class":31210},[4173,32096,7412],{"class":4784},[4173,32098,31638],{"class":4669},[4173,32100,32101],{"class":4657,"line":21888},[4173,32102,4761],{"emptyLinePlaceholder":4760},[4173,32104,32105,32107,32109],{"class":4657,"line":21893},[4173,32106,31633],{"class":31210},[4173,32108,7412],{"class":4784},[4173,32110,32111],{"class":4669},"5s\n",[4173,32113,32114],{"class":4657,"line":21899},[4173,32115,4761],{"emptyLinePlaceholder":4760},[4173,32117,32118,32120,32122],{"class":4657,"line":21904},[4173,32119,31647],{"class":31210},[4173,32121,7412],{"class":4784},[4173,32123,32124],{"class":4665},"5\n",[4173,32126,32127],{"class":4657,"line":21910},[4173,32128,4761],{"emptyLinePlaceholder":4760},[4173,32130,32131,32133,32135],{"class":4657,"line":21915},[4173,32132,31661],{"class":31210},[4173,32134,7412],{"class":4784},[4173,32136,31624],{"class":4669},[4173,32138,32139],{"class":4657,"line":21925},[4173,32140,4761],{"emptyLinePlaceholder":4760},[4173,32142,32143,32145],{"class":4657,"line":21930},[4173,32144,32030],{"class":31210},[4173,32146,2815],{"class":4784},[4173,32148,32149],{"class":4657,"line":21936},[4173,32150,4761],{"emptyLinePlaceholder":4760},[4173,32152,32153,32155,32157],{"class":4657,"line":21941},[4173,32154,31306],{"class":31210},[4173,32156,7412],{"class":4784},[4173,32158,32159],{"class":4669},"'postgres:15-alpine'\n",[4173,32161,32162],{"class":4657,"line":21952},[4173,32163,4761],{"emptyLinePlaceholder":4760},[4173,32165,32166,32168,32170],{"class":4657,"line":21957},[4173,32167,30652],{"class":31210},[4173,32169,7412],{"class":4784},[4173,32171,31894],{"class":4669},[4173,32173,32174],{"class":4657,"line":21963},[4173,32175,4761],{"emptyLinePlaceholder":4760},[4173,32177,32178,32180],{"class":4657,"line":21968},[4173,32179,31392],{"class":31210},[4173,32181,2815],{"class":4784},[4173,32183,32184],{"class":4657,"line":21980},[4173,32185,4761],{"emptyLinePlaceholder":4760},[4173,32187,32188,32190],{"class":4657,"line":21985},[4173,32189,31294],{"class":4784},[4173,32191,32192],{"class":4669},"'db_data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata'\n",[4173,32194,32195],{"class":4657,"line":21991},[4173,32196,4761],{"emptyLinePlaceholder":4760},[4173,32198,32199,32201],{"class":4657,"line":21996},[4173,32200,31294],{"class":4784},[4173,32202,32203],{"class":4669},"'.\u002Finit.sql:\u002Fdocker-entrypoint-initdb.d\u002Finit.sql'\n",[4173,32205,32206],{"class":4657,"line":22009},[4173,32207,4761],{"emptyLinePlaceholder":4760},[4173,32209,32210,32212],{"class":4657,"line":22014},[4173,32211,31425],{"class":31210},[4173,32213,2815],{"class":4784},[4173,32215,32216],{"class":4657,"line":22020},[4173,32217,4761],{"emptyLinePlaceholder":4760},[4173,32219,32220,32223,32225],{"class":4657,"line":22025},[4173,32221,32222],{"class":31210},"POSTGRES_DB",[4173,32224,7412],{"class":4784},[4173,32226,32227],{"class":4669},"'${POSTGRES_DB:-myapp}'\n",[4173,32229,32230],{"class":4657,"line":22031},[4173,32231,4761],{"emptyLinePlaceholder":4760},[4173,32233,32234,32237,32239],{"class":4657,"line":22036},[4173,32235,32236],{"class":31210},"POSTGRES_USER",[4173,32238,7412],{"class":4784},[4173,32240,32241],{"class":4669},"'${POSTGRES_USER:-user}'\n",[4173,32243,32244],{"class":4657,"line":22046},[4173,32245,4761],{"emptyLinePlaceholder":4760},[4173,32247,32248,32251,32253],{"class":4657,"line":22051},[4173,32249,32250],{"class":31210},"POSTGRES_PASSWORD",[4173,32252,7412],{"class":4784},[4173,32254,32255],{"class":4669},"'${POSTGRES_PASSWORD:?DB-Passwort erforderlich!}'\n",[4173,32257,32258],{"class":4657,"line":22057},[4173,32259,4761],{"emptyLinePlaceholder":4760},[4173,32261,32262,32264],{"class":4657,"line":22062},[4173,32263,31496],{"class":31210},[4173,32265,2815],{"class":4784},[4173,32267,32268],{"class":4657,"line":22072},[4173,32269,4761],{"emptyLinePlaceholder":4760},[4173,32271,32272,32274],{"class":4657,"line":22077},[4173,32273,31294],{"class":4784},[4173,32275,32011],{"class":4669},[4173,32277,32278],{"class":4657,"line":22083},[4173,32279,4761],{"emptyLinePlaceholder":4760},[4173,32281,32282,32284],{"class":4657,"line":22088},[4173,32283,31554],{"class":31210},[4173,32285,2815],{"class":4784},[4173,32287,32288],{"class":4657,"line":22094},[4173,32289,4761],{"emptyLinePlaceholder":4760},[4173,32291,32292,32294],{"class":4657,"line":22099},[4173,32293,7163],{"class":31210},[4173,32295,2815],{"class":4784},[4173,32297,32298],{"class":4657,"line":22109},[4173,32299,4761],{"emptyLinePlaceholder":4760},[4173,32301,32302,32304],{"class":4657,"line":22114},[4173,32303,31294],{"class":4784},[4173,32305,32075],{"class":4669},[4173,32307,32308],{"class":4657,"line":22120},[4173,32309,4761],{"emptyLinePlaceholder":4760},[4173,32311,32312,32314],{"class":4657,"line":22125},[4173,32313,31294],{"class":4784},[4173,32315,32316],{"class":4669},"'pg_isready -U ${POSTGRES_USER:-user}'\n",[4173,32318,32319],{"class":4657,"line":22131},[4173,32320,4761],{"emptyLinePlaceholder":4760},[4173,32322,32323,32325,32327],{"class":4657,"line":22136},[4173,32324,31619],{"class":31210},[4173,32326,7412],{"class":4784},[4173,32328,31638],{"class":4669},[4173,32330,32331],{"class":4657,"line":22147},[4173,32332,4761],{"emptyLinePlaceholder":4760},[4173,32334,32335,32337,32339],{"class":4657,"line":22152},[4173,32336,31633],{"class":31210},[4173,32338,7412],{"class":4784},[4173,32340,32111],{"class":4669},[4173,32342,32343],{"class":4657,"line":22158},[4173,32344,4761],{"emptyLinePlaceholder":4760},[4173,32346,32347,32349,32351],{"class":4657,"line":22163},[4173,32348,31647],{"class":31210},[4173,32350,7412],{"class":4784},[4173,32352,32124],{"class":4665},[4173,32354,32355],{"class":4657,"line":22173},[4173,32356,4761],{"emptyLinePlaceholder":4760},[4173,32358,32359,32362],{"class":4657,"line":22178},[4173,32360,32361],{"class":31210},"expose",[4173,32363,2815],{"class":4784},[4173,32365,32366],{"class":4657,"line":22184},[4173,32367,4761],{"emptyLinePlaceholder":4760},[4173,32369,32370,32372],{"class":4657,"line":22189},[4173,32371,31294],{"class":4784},[4173,32373,32374],{"class":4669},"'5432'\n",[4173,32376,32377],{"class":4657,"line":22201},[4173,32378,4761],{"emptyLinePlaceholder":4760},[4173,32380,32381,32384],{"class":4657,"line":22206},[4173,32382,32383],{"class":31210},"cache",[4173,32385,2815],{"class":4784},[4173,32387,32388],{"class":4657,"line":22212},[4173,32389,4761],{"emptyLinePlaceholder":4760},[4173,32391,32392,32394,32396],{"class":4657,"line":22217},[4173,32393,31306],{"class":31210},[4173,32395,7412],{"class":4784},[4173,32397,32398],{"class":4669},"'redis:7-alpine'\n",[4173,32400,32401],{"class":4657,"line":22230},[4173,32402,4761],{"emptyLinePlaceholder":4760},[4173,32404,32405,32407,32409],{"class":4657,"line":22235},[4173,32406,30652],{"class":31210},[4173,32408,7412],{"class":4784},[4173,32410,31350],{"class":4669},[4173,32412,32413],{"class":4657,"line":22241},[4173,32414,4761],{"emptyLinePlaceholder":4760},[4173,32416,32417,32420,32422],{"class":4657,"line":22246},[4173,32418,32419],{"class":31210},"command",[4173,32421,7412],{"class":4784},[4173,32423,32424],{"class":4669},"redis-server --appendonly yes\n",[4173,32426,32427],{"class":4657,"line":22256},[4173,32428,4761],{"emptyLinePlaceholder":4760},[4173,32430,32431,32433],{"class":4657,"line":22261},[4173,32432,31392],{"class":31210},[4173,32434,2815],{"class":4784},[4173,32436,32437],{"class":4657,"line":22267},[4173,32438,4761],{"emptyLinePlaceholder":4760},[4173,32440,32441,32443],{"class":4657,"line":22272},[4173,32442,31294],{"class":4784},[4173,32444,32445],{"class":4669},"'redis_data:\u002Fdata'\n",[4173,32447,32449],{"class":4657,"line":32448},214,[4173,32450,4761],{"emptyLinePlaceholder":4760},[4173,32452,32454,32456],{"class":4657,"line":32453},215,[4173,32455,31496],{"class":31210},[4173,32457,2815],{"class":4784},[4173,32459,32461],{"class":4657,"line":32460},216,[4173,32462,4761],{"emptyLinePlaceholder":4760},[4173,32464,32466,32468],{"class":4657,"line":32465},217,[4173,32467,31294],{"class":4784},[4173,32469,32011],{"class":4669},[4173,32471,32473],{"class":4657,"line":32472},218,[4173,32474,4761],{"emptyLinePlaceholder":4760},[4173,32476,32478,32481],{"class":4657,"line":32477},219,[4173,32479,32480],{"class":31210},"profiles",[4173,32482,2815],{"class":4784},[4173,32484,32486],{"class":4657,"line":32485},220,[4173,32487,4761],{"emptyLinePlaceholder":4760},[4173,32489,32491,32493],{"class":4657,"line":32490},221,[4173,32492,31294],{"class":4784},[4173,32494,32495],{"class":4669},"cache\n",[4173,32497,32499],{"class":4657,"line":32498},222,[4173,32500,4761],{"emptyLinePlaceholder":4760},[4173,32502,32504,32506],{"class":4657,"line":32503},223,[4173,32505,31392],{"class":31210},[4173,32507,2815],{"class":4784},[4173,32509,32511],{"class":4657,"line":32510},224,[4173,32512,4761],{"emptyLinePlaceholder":4760},[4173,32514,32516,32519],{"class":4657,"line":32515},225,[4173,32517,32518],{"class":31210},"db_data",[4173,32520,2815],{"class":4784},[4173,32522,32524],{"class":4657,"line":32523},226,[4173,32525,4761],{"emptyLinePlaceholder":4760},[4173,32527,32529,32531,32533],{"class":4657,"line":32528},227,[4173,32530,31686],{"class":31210},[4173,32532,7412],{"class":4784},[4173,32534,32535],{"class":4669},"local\n",[4173,32537,32539],{"class":4657,"line":32538},228,[4173,32540,4761],{"emptyLinePlaceholder":4760},[4173,32542,32544,32547,32549],{"class":4657,"line":32543},229,[4173,32545,32546],{"class":31210},"redis_data",[4173,32548,7412],{"class":4784},[4173,32550,32551],{"class":4665},"null\n",[4173,32553,32555],{"class":4657,"line":32554},230,[4173,32556,4761],{"emptyLinePlaceholder":4760},[4173,32558,32560,32563],{"class":4657,"line":32559},231,[4173,32561,32562],{"class":31210},"nginx_logs",[4173,32564,2815],{"class":4784},[4173,32566,32568],{"class":4657,"line":32567},232,[4173,32569,4761],{"emptyLinePlaceholder":4760},[4173,32571,32573,32575,32577],{"class":4657,"line":32572},233,[4173,32574,31686],{"class":31210},[4173,32576,7412],{"class":4784},[4173,32578,32535],{"class":4669},[4173,32580,32582],{"class":4657,"line":32581},234,[4173,32583,4761],{"emptyLinePlaceholder":4760},[4173,32585,32587,32590],{"class":4657,"line":32586},235,[4173,32588,32589],{"class":31210},"driver_opts",[4173,32591,2815],{"class":4784},[4173,32593,32595],{"class":4657,"line":32594},236,[4173,32596,4761],{"emptyLinePlaceholder":4760},[4173,32598,32600,32603,32605],{"class":4657,"line":32599},237,[4173,32601,32602],{"class":31210},"type",[4173,32604,7412],{"class":4784},[4173,32606,32607],{"class":4669},"none\n",[4173,32609,32611],{"class":4657,"line":32610},238,[4173,32612,4761],{"emptyLinePlaceholder":4760},[4173,32614,32616,32618,32620],{"class":4657,"line":32615},239,[4173,32617,13557],{"class":31210},[4173,32619,7412],{"class":4784},[4173,32621,32622],{"class":4669},"bind\n",[4173,32624,32626],{"class":4657,"line":32625},240,[4173,32627,4761],{"emptyLinePlaceholder":4760},[4173,32629,32631,32634,32636],{"class":4657,"line":32630},241,[4173,32632,32633],{"class":31210},"device",[4173,32635,7412],{"class":4784},[4173,32637,32638],{"class":4669},"\u002Fsrv\u002Flogs\u002Fnginx\n",[4173,32640,32642],{"class":4657,"line":32641},242,[4173,32643,4761],{"emptyLinePlaceholder":4760},[4173,32645,32647,32649],{"class":4657,"line":32646},243,[4173,32648,31496],{"class":31210},[4173,32650,2815],{"class":4784},[4173,32652,32654],{"class":4657,"line":32653},244,[4173,32655,4761],{"emptyLinePlaceholder":4760},[4173,32657,32659,32662],{"class":4657,"line":32658},245,[4173,32660,32661],{"class":31210},"frontend-net",[4173,32663,2815],{"class":4784},[4173,32665,32667],{"class":4657,"line":32666},246,[4173,32668,4761],{"emptyLinePlaceholder":4760},[4173,32670,32672,32674,32676],{"class":4657,"line":32671},247,[4173,32673,31686],{"class":31210},[4173,32675,7412],{"class":4784},[4173,32677,32678],{"class":4669},"bridge\n",[4173,32680,32682],{"class":4657,"line":32681},248,[4173,32683,4761],{"emptyLinePlaceholder":4760},[4173,32685,32687,32690],{"class":4657,"line":32686},249,[4173,32688,32689],{"class":31210},"backend-net",[4173,32691,2815],{"class":4784},[4173,32693,32695],{"class":4657,"line":32694},250,[4173,32696,4761],{"emptyLinePlaceholder":4760},[4173,32698,32700,32702,32704],{"class":4657,"line":32699},251,[4173,32701,31686],{"class":31210},[4173,32703,7412],{"class":4784},[4173,32705,32678],{"class":4669},[4173,32707,32709],{"class":4657,"line":32708},252,[4173,32710,4761],{"emptyLinePlaceholder":4760},[4173,32712,32714,32717,32719],{"class":4657,"line":32713},253,[4173,32715,32716],{"class":31210},"internal",[4173,32718,7412],{"class":4784},[4173,32720,11505],{"class":4665},[4173,32722,32724],{"class":4657,"line":32723},254,[4173,32725,4761],{"emptyLinePlaceholder":4760},[4173,32727,32729,32732],{"class":4657,"line":32728},255,[4173,32730,32731],{"class":31210},"monitoring",[4173,32733,2815],{"class":4784},[4173,32735,32737],{"class":4657,"line":32736},256,[4173,32738,4761],{"emptyLinePlaceholder":4760},[4173,32740,32742,32745,32747],{"class":4657,"line":32741},257,[4173,32743,32744],{"class":31210},"external",[4173,32746,7412],{"class":4784},[4173,32748,11505],{"class":4665},[4173,32750,32752],{"class":4657,"line":32751},258,[4173,32753,4761],{"emptyLinePlaceholder":4760},[4173,32755,32757,32759,32761],{"class":4657,"line":32756},259,[4173,32758,28734],{"class":31210},[4173,32760,7412],{"class":4784},[4173,32762,32763],{"class":4669},"monitoring_net\n",[16,32765,32767],{"id":32766},"restart-policies","restart-Policies",[765,32769,32770,32783],{},[768,32771,32772],{},[771,32773,32774,32779],{},[774,32775,32776],{},[42,32777,32778],{},"Wert",[774,32780,32781],{},[42,32782,6733],{},[787,32784,32785,32793,32801,32809],{},[771,32786,32787,32790],{},[792,32788,32789],{},"no",[792,32791,32792],{},"Niemals neu starten (Standard)",[771,32794,32795,32798],{},[792,32796,32797],{},"always",[792,32799,32800],{},"Immer neu starten – auch nach manuellem Stopp",[771,32802,32803,32806],{},[792,32804,32805],{},"on-failure",[792,32807,32808],{},"Nur bei Fehler (Exit-Code ≠ 0) neu starten",[771,32810,32811,32814],{},[792,32812,32813],{},"unless-stopped",[792,32815,32816],{},"Immer neu starten, außer wenn manuell gestoppt",[16,32818,32820],{"id":32819},"depends_on-condition-werte","depends_on – condition-Werte",[765,32822,32823,32835],{},[768,32824,32825],{},[771,32826,32827,32831],{},[774,32828,32829],{},[42,32830,32778],{},[774,32832,32833],{},[42,32834,6733],{},[787,32836,32837,32845,32853],{},[771,32838,32839,32842],{},[792,32840,32841],{},"service_started",[792,32843,32844],{},"Warten bis der Container gestartet ist (Standard)",[771,32846,32847,32850],{},[792,32848,32849],{},"service_healthy",[792,32851,32852],{},"Warten bis der Container healthy ist (Healthcheck nötig!)",[771,32854,32855,32858],{},[792,32856,32857],{},"service_completed_successfully",[792,32859,32860],{},"Warten bis der Container mit Exit 0 beendet wurde",[16,32862,32864],{"id":32863},"env-datei",".env-Datei",[11,32866,32868],{"id":32867},"env-im-selben-verzeichnis-wie-docker-composeyml",".env (im selben Verzeichnis wie docker-compose.yml)",[11,32870,32872],{"id":32871},"automatisch-von-docker-compose-geladen","Automatisch von docker compose geladen",[4647,32874,32876],{"className":4649,"code":32875,"language":4651,"meta":269,"style":269},"POSTGRES_DB=myapp\nPOSTGRES_USER=app_user\nPOSTGRES_PASSWORD=sicheres_passwort_123\nIMAGE_TAG=1.5.2\nAPP_PORT=3000\n\n",[4653,32877,32878,32887,32896,32905,32915],{"__ignoreMap":269},[4173,32879,32880,32882,32884],{"class":4657,"line":4658},[4173,32881,32222],{"class":4784},[4173,32883,6387],{"class":4788},[4173,32885,32886],{"class":4669},"myapp\n",[4173,32888,32889,32891,32893],{"class":4657,"line":270},[4173,32890,32236],{"class":4784},[4173,32892,6387],{"class":4788},[4173,32894,32895],{"class":4669},"app_user\n",[4173,32897,32898,32900,32902],{"class":4657,"line":1263},[4173,32899,32250],{"class":4784},[4173,32901,6387],{"class":4788},[4173,32903,32904],{"class":4669},"sicheres_passwort_123\n",[4173,32906,32907,32910,32912],{"class":4657,"line":4770},[4173,32908,32909],{"class":4784},"IMAGE_TAG",[4173,32911,6387],{"class":4788},[4173,32913,32914],{"class":4669},"1.5.2\n",[4173,32916,32917,32920,32922],{"class":4657,"line":4775},[4173,32918,32919],{"class":4784},"APP_PORT",[4173,32921,6387],{"class":4788},[4173,32923,32924],{"class":4669},"3000\n",[414,32926,32927],{},"Verwendung im docker-compose.yml:",[4647,32929,32931],{"className":31201,"code":32930,"language":31203,"meta":269,"style":269},"services:\n\napp:\n\nimage: 'meineapp:${IMAGE_TAG:-latest}'\n\nports:\n\n- '${APP_PORT}:3000'\n\nenvironment:\n\nDB_PASS: '${POSTGRES_PASSWORD:?Passwort muss gesetzt sein!}'\n\n",[4653,32932,32933,32939,32943,32950,32954,32963,32967,32973,32977,32984,32988,32994,32998],{"__ignoreMap":269},[4173,32934,32935,32937],{"class":4657,"line":4658},[4173,32936,31224],{"class":31210},[4173,32938,2815],{"class":4784},[4173,32940,32941],{"class":4657,"line":270},[4173,32942,4761],{"emptyLinePlaceholder":4760},[4173,32944,32945,32948],{"class":4657,"line":1263},[4173,32946,32947],{"class":31210},"app",[4173,32949,2815],{"class":4784},[4173,32951,32952],{"class":4657,"line":4770},[4173,32953,4761],{"emptyLinePlaceholder":4760},[4173,32955,32956,32958,32960],{"class":4657,"line":4775},[4173,32957,31306],{"class":31210},[4173,32959,7412],{"class":4784},[4173,32961,32962],{"class":4669},"'meineapp:${IMAGE_TAG:-latest}'\n",[4173,32964,32965],{"class":4657,"line":6320},[4173,32966,4761],{"emptyLinePlaceholder":4760},[4173,32968,32969,32971],{"class":4657,"line":6325},[4173,32970,31359],{"class":31210},[4173,32972,2815],{"class":4784},[4173,32974,32975],{"class":4657,"line":6343},[4173,32976,4761],{"emptyLinePlaceholder":4760},[4173,32978,32979,32981],{"class":4657,"line":6348},[4173,32980,31294],{"class":4784},[4173,32982,32983],{"class":4669},"'${APP_PORT}:3000'\n",[4173,32985,32986],{"class":4657,"line":6457},[4173,32987,4761],{"emptyLinePlaceholder":4760},[4173,32989,32990,32992],{"class":4657,"line":6462},[4173,32991,31425],{"class":31210},[4173,32993,2815],{"class":4784},[4173,32995,32996],{"class":4657,"line":6468},[4173,32997,4761],{"emptyLinePlaceholder":4760},[4173,32999,33000,33003,33005],{"class":4657,"line":6473},[4173,33001,33002],{"class":31210},"DB_PASS",[4173,33004,7412],{"class":4784},[4173,33006,33007],{"class":4669},"'${POSTGRES_PASSWORD:?Passwort muss gesetzt sein!}'\n",[16,33009,33011],{"id":33010},"praktische-beispiele","Praktische Beispiele",[11,33013,33015],{"id":33014},"starten","─── Starten ─────────────────────────────────────────────────",[11,33017,33019],{"id":33018},"alle-services-im-hintergrund-starten","Alle Services im Hintergrund starten",[4647,33021,33023],{"className":4649,"code":33022,"language":4651,"meta":269,"style":269},"docker compose up -d\n\n# Starten und Live-Logs beobachten (kein -d)\n\ndocker compose up\n\n# Images neu bauen und dann starten\n\ndocker compose up -d --build\n\n# Nur bestimmte Services starten\n\ndocker compose up -d database cache\n\n# Mit einem Profil starten\n\ndocker compose --profile cache up -d\n\n# Warten bis alle Container healthy sind\n\ndocker compose up -d --wait\n\n# ─── Logs ────────────────────────────────────────────────────\n\n# Alle Logs live verfolgen\n\ndocker compose logs -f\n\n# Nur Backend-Logs, letzte 100 Zeilen\n\ndocker compose logs --tail=100 -f backend\n\n# Logs mit Zeitstempel\n\ndocker compose logs -t\n\n# ─── Befehle ausführen ───────────────────────────────────────\n\n# Bash im Backend-Container\n\ndocker compose exec backend bash\n\n# Datenbankzugriff\n\ndocker compose exec database psql -U app_user -d myapp\n\n# HTTP-Anfrage aus dem Container\n\ndocker compose exec backend curl http:\u002F\u002Fdatabase:5432\n\n# Einmaliger Befehl (neuer Container, wird danach gelöscht)\n\ndocker compose run --rm backend npm test\n\ndocker compose run --rm backend python manage.py migrate\n\n# ─── Status und Diagnose ──────────────────────────────────────\n\n# Status aller Container\n\ndocker compose ps\n\n# Mit Ports und Healthcheck\n\ndocker compose ps -a\n\n# Ressourcenverbrauch\n\ndocker stats $(docker compose ps -q)\n\n# Prozesse in Containern\n\ndocker compose top\n\n# Konfiguration validieren und anzeigen\n\ndocker compose config\n\n# ─── Stoppen und Aufräumen ────────────────────────────────────\n\n# Stoppen (Container bleiben erhalten)\n\ndocker compose stop\n\n# Stoppen und Container entfernen\n\ndocker compose down\n\n# Stoppen, Container UND Volumes entfernen (VORSICHT: Datenverlust!)\n\ndocker compose down -v\n\n# Stoppen und auch Images entfernen\n\ndocker compose down --rmi all\n\n# Nur bestimmte Services neu starten\n\ndocker compose restart backend\n\n# ─── Skalieren ───────────────────────────────────────────────\n\n# Backend auf 3 Instanzen skalieren\n\ndocker compose up -d --scale backend=3\n\n# ─── Mehrere Compose-Dateien ──────────────────────────────────\n\n# Produktion mit Überschreibungs-Datei\n\ndocker compose -f docker-compose.yml -f docker-compose.prod.yml up -d\n\n# Mit eigenem Projektname\n\ndocker compose -p mein-projekt up -d\n\n# Mit anderer .env-Datei\n\ndocker compose --env-file .env.production up -d\n\n",[4653,33024,33025,33038,33042,33047,33051,33060,33064,33069,33073,33086,33090,33095,33099,33115,33119,33124,33128,33144,33148,33153,33157,33170,33174,33179,33183,33188,33192,33202,33206,33211,33215,33231,33235,33240,33244,33255,33259,33264,33268,33273,33277,33290,33294,33299,33303,33327,33331,33336,33340,33356,33360,33365,33369,33387,33391,33412,33416,33421,33425,33430,33434,33443,33447,33452,33456,33468,33472,33477,33481,33500,33504,33509,33513,33522,33526,33531,33535,33544,33548,33553,33557,33562,33566,33575,33579,33584,33588,33597,33601,33606,33610,33622,33626,33631,33635,33649,33653,33658,33662,33673,33677,33682,33686,33691,33695,33713,33717,33722,33726,33731,33735,33755,33759,33764,33768,33783,33787,33792,33796],{"__ignoreMap":269},[4173,33026,33027,33029,33032,33035],{"class":4657,"line":4658},[4173,33028,8042],{"class":4661},[4173,33030,33031],{"class":4669}," compose",[4173,33033,33034],{"class":4669}," up",[4173,33036,33037],{"class":4665}," -d\n",[4173,33039,33040],{"class":4657,"line":270},[4173,33041,4761],{"emptyLinePlaceholder":4760},[4173,33043,33044],{"class":4657,"line":1263},[4173,33045,33046],{"class":4766},"# Starten und Live-Logs beobachten (kein -d)\n",[4173,33048,33049],{"class":4657,"line":4770},[4173,33050,4761],{"emptyLinePlaceholder":4760},[4173,33052,33053,33055,33057],{"class":4657,"line":4775},[4173,33054,8042],{"class":4661},[4173,33056,33031],{"class":4669},[4173,33058,33059],{"class":4669}," up\n",[4173,33061,33062],{"class":4657,"line":6320},[4173,33063,4761],{"emptyLinePlaceholder":4760},[4173,33065,33066],{"class":4657,"line":6325},[4173,33067,33068],{"class":4766},"# Images neu bauen und dann starten\n",[4173,33070,33071],{"class":4657,"line":6343},[4173,33072,4761],{"emptyLinePlaceholder":4760},[4173,33074,33075,33077,33079,33081,33083],{"class":4657,"line":6348},[4173,33076,8042],{"class":4661},[4173,33078,33031],{"class":4669},[4173,33080,33034],{"class":4669},[4173,33082,8048],{"class":4665},[4173,33084,33085],{"class":4665}," --build\n",[4173,33087,33088],{"class":4657,"line":6457},[4173,33089,4761],{"emptyLinePlaceholder":4760},[4173,33091,33092],{"class":4657,"line":6462},[4173,33093,33094],{"class":4766},"# Nur bestimmte Services starten\n",[4173,33096,33097],{"class":4657,"line":6468},[4173,33098,4761],{"emptyLinePlaceholder":4760},[4173,33100,33101,33103,33105,33107,33109,33112],{"class":4657,"line":6473},[4173,33102,8042],{"class":4661},[4173,33104,33031],{"class":4669},[4173,33106,33034],{"class":4669},[4173,33108,8048],{"class":4665},[4173,33110,33111],{"class":4669}," database",[4173,33113,33114],{"class":4669}," cache\n",[4173,33116,33117],{"class":4657,"line":6479},[4173,33118,4761],{"emptyLinePlaceholder":4760},[4173,33120,33121],{"class":4657,"line":6503},[4173,33122,33123],{"class":4766},"# Mit einem Profil starten\n",[4173,33125,33126],{"class":4657,"line":6516},[4173,33127,4761],{"emptyLinePlaceholder":4760},[4173,33129,33130,33132,33134,33137,33140,33142],{"class":4657,"line":6971},[4173,33131,8042],{"class":4661},[4173,33133,33031],{"class":4669},[4173,33135,33136],{"class":4665}," --profile",[4173,33138,33139],{"class":4669}," cache",[4173,33141,33034],{"class":4669},[4173,33143,33037],{"class":4665},[4173,33145,33146],{"class":4657,"line":10649},[4173,33147,4761],{"emptyLinePlaceholder":4760},[4173,33149,33150],{"class":4657,"line":10654},[4173,33151,33152],{"class":4766},"# Warten bis alle Container healthy sind\n",[4173,33154,33155],{"class":4657,"line":10659},[4173,33156,4761],{"emptyLinePlaceholder":4760},[4173,33158,33159,33161,33163,33165,33167],{"class":4657,"line":10664},[4173,33160,8042],{"class":4661},[4173,33162,33031],{"class":4669},[4173,33164,33034],{"class":4669},[4173,33166,8048],{"class":4665},[4173,33168,33169],{"class":4665}," --wait\n",[4173,33171,33172],{"class":4657,"line":10676},[4173,33173,4761],{"emptyLinePlaceholder":4760},[4173,33175,33176],{"class":4657,"line":10681},[4173,33177,33178],{"class":4766},"# ─── Logs ────────────────────────────────────────────────────\n",[4173,33180,33181],{"class":4657,"line":10702},[4173,33182,4761],{"emptyLinePlaceholder":4760},[4173,33184,33185],{"class":4657,"line":10707},[4173,33186,33187],{"class":4766},"# Alle Logs live verfolgen\n",[4173,33189,33190],{"class":4657,"line":10712},[4173,33191,4761],{"emptyLinePlaceholder":4760},[4173,33193,33194,33196,33198,33200],{"class":4657,"line":10717},[4173,33195,8042],{"class":4661},[4173,33197,33031],{"class":4669},[4173,33199,30403],{"class":4669},[4173,33201,19029],{"class":4665},[4173,33203,33204],{"class":4657,"line":10727},[4173,33205,4761],{"emptyLinePlaceholder":4760},[4173,33207,33208],{"class":4657,"line":10732},[4173,33209,33210],{"class":4766},"# Nur Backend-Logs, letzte 100 Zeilen\n",[4173,33212,33213],{"class":4657,"line":10737},[4173,33214,4761],{"emptyLinePlaceholder":4760},[4173,33216,33217,33219,33221,33223,33226,33228],{"class":4657,"line":10742},[4173,33218,8042],{"class":4661},[4173,33220,33031],{"class":4669},[4173,33222,30403],{"class":4669},[4173,33224,33225],{"class":4665}," --tail=100",[4173,33227,11337],{"class":4665},[4173,33229,33230],{"class":4669}," backend\n",[4173,33232,33233],{"class":4657,"line":10752},[4173,33234,4761],{"emptyLinePlaceholder":4760},[4173,33236,33237],{"class":4657,"line":10757},[4173,33238,33239],{"class":4766},"# Logs mit Zeitstempel\n",[4173,33241,33242],{"class":4657,"line":10762},[4173,33243,4761],{"emptyLinePlaceholder":4760},[4173,33245,33246,33248,33250,33252],{"class":4657,"line":10767},[4173,33247,8042],{"class":4661},[4173,33249,33031],{"class":4669},[4173,33251,30403],{"class":4669},[4173,33253,33254],{"class":4665}," -t\n",[4173,33256,33257],{"class":4657,"line":10772},[4173,33258,4761],{"emptyLinePlaceholder":4760},[4173,33260,33261],{"class":4657,"line":10777},[4173,33262,33263],{"class":4766},"# ─── Befehle ausführen ───────────────────────────────────────\n",[4173,33265,33266],{"class":4657,"line":10782},[4173,33267,4761],{"emptyLinePlaceholder":4760},[4173,33269,33270],{"class":4657,"line":10787},[4173,33271,33272],{"class":4766},"# Bash im Backend-Container\n",[4173,33274,33275],{"class":4657,"line":10800},[4173,33276,4761],{"emptyLinePlaceholder":4760},[4173,33278,33279,33281,33283,33285,33288],{"class":4657,"line":10805},[4173,33280,8042],{"class":4661},[4173,33282,33031],{"class":4669},[4173,33284,30428],{"class":4669},[4173,33286,33287],{"class":4669}," backend",[4173,33289,30335],{"class":4669},[4173,33291,33292],{"class":4657,"line":10818},[4173,33293,4761],{"emptyLinePlaceholder":4760},[4173,33295,33296],{"class":4657,"line":10823},[4173,33297,33298],{"class":4766},"# Datenbankzugriff\n",[4173,33300,33301],{"class":4657,"line":10836},[4173,33302,4761],{"emptyLinePlaceholder":4760},[4173,33304,33305,33307,33309,33311,33313,33316,33319,33322,33324],{"class":4657,"line":10841},[4173,33306,8042],{"class":4661},[4173,33308,33031],{"class":4669},[4173,33310,30428],{"class":4669},[4173,33312,33111],{"class":4669},[4173,33314,33315],{"class":4669}," psql",[4173,33317,33318],{"class":4665}," -U",[4173,33320,33321],{"class":4669}," app_user",[4173,33323,8048],{"class":4665},[4173,33325,33326],{"class":4669}," myapp\n",[4173,33328,33329],{"class":4657,"line":10846},[4173,33330,4761],{"emptyLinePlaceholder":4760},[4173,33332,33333],{"class":4657,"line":10851},[4173,33334,33335],{"class":4766},"# HTTP-Anfrage aus dem Container\n",[4173,33337,33338],{"class":4657,"line":10867},[4173,33339,4761],{"emptyLinePlaceholder":4760},[4173,33341,33342,33344,33346,33348,33350,33353],{"class":4657,"line":10872},[4173,33343,8042],{"class":4661},[4173,33345,33031],{"class":4669},[4173,33347,30428],{"class":4669},[4173,33349,33287],{"class":4669},[4173,33351,33352],{"class":4669}," curl",[4173,33354,33355],{"class":4669}," http:\u002F\u002Fdatabase:5432\n",[4173,33357,33358],{"class":4657,"line":10877},[4173,33359,4761],{"emptyLinePlaceholder":4760},[4173,33361,33362],{"class":4657,"line":10882},[4173,33363,33364],{"class":4766},"# Einmaliger Befehl (neuer Container, wird danach gelöscht)\n",[4173,33366,33367],{"class":4657,"line":10890},[4173,33368,4761],{"emptyLinePlaceholder":4760},[4173,33370,33371,33373,33375,33377,33379,33381,33384],{"class":4657,"line":10895},[4173,33372,8042],{"class":4661},[4173,33374,33031],{"class":4669},[4173,33376,8045],{"class":4669},[4173,33378,30329],{"class":4665},[4173,33380,33287],{"class":4669},[4173,33382,33383],{"class":4669}," npm",[4173,33385,33386],{"class":4669}," test\n",[4173,33388,33389],{"class":4657,"line":10904},[4173,33390,4761],{"emptyLinePlaceholder":4760},[4173,33392,33393,33395,33397,33399,33401,33403,33406,33409],{"class":4657,"line":10909},[4173,33394,8042],{"class":4661},[4173,33396,33031],{"class":4669},[4173,33398,8045],{"class":4669},[4173,33400,30329],{"class":4665},[4173,33402,33287],{"class":4669},[4173,33404,33405],{"class":4669}," python",[4173,33407,33408],{"class":4669}," manage.py",[4173,33410,33411],{"class":4669}," migrate\n",[4173,33413,33414],{"class":4657,"line":10914},[4173,33415,4761],{"emptyLinePlaceholder":4760},[4173,33417,33418],{"class":4657,"line":10919},[4173,33419,33420],{"class":4766},"# ─── Status und Diagnose ──────────────────────────────────────\n",[4173,33422,33423],{"class":4657,"line":10933},[4173,33424,4761],{"emptyLinePlaceholder":4760},[4173,33426,33427],{"class":4657,"line":10938},[4173,33428,33429],{"class":4766},"# Status aller Container\n",[4173,33431,33432],{"class":4657,"line":10959},[4173,33433,4761],{"emptyLinePlaceholder":4760},[4173,33435,33436,33438,33440],{"class":4657,"line":10964},[4173,33437,8042],{"class":4661},[4173,33439,33031],{"class":4669},[4173,33441,33442],{"class":4669}," ps\n",[4173,33444,33445],{"class":4657,"line":10969},[4173,33446,4761],{"emptyLinePlaceholder":4760},[4173,33448,33449],{"class":4657,"line":10974},[4173,33450,33451],{"class":4766},"# Mit Ports und Healthcheck\n",[4173,33453,33454],{"class":4657,"line":10982},[4173,33455,4761],{"emptyLinePlaceholder":4760},[4173,33457,33458,33460,33462,33465],{"class":4657,"line":10987},[4173,33459,8042],{"class":4661},[4173,33461,33031],{"class":4669},[4173,33463,33464],{"class":4669}," ps",[4173,33466,33467],{"class":4665}," -a\n",[4173,33469,33470],{"class":4657,"line":10995},[4173,33471,4761],{"emptyLinePlaceholder":4760},[4173,33473,33474],{"class":4657,"line":11000},[4173,33475,33476],{"class":4766},"# Ressourcenverbrauch\n",[4173,33478,33479],{"class":4657,"line":11008},[4173,33480,4761],{"emptyLinePlaceholder":4760},[4173,33482,33483,33485,33487,33490,33492,33494,33496,33498],{"class":4657,"line":11013},[4173,33484,8042],{"class":4661},[4173,33486,30526],{"class":4669},[4173,33488,33489],{"class":4784}," $(",[4173,33491,8042],{"class":4661},[4173,33493,33031],{"class":4669},[4173,33495,33464],{"class":4669},[4173,33497,16619],{"class":4665},[4173,33499,6402],{"class":4784},[4173,33501,33502],{"class":4657,"line":11021},[4173,33503,4761],{"emptyLinePlaceholder":4760},[4173,33505,33506],{"class":4657,"line":11026},[4173,33507,33508],{"class":4766},"# Prozesse in Containern\n",[4173,33510,33511],{"class":4657,"line":11034},[4173,33512,4761],{"emptyLinePlaceholder":4760},[4173,33514,33515,33517,33519],{"class":4657,"line":11039},[4173,33516,8042],{"class":4661},[4173,33518,33031],{"class":4669},[4173,33520,33521],{"class":4669}," top\n",[4173,33523,33524],{"class":4657,"line":11048},[4173,33525,4761],{"emptyLinePlaceholder":4760},[4173,33527,33528],{"class":4657,"line":11053},[4173,33529,33530],{"class":4766},"# Konfiguration validieren und anzeigen\n",[4173,33532,33533],{"class":4657,"line":21369},[4173,33534,4761],{"emptyLinePlaceholder":4760},[4173,33536,33537,33539,33541],{"class":4657,"line":21374},[4173,33538,8042],{"class":4661},[4173,33540,33031],{"class":4669},[4173,33542,33543],{"class":4669}," config\n",[4173,33545,33546],{"class":4657,"line":21380},[4173,33547,4761],{"emptyLinePlaceholder":4760},[4173,33549,33550],{"class":4657,"line":21385},[4173,33551,33552],{"class":4766},"# ─── Stoppen und Aufräumen ────────────────────────────────────\n",[4173,33554,33555],{"class":4657,"line":21397},[4173,33556,4761],{"emptyLinePlaceholder":4760},[4173,33558,33559],{"class":4657,"line":21402},[4173,33560,33561],{"class":4766},"# Stoppen (Container bleiben erhalten)\n",[4173,33563,33564],{"class":4657,"line":21408},[4173,33565,4761],{"emptyLinePlaceholder":4760},[4173,33567,33568,33570,33572],{"class":4657,"line":21413},[4173,33569,8042],{"class":4661},[4173,33571,33031],{"class":4669},[4173,33573,33574],{"class":4669}," stop\n",[4173,33576,33577],{"class":4657,"line":21425},[4173,33578,4761],{"emptyLinePlaceholder":4760},[4173,33580,33581],{"class":4657,"line":21430},[4173,33582,33583],{"class":4766},"# Stoppen und Container entfernen\n",[4173,33585,33586],{"class":4657,"line":21436},[4173,33587,4761],{"emptyLinePlaceholder":4760},[4173,33589,33590,33592,33594],{"class":4657,"line":21441},[4173,33591,8042],{"class":4661},[4173,33593,33031],{"class":4669},[4173,33595,33596],{"class":4669}," down\n",[4173,33598,33599],{"class":4657,"line":21453},[4173,33600,4761],{"emptyLinePlaceholder":4760},[4173,33602,33603],{"class":4657,"line":21458},[4173,33604,33605],{"class":4766},"# Stoppen, Container UND Volumes entfernen (VORSICHT: Datenverlust!)\n",[4173,33607,33608],{"class":4657,"line":21464},[4173,33609,4761],{"emptyLinePlaceholder":4760},[4173,33611,33612,33614,33616,33619],{"class":4657,"line":21469},[4173,33613,8042],{"class":4661},[4173,33615,33031],{"class":4669},[4173,33617,33618],{"class":4669}," down",[4173,33620,33621],{"class":4665}," -v\n",[4173,33623,33624],{"class":4657,"line":21481},[4173,33625,4761],{"emptyLinePlaceholder":4760},[4173,33627,33628],{"class":4657,"line":21486},[4173,33629,33630],{"class":4766},"# Stoppen und auch Images entfernen\n",[4173,33632,33633],{"class":4657,"line":21492},[4173,33634,4761],{"emptyLinePlaceholder":4760},[4173,33636,33637,33639,33641,33643,33646],{"class":4657,"line":21497},[4173,33638,8042],{"class":4661},[4173,33640,33031],{"class":4669},[4173,33642,33618],{"class":4669},[4173,33644,33645],{"class":4665}," --rmi",[4173,33647,33648],{"class":4669}," all\n",[4173,33650,33651],{"class":4657,"line":21503},[4173,33652,4761],{"emptyLinePlaceholder":4760},[4173,33654,33655],{"class":4657,"line":21508},[4173,33656,33657],{"class":4766},"# Nur bestimmte Services neu starten\n",[4173,33659,33660],{"class":4657,"line":21518},[4173,33661,4761],{"emptyLinePlaceholder":4760},[4173,33663,33664,33666,33668,33671],{"class":4657,"line":21523},[4173,33665,8042],{"class":4661},[4173,33667,33031],{"class":4669},[4173,33669,33670],{"class":4669}," restart",[4173,33672,33230],{"class":4669},[4173,33674,33675],{"class":4657,"line":21529},[4173,33676,4761],{"emptyLinePlaceholder":4760},[4173,33678,33679],{"class":4657,"line":21534},[4173,33680,33681],{"class":4766},"# ─── Skalieren ───────────────────────────────────────────────\n",[4173,33683,33684],{"class":4657,"line":21544},[4173,33685,4761],{"emptyLinePlaceholder":4760},[4173,33687,33688],{"class":4657,"line":21549},[4173,33689,33690],{"class":4766},"# Backend auf 3 Instanzen skalieren\n",[4173,33692,33693],{"class":4657,"line":21555},[4173,33694,4761],{"emptyLinePlaceholder":4760},[4173,33696,33697,33699,33701,33703,33705,33708,33711],{"class":4657,"line":21560},[4173,33698,8042],{"class":4661},[4173,33700,33031],{"class":4669},[4173,33702,33034],{"class":4669},[4173,33704,8048],{"class":4665},[4173,33706,33707],{"class":4665}," --scale",[4173,33709,33710],{"class":4669}," backend=",[4173,33712,31652],{"class":4665},[4173,33714,33715],{"class":4657,"line":21570},[4173,33716,4761],{"emptyLinePlaceholder":4760},[4173,33718,33719],{"class":4657,"line":21575},[4173,33720,33721],{"class":4766},"# ─── Mehrere Compose-Dateien ──────────────────────────────────\n",[4173,33723,33724],{"class":4657,"line":21581},[4173,33725,4761],{"emptyLinePlaceholder":4760},[4173,33727,33728],{"class":4657,"line":21586},[4173,33729,33730],{"class":4766},"# Produktion mit Überschreibungs-Datei\n",[4173,33732,33733],{"class":4657,"line":21596},[4173,33734,4761],{"emptyLinePlaceholder":4760},[4173,33736,33737,33739,33741,33743,33746,33748,33751,33753],{"class":4657,"line":21601},[4173,33738,8042],{"class":4661},[4173,33740,33031],{"class":4669},[4173,33742,11337],{"class":4665},[4173,33744,33745],{"class":4669}," docker-compose.yml",[4173,33747,11337],{"class":4665},[4173,33749,33750],{"class":4669}," docker-compose.prod.yml",[4173,33752,33034],{"class":4669},[4173,33754,33037],{"class":4665},[4173,33756,33757],{"class":4657,"line":21607},[4173,33758,4761],{"emptyLinePlaceholder":4760},[4173,33760,33761],{"class":4657,"line":21612},[4173,33762,33763],{"class":4766},"# Mit eigenem Projektname\n",[4173,33765,33766],{"class":4657,"line":21622},[4173,33767,4761],{"emptyLinePlaceholder":4760},[4173,33769,33770,33772,33774,33776,33779,33781],{"class":4657,"line":21627},[4173,33771,8042],{"class":4661},[4173,33773,33031],{"class":4669},[4173,33775,8206],{"class":4665},[4173,33777,33778],{"class":4669}," mein-projekt",[4173,33780,33034],{"class":4669},[4173,33782,33037],{"class":4665},[4173,33784,33785],{"class":4657,"line":21633},[4173,33786,4761],{"emptyLinePlaceholder":4760},[4173,33788,33789],{"class":4657,"line":21638},[4173,33790,33791],{"class":4766},"# Mit anderer .env-Datei\n",[4173,33793,33794],{"class":4657,"line":21644},[4173,33795,4761],{"emptyLinePlaceholder":4760},[4173,33797,33798,33800,33802,33805,33808,33810],{"class":4657,"line":21649},[4173,33799,8042],{"class":4661},[4173,33801,33031],{"class":4669},[4173,33803,33804],{"class":4665}," --env-file",[4173,33806,33807],{"class":4669}," .env.production",[4173,33809,33034],{"class":4669},[4173,33811,33037],{"class":4665},[16,33813,12997],{"id":33814},"ausgabe-20",[11,33816,33818],{"id":33817},"docker-compose-ps","docker compose ps",[414,33820,33821,33822,33824,33825,33827,33828,33830],{},"NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS",[7135,33823],{},"\nmein-projekt-backend-1 backend:latest \".\u002Fserver\" backend 2 hours ago Up 2 hours (healthy) 0.0.0.0:8080->8080\u002Ftcp",[7135,33826],{},"\nmein-projekt-frontend-1 frontend:latest \"nginx -g 'daemon of…\" frontend 2 hours ago Up 2 hours 0.0.0.0:3000->3000\u002Ftcp",[7135,33829],{},"\nmein-projekt-database-1 postgres:15-alpine \"docker-entrypoint.s…\" database 2 hours ago Up 2 hours (healthy)",[414,33832,33833,33836],{},[42,33834,33835],{},"Best Practice:"," Niemals Passwörter direkt in docker-compose.yml schreiben – immer .env-Datei verwenden und .env in .gitignore eintragen!",[11,33838,14976],{"id":33839},"etcshadow",[414,33841,33842,33844,33845,33848,33849,33851,33852,33855],{},[42,33843,12709],{}," Enthält die ",[42,33846,33847],{},"verschlüsselten Passwörter"," und Passwort-Ablaufinformationen aller Systembenutzer. Nur ",[42,33850,13685],{}," (und die Gruppe ",[42,33853,33854],{},"shadow",") kann diese Datei lesen.",[414,33857,33858],{},[42,33859,33860],{},"Berechtigungen:",[414,33862,33863,33864,33866],{},"-rw-r----- 1 root shadow \u003C- auf Debian\u002FUbuntu",[7135,33865],{},"\n-rw------- 1 root root \u003C- auf RHEL\u002FCentOS",[414,33868,33869],{},[42,33870,33871],{},"Format (9 Felder, Trenner: :)",[414,33873,33874],{},"benutzername:passwort-hash:letzte-änderung:min-tage:max-tage:warn-tage:inaktiv-tage:ablauf:reserviert",[16,33876,33878],{"id":33877},"feldübersicht","Feldübersicht",[765,33880,33881,33898],{},[768,33882,33883],{},[771,33884,33885,33890,33894],{},[774,33886,33887],{},[42,33888,33889],{},"Feld-Nr.",[774,33891,33892],{},[42,33893,15635],{},[774,33895,33896],{},[42,33897,5800],{},[787,33899,33900,33910,33920,33930,33940,33950,33960,33970,33979],{},[771,33901,33902,33904,33907],{},[792,33903,14223],{},[792,33905,33906],{},"benutzername",[792,33908,33909],{},"Login-Name (muss mit \u002Fetc\u002Fpasswd übereinstimmen)",[771,33911,33912,33914,33917],{},[792,33913,14206],{},[792,33915,33916],{},"passwort-hash",[792,33918,33919],{},"Gehashtes Passwort mit Algorithmus-Kennung",[771,33921,33922,33924,33927],{},[792,33923,14318],{},[792,33925,33926],{},"letzte-änderung",[792,33928,33929],{},"Tage seit 01.01.1970 der letzten Passwortänderung. 0 = muss bei nächstem Login geändert werden",[771,33931,33932,33934,33937],{},[792,33933,2894],{},[792,33935,33936],{},"min-tage",[792,33938,33939],{},"Minimum-Tage bis Passwort geändert werden darf (0 = jederzeit)",[771,33941,33942,33944,33947],{},[792,33943,14292],{},[792,33945,33946],{},"max-tage",[792,33948,33949],{},"Maximum-Gültigkeit in Tagen (99999 = läuft nie ab)",[771,33951,33952,33954,33957],{},[792,33953,14278],{},[792,33955,33956],{},"warn-tage",[792,33958,33959],{},"Warnung N Tage vor Ablauf (leer = keine Warnung)",[771,33961,33962,33964,33967],{},[792,33963,14264],{},[792,33965,33966],{},"inaktiv-tage",[792,33968,33969],{},"Tage nach Ablauf bis Konto deaktiviert wird (leer = nie)",[771,33971,33972,33974,33976],{},[792,33973,16286],{},[792,33975,1680],{},[792,33977,33978],{},"Absolutes Ablaufdatum (Tage seit 01.01.1970, leer = nie)",[771,33980,33981,33984,33987],{},[792,33982,33983],{},"9",[792,33985,33986],{},"reserviert",[792,33988,33989],{},"Für zukünftige Verwendung reserviert, immer leer",[16,33991,33993],{"id":33992},"passwort-hash-formate","Passwort-Hash Formate",[765,33995,33996,34014],{},[768,33997,33998],{},[771,33999,34000,34005,34010],{},[774,34001,34002],{},[42,34003,34004],{},"Präfix",[774,34006,34007],{},[42,34008,34009],{},"Algorithmus",[774,34011,34012],{},[42,34013,2904],{},[787,34015,34016,34027,34038,34048,34059,34070,34081,34090,34100,34109],{},[771,34017,34018,34021,34024],{},[792,34019,34020],{},"$1$",[792,34022,34023],{},"MD5",[792,34025,34026],{},"Veraltet, unsicher!",[771,34028,34029,34032,34035],{},[792,34030,34031],{},"$2a$ \u002F $2b$",[792,34033,34034],{},"bcrypt",[792,34036,34037],{},"Gut",[771,34039,34040,34043,34046],{},[792,34041,34042],{},"$5$",[792,34044,34045],{},"SHA-256",[792,34047,34037],{},[771,34049,34050,34053,34056],{},[792,34051,34052],{},"$6$",[792,34054,34055],{},"SHA-512",[792,34057,34058],{},"Empfohlen (Standard auf vielen Systemen)",[771,34060,34061,34064,34067],{},[792,34062,34063],{},"$y$",[792,34065,34066],{},"yescrypt",[792,34068,34069],{},"Modern, sehr sicher (Standard Debian 11+)",[771,34071,34072,34075,34078],{},[792,34073,34074],{},"$7$",[792,34076,34077],{},"scrypt",[792,34079,34080],{},"Modern, sicher",[771,34082,34083,34085,34087],{},[792,34084,6842],{},[792,34086,22446],{},[792,34088,34089],{},"Konto gesperrt (passwd -l), ! vor dem Hash",[771,34091,34092,34095,34097],{},[792,34093,34094],{},"!!",[792,34096,22446],{},[792,34098,34099],{},"Konto gesperrt und nie ein Passwort gesetzt",[771,34101,34102,34104,34106],{},[792,34103,6328],{},[792,34105,22446],{},[792,34107,34108],{},"Kein Login möglich (Systemkonten wie daemon, bin)",[771,34110,34111,34114,34116],{},[792,34112,34113],{},"leer",[792,34115,22446],{},[792,34117,34118],{},"Kein Passwort – Login ohne Passwort möglich (sehr unsicher!)",[16,34120,34122],{"id":34121},"sha-512-hash-struktur","SHA-512-Hash-Struktur",[414,34124,34125,34126,34128,34129,34131,34132,34134,34135,34137,34138,34140],{},"$6$rounds=65536$saltwert$eigentlicher_hash",[7135,34127],{},"\n| | | |",[7135,34130],{},"\n| | | +-- Base64-kodierter Hash (86 Zeichen)",[7135,34133],{},"\n| | +-- Salt (zufälliger Wert, bis 16 Zeichen)",[7135,34136],{},"\n| +-- rounds: Anzahl der Iterationen (Standard: 5000)",[7135,34139],{},"\n+-- Algorithmus: 6 = SHA-512",[16,34142,34144],{"id":34143},"vollständige-beispielzeilen","Vollständige Beispielzeilen",[11,34146,34148],{"id":34147},"normales-konto-mit-sha-512-passwort","Normales Konto mit SHA-512-Passwort",[414,34150,34151],{},"alice:$6$rounds=65536$abc123xyz$HashHashHash...:19845:0:99999:7:::",[414,34153,34154],{},"| | | | | | |",[414,34156,34157],{},"| | | | | | +-- 7 Tage Warnung",[414,34159,34160],{},"| | | | | +-- max 99999 Tage",[414,34162,34163],{},"| | | | +-- min 0 Tage",[414,34165,34166],{},"| | | +-- letzte Änderung",[414,34168,34169],{},"| | +-- Hash",[414,34171,34172],{},"| +-- $6$ = SHA-512",[414,34174,34175],{},"+-- Benutzername",[11,34177,34179],{"id":34178},"gesperrtes-konto","Gesperrtes Konto",[414,34181,34182],{},"bob:!$6$hash...:19845:0:99999:7:::",[414,34184,34185],{},"^-- ! = gesperrt",[11,34187,34189],{"id":34188},"noch-nie-passwort-gesetzt","Noch nie Passwort gesetzt",[414,34191,34192],{},"newuser:!!:19845:0:99999:7:::",[414,34194,34195],{},"^^-- !! = kein Passwort, gesperrt",[11,34197,34199],{"id":34198},"systemkonto","Systemkonto",[414,34201,34202],{},"daemon:*:19845:0:99999:7:::",[414,34204,34205],{},"^-- * = kein Login möglich",[16,34207,34209],{"id":34208},"nützliche-befehle","Nützliche Befehle",[11,34211,34213],{"id":34212},"anzeigen-nur-als-root","Anzeigen (nur als root)",[4647,34215,34217],{"className":4649,"code":34216,"language":4651,"meta":269,"style":269},"sudo cat \u002Fetc\u002Fshadow\n\n",[4653,34218,34219],{"__ignoreMap":269},[4173,34220,34221,34223,34225],{"class":4657,"line":4658},[4173,34222,13062],{"class":4661},[4173,34224,25032],{"class":4669},[4173,34226,28419],{"class":4669},[11,34228,34230],{"id":34229},"einzelnen-benutzer-abfragen","Einzelnen Benutzer abfragen",[414,34232,34233],{},"sudo getent shadow alice",[11,34235,25222],{"id":34236},"passwortstatus-anzeigen",[414,34238,34239],{},"sudo passwd -S alice",[11,34241,34243],{"id":34242},"ausführliche-ablaufinformationen","Ausführliche Ablaufinformationen",[414,34245,34246],{},"sudo chage -l alice",[11,34248,34250],{"id":34249},"feld-3-tage-in-datum-umrechnen","Feld 3 (Tage) in Datum umrechnen",[4647,34252,34254],{"className":4649,"code":34253,"language":4651,"meta":269,"style":269},"date -d \"1970-01-01 + 19845 days\"\n\n# Konten ohne Passwort finden (Sicherheitscheck!)\n\nsudo awk -F: '$2 == \"\" {print $1}' \u002Fetc\u002Fshadow\n\n# Gesperrte Konten finden\n\nsudo awk -F: '$2 ~ \u002F^!\u002F {print $1}' \u002Fetc\u002Fshadow\n\n# Konten mit niemals ablaufendem Passwort\n\nsudo awk -F: '$5 == 99999 {print $1}' \u002Fetc\u002Fshadow\n\n# \u002Fetc\u002Fgroup\n\n",[4653,34255,34256,34265,34269,34274,34278,34292,34296,34301,34305,34318,34322,34327,34331,34344,34348],{"__ignoreMap":269},[4173,34257,34258,34260,34262],{"class":4657,"line":4658},[4173,34259,11289],{"class":4661},[4173,34261,8048],{"class":4665},[4173,34263,34264],{"class":4669}," \"1970-01-01 + 19845 days\"\n",[4173,34266,34267],{"class":4657,"line":270},[4173,34268,4761],{"emptyLinePlaceholder":4760},[4173,34270,34271],{"class":4657,"line":1263},[4173,34272,34273],{"class":4766},"# Konten ohne Passwort finden (Sicherheitscheck!)\n",[4173,34275,34276],{"class":4657,"line":4770},[4173,34277,4761],{"emptyLinePlaceholder":4760},[4173,34279,34280,34282,34285,34287,34290],{"class":4657,"line":4775},[4173,34281,13062],{"class":4661},[4173,34283,34284],{"class":4669}," awk",[4173,34286,19890],{"class":4665},[4173,34288,34289],{"class":4669}," '$2 == \"\" {print $1}'",[4173,34291,28419],{"class":4669},[4173,34293,34294],{"class":4657,"line":6320},[4173,34295,4761],{"emptyLinePlaceholder":4760},[4173,34297,34298],{"class":4657,"line":6325},[4173,34299,34300],{"class":4766},"# Gesperrte Konten finden\n",[4173,34302,34303],{"class":4657,"line":6343},[4173,34304,4761],{"emptyLinePlaceholder":4760},[4173,34306,34307,34309,34311,34313,34316],{"class":4657,"line":6348},[4173,34308,13062],{"class":4661},[4173,34310,34284],{"class":4669},[4173,34312,19890],{"class":4665},[4173,34314,34315],{"class":4669}," '$2 ~ \u002F^!\u002F {print $1}'",[4173,34317,28419],{"class":4669},[4173,34319,34320],{"class":4657,"line":6457},[4173,34321,4761],{"emptyLinePlaceholder":4760},[4173,34323,34324],{"class":4657,"line":6462},[4173,34325,34326],{"class":4766},"# Konten mit niemals ablaufendem Passwort\n",[4173,34328,34329],{"class":4657,"line":6468},[4173,34330,4761],{"emptyLinePlaceholder":4760},[4173,34332,34333,34335,34337,34339,34342],{"class":4657,"line":6473},[4173,34334,13062],{"class":4661},[4173,34336,34284],{"class":4669},[4173,34338,19890],{"class":4665},[4173,34340,34341],{"class":4669}," '$5 == 99999 {print $1}'",[4173,34343,28419],{"class":4669},[4173,34345,34346],{"class":4657,"line":6479},[4173,34347,4761],{"emptyLinePlaceholder":4760},[4173,34349,34350],{"class":4657,"line":6503},[4173,34351,34352],{"class":4766},"# \u002Fetc\u002Fgroup\n",[414,34354,34355,34357,34358,34361,34362,34364,34365,34368],{},[42,34356,12709],{}," Enthält alle Gruppen des Systems mit ihren GIDs und Mitgliedern. Jeder Benutzer hat eine ",[42,34359,34360],{},"primäre Gruppe"," (in ",[42,34363,19222],{}," gespeichert) sowie beliebig viele ",[42,34366,34367],{},"sekundäre Gruppen"," (hier eingetragen).",[414,34370,34371,6100,34373,34376],{},[42,34372,33860],{},[42,34374,34375],{},"-rw-r--r-- 1 root root"," (von allen lesbar)",[414,34378,34379],{},[42,34380,34381],{},"Format (4 Felder, Trenner: :)",[414,34383,34384],{},"gruppenname:passwort:GID:mitglieder",[16,34386,33878],{"id":34387},"feldübersicht-1",[765,34389,34390,34406],{},[768,34391,34392],{},[771,34393,34394,34398,34402],{},[774,34395,34396],{},[42,34397,33889],{},[774,34399,34400],{},[42,34401,15635],{},[774,34403,34404],{},[42,34405,5800],{},[787,34407,34408,34418,34428,34438],{},[771,34409,34410,34412,34415],{},[792,34411,14223],{},[792,34413,34414],{},"gruppenname",[792,34416,34417],{},"Name der Gruppe",[771,34419,34420,34422,34425],{},[792,34421,14206],{},[792,34423,34424],{},"passwort",[792,34426,34427],{},"x = Passwort in \u002Fetc\u002Fgshadow; leer = kein Passwort",[771,34429,34430,34432,34435],{},[792,34431,14318],{},[792,34433,34434],{},"GID",[792,34436,34437],{},"Gruppen-ID (numerisch). 0 = root, 1-999 = System, 1000+ = normal",[771,34439,34440,34442,34445],{},[792,34441,2894],{},[792,34443,34444],{},"mitglieder",[792,34446,34447],{},"Kommagetrennte Liste der sekundären Mitglieder",[16,34449,34451],{"id":34450},"gid-bereiche-konvention","GID-Bereiche (Konvention)",[765,34453,34454,34466],{},[768,34455,34456],{},[771,34457,34458,34462],{},[774,34459,34460],{},[42,34461,12738],{},[774,34463,34464],{},[42,34465,854],{},[787,34467,34468,34475,34483,34491],{},[771,34469,34470,34472],{},[792,34471,12749],{},[792,34473,34474],{},"root-Gruppe",[771,34476,34477,34480],{},[792,34478,34479],{},"1 – 99",[792,34481,34482],{},"Statische System-Gruppen",[771,34484,34485,34488],{},[792,34486,34487],{},"100 – 999",[792,34489,34490],{},"Dynamische System-\u002FDienst-Gruppen",[771,34492,34493,34496],{},[792,34494,34495],{},"1000+",[792,34497,34498],{},"Normale Benutzergruppen",[16,34500,34502],{"id":34501},"vollständiges-beispiel","Vollständiges Beispiel",[414,34504,34505],{},"root❌0:",[414,34507,34508],{},"daemon❌1:",[414,34510,34511],{},"adm❌4:syslog,matta",[414,34513,34514],{},"sudo❌27:matta,alice",[414,34516,34517],{},"cdrom❌24:matta",[414,34519,34520],{},"plugdev❌46:matta",[414,34522,34523],{},"docker❌999:matta,alice",[414,34525,34526],{},"entwickler❌1001:alice,bob,charlie",[414,34528,34529],{},"webteam❌1002:bob,diana",[16,34531,34533],{"id":34532},"unterschied-primäre-vs-sekundäre-gruppe","Unterschied: Primäre vs. Sekundäre Gruppe",[11,34535,19222],{"id":34536},"etcpasswd",[414,34538,34539],{},"alice❌1001:1001:Alice:\u002Fhome\u002Falice:\u002Fbin\u002Fbash",[414,34541,34542],{},"^^^^ GID 1001 = primäre Gruppe von alice",[11,34544,34546],{"id":34545},"etcgroup","\u002Fetc\u002Fgroup",[414,34548,34549],{},"entwickler❌1001:alice,bob",[11,34551,34553],{"id":34552},"alice-taucht-hier-als-sekundäres-mitglied-auf","alice taucht hier als sekundäres Mitglied auf",[11,34555,34557],{"id":34556},"würde-alice-diese-gruppe-als-primäre-haben-stünde-sie-nicht-hier","Würde alice diese Gruppe als primäre haben, stünde sie NICHT hier",[16,34559,34209],{"id":34560},"nützliche-befehle-1",[11,34562,34564],{"id":34563},"datei-anzeigen","Datei anzeigen",[4647,34566,34568],{"className":4649,"code":34567,"language":4651,"meta":269,"style":269},"cat \u002Fetc\u002Fgroup\n\n",[4653,34569,34570],{"__ignoreMap":269},[4173,34571,34572,34574],{"class":4657,"line":4658},[4173,34573,10112],{"class":4661},[4173,34575,34576],{"class":4669}," \u002Fetc\u002Fgroup\n",[11,34578,34580],{"id":34579},"alle-gruppen-des-aktuellen-benutzers","Alle Gruppen des aktuellen Benutzers",[414,34582,34583],{},"groups",[11,34585,34587],{"id":34586},"alle-gruppen-eines-bestimmten-benutzers","Alle Gruppen eines bestimmten Benutzers",[414,34589,34590],{},"groups alice",[4647,34592,34594],{"className":4649,"code":34593,"language":4651,"meta":269,"style":269},"id -Gn alice\n\n# Alle GIDs numerisch\n\nid -G alice\n\n",[4653,34595,34596,34604,34608,34613,34617],{"__ignoreMap":269},[4173,34597,34598,34600,34602],{"class":4657,"line":4658},[4173,34599,12704],{"class":4661},[4173,34601,12980],{"class":4665},[4173,34603,25409],{"class":4669},[4173,34605,34606],{"class":4657,"line":270},[4173,34607,4761],{"emptyLinePlaceholder":4760},[4173,34609,34610],{"class":4657,"line":1263},[4173,34611,34612],{"class":4766},"# Alle GIDs numerisch\n",[4173,34614,34615],{"class":4657,"line":4770},[4173,34616,4761],{"emptyLinePlaceholder":4760},[4173,34618,34619,34621,34624],{"class":4657,"line":4775},[4173,34620,12704],{"class":4661},[4173,34622,34623],{"class":4665}," -G",[4173,34625,25409],{"class":4669},[11,34627,34629],{"id":34628},"gruppeninformationen-abfragen","Gruppeninformationen abfragen",[414,34631,34632],{},"getent group entwickler",[414,34634,34635],{},"getent group 1001",[11,34637,34639],{"id":34638},"benutzer-zu-gruppe-hinzufügen-gilt-ab-nächstem-login","Benutzer zu Gruppe hinzufügen (gilt ab nächstem Login)",[414,34641,34642],{},"sudo usermod -aG entwickler alice",[11,34644,34646],{"id":34645},"wichtig-ohne-a-werden-alle-bisherigen-gruppen-ersetzt","WICHTIG: ohne -a werden alle bisherigen Gruppen ersetzt!",[11,34648,34650],{"id":34649},"benutzer-aus-gruppe-entfernen","Benutzer aus Gruppe entfernen",[414,34652,34653],{},"sudo gpasswd -d alice entwickler",[11,34655,34657],{"id":34656},"neue-gruppe-erstellen","Neue Gruppe erstellen",[414,34659,34660],{},"sudo groupadd projektteam",[11,34662,34664],{"id":34663},"neue-gruppe-mit-spezifischer-gid","Neue Gruppe mit spezifischer GID",[414,34666,34667],{},"sudo groupadd -g 2000 ops",[11,34669,34671],{"id":34670},"gruppe-umbenennen","Gruppe umbenennen",[414,34673,34674],{},"sudo groupmod -n neuername altername",[11,34676,34678],{"id":34677},"gruppe-löschen","Gruppe löschen",[414,34680,34681],{},"sudo groupdel altername",[11,34683,34685],{"id":34684},"alle-mitglieder-der-sudo-gruppe","Alle Mitglieder der sudo-Gruppe",[414,34687,34688],{},"getent group sudo | cut -d: -f4",[16,34690,12997],{"id":34691},"ausgabe-21",[11,34693,34632],{"id":34694},"getent-group-entwickler",[414,34696,34526],{},[11,34698,34700],{"id":34699},"sekundäre-mitglieder-kommagetrennt","| | +-- sekundäre Mitglieder (kommagetrennt)",[11,34702,34704],{"id":34703},"gid","| +-- GID",[11,34706,34708],{"id":34707},"x-passwort-in-etcgshadow","+-- x = Passwort in \u002Fetc\u002Fgshadow",[11,34710,34590],{"id":34711},"groups-alice",[414,34713,34714],{},"alice : alice adm sudo entwickler docker",[11,34716,34718],{"id":34717},"primäre-gruppe","^^^^^ primäre Gruppe",[11,34720,34722],{"id":34721},"sekundäre-gruppen","^^^^^^^^^^^^^^^^^^^^^^^^^ sekundäre Gruppen",[11,34724,34726],{"id":34725},"etcgshadow","\u002Fetc\u002Fgshadow",[414,34728,34729,34731,34732,34735,34736,34738,34739,34741],{},[42,34730,12709],{}," Enthält verschlüsselte ",[42,34733,34734],{},"Gruppenpasswörter"," sowie Informationen zu Gruppenadministratoren. Nur ",[42,34737,13685],{}," und die Gruppe ",[42,34740,33854],{}," können diese Datei lesen.",[414,34743,34744,6100,34746],{},[42,34745,33860],{},[42,34747,34748],{},"-rw-r----- 1 root shadow",[414,34750,34751],{},[42,34752,34381],{},[414,34754,34755],{},"gruppenname:passwort-hash:administratoren:mitglieder",[16,34757,33878],{"id":34758},"feldübersicht-2",[765,34760,34761,34777],{},[768,34762,34763],{},[771,34764,34765,34769,34773],{},[774,34766,34767],{},[42,34768,33889],{},[774,34770,34771],{},[42,34772,15635],{},[774,34774,34775],{},[42,34776,5800],{},[787,34778,34779,34788,34797,34807],{},[771,34780,34781,34783,34785],{},[792,34782,14223],{},[792,34784,34414],{},[792,34786,34787],{},"Name der Gruppe (muss mit \u002Fetc\u002Fgroup übereinstimmen)",[771,34789,34790,34792,34794],{},[792,34791,14206],{},[792,34793,33916],{},[792,34795,34796],{},"Gehashtes Gruppenpasswort. ! \u002F !! = kein Passwort \u002F gesperrt; leer = kein Passwort",[771,34798,34799,34801,34804],{},[792,34800,14318],{},[792,34802,34803],{},"administratoren",[792,34805,34806],{},"Kommagetrennte Liste von Gruppenadmins – können Mitglieder hinzufügen\u002Fentfernen ohne root zu sein",[771,34808,34809,34811,34813],{},[792,34810,2894],{},[792,34812,34444],{},[792,34814,34815],{},"Kommagetrennte Liste der Mitglieder (spiegelt \u002Fetc\u002Fgroup Feld 4)",[16,34817,34819],{"id":34818},"gruppenpasswort-wofür","Gruppenpasswort – Wofür?",[414,34821,34822,34823,34826,34827,34830],{},"Gruppenpasswörter erlauben es einem Benutzer, der ",[42,34824,34825],{},"nicht Mitglied"," einer Gruppe ist, mittels ",[42,34828,34829],{},"newgrp \u003Cgruppe>"," temporär die Gruppe zu wechseln – wenn er das Gruppenpasswort kennt.",[11,34832,34834],{"id":34833},"gruppenpasswort-setzen","Gruppenpasswort setzen",[414,34836,34837],{},"sudo gpasswd entwickler",[11,34839,34841],{"id":34840},"nicht-mitglied-kann-beitreten-wenn-er-das-passwort-kennt","Nicht-Mitglied kann beitreten wenn er das Passwort kennt",[414,34843,34844],{},"newgrp entwickler",[11,34846,34847],{"id":34424},"Passwort:",[16,34849,34851],{"id":34850},"vollständiger-beispielinhalt","Vollständiger Beispielinhalt",[414,34853,34854],{},"root:::",[414,34856,34857],{},"daemon:::",[414,34859,34860],{},"sudo:!:root:matta,alice",[414,34862,34863],{},"entwickler:$6$AbcDef...:alice:alice,bob,charlie",[11,34865,34867],{"id":34866},"normale-mitglieder","| | +-- normale Mitglieder",[11,34869,34871],{"id":34870},"alice-ist-gruppenadmin","| +-- alice ist Gruppenadmin",[11,34873,34875],{"id":34874},"gehashtes-gruppenpasswort","+-- gehashtes Gruppenpasswort",[414,34877,34878],{},"webteam:!!::bob,diana",[11,34880,34882],{"id":34881},"kein-passwort-gesperrt","^^-- kein Passwort + gesperrt",[16,34884,34209],{"id":34885},"nützliche-befehle-2",[11,34887,34213],{"id":34888},"anzeigen-nur-als-root-1",[4647,34890,34892],{"className":4649,"code":34891,"language":4651,"meta":269,"style":269},"sudo cat \u002Fetc\u002Fgshadow\n\n",[4653,34893,34894],{"__ignoreMap":269},[4173,34895,34896,34898,34900],{"class":4657,"line":4658},[4173,34897,13062],{"class":4661},[4173,34899,25032],{"class":4669},[4173,34901,34902],{"class":4669}," \u002Fetc\u002Fgshadow\n",[11,34904,34906],{"id":34905},"einzelnen-eintrag-abfragen","Einzelnen Eintrag abfragen",[414,34908,34909],{},"sudo getent gshadow entwickler",[11,34911,34834],{"id":34912},"gruppenpasswort-setzen-1",[414,34914,34837],{},[11,34916,34918],{"id":34917},"gruppenpasswort-entfernen-jeder-kann-beitreten","Gruppenpasswort entfernen (jeder kann beitreten)",[414,34920,34921],{},"sudo gpasswd -r entwickler",[11,34923,34925],{"id":34924},"gruppenadmin-hinzufügen","Gruppenadmin hinzufügen",[414,34927,34928],{},"sudo gpasswd -A alice entwickler",[11,34930,34932],{"id":34931},"mitglied-hinzufügen-als-gruppenadmin-oder-root","Mitglied hinzufügen (als Gruppenadmin oder root)",[414,34934,34935],{},"sudo gpasswd -a bob entwickler",[11,34937,34939],{"id":34938},"mitglied-entfernen","Mitglied entfernen",[414,34941,34942],{},"sudo gpasswd -d charlie entwickler",[11,34944,34946],{"id":34945},"mitglieder-komplett-ersetzen","Mitglieder komplett ersetzen",[414,34948,34949],{},"sudo gpasswd -M alice,bob entwickler",[11,34951,34953],{"id":34952},"als-gruppenadmin-die-gruppe-temporär-wechseln","Als Gruppenadmin die Gruppe temporär wechseln",[414,34955,34844],{},[16,34957,12997],{"id":34958},"ausgabe-22",[11,34960,34909],{"id":34961},"sudo-getent-gshadow-entwickler",[414,34963,34863],{},[11,34965,34966],{"id":34444},"| | +-- Mitglieder",[11,34968,34970],{"id":34969},"admin-alice","| +-- Admin: alice",[11,34972,34974],{"id":34973},"hash-des-gruppenpassworts","+-- Hash des Gruppenpassworts",[11,34976,34978],{"id":34977},"sudo-gpasswd-a-diana-entwickler","sudo gpasswd -a diana entwickler",[414,34980,34981],{},"Benutzer diana wurde zur Gruppe entwickler hinzugefügt.",[11,34983,34985],{"id":34984},"schnellreferenz-berechtigungen","Schnellreferenz: Berechtigungen",[16,34987,34989],{"id":34988},"vollständige-oktal-tabelle","Vollständige Oktal-Tabelle",[765,34991,34992,35008],{},[768,34993,34994],{},[771,34995,34996,35000,35004],{},[774,34997,34998],{},[42,34999,14167],{},[774,35001,35002],{},[42,35003,14253],{},[774,35005,35006],{},[42,35007,5800],{},[787,35009,35010,35018,35027,35038,35047,35056,35065,35073,35082,35093,35104,35115,35126,35137,35148],{},[771,35011,35012,35014,35016],{},[792,35013,14619],{},[792,35015,14622],{},[792,35017,14625],{},[771,35019,35020,35022,35024],{},[792,35021,14575],{},[792,35023,14578],{},[792,35025,35026],{},"Standard für Verzeichnisse und Skripte",[771,35028,35029,35032,35035],{},[792,35030,35031],{},"750",[792,35033,35034],{},"rwxr-x---",[792,35036,35037],{},"Gruppe kann lesen, Andere nichts",[771,35039,35040,35042,35044],{},[792,35041,14597],{},[792,35043,14600],{},[792,35045,35046],{},"Nur Eigentümer darf alles",[771,35048,35049,35051,35053],{},[792,35050,14608],{},[792,35052,14611],{},[792,35054,35055],{},"Kollaborativer Dateizugriff",[771,35057,35058,35060,35062],{},[792,35059,14564],{},[792,35061,14567],{},[792,35063,35064],{},"Standard für Dateien",[771,35066,35067,35069,35071],{},[792,35068,14630],{},[792,35070,14633],{},[792,35072,14636],{},[771,35074,35075,35077,35079],{},[792,35076,14586],{},[792,35078,14589],{},[792,35080,35081],{},"Private Schlüssel (z.B. ~\u002F.ssh\u002Fid_rsa)",[771,35083,35084,35087,35090],{},[792,35085,35086],{},"444",[792,35088,35089],{},"r--r--r--",[792,35091,35092],{},"Nur-Lesen für alle",[771,35094,35095,35098,35101],{},[792,35096,35097],{},"400",[792,35099,35100],{},"r--------",[792,35102,35103],{},"Nur Eigentümer kann lesen",[771,35105,35106,35109,35112],{},[792,35107,35108],{},"4755",[792,35110,35111],{},"rwsr-xr-x",[792,35113,35114],{},"SUID gesetzt",[771,35116,35117,35120,35123],{},[792,35118,35119],{},"4750",[792,35121,35122],{},"rwsr-x---",[792,35124,35125],{},"SUID + Gruppe kann ausführen",[771,35127,35128,35131,35134],{},[792,35129,35130],{},"2775",[792,35132,35133],{},"rwxrwsr-x",[792,35135,35136],{},"SGID auf Verzeichnis (Gruppe vererbt sich)",[771,35138,35139,35142,35145],{},[792,35140,35141],{},"1777",[792,35143,35144],{},"rwxrwxrwt",[792,35146,35147],{},"Sticky Bit (wie \u002Ftmp)",[771,35149,35150,35153,35156],{},[792,35151,35152],{},"1755",[792,35154,35155],{},"rwxr-xr-t",[792,35157,35158],{},"Sticky Bit + normaler Zugriff",[16,35160,35162],{"id":35161},"rechte-struktur","Rechte-Struktur",[414,35164,35165],{},"Typ Eigentümer Gruppe Andere",[21,35167,35168],{},[24,35169,35170,35171,35173],{},"r w x r w x r w x",[7135,35172],{},"\n4 2 1 4 2 1 4 2 1",[470,35175,35177],{"id":35176},"dateitypen-in-ls-l","Dateitypen in ls -l",[765,35179,35180,35192],{},[768,35181,35182],{},[771,35183,35184,35188],{},[774,35185,35186],{},[42,35187,14162],{},[774,35189,35190],{},[42,35191,6723],{},[787,35193,35194,35200,35207,35213,35220,35227,35234],{},[771,35195,35196,35198],{},[792,35197,4778],{},[792,35199,12456],{},[771,35201,35202,35204],{},[792,35203,12469],{},[792,35205,35206],{},"Verzeichnis (directory)",[771,35208,35209,35211],{},[792,35210,12511],{},[792,35212,22726],{},[771,35214,35215,35217],{},[792,35216,12490],{},[792,35218,35219],{},"Zeichengerät (character device)",[771,35221,35222,35224],{},[792,35223,6303],{},[792,35225,35226],{},"Blockgerät (block device)",[771,35228,35229,35231],{},[792,35230,414],{},[792,35232,35233],{},"Named Pipe (FIFO)",[771,35235,35236,35238],{},[792,35237,12522],{},[792,35239,35240],{},"Unix-Socket",[16,35242,35244],{"id":35243},"spezialbit-anzeige-in-ls-l","Spezialbit-Anzeige in ls -l",[765,35246,35247,35269],{},[768,35248,35249],{},[771,35250,35251,35255,35260,35265],{},[774,35252,35253],{},[42,35254,4074],{},[774,35256,35257],{},[42,35258,35259],{},"Gesetzt + x",[774,35261,35262],{},[42,35263,35264],{},"Gesetzt, kein x",[774,35266,35267],{},[42,35268,15630],{},[787,35270,35271,35282,35293],{},[771,35272,35273,35276,35278,35280],{},[792,35274,35275],{},"Eigentümer-x",[792,35277,12522],{},[792,35279,15000],{},[792,35281,14937],{},[771,35283,35284,35287,35289,35291],{},[792,35285,35286],{},"Gruppen-x",[792,35288,12522],{},[792,35290,15000],{},[792,35292,14940],{},[771,35294,35295,35298,35300,35302],{},[792,35296,35297],{},"Andere-x",[792,35299,14477],{},[792,35301,15453],{},[792,35303,15696],{},[16,35305,35307],{"id":35306},"wichtige-systemdateien-und-ihre-rechte","Wichtige Systemdateien und ihre Rechte",[765,35309,35310,35333],{},[768,35311,35312],{},[771,35313,35314,35319,35323,35328],{},[774,35315,35316],{},[42,35317,35318],{},"Datei",[774,35320,35321],{},[42,35322,9574],{},[774,35324,35325],{},[42,35326,35327],{},"Eigentümer",[774,35329,35330],{},[42,35331,35332],{},"Warum",[787,35334,35335,35347,35359,35369,35379,35391,35404,35415,35426,35436],{},[771,35336,35337,35339,35341,35344],{},[792,35338,19222],{},[792,35340,14564],{},[792,35342,35343],{},"root:root",[792,35345,35346],{},"Jeder kann lesen",[771,35348,35349,35351,35353,35356],{},[792,35350,14976],{},[792,35352,14630],{},[792,35354,35355],{},"root:shadow",[792,35357,35358],{},"Nur root\u002Fshadow",[771,35360,35361,35363,35365,35367],{},[792,35362,34546],{},[792,35364,14564],{},[792,35366,35343],{},[792,35368,35346],{},[771,35370,35371,35373,35375,35377],{},[792,35372,34726],{},[792,35374,14630],{},[792,35376,35355],{},[792,35378,35358],{},[771,35380,35381,35384,35387,35389],{},[792,35382,35383],{},"\u002Fetc\u002Fsudoers",[792,35385,35386],{},"440",[792,35388,35343],{},[792,35390,14313],{},[771,35392,35393,35396,35398,35401],{},[792,35394,35395],{},"~\u002F.ssh\u002F",[792,35397,14597],{},[792,35399,35400],{},"user:user",[792,35402,35403],{},"Nur Eigentümer",[771,35405,35406,35409,35411,35413],{},[792,35407,35408],{},"~\u002F.ssh\u002Fid_rsa",[792,35410,14586],{},[792,35412,35400],{},[792,35414,35403],{},[771,35416,35417,35420,35422,35424],{},[792,35418,35419],{},"~\u002F.ssh\u002Fauthorized_keys",[792,35421,14586],{},[792,35423,35400],{},[792,35425,35403],{},[771,35427,35428,35430,35432,35434],{},[792,35429,15432],{},[792,35431,35141],{},[792,35433,35343],{},[792,35435,14944],{},[771,35437,35438,35440,35442,35444],{},[792,35439,14969],{},[792,35441,35108],{},[792,35443,35343],{},[792,35445,14937],{},[16,35447,35449],{"id":35448},"umask-berechnung","umask-Berechnung",[16,35451,35453,35454,35456],{"id":35452},"neue-datei-666minus-umask-022","Neue Datei: 666",[7135,35455],{},"\nminus umask: -022",[414,35458,35459],{},"Ergebnis: 644 (rw-r--r--)",[16,35461,35463,35464,35456],{"id":35462},"neues-verzeichnis-777minus-umask-022","Neues Verzeichnis: 777",[7135,35465],{},[414,35467,35468],{},"Ergebnis: 755 (rwxr-xr-x)",[5719,35470,35471],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":269,"searchDepth":270,"depth":270,"links":35473},[35474,35475,35476,35477,35478,35479,35480,35481,35482,35483,35484,35485,35486,35487,35488,35489,35490,35491,35492,35493,35494,35501,35502,35503,35504,35505,35506,35507,35508,35509,35510,35511,35512,35513,35514,35522,35523,35524,35525,35526,35527,35528,35529,35530,35531,35532,35533,35534,35535,35536,35537,35538,35539,35540,35541,35542,35543,35544,35545,35546,35547,35548,35549,35550,35551,35552,35553,35554,35555,35556,35557,35558,35559,35560,35561,35562,35563,35564,35565,35566,35567,35568,35569,35570,35571,35572,35573,35574,35579,35580,35581,35582,35583,35584,35585,35586,35587,35588,35589,35590,35591,35592,35593,35594,35595,35596,35597,35598,35599,35600,35601,35602,35603,35604,35605,35606,35607,35608,35609,35610,35611,35614,35615,35616,35617,35619],{"id":12726,"depth":270,"text":12727},{"id":12779,"depth":270,"text":12780},{"id":9924,"depth":270,"text":9925},{"id":12996,"depth":270,"text":12997},{"id":13211,"depth":270,"text":13212},{"id":13247,"depth":270,"text":12780},{"id":13282,"depth":270,"text":13283},{"id":13368,"depth":270,"text":9925},{"id":13522,"depth":270,"text":12997},{"id":13705,"depth":270,"text":13706},{"id":13769,"depth":270,"text":12780},{"id":13857,"depth":270,"text":9925},{"id":14070,"depth":270,"text":12997},{"id":14145,"depth":270,"text":14146},{"id":14232,"depth":270,"text":14233},{"id":14369,"depth":270,"text":14370},{"id":14483,"depth":270,"text":12780},{"id":14538,"depth":270,"text":14539},{"id":14639,"depth":270,"text":9925},{"id":14894,"depth":270,"text":12997},{"id":14925,"depth":270,"text":14926,"children":35495},[35496,35497,35498,35499,35500],{"id":14948,"depth":1263,"text":14949},{"id":15180,"depth":1263,"text":15181},{"id":15408,"depth":1263,"text":15409},{"id":15618,"depth":1263,"text":15619},{"id":15712,"depth":1263,"text":15713},{"id":15849,"depth":270,"text":12780},{"id":15941,"depth":270,"text":9925},{"id":16199,"depth":270,"text":12997},{"id":16359,"depth":270,"text":12780},{"id":16425,"depth":270,"text":9925},{"id":16662,"depth":270,"text":12997},{"id":16747,"depth":270,"text":12780},{"id":16840,"depth":270,"text":9925},{"id":17110,"depth":270,"text":12997},{"id":17216,"depth":270,"text":12780},{"id":17475,"depth":270,"text":17476},{"id":17593,"depth":270,"text":9925},{"id":17998,"depth":270,"text":12997},{"id":8950,"depth":270,"text":8953,"children":35515},[35516,35517,35518,35519,35520,35521],{"id":18105,"depth":1263,"text":18106},{"id":18193,"depth":1263,"text":18194},{"id":18304,"depth":1263,"text":18305},{"id":18396,"depth":1263,"text":18397},{"id":9746,"depth":1263,"text":9747},{"id":18522,"depth":1263,"text":6830},{"id":18573,"depth":270,"text":9925},{"id":19171,"depth":270,"text":12997},{"id":19289,"depth":270,"text":19290},{"id":19386,"depth":270,"text":12780},{"id":19499,"depth":270,"text":19500},{"id":19633,"depth":270,"text":19634},{"id":19720,"depth":270,"text":19721},{"id":19827,"depth":270,"text":19828},{"id":19831,"depth":270,"text":9925},{"id":20248,"depth":270,"text":12997},{"id":20312,"depth":270,"text":20313},{"id":20435,"depth":270,"text":20436},{"id":20646,"depth":270,"text":20647},{"id":20708,"depth":270,"text":20709},{"id":20798,"depth":270,"text":20799},{"id":20922,"depth":270,"text":9925},{"id":22284,"depth":270,"text":12997},{"id":22367,"depth":270,"text":12780},{"id":22569,"depth":270,"text":22570},{"id":22686,"depth":270,"text":22687},{"id":22769,"depth":270,"text":9925},{"id":23099,"depth":270,"text":12997},{"id":23173,"depth":270,"text":12780},{"id":23263,"depth":270,"text":9925},{"id":23460,"depth":270,"text":12997},{"id":23506,"depth":270,"text":12780},{"id":23744,"depth":270,"text":9925},{"id":24089,"depth":270,"text":12997},{"id":24195,"depth":270,"text":12780},{"id":24359,"depth":270,"text":9925},{"id":24711,"depth":270,"text":12997},{"id":24829,"depth":270,"text":12780},{"id":24870,"depth":270,"text":9925},{"id":25038,"depth":270,"text":12997},{"id":25108,"depth":270,"text":12780},{"id":25378,"depth":270,"text":9925},{"id":25596,"depth":270,"text":12997},{"id":25782,"depth":270,"text":25783},{"id":25971,"depth":270,"text":25972},{"id":26041,"depth":270,"text":26042},{"id":26230,"depth":270,"text":9925},{"id":26630,"depth":270,"text":12997},{"id":26748,"depth":270,"text":26749},{"id":26988,"depth":270,"text":26989},{"id":27015,"depth":270,"text":27016},{"id":27474,"depth":270,"text":27475},{"id":27537,"depth":270,"text":9925},{"id":28062,"depth":270,"text":12997},{"id":28143,"depth":270,"text":28144},{"id":28207,"depth":270,"text":9925},{"id":28994,"depth":270,"text":12997},{"id":29059,"depth":270,"text":29060},{"id":29135,"depth":270,"text":29136,"children":35575},[35576,35577,35578],{"id":29139,"depth":1263,"text":29140},{"id":29255,"depth":1263,"text":29090},{"id":29400,"depth":1263,"text":29401},{"id":29500,"depth":270,"text":29501},{"id":29693,"depth":270,"text":29694},{"id":30253,"depth":270,"text":9925},{"id":30598,"depth":270,"text":30599},{"id":30811,"depth":270,"text":30812},{"id":30934,"depth":270,"text":30935},{"id":30992,"depth":270,"text":30993},{"id":31060,"depth":270,"text":31061},{"id":31123,"depth":270,"text":31124},{"id":31197,"depth":270,"text":31198},{"id":32766,"depth":270,"text":32767},{"id":32819,"depth":270,"text":32820},{"id":32863,"depth":270,"text":32864},{"id":33010,"depth":270,"text":33011},{"id":33814,"depth":270,"text":12997},{"id":33877,"depth":270,"text":33878},{"id":33992,"depth":270,"text":33993},{"id":34121,"depth":270,"text":34122},{"id":34143,"depth":270,"text":34144},{"id":34208,"depth":270,"text":34209},{"id":34387,"depth":270,"text":33878},{"id":34450,"depth":270,"text":34451},{"id":34501,"depth":270,"text":34502},{"id":34532,"depth":270,"text":34533},{"id":34560,"depth":270,"text":34209},{"id":34691,"depth":270,"text":12997},{"id":34758,"depth":270,"text":33878},{"id":34818,"depth":270,"text":34819},{"id":34850,"depth":270,"text":34851},{"id":34885,"depth":270,"text":34209},{"id":34958,"depth":270,"text":12997},{"id":34988,"depth":270,"text":34989},{"id":35161,"depth":270,"text":35162,"children":35612},[35613],{"id":35176,"depth":1263,"text":35177},{"id":35243,"depth":270,"text":35244},{"id":35306,"depth":270,"text":35307},{"id":35448,"depth":270,"text":35449},{"id":35452,"depth":270,"text":35618},"Neue Datei: 666\nminus umask: -022",{"id":35462,"depth":270,"text":35620},"Neues Verzeichnis: 777\nminus umask: -022","AP","Beschreibung: Gibt die UID (User ID), die primäre GID (Group ID) sowie alle Gruppen des aktuellen oder eines angegebenen Benutzers aus. Besonders nützlich zur schnellen Überprüfung von Rechten im System.",{},{"title":12699},"\u002Ffaecher\u002Fbsa\u002Fap-cs","\u002Fdownloads\u002FBSA\u002FBSA_CS_AP.pdf","Abschlussprüfung",{"title":12699,"description":35622},"faecher\u002Fbsa\u002Fap-cs","rFDzXMIoGjN86_jOnsHvVNZUbvuF2nIkZ3hidFDvVmY",{"id":35632,"title":35633,"body":35634,"class":35621,"description":269,"extension":283,"meta":61776,"navigation":61777,"path":61778,"pdfDownload":61779,"scope":35621,"scopeName":35627,"seo":61780,"stem":61781,"subject":2429,"subjectName":2430,"type":295,"typeName":296,"year":35627,"__hash__":61782},"faecher\u002Ffaecher\u002Fbsa\u002Fap-zsmf.md","Zusammenfassung – Abschlussprüfung",{"type":8,"value":35635,"toc":61513},[35636,35638,35810,35814,35818,35952,35956,36025,36029,36148,36152,36262,36266,36368,36372,36431,36435,36439,36479,36489,36506,36511,36514,36525,36530,36665,36669,36673,36766,36771,36805,36811,36813,36817,36824,36826,36829,36831,36833,36835,36838,36840,36842,36844,36848,36915,36920,36923,36927,36929,37100,37104,37107,37112,37123,37125,37127,37133,37138,37142,37147,37149,37203,37205,37209,37692,37695,37853,37857,37861,37970,37974,38004,38008,38024,38028,38050,38052,38056,38059,38063,38110,38114,38117,38121,38148,38152,38155,38159,38191,38195,38199,38225,38229,38232,38235,38238,38241,38244,38248,38295,38299,38303,38306,38309,38313,38316,38318,38322,38366,38369,38373,38376,38379,38383,38428,38431,38435,38438,38440,38444,38488,38491,38495,38498,38501,38504,38507,38556,38560,38564,38582,38585,38758,38760,38764,38817,38819,38823,38873,38877,38889,38891,38958,38962,39037,39039,39043,39124,39128,39130,39148,39152,39187,39189,39294,39296,39441,39445,39544,39548,39651,39653,39657,40334,40338,40342,40386,40390,40393,40467,40471,40485,40489,40613,40617,40685,40689,40692,40695,40698,40701,40751,40755,40759,40762,40765,40768,40770,40773,40776,40779,40782,40785,40788,40791,40794,40797,40800,40802,40806,41512,41516,41612,41616,41674,41685,41689,41693,41745,41749,41753,41757,41765,41769,41772,41780,41784,41787,41791,41796,41800,41869,41873,41992,41996,42000,42018,42020,42072,42076,42080,42161,42165,42228,42232,42297,42301,42351,42355,42418,42422,42458,42490,42494,42513,42546,42550,42575,42608,42611,42643,42647,42654,42678,42682,42744,42748,42825,42829,42906,42954,42958,42961,42973,42977,43063,43067,43150,43154,43158,43272,43276,43289,43293,43296,43361,43398,43402,43409,43415,43418,43435,43438,43441,43444,43458,43461,43465,43570,43574,43614,43618,43664,43668,43671,43675,43679,43777,43780,43784,43851,43855,44003,44007,44060,44064,44068,44092,44096,44169,44173,44283,44287,44351,44355,44428,44485,44489,44546,44550,44553,44577,44581,44585,44594,44596,44612,44616,44731,44735,44739,44859,44863,44935,44939,44943,44951,44955,44960,45028,45033,45294,45299,45317,45321,45367,45371,45374,45377,45380,45383,45386,45389,45400,45458,45462,45480,45500,45504,45563,45567,45572,45575,45609,45620,45624,45630,45651,45675,45683,45696,45705,45709,45797,45799,45803,45824,45828,45831,45835,45838,45842,45845,45849,45852,45856,45859,45863,45866,45870,45873,45877,45880,45884,45887,45891,45894,45898,45901,45905,45908,45912,45915,45919,45922,45926,45941,45944,45948,45967,46012,46016,46019,46022,46025,46028,46031,46034,46038,46042,46063,46067,46088,46090,46093,46103,46107,46112,46116,46148,46154,46156,46557,46559,46594,46597,46599,46603,47035,47039,47043,47046,47050,47054,47058,47173,47177,47246,47250,47622,47626,47631,47635,47705,47709,47739,47743,47746,47750,47779,47781,47843,47847,47850,48147,48151,48214,48217,48220,48224,48272,48275,48278,48281,48284,48287,48289,48343,48345,48347,48351,48426,48429,48474,48478,48497,48499,48501,48504,48521,48523,48526,48530,48533,48538,48697,48702,48745,48748,48753,48860,48865,48956,48959,48964,49029,49036,49079,49084,49098,49102,49105,49110,49140,49143,49174,49176,49178,49180,49183,49186,49191,49221,49223,49226,49229,49275,49277,49279,49282,49287,49339,49341,49343,49345,49347,49350,49355,49419,49421,49423,49426,49466,49468,49470,49472,49474,49477,49481,49484,49551,49553,49555,49557,49559,49562,49607,49611,49650,49652,49654,49658,49729,49731,49733,49735,49737,49740,49746,49752,49773,49776,49826,49828,49831,49834,49837,49840,49885,49887,49890,49893,49895,49897,49903,49907,49930,49933,49937,49943,49947,49949,49993,49996,49998,50074,50076,50080,50082,50084,50215,50219,50221,50223,50282,50286,50288,50290,50355,50358,50380,50384,50389,50394,50399,50402,50510,50514,50517,50519,50623,50627,50631,50633,50647,50657,50665,50667,50671,50675,50677,50689,50691,50701,50703,50717,50721,50731,50739,50747,50755,50763,50771,50779,50787,50795,50803,50811,50819,50827,50835,50843,50851,50859,50871,50883,50895,50903,50911,50923,50935,50947,50959,50971,50983,50995,51007,51015,51023,51031,51033,51037,51039,51069,51073,51075,51119,51123,51125,51167,51169,51177,51181,51199,51203,51208,51213,51217,51486,51490,51494,51559,51563,51643,51647,51832,51836,51840,51938,51942,51962,51966,52022,52025,52029,52081,52084,52088,52180,52184,52187,52458,52462,52538,52541,52663,52667,52771,52775,52964,52968,53060,53064,53152,53156,53170,53174,53183,53187,53190,53227,53231,53233,53393,53395,53469,53471,53520,53522,53565,53567,53607,53609,53658,53662,54721,54723,54765,54767,54769,54799,54802,54856,54859,54863,55295,55299,55303,55306,55310,55316,55319,55325,55328,55345,55351,55354,55357,55375,55381,55384,55446,55450,55452,55457,55463,55465,55476,55481,55484,55499,55508,55576,55709,55713,55715,55719,55728,55730,55741,55746,55752,55773,55776,55829,55841,55850,55859,55862,55866,55870,55896,55898,55989,55993,55995,56000,56009,56014,56020,56025,56125,56139,56142,56246,56250,56252,56256,56267,56275,56278,56288,56294,56297,56303,56340,56353,56356,56359,56451,56455,56457,56461,56469,56474,56477,56481,56622,56626,56628,56632,56640,56645,56648,56652,56740,56746,56776,56779,56822,56826,56830,56847,56851,56854,56857,56859,56862,56868,56897,56927,56948,56960,56978,56996,56999,57002,57028,57049,57052,57054,57056,57065,57092,57101,57129,57141,57175,57190,57213,57222,57228,57256,57277,57310,57316,57322,57342,57345,57357,57381,57393,57413,57419,57422,57424,57426,57441,57462,57483,57489,57508,57511,57530,57536,57551,57554,57556,57558,57564,57599,57611,57652,57679,57709,57729,57735,57738,57741,57746,57769,57787,57814,57844,57847,57849,57851,57860,57874,57955,57976,58003,58027,58036,58057,58075,58078,58084,58111,58141,58145,58148,58151,58160,58165,58177,58180,58183,58189,58198,58201,58204,58225,58234,58237,58243,58246,58261,58273,58301,58307,58313,58316,58346,58352,58393,58399,58444,58447,58450,58456,58468,58471,58491,58497,58513,58516,58519,58522,58601,58604,58607,58652,58654,58672,58675,58678,58701,58707,58737,58740,58743,58746,58752,58758,58761,58773,58776,58779,58788,58794,58803,58806,58812,58816,58819,58822,58825,58854,58866,58869,58874,58883,58888,58900,58903,58908,58920,58923,58928,58940,58943,58946,58949,58954,58963,58979,58982,58987,59049,59054,59088,59093,59105,59108,59116,59128,59133,59139,59142,59145,59150,59153,59156,59159,59162,59165,59168,59254,59257,59260,59263,59266,59271,59274,59286,59288,59297,59300,59303,59306,59368,59373,59376,59379,59382,59385,59387,59526,59531,59599,59602,59606,59609,59612,59615,59620,59626,59640,59645,59648,59660,59664,59667,59679,59684,59687,59699,59704,59707,59724,59727,59730,59733,59736,59739,59744,59747,59765,59770,59773,59788,59793,59796,59808,59813,59816,59828,59833,59836,59848,59851,59854,59859,59862,59865,59876,59879,59882,59887,59890,59894,59897,59900,59906,59909,59942,59978,60005,60044,60108,60111,60113,60116,60122,60134,60153,60161,60187,60218,60235,60253,60272,60286,60295,60319,60321,60324,60330,60336,60441,60458,60497,60588,60597,60599,60602,60608,60638,60676,60681,60748,60760,60794,60797,60875,60881,60883,60887,60890,60893,60896,61025,61029,61032,61035,61038,61124,61161,61190,61206,61230,61232,61235,61268,61270,61274,61277,61280,61283,61411,61413,61416,61433,61454,61510],[11,35637,5780],{"id":5779},[765,35639,35640,35656],{},[768,35641,35642],{},[771,35643,35644,35648,35652],{},[774,35645,35646],{},[42,35647,2459],{},[774,35649,35650],{},[42,35651,5795],{},[774,35653,35654],{},[42,35655,5800],{},[787,35657,35658,35666,35674,35682,35690,35698,35706,35714,35722,35730,35738,35746,35754,35762,35770,35778,35786,35794,35802],{},[771,35659,35660,35662,35664],{},[792,35661,5807],{},[792,35663,5810],{},[792,35665,5813],{},[771,35667,35668,35670,35672],{},[792,35669,5818],{},[792,35671,5821],{},[792,35673,5824],{},[771,35675,35676,35678,35680],{},[792,35677,5829],{},[792,35679,5832],{},[792,35681,5835],{},[771,35683,35684,35686,35688],{},[792,35685,5840],{},[792,35687,5843],{},[792,35689,5846],{},[771,35691,35692,35694,35696],{},[792,35693,5851],{},[792,35695,5854],{},[792,35697,5857],{},[771,35699,35700,35702,35704],{},[792,35701,5862],{},[792,35703,5865],{},[792,35705,5868],{},[771,35707,35708,35710,35712],{},[792,35709,5873],{},[792,35711,5876],{},[792,35713,5879],{},[771,35715,35716,35718,35720],{},[792,35717,5884],{},[792,35719,5887],{},[792,35721,5890],{},[771,35723,35724,35726,35728],{},[792,35725,5895],{},[792,35727,5898],{},[792,35729,5901],{},[771,35731,35732,35734,35736],{},[792,35733,5906],{},[792,35735,5909],{},[792,35737,5912],{},[771,35739,35740,35742,35744],{},[792,35741,5917],{},[792,35743,5920],{},[792,35745,5923],{},[771,35747,35748,35750,35752],{},[792,35749,5928],{},[792,35751,5931],{},[792,35753,5934],{},[771,35755,35756,35758,35760],{},[792,35757,5939],{},[792,35759,5942],{},[792,35761,5945],{},[771,35763,35764,35766,35768],{},[792,35765,5950],{},[792,35767,5953],{},[792,35769,5956],{},[771,35771,35772,35774,35776],{},[792,35773,5961],{},[792,35775,5964],{},[792,35777,5967],{},[771,35779,35780,35782,35784],{},[792,35781,5972],{},[792,35783,5975],{},[792,35785,5978],{},[771,35787,35788,35790,35792],{},[792,35789,5983],{},[792,35791,5986],{},[792,35793,5989],{},[771,35795,35796,35798,35800],{},[792,35797,5994],{},[792,35799,5997],{},[792,35801,6000],{},[771,35803,35804,35806,35808],{},[792,35805,5939],{},[792,35807,6007],{},[792,35809,6010],{},[11,35811,35813],{"id":35812},"grundlegende-linux-kommandos","Grundlegende Linux-Kommandos",[16,35815,35817],{"id":35816},"navigation-und-dateisystem","Navigation und Dateisystem",[765,35819,35820,35832],{},[768,35821,35822],{},[771,35823,35824,35828],{},[774,35825,35826],{},[42,35827,8243],{},[774,35829,35830],{},[42,35831,5800],{},[787,35833,35834,35841,35849,35857,35865,35873,35881,35889,35896,35904,35912,35920,35928,35936,35944],{},[771,35835,35836,35838],{},[792,35837,12025],{},[792,35839,35840],{},"Aktuelles Arbeitsverzeichnis anzeigen",[771,35842,35843,35846],{},[792,35844,35845],{},"Sudo (-u)",[792,35847,35848],{},"Programm als root(anderer benutzer)",[771,35850,35851,35854],{},[792,35852,35853],{},"su",[792,35855,35856],{},"Benutzer wechseln",[771,35858,35859,35862],{},[792,35860,35861],{},"cd verzeichnis",[792,35863,35864],{},"Verzeichnis wechseln",[771,35866,35867,35870],{},[792,35868,35869],{},"cd ~ oder cd",[792,35871,35872],{},"Ins Home-Verzeichnis wechseln",[771,35874,35875,35878],{},[792,35876,35877],{},"cd ..",[792,35879,35880],{},"Eine Ebene höher",[771,35882,35883,35886],{},[792,35884,35885],{},"cd -",[792,35887,35888],{},"Ins vorherige Verzeichnis",[771,35890,35891,35893],{},[792,35892,13462],{},[792,35894,35895],{},"Verzeichnisinhalt anzeigen",[771,35897,35898,35901],{},[792,35899,35900],{},"ls -l",[792,35902,35903],{},"Langes Listing (Details)",[771,35905,35906,35909],{},[792,35907,35908],{},"ls -a",[792,35910,35911],{},"Alle Dateien inkl. versteckte (mit . beginnend)",[771,35913,35914,35917],{},[792,35915,35916],{},"ls -lR",[792,35918,35919],{},"Rekursiv mit Details",[771,35921,35922,35925],{},[792,35923,35924],{},"ls -li",[792,35926,35927],{},"Mit Inode-Nummern",[771,35929,35930,35933],{},[792,35931,35932],{},"ls -lh",[792,35934,35935],{},"Menschenlesbare Größen",[771,35937,35938,35941],{},[792,35939,35940],{},"ls -ltr",[792,35942,35943],{},"Nach Zeit sortiert, älteste zuerst",[771,35945,35946,35949],{},[792,35947,35948],{},"ls -lSr",[792,35950,35951],{},"Nach Größe sortiert, kleinste zuerst",[16,35953,35955],{"id":35954},"wildcards-globbing","Wildcards \u002F Globbing",[765,35957,35958,35974],{},[768,35959,35960],{},[771,35961,35962,35966,35970],{},[774,35963,35964],{},[42,35965,17487],{},[774,35967,35968],{},[42,35969,6733],{},[774,35971,35972],{},[42,35973,763],{},[787,35975,35976,35986,35996,36012],{},[771,35977,35978,35980,35983],{},[792,35979,6328],{},[792,35981,35982],{},"Beliebig viele beliebige Zeichen",[792,35984,35985],{},"ls *.txt",[771,35987,35988,35990,35993],{},[792,35989,17533],{},[792,35991,35992],{},"Genau ein beliebiges Zeichen",[792,35994,35995],{},"ls prog?.c",[771,35997,35998,36002,36005],{},[792,35999,36000],{},[4173,36001,17543],{},[792,36003,36004],{},"Genau ein Zeichen aus der Menge",[792,36006,36007,36008,36011],{},"ls p",[4173,36009,36010],{},"12",".*",[771,36013,36014,36018,36021],{},[792,36015,36016],{},[4173,36017,17563],{},[792,36019,36020],{},"Zeichenbereich",[792,36022,22359,36023,6328],{},[4173,36024,17563],{},[16,36026,36028],{"id":36027},"dateien-erstellen-kopieren-verschieben-löschen","Dateien erstellen, kopieren, verschieben, löschen",[765,36030,36031,36043],{},[768,36032,36033],{},[771,36034,36035,36039],{},[774,36036,36037],{},[42,36038,8243],{},[774,36040,36041],{},[42,36042,5800],{},[787,36044,36045,36053,36061,36069,36077,36085,36093,36101,36109,36117,36124,36132,36140],{},[771,36046,36047,36050],{},[792,36048,36049],{},"touch datei",[792,36051,36052],{},"Leere Datei erstellen \u002F Zeitstempel ändern",[771,36054,36055,36058],{},[792,36056,36057],{},"touch -am datei",[792,36059,36060],{},"Zugriffs- und Änderungszeit ändern",[771,36062,36063,36066],{},[792,36064,36065],{},"mkdir verz",[792,36067,36068],{},"Verzeichnis erstellen",[771,36070,36071,36074],{},[792,36072,36073],{},"mkdir -p eltern\u002Fkind",[792,36075,36076],{},"Verschachtelte Verzeichnisse erstellen",[771,36078,36079,36082],{},[792,36080,36081],{},"cp quelle ziel",[792,36083,36084],{},"Datei kopieren",[771,36086,36087,36090],{},[792,36088,36089],{},"cp -r quelle ziel",[792,36091,36092],{},"Verzeichnis rekursiv kopieren",[771,36094,36095,36098],{},[792,36096,36097],{},"mv alt neu",[792,36099,36100],{},"Datei verschieben\u002Fumbenennen",[771,36102,36103,36106],{},[792,36104,36105],{},"mv -i alt neu",[792,36107,36108],{},"Mit Nachfrage",[771,36110,36111,36114],{},[792,36112,36113],{},"rm datei",[792,36115,36116],{},"Datei löschen",[771,36118,36119,36122],{},[792,36120,36121],{},"rm -i datei",[792,36123,36108],{},[771,36125,36126,36129],{},[792,36127,36128],{},"rm -r verzeichnis",[792,36130,36131],{},"Verzeichnis rekursiv löschen",[771,36133,36134,36137],{},[792,36135,36136],{},"rm -rf verzeichnis",[792,36138,36139],{},"Erzwungen rekursiv löschen (VORSICHT!)",[771,36141,36142,36145],{},[792,36143,36144],{},"rmdir verz",[792,36146,36147],{},"Leeres Verzeichnis löschen",[16,36149,36151],{"id":36150},"dateiinhalte-anzeigen","Dateiinhalte anzeigen",[765,36153,36154,36166],{},[768,36155,36156],{},[771,36157,36158,36162],{},[774,36159,36160],{},[42,36161,8243],{},[774,36163,36164],{},[42,36165,5800],{},[787,36167,36168,36176,36184,36192,36200,36207,36215,36223,36231,36238,36246,36254],{},[771,36169,36170,36173],{},[792,36171,36172],{},"cat datei",[792,36174,36175],{},"Gesamte Datei anzeigen",[771,36177,36178,36181],{},[792,36179,36180],{},"cat > datei",[792,36182,36183],{},"Von Tastatur in Datei schreiben (Beenden mit STRG+D)",[771,36185,36186,36189],{},[792,36187,36188],{},"cat >> datei",[792,36190,36191],{},"An Datei anhängen",[771,36193,36194,36197],{},[792,36195,36196],{},"less datei",[792,36198,36199],{},"Seitenweise anzeigen",[771,36201,36202,36205],{},[792,36203,36204],{},"more datei",[792,36206,36199],{},[771,36208,36209,36212],{},[792,36210,36211],{},"head datei",[792,36213,36214],{},"Erste 10 Zeilen",[771,36216,36217,36220],{},[792,36218,36219],{},"head -n 20 datei",[792,36221,36222],{},"Erste 20 Zeilen",[771,36224,36225,36228],{},[792,36226,36227],{},"tail datei",[792,36229,36230],{},"Letzte 10 Zeilen",[771,36232,36233,36236],{},[792,36234,36235],{},"tail -n 20 datei",[792,36237,16851],{},[771,36239,36240,36243],{},[792,36241,36242],{},"tail -f datei",[792,36244,36245],{},"Live-Überwachung einer Datei",[771,36247,36248,36251],{},[792,36249,36250],{},"wc -l datei",[792,36252,36253],{},"Zeilen zählen",[771,36255,36256,36259],{},[792,36257,36258],{},"diff datei1 datei2",[792,36260,36261],{},"Unterschiede zwischen Dateien",[16,36263,36265],{"id":36264},"systeminformationen","Systeminformationen",[765,36267,36268,36280],{},[768,36269,36270],{},[771,36271,36272,36276],{},[774,36273,36274],{},[42,36275,8243],{},[774,36277,36278],{},[42,36279,5800],{},[787,36281,36282,36290,36298,36306,36314,36322,36329,36336,36344,36352,36360],{},[771,36283,36284,36287],{},[792,36285,36286],{},"uname -a",[792,36288,36289],{},"System-Infos (Kernel, Architektur)",[771,36291,36292,36295],{},[792,36293,36294],{},"uname -v",[792,36296,36297],{},"Kernel-Version",[771,36299,36300,36303],{},[792,36301,36302],{},"uname -i",[792,36304,36305],{},"Hardware-Plattform",[771,36307,36308,36311],{},[792,36309,36310],{},"whoami",[792,36312,36313],{},"Aktueller Benutzername",[771,36315,36316,36319],{},[792,36317,36318],{},"who",[792,36320,36321],{},"Eingeloggte Benutzer",[771,36323,36324,36326],{},[792,36325,12704],{},[792,36327,36328],{},"Benutzer-\u002FGruppen-ID anzeigen",[771,36330,36331,36333],{},[792,36332,11289],{},[792,36334,36335],{},"Datum und Uhrzeit",[771,36337,36338,36341],{},[792,36339,36340],{},"uptime",[792,36342,36343],{},"Systemlaufzeit und Auslastung",[771,36345,36346,36349],{},[792,36347,36348],{},"free -h",[792,36350,36351],{},"Speicherauslastung",[771,36353,36354,36357],{},[792,36355,36356],{},"df -h",[792,36358,36359],{},"Festplattenbelegung",[771,36361,36362,36365],{},[792,36363,36364],{},"du -sh *",[792,36366,36367],{},"Verzeichnisgrößen",[16,36369,36371],{"id":36370},"umleitungen-und-pipes","Umleitungen und Pipes",[765,36373,36374,36386],{},[768,36375,36376],{},[771,36377,36378,36382],{},[774,36379,36380],{},[42,36381,19442],{},[774,36383,36384],{},[42,36385,5800],{},[787,36387,36388,36395,36402,36409,36415,36423],{},[771,36389,36390,36392],{},[792,36391,4789],{},[792,36393,36394],{},"Ausgabe in Datei (überschreiben)",[771,36396,36397,36399],{},[792,36398,24337],{},[792,36400,36401],{},"Ausgabe in Datei (anhängen)",[771,36403,36404,36406],{},[792,36405,24345],{},[792,36407,36408],{},"Eingabe aus Datei",[771,36410,36411,36413],{},[792,36412],{},[792,36414],{},[771,36416,36417,36420],{},[792,36418,36419],{},"2>&1",[792,36421,36422],{},"Fehlerausgabe zu Standardausgabe umleiten",[771,36424,36425,36428],{},[792,36426,36427],{},"&>\u002Fdev\u002Fnull",[792,36429,36430],{},"Alle Ausgaben unterdrücken",[16,36432,36434],{"id":36433},"cp-u","cp -u",[414,36436,36437],{},[42,36438,9853],{},[4647,36440,36442],{"className":4649,"code":36441,"language":4651,"meta":269,"style":269},"cp kopiert Dateien und Verzeichnisse. Die Option -u steht für update und verändert das Kopierverhaltens grundlegend:\n\n",[4653,36443,36444],{"__ignoreMap":269},[4173,36445,36446,36449,36452,36455,36458,36461,36464,36467,36470,36473,36476],{"class":4657,"line":4658},[4173,36447,36448],{"class":4661},"cp kopiert",[4173,36450,36451],{"class":4669}," Dateien",[4173,36453,36454],{"class":4669}," und",[4173,36456,36457],{"class":4669}," Verzeichnisse.",[4173,36459,36460],{"class":4669}," Die",[4173,36462,36463],{"class":4669}," Option -u steht",[4173,36465,36466],{"class":4669}," für update und",[4173,36468,36469],{"class":4669}," verändert",[4173,36471,36472],{"class":4669}," das",[4173,36474,36475],{"class":4669}," Kopierverhaltens",[4173,36477,36478],{"class":4669}," grundlegend:\n",[414,36480,36481,36482,36485,36486,7834],{},"Datei wird nur kopiert, wenn die ",[42,36483,36484],{},"Quelldatei neuer"," ist als die Zieldatei – oder wenn die Zieldatei ",[42,36487,36488],{},"nicht existiert",[4647,36490,36492],{"className":4649,"code":36491,"language":4651,"meta":269,"style":269},"cp -u quelle.txt ziel.txt\n\n",[4653,36493,36494],{"__ignoreMap":269},[4173,36495,36496,36498,36500,36503],{"class":4657,"line":4658},[4173,36497,28833],{"class":4661},[4173,36499,23851],{"class":4665},[4173,36501,36502],{"class":4669}," quelle.txt",[4173,36504,36505],{"class":4669}," ziel.txt\n",[414,36507,36508],{},[42,36509,36510],{},"Warum ist das nützlich?",[414,36512,36513],{},"Ohne -u überschreibt cp immer. Mit -u werden nur wirklich geänderte Dateien kopiert. Das ist ideal für:",[21,36515,36516,36519,36522],{},[24,36517,36518],{},"Inkrementelle Backups",[24,36520,36521],{},"Synchronisation von Verzeichnissen ohne rsync",[24,36523,36524],{},"Skripte, die nur bei Änderungen reagieren sollen",[414,36526,36527],{},[42,36528,36529],{},"Alle relevanten cp-Optionen im Überblick",[765,36531,36532,36548],{},[768,36533,36534],{},[771,36535,36536,36540,36544],{},[774,36537,36538],{},[42,36539,8964],{},[774,36541,36542],{},[42,36543,12796],{},[774,36545,36546],{},[42,36547,6733],{},[787,36549,36550,36559,36569,36578,36588,36598,36608,36617,36627,36637,36647,36656],{},[771,36551,36552,36554,36556],{},[792,36553,12807],{},[792,36555,27309],{},[792,36557,36558],{},"Nur kopieren wenn Quelle neuer als Ziel (oder Ziel fehlt)",[771,36560,36561,36564,36566],{},[792,36562,36563],{},"-r \u002F -R",[792,36565,17263],{},[792,36567,36568],{},"Verzeichnisse rekursiv kopieren",[771,36570,36571,36573,36575],{},[792,36572,8983],{},[792,36574,27121],{},[792,36576,36577],{},"Jede Aktion ausgeben",[771,36579,36580,36582,36585],{},[792,36581,8975],{},[792,36583,36584],{},"--interactive",[792,36586,36587],{},"Vor dem Überschreiben fragen",[771,36589,36590,36592,36595],{},[792,36591,8991],{},[792,36593,36594],{},"--no-clobber",[792,36596,36597],{},"Existierende Dateien niemals überschreiben",[771,36599,36600,36602,36605],{},[792,36601,13276],{},[792,36603,36604],{},"--preserve",[792,36606,36607],{},"Metadaten (Zeitstempel, Rechte, Eigentümer) erhalten",[771,36609,36610,36612,36614],{},[792,36611,22402],{},[792,36613,27043],{},[792,36615,36616],{},"Entspricht -dR --preserve=all",[771,36618,36619,36621,36624],{},[792,36620,9006],{},[792,36622,36623],{},"--link",[792,36625,36626],{},"Hardlinks statt Kopien erstellen",[771,36628,36629,36631,36634],{},[792,36630,6099],{},[792,36632,36633],{},"--symbolic-link",[792,36635,36636],{},"Symlinks statt Kopien",[771,36638,36639,36641,36644],{},[792,36640,10577],{},[792,36642,36643],{},"--force",[792,36645,36646],{},"Ziel-Datei entfernen wenn nicht schreibbar",[771,36648,36649,36651,36653],{},[792,36650,23578],{},[792,36652,27277],{},[792,36654,36655],{},"Backup der Zieldatei anlegen",[771,36657,36658,36660,36662],{},[792,36659,27297],{},[792,36661],{},[792,36663,36664],{},"Backup-Suffix festlegen (Standard: ~)",[414,36666,36667],{},[42,36668,9925],{},[11,36670,36672],{"id":36671},"nur-neuere-dateien-kopieren","Nur neuere Dateien kopieren",[4647,36674,36676],{"className":4649,"code":36675,"language":4651,"meta":269,"style":269},"cp -u dokument.txt \u002Fbackup\u002Fdokument.txt\n\n# Ganzes Verzeichnis aktualisierend synchronisieren\n\ncp -ru \u002Fhome\u002Fuser\u002Fprojekt\u002F \u002Fbackup\u002Fprojekt\u002F\n\n# Mit Ausgabe, welche Dateien wirklich kopiert wurden\n\ncp -ruv \u002Fhome\u002Fuser\u002Fdaten\u002F \u002Fmnt\u002Fbackup\u002Fdaten\u002F\n\n# Metadaten erhalten und nur Updates kopieren\n\ncp -uap \u002Fvar\u002Fwww\u002F \u002Fbackup\u002Fwww\u002F\n\n",[4653,36677,36678,36690,36694,36699,36703,36715,36719,36724,36728,36740,36744,36749,36753],{"__ignoreMap":269},[4173,36679,36680,36682,36684,36687],{"class":4657,"line":4658},[4173,36681,28833],{"class":4661},[4173,36683,23851],{"class":4665},[4173,36685,36686],{"class":4669}," dokument.txt",[4173,36688,36689],{"class":4669}," \u002Fbackup\u002Fdokument.txt\n",[4173,36691,36692],{"class":4657,"line":270},[4173,36693,4761],{"emptyLinePlaceholder":4760},[4173,36695,36696],{"class":4657,"line":1263},[4173,36697,36698],{"class":4766},"# Ganzes Verzeichnis aktualisierend synchronisieren\n",[4173,36700,36701],{"class":4657,"line":4770},[4173,36702,4761],{"emptyLinePlaceholder":4760},[4173,36704,36705,36707,36710,36712],{"class":4657,"line":4775},[4173,36706,28833],{"class":4661},[4173,36708,36709],{"class":4665}," -ru",[4173,36711,27700],{"class":4669},[4173,36713,36714],{"class":4669}," \u002Fbackup\u002Fprojekt\u002F\n",[4173,36716,36717],{"class":4657,"line":6320},[4173,36718,4761],{"emptyLinePlaceholder":4760},[4173,36720,36721],{"class":4657,"line":6325},[4173,36722,36723],{"class":4766},"# Mit Ausgabe, welche Dateien wirklich kopiert wurden\n",[4173,36725,36726],{"class":4657,"line":6343},[4173,36727,4761],{"emptyLinePlaceholder":4760},[4173,36729,36730,36732,36735,36737],{"class":4657,"line":6348},[4173,36731,28833],{"class":4661},[4173,36733,36734],{"class":4665}," -ruv",[4173,36736,27559],{"class":4669},[4173,36738,36739],{"class":4669}," \u002Fmnt\u002Fbackup\u002Fdaten\u002F\n",[4173,36741,36742],{"class":4657,"line":6457},[4173,36743,4761],{"emptyLinePlaceholder":4760},[4173,36745,36746],{"class":4657,"line":6462},[4173,36747,36748],{"class":4766},"# Metadaten erhalten und nur Updates kopieren\n",[4173,36750,36751],{"class":4657,"line":6468},[4173,36752,4761],{"emptyLinePlaceholder":4760},[4173,36754,36755,36757,36760,36763],{"class":4657,"line":6473},[4173,36756,28833],{"class":4661},[4173,36758,36759],{"class":4665}," -uap",[4173,36761,36762],{"class":4669}," \u002Fvar\u002Fwww\u002F",[4173,36764,36765],{"class":4669}," \u002Fbackup\u002Fwww\u002F\n",[414,36767,36768],{},[42,36769,36770],{},"Wie entscheidet cp -u?",[4647,36772,36774],{"className":4649,"code":36773,"language":4651,"meta":269,"style":269},"cp -u vergleicht mtime (Modification Time) der Dateien:\n\nQuelldatei-mtime > Zieldatei-mtime  →  KOPIEREN\n",[4653,36775,36776,36784,36788],{"__ignoreMap":269},[4173,36777,36778,36781],{"class":4657,"line":4658},[4173,36779,36780],{"class":4661},"cp -u vergleicht mtime (Modification Time",[4173,36782,36783],{"class":4784},") der Dateien:\n",[4173,36785,36786],{"class":4657,"line":270},[4173,36787,4761],{"emptyLinePlaceholder":4760},[4173,36789,36790,36793,36796,36799,36802],{"class":4657,"line":1263},[4173,36791,36792],{"class":4661},"Quelldatei-mtime ",[4173,36794,36795],{"class":4784},"> ",[4173,36797,36798],{"class":4669},"Zieldatei-mtime ",[4173,36800,36801],{"class":4669}," → ",[4173,36803,36804],{"class":4669}," KOPIEREN\n",[414,36806,36807,36808,36810],{},"    Quelldatei-mtime ≤ Zieldatei-mtime  →  ÜBERSPRINGEN     ",[7135,36809],{},"\n    Zieldatei existiert nicht           →  KOPIEREN",[16,36812,24806],{"id":24806},[414,36814,36815],{},[42,36816,9853],{},[414,36818,36819,36820,36823],{},"tac ist das Gegenteil von cat und gibt eine Datei ",[42,36821,36822],{},"zeilenweise in umgekehrter Reihenfolge"," aus. Der Name ist cat rückwärts gelesen.",[414,36825,24877],{},[414,36827,36828],{},"Enthält datei.txt:",[414,36830,16710],{},[414,36832,16713],{},[414,36834,16716],{},[414,36836,36837],{},"Gibt tac datei.txt aus:",[414,36839,16716],{},[414,36841,16713],{},[414,36843,16710],{},[414,36845,36846],{},[42,36847,28144],{},[765,36849,36850,36866],{},[768,36851,36852],{},[771,36853,36854,36858,36862],{},[774,36855,36856],{},[42,36857,8964],{},[774,36859,36860],{},[42,36861,12796],{},[774,36863,36864],{},[42,36865,6733],{},[787,36867,36868,36878,36888,36899,36907],{},[771,36869,36870,36872,36875],{},[792,36871,23578],{},[792,36873,36874],{},"--before",[792,36876,36877],{},"Trennzeichen vor statt nach dem Datensatz einfügen",[771,36879,36880,36882,36885],{},[792,36881,6103],{},[792,36883,36884],{},"--regex",[792,36886,36887],{},"Das Trennzeichen als regulären Ausdruck interpretieren",[771,36889,36890,36893,36896],{},[792,36891,36892],{},"-s TRENN",[792,36894,36895],{},"--separator=TRENN",[792,36897,36898],{},"Eigenes Trennzeichen statt Zeilenumbruch verwenden",[771,36900,36901,36903,36905],{},[792,36902,28189],{},[792,36904],{},[792,36906,28194],{},[771,36908,36909,36911,36913],{},[792,36910,28199],{},[792,36912],{},[792,36914,28204],{},[414,36916,36917],{},[42,36918,36919],{},"Standardverhalten",[414,36921,36922],{},"Ohne Optionen gilt \\n (Zeilenumbruch) als Trenner, und tac gibt die letzte Zeile zuerst aus.",[414,36924,36925],{},[42,36926,9925],{},[11,36928,24874],{"id":24873},[4647,36930,36932],{"className":4649,"code":36931,"language":4651,"meta":269,"style":269},"tac \u002Fvar\u002Flog\u002Fsyslog | less\n\n# Letzten Log-Eintrag zuerst sehen\n\ntac \u002Fvar\u002Flog\u002Fauth.log | head -20\n\n# Mit eigenem Trennzeichen (statt Zeilenumbruch)\n\necho \"a:b:c:d\" | tac -s \":\"\n\n# Ausgabe: d:c:b:a:\n\n# Trennzeichen wird VOR dem Datensatz gesetzt (-b)\n\necho -e \"---BLOCK1n---BLOCK2n---BLOCK3\" | tac -b -s \"---\"\n\n# Trennzeichen als Regex (-r), z.B. beliebige Zahl als Trenner\n\necho \"Wort1Wort2Wort3\" | tac -r -s \"[0-9]\"\n\n# Kombiniert mit grep: letzte Fehlerzeile im Log\n\ntac \u002Fvar\u002Flog\u002Fsyslog | grep -m1 \"error\"\n\n",[4653,36933,36934,36944,36948,36953,36957,36969,36973,36978,36982,36998,37002,37007,37011,37016,37020,37040,37044,37049,37053,37071,37075,37080,37084],{"__ignoreMap":269},[4173,36935,36936,36938,36940,36942],{"class":4657,"line":4658},[4173,36937,24806],{"class":4661},[4173,36939,16956],{"class":4669},[4173,36941,8928],{"class":4788},[4173,36943,24897],{"class":4661},[4173,36945,36946],{"class":4657,"line":270},[4173,36947,4761],{"emptyLinePlaceholder":4760},[4173,36949,36950],{"class":4657,"line":1263},[4173,36951,36952],{"class":4766},"# Letzten Log-Eintrag zuerst sehen\n",[4173,36954,36955],{"class":4657,"line":4770},[4173,36956,4761],{"emptyLinePlaceholder":4760},[4173,36958,36959,36961,36963,36965,36967],{"class":4657,"line":4775},[4173,36960,24806],{"class":4661},[4173,36962,24917],{"class":4669},[4173,36964,8928],{"class":4788},[4173,36966,10445],{"class":4661},[4173,36968,24924],{"class":4665},[4173,36970,36971],{"class":4657,"line":6320},[4173,36972,4761],{"emptyLinePlaceholder":4760},[4173,36974,36975],{"class":4657,"line":6325},[4173,36976,36977],{"class":4766},"# Mit eigenem Trennzeichen (statt Zeilenumbruch)\n",[4173,36979,36980],{"class":4657,"line":6343},[4173,36981,4761],{"emptyLinePlaceholder":4760},[4173,36983,36984,36986,36989,36991,36993,36995],{"class":4657,"line":6348},[4173,36985,6309],{"class":4665},[4173,36987,36988],{"class":4669}," \"a:b:c:d\"",[4173,36990,8928],{"class":4788},[4173,36992,24977],{"class":4661},[4173,36994,24458],{"class":4665},[4173,36996,36997],{"class":4669}," \":\"\n",[4173,36999,37000],{"class":4657,"line":6457},[4173,37001,4761],{"emptyLinePlaceholder":4760},[4173,37003,37004],{"class":4657,"line":6462},[4173,37005,37006],{"class":4766},"# Ausgabe: d:c:b:a:\n",[4173,37008,37009],{"class":4657,"line":6468},[4173,37010,4761],{"emptyLinePlaceholder":4760},[4173,37012,37013],{"class":4657,"line":6473},[4173,37014,37015],{"class":4766},"# Trennzeichen wird VOR dem Datensatz gesetzt (-b)\n",[4173,37017,37018],{"class":4657,"line":6479},[4173,37019,4761],{"emptyLinePlaceholder":4760},[4173,37021,37022,37024,37026,37029,37031,37033,37035,37037],{"class":4657,"line":6503},[4173,37023,6309],{"class":4665},[4173,37025,21075],{"class":4665},[4173,37027,37028],{"class":4669}," \"---BLOCK1n---BLOCK2n---BLOCK3\"",[4173,37030,8928],{"class":4788},[4173,37032,24977],{"class":4661},[4173,37034,24414],{"class":4665},[4173,37036,24458],{"class":4665},[4173,37038,37039],{"class":4669}," \"---\"\n",[4173,37041,37042],{"class":4657,"line":6516},[4173,37043,4761],{"emptyLinePlaceholder":4760},[4173,37045,37046],{"class":4657,"line":6971},[4173,37047,37048],{"class":4766},"# Trennzeichen als Regex (-r), z.B. beliebige Zahl als Trenner\n",[4173,37050,37051],{"class":4657,"line":10649},[4173,37052,4761],{"emptyLinePlaceholder":4760},[4173,37054,37055,37057,37060,37062,37064,37066,37068],{"class":4657,"line":10654},[4173,37056,6309],{"class":4665},[4173,37058,37059],{"class":4669}," \"Wort1Wort2Wort3\"",[4173,37061,8928],{"class":4788},[4173,37063,24977],{"class":4661},[4173,37065,9095],{"class":4665},[4173,37067,24458],{"class":4665},[4173,37069,37070],{"class":4669}," \"[0-9]\"\n",[4173,37072,37073],{"class":4657,"line":10659},[4173,37074,4761],{"emptyLinePlaceholder":4760},[4173,37076,37077],{"class":4657,"line":10664},[4173,37078,37079],{"class":4766},"# Kombiniert mit grep: letzte Fehlerzeile im Log\n",[4173,37081,37082],{"class":4657,"line":10676},[4173,37083,4761],{"emptyLinePlaceholder":4760},[4173,37085,37086,37088,37090,37092,37094,37097],{"class":4657,"line":10681},[4173,37087,24806],{"class":4661},[4173,37089,16956],{"class":4669},[4173,37091,8928],{"class":4788},[4173,37093,8931],{"class":4661},[4173,37095,37096],{"class":4665}," -m1",[4173,37098,37099],{"class":4669}," \"error\"\n",[11,37101,37103],{"id":37102},"skript-rückwärts-lesen-für-debugging","Skript rückwärts \"lesen\" (für Debugging)",[414,37105,37106],{},"tac skript.sh",[414,37108,37109],{},[42,37110,37111],{},"Praktischer Nutzen",[21,37113,37114,37117,37120],{},[24,37115,37116],{},"Logs von hinten lesen (neueste Einträge zuerst)",[24,37118,37119],{},"In Kombination mit head die letzten N Einträge effizient filtern",[24,37121,37122],{},"Alternative zu tail, wenn man mehr Kontrolle braucht",[16,37124,28103],{"id":28103},[414,37126,9853],{},[414,37128,37129,37130,37132],{},"basename entfernt den Verzeichnisteil aus einem Dateipfad und gibt nur den ",[42,37131,28111],{}," zurück. Optional kann auch eine Dateiendung entfernt werden.",[414,37134,37135],{},[42,37136,37137],{},"Grundsyntax:",[414,37139,28119,37140],{},[4173,37141,20371],{},[414,37143,37144,37145],{},"basename OPTION... PFAD... ",[4173,37146,20371],{},[414,37148,28144],{},[765,37150,37151,37167],{},[768,37152,37153],{},[771,37154,37155,37159,37163],{},[774,37156,37157],{},[42,37158,8964],{},[774,37160,37161],{},[42,37162,12796],{},[774,37164,37165],{},[42,37166,6733],{},[787,37168,37169,37178,37187,37195],{},[771,37170,37171,37173,37175],{},[792,37172,22402],{},[792,37174,28171],{},[792,37176,37177],{},"Mehrere Pfade auf einmal verarbeiten",[771,37179,37180,37182,37184],{},[792,37181,28179],{},[792,37183,27297],{},[792,37185,37186],{},"Suffix vom Ergebnis entfernen",[771,37188,37189,37191,37193],{},[792,37190,28189],{},[792,37192],{},[792,37194,28194],{},[771,37196,37197,37199,37201],{},[792,37198,28199],{},[792,37200],{},[792,37202,28204],{},[414,37204,9925],{},[11,37206,37208],{"id":37207},"nur-dateiname-aus-pfad","Nur Dateiname aus Pfad",[4647,37210,37212],{"className":4649,"code":37211,"language":4651,"meta":269,"style":269},"basename \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf\n\n# → bericht.pdf\n\n# Nur Name ohne Endung (Suffix angeben)\n\nbasename \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf .pdf\n\n# → bericht\n\nbasename \u002Fusr\u002Fbin\u002Fpython3\n\n# → python3\n\n# In Skript: aktuellen Skriptnamen\n\nSKRIPTNAME=$(basename \"$0\")\n\necho \"Dieses Skript heißt: $SKRIPTNAME\"\n\n# Dateiendung dynamisch entfernen\n\nDATEI=\"\u002Fpfad\u002Fzur\u002Fdatei.tar.gz\"\n\nbasename \"$DATEI\" .tar.gz\n\n# → datei\n\n# Mehrere Pfade gleichzeitig (-a)\n\nbasename -a \u002Fetc\u002Fhosts \u002Fetc\u002Fpasswd \u002Fetc\u002Fshadow\n\n# → hosts\n\n# passwd\n\n# shadow\n\n# Mehrere Pfade Suffix entfernen (-a -s)\n\nbasename -a -s .txt \u002Fdaten\u002Fa.txt \u002Fdaten\u002Fb.txt \u002Fdaten\u002Fc.txt\n\n# → a\n\n# b\n\n# c\n\n# In Schleife: alle .sh-Dateien ohne Endung\n\nfor f in \u002Fskripte\u002F*.sh; do\n\nname=$(basename \"$f\" .sh)\n\necho \"Verarbeite: $name\"\n\ndone\n\n# Gegenstück: dirname gibt das Verzeichnis zurück\n\ndirname \u002Fhome\u002Fuser\u002Fdokumente\u002Fbericht.pdf\n\n# → \u002Fhome\u002Fuser\u002Fdokumente\n\n# Kombination basename dirname\n\nDATEI=\"\u002Fhome\u002Fuser\u002Fdaten\u002Freport.csv\"\n\nDIR=$(dirname \"$DATEI\")\n\nNAME=$(basename \"$DATEI\" .csv)\n\necho \"Verzeichnis: $DIR\"\n\necho \"Dateiname: $NAME\"\n\n# → Verzeichnis: \u002Fhome\u002Fuser\u002Fdaten\n\n# → Dateiname: report\n\n",[4653,37213,37214,37220,37224,37228,37232,37237,37241,37249,37253,37257,37261,37267,37271,37275,37279,37284,37288,37307,37311,37323,37327,37332,37336,37345,37349,37361,37365,37369,37373,37378,37382,37394,37398,37402,37406,37410,37414,37418,37422,37427,37431,37450,37454,37459,37463,37468,37472,37477,37481,37486,37490,37504,37508,37528,37532,37543,37547,37551,37555,37560,37564,37570,37574,37579,37583,37588,37592,37600,37604,37622,37626,37646,37650,37660,37664,37674,37678,37683,37687],{"__ignoreMap":269},[4173,37215,37216,37218],{"class":4657,"line":4658},[4173,37217,28103],{"class":4661},[4173,37219,28227],{"class":4669},[4173,37221,37222],{"class":4657,"line":270},[4173,37223,4761],{"emptyLinePlaceholder":4760},[4173,37225,37226],{"class":4657,"line":1263},[4173,37227,28236],{"class":4766},[4173,37229,37230],{"class":4657,"line":4770},[4173,37231,4761],{"emptyLinePlaceholder":4760},[4173,37233,37234],{"class":4657,"line":4775},[4173,37235,37236],{"class":4766},"# Nur Name ohne Endung (Suffix angeben)\n",[4173,37238,37239],{"class":4657,"line":6320},[4173,37240,4761],{"emptyLinePlaceholder":4760},[4173,37242,37243,37245,37247],{"class":4657,"line":6325},[4173,37244,28103],{"class":4661},[4173,37246,28256],{"class":4669},[4173,37248,28259],{"class":4669},[4173,37250,37251],{"class":4657,"line":6343},[4173,37252,4761],{"emptyLinePlaceholder":4760},[4173,37254,37255],{"class":4657,"line":6348},[4173,37256,28268],{"class":4766},[4173,37258,37259],{"class":4657,"line":6457},[4173,37260,4761],{"emptyLinePlaceholder":4760},[4173,37262,37263,37265],{"class":4657,"line":6462},[4173,37264,28103],{"class":4661},[4173,37266,28288],{"class":4669},[4173,37268,37269],{"class":4657,"line":6468},[4173,37270,4761],{"emptyLinePlaceholder":4760},[4173,37272,37273],{"class":4657,"line":6473},[4173,37274,28297],{"class":4766},[4173,37276,37277],{"class":4657,"line":6479},[4173,37278,4761],{"emptyLinePlaceholder":4760},[4173,37280,37281],{"class":4657,"line":6503},[4173,37282,37283],{"class":4766},"# In Skript: aktuellen Skriptnamen\n",[4173,37285,37286],{"class":4657,"line":6516},[4173,37287,4761],{"emptyLinePlaceholder":4760},[4173,37289,37290,37293,37295,37297,37299,37301,37303,37305],{"class":4657,"line":6971},[4173,37291,37292],{"class":4784},"SKRIPTNAME",[4173,37294,6387],{"class":4788},[4173,37296,10249],{"class":4784},[4173,37298,28103],{"class":4661},[4173,37300,6218],{"class":4669},[4173,37302,6129],{"class":4665},[4173,37304,6207],{"class":4669},[4173,37306,6402],{"class":4784},[4173,37308,37309],{"class":4657,"line":10649},[4173,37310,4761],{"emptyLinePlaceholder":4760},[4173,37312,37313,37315,37318,37321],{"class":4657,"line":10654},[4173,37314,6309],{"class":4665},[4173,37316,37317],{"class":4669}," \"Dieses Skript heißt: ",[4173,37319,37320],{"class":4784},"$SKRIPTNAME",[4173,37322,6454],{"class":4669},[4173,37324,37325],{"class":4657,"line":10659},[4173,37326,4761],{"emptyLinePlaceholder":4760},[4173,37328,37329],{"class":4657,"line":10664},[4173,37330,37331],{"class":4766},"# Dateiendung dynamisch entfernen\n",[4173,37333,37334],{"class":4657,"line":10676},[4173,37335,4761],{"emptyLinePlaceholder":4760},[4173,37337,37338,37340,37342],{"class":4657,"line":10681},[4173,37339,7210],{"class":4784},[4173,37341,6387],{"class":4788},[4173,37343,37344],{"class":4669},"\"\u002Fpfad\u002Fzur\u002Fdatei.tar.gz\"\n",[4173,37346,37347],{"class":4657,"line":10702},[4173,37348,4761],{"emptyLinePlaceholder":4760},[4173,37350,37351,37353,37355,37357,37359],{"class":4657,"line":10707},[4173,37352,28103],{"class":4661},[4173,37354,6218],{"class":4669},[4173,37356,11850],{"class":4784},[4173,37358,6207],{"class":4669},[4173,37360,28382],{"class":4669},[4173,37362,37363],{"class":4657,"line":10712},[4173,37364,4761],{"emptyLinePlaceholder":4760},[4173,37366,37367],{"class":4657,"line":10717},[4173,37368,28359],{"class":4766},[4173,37370,37371],{"class":4657,"line":10727},[4173,37372,4761],{"emptyLinePlaceholder":4760},[4173,37374,37375],{"class":4657,"line":10732},[4173,37376,37377],{"class":4766},"# Mehrere Pfade gleichzeitig (-a)\n",[4173,37379,37380],{"class":4657,"line":10737},[4173,37381,4761],{"emptyLinePlaceholder":4760},[4173,37383,37384,37386,37388,37390,37392],{"class":4657,"line":10742},[4173,37385,28103],{"class":4661},[4173,37387,11304],{"class":4665},[4173,37389,28413],{"class":4669},[4173,37391,28416],{"class":4669},[4173,37393,28419],{"class":4669},[4173,37395,37396],{"class":4657,"line":10752},[4173,37397,4761],{"emptyLinePlaceholder":4760},[4173,37399,37400],{"class":4657,"line":10757},[4173,37401,28428],{"class":4766},[4173,37403,37404],{"class":4657,"line":10762},[4173,37405,4761],{"emptyLinePlaceholder":4760},[4173,37407,37408],{"class":4657,"line":10767},[4173,37409,28437],{"class":4766},[4173,37411,37412],{"class":4657,"line":10772},[4173,37413,4761],{"emptyLinePlaceholder":4760},[4173,37415,37416],{"class":4657,"line":10777},[4173,37417,28446],{"class":4766},[4173,37419,37420],{"class":4657,"line":10782},[4173,37421,4761],{"emptyLinePlaceholder":4760},[4173,37423,37424],{"class":4657,"line":10787},[4173,37425,37426],{"class":4766},"# Mehrere Pfade Suffix entfernen (-a -s)\n",[4173,37428,37429],{"class":4657,"line":10800},[4173,37430,4761],{"emptyLinePlaceholder":4760},[4173,37432,37433,37435,37437,37439,37441,37444,37447],{"class":4657,"line":10805},[4173,37434,28103],{"class":4661},[4173,37436,11304],{"class":4665},[4173,37438,24458],{"class":4665},[4173,37440,26399],{"class":4669},[4173,37442,37443],{"class":4669}," \u002Fdaten\u002Fa.txt",[4173,37445,37446],{"class":4669}," \u002Fdaten\u002Fb.txt",[4173,37448,37449],{"class":4669}," \u002Fdaten\u002Fc.txt\n",[4173,37451,37452],{"class":4657,"line":10818},[4173,37453,4761],{"emptyLinePlaceholder":4760},[4173,37455,37456],{"class":4657,"line":10823},[4173,37457,37458],{"class":4766},"# → a\n",[4173,37460,37461],{"class":4657,"line":10836},[4173,37462,4761],{"emptyLinePlaceholder":4760},[4173,37464,37465],{"class":4657,"line":10841},[4173,37466,37467],{"class":4766},"# b\n",[4173,37469,37470],{"class":4657,"line":10846},[4173,37471,4761],{"emptyLinePlaceholder":4760},[4173,37473,37474],{"class":4657,"line":10851},[4173,37475,37476],{"class":4766},"# c\n",[4173,37478,37479],{"class":4657,"line":10867},[4173,37480,4761],{"emptyLinePlaceholder":4760},[4173,37482,37483],{"class":4657,"line":10872},[4173,37484,37485],{"class":4766},"# In Schleife: alle .sh-Dateien ohne Endung\n",[4173,37487,37488],{"class":4657,"line":10877},[4173,37489,4761],{"emptyLinePlaceholder":4760},[4173,37491,37492,37494,37496,37498,37500,37502],{"class":4657,"line":10882},[4173,37493,6425],{"class":4788},[4173,37495,28716],{"class":4784},[4173,37497,6431],{"class":4788},[4173,37499,28721],{"class":4669},[4173,37501,6498],{"class":4784},[4173,37503,6437],{"class":4788},[4173,37505,37506],{"class":4657,"line":10890},[4173,37507,4761],{"emptyLinePlaceholder":4760},[4173,37509,37510,37512,37514,37516,37518,37520,37522,37524,37526],{"class":4657,"line":10895},[4173,37511,28734],{"class":4784},[4173,37513,6387],{"class":4788},[4173,37515,10249],{"class":4784},[4173,37517,28103],{"class":4661},[4173,37519,6218],{"class":4669},[4173,37521,6894],{"class":4784},[4173,37523,6207],{"class":4669},[4173,37525,28587],{"class":4669},[4173,37527,6402],{"class":4784},[4173,37529,37530],{"class":4657,"line":10904},[4173,37531,4761],{"emptyLinePlaceholder":4760},[4173,37533,37534,37536,37539,37541],{"class":4657,"line":10909},[4173,37535,6309],{"class":4665},[4173,37537,37538],{"class":4669}," \"Verarbeite: ",[4173,37540,28764],{"class":4784},[4173,37542,6454],{"class":4669},[4173,37544,37545],{"class":4657,"line":10914},[4173,37546,4761],{"emptyLinePlaceholder":4760},[4173,37548,37549],{"class":4657,"line":10919},[4173,37550,6519],{"class":4788},[4173,37552,37553],{"class":4657,"line":10933},[4173,37554,4761],{"emptyLinePlaceholder":4760},[4173,37556,37557],{"class":4657,"line":10938},[4173,37558,37559],{"class":4766},"# Gegenstück: dirname gibt das Verzeichnis zurück\n",[4173,37561,37562],{"class":4657,"line":10959},[4173,37563,4761],{"emptyLinePlaceholder":4760},[4173,37565,37566,37568],{"class":4657,"line":10964},[4173,37567,28899],{"class":4661},[4173,37569,28227],{"class":4669},[4173,37571,37572],{"class":4657,"line":10969},[4173,37573,4761],{"emptyLinePlaceholder":4760},[4173,37575,37576],{"class":4657,"line":10974},[4173,37577,37578],{"class":4766},"# → \u002Fhome\u002Fuser\u002Fdokumente\n",[4173,37580,37581],{"class":4657,"line":10982},[4173,37582,4761],{"emptyLinePlaceholder":4760},[4173,37584,37585],{"class":4657,"line":10987},[4173,37586,37587],{"class":4766},"# Kombination basename dirname\n",[4173,37589,37590],{"class":4657,"line":10995},[4173,37591,4761],{"emptyLinePlaceholder":4760},[4173,37593,37594,37596,37598],{"class":4657,"line":11000},[4173,37595,7210],{"class":4784},[4173,37597,6387],{"class":4788},[4173,37599,28883],{"class":4669},[4173,37601,37602],{"class":4657,"line":11008},[4173,37603,4761],{"emptyLinePlaceholder":4760},[4173,37605,37606,37608,37610,37612,37614,37616,37618,37620],{"class":4657,"line":11013},[4173,37607,28892],{"class":4784},[4173,37609,6387],{"class":4788},[4173,37611,10249],{"class":4784},[4173,37613,28899],{"class":4661},[4173,37615,6218],{"class":4669},[4173,37617,11850],{"class":4784},[4173,37619,6207],{"class":4669},[4173,37621,6402],{"class":4784},[4173,37623,37624],{"class":4657,"line":11021},[4173,37625,4761],{"emptyLinePlaceholder":4760},[4173,37627,37628,37630,37632,37634,37636,37638,37640,37642,37644],{"class":4657,"line":11026},[4173,37629,28919],{"class":4784},[4173,37631,6387],{"class":4788},[4173,37633,10249],{"class":4784},[4173,37635,28103],{"class":4661},[4173,37637,6218],{"class":4669},[4173,37639,11850],{"class":4784},[4173,37641,6207],{"class":4669},[4173,37643,28934],{"class":4669},[4173,37645,6402],{"class":4784},[4173,37647,37648],{"class":4657,"line":11034},[4173,37649,4761],{"emptyLinePlaceholder":4760},[4173,37651,37652,37654,37656,37658],{"class":4657,"line":11039},[4173,37653,6309],{"class":4665},[4173,37655,28950],{"class":4669},[4173,37657,28953],{"class":4784},[4173,37659,6454],{"class":4669},[4173,37661,37662],{"class":4657,"line":11048},[4173,37663,4761],{"emptyLinePlaceholder":4760},[4173,37665,37666,37668,37670,37672],{"class":4657,"line":11053},[4173,37667,6309],{"class":4665},[4173,37669,28966],{"class":4669},[4173,37671,28969],{"class":4784},[4173,37673,6454],{"class":4669},[4173,37675,37676],{"class":4657,"line":21369},[4173,37677,4761],{"emptyLinePlaceholder":4760},[4173,37679,37680],{"class":4657,"line":21374},[4173,37681,37682],{"class":4766},"# → Verzeichnis: \u002Fhome\u002Fuser\u002Fdaten\n",[4173,37684,37685],{"class":4657,"line":21380},[4173,37686,4761],{"emptyLinePlaceholder":4760},[4173,37688,37689],{"class":4657,"line":21385},[4173,37690,37691],{"class":4766},"# → Dateiname: report\n",[414,37693,37694],{},"Häufiger Einsatz in Skripten",[4647,37696,37698],{"className":4649,"code":37697,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Skript, das sich selbst benennt und Locks verwendet\n\nPROG=$(basename \"$0\")\n\nLOCKFILE=\"\u002Ftmp\u002F${PROG}.lock\"\n\nif [ -f \"$LOCKFILE\" ]; then\n\necho \"$PROG läuft bereits!\" >&2\n\nexit 1\n\nfi\n\ntouch \"$LOCKFILE\"\n\ntrap \"rm -f $LOCKFILE\" EXIT\n\necho \"$PROG wird ausgeführt...\"\n\n",[4653,37699,37700,37704,37708,37713,37717,37735,37739,37751,37755,37773,37777,37789,37793,37799,37803,37807,37811,37821,37825,37838,37842],{"__ignoreMap":269},[4173,37701,37702],{"class":4657,"line":4658},[4173,37703,6375],{"class":4766},[4173,37705,37706],{"class":4657,"line":270},[4173,37707,4761],{"emptyLinePlaceholder":4760},[4173,37709,37710],{"class":4657,"line":1263},[4173,37711,37712],{"class":4766},"# Skript, das sich selbst benennt und Locks verwendet\n",[4173,37714,37715],{"class":4657,"line":4770},[4173,37716,4761],{"emptyLinePlaceholder":4760},[4173,37718,37719,37721,37723,37725,37727,37729,37731,37733],{"class":4657,"line":4775},[4173,37720,28521],{"class":4784},[4173,37722,6387],{"class":4788},[4173,37724,10249],{"class":4784},[4173,37726,28103],{"class":4661},[4173,37728,6218],{"class":4669},[4173,37730,6129],{"class":4665},[4173,37732,6207],{"class":4669},[4173,37734,6402],{"class":4784},[4173,37736,37737],{"class":4657,"line":6320},[4173,37738,4761],{"emptyLinePlaceholder":4760},[4173,37740,37741,37743,37745,37747,37749],{"class":4657,"line":6325},[4173,37742,11242],{"class":4784},[4173,37744,6387],{"class":4788},[4173,37746,28602],{"class":4669},[4173,37748,28521],{"class":4784},[4173,37750,28607],{"class":4669},[4173,37752,37753],{"class":4657,"line":6343},[4173,37754,4761],{"emptyLinePlaceholder":4760},[4173,37756,37757,37759,37761,37763,37765,37767,37769,37771],{"class":4657,"line":6348},[4173,37758,6201],{"class":4788},[4173,37760,6204],{"class":4784},[4173,37762,10577],{"class":4788},[4173,37764,6218],{"class":4669},[4173,37766,11342],{"class":4784},[4173,37768,6207],{"class":4669},[4173,37770,6226],{"class":4784},[4173,37772,6229],{"class":4788},[4173,37774,37775],{"class":4657,"line":6457},[4173,37776,4761],{"emptyLinePlaceholder":4760},[4173,37778,37779,37781,37783,37785,37787],{"class":4657,"line":6462},[4173,37780,6309],{"class":4665},[4173,37782,6218],{"class":4669},[4173,37784,28549],{"class":4784},[4173,37786,28644],{"class":4669},[4173,37788,28555],{"class":4788},[4173,37790,37791],{"class":4657,"line":6468},[4173,37792,4761],{"emptyLinePlaceholder":4760},[4173,37794,37795,37797],{"class":4657,"line":6473},[4173,37796,10898],{"class":4665},[4173,37798,10901],{"class":4665},[4173,37800,37801],{"class":4657,"line":6479},[4173,37802,4761],{"emptyLinePlaceholder":4760},[4173,37804,37805],{"class":4657,"line":6503},[4173,37806,6247],{"class":4788},[4173,37808,37809],{"class":4657,"line":6516},[4173,37810,4761],{"emptyLinePlaceholder":4760},[4173,37812,37813,37815,37817,37819],{"class":4657,"line":6971},[4173,37814,11437],{"class":4661},[4173,37816,6218],{"class":4669},[4173,37818,11342],{"class":4784},[4173,37820,6454],{"class":4669},[4173,37822,37823],{"class":4657,"line":10649},[4173,37824,4761],{"emptyLinePlaceholder":4760},[4173,37826,37827,37829,37832,37834,37836],{"class":4657,"line":10654},[4173,37828,11388],{"class":4665},[4173,37830,37831],{"class":4669}," \"rm -f ",[4173,37833,11342],{"class":4784},[4173,37835,6207],{"class":4669},[4173,37837,11394],{"class":4669},[4173,37839,37840],{"class":4657,"line":10659},[4173,37841,4761],{"emptyLinePlaceholder":4760},[4173,37843,37844,37846,37848,37850],{"class":4657,"line":10664},[4173,37845,6309],{"class":4665},[4173,37847,6218],{"class":4669},[4173,37849,28549],{"class":4784},[4173,37851,37852],{"class":4669}," wird ausgeführt...\"\n",[11,37854,37856],{"id":37855},"verzeichnisstruktur-fhs","Verzeichnisstruktur (FHS)",[16,37858,37860],{"id":37859},"filesystem-hierarchy-standard","Filesystem Hierarchy Standard",[414,37862,37863,37864,37866,37867,37869,37870,37872,37873,37875,37876,37878,37879,37881,37882,37884,37885,37887,37888,37890,37891,37893,37894,37896,37897,37899,37900,37902,37903,37905,37906,37908,37909,37911,37912,37914,37915,37917,37918,37920,37921,37923,37924,37926,37927,37930,37931,37933,37934,37936,37937,37939,37940,37942,37943,37945,37946,37948,37949,37951,37952,37954,37955,37957,37958,37960,37961,37963,37964,37966,37967,37969],{},"\u002F Wurzelverzeichnis (root)",[7135,37865],{},"\n├── \u002Fbin Essentielle Programme (ls, bash, echo, cp, mv, rm)",[7135,37868],{},"\n├── \u002Fsbin System-Programme (für root: fdisk, mkfs, init)",[7135,37871],{},"\n├── \u002Fboot Bootloader, Kernel (vmlinuz, initramfs, grub\u002F)",[7135,37874],{},"\n├── \u002Fdev Gerätedateien (sda, tty, null, zero)",[7135,37877],{},"\n├── \u002Fetc Globale Konfigurationsdateien",[7135,37880],{},"\n│ ├── fstab Dateisystem-Mountpoints",[7135,37883],{},"\n│ ├── passwd Benutzerdatenbank",[7135,37886],{},"\n│ ├── shadow Passwortdatenbank",[7135,37889],{},"\n│ ├── group Gruppendatenbank",[7135,37892],{},"\n│ ├── hostname Rechnername",[7135,37895],{},"\n│ ├── hosts DNS-Einträge lokal",[7135,37898],{},"\n│ └── sudoers Sudo-Regeln",[7135,37901],{},"\n├── \u002Fhome Benutzer-Homeverzeichnisse (\u002Fhome\u002Fusername)",[7135,37904],{},"\n├── \u002Flib Shared Libraries, Kernelmodule",[7135,37907],{},"\n├── \u002Fmedia Automatische Mountpoints (USB, CD)",[7135,37910],{},"\n├── \u002Fmnt Manuelle Mountpoints",[7135,37913],{},"\n├── \u002Fopt Optionale Software",[7135,37916],{},"\n├── \u002Fproc Virtuelles Dateisystem: Prozesse + Kernel-Info",[7135,37919],{},"\n│ ├── cpuinfo CPU-Informationen",[7135,37922],{},"\n│ ├── meminfo Speicherinformationen",[7135,37925],{},"\n│ └── ",[4173,37928,37929],{},"PID","\u002F Verzeichnis pro Prozess",[7135,37932],{},"\n├── \u002Froot Home-Verzeichnis von root",[7135,37935],{},"\n├── \u002Frun Runtime-Daten seit letztem Boot",[7135,37938],{},"\n├── \u002Fsrv Daten für Serverdienste",[7135,37941],{},"\n├── \u002Fsys Virtuelles Dateisystem: Hardware + Kernel",[7135,37944],{},"\n├── \u002Ftmp Temporäre Dateien (nach Neustart gelöscht)",[7135,37947],{},"\n├── \u002Fusr Bibliotheken, Systemtools, installierte Programme",[7135,37950],{},"\n│ ├── \u002Fusr\u002Fbin Benutzer-Programme",[7135,37953],{},"\n│ ├── \u002Fusr\u002Fsbin System-Programme",[7135,37956],{},"\n│ └── \u002Fusr\u002Flib Bibliotheken",[7135,37959],{},"\n└── \u002Fvar Variable Daten",[7135,37962],{},"\n├── \u002Fvar\u002Flog Logdateien (syslog, dmesg, auth.log)",[7135,37965],{},"\n├── \u002Fvar\u002Fspool Warteschlangen (Druckjobs, Cron, Mail)",[7135,37968],{},"\n└── \u002Fvar\u002Ftmp Persistente temporäre Dateien",[470,37971,37973],{"id":37972},"wichtige-merkmale","Wichtige Merkmale:",[21,37975,37976,37985,37992,37998,38001],{},[24,37977,37978,37981,37982],{},[42,37979,37980],{},"Keine Laufwerksbuchstaben"," – stattdessen ",[42,37983,37984],{},"Mountpoints",[24,37986,37987,37988,37991],{},"\u002Fproc und \u002Fsys sind ",[42,37989,37990],{},"virtuelle Dateisysteme"," → belegen keinen Speicherplatz",[24,37993,37994,37995],{},"\u002Fproc ändert sich ständig → ",[42,37996,37997],{},"keine Backups davon erstellen!",[24,37999,38000],{},"Logdateien: syslog = allgemein, dmesg = Kernel-Log",[24,38002,38003],{},"Ansehen: cat \u002Fvar\u002Flog\u002Fsyslog oder less \u002Fvar\u002Flog\u002Fsyslog",[11,38005,38007],{"id":38006},"zusammenfassung-die-etcsudoers-datei","Zusammenfassung: Die \u002Fetc\u002Fsudoers Datei",[21,38009,38010,38013,38016],{},[24,38011,38012],{},"Zentrale Konfigurationsdatei für sudo",[24,38014,38015],{},"Legt fest welche Benutzer welche Berechtigungen auf welchen Hosts haben",[24,38017,38018,38019],{},"Darf nicht mit normalem Texteditor geöffnet werden\n",[21,38020,38021],{},[24,38022,38023],{},"Immer visudo: Prüft Syntax auf Fehler",[16,38025,38027],{"id":38026},"struktur","Struktur",[21,38029,38030],{},[24,38031,38032,38033],{},"Festes Muster: User Host=(RunAsUser:RunAsGroup) Commands\n",[21,38034,38035,38038,38041,38044,38047],{},[24,38036,38037],{},"User: Der Benutzer oder die Gruppe (Gruppen werden mit % gekennzeichnet), der die Berechtigung erhält.",[24,38039,38040],{},"Host: Der Hostname, auf dem die Regel gilt (meist ALL für alle Rechner).",[24,38042,38043],{},"RunAsUser: Der Benutzer, als der der Befehl ausgeführt werden soll (meist root oder ALL).",[24,38045,38046],{},"RunAsGroup: Die Gruppe, als die der Befehl ausgeführt werden soll (meist ALL).",[24,38048,38049],{},"Commands: Die Liste der erlaubten Befehle (absolute Pfade verwenden!).",[16,38051,33011],{"id":33010},[470,38053,38055],{"id":38054},"a-vollzugriff-administrator-status","A. Vollzugriff (Administrator-Status)",[414,38057,38058],{},"Erlaubt einem Benutzer alle Befehle mit Root-Rechten (erfordert Passwort).",[11,38060,38062],{"id":38061},"benutzer-max-darf-alles","Benutzer 'max' darf alles",[4647,38064,38066],{"className":4649,"code":38065,"language":4651,"meta":269,"style":269},"max ALL=(ALL:ALL) ALL\n\n# Gruppe 'admin' darf alles (beachte das %)\n%admin ALL=(ALL:ALL) ALL\n\n",[4653,38067,38068,38086,38090,38095],{"__ignoreMap":269},[4173,38069,38070,38073,38076,38078,38081,38083],{"class":4657,"line":4658},[4173,38071,38072],{"class":4661},"max",[4173,38074,38075],{"class":4669}," ALL=",[4173,38077,6390],{"class":4784},[4173,38079,38080],{"class":4661},"ALL:ALL",[4173,38082,6306],{"class":4784},[4173,38084,38085],{"class":4669},"ALL\n",[4173,38087,38088],{"class":4657,"line":270},[4173,38089,4761],{"emptyLinePlaceholder":4760},[4173,38091,38092],{"class":4657,"line":1263},[4173,38093,38094],{"class":4766},"# Gruppe 'admin' darf alles (beachte das %)\n",[4173,38096,38097,38100,38102,38104,38106,38108],{"class":4657,"line":4770},[4173,38098,38099],{"class":4661},"%admin",[4173,38101,38075],{"class":4669},[4173,38103,6390],{"class":4784},[4173,38105,38080],{"class":4661},[4173,38107,6306],{"class":4784},[4173,38109,38085],{"class":4669},[470,38111,38113],{"id":38112},"b-spezifische-befehle-erlauben","B. Spezifische Befehle erlauben",[414,38115,38116],{},"Einschränkung auf nur einen einzigen Befehl (sehr wichtig für Sicherheit!).",[11,38118,38120],{"id":38119},"devuser-darf-nur-den-apache-webserver-neu-starten","'devuser' darf nur den Apache-Webserver neu starten",[4647,38122,38124],{"className":4649,"code":38123,"language":4651,"meta":269,"style":269},"devuser ALL=(ALL) \u002Fusr\u002Fbin\u002Fsystemctl restart apache2\n\n",[4653,38125,38126],{"__ignoreMap":269},[4173,38127,38128,38131,38133,38135,38138,38140,38143,38145],{"class":4657,"line":4658},[4173,38129,38130],{"class":4661},"devuser",[4173,38132,38075],{"class":4669},[4173,38134,6390],{"class":4784},[4173,38136,38137],{"class":4661},"ALL",[4173,38139,6306],{"class":4784},[4173,38141,38142],{"class":4669},"\u002Fusr\u002Fbin\u002Fsystemctl",[4173,38144,33670],{"class":4669},[4173,38146,38147],{"class":4669}," apache2\n",[470,38149,38151],{"id":38150},"c-ausführung-ohne-passwort-nopasswd","C. Ausführung ohne Passwort (NOPASSWD)",[414,38153,38154],{},"Nützlich für Skripte oder Automatisierungen, aber ein Sicherheitsrisiko.",[11,38156,38158],{"id":38157},"automation-user-darf-updates-machen-ohne-nach-einem-passwort-gefragt-zu-werden","'automation-user' darf Updates machen, ohne nach einem Passwort gefragt zu werden",[4647,38160,38162],{"className":4649,"code":38161,"language":4651,"meta":269,"style":269},"automation-user ALL=(ALL) NOPASSWD: \u002Fusr\u002Fbin\u002Fapt-get update, \u002Fusr\u002Fbin\u002Fapt-get upgrade\n\n",[4653,38163,38164],{"__ignoreMap":269},[4173,38165,38166,38169,38171,38173,38175,38177,38180,38183,38186,38188],{"class":4657,"line":4658},[4173,38167,38168],{"class":4661},"automation-user",[4173,38170,38075],{"class":4669},[4173,38172,6390],{"class":4784},[4173,38174,38137],{"class":4661},[4173,38176,6306],{"class":4784},[4173,38178,38179],{"class":4669},"NOPASSWD:",[4173,38181,38182],{"class":4669}," \u002Fusr\u002Fbin\u002Fapt-get",[4173,38184,38185],{"class":4669}," update,",[4173,38187,38182],{"class":4669},[4173,38189,38190],{"class":4669}," upgrade\n",[470,38192,38194],{"id":38193},"d-verwendung-von-pfaden-und-wildcards","D. Verwendung von Pfaden und Wildcards",[11,38196,38198],{"id":38197},"erlaubt-das-ausführen-von-backup-skripten-im-verzeichnis-optscripts","Erlaubt das Ausführen von Backup-Skripten im Verzeichnis \u002Fopt\u002Fscripts\u002F",[4647,38200,38202],{"className":4649,"code":38201,"language":4651,"meta":269,"style":269},"backup-user ALL=(ALL) \u002Fopt\u002Fscripts\u002F*.sh\n\n",[4653,38203,38204],{"__ignoreMap":269},[4173,38205,38206,38209,38211,38213,38215,38217,38220,38222],{"class":4657,"line":4658},[4173,38207,38208],{"class":4661},"backup-user",[4173,38210,38075],{"class":4669},[4173,38212,6390],{"class":4784},[4173,38214,38137],{"class":4661},[4173,38216,6306],{"class":4784},[4173,38218,38219],{"class":4669},"\u002Fopt\u002Fscripts\u002F",[4173,38221,6328],{"class":4665},[4173,38223,38224],{"class":4669},".sh\n",[16,38226,38228],{"id":38227},"best-practices-sicherheit","Best Practices & Sicherheit",[414,38230,38231],{},"Principle of Least Privilege (Prinzip der geringsten Berechtigung): Erteile nur so viele Rechte, wie absolut notwendig sind. Vermeide ALL=(ALL) ALL für normale Benutzer.",[414,38233,38234],{},"Absolute Pfade nutzen: Gib Befehle immer mit ihrem vollständigen Pfad an (z. B. \u002Fusr\u002Fbin\u002Fapt statt nur apt), um \"Path Injection\" Angriffe zu verhindern.",[414,38236,38237],{},"Modularität nutzen (\u002Fetc\u002Fsudoers.d\u002F): Anstatt die Hauptdatei \u002Fetc\u002Fsudoers zu verändern, erstelle separate Dateien im Verzeichnis \u002Fetc\u002Fsudoers.d\u002F. Das ist sauberer und weniger fehleranfällig bei Systemupdates.",[414,38239,38240],{},"Beispiel: sudo visudo -f \u002Fetc\u002Fsudoers.d\u002Fmein-projekt",[414,38242,38243],{},"Gruppen statt Einzeluser: Nutze Gruppen (%gruppe), um die Verwaltung einfacher zu machen. Wenn ein neuer Admin dazukommt, musst du nur die Gruppe ändern, nicht die sudoers-Datei.",[16,38245,38247],{"id":38246},"kurzübersicht-der-platzhalter","Kurzübersicht der Platzhalter",[765,38249,38250,38263],{},[768,38251,38252],{},[771,38253,38254,38259],{},[774,38255,38256],{},[42,38257,38258],{},"Platzhalter",[774,38260,38261],{},[42,38262,6733],{},[787,38264,38265,38272,38280,38288],{},[771,38266,38267,38269],{},[792,38268,38137],{},[792,38270,38271],{},"Gilt für alle Benutzer, alle Hosts oder alle Befehle.",[771,38273,38274,38277],{},[792,38275,38276],{},"%group",[792,38278,38279],{},"Bezieht sich auf eine Benutzergruppe (z. B. %sudo).",[771,38281,38282,38285],{},[792,38283,38284],{},"(ALL:ALL)",[792,38286,38287],{},"Erlaubt das Ausführen als jeder beliebige User und jede beliebige Gruppe.",[771,38289,38290,38292],{},[792,38291,38179],{},[792,38293,38294],{},"Erfordert keine Passworteingabe für die nachfolgenden Befehle.",[16,38296,38298],{"id":38297},"prinizipien","Prinizipien",[470,38300,38302],{"id":38301},"das-letzte-gewinnt-the-last-match-wins","Das Letzte gewinnt. (The Last Match Wins)",[414,38304,38305],{},"Die sudoers-Datei wird von oben nach unten (sequenziell) eingelesen. Wenn eine Regel auf einen Benutzer zutrifft, werden die Berechtigungen geladen. Wenn eine weitere Regel weiter unten in der Datei ebenfalls auf denselben Benutzer zutrifft, wird diese neue Regel auf die bisherigen Regeln aufgeschlagen oder sie überschreibt spezifische Teile der vorherigen Regeln.",[414,38307,38308],{},"Hier ist die detaillierte Aufschlüsselung, wie sich das in verschiedenen Szenarien verhält:",[475,38310,38312],{"id":38311},"_1-das-prinzip-der-addition-kumulativ","1. Das Prinzip der Addition (Kumulativ)",[414,38314,38315],{},"Wenn zwei Regeln unterschiedliche Befehle erlauben, werden sie einfach kombiniert. Der Benutzer erhält die Summe aller erlaubten Befehle.",[414,38317,8190],{},[11,38319,38321],{"id":38320},"regel-1-oben","Regel 1 (oben)",[4647,38323,38325],{"className":4649,"code":38324,"language":4651,"meta":269,"style":269},"max ALL=(ALL) \u002Fusr\u002Fbin\u002Fapt-get\n\n# Regel 2 (weiter unten)\nmax ALL=(ALL) \u002Fusr\u002Fbin\u002Fsystemctl\n\n",[4653,38326,38327,38342,38346,38351],{"__ignoreMap":269},[4173,38328,38329,38331,38333,38335,38337,38339],{"class":4657,"line":4658},[4173,38330,38072],{"class":4661},[4173,38332,38075],{"class":4669},[4173,38334,6390],{"class":4784},[4173,38336,38137],{"class":4661},[4173,38338,6306],{"class":4784},[4173,38340,38341],{"class":4669},"\u002Fusr\u002Fbin\u002Fapt-get\n",[4173,38343,38344],{"class":4657,"line":270},[4173,38345,4761],{"emptyLinePlaceholder":4760},[4173,38347,38348],{"class":4657,"line":1263},[4173,38349,38350],{"class":4766},"# Regel 2 (weiter unten)\n",[4173,38352,38353,38355,38357,38359,38361,38363],{"class":4657,"line":4770},[4173,38354,38072],{"class":4661},[4173,38356,38075],{"class":4669},[4173,38358,6390],{"class":4784},[4173,38360,38137],{"class":4661},[4173,38362,6306],{"class":4784},[4173,38364,38365],{"class":4669},"\u002Fusr\u002Fbin\u002Fsystemctl\n",[414,38367,38368],{},"Ergebnis: max darf sowohl apt-get als auch systemctl ausführen. Es gibt hier keinen \"Verlust\", sondern eine Erweiterung.",[475,38370,38372],{"id":38371},"_2-das-prinzip-der-überschreibung-override","2. Das Prinzip der Überschreibung (Override)",[414,38374,38375],{},"Ein Konflikt entsteht wirklich erst, wenn sich die Parameter (wie NOPASSWD oder der RunAsUser) für den gleichen Befehl widersprechen. In diesem Fall überschreibt die letzte gefundene Regel die vorherige.",[414,38377,38378],{},"Beispiel (Das Passwort-Dilemma):",[11,38380,38382],{"id":38381},"regel-1-erlaubt-alles-ohne-passwort","Regel 1: Erlaubt alles ohne Passwort",[4647,38384,38386],{"className":4649,"code":38385,"language":4651,"meta":269,"style":269},"max ALL=(ALL) NOPASSWD: ALL\n\n# Regel 2: Erlaubt spezifisch apt-get, aber ERZWINGT ein Passwort\nmax ALL=(ALL) \u002Fusr\u002Fbin\u002Fapt-get\n\n",[4653,38387,38388,38405,38409,38414],{"__ignoreMap":269},[4173,38389,38390,38392,38394,38396,38398,38400,38402],{"class":4657,"line":4658},[4173,38391,38072],{"class":4661},[4173,38393,38075],{"class":4669},[4173,38395,6390],{"class":4784},[4173,38397,38137],{"class":4661},[4173,38399,6306],{"class":4784},[4173,38401,38179],{"class":4669},[4173,38403,38404],{"class":4669}," ALL\n",[4173,38406,38407],{"class":4657,"line":270},[4173,38408,4761],{"emptyLinePlaceholder":4760},[4173,38410,38411],{"class":4657,"line":1263},[4173,38412,38413],{"class":4766},"# Regel 2: Erlaubt spezifisch apt-get, aber ERZWINGT ein Passwort\n",[4173,38415,38416,38418,38420,38422,38424,38426],{"class":4657,"line":4770},[4173,38417,38072],{"class":4661},[4173,38419,38075],{"class":4669},[4173,38421,6390],{"class":4784},[4173,38423,38137],{"class":4661},[4173,38425,6306],{"class":4784},[4173,38427,38341],{"class":4669},[414,38429,38430],{},"Ergebnis: Wenn max versucht, apt-get auszuführen, wird er nach einem Passwort gefragt. Obwohl Regel 1 \"alles ohne Passwort\" erlaubt hat, hat die spätere Regel 2 die Anweisung für apt-arg mit der Passwort-Pflicht überschrieben.",[475,38432,38434],{"id":38433},"_3-konflikte-durch-gruppen-vs-benutzer-spezifisch-schlägt-generell","3. Konflikte durch Gruppen vs. Benutzer (Spezifisch schlägt Generell)",[414,38436,38437],{},"Oft ist ein Benutzer Mitglied einer Gruppe (z. B. %admin). Hier greifen zwei Regeln gleichzeitig: die Gruppenregel und die Benutzerregel.",[414,38439,8190],{},[11,38441,38443],{"id":38442},"regel-1-die-gruppe-admin-darf-alles-aber-mit-passwort","Regel 1: Die Gruppe 'admin' darf alles, aber MIT Passwort",[4647,38445,38447],{"className":4649,"code":38446,"language":4651,"meta":269,"style":269},"%admin ALL=(ALL) ALL\n\n# Regel 2: Der Benutzer 'max' (ist Mitglied von admin) darf alles OHNE Passwort\nmax ALL=(ALL) NOPASSWD: ALL\n\n",[4653,38448,38449,38463,38467,38472],{"__ignoreMap":269},[4173,38450,38451,38453,38455,38457,38459,38461],{"class":4657,"line":4658},[4173,38452,38099],{"class":4661},[4173,38454,38075],{"class":4669},[4173,38456,6390],{"class":4784},[4173,38458,38137],{"class":4661},[4173,38460,6306],{"class":4784},[4173,38462,38085],{"class":4669},[4173,38464,38465],{"class":4657,"line":270},[4173,38466,4761],{"emptyLinePlaceholder":4760},[4173,38468,38469],{"class":4657,"line":1263},[4173,38470,38471],{"class":4766},"# Regel 2: Der Benutzer 'max' (ist Mitglied von admin) darf alles OHNE Passwort\n",[4173,38473,38474,38476,38478,38480,38482,38484,38486],{"class":4657,"line":4770},[4173,38475,38072],{"class":4661},[4173,38477,38075],{"class":4669},[4173,38479,6390],{"class":4784},[4173,38481,38137],{"class":4661},[4173,38483,6306],{"class":4784},[4173,38485,38179],{"class":4669},[4173,38487,38404],{"class":4669},[414,38489,38490],{},"Ergebnis: Da die Regel für max spezifischer ist und nach der Gruppenregel kommt, gewinnt die NOPASSWD-Einstellung für ihn. Er kann Befehle ohne Passwort ausführen, während andere Mitglieder der Gruppe admin weiterhin nach einem Passwort gefragt werden.",[475,38492,38494],{"id":38493},"_4-besonderheit-etcsudoersd","4. Besonderheit: \u002Fetc\u002Fsudoers.d\u002F",[414,38496,38497],{},"Das Verzeichnis \u002Fetc\u002Fsudoers.d\u002F wird am Ende der Haupt-sudoers-Datei per #includedir eingebunden.",[414,38499,38500],{},"Das bedeutet: Alles, was in den Dateien im sudoers.d-Ordner steht, hat Vorrang vor den Einträgen in der Haupt-sudoers-Datei, weil diese Dateien technisch gesehen \"ganz unten\" in der Konfigurationskette gelesen werden.",[414,38502,38503],{},"Pro-Tipp für die Praxis: Wenn du eine Berechtigung für einen Benutzer in der Hauptdatei einschränken willst, musst du diese Einschränkung in einer Datei innerhalb von \u002Fetc\u002Fsudoers.d\u002F platzieren, damit sie die (eventuell mächtigeren) Regeln aus der Hauptdatei überschreibt.",[470,38505,296],{"id":38506},"zusammenfassung",[765,38508,38509,38522],{},[768,38510,38511],{},[771,38512,38513,38518],{},[774,38514,38515],{},[42,38516,38517],{},"Szenario",[774,38519,38520],{},[42,38521,1977],{},[787,38523,38524,38532,38540,38548],{},[771,38525,38526,38529],{},[792,38527,38528],{},"Unterschiedliche Befehle",[792,38530,38531],{},"Befehle werden addiert (User bekommt mehr Rechte).",[771,38533,38534,38537],{},[792,38535,38536],{},"Gleiche Befehle, andere Parameter",[792,38538,38539],{},"Die letzte Regel überschreibt die vorherige.",[771,38541,38542,38545],{},[792,38543,38544],{},"Gruppe vs. Einzelner User",[792,38546,38547],{},"Die letzte zutreffende Regel (meist die spezifischere) gewinnt.",[771,38549,38550,38553],{},[792,38551,38552],{},"Hauptdatei vs. sudoers.d\u002F",[792,38554,38555],{},"Die Dateien in sudoers.d\u002F gewinnen (da sie zuletzt gelesen werden).",[11,38557,38559],{"id":38558},"dateien-suchen-find-grep-sed","Dateien suchen: find, grep, sed",[16,38561,38563],{"id":38562},"find-dateien-und-verzeichnisse-suchen","find – Dateien und Verzeichnisse suchen",[4647,38565,38567],{"className":4649,"code":38566,"language":4651,"meta":269,"style":269},"find START_PFAD OPTIONEN AUSDRUCK\n\n",[4653,38568,38569],{"__ignoreMap":269},[4173,38570,38571,38573,38576,38579],{"class":4657,"line":4658},[4173,38572,9459],{"class":4661},[4173,38574,38575],{"class":4669}," START_PFAD",[4173,38577,38578],{"class":4669}," OPTIONEN",[4173,38580,38581],{"class":4669}," AUSDRUCK\n",[470,38583,38584],{"id":8950},"Wichtige Optionen:",[765,38586,38587,38603],{},[768,38588,38589],{},[771,38590,38591,38595,38599],{},[774,38592,38593],{},[42,38594,8964],{},[774,38596,38597],{},[42,38598,5800],{},[774,38600,38601],{},[42,38602,763],{},[787,38604,38605,38615,38625,38635,38645,38654,38664,38675,38686,38697,38707,38717,38727,38737,38748],{},[771,38606,38607,38609,38612],{},[792,38608,9523],{},[792,38610,38611],{},"Nach Name suchen",[792,38613,38614],{},"find \u002F -name \"*.txt\"",[771,38616,38617,38619,38622],{},[792,38618,9531],{},[792,38620,38621],{},"Name (case-insensitive)",[792,38623,38624],{},"find . -iname \"readme*\"",[771,38626,38627,38629,38632],{},[792,38628,9615],{},[792,38630,38631],{},"Nur Dateien",[792,38633,38634],{},"find . -type f",[771,38636,38637,38639,38642],{},[792,38638,9623],{},[792,38640,38641],{},"Nur Verzeichnisse",[792,38643,38644],{},"find . -type d",[771,38646,38647,38649,38652],{},[792,38648,9631],{},[792,38650,38651],{},"Nur Symlinks",[792,38653],{},[771,38655,38656,38658,38661],{},[792,38657,9563],{},[792,38659,38660],{},"Nach Besitzer",[792,38662,38663],{},"find \u002F -user root",[771,38665,38666,38669,38672],{},[792,38667,38668],{},"-group",[792,38670,38671],{},"Nach Gruppe",[792,38673,38674],{},"find \u002F -group admin",[771,38676,38677,38680,38683],{},[792,38678,38679],{},"-size +2G",[792,38681,38682],{},"Größer als 2 GB",[792,38684,38685],{},"find \u002F -size +200M",[771,38687,38688,38691,38694],{},[792,38689,38690],{},"-size 0 \u002F -empty",[792,38692,38693],{},"Leere Dateien",[792,38695,38696],{},"find ~ -empty",[771,38698,38699,38702,38705],{},[792,38700,38701],{},"-mtime -7",[792,38703,38704],{},"Geändert in letzten 7 Tagen",[792,38706],{},[771,38708,38709,38712,38715],{},[792,38710,38711],{},"-mtime +30",[792,38713,38714],{},"Älter als 30 Tage",[792,38716],{},[771,38718,38719,38721,38724],{},[792,38720,18418],{},[792,38722,38723],{},"Max. Suchtiefe",[792,38725,38726],{},"find . -maxdepth 2 -name \"*.log\"",[771,38728,38729,38732,38734],{},[792,38730,38731],{},"-not",[792,38733,18546],{},[792,38735,38736],{},"find . -not -name \"*.bak\"",[771,38738,38739,38742,38745],{},[792,38740,38741],{},"-exec",[792,38743,38744],{},"Befehl auf Ergebnis ausführen",[792,38746,38747],{},"find . -name \"*.tmp\" -exec rm {} ;",[771,38749,38750,38752,38755],{},[792,38751,18492],{},[792,38753,38754],{},"Gefundene Dateien löschen",[792,38756,38757],{},"find . -name \"*.bak\" -delete",[470,38759,8902],{"id":9924},[11,38761,38763],{"id":38762},"alle-txt-dateien-im-aktuellen-verzeichnis","Alle .txt Dateien im aktuellen Verzeichnis",[4647,38765,38767],{"className":4649,"code":38766,"language":4651,"meta":269,"style":269},"find . -name \"*.txt\" -type f\n\n# Dateien mit Inhalt durchsuchen\n\nfind . -type f -exec grep \"suchbegriff\" '{}'\n\n",[4653,38768,38769,38784,38788,38793,38797],{"__ignoreMap":269},[4173,38770,38771,38773,38775,38777,38780,38782],{"class":4657,"line":4658},[4173,38772,9459],{"class":4661},[4173,38774,9481],{"class":4669},[4173,38776,9484],{"class":4665},[4173,38778,38779],{"class":4669}," \"*.txt\"",[4173,38781,9497],{"class":4665},[4173,38783,6872],{"class":4669},[4173,38785,38786],{"class":4657,"line":270},[4173,38787,4761],{"emptyLinePlaceholder":4760},[4173,38789,38790],{"class":4657,"line":1263},[4173,38791,38792],{"class":4766},"# Dateien mit Inhalt durchsuchen\n",[4173,38794,38795],{"class":4657,"line":4770},[4173,38796,4761],{"emptyLinePlaceholder":4760},[4173,38798,38799,38801,38803,38805,38807,38809,38811,38814],{"class":4657,"line":4775},[4173,38800,9459],{"class":4661},[4173,38802,9481],{"class":4669},[4173,38804,9497],{"class":4665},[4173,38806,10269],{"class":4669},[4173,38808,9791],{"class":4665},[4173,38810,8931],{"class":4669},[4173,38812,38813],{"class":4669}," \"suchbegriff\"",[4173,38815,38816],{"class":4669}," '{}'\n",[414,38818,18468],{},[11,38820,38822],{"id":38821},"dateien-älter-als-30-tage-löschen","Dateien älter als 30 Tage löschen",[4647,38824,38826],{"className":4649,"code":38825,"language":4651,"meta":269,"style":269},"find \u002Fhome\u002Fuser\u002Flogs\u002F -type f -mtime 30 -exec rm {}\n\n# Leere Dateien im Home finden\n\nfind ~ -empty\n\n",[4653,38827,38828,38851,38855,38860,38864],{"__ignoreMap":269},[4173,38829,38830,38832,38835,38837,38839,38841,38844,38846,38848],{"class":4657,"line":4658},[4173,38831,9459],{"class":4661},[4173,38833,38834],{"class":4669}," \u002Fhome\u002Fuser\u002Flogs\u002F",[4173,38836,9497],{"class":4665},[4173,38838,10269],{"class":4669},[4173,38840,9737],{"class":4665},[4173,38842,38843],{"class":4665}," 30",[4173,38845,9791],{"class":4665},[4173,38847,9794],{"class":4669},[4173,38849,38850],{"class":4669}," {}\n",[4173,38852,38853],{"class":4657,"line":270},[4173,38854,4761],{"emptyLinePlaceholder":4760},[4173,38856,38857],{"class":4657,"line":1263},[4173,38858,38859],{"class":4766},"# Leere Dateien im Home finden\n",[4173,38861,38862],{"class":4657,"line":4770},[4173,38863,4761],{"emptyLinePlaceholder":4760},[4173,38865,38866,38868,38871],{"class":4657,"line":4775},[4173,38867,9459],{"class":4661},[4173,38869,38870],{"class":4669}," ~",[4173,38872,18650],{"class":4665},[16,38874,38876],{"id":38875},"grep-in-textdateien-suchen","grep – In Textdateien suchen",[4647,38878,38880],{"className":4649,"code":38879,"language":4651,"meta":269,"style":269},"grep [OPTIONEN] ‘MUSTER‘ DATEI\n\n",[4653,38881,38882],{"__ignoreMap":269},[4173,38883,38884,38886],{"class":4657,"line":4658},[4173,38885,8894],{"class":4661},[4173,38887,38888],{"class":4784}," [OPTIONEN] ‘MUSTER‘ DATEI\n",[470,38890,38584],{"id":9195},[765,38892,38893,38905],{},[768,38894,38895],{},[771,38896,38897,38901],{},[774,38898,38899],{},[42,38900,8964],{},[774,38902,38903],{},[42,38904,5800],{},[787,38906,38907,38914,38921,38928,38935,38942,38950],{},[771,38908,38909,38911],{},[792,38910,8975],{},[792,38912,38913],{},"Case-insensitive",[771,38915,38916,38918],{},[792,38917,8991],{},[792,38919,38920],{},"Zeilennummern anzeigen",[771,38922,38923,38925],{},[792,38924,8983],{},[792,38926,38927],{},"Nur Zeilen die NICHT passen",[771,38929,38930,38932],{},[792,38931,9014],{},[792,38933,38934],{},"Anzahl der Treffer",[771,38936,38937,38939],{},[792,38938,6103],{},[792,38940,38941],{},"Rekursiv in Verzeichnissen",[771,38943,38944,38947],{},[792,38945,38946],{},"-A1",[792,38948,38949],{},"1 Zeile nach dem Treffer anzeigen",[771,38951,38952,38955],{},[792,38953,38954],{},"-B2",[792,38956,38957],{},"2 Zeilen vor dem Treffer anzeigen",[470,38959,38961],{"id":38960},"reguläre-ausdrücke-für-grep","Reguläre Ausdrücke für grep:",[765,38963,38964,38976],{},[768,38965,38966],{},[771,38967,38968,38972],{},[774,38969,38970],{},[42,38971,7598],{},[774,38973,38974],{},[42,38975,6733],{},[787,38977,38978,38984,38991,38997,39004,39011,39020,39029],{},[771,38979,38980,38982],{},[792,38981,7834],{},[792,38983,17500],{},[771,38985,38986,38988],{},[792,38987,6328],{},[792,38989,38990],{},"Vorheriges Zeichen beliebig oft",[771,38992,38993,38995],{},[792,38994,36011],{},[792,38996,35982],{},[771,38998,38999,39002],{},[792,39000,39001],{},"^text",[792,39003,17507],{},[771,39005,39006,39009],{},[792,39007,39008],{},"text$",[792,39010,17514],{},[771,39012,39013,39017],{},[792,39014,39015],{},[4173,39016,17543],{},[792,39018,39019],{},"Ein Zeichen aus der Menge",[771,39021,39022,39026],{},[792,39023,39024],{},[4173,39025,17553],{},[792,39027,39028],{},"Kein Zeichen aus der Menge",[771,39030,39031,39035],{},[792,39032,39033],{},[4173,39034,17563],{},[792,39036,36020],{},[470,39038,8902],{"id":13368},[11,39040,39042],{"id":39041},"zeilen-die-mit-könig-beginnen","Zeilen die mit \"König\" beginnen",[4647,39044,39046],{"className":4649,"code":39045,"language":4651,"meta":269,"style":269},"grep \"^König\" datei.txt\n\n# Zeilen die mit \"zz\" enden\n\ngrep \"zz$\" datei.txt\n\n# Case-insensitive Suche\n\ngrep -i \"suchbegriff\" datei.txt\n\n# In \u002Fetc\u002Fpasswd nach Bash-Benutzern suchen\n\ngrep \"\u002Fbin\u002Fbash\" \u002Fetc\u002Fpasswd\n\n",[4653,39047,39048,39057,39061,39066,39070,39079,39083,39088,39092,39102,39106,39111,39115],{"__ignoreMap":269},[4173,39049,39050,39052,39055],{"class":4657,"line":4658},[4173,39051,8894],{"class":4661},[4173,39053,39054],{"class":4669}," \"^König\"",[4173,39056,8947],{"class":4669},[4173,39058,39059],{"class":4657,"line":270},[4173,39060,4761],{"emptyLinePlaceholder":4760},[4173,39062,39063],{"class":4657,"line":1263},[4173,39064,39065],{"class":4766},"# Zeilen die mit \"zz\" enden\n",[4173,39067,39068],{"class":4657,"line":4770},[4173,39069,4761],{"emptyLinePlaceholder":4760},[4173,39071,39072,39074,39077],{"class":4657,"line":4775},[4173,39073,8894],{"class":4661},[4173,39075,39076],{"class":4669}," \"zz$\"",[4173,39078,8947],{"class":4669},[4173,39080,39081],{"class":4657,"line":6320},[4173,39082,4761],{"emptyLinePlaceholder":4760},[4173,39084,39085],{"class":4657,"line":6325},[4173,39086,39087],{"class":4766},"# Case-insensitive Suche\n",[4173,39089,39090],{"class":4657,"line":6343},[4173,39091,4761],{"emptyLinePlaceholder":4760},[4173,39093,39094,39096,39098,39100],{"class":4657,"line":6348},[4173,39095,8894],{"class":4661},[4173,39097,8941],{"class":4665},[4173,39099,38813],{"class":4669},[4173,39101,8947],{"class":4669},[4173,39103,39104],{"class":4657,"line":6457},[4173,39105,4761],{"emptyLinePlaceholder":4760},[4173,39107,39108],{"class":4657,"line":6462},[4173,39109,39110],{"class":4766},"# In \u002Fetc\u002Fpasswd nach Bash-Benutzern suchen\n",[4173,39112,39113],{"class":4657,"line":6468},[4173,39114,4761],{"emptyLinePlaceholder":4760},[4173,39116,39117,39119,39122],{"class":4657,"line":6473},[4173,39118,8894],{"class":4661},[4173,39120,39121],{"class":4669}," \"\u002Fbin\u002Fbash\"",[4173,39123,10007],{"class":4669},[16,39125,39127],{"id":39126},"sed-stream-editor","sed – Stream Editor",[470,39129,9853],{"id":9852},[4647,39131,39133],{"className":4649,"code":39132,"language":4651,"meta":269,"style":269},"sed (Stream Editor) bearbeitet Text zeilenweise. Es liest stdin oder Dateien, wendet Transformationsregeln an und schreibt das Ergebnis nach stdout.\n\n",[4653,39134,39135],{"__ignoreMap":269},[4173,39136,39137,39139,39142,39145],{"class":4657,"line":4658},[4173,39138,9165],{"class":4661},[4173,39140,39141],{"class":4784}," (Stream ",[4173,39143,39144],{"class":4669},"Editor",[4173,39146,39147],{"class":4784},") bearbeitet Text zeilenweise. Es liest stdin oder Dateien, wendet Transformationsregeln an und schreibt das Ergebnis nach stdout.\n",[414,39149,39150],{},[42,39151,37137],{},[4647,39153,39155],{"className":4649,"code":39154,"language":4651,"meta":269,"style":269},"sed 'BEFEHL' datei\n\nsed -e 'BEFEHL1' -e 'BEFEHL2' datei\n\n",[4653,39156,39157,39167,39171],{"__ignoreMap":269},[4173,39158,39159,39161,39164],{"class":4657,"line":4658},[4173,39160,9165],{"class":4661},[4173,39162,39163],{"class":4669}," 'BEFEHL'",[4173,39165,39166],{"class":4669}," datei\n",[4173,39168,39169],{"class":4657,"line":270},[4173,39170,4761],{"emptyLinePlaceholder":4760},[4173,39172,39173,39175,39177,39180,39182,39185],{"class":4657,"line":1263},[4173,39174,9165],{"class":4661},[4173,39176,21075],{"class":4665},[4173,39178,39179],{"class":4669}," 'BEFEHL1'",[4173,39181,21075],{"class":4665},[4173,39183,39184],{"class":4669}," 'BEFEHL2'",[4173,39186,39166],{"class":4669},[470,39188,20313],{"id":20312},[765,39190,39191,39207],{},[768,39192,39193],{},[771,39194,39195,39199,39203],{},[774,39196,39197],{},[42,39198,8964],{},[774,39200,39201],{},[42,39202,12796],{},[774,39204,39205],{},[42,39206,6733],{},[787,39208,39209,39218,39227,39236,39249,39258,39267,39276,39285],{},[771,39210,39211,39213,39215],{},[792,39212,8991],{},[792,39214,20340],{},[792,39216,39217],{},"Keine automatische Ausgabe; p-Befehl nötig",[771,39219,39220,39222,39224],{},[792,39221,20348],{},[792,39223,20351],{},[792,39225,39226],{},"Skript direkt in der Kommandozeile",[771,39228,39229,39231,39233],{},[792,39230,19423],{},[792,39232,20361],{},[792,39234,39235],{},"sed-Skript aus Datei lesen",[771,39237,39238,39242,39246],{},[792,39239,8975,39240],{},[4173,39241,20371],{},[792,39243,20374,39244],{},[4173,39245,20377],{},[792,39247,39248],{},"Datei direkt bearbeiten (optional Backup)",[771,39250,39251,39254,39256],{},[792,39252,39253],{},"-r \u002F -E",[792,39255,20388],{},[792,39257,17326],{},[771,39259,39260,39262,39264],{},[792,39261,6099],{},[792,39263,20398],{},[792,39265,39266],{},"Dateien separat behandeln (NR wird zurückgesetzt)",[771,39268,39269,39271,39273],{},[792,39270,20406],{},[792,39272,20409],{},[792,39274,39275],{},"NUL (\\0) als Zeilentrenner statt \\n",[771,39277,39278,39280,39282],{},[792,39279,20417],{},[792,39281],{},[792,39283,39284],{},"Sichere Ausführung (kein e\u002Fr\u002Fw)",[771,39286,39287,39289,39291],{},[792,39288,20427],{},[792,39290],{},[792,39292,39293],{},"POSIX-Striktmodus",[470,39295,20436],{"id":20435},[765,39297,39298,39310],{},[768,39299,39300],{},[771,39301,39302,39306],{},[774,39303,39304],{},[42,39305,8243],{},[774,39307,39308],{},[42,39309,6733],{},[787,39311,39312,39320,39327,39334,39342,39350,39356,39363,39371,39379,39386,39393,39400,39407,39414,39421,39428,39435],{},[771,39313,39314,39317],{},[792,39315,39316],{},"s\u002Falt\u002Fneu\u002F",[792,39318,39319],{},"Substituieren (ersetzen), erste Vorkommen",[771,39321,39322,39325],{},[792,39323,39324],{},"s\u002Falt\u002Fneu\u002Fg",[792,39326,9267],{},[771,39328,39329,39332],{},[792,39330,39331],{},"s\u002Falt\u002Fneu\u002Fi",[792,39333,17246],{},[771,39335,39336,39339],{},[792,39337,39338],{},"s\u002Falt\u002Fneu\u002F2",[792,39340,39341],{},"Nur das 2. Vorkommen ersetzen",[771,39343,39344,39347],{},[792,39345,39346],{},"s\u002Falt\u002Fneu\u002Fgp",[792,39348,39349],{},"Ersetzen und Zeile ausgeben (mit -n)",[771,39351,39352,39354],{},[792,39353,12469],{},[792,39355,9307],{},[771,39357,39358,39360],{},[792,39359,414],{},[792,39361,39362],{},"Zeile ausgeben (extra)",[771,39364,39365,39368],{},[792,39366,39367],{},"q",[792,39369,39370],{},"Verarbeitung beenden (quit)",[771,39372,39373,39376],{},[792,39374,39375],{},"Q",[792,39377,39378],{},"Sofort beenden ohne Ausgabe",[771,39380,39381,39383],{},[792,39382,20500],{},[792,39384,39385],{},"TEXT vor der Zeile einfügen",[771,39387,39388,39390],{},[792,39389,20508],{},[792,39391,39392],{},"TEXT nach der Zeile anhängen",[771,39394,39395,39397],{},[792,39396,20516],{},[792,39398,39399],{},"Zeile durch TEXT ersetzen",[771,39401,39402,39405],{},[792,39403,39404],{},"y\u002Fabc\u002Fxyz\u002F",[792,39406,20527],{},[771,39408,39409,39411],{},[792,39410,6387],{},[792,39412,39413],{},"Zeilennummer ausgeben",[771,39415,39416,39418],{},[792,39417,20539],{},[792,39419,39420],{},"Nächste Zeile lesen",[771,39422,39423,39425],{},[792,39424,20547],{},[792,39426,39427],{},"Nächste Zeile an Pattern Space anhängen",[771,39429,39430,39432],{},[792,39431,20571],{},[792,39433,39434],{},"Inhalt von DATEI nach der Zeile einfügen",[771,39436,39437,39439],{},[792,39438,20587],{},[792,39440,20590],{},[470,39442,39444],{"id":39443},"adressen-adressierung-von-zeilen","Adressen (Adressierung von Zeilen)",[4647,39446,39448],{"className":4649,"code":39447,"language":4651,"meta":269,"style":269},"sed '3 d' # Nur Zeile 3 löschen\n\nsed '3,7 d' # Zeilen 3-7 löschen\n\nsed '\u002Fmuster\u002F d' # Zeilen löschen, die Muster enthalten\n\nsed '3,\u002Fende\u002F d' # Ab Zeile 3 bis zur Zeile mit \"ende\"\n\nsed '$ d' # Letzte Zeile löschen\n\nsed '1~2 d' # Jede 2. Zeile löschen (ab Zeile 1): 1,3,5,...\n\nsed '0~2 d' # Gerade Zeilen löschen: 2,4,6,...\n\n",[4653,39449,39450,39460,39464,39474,39478,39488,39492,39502,39506,39516,39520,39530,39534],{"__ignoreMap":269},[4173,39451,39452,39454,39457],{"class":4657,"line":4658},[4173,39453,9165],{"class":4661},[4173,39455,39456],{"class":4669}," '3 d'",[4173,39458,39459],{"class":4766}," # Nur Zeile 3 löschen\n",[4173,39461,39462],{"class":4657,"line":270},[4173,39463,4761],{"emptyLinePlaceholder":4760},[4173,39465,39466,39468,39471],{"class":4657,"line":1263},[4173,39467,9165],{"class":4661},[4173,39469,39470],{"class":4669}," '3,7 d'",[4173,39472,39473],{"class":4766}," # Zeilen 3-7 löschen\n",[4173,39475,39476],{"class":4657,"line":4770},[4173,39477,4761],{"emptyLinePlaceholder":4760},[4173,39479,39480,39482,39485],{"class":4657,"line":4775},[4173,39481,9165],{"class":4661},[4173,39483,39484],{"class":4669}," '\u002Fmuster\u002F d'",[4173,39486,39487],{"class":4766}," # Zeilen löschen, die Muster enthalten\n",[4173,39489,39490],{"class":4657,"line":6320},[4173,39491,4761],{"emptyLinePlaceholder":4760},[4173,39493,39494,39496,39499],{"class":4657,"line":6325},[4173,39495,9165],{"class":4661},[4173,39497,39498],{"class":4669}," '3,\u002Fende\u002F d'",[4173,39500,39501],{"class":4766}," # Ab Zeile 3 bis zur Zeile mit \"ende\"\n",[4173,39503,39504],{"class":4657,"line":6343},[4173,39505,4761],{"emptyLinePlaceholder":4760},[4173,39507,39508,39510,39513],{"class":4657,"line":6348},[4173,39509,9165],{"class":4661},[4173,39511,39512],{"class":4669}," '$ d'",[4173,39514,39515],{"class":4766}," # Letzte Zeile löschen\n",[4173,39517,39518],{"class":4657,"line":6457},[4173,39519,4761],{"emptyLinePlaceholder":4760},[4173,39521,39522,39524,39527],{"class":4657,"line":6462},[4173,39523,9165],{"class":4661},[4173,39525,39526],{"class":4669}," '1~2 d'",[4173,39528,39529],{"class":4766}," # Jede 2. Zeile löschen (ab Zeile 1): 1,3,5,...\n",[4173,39531,39532],{"class":4657,"line":6468},[4173,39533,4761],{"emptyLinePlaceholder":4760},[4173,39535,39536,39538,39541],{"class":4657,"line":6473},[4173,39537,9165],{"class":4661},[4173,39539,39540],{"class":4669}," '0~2 d'",[4173,39542,39543],{"class":4766}," # Gerade Zeilen löschen: 2,4,6,...\n",[470,39545,39547],{"id":39546},"reguläre-ausdrücke-in-sed","Reguläre Ausdrücke in sed",[765,39549,39550,39562],{},[768,39551,39552],{},[771,39553,39554,39558],{},[774,39555,39556],{},[42,39557,7598],{},[774,39559,39560],{},[42,39561,6733],{},[787,39563,39564,39571,39578,39585,39592,39598,39604,39613,39622,39629,39636,39644],{},[771,39565,39566,39568],{},[792,39567,7834],{},[792,39569,39570],{},"Beliebiges Zeichen",[771,39572,39573,39575],{},[792,39574,6328],{},[792,39576,39577],{},"0 oder mehr des vorherigen",[771,39579,39580,39582],{},[792,39581,14419],{},[792,39583,39584],{},"1 oder mehr (ERE mit -E)",[771,39586,39587,39589],{},[792,39588,17533],{},[792,39590,39591],{},"0 oder 1 (ERE mit -E)",[771,39593,39594,39596],{},[792,39595,15157],{},[792,39597,17507],{},[771,39599,39600,39602],{},[792,39601,6147],{},[792,39603,17514],{},[771,39605,39606,39610],{},[792,39607,39608],{},[4173,39609,17543],{},[792,39611,39612],{},"Zeichenklasse",[771,39614,39615,39619],{},[792,39616,39617],{},[4173,39618,17553],{},[792,39620,39621],{},"Negierte Zeichenklasse",[771,39623,39624,39626],{},[792,39625,20831],{},[792,39627,39628],{},"Gruppe (BRE)",[771,39630,39631,39633],{},[792,39632,20831],{},[792,39634,39635],{},"Gruppe (ERE mit -E)",[771,39637,39638,39641],{},[792,39639,39640],{},"\\1",[792,39642,39643],{},"Rückreferenz auf Gruppe 1",[771,39645,39646,39648],{},[792,39647,19629],{},[792,39649,39650],{},"Gesamter gefundener Text im Ersatz",[470,39652,9925],{"id":13857},[11,39654,39656],{"id":39655},"einfaches-ersetzen","Einfaches Ersetzen",[4647,39658,39660],{"className":4649,"code":39659,"language":4651,"meta":269,"style":269},"sed 's\u002Falt\u002Fneu\u002F' datei.txt\n\n# Alle Vorkommen ersetzen\n\nsed 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n# Groß-\u002FKleinschreibung ignorieren\n\nsed 's\u002Ffehler\u002FFEHLER\u002Fgi' datei.txt\n\n# Datei direkt bearbeiten (in-place)\n\nsed -i 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n# Backup erstellen und in-place bearbeiten\n\nsed -i.bak 's\u002Falt\u002Fneu\u002Fg' datei.txt\n\n# (erstellt datei.txt.bak als Sicherung)\n\n# Zeilen löschen, die \"kommentar\" enthalten\n\nsed '\u002Fkommentar\u002Fd' datei.txt\n\n# Leerzeilen löschen\n\nsed '\u002F^$\u002Fd' datei.txt\n\n# Leerzeilen und Zeilen mit nur Leerzeichen löschen\n\nsed '\u002F^s*$\u002Fd' datei.txt\n\n# Kommentarzeilen (# am Anfang) entfernen\n\nsed '\u002F^#\u002Fd' datei.txt\n\nsed '\u002F^[[:space:]]*#\u002Fd' datei.txt\n\n# Nur Zeilen ausgeben, die \"Muster\" enthalten (-n p)\n\nsed -n '\u002Fmuster\u002Fp' datei.txt\n\n# Leerzeichen am Zeilenende entfernen\n\nsed 's\u002F[[:space:]]*$\u002F\u002F' datei.txt\n\n# Führende Leerzeichen entfernen\n\nsed 's\u002F^[[:space:]]*\u002F\u002F' datei.txt\n\n# Beides (trim)\n\nsed 's\u002F^[[:space:]]\u002F\u002F; s\u002F[[:space:]]$\u002F\u002F' datei.txt\n\n# Zeilen 5-10 ausgeben\n\nsed -n '5,10p' datei.txt\n\n# Erste Zeile löschen (Header entfernen)\n\nsed '1d' datei.txt\n\n# Letzte Zeile löschen\n\nsed '$d' datei.txt\n\n# Zeilenumbruch nach \";\" einfügen (Erweiterter Regex)\n\nsed -E 's\u002F;\u002F;n\u002Fg' datei.txt\n\n# Rückreferenz: Wort in Anführungszeichen einschließen\n\nsed 's\u002F(Wort)\u002F\"1\"\u002F' datei.txt\n\nsed -E 's\u002F(Wort)\u002F\"1\"\u002F' datei.txt # ERE-Variante\n\n# Text nach Zeile 3 einfügen\n\nsed '3aDies ist eine neue Zeile' datei.txt\n\n# Text vor Zeile 3 einfügen\n\nsed '3iDies kommt davor' datei.txt\n\n# Zeile 3 ersetzen\n\nsed '3cDiese Zeile ersetzt die alte' datei.txt\n\n# Mehrere Befehle (mit -e oder Semikolon)\n\nsed -e 's\u002Ffoo\u002Fbar\u002Fg' -e 's\u002Fbaz\u002Fqux\u002Fg' datei.txt\n\nsed 's\u002Ffoo\u002Fbar\u002Fg; s\u002Fbaz\u002Fqux\u002Fg' datei.txt\n\n# Skript aus Datei\n\nsed -f mein_skript.sed datei.txt\n\n# Nur erste Zeile ausgeben (wie head -1)\n\nsed -n '1p' datei.txt\n\n# Zeilenanzahl begrenzen (wie head -5)\n\nsed '5q' datei.txt\n\n# Zeichenersatz (y-Befehl): Kleinbuchstaben → Großbuchstaben\n\nsed 'y\u002Fabcdefghijklmnopqrstuvwxyz\u002FABCDEFGHIJKLMNOPQRSTUVWXYZ\u002F' datei.txt\n\n# Zeilennummern anzeigen (= gibt Nummer aus, p gibt Zeile aus)\n\nsed '=' datei.txt | sed 'N; s\u002Fn\u002Ft\u002F'\n\n# HTML-Tags entfernen\n\nsed 's\u002F\u003C[^>]*>\u002F\u002Fg' seite.html\n\n# DOS-Zeilenenden (rn) in Unix (n) umwandeln\n\nsed 's\u002Fr\u002F\u002F' datei.txt\n\n",[4653,39661,39662,39670,39674,39679,39683,39691,39695,39699,39703,39711,39715,39720,39724,39734,39738,39743,39747,39757,39761,39766,39770,39775,39779,39788,39792,39796,39800,39808,39812,39816,39820,39828,39832,39837,39841,39849,39853,39861,39865,39870,39874,39884,39888,39893,39897,39905,39909,39914,39918,39926,39930,39934,39938,39946,39950,39955,39959,39969,39973,39978,39982,39990,39994,39998,40002,40010,40014,40019,40023,40034,40038,40043,40047,40056,40060,40073,40077,40082,40086,40095,40099,40103,40107,40116,40120,40125,40129,40138,40142,40147,40151,40165,40169,40177,40181,40186,40190,40201,40205,40210,40214,40224,40228,40233,40237,40245,40249,40254,40258,40266,40270,40275,40279,40293,40297,40301,40305,40313,40317,40322,40326],{"__ignoreMap":269},[4173,39663,39664,39666,39668],{"class":4657,"line":4658},[4173,39665,9165],{"class":4661},[4173,39667,9190],{"class":4669},[4173,39669,8947],{"class":4669},[4173,39671,39672],{"class":4657,"line":270},[4173,39673,4761],{"emptyLinePlaceholder":4760},[4173,39675,39676],{"class":4657,"line":1263},[4173,39677,39678],{"class":4766},"# Alle Vorkommen ersetzen\n",[4173,39680,39681],{"class":4657,"line":4770},[4173,39682,4761],{"emptyLinePlaceholder":4760},[4173,39684,39685,39687,39689],{"class":4657,"line":4775},[4173,39686,9165],{"class":4661},[4173,39688,9279],{"class":4669},[4173,39690,8947],{"class":4669},[4173,39692,39693],{"class":4657,"line":6320},[4173,39694,4761],{"emptyLinePlaceholder":4760},[4173,39696,39697],{"class":4657,"line":6325},[4173,39698,17620],{"class":4766},[4173,39700,39701],{"class":4657,"line":6343},[4173,39702,4761],{"emptyLinePlaceholder":4760},[4173,39704,39705,39707,39709],{"class":4657,"line":6348},[4173,39706,9165],{"class":4661},[4173,39708,21006],{"class":4669},[4173,39710,8947],{"class":4669},[4173,39712,39713],{"class":4657,"line":6457},[4173,39714,4761],{"emptyLinePlaceholder":4760},[4173,39716,39717],{"class":4657,"line":6462},[4173,39718,39719],{"class":4766},"# Datei direkt bearbeiten (in-place)\n",[4173,39721,39722],{"class":4657,"line":6468},[4173,39723,4761],{"emptyLinePlaceholder":4760},[4173,39725,39726,39728,39730,39732],{"class":4657,"line":6473},[4173,39727,9165],{"class":4661},[4173,39729,8941],{"class":4665},[4173,39731,9279],{"class":4669},[4173,39733,8947],{"class":4669},[4173,39735,39736],{"class":4657,"line":6479},[4173,39737,4761],{"emptyLinePlaceholder":4760},[4173,39739,39740],{"class":4657,"line":6503},[4173,39741,39742],{"class":4766},"# Backup erstellen und in-place bearbeiten\n",[4173,39744,39745],{"class":4657,"line":6516},[4173,39746,4761],{"emptyLinePlaceholder":4760},[4173,39748,39749,39751,39753,39755],{"class":4657,"line":6971},[4173,39750,9165],{"class":4661},[4173,39752,21051],{"class":4665},[4173,39754,9279],{"class":4669},[4173,39756,8947],{"class":4669},[4173,39758,39759],{"class":4657,"line":10649},[4173,39760,4761],{"emptyLinePlaceholder":4760},[4173,39762,39763],{"class":4657,"line":10654},[4173,39764,39765],{"class":4766},"# (erstellt datei.txt.bak als Sicherung)\n",[4173,39767,39768],{"class":4657,"line":10659},[4173,39769,4761],{"emptyLinePlaceholder":4760},[4173,39771,39772],{"class":4657,"line":10664},[4173,39773,39774],{"class":4766},"# Zeilen löschen, die \"kommentar\" enthalten\n",[4173,39776,39777],{"class":4657,"line":10676},[4173,39778,4761],{"emptyLinePlaceholder":4760},[4173,39780,39781,39783,39786],{"class":4657,"line":10681},[4173,39782,9165],{"class":4661},[4173,39784,39785],{"class":4669}," '\u002Fkommentar\u002Fd'",[4173,39787,8947],{"class":4669},[4173,39789,39790],{"class":4657,"line":10702},[4173,39791,4761],{"emptyLinePlaceholder":4760},[4173,39793,39794],{"class":4657,"line":10707},[4173,39795,21210],{"class":4766},[4173,39797,39798],{"class":4657,"line":10712},[4173,39799,4761],{"emptyLinePlaceholder":4760},[4173,39801,39802,39804,39806],{"class":4657,"line":10717},[4173,39803,9165],{"class":4661},[4173,39805,21221],{"class":4669},[4173,39807,8947],{"class":4669},[4173,39809,39810],{"class":4657,"line":10727},[4173,39811,4761],{"emptyLinePlaceholder":4760},[4173,39813,39814],{"class":4657,"line":10732},[4173,39815,21232],{"class":4766},[4173,39817,39818],{"class":4657,"line":10737},[4173,39819,4761],{"emptyLinePlaceholder":4760},[4173,39821,39822,39824,39826],{"class":4657,"line":10742},[4173,39823,9165],{"class":4661},[4173,39825,21243],{"class":4669},[4173,39827,8947],{"class":4669},[4173,39829,39830],{"class":4657,"line":10752},[4173,39831,4761],{"emptyLinePlaceholder":4760},[4173,39833,39834],{"class":4657,"line":10757},[4173,39835,39836],{"class":4766},"# Kommentarzeilen (# am Anfang) entfernen\n",[4173,39838,39839],{"class":4657,"line":10762},[4173,39840,4761],{"emptyLinePlaceholder":4760},[4173,39842,39843,39845,39847],{"class":4657,"line":10767},[4173,39844,9165],{"class":4661},[4173,39846,21182],{"class":4669},[4173,39848,8947],{"class":4669},[4173,39850,39851],{"class":4657,"line":10772},[4173,39852,4761],{"emptyLinePlaceholder":4760},[4173,39854,39855,39857,39859],{"class":4657,"line":10777},[4173,39856,9165],{"class":4661},[4173,39858,21195],{"class":4669},[4173,39860,8947],{"class":4669},[4173,39862,39863],{"class":4657,"line":10782},[4173,39864,4761],{"emptyLinePlaceholder":4760},[4173,39866,39867],{"class":4657,"line":10787},[4173,39868,39869],{"class":4766},"# Nur Zeilen ausgeben, die \"Muster\" enthalten (-n p)\n",[4173,39871,39872],{"class":4657,"line":10800},[4173,39873,4761],{"emptyLinePlaceholder":4760},[4173,39875,39876,39878,39880,39882],{"class":4657,"line":10805},[4173,39877,9165],{"class":4661},[4173,39879,9376],{"class":4665},[4173,39881,21364],{"class":4669},[4173,39883,8947],{"class":4669},[4173,39885,39886],{"class":4657,"line":10818},[4173,39887,4761],{"emptyLinePlaceholder":4760},[4173,39889,39890],{"class":4657,"line":10823},[4173,39891,39892],{"class":4766},"# Leerzeichen am Zeilenende entfernen\n",[4173,39894,39895],{"class":4657,"line":10836},[4173,39896,4761],{"emptyLinePlaceholder":4760},[4173,39898,39899,39901,39903],{"class":4657,"line":10841},[4173,39900,9165],{"class":4661},[4173,39902,21654],{"class":4669},[4173,39904,8947],{"class":4669},[4173,39906,39907],{"class":4657,"line":10846},[4173,39908,4761],{"emptyLinePlaceholder":4760},[4173,39910,39911],{"class":4657,"line":10851},[4173,39912,39913],{"class":4766},"# Führende Leerzeichen entfernen\n",[4173,39915,39916],{"class":4657,"line":10867},[4173,39917,4761],{"emptyLinePlaceholder":4760},[4173,39919,39920,39922,39924],{"class":4657,"line":10872},[4173,39921,9165],{"class":4661},[4173,39923,21680],{"class":4669},[4173,39925,8947],{"class":4669},[4173,39927,39928],{"class":4657,"line":10877},[4173,39929,4761],{"emptyLinePlaceholder":4760},[4173,39931,39932],{"class":4657,"line":10882},[4173,39933,21693],{"class":4766},[4173,39935,39936],{"class":4657,"line":10890},[4173,39937,4761],{"emptyLinePlaceholder":4760},[4173,39939,39940,39942,39944],{"class":4657,"line":10895},[4173,39941,9165],{"class":4661},[4173,39943,21706],{"class":4669},[4173,39945,8947],{"class":4669},[4173,39947,39948],{"class":4657,"line":10904},[4173,39949,4761],{"emptyLinePlaceholder":4760},[4173,39951,39952],{"class":4657,"line":10909},[4173,39953,39954],{"class":4766},"# Zeilen 5-10 ausgeben\n",[4173,39956,39957],{"class":4657,"line":10914},[4173,39958,4761],{"emptyLinePlaceholder":4760},[4173,39960,39961,39963,39965,39967],{"class":4657,"line":10919},[4173,39962,9165],{"class":4661},[4173,39964,9376],{"class":4665},[4173,39966,21392],{"class":4669},[4173,39968,8947],{"class":4669},[4173,39970,39971],{"class":4657,"line":10933},[4173,39972,4761],{"emptyLinePlaceholder":4760},[4173,39974,39975],{"class":4657,"line":10938},[4173,39976,39977],{"class":4766},"# Erste Zeile löschen (Header entfernen)\n",[4173,39979,39980],{"class":4657,"line":10959},[4173,39981,4761],{"emptyLinePlaceholder":4760},[4173,39983,39984,39986,39988],{"class":4657,"line":10964},[4173,39985,9165],{"class":4661},[4173,39987,21265],{"class":4669},[4173,39989,8947],{"class":4669},[4173,39991,39992],{"class":4657,"line":10969},[4173,39993,4761],{"emptyLinePlaceholder":4760},[4173,39995,39996],{"class":4657,"line":10974},[4173,39997,21276],{"class":4766},[4173,39999,40000],{"class":4657,"line":10982},[4173,40001,4761],{"emptyLinePlaceholder":4760},[4173,40003,40004,40006,40008],{"class":4657,"line":10987},[4173,40005,9165],{"class":4661},[4173,40007,21287],{"class":4669},[4173,40009,8947],{"class":4669},[4173,40011,40012],{"class":4657,"line":10995},[4173,40013,4761],{"emptyLinePlaceholder":4760},[4173,40015,40016],{"class":4657,"line":11000},[4173,40017,40018],{"class":4766},"# Zeilenumbruch nach \";\" einfügen (Erweiterter Regex)\n",[4173,40020,40021],{"class":4657,"line":11008},[4173,40022,4761],{"emptyLinePlaceholder":4760},[4173,40024,40025,40027,40029,40032],{"class":4657,"line":11013},[4173,40026,9165],{"class":4661},[4173,40028,17788],{"class":4665},[4173,40030,40031],{"class":4669}," 's\u002F;\u002F;n\u002Fg'",[4173,40033,8947],{"class":4669},[4173,40035,40036],{"class":4657,"line":11021},[4173,40037,4761],{"emptyLinePlaceholder":4760},[4173,40039,40040],{"class":4657,"line":11026},[4173,40041,40042],{"class":4766},"# Rückreferenz: Wort in Anführungszeichen einschließen\n",[4173,40044,40045],{"class":4657,"line":11034},[4173,40046,4761],{"emptyLinePlaceholder":4760},[4173,40048,40049,40051,40054],{"class":4657,"line":11039},[4173,40050,9165],{"class":4661},[4173,40052,40053],{"class":4669}," 's\u002F(Wort)\u002F\"1\"\u002F'",[4173,40055,8947],{"class":4669},[4173,40057,40058],{"class":4657,"line":11048},[4173,40059,4761],{"emptyLinePlaceholder":4760},[4173,40061,40062,40064,40066,40068,40070],{"class":4657,"line":11053},[4173,40063,9165],{"class":4661},[4173,40065,17788],{"class":4665},[4173,40067,40053],{"class":4669},[4173,40069,21198],{"class":4669},[4173,40071,40072],{"class":4766}," # ERE-Variante\n",[4173,40074,40075],{"class":4657,"line":21369},[4173,40076,4761],{"emptyLinePlaceholder":4760},[4173,40078,40079],{"class":4657,"line":21374},[4173,40080,40081],{"class":4766},"# Text nach Zeile 3 einfügen\n",[4173,40083,40084],{"class":4657,"line":21380},[4173,40085,4761],{"emptyLinePlaceholder":4760},[4173,40087,40088,40090,40093],{"class":4657,"line":21385},[4173,40089,9165],{"class":4661},[4173,40091,40092],{"class":4669}," '3aDies ist eine neue Zeile'",[4173,40094,8947],{"class":4669},[4173,40096,40097],{"class":4657,"line":21397},[4173,40098,4761],{"emptyLinePlaceholder":4760},[4173,40100,40101],{"class":4657,"line":21402},[4173,40102,21500],{"class":4766},[4173,40104,40105],{"class":4657,"line":21408},[4173,40106,4761],{"emptyLinePlaceholder":4760},[4173,40108,40109,40111,40114],{"class":4657,"line":21413},[4173,40110,9165],{"class":4661},[4173,40112,40113],{"class":4669}," '3iDies kommt davor'",[4173,40115,8947],{"class":4669},[4173,40117,40118],{"class":4657,"line":21425},[4173,40119,4761],{"emptyLinePlaceholder":4760},[4173,40121,40122],{"class":4657,"line":21430},[4173,40123,40124],{"class":4766},"# Zeile 3 ersetzen\n",[4173,40126,40127],{"class":4657,"line":21436},[4173,40128,4761],{"emptyLinePlaceholder":4760},[4173,40130,40131,40133,40136],{"class":4657,"line":21441},[4173,40132,9165],{"class":4661},[4173,40134,40135],{"class":4669}," '3cDiese Zeile ersetzt die alte'",[4173,40137,8947],{"class":4669},[4173,40139,40140],{"class":4657,"line":21453},[4173,40141,4761],{"emptyLinePlaceholder":4760},[4173,40143,40144],{"class":4657,"line":21458},[4173,40145,40146],{"class":4766},"# Mehrere Befehle (mit -e oder Semikolon)\n",[4173,40148,40149],{"class":4657,"line":21464},[4173,40150,4761],{"emptyLinePlaceholder":4760},[4173,40152,40153,40155,40157,40159,40161,40163],{"class":4657,"line":21469},[4173,40154,9165],{"class":4661},[4173,40156,21075],{"class":4665},[4173,40158,21078],{"class":4669},[4173,40160,21075],{"class":4665},[4173,40162,21083],{"class":4669},[4173,40164,8947],{"class":4669},[4173,40166,40167],{"class":4657,"line":21481},[4173,40168,4761],{"emptyLinePlaceholder":4760},[4173,40170,40171,40173,40175],{"class":4657,"line":21486},[4173,40172,9165],{"class":4661},[4173,40174,21105],{"class":4669},[4173,40176,8947],{"class":4669},[4173,40178,40179],{"class":4657,"line":21492},[4173,40180,4761],{"emptyLinePlaceholder":4760},[4173,40182,40183],{"class":4657,"line":21497},[4173,40184,40185],{"class":4766},"# Skript aus Datei\n",[4173,40187,40188],{"class":4657,"line":21503},[4173,40189,4761],{"emptyLinePlaceholder":4760},[4173,40191,40192,40194,40196,40199],{"class":4657,"line":21508},[4173,40193,9165],{"class":4661},[4173,40195,11337],{"class":4665},[4173,40197,40198],{"class":4669}," mein_skript.sed",[4173,40200,8947],{"class":4669},[4173,40202,40203],{"class":4657,"line":21518},[4173,40204,4761],{"emptyLinePlaceholder":4760},[4173,40206,40207],{"class":4657,"line":21523},[4173,40208,40209],{"class":4766},"# Nur erste Zeile ausgeben (wie head -1)\n",[4173,40211,40212],{"class":4657,"line":21529},[4173,40213,4761],{"emptyLinePlaceholder":4760},[4173,40215,40216,40218,40220,40222],{"class":4657,"line":21534},[4173,40217,9165],{"class":4661},[4173,40219,9376],{"class":4665},[4173,40221,21420],{"class":4669},[4173,40223,8947],{"class":4669},[4173,40225,40226],{"class":4657,"line":21544},[4173,40227,4761],{"emptyLinePlaceholder":4760},[4173,40229,40230],{"class":4657,"line":21549},[4173,40231,40232],{"class":4766},"# Zeilenanzahl begrenzen (wie head -5)\n",[4173,40234,40235],{"class":4657,"line":21555},[4173,40236,4761],{"emptyLinePlaceholder":4760},[4173,40238,40239,40241,40243],{"class":4657,"line":21560},[4173,40240,9165],{"class":4661},[4173,40242,21831],{"class":4669},[4173,40244,8947],{"class":4669},[4173,40246,40247],{"class":4657,"line":21570},[4173,40248,4761],{"emptyLinePlaceholder":4760},[4173,40250,40251],{"class":4657,"line":21575},[4173,40252,40253],{"class":4766},"# Zeichenersatz (y-Befehl): Kleinbuchstaben → Großbuchstaben\n",[4173,40255,40256],{"class":4657,"line":21581},[4173,40257,4761],{"emptyLinePlaceholder":4760},[4173,40259,40260,40262,40264],{"class":4657,"line":21586},[4173,40261,9165],{"class":4661},[4173,40263,22041],{"class":4669},[4173,40265,8947],{"class":4669},[4173,40267,40268],{"class":4657,"line":21596},[4173,40269,4761],{"emptyLinePlaceholder":4760},[4173,40271,40272],{"class":4657,"line":21601},[4173,40273,40274],{"class":4766},"# Zeilennummern anzeigen (= gibt Nummer aus, p gibt Zeile aus)\n",[4173,40276,40277],{"class":4657,"line":21607},[4173,40278,4761],{"emptyLinePlaceholder":4760},[4173,40280,40281,40283,40285,40287,40289,40291],{"class":4657,"line":21612},[4173,40282,9165],{"class":4661},[4173,40284,21769],{"class":4669},[4173,40286,21198],{"class":4669},[4173,40288,8928],{"class":4788},[4173,40290,21776],{"class":4661},[4173,40292,21779],{"class":4669},[4173,40294,40295],{"class":4657,"line":21622},[4173,40296,4761],{"emptyLinePlaceholder":4760},[4173,40298,40299],{"class":4657,"line":21627},[4173,40300,22128],{"class":4766},[4173,40302,40303],{"class":4657,"line":21633},[4173,40304,4761],{"emptyLinePlaceholder":4760},[4173,40306,40307,40309,40311],{"class":4657,"line":21638},[4173,40308,9165],{"class":4661},[4173,40310,22141],{"class":4669},[4173,40312,22144],{"class":4669},[4173,40314,40315],{"class":4657,"line":21644},[4173,40316,4761],{"emptyLinePlaceholder":4760},[4173,40318,40319],{"class":4657,"line":21649},[4173,40320,40321],{"class":4766},"# DOS-Zeilenenden (rn) in Unix (n) umwandeln\n",[4173,40323,40324],{"class":4657,"line":21659},[4173,40325,4761],{"emptyLinePlaceholder":4760},[4173,40327,40328,40330,40332],{"class":4657,"line":21664},[4173,40329,9165],{"class":4661},[4173,40331,22168],{"class":4669},[4173,40333,8947],{"class":4669},[16,40335,40337],{"id":40336},"cut-spalten-extrahieren","cut – Spalten extrahieren",[11,40339,40341],{"id":40340},"_5-feld-aus-etcpasswd-delimiter-doppelpunkt","5. Feld aus \u002Fetc\u002Fpasswd (Delimiter: Doppelpunkt)",[4647,40343,40345],{"className":4649,"code":40344,"language":4651,"meta":269,"style":269},"cut -d: -f5 \u002Fetc\u002Fpasswd\n\n# 3. Spalte einer CSV-Datei\n\ncut -d, -f3 datei.csv\n\n",[4653,40346,40347,40360,40364,40369,40373],{"__ignoreMap":269},[4173,40348,40349,40352,40355,40358],{"class":4657,"line":4658},[4173,40350,40351],{"class":4661},"cut",[4173,40353,40354],{"class":4665}," -d:",[4173,40356,40357],{"class":4665}," -f5",[4173,40359,10007],{"class":4669},[4173,40361,40362],{"class":4657,"line":270},[4173,40363,4761],{"emptyLinePlaceholder":4760},[4173,40365,40366],{"class":4657,"line":1263},[4173,40367,40368],{"class":4766},"# 3. Spalte einer CSV-Datei\n",[4173,40370,40371],{"class":4657,"line":4770},[4173,40372,4761],{"emptyLinePlaceholder":4760},[4173,40374,40375,40377,40380,40383],{"class":4657,"line":4775},[4173,40376,40351],{"class":4661},[4173,40378,40379],{"class":4665}," -d,",[4173,40381,40382],{"class":4665}," -f3",[4173,40384,40385],{"class":4669}," datei.csv\n",[16,40387,40389],{"id":40388},"awk-textverarbeitung","awk – Textverarbeitung",[470,40391,9853],{"id":40392},"grundprinzip-1",[4647,40394,40396],{"className":4649,"code":40395,"language":4651,"meta":269,"style":269},"awk ist eine vollständige Programmiersprache für Textverarbeitung. Es liest Dateien oder Streams zeilenweise, teilt jede Zeile in Felder auf und wendet ein Programm darauf an.\n\n",[4653,40397,40398],{"__ignoreMap":269},[4173,40399,40400,40402,40405,40408,40411,40414,40416,40419,40422,40425,40427,40429,40432,40435,40438,40441,40443,40445,40448,40450,40452,40455,40458,40461,40464],{"class":4657,"line":4658},[4173,40401,9844],{"class":4661},[4173,40403,40404],{"class":4669}," ist",[4173,40406,40407],{"class":4669}," eine",[4173,40409,40410],{"class":4669}," vollständige",[4173,40412,40413],{"class":4669}," Programmiersprache",[4173,40415,15612],{"class":4669},[4173,40417,40418],{"class":4669}," Textverarbeitung.",[4173,40420,40421],{"class":4669}," Es",[4173,40423,40424],{"class":4669}," liest",[4173,40426,36451],{"class":4669},[4173,40428,26948],{"class":4669},[4173,40430,40431],{"class":4669}," Streams",[4173,40433,40434],{"class":4669}," zeilenweise,",[4173,40436,40437],{"class":4669}," teilt",[4173,40439,40440],{"class":4669}," jede",[4173,40442,19286],{"class":4669},[4173,40444,16308],{"class":4669},[4173,40446,40447],{"class":4669}," Felder",[4173,40449,15364],{"class":4669},[4173,40451,36454],{"class":4669},[4173,40453,40454],{"class":4669}," wendet",[4173,40456,40457],{"class":4669}," ein",[4173,40459,40460],{"class":4669}," Programm",[4173,40462,40463],{"class":4669}," darauf",[4173,40465,40466],{"class":4669}," an.\n",[414,40468,40469],{},[42,40470,37137],{},[4647,40472,40474],{"className":4649,"code":40473,"language":4651,"meta":269,"style":269},"awk 'MUSTER { AKTION }' datei\n\n",[4653,40475,40476],{"__ignoreMap":269},[4173,40477,40478,40480,40483],{"class":4657,"line":4658},[4173,40479,9844],{"class":4661},[4173,40481,40482],{"class":4669}," 'MUSTER { AKTION }'",[4173,40484,39166],{"class":4669},[470,40486,40488],{"id":40487},"felder-und-variablen","Felder und Variablen",[765,40490,40491,40503],{},[768,40492,40493],{},[771,40494,40495,40499],{},[774,40496,40497],{},[42,40498,9876],{},[774,40500,40501],{},[42,40502,6733],{},[787,40504,40505,40512,40519,40526,40534,40542,40549,40555,40562,40569,40576,40583,40590,40597,40605],{},[771,40506,40507,40509],{},[792,40508,6129],{},[792,40510,40511],{},"Die gesamte aktuelle Zeile",[771,40513,40514,40516],{},[792,40515,9887],{},[792,40517,40518],{},"Erstes Feld",[771,40520,40521,40523],{},[792,40522,9895],{},[792,40524,40525],{},"Zweites Feld",[771,40527,40528,40531],{},[792,40529,40530],{},"$NF",[792,40532,40533],{},"Letztes Feld (Number of Fields)",[771,40535,40536,40539],{},[792,40537,40538],{},"$(NF-1)",[792,40540,40541],{},"Vorletztes Feld",[771,40543,40544,40546],{},[792,40545,9918],{},[792,40547,40548],{},"Aktuelle Zeilennummer (Number of Records)",[771,40550,40551,40553],{},[792,40552,9910],{},[792,40554,19328],{},[771,40556,40557,40559],{},[792,40558,19348],{},[792,40560,40561],{},"Feldtrenner (Field Separator, Standard: Leerzeichen\u002FTab)",[771,40563,40564,40566],{},[792,40565,19356],{},[792,40567,40568],{},"Ausgabe-Feldtrenner (Output Field Separator)",[771,40570,40571,40573],{},[792,40572,19364],{},[792,40574,40575],{},"Datensatztrenner (Record Separator, Standard: \\n)",[771,40577,40578,40580],{},[792,40579,19372],{},[792,40581,40582],{},"Ausgabe-Datensatztrenner",[771,40584,40585,40587],{},[792,40586,19380],{},[792,40588,40589],{},"Name der aktuellen Datei",[771,40591,40592,40594],{},[792,40593,19340],{},[792,40595,40596],{},"Zeilennummer in der aktuellen Datei (bei mehreren Dateien)",[771,40598,40599,40602],{},[792,40600,40601],{},"ARGC",[792,40603,40604],{},"Anzahl der Argumente",[771,40606,40607,40610],{},[792,40608,40609],{},"ARGV",[792,40611,40612],{},"Array der Argumente",[470,40614,40616],{"id":40615},"kommandozeilen-optionen","Kommandozeilen-Optionen",[765,40618,40619,40631],{},[768,40620,40621],{},[771,40622,40623,40627],{},[774,40624,40625],{},[42,40626,8964],{},[774,40628,40629],{},[42,40630,6733],{},[787,40632,40633,40641,40648,40655,40663,40670,40678],{},[771,40634,40635,40638],{},[792,40636,40637],{},"-F TRENN",[792,40639,40640],{},"Feldtrenner setzen (z.B. -F: für Doppelpunkt)",[771,40642,40643,40645],{},[792,40644,19415],{},[792,40646,40647],{},"Variable vor dem Start setzen",[771,40649,40650,40652],{},[792,40651,19423],{},[792,40653,40654],{},"awk-Programm aus Datei lesen",[771,40656,40657,40660],{},[792,40658,40659],{},"-W compat",[792,40661,40662],{},"POSIX-kompatiblen Modus aktivieren (gawk)",[771,40664,40665,40667],{},[792,40666,20427],{},[792,40668,40669],{},"Streng POSIX-konform (gawk)",[771,40671,40672,40675],{},[792,40673,40674],{},"--re-interval",[792,40676,40677],{},"Intervallausdrücke in Regex aktivieren (gawk)",[771,40679,40680,40682],{},[792,40681,20417],{},[792,40683,40684],{},"Sicherheitsmodus (kein system(), getline etc.) (gawk)",[470,40686,40688],{"id":40687},"besondere-blöcke","Besondere Blöcke",[414,40690,40691],{},"BEGIN { ... } # Wird einmal VOR dem Einlesen ausgeführt",[414,40693,40694],{},"END { ... } # Wird einmal NACH dem letzten Datensatz ausgeführt",[414,40696,40697],{},"\u002FMuster\u002F { ... } # Wird für jede Zeile ausgeführt, die Muster enthält",[470,40699,19431],{"id":40700},"vergleichsoperatoren",[765,40702,40703,40715],{},[768,40704,40705],{},[771,40706,40707,40711],{},[774,40708,40709],{},[42,40710,19442],{},[774,40712,40713],{},[42,40714,6733],{},[787,40716,40717,40723,40729,40737,40744],{},[771,40718,40719,40721],{},[792,40720,19453],{},[792,40722,19456],{},[771,40724,40725,40727],{},[792,40726,19461],{},[792,40728,19464],{},[771,40730,40731,40734],{},[792,40732,40733],{},"\u003C, >, \u003C=, >=",[792,40735,40736],{},"Vergleich",[771,40738,40739,40741],{},[792,40740,19485],{},[792,40742,40743],{},"Regex-Match",[771,40745,40746,40748],{},[792,40747,19493],{},[792,40749,40750],{},"Kein Regex-Match",[470,40752,40754],{"id":40753},"arithmetik-und-strings","Arithmetik und Strings",[11,40756,40758],{"id":40757},"arithmetik","Arithmetik",[414,40760,40761],{},"$3 + $4 # Addition",[414,40763,40764],{},"$3 * 1.19 # Multiplikation",[414,40766,40767],{},"int($1 \u002F 2) # Ganzzahldivision",[11,40769,19500],{"id":19499},[414,40771,40772],{},"length($0) # Länge der Zeile",[414,40774,40775],{},"substr($1, 2, 4) # Teilstring ab Position 2, Länge 4",[414,40777,40778],{},"split($1, arr, \":\") # Splitten in Array",[414,40780,40781],{},"gsub(\u002Falt\u002F, \"neu\") # Globale Ersetzung in $0",[414,40783,40784],{},"sub(\u002Falt\u002F, \"neu\") # Erste Ersetzung in $0",[414,40786,40787],{},"toupper($1) # Großbuchstaben",[414,40789,40790],{},"tolower($1) # Kleinbuchstaben",[414,40792,40793],{},"index($1, \"suche\") # Position des Teilstrings",[414,40795,40796],{},"match($0, \u002Fregex\u002F) # Regex-Match, setzt RSTART\u002FRLENGTH",[414,40798,40799],{},"sprintf(\"%.2f\", $3) # Formatierte Ausgabe",[470,40801,9925],{"id":14639},[11,40803,40805],{"id":40804},"alle-zeilen-ausgeben-wie-cat","Alle Zeilen ausgeben (wie cat)",[4647,40807,40809],{"className":4649,"code":40808,"language":4651,"meta":269,"style":269},"awk '{ print }' datei.txt\n\nawk '{ print $0 }' datei.txt\n\n# Nur das erste Feld ausgeben\n\nawk '{ print $1 }' datei.txt\n\n# Spalten 1 und 3, durch Tab getrennt\n\nawk '{ print $1, $3 }' datei.txt\n\n# Mit Doppelpunkt als Trennzeichen (\u002Fetc\u002Fpasswd)\n\nawk -F: '{ print $1 }' \u002Fetc\u002Fpasswd\n\n# Benutzernamen und Shell ausgeben\n\nawk -F: '{ print $1, $7 }' \u002Fetc\u002Fpasswd\n\n# Nur Zeilen mit mehr als 3 Feldern\n\nawk 'NF > 3' datei.txt\n\n# Zeilen die \"error\" enthalten\n\nawk '\u002Ferror\u002F { print }' \u002Fvar\u002Flog\u002Fsyslog\n\n# Zeilen die NICHT \"debug\" enthalten\n\nawk '!\u002Fdebug\u002F' \u002Fvar\u002Flog\u002Fsyslog\n\n# Zeilennummer mit ausgeben\n\nawk '{ print NR\": \"$0 }' datei.txt\n\n# Nur Zeile 5 bis 10\n\nawk 'NR>=5 && NR\u003C=10' datei.txt\n\n# Summe der dritten Spalte\n\nawk '{ sum += $3 } END { print \"Summe:\", sum }' zahlen.txt\n\n# Durchschnitt\n\nawk '{ sum += $3 } END { print \"Avg:\", sum\u002FNR }' zahlen.txt\n\n# Anzahl Zeilen zählen (wie wc -l)\n\nawk 'END { print NR }' datei.txt\n\n# Duplikate entfernen (wie uniq, aber nicht sortiert)\n\nawk '!seen[$0]++' datei.txt\n\n# Leerzeilen entfernen\n\nawk 'NF > 0' datei.txt\n\nawk '\u002F^.\u002F' datei.txt\n\n# Felder vertauschen (1. und 2. Spalte tauschen)\n\nawk '{ print $2, $1 }' datei.txt\n\n# Ausgabe-Feldtrenner setzen (Komma)\n\nawk 'BEGIN{OFS=\",\"} { print $1,$2,$3 }' datei.txt\n\n# Variablen von außen übergeben\n\nawk -v grenze=100 '$3 > grenze { print }' datei.txt\n\n# if\u002Felse in awk\n\nawk '{ if ($3 > 50) print \"groß:\", $1; else print \"klein:\", $1 }' datei.txt\n\n# for-Schleife\n\nawk '{ for(i=1; i\u003C=NF; i++) print $i }' datei.txt\n\n# Arrays verwenden\n\nawk '{ count[$1]++ } END { for(k in count) print k, count[k] }' log.txt\n\n# Nur die letzte Zeile\n\nawk 'END { print }' datei.txt\n\n# Mehrzeiliger awk-Code aus Datei ausführen\n\nawk -f programm.awk datei.txt\n\n# CSV-Datei auswerten (Komma als Trenner, Anführungszeichen ignorieren)\n\nawk -F'\",\"' '{ print $2 }' daten.csv\n\n# Zwischen zwei Mustern ausgeben (inkl.)\n\nawk '\u002FSTART\u002F,\u002FSTOP\u002F' datei.txt\n\n# BEGIN und END\n\nawk 'BEGIN { print \"=== Start ===\" } { print } END { print \"=== Ende ===\" }' datei.txt\n\n# Prozesse nach CPU-Nutzung filtern (ps aux)\n\nps aux | awk '$3 > 1.0 { print $1, $2, $3, $11 }'\n\n# IP-Adressen aus Logdatei extrahieren\n\nawk '{ match($0, \u002F[0-9]+.[0-9]+.[0-9]+.[0-9]+\u002F, arr); print arr[0] }' access.log\n\n# \u002Fetc\u002Fpasswd – UIDs über 1000 (normale User)\n\nawk -F: '$3 >= 1000 { print $1, $3 }' \u002Fetc\u002Fpasswd\n\n# Größe einer Datei (du-Ausgabe aufsummieren)\n\ndu -sh * | awk '{ sum += $1 } END { print sum }'\n\n",[4653,40810,40811,40820,40824,40833,40837,40842,40846,40855,40859,40864,40868,40877,40881,40886,40890,40900,40904,40909,40913,40924,40928,40933,40937,40946,40950,40955,40959,40968,40972,40977,40981,40990,40994,40999,41003,41012,41016,41021,41025,41034,41038,41043,41047,41056,41060,41065,41069,41078,41082,41087,41091,41100,41104,41109,41113,41121,41125,41130,41134,41143,41147,41156,41160,41165,41169,41178,41182,41187,41191,41200,41204,41209,41213,41228,41232,41237,41241,41250,41254,41259,41263,41272,41276,41281,41285,41295,41299,41304,41308,41317,41321,41326,41330,41341,41345,41350,41354,41368,41372,41377,41381,41390,41394,41399,41403,41412,41416,41421,41425,41438,41442,41447,41451,41460,41464,41469,41473,41484,41488,41493,41497],{"__ignoreMap":269},[4173,40812,40813,40815,40818],{"class":4657,"line":4658},[4173,40814,9844],{"class":4661},[4173,40816,40817],{"class":4669}," '{ print }'",[4173,40819,8947],{"class":4669},[4173,40821,40822],{"class":4657,"line":270},[4173,40823,4761],{"emptyLinePlaceholder":4760},[4173,40825,40826,40828,40831],{"class":4657,"line":1263},[4173,40827,9844],{"class":4661},[4173,40829,40830],{"class":4669}," '{ print $0 }'",[4173,40832,8947],{"class":4669},[4173,40834,40835],{"class":4657,"line":4770},[4173,40836,4761],{"emptyLinePlaceholder":4760},[4173,40838,40839],{"class":4657,"line":4775},[4173,40840,40841],{"class":4766},"# Nur das erste Feld ausgeben\n",[4173,40843,40844],{"class":4657,"line":6320},[4173,40845,4761],{"emptyLinePlaceholder":4760},[4173,40847,40848,40850,40853],{"class":4657,"line":6325},[4173,40849,9844],{"class":4661},[4173,40851,40852],{"class":4669}," '{ print $1 }'",[4173,40854,8947],{"class":4669},[4173,40856,40857],{"class":4657,"line":6343},[4173,40858,4761],{"emptyLinePlaceholder":4760},[4173,40860,40861],{"class":4657,"line":6348},[4173,40862,40863],{"class":4766},"# Spalten 1 und 3, durch Tab getrennt\n",[4173,40865,40866],{"class":4657,"line":6457},[4173,40867,4761],{"emptyLinePlaceholder":4760},[4173,40869,40870,40872,40875],{"class":4657,"line":6462},[4173,40871,9844],{"class":4661},[4173,40873,40874],{"class":4669}," '{ print $1, $3 }'",[4173,40876,8947],{"class":4669},[4173,40878,40879],{"class":4657,"line":6468},[4173,40880,4761],{"emptyLinePlaceholder":4760},[4173,40882,40883],{"class":4657,"line":6473},[4173,40884,40885],{"class":4766},"# Mit Doppelpunkt als Trennzeichen (\u002Fetc\u002Fpasswd)\n",[4173,40887,40888],{"class":4657,"line":6479},[4173,40889,4761],{"emptyLinePlaceholder":4760},[4173,40891,40892,40894,40896,40898],{"class":4657,"line":6503},[4173,40893,9844],{"class":4661},[4173,40895,19890],{"class":4665},[4173,40897,40852],{"class":4669},[4173,40899,10007],{"class":4669},[4173,40901,40902],{"class":4657,"line":6516},[4173,40903,4761],{"emptyLinePlaceholder":4760},[4173,40905,40906],{"class":4657,"line":6971},[4173,40907,40908],{"class":4766},"# Benutzernamen und Shell ausgeben\n",[4173,40910,40911],{"class":4657,"line":10649},[4173,40912,4761],{"emptyLinePlaceholder":4760},[4173,40914,40915,40917,40919,40922],{"class":4657,"line":10654},[4173,40916,9844],{"class":4661},[4173,40918,19890],{"class":4665},[4173,40920,40921],{"class":4669}," '{ print $1, $7 }'",[4173,40923,10007],{"class":4669},[4173,40925,40926],{"class":4657,"line":10659},[4173,40927,4761],{"emptyLinePlaceholder":4760},[4173,40929,40930],{"class":4657,"line":10664},[4173,40931,40932],{"class":4766},"# Nur Zeilen mit mehr als 3 Feldern\n",[4173,40934,40935],{"class":4657,"line":10676},[4173,40936,4761],{"emptyLinePlaceholder":4760},[4173,40938,40939,40941,40944],{"class":4657,"line":10681},[4173,40940,9844],{"class":4661},[4173,40942,40943],{"class":4669}," 'NF > 3'",[4173,40945,8947],{"class":4669},[4173,40947,40948],{"class":4657,"line":10702},[4173,40949,4761],{"emptyLinePlaceholder":4760},[4173,40951,40952],{"class":4657,"line":10707},[4173,40953,40954],{"class":4766},"# Zeilen die \"error\" enthalten\n",[4173,40956,40957],{"class":4657,"line":10712},[4173,40958,4761],{"emptyLinePlaceholder":4760},[4173,40960,40961,40963,40966],{"class":4657,"line":10717},[4173,40962,9844],{"class":4661},[4173,40964,40965],{"class":4669}," '\u002Ferror\u002F { print }'",[4173,40967,16868],{"class":4669},[4173,40969,40970],{"class":4657,"line":10727},[4173,40971,4761],{"emptyLinePlaceholder":4760},[4173,40973,40974],{"class":4657,"line":10732},[4173,40975,40976],{"class":4766},"# Zeilen die NICHT \"debug\" enthalten\n",[4173,40978,40979],{"class":4657,"line":10737},[4173,40980,4761],{"emptyLinePlaceholder":4760},[4173,40982,40983,40985,40988],{"class":4657,"line":10742},[4173,40984,9844],{"class":4661},[4173,40986,40987],{"class":4669}," '!\u002Fdebug\u002F'",[4173,40989,16868],{"class":4669},[4173,40991,40992],{"class":4657,"line":10752},[4173,40993,4761],{"emptyLinePlaceholder":4760},[4173,40995,40996],{"class":4657,"line":10757},[4173,40997,40998],{"class":4766},"# Zeilennummer mit ausgeben\n",[4173,41000,41001],{"class":4657,"line":10762},[4173,41002,4761],{"emptyLinePlaceholder":4760},[4173,41004,41005,41007,41010],{"class":4657,"line":10767},[4173,41006,9844],{"class":4661},[4173,41008,41009],{"class":4669}," '{ print NR\": \"$0 }'",[4173,41011,8947],{"class":4669},[4173,41013,41014],{"class":4657,"line":10772},[4173,41015,4761],{"emptyLinePlaceholder":4760},[4173,41017,41018],{"class":4657,"line":10777},[4173,41019,41020],{"class":4766},"# Nur Zeile 5 bis 10\n",[4173,41022,41023],{"class":4657,"line":10782},[4173,41024,4761],{"emptyLinePlaceholder":4760},[4173,41026,41027,41029,41032],{"class":4657,"line":10787},[4173,41028,9844],{"class":4661},[4173,41030,41031],{"class":4669}," 'NR>=5 && NR\u003C=10'",[4173,41033,8947],{"class":4669},[4173,41035,41036],{"class":4657,"line":10800},[4173,41037,4761],{"emptyLinePlaceholder":4760},[4173,41039,41040],{"class":4657,"line":10805},[4173,41041,41042],{"class":4766},"# Summe der dritten Spalte\n",[4173,41044,41045],{"class":4657,"line":10818},[4173,41046,4761],{"emptyLinePlaceholder":4760},[4173,41048,41049,41051,41054],{"class":4657,"line":10823},[4173,41050,9844],{"class":4661},[4173,41052,41053],{"class":4669}," '{ sum += $3 } END { print \"Summe:\", sum }'",[4173,41055,10029],{"class":4669},[4173,41057,41058],{"class":4657,"line":10836},[4173,41059,4761],{"emptyLinePlaceholder":4760},[4173,41061,41062],{"class":4657,"line":10841},[4173,41063,41064],{"class":4766},"# Durchschnitt\n",[4173,41066,41067],{"class":4657,"line":10846},[4173,41068,4761],{"emptyLinePlaceholder":4760},[4173,41070,41071,41073,41076],{"class":4657,"line":10851},[4173,41072,9844],{"class":4661},[4173,41074,41075],{"class":4669}," '{ sum += $3 } END { print \"Avg:\", sum\u002FNR }'",[4173,41077,10029],{"class":4669},[4173,41079,41080],{"class":4657,"line":10867},[4173,41081,4761],{"emptyLinePlaceholder":4760},[4173,41083,41084],{"class":4657,"line":10872},[4173,41085,41086],{"class":4766},"# Anzahl Zeilen zählen (wie wc -l)\n",[4173,41088,41089],{"class":4657,"line":10877},[4173,41090,4761],{"emptyLinePlaceholder":4760},[4173,41092,41093,41095,41098],{"class":4657,"line":10882},[4173,41094,9844],{"class":4661},[4173,41096,41097],{"class":4669}," 'END { print NR }'",[4173,41099,8947],{"class":4669},[4173,41101,41102],{"class":4657,"line":10890},[4173,41103,4761],{"emptyLinePlaceholder":4760},[4173,41105,41106],{"class":4657,"line":10895},[4173,41107,41108],{"class":4766},"# Duplikate entfernen (wie uniq, aber nicht sortiert)\n",[4173,41110,41111],{"class":4657,"line":10904},[4173,41112,4761],{"emptyLinePlaceholder":4760},[4173,41114,41115,41117,41119],{"class":4657,"line":10909},[4173,41116,9844],{"class":4661},[4173,41118,20221],{"class":4669},[4173,41120,8947],{"class":4669},[4173,41122,41123],{"class":4657,"line":10914},[4173,41124,4761],{"emptyLinePlaceholder":4760},[4173,41126,41127],{"class":4657,"line":10919},[4173,41128,41129],{"class":4766},"# Leerzeilen entfernen\n",[4173,41131,41132],{"class":4657,"line":10933},[4173,41133,4761],{"emptyLinePlaceholder":4760},[4173,41135,41136,41138,41141],{"class":4657,"line":10938},[4173,41137,9844],{"class":4661},[4173,41139,41140],{"class":4669}," 'NF > 0'",[4173,41142,8947],{"class":4669},[4173,41144,41145],{"class":4657,"line":10959},[4173,41146,4761],{"emptyLinePlaceholder":4760},[4173,41148,41149,41151,41154],{"class":4657,"line":10964},[4173,41150,9844],{"class":4661},[4173,41152,41153],{"class":4669}," '\u002F^.\u002F'",[4173,41155,8947],{"class":4669},[4173,41157,41158],{"class":4657,"line":10969},[4173,41159,4761],{"emptyLinePlaceholder":4760},[4173,41161,41162],{"class":4657,"line":10974},[4173,41163,41164],{"class":4766},"# Felder vertauschen (1. und 2. Spalte tauschen)\n",[4173,41166,41167],{"class":4657,"line":10982},[4173,41168,4761],{"emptyLinePlaceholder":4760},[4173,41170,41171,41173,41176],{"class":4657,"line":10987},[4173,41172,9844],{"class":4661},[4173,41174,41175],{"class":4669}," '{ print $2, $1 }'",[4173,41177,8947],{"class":4669},[4173,41179,41180],{"class":4657,"line":10995},[4173,41181,4761],{"emptyLinePlaceholder":4760},[4173,41183,41184],{"class":4657,"line":11000},[4173,41185,41186],{"class":4766},"# Ausgabe-Feldtrenner setzen (Komma)\n",[4173,41188,41189],{"class":4657,"line":11008},[4173,41190,4761],{"emptyLinePlaceholder":4760},[4173,41192,41193,41195,41198],{"class":4657,"line":11013},[4173,41194,9844],{"class":4661},[4173,41196,41197],{"class":4669}," 'BEGIN{OFS=\",\"} { print $1,$2,$3 }'",[4173,41199,8947],{"class":4669},[4173,41201,41202],{"class":4657,"line":11021},[4173,41203,4761],{"emptyLinePlaceholder":4760},[4173,41205,41206],{"class":4657,"line":11026},[4173,41207,41208],{"class":4766},"# Variablen von außen übergeben\n",[4173,41210,41211],{"class":4657,"line":11034},[4173,41212,4761],{"emptyLinePlaceholder":4760},[4173,41214,41215,41217,41219,41221,41223,41226],{"class":4657,"line":11039},[4173,41216,9844],{"class":4661},[4173,41218,17702],{"class":4665},[4173,41220,20122],{"class":4669},[4173,41222,5961],{"class":4665},[4173,41224,41225],{"class":4669}," '$3 > grenze { print }'",[4173,41227,8947],{"class":4669},[4173,41229,41230],{"class":4657,"line":11048},[4173,41231,4761],{"emptyLinePlaceholder":4760},[4173,41233,41234],{"class":4657,"line":11053},[4173,41235,41236],{"class":4766},"# if\u002Felse in awk\n",[4173,41238,41239],{"class":4657,"line":21369},[4173,41240,4761],{"emptyLinePlaceholder":4760},[4173,41242,41243,41245,41248],{"class":4657,"line":21374},[4173,41244,9844],{"class":4661},[4173,41246,41247],{"class":4669}," '{ if ($3 > 50) print \"groß:\", $1; else print \"klein:\", $1 }'",[4173,41249,8947],{"class":4669},[4173,41251,41252],{"class":4657,"line":21380},[4173,41253,4761],{"emptyLinePlaceholder":4760},[4173,41255,41256],{"class":4657,"line":21385},[4173,41257,41258],{"class":4766},"# for-Schleife\n",[4173,41260,41261],{"class":4657,"line":21397},[4173,41262,4761],{"emptyLinePlaceholder":4760},[4173,41264,41265,41267,41270],{"class":4657,"line":21402},[4173,41266,9844],{"class":4661},[4173,41268,41269],{"class":4669}," '{ for(i=1; i\u003C=NF; i++) print $i }'",[4173,41271,8947],{"class":4669},[4173,41273,41274],{"class":4657,"line":21408},[4173,41275,4761],{"emptyLinePlaceholder":4760},[4173,41277,41278],{"class":4657,"line":21413},[4173,41279,41280],{"class":4766},"# Arrays verwenden\n",[4173,41282,41283],{"class":4657,"line":21425},[4173,41284,4761],{"emptyLinePlaceholder":4760},[4173,41286,41287,41289,41292],{"class":4657,"line":21430},[4173,41288,9844],{"class":4661},[4173,41290,41291],{"class":4669}," '{ count[$1]++ } END { for(k in count) print k, count[k] }'",[4173,41293,41294],{"class":4669}," log.txt\n",[4173,41296,41297],{"class":4657,"line":21436},[4173,41298,4761],{"emptyLinePlaceholder":4760},[4173,41300,41301],{"class":4657,"line":21441},[4173,41302,41303],{"class":4766},"# Nur die letzte Zeile\n",[4173,41305,41306],{"class":4657,"line":21453},[4173,41307,4761],{"emptyLinePlaceholder":4760},[4173,41309,41310,41312,41315],{"class":4657,"line":21458},[4173,41311,9844],{"class":4661},[4173,41313,41314],{"class":4669}," 'END { print }'",[4173,41316,8947],{"class":4669},[4173,41318,41319],{"class":4657,"line":21464},[4173,41320,4761],{"emptyLinePlaceholder":4760},[4173,41322,41323],{"class":4657,"line":21469},[4173,41324,41325],{"class":4766},"# Mehrzeiliger awk-Code aus Datei ausführen\n",[4173,41327,41328],{"class":4657,"line":21481},[4173,41329,4761],{"emptyLinePlaceholder":4760},[4173,41331,41332,41334,41336,41339],{"class":4657,"line":21486},[4173,41333,9844],{"class":4661},[4173,41335,11337],{"class":4665},[4173,41337,41338],{"class":4669}," programm.awk",[4173,41340,8947],{"class":4669},[4173,41342,41343],{"class":4657,"line":21492},[4173,41344,4761],{"emptyLinePlaceholder":4760},[4173,41346,41347],{"class":4657,"line":21497},[4173,41348,41349],{"class":4766},"# CSV-Datei auswerten (Komma als Trenner, Anführungszeichen ignorieren)\n",[4173,41351,41352],{"class":4657,"line":21503},[4173,41353,4761],{"emptyLinePlaceholder":4760},[4173,41355,41356,41358,41360,41363,41366],{"class":4657,"line":21508},[4173,41357,9844],{"class":4661},[4173,41359,9999],{"class":4665},[4173,41361,41362],{"class":4669},"'\",\"'",[4173,41364,41365],{"class":4669}," '{ print $2 }'",[4173,41367,17083],{"class":4669},[4173,41369,41370],{"class":4657,"line":21518},[4173,41371,4761],{"emptyLinePlaceholder":4760},[4173,41373,41374],{"class":4657,"line":21523},[4173,41375,41376],{"class":4766},"# Zwischen zwei Mustern ausgeben (inkl.)\n",[4173,41378,41379],{"class":4657,"line":21529},[4173,41380,4761],{"emptyLinePlaceholder":4760},[4173,41382,41383,41385,41388],{"class":4657,"line":21534},[4173,41384,9844],{"class":4661},[4173,41386,41387],{"class":4669}," '\u002FSTART\u002F,\u002FSTOP\u002F'",[4173,41389,8947],{"class":4669},[4173,41391,41392],{"class":4657,"line":21544},[4173,41393,4761],{"emptyLinePlaceholder":4760},[4173,41395,41396],{"class":4657,"line":21549},[4173,41397,41398],{"class":4766},"# BEGIN und END\n",[4173,41400,41401],{"class":4657,"line":21555},[4173,41402,4761],{"emptyLinePlaceholder":4760},[4173,41404,41405,41407,41410],{"class":4657,"line":21560},[4173,41406,9844],{"class":4661},[4173,41408,41409],{"class":4669}," 'BEGIN { print \"=== Start ===\" } { print } END { print \"=== Ende ===\" }'",[4173,41411,8947],{"class":4669},[4173,41413,41414],{"class":4657,"line":21570},[4173,41415,4761],{"emptyLinePlaceholder":4760},[4173,41417,41418],{"class":4657,"line":21575},[4173,41419,41420],{"class":4766},"# Prozesse nach CPU-Nutzung filtern (ps aux)\n",[4173,41422,41423],{"class":4657,"line":21581},[4173,41424,4761],{"emptyLinePlaceholder":4760},[4173,41426,41427,41429,41431,41433,41435],{"class":4657,"line":21586},[4173,41428,8922],{"class":4661},[4173,41430,8925],{"class":4669},[4173,41432,8928],{"class":4788},[4173,41434,34284],{"class":4661},[4173,41436,41437],{"class":4669}," '$3 > 1.0 { print $1, $2, $3, $11 }'\n",[4173,41439,41440],{"class":4657,"line":21596},[4173,41441,4761],{"emptyLinePlaceholder":4760},[4173,41443,41444],{"class":4657,"line":21601},[4173,41445,41446],{"class":4766},"# IP-Adressen aus Logdatei extrahieren\n",[4173,41448,41449],{"class":4657,"line":21607},[4173,41450,4761],{"emptyLinePlaceholder":4760},[4173,41452,41453,41455,41458],{"class":4657,"line":21612},[4173,41454,9844],{"class":4661},[4173,41456,41457],{"class":4669}," '{ match($0, \u002F[0-9]+.[0-9]+.[0-9]+.[0-9]+\u002F, arr); print arr[0] }'",[4173,41459,17846],{"class":4669},[4173,41461,41462],{"class":4657,"line":21622},[4173,41463,4761],{"emptyLinePlaceholder":4760},[4173,41465,41466],{"class":4657,"line":21627},[4173,41467,41468],{"class":4766},"# \u002Fetc\u002Fpasswd – UIDs über 1000 (normale User)\n",[4173,41470,41471],{"class":4657,"line":21633},[4173,41472,4761],{"emptyLinePlaceholder":4760},[4173,41474,41475,41477,41479,41482],{"class":4657,"line":21638},[4173,41476,9844],{"class":4661},[4173,41478,19890],{"class":4665},[4173,41480,41481],{"class":4669}," '$3 >= 1000 { print $1, $3 }'",[4173,41483,10007],{"class":4669},[4173,41485,41486],{"class":4657,"line":21644},[4173,41487,4761],{"emptyLinePlaceholder":4760},[4173,41489,41490],{"class":4657,"line":21649},[4173,41491,41492],{"class":4766},"# Größe einer Datei (du-Ausgabe aufsummieren)\n",[4173,41494,41495],{"class":4657,"line":21659},[4173,41496,4761],{"emptyLinePlaceholder":4760},[4173,41498,41499,41501,41503,41505,41507,41509],{"class":4657,"line":21664},[4173,41500,23896],{"class":4661},[4173,41502,23899],{"class":4665},[4173,41504,7078],{"class":4665},[4173,41506,8928],{"class":4788},[4173,41508,34284],{"class":4661},[4173,41510,41511],{"class":4669}," '{ sum += $1 } END { print sum }'\n",[16,41513,41515],{"id":41514},"apt-high-level-empfohlen","apt (High-Level – empfohlen!)",[765,41517,41518,41530],{},[768,41519,41520],{},[771,41521,41522,41526],{},[774,41523,41524],{},[42,41525,8243],{},[774,41527,41528],{},[42,41529,5800],{},[787,41531,41532,41540,41548,41556,41564,41572,41580,41588,41596,41604],{},[771,41533,41534,41537],{},[792,41535,41536],{},"sudo apt update",[792,41538,41539],{},"Paketlisten aktualisieren",[771,41541,41542,41545],{},[792,41543,41544],{},"sudo apt upgrade",[792,41546,41547],{},"Installierte Pakete aktualisieren",[771,41549,41550,41553],{},[792,41551,41552],{},"sudo apt install paket",[792,41554,41555],{},"Paket installieren",[771,41557,41558,41561],{},[792,41559,41560],{},"sudo apt remove paket",[792,41562,41563],{},"Paket deinstallieren (Konfig bleibt)",[771,41565,41566,41569],{},[792,41567,41568],{},"sudo apt purge paket",[792,41570,41571],{},"Paket + Konfig entfernen",[771,41573,41574,41577],{},[792,41575,41576],{},"apt search begriff",[792,41578,41579],{},"Nach Paketen suchen",[771,41581,41582,41585],{},[792,41583,41584],{},"apt list --installed",[792,41586,41587],{},"Installierte Pakete anzeigen",[771,41589,41590,41593],{},[792,41591,41592],{},"sudo apt autoremove",[792,41594,41595],{},"Nicht benötigte Pakete entfernen",[771,41597,41598,41601],{},[792,41599,41600],{},"apt source paket",[792,41602,41603],{},"Quellcode herunterladen",[771,41605,41606,41609],{},[792,41607,41608],{},"apt clean",[792,41610,41611],{},"Apt cache leeren",[16,41613,41615],{"id":41614},"paketquellen-etcaptsourceslist","Paketquellen: \u002Fetc\u002Fapt\u002Fsources.list",[4647,41617,41619],{"className":4649,"code":41618,"language":4651,"meta":269,"style":269},"deb http:\u002F\u002Fserver.example.com\u002Fdebian distribution component1 component2\n\ndeb-src http:\u002F\u002Fserver.example.com\u002Fdebian distribution component1 component2\n\n- deb = vorcompilierte Binary-Pakete\n",[4653,41620,41621,41638,41642,41655,41659],{"__ignoreMap":269},[4173,41622,41623,41626,41629,41632,41635],{"class":4657,"line":4658},[4173,41624,41625],{"class":4661},"deb",[4173,41627,41628],{"class":4669}," http:\u002F\u002Fserver.example.com\u002Fdebian",[4173,41630,41631],{"class":4669}," distribution",[4173,41633,41634],{"class":4669}," component1",[4173,41636,41637],{"class":4669}," component2\n",[4173,41639,41640],{"class":4657,"line":270},[4173,41641,4761],{"emptyLinePlaceholder":4760},[4173,41643,41644,41647,41649,41651,41653],{"class":4657,"line":1263},[4173,41645,41646],{"class":4661},"deb-src",[4173,41648,41628],{"class":4669},[4173,41650,41631],{"class":4669},[4173,41652,41634],{"class":4669},[4173,41654,41637],{"class":4669},[4173,41656,41657],{"class":4657,"line":4770},[4173,41658,4761],{"emptyLinePlaceholder":4760},[4173,41660,41661,41663,41666,41668,41671],{"class":4657,"line":4775},[4173,41662,4778],{"class":4661},[4173,41664,41665],{"class":4669}," deb",[4173,41667,15169],{"class":4669},[4173,41669,41670],{"class":4669}," vorcompilierte",[4173,41672,41673],{"class":4669}," Binary-Pakete\n",[21,41675,41676,41679,41682],{},[24,41677,41678],{},"deb = vorcompilierte Binary-Pakete",[24,41680,41681],{},"deb-src = Source-Pakete",[24,41683,41684],{},"Weitere Quellen in: \u002Fetc\u002Fapt\u002Fsources.list.d\u002F*.list",[11,41686,41688],{"id":41687},"benutzer-und-gruppenverwaltung","Benutzer- und Gruppenverwaltung",[16,41690,41692],{"id":41691},"arten-von-benutzern","Arten von Benutzern",[765,41694,41695,41712],{},[768,41696,41697],{},[771,41698,41699,41703,41707],{},[774,41700,41701],{},[42,41702,6723],{},[774,41704,41705],{},[42,41706,5800],{},[774,41708,41709],{},[42,41710,41711],{},"UID",[787,41713,41714,41724,41734],{},[771,41715,41716,41719,41722],{},[792,41717,41718],{},"Root",[792,41720,41721],{},"Superuser, uneingeschränkter Zugriff",[792,41723,12749],{},[771,41725,41726,41728,41731],{},[792,41727,12768],{},[792,41729,41730],{},"Begrenzte Rechte",[792,41732,41733],{},"> 1000",[771,41735,41736,41739,41742],{},[792,41737,41738],{},"Systembenutzer",[792,41740,41741],{},"Für Dienste (z.B. www-data)",[792,41743,41744],{},"1-999",[16,41746,41748],{"id":41747},"wichtige-konfigurationsdateien","Wichtige Konfigurationsdateien",[470,41750,41752],{"id":41751},"etcpasswd-benutzerdatenbank","\u002Fetc\u002Fpasswd – Benutzerdatenbank",[470,41754,41756],{"id":41755},"usernamepassworduidgidinfohomeshell","Username:Password:UID:GID:Info:Home:Shell",[21,41758,41759,41762],{},[24,41760,41761],{},"Password = x bedeutet: Passwort steht in \u002Fetc\u002Fshadow",[24,41763,41764],{},"Beispiel: bob❌1001:1001:Bob Miller:\u002Fhome\u002Fbob:\u002Fbin\u002Fbash",[470,41766,41768],{"id":41767},"etcshadow-passwortdatenbank","\u002Fetc\u002Fshadow – Passwortdatenbank",[414,41770,41771],{},"Username:Password:DOC:MinD:MaxD:Warn:Exp:Dis",[21,41773,41774,41777],{},[24,41775,41776],{},"DOC = Tag der letzten Passwortänderung (ab 1.1.1970)",[24,41778,41779],{},"Editieren mit: vipw -s",[470,41781,41783],{"id":41782},"etcgroup-gruppendatenbank","\u002Fetc\u002Fgroup – Gruppendatenbank",[414,41785,41786],{},"Gruppenname:Passwort:GID:Mitgliederliste",[470,41788,41790],{"id":41789},"etcskel-vorlage-für-neue-benutzer","\u002Fetc\u002Fskel – Vorlage für neue Benutzer",[21,41792,41793],{},[24,41794,41795],{},"Dateien aus diesem Verzeichnis werden bei useradd -m ins neue Home kopiert",[16,41797,41799],{"id":41798},"befehle-zur-gruppenverwaltung","Befehle zur Gruppenverwaltung",[765,41801,41802,41814],{},[768,41803,41804],{},[771,41805,41806,41810],{},[774,41807,41808],{},[42,41809,8243],{},[774,41811,41812],{},[42,41813,5800],{},[787,41815,41816,41824,41832,41839,41846,41854,41861],{},[771,41817,41818,41821],{},[792,41819,41820],{},"groupadd gruppenname",[792,41822,41823],{},"Neue Gruppe anlegen",[771,41825,41826,41829],{},[792,41827,41828],{},"groupadd -g 1007 verkauf",[792,41830,41831],{},"Gruppe mit bestimmter GID",[771,41833,41834,41837],{},[792,41835,41836],{},"groupdel gruppenname",[792,41838,34678],{},[771,41840,41841,41844],{},[792,41842,41843],{},"groupmod -n neuer_name alter_name",[792,41845,34671],{},[771,41847,41848,41851],{},[792,41849,41850],{},"gpasswd -a benutzer gruppe",[792,41852,41853],{},"Mitglied hinzufügen",[771,41855,41856,41859],{},[792,41857,41858],{},"gpasswd -d benutzer gruppe",[792,41860,34939],{},[771,41862,41863,41866],{},[792,41864,41865],{},"newgrp gruppenname",[792,41867,41868],{},"Primäre Gruppe wechseln",[16,41870,41872],{"id":41871},"befehle-zur-benutzerverwaltung","Befehle zur Benutzerverwaltung",[765,41874,41875,41887],{},[768,41876,41877],{},[771,41878,41879,41883],{},[774,41880,41881],{},[42,41882,8243],{},[774,41884,41885],{},[42,41886,5800],{},[787,41888,41889,41897,41905,41913,41921,41929,41937,41945,41953,41961,41969,41977,41984],{},[771,41890,41891,41894],{},[792,41892,41893],{},"useradd benutzername",[792,41895,41896],{},"Neuen Benutzer anlegen",[771,41898,41899,41902],{},[792,41900,41901],{},"useradd -m benutzername",[792,41903,41904],{},"Mit Home-Verzeichnis anlegen",[771,41906,41907,41910],{},[792,41908,41909],{},"useradd -m -u 502 -c \"Info\" name",[792,41911,41912],{},"Mit UID und Kommentar",[771,41914,41915,41918],{},[792,41916,41917],{},"userdel benutzername",[792,41919,41920],{},"Benutzer löschen",[771,41922,41923,41926],{},[792,41924,41925],{},"userdel -r benutzername",[792,41927,41928],{},"Benutzer + Home löschen",[771,41930,41931,41934],{},[792,41932,41933],{},"usermod -aG gruppe benutzer",[792,41935,41936],{},"Benutzer zur Gruppe hinzufügen",[771,41938,41939,41942],{},[792,41940,41941],{},"passwd benutzername",[792,41943,41944],{},"Passwort setzen\u002Fändern",[771,41946,41947,41950],{},[792,41948,41949],{},"passwd -l benutzername",[792,41951,41952],{},"Account sperren",[771,41954,41955,41958],{},[792,41956,41957],{},"passwd -u benutzername",[792,41959,41960],{},"Account freigeben",[771,41962,41963,41966],{},[792,41964,41965],{},"id benutzername",[792,41967,41968],{},"UID, GID und Gruppen anzeigen",[771,41970,41971,41974],{},[792,41972,41973],{},"groups benutzername",[792,41975,41976],{},"Gruppenmitgliedschaften anzeigen",[771,41978,41979,41982],{},[792,41980,41981],{},"su benutzername",[792,41983,35856],{},[771,41985,41986,41989],{},[792,41987,41988],{},"su -",[792,41990,41991],{},"Zu root wechseln mit Umgebungswechsel",[11,41993,41995],{"id":41994},"zugriffsrechte-und-dateiberechtigungen","Zugriffsrechte und Dateiberechtigungen",[16,41997,41999],{"id":41998},"aufbau-der-berechtigungen","Aufbau der Berechtigungen",[414,42001,42002,42003,42005,42006,42008,42009,42011,42012,42014,42015,42017],{},"-rwxr-xr-- 1 besitzer gruppe größe datum dateiname",[7135,42004],{},"\n│├─┤├─┤├─┤",[7135,42007],{},"\n│ │ │ └── Andere (Others): r--",[7135,42010],{},"\n│ │ └────── Gruppe (Group): r-x",[7135,42013],{},"\n│ └────────── Besitzer (User): rwx",[7135,42016],{},"\n└──────────── Dateityp: - = Datei, d = Verzeichnis",[16,42019,14146],{"id":14145},[765,42021,42022,42038],{},[768,42023,42024],{},[771,42025,42026,42030,42034],{},[774,42027,42028],{},[42,42029,14157],{},[774,42031,42032],{},[42,42033,35318],{},[774,42035,42036],{},[42,42037,9626],{},[787,42039,42040,42050,42061],{},[771,42041,42042,42045,42047],{},[792,42043,42044],{},"r (read=4)",[792,42046,14192],{},[792,42048,42049],{},"Verzeichnisinhalt auflisten",[771,42051,42052,42055,42058],{},[792,42053,42054],{},"w (write=2)",[792,42056,42057],{},"Dateiinhalt ändern",[792,42059,42060],{},"Dateien erstellen\u002Flöschen\u002Fumbenennen",[771,42062,42063,42066,42069],{},[792,42064,42065],{},"x (execute=1)",[792,42067,42068],{},"Programm\u002FSkript ausführen",[792,42070,42071],{},"Verzeichnis betreten (cd)",[16,42073,42075],{"id":42074},"chmod-rechte-ändern","chmod – Rechte ändern",[470,42077,42079],{"id":42078},"symbolische-methode","Symbolische Methode:",[4647,42081,42083],{"className":4649,"code":42082,"language":4651,"meta":269,"style":269},"chmod u+x datei.sh # User: Ausführen hinzufügen\n\nchmod g-w datei.txt # Gruppe: Schreiben entfernen\n\nchmod o=r datei.txt # Andere: Nur Lesen\n\nchmod a+x skript.sh # Alle: Ausführen hinzufügen\n\nchmod u=rwx,g=rx,o= datei # Explizit setzen\n\n",[4653,42084,42085,42098,42102,42114,42118,42130,42134,42146,42150],{"__ignoreMap":269},[4173,42086,42087,42089,42092,42095],{"class":4657,"line":4658},[4173,42088,14118],{"class":4661},[4173,42090,42091],{"class":4669}," u+x",[4173,42093,42094],{"class":4669}," datei.sh",[4173,42096,42097],{"class":4766}," # User: Ausführen hinzufügen\n",[4173,42099,42100],{"class":4657,"line":270},[4173,42101,4761],{"emptyLinePlaceholder":4760},[4173,42103,42104,42106,42109,42111],{"class":4657,"line":1263},[4173,42105,14118],{"class":4661},[4173,42107,42108],{"class":4669}," g-w",[4173,42110,21198],{"class":4669},[4173,42112,42113],{"class":4766}," # Gruppe: Schreiben entfernen\n",[4173,42115,42116],{"class":4657,"line":4770},[4173,42117,4761],{"emptyLinePlaceholder":4760},[4173,42119,42120,42122,42125,42127],{"class":4657,"line":4775},[4173,42121,14118],{"class":4661},[4173,42123,42124],{"class":4669}," o=r",[4173,42126,21198],{"class":4669},[4173,42128,42129],{"class":4766}," # Andere: Nur Lesen\n",[4173,42131,42132],{"class":4657,"line":6320},[4173,42133,4761],{"emptyLinePlaceholder":4760},[4173,42135,42136,42138,42140,42143],{"class":4657,"line":6325},[4173,42137,14118],{"class":4661},[4173,42139,14724],{"class":4669},[4173,42141,42142],{"class":4669}," skript.sh",[4173,42144,42145],{"class":4766}," # Alle: Ausführen hinzufügen\n",[4173,42147,42148],{"class":4657,"line":6343},[4173,42149,4761],{"emptyLinePlaceholder":4760},[4173,42151,42152,42154,42156,42158],{"class":4657,"line":6348},[4173,42153,14118],{"class":4661},[4173,42155,14768],{"class":4669},[4173,42157,13755],{"class":4669},[4173,42159,42160],{"class":4766}," # Explizit setzen\n",[470,42162,42164],{"id":42163},"oktalnotation","Oktalnotation:",[4647,42166,42168],{"className":4649,"code":42167,"language":4651,"meta":269,"style":269},"chmod 755 datei # rwxr-xr-x\n\nchmod 644 datei # rw-r--r--\n\nchmod 700 datei # rwx------\n\nchmod 000 datei # ---------\n\n",[4653,42169,42170,42181,42185,42196,42200,42212,42216],{"__ignoreMap":269},[4173,42171,42172,42174,42176,42178],{"class":4657,"line":4658},[4173,42173,14118],{"class":4661},[4173,42175,14655],{"class":4665},[4173,42177,13755],{"class":4669},[4173,42179,42180],{"class":4766}," # rwxr-xr-x\n",[4173,42182,42183],{"class":4657,"line":270},[4173,42184,4761],{"emptyLinePlaceholder":4760},[4173,42186,42187,42189,42191,42193],{"class":4657,"line":1263},[4173,42188,14118],{"class":4661},[4173,42190,14678],{"class":4665},[4173,42192,13755],{"class":4669},[4173,42194,42195],{"class":4766}," # rw-r--r--\n",[4173,42197,42198],{"class":4657,"line":4770},[4173,42199,4761],{"emptyLinePlaceholder":4760},[4173,42201,42202,42204,42207,42209],{"class":4657,"line":4775},[4173,42203,14118],{"class":4661},[4173,42205,42206],{"class":4665}," 700",[4173,42208,13755],{"class":4669},[4173,42210,42211],{"class":4766}," # rwx------\n",[4173,42213,42214],{"class":4657,"line":6320},[4173,42215,4761],{"emptyLinePlaceholder":4760},[4173,42217,42218,42220,42223,42225],{"class":4657,"line":6325},[4173,42219,14118],{"class":4661},[4173,42221,42222],{"class":4665}," 000",[4173,42224,13755],{"class":4669},[4173,42226,42227],{"class":4766}," # ---------\n",[470,42229,42231],{"id":42230},"häufige-berechtigungssätze","Häufige Berechtigungssätze:",[765,42233,42234,42250],{},[768,42235,42236],{},[771,42237,42238,42242,42246],{},[774,42239,42240],{},[42,42241,14167],{},[774,42243,42244],{},[42,42245,14253],{},[774,42247,42248],{},[42,42249,854],{},[787,42251,42252,42261,42270,42279,42288],{},[771,42253,42254,42256,42258],{},[792,42255,14575],{},[792,42257,14578],{},[792,42259,42260],{},"Programme, Verzeichnisse",[771,42262,42263,42265,42267],{},[792,42264,14564],{},[792,42266,14567],{},[792,42268,42269],{},"Normale Dateien",[771,42271,42272,42274,42276],{},[792,42273,14597],{},[792,42275,14600],{},[792,42277,42278],{},"Private Verzeichnisse, .ssh\u002F",[771,42280,42281,42283,42285],{},[792,42282,14586],{},[792,42284,14589],{},[792,42286,42287],{},"Private Dateien, SSH-Keys",[771,42289,42290,42292,42294],{},[792,42291,14619],{},[792,42293,14622],{},[792,42295,42296],{},"Unsicher! Alle Rechte",[16,42298,42300],{"id":42299},"chown-chgrp-besitzergruppe-ändern","chown \u002F chgrp – Besitzer\u002FGruppe ändern",[4647,42302,42304],{"className":4649,"code":42303,"language":4651,"meta":269,"style":269},"chown benutzer:gruppe datei # Besitzer und Gruppe ändern\n\nchown benutzer datei # Nur Besitzer ändern\n\nchgrp gruppe datei # Nur Gruppe ändern\n\n",[4653,42305,42306,42318,42322,42334,42338],{"__ignoreMap":269},[4173,42307,42308,42310,42313,42315],{"class":4657,"line":4658},[4173,42309,13669],{"class":4661},[4173,42311,42312],{"class":4669}," benutzer:gruppe",[4173,42314,13755],{"class":4669},[4173,42316,42317],{"class":4766}," # Besitzer und Gruppe ändern\n",[4173,42319,42320],{"class":4657,"line":270},[4173,42321,4761],{"emptyLinePlaceholder":4760},[4173,42323,42324,42326,42329,42331],{"class":4657,"line":1263},[4173,42325,13669],{"class":4661},[4173,42327,42328],{"class":4669}," benutzer",[4173,42330,13755],{"class":4669},[4173,42332,42333],{"class":4766}," # Nur Besitzer ändern\n",[4173,42335,42336],{"class":4657,"line":4770},[4173,42337,4761],{"emptyLinePlaceholder":4760},[4173,42339,42340,42343,42346,42348],{"class":4657,"line":4775},[4173,42341,42342],{"class":4661},"chgrp",[4173,42344,42345],{"class":4669}," gruppe",[4173,42347,13755],{"class":4669},[4173,42349,42350],{"class":4766}," # Nur Gruppe ändern\n",[16,42352,42354],{"id":42353},"spezialberechtigungen","Spezialberechtigungen",[765,42356,42357,42379],{},[768,42358,42359],{},[771,42360,42361,42366,42370,42375],{},[774,42362,42363],{},[42,42364,42365],{},"Spezialbit",[774,42367,42368],{},[42,42369,14167],{},[774,42371,42372],{},[42,42373,42374],{},"Setzen",[774,42376,42377],{},[42,42378,5800],{},[787,42380,42381,42394,42406],{},[771,42382,42383,42386,42388,42391],{},[792,42384,42385],{},"SetUID",[792,42387,15663],{},[792,42389,42390],{},"chmod u+s datei",[792,42392,42393],{},"Programm läuft mit Rechten des Dateieigentümers (z.B. \u002Fusr\u002Fbin\u002Fpasswd)",[771,42395,42396,42399,42401,42404],{},[792,42397,42398],{},"SetGID",[792,42400,15682],{},[792,42402,42403],{},"chmod g+s verz",[792,42405,15691],{},[771,42407,42408,42410,42412,42415],{},[792,42409,14944],{},[792,42411,13015],{},[792,42413,42414],{},"chmod +t verz",[792,42416,42417],{},"Nur Eigentümer darf eigene Dateien löschen (z.B. \u002Ftmp)",[470,42419,42421],{"id":42420},"setuid-detailbeschreibung","SetUID – Detailbeschreibung",[21,42423,42424,42435,42443,42452],{},[24,42425,42426,42427,42430,42431,42434],{},"Gesetzt auf eine ",[42,42428,42429],{},"ausführbare Datei",": Programm läuft immer mit der UID des ",[42,42432,42433],{},"Datei-Eigentümers",", egal welcher Benutzer es startet",[24,42436,15429,42437,42439,42440,42442],{},[42,42438,14969],{}," → muss ",[42,42441,14976],{}," (Besitzer: root) schreiben, darf aber von jedem Benutzer aufgerufen werden",[24,42444,42445,42446,42448,42449],{},"Auf ",[42,42447,13302],{},": In den meisten Linux-Distros ",[42,42450,42451],{},"keine Wirkung",[24,42453,42454,42457],{},[42,42455,42456],{},"Sicherheitsrisiko:"," SetUID-root-Programme sind ein beliebtes Angriffsziel (Privilege Escalation)",[4647,42459,42461],{"className":4649,"code":42460,"language":4651,"meta":269,"style":269},"chmod u+s \u002Fusr\u002Fbin\u002Fmeinprog # SetUID setzen\n\nchmod 4755 \u002Fusr\u002Fbin\u002Fmeinprog # Oktal: 4 + 755\n\n",[4653,42462,42463,42475,42479],{"__ignoreMap":269},[4173,42464,42465,42467,42469,42472],{"class":4657,"line":4658},[4173,42466,14118],{"class":4661},[4173,42468,15024],{"class":4669},[4173,42470,42471],{"class":4669}," \u002Fusr\u002Fbin\u002Fmeinprog",[4173,42473,42474],{"class":4766}," # SetUID setzen\n",[4173,42476,42477],{"class":4657,"line":270},[4173,42478,4761],{"emptyLinePlaceholder":4760},[4173,42480,42481,42483,42485,42487],{"class":4657,"line":1263},[4173,42482,14118],{"class":4661},[4173,42484,15047],{"class":4665},[4173,42486,42471],{"class":4669},[4173,42488,42489],{"class":4766}," # Oktal: 4 + 755\n",[470,42491,42493],{"id":42492},"setgid-detailbeschreibung","SetGID – Detailbeschreibung",[21,42495,42496,42503],{},[24,42497,42426,42498,42500,42501],{},[42,42499,42429],{},": Programm läuft mit der GID des ",[42,42502,42433],{},[24,42504,42505,42506,42508,42509,42512],{},"Gesetzt auf ein ",[42,42507,9626],{},": Alle neu erstellten Dateien und Unterverzeichnisse erben automatisch die ",[42,42510,42511],{},"Gruppe des Verzeichnisses"," (sehr nützlich für Team-Ordner!)",[4647,42514,42516],{"className":4649,"code":42515,"language":4651,"meta":269,"style":269},"chmod g+s \u002Fsrv\u002Fteam\u002F # SetGID auf Verzeichnis\n\nchmod 2755 \u002Fsrv\u002Fteam\u002F # Oktal: 2 + 755\n\n",[4653,42517,42518,42530,42534],{"__ignoreMap":269},[4173,42519,42520,42522,42524,42527],{"class":4657,"line":4658},[4173,42521,14118],{"class":4661},[4173,42523,15251],{"class":4669},[4173,42525,42526],{"class":4669}," \u002Fsrv\u002Fteam\u002F",[4173,42528,42529],{"class":4766}," # SetGID auf Verzeichnis\n",[4173,42531,42532],{"class":4657,"line":270},[4173,42533,4761],{"emptyLinePlaceholder":4760},[4173,42535,42536,42538,42541,42543],{"class":4657,"line":1263},[4173,42537,14118],{"class":4661},[4173,42539,42540],{"class":4665}," 2755",[4173,42542,42526],{"class":4669},[4173,42544,42545],{"class":4766}," # Oktal: 2 + 755\n",[470,42547,42549],{"id":42548},"sticky-bit-detailbeschreibung","Sticky Bit – Detailbeschreibung",[21,42551,42552,42561,42567],{},[24,42553,42505,42554,42556,42557,42560],{},[42,42555,9626],{},": Jeder kann Dateien erstellen, aber nur der ",[42,42558,42559],{},"Eigentümer der Datei"," (oder root) darf diese löschen\u002Fumbenennen",[24,42562,42563,42564,42566],{},"Wichtigstes Beispiel: ",[42,42565,15432],{}," – alle Benutzer können dort Dateien anlegen, aber niemand darf fremde Dateien löschen",[24,42568,42445,42569,42571,42572],{},[42,42570,6797],{},": Historisch bedeutete es „Programm im Swap behalten\" – heute in Linux ",[42,42573,42574],{},"keine Funktion mehr",[4647,42576,42578],{"className":4649,"code":42577,"language":4651,"meta":269,"style":269},"chmod +t \u002Ftmp\u002Fgemeinsam\u002F # Sticky Bit setzen\n\nchmod 1777 \u002Ftmp\u002F # Oktal: 1 + 777 ← Typisch für \u002Ftmp\n\n",[4653,42579,42580,42592,42596],{"__ignoreMap":269},[4173,42581,42582,42584,42586,42589],{"class":4657,"line":4658},[4173,42583,14118],{"class":4661},[4173,42585,15473],{"class":4669},[4173,42587,42588],{"class":4669}," \u002Ftmp\u002Fgemeinsam\u002F",[4173,42590,42591],{"class":4766}," # Sticky Bit setzen\n",[4173,42593,42594],{"class":4657,"line":270},[4173,42595,4761],{"emptyLinePlaceholder":4760},[4173,42597,42598,42600,42602,42605],{"class":4657,"line":1263},[4173,42599,14118],{"class":4661},[4173,42601,15487],{"class":4665},[4173,42603,42604],{"class":4669}," \u002Ftmp\u002F",[4173,42606,42607],{"class":4766}," # Oktal: 1 + 777 ← Typisch für \u002Ftmp\n",[414,42609,42610],{},"Verifizieren:",[4647,42612,42614],{"className":4649,"code":42613,"language":4651,"meta":269,"style":269},"ls -ld \u002Ftmp\n\n# drwxrwxrwt → das 't' am Ende = Sticky Bit gesetzt\n\nstat \u002Ftmp\n\n",[4653,42615,42616,42624,42628,42633,42637],{"__ignoreMap":269},[4173,42617,42618,42620,42622],{"class":4657,"line":4658},[4173,42619,13462],{"class":4661},[4173,42621,15287],{"class":4665},[4173,42623,15533],{"class":4669},[4173,42625,42626],{"class":4657,"line":270},[4173,42627,4761],{"emptyLinePlaceholder":4760},[4173,42629,42630],{"class":4657,"line":1263},[4173,42631,42632],{"class":4766},"# drwxrwxrwt → das 't' am Ende = Sticky Bit gesetzt\n",[4173,42634,42635],{"class":4657,"line":4770},[4173,42636,4761],{"emptyLinePlaceholder":4760},[4173,42638,42639,42641],{"class":4657,"line":4775},[4173,42640,10387],{"class":4665},[4173,42642,15533],{"class":4669},[16,42644,42646],{"id":42645},"vollständige-übersicht-was-ls-l-bei-berechtigungen-anzeigt","Vollständige Übersicht: Was ls -l bei Berechtigungen anzeigt",[414,42648,42649,42650,42653],{},"Das Berechtigungsfeld hat ",[42,42651,42652],{},"10 Zeichen",": 1 Dateityp + 3×3 Rechte (user\u002Fgroup\u002Fothers)",[414,42655,42656,42657,42659,42660,42662,42663,42665,42666,42668,42669,42671,42672,42674,42675,42677],{},"Position: 1 234 567 890",[7135,42658],{},"\n│ ├─┤ ├─┤ ├─┤",[7135,42661],{},"\nBeispiel: d rwx r-s r-t",[7135,42664],{},"\n│ │ │ │",[7135,42667],{},"\n│ │ │ └── Others",[7135,42670],{},"\n│ │ └──────── Group",[7135,42673],{},"\n│ └────────────── User",[7135,42676],{},"\n└─────────────────── Dateityp",[470,42679,42681],{"id":42680},"position-1-dateityp","Position 1: Dateityp",[765,42683,42684,42696],{},[768,42685,42686],{},[771,42687,42688,42692],{},[774,42689,42690],{},[42,42691,14162],{},[774,42693,42694],{},[42,42695,9542],{},[787,42697,42698,42704,42710,42717,42724,42731,42737],{},[771,42699,42700,42702],{},[792,42701,4778],{},[792,42703,12456],{},[771,42705,42706,42708],{},[792,42707,12469],{},[792,42709,35206],{},[771,42711,42712,42714],{},[792,42713,12511],{},[792,42715,42716],{},"Symbolischer Link (symlink)",[771,42718,42719,42721],{},[792,42720,6303],{},[792,42722,42723],{},"Block-Gerätedatei (z.B. Festplatte)",[771,42725,42726,42728],{},[792,42727,12490],{},[792,42729,42730],{},"Zeichen-Gerätedatei (z.B. Terminal)",[771,42732,42733,42735],{},[792,42734,414],{},[792,42736,35233],{},[771,42738,42739,42741],{},[792,42740,12522],{},[792,42742,42743],{},"Socket",[470,42745,42747],{"id":42746},"positionen-24-user-57-group-810-others-basisrechte","Positionen 2–4 (User), 5–7 (Group), 8–10 (Others): Basisrechte",[765,42749,42750,42766],{},[768,42751,42752],{},[771,42753,42754,42758,42762],{},[774,42755,42756],{},[42,42757,14162],{},[774,42759,42760],{},[42,42761,4074],{},[774,42763,42764],{},[42,42765,6733],{},[787,42767,42768,42778,42787,42797,42806,42816],{},[771,42769,42770,42772,42775],{},[792,42771,14187],{},[792,42773,42774],{},"1. Stelle",[792,42776,42777],{},"Lesen erlaubt",[771,42779,42780,42782,42784],{},[792,42781,4778],{},[792,42783,42774],{},[792,42785,42786],{},"Lesen verboten",[771,42788,42789,42791,42794],{},[792,42790,14203],{},[792,42792,42793],{},"2. Stelle",[792,42795,42796],{},"Schreiben erlaubt",[771,42798,42799,42801,42803],{},[792,42800,4778],{},[792,42802,42793],{},[792,42804,42805],{},"Schreiben verboten",[771,42807,42808,42810,42813],{},[792,42809,14220],{},[792,42811,42812],{},"3. Stelle",[792,42814,42815],{},"Ausführen erlaubt",[771,42817,42818,42820,42822],{},[792,42819,4778],{},[792,42821,42812],{},[792,42823,42824],{},"Ausführen verboten",[470,42826,42828],{"id":42827},"position-4-user-7-group-10-others-spezialbit-überlagerung","Position 4 (User), 7 (Group), 10 (Others): Spezialbit-Überlagerung",[765,42830,42831,42847],{},[768,42832,42833],{},[771,42834,42835,42839,42843],{},[774,42836,42837],{},[42,42838,14162],{},[774,42840,42841],{},[42,42842,4074],{},[774,42844,42845],{},[42,42846,6733],{},[787,42848,42849,42859,42868,42878,42887,42897],{},[771,42850,42851,42853,42856],{},[792,42852,12522],{},[792,42854,42855],{},"User (Pos. 4)",[792,42857,42858],{},"SetUID gesetzt und x vorhanden",[771,42860,42861,42863,42865],{},[792,42862,15000],{},[792,42864,42855],{},[792,42866,42867],{},"SetUID gesetzt, aber kein x (unüblich!)",[771,42869,42870,42872,42875],{},[792,42871,12522],{},[792,42873,42874],{},"Group (Pos. 7)",[792,42876,42877],{},"SetGID gesetzt und x vorhanden",[771,42879,42880,42882,42884],{},[792,42881,15000],{},[792,42883,42874],{},[792,42885,42886],{},"SetGID gesetzt, aber kein x",[771,42888,42889,42891,42894],{},[792,42890,14477],{},[792,42892,42893],{},"Others (Pos. 10)",[792,42895,42896],{},"Sticky Bit gesetzt und x vorhanden",[771,42898,42899,42901,42903],{},[792,42900,15453],{},[792,42902,42893],{},[792,42904,42905],{},"Sticky Bit gesetzt, aber kein x (selten)",[414,42907,42908,6100,42913,6100,42921,42925,42926,42931,6100,42940,42925,42944,42949],{},[406,42909,42910],{},[42,42911,42912],{},"Merkregel:",[406,42914,42915,42916,42920],{},"Kleinbuchstabe (",[42,42917,42918],{},[42,42919,12522],{},",",[406,42922,42923],{},[42,42924,14477],{},"*) = Spezialbit* ",[406,42927,42928],{},[42,42929,42930],{},"UND",[406,42932,42933,42935,42936,42920],{},[42,42934,14220],{},"**. Großbuchstabe (",[42,42937,42938],{},[42,42939,15000],{},[406,42941,42942],{},[42,42943,15453],{},[406,42945,42946],{},[42,42947,42948],{},"OHNE",[406,42950,42951,42953],{},[42,42952,14220],{},"**.",[470,42955,42957],{"id":42956},"alle-möglichen-zeichen-auf-einen-blick","Alle möglichen Zeichen auf einen Blick",[414,42959,42960],{},"Dateityp: - d l b c p s",[414,42962,42963,42964,42966,42967,42969,42970,42972],{},"User: r w x s S",[7135,42965],{},"\nGroup: r w x s S",[7135,42968],{},"\nOthers: r w x t T",[7135,42971],{},"\n(- für jeweils \"nicht gesetzt\")",[470,42974,42976],{"id":42975},"praxisbeispiele-mit-ls-l","Praxisbeispiele mit ls -l",[765,42978,42979,42992],{},[768,42980,42981],{},[771,42982,42983,42988],{},[774,42984,42985],{},[42,42986,42987],{},"Ausgabe von ls -l",[774,42989,42990],{},[42,42991,6733],{},[787,42993,42994,43002,43010,43018,43026,43033,43040,43048,43055],{},[771,42995,42996,42999],{},[792,42997,42998],{},"-rw-r--r--",[792,43000,43001],{},"Normale Datei: User lesen+schreiben, Group+Others nur lesen",[771,43003,43004,43007],{},[792,43005,43006],{},"-rwxr-xr-x",[792,43008,43009],{},"Programm: User alle Rechte, Group+Others lesen+ausführen",[771,43011,43012,43015],{},[792,43013,43014],{},"-rwx------",[792,43016,43017],{},"Private Datei: nur Owner alle Rechte",[771,43019,43020,43023],{},[792,43021,43022],{},"drwxr-xr-x",[792,43024,43025],{},"Verzeichnis: Standard (755)",[771,43027,43028,43030],{},[792,43029,15448],{},[792,43031,43032],{},"\u002Ftmp: Alle Rechte + Sticky Bit (1777)",[771,43034,43035,43037],{},[792,43036,14995],{},[792,43038,43039],{},"SetUID gesetzt (z.B. \u002Fusr\u002Fbin\u002Fpasswd)",[771,43041,43042,43045],{},[792,43043,43044],{},"drwxr-sr-x",[792,43046,43047],{},"SetGID auf Verzeichnis (Gruppe wird vererbt)",[771,43049,43050,43052],{},[792,43051,15008],{},[792,43053,43054],{},"SetUID, aber kein execute-Bit → sinnlos\u002FFehler!",[771,43056,43057,43060],{},[792,43058,43059],{},"lrwxrwxrwx",[792,43061,43062],{},"Symbolischer Link (Rechte immer 777)",[470,43064,43066],{"id":43065},"oktalwerte-der-spezialbits","Oktalwerte der Spezialbits",[765,43068,43069,43085],{},[768,43070,43071],{},[771,43072,43073,43077,43081],{},[774,43074,43075],{},[42,43076,14167],{},[774,43078,43079],{},[42,43080,6733],{},[774,43082,43083],{},[42,43084,763],{},[787,43086,43087,43097,43107,43117,43128,43139],{},[771,43088,43089,43092,43094],{},[792,43090,43091],{},"4xxx",[792,43093,42385],{},[792,43095,43096],{},"chmod 4755 datei → -rwsr-xr-x",[771,43098,43099,43102,43104],{},[792,43100,43101],{},"2xxx",[792,43103,42398],{},[792,43105,43106],{},"chmod 2755 verz\u002F → drwxr-sr-x",[771,43108,43109,43112,43114],{},[792,43110,43111],{},"1xxx",[792,43113,14944],{},[792,43115,43116],{},"chmod 1777 \u002Ftmp → drwxrwxrwt",[771,43118,43119,43122,43125],{},[792,43120,43121],{},"6xxx",[792,43123,43124],{},"SetUID + SetGID",[792,43126,43127],{},"chmod 6755 datei",[771,43129,43130,43133,43136],{},[792,43131,43132],{},"7xxx",[792,43134,43135],{},"Alle drei",[792,43137,43138],{},"chmod 7777 datei (sehr selten)",[771,43140,43141,43144,43147],{},[792,43142,43143],{},"0xxx",[792,43145,43146],{},"Keine Spezialbits",[792,43148,43149],{},"chmod 0755 datei (normales 755)",[470,43151,43153],{"id":43152},"spezialberechtigungen-prüfen","Spezialberechtigungen prüfen:",[11,43155,43157],{"id":43156},"alle-setuid-dateien-auf-dem-system-finden","Alle SetUID-Dateien auf dem System finden:",[4647,43159,43161],{"className":4649,"code":43160,"language":4651,"meta":269,"style":269},"find \u002F -perm -4000 -type f 2>\u002Fdev\u002Fnull\n\n# Alle SetGID-Dateien finden:\n\nfind \u002F -perm -2000 -type f 2>\u002Fdev\u002Fnull\n\n# Alle Verzeichnisse mit Sticky Bit:\n\nfind \u002F -perm -1000 -type d 2>\u002Fdev\u002Fnull\n\n# Detailansicht mit stat:\n\nstat \u002Ftmp\n\nstat \u002Fusr\u002Fbin\u002Fpasswd\n\n",[4653,43162,43163,43181,43185,43190,43194,43212,43216,43221,43225,43243,43247,43252,43256,43262,43266],{"__ignoreMap":269},[4173,43164,43165,43167,43169,43171,43173,43175,43177,43179],{"class":4657,"line":4658},[4173,43166,9459],{"class":4661},[4173,43168,15091],{"class":4669},[4173,43170,15098],{"class":4665},[4173,43172,15101],{"class":4665},[4173,43174,9497],{"class":4665},[4173,43176,10269],{"class":4669},[4173,43178,15107],{"class":4788},[4173,43180,15110],{"class":4669},[4173,43182,43183],{"class":4657,"line":270},[4173,43184,4761],{"emptyLinePlaceholder":4760},[4173,43186,43187],{"class":4657,"line":1263},[4173,43188,43189],{"class":4766},"# Alle SetGID-Dateien finden:\n",[4173,43191,43192],{"class":4657,"line":4770},[4173,43193,4761],{"emptyLinePlaceholder":4760},[4173,43195,43196,43198,43200,43202,43204,43206,43208,43210],{"class":4657,"line":4775},[4173,43197,9459],{"class":4661},[4173,43199,15091],{"class":4669},[4173,43201,15098],{"class":4665},[4173,43203,15317],{"class":4665},[4173,43205,9497],{"class":4665},[4173,43207,10269],{"class":4669},[4173,43209,15107],{"class":4788},[4173,43211,15110],{"class":4669},[4173,43213,43214],{"class":4657,"line":6320},[4173,43215,4761],{"emptyLinePlaceholder":4760},[4173,43217,43218],{"class":4657,"line":6325},[4173,43219,43220],{"class":4766},"# Alle Verzeichnisse mit Sticky Bit:\n",[4173,43222,43223],{"class":4657,"line":6343},[4173,43224,4761],{"emptyLinePlaceholder":4760},[4173,43226,43227,43229,43231,43233,43235,43237,43239,43241],{"class":4657,"line":6348},[4173,43228,9459],{"class":4661},[4173,43230,15091],{"class":4669},[4173,43232,15098],{"class":4665},[4173,43234,15561],{"class":4665},[4173,43236,9497],{"class":4665},[4173,43238,10309],{"class":4669},[4173,43240,15107],{"class":4788},[4173,43242,15110],{"class":4669},[4173,43244,43245],{"class":4657,"line":6457},[4173,43246,4761],{"emptyLinePlaceholder":4760},[4173,43248,43249],{"class":4657,"line":6462},[4173,43250,43251],{"class":4766},"# Detailansicht mit stat:\n",[4173,43253,43254],{"class":4657,"line":6468},[4173,43255,4761],{"emptyLinePlaceholder":4760},[4173,43257,43258,43260],{"class":4657,"line":6473},[4173,43259,10387],{"class":4665},[4173,43261,15533],{"class":4669},[4173,43263,43264],{"class":4657,"line":6479},[4173,43265,4761],{"emptyLinePlaceholder":4760},[4173,43267,43268,43270],{"class":4657,"line":6503},[4173,43269,10387],{"class":4665},[4173,43271,15154],{"class":4669},[16,43273,43275],{"id":43274},"umask-standard-berechtigungen","umask – Standard-Berechtigungen",[414,43277,43278,43280,43281,43284,43285,43288],{},[42,43279,13185],{}," (user file creation mask) legt fest, welche Rechte beim Erstellen neuer Dateien und Verzeichnisse ",[42,43282,43283],{},"weggenommen"," werden. Es ist eine ",[42,43286,43287],{},"Maske",", keine direkte Rechtevergabe.",[470,43290,43292],{"id":43291},"berechnung","Berechnung",[414,43294,43295],{},"Neue Rechte = Maximalrechte - umask",[765,43297,43298,43312],{},[768,43299,43300],{},[771,43301,43302,43304,43308],{},[774,43303],{},[774,43305,43306],{},[42,43307,35318],{},[774,43309,43310],{},[42,43311,9626],{},[787,43313,43314,43330,43344],{},[771,43315,43316,43319,43325],{},[792,43317,43318],{},"Maximalrechte",[792,43320,43321,43324],{},[42,43322,43323],{},"666"," (rw-rw-rw-)",[792,43326,43327,43329],{},[42,43328,14619],{}," (rwxrwxrwx)",[771,43331,43332,43335,43340],{},[792,43333,43334],{},"umask (Standard)",[792,43336,43337],{},[42,43338,43339],{},"022",[792,43341,43342],{},[42,43343,43339],{},[771,43345,43346,43351,43356],{},[792,43347,43348],{},[42,43349,43350],{},"Ergebnis",[792,43352,43353,43355],{},[42,43354,14564],{}," (rw-r--r--)",[792,43357,43358,43360],{},[42,43359,14575],{}," (rwxr-xr-x)",[414,43362,43363,43368,43370,6100,43373,6100,43378,6100,43386,6100,43390,6100,43393,43397],{},[406,43364,43365],{},[42,43366,43367],{},"Warum haben Dateien maximal 666?",[7135,43369],{},[406,43371,43372],{},"Linux vergibt",[406,43374,43375],{},[42,43376,43377],{},"niemals",[406,43379,43380,43381,43385],{},"automatisch das execute-Bit (",[42,43382,43383],{},[42,43384,14220],{},") auf neue Dateien, da eine normale Datei kein Programm ist. Verzeichnisse brauchen",[406,43387,43388],{},[42,43389,14220],{},[406,43391,43392],{},"um betreten werden zu können, daher Maximal",[406,43394,43395],{},[42,43396,14619],{},"*.*",[470,43399,43401],{"id":43400},"wichtiger-hinweis-zur-berechnung","Wichtiger Hinweis zur Berechnung",[414,43403,43404,43405,43408],{},"Die Subtraktion ist ",[42,43406,43407],{},"bitweise"," (nicht arithmetisch):",[414,43410,43411,43412],{},"Beispiel: ",[42,43413,43414],{},"umask 027",[414,43416,43417],{},"Datei: 666 (rw-rw-rw-)",[4647,43419,43421],{"className":4649,"code":43420,"language":4651,"meta":269,"style":269},"umask: 027 (----w-rwx) → wird weggenommen\n",[4653,43422,43423],{"__ignoreMap":269},[4173,43424,43425,43427,43429,43432],{"class":4657,"line":4658},[4173,43426,13185],{"class":4665},[4173,43428,8158],{"class":4669},[4173,43430,43431],{"class":4665}," 027",[4173,43433,43434],{"class":4784}," (----w-rwx) → wird weggenommen\n",[414,43436,43437],{},"Ergebnis: 640 (rw-r-----)",[414,43439,43440],{},"Verzeichnis:",[414,43442,43443],{},"Verzeichnis: 777 (rwxrwxrwx)",[4647,43445,43446],{"className":4649,"code":43420,"language":4651,"meta":269,"style":269},[4653,43447,43448],{"__ignoreMap":269},[4173,43449,43450,43452,43454,43456],{"class":4657,"line":4658},[4173,43451,13185],{"class":4665},[4173,43453,8158],{"class":4669},[4173,43455,43431],{"class":4665},[4173,43457,43434],{"class":4784},[414,43459,43460],{},"Ergebnis: 750 (rwxr-x---)",[470,43462,43464],{"id":43463},"alle-wichtigen-umask-werte","Alle wichtigen umask-Werte",[765,43466,43467,43487],{},[768,43468,43469],{},[771,43470,43471,43475,43479,43483],{},[774,43472,43473],{},[42,43474,13185],{},[774,43476,43477],{},[42,43478,35318],{},[774,43480,43481],{},[42,43482,9626],{},[774,43484,43485],{},[42,43486,854],{},[787,43488,43489,43502,43516,43529,43543,43557],{},[771,43490,43491,43493,43496,43499],{},[792,43492,14360],{},[792,43494,43495],{},"666 (rw-rw-rw-)",[792,43497,43498],{},"777 (rwxrwxrwx)",[792,43500,43501],{},"Alle Rechte (unsicher!)",[771,43503,43504,43507,43510,43513],{},[792,43505,43506],{},"002",[792,43508,43509],{},"664 (rw-rw-r--)",[792,43511,43512],{},"775 (rwxrwxr-x)",[792,43514,43515],{},"Gruppenarbeit",[771,43517,43518,43520,43523,43526],{},[792,43519,43339],{},[792,43521,43522],{},"644 (rw-r--r--)",[792,43524,43525],{},"755 (rwxr-xr-x)",[792,43527,43528],{},"Standard für normale Benutzer",[771,43530,43531,43534,43537,43540],{},[792,43532,43533],{},"027",[792,43535,43536],{},"640 (rw-r-----)",[792,43538,43539],{},"750 (rwxr-x---)",[792,43541,43542],{},"Erhöhte Sicherheit (Other kein Zugriff)",[771,43544,43545,43548,43551,43554],{},[792,43546,43547],{},"077",[792,43549,43550],{},"600 (rw-------)",[792,43552,43553],{},"700 (rwx------)",[792,43555,43556],{},"Private Dateien (nur Eigentümer)",[771,43558,43559,43562,43565,43567],{},[792,43560,43561],{},"177",[792,43563,43564],{},"400 (r--------)",[792,43566,43550],{},[792,43568,43569],{},"Schreibgeschützte private Dateien",[470,43571,43573],{"id":43572},"befehle","Befehle",[4647,43575,43577],{"className":4649,"code":43576,"language":4651,"meta":269,"style":269},"umask # Aktuelle umask anzeigen (oktal)\numask -S # Symbolische Anzeige (z.B. u=rwx,g=rx,o=rx)\numask 022 # umask für aktuelle Shell-Sitzung setzen\numask 027 # Strengere umask setzen\n\n",[4653,43578,43579,43586,43595,43605],{"__ignoreMap":269},[4173,43580,43581,43583],{"class":4657,"line":4658},[4173,43582,13185],{"class":4665},[4173,43584,43585],{"class":4766}," # Aktuelle umask anzeigen (oktal)\n",[4173,43587,43588,43590,43592],{"class":4657,"line":270},[4173,43589,13185],{"class":4665},[4173,43591,25471],{"class":4665},[4173,43593,43594],{"class":4766}," # Symbolische Anzeige (z.B. u=rwx,g=rx,o=rx)\n",[4173,43596,43597,43599,43602],{"class":4657,"line":1263},[4173,43598,13185],{"class":4665},[4173,43600,43601],{"class":4665}," 022",[4173,43603,43604],{"class":4766}," # umask für aktuelle Shell-Sitzung setzen\n",[4173,43606,43607,43609,43611],{"class":4657,"line":4770},[4173,43608,13185],{"class":4665},[4173,43610,43431],{"class":4665},[4173,43612,43613],{"class":4766}," # Strengere umask setzen\n",[470,43615,43617],{"id":43616},"umask-dauerhaft-setzen","umask dauerhaft setzen",[765,43619,43620,43633],{},[768,43621,43622],{},[771,43623,43624,43628],{},[774,43625,43626],{},[42,43627,35318],{},[774,43629,43630],{},[42,43631,43632],{},"Gültig für",[787,43634,43635,43642,43649,43656],{},[771,43636,43637,43639],{},[792,43638,13655],{},[792,43640,43641],{},"Normaler Benutzer (interaktive Shell)",[771,43643,43644,43646],{},[792,43645,13663],{},[792,43647,43648],{},"Normaler Benutzer (Login-Shell)",[771,43650,43651,43653],{},[792,43652,13647],{},[792,43654,43655],{},"Alle Benutzer (System-weit)",[771,43657,43658,43661],{},[792,43659,43660],{},"\u002Fetc\u002Flogin.defs",[792,43662,43663],{},"System-Standard (UMASK-Eintrag)",[11,43665,43667],{"id":43666},"in-bashrc-eintragen","In ~\u002F.bashrc eintragen:",[414,43669,43670],{},"umask 022",[470,43672,43674],{"id":43673},"praxisbeispiel-warum-umask-wichtig-ist","Praxisbeispiel: Warum umask wichtig ist",[11,43676,43678],{"id":43677},"ohne-umask-022-standard","Ohne umask 022 (Standard):",[4647,43680,43682],{"className":4649,"code":43681,"language":4651,"meta":269,"style":269},"touch neue_datei.txt → -rw-r--r-- (644)\n\nmkdir neuer_ordner\u002F → drwxr-xr-x (755)\n\n# Mit umask 077 (privat):\n\numask 077\n\ntouch geheime_datei.txt → -rw------- (600)\n\nmkdir privater_ordner\u002F → drwx------ (700)\n\n",[4653,43683,43684,43700,43704,43719,43723,43728,43732,43739,43743,43758,43762],{"__ignoreMap":269},[4173,43685,43686,43688,43691,43694,43697],{"class":4657,"line":4658},[4173,43687,11437],{"class":4661},[4173,43689,43690],{"class":4669}," neue_datei.txt",[4173,43692,43693],{"class":4669}," →",[4173,43695,43696],{"class":4665}," -rw-r--r--",[4173,43698,43699],{"class":4784}," (644)\n",[4173,43701,43702],{"class":4657,"line":270},[4173,43703,4761],{"emptyLinePlaceholder":4760},[4173,43705,43706,43708,43711,43713,43716],{"class":4657,"line":1263},[4173,43707,6940],{"class":4661},[4173,43709,43710],{"class":4669}," neuer_ordner\u002F",[4173,43712,43693],{"class":4669},[4173,43714,43715],{"class":4669}," drwxr-xr-x",[4173,43717,43718],{"class":4784}," (755)\n",[4173,43720,43721],{"class":4657,"line":4770},[4173,43722,4761],{"emptyLinePlaceholder":4760},[4173,43724,43725],{"class":4657,"line":4775},[4173,43726,43727],{"class":4766},"# Mit umask 077 (privat):\n",[4173,43729,43730],{"class":4657,"line":6320},[4173,43731,4761],{"emptyLinePlaceholder":4760},[4173,43733,43734,43736],{"class":4657,"line":6325},[4173,43735,13185],{"class":4665},[4173,43737,43738],{"class":4665}," 077\n",[4173,43740,43741],{"class":4657,"line":6343},[4173,43742,4761],{"emptyLinePlaceholder":4760},[4173,43744,43745,43747,43750,43752,43755],{"class":4657,"line":6348},[4173,43746,11437],{"class":4661},[4173,43748,43749],{"class":4669}," geheime_datei.txt",[4173,43751,43693],{"class":4669},[4173,43753,43754],{"class":4665}," -rw-------",[4173,43756,43757],{"class":4784}," (600)\n",[4173,43759,43760],{"class":4657,"line":6457},[4173,43761,4761],{"emptyLinePlaceholder":4760},[4173,43763,43764,43766,43769,43771,43774],{"class":4657,"line":6462},[4173,43765,6940],{"class":4661},[4173,43767,43768],{"class":4669}," privater_ordner\u002F",[4173,43770,43693],{"class":4669},[4173,43772,43773],{"class":4669}," drwx------",[4173,43775,43776],{"class":4784}," (700)\n",[11,43778,5909],{"id":43779},"umgebungsvariablen",[16,43781,43783],{"id":43782},"wichtige-standard-variablen","Wichtige Standard-Variablen",[765,43785,43786,43798],{},[768,43787,43788],{},[771,43789,43790,43794],{},[774,43791,43792],{},[42,43793,9876],{},[774,43795,43796],{},[42,43797,5800],{},[787,43799,43800,43807,43815,43821,43829,43837,43844],{},[771,43801,43802,43804],{},[792,43803,11962],{},[792,43805,43806],{},"Home-Verzeichnis",[771,43808,43809,43812],{},[792,43810,43811],{},"$PATH",[792,43813,43814],{},"Suchpfade für Programme",[771,43816,43817,43819],{},[792,43818,11946],{},[792,43820,36313],{},[771,43822,43823,43826],{},[792,43824,43825],{},"$SHELL",[792,43827,43828],{},"Aktuelle Shell",[771,43830,43831,43834],{},[792,43832,43833],{},"$PWD",[792,43835,43836],{},"Aktuelles Verzeichnis",[771,43838,43839,43841],{},[792,43840,6153],{},[792,43842,43843],{},"Exit-Code des letzten Befehls",[771,43845,43846,43848],{},[792,43847,6159],{},[792,43849,43850],{},"PID des aktuellen Prozesses",[16,43852,43854],{"id":43853},"variablen-anzeigensetzen","Variablen anzeigen\u002Fsetzen",[4647,43856,43858],{"className":4649,"code":43857,"language":4651,"meta":269,"style":269},"echo $HOME # Variable ausgeben\n\nenv # Alle Umgebungsvariablen anzeigen\n\nprintenv # Alternative\n\nset # Alle Variablen Funktionen\n\n# Variable setzen (nur lokal\u002Faktuelle Shell)\n\nmyvar=\"Hallo\"\n\n# Variable exportieren (für Kindprozesse)\n\nexport myvar=\"Hallo\"\n\n# Variable löschen\n\nunset myvar\n\n# PATH erweitern\n\nexport PATH=\"\u002Fhome\u002Fuser\u002Fbin:$PATH\"\n\n",[4653,43859,43860,43870,43874,43882,43886,43894,43898,43905,43909,43914,43918,43928,43932,43937,43941,43953,43957,43962,43966,43974,43978,43983,43987],{"__ignoreMap":269},[4173,43861,43862,43864,43867],{"class":4657,"line":4658},[4173,43863,6309],{"class":4665},[4173,43865,43866],{"class":4784}," $HOME ",[4173,43868,43869],{"class":4766},"# Variable ausgeben\n",[4173,43871,43872],{"class":4657,"line":270},[4173,43873,4761],{"emptyLinePlaceholder":4760},[4173,43875,43876,43879],{"class":4657,"line":1263},[4173,43877,43878],{"class":4661},"env",[4173,43880,43881],{"class":4766}," # Alle Umgebungsvariablen anzeigen\n",[4173,43883,43884],{"class":4657,"line":4770},[4173,43885,4761],{"emptyLinePlaceholder":4760},[4173,43887,43888,43891],{"class":4657,"line":4775},[4173,43889,43890],{"class":4661},"printenv",[4173,43892,43893],{"class":4766}," # Alternative\n",[4173,43895,43896],{"class":4657,"line":6320},[4173,43897,4761],{"emptyLinePlaceholder":4760},[4173,43899,43900,43902],{"class":4657,"line":6325},[4173,43901,11164],{"class":4665},[4173,43903,43904],{"class":4766}," # Alle Variablen Funktionen\n",[4173,43906,43907],{"class":4657,"line":6343},[4173,43908,4761],{"emptyLinePlaceholder":4760},[4173,43910,43911],{"class":4657,"line":6348},[4173,43912,43913],{"class":4766},"# Variable setzen (nur lokal\u002Faktuelle Shell)\n",[4173,43915,43916],{"class":4657,"line":6457},[4173,43917,4761],{"emptyLinePlaceholder":4760},[4173,43919,43920,43923,43925],{"class":4657,"line":6462},[4173,43921,43922],{"class":4784},"myvar",[4173,43924,6387],{"class":4788},[4173,43926,43927],{"class":4669},"\"Hallo\"\n",[4173,43929,43930],{"class":4657,"line":6468},[4173,43931,4761],{"emptyLinePlaceholder":4760},[4173,43933,43934],{"class":4657,"line":6473},[4173,43935,43936],{"class":4766},"# Variable exportieren (für Kindprozesse)\n",[4173,43938,43939],{"class":4657,"line":6479},[4173,43940,4761],{"emptyLinePlaceholder":4760},[4173,43942,43943,43946,43949,43951],{"class":4657,"line":6503},[4173,43944,43945],{"class":4788},"export",[4173,43947,43948],{"class":4784}," myvar",[4173,43950,6387],{"class":4788},[4173,43952,43927],{"class":4669},[4173,43954,43955],{"class":4657,"line":6516},[4173,43956,4761],{"emptyLinePlaceholder":4760},[4173,43958,43959],{"class":4657,"line":6971},[4173,43960,43961],{"class":4766},"# Variable löschen\n",[4173,43963,43964],{"class":4657,"line":10649},[4173,43965,4761],{"emptyLinePlaceholder":4760},[4173,43967,43968,43971],{"class":4657,"line":10654},[4173,43969,43970],{"class":4665},"unset",[4173,43972,43973],{"class":4669}," myvar\n",[4173,43975,43976],{"class":4657,"line":10659},[4173,43977,4761],{"emptyLinePlaceholder":4760},[4173,43979,43980],{"class":4657,"line":10664},[4173,43981,43982],{"class":4766},"# PATH erweitern\n",[4173,43984,43985],{"class":4657,"line":10676},[4173,43986,4761],{"emptyLinePlaceholder":4760},[4173,43988,43989,43991,43994,43996,43999,44001],{"class":4657,"line":10681},[4173,43990,43945],{"class":4788},[4173,43992,43993],{"class":4784}," PATH",[4173,43995,6387],{"class":4788},[4173,43997,43998],{"class":4669},"\"\u002Fhome\u002Fuser\u002Fbin:",[4173,44000,43811],{"class":4784},[4173,44002,6454],{"class":4669},[16,44004,44006],{"id":44005},"quoting-regeln","Quoting-Regeln",[765,44008,44009,44025],{},[768,44010,44011],{},[771,44012,44013,44017,44021],{},[774,44014,44015],{},[42,44016,6723],{},[774,44018,44019],{},[42,44020,5800],{},[774,44022,44023],{},[42,44024,763],{},[787,44026,44027,44038,44049],{},[771,44028,44029,44032,44035],{},[792,44030,44031],{},"Doppelte Anführungszeichen \"",[792,44033,44034],{},"Variablen werden aufgelöst",[792,44036,44037],{},"echo \"$HOME\" → \u002Fhome\u002Fuser",[771,44039,44040,44043,44046],{},[792,44041,44042],{},"Einfache Anführungszeichen '",[792,44044,44045],{},"Alles wird wörtlich genommen",[792,44047,44048],{},"echo '$HOME' → $HOME",[771,44050,44051,44054,44057],{},[792,44052,44053],{},"Backslash \\",[792,44055,44056],{},"Nächstes Zeichen literal",[792,44058,44059],{},"echo $HOME → $HOME",[11,44061,44063],{"id":44062},"prozessmanagement-und-systemüberwachung","Prozessmanagement und Systemüberwachung",[16,44065,44067],{"id":44066},"prozess-grundlagen","Prozess-Grundlagen",[21,44069,44070,44076,44086],{},[24,44071,44072,44073,44075],{},"Ein ",[42,44074,1350],{}," = ein Programm in Ausführung",[24,44077,44078,44079,44081,44082,44085],{},"Jeder Prozess hat: ",[42,44080,37929],{}," (Prozessnummer), ",[42,44083,44084],{},"PPID"," (Elternprozess-ID), Benutzer",[24,44087,44088,44091],{},[42,44089,44090],{},"PID 1"," = erster Prozess (\u002Fsbin\u002Finit bzw. systemd)",[470,44093,44095],{"id":44094},"prozesszustände","Prozesszustände",[765,44097,44098,44115],{},[768,44099,44100],{},[771,44101,44102,44107,44111],{},[774,44103,44104],{},[42,44105,44106],{},"Status",[774,44108,44109],{},[42,44110,14162],{},[774,44112,44113],{},[42,44114,5800],{},[787,44116,44117,44128,44138,44148,44158],{},[771,44118,44119,44122,44125],{},[792,44120,44121],{},"Running",[792,44123,44124],{},"R",[792,44126,44127],{},"Prozess läuft\u002Fkann Rechenzeit erhalten",[771,44129,44130,44133,44135],{},[792,44131,44132],{},"Sleeping",[792,44134,15000],{},[792,44136,44137],{},"Wartet auf Ereignis",[771,44139,44140,44143,44145],{},[792,44141,44142],{},"Uninterruptible Sleep",[792,44144,20555],{},[792,44146,44147],{},"Wartet, kann nicht gestoppt werden",[771,44149,44150,44153,44155],{},[792,44151,44152],{},"Stopped",[792,44154,15453],{},[792,44156,44157],{},"Angehalten, kann fortgesetzt werden",[771,44159,44160,44163,44166],{},[792,44161,44162],{},"Zombie",[792,44164,44165],{},"Z",[792,44167,44168],{},"Beendet, Rückgabewert nicht abgeholt",[16,44170,44172],{"id":44171},"befehle-zur-prozessverwaltung","Befehle zur Prozessverwaltung",[765,44174,44175,44187],{},[768,44176,44177],{},[771,44178,44179,44183],{},[774,44180,44181],{},[42,44182,8243],{},[774,44184,44185],{},[42,44186,5800],{},[787,44188,44189,44196,44204,44212,44220,44228,44236,44243,44251,44259,44267,44275],{},[771,44190,44191,44193],{},[792,44192,8922],{},[792,44194,44195],{},"Prozesse des aktuellen Terminals",[771,44197,44198,44201],{},[792,44199,44200],{},"ps aux",[792,44202,44203],{},"Alle Prozesse anzeigen",[771,44205,44206,44209],{},[792,44207,44208],{},"ps -ef",[792,44210,44211],{},"Alle Prozesse mit PPID",[771,44213,44214,44217],{},[792,44215,44216],{},"ps -l",[792,44218,44219],{},"Langes Listing (mit Nice-Wert)",[771,44221,44222,44225],{},[792,44223,44224],{},"pstree",[792,44226,44227],{},"Baumstruktur",[771,44229,44230,44233],{},[792,44231,44232],{},"pstree -p",[792,44234,44235],{},"Baumstruktur mit PIDs",[771,44237,44238,44240],{},[792,44239,4443],{},[792,44241,44242],{},"Dynamische Prozesstabelle",[771,44244,44245,44248],{},[792,44246,44247],{},"htop",[792,44249,44250],{},"Farbige Prozesstabelle",[771,44252,44253,44256],{},[792,44254,44255],{},"kill PID",[792,44257,44258],{},"Prozess beenden (SIGTERM)",[771,44260,44261,44264],{},[792,44262,44263],{},"kill -9 PID",[792,44265,44266],{},"Prozess erzwungen beenden (SIGKILL)",[771,44268,44269,44272],{},[792,44270,44271],{},"kill %jobnr",[792,44273,44274],{},"Job beenden",[771,44276,44277,44280],{},[792,44278,44279],{},"killall programmname",[792,44281,44282],{},"Alle Prozesse mit dem Namen beenden",[16,44284,44286],{"id":44285},"vorder-und-hintergrundprozesse","Vorder- und Hintergrundprozesse",[765,44288,44289,44301],{},[768,44290,44291],{},[771,44292,44293,44297],{},[774,44294,44295],{},[42,44296,8243],{},[774,44298,44299],{},[42,44300,5800],{},[787,44302,44303,44311,44319,44327,44335,44343],{},[771,44304,44305,44308],{},[792,44306,44307],{},"kommando &",[792,44309,44310],{},"Im Hintergrund ausführen",[771,44312,44313,44316],{},[792,44314,44315],{},"Strg+Z",[792,44317,44318],{},"Aktuellen Prozess in Hintergrund + stoppen",[771,44320,44321,44324],{},[792,44322,44323],{},"bg",[792,44325,44326],{},"Gestoppten Prozess im Hintergrund weiterlaufen lassen",[771,44328,44329,44332],{},[792,44330,44331],{},"fg",[792,44333,44334],{},"Prozess in den Vordergrund holen",[771,44336,44337,44340],{},[792,44338,44339],{},"fg %1",[792,44341,44342],{},"Job 1 in den Vordergrund",[771,44344,44345,44348],{},[792,44346,44347],{},"jobs",[792,44349,44350],{},"Hintergrundjobs anzeigen",[16,44352,44354],{"id":44353},"prozesspriorität-nice-wert","Prozesspriorität (nice-Wert)",[765,44356,44357,44374],{},[768,44358,44359],{},[771,44360,44361,44365,44369],{},[774,44362,44363],{},[42,44364,32778],{},[774,44366,44367],{},[42,44368,1863],{},[774,44370,44371],{},[42,44372,44373],{},"Wer darf?",[787,44375,44376,44387,44397,44407,44418],{},[771,44377,44378,44381,44384],{},[792,44379,44380],{},"-20",[792,44382,44383],{},"Höchste Priorität",[792,44385,44386],{},"Nur root",[771,44388,44389,44392,44395],{},[792,44390,44391],{},"-20 bis -1",[792,44393,44394],{},"Hoch",[792,44396,44386],{},[771,44398,44399,44401,44404],{},[792,44400,12749],{},[792,44402,44403],{},"Standard",[792,44405,44406],{},"Alle",[771,44408,44409,44412,44415],{},[792,44410,44411],{},"1 bis 19",[792,44413,44414],{},"Niedrig",[792,44416,44417],{},"Alle Benutzer",[771,44419,44420,44423,44426],{},[792,44421,44422],{},"19",[792,44424,44425],{},"Niedrigste Priorität",[792,44427,44406],{},[4647,44429,44431],{"className":4649,"code":44430,"language":4651,"meta":269,"style":269},"nice -n 10 kommando # Programm mit niedrigerer Priorität starten\n\nnice -n -10 kommando # Höhere Priorität (nur root)\n\nrenice 5 -p PID # Priorität eines laufenden Prozesses ändern\n\n",[4653,44432,44433,44448,44452,44466,44470],{"__ignoreMap":269},[4173,44434,44435,44438,44440,44442,44445],{"class":4657,"line":4658},[4173,44436,44437],{"class":4661},"nice",[4173,44439,9376],{"class":4665},[4173,44441,15571],{"class":4665},[4173,44443,44444],{"class":4669}," kommando",[4173,44446,44447],{"class":4766}," # Programm mit niedrigerer Priorität starten\n",[4173,44449,44450],{"class":4657,"line":270},[4173,44451,4761],{"emptyLinePlaceholder":4760},[4173,44453,44454,44456,44458,44461,44463],{"class":4657,"line":1263},[4173,44455,44437],{"class":4661},[4173,44457,9376],{"class":4665},[4173,44459,44460],{"class":4665}," -10",[4173,44462,44444],{"class":4669},[4173,44464,44465],{"class":4766}," # Höhere Priorität (nur root)\n",[4173,44467,44468],{"class":4657,"line":4770},[4173,44469,4761],{"emptyLinePlaceholder":4760},[4173,44471,44472,44475,44477,44479,44482],{"class":4657,"line":4775},[4173,44473,44474],{"class":4661},"renice",[4173,44476,16450],{"class":4665},[4173,44478,8206],{"class":4665},[4173,44480,44481],{"class":4669}," PID",[4173,44483,44484],{"class":4766}," # Priorität eines laufenden Prozesses ändern\n",[16,44486,44488],{"id":44487},"systemüberwachung","Systemüberwachung",[765,44490,44491,44503],{},[768,44492,44493],{},[771,44494,44495,44499],{},[774,44496,44497],{},[42,44498,8243],{},[774,44500,44501],{},[42,44502,5800],{},[787,44504,44505,44512,44519,44525,44531,44539],{},[771,44506,44507,44509],{},[792,44508,36348],{},[792,44510,44511],{},"Arbeitsspeicher-Auslastung",[771,44513,44514,44516],{},[792,44515,36340],{},[792,44517,44518],{},"Laufzeit und Lastdurchschnitt",[771,44520,44521,44523],{},[792,44522,36356],{},[792,44524,36359],{},[771,44526,44527,44529],{},[792,44528,36364],{},[792,44530,36367],{},[771,44532,44533,44536],{},[792,44534,44535],{},"top \u002F htop",[792,44537,44538],{},"CPU und RAM live",[771,44540,44541,44543],{},[792,44542,29362],{},[792,44544,44545],{},"Docker-Container-Ressourcen",[16,44547,44549],{"id":44548},"das-proc-verzeichnis","Das \u002Fproc-Verzeichnis",[414,44551,44552],{},"Jeder Prozess hat ein Verzeichnis \u002Fproc\u002FPID\u002F:",[414,44554,44555,44556,44558,44559,44561,44562,44564,44565,44567,44568,44570,44571,44573,44574,44576],{},"\u002Fproc\u002F",[7135,44557],{},"\n├── PID\u002F",[7135,44560],{},"\n│ ├── cmdline → Befehl",[7135,44563],{},"\n│ ├── cwd → Link zum Arbeitsverzeichnis",[7135,44566],{},"\n│ ├── exe → Link zum Programm",[7135,44569],{},"\n│ └── status → Statusinformationen",[7135,44572],{},"\n├── meminfo → Speicherinfo",[7135,44575],{},"\n└── cpuinfo → CPU-Info",[11,44578,44580],{"id":44579},"systemstart-init-systeme","Systemstart: Init-Systeme",[16,44582,44584],{"id":44583},"bootvorgang-überblick","Bootvorgang (Überblick)",[414,44586,44587,44588,44590,44591,44593],{},"BIOS\u002FUEFI → GRUB Bootloader → Kernel + initramfs laden",[7135,44589],{},"\n→ Root-Dateisystem mounten → init\u002Fsystemd starten",[7135,44592],{},"\n→ Systemdienste laden → Benutzeranmeldung",[470,44595,1681],{"id":1680},[318,44597,44598,44600,44602,44604,44606,44608,44610],{},[24,44599,12249],{},[24,44601,12252],{},[24,44603,12255],{},[24,44605,12258],{},[24,44607,12261],{},[24,44609,12264],{},[24,44611,12267],{},[16,44613,44615],{"id":44614},"sysinit-vs-systemd-vergleich","sysinit vs. systemd – Vergleich",[765,44617,44618,44637],{},[768,44619,44620],{},[771,44621,44622,44627,44632],{},[774,44623,44624],{},[42,44625,44626],{},"Eigenschaft",[774,44628,44629],{},[42,44630,44631],{},"sysvinit",[774,44633,44634],{},[42,44635,44636],{},"systemd",[787,44638,44639,44650,44659,44670,44680,44690,44700,44711,44721],{},[771,44640,44641,44644,44647],{},[792,44642,44643],{},"Konzept",[792,44645,44646],{},"Skriptbasiert, Runlevels",[792,44648,44649],{},"Units (services, sockets, timers, targets)",[771,44651,44652,44654,44657],{},[792,44653,44090],{},[792,44655,44656],{},"\u002Fsbin\u002Finit",[792,44658,44636],{},[771,44660,44661,44664,44667],{},[792,44662,44663],{},"Start",[792,44665,44666],{},"Seriell (nacheinander)",[792,44668,44669],{},"Parallel (schneller!)",[771,44671,44672,44674,44677],{},[792,44673,4283],{},[792,44675,44676],{},"\u002Fetc\u002Finit.d\u002F, \u002Fetc\u002Frc*.d\u002F",[792,44678,44679],{},"Unit-Dateien in \u002Fetc\u002Fsystemd\u002Fsystem\u002F",[771,44681,44682,44684,44687],{},[792,44683,12335],{},[792,44685,44686],{},"Wenig, manuell",[792,44688,44689],{},"Umfassend (Wants, Requires, After, Before)",[771,44691,44692,44694,44697],{},[792,44693,12348],{},[792,44695,44696],{},"Syslog-basiert",[792,44698,44699],{},"journald + journalctl",[771,44701,44702,44705,44708],{},[792,44703,44704],{},"Prozessverwaltung",[792,44706,44707],{},"Skripte nacheinander",[792,44709,44710],{},"Units, Restarts, cgroups",[771,44712,44713,44715,44718],{},[792,44714,2904],{},[792,44716,44717],{},"Wenig eingebettet",[792,44719,44720],{},"Sandbox: PrivateTmp, ProtectSystem, NoNewPrivileges",[771,44722,44723,44725,44728],{},[792,44724,44106],{},[792,44726,44727],{},"Veraltet",[792,44729,44730],{},"Standard in modernen Distros",[11,44732,44734],{"id":44733},"systemd-dienstverwaltung","systemd-Dienstverwaltung",[16,44736,44738],{"id":44737},"systemctl-dienste-verwalten","systemctl – Dienste verwalten",[765,44740,44741,44753],{},[768,44742,44743],{},[771,44744,44745,44749],{},[774,44746,44747],{},[42,44748,8243],{},[774,44750,44751],{},[42,44752,5800],{},[787,44754,44755,44763,44771,44779,44787,44795,44803,44811,44819,44827,44835,44843,44851],{},[771,44756,44757,44760],{},[792,44758,44759],{},"systemctl start dienst",[792,44761,44762],{},"Dienst starten",[771,44764,44765,44768],{},[792,44766,44767],{},"systemctl stop dienst",[792,44769,44770],{},"Dienst stoppen",[771,44772,44773,44776],{},[792,44774,44775],{},"systemctl restart dienst",[792,44777,44778],{},"Dienst neustarten",[771,44780,44781,44784],{},[792,44782,44783],{},"systemctl reload dienst",[792,44785,44786],{},"Konfiguration neu laden (ohne Neustart)",[771,44788,44789,44792],{},[792,44790,44791],{},"systemctl status dienst",[792,44793,44794],{},"Status anzeigen",[771,44796,44797,44800],{},[792,44798,44799],{},"systemctl enable dienst",[792,44801,44802],{},"Beim Boot automatisch starten",[771,44804,44805,44808],{},[792,44806,44807],{},"systemctl disable dienst",[792,44809,44810],{},"Autostart deaktivieren",[771,44812,44813,44816],{},[792,44814,44815],{},"systemctl is-enabled dienst",[792,44817,44818],{},"Prüfen ob Autostart aktiv",[771,44820,44821,44824],{},[792,44822,44823],{},"systemctl is-active dienst",[792,44825,44826],{},"Prüfen ob Dienst läuft",[771,44828,44829,44832],{},[792,44830,44831],{},"systemctl list-units --type service",[792,44833,44834],{},"Alle laufenden Dienste",[771,44836,44837,44840],{},[792,44838,44839],{},"systemctl list-unit-files --type=service",[792,44841,44842],{},"Alle Dienste (auch inaktive)",[771,44844,44845,44848],{},[792,44846,44847],{},"systemctl --failed",[792,44849,44850],{},"Fehlgeschlagene Dienste",[771,44852,44853,44856],{},[792,44854,44855],{},"systemctl daemon-reload",[792,44857,44858],{},"Unit-Dateien neu einlesen",[16,44860,44862],{"id":44861},"journalctl-logging","journalctl – Logging",[765,44864,44865,44877],{},[768,44866,44867],{},[771,44868,44869,44873],{},[774,44870,44871],{},[42,44872,8243],{},[774,44874,44875],{},[42,44876,5800],{},[787,44878,44879,44887,44895,44903,44911,44919,44927],{},[771,44880,44881,44884],{},[792,44882,44883],{},"journalctl",[792,44885,44886],{},"Alle Logs anzeigen",[771,44888,44889,44892],{},[792,44890,44891],{},"journalctl -u nginx",[792,44893,44894],{},"Logs eines bestimmten Dienstes",[771,44896,44897,44900],{},[792,44898,44899],{},"journalctl -b",[792,44901,44902],{},"Logs seit letztem Boot",[771,44904,44905,44908],{},[792,44906,44907],{},"journalctl -f",[792,44909,44910],{},"Live-Logs (wie tail -f)",[771,44912,44913,44916],{},[792,44914,44915],{},"journalctl -p err",[792,44917,44918],{},"Nur Fehler anzeigen",[771,44920,44921,44924],{},[792,44922,44923],{},"journalctl --since \"1 hour ago\"",[792,44925,44926],{},"Zeitgefiltert",[771,44928,44929,44932],{},[792,44930,44931],{},"journalctl -xe",[792,44933,44934],{},"Letzte Fehler mit Erklärung",[16,44936,44938],{"id":44937},"systemd-unit-dateien","systemd Unit-Dateien",[470,44940,44942],{"id":44941},"speicherorte","Speicherorte:",[21,44944,44945,44948],{},[24,44946,44947],{},"\u002Fusr\u002Flib\u002Fsystemd\u002Fsystem\u002F – Standard-Units (vom Paketmanager)",[24,44949,44950],{},"\u002Fetc\u002Fsystemd\u002Fsystem\u002F – Eigene\u002Füberschriebene Units (höhere Priorität)",[470,44952,44954],{"id":44953},"aufbau-einer-service-unit","Aufbau einer Service-Unit:",[414,44956,44957],{},[4173,44958,44959],{},"Unit",[4647,44961,44963],{"className":4649,"code":44962,"language":4651,"meta":269,"style":269},"Description=Mein Beispielservice\n\nRequires=network.target # Harte Abhängigkeit\n\nAfter=network.target # Startreihenfolge\n\nWants=redis.service # Weiche Abhängigkeit\n\n",[4653,44964,44965,44978,44982,44995,44999,45011,45015],{"__ignoreMap":269},[4173,44966,44967,44970,44972,44975],{"class":4657,"line":4658},[4173,44968,44969],{"class":4784},"Description",[4173,44971,6387],{"class":4788},[4173,44973,44974],{"class":4669},"Mein",[4173,44976,44977],{"class":4661}," Beispielservice\n",[4173,44979,44980],{"class":4657,"line":270},[4173,44981,4761],{"emptyLinePlaceholder":4760},[4173,44983,44984,44987,44989,44992],{"class":4657,"line":1263},[4173,44985,44986],{"class":4784},"Requires",[4173,44988,6387],{"class":4788},[4173,44990,44991],{"class":4669},"network.target",[4173,44993,44994],{"class":4766}," # Harte Abhängigkeit\n",[4173,44996,44997],{"class":4657,"line":4770},[4173,44998,4761],{"emptyLinePlaceholder":4760},[4173,45000,45001,45004,45006,45008],{"class":4657,"line":4775},[4173,45002,45003],{"class":4784},"After",[4173,45005,6387],{"class":4788},[4173,45007,44991],{"class":4669},[4173,45009,45010],{"class":4766}," # Startreihenfolge\n",[4173,45012,45013],{"class":4657,"line":6320},[4173,45014,4761],{"emptyLinePlaceholder":4760},[4173,45016,45017,45020,45022,45025],{"class":4657,"line":6325},[4173,45018,45019],{"class":4784},"Wants",[4173,45021,6387],{"class":4788},[4173,45023,45024],{"class":4669},"redis.service",[4173,45026,45027],{"class":4766}," # Weiche Abhängigkeit\n",[414,45029,45030],{},[4173,45031,45032],{},"Service",[4647,45034,45036],{"className":4649,"code":45035,"language":4651,"meta":269,"style":269},"Type=simple\n\nExecStart=\u002Fusr\u002Fbin\u002Fpython3 \u002Fopt\u002Fapp\u002Fserver.py\n\nExecStop=\u002Fbin\u002Fkill -SIGTERM $MAINPID\n\nUser=nobody\n\nRestart=on-failure\n\nRestartSec=3\n\nStartLimitBurst=4\n\nStartLimitIntervalSec=30\n\nWorkingDirectory=\u002Fopt\u002Fapp\u002F\n\n# Sicherheitshärtung:\n\nPrivateTmp=true # Isoliertes \u002Ftmp\n\nProtectSystem=full # System read-only\n\nProtectHome=true # Kein Zugriff auf \u002Fhome\n\nNoNewPrivileges=true # Keine Privileg-Eskalation\n\n# Ressourcenlimits:\n\nMemoryMax=200M\n\nCPUQuota=20%\n\nTasksMax=100\n\n",[4653,45037,45038,45048,45052,45065,45069,45085,45089,45099,45103,45113,45117,45126,45130,45140,45144,45154,45158,45168,45172,45177,45181,45194,45198,45211,45215,45227,45231,45243,45247,45252,45256,45266,45270,45280,45284],{"__ignoreMap":269},[4173,45039,45040,45043,45045],{"class":4657,"line":4658},[4173,45041,45042],{"class":4784},"Type",[4173,45044,6387],{"class":4788},[4173,45046,45047],{"class":4669},"simple\n",[4173,45049,45050],{"class":4657,"line":270},[4173,45051,4761],{"emptyLinePlaceholder":4760},[4173,45053,45054,45057,45059,45062],{"class":4657,"line":1263},[4173,45055,45056],{"class":4784},"ExecStart",[4173,45058,6387],{"class":4788},[4173,45060,45061],{"class":4669},"\u002Fusr\u002Fbin\u002Fpython3",[4173,45063,45064],{"class":4661}," \u002Fopt\u002Fapp\u002Fserver.py\n",[4173,45066,45067],{"class":4657,"line":4770},[4173,45068,4761],{"emptyLinePlaceholder":4760},[4173,45070,45071,45074,45076,45079,45082],{"class":4657,"line":4775},[4173,45072,45073],{"class":4784},"ExecStop",[4173,45075,6387],{"class":4788},[4173,45077,45078],{"class":4669},"\u002Fbin\u002Fkill",[4173,45080,45081],{"class":4661}," -SIGTERM",[4173,45083,45084],{"class":4784}," $MAINPID\n",[4173,45086,45087],{"class":4657,"line":6320},[4173,45088,4761],{"emptyLinePlaceholder":4760},[4173,45090,45091,45094,45096],{"class":4657,"line":6325},[4173,45092,45093],{"class":4784},"User",[4173,45095,6387],{"class":4788},[4173,45097,45098],{"class":4669},"nobody\n",[4173,45100,45101],{"class":4657,"line":6343},[4173,45102,4761],{"emptyLinePlaceholder":4760},[4173,45104,45105,45108,45110],{"class":4657,"line":6348},[4173,45106,45107],{"class":4784},"Restart",[4173,45109,6387],{"class":4788},[4173,45111,45112],{"class":4669},"on-failure\n",[4173,45114,45115],{"class":4657,"line":6457},[4173,45116,4761],{"emptyLinePlaceholder":4760},[4173,45118,45119,45122,45124],{"class":4657,"line":6462},[4173,45120,45121],{"class":4784},"RestartSec",[4173,45123,6387],{"class":4788},[4173,45125,31652],{"class":4669},[4173,45127,45128],{"class":4657,"line":6468},[4173,45129,4761],{"emptyLinePlaceholder":4760},[4173,45131,45132,45135,45137],{"class":4657,"line":6473},[4173,45133,45134],{"class":4784},"StartLimitBurst",[4173,45136,6387],{"class":4788},[4173,45138,45139],{"class":4669},"4\n",[4173,45141,45142],{"class":4657,"line":6479},[4173,45143,4761],{"emptyLinePlaceholder":4760},[4173,45145,45146,45149,45151],{"class":4657,"line":6503},[4173,45147,45148],{"class":4784},"StartLimitIntervalSec",[4173,45150,6387],{"class":4788},[4173,45152,45153],{"class":4669},"30\n",[4173,45155,45156],{"class":4657,"line":6516},[4173,45157,4761],{"emptyLinePlaceholder":4760},[4173,45159,45160,45163,45165],{"class":4657,"line":6971},[4173,45161,45162],{"class":4784},"WorkingDirectory",[4173,45164,6387],{"class":4788},[4173,45166,45167],{"class":4669},"\u002Fopt\u002Fapp\u002F\n",[4173,45169,45170],{"class":4657,"line":10649},[4173,45171,4761],{"emptyLinePlaceholder":4760},[4173,45173,45174],{"class":4657,"line":10654},[4173,45175,45176],{"class":4766},"# Sicherheitshärtung:\n",[4173,45178,45179],{"class":4657,"line":10659},[4173,45180,4761],{"emptyLinePlaceholder":4760},[4173,45182,45183,45186,45188,45191],{"class":4657,"line":10664},[4173,45184,45185],{"class":4784},"PrivateTmp",[4173,45187,6387],{"class":4788},[4173,45189,45190],{"class":4669},"true",[4173,45192,45193],{"class":4766}," # Isoliertes \u002Ftmp\n",[4173,45195,45196],{"class":4657,"line":10676},[4173,45197,4761],{"emptyLinePlaceholder":4760},[4173,45199,45200,45203,45205,45208],{"class":4657,"line":10681},[4173,45201,45202],{"class":4784},"ProtectSystem",[4173,45204,6387],{"class":4788},[4173,45206,45207],{"class":4669},"full",[4173,45209,45210],{"class":4766}," # System read-only\n",[4173,45212,45213],{"class":4657,"line":10702},[4173,45214,4761],{"emptyLinePlaceholder":4760},[4173,45216,45217,45220,45222,45224],{"class":4657,"line":10707},[4173,45218,45219],{"class":4784},"ProtectHome",[4173,45221,6387],{"class":4788},[4173,45223,45190],{"class":4669},[4173,45225,45226],{"class":4766}," # Kein Zugriff auf \u002Fhome\n",[4173,45228,45229],{"class":4657,"line":10712},[4173,45230,4761],{"emptyLinePlaceholder":4760},[4173,45232,45233,45236,45238,45240],{"class":4657,"line":10717},[4173,45234,45235],{"class":4784},"NoNewPrivileges",[4173,45237,6387],{"class":4788},[4173,45239,45190],{"class":4669},[4173,45241,45242],{"class":4766}," # Keine Privileg-Eskalation\n",[4173,45244,45245],{"class":4657,"line":10727},[4173,45246,4761],{"emptyLinePlaceholder":4760},[4173,45248,45249],{"class":4657,"line":10732},[4173,45250,45251],{"class":4766},"# Ressourcenlimits:\n",[4173,45253,45254],{"class":4657,"line":10737},[4173,45255,4761],{"emptyLinePlaceholder":4760},[4173,45257,45258,45261,45263],{"class":4657,"line":10742},[4173,45259,45260],{"class":4784},"MemoryMax",[4173,45262,6387],{"class":4788},[4173,45264,45265],{"class":4669},"200M\n",[4173,45267,45268],{"class":4657,"line":10752},[4173,45269,4761],{"emptyLinePlaceholder":4760},[4173,45271,45272,45275,45277],{"class":4657,"line":10757},[4173,45273,45274],{"class":4784},"CPUQuota",[4173,45276,6387],{"class":4788},[4173,45278,45279],{"class":4669},"20%\n",[4173,45281,45282],{"class":4657,"line":10762},[4173,45283,4761],{"emptyLinePlaceholder":4760},[4173,45285,45286,45289,45291],{"class":4657,"line":10767},[4173,45287,45288],{"class":4784},"TasksMax",[4173,45290,6387],{"class":4788},[4173,45292,45293],{"class":4669},"100\n",[414,45295,45296],{},[4173,45297,45298],{},"Install",[4647,45300,45302],{"className":4649,"code":45301,"language":4651,"meta":269,"style":269},"WantedBy=multi-user.target # Beim Boot starten\n\n",[4653,45303,45304],{"__ignoreMap":269},[4173,45305,45306,45309,45311,45314],{"class":4657,"line":4658},[4173,45307,45308],{"class":4784},"WantedBy",[4173,45310,6387],{"class":4788},[4173,45312,45313],{"class":4669},"multi-user.target",[4173,45315,45316],{"class":4766}," # Beim Boot starten\n",[470,45318,45320],{"id":45319},"unit-aktivieren-und-starten","Unit aktivieren und starten:",[4647,45322,45324],{"className":4649,"code":45323,"language":4651,"meta":269,"style":269},"sudo systemctl daemon-reload\n\nsudo systemctl enable mein.service\n\nsudo systemctl start mein.service\n\n",[4653,45325,45326,45336,45340,45352,45356],{"__ignoreMap":269},[4173,45327,45328,45330,45333],{"class":4657,"line":4658},[4173,45329,13062],{"class":4661},[4173,45331,45332],{"class":4669}," systemctl",[4173,45334,45335],{"class":4669}," daemon-reload\n",[4173,45337,45338],{"class":4657,"line":270},[4173,45339,4761],{"emptyLinePlaceholder":4760},[4173,45341,45342,45344,45346,45349],{"class":4657,"line":1263},[4173,45343,13062],{"class":4661},[4173,45345,45332],{"class":4669},[4173,45347,45348],{"class":4669}," enable",[4173,45350,45351],{"class":4669}," mein.service\n",[4173,45353,45354],{"class":4657,"line":4770},[4173,45355,4761],{"emptyLinePlaceholder":4760},[4173,45357,45358,45360,45362,45365],{"class":4657,"line":4775},[4173,45359,13062],{"class":4661},[4173,45361,45332],{"class":4669},[4173,45363,45364],{"class":4669}," start",[4173,45366,45351],{"class":4669},[470,45368,45370],{"id":45369},"systemanalyse","Systemanalyse",[414,45372,45373],{},"systemd-analyze blame # Bootzeit pro Dienst",[414,45375,45376],{},"systemd-analyze critical-chain # Kritischer Pfad",[414,45378,45379],{},"systemd-analyze plot >boot.svg # Visualisierung",[414,45381,45382],{},"systemd-analyze verify dienst.service # Syntax prüfen",[11,45384,45385],{"id":45385},"cron",[16,45387,9853],{"id":45388},"grundprinzip-2",[414,45390,45391,45392,45395,45396,45399],{},"cron ist ein Dienst (Daemon) zum ",[42,45393,45394],{},"zeitgesteuerten Ausführen von Befehlen",". Die Aufgaben werden in der ",[42,45397,45398],{},"crontab"," (cron table) definiert.",[4647,45401,45403],{"className":4649,"code":45402,"language":4651,"meta":269,"style":269},"crontab -e # Eigene crontab bearbeiten\n\ncrontab -l # Eigene crontab anzeigen\n\ncrontab -r # Eigene crontab löschen\n\ncrontab -u user -e # crontab eines bestimmten Benutzers bearbeiten (root)\n\n",[4653,45404,45405,45414,45418,45427,45431,45440,45444],{"__ignoreMap":269},[4173,45406,45407,45409,45411],{"class":4657,"line":4658},[4173,45408,45398],{"class":4661},[4173,45410,21075],{"class":4665},[4173,45412,45413],{"class":4766}," # Eigene crontab bearbeiten\n",[4173,45415,45416],{"class":4657,"line":270},[4173,45417,4761],{"emptyLinePlaceholder":4760},[4173,45419,45420,45422,45424],{"class":4657,"line":1263},[4173,45421,45398],{"class":4661},[4173,45423,10277],{"class":4665},[4173,45425,45426],{"class":4766}," # Eigene crontab anzeigen\n",[4173,45428,45429],{"class":4657,"line":4770},[4173,45430,4761],{"emptyLinePlaceholder":4760},[4173,45432,45433,45435,45437],{"class":4657,"line":4775},[4173,45434,45398],{"class":4661},[4173,45436,9095],{"class":4665},[4173,45438,45439],{"class":4766}," # Eigene crontab löschen\n",[4173,45441,45442],{"class":4657,"line":6320},[4173,45443,4761],{"emptyLinePlaceholder":4760},[4173,45445,45446,45448,45450,45453,45455],{"class":4657,"line":6325},[4173,45447,45398],{"class":4661},[4173,45449,23851],{"class":4665},[4173,45451,45452],{"class":4669}," user",[4173,45454,21075],{"class":4665},[4173,45456,45457],{"class":4766}," # crontab eines bestimmten Benutzers bearbeiten (root)\n",[16,45459,45461],{"id":45460},"das-zeitformat-5-felder-cron","Das Zeitformat (5-Felder-Cron)",[414,45463,45464,45465,45467,45468,45470,45471,45473,45474,45476,45477,45479],{},"┌──────────── Minute (0 - 59)",[7135,45466],{},"\n│ ┌────────── Stunde (0 - 23)",[7135,45469],{},"\n│ │ ┌──────── Tag (Monat) (1 - 31)",[7135,45472],{},"\n│ │ │ ┌────── Monat (1 - 12 oder jan,feb,...)",[7135,45475],{},"\n│ │ │ │ ┌──── Wochentag (0 - 7, 0 und 7 = Sonntag, oder sun,mon,...)",[7135,45478],{},"\n│ │ │ │ │",[21,45481,45482],{},[24,45483,45484],{},[21,45485,45486],{},[24,45487,45488],{},[21,45489,45490],{},[24,45491,45492],{},[21,45493,45494],{},[24,45495,45496],{},[21,45497,45498],{},[24,45499,8243],{},[16,45501,45503],{"id":45502},"sonderzeichen-in-cron","Sonderzeichen in cron",[765,45505,45506,45522],{},[768,45507,45508],{},[771,45509,45510,45514,45518],{},[774,45511,45512],{},[42,45513,14162],{},[774,45515,45516],{},[42,45517,6733],{},[774,45519,45520],{},[42,45521,763],{},[787,45523,45524,45534,45544,45553],{},[771,45525,45526,45528,45531],{},[792,45527,6328],{},[792,45529,45530],{},"Jeden möglichen Wert",[792,45532,45533],{},"* in Stunde = jede Stunde",[771,45535,45536,45538,45541],{},[792,45537,42920],{},[792,45539,45540],{},"Liste von Werten",[792,45542,45543],{},"1,3,5 = Minute 1, 3 und 5",[771,45545,45546,45548,45550],{},[792,45547,4778],{},[792,45549,12738],{},[792,45551,45552],{},"9-17 = von 9 bis 17 Uhr",[771,45554,45555,45557,45560],{},[792,45556,13658],{},[792,45558,45559],{},"Schrittweite (Step)",[792,45561,45562],{},"*\u002F5 = alle 5 Minuten",[16,45564,45566],{"id":45565},"das-slash-schrittweite-ausführlich-erklärt","Das \u002F (Slash \u002F Schrittweite) – ausführlich erklärt",[414,45568,45569],{},[42,45570,45571],{},"Der Slash definiert eine Schrittweite innerhalb eines Wertebereichs.",[414,45573,45574],{},"BEREICH\u002FSCHRITT",[21,45576,45577,45585,45593,45601],{},[24,45578,45579,45584],{},[42,45580,45581],{},[4653,45582,45583],{},"*\u002F4"," im Minutenfeld: „Von 0 bis 59, jeden 4. Wert\" → Minute 0, 4, 8, 12, 16, 20, ...56",[24,45586,45587,45592],{},[42,45588,45589],{},[4653,45590,45591],{},"0\u002F4"," im Minutenfeld: „Starte bei 0, dann alle 4\" → Minute 0, 4, 8, 12, ...56 (identisch zu *\u002F4)",[24,45594,45595,45600],{},[42,45596,45597],{},[4653,45598,45599],{},"2\u002F4"," im Minutenfeld: „Starte bei 2, dann alle 4\" → Minute 2, 6, 10, 14, ...58",[24,45602,45603,45608],{},[42,45604,45605],{},[4653,45606,45607],{},"10-30\u002F5"," im Minutenfeld: „Von 10 bis 30, alle 5\" → Minute 10, 15, 20, 25, 30",[414,45610,45611,45619],{},[42,45612,45613,45614,7445,45616,45618],{},"Fazit: ",[4653,45615,45591],{},[4653,45617,45583],{}," sind im Minutenfeld identisch",", da * für 0-59 steht und 0\u002F4 explizit bei 0 startet.",[16,45621,45623],{"id":45622},"das-6-felder-format-quartzspring","Das 6-Felder-Format (Quartz\u002FSpring)",[414,45625,45626,45627,8158],{},"Manche Systeme (Java Quartz Scheduler, Spring Boot Cron, manche DevOps-Tools) verwenden ein ",[42,45628,45629],{},"6-Felder-Format mit Sekunden",[414,45631,45632,45633,45635,45636,45638,45639,45641,45642,45644,45645,45647,45648,45650],{},"┌────────────── Sekunde (0 - 59)",[7135,45634],{},"\n│ ┌──────────── Minute (0 - 59)",[7135,45637],{},"\n│ │ ┌────────── Stunde (0 - 23)",[7135,45640],{},"\n│ │ │ ┌──────── Tag (Monat) (1 - 31)",[7135,45643],{},"\n│ │ │ │ ┌────── Monat (1 - 12)",[7135,45646],{},"\n│ │ │ │ │ ┌──── Wochentag (0 - 7)",[7135,45649],{},"\n│ │ │ │ │ │",[21,45652,45653],{},[24,45654,45655],{},[21,45656,45657],{},[24,45658,45659],{},[21,45660,45661],{},[24,45662,45663],{},[21,45664,45665],{},[24,45666,45667],{},[21,45668,45669],{},[24,45670,45671],{},[21,45672,45673],{},[24,45674,8243],{},[414,45676,45677,45682],{},[42,45678,45679],{},[4653,45680,45681],{},"0\u002F4 * * * * *"," (6 Felder, Quartz-Format):",[21,45684,45685,45688,45691],{},[24,45686,45687],{},"Sekunden-Feld: 0\u002F4 → Starte bei Sekunde 0, alle 4 Sekunden → 0, 4, 8, 12, ...56",[24,45689,45690],{},"Alle anderen Felder: * → immer",[24,45692,45693],{},[42,45694,45695],{},"Bedeutung: Alle 4 Sekunden, jede Minute, jede Stunde, jeden Tag...",[414,45697,45698,45700,45701,45704],{},[42,45699,13241],{}," Standard-Linux-cron (Vixie Cron, cronie) verwendet ",[42,45702,45703],{},"5 Felder"," ohne Sekunden. Die 6-Felder-Variante ist bei systemd-Timer oder Spring @Scheduled üblich.",[16,45706,45708],{"id":45707},"vordefinierte-makros-nur-5-felder-cron","Vordefinierte Makros (nur 5-Felder-cron)",[765,45710,45711,45729],{},[768,45712,45713],{},[771,45714,45715,45720,45724],{},[774,45716,45717],{},[42,45718,45719],{},"Makro",[774,45721,45722],{},[42,45723,6733],{},[774,45725,45726],{},[42,45727,45728],{},"Äquivalent",[787,45730,45731,45742,45753,45764,45775,45786],{},[771,45732,45733,45736,45739],{},[792,45734,45735],{},"@reboot",[792,45737,45738],{},"Bei jedem Start",[792,45740,45741],{},"—",[771,45743,45744,45747,45750],{},[792,45745,45746],{},"@yearly \u002F @annually",[792,45748,45749],{},"Einmal jährlich",[792,45751,45752],{},"0 0 1 1 *",[771,45754,45755,45758,45761],{},[792,45756,45757],{},"@monthly",[792,45759,45760],{},"Einmal monatlich",[792,45762,45763],{},"0 0 1 * *",[771,45765,45766,45769,45772],{},[792,45767,45768],{},"@weekly",[792,45770,45771],{},"Einmal wöchentlich",[792,45773,45774],{},"0 0 * * 0",[771,45776,45777,45780,45783],{},[792,45778,45779],{},"@daily \u002F @midnight",[792,45781,45782],{},"Täglich um Mitternacht",[792,45784,45785],{},"0 0 * * *",[771,45787,45788,45791,45794],{},[792,45789,45790],{},"@hourly",[792,45792,45793],{},"Jede Stunde",[792,45795,45796],{},"0 * * * *",[16,45798,9925],{"id":15941},[11,45800,45802],{"id":45801},"jede-minute","Jede Minute",[21,45804,45805],{},[24,45806,45807],{},[21,45808,45809],{},[24,45810,45811],{},[21,45812,45813],{},[24,45814,45815],{},[21,45816,45817],{},[24,45818,45819],{},[21,45820,45821],{},[24,45822,45823],{},"\u002Fskript.sh",[11,45825,45827],{"id":45826},"alle-5-minuten","Alle 5 Minuten",[414,45829,45830],{},"*\u002F5 * * * * \u002Fskript.sh",[11,45832,45834],{"id":45833},"alle-4-minuten-ab-minute-0","Alle 4 Minuten (ab Minute 0)",[414,45836,45837],{},"0\u002F4 * * * * \u002Fskript.sh",[11,45839,45841],{"id":45840},"oder-äquivalent","oder äquivalent:",[414,45843,45844],{},"*\u002F4 * * * * \u002Fskript.sh",[11,45846,45848],{"id":45847},"alle-4-minuten-aber-startend-bei-minute-2","Alle 4 Minuten, aber STARTEND bei Minute 2",[414,45850,45851],{},"2\u002F4 * * * * \u002Fskript.sh # → 2, 6, 10, 14, ...",[11,45853,45855],{"id":45854},"täglich-um-330-uhr","Täglich um 3:30 Uhr",[414,45857,45858],{},"30 3 * * * \u002Fbackup.sh",[11,45860,45862],{"id":45861},"montag-bis-freitag-um-800-uhr","Montag bis Freitag um 8:00 Uhr",[414,45864,45865],{},"0 8 * * 1-5 \u002Fbenutzer_check.sh",[11,45867,45869],{"id":45868},"jeden-1-des-monats-um-mitternacht","Jeden 1. des Monats um Mitternacht",[414,45871,45872],{},"0 0 1 * * \u002Fmonatsabschluss.sh",[11,45874,45876],{"id":45875},"stündlich-in-der-geschäftszeit-9-17-uhr-mo-fr","Stündlich in der Geschäftszeit (9-17 Uhr, Mo-Fr)",[414,45878,45879],{},"0 9-17 * * 1-5 \u002Fpruefe_server.sh",[11,45881,45883],{"id":45882},"um-600-und-1800-uhr-täglich","Um 6:00 und 18:00 Uhr täglich",[414,45885,45886],{},"0 6,18 * * * \u002Fcheck.sh",[11,45888,45890],{"id":45889},"alle-15-minuten-zwischen-8-und-20-uhr","Alle 15 Minuten zwischen 8 und 20 Uhr",[414,45892,45893],{},"*\u002F15 8-20 * * * \u002Fcheck.sh",[11,45895,45897],{"id":45896},"beim-systemstart","Beim Systemstart",[414,45899,45900],{},"@reboot \u002Fhome\u002Fuser\u002Fstart_dienst.sh",[11,45902,45904],{"id":45903},"wöchentlich-sonntag-000-uhr","Wöchentlich (Sonntag 0:00 Uhr)",[414,45906,45907],{},"@weekly \u002Fbackup_woche.sh",[11,45909,45911],{"id":45910},"ausgabe-in-logdatei-umleiten","Ausgabe in Logdatei umleiten",[414,45913,45914],{},"0 2 * * * \u002Fbackup.sh >>\u002Fvar\u002Flog\u002Fbackup.log 2>&1",[11,45916,45918],{"id":45917},"ausgabe-unterdrücken","Ausgabe unterdrücken",[414,45920,45921],{},"0 * * * * \u002Fcheck.sh >\u002Fdev\u002Fnull 2>&1",[11,45923,45925],{"id":45924},"mit-benutzerumgebung-path-explizit-setzen","Mit Benutzerumgebung (PATH explizit setzen)",[4647,45927,45929],{"className":4649,"code":45928,"language":4651,"meta":269,"style":269},"PATH=\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fsbin:\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin\n\n",[4653,45930,45931],{"__ignoreMap":269},[4173,45932,45933,45936,45938],{"class":4657,"line":4658},[4173,45934,45935],{"class":4784},"PATH",[4173,45937,6387],{"class":4788},[4173,45939,45940],{"class":4669},"\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fsbin:\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin\n",[414,45942,45943],{},"0 3 * * * \u002Feigenes\u002Fbackup.sh",[16,45945,45947],{"id":45946},"cron-umgebungsvariablen","cron-Umgebungsvariablen",[4647,45949,45951],{"className":8413,"code":45950,"language":8415,"meta":269,"style":269},"# Am Anfang der crontab-Datei setzbar:\n\nSHELL=\u002Fbin\u002Fbash\n\n",[4653,45952,45953,45958,45962],{"__ignoreMap":269},[4173,45954,45955],{"class":4657,"line":4658},[4173,45956,45957],{"class":4766},"# Am Anfang der crontab-Datei setzbar:\n",[4173,45959,45960],{"class":4657,"line":270},[4173,45961,4761],{"emptyLinePlaceholder":4760},[4173,45963,45964],{"class":4657,"line":1263},[4173,45965,45966],{"class":4784},"SHELL=\u002Fbin\u002Fbash\n",[4647,45968,45970],{"className":4649,"code":45969,"language":4651,"meta":269,"style":269},"PATH=\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin\n\nMAILTO=admin@example.com # Ausgabe per Mail senden (leer = kein Mail)\n\nHOME=\u002Froot\n\n",[4653,45971,45972,45981,45985,45998,46002],{"__ignoreMap":269},[4173,45973,45974,45976,45978],{"class":4657,"line":4658},[4173,45975,45935],{"class":4784},[4173,45977,6387],{"class":4788},[4173,45979,45980],{"class":4669},"\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin\n",[4173,45982,45983],{"class":4657,"line":270},[4173,45984,4761],{"emptyLinePlaceholder":4760},[4173,45986,45987,45990,45992,45995],{"class":4657,"line":1263},[4173,45988,45989],{"class":4784},"MAILTO",[4173,45991,6387],{"class":4788},[4173,45993,45994],{"class":4669},"admin@example.com",[4173,45996,45997],{"class":4766}," # Ausgabe per Mail senden (leer = kein Mail)\n",[4173,45999,46000],{"class":4657,"line":4770},[4173,46001,4761],{"emptyLinePlaceholder":4760},[4173,46003,46004,46007,46009],{"class":4657,"line":4775},[4173,46005,46006],{"class":4784},"HOME",[4173,46008,6387],{"class":4788},[4173,46010,46011],{"class":4669},"\u002Froot\n",[16,46013,46015],{"id":46014},"systemweite-cron-verzeichnisse","Systemweite cron-Verzeichnisse",[414,46017,46018],{},"\u002Fetc\u002Fcrontab # Systemweite crontab (hat Benutzer-Spalte!)",[414,46020,46021],{},"\u002Fetc\u002Fcron.d\u002F # Weitere systemweite Cron-Dateien",[414,46023,46024],{},"\u002Fetc\u002Fcron.hourly\u002F # Skripte die stündlich laufen",[414,46026,46027],{},"\u002Fetc\u002Fcron.daily\u002F # Skripte die täglich laufen",[414,46029,46030],{},"\u002Fetc\u002Fcron.weekly\u002F # Skripte die wöchentlich laufen",[414,46032,46033],{},"\u002Fetc\u002Fcron.monthly\u002F # Skripte die monatlich laufen",[16,46035,46037],{"id":46036},"ausgabe-umleiten","Ausgabe umleiten:",[11,46039,46041],{"id":46040},"in-datei-umleiten","In Datei umleiten",[21,46043,46044],{},[24,46045,46046],{},[21,46047,46048],{},[24,46049,46050],{},[21,46051,46052],{},[24,46053,46054],{},[21,46055,46056],{},[24,46057,46058],{},[21,46059,46060],{},[24,46061,46062],{},"echo \"test\" >\u002Fhome\u002Fuser\u002Foutput.txt 2>&1",[11,46064,46066],{"id":46065},"an-terminal-senden","An Terminal senden",[21,46068,46069],{},[24,46070,46071],{},[21,46072,46073],{},[24,46074,46075],{},[21,46076,46077],{},[24,46078,46079],{},[21,46080,46081],{},[24,46082,46083],{},[21,46084,46085],{},[24,46086,46087],{},"echo \"test\" >\u002Fdev\u002Fpts\u002F1",[11,46089,27485],{"id":27485},[16,46091,9853],{"id":46092},"grundprinzip-3",[414,46094,46095,46096,46099,46100,46102],{},"rsync (Remote Sync) ist ein Werkzeug zum ",[42,46097,46098],{},"effizienten Synchronisieren von Dateien und Verzeichnissen",", lokal oder über Netzwerk (SSH). Es überträgt nur geänderte Teile von Dateien (",[42,46101,26976],{},"), was es sehr schnell macht.",[414,46104,46105],{},[42,46106,37137],{},[414,46108,46109,46110,26985],{},"rsync ",[4173,46111,12720],{},[16,46113,46115],{"id":46114},"wie-rsync-intern-funktioniert-delta-algorithmus","Wie rsync intern funktioniert (Delta-Algorithmus)",[318,46117,46118,46121,46132,46135,46138,46145],{},[24,46119,46120],{},"Zieldatei wird in Blöcke (Chunks) aufgeteilt",[24,46122,46123,46124,46127,46128,46131],{},"Von jedem Block wird eine ",[42,46125,46126],{},"schwache Prüfsumme"," (rolling checksum) und eine ",[42,46129,46130],{},"starke Prüfsumme"," (MD4\u002FMD5) berechnet",[24,46133,46134],{},"Die Prüfsummen werden an den Sender geschickt",[24,46136,46137],{},"Der Sender findet passende Blöcke in der Quelldatei",[24,46139,46140,46141,46144],{},"Nur ",[42,46142,46143],{},"neue\u002Fgeänderte Blöcke"," werden übertragen",[24,46146,46147],{},"Das Ziel wird aus der Kombination alter und neuer Blöcke rekonstruiert",[414,46149,46150,46153],{},[42,46151,46152],{},"Ergebnis:"," Statt einer 100 MB Datei werden vielleicht nur 2 KB Unterschied übertragen.",[16,46155,27016],{"id":27015},[765,46157,46158,46174],{},[768,46159,46160],{},[771,46161,46162,46166,46170],{},[774,46163,46164],{},[42,46165,8964],{},[774,46167,46168],{},[42,46169,12796],{},[774,46171,46172],{},[42,46173,6733],{},[787,46175,46176,46185,46193,46202,46211,46220,46229,46238,46247,46255,46263,46271,46280,46289,46298,46307,46316,46325,46334,46343,46352,46360,46369,46378,46387,46396,46405,46413,46421,46430,46439,46448,46456,46465,46475,46484,46493,46502,46512,46521,46530,46539,46548],{},[771,46177,46178,46180,46182],{},[792,46179,22402],{},[792,46181,27043],{},[792,46183,46184],{},"Archivmodus: -rlptgoD zusammengefasst",[771,46186,46187,46189,46191],{},[792,46188,6103],{},[792,46190,17263],{},[792,46192,27055],{},[771,46194,46195,46197,46199],{},[792,46196,9006],{},[792,46198,27062],{},[792,46200,46201],{},"Symlinks als Symlinks kopieren",[771,46203,46204,46206,46208],{},[792,46205,13276],{},[792,46207,27072],{},[792,46209,46210],{},"Berechtigungen übertragen",[771,46212,46213,46215,46217],{},[792,46214,22443],{},[792,46216,27082],{},[792,46218,46219],{},"Zeitstempel übertragen",[771,46221,46222,46224,46226],{},[792,46223,12818],{},[792,46225,12821],{},[792,46227,46228],{},"Gruppeninfo übertragen",[771,46230,46231,46233,46235],{},[792,46232,9046],{},[792,46234,27101],{},[792,46236,46237],{},"Eigentümer übertragen (root nötig)",[771,46239,46240,46242,46244],{},[792,46241,27109],{},[792,46243],{},[792,46245,46246],{},"Gerätedateien + Sonderdateien",[771,46248,46249,46251,46253],{},[792,46250,8983],{},[792,46252,27121],{},[792,46254,27124],{},[771,46256,46257,46259,46261],{},[792,46258,27129],{},[792,46260],{},[792,46262,27134],{},[771,46264,46265,46267,46269],{},[792,46266,16412],{},[792,46268,17439],{},[792,46270,27143],{},[771,46272,46273,46275,46277],{},[792,46274,8991],{},[792,46276,27150],{},[792,46278,46279],{},"Simulation: Zeigt was passieren würde, ohne etwas zu tun",[771,46281,46282,46284,46286],{},[792,46283,20406],{},[792,46285,27160],{},[792,46287,46288],{},"Daten komprimieren (bei langsamen Verbindungen)",[771,46290,46291,46293,46295],{},[792,46292,13851],{},[792,46294],{},[792,46296,46297],{},"--partial --progress zusammen: Fortschritt und Wiederaufnahme",[771,46299,46300,46302,46304],{},[792,46301,27177],{},[792,46303],{},[792,46305,46306],{},"Fortschrittsanzeige",[771,46308,46309,46311,46313],{},[792,46310,27187],{},[792,46312],{},[792,46314,46315],{},"Teilübertragungen behalten (für Wiederaufnahme)",[771,46317,46318,46320,46322],{},[792,46319,9216],{},[792,46321,27200],{},[792,46323,46324],{},"Remote Shell angeben (z.B. -e ssh)",[771,46326,46327,46329,46331],{},[792,46328,25155],{},[792,46330],{},[792,46332,46333],{},"Dateien im Ziel löschen, die in der Quelle fehlen",[771,46335,46336,46338,46340],{},[792,46337,27217],{},[792,46339],{},[792,46341,46342],{},"Löschen vor dem Übertragen",[771,46344,46345,46347,46349],{},[792,46346,27227],{},[792,46348],{},[792,46350,46351],{},"Löschen nach dem Übertragen",[771,46353,46354,46356,46358],{},[792,46355,27237],{},[792,46357],{},[792,46359,27242],{},[771,46361,46362,46364,46366],{},[792,46363,27247],{},[792,46365],{},[792,46367,46368],{},"Ausschlussliste aus Datei",[771,46370,46371,46373,46375],{},[792,46372,27257],{},[792,46374],{},[792,46376,46377],{},"Ausschluss aufheben",[771,46379,46380,46382,46384],{},[792,46381,27267],{},[792,46383],{},[792,46385,46386],{},"Flexible Filterregel",[771,46388,46389,46391,46393],{},[792,46390,27277],{},[792,46392],{},[792,46394,46395],{},"Sicherungskopien erstellen",[771,46397,46398,46400,46402],{},[792,46399,27287],{},[792,46401],{},[792,46403,46404],{},"Backup-Verzeichnis für geänderte Dateien",[771,46406,46407,46409,46411],{},[792,46408,27297],{},[792,46410],{},[792,46412,27302],{},[771,46414,46415,46417,46419],{},[792,46416,12807],{},[792,46418,27309],{},[792,46420,27312],{},[771,46422,46423,46425,46427],{},[792,46424,9014],{},[792,46426,27319],{},[792,46428,46429],{},"Vergleich per Prüfsumme statt Größe+Zeit",[771,46431,46432,46434,46436],{},[792,46433,17466],{},[792,46435,27329],{},[792,46437,46438],{},"Hardlinks erhalten",[771,46440,46441,46443,46445],{},[792,46442,22413],{},[792,46444,27339],{},[792,46446,46447],{},"ACLs übertragen",[771,46449,46450,46452,46454],{},[792,46451,22473],{},[792,46453,27349],{},[792,46455,27352],{},[771,46457,46458,46460,46462],{},[792,46459,27357],{},[792,46461],{},[792,46463,46464],{},"Berechtigungen beim Ziel setzen",[771,46466,46467,46470,46472],{},[792,46468,46469],{},"--chown=USER:GRUPPE",[792,46471],{},[792,46473,46474],{},"Eigentümer beim Ziel setzen",[771,46476,46477,46479,46481],{},[792,46478,27377],{},[792,46480],{},[792,46482,46483],{},"Maximale Dateigröße (z.B. --max-size=100M)",[771,46485,46486,46488,46490],{},[792,46487,27387],{},[792,46489],{},[792,46491,46492],{},"Mindestdateigröße",[771,46494,46495,46497,46499],{},[792,46496,27397],{},[792,46498],{},[792,46500,46501],{},"Bandbreite begrenzen (KB\u002Fs)",[771,46503,46504,46507,46509],{},[792,46505,46506],{},"--timeout=SEKS",[792,46508],{},[792,46510,46511],{},"Verbindungs-Timeout setzen",[771,46513,46514,46516,46518],{},[792,46515,27417],{},[792,46517],{},[792,46519,46520],{},"Übertragungsstatistik anzeigen",[771,46522,46523,46525,46527],{},[792,46524,13819],{},[792,46526,22426],{},[792,46528,46529],{},"Größen leserlich darstellen",[771,46531,46532,46534,46536],{},[792,46533,27436],{},[792,46535],{},[792,46537,46538],{},"Log in Datei schreiben",[771,46540,46541,46543,46545],{},[792,46542,27446],{},[792,46544],{},[792,46546,46547],{},"Passwort aus Datei lesen",[771,46549,46550,46552,46554],{},[792,46551,27456],{},[792,46553],{},[792,46555,46556],{},"Alternativen Port verwenden",[16,46558,27475],{"id":27474},[4647,46560,46562],{"className":4649,"code":46561,"language":4651,"meta":269,"style":269},"rsync -av \u002Fquelle \u002Fziel # Kopiert den Ordner \"quelle\" IN \"ziel\" → \u002Fziel\u002Fquelle\u002F...\n\nrsync -av \u002Fquelle\u002F \u002Fziel # Kopiert den INHALT von \"quelle\" → \u002Fziel\u002F...\n\n",[4653,46563,46564,46577,46581],{"__ignoreMap":269},[4173,46565,46566,46568,46570,46572,46574],{"class":4657,"line":4658},[4173,46567,27485],{"class":4661},[4173,46569,27488],{"class":4665},[4173,46571,27491],{"class":4669},[4173,46573,27494],{"class":4669},[4173,46575,46576],{"class":4766}," # Kopiert den Ordner \"quelle\" IN \"ziel\" → \u002Fziel\u002Fquelle\u002F...\n",[4173,46578,46579],{"class":4657,"line":270},[4173,46580,4761],{"emptyLinePlaceholder":4760},[4173,46582,46583,46585,46587,46589,46591],{"class":4657,"line":1263},[4173,46584,27485],{"class":4661},[4173,46586,27488],{"class":4665},[4173,46588,27510],{"class":4669},[4173,46590,27494],{"class":4669},[4173,46592,46593],{"class":4766}," # Kopiert den INHALT von \"quelle\" → \u002Fziel\u002F...\n",[414,46595,46596],{},"Der abschließende \u002F an der Quelle macht den Unterschied!",[16,46598,9925],{"id":16425},[11,46600,46602],{"id":46601},"lokale-synchronisation-einfach","Lokale Synchronisation (einfach)",[4647,46604,46606],{"className":4649,"code":46605,"language":4651,"meta":269,"style":269},"rsync -av \u002Fhome\u002Fuser\u002Fdaten\u002F \u002Fbackup\u002Fdaten\u002F\n\n# Mit Simulation zuerst überprüfen (-n = dry run)\n\nrsync -avn \u002Fhome\u002Fuser\u002Fdaten\u002F \u002Fbackup\u002Fdaten\u002F\n\n# Remote-Backup über SSH\n\nrsync -avz \u002Fhome\u002Fuser\u002Fdokumente\u002F benutzer@server:\u002Fbackup\u002Fdokumente\u002F\n\n# Remote → Lokal (pull)\n\nrsync -avz benutzer@server:\u002Fvar\u002Fwww\u002Fhtml\u002F \u002Flokal\u002Fwebseite\u002F\n\n# Backup mit --delete (spiegelt exakt)\n\nrsync -av --delete \u002Fhome\u002Fuser\u002F \u002Fbackup\u002Fuser\u002F\n\n# SSH-Port 2222 verwenden\n\nrsync -avz -e \"ssh -p 2222\" \u002Fdaten\u002F user@server:\u002Fbackup\u002F\n\n# SSH-Key angeben\n\nrsync -avz -e \"ssh -i ~\u002F.ssh\u002Fmein_key\" \u002Fdaten\u002F user@server:\u002Fbackup\u002F\n\n# Bestimmte Typen ausschließen\n\nrsync -av --exclude=\".tmp\" --exclude=\".log\" \u002Fdaten\u002F \u002Fbackup\u002Fdaten\u002F\n\n# Ausschlussliste aus Datei (eine Regel pro Zeile)\n\nrsync -av --exclude-from=\u002Fhome\u002Fuser\u002F.rsync-exclude \u002Fdaten\u002F \u002Fbackup\u002F\n\n# Nur .jpg Dateien übertragen\n\nrsync -av --include=\".jpg\" --exclude=\"\" \u002Ffotos\u002F \u002Fbackup\u002Ffotos\u002F\n\n# Bandbreite begrenzen (500 KB\u002Fs)\n\nrsync -avz --bwlimit=500 \u002Fdaten\u002F user@server:\u002Fbackup\u002F\n\n# Große Dateien ausschließen\n\nrsync -av --max-size=50M \u002Fdaten\u002F \u002Fbackup\u002F\n\n# Vollständiges Backup mit Versionierung\n\nrsync -av --backup --backup-dir=\u002Fbackup\u002F$(date %Y-%m-%d) \u002Fhome\u002F \u002Fbackup\u002Faktuell\u002F\n\n# Fortschritt anzeigen\n\nrsync -av --progress \u002Fquelle\u002F \u002Fziel\u002F\n\n# Oder kürzer:\n\nrsync -avP \u002Fquelle\u002F \u002Fziel\u002F\n\n# Übertragungsstatistiken\n\nrsync -av --stats \u002Fquelle\u002F \u002Fziel\u002F\n\n# Dateien nur nach Prüfsumme vergleichen (langsamer aber genauer)\n\nrsync -avc \u002Fquelle\u002F \u002Fziel\u002F\n\n",[4653,46607,46608,46618,46622,46627,46631,46641,46645,46650,46654,46666,46670,46674,46678,46688,46692,46697,46701,46713,46717,46722,46726,46740,46744,46749,46753,46768,46772,46777,46781,46799,46803,46808,46812,46824,46828,46833,46837,46856,46860,46864,46868,46880,46884,46889,46893,46906,46910,46915,46919,46939,46943,46948,46952,46964,46968,46973,46977,46987,46991,46996,47000,47012,47016,47021,47025],{"__ignoreMap":269},[4173,46609,46610,46612,46614,46616],{"class":4657,"line":4658},[4173,46611,27485],{"class":4661},[4173,46613,27488],{"class":4665},[4173,46615,27559],{"class":4669},[4173,46617,27562],{"class":4669},[4173,46619,46620],{"class":4657,"line":270},[4173,46621,4761],{"emptyLinePlaceholder":4760},[4173,46623,46624],{"class":4657,"line":1263},[4173,46625,46626],{"class":4766},"# Mit Simulation zuerst überprüfen (-n = dry run)\n",[4173,46628,46629],{"class":4657,"line":4770},[4173,46630,4761],{"emptyLinePlaceholder":4760},[4173,46632,46633,46635,46637,46639],{"class":4657,"line":4775},[4173,46634,27485],{"class":4661},[4173,46636,27582],{"class":4665},[4173,46638,27559],{"class":4669},[4173,46640,27562],{"class":4669},[4173,46642,46643],{"class":4657,"line":6320},[4173,46644,4761],{"emptyLinePlaceholder":4760},[4173,46646,46647],{"class":4657,"line":6325},[4173,46648,46649],{"class":4766},"# Remote-Backup über SSH\n",[4173,46651,46652],{"class":4657,"line":6343},[4173,46653,4761],{"emptyLinePlaceholder":4760},[4173,46655,46656,46658,46660,46663],{"class":4657,"line":6348},[4173,46657,27485],{"class":4661},[4173,46659,27697],{"class":4665},[4173,46661,46662],{"class":4669}," \u002Fhome\u002Fuser\u002Fdokumente\u002F",[4173,46664,46665],{"class":4669}," benutzer@server:\u002Fbackup\u002Fdokumente\u002F\n",[4173,46667,46668],{"class":4657,"line":6457},[4173,46669,4761],{"emptyLinePlaceholder":4760},[4173,46671,46672],{"class":4657,"line":6462},[4173,46673,27712],{"class":4766},[4173,46675,46676],{"class":4657,"line":6468},[4173,46677,4761],{"emptyLinePlaceholder":4760},[4173,46679,46680,46682,46684,46686],{"class":4657,"line":6473},[4173,46681,27485],{"class":4661},[4173,46683,27697],{"class":4665},[4173,46685,27725],{"class":4669},[4173,46687,27728],{"class":4669},[4173,46689,46690],{"class":4657,"line":6479},[4173,46691,4761],{"emptyLinePlaceholder":4760},[4173,46693,46694],{"class":4657,"line":6503},[4173,46695,46696],{"class":4766},"# Backup mit --delete (spiegelt exakt)\n",[4173,46698,46699],{"class":4657,"line":6516},[4173,46700,4761],{"emptyLinePlaceholder":4760},[4173,46702,46703,46705,46707,46709,46711],{"class":4657,"line":6971},[4173,46704,27485],{"class":4661},[4173,46706,27488],{"class":4665},[4173,46708,27608],{"class":4665},[4173,46710,27611],{"class":4669},[4173,46712,27614],{"class":4669},[4173,46714,46715],{"class":4657,"line":10649},[4173,46716,4761],{"emptyLinePlaceholder":4760},[4173,46718,46719],{"class":4657,"line":10654},[4173,46720,46721],{"class":4766},"# SSH-Port 2222 verwenden\n",[4173,46723,46724],{"class":4657,"line":10659},[4173,46725,4761],{"emptyLinePlaceholder":4760},[4173,46727,46728,46730,46732,46734,46736,46738],{"class":4657,"line":10664},[4173,46729,27485],{"class":4661},[4173,46731,27697],{"class":4665},[4173,46733,21075],{"class":4665},[4173,46735,27752],{"class":4669},[4173,46737,27755],{"class":4669},[4173,46739,27758],{"class":4669},[4173,46741,46742],{"class":4657,"line":10676},[4173,46743,4761],{"emptyLinePlaceholder":4760},[4173,46745,46746],{"class":4657,"line":10681},[4173,46747,46748],{"class":4766},"# SSH-Key angeben\n",[4173,46750,46751],{"class":4657,"line":10702},[4173,46752,4761],{"emptyLinePlaceholder":4760},[4173,46754,46755,46757,46759,46761,46764,46766],{"class":4657,"line":10707},[4173,46756,27485],{"class":4661},[4173,46758,27697],{"class":4665},[4173,46760,21075],{"class":4665},[4173,46762,46763],{"class":4669}," \"ssh -i ~\u002F.ssh\u002Fmein_key\"",[4173,46765,27755],{"class":4669},[4173,46767,27758],{"class":4669},[4173,46769,46770],{"class":4657,"line":10712},[4173,46771,4761],{"emptyLinePlaceholder":4760},[4173,46773,46774],{"class":4657,"line":10717},[4173,46775,46776],{"class":4766},"# Bestimmte Typen ausschließen\n",[4173,46778,46779],{"class":4657,"line":10727},[4173,46780,4761],{"emptyLinePlaceholder":4760},[4173,46782,46783,46785,46787,46789,46791,46793,46795,46797],{"class":4657,"line":10732},[4173,46784,27485],{"class":4661},[4173,46786,27488],{"class":4665},[4173,46788,27817],{"class":4665},[4173,46790,27820],{"class":4669},[4173,46792,27817],{"class":4665},[4173,46794,27825],{"class":4669},[4173,46796,27755],{"class":4669},[4173,46798,27562],{"class":4669},[4173,46800,46801],{"class":4657,"line":10737},[4173,46802,4761],{"emptyLinePlaceholder":4760},[4173,46804,46805],{"class":4657,"line":10742},[4173,46806,46807],{"class":4766},"# Ausschlussliste aus Datei (eine Regel pro Zeile)\n",[4173,46809,46810],{"class":4657,"line":10752},[4173,46811,4761],{"emptyLinePlaceholder":4760},[4173,46813,46814,46816,46818,46820,46822],{"class":4657,"line":10757},[4173,46815,27485],{"class":4661},[4173,46817,27488],{"class":4665},[4173,46819,27860],{"class":4665},[4173,46821,27755],{"class":4669},[4173,46823,27865],{"class":4669},[4173,46825,46826],{"class":4657,"line":10762},[4173,46827,4761],{"emptyLinePlaceholder":4760},[4173,46829,46830],{"class":4657,"line":10767},[4173,46831,46832],{"class":4766},"# Nur .jpg Dateien übertragen\n",[4173,46834,46835],{"class":4657,"line":10772},[4173,46836,4761],{"emptyLinePlaceholder":4760},[4173,46838,46839,46841,46843,46845,46847,46849,46852,46854],{"class":4657,"line":10777},[4173,46840,27485],{"class":4661},[4173,46842,27488],{"class":4665},[4173,46844,27887],{"class":4665},[4173,46846,27890],{"class":4669},[4173,46848,27817],{"class":4665},[4173,46850,46851],{"class":4669},"\"\"",[4173,46853,27903],{"class":4669},[4173,46855,27906],{"class":4669},[4173,46857,46858],{"class":4657,"line":10782},[4173,46859,4761],{"emptyLinePlaceholder":4760},[4173,46861,46862],{"class":4657,"line":10787},[4173,46863,27992],{"class":4766},[4173,46865,46866],{"class":4657,"line":10800},[4173,46867,4761],{"emptyLinePlaceholder":4760},[4173,46869,46870,46872,46874,46876,46878],{"class":4657,"line":10805},[4173,46871,27485],{"class":4661},[4173,46873,27697],{"class":4665},[4173,46875,28005],{"class":4665},[4173,46877,27755],{"class":4669},[4173,46879,27758],{"class":4669},[4173,46881,46882],{"class":4657,"line":10818},[4173,46883,4761],{"emptyLinePlaceholder":4760},[4173,46885,46886],{"class":4657,"line":10823},[4173,46887,46888],{"class":4766},"# Große Dateien ausschließen\n",[4173,46890,46891],{"class":4657,"line":10836},[4173,46892,4761],{"emptyLinePlaceholder":4760},[4173,46894,46895,46897,46899,46902,46904],{"class":4657,"line":10841},[4173,46896,27485],{"class":4661},[4173,46898,27488],{"class":4665},[4173,46900,46901],{"class":4665}," --max-size=50M",[4173,46903,27755],{"class":4669},[4173,46905,27865],{"class":4669},[4173,46907,46908],{"class":4657,"line":10846},[4173,46909,4761],{"emptyLinePlaceholder":4760},[4173,46911,46912],{"class":4657,"line":10851},[4173,46913,46914],{"class":4766},"# Vollständiges Backup mit Versionierung\n",[4173,46916,46917],{"class":4657,"line":10867},[4173,46918,4761],{"emptyLinePlaceholder":4760},[4173,46920,46921,46923,46925,46927,46929,46931,46933,46935,46937],{"class":4657,"line":10872},[4173,46922,27485],{"class":4661},[4173,46924,27488],{"class":4665},[4173,46926,27967],{"class":4665},[4173,46928,27970],{"class":4665},[4173,46930,11289],{"class":4661},[4173,46932,27975],{"class":4669},[4173,46934,6282],{"class":4665},[4173,46936,27980],{"class":4669},[4173,46938,27983],{"class":4669},[4173,46940,46941],{"class":4657,"line":10877},[4173,46942,4761],{"emptyLinePlaceholder":4760},[4173,46944,46945],{"class":4657,"line":10882},[4173,46946,46947],{"class":4766},"# Fortschritt anzeigen\n",[4173,46949,46950],{"class":4657,"line":10890},[4173,46951,4761],{"emptyLinePlaceholder":4760},[4173,46953,46954,46956,46958,46960,46962],{"class":4657,"line":10895},[4173,46955,27485],{"class":4661},[4173,46957,27488],{"class":4665},[4173,46959,27661],{"class":4665},[4173,46961,27510],{"class":4669},[4173,46963,27639],{"class":4669},[4173,46965,46966],{"class":4657,"line":10904},[4173,46967,4761],{"emptyLinePlaceholder":4760},[4173,46969,46970],{"class":4657,"line":10909},[4173,46971,46972],{"class":4766},"# Oder kürzer:\n",[4173,46974,46975],{"class":4657,"line":10914},[4173,46976,4761],{"emptyLinePlaceholder":4760},[4173,46978,46979,46981,46983,46985],{"class":4657,"line":10919},[4173,46980,27485],{"class":4661},[4173,46982,27634],{"class":4665},[4173,46984,27510],{"class":4669},[4173,46986,27639],{"class":4669},[4173,46988,46989],{"class":4657,"line":10933},[4173,46990,4761],{"emptyLinePlaceholder":4760},[4173,46992,46993],{"class":4657,"line":10938},[4173,46994,46995],{"class":4766},"# Übertragungsstatistiken\n",[4173,46997,46998],{"class":4657,"line":10959},[4173,46999,4761],{"emptyLinePlaceholder":4760},[4173,47001,47002,47004,47006,47008,47010],{"class":4657,"line":10964},[4173,47003,27485],{"class":4661},[4173,47005,27488],{"class":4665},[4173,47007,28031],{"class":4665},[4173,47009,27510],{"class":4669},[4173,47011,27639],{"class":4669},[4173,47013,47014],{"class":4657,"line":10969},[4173,47015,4761],{"emptyLinePlaceholder":4760},[4173,47017,47018],{"class":4657,"line":10974},[4173,47019,47020],{"class":4766},"# Dateien nur nach Prüfsumme vergleichen (langsamer aber genauer)\n",[4173,47022,47023],{"class":4657,"line":10982},[4173,47024,4761],{"emptyLinePlaceholder":4760},[4173,47026,47027,47029,47031,47033],{"class":4657,"line":10987},[4173,47028,27485],{"class":4661},[4173,47030,28055],{"class":4665},[4173,47032,27510],{"class":4669},[4173,47034,27639],{"class":4669},[16,47036,47038],{"id":47037},"rsync-in-cron-jobs","rsync in cron-Jobs",[11,47040,47042],{"id":47041},"tägliches-backup-um-230-uhr","Tägliches Backup um 2:30 Uhr",[414,47044,47045],{},"30 2 * * * rsync -az --delete \u002Fhome\u002F \u002Fbackup\u002Fhome\u002F >>\u002Fvar\u002Flog\u002Fbackup.log 2>&1",[11,47047,47049],{"id":47048},"backup-mit-tar","Backup mit tar",[16,47051,47053],{"id":47052},"tar-archivierung","tar – Archivierung",[11,47055,47057],{"id":47056},"archiv-erstellen","Archiv erstellen",[4647,47059,47061],{"className":4649,"code":47060,"language":4651,"meta":269,"style":269},"tar cvf archiv.tar datei1 datei2 verzeichnis\u002F\n\n# Archiv mit Komprimierung (gzip)\n\ntar czf archiv.tar.gz \u002Fverzeichnis\n\n# Archiv entpacken\n\ntar xvf archiv.tar\n\n# Komprimiertes Archiv entpacken\n\ntar xzf archiv.tar.gz\n\n# Inhalt anzeigen\n\ntar tf archiv.tar\n\n",[4653,47062,47063,47081,47085,47090,47094,47106,47110,47115,47119,47129,47133,47138,47142,47151,47155,47160,47164],{"__ignoreMap":269},[4173,47064,47065,47067,47070,47073,47076,47079],{"class":4657,"line":4658},[4173,47066,11594],{"class":4661},[4173,47068,47069],{"class":4669}," cvf",[4173,47071,47072],{"class":4669}," archiv.tar",[4173,47074,47075],{"class":4669}," datei1",[4173,47077,47078],{"class":4669}," datei2",[4173,47080,14842],{"class":4669},[4173,47082,47083],{"class":4657,"line":270},[4173,47084,4761],{"emptyLinePlaceholder":4760},[4173,47086,47087],{"class":4657,"line":1263},[4173,47088,47089],{"class":4766},"# Archiv mit Komprimierung (gzip)\n",[4173,47091,47092],{"class":4657,"line":4770},[4173,47093,4761],{"emptyLinePlaceholder":4760},[4173,47095,47096,47098,47100,47103],{"class":4657,"line":4775},[4173,47097,11594],{"class":4661},[4173,47099,26869],{"class":4669},[4173,47101,47102],{"class":4669}," archiv.tar.gz",[4173,47104,47105],{"class":4669}," \u002Fverzeichnis\n",[4173,47107,47108],{"class":4657,"line":6320},[4173,47109,4761],{"emptyLinePlaceholder":4760},[4173,47111,47112],{"class":4657,"line":6325},[4173,47113,47114],{"class":4766},"# Archiv entpacken\n",[4173,47116,47117],{"class":4657,"line":6343},[4173,47118,4761],{"emptyLinePlaceholder":4760},[4173,47120,47121,47123,47126],{"class":4657,"line":6348},[4173,47122,11594],{"class":4661},[4173,47124,47125],{"class":4669}," xvf",[4173,47127,47128],{"class":4669}," archiv.tar\n",[4173,47130,47131],{"class":4657,"line":6457},[4173,47132,4761],{"emptyLinePlaceholder":4760},[4173,47134,47135],{"class":4657,"line":6462},[4173,47136,47137],{"class":4766},"# Komprimiertes Archiv entpacken\n",[4173,47139,47140],{"class":4657,"line":6468},[4173,47141,4761],{"emptyLinePlaceholder":4760},[4173,47143,47144,47146,47149],{"class":4657,"line":6473},[4173,47145,11594],{"class":4661},[4173,47147,47148],{"class":4669}," xzf",[4173,47150,24680],{"class":4669},[4173,47152,47153],{"class":4657,"line":6479},[4173,47154,4761],{"emptyLinePlaceholder":4760},[4173,47156,47157],{"class":4657,"line":6503},[4173,47158,47159],{"class":4766},"# Inhalt anzeigen\n",[4173,47161,47162],{"class":4657,"line":6516},[4173,47163,4761],{"emptyLinePlaceholder":4760},[4173,47165,47166,47168,47171],{"class":4657,"line":6971},[4173,47167,11594],{"class":4661},[4173,47169,47170],{"class":4669}," tf",[4173,47172,47128],{"class":4669},[470,47174,47176],{"id":47175},"optionen","Optionen:",[765,47178,47179,47191],{},[768,47180,47181],{},[771,47182,47183,47187],{},[774,47184,47185],{},[42,47186,8964],{},[774,47188,47189],{},[42,47190,5800],{},[787,47192,47193,47200,47207,47215,47223,47231,47239],{},[771,47194,47195,47197],{},[792,47196,12490],{},[792,47198,47199],{},"Create (Archiv erstellen)",[771,47201,47202,47204],{},[792,47203,14220],{},[792,47205,47206],{},"Extract (Entpacken)",[771,47208,47209,47212],{},[792,47210,47211],{},"v",[792,47213,47214],{},"Verbose (Dateiliste anzeigen)",[771,47216,47217,47220],{},[792,47218,47219],{},"f",[792,47221,47222],{},"File (Archivdatei angeben)",[771,47224,47225,47228],{},[792,47226,47227],{},"z",[792,47229,47230],{},"gzip-Komprimierung",[771,47232,47233,47236],{},[792,47234,47235],{},"j",[792,47237,47238],{},"bzip2-Komprimierung",[771,47240,47241,47243],{},[792,47242,14477],{},[792,47244,47245],{},"Inhalt auflisten",[16,47247,47249],{"id":47248},"backup-skript-beispiel","Backup-Skript (Beispiel):",[4647,47251,47253],{"className":4649,"code":47252,"language":4651,"meta":269,"style":269},"#!\u002Fusr\u002Fbin\u002Fenv bash\n\nset -euo pipefail\n\nBACKUP_SRC=(\"\u002Fetc\" \"\u002Fvar\u002Fwww\")\n\nBACKUP_DEST=\"\u002Fbackup\"\n\nRETENTION_DAYS=7\n\nLOGFILE=\"\u002Fvar\u002Flog\u002Fbackup.log\"\n\nLOCKFILE=\"\u002Ftmp\u002Fbackup.lock\"\n\nlog() {\n\necho \"$(date ' %F %T') $1\" | tee -a \"$LOGFILE\"\n\n}\n\ncleanup() {\n\nrm -f \"$LOCKFILE\"\n\n}\n\ntrap cleanup EXIT\n\n[[ -f \"$LOCKFILE\" ]] && {\n\necho \"Already running\"\n\nexit 1\n\n}\n\ntouch \"$LOCKFILE\"\n\nTIMESTAMP=$(date %F_%H-%M-%S)\n\nTARGET=\"$BACKUP_DEST\u002Fbackup_$TIMESTAMP.tar.gz\"\n\nlog \"Starting backup...\"\n\ntar -czf \"$TARGET\" \"${BACKUP_SRC[@]}\"\n\nlog \"Cleaning old backups...\"\n\nfind \"$BACKUP_DEST\" -type f -mtime $RETENTION_DAYS -name \"*.tar.gz\" -delete\n\nlog \"Backup finished.\"\n\n",[4653,47254,47255,47259,47263,47271,47275,47291,47295,47304,47308,47316,47320,47329,47333,47341,47345,47351,47355,47382,47386,47390,47394,47400,47404,47416,47420,47424,47428,47436,47440,47455,47459,47466,47470,47476,47480,47484,47488,47498,47502,47517,47521,47537,47541,47547,47551,47573,47577,47583,47587,47612,47616],{"__ignoreMap":269},[4173,47256,47257],{"class":4657,"line":4658},[4173,47258,11155],{"class":4766},[4173,47260,47261],{"class":4657,"line":270},[4173,47262,4761],{"emptyLinePlaceholder":4760},[4173,47264,47265,47267,47269],{"class":4657,"line":1263},[4173,47266,11164],{"class":4665},[4173,47268,11167],{"class":4665},[4173,47270,11170],{"class":4669},[4173,47272,47273],{"class":4657,"line":4770},[4173,47274,4761],{"emptyLinePlaceholder":4760},[4173,47276,47277,47279,47281,47283,47286,47289],{"class":4657,"line":4775},[4173,47278,11179],{"class":4784},[4173,47280,6387],{"class":4788},[4173,47282,6390],{"class":4784},[4173,47284,47285],{"class":4669},"\"\u002Fetc\"",[4173,47287,47288],{"class":4669}," \"\u002Fvar\u002Fwww\"",[4173,47290,6402],{"class":4784},[4173,47292,47293],{"class":4657,"line":6320},[4173,47294,4761],{"emptyLinePlaceholder":4760},[4173,47296,47297,47299,47301],{"class":4657,"line":6325},[4173,47298,11200],{"class":4784},[4173,47300,6387],{"class":4788},[4173,47302,47303],{"class":4669},"\"\u002Fbackup\"\n",[4173,47305,47306],{"class":4657,"line":6343},[4173,47307,4761],{"emptyLinePlaceholder":4760},[4173,47309,47310,47312,47314],{"class":4657,"line":6348},[4173,47311,11214],{"class":4784},[4173,47313,6387],{"class":4788},[4173,47315,11219],{"class":4669},[4173,47317,47318],{"class":4657,"line":6457},[4173,47319,4761],{"emptyLinePlaceholder":4760},[4173,47321,47322,47324,47326],{"class":4657,"line":6462},[4173,47323,11228],{"class":4784},[4173,47325,6387],{"class":4788},[4173,47327,47328],{"class":4669},"\"\u002Fvar\u002Flog\u002Fbackup.log\"\n",[4173,47330,47331],{"class":4657,"line":6468},[4173,47332,4761],{"emptyLinePlaceholder":4760},[4173,47334,47335,47337,47339],{"class":4657,"line":6473},[4173,47336,11242],{"class":4784},[4173,47338,6387],{"class":4788},[4173,47340,11247],{"class":4669},[4173,47342,47343],{"class":4657,"line":6479},[4173,47344,4761],{"emptyLinePlaceholder":4760},[4173,47346,47347,47349],{"class":4657,"line":6503},[4173,47348,11266],{"class":4661},[4173,47350,7062],{"class":4784},[4173,47352,47353],{"class":4657,"line":6516},[4173,47354,4761],{"emptyLinePlaceholder":4760},[4173,47356,47357,47359,47361,47363,47366,47368,47370,47372,47374,47376,47378,47380],{"class":4657,"line":6971},[4173,47358,6309],{"class":4665},[4173,47360,11286],{"class":4669},[4173,47362,11289],{"class":4661},[4173,47364,47365],{"class":4669}," ' %F %T') ",[4173,47367,9887],{"class":4665},[4173,47369,6207],{"class":4669},[4173,47371,8928],{"class":4788},[4173,47373,11301],{"class":4661},[4173,47375,11304],{"class":4665},[4173,47377,6218],{"class":4669},[4173,47379,11309],{"class":4784},[4173,47381,6454],{"class":4669},[4173,47383,47384],{"class":4657,"line":10649},[4173,47385,4761],{"emptyLinePlaceholder":4760},[4173,47387,47388],{"class":4657,"line":10654},[4173,47389,7090],{"class":4784},[4173,47391,47392],{"class":4657,"line":10659},[4173,47393,4761],{"emptyLinePlaceholder":4760},[4173,47395,47396,47398],{"class":4657,"line":10664},[4173,47397,11324],{"class":4661},[4173,47399,7062],{"class":4784},[4173,47401,47402],{"class":4657,"line":10676},[4173,47403,4761],{"emptyLinePlaceholder":4760},[4173,47405,47406,47408,47410,47412,47414],{"class":4657,"line":10681},[4173,47407,11334],{"class":4661},[4173,47409,11337],{"class":4665},[4173,47411,6218],{"class":4669},[4173,47413,11342],{"class":4784},[4173,47415,6454],{"class":4669},[4173,47417,47418],{"class":4657,"line":10702},[4173,47419,4761],{"emptyLinePlaceholder":4760},[4173,47421,47422],{"class":4657,"line":10707},[4173,47423,7090],{"class":4784},[4173,47425,47426],{"class":4657,"line":10712},[4173,47427,4761],{"emptyLinePlaceholder":4760},[4173,47429,47430,47432,47434],{"class":4657,"line":10717},[4173,47431,11388],{"class":4665},[4173,47433,11391],{"class":4669},[4173,47435,11394],{"class":4669},[4173,47437,47438],{"class":4657,"line":10727},[4173,47439,4761],{"emptyLinePlaceholder":4760},[4173,47441,47442,47444,47446,47448,47450,47452],{"class":4657,"line":10732},[4173,47443,11403],{"class":4784},[4173,47445,10577],{"class":4788},[4173,47447,6218],{"class":4669},[4173,47449,11342],{"class":4784},[4173,47451,6207],{"class":4669},[4173,47453,47454],{"class":4784}," ]] && {\n",[4173,47456,47457],{"class":4657,"line":10737},[4173,47458,4761],{"emptyLinePlaceholder":4760},[4173,47460,47461,47463],{"class":4657,"line":10742},[4173,47462,6309],{"class":4665},[4173,47464,47465],{"class":4669}," \"Already running\"\n",[4173,47467,47468],{"class":4657,"line":10752},[4173,47469,4761],{"emptyLinePlaceholder":4760},[4173,47471,47472,47474],{"class":4657,"line":10757},[4173,47473,10898],{"class":4665},[4173,47475,10901],{"class":4665},[4173,47477,47478],{"class":4657,"line":10762},[4173,47479,4761],{"emptyLinePlaceholder":4760},[4173,47481,47482],{"class":4657,"line":10767},[4173,47483,7090],{"class":4784},[4173,47485,47486],{"class":4657,"line":10772},[4173,47487,4761],{"emptyLinePlaceholder":4760},[4173,47489,47490,47492,47494,47496],{"class":4657,"line":10777},[4173,47491,11437],{"class":4661},[4173,47493,6218],{"class":4669},[4173,47495,11342],{"class":4784},[4173,47497,6454],{"class":4669},[4173,47499,47500],{"class":4657,"line":10782},[4173,47501,4761],{"emptyLinePlaceholder":4760},[4173,47503,47504,47506,47508,47510,47512,47515],{"class":4657,"line":10787},[4173,47505,11522],{"class":4784},[4173,47507,6387],{"class":4788},[4173,47509,10249],{"class":4784},[4173,47511,11289],{"class":4661},[4173,47513,47514],{"class":4669}," %F_%H-%M-%S",[4173,47516,6402],{"class":4784},[4173,47518,47519],{"class":4657,"line":10800},[4173,47520,4761],{"emptyLinePlaceholder":4760},[4173,47522,47523,47525,47527,47529,47531,47533,47535],{"class":4657,"line":10805},[4173,47524,11542],{"class":4784},[4173,47526,6387],{"class":4788},[4173,47528,6207],{"class":4669},[4173,47530,11549],{"class":4784},[4173,47532,11552],{"class":4669},[4173,47534,11555],{"class":4784},[4173,47536,11558],{"class":4669},[4173,47538,47539],{"class":4657,"line":10818},[4173,47540,4761],{"emptyLinePlaceholder":4760},[4173,47542,47543,47545],{"class":4657,"line":10823},[4173,47544,11266],{"class":4661},[4173,47546,11569],{"class":4669},[4173,47548,47549],{"class":4657,"line":10836},[4173,47550,4761],{"emptyLinePlaceholder":4760},[4173,47552,47553,47555,47557,47559,47561,47563,47565,47567,47569,47571],{"class":4657,"line":10841},[4173,47554,11594],{"class":4661},[4173,47556,11597],{"class":4665},[4173,47558,6218],{"class":4669},[4173,47560,11602],{"class":4784},[4173,47562,6207],{"class":4669},[4173,47564,11607],{"class":4669},[4173,47566,11179],{"class":4784},[4173,47568,11612],{"class":4669},[4173,47570,11615],{"class":4788},[4173,47572,11618],{"class":4669},[4173,47574,47575],{"class":4657,"line":10846},[4173,47576,4761],{"emptyLinePlaceholder":4760},[4173,47578,47579,47581],{"class":4657,"line":10851},[4173,47580,11266],{"class":4661},[4173,47582,11669],{"class":4669},[4173,47584,47585],{"class":4657,"line":10867},[4173,47586,4761],{"emptyLinePlaceholder":4760},[4173,47588,47589,47591,47593,47595,47597,47599,47601,47603,47606,47608,47610],{"class":4657,"line":10872},[4173,47590,9459],{"class":4661},[4173,47592,6218],{"class":4669},[4173,47594,11549],{"class":4784},[4173,47596,6207],{"class":4669},[4173,47598,9497],{"class":4665},[4173,47600,10269],{"class":4669},[4173,47602,9737],{"class":4665},[4173,47604,47605],{"class":4784}," $RETENTION_DAYS ",[4173,47607,9523],{"class":4665},[4173,47609,11727],{"class":4669},[4173,47611,9769],{"class":4665},[4173,47613,47614],{"class":4657,"line":10877},[4173,47615,4761],{"emptyLinePlaceholder":4760},[4173,47617,47618,47620],{"class":4657,"line":10882},[4173,47619,11266],{"class":4661},[4173,47621,11740],{"class":4669},[11,47623,47625],{"id":47624},"bash-skripting","Bash-Skripting",[414,47627,47628],{},[1504,47629],{"alt":269,"src":47630},"\u002Fdownloads\u002FBSA\u002Fimages\u002Fap-zsmf_img_1.png",[16,47632,47634],{"id":47633},"skript-grundlagen-datenfluss","Skript-Grundlagen & Datenfluss",[21,47636,47637,47641,47645,47649,47653,47657,47661,47665,47669,47673,47681,47687],{},[24,47638,47639,6022],{},[42,47640,6021],{},[24,47642,47643,6028],{},[42,47644,6027],{},[24,47646,47647,6034],{},[42,47648,6033],{},[24,47650,47651,6040],{},[42,47652,6039],{},[24,47654,47655,6046],{},[42,47656,6045],{},[24,47658,47659,6052],{},[42,47660,6051],{},[24,47662,47663,6058],{},[42,47664,6057],{},[24,47666,47667,6064],{},[42,47668,6063],{},[24,47670,47671,6070],{},[42,47672,6069],{},[24,47674,47675,6076,47677],{},[42,47676,6075],{},[21,47678,47679],{},[24,47680,6081],{},[24,47682,47683,6087,47685],{},[42,47684,6086],{},[4173,47686,6090],{},[24,47688,47689,6096,47691,6100,47693,6100,47695,6107,47697],{},[42,47690,6095],{},[4173,47692,6099],{},[4173,47694,6103],{},[4173,47696,6106],{},[21,47698,47699,47701,47703],{},[24,47700,6112],{},[24,47702,6115],{},[24,47704,6118],{},[16,47706,47708],{"id":47707},"wichtige-variablen","Wichtige Variablen",[21,47710,47711,47715,47719,47723,47727,47731,47735],{},[24,47712,47713,6130],{},[42,47714,6129],{},[24,47716,47717,6136],{},[42,47718,6135],{},[24,47720,47721,6142],{},[42,47722,6141],{},[24,47724,47725,6148],{},[42,47726,6147],{},[24,47728,47729,6154],{},[42,47730,6153],{},[24,47732,47733,6160],{},[42,47734,6159],{},[24,47736,47737,6166],{},[42,47738,6165],{},[16,47740,47742],{"id":47741},"rechnen-mit-variablen","Rechnen mit Variablen",[414,47744,47745],{},"In Bash sind Variablen standardmäßig Text. Wenn mit Zahlen gerechnet werden soll, muss Bash ausdrücklich gesagt werden, dass eine arithmetische Berechnung gemeint ist.",[470,47747,47749],{"id":47748},"variable-setzen-und-ausgeben","Variable setzen und ausgeben",[4647,47751,47753],{"className":4649,"code":47752,"language":4651,"meta":269,"style":269},"zahl=5\n\necho \"$zahl\"\n\n",[4653,47754,47755,47764,47768],{"__ignoreMap":269},[4173,47756,47757,47760,47762],{"class":4657,"line":4658},[4173,47758,47759],{"class":4784},"zahl",[4173,47761,6387],{"class":4788},[4173,47763,32124],{"class":4669},[4173,47765,47766],{"class":4657,"line":270},[4173,47767,4761],{"emptyLinePlaceholder":4760},[4173,47769,47770,47772,47774,47777],{"class":4657,"line":1263},[4173,47771,6309],{"class":4665},[4173,47773,6218],{"class":4669},[4173,47775,47776],{"class":4784},"$zahl",[4173,47778,6454],{"class":4669},[414,47780,13241],{},[4647,47782,47784],{"className":4649,"code":47783,"language":4651,"meta":269,"style":269},"zahl=5 # richtig\n\nzahl = 5 # falsch!\n\nBei Variablenzuweisungen dürfen keine Leerzeichen um das = stehen.\n\n",[4653,47785,47786,47797,47801,47812,47816],{"__ignoreMap":269},[4173,47787,47788,47790,47792,47794],{"class":4657,"line":4658},[4173,47789,47759],{"class":4784},[4173,47791,6387],{"class":4788},[4173,47793,14292],{"class":4669},[4173,47795,47796],{"class":4766}," # richtig\n",[4173,47798,47799],{"class":4657,"line":270},[4173,47800,4761],{"emptyLinePlaceholder":4760},[4173,47802,47803,47805,47807,47809],{"class":4657,"line":1263},[4173,47804,47759],{"class":4661},[4173,47806,15169],{"class":4669},[4173,47808,16450],{"class":4665},[4173,47810,47811],{"class":4766}," # falsch!\n",[4173,47813,47814],{"class":4657,"line":4770},[4173,47815,4761],{"emptyLinePlaceholder":4760},[4173,47817,47818,47821,47824,47827,47830,47833,47836,47838,47840],{"class":4657,"line":4775},[4173,47819,47820],{"class":4661},"Bei",[4173,47822,47823],{"class":4669}," Variablenzuweisungen",[4173,47825,47826],{"class":4669}," dürfen",[4173,47828,47829],{"class":4669}," keine",[4173,47831,47832],{"class":4669}," Leerzeichen",[4173,47834,47835],{"class":4669}," um",[4173,47837,36472],{"class":4669},[4173,47839,15169],{"class":4669},[4173,47841,47842],{"class":4669}," stehen.\n",[470,47844,47846],{"id":47845},"rechnen-mit","Rechnen mit $(( ... ))",[414,47848,47849],{},"Die empfohlene Schreibweise für Ganzzahlrechnung ist:",[4647,47851,47853],{"className":4649,"code":47852,"language":4651,"meta":269,"style":269},"a=10\n\nb=3\n\necho $((a + b)) # 13\n\necho $((a - b)) # 7\n\necho $((a * b)) # 30\n\necho $((a \u002F b)) # 3\n\necho $((a % b)) # 1\n\n| Operator | Bedeutung | Beispiel |\n| --- | --- | --- |\n| + | Addition | $((a + b)) |\n| - | Subtraktion | $((a - b)) |\n|  | Multiplikation | $((a  b)) |\n| \u002F | Division | $((a \u002F b)) |\n| % | Modulo \u002F Rest | $((a % b)) |\n\n",[4653,47854,47855,47864,47868,47876,47880,47900,47904,47921,47925,47942,47946,47963,47967,47985,47989,48010,48027,48052,48075,48096,48119],{"__ignoreMap":269},[4173,47856,47857,47859,47861],{"class":4657,"line":4658},[4173,47858,4687],{"class":4784},[4173,47860,6387],{"class":4788},[4173,47862,47863],{"class":4669},"10\n",[4173,47865,47866],{"class":4657,"line":270},[4173,47867,4761],{"emptyLinePlaceholder":4760},[4173,47869,47870,47872,47874],{"class":4657,"line":1263},[4173,47871,6303],{"class":4784},[4173,47873,6387],{"class":4788},[4173,47875,31652],{"class":4669},[4173,47877,47878],{"class":4657,"line":4770},[4173,47879,4761],{"emptyLinePlaceholder":4760},[4173,47881,47882,47884,47887,47889,47891,47894,47897],{"class":4657,"line":4775},[4173,47883,6309],{"class":4665},[4173,47885,47886],{"class":4784}," $((",[4173,47888,4687],{"class":4661},[4173,47890,11719],{"class":4669},[4173,47892,47893],{"class":4669}," b",[4173,47895,47896],{"class":4784},")) ",[4173,47898,47899],{"class":4766},"# 13\n",[4173,47901,47902],{"class":4657,"line":6320},[4173,47903,4761],{"emptyLinePlaceholder":4760},[4173,47905,47906,47908,47910,47912,47914,47916,47918],{"class":4657,"line":6325},[4173,47907,6309],{"class":4665},[4173,47909,47886],{"class":4784},[4173,47911,4687],{"class":4661},[4173,47913,4785],{"class":4669},[4173,47915,47893],{"class":4669},[4173,47917,47896],{"class":4784},[4173,47919,47920],{"class":4766},"# 7\n",[4173,47922,47923],{"class":4657,"line":6343},[4173,47924,4761],{"emptyLinePlaceholder":4760},[4173,47926,47927,47929,47931,47933,47935,47937,47939],{"class":4657,"line":6348},[4173,47928,6309],{"class":4665},[4173,47930,47886],{"class":4784},[4173,47932,4687],{"class":4661},[4173,47934,7078],{"class":4665},[4173,47936,47893],{"class":4669},[4173,47938,47896],{"class":4784},[4173,47940,47941],{"class":4766},"# 30\n",[4173,47943,47944],{"class":4657,"line":6457},[4173,47945,4761],{"emptyLinePlaceholder":4760},[4173,47947,47948,47950,47952,47954,47956,47958,47960],{"class":4657,"line":6462},[4173,47949,6309],{"class":4665},[4173,47951,47886],{"class":4784},[4173,47953,4687],{"class":4661},[4173,47955,15091],{"class":4669},[4173,47957,47893],{"class":4669},[4173,47959,47896],{"class":4784},[4173,47961,47962],{"class":4766},"# 3\n",[4173,47964,47965],{"class":4657,"line":6468},[4173,47966,4761],{"emptyLinePlaceholder":4760},[4173,47968,47969,47971,47973,47975,47978,47980,47982],{"class":4657,"line":6473},[4173,47970,6309],{"class":4665},[4173,47972,47886],{"class":4784},[4173,47974,4687],{"class":4661},[4173,47976,47977],{"class":4669}," %",[4173,47979,47893],{"class":4669},[4173,47981,47896],{"class":4784},[4173,47983,47984],{"class":4766},"# 1\n",[4173,47986,47987],{"class":4657,"line":6479},[4173,47988,4761],{"emptyLinePlaceholder":4760},[4173,47990,47991,47994,47997,47999,48002,48004,48007],{"class":4657,"line":6503},[4173,47992,47993],{"class":4788},"|",[4173,47995,47996],{"class":4661}," Operator",[4173,47998,8928],{"class":4788},[4173,48000,48001],{"class":4661}," Bedeutung",[4173,48003,8928],{"class":4788},[4173,48005,48006],{"class":4661}," Beispiel",[4173,48008,48009],{"class":4788}," |\n",[4173,48011,48012,48014,48017,48019,48021,48023,48025],{"class":4657,"line":6516},[4173,48013,47993],{"class":4788},[4173,48015,48016],{"class":4661}," ---",[4173,48018,8928],{"class":4788},[4173,48020,48016],{"class":4661},[4173,48022,8928],{"class":4788},[4173,48024,48016],{"class":4661},[4173,48026,48009],{"class":4788},[4173,48028,48029,48031,48033,48035,48038,48040,48043,48045,48047,48049],{"class":4657,"line":6971},[4173,48030,47993],{"class":4788},[4173,48032,11719],{"class":4661},[4173,48034,8928],{"class":4788},[4173,48036,48037],{"class":4661}," Addition",[4173,48039,8928],{"class":4788},[4173,48041,48042],{"class":4661}," $((a",[4173,48044,11719],{"class":4669},[4173,48046,47893],{"class":4669},[4173,48048,47896],{"class":4784},[4173,48050,48051],{"class":4788},"|\n",[4173,48053,48054,48056,48058,48060,48063,48065,48067,48069,48071,48073],{"class":4657,"line":10649},[4173,48055,47993],{"class":4788},[4173,48057,4785],{"class":4661},[4173,48059,8928],{"class":4788},[4173,48061,48062],{"class":4661}," Subtraktion",[4173,48064,8928],{"class":4788},[4173,48066,48042],{"class":4661},[4173,48068,4785],{"class":4669},[4173,48070,47893],{"class":4669},[4173,48072,47896],{"class":4784},[4173,48074,48051],{"class":4788},[4173,48076,48077,48079,48082,48085,48087,48089,48092,48094],{"class":4657,"line":10654},[4173,48078,47993],{"class":4788},[4173,48080,48081],{"class":4788},"  |",[4173,48083,48084],{"class":4661}," Multiplikation",[4173,48086,8928],{"class":4788},[4173,48088,48042],{"class":4661},[4173,48090,48091],{"class":4669},"  b",[4173,48093,47896],{"class":4784},[4173,48095,48051],{"class":4788},[4173,48097,48098,48100,48102,48104,48107,48109,48111,48113,48115,48117],{"class":4657,"line":10659},[4173,48099,47993],{"class":4788},[4173,48101,15091],{"class":4661},[4173,48103,8928],{"class":4788},[4173,48105,48106],{"class":4661}," Division",[4173,48108,8928],{"class":4788},[4173,48110,48042],{"class":4661},[4173,48112,15091],{"class":4669},[4173,48114,47893],{"class":4669},[4173,48116,47896],{"class":4784},[4173,48118,48051],{"class":4788},[4173,48120,48121,48123,48125,48127,48130,48132,48135,48137,48139,48141,48143,48145],{"class":4657,"line":10664},[4173,48122,47993],{"class":4788},[4173,48124,47977],{"class":4661},[4173,48126,8928],{"class":4788},[4173,48128,48129],{"class":4661}," Modulo",[4173,48131,15091],{"class":4669},[4173,48133,48134],{"class":4669}," Rest",[4173,48136,8928],{"class":4788},[4173,48138,48042],{"class":4661},[4173,48140,47977],{"class":4669},[4173,48142,47893],{"class":4669},[4173,48144,47896],{"class":4784},[4173,48146,48051],{"class":4788},[470,48148,48150],{"id":48149},"ergebnis-in-variable-speichern","Ergebnis in Variable speichern",[4647,48152,48154],{"className":4649,"code":48153,"language":4651,"meta":269,"style":269},"a=7\n\nb=4\n\nergebnis=$((a + b))\n\necho \"Das Ergebnis ist: $ergebnis\"\n\n",[4653,48155,48156,48164,48168,48176,48180,48198,48202],{"__ignoreMap":269},[4173,48157,48158,48160,48162],{"class":4657,"line":4658},[4173,48159,4687],{"class":4784},[4173,48161,6387],{"class":4788},[4173,48163,11219],{"class":4669},[4173,48165,48166],{"class":4657,"line":270},[4173,48167,4761],{"emptyLinePlaceholder":4760},[4173,48169,48170,48172,48174],{"class":4657,"line":1263},[4173,48171,6303],{"class":4784},[4173,48173,6387],{"class":4788},[4173,48175,45139],{"class":4669},[4173,48177,48178],{"class":4657,"line":4770},[4173,48179,4761],{"emptyLinePlaceholder":4760},[4173,48181,48182,48185,48187,48190,48192,48194,48196],{"class":4657,"line":4775},[4173,48183,48184],{"class":4784},"ergebnis",[4173,48186,6387],{"class":4788},[4173,48188,48189],{"class":4784},"$((",[4173,48191,4687],{"class":4661},[4173,48193,11719],{"class":4669},[4173,48195,47893],{"class":4669},[4173,48197,10673],{"class":4784},[4173,48199,48200],{"class":4657,"line":6320},[4173,48201,4761],{"emptyLinePlaceholder":4760},[4173,48203,48204,48206,48209,48212],{"class":4657,"line":6325},[4173,48205,6309],{"class":4665},[4173,48207,48208],{"class":4669}," \"Das Ergebnis ist: ",[4173,48210,48211],{"class":4784},"$ergebnis",[4173,48213,6454],{"class":4669},[414,48215,48216],{},"Ausgabe:",[414,48218,48219],{},"Das Ergebnis ist: 11",[470,48221,48223],{"id":48222},"variable-hochzählen","Variable hochzählen",[4647,48225,48227],{"className":4649,"code":48226,"language":4651,"meta":269,"style":269},"zahl=1\n\nzahl=$((zahl + 1))\n\necho \"$zahl\"\n\n",[4653,48228,48229,48238,48242,48258,48262],{"__ignoreMap":269},[4173,48230,48231,48233,48235],{"class":4657,"line":4658},[4173,48232,47759],{"class":4784},[4173,48234,6387],{"class":4788},[4173,48236,48237],{"class":4669},"1\n",[4173,48239,48240],{"class":4657,"line":270},[4173,48241,4761],{"emptyLinePlaceholder":4760},[4173,48243,48244,48246,48248,48250,48252,48254,48256],{"class":4657,"line":1263},[4173,48245,47759],{"class":4784},[4173,48247,6387],{"class":4788},[4173,48249,48189],{"class":4784},[4173,48251,47759],{"class":4661},[4173,48253,11719],{"class":4669},[4173,48255,10264],{"class":4665},[4173,48257,10673],{"class":4784},[4173,48259,48260],{"class":4657,"line":4770},[4173,48261,4761],{"emptyLinePlaceholder":4760},[4173,48263,48264,48266,48268,48270],{"class":4657,"line":4775},[4173,48265,6309],{"class":4665},[4173,48267,6218],{"class":4669},[4173,48269,47776],{"class":4784},[4173,48271,6454],{"class":4669},[414,48273,48274],{},"Kurzformen:",[414,48276,48277],{},"((zahl++)) # um 1 erhöhen",[414,48279,48280],{},"((zahl--)) # um 1 verringern",[414,48282,48283],{},"((zahl += 5)) # 5 addieren",[414,48285,48286],{},"((zahl -= 2)) # 2 abziehen",[414,48288,8190],{},[4647,48290,48292],{"className":4649,"code":48291,"language":4651,"meta":269,"style":269},"counter=0\n\n((counter++))\n\n((counter++))\n\necho \"$counter\"\n\n",[4653,48293,48294,48303,48307,48316,48320,48328,48332],{"__ignoreMap":269},[4173,48295,48296,48299,48301],{"class":4657,"line":4658},[4173,48297,48298],{"class":4784},"counter",[4173,48300,6387],{"class":4788},[4173,48302,10511],{"class":4669},[4173,48304,48305],{"class":4657,"line":270},[4173,48306,4761],{"emptyLinePlaceholder":4760},[4173,48308,48309,48312,48314],{"class":4657,"line":1263},[4173,48310,48311],{"class":4784},"((counter",[4173,48313,10670],{"class":4788},[4173,48315,10673],{"class":4784},[4173,48317,48318],{"class":4657,"line":4770},[4173,48319,4761],{"emptyLinePlaceholder":4760},[4173,48321,48322,48324,48326],{"class":4657,"line":4775},[4173,48323,48311],{"class":4784},[4173,48325,10670],{"class":4788},[4173,48327,10673],{"class":4784},[4173,48329,48330],{"class":4657,"line":6320},[4173,48331,4761],{"emptyLinePlaceholder":4760},[4173,48333,48334,48336,48338,48341],{"class":4657,"line":6325},[4173,48335,6309],{"class":4665},[4173,48337,6218],{"class":4669},[4173,48339,48340],{"class":4784},"$counter",[4173,48342,6454],{"class":4669},[414,48344,48216],{},[414,48346,14206],{},[470,48348,48350],{"id":48349},"rechnen-in-bedingungen","Rechnen in Bedingungen",[4647,48352,48354],{"className":4649,"code":48353,"language":4651,"meta":269,"style":269},"alter=20\n\nif ((alter >= 18)); then\n\necho \"Volljährig\"\n\nelse\n\necho \"Minderjährig\"\n\nfi\n\n",[4653,48355,48356,48366,48370,48388,48392,48399,48403,48407,48411,48418,48422],{"__ignoreMap":269},[4173,48357,48358,48361,48363],{"class":4657,"line":4658},[4173,48359,48360],{"class":4784},"alter",[4173,48362,6387],{"class":4788},[4173,48364,48365],{"class":4669},"20\n",[4173,48367,48368],{"class":4657,"line":270},[4173,48369,4761],{"emptyLinePlaceholder":4760},[4173,48371,48372,48374,48377,48380,48383,48386],{"class":4657,"line":1263},[4173,48373,6201],{"class":4788},[4173,48375,48376],{"class":4784}," ((alter ",[4173,48378,48379],{"class":4788},">=",[4173,48381,48382],{"class":4665}," 18",[4173,48384,48385],{"class":4784},")); ",[4173,48387,6229],{"class":4788},[4173,48389,48390],{"class":4657,"line":4770},[4173,48391,4761],{"emptyLinePlaceholder":4760},[4173,48393,48394,48396],{"class":4657,"line":4775},[4173,48395,6309],{"class":4665},[4173,48397,48398],{"class":4669}," \"Volljährig\"\n",[4173,48400,48401],{"class":4657,"line":6320},[4173,48402,4761],{"emptyLinePlaceholder":4760},[4173,48404,48405],{"class":4657,"line":6325},[4173,48406,7657],{"class":4788},[4173,48408,48409],{"class":4657,"line":6343},[4173,48410,4761],{"emptyLinePlaceholder":4760},[4173,48412,48413,48415],{"class":4657,"line":6348},[4173,48414,6309],{"class":4665},[4173,48416,48417],{"class":4669}," \"Minderjährig\"\n",[4173,48419,48420],{"class":4657,"line":6457},[4173,48421,4761],{"emptyLinePlaceholder":4760},[4173,48423,48424],{"class":4657,"line":6462},[4173,48425,6247],{"class":4788},[414,48427,48428],{},"Bei Zahlenvergleichen ist diese Schreibweise oft lesbarer als:",[4647,48430,48432],{"className":4649,"code":48431,"language":4651,"meta":269,"style":269},"if [ \"$alter\" -ge 18 ]; then\n\necho \"Volljährig\"\n\nfi\n\n",[4653,48433,48434,48456,48460,48466,48470],{"__ignoreMap":269},[4173,48435,48436,48438,48440,48442,48445,48447,48450,48452,48454],{"class":4657,"line":4658},[4173,48437,6201],{"class":4788},[4173,48439,6204],{"class":4784},[4173,48441,6207],{"class":4669},[4173,48443,48444],{"class":4784},"$alter",[4173,48446,6207],{"class":4669},[4173,48448,48449],{"class":4788}," -ge",[4173,48451,48382],{"class":4665},[4173,48453,6226],{"class":4784},[4173,48455,6229],{"class":4788},[4173,48457,48458],{"class":4657,"line":270},[4173,48459,4761],{"emptyLinePlaceholder":4760},[4173,48461,48462,48464],{"class":4657,"line":1263},[4173,48463,6309],{"class":4665},[4173,48465,48398],{"class":4669},[4173,48467,48468],{"class":4657,"line":4770},[4173,48469,4761],{"emptyLinePlaceholder":4760},[4173,48471,48472],{"class":4657,"line":4775},[4173,48473,6247],{"class":4788},[470,48475,48477],{"id":48476},"achtung-bash-rechnet-nur-mit-ganzzahlen","Achtung: Bash rechnet nur mit Ganzzahlen",[4647,48479,48481],{"className":4649,"code":48480,"language":4651,"meta":269,"style":269},"echo $((5 \u002F 2))\n\n",[4653,48482,48483],{"__ignoreMap":269},[4173,48484,48485,48487,48489,48491,48493,48495],{"class":4657,"line":4658},[4173,48486,6309],{"class":4665},[4173,48488,47886],{"class":4784},[4173,48490,14292],{"class":4661},[4173,48492,15091],{"class":4669},[4173,48494,15327],{"class":4665},[4173,48496,10673],{"class":4784},[414,48498,48216],{},[414,48500,14206],{},[414,48502,48503],{},"Bash rundet nicht mathematisch, sondern schneidet Nachkommastellen ab. Für Kommazahlen nutzt man z. B. bc:",[4647,48505,48507],{"className":4649,"code":48506,"language":4651,"meta":269,"style":269},"echo \"scale=2; 5 \u002F 2\" | bc\n\n",[4653,48508,48509],{"__ignoreMap":269},[4173,48510,48511,48513,48516,48518],{"class":4657,"line":4658},[4173,48512,6309],{"class":4665},[4173,48514,48515],{"class":4669}," \"scale=2; 5 \u002F 2\"",[4173,48517,8928],{"class":4788},[4173,48519,48520],{"class":4661}," bc\n",[414,48522,48216],{},[414,48524,48525],{},"2.50",[470,48527,48529],{"id":48528},"falsch-gesetzte-klammern-beim-rechnen","Falsch gesetzte Klammern beim Rechnen",[414,48531,48532],{},"Beim Rechnen mit Variablen müssen die Klammern exakt zusammenpassen. Bash unterscheidet zwischen arithmetischer Expansion $(( ... )), normaler Kommando-Ersetzung $( ... ) und Bedingungen mit (( ... )). Eine falsch gesetzte oder vergessene Klammer führt meistens zu einem Syntaxfehler oder zu einem ganz anderen Verhalten.",[414,48534,48535],{},[42,48536,48537],{},"Richtig: arithmetische Expansion",[4647,48539,48541],{"className":4649,"code":48540,"language":4651,"meta":269,"style":269},"a=5\n\nb=2\n\necho $((a + b)) # 7\n\necho $((a * (b + 3))) # 25\n\nDie äußeren doppelten Klammern $(( ... )) bedeuten: Bash soll den Inhalt als Rechnung auswerten. Innere Klammern können wie in der Mathematik verwendet werden, um die Reihenfolge festzulegen.\n\n",[4653,48542,48543,48551,48555,48564,48568,48584,48588,48611,48615],{"__ignoreMap":269},[4173,48544,48545,48547,48549],{"class":4657,"line":4658},[4173,48546,4687],{"class":4784},[4173,48548,6387],{"class":4788},[4173,48550,32124],{"class":4669},[4173,48552,48553],{"class":4657,"line":270},[4173,48554,4761],{"emptyLinePlaceholder":4760},[4173,48556,48557,48559,48561],{"class":4657,"line":1263},[4173,48558,6303],{"class":4784},[4173,48560,6387],{"class":4788},[4173,48562,48563],{"class":4669},"2\n",[4173,48565,48566],{"class":4657,"line":4770},[4173,48567,4761],{"emptyLinePlaceholder":4760},[4173,48569,48570,48572,48574,48576,48578,48580,48582],{"class":4657,"line":4775},[4173,48571,6309],{"class":4665},[4173,48573,47886],{"class":4784},[4173,48575,4687],{"class":4661},[4173,48577,11719],{"class":4669},[4173,48579,47893],{"class":4669},[4173,48581,47896],{"class":4784},[4173,48583,47920],{"class":4766},[4173,48585,48586],{"class":4657,"line":6320},[4173,48587,4761],{"emptyLinePlaceholder":4760},[4173,48589,48590,48592,48594,48596,48598,48601,48603,48605,48608],{"class":4657,"line":6325},[4173,48591,6309],{"class":4665},[4173,48593,47886],{"class":4784},[4173,48595,4687],{"class":4661},[4173,48597,7078],{"class":4665},[4173,48599,48600],{"class":4784}," (b ",[4173,48602,14419],{"class":4669},[4173,48604,16593],{"class":4665},[4173,48606,48607],{"class":4784},"))) ",[4173,48609,48610],{"class":4766},"# 25\n",[4173,48612,48613],{"class":4657,"line":6343},[4173,48614,4761],{"emptyLinePlaceholder":4760},[4173,48616,48617,48620,48623,48626,48629,48632,48634,48637,48640,48643,48646,48649,48652,48655,48658,48661,48664,48666,48669,48672,48674,48677,48680,48683,48686,48688,48691,48694],{"class":4657,"line":6348},[4173,48618,48619],{"class":4661},"Die",[4173,48621,48622],{"class":4669}," äußeren",[4173,48624,48625],{"class":4669}," doppelten",[4173,48627,48628],{"class":4669}," Klammern",[4173,48630,48631],{"class":4784}," $(( ",[4173,48633,7778],{"class":4665},[4173,48635,48636],{"class":4784}," )) ",[4173,48638,48639],{"class":4669},"bedeuten:",[4173,48641,48642],{"class":4669}," Bash",[4173,48644,48645],{"class":4669}," soll",[4173,48647,48648],{"class":4669}," den",[4173,48650,48651],{"class":4669}," Inhalt",[4173,48653,48654],{"class":4669}," als",[4173,48656,48657],{"class":4669}," Rechnung",[4173,48659,48660],{"class":4669}," auswerten.",[4173,48662,48663],{"class":4669}," Innere",[4173,48665,48628],{"class":4669},[4173,48667,48668],{"class":4669}," können",[4173,48670,48671],{"class":4669}," wie",[4173,48673,16308],{"class":4669},[4173,48675,48676],{"class":4669}," der",[4173,48678,48679],{"class":4669}," Mathematik",[4173,48681,48682],{"class":4669}," verwendet",[4173,48684,48685],{"class":4669}," werden,",[4173,48687,47835],{"class":4669},[4173,48689,48690],{"class":4669}," die",[4173,48692,48693],{"class":4669}," Reihenfolge",[4173,48695,48696],{"class":4669}," festzulegen.\n",[414,48698,48699],{},[42,48700,48701],{},"Falsch: schließende Klammer fehlt",[4647,48703,48705],{"className":4649,"code":48704,"language":4651,"meta":269,"style":269},"a=5\n\nb=2\n\necho $((a + b)\n\n",[4653,48706,48707,48715,48719,48727,48731],{"__ignoreMap":269},[4173,48708,48709,48711,48713],{"class":4657,"line":4658},[4173,48710,4687],{"class":4784},[4173,48712,6387],{"class":4788},[4173,48714,32124],{"class":4669},[4173,48716,48717],{"class":4657,"line":270},[4173,48718,4761],{"emptyLinePlaceholder":4760},[4173,48720,48721,48723,48725],{"class":4657,"line":1263},[4173,48722,6303],{"class":4784},[4173,48724,6387],{"class":4788},[4173,48726,48563],{"class":4669},[4173,48728,48729],{"class":4657,"line":4770},[4173,48730,4761],{"emptyLinePlaceholder":4760},[4173,48732,48733,48735,48737,48739,48741,48743],{"class":4657,"line":4775},[4173,48734,6309],{"class":4665},[4173,48736,47886],{"class":4784},[4173,48738,4687],{"class":4661},[4173,48740,11719],{"class":4669},[4173,48742,47893],{"class":4669},[4173,48744,6402],{"class":4784},[414,48746,48747],{},"Typische Folge: Bash meldet einen Syntaxfehler, weil die arithmetische Expansion nicht korrekt abgeschlossen wurde, z. B. \"unexpected EOF\" oder \"syntax error\".",[414,48749,48750],{},[42,48751,48752],{},"Falsch: $() statt $(( )) verwendet",[4647,48754,48756],{"className":4649,"code":48755,"language":4651,"meta":269,"style":269},"a=5\n\nb=2\n\necho $(a + b)\n\nDas ist keine Rechnung. $( ... ) bedeutet Kommando-Ersetzung. Bash versucht also, den Inhalt als Befehl auszuführen. Dadurch entstehen Fehler wie \"command not found\".\n\n",[4653,48757,48758,48766,48770,48778,48782,48796,48800],{"__ignoreMap":269},[4173,48759,48760,48762,48764],{"class":4657,"line":4658},[4173,48761,4687],{"class":4784},[4173,48763,6387],{"class":4788},[4173,48765,32124],{"class":4669},[4173,48767,48768],{"class":4657,"line":270},[4173,48769,4761],{"emptyLinePlaceholder":4760},[4173,48771,48772,48774,48776],{"class":4657,"line":1263},[4173,48773,6303],{"class":4784},[4173,48775,6387],{"class":4788},[4173,48777,48563],{"class":4669},[4173,48779,48780],{"class":4657,"line":4770},[4173,48781,4761],{"emptyLinePlaceholder":4760},[4173,48783,48784,48786,48788,48790,48792,48794],{"class":4657,"line":4775},[4173,48785,6309],{"class":4665},[4173,48787,33489],{"class":4784},[4173,48789,4687],{"class":4661},[4173,48791,11719],{"class":4669},[4173,48793,47893],{"class":4669},[4173,48795,6402],{"class":4784},[4173,48797,48798],{"class":4657,"line":6320},[4173,48799,4761],{"emptyLinePlaceholder":4760},[4173,48801,48802,48805,48807,48809,48812,48815,48817,48820,48823,48826,48828,48831,48834,48836,48838,48840,48843,48846,48849,48852,48855,48857],{"class":4657,"line":6325},[4173,48803,48804],{"class":4661},"Das",[4173,48806,40404],{"class":4669},[4173,48808,47829],{"class":4669},[4173,48810,48811],{"class":4669}," Rechnung.",[4173,48813,48814],{"class":4784}," $( ",[4173,48816,7778],{"class":4665},[4173,48818,48819],{"class":4784}," ) ",[4173,48821,48822],{"class":4669},"bedeutet",[4173,48824,48825],{"class":4669}," Kommando-Ersetzung.",[4173,48827,48642],{"class":4669},[4173,48829,48830],{"class":4669}," versucht",[4173,48832,48833],{"class":4669}," also,",[4173,48835,48648],{"class":4669},[4173,48837,48651],{"class":4669},[4173,48839,48654],{"class":4669},[4173,48841,48842],{"class":4669}," Befehl",[4173,48844,48845],{"class":4669}," auszuführen.",[4173,48847,48848],{"class":4669}," Dadurch",[4173,48850,48851],{"class":4669}," entstehen",[4173,48853,48854],{"class":4669}," Fehler",[4173,48856,48671],{"class":4669},[4173,48858,48859],{"class":4669}," \"command not found\".\n",[414,48861,48862],{},[42,48863,48864],{},"Falsch: Klammern verändern die Rechenreihenfolge",[4647,48866,48868],{"className":4649,"code":48867,"language":4651,"meta":269,"style":269},"a=10\n\nb=2\n\nc=3\n\necho $((a + b * c)) # 16, weil Multiplikation vor Addition gilt\n\necho $(((a + b) * c)) # 36, weil zuerst a + b gerechnet wird\n\n",[4653,48869,48870,48878,48882,48890,48894,48902,48906,48928,48932],{"__ignoreMap":269},[4173,48871,48872,48874,48876],{"class":4657,"line":4658},[4173,48873,4687],{"class":4784},[4173,48875,6387],{"class":4788},[4173,48877,47863],{"class":4669},[4173,48879,48880],{"class":4657,"line":270},[4173,48881,4761],{"emptyLinePlaceholder":4760},[4173,48883,48884,48886,48888],{"class":4657,"line":1263},[4173,48885,6303],{"class":4784},[4173,48887,6387],{"class":4788},[4173,48889,48563],{"class":4669},[4173,48891,48892],{"class":4657,"line":4770},[4173,48893,4761],{"emptyLinePlaceholder":4760},[4173,48895,48896,48898,48900],{"class":4657,"line":4775},[4173,48897,12490],{"class":4784},[4173,48899,6387],{"class":4788},[4173,48901,31652],{"class":4669},[4173,48903,48904],{"class":4657,"line":6320},[4173,48905,4761],{"emptyLinePlaceholder":4760},[4173,48907,48908,48910,48912,48914,48916,48918,48920,48923,48925],{"class":4657,"line":6325},[4173,48909,6309],{"class":4665},[4173,48911,47886],{"class":4784},[4173,48913,4687],{"class":4661},[4173,48915,11719],{"class":4669},[4173,48917,47893],{"class":4669},[4173,48919,7078],{"class":4665},[4173,48921,48922],{"class":4669}," c",[4173,48924,47896],{"class":4784},[4173,48926,48927],{"class":4766},"# 16, weil Multiplikation vor Addition gilt\n",[4173,48929,48930],{"class":4657,"line":6343},[4173,48931,4761],{"emptyLinePlaceholder":4760},[4173,48933,48934,48936,48939,48941,48943,48945,48947,48949,48951,48953],{"class":4657,"line":6348},[4173,48935,6309],{"class":4665},[4173,48937,48938],{"class":4784}," $(((",[4173,48940,4687],{"class":4661},[4173,48942,11719],{"class":4669},[4173,48944,47893],{"class":4669},[4173,48946,6306],{"class":4784},[4173,48948,6328],{"class":4661},[4173,48950,48922],{"class":4669},[4173,48952,47896],{"class":4784},[4173,48954,48955],{"class":4766},"# 36, weil zuerst a + b gerechnet wird\n",[414,48957,48958],{},"Klammern sind also nicht nur für die Syntax wichtig, sondern verändern auch das Ergebnis. Wie in der Mathematik wird das berechnet, was in Klammern steht, zuerst.",[414,48960,48961],{},[42,48962,48963],{},"Falsch: einfache eckige Klammern für Rechnungen erwarten",[4647,48965,48967],{"className":4649,"code":48966,"language":4651,"meta":269,"style":269},"a=5\n\nb=2\n\nif [ a + b -gt 6 ]; then\n\necho \"größer\"\n\nfi\n\n",[4653,48968,48969,48977,48981,48989,48993,49010,49014,49021,49025],{"__ignoreMap":269},[4173,48970,48971,48973,48975],{"class":4657,"line":4658},[4173,48972,4687],{"class":4784},[4173,48974,6387],{"class":4788},[4173,48976,32124],{"class":4669},[4173,48978,48979],{"class":4657,"line":270},[4173,48980,4761],{"emptyLinePlaceholder":4760},[4173,48982,48983,48985,48987],{"class":4657,"line":1263},[4173,48984,6303],{"class":4784},[4173,48986,6387],{"class":4788},[4173,48988,48563],{"class":4669},[4173,48990,48991],{"class":4657,"line":4770},[4173,48992,4761],{"emptyLinePlaceholder":4760},[4173,48994,48995,48997,49000,49003,49006,49008],{"class":4657,"line":4775},[4173,48996,6201],{"class":4788},[4173,48998,48999],{"class":4784}," [ a + b ",[4173,49001,49002],{"class":4788},"-gt",[4173,49004,49005],{"class":4665}," 6",[4173,49007,6226],{"class":4784},[4173,49009,6229],{"class":4788},[4173,49011,49012],{"class":4657,"line":6320},[4173,49013,4761],{"emptyLinePlaceholder":4760},[4173,49015,49016,49018],{"class":4657,"line":6325},[4173,49017,6309],{"class":4665},[4173,49019,49020],{"class":4669}," \"größer\"\n",[4173,49022,49023],{"class":4657,"line":6343},[4173,49024,4761],{"emptyLinePlaceholder":4760},[4173,49026,49027],{"class":4657,"line":6348},[4173,49028,6247],{"class":4788},[414,49030,49031,49032,49035],{},"Die einfache eckige Klammer ",[4173,49033,49034],{}," ..."," ist ein Test-Befehl, aber keine Rechenumgebung. Für Rechnungen in Bedingungen ist (( ... )) besser geeignet:",[4647,49037,49039],{"className":4649,"code":49038,"language":4651,"meta":269,"style":269},"if ((a + b > 6)); then\n\necho \"größer\"\n\nfi\n\n",[4653,49040,49041,49061,49065,49071,49075],{"__ignoreMap":269},[4173,49042,49043,49045,49048,49050,49053,49055,49057,49059],{"class":4657,"line":4658},[4173,49044,6201],{"class":4788},[4173,49046,49047],{"class":4784}," ((a ",[4173,49049,14419],{"class":4788},[4173,49051,49052],{"class":4784}," b ",[4173,49054,4789],{"class":4788},[4173,49056,49005],{"class":4665},[4173,49058,48385],{"class":4784},[4173,49060,6229],{"class":4788},[4173,49062,49063],{"class":4657,"line":270},[4173,49064,4761],{"emptyLinePlaceholder":4760},[4173,49066,49067,49069],{"class":4657,"line":1263},[4173,49068,6309],{"class":4665},[4173,49070,49020],{"class":4669},[4173,49072,49073],{"class":4657,"line":4770},[4173,49074,4761],{"emptyLinePlaceholder":4760},[4173,49076,49077],{"class":4657,"line":4775},[4173,49078,6247],{"class":4788},[414,49080,49081],{},[42,49082,49083],{},"Merksatz zu Klammern beim Rechnen",[414,49085,49086,49087,49089,49090,49092,49093,49095,49097],{},"$(( ... )) = Rechnung ausführen",[7135,49088],{},"\n$( ... ) = Befehl ausführen und Ausgabe einsetzen",[7135,49091],{},"\n(( ... )) = Rechnung\u002FBedingung auswerten, oft bei if oder Schleifen",[7135,49094],{},[4173,49096,7778],{}," = Test-Befehl, z. B. für Dateien, Strings oder klassische Zahlenvergleiche",[16,49099,49101],{"id":49100},"listen-strings-und-arrays","Listen, Strings und Arrays",[414,49103,49104],{},"In Bash ist wichtig zu unterscheiden, ob etwas als ein zusammenhängender Text, als mehrere Wörter oder als Array mit mehreren Elementen behandelt wird.",[414,49106,49107],{},[42,49108,49109],{},"\"123\" ist ein String",[4647,49111,49113],{"className":4649,"code":49112,"language":4651,"meta":269,"style":269},"wert=\"123\"\n\necho \"$wert\"\n\n",[4653,49114,49115,49125,49129],{"__ignoreMap":269},[4173,49116,49117,49120,49122],{"class":4657,"line":4658},[4173,49118,49119],{"class":4784},"wert",[4173,49121,6387],{"class":4788},[4173,49123,49124],{"class":4669},"\"123\"\n",[4173,49126,49127],{"class":4657,"line":270},[4173,49128,4761],{"emptyLinePlaceholder":4760},[4173,49130,49131,49133,49135,49138],{"class":4657,"line":1263},[4173,49132,6309],{"class":4665},[4173,49134,6218],{"class":4669},[4173,49136,49137],{"class":4784},"$wert",[4173,49139,6454],{"class":4669},[414,49141,49142],{},"Hier ist 123 ein String, also Text. Trotzdem kann Bash damit rechnen, wenn der Inhalt nur aus Zahlen besteht:",[4647,49144,49146],{"className":4649,"code":49145,"language":4651,"meta":269,"style":269},"wert=\"123\"\n\necho $((wert + 1))\n\n",[4653,49147,49148,49156,49160],{"__ignoreMap":269},[4173,49149,49150,49152,49154],{"class":4657,"line":4658},[4173,49151,49119],{"class":4784},[4173,49153,6387],{"class":4788},[4173,49155,49124],{"class":4669},[4173,49157,49158],{"class":4657,"line":270},[4173,49159,4761],{"emptyLinePlaceholder":4760},[4173,49161,49162,49164,49166,49168,49170,49172],{"class":4657,"line":1263},[4173,49163,6309],{"class":4665},[4173,49165,47886],{"class":4784},[4173,49167,49119],{"class":4661},[4173,49169,11719],{"class":4669},[4173,49171,10264],{"class":4665},[4173,49173,10673],{"class":4784},[414,49175,48216],{},[414,49177,5939],{},[414,49179,25761],{},[414,49181,49182],{},"\"123\" # ein Text\u002FString mit drei Zeichen",[414,49184,49185],{},"123 # kann in Rechnungen als Zahl verwendet werden",[414,49187,49188],{},[42,49189,49190],{},"\"1 2 3\" ist ein String mit Leerzeichen",[4647,49192,49194],{"className":4649,"code":49193,"language":4651,"meta":269,"style":269},"werte=\"1 2 3\"\n\necho \"$werte\"\n\n",[4653,49195,49196,49206,49210],{"__ignoreMap":269},[4173,49197,49198,49201,49203],{"class":4657,"line":4658},[4173,49199,49200],{"class":4784},"werte",[4173,49202,6387],{"class":4788},[4173,49204,49205],{"class":4669},"\"1 2 3\"\n",[4173,49207,49208],{"class":4657,"line":270},[4173,49209,4761],{"emptyLinePlaceholder":4760},[4173,49211,49212,49214,49216,49219],{"class":4657,"line":1263},[4173,49213,6309],{"class":4665},[4173,49215,6218],{"class":4669},[4173,49217,49218],{"class":4784},"$werte",[4173,49220,6454],{"class":4669},[414,49222,48216],{},[414,49224,49225],{},"1 2 3",[414,49227,49228],{},"Mit Anführungszeichen bleibt es ein einziger Wert:",[4647,49230,49232],{"className":4649,"code":49231,"language":4651,"meta":269,"style":269},"for x in \"$werte\"; do\n\necho \"$x\"\n\ndone\n\n",[4653,49233,49234,49253,49257,49267,49271],{"__ignoreMap":269},[4173,49235,49236,49238,49241,49243,49245,49247,49249,49251],{"class":4657,"line":4658},[4173,49237,6425],{"class":4788},[4173,49239,49240],{"class":4784}," x ",[4173,49242,6431],{"class":4788},[4173,49244,6218],{"class":4669},[4173,49246,49218],{"class":4784},[4173,49248,6207],{"class":4669},[4173,49250,6498],{"class":4784},[4173,49252,6437],{"class":4788},[4173,49254,49255],{"class":4657,"line":270},[4173,49256,4761],{"emptyLinePlaceholder":4760},[4173,49258,49259,49261,49263,49265],{"class":4657,"line":1263},[4173,49260,6309],{"class":4665},[4173,49262,6218],{"class":4669},[4173,49264,6210],{"class":4784},[4173,49266,6454],{"class":4669},[4173,49268,49269],{"class":4657,"line":4770},[4173,49270,4761],{"emptyLinePlaceholder":4760},[4173,49272,49273],{"class":4657,"line":4775},[4173,49274,6519],{"class":4788},[414,49276,48216],{},[414,49278,49225],{},[414,49280,49281],{},"Die Schleife läuft hier nur einmal, weil \"$werte\" als ein kompletter String behandelt wird.",[414,49283,49284],{},[42,49285,49286],{},"Ohne Anführungszeichen wird daraus eine Liste",[4647,49288,49290],{"className":4649,"code":49289,"language":4651,"meta":269,"style":269},"werte=\"1 2 3\"\n\nfor x in $werte; do\n\necho \"$x\"\n\ndone\n\n",[4653,49291,49292,49300,49304,49317,49321,49331,49335],{"__ignoreMap":269},[4173,49293,49294,49296,49298],{"class":4657,"line":4658},[4173,49295,49200],{"class":4784},[4173,49297,6387],{"class":4788},[4173,49299,49205],{"class":4669},[4173,49301,49302],{"class":4657,"line":270},[4173,49303,4761],{"emptyLinePlaceholder":4760},[4173,49305,49306,49308,49310,49312,49315],{"class":4657,"line":1263},[4173,49307,6425],{"class":4788},[4173,49309,49240],{"class":4784},[4173,49311,6431],{"class":4788},[4173,49313,49314],{"class":4784}," $werte; ",[4173,49316,6437],{"class":4788},[4173,49318,49319],{"class":4657,"line":4770},[4173,49320,4761],{"emptyLinePlaceholder":4760},[4173,49322,49323,49325,49327,49329],{"class":4657,"line":4775},[4173,49324,6309],{"class":4665},[4173,49326,6218],{"class":4669},[4173,49328,6210],{"class":4784},[4173,49330,6454],{"class":4669},[4173,49332,49333],{"class":4657,"line":6320},[4173,49334,4761],{"emptyLinePlaceholder":4760},[4173,49336,49337],{"class":4657,"line":6325},[4173,49338,6519],{"class":4788},[414,49340,48216],{},[414,49342,14223],{},[414,49344,14206],{},[414,49346,14318],{},[414,49348,49349],{},"Ohne Anführungszeichen wird der Inhalt an Leerzeichen getrennt. Aus \"1 2 3\" werden also drei einzelne Werte.",[414,49351,49352],{},[42,49353,49354],{},"Unterschied: \"123\" und \"1 2 3\"",[4647,49356,49358],{"className":4649,"code":49357,"language":4651,"meta":269,"style":269},"a=\"123\"\n\nb=\"1 2 3\"\n\nfor x in $a; do\n\necho \"$x\"\n\ndone\n\n",[4653,49359,49360,49368,49372,49380,49384,49397,49401,49411,49415],{"__ignoreMap":269},[4173,49361,49362,49364,49366],{"class":4657,"line":4658},[4173,49363,4687],{"class":4784},[4173,49365,6387],{"class":4788},[4173,49367,49124],{"class":4669},[4173,49369,49370],{"class":4657,"line":270},[4173,49371,4761],{"emptyLinePlaceholder":4760},[4173,49373,49374,49376,49378],{"class":4657,"line":1263},[4173,49375,6303],{"class":4784},[4173,49377,6387],{"class":4788},[4173,49379,49205],{"class":4669},[4173,49381,49382],{"class":4657,"line":4770},[4173,49383,4761],{"emptyLinePlaceholder":4760},[4173,49385,49386,49388,49390,49392,49395],{"class":4657,"line":4775},[4173,49387,6425],{"class":4788},[4173,49389,49240],{"class":4784},[4173,49391,6431],{"class":4788},[4173,49393,49394],{"class":4784}," $a; ",[4173,49396,6437],{"class":4788},[4173,49398,49399],{"class":4657,"line":6320},[4173,49400,4761],{"emptyLinePlaceholder":4760},[4173,49402,49403,49405,49407,49409],{"class":4657,"line":6325},[4173,49404,6309],{"class":4665},[4173,49406,6218],{"class":4669},[4173,49408,6210],{"class":4784},[4173,49410,6454],{"class":4669},[4173,49412,49413],{"class":4657,"line":6343},[4173,49414,4761],{"emptyLinePlaceholder":4760},[4173,49416,49417],{"class":4657,"line":6348},[4173,49418,6519],{"class":4788},[414,49420,48216],{},[414,49422,18031],{},[414,49424,49425],{},"123 enthält keine Leerzeichen, also bleibt es ein Wert.",[4647,49427,49429],{"className":4649,"code":49428,"language":4651,"meta":269,"style":269},"for x in $b; do\n\necho \"$x\"\n\ndone\n\n",[4653,49430,49431,49444,49448,49458,49462],{"__ignoreMap":269},[4173,49432,49433,49435,49437,49439,49442],{"class":4657,"line":4658},[4173,49434,6425],{"class":4788},[4173,49436,49240],{"class":4784},[4173,49438,6431],{"class":4788},[4173,49440,49441],{"class":4784}," $b; ",[4173,49443,6437],{"class":4788},[4173,49445,49446],{"class":4657,"line":270},[4173,49447,4761],{"emptyLinePlaceholder":4760},[4173,49449,49450,49452,49454,49456],{"class":4657,"line":1263},[4173,49451,6309],{"class":4665},[4173,49453,6218],{"class":4669},[4173,49455,6210],{"class":4784},[4173,49457,6454],{"class":4669},[4173,49459,49460],{"class":4657,"line":4770},[4173,49461,4761],{"emptyLinePlaceholder":4760},[4173,49463,49464],{"class":4657,"line":4775},[4173,49465,6519],{"class":4788},[414,49467,48216],{},[414,49469,14223],{},[414,49471,14206],{},[414,49473,14318],{},[414,49475,49476],{},"1 2 3 enthält Leerzeichen, also wird es in mehrere Werte aufgeteilt.",[16,49478,49480],{"id":49479},"arrays-in-bash","Arrays in Bash",[414,49482,49483],{},"Ein Array ist eine echte Liste mit mehreren Elementen.",[4647,49485,49487],{"className":4649,"code":49486,"language":4651,"meta":269,"style":269},"zahlen=(1 2 3)\n\necho \"${zahlen[0]}\"\n\necho \"${zahlen[1]}\"\n\necho \"${zahlen[2]}\"\n\n",[4653,49488,49489,49506,49510,49521,49525,49536,49540],{"__ignoreMap":269},[4173,49490,49491,49494,49496,49498,49500,49502,49504],{"class":4657,"line":4658},[4173,49492,49493],{"class":4784},"zahlen",[4173,49495,6387],{"class":4788},[4173,49497,6390],{"class":4784},[4173,49499,14223],{"class":4665},[4173,49501,15327],{"class":4665},[4173,49503,16593],{"class":4665},[4173,49505,6402],{"class":4784},[4173,49507,49508],{"class":4657,"line":270},[4173,49509,4761],{"emptyLinePlaceholder":4760},[4173,49511,49512,49514,49516,49518],{"class":4657,"line":1263},[4173,49513,6309],{"class":4665},[4173,49515,11607],{"class":4669},[4173,49517,49493],{"class":4784},[4173,49519,49520],{"class":4669},"[0]}\"\n",[4173,49522,49523],{"class":4657,"line":4770},[4173,49524,4761],{"emptyLinePlaceholder":4760},[4173,49526,49527,49529,49531,49533],{"class":4657,"line":4775},[4173,49528,6309],{"class":4665},[4173,49530,11607],{"class":4669},[4173,49532,49493],{"class":4784},[4173,49534,49535],{"class":4669},"[1]}\"\n",[4173,49537,49538],{"class":4657,"line":6320},[4173,49539,4761],{"emptyLinePlaceholder":4760},[4173,49541,49542,49544,49546,49548],{"class":4657,"line":6325},[4173,49543,6309],{"class":4665},[4173,49545,11607],{"class":4669},[4173,49547,49493],{"class":4784},[4173,49549,49550],{"class":4669},"[2]}\"\n",[414,49552,48216],{},[414,49554,14223],{},[414,49556,14206],{},[414,49558,14318],{},[414,49560,49561],{},"Wichtig: Bash-Arrays beginnen bei Index 0.",[765,49563,49564,49577],{},[768,49565,49566],{},[771,49567,49568,49573],{},[774,49569,49570],{},[42,49571,49572],{},"Zugriff",[774,49574,49575],{},[42,49576,32778],{},[787,49578,49579,49589,49598],{},[771,49580,49581,49586],{},[792,49582,49583,49584,19762],{},"${zahlen",[4173,49585,12749],{},[792,49587,49588],{},"erstes Element",[771,49590,49591,49595],{},[792,49592,49583,49593,19762],{},[4173,49594,14223],{},[792,49596,49597],{},"zweites Element",[771,49599,49600,49604],{},[792,49601,49583,49602,19762],{},[4173,49603,14206],{},[792,49605,49606],{},"drittes Element",[470,49608,49610],{"id":49609},"alle-array-elemente-ausgeben","Alle Array-Elemente ausgeben",[4647,49612,49614],{"className":4649,"code":49613,"language":4651,"meta":269,"style":269},"zahlen=(1 2 3)\n\necho \"${zahlen[@]}\"\n\n",[4653,49615,49616,49632,49636],{"__ignoreMap":269},[4173,49617,49618,49620,49622,49624,49626,49628,49630],{"class":4657,"line":4658},[4173,49619,49493],{"class":4784},[4173,49621,6387],{"class":4788},[4173,49623,6390],{"class":4784},[4173,49625,14223],{"class":4665},[4173,49627,15327],{"class":4665},[4173,49629,16593],{"class":4665},[4173,49631,6402],{"class":4784},[4173,49633,49634],{"class":4657,"line":270},[4173,49635,4761],{"emptyLinePlaceholder":4760},[4173,49637,49638,49640,49642,49644,49646,49648],{"class":4657,"line":1263},[4173,49639,6309],{"class":4665},[4173,49641,11607],{"class":4669},[4173,49643,49493],{"class":4784},[4173,49645,11612],{"class":4669},[4173,49647,11615],{"class":4788},[4173,49649,11618],{"class":4669},[414,49651,48216],{},[414,49653,49225],{},[470,49655,49657],{"id":49656},"über-array-iterieren","Über Array iterieren",[4647,49659,49661],{"className":4649,"code":49660,"language":4651,"meta":269,"style":269},"zahlen=(1 2 3)\n\nfor zahl in \"${zahlen[@]}\"; do\n\necho \"$zahl\"\n\ndone\n\n",[4653,49662,49663,49679,49683,49707,49711,49721,49725],{"__ignoreMap":269},[4173,49664,49665,49667,49669,49671,49673,49675,49677],{"class":4657,"line":4658},[4173,49666,49493],{"class":4784},[4173,49668,6387],{"class":4788},[4173,49670,6390],{"class":4784},[4173,49672,14223],{"class":4665},[4173,49674,15327],{"class":4665},[4173,49676,16593],{"class":4665},[4173,49678,6402],{"class":4784},[4173,49680,49681],{"class":4657,"line":270},[4173,49682,4761],{"emptyLinePlaceholder":4760},[4173,49684,49685,49687,49690,49692,49694,49696,49698,49700,49703,49705],{"class":4657,"line":1263},[4173,49686,6425],{"class":4788},[4173,49688,49689],{"class":4784}," zahl ",[4173,49691,6431],{"class":4788},[4173,49693,11607],{"class":4669},[4173,49695,49493],{"class":4784},[4173,49697,11612],{"class":4669},[4173,49699,11615],{"class":4788},[4173,49701,49702],{"class":4669},"]}\"",[4173,49704,6498],{"class":4784},[4173,49706,6437],{"class":4788},[4173,49708,49709],{"class":4657,"line":4770},[4173,49710,4761],{"emptyLinePlaceholder":4760},[4173,49712,49713,49715,49717,49719],{"class":4657,"line":4775},[4173,49714,6309],{"class":4665},[4173,49716,6218],{"class":4669},[4173,49718,47776],{"class":4784},[4173,49720,6454],{"class":4669},[4173,49722,49723],{"class":4657,"line":6320},[4173,49724,4761],{"emptyLinePlaceholder":4760},[4173,49726,49727],{"class":4657,"line":6325},[4173,49728,6519],{"class":4788},[414,49730,48216],{},[414,49732,14223],{},[414,49734,14206],{},[414,49736,14318],{},[414,49738,49739],{},"Diese Schreibweise ist sicher und empfohlen:",[414,49741,49742,49743,49745],{},"\"${array",[4173,49744,11615],{},"}\"",[470,49747,49749,49750,49745],{"id":49748},"unterschied-zwischen-array-und-array","Unterschied zwischen \"$array\" und \"${array",[4173,49751,11615],{},[4647,49753,49755],{"className":4649,"code":49754,"language":4651,"meta":269,"style":269},"werte=(\"Apfel Birne\" \"Banane\" \"Kirsche\")\n\n",[4653,49756,49757],{"__ignoreMap":269},[4173,49758,49759,49761,49763,49765,49767,49769,49771],{"class":4657,"line":4658},[4173,49760,49200],{"class":4784},[4173,49762,6387],{"class":4788},[4173,49764,6390],{"class":4784},[4173,49766,6393],{"class":4669},[4173,49768,6396],{"class":4669},[4173,49770,6399],{"class":4669},[4173,49772,6402],{"class":4784},[414,49774,49775],{},"Richtig:",[4647,49777,49779],{"className":4649,"code":49778,"language":4651,"meta":269,"style":269},"for wert in \"${werte[@]}\"; do\n\necho \"$wert\"\n\ndone\n\n",[4653,49780,49781,49804,49808,49818,49822],{"__ignoreMap":269},[4173,49782,49783,49785,49788,49790,49792,49794,49796,49798,49800,49802],{"class":4657,"line":4658},[4173,49784,6425],{"class":4788},[4173,49786,49787],{"class":4784}," wert ",[4173,49789,6431],{"class":4788},[4173,49791,11607],{"class":4669},[4173,49793,49200],{"class":4784},[4173,49795,11612],{"class":4669},[4173,49797,11615],{"class":4788},[4173,49799,49702],{"class":4669},[4173,49801,6498],{"class":4784},[4173,49803,6437],{"class":4788},[4173,49805,49806],{"class":4657,"line":270},[4173,49807,4761],{"emptyLinePlaceholder":4760},[4173,49809,49810,49812,49814,49816],{"class":4657,"line":1263},[4173,49811,6309],{"class":4665},[4173,49813,6218],{"class":4669},[4173,49815,49137],{"class":4784},[4173,49817,6454],{"class":4669},[4173,49819,49820],{"class":4657,"line":4770},[4173,49821,4761],{"emptyLinePlaceholder":4760},[4173,49823,49824],{"class":4657,"line":4775},[4173,49825,6519],{"class":4788},[414,49827,48216],{},[414,49829,49830],{},"Apfel Birne",[414,49832,49833],{},"Banane",[414,49835,49836],{},"Kirsche",[414,49838,49839],{},"Falsch bzw. oft problematisch:",[4647,49841,49843],{"className":4649,"code":49842,"language":4651,"meta":269,"style":269},"for wert in ${werte[@]}; do\n\necho \"$wert\"\n\ndone\n\n",[4653,49844,49845,49863,49867,49877,49881],{"__ignoreMap":269},[4173,49846,49847,49849,49851,49853,49856,49858,49861],{"class":4657,"line":4658},[4173,49848,6425],{"class":4788},[4173,49850,49787],{"class":4784},[4173,49852,6431],{"class":4788},[4173,49854,49855],{"class":4784}," ${werte[",[4173,49857,11615],{"class":4788},[4173,49859,49860],{"class":4784},"]}; ",[4173,49862,6437],{"class":4788},[4173,49864,49865],{"class":4657,"line":270},[4173,49866,4761],{"emptyLinePlaceholder":4760},[4173,49868,49869,49871,49873,49875],{"class":4657,"line":1263},[4173,49870,6309],{"class":4665},[4173,49872,6218],{"class":4669},[4173,49874,49137],{"class":4784},[4173,49876,6454],{"class":4669},[4173,49878,49879],{"class":4657,"line":4770},[4173,49880,4761],{"emptyLinePlaceholder":4760},[4173,49882,49883],{"class":4657,"line":4775},[4173,49884,6519],{"class":4788},[414,49886,48216],{},[414,49888,49889],{},"Apfel",[414,49891,49892],{},"Birne",[414,49894,49833],{},[414,49896,49836],{},[414,49898,49899,49900,49902],{},"Ohne Anführungszeichen wird \"Apfel Birne\" in zwei Wörter zerlegt. Deshalb sollten Arrays fast immer mit \"${array",[4173,49901,11615],{},"}\" durchlaufen werden.",[470,49904,49906],{"id":49905},"merksätze","Merksätze",[21,49908,49909,49912,49915,49918,49921,49924],{},[24,49910,49911],{},"\"123\" ist ein String, kann aber als Zahl verwendet werden, wenn nur Ziffern enthalten sind.",[24,49913,49914],{},"\"1 2 3\" ist ein String mit Leerzeichen.",[24,49916,49917],{},"Ohne Anführungszeichen wird an Leerzeichen getrennt.",[24,49919,49920],{},"Mit Anführungszeichen bleibt der Inhalt ein zusammenhängender Wert.",[24,49922,49923],{},"Arrays sind echte Listen und werden mit Klammern geschrieben: array=(wert1 wert2 wert3).",[24,49925,49926,49927,49929],{},"Beim Durchlaufen von Arrays ist \"${array",[4173,49928,11615],{},"}\" die sichere Standardform.",[16,49931,6171],{"id":49932},"logik-bedingungen",[414,49934,49935],{},[42,49936,6176],{},[21,49938,49939,49941],{},[24,49940,6181],{},[24,49942,6184],{},[16,49944,49946],{"id":49945},"if-abfrage","If-Abfrage:",[414,49948,6191],{},[4647,49950,49951],{"className":4649,"code":6194,"language":4651,"meta":269,"style":269},[4653,49952,49953,49977,49981,49985,49989],{"__ignoreMap":269},[4173,49954,49955,49957,49959,49961,49963,49965,49967,49969,49971,49973,49975],{"class":4657,"line":4658},[4173,49956,6201],{"class":4788},[4173,49958,6204],{"class":4784},[4173,49960,6207],{"class":4669},[4173,49962,6210],{"class":4784},[4173,49964,6207],{"class":4669},[4173,49966,6215],{"class":4788},[4173,49968,6218],{"class":4669},[4173,49970,6221],{"class":4784},[4173,49972,6207],{"class":4669},[4173,49974,6226],{"class":4784},[4173,49976,6229],{"class":4788},[4173,49978,49979],{"class":4657,"line":270},[4173,49980,4761],{"emptyLinePlaceholder":4760},[4173,49982,49983],{"class":4657,"line":1263},[4173,49984,6238],{"class":4766},[4173,49986,49987],{"class":4657,"line":4770},[4173,49988,4761],{"emptyLinePlaceholder":4760},[4173,49990,49991],{"class":4657,"line":4775},[4173,49992,6247],{"class":4788},[16,49994,6252],{"id":49995},"die-case-anweisung-mehrfach-auswahl",[414,49997,6191],{},[4647,49999,50001],{"className":4649,"code":50000,"language":4651,"meta":269,"style":269},"case $foo in\n\na) echo \"foo is A\" ;; #(foo = a)\n\nb) echo \"foo is B\" ;; #(foo = b)\n\n*) echo \"foo is not A or B\" ;; #(alles anderes)\n\nEsac\n\n",[4653,50002,50003,50011,50015,50029,50033,50047,50051,50065,50069],{"__ignoreMap":269},[4173,50004,50005,50007,50009],{"class":4657,"line":4658},[4173,50006,6264],{"class":4788},[4173,50008,6267],{"class":4784},[4173,50010,6270],{"class":4788},[4173,50012,50013],{"class":4657,"line":270},[4173,50014,4761],{"emptyLinePlaceholder":4760},[4173,50016,50017,50019,50021,50023,50025,50027],{"class":4657,"line":1263},[4173,50018,4687],{"class":6279},[4173,50020,6282],{"class":4788},[4173,50022,6285],{"class":4665},[4173,50024,6288],{"class":4669},[4173,50026,6291],{"class":4784},[4173,50028,6294],{"class":4766},[4173,50030,50031],{"class":4657,"line":4770},[4173,50032,4761],{"emptyLinePlaceholder":4760},[4173,50034,50035,50037,50039,50041,50043,50045],{"class":4657,"line":4775},[4173,50036,6303],{"class":4661},[4173,50038,6306],{"class":4784},[4173,50040,6309],{"class":4665},[4173,50042,6312],{"class":4669},[4173,50044,6291],{"class":4784},[4173,50046,6317],{"class":4766},[4173,50048,50049],{"class":4657,"line":6320},[4173,50050,4761],{"emptyLinePlaceholder":4760},[4173,50052,50053,50055,50057,50059,50061,50063],{"class":4657,"line":6325},[4173,50054,6328],{"class":4661},[4173,50056,6306],{"class":4784},[4173,50058,6309],{"class":4665},[4173,50060,6335],{"class":4669},[4173,50062,6291],{"class":4784},[4173,50064,6340],{"class":4766},[4173,50066,50067],{"class":4657,"line":6343},[4173,50068,4761],{"emptyLinePlaceholder":4760},[4173,50070,50071],{"class":4657,"line":6348},[4173,50072,50073],{"class":4661},"Esac\n",[414,50075,6354],{},[16,50077,50079],{"id":50078},"for-loop-beispiel-über-eine-liste-iterieren","for – loop Beispiel: Über eine Liste iterieren",[414,50081,6363],{},[414,50083,6191],{},[4647,50085,50087],{"className":4649,"code":50086,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\nMEIN_ARRAY=(\"Apfel Birne\" \"Banane\" \"Kirsche\")\n\nMEINE_LISTE=\"Apfel Birne Banane\"\n\nfor obst in $MEINE_LISTE; do\n\necho \"Ich mag $obst\"\n\ndone\n\n# Liste von Werten durchgehen\n\nfor tier in Hund Katze Maus; do\n\necho \"Das ist ein(e): $tier\"\n\ndone\n\n",[4653,50088,50089,50093,50097,50113,50117,50125,50129,50141,50145,50155,50159,50163,50167,50171,50175,50193,50197,50207,50211],{"__ignoreMap":269},[4173,50090,50091],{"class":4657,"line":4658},[4173,50092,6375],{"class":4766},[4173,50094,50095],{"class":4657,"line":270},[4173,50096,4761],{"emptyLinePlaceholder":4760},[4173,50098,50099,50101,50103,50105,50107,50109,50111],{"class":4657,"line":1263},[4173,50100,6384],{"class":4784},[4173,50102,6387],{"class":4788},[4173,50104,6390],{"class":4784},[4173,50106,6393],{"class":4669},[4173,50108,6396],{"class":4669},[4173,50110,6399],{"class":4669},[4173,50112,6402],{"class":4784},[4173,50114,50115],{"class":4657,"line":4770},[4173,50116,4761],{"emptyLinePlaceholder":4760},[4173,50118,50119,50121,50123],{"class":4657,"line":4775},[4173,50120,6411],{"class":4784},[4173,50122,6387],{"class":4788},[4173,50124,6416],{"class":4669},[4173,50126,50127],{"class":4657,"line":6320},[4173,50128,4761],{"emptyLinePlaceholder":4760},[4173,50130,50131,50133,50135,50137,50139],{"class":4657,"line":6325},[4173,50132,6425],{"class":4788},[4173,50134,6428],{"class":4784},[4173,50136,6431],{"class":4788},[4173,50138,6434],{"class":4784},[4173,50140,6437],{"class":4788},[4173,50142,50143],{"class":4657,"line":6343},[4173,50144,4761],{"emptyLinePlaceholder":4760},[4173,50146,50147,50149,50151,50153],{"class":4657,"line":6348},[4173,50148,6309],{"class":4665},[4173,50150,6448],{"class":4669},[4173,50152,6451],{"class":4784},[4173,50154,6454],{"class":4669},[4173,50156,50157],{"class":4657,"line":6457},[4173,50158,4761],{"emptyLinePlaceholder":4760},[4173,50160,50161],{"class":4657,"line":6462},[4173,50162,6519],{"class":4788},[4173,50164,50165],{"class":4657,"line":6468},[4173,50166,4761],{"emptyLinePlaceholder":4760},[4173,50168,50169],{"class":4657,"line":6473},[4173,50170,6476],{"class":4766},[4173,50172,50173],{"class":4657,"line":6479},[4173,50174,4761],{"emptyLinePlaceholder":4760},[4173,50176,50177,50179,50181,50183,50185,50187,50189,50191],{"class":4657,"line":6503},[4173,50178,6425],{"class":4788},[4173,50180,6484],{"class":4784},[4173,50182,6431],{"class":4788},[4173,50184,6489],{"class":4669},[4173,50186,6492],{"class":4669},[4173,50188,6495],{"class":4669},[4173,50190,6498],{"class":4784},[4173,50192,6437],{"class":4788},[4173,50194,50195],{"class":4657,"line":6516},[4173,50196,4761],{"emptyLinePlaceholder":4760},[4173,50198,50199,50201,50203,50205],{"class":4657,"line":6971},[4173,50200,6309],{"class":4665},[4173,50202,6508],{"class":4669},[4173,50204,6511],{"class":4784},[4173,50206,6454],{"class":4669},[4173,50208,50209],{"class":4657,"line":10649},[4173,50210,4761],{"emptyLinePlaceholder":4760},[4173,50212,50213],{"class":4657,"line":10654},[4173,50214,6519],{"class":4788},[470,50216,50218],{"id":50217},"beispiel-über-einen-zahlenbereich-iterieren","Beispiel: Über einen Zahlenbereich iterieren",[414,50220,6528],{},[414,50222,6191],{},[4647,50224,50226],{"className":4649,"code":50225,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Zählen von 1 bis 5\n\nfor i in {1..5}; do\n\necho \"Durchlauf Nummer: $i\"\n\ndone\n\n",[4653,50227,50228,50232,50236,50240,50244,50260,50264,50274,50278],{"__ignoreMap":269},[4173,50229,50230],{"class":4657,"line":4658},[4173,50231,6375],{"class":4766},[4173,50233,50234],{"class":4657,"line":270},[4173,50235,4761],{"emptyLinePlaceholder":4760},[4173,50237,50238],{"class":4657,"line":1263},[4173,50239,6548],{"class":4766},[4173,50241,50242],{"class":4657,"line":4770},[4173,50243,4761],{"emptyLinePlaceholder":4760},[4173,50245,50246,50248,50250,50252,50254,50256,50258],{"class":4657,"line":4775},[4173,50247,6425],{"class":4788},[4173,50249,6555],{"class":4784},[4173,50251,6431],{"class":4788},[4173,50253,6560],{"class":4784},[4173,50255,6563],{"class":4661},[4173,50257,6498],{"class":4784},[4173,50259,6437],{"class":4788},[4173,50261,50262],{"class":4657,"line":6320},[4173,50263,4761],{"emptyLinePlaceholder":4760},[4173,50265,50266,50268,50270,50272],{"class":4657,"line":6325},[4173,50267,6309],{"class":4665},[4173,50269,6574],{"class":4669},[4173,50271,6577],{"class":4784},[4173,50273,6454],{"class":4669},[4173,50275,50276],{"class":4657,"line":6343},[4173,50277,4761],{"emptyLinePlaceholder":4760},[4173,50279,50280],{"class":4657,"line":6348},[4173,50281,6519],{"class":4788},[470,50283,50285],{"id":50284},"profi-tipp-dateien-im-verzeichnis-verarbeiten","Profi-Tipp: Dateien im Verzeichnis verarbeiten",[414,50287,6592],{},[414,50289,6191],{},[4647,50291,50293],{"className":4649,"code":50292,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\n# Alle .txt Dateien im aktuellen Verzeichnis finden und ausgeben\n\nfor datei in *.txt; do\n\necho \"Verarbeite Datei: $datei\"\n\n# Hier könnte z.B. ein grep oder cat Befehl folgen\n\ndone\n\n",[4653,50294,50295,50299,50303,50307,50311,50325,50329,50339,50343,50347,50351],{"__ignoreMap":269},[4173,50296,50297],{"class":4657,"line":4658},[4173,50298,6375],{"class":4766},[4173,50300,50301],{"class":4657,"line":270},[4173,50302,4761],{"emptyLinePlaceholder":4760},[4173,50304,50305],{"class":4657,"line":1263},[4173,50306,6612],{"class":4766},[4173,50308,50309],{"class":4657,"line":4770},[4173,50310,4761],{"emptyLinePlaceholder":4760},[4173,50312,50313,50315,50317,50319,50321,50323],{"class":4657,"line":4775},[4173,50314,6425],{"class":4788},[4173,50316,6619],{"class":4784},[4173,50318,6431],{"class":4788},[4173,50320,6624],{"class":4669},[4173,50322,6498],{"class":4784},[4173,50324,6437],{"class":4788},[4173,50326,50327],{"class":4657,"line":6320},[4173,50328,4761],{"emptyLinePlaceholder":4760},[4173,50330,50331,50333,50335,50337],{"class":4657,"line":6325},[4173,50332,6309],{"class":4665},[4173,50334,6635],{"class":4669},[4173,50336,6638],{"class":4784},[4173,50338,6454],{"class":4669},[4173,50340,50341],{"class":4657,"line":6343},[4173,50342,4761],{"emptyLinePlaceholder":4760},[4173,50344,50345],{"class":4657,"line":6348},[4173,50346,6645],{"class":4766},[4173,50348,50349],{"class":4657,"line":6457},[4173,50350,4761],{"emptyLinePlaceholder":4760},[4173,50352,50353],{"class":4657,"line":6462},[4173,50354,6519],{"class":4788},[470,50356,6654],{"id":50357},"zusammenfassung-der-struktur",[21,50359,50360,50364,50368,50372,50376],{},[24,50361,50362,6661],{},[42,50363,6425],{},[24,50365,50366,6667],{},[42,50367,6666],{},[24,50369,50370,6672],{},[42,50371,6431],{},[24,50373,50374,6678],{},[42,50375,6677],{},[24,50377,50378,6684],{},[42,50379,6683],{},[414,50381,50382,6689],{},[42,50383,6425],{},[414,50385,50386,6695],{},[42,50387,50388],{},"While",[414,50390,50391,6701],{},[42,50392,50393],{},"Continue",[414,50395,50396,6707],{},[42,50397,50398],{},"Break",[16,50400,6712],{"id":50401},"test-operatoren-bedingungen-prüfen",[765,50403,50404,50420],{},[768,50405,50406],{},[771,50407,50408,50412,50416],{},[774,50409,50410],{},[42,50411,6723],{},[774,50413,50414],{},[42,50415,6728],{},[774,50417,50418],{},[42,50419,6733],{},[787,50421,50422,50432,50440,50448,50458,50466,50476,50484,50492,50502],{},[771,50423,50424,50428,50430],{},[792,50425,50426],{},[42,50427,6742],{},[792,50429,6745],{},[792,50431,6748],{},[771,50433,50434,50436,50438],{},[792,50435],{},[792,50437,6755],{},[792,50439,6758],{},[771,50441,50442,50444,50446],{},[792,50443],{},[792,50445,6765],{},[792,50447,6768],{},[771,50449,50450,50454,50456],{},[792,50451,50452],{},[42,50453,6775],{},[792,50455,6387],{},[792,50457,6780],{},[771,50459,50460,50462,50464],{},[792,50461],{},[792,50463,6787],{},[792,50465,6790],{},[771,50467,50468,50472,50474],{},[792,50469,50470],{},[42,50471,6797],{},[792,50473,6800],{},[792,50475,6803],{},[771,50477,50478,50480,50482],{},[792,50479],{},[792,50481,6810],{},[792,50483,6813],{},[771,50485,50486,50488,50490],{},[792,50487],{},[792,50489,6820],{},[792,50491,6823],{},[771,50493,50494,50498,50500],{},[792,50495,50496],{},[42,50497,6830],{},[792,50499,6833],{},[792,50501],{},[771,50503,50504,50506,50508],{},[792,50505],{},[792,50507,6842],{},[792,50509,6845],{},[414,50511,50512],{},[42,50513,6850],{},[16,50515,6855],{"id":50516},"while-schleife-datei-zeilenweise-einlesen",[414,50518,6191],{},[4647,50520,50522],{"className":4649,"code":50521,"language":4651,"meta":269,"style":269},"while read f; do\n\necho \"Line is $f\"\n\ndone \u003Cdateiname.txt\n\nwhile read benutzer; do\n\nmkdir \"\u002Fhome\u002F$benutzer\"\n\necho \"Ordner für $benutzer wurde erstellt.\"\n\ndone \u003Cbenutzerliste.txt #Datei einlesen wird als 1. Ausgeführt\n\n",[4653,50523,50524,50536,50540,50550,50554,50563,50567,50579,50583,50593,50597,50607,50611],{"__ignoreMap":269},[4173,50525,50526,50528,50530,50532,50534],{"class":4657,"line":4658},[4173,50527,6694],{"class":4788},[4173,50529,6869],{"class":4665},[4173,50531,10269],{"class":4669},[4173,50533,6498],{"class":4784},[4173,50535,6437],{"class":4788},[4173,50537,50538],{"class":4657,"line":270},[4173,50539,4761],{"emptyLinePlaceholder":4760},[4173,50541,50542,50544,50546,50548],{"class":4657,"line":1263},[4173,50543,6309],{"class":4665},[4173,50545,6891],{"class":4669},[4173,50547,6894],{"class":4784},[4173,50549,6454],{"class":4669},[4173,50551,50552],{"class":4657,"line":4770},[4173,50553,4761],{"emptyLinePlaceholder":4760},[4173,50555,50556,50558,50560],{"class":4657,"line":4775},[4173,50557,6683],{"class":4788},[4173,50559,6907],{"class":4788},[4173,50561,50562],{"class":4784},"dateiname.txt\n",[4173,50564,50565],{"class":4657,"line":6320},[4173,50566,4761],{"emptyLinePlaceholder":4760},[4173,50568,50569,50571,50573,50575,50577],{"class":4657,"line":6325},[4173,50570,6694],{"class":4788},[4173,50572,6869],{"class":4665},[4173,50574,42328],{"class":4669},[4173,50576,6498],{"class":4784},[4173,50578,6437],{"class":4788},[4173,50580,50581],{"class":4657,"line":6343},[4173,50582,4761],{"emptyLinePlaceholder":4760},[4173,50584,50585,50587,50589,50591],{"class":4657,"line":6348},[4173,50586,6940],{"class":4661},[4173,50588,6943],{"class":4669},[4173,50590,6946],{"class":4784},[4173,50592,6454],{"class":4669},[4173,50594,50595],{"class":4657,"line":6457},[4173,50596,4761],{"emptyLinePlaceholder":4760},[4173,50598,50599,50601,50603,50605],{"class":4657,"line":6462},[4173,50600,6309],{"class":4665},[4173,50602,6959],{"class":4669},[4173,50604,6946],{"class":4784},[4173,50606,6964],{"class":4669},[4173,50608,50609],{"class":4657,"line":6468},[4173,50610,4761],{"emptyLinePlaceholder":4760},[4173,50612,50613,50615,50617,50620],{"class":4657,"line":6473},[4173,50614,6683],{"class":4788},[4173,50616,6907],{"class":4788},[4173,50618,50619],{"class":4784},"benutzerliste.txt ",[4173,50621,50622],{"class":4766},"#Datei einlesen wird als 1. Ausgeführt\n",[16,50624,50626],{"id":50625},"if-abfrage-ausführlich","IF-Abfrage (ausführlich)",[470,50628,50630],{"id":50629},"die-einfache-if-anweisung","Die einfache if-Anweisung",[414,50632,7112],{},[4647,50634,50635],{"className":4649,"code":7115,"language":4651,"meta":269,"style":269},[4653,50636,50637,50643],{"__ignoreMap":269},[4173,50638,50639,50641],{"class":4657,"line":4658},[4173,50640,6201],{"class":4788},[4173,50642,7124],{"class":4661},[4173,50644,50645],{"class":4657,"line":270},[4173,50646,6229],{"class":4788},[414,50648,50649,50651,50653,50655,7141],{},[406,50650,7133],{},[7135,50652],{},[406,50654,7133],{},[7135,50656],{},[4647,50658,50659],{"className":4649,"code":7144,"language":4651,"meta":269,"style":269},[4653,50660,50661],{"__ignoreMap":269},[4173,50662,50663],{"class":4657,"line":4658},[4173,50664,6247],{"class":4788},[414,50666,7153],{},[470,50668,50670],{"id":50669},"das-programm-test","Das Programm test",[414,50672,7160,50673,7164],{},[406,50674,7163],{},[414,50676,7167],{},[4647,50678,50679],{"className":4649,"code":7170,"language":4651,"meta":269,"style":269},[4653,50680,50681],{"__ignoreMap":269},[4173,50682,50683,50685,50687],{"class":4657,"line":4658},[4173,50684,6201],{"class":4788},[4173,50686,7179],{"class":4665},[4173,50688,7182],{"class":4669},[414,50690,7185],{},[4647,50692,50693],{"className":4649,"code":7188,"language":4651,"meta":269,"style":269},[4653,50694,50695],{"__ignoreMap":269},[4173,50696,50697,50699],{"class":4657,"line":4658},[4173,50698,6201],{"class":4788},[4173,50700,7197],{"class":4784},[414,50702,7200],{},[4647,50704,50705],{"className":4649,"code":7203,"language":4651,"meta":269,"style":269},[4653,50706,50707],{"__ignoreMap":269},[4173,50708,50709,50711,50713,50715],{"class":4657,"line":4658},[4173,50710,7210],{"class":4784},[4173,50712,6387],{"class":4788},[4173,50714,7215],{"class":4669},[4173,50716,7218],{"class":4766},[470,50718,50720],{"id":50719},"die-verschiedenen-bedingungsüberprüfungen-mit-test-bzw-buch-seite-312","Die verschiedenen Bedingungsüberprüfungen mit test bzw. [ (Buch Seite 312)",[414,50722,50723,7235,50729,7239],{},[42,50724,7227,50725],{},[406,50726,7230,50727,7234],{},[4173,50728,7233],{},[406,50730,7238],{},[414,50732,50733,7247,50737,7250],{},[42,50734,7244,50735],{},[406,50736,7238],{},[406,50738,7238],{},[414,50740,50741,7247,50745,7260],{},[42,50742,7255,50743],{},[406,50744,7238],{},[406,50746,7238],{},[414,50748,50749,7247,50753,7270],{},[42,50750,7265,50751],{},[406,50752,7238],{},[406,50754,7238],{},[414,50756,50757,7247,50761,7280],{},[42,50758,7275,50759],{},[406,50760,7238],{},[406,50762,7238],{},[414,50764,50765,7247,50769,7290],{},[42,50766,7285,50767],{},[406,50768,7238],{},[406,50770,7238],{},[414,50772,50773,7247,50777,7300],{},[42,50774,7295,50775],{},[406,50776,7238],{},[406,50778,7238],{},[414,50780,50781,7247,50785,7310],{},[42,50782,7305,50783],{},[406,50784,7238],{},[406,50786,7238],{},[414,50788,50789,7247,50793,7320],{},[42,50790,7315,50791],{},[406,50792,7238],{},[406,50794,7238],{},[414,50796,50797,7247,50801,7330],{},[42,50798,7325,50799],{},[406,50800,7238],{},[406,50802,7238],{},[414,50804,50805,7247,50809,7340],{},[42,50806,7335,50807],{},[406,50808,7238],{},[406,50810,7238],{},[414,50812,50813,7247,50817,7350],{},[42,50814,7345,50815],{},[406,50816,7238],{},[406,50818,7238],{},[414,50820,50821,7247,50825,7360],{},[42,50822,7355,50823],{},[406,50824,7238],{},[406,50826,7238],{},[414,50828,50829,7247,50833,7370],{},[42,50830,7365,50831],{},[406,50832,7238],{},[406,50834,7238],{},[414,50836,50837,7247,50841,7380],{},[42,50838,7375,50839],{},[406,50840,7238],{},[406,50842,7238],{},[414,50844,50845,7247,50849,7390],{},[42,50846,7385,50847],{},[406,50848,7238],{},[406,50850,7238],{},[414,50852,50853,7247,50857,7400],{},[42,50854,7395,50855],{},[406,50856,7238],{},[406,50858,7238],{},[414,50860,50861,7412,50867,7415,50869,7418],{},[42,50862,50863,7408,50865],{},[406,50864,7407],{},[406,50866,7411],{},[406,50868,7407],{},[406,50870,7411],{},[414,50872,50873,7412,50879,7430,50881,7433],{},[42,50874,50875,7425,50877],{},[406,50876,7407],{},[406,50878,7411],{},[406,50880,7407],{},[406,50882,7411],{},[414,50884,50885,7412,50891,7445,50893,7448],{},[42,50886,50887,7440,50889],{},[406,50888,7407],{},[406,50890,7411],{},[406,50892,7407],{},[406,50894,7411],{},[414,50896,50897,7457,50901,7460],{},[42,50898,7453,50899],{},[406,50900,7456],{},[406,50902,7456],{},[414,50904,50905,7457,50909,7470],{},[42,50906,7465,50907],{},[406,50908,7456],{},[406,50910,7456],{},[414,50912,50913,7457,50919,7484,50921],{},[42,50914,50915,7478,50917],{},[406,50916,7477],{},[406,50918,7481],{},[406,50920,7477],{},[406,50922,7481],{},[414,50924,50925,7457,50931,7498,50933],{},[42,50926,50927,7493,50929],{},[406,50928,7477],{},[406,50930,7481],{},[406,50932,7477],{},[406,50934,7481],{},[414,50936,50937,7512,50943,7484,50945,7517],{},[42,50938,50939,7508,50941],{},[406,50940,7507],{},[406,50942,7511],{},[406,50944,7507],{},[406,50946,7511],{},[414,50948,50949,7512,50955,7498,50957,7531],{},[42,50950,50951,7524,50953],{},[406,50952,7507],{},[406,50954,7511],{},[406,50956,7507],{},[406,50958,7511],{},[414,50960,50961,7512,50967,7543,50969,7546],{},[42,50962,50963,7538,50965],{},[406,50964,7507],{},[406,50966,7511],{},[406,50968,7507],{},[406,50970,7511],{},[414,50972,50973,7512,50979,7558,50981,7561],{},[42,50974,50975,7553,50977],{},[406,50976,7507],{},[406,50978,7511],{},[406,50980,7507],{},[406,50982,7511],{},[414,50984,50985,7512,50991,7573,50993,7576],{},[42,50986,50987,7568,50989],{},[406,50988,7507],{},[406,50990,7511],{},[406,50992,7507],{},[406,50994,7511],{},[414,50996,50997,7512,51003,7588,51005,7591],{},[42,50998,50999,7583,51001],{},[406,51000,7507],{},[406,51002,7511],{},[406,51004,7507],{},[406,51006,7511],{},[414,51008,51009,7599,51013],{},[42,51010,6842,51011],{},[406,51012,7598],{},[406,51014,7598],{},[414,51016,51017,7611],{},[42,51018,51019,7608,51021],{},[406,51020,7598],{},[406,51022,7598],{},[414,51024,51025,7621],{},[42,51026,51027,7618,51029],{},[406,51028,7598],{},[406,51030,7598],{},[414,51032,7624],{},[470,51034,51036],{"id":51035},"die-erweiterte-if-else-anweisung","Die erweiterte if-else Anweisung",[414,51038,7631],{},[4647,51040,51041],{"className":4649,"code":7634,"language":4651,"meta":269,"style":269},[4653,51042,51043,51049,51053,51057,51061,51065],{"__ignoreMap":269},[4173,51044,51045,51047],{"class":4657,"line":4658},[4173,51046,6201],{"class":4788},[4173,51048,7643],{"class":4784},[4173,51050,51051],{"class":4657,"line":270},[4173,51052,6229],{"class":4788},[4173,51054,51055],{"class":4657,"line":1263},[4173,51056,7652],{"class":4661},[4173,51058,51059],{"class":4657,"line":4770},[4173,51060,7657],{"class":4788},[4173,51062,51063],{"class":4657,"line":4775},[4173,51064,7652],{"class":4661},[4173,51066,51067],{"class":4657,"line":6320},[4173,51068,6247],{"class":4788},[470,51070,51072],{"id":51071},"die-if-elif-else-anweisung","Die if-elif-else Anweisung",[414,51074,7672],{},[4647,51076,51077],{"className":4649,"code":7675,"language":4651,"meta":269,"style":269},[4653,51078,51079,51085,51089,51093,51099,51103,51107,51111,51115],{"__ignoreMap":269},[4173,51080,51081,51083],{"class":4657,"line":4658},[4173,51082,6201],{"class":4788},[4173,51084,7643],{"class":4784},[4173,51086,51087],{"class":4657,"line":270},[4173,51088,6229],{"class":4788},[4173,51090,51091],{"class":4657,"line":1263},[4173,51092,7652],{"class":4661},[4173,51094,51095,51097],{"class":4657,"line":4770},[4173,51096,7696],{"class":4788},[4173,51098,7643],{"class":4784},[4173,51100,51101],{"class":4657,"line":4775},[4173,51102,6229],{"class":4788},[4173,51104,51105],{"class":4657,"line":6320},[4173,51106,7652],{"class":4661},[4173,51108,51109],{"class":4657,"line":6325},[4173,51110,7657],{"class":4788},[4173,51112,51113],{"class":4657,"line":6343},[4173,51114,7652],{"class":4661},[4173,51116,51117],{"class":4657,"line":6348},[4173,51118,6247],{"class":4788},[16,51120,51122],{"id":51121},"mehrfachauswahl-mit-case","Mehrfachauswahl mit case",[414,51124,7725],{},[4647,51126,51127],{"className":4649,"code":7728,"language":4651,"meta":269,"style":269},[4653,51128,51129,51137,51147,51157],{"__ignoreMap":269},[4173,51130,51131,51133,51135],{"class":4657,"line":4658},[4173,51132,6264],{"class":4788},[4173,51134,7737],{"class":4784},[4173,51136,6270],{"class":4788},[4173,51138,51139,51141,51143,51145],{"class":4657,"line":270},[4173,51140,7744],{"class":6279},[4173,51142,6282],{"class":4788},[4173,51144,7749],{"class":4661},[4173,51146,7018],{"class":4784},[4173,51148,51149,51151,51153,51155],{"class":4657,"line":1263},[4173,51150,7756],{"class":6279},[4173,51152,6282],{"class":4788},[4173,51154,7761],{"class":4661},[4173,51156,7018],{"class":4784},[4173,51158,51159,51161,51163,51165],{"class":4657,"line":4770},[4173,51160,7768],{"class":6279},[4173,51162,6282],{"class":4788},[4173,51164,7773],{"class":4661},[4173,51166,7018],{"class":4784},[414,51168,7778],{},[4647,51170,51171],{"className":4649,"code":7781,"language":4651,"meta":269,"style":269},[4653,51172,51173],{"__ignoreMap":269},[4173,51174,51175],{"class":4657,"line":4658},[4173,51176,6351],{"class":4784},[16,51178,51180],{"id":51179},"essenzielle-werkzeuge","Essenzielle Werkzeuge",[21,51182,51183,51187,51191,51195],{},[24,51184,51185,7799],{},[42,51186,7798],{},[24,51188,51189,7805],{},[42,51190,7804],{},[24,51192,51193,7811],{},[42,51194,7810],{},[24,51196,51197,7817],{},[42,51198,7816],{},[16,51200,51202],{"id":51201},"funktionen","Funktionen",[414,51204,51205],{},[1504,51206],{"alt":269,"src":51207},"\u002Fdownloads\u002FBSA\u002Fimages\u002Fap-zsmf_img_2.png",[414,51209,51210],{},[1504,51211],{"alt":269,"src":51212},"\u002Fdownloads\u002FBSA\u002Fimages\u002Fap-zsmf_img_3.png",[11,51214,51216],{"id":51215},"definition","Definition",[4647,51218,51220],{"className":4649,"code":51219,"language":4651,"meta":269,"style":269},"meine_funktion() {\n\necho \"Hallo $1!\"\n\n}\n\n# Aufruf\n\nmeine_funktion \"Welt\"\n\n# Mit Rückgabewert (Exit-Code 0-255)\n\nist_gerade() {\n\nif (($1 % 2 == 0)); then\n\nreturn 0\n\nelse\n\nreturn 1\n\nfi\n\n}\n\n# Werte \"zurückgeben\" über echo\n\nberechne() {\n\necho $(($1 * $1))\n\n}\n\nergebnis=$(berechne 5)\n\n# Lokale Variablen\n\nfunktion() {\n\nlocal zahl=5 # Nur innerhalb der Funktion sichtbar\n\necho $zahl\n\n}\n\n",[4653,51221,51222,51229,51233,51245,51249,51253,51257,51262,51266,51273,51277,51282,51286,51293,51297,51318,51322,51330,51334,51338,51342,51348,51352,51356,51360,51364,51368,51373,51377,51384,51388,51402,51406,51410,51414,51428,51432,51437,51441,51448,51452,51467,51471,51478,51482],{"__ignoreMap":269},[4173,51223,51224,51227],{"class":4657,"line":4658},[4173,51225,51226],{"class":4661},"meine_funktion",[4173,51228,7062],{"class":4784},[4173,51230,51231],{"class":4657,"line":270},[4173,51232,4761],{"emptyLinePlaceholder":4760},[4173,51234,51235,51237,51240,51242],{"class":4657,"line":1263},[4173,51236,6309],{"class":4665},[4173,51238,51239],{"class":4669}," \"Hallo ",[4173,51241,9887],{"class":4665},[4173,51243,51244],{"class":4669},"!\"\n",[4173,51246,51247],{"class":4657,"line":4770},[4173,51248,4761],{"emptyLinePlaceholder":4760},[4173,51250,51251],{"class":4657,"line":4775},[4173,51252,7090],{"class":4784},[4173,51254,51255],{"class":4657,"line":6320},[4173,51256,4761],{"emptyLinePlaceholder":4760},[4173,51258,51259],{"class":4657,"line":6325},[4173,51260,51261],{"class":4766},"# Aufruf\n",[4173,51263,51264],{"class":4657,"line":6343},[4173,51265,4761],{"emptyLinePlaceholder":4760},[4173,51267,51268,51270],{"class":4657,"line":6348},[4173,51269,51226],{"class":4661},[4173,51271,51272],{"class":4669}," \"Welt\"\n",[4173,51274,51275],{"class":4657,"line":6457},[4173,51276,4761],{"emptyLinePlaceholder":4760},[4173,51278,51279],{"class":4657,"line":6462},[4173,51280,51281],{"class":4766},"# Mit Rückgabewert (Exit-Code 0-255)\n",[4173,51283,51284],{"class":4657,"line":6468},[4173,51285,4761],{"emptyLinePlaceholder":4760},[4173,51287,51288,51291],{"class":4657,"line":6473},[4173,51289,51290],{"class":4661},"ist_gerade",[4173,51292,7062],{"class":4784},[4173,51294,51295],{"class":4657,"line":6479},[4173,51296,4761],{"emptyLinePlaceholder":4760},[4173,51298,51299,51301,51304,51306,51308,51310,51312,51314,51316],{"class":4657,"line":6503},[4173,51300,6201],{"class":4788},[4173,51302,51303],{"class":4784}," ((",[4173,51305,9887],{"class":7074},[4173,51307,47977],{"class":4788},[4173,51309,15327],{"class":4665},[4173,51311,11494],{"class":4788},[4173,51313,25370],{"class":4665},[4173,51315,48385],{"class":4784},[4173,51317,6229],{"class":4788},[4173,51319,51320],{"class":4657,"line":6516},[4173,51321,4761],{"emptyLinePlaceholder":4760},[4173,51323,51324,51327],{"class":4657,"line":6971},[4173,51325,51326],{"class":4788},"return",[4173,51328,51329],{"class":4665}," 0\n",[4173,51331,51332],{"class":4657,"line":10649},[4173,51333,4761],{"emptyLinePlaceholder":4760},[4173,51335,51336],{"class":4657,"line":10654},[4173,51337,7657],{"class":4788},[4173,51339,51340],{"class":4657,"line":10659},[4173,51341,4761],{"emptyLinePlaceholder":4760},[4173,51343,51344,51346],{"class":4657,"line":10664},[4173,51345,51326],{"class":4788},[4173,51347,10901],{"class":4665},[4173,51349,51350],{"class":4657,"line":10676},[4173,51351,4761],{"emptyLinePlaceholder":4760},[4173,51353,51354],{"class":4657,"line":10681},[4173,51355,6247],{"class":4788},[4173,51357,51358],{"class":4657,"line":10702},[4173,51359,4761],{"emptyLinePlaceholder":4760},[4173,51361,51362],{"class":4657,"line":10707},[4173,51363,7090],{"class":4784},[4173,51365,51366],{"class":4657,"line":10712},[4173,51367,4761],{"emptyLinePlaceholder":4760},[4173,51369,51370],{"class":4657,"line":10717},[4173,51371,51372],{"class":4766},"# Werte \"zurückgeben\" über echo\n",[4173,51374,51375],{"class":4657,"line":10727},[4173,51376,4761],{"emptyLinePlaceholder":4760},[4173,51378,51379,51382],{"class":4657,"line":10732},[4173,51380,51381],{"class":4661},"berechne",[4173,51383,7062],{"class":4784},[4173,51385,51386],{"class":4657,"line":10737},[4173,51387,4761],{"emptyLinePlaceholder":4760},[4173,51389,51390,51392,51394,51396,51398,51400],{"class":4657,"line":10742},[4173,51391,6309],{"class":4665},[4173,51393,47886],{"class":4784},[4173,51395,9887],{"class":7074},[4173,51397,7078],{"class":4788},[4173,51399,7075],{"class":7074},[4173,51401,10673],{"class":4784},[4173,51403,51404],{"class":4657,"line":10752},[4173,51405,4761],{"emptyLinePlaceholder":4760},[4173,51407,51408],{"class":4657,"line":10757},[4173,51409,7090],{"class":4784},[4173,51411,51412],{"class":4657,"line":10762},[4173,51413,4761],{"emptyLinePlaceholder":4760},[4173,51415,51416,51418,51420,51422,51424,51426],{"class":4657,"line":10767},[4173,51417,48184],{"class":4784},[4173,51419,6387],{"class":4788},[4173,51421,10249],{"class":4784},[4173,51423,51381],{"class":4661},[4173,51425,16450],{"class":4665},[4173,51427,6402],{"class":4784},[4173,51429,51430],{"class":4657,"line":10772},[4173,51431,4761],{"emptyLinePlaceholder":4760},[4173,51433,51434],{"class":4657,"line":10777},[4173,51435,51436],{"class":4766},"# Lokale Variablen\n",[4173,51438,51439],{"class":4657,"line":10782},[4173,51440,4761],{"emptyLinePlaceholder":4760},[4173,51442,51443,51446],{"class":4657,"line":10787},[4173,51444,51445],{"class":4661},"funktion",[4173,51447,7062],{"class":4784},[4173,51449,51450],{"class":4657,"line":10800},[4173,51451,4761],{"emptyLinePlaceholder":4760},[4173,51453,51454,51457,51460,51462,51464],{"class":4657,"line":10805},[4173,51455,51456],{"class":4788},"local",[4173,51458,51459],{"class":4784}," zahl",[4173,51461,6387],{"class":4788},[4173,51463,14292],{"class":4665},[4173,51465,51466],{"class":4766}," # Nur innerhalb der Funktion sichtbar\n",[4173,51468,51469],{"class":4657,"line":10818},[4173,51470,4761],{"emptyLinePlaceholder":4760},[4173,51472,51473,51475],{"class":4657,"line":10823},[4173,51474,6309],{"class":4665},[4173,51476,51477],{"class":4784}," $zahl\n",[4173,51479,51480],{"class":4657,"line":10836},[4173,51481,4761],{"emptyLinePlaceholder":4760},[4173,51483,51484],{"class":4657,"line":10841},[4173,51485,7090],{"class":4784},[16,51487,51489],{"id":51488},"best-practices","Best Practices",[470,51491,51493],{"id":51492},"fehlerbehandlung-mit-trap","Fehlerbehandlung mit trap",[4647,51495,51497],{"className":4649,"code":51496,"language":4651,"meta":269,"style":269},"cleanup() {\n\nrm -f \"$LOCKFILE\"\n\necho \"Aufgeräumt\"\n\n}\n\ntrap cleanup EXIT INT TERM\n\n",[4653,51498,51499,51505,51509,51521,51525,51532,51536,51540,51544],{"__ignoreMap":269},[4173,51500,51501,51503],{"class":4657,"line":4658},[4173,51502,11324],{"class":4661},[4173,51504,7062],{"class":4784},[4173,51506,51507],{"class":4657,"line":270},[4173,51508,4761],{"emptyLinePlaceholder":4760},[4173,51510,51511,51513,51515,51517,51519],{"class":4657,"line":1263},[4173,51512,11334],{"class":4661},[4173,51514,11337],{"class":4665},[4173,51516,6218],{"class":4669},[4173,51518,11342],{"class":4784},[4173,51520,6454],{"class":4669},[4173,51522,51523],{"class":4657,"line":4770},[4173,51524,4761],{"emptyLinePlaceholder":4760},[4173,51526,51527,51529],{"class":4657,"line":4775},[4173,51528,6309],{"class":4665},[4173,51530,51531],{"class":4669}," \"Aufgeräumt\"\n",[4173,51533,51534],{"class":4657,"line":6320},[4173,51535,4761],{"emptyLinePlaceholder":4760},[4173,51537,51538],{"class":4657,"line":6325},[4173,51539,7090],{"class":4784},[4173,51541,51542],{"class":4657,"line":6343},[4173,51543,4761],{"emptyLinePlaceholder":4760},[4173,51545,51546,51548,51550,51553,51556],{"class":4657,"line":6348},[4173,51547,11388],{"class":4665},[4173,51549,11391],{"class":4669},[4173,51551,51552],{"class":4669}," EXIT",[4173,51554,51555],{"class":4669}," INT",[4173,51557,51558],{"class":4669}," TERM\n",[470,51560,51562],{"id":51561},"locking-verhindert-doppelte-ausführung","Locking (verhindert doppelte Ausführung)",[4647,51564,51566],{"className":4649,"code":51565,"language":4651,"meta":269,"style":269},"LOCKFILE=\"\u002Ftmp\u002Fmyscript.lock\"\n\nexec 200>\"$LOCKFILE\"\n\nflock -n 200 || {\n\necho \"Already running\"\n\nexit 1\n\n}\n\n",[4653,51567,51568,51577,51581,51596,51600,51615,51619,51625,51629,51635,51639],{"__ignoreMap":269},[4173,51569,51570,51572,51574],{"class":4657,"line":4658},[4173,51571,11242],{"class":4784},[4173,51573,6387],{"class":4788},[4173,51575,51576],{"class":4669},"\"\u002Ftmp\u002Fmyscript.lock\"\n",[4173,51578,51579],{"class":4657,"line":270},[4173,51580,4761],{"emptyLinePlaceholder":4760},[4173,51582,51583,51585,51587,51590,51592,51594],{"class":4657,"line":1263},[4173,51584,30714],{"class":4665},[4173,51586,16865],{"class":4665},[4173,51588,51589],{"class":4788},"0>",[4173,51591,6207],{"class":4669},[4173,51593,11342],{"class":4784},[4173,51595,6454],{"class":4669},[4173,51597,51598],{"class":4657,"line":4770},[4173,51599,4761],{"emptyLinePlaceholder":4760},[4173,51601,51602,51605,51607,51610,51612],{"class":4657,"line":4775},[4173,51603,51604],{"class":4661},"flock",[4173,51606,9376],{"class":4665},[4173,51608,51609],{"class":4665}," 200",[4173,51611,24074],{"class":4788},[4173,51613,51614],{"class":4784}," {\n",[4173,51616,51617],{"class":4657,"line":6320},[4173,51618,4761],{"emptyLinePlaceholder":4760},[4173,51620,51621,51623],{"class":4657,"line":6325},[4173,51622,6309],{"class":4665},[4173,51624,47465],{"class":4669},[4173,51626,51627],{"class":4657,"line":6343},[4173,51628,4761],{"emptyLinePlaceholder":4760},[4173,51630,51631,51633],{"class":4657,"line":6348},[4173,51632,10898],{"class":4665},[4173,51634,10901],{"class":4665},[4173,51636,51637],{"class":4657,"line":6457},[4173,51638,4761],{"emptyLinePlaceholder":4760},[4173,51640,51641],{"class":4657,"line":6462},[4173,51642,7090],{"class":4784},[470,51644,51646],{"id":51645},"main-struktur-empfohlen","main()-Struktur (empfohlen)",[4647,51648,51650],{"className":4649,"code":51649,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\n\nset -euo pipefail\n\ncheck_input() {\n\nif [ -z \"$1\" ]; then\n\necho \"Kein Parameter!\"\n\nexit 1\n\nfi\n\n}\n\nverarbeite() {\n\necho \"Verarbeite: $1\"\n\n}\n\nmain() {\n\ncheck_input \"$1\"\n\nverarbeite \"$1\"\n\n}\n\nmain \"$@\"\n\n",[4653,51651,51652,51656,51660,51668,51672,51679,51683,51701,51705,51712,51716,51722,51726,51730,51734,51738,51742,51749,51753,51763,51767,51771,51775,51782,51786,51796,51800,51810,51814,51818,51822],{"__ignoreMap":269},[4173,51653,51654],{"class":4657,"line":4658},[4173,51655,6375],{"class":4766},[4173,51657,51658],{"class":4657,"line":270},[4173,51659,4761],{"emptyLinePlaceholder":4760},[4173,51661,51662,51664,51666],{"class":4657,"line":1263},[4173,51663,11164],{"class":4665},[4173,51665,11167],{"class":4665},[4173,51667,11170],{"class":4669},[4173,51669,51670],{"class":4657,"line":4770},[4173,51671,4761],{"emptyLinePlaceholder":4760},[4173,51673,51674,51677],{"class":4657,"line":4775},[4173,51675,51676],{"class":4661},"check_input",[4173,51678,7062],{"class":4784},[4173,51680,51681],{"class":4657,"line":6320},[4173,51682,4761],{"emptyLinePlaceholder":4760},[4173,51684,51685,51687,51689,51691,51693,51695,51697,51699],{"class":4657,"line":6325},[4173,51686,6201],{"class":4788},[4173,51688,6204],{"class":4784},[4173,51690,20406],{"class":4788},[4173,51692,6218],{"class":4669},[4173,51694,9887],{"class":4665},[4173,51696,6207],{"class":4669},[4173,51698,6226],{"class":4784},[4173,51700,6229],{"class":4788},[4173,51702,51703],{"class":4657,"line":6343},[4173,51704,4761],{"emptyLinePlaceholder":4760},[4173,51706,51707,51709],{"class":4657,"line":6348},[4173,51708,6309],{"class":4665},[4173,51710,51711],{"class":4669}," \"Kein Parameter!\"\n",[4173,51713,51714],{"class":4657,"line":6457},[4173,51715,4761],{"emptyLinePlaceholder":4760},[4173,51717,51718,51720],{"class":4657,"line":6462},[4173,51719,10898],{"class":4665},[4173,51721,10901],{"class":4665},[4173,51723,51724],{"class":4657,"line":6468},[4173,51725,4761],{"emptyLinePlaceholder":4760},[4173,51727,51728],{"class":4657,"line":6473},[4173,51729,6247],{"class":4788},[4173,51731,51732],{"class":4657,"line":6479},[4173,51733,4761],{"emptyLinePlaceholder":4760},[4173,51735,51736],{"class":4657,"line":6503},[4173,51737,7090],{"class":4784},[4173,51739,51740],{"class":4657,"line":6516},[4173,51741,4761],{"emptyLinePlaceholder":4760},[4173,51743,51744,51747],{"class":4657,"line":6971},[4173,51745,51746],{"class":4661},"verarbeite",[4173,51748,7062],{"class":4784},[4173,51750,51751],{"class":4657,"line":10649},[4173,51752,4761],{"emptyLinePlaceholder":4760},[4173,51754,51755,51757,51759,51761],{"class":4657,"line":10654},[4173,51756,6309],{"class":4665},[4173,51758,37538],{"class":4669},[4173,51760,9887],{"class":4665},[4173,51762,6454],{"class":4669},[4173,51764,51765],{"class":4657,"line":10659},[4173,51766,4761],{"emptyLinePlaceholder":4760},[4173,51768,51769],{"class":4657,"line":10664},[4173,51770,7090],{"class":4784},[4173,51772,51773],{"class":4657,"line":10676},[4173,51774,4761],{"emptyLinePlaceholder":4760},[4173,51776,51777,51780],{"class":4657,"line":10681},[4173,51778,51779],{"class":4661},"main",[4173,51781,7062],{"class":4784},[4173,51783,51784],{"class":4657,"line":10702},[4173,51785,4761],{"emptyLinePlaceholder":4760},[4173,51787,51788,51790,51792,51794],{"class":4657,"line":10707},[4173,51789,51676],{"class":4661},[4173,51791,6218],{"class":4669},[4173,51793,9887],{"class":4665},[4173,51795,6454],{"class":4669},[4173,51797,51798],{"class":4657,"line":10712},[4173,51799,4761],{"emptyLinePlaceholder":4760},[4173,51801,51802,51804,51806,51808],{"class":4657,"line":10717},[4173,51803,51746],{"class":4661},[4173,51805,6218],{"class":4669},[4173,51807,9887],{"class":4665},[4173,51809,6454],{"class":4669},[4173,51811,51812],{"class":4657,"line":10727},[4173,51813,4761],{"emptyLinePlaceholder":4760},[4173,51815,51816],{"class":4657,"line":10732},[4173,51817,7090],{"class":4784},[4173,51819,51820],{"class":4657,"line":10737},[4173,51821,4761],{"emptyLinePlaceholder":4760},[4173,51823,51824,51826,51828,51830],{"class":4657,"line":10742},[4173,51825,51779],{"class":4661},[4173,51827,6218],{"class":4669},[4173,51829,11470],{"class":4665},[4173,51831,6454],{"class":4669},[11,51833,51835],{"id":51834},"vm-vs-docker","VM vs. Docker",[16,51837,51839],{"id":51838},"virtualisierung","Virtualisierung",[765,51841,51842,51860],{},[768,51843,51844],{},[771,51845,51846,51850,51855],{},[774,51847,51848],{},[42,51849,44626],{},[774,51851,51852],{},[42,51853,51854],{},"Virtuelle Maschine (VM)",[774,51856,51857],{},[42,51858,51859],{},"Docker Container",[787,51861,51862,51873,51884,51895,51905,51916,51927],{},[771,51863,51864,51867,51870],{},[792,51865,51866],{},"Isolation",[792,51868,51869],{},"Vollständig (eigener Kernel)",[792,51871,51872],{},"Prozess-Level (teilt Kernel mit Host)",[771,51874,51875,51878,51881],{},[792,51876,51877],{},"Ressourcen",[792,51879,51880],{},"Braucht viel RAM\u002FCPU (eigenes OS)",[792,51882,51883],{},"Leichtgewichtig",[771,51885,51886,51889,51892],{},[792,51887,51888],{},"Startzeit",[792,51890,51891],{},"Minuten",[792,51893,51894],{},"Sekunden",[771,51896,51897,51899,51902],{},[792,51898,9638],{},[792,51900,51901],{},"GB (volles Betriebssystem)",[792,51903,51904],{},"MB (nur App + Dependencies)",[771,51906,51907,51910,51913],{},[792,51908,51909],{},"Portabilität",[792,51911,51912],{},"Image-basiert",[792,51914,51915],{},"Container-Image (Docker Hub)",[771,51917,51918,51921,51924],{},[792,51919,51920],{},"Hypervisor",[792,51922,51923],{},"Ja (VMware, VirtualBox, KVM)",[792,51925,51926],{},"Docker Engine",[771,51928,51929,51932,51935],{},[792,51930,51931],{},"Use Case",[792,51933,51934],{},"Verschiedene OS gleichzeitig",[792,51936,51937],{},"Microservices, CI\u002FCD",[470,51939,51941],{"id":51940},"begriffe-virtualisierung","Begriffe (Virtualisierung):",[21,51943,51944,51950,51956],{},[24,51945,51946,51949],{},[42,51947,51948],{},"Hostsystem"," = System, auf dem die Virtualisierung läuft",[24,51951,51952,51955],{},[42,51953,51954],{},"Gastsystem"," = System in der VM",[24,51957,51958,51961],{},[42,51959,51960],{},"Hypervisor \u002F VMM"," = Virtualisierungssoftware",[470,51963,51965],{"id":51964},"virtualbox-netzwerktypen","VirtualBox Netzwerktypen:",[765,51967,51968,51980],{},[768,51969,51970],{},[771,51971,51972,51976],{},[774,51973,51974],{},[42,51975,6723],{},[774,51977,51978],{},[42,51979,5800],{},[787,51981,51982,51990,51998,52006,52014],{},[771,51983,51984,51987],{},[792,51985,51986],{},"NAT",[792,51988,51989],{},"Standard, VM nutzt Host als Router",[771,51991,51992,51995],{},[792,51993,51994],{},"NAT-Netzwerk",[792,51996,51997],{},"VMs können untereinander + nach außen kommunizieren",[771,51999,52000,52003],{},[792,52001,52002],{},"Bridged",[792,52004,52005],{},"VM bekommt direkten Netzwerkzugang",[771,52007,52008,52011],{},[792,52009,52010],{},"Internes Netzwerk",[792,52012,52013],{},"Nur VMs untereinander",[771,52015,52016,52019],{},[792,52017,52018],{},"Host-only",[792,52020,52021],{},"VMs + Host können kommunizieren",[16,52023,52024],{"id":8042},"Docker",[470,52026,52028],{"id":52027},"grundbegriffe","Grundbegriffe",[765,52030,52031,52043],{},[768,52032,52033],{},[771,52034,52035,52039],{},[774,52036,52037],{},[42,52038,29071],{},[774,52040,52041],{},[42,52042,5800],{},[787,52044,52045,52052,52059,52066,52074],{},[771,52046,52047,52049],{},[792,52048,29082],{},[792,52050,52051],{},"Bauplan\u002FVorlage (\"eingepackte Applikation\")",[771,52053,52054,52056],{},[792,52055,29090],{},[792,52057,52058],{},"Laufende Instanz eines Images",[771,52060,52061,52063],{},[792,52062,29098],{},[792,52064,52065],{},"Bauanleitung für ein Image",[771,52067,52068,52071],{},[792,52069,52070],{},"Docker Hub",[792,52072,52073],{},"Zentrale Registry für Images",[771,52075,52076,52078],{},[792,52077,29121],{},[792,52079,52080],{},"Persistenter Speicher",[470,52082,52083],{"id":29135},"Wichtige Docker-Befehle",[475,52085,52087],{"id":52086},"images-verwalten","Images verwalten",[4647,52089,52091],{"className":4649,"code":52090,"language":4651,"meta":269,"style":269},"docker image pull nginx # Image herunterladen\n\ndocker image build -t myapp:1.0 . # Image aus Dockerfile bauen\n\ndocker image ls # Alle Images anzeigen\n\ndocker image rm nginx # Image löschen\n\ndocker images prune # Ungenutzte Images löschen\n\n",[4653,52092,52093,52109,52113,52131,52135,52147,52151,52164,52168],{"__ignoreMap":269},[4173,52094,52095,52097,52100,52103,52106],{"class":4657,"line":4658},[4173,52096,8042],{"class":4661},[4173,52098,52099],{"class":4669}," image",[4173,52101,52102],{"class":4669}," pull",[4173,52104,52105],{"class":4669}," nginx",[4173,52107,52108],{"class":4766}," # Image herunterladen\n",[4173,52110,52111],{"class":4657,"line":270},[4173,52112,4761],{"emptyLinePlaceholder":4760},[4173,52114,52115,52117,52119,52121,52123,52126,52128],{"class":4657,"line":1263},[4173,52116,8042],{"class":4661},[4173,52118,52099],{"class":4669},[4173,52120,30355],{"class":4669},[4173,52122,15509],{"class":4665},[4173,52124,52125],{"class":4669}," myapp:1.0",[4173,52127,9481],{"class":4669},[4173,52129,52130],{"class":4766}," # Image aus Dockerfile bauen\n",[4173,52132,52133],{"class":4657,"line":4770},[4173,52134,4761],{"emptyLinePlaceholder":4760},[4173,52136,52137,52139,52141,52144],{"class":4657,"line":4775},[4173,52138,8042],{"class":4661},[4173,52140,52099],{"class":4669},[4173,52142,52143],{"class":4669}," ls",[4173,52145,52146],{"class":4766}," # Alle Images anzeigen\n",[4173,52148,52149],{"class":4657,"line":6320},[4173,52150,4761],{"emptyLinePlaceholder":4760},[4173,52152,52153,52155,52157,52159,52161],{"class":4657,"line":6325},[4173,52154,8042],{"class":4661},[4173,52156,52099],{"class":4669},[4173,52158,9794],{"class":4669},[4173,52160,52105],{"class":4669},[4173,52162,52163],{"class":4766}," # Image löschen\n",[4173,52165,52166],{"class":4657,"line":6343},[4173,52167,4761],{"emptyLinePlaceholder":4760},[4173,52169,52170,52172,52175,52177],{"class":4657,"line":6348},[4173,52171,8042],{"class":4661},[4173,52173,52174],{"class":4669}," images",[4173,52176,30500],{"class":4669},[4173,52178,52179],{"class":4766}," # Ungenutzte Images löschen\n",[475,52181,52183],{"id":52182},"container-verwalten","Container verwalten",[11,52185,30623],{"id":52186},"container-erstellen-und-starten",[4647,52188,52190],{"className":4649,"code":52189,"language":4651,"meta":269,"style":269},"docker run -d -p 8080:80 --name myweb nginx\n\ndocker run -it ubuntu bash # Interaktiv starten\n\ndocker run --rm alpine echo \"Hello\" # Nach Beenden löschen\n\n# Container verwalten\n\ndocker container ls # Laufende Container\n\ndocker container ls -a # Alle Container\n\ndocker container stop myweb # Stoppen\n\ndocker container start myweb # Starten\n\ndocker container rm myweb # Löschen\n\ndocker container rm -f myweb # Erzwungen löschen\n\ndocker container inspect myweb # Details anzeigen\n\n# Im Container arbeiten\n\ndocker exec -it myweb bash # Shell in laufendem Container\n\ndocker logs myweb # Logs anzeigen\n\ndocker logs -f myweb # Live-Logs\n\ndocker stats # Ressourcen-Monitoring\n\n",[4653,52191,52192,52211,52215,52232,52236,52255,52259,52264,52268,52280,52284,52297,52301,52315,52319,52332,52336,52349,52353,52368,52372,52385,52389,52394,52398,52413,52417,52428,52432,52445,52449],{"__ignoreMap":269},[4173,52193,52194,52196,52198,52200,52202,52204,52206,52209],{"class":4657,"line":4658},[4173,52195,8042],{"class":4661},[4173,52197,8045],{"class":4669},[4173,52199,8048],{"class":4665},[4173,52201,8206],{"class":4665},[4173,52203,8209],{"class":4669},[4173,52205,8212],{"class":4665},[4173,52207,52208],{"class":4669}," myweb",[4173,52210,8218],{"class":4669},[4173,52212,52213],{"class":4657,"line":270},[4173,52214,4761],{"emptyLinePlaceholder":4760},[4173,52216,52217,52219,52221,52223,52226,52229],{"class":4657,"line":1263},[4173,52218,8042],{"class":4661},[4173,52220,8045],{"class":4669},[4173,52222,30326],{"class":4665},[4173,52224,52225],{"class":4669}," ubuntu",[4173,52227,52228],{"class":4669}," bash",[4173,52230,52231],{"class":4766}," # Interaktiv starten\n",[4173,52233,52234],{"class":4657,"line":4770},[4173,52235,4761],{"emptyLinePlaceholder":4760},[4173,52237,52238,52240,52242,52244,52247,52249,52252],{"class":4657,"line":4775},[4173,52239,8042],{"class":4661},[4173,52241,8045],{"class":4669},[4173,52243,30329],{"class":4665},[4173,52245,52246],{"class":4669}," alpine",[4173,52248,6285],{"class":4669},[4173,52250,52251],{"class":4669}," \"Hello\"",[4173,52253,52254],{"class":4766}," # Nach Beenden löschen\n",[4173,52256,52257],{"class":4657,"line":6320},[4173,52258,4761],{"emptyLinePlaceholder":4760},[4173,52260,52261],{"class":4657,"line":6325},[4173,52262,52263],{"class":4766},"# Container verwalten\n",[4173,52265,52266],{"class":4657,"line":6343},[4173,52267,4761],{"emptyLinePlaceholder":4760},[4173,52269,52270,52272,52275,52277],{"class":4657,"line":6348},[4173,52271,8042],{"class":4661},[4173,52273,52274],{"class":4669}," container",[4173,52276,52143],{"class":4669},[4173,52278,52279],{"class":4766}," # Laufende Container\n",[4173,52281,52282],{"class":4657,"line":6457},[4173,52283,4761],{"emptyLinePlaceholder":4760},[4173,52285,52286,52288,52290,52292,52294],{"class":4657,"line":6462},[4173,52287,8042],{"class":4661},[4173,52289,52274],{"class":4669},[4173,52291,52143],{"class":4669},[4173,52293,11304],{"class":4665},[4173,52295,52296],{"class":4766}," # Alle Container\n",[4173,52298,52299],{"class":4657,"line":6468},[4173,52300,4761],{"emptyLinePlaceholder":4760},[4173,52302,52303,52305,52307,52310,52312],{"class":4657,"line":6473},[4173,52304,8042],{"class":4661},[4173,52306,52274],{"class":4669},[4173,52308,52309],{"class":4669}," stop",[4173,52311,52208],{"class":4669},[4173,52313,52314],{"class":4766}," # Stoppen\n",[4173,52316,52317],{"class":4657,"line":6479},[4173,52318,4761],{"emptyLinePlaceholder":4760},[4173,52320,52321,52323,52325,52327,52329],{"class":4657,"line":6503},[4173,52322,8042],{"class":4661},[4173,52324,52274],{"class":4669},[4173,52326,45364],{"class":4669},[4173,52328,52208],{"class":4669},[4173,52330,52331],{"class":4766}," # Starten\n",[4173,52333,52334],{"class":4657,"line":6516},[4173,52335,4761],{"emptyLinePlaceholder":4760},[4173,52337,52338,52340,52342,52344,52346],{"class":4657,"line":6971},[4173,52339,8042],{"class":4661},[4173,52341,52274],{"class":4669},[4173,52343,9794],{"class":4669},[4173,52345,52208],{"class":4669},[4173,52347,52348],{"class":4766}," # Löschen\n",[4173,52350,52351],{"class":4657,"line":10649},[4173,52352,4761],{"emptyLinePlaceholder":4760},[4173,52354,52355,52357,52359,52361,52363,52365],{"class":4657,"line":10654},[4173,52356,8042],{"class":4661},[4173,52358,52274],{"class":4669},[4173,52360,9794],{"class":4669},[4173,52362,11337],{"class":4665},[4173,52364,52208],{"class":4669},[4173,52366,52367],{"class":4766}," # Erzwungen löschen\n",[4173,52369,52370],{"class":4657,"line":10659},[4173,52371,4761],{"emptyLinePlaceholder":4760},[4173,52373,52374,52376,52378,52380,52382],{"class":4657,"line":10664},[4173,52375,8042],{"class":4661},[4173,52377,52274],{"class":4669},[4173,52379,30549],{"class":4669},[4173,52381,52208],{"class":4669},[4173,52383,52384],{"class":4766}," # Details anzeigen\n",[4173,52386,52387],{"class":4657,"line":10676},[4173,52388,4761],{"emptyLinePlaceholder":4760},[4173,52390,52391],{"class":4657,"line":10681},[4173,52392,52393],{"class":4766},"# Im Container arbeiten\n",[4173,52395,52396],{"class":4657,"line":10702},[4173,52397,4761],{"emptyLinePlaceholder":4760},[4173,52399,52400,52402,52404,52406,52408,52410],{"class":4657,"line":10707},[4173,52401,8042],{"class":4661},[4173,52403,30428],{"class":4669},[4173,52405,30326],{"class":4665},[4173,52407,52208],{"class":4669},[4173,52409,52228],{"class":4669},[4173,52411,52412],{"class":4766}," # Shell in laufendem Container\n",[4173,52414,52415],{"class":4657,"line":10712},[4173,52416,4761],{"emptyLinePlaceholder":4760},[4173,52418,52419,52421,52423,52425],{"class":4657,"line":10717},[4173,52420,8042],{"class":4661},[4173,52422,30403],{"class":4669},[4173,52424,52208],{"class":4669},[4173,52426,52427],{"class":4766}," # Logs anzeigen\n",[4173,52429,52430],{"class":4657,"line":10727},[4173,52431,4761],{"emptyLinePlaceholder":4760},[4173,52433,52434,52436,52438,52440,52442],{"class":4657,"line":10732},[4173,52435,8042],{"class":4661},[4173,52437,30403],{"class":4669},[4173,52439,11337],{"class":4665},[4173,52441,52208],{"class":4669},[4173,52443,52444],{"class":4766}," # Live-Logs\n",[4173,52446,52447],{"class":4657,"line":10737},[4173,52448,4761],{"emptyLinePlaceholder":4760},[4173,52450,52451,52453,52455],{"class":4657,"line":10742},[4173,52452,8042],{"class":4661},[4173,52454,30526],{"class":4669},[4173,52456,52457],{"class":4766}," # Ressourcen-Monitoring\n",[475,52459,52461],{"id":52460},"docker-run-optionen","docker run Optionen",[765,52463,52464,52476],{},[768,52465,52466],{},[771,52467,52468,52472],{},[774,52469,52470],{},[42,52471,8964],{},[774,52473,52474],{},[42,52475,5800],{},[787,52477,52478,52486,52493,52501,52509,52517,52525,52532],{},[771,52479,52480,52483],{},[792,52481,52482],{},"-d systemctl",[792,52484,52485],{},"Detached (Hintergrund)",[771,52487,52488,52490],{},[792,52489,29530],{},[792,52491,52492],{},"Interaktiv mit Terminal",[771,52494,52495,52498],{},[792,52496,52497],{},"-p host:container",[792,52499,52500],{},"Port-Mapping",[771,52502,52503,52506],{},[792,52504,52505],{},"-v host:container",[792,52507,52508],{},"Volume\u002FBind Mount",[771,52510,52511,52514],{},[792,52512,52513],{},"--name name",[792,52515,52516],{},"Container-Name vergeben",[771,52518,52519,52522],{},[792,52520,52521],{},"--network netz",[792,52523,52524],{},"Mit Netzwerk verbinden",[771,52526,52527,52529],{},[792,52528,29586],{},[792,52530,52531],{},"Container nach Beenden löschen",[771,52533,52534,52536],{},[792,52535,29570],{},[792,52537,29573],{},[475,52539,52540],{"id":31392},"Volumes",[4647,52542,52544],{"className":4649,"code":52543,"language":4651,"meta":269,"style":269},"docker volume create myvolume # Volume erstellen\n\ndocker volume ls # Alle Volumes\n\ndocker volume inspect myvolume # Details\n\ndocker volume rm myvolume # Löschen\n\n# Mit Volume starten\n\ndocker run -v myvolume:\u002Fdata ubuntu\n\n# Bind Mount (lokales Verzeichnis)\n\ndocker run -v \u002Fhome\u002Fuser\u002Fhtml:\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml nginx\n\n",[4653,52545,52546,52562,52566,52577,52581,52594,52598,52610,52614,52619,52623,52637,52641,52646,52650],{"__ignoreMap":269},[4173,52547,52548,52550,52553,52556,52559],{"class":4657,"line":4658},[4173,52549,8042],{"class":4661},[4173,52551,52552],{"class":4669}," volume",[4173,52554,52555],{"class":4669}," create",[4173,52557,52558],{"class":4669}," myvolume",[4173,52560,52561],{"class":4766}," # Volume erstellen\n",[4173,52563,52564],{"class":4657,"line":270},[4173,52565,4761],{"emptyLinePlaceholder":4760},[4173,52567,52568,52570,52572,52574],{"class":4657,"line":1263},[4173,52569,8042],{"class":4661},[4173,52571,52552],{"class":4669},[4173,52573,52143],{"class":4669},[4173,52575,52576],{"class":4766}," # Alle Volumes\n",[4173,52578,52579],{"class":4657,"line":4770},[4173,52580,4761],{"emptyLinePlaceholder":4760},[4173,52582,52583,52585,52587,52589,52591],{"class":4657,"line":4775},[4173,52584,8042],{"class":4661},[4173,52586,52552],{"class":4669},[4173,52588,30549],{"class":4669},[4173,52590,52558],{"class":4669},[4173,52592,52593],{"class":4766}," # Details\n",[4173,52595,52596],{"class":4657,"line":6320},[4173,52597,4761],{"emptyLinePlaceholder":4760},[4173,52599,52600,52602,52604,52606,52608],{"class":4657,"line":6325},[4173,52601,8042],{"class":4661},[4173,52603,52552],{"class":4669},[4173,52605,9794],{"class":4669},[4173,52607,52558],{"class":4669},[4173,52609,52348],{"class":4766},[4173,52611,52612],{"class":4657,"line":6343},[4173,52613,4761],{"emptyLinePlaceholder":4760},[4173,52615,52616],{"class":4657,"line":6348},[4173,52617,52618],{"class":4766},"# Mit Volume starten\n",[4173,52620,52621],{"class":4657,"line":6457},[4173,52622,4761],{"emptyLinePlaceholder":4760},[4173,52624,52625,52627,52629,52631,52634],{"class":4657,"line":6462},[4173,52626,8042],{"class":4661},[4173,52628,8045],{"class":4669},[4173,52630,17702],{"class":4665},[4173,52632,52633],{"class":4669}," myvolume:\u002Fdata",[4173,52635,52636],{"class":4669}," ubuntu\n",[4173,52638,52639],{"class":4657,"line":6468},[4173,52640,4761],{"emptyLinePlaceholder":4760},[4173,52642,52643],{"class":4657,"line":6473},[4173,52644,52645],{"class":4766},"# Bind Mount (lokales Verzeichnis)\n",[4173,52647,52648],{"class":4657,"line":6479},[4173,52649,4761],{"emptyLinePlaceholder":4760},[4173,52651,52652,52654,52656,52658,52661],{"class":4657,"line":6503},[4173,52653,8042],{"class":4661},[4173,52655,8045],{"class":4669},[4173,52657,17702],{"class":4665},[4173,52659,52660],{"class":4669}," \u002Fhome\u002Fuser\u002Fhtml:\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml",[4173,52662,8218],{"class":4669},[475,52664,52666],{"id":52665},"netzwerke","Netzwerke",[4647,52668,52670],{"className":4649,"code":52669,"language":4651,"meta":269,"style":269},"docker network create mynetwork # Netzwerk erstellen\n\ndocker network rm mynetwork # Netzwerk löschen\n\n# Container im gleichen Netzwerk können sich über Namen erreichen:\n\ndocker run -d --network mynetwork --name db mongo\n\ndocker run -d --network mynetwork --name app node-app\n\n# → app kann db über \"db\" als Hostname ansprechen\n\n",[4653,52671,52672,52687,52691,52704,52708,52713,52717,52738,52742,52762,52766],{"__ignoreMap":269},[4173,52673,52674,52676,52679,52681,52684],{"class":4657,"line":4658},[4173,52675,8042],{"class":4661},[4173,52677,52678],{"class":4669}," network",[4173,52680,52555],{"class":4669},[4173,52682,52683],{"class":4669}," mynetwork",[4173,52685,52686],{"class":4766}," # Netzwerk erstellen\n",[4173,52688,52689],{"class":4657,"line":270},[4173,52690,4761],{"emptyLinePlaceholder":4760},[4173,52692,52693,52695,52697,52699,52701],{"class":4657,"line":1263},[4173,52694,8042],{"class":4661},[4173,52696,52678],{"class":4669},[4173,52698,9794],{"class":4669},[4173,52700,52683],{"class":4669},[4173,52702,52703],{"class":4766}," # Netzwerk löschen\n",[4173,52705,52706],{"class":4657,"line":4770},[4173,52707,4761],{"emptyLinePlaceholder":4760},[4173,52709,52710],{"class":4657,"line":4775},[4173,52711,52712],{"class":4766},"# Container im gleichen Netzwerk können sich über Namen erreichen:\n",[4173,52714,52715],{"class":4657,"line":6320},[4173,52716,4761],{"emptyLinePlaceholder":4760},[4173,52718,52719,52721,52723,52725,52728,52730,52732,52735],{"class":4657,"line":6325},[4173,52720,8042],{"class":4661},[4173,52722,8045],{"class":4669},[4173,52724,8048],{"class":4665},[4173,52726,52727],{"class":4665}," --network",[4173,52729,52683],{"class":4669},[4173,52731,8212],{"class":4665},[4173,52733,52734],{"class":4669}," db",[4173,52736,52737],{"class":4669}," mongo\n",[4173,52739,52740],{"class":4657,"line":6343},[4173,52741,4761],{"emptyLinePlaceholder":4760},[4173,52743,52744,52746,52748,52750,52752,52754,52756,52759],{"class":4657,"line":6348},[4173,52745,8042],{"class":4661},[4173,52747,8045],{"class":4669},[4173,52749,8048],{"class":4665},[4173,52751,52727],{"class":4665},[4173,52753,52683],{"class":4669},[4173,52755,8212],{"class":4665},[4173,52757,52758],{"class":4669}," app",[4173,52760,52761],{"class":4669}," node-app\n",[4173,52763,52764],{"class":4657,"line":6457},[4173,52765,4761],{"emptyLinePlaceholder":4760},[4173,52767,52768],{"class":4657,"line":6462},[4173,52769,52770],{"class":4766},"# → app kann db über \"db\" als Hostname ansprechen\n",[470,52772,52774],{"id":52773},"dockerfile-image-erstellen","Dockerfile – Image erstellen",[4647,52776,52778],{"className":8413,"code":52777,"language":8415,"meta":269,"style":269},"# Basis-Image\n\nFROM python:3.10-slim\n\n# Arbeitsverzeichnis setzen\n\nWORKDIR \u002Fapp\n\n# Abhängigkeiten zuerst kopieren (Layer-Cache!)\n\nCOPY requirements.txt .\n\nRUN pip install -r requirements.txt\n\n# Quellcode kopieren\n\nCOPY . .\n\n# Benutzer erstellen (Sicherheit!)\n\nRUN addgroup app && adduser -S -G app app\n\nUSER app\n\n# Port dokumentieren\n\nEXPOSE 5000\n\n# Umgebungsvariable\n\nENV APP_ENV=production\n\n# Startbefehl (Exec-Format bevorzugt!)\n\nCMD [\"python\", \"app.py\"]\n\n",[4653,52779,52780,52785,52789,52796,52800,52805,52809,52815,52819,52824,52828,52835,52839,52846,52850,52855,52859,52866,52870,52875,52879,52886,52890,52897,52901,52906,52910,52917,52921,52926,52930,52937,52941,52946,52950],{"__ignoreMap":269},[4173,52781,52782],{"class":4657,"line":4658},[4173,52783,52784],{"class":4766},"# Basis-Image\n",[4173,52786,52787],{"class":4657,"line":270},[4173,52788,4761],{"emptyLinePlaceholder":4760},[4173,52790,52791,52793],{"class":4657,"line":1263},[4173,52792,8440],{"class":4788},[4173,52794,52795],{"class":4784}," python:3.10-slim\n",[4173,52797,52798],{"class":4657,"line":4770},[4173,52799,4761],{"emptyLinePlaceholder":4760},[4173,52801,52802],{"class":4657,"line":4775},[4173,52803,52804],{"class":4766},"# Arbeitsverzeichnis setzen\n",[4173,52806,52807],{"class":4657,"line":6320},[4173,52808,4761],{"emptyLinePlaceholder":4760},[4173,52810,52811,52813],{"class":4657,"line":6325},[4173,52812,8500],{"class":4788},[4173,52814,8697],{"class":4784},[4173,52816,52817],{"class":4657,"line":6343},[4173,52818,4761],{"emptyLinePlaceholder":4760},[4173,52820,52821],{"class":4657,"line":6348},[4173,52822,52823],{"class":4766},"# Abhängigkeiten zuerst kopieren (Layer-Cache!)\n",[4173,52825,52826],{"class":4657,"line":6457},[4173,52827,4761],{"emptyLinePlaceholder":4760},[4173,52829,52830,52832],{"class":4657,"line":6462},[4173,52831,8524],{"class":4788},[4173,52833,52834],{"class":4784}," requirements.txt .\n",[4173,52836,52837],{"class":4657,"line":6468},[4173,52838,4761],{"emptyLinePlaceholder":4760},[4173,52840,52841,52843],{"class":4657,"line":6473},[4173,52842,8548],{"class":4788},[4173,52844,52845],{"class":4784}," pip install -r requirements.txt\n",[4173,52847,52848],{"class":4657,"line":6479},[4173,52849,4761],{"emptyLinePlaceholder":4760},[4173,52851,52852],{"class":4657,"line":6503},[4173,52853,52854],{"class":4766},"# Quellcode kopieren\n",[4173,52856,52857],{"class":4657,"line":6516},[4173,52858,4761],{"emptyLinePlaceholder":4760},[4173,52860,52861,52863],{"class":4657,"line":6971},[4173,52862,8524],{"class":4788},[4173,52864,52865],{"class":4784}," . .\n",[4173,52867,52868],{"class":4657,"line":10649},[4173,52869,4761],{"emptyLinePlaceholder":4760},[4173,52871,52872],{"class":4657,"line":10654},[4173,52873,52874],{"class":4766},"# Benutzer erstellen (Sicherheit!)\n",[4173,52876,52877],{"class":4657,"line":10659},[4173,52878,4761],{"emptyLinePlaceholder":4760},[4173,52880,52881,52883],{"class":4657,"line":10664},[4173,52882,8548],{"class":4788},[4173,52884,52885],{"class":4784}," addgroup app && adduser -S -G app app\n",[4173,52887,52888],{"class":4657,"line":10676},[4173,52889,4761],{"emptyLinePlaceholder":4760},[4173,52891,52892,52894],{"class":4657,"line":10681},[4173,52893,30129],{"class":4788},[4173,52895,52896],{"class":4784}," app\n",[4173,52898,52899],{"class":4657,"line":10702},[4173,52900,4761],{"emptyLinePlaceholder":4760},[4173,52902,52903],{"class":4657,"line":10707},[4173,52904,52905],{"class":4766},"# Port dokumentieren\n",[4173,52907,52908],{"class":4657,"line":10712},[4173,52909,4761],{"emptyLinePlaceholder":4760},[4173,52911,52912,52914],{"class":4657,"line":10717},[4173,52913,8603],{"class":4788},[4173,52915,52916],{"class":4784}," 5000\n",[4173,52918,52919],{"class":4657,"line":10727},[4173,52920,4761],{"emptyLinePlaceholder":4760},[4173,52922,52923],{"class":4657,"line":10732},[4173,52924,52925],{"class":4766},"# Umgebungsvariable\n",[4173,52927,52928],{"class":4657,"line":10737},[4173,52929,4761],{"emptyLinePlaceholder":4760},[4173,52931,52932,52934],{"class":4657,"line":10742},[4173,52933,8488],{"class":4788},[4173,52935,52936],{"class":4784}," APP_ENV=production\n",[4173,52938,52939],{"class":4657,"line":10752},[4173,52940,4761],{"emptyLinePlaceholder":4760},[4173,52942,52943],{"class":4657,"line":10757},[4173,52944,52945],{"class":4766},"# Startbefehl (Exec-Format bevorzugt!)\n",[4173,52947,52948],{"class":4657,"line":10762},[4173,52949,4761],{"emptyLinePlaceholder":4760},[4173,52951,52952,52954,52956,52958,52960,52962],{"class":4657,"line":10767},[4173,52953,8591],{"class":4788},[4173,52955,8623],{"class":4784},[4173,52957,8626],{"class":4669},[4173,52959,8629],{"class":4784},[4173,52961,8632],{"class":4669},[4173,52963,8635],{"class":4784},[475,52965,52967],{"id":52966},"wichtige-dockerfile-anweisungen","Wichtige Dockerfile-Anweisungen:",[765,52969,52970,52983],{},[768,52971,52972],{},[771,52973,52974,52979],{},[774,52975,52976],{},[42,52977,52978],{},"Anweisung",[774,52980,52981],{},[42,52982,5800],{},[787,52984,52985,52992,52998,53005,53012,53019,53026,53033,53039,53046,53052],{},[771,52986,52987,52989],{},[792,52988,8440],{},[792,52990,52991],{},"Basis-Image",[771,52993,52994,52996],{},[792,52995,8500],{},[792,52997,29634],{},[771,52999,53000,53002],{},[792,53001,8524],{},[792,53003,53004],{},"Dateien in Container kopieren",[771,53006,53007,53009],{},[792,53008,8548],{},[792,53010,53011],{},"Befehl beim Image-Build ausführen",[771,53013,53014,53016],{},[792,53015,8591],{},[792,53017,53018],{},"Startbefehl (überschreibbar)",[771,53020,53021,53023],{},[792,53022,30168],{},[792,53024,53025],{},"Startbefehl (schwer überschreibbar)",[771,53027,53028,53030],{},[792,53029,8603],{},[792,53031,53032],{},"Port dokumentieren",[771,53034,53035,53037],{},[792,53036,8488],{},[792,53038,6075],{},[771,53040,53041,53043],{},[792,53042,8422],{},[792,53044,53045],{},"Build-Argument",[771,53047,53048,53050],{},[792,53049,30129],{},[792,53051,35856],{},[771,53053,53054,53057],{},[792,53055,53056],{},".dockerignore",[792,53058,53059],{},"Dateien vom Build ausschließen",[475,53061,53063],{"id":53062},"multi-stage-build-image-optimierung","Multi-Stage Build (Image-Optimierung):",[4647,53065,53067],{"className":8413,"code":53066,"language":8415,"meta":269,"style":269},"# Stage 1: Build\n\nFROM node:14 AS build\n\nWORKDIR \u002Fapp\n\nCOPY . .\n\nRUN npm install && npm run build\n\n# Stage 2: Production (nur fertiges Ergebnis!)\n\nFROM nginx:alpine\n\nCOPY --from=build \u002Fapp\u002Fbuild \u002Fusr\u002Fshare\u002Fnginx\u002Fhtml\n\n",[4653,53068,53069,53074,53078,53091,53095,53101,53105,53111,53115,53122,53126,53131,53135,53141,53145],{"__ignoreMap":269},[4173,53070,53071],{"class":4657,"line":4658},[4173,53072,53073],{"class":4766},"# Stage 1: Build\n",[4173,53075,53076],{"class":4657,"line":270},[4173,53077,4761],{"emptyLinePlaceholder":4760},[4173,53079,53080,53082,53085,53088],{"class":4657,"line":1263},[4173,53081,8440],{"class":4788},[4173,53083,53084],{"class":4784}," node:14 ",[4173,53086,53087],{"class":4788},"AS",[4173,53089,53090],{"class":4784}," build\n",[4173,53092,53093],{"class":4657,"line":4770},[4173,53094,4761],{"emptyLinePlaceholder":4760},[4173,53096,53097,53099],{"class":4657,"line":4775},[4173,53098,8500],{"class":4788},[4173,53100,8697],{"class":4784},[4173,53102,53103],{"class":4657,"line":6320},[4173,53104,4761],{"emptyLinePlaceholder":4760},[4173,53106,53107,53109],{"class":4657,"line":6325},[4173,53108,8524],{"class":4788},[4173,53110,52865],{"class":4784},[4173,53112,53113],{"class":4657,"line":6343},[4173,53114,4761],{"emptyLinePlaceholder":4760},[4173,53116,53117,53119],{"class":4657,"line":6348},[4173,53118,8548],{"class":4788},[4173,53120,53121],{"class":4784}," npm install && npm run build\n",[4173,53123,53124],{"class":4657,"line":6457},[4173,53125,4761],{"emptyLinePlaceholder":4760},[4173,53127,53128],{"class":4657,"line":6462},[4173,53129,53130],{"class":4766},"# Stage 2: Production (nur fertiges Ergebnis!)\n",[4173,53132,53133],{"class":4657,"line":6468},[4173,53134,4761],{"emptyLinePlaceholder":4760},[4173,53136,53137,53139],{"class":4657,"line":6473},[4173,53138,8440],{"class":4788},[4173,53140,30304],{"class":4784},[4173,53142,53143],{"class":4657,"line":6479},[4173,53144,4761],{"emptyLinePlaceholder":4760},[4173,53146,53147,53149],{"class":4657,"line":6503},[4173,53148,8524],{"class":4788},[4173,53150,53151],{"class":4784}," --from=build \u002Fapp\u002Fbuild \u002Fusr\u002Fshare\u002Fnginx\u002Fhtml\n",[475,53153,53155],{"id":53154},"layer-cache-optimierung","Layer-Cache-Optimierung:",[21,53157,53158,53167],{},[24,53159,53160,53163,53164,53166],{},[42,53161,53162],{},"Stabile Dateien"," (package.json) ",[42,53165,19269],{}," veränderlichen Dateien (Quellcode) kopieren",[24,53168,53169],{},"So werden Abhängigkeiten nur bei Änderung neu installiert",[470,53171,53173],{"id":53172},"container-lebenszyklus","Container-Lebenszyklus:",[414,53175,53176,53177,53179,53180,53182],{},"Erstellt → docker run → Running → docker stop → Stopped",[7135,53178],{},"\n→ docker kill → Gelöscht",[7135,53181],{},"\nRunning → docker pause → Paused → docker unpause → Running",[16,53184,53186],{"id":53185},"docker-compose","Docker Compose",[470,53188,9853],{"id":53189},"grundprinzip-4",[4647,53191,53193],{"className":4649,"code":53192,"language":4651,"meta":269,"style":269},"docker compose (früher: docker-compose) ermöglicht die Definition und Verwaltung mehrerer zusammengehöriger Container (Multi-Container-Anwendungen) über eine einzige YAML-Konfigurationsdatei.\n\ndocker compose [OPTIONEN] BEFEHL\n\n",[4653,53194,53195,53214,53218],{"__ignoreMap":269},[4173,53196,53197,53199,53201,53204,53206,53209,53211],{"class":4657,"line":4658},[4173,53198,8042],{"class":4661},[4173,53200,33031],{"class":4669},[4173,53202,53203],{"class":4784}," (früher: ",[4173,53205,53185],{"class":4669},[4173,53207,53208],{"class":4784},") ermöglicht die Definition und Verwaltung mehrerer zusammengehöriger Container (",[4173,53210,30577],{"class":4661},[4173,53212,53213],{"class":4784},") über eine einzige YAML-Konfigurationsdatei.\n",[4173,53215,53216],{"class":4657,"line":270},[4173,53217,4761],{"emptyLinePlaceholder":4760},[4173,53219,53220,53222,53224],{"class":4657,"line":1263},[4173,53221,8042],{"class":4661},[4173,53223,33031],{"class":4669},[4173,53225,53226],{"class":4784}," [OPTIONEN] BEFEHL\n",[11,53228,53230],{"id":53229},"konfigurationsdatei-docker-composeyml-oder-docker-composeyaml","Konfigurationsdatei: docker-compose.yml (oder docker-compose.yaml)",[470,53232,30599],{"id":30598},[765,53234,53235,53247],{},[768,53236,53237],{},[771,53238,53239,53243],{},[774,53240,53241],{},[42,53242,8243],{},[774,53244,53245],{},[42,53246,6733],{},[787,53248,53249,53255,53261,53268,53275,53281,53287,53294,53301,53308,53314,53321,53327,53333,53339,53346,53353,53359,53366,53373,53380,53387],{},[771,53250,53251,53253],{},[792,53252,30620],{},[792,53254,30623],{},[771,53256,53257,53259],{},[792,53258,30628],{},[792,53260,30631],{},[771,53262,53263,53265],{},[792,53264,30636],{},[792,53266,53267],{},"Gestoppte Container starten",[771,53269,53270,53272],{},[792,53271,30644],{},[792,53273,53274],{},"Container graceful stoppen",[771,53276,53277,53279],{},[792,53278,30652],{},[792,53280,29303],{},[771,53282,53283,53285],{},[792,53284,30659],{},[792,53286,30662],{},[771,53288,53289,53291],{},[792,53290,30667],{},[792,53292,53293],{},"Container fortsetzen",[771,53295,53296,53298],{},[792,53297,30675],{},[792,53299,53300],{},"Images neu bauen",[771,53302,53303,53305],{},[792,53304,30683],{},[792,53306,53307],{},"Images herunterladen",[771,53309,53310,53312],{},[792,53311,30691],{},[792,53313,30694],{},[771,53315,53316,53318],{},[792,53317,8922],{},[792,53319,53320],{},"Status der Container anzeigen",[771,53322,53323,53325],{},[792,53324,30706],{},[792,53326,29349],{},[771,53328,53329,53331],{},[792,53330,30714],{},[792,53332,29341],{},[771,53334,53335,53337],{},[792,53336,30721],{},[792,53338,30724],{},[771,53340,53341,53343],{},[792,53342,30729],{},[792,53344,53345],{},"Konfiguration anzeigen\u002Fvalidieren",[771,53347,53348,53350],{},[792,53349,29139],{},[792,53351,53352],{},"Images der Services auflisten",[771,53354,53355,53357],{},[792,53356,11334],{},[792,53358,30746],{},[771,53360,53361,53363],{},[792,53362,30751],{},[792,53364,53365],{},"Container mit Signal beenden",[771,53367,53368,53370],{},[792,53369,4443],{},[792,53371,53372],{},"Prozesse in Containern anzeigen",[771,53374,53375,53377],{},[792,53376,30766],{},[792,53378,53379],{},"Echtzeit-Ereignisse ausgeben",[771,53381,53382,53384],{},[792,53383,30774],{},[792,53385,53386],{},"Port-Mapping eines Services anzeigen",[771,53388,53389,53391],{},[792,53390,30805],{},[792,53392,30808],{},[470,53394,30812],{"id":30811},[765,53396,53397,53409],{},[768,53398,53399],{},[771,53400,53401,53405],{},[774,53402,53403],{},[42,53404,8964],{},[774,53406,53407],{},[42,53408,6733],{},[787,53410,53411,53417,53424,53431,53437,53443,53449,53455,53463],{},[771,53412,53413,53415],{},[792,53414,29522],{},[792,53416,30835],{},[771,53418,53419,53421],{},[792,53420,30840],{},[792,53422,53423],{},"Images vor dem Start neu bauen",[771,53425,53426,53428],{},[792,53427,30848],{},[792,53429,53430],{},"Images nicht neu bauen",[771,53432,53433,53435],{},[792,53434,30856],{},[792,53436,30859],{},[771,53438,53439,53441],{},[792,53440,30864],{},[792,53442,30867],{},[771,53444,53445,53447],{},[792,53446,30880],{},[792,53448,30883],{},[771,53450,53451,53453],{},[792,53452,30888],{},[792,53454,30891],{},[771,53456,53457,53460],{},[792,53458,53459],{},"--timeout N",[792,53461,53462],{},"Timeout in Sekunden (Standard: 10)",[771,53464,53465,53467],{},[792,53466,30904],{},[792,53468,30907],{},[470,53470,30935],{"id":30934},[765,53472,53473,53485],{},[768,53474,53475],{},[771,53476,53477,53481],{},[774,53478,53479],{},[42,53480,8964],{},[774,53482,53483],{},[42,53484,6733],{},[787,53486,53487,53494,53501,53507,53513],{},[771,53488,53489,53491],{},[792,53490,30956],{},[792,53492,53493],{},"Volumes ebenfalls löschen",[771,53495,53496,53498],{},[792,53497,30964],{},[792,53499,53500],{},"Alle Images entfernen",[771,53502,53503,53505],{},[792,53504,30972],{},[792,53506,30975],{},[771,53508,53509,53511],{},[792,53510,30880],{},[792,53512,30982],{},[771,53514,53515,53517],{},[792,53516,30896],{},[792,53518,53519],{},"Timeout setzen",[470,53521,30993],{"id":30992},[765,53523,53524,53536],{},[768,53525,53526],{},[771,53527,53528,53532],{},[774,53529,53530],{},[42,53531,8964],{},[774,53533,53534],{},[42,53535,6733],{},[787,53537,53538,53545,53551,53558],{},[771,53539,53540,53542],{},[792,53541,31014],{},[792,53543,53544],{},"Log live verfolgen",[771,53546,53547,53549],{},[792,53548,31022],{},[792,53550,31025],{},[771,53552,53553,53555],{},[792,53554,31030],{},[792,53556,53557],{},"Zeitstempel anzeigen",[771,53559,53560,53562],{},[792,53561,31038],{},[792,53563,53564],{},"Service-Name nicht voranstellen",[470,53566,31061],{"id":31060},[765,53568,53569,53581],{},[768,53570,53571],{},[771,53572,53573,53577],{},[774,53574,53575],{},[42,53576,8964],{},[774,53578,53579],{},[42,53580,6733],{},[787,53582,53583,53589,53595,53601],{},[771,53584,53585,53587],{},[792,53586,29530],{},[792,53588,31084],{},[771,53590,53591,53593],{},[792,53592,29618],{},[792,53594,31091],{},[771,53596,53597,53599],{},[792,53598,29570],{},[792,53600,29573],{},[771,53602,53603,53605],{},[792,53604,29631],{},[792,53606,31104],{},[470,53608,31124],{"id":31123},[765,53610,53611,53623],{},[768,53612,53613],{},[771,53614,53615,53619],{},[774,53616,53617],{},[42,53618,8964],{},[774,53620,53621],{},[42,53622,6733],{},[787,53624,53625,53631,53638,53644,53650],{},[771,53626,53627,53629],{},[792,53628,19423],{},[792,53630,31147],{},[771,53632,53633,53635],{},[792,53634,31152],{},[792,53636,53637],{},"Projektname setzen (Standard: Verzeichnisname)",[771,53639,53640,53642],{},[792,53641,31160],{},[792,53643,31163],{},[771,53645,53646,53648],{},[792,53647,29578],{},[792,53649,31170],{},[771,53651,53652,53655],{},[792,53653,53654],{},"--progress STRING",[792,53656,53657],{},"Ausgabestil: auto, tty, plain, quiet",[470,53659,53661],{"id":53660},"aufbau-einer-docker-composeyml","Aufbau einer docker-compose.yml",[4647,53663,53665],{"className":31201,"code":53664,"language":31203,"meta":269,"style":269},"version: '3.9'\n\nservices:\n\nwebserver:\n\nimage: 'nginx:alpine'\n\ncontainer_name: mein-nginx\n\nhostname: webserver\n\nrestart: always\n\nports:\n\n- '80:80'\n\n- '443:443'\n\nvolumes:\n\n- '.\u002Fhtml:\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml'\n\n- 'nginx_conf:\u002Fetc\u002Fnginx'\n\nenvironment:\n\n- NGINX_HOST=example.com\n\nenv_file:\n\n- .env\n\nnetworks:\n\n- frontend\n\ndepends_on:\n\n- app\n\nhealthcheck:\n\ntest:\n\n- CMD\n\n- curl\n\n- '-f'\n\n- 'http:\u002F\u002Flocalhost'\n\ninterval: 30s\n\ntimeout: 10s\n\nretries: 3\n\nstart_period: 40s\n\nlabels:\n\n- traefik.enable=true\n\nlogging:\n\ndriver: json-file\n\noptions:\n\nmax-size: 10m\n\nmax-file: '3'\n\napp:\n\nbuild:\n\ncontext: .\u002Fapp\n\ndockerfile: Dockerfile.prod\n\nargs:\n\n- BUILD_VERSION=1.0\n\nimage: 'meine-app:latest'\n\nrestart: unless-stopped\n\nports:\n\n- '3000:3000'\n\nvolumes:\n\n- 'app_data:\u002Fapp\u002Fdata'\n\nenvironment:\n\nDATABASE_URL: 'postgres:\u002F\u002Fuser:pass@db:5432\u002Fmydb'\n\nNODE_ENV: production\n\nnetworks:\n\n- frontend\n\n- backend\n\ndepends_on:\n\ndb:\n\ncondition: service_healthy\n\ndb:\n\nimage: 'postgres:15'\n\nrestart: always\n\nvolumes:\n\n- 'db_data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata'\n\nenvironment:\n\nPOSTGRES_DB: mydb\n\nPOSTGRES_USER: user\n\nPOSTGRES_PASSWORD: pass\n\nnetworks:\n\n- backend\n\nhealthcheck:\n\ntest:\n\n- CMD-SHELL\n\n- pg_isready -U user -d mydb\n\ninterval: 10s\n\ntimeout: 5s\n\nretries: 5\n\nvolumes:\n\nnginx_conf: null\n\napp_data: null\n\ndb_data:\n\ndriver: local\n\ndriver_opts:\n\ntype: none\n\no: bind\n\ndevice: \u002Fmnt\u002Fdata\u002Fpostgres\n\nnetworks:\n\nfrontend:\n\ndriver: bridge\n\nbackend:\n\ndriver: bridge\n\ninternal: true\n\nextern_netz:\n\nexternal: true\n\nname: mein-netz\n\n",[4653,53666,53667,53675,53679,53685,53689,53696,53700,53709,53713,53722,53726,53735,53739,53747,53751,53757,53761,53768,53772,53779,53783,53789,53793,53800,53804,53811,53815,53821,53825,53832,53836,53842,53846,53852,53856,53862,53866,53872,53876,53882,53886,53893,53897,53903,53907,53913,53917,53923,53927,53933,53937,53943,53947,53954,53958,53966,53970,53978,53982,53990,53994,54003,54007,54013,54017,54023,54027,54033,54037,54045,54049,54055,54059,54067,54071,54079,54083,54089,54093,54099,54103,54112,54116,54125,54129,54135,54139,54146,54150,54159,54163,54171,54175,54181,54185,54191,54195,54201,54205,54212,54216,54222,54226,54236,54240,54249,54253,54259,54263,54269,54273,54280,54284,54290,54294,54301,54305,54313,54317,54323,54327,54336,54340,54348,54352,54358,54362,54368,54372,54378,54382,54391,54395,54404,54408,54417,54421,54427,54431,54437,54441,54447,54451,54457,54461,54467,54471,54478,54482,54490,54494,54502,54506,54514,54518,54524,54528,54537,54541,54550,54554,54560,54564,54572,54576,54582,54586,54594,54598,54606,54610,54619,54623,54629,54633,54639,54643,54651,54655,54661,54665,54673,54677,54685,54689,54696,54700,54708,54712],{"__ignoreMap":269},[4173,53668,53669,53671,53673],{"class":4657,"line":4658},[4173,53670,30805],{"class":31210},[4173,53672,7412],{"class":4784},[4173,53674,31215],{"class":4669},[4173,53676,53677],{"class":4657,"line":270},[4173,53678,4761],{"emptyLinePlaceholder":4760},[4173,53680,53681,53683],{"class":4657,"line":1263},[4173,53682,31224],{"class":31210},[4173,53684,2815],{"class":4784},[4173,53686,53687],{"class":4657,"line":4770},[4173,53688,4761],{"emptyLinePlaceholder":4760},[4173,53690,53691,53694],{"class":4657,"line":4775},[4173,53692,53693],{"class":31210},"webserver",[4173,53695,2815],{"class":4784},[4173,53697,53698],{"class":4657,"line":6320},[4173,53699,4761],{"emptyLinePlaceholder":4760},[4173,53701,53702,53704,53706],{"class":4657,"line":6325},[4173,53703,31306],{"class":31210},[4173,53705,7412],{"class":4784},[4173,53707,53708],{"class":4669},"'nginx:alpine'\n",[4173,53710,53711],{"class":4657,"line":6343},[4173,53712,4761],{"emptyLinePlaceholder":4760},[4173,53714,53715,53717,53719],{"class":4657,"line":6348},[4173,53716,31320],{"class":31210},[4173,53718,7412],{"class":4784},[4173,53720,53721],{"class":4669},"mein-nginx\n",[4173,53723,53724],{"class":4657,"line":6457},[4173,53725,4761],{"emptyLinePlaceholder":4760},[4173,53727,53728,53730,53732],{"class":4657,"line":6462},[4173,53729,12009],{"class":31210},[4173,53731,7412],{"class":4784},[4173,53733,53734],{"class":4669},"webserver\n",[4173,53736,53737],{"class":4657,"line":6468},[4173,53738,4761],{"emptyLinePlaceholder":4760},[4173,53740,53741,53743,53745],{"class":4657,"line":6473},[4173,53742,30652],{"class":31210},[4173,53744,7412],{"class":4784},[4173,53746,31894],{"class":4669},[4173,53748,53749],{"class":4657,"line":6479},[4173,53750,4761],{"emptyLinePlaceholder":4760},[4173,53752,53753,53755],{"class":4657,"line":6503},[4173,53754,31359],{"class":31210},[4173,53756,2815],{"class":4784},[4173,53758,53759],{"class":4657,"line":6516},[4173,53760,4761],{"emptyLinePlaceholder":4760},[4173,53762,53763,53765],{"class":4657,"line":6971},[4173,53764,31294],{"class":4784},[4173,53766,53767],{"class":4669},"'80:80'\n",[4173,53769,53770],{"class":4657,"line":10649},[4173,53771,4761],{"emptyLinePlaceholder":4760},[4173,53773,53774,53776],{"class":4657,"line":10654},[4173,53775,31294],{"class":4784},[4173,53777,53778],{"class":4669},"'443:443'\n",[4173,53780,53781],{"class":4657,"line":10659},[4173,53782,4761],{"emptyLinePlaceholder":4760},[4173,53784,53785,53787],{"class":4657,"line":10664},[4173,53786,31392],{"class":31210},[4173,53788,2815],{"class":4784},[4173,53790,53791],{"class":4657,"line":10676},[4173,53792,4761],{"emptyLinePlaceholder":4760},[4173,53794,53795,53797],{"class":4657,"line":10681},[4173,53796,31294],{"class":4784},[4173,53798,53799],{"class":4669},"'.\u002Fhtml:\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml'\n",[4173,53801,53802],{"class":4657,"line":10702},[4173,53803,4761],{"emptyLinePlaceholder":4760},[4173,53805,53806,53808],{"class":4657,"line":10707},[4173,53807,31294],{"class":4784},[4173,53809,53810],{"class":4669},"'nginx_conf:\u002Fetc\u002Fnginx'\n",[4173,53812,53813],{"class":4657,"line":10712},[4173,53814,4761],{"emptyLinePlaceholder":4760},[4173,53816,53817,53819],{"class":4657,"line":10717},[4173,53818,31425],{"class":31210},[4173,53820,2815],{"class":4784},[4173,53822,53823],{"class":4657,"line":10727},[4173,53824,4761],{"emptyLinePlaceholder":4760},[4173,53826,53827,53829],{"class":4657,"line":10732},[4173,53828,31294],{"class":4784},[4173,53830,53831],{"class":4669},"NGINX_HOST=example.com\n",[4173,53833,53834],{"class":4657,"line":10737},[4173,53835,4761],{"emptyLinePlaceholder":4760},[4173,53837,53838,53840],{"class":4657,"line":10742},[4173,53839,31463],{"class":31210},[4173,53841,2815],{"class":4784},[4173,53843,53844],{"class":4657,"line":10752},[4173,53845,4761],{"emptyLinePlaceholder":4760},[4173,53847,53848,53850],{"class":4657,"line":10757},[4173,53849,31294],{"class":4784},[4173,53851,31476],{"class":4669},[4173,53853,53854],{"class":4657,"line":10762},[4173,53855,4761],{"emptyLinePlaceholder":4760},[4173,53857,53858,53860],{"class":4657,"line":10767},[4173,53859,31496],{"class":31210},[4173,53861,2815],{"class":4784},[4173,53863,53864],{"class":4657,"line":10772},[4173,53865,4761],{"emptyLinePlaceholder":4760},[4173,53867,53868,53870],{"class":4657,"line":10777},[4173,53869,31294],{"class":4784},[4173,53871,31325],{"class":4669},[4173,53873,53874],{"class":4657,"line":10782},[4173,53875,4761],{"emptyLinePlaceholder":4760},[4173,53877,53878,53880],{"class":4657,"line":10787},[4173,53879,31518],{"class":31210},[4173,53881,2815],{"class":4784},[4173,53883,53884],{"class":4657,"line":10800},[4173,53885,4761],{"emptyLinePlaceholder":4760},[4173,53887,53888,53890],{"class":4657,"line":10805},[4173,53889,31294],{"class":4784},[4173,53891,53892],{"class":4669},"app\n",[4173,53894,53895],{"class":4657,"line":10818},[4173,53896,4761],{"emptyLinePlaceholder":4760},[4173,53898,53899,53901],{"class":4657,"line":10823},[4173,53900,31554],{"class":31210},[4173,53902,2815],{"class":4784},[4173,53904,53905],{"class":4657,"line":10836},[4173,53906,4761],{"emptyLinePlaceholder":4760},[4173,53908,53909,53911],{"class":4657,"line":10841},[4173,53910,7163],{"class":31210},[4173,53912,2815],{"class":4784},[4173,53914,53915],{"class":4657,"line":10846},[4173,53916,4761],{"emptyLinePlaceholder":4760},[4173,53918,53919,53921],{"class":4657,"line":10851},[4173,53920,31294],{"class":4784},[4173,53922,31577],{"class":4669},[4173,53924,53925],{"class":4657,"line":10867},[4173,53926,4761],{"emptyLinePlaceholder":4760},[4173,53928,53929,53931],{"class":4657,"line":10872},[4173,53930,31294],{"class":4784},[4173,53932,31588],{"class":4669},[4173,53934,53935],{"class":4657,"line":10877},[4173,53936,4761],{"emptyLinePlaceholder":4760},[4173,53938,53939,53941],{"class":4657,"line":10882},[4173,53940,31294],{"class":4784},[4173,53942,31599],{"class":4669},[4173,53944,53945],{"class":4657,"line":10890},[4173,53946,4761],{"emptyLinePlaceholder":4760},[4173,53948,53949,53951],{"class":4657,"line":10895},[4173,53950,31294],{"class":4784},[4173,53952,53953],{"class":4669},"'http:\u002F\u002Flocalhost'\n",[4173,53955,53956],{"class":4657,"line":10904},[4173,53957,4761],{"emptyLinePlaceholder":4760},[4173,53959,53960,53962,53964],{"class":4657,"line":10909},[4173,53961,31619],{"class":31210},[4173,53963,7412],{"class":4784},[4173,53965,31624],{"class":4669},[4173,53967,53968],{"class":4657,"line":10914},[4173,53969,4761],{"emptyLinePlaceholder":4760},[4173,53971,53972,53974,53976],{"class":4657,"line":10919},[4173,53973,31633],{"class":31210},[4173,53975,7412],{"class":4784},[4173,53977,31638],{"class":4669},[4173,53979,53980],{"class":4657,"line":10933},[4173,53981,4761],{"emptyLinePlaceholder":4760},[4173,53983,53984,53986,53988],{"class":4657,"line":10938},[4173,53985,31647],{"class":31210},[4173,53987,7412],{"class":4784},[4173,53989,31652],{"class":4665},[4173,53991,53992],{"class":4657,"line":10959},[4173,53993,4761],{"emptyLinePlaceholder":4760},[4173,53995,53996,53998,54000],{"class":4657,"line":10964},[4173,53997,31661],{"class":31210},[4173,53999,7412],{"class":4784},[4173,54001,54002],{"class":4669},"40s\n",[4173,54004,54005],{"class":4657,"line":10969},[4173,54006,4761],{"emptyLinePlaceholder":4760},[4173,54008,54009,54011],{"class":4657,"line":10974},[4173,54010,31739],{"class":31210},[4173,54012,2815],{"class":4784},[4173,54014,54015],{"class":4657,"line":10982},[4173,54016,4761],{"emptyLinePlaceholder":4760},[4173,54018,54019,54021],{"class":4657,"line":10987},[4173,54020,31294],{"class":4784},[4173,54022,31752],{"class":4669},[4173,54024,54025],{"class":4657,"line":10995},[4173,54026,4761],{"emptyLinePlaceholder":4760},[4173,54028,54029,54031],{"class":4657,"line":11000},[4173,54030,31675],{"class":31210},[4173,54032,2815],{"class":4784},[4173,54034,54035],{"class":4657,"line":11008},[4173,54036,4761],{"emptyLinePlaceholder":4760},[4173,54038,54039,54041,54043],{"class":4657,"line":11013},[4173,54040,31686],{"class":31210},[4173,54042,7412],{"class":4784},[4173,54044,31691],{"class":4669},[4173,54046,54047],{"class":4657,"line":11021},[4173,54048,4761],{"emptyLinePlaceholder":4760},[4173,54050,54051,54053],{"class":4657,"line":11026},[4173,54052,31700],{"class":31210},[4173,54054,2815],{"class":4784},[4173,54056,54057],{"class":4657,"line":11034},[4173,54058,4761],{"emptyLinePlaceholder":4760},[4173,54060,54061,54063,54065],{"class":4657,"line":11039},[4173,54062,31711],{"class":31210},[4173,54064,7412],{"class":4784},[4173,54066,31716],{"class":4669},[4173,54068,54069],{"class":4657,"line":11048},[4173,54070,4761],{"emptyLinePlaceholder":4760},[4173,54072,54073,54075,54077],{"class":4657,"line":11053},[4173,54074,31725],{"class":31210},[4173,54076,7412],{"class":4784},[4173,54078,31730],{"class":4669},[4173,54080,54081],{"class":4657,"line":21369},[4173,54082,4761],{"emptyLinePlaceholder":4760},[4173,54084,54085,54087],{"class":4657,"line":21374},[4173,54086,32947],{"class":31210},[4173,54088,2815],{"class":4784},[4173,54090,54091],{"class":4657,"line":21380},[4173,54092,4761],{"emptyLinePlaceholder":4760},[4173,54094,54095,54097],{"class":4657,"line":21385},[4173,54096,30675],{"class":31210},[4173,54098,2815],{"class":4784},[4173,54100,54101],{"class":4657,"line":21397},[4173,54102,4761],{"emptyLinePlaceholder":4760},[4173,54104,54105,54107,54109],{"class":4657,"line":21402},[4173,54106,31256],{"class":31210},[4173,54108,7412],{"class":4784},[4173,54110,54111],{"class":4669},".\u002Fapp\n",[4173,54113,54114],{"class":4657,"line":21408},[4173,54115,4761],{"emptyLinePlaceholder":4760},[4173,54117,54118,54120,54122],{"class":4657,"line":21413},[4173,54119,8415],{"class":31210},[4173,54121,7412],{"class":4784},[4173,54123,54124],{"class":4669},"Dockerfile.prod\n",[4173,54126,54127],{"class":4657,"line":21425},[4173,54128,4761],{"emptyLinePlaceholder":4760},[4173,54130,54131,54133],{"class":4657,"line":21430},[4173,54132,31283],{"class":31210},[4173,54134,2815],{"class":4784},[4173,54136,54137],{"class":4657,"line":21436},[4173,54138,4761],{"emptyLinePlaceholder":4760},[4173,54140,54141,54143],{"class":4657,"line":21441},[4173,54142,31294],{"class":4784},[4173,54144,54145],{"class":4669},"BUILD_VERSION=1.0\n",[4173,54147,54148],{"class":4657,"line":21453},[4173,54149,4761],{"emptyLinePlaceholder":4760},[4173,54151,54152,54154,54156],{"class":4657,"line":21458},[4173,54153,31306],{"class":31210},[4173,54155,7412],{"class":4784},[4173,54157,54158],{"class":4669},"'meine-app:latest'\n",[4173,54160,54161],{"class":4657,"line":21464},[4173,54162,4761],{"emptyLinePlaceholder":4760},[4173,54164,54165,54167,54169],{"class":4657,"line":21469},[4173,54166,30652],{"class":31210},[4173,54168,7412],{"class":4784},[4173,54170,31350],{"class":4669},[4173,54172,54173],{"class":4657,"line":21481},[4173,54174,4761],{"emptyLinePlaceholder":4760},[4173,54176,54177,54179],{"class":4657,"line":21486},[4173,54178,31359],{"class":31210},[4173,54180,2815],{"class":4784},[4173,54182,54183],{"class":4657,"line":21492},[4173,54184,4761],{"emptyLinePlaceholder":4760},[4173,54186,54187,54189],{"class":4657,"line":21497},[4173,54188,31294],{"class":4784},[4173,54190,31372],{"class":4669},[4173,54192,54193],{"class":4657,"line":21503},[4173,54194,4761],{"emptyLinePlaceholder":4760},[4173,54196,54197,54199],{"class":4657,"line":21508},[4173,54198,31392],{"class":31210},[4173,54200,2815],{"class":4784},[4173,54202,54203],{"class":4657,"line":21518},[4173,54204,4761],{"emptyLinePlaceholder":4760},[4173,54206,54207,54209],{"class":4657,"line":21523},[4173,54208,31294],{"class":4784},[4173,54210,54211],{"class":4669},"'app_data:\u002Fapp\u002Fdata'\n",[4173,54213,54214],{"class":4657,"line":21529},[4173,54215,4761],{"emptyLinePlaceholder":4760},[4173,54217,54218,54220],{"class":4657,"line":21534},[4173,54219,31425],{"class":31210},[4173,54221,2815],{"class":4784},[4173,54223,54224],{"class":4657,"line":21544},[4173,54225,4761],{"emptyLinePlaceholder":4760},[4173,54227,54228,54231,54233],{"class":4657,"line":21549},[4173,54229,54230],{"class":31210},"DATABASE_URL",[4173,54232,7412],{"class":4784},[4173,54234,54235],{"class":4669},"'postgres:\u002F\u002Fuser:pass@db:5432\u002Fmydb'\n",[4173,54237,54238],{"class":4657,"line":21555},[4173,54239,4761],{"emptyLinePlaceholder":4760},[4173,54241,54242,54244,54246],{"class":4657,"line":21560},[4173,54243,29826],{"class":31210},[4173,54245,7412],{"class":4784},[4173,54247,54248],{"class":4669},"production\n",[4173,54250,54251],{"class":4657,"line":21570},[4173,54252,4761],{"emptyLinePlaceholder":4760},[4173,54254,54255,54257],{"class":4657,"line":21575},[4173,54256,31496],{"class":31210},[4173,54258,2815],{"class":4784},[4173,54260,54261],{"class":4657,"line":21581},[4173,54262,4761],{"emptyLinePlaceholder":4760},[4173,54264,54265,54267],{"class":4657,"line":21586},[4173,54266,31294],{"class":4784},[4173,54268,31325],{"class":4669},[4173,54270,54271],{"class":4657,"line":21596},[4173,54272,4761],{"emptyLinePlaceholder":4760},[4173,54274,54275,54277],{"class":4657,"line":21601},[4173,54276,31294],{"class":4784},[4173,54278,54279],{"class":4669},"backend\n",[4173,54281,54282],{"class":4657,"line":21607},[4173,54283,4761],{"emptyLinePlaceholder":4760},[4173,54285,54286,54288],{"class":4657,"line":21612},[4173,54287,31518],{"class":31210},[4173,54289,2815],{"class":4784},[4173,54291,54292],{"class":4657,"line":21622},[4173,54293,4761],{"emptyLinePlaceholder":4760},[4173,54295,54296,54299],{"class":4657,"line":21627},[4173,54297,54298],{"class":31210},"db",[4173,54300,2815],{"class":4784},[4173,54302,54303],{"class":4657,"line":21633},[4173,54304,4761],{"emptyLinePlaceholder":4760},[4173,54306,54307,54309,54311],{"class":4657,"line":21638},[4173,54308,31540],{"class":31210},[4173,54310,7412],{"class":4784},[4173,54312,31545],{"class":4669},[4173,54314,54315],{"class":4657,"line":21644},[4173,54316,4761],{"emptyLinePlaceholder":4760},[4173,54318,54319,54321],{"class":4657,"line":21649},[4173,54320,54298],{"class":31210},[4173,54322,2815],{"class":4784},[4173,54324,54325],{"class":4657,"line":21659},[4173,54326,4761],{"emptyLinePlaceholder":4760},[4173,54328,54329,54331,54333],{"class":4657,"line":21664},[4173,54330,31306],{"class":31210},[4173,54332,7412],{"class":4784},[4173,54334,54335],{"class":4669},"'postgres:15'\n",[4173,54337,54338],{"class":4657,"line":21670},[4173,54339,4761],{"emptyLinePlaceholder":4760},[4173,54341,54342,54344,54346],{"class":4657,"line":21675},[4173,54343,30652],{"class":31210},[4173,54345,7412],{"class":4784},[4173,54347,31894],{"class":4669},[4173,54349,54350],{"class":4657,"line":21685},[4173,54351,4761],{"emptyLinePlaceholder":4760},[4173,54353,54354,54356],{"class":4657,"line":21690},[4173,54355,31392],{"class":31210},[4173,54357,2815],{"class":4784},[4173,54359,54360],{"class":4657,"line":21696},[4173,54361,4761],{"emptyLinePlaceholder":4760},[4173,54363,54364,54366],{"class":4657,"line":21701},[4173,54365,31294],{"class":4784},[4173,54367,32192],{"class":4669},[4173,54369,54370],{"class":4657,"line":21711},[4173,54371,4761],{"emptyLinePlaceholder":4760},[4173,54373,54374,54376],{"class":4657,"line":21716},[4173,54375,31425],{"class":31210},[4173,54377,2815],{"class":4784},[4173,54379,54380],{"class":4657,"line":21722},[4173,54381,4761],{"emptyLinePlaceholder":4760},[4173,54383,54384,54386,54388],{"class":4657,"line":21727},[4173,54385,32222],{"class":31210},[4173,54387,7412],{"class":4784},[4173,54389,54390],{"class":4669},"mydb\n",[4173,54392,54393],{"class":4657,"line":21737},[4173,54394,4761],{"emptyLinePlaceholder":4760},[4173,54396,54397,54399,54401],{"class":4657,"line":21742},[4173,54398,32236],{"class":31210},[4173,54400,7412],{"class":4784},[4173,54402,54403],{"class":4669},"user\n",[4173,54405,54406],{"class":4657,"line":21748},[4173,54407,4761],{"emptyLinePlaceholder":4760},[4173,54409,54410,54412,54414],{"class":4657,"line":21753},[4173,54411,32250],{"class":31210},[4173,54413,7412],{"class":4784},[4173,54415,54416],{"class":4669},"pass\n",[4173,54418,54419],{"class":4657,"line":21759},[4173,54420,4761],{"emptyLinePlaceholder":4760},[4173,54422,54423,54425],{"class":4657,"line":21764},[4173,54424,31496],{"class":31210},[4173,54426,2815],{"class":4784},[4173,54428,54429],{"class":4657,"line":21782},[4173,54430,4761],{"emptyLinePlaceholder":4760},[4173,54432,54433,54435],{"class":4657,"line":21787},[4173,54434,31294],{"class":4784},[4173,54436,54279],{"class":4669},[4173,54438,54439],{"class":4657,"line":21793},[4173,54440,4761],{"emptyLinePlaceholder":4760},[4173,54442,54443,54445],{"class":4657,"line":21798},[4173,54444,31554],{"class":31210},[4173,54446,2815],{"class":4784},[4173,54448,54449],{"class":4657,"line":21810},[4173,54450,4761],{"emptyLinePlaceholder":4760},[4173,54452,54453,54455],{"class":4657,"line":21815},[4173,54454,7163],{"class":31210},[4173,54456,2815],{"class":4784},[4173,54458,54459],{"class":4657,"line":21821},[4173,54460,4761],{"emptyLinePlaceholder":4760},[4173,54462,54463,54465],{"class":4657,"line":21826},[4173,54464,31294],{"class":4784},[4173,54466,32075],{"class":4669},[4173,54468,54469],{"class":4657,"line":21836},[4173,54470,4761],{"emptyLinePlaceholder":4760},[4173,54472,54473,54475],{"class":4657,"line":21841},[4173,54474,31294],{"class":4784},[4173,54476,54477],{"class":4669},"pg_isready -U user -d mydb\n",[4173,54479,54480],{"class":4657,"line":21847},[4173,54481,4761],{"emptyLinePlaceholder":4760},[4173,54483,54484,54486,54488],{"class":4657,"line":21852},[4173,54485,31619],{"class":31210},[4173,54487,7412],{"class":4784},[4173,54489,31638],{"class":4669},[4173,54491,54492],{"class":4657,"line":21862},[4173,54493,4761],{"emptyLinePlaceholder":4760},[4173,54495,54496,54498,54500],{"class":4657,"line":21867},[4173,54497,31633],{"class":31210},[4173,54499,7412],{"class":4784},[4173,54501,32111],{"class":4669},[4173,54503,54504],{"class":4657,"line":21873},[4173,54505,4761],{"emptyLinePlaceholder":4760},[4173,54507,54508,54510,54512],{"class":4657,"line":21878},[4173,54509,31647],{"class":31210},[4173,54511,7412],{"class":4784},[4173,54513,32124],{"class":4665},[4173,54515,54516],{"class":4657,"line":21888},[4173,54517,4761],{"emptyLinePlaceholder":4760},[4173,54519,54520,54522],{"class":4657,"line":21893},[4173,54521,31392],{"class":31210},[4173,54523,2815],{"class":4784},[4173,54525,54526],{"class":4657,"line":21899},[4173,54527,4761],{"emptyLinePlaceholder":4760},[4173,54529,54530,54533,54535],{"class":4657,"line":21904},[4173,54531,54532],{"class":31210},"nginx_conf",[4173,54534,7412],{"class":4784},[4173,54536,32551],{"class":4665},[4173,54538,54539],{"class":4657,"line":21910},[4173,54540,4761],{"emptyLinePlaceholder":4760},[4173,54542,54543,54546,54548],{"class":4657,"line":21915},[4173,54544,54545],{"class":31210},"app_data",[4173,54547,7412],{"class":4784},[4173,54549,32551],{"class":4665},[4173,54551,54552],{"class":4657,"line":21925},[4173,54553,4761],{"emptyLinePlaceholder":4760},[4173,54555,54556,54558],{"class":4657,"line":21930},[4173,54557,32518],{"class":31210},[4173,54559,2815],{"class":4784},[4173,54561,54562],{"class":4657,"line":21936},[4173,54563,4761],{"emptyLinePlaceholder":4760},[4173,54565,54566,54568,54570],{"class":4657,"line":21941},[4173,54567,31686],{"class":31210},[4173,54569,7412],{"class":4784},[4173,54571,32535],{"class":4669},[4173,54573,54574],{"class":4657,"line":21952},[4173,54575,4761],{"emptyLinePlaceholder":4760},[4173,54577,54578,54580],{"class":4657,"line":21957},[4173,54579,32589],{"class":31210},[4173,54581,2815],{"class":4784},[4173,54583,54584],{"class":4657,"line":21963},[4173,54585,4761],{"emptyLinePlaceholder":4760},[4173,54587,54588,54590,54592],{"class":4657,"line":21968},[4173,54589,32602],{"class":31210},[4173,54591,7412],{"class":4784},[4173,54593,32607],{"class":4669},[4173,54595,54596],{"class":4657,"line":21980},[4173,54597,4761],{"emptyLinePlaceholder":4760},[4173,54599,54600,54602,54604],{"class":4657,"line":21985},[4173,54601,13557],{"class":31210},[4173,54603,7412],{"class":4784},[4173,54605,32622],{"class":4669},[4173,54607,54608],{"class":4657,"line":21991},[4173,54609,4761],{"emptyLinePlaceholder":4760},[4173,54611,54612,54614,54616],{"class":4657,"line":21996},[4173,54613,32633],{"class":31210},[4173,54615,7412],{"class":4784},[4173,54617,54618],{"class":4669},"\u002Fmnt\u002Fdata\u002Fpostgres\n",[4173,54620,54621],{"class":4657,"line":22009},[4173,54622,4761],{"emptyLinePlaceholder":4760},[4173,54624,54625,54627],{"class":4657,"line":22014},[4173,54626,31496],{"class":31210},[4173,54628,2815],{"class":4784},[4173,54630,54631],{"class":4657,"line":22020},[4173,54632,4761],{"emptyLinePlaceholder":4760},[4173,54634,54635,54637],{"class":4657,"line":22025},[4173,54636,31235],{"class":31210},[4173,54638,2815],{"class":4784},[4173,54640,54641],{"class":4657,"line":22031},[4173,54642,4761],{"emptyLinePlaceholder":4760},[4173,54644,54645,54647,54649],{"class":4657,"line":22036},[4173,54646,31686],{"class":31210},[4173,54648,7412],{"class":4784},[4173,54650,32678],{"class":4669},[4173,54652,54653],{"class":4657,"line":22046},[4173,54654,4761],{"emptyLinePlaceholder":4760},[4173,54656,54657,54659],{"class":4657,"line":22051},[4173,54658,31529],{"class":31210},[4173,54660,2815],{"class":4784},[4173,54662,54663],{"class":4657,"line":22057},[4173,54664,4761],{"emptyLinePlaceholder":4760},[4173,54666,54667,54669,54671],{"class":4657,"line":22062},[4173,54668,31686],{"class":31210},[4173,54670,7412],{"class":4784},[4173,54672,32678],{"class":4669},[4173,54674,54675],{"class":4657,"line":22072},[4173,54676,4761],{"emptyLinePlaceholder":4760},[4173,54678,54679,54681,54683],{"class":4657,"line":22077},[4173,54680,32716],{"class":31210},[4173,54682,7412],{"class":4784},[4173,54684,11505],{"class":4665},[4173,54686,54687],{"class":4657,"line":22083},[4173,54688,4761],{"emptyLinePlaceholder":4760},[4173,54690,54691,54694],{"class":4657,"line":22088},[4173,54692,54693],{"class":31210},"extern_netz",[4173,54695,2815],{"class":4784},[4173,54697,54698],{"class":4657,"line":22094},[4173,54699,4761],{"emptyLinePlaceholder":4760},[4173,54701,54702,54704,54706],{"class":4657,"line":22099},[4173,54703,32744],{"class":31210},[4173,54705,7412],{"class":4784},[4173,54707,11505],{"class":4665},[4173,54709,54710],{"class":4657,"line":22109},[4173,54711,4761],{"emptyLinePlaceholder":4760},[4173,54713,54714,54716,54718],{"class":4657,"line":22114},[4173,54715,28734],{"class":31210},[4173,54717,7412],{"class":4784},[4173,54719,54720],{"class":4669},"mein-netz\n",[470,54722,32767],{"id":32766},[765,54724,54725,54737],{},[768,54726,54727],{},[771,54728,54729,54733],{},[774,54730,54731],{},[42,54732,32778],{},[774,54734,54735],{},[42,54736,6733],{},[787,54738,54739,54746,54753,54759],{},[771,54740,54741,54743],{},[792,54742,32789],{},[792,54744,54745],{},"Nie neu starten (Standard)",[771,54747,54748,54750],{},[792,54749,32797],{},[792,54751,54752],{},"Immer neu starten",[771,54754,54755,54757],{},[792,54756,32805],{},[792,54758,32808],{},[771,54760,54761,54763],{},[792,54762,32813],{},[792,54764,32816],{},[470,54766,32864],{"id":32863},[11,54768,32868],{"id":32867},[4647,54770,54772],{"className":4649,"code":54771,"language":4651,"meta":269,"style":269},"POSTGRES_PASSWORD=geheim123\nAPP_PORT=3000\nIMAGE_TAG=1.5.2\n\n",[4653,54773,54774,54783,54791],{"__ignoreMap":269},[4173,54775,54776,54778,54780],{"class":4657,"line":4658},[4173,54777,32250],{"class":4784},[4173,54779,6387],{"class":4788},[4173,54781,54782],{"class":4669},"geheim123\n",[4173,54784,54785,54787,54789],{"class":4657,"line":270},[4173,54786,32919],{"class":4784},[4173,54788,6387],{"class":4788},[4173,54790,32924],{"class":4669},[4173,54792,54793,54795,54797],{"class":4657,"line":1263},[4173,54794,32909],{"class":4784},[4173,54796,6387],{"class":4788},[4173,54798,32914],{"class":4669},[414,54800,54801],{},"Im docker-compose.yml verwendbar als:",[4647,54803,54805],{"className":31201,"code":54804,"language":31203,"meta":269,"style":269},"services:\n\napp:\n\nimage: 'meineapp:${IMAGE_TAG}'\n\nports:\n\n- '${APP_PORT}:3000'\n\n",[4653,54806,54807,54813,54817,54823,54827,54836,54840,54846,54850],{"__ignoreMap":269},[4173,54808,54809,54811],{"class":4657,"line":4658},[4173,54810,31224],{"class":31210},[4173,54812,2815],{"class":4784},[4173,54814,54815],{"class":4657,"line":270},[4173,54816,4761],{"emptyLinePlaceholder":4760},[4173,54818,54819,54821],{"class":4657,"line":1263},[4173,54820,32947],{"class":31210},[4173,54822,2815],{"class":4784},[4173,54824,54825],{"class":4657,"line":4770},[4173,54826,4761],{"emptyLinePlaceholder":4760},[4173,54828,54829,54831,54833],{"class":4657,"line":4775},[4173,54830,31306],{"class":31210},[4173,54832,7412],{"class":4784},[4173,54834,54835],{"class":4669},"'meineapp:${IMAGE_TAG}'\n",[4173,54837,54838],{"class":4657,"line":6320},[4173,54839,4761],{"emptyLinePlaceholder":4760},[4173,54841,54842,54844],{"class":4657,"line":6325},[4173,54843,31359],{"class":31210},[4173,54845,2815],{"class":4784},[4173,54847,54848],{"class":4657,"line":6343},[4173,54849,4761],{"emptyLinePlaceholder":4760},[4173,54851,54852,54854],{"class":4657,"line":6348},[4173,54853,31294],{"class":4784},[4173,54855,32983],{"class":4669},[470,54857,33011],{"id":54858},"praktische-beispiele-1",[11,54860,54862],{"id":54861},"alle-services-starten-hintergrund","Alle Services starten (Hintergrund)",[4647,54864,54866],{"className":4649,"code":54865,"language":4651,"meta":269,"style":269},"docker compose up -d\n\n# Services starten und Live-Logs beobachten\n\ndocker compose up\n\n# Nur bestimmten Service starten\n\ndocker compose up -d db\n\n# Images neu bauen und starten\n\ndocker compose up -d --build\n\n# Status anzeigen\n\ndocker compose ps\n\n# Logs aller Services\n\ndocker compose logs -f\n\n# Logs nur für \"app\" Service, letzte 50 Zeilen\n\ndocker compose logs --tail=50 -f app\n\n# In Container einloggen\n\ndocker compose exec app bash\n\ndocker compose exec db psql -U user -d mydb\n\n# Einmaligen Befehl ausführen\n\ndocker compose run --rm app npm test\n\n# Alles stoppen und entfernen (inkl. Volumes)\n\ndocker compose down -v\n\n# Bestimmte Services neu starten\n\ndocker compose restart app\n\n# Scale (mehrere Instanzen)\n\ndocker compose up -d --scale app=3\n\n# Mit anderem Dateinamen\n\ndocker compose -f docker-compose.prod.yml up -d\n\n# Projektname setzen\n\ndocker compose -p meinprojekt up -d\n\n# Konfiguration validieren\n\ndocker compose config\n\n# Alle Images bauen ohne zu starten\n\ndocker compose build\n\n# Aktuellen Stand der Container\n\ndocker compose top\n\n",[4653,54867,54868,54878,54882,54887,54891,54899,54903,54908,54912,54925,54929,54934,54938,54950,54954,54959,54963,54971,54975,54980,54984,54994,54998,55003,55007,55022,55026,55031,55035,55047,55051,55072,55076,55081,55085,55101,55105,55110,55114,55124,55128,55133,55137,55147,55151,55156,55160,55177,55181,55186,55190,55204,55208,55213,55217,55232,55236,55241,55245,55253,55257,55262,55266,55274,55278,55283,55287],{"__ignoreMap":269},[4173,54869,54870,54872,54874,54876],{"class":4657,"line":4658},[4173,54871,8042],{"class":4661},[4173,54873,33031],{"class":4669},[4173,54875,33034],{"class":4669},[4173,54877,33037],{"class":4665},[4173,54879,54880],{"class":4657,"line":270},[4173,54881,4761],{"emptyLinePlaceholder":4760},[4173,54883,54884],{"class":4657,"line":1263},[4173,54885,54886],{"class":4766},"# Services starten und Live-Logs beobachten\n",[4173,54888,54889],{"class":4657,"line":4770},[4173,54890,4761],{"emptyLinePlaceholder":4760},[4173,54892,54893,54895,54897],{"class":4657,"line":4775},[4173,54894,8042],{"class":4661},[4173,54896,33031],{"class":4669},[4173,54898,33059],{"class":4669},[4173,54900,54901],{"class":4657,"line":6320},[4173,54902,4761],{"emptyLinePlaceholder":4760},[4173,54904,54905],{"class":4657,"line":6325},[4173,54906,54907],{"class":4766},"# Nur bestimmten Service starten\n",[4173,54909,54910],{"class":4657,"line":6343},[4173,54911,4761],{"emptyLinePlaceholder":4760},[4173,54913,54914,54916,54918,54920,54922],{"class":4657,"line":6348},[4173,54915,8042],{"class":4661},[4173,54917,33031],{"class":4669},[4173,54919,33034],{"class":4669},[4173,54921,8048],{"class":4665},[4173,54923,54924],{"class":4669}," db\n",[4173,54926,54927],{"class":4657,"line":6457},[4173,54928,4761],{"emptyLinePlaceholder":4760},[4173,54930,54931],{"class":4657,"line":6462},[4173,54932,54933],{"class":4766},"# Images neu bauen und starten\n",[4173,54935,54936],{"class":4657,"line":6468},[4173,54937,4761],{"emptyLinePlaceholder":4760},[4173,54939,54940,54942,54944,54946,54948],{"class":4657,"line":6473},[4173,54941,8042],{"class":4661},[4173,54943,33031],{"class":4669},[4173,54945,33034],{"class":4669},[4173,54947,8048],{"class":4665},[4173,54949,33085],{"class":4665},[4173,54951,54952],{"class":4657,"line":6479},[4173,54953,4761],{"emptyLinePlaceholder":4760},[4173,54955,54956],{"class":4657,"line":6503},[4173,54957,54958],{"class":4766},"# Status anzeigen\n",[4173,54960,54961],{"class":4657,"line":6516},[4173,54962,4761],{"emptyLinePlaceholder":4760},[4173,54964,54965,54967,54969],{"class":4657,"line":6971},[4173,54966,8042],{"class":4661},[4173,54968,33031],{"class":4669},[4173,54970,33442],{"class":4669},[4173,54972,54973],{"class":4657,"line":10649},[4173,54974,4761],{"emptyLinePlaceholder":4760},[4173,54976,54977],{"class":4657,"line":10654},[4173,54978,54979],{"class":4766},"# Logs aller Services\n",[4173,54981,54982],{"class":4657,"line":10659},[4173,54983,4761],{"emptyLinePlaceholder":4760},[4173,54985,54986,54988,54990,54992],{"class":4657,"line":10664},[4173,54987,8042],{"class":4661},[4173,54989,33031],{"class":4669},[4173,54991,30403],{"class":4669},[4173,54993,19029],{"class":4665},[4173,54995,54996],{"class":4657,"line":10676},[4173,54997,4761],{"emptyLinePlaceholder":4760},[4173,54999,55000],{"class":4657,"line":10681},[4173,55001,55002],{"class":4766},"# Logs nur für \"app\" Service, letzte 50 Zeilen\n",[4173,55004,55005],{"class":4657,"line":10702},[4173,55006,4761],{"emptyLinePlaceholder":4760},[4173,55008,55009,55011,55013,55015,55018,55020],{"class":4657,"line":10707},[4173,55010,8042],{"class":4661},[4173,55012,33031],{"class":4669},[4173,55014,30403],{"class":4669},[4173,55016,55017],{"class":4665}," --tail=50",[4173,55019,11337],{"class":4665},[4173,55021,52896],{"class":4669},[4173,55023,55024],{"class":4657,"line":10712},[4173,55025,4761],{"emptyLinePlaceholder":4760},[4173,55027,55028],{"class":4657,"line":10717},[4173,55029,55030],{"class":4766},"# In Container einloggen\n",[4173,55032,55033],{"class":4657,"line":10727},[4173,55034,4761],{"emptyLinePlaceholder":4760},[4173,55036,55037,55039,55041,55043,55045],{"class":4657,"line":10732},[4173,55038,8042],{"class":4661},[4173,55040,33031],{"class":4669},[4173,55042,30428],{"class":4669},[4173,55044,52758],{"class":4669},[4173,55046,30335],{"class":4669},[4173,55048,55049],{"class":4657,"line":10737},[4173,55050,4761],{"emptyLinePlaceholder":4760},[4173,55052,55053,55055,55057,55059,55061,55063,55065,55067,55069],{"class":4657,"line":10742},[4173,55054,8042],{"class":4661},[4173,55056,33031],{"class":4669},[4173,55058,30428],{"class":4669},[4173,55060,52734],{"class":4669},[4173,55062,33315],{"class":4669},[4173,55064,33318],{"class":4665},[4173,55066,45452],{"class":4669},[4173,55068,8048],{"class":4665},[4173,55070,55071],{"class":4669}," mydb\n",[4173,55073,55074],{"class":4657,"line":10752},[4173,55075,4761],{"emptyLinePlaceholder":4760},[4173,55077,55078],{"class":4657,"line":10757},[4173,55079,55080],{"class":4766},"# Einmaligen Befehl ausführen\n",[4173,55082,55083],{"class":4657,"line":10762},[4173,55084,4761],{"emptyLinePlaceholder":4760},[4173,55086,55087,55089,55091,55093,55095,55097,55099],{"class":4657,"line":10767},[4173,55088,8042],{"class":4661},[4173,55090,33031],{"class":4669},[4173,55092,8045],{"class":4669},[4173,55094,30329],{"class":4665},[4173,55096,52758],{"class":4669},[4173,55098,33383],{"class":4669},[4173,55100,33386],{"class":4669},[4173,55102,55103],{"class":4657,"line":10772},[4173,55104,4761],{"emptyLinePlaceholder":4760},[4173,55106,55107],{"class":4657,"line":10777},[4173,55108,55109],{"class":4766},"# Alles stoppen und entfernen (inkl. Volumes)\n",[4173,55111,55112],{"class":4657,"line":10782},[4173,55113,4761],{"emptyLinePlaceholder":4760},[4173,55115,55116,55118,55120,55122],{"class":4657,"line":10787},[4173,55117,8042],{"class":4661},[4173,55119,33031],{"class":4669},[4173,55121,33618],{"class":4669},[4173,55123,33621],{"class":4665},[4173,55125,55126],{"class":4657,"line":10800},[4173,55127,4761],{"emptyLinePlaceholder":4760},[4173,55129,55130],{"class":4657,"line":10805},[4173,55131,55132],{"class":4766},"# Bestimmte Services neu starten\n",[4173,55134,55135],{"class":4657,"line":10818},[4173,55136,4761],{"emptyLinePlaceholder":4760},[4173,55138,55139,55141,55143,55145],{"class":4657,"line":10823},[4173,55140,8042],{"class":4661},[4173,55142,33031],{"class":4669},[4173,55144,33670],{"class":4669},[4173,55146,52896],{"class":4669},[4173,55148,55149],{"class":4657,"line":10836},[4173,55150,4761],{"emptyLinePlaceholder":4760},[4173,55152,55153],{"class":4657,"line":10841},[4173,55154,55155],{"class":4766},"# Scale (mehrere Instanzen)\n",[4173,55157,55158],{"class":4657,"line":10846},[4173,55159,4761],{"emptyLinePlaceholder":4760},[4173,55161,55162,55164,55166,55168,55170,55172,55175],{"class":4657,"line":10851},[4173,55163,8042],{"class":4661},[4173,55165,33031],{"class":4669},[4173,55167,33034],{"class":4669},[4173,55169,8048],{"class":4665},[4173,55171,33707],{"class":4665},[4173,55173,55174],{"class":4669}," app=",[4173,55176,31652],{"class":4665},[4173,55178,55179],{"class":4657,"line":10867},[4173,55180,4761],{"emptyLinePlaceholder":4760},[4173,55182,55183],{"class":4657,"line":10872},[4173,55184,55185],{"class":4766},"# Mit anderem Dateinamen\n",[4173,55187,55188],{"class":4657,"line":10877},[4173,55189,4761],{"emptyLinePlaceholder":4760},[4173,55191,55192,55194,55196,55198,55200,55202],{"class":4657,"line":10882},[4173,55193,8042],{"class":4661},[4173,55195,33031],{"class":4669},[4173,55197,11337],{"class":4665},[4173,55199,33750],{"class":4669},[4173,55201,33034],{"class":4669},[4173,55203,33037],{"class":4665},[4173,55205,55206],{"class":4657,"line":10890},[4173,55207,4761],{"emptyLinePlaceholder":4760},[4173,55209,55210],{"class":4657,"line":10895},[4173,55211,55212],{"class":4766},"# Projektname setzen\n",[4173,55214,55215],{"class":4657,"line":10904},[4173,55216,4761],{"emptyLinePlaceholder":4760},[4173,55218,55219,55221,55223,55225,55228,55230],{"class":4657,"line":10909},[4173,55220,8042],{"class":4661},[4173,55222,33031],{"class":4669},[4173,55224,8206],{"class":4665},[4173,55226,55227],{"class":4669}," meinprojekt",[4173,55229,33034],{"class":4669},[4173,55231,33037],{"class":4665},[4173,55233,55234],{"class":4657,"line":10914},[4173,55235,4761],{"emptyLinePlaceholder":4760},[4173,55237,55238],{"class":4657,"line":10919},[4173,55239,55240],{"class":4766},"# Konfiguration validieren\n",[4173,55242,55243],{"class":4657,"line":10933},[4173,55244,4761],{"emptyLinePlaceholder":4760},[4173,55246,55247,55249,55251],{"class":4657,"line":10938},[4173,55248,8042],{"class":4661},[4173,55250,33031],{"class":4669},[4173,55252,33543],{"class":4669},[4173,55254,55255],{"class":4657,"line":10959},[4173,55256,4761],{"emptyLinePlaceholder":4760},[4173,55258,55259],{"class":4657,"line":10964},[4173,55260,55261],{"class":4766},"# Alle Images bauen ohne zu starten\n",[4173,55263,55264],{"class":4657,"line":10969},[4173,55265,4761],{"emptyLinePlaceholder":4760},[4173,55267,55268,55270,55272],{"class":4657,"line":10974},[4173,55269,8042],{"class":4661},[4173,55271,33031],{"class":4669},[4173,55273,53090],{"class":4669},[4173,55275,55276],{"class":4657,"line":10982},[4173,55277,4761],{"emptyLinePlaceholder":4760},[4173,55279,55280],{"class":4657,"line":10987},[4173,55281,55282],{"class":4766},"# Aktuellen Stand der Container\n",[4173,55284,55285],{"class":4657,"line":10995},[4173,55286,4761],{"emptyLinePlaceholder":4760},[4173,55288,55289,55291,55293],{"class":4657,"line":11000},[4173,55290,8042],{"class":4661},[4173,55292,33031],{"class":4669},[4173,55294,33521],{"class":4669},[11,55296,55298],{"id":55297},"aufgaben-und-lösungen-aus-dem-unterricht","Aufgaben und Lösungen aus dem Unterricht",[16,55300,55302],{"id":55301},"dockercomposezusatzaufgabenpdf","DockerComposeZusatzaufgaben.pdf",[414,55304,55305],{},"Quelle: DockerComposeZusatzaufgaben.pdf - 9 Seite(n)",[470,55307,55309],{"id":55308},"seite-1","Seite 1",[414,55311,55312,55313,55315],{},"Thema: Linux",[7135,55314],{},"\nTechnikerschule Erlangen",[414,55317,55318],{},"📝 Docker-Compose Übungsblatt",[414,55320,55321,55322,55324],{},"✅ Aufgabe 1: Webserver mit Docker Compose",[7135,55323],{},"\nZiel: Erstelle mit Docker Compose einen Webserver, der über den Browser erreichbar ist.",[414,55326,55327],{},"📋 Aufgabenstellung:",[318,55329,55330,55333,55336],{},[24,55331,55332],{},"Erstelle ein neues Projektverzeichnis mit einer index.html-Datei.",[24,55334,55335],{},"Setze mit Docker Compose einen Nginx-Container auf.",[24,55337,55338,55339,55344],{},"Der Webserver soll unter ",[4687,55340,55341],{"href":55341,"rel":55342},"http:\u002F\u002Flocalhost:8080",[55343],"nofollow"," erreichbar sein.",[414,55346,55347,55348,55350],{},"💡 Hinweise:",[7135,55349],{},"\n• Verwende das Nginx-Image (nginx:latest).",[414,55352,55353],{},"• Binde das Verzeichnis mit index.html als Volume ein.",[414,55355,55356],{},"• Port 80 im Container soll auf Port 8080 des Hosts weitergeleitet werden.",[414,55358,55359,55360,55362,55363,55365,55366,55368,55369,55371,55372,55374],{},"✅ Lösung:",[7135,55361],{},"\nDateistruktur:",[7135,55364],{},"\nwebserver\u002F",[7135,55367],{},"\n├── docker-compose.yml",[7135,55370],{},"\n└── html\u002F",[7135,55373],{},"\n└── index.html",[414,55376,55377,55378,55380],{},"index.html:",[7135,55379],{},"\n\u003Ch1>Hello from Docker Compose!\u003C\u002Fh1>",[414,55382,55383],{},"docker-compose.yml:",[4647,55385,55387],{"className":31201,"code":55386,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\nweb:\nimage: nginx:latest\nports:\n- \"8080:80\"\nvolumes:\n- .\u002Fhtml:\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml:ro\n\n",[4653,55388,55389,55398,55404,55411,55420,55426,55433,55439],{"__ignoreMap":269},[4173,55390,55391,55393,55395],{"class":4657,"line":4658},[4173,55392,30805],{"class":31210},[4173,55394,7412],{"class":4784},[4173,55396,55397],{"class":4669},"'3.8'\n",[4173,55399,55400,55402],{"class":4657,"line":270},[4173,55401,31224],{"class":31210},[4173,55403,2815],{"class":4784},[4173,55405,55406,55409],{"class":4657,"line":1263},[4173,55407,55408],{"class":31210},"web",[4173,55410,2815],{"class":4784},[4173,55412,55413,55415,55417],{"class":4657,"line":4770},[4173,55414,31306],{"class":31210},[4173,55416,7412],{"class":4784},[4173,55418,55419],{"class":4669},"nginx:latest\n",[4173,55421,55422,55424],{"class":4657,"line":4775},[4173,55423,31359],{"class":31210},[4173,55425,2815],{"class":4784},[4173,55427,55428,55430],{"class":4657,"line":6320},[4173,55429,31294],{"class":4784},[4173,55431,55432],{"class":4669},"\"8080:80\"\n",[4173,55434,55435,55437],{"class":4657,"line":6325},[4173,55436,31392],{"class":31210},[4173,55438,2815],{"class":4784},[4173,55440,55441,55443],{"class":4657,"line":6343},[4173,55442,31294],{"class":4784},[4173,55444,55445],{"class":4669},".\u002Fhtml:\u002Fusr\u002Fshare\u002Fnginx\u002Fhtml:ro\n",[470,55447,55449],{"id":55448},"seite-2","Seite 2",[414,55451,55312],{},[414,55453,55454,55455,55315],{},"✅",[7135,55456],{},[414,55458,55459,55460,55462],{},"Aufgabe 2: PHP + MySQL mit Docker Compose",[7135,55461],{},"\nZiel: Starte eine einfache PHP-Webanwendung, die sich mit einer MySQL-Datenbank verbindet.",[414,55464,55327],{},[318,55466,55467,55470,55473],{},[24,55468,55469],{},"Erstelle eine PHP-Datei, die sich mit einer MySQL-Datenbank verbindet.",[24,55471,55472],{},"Setze zwei Container auf: einen für PHP (z. B. php:8.2-apache) und einen für MySQL.",[24,55474,55475],{},"Konfiguriere docker-compose.yml so, dass die Dienste korrekt verbunden sind.",[414,55477,55347,55478,55480],{},[7135,55479],{},"\n• In PHP ist der MySQL-Host db (der Name des Services).",[414,55482,55483],{},"• Nutze Umgebungsvariablen für MySQL (Benutzer, Passwort, Datenbank).",[414,55485,55359,55486,55362,55488,55490,55491,55368,55493,55495,55496,55498],{},[7135,55487],{},[7135,55489],{},"\nphp-mysql\u002F",[7135,55492],{},[7135,55494],{},"\n└── src\u002F",[7135,55497],{},"\n└── index.php",[414,55500,55501,55502,55504,55505,55507],{},"index.php:",[7135,55503],{},"\n\u003C?php",[7135,55506],{},"\n$mysqli = new mysqli(\"db\", \"user\", \"password\", \"testdb\");",[4647,55509,55511],{"className":4649,"code":55510,"language":4651,"meta":269,"style":269},"if ($mysqli->connect_error) {\ndie(\"Connection failed: \" . $mysqli->connect_error);\n}\necho \"Connected to MySQL successfully!\";\n?>\n\ndocker-compose.yml:\n\n",[4653,55512,55513,55525,55546,55550,55560,55567,55571],{"__ignoreMap":269},[4173,55514,55515,55517,55520,55522],{"class":4657,"line":4658},[4173,55516,6201],{"class":4788},[4173,55518,55519],{"class":4784}," ($mysqli-",[4173,55521,4789],{"class":4788},[4173,55523,55524],{"class":4784},"connect_error) {\n",[4173,55526,55527,55530,55533,55535,55538,55540,55543],{"class":4657,"line":270},[4173,55528,55529],{"class":4661},"die(",[4173,55531,55532],{"class":4661},"\"Connection failed: \"",[4173,55534,9481],{"class":4669},[4173,55536,55537],{"class":4784}," $mysqli-",[4173,55539,4789],{"class":4788},[4173,55541,55542],{"class":4669},"connect_error",[4173,55544,55545],{"class":4784},");\n",[4173,55547,55548],{"class":4657,"line":1263},[4173,55549,7090],{"class":4784},[4173,55551,55552,55554,55557],{"class":4657,"line":4770},[4173,55553,6309],{"class":4665},[4173,55555,55556],{"class":4669}," \"Connected to MySQL successfully!\"",[4173,55558,55559],{"class":4784},";\n",[4173,55561,55562,55564],{"class":4657,"line":4775},[4173,55563,17533],{"class":4661},[4173,55565,55566],{"class":4784},">\n",[4173,55568,55569],{"class":4657,"line":6320},[4173,55570,4761],{"emptyLinePlaceholder":4760},[4173,55572,55573],{"class":4657,"line":6325},[4173,55574,55575],{"class":4661},"docker-compose.yml:\n",[4647,55577,55579],{"className":31201,"code":55578,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\nweb:\nimage: php:8.2-apache\nvolumes:\n- .\u002Fsrc:\u002Fvar\u002Fwww\u002Fhtml\nports:\n- \"8000:80\"\ndepends_on:\n- db\ndb:\nimage: mysql:8.0\nenvironment:\nMYSQL_DATABASE: testdb\nMYSQL_USER: user\nMYSQL_PASSWORD: password\nMYSQL_ROOT_PASSWORD: root\n\n",[4653,55580,55581,55589,55595,55601,55610,55616,55623,55629,55636,55642,55649,55655,55664,55670,55680,55689,55699],{"__ignoreMap":269},[4173,55582,55583,55585,55587],{"class":4657,"line":4658},[4173,55584,30805],{"class":31210},[4173,55586,7412],{"class":4784},[4173,55588,55397],{"class":4669},[4173,55590,55591,55593],{"class":4657,"line":270},[4173,55592,31224],{"class":31210},[4173,55594,2815],{"class":4784},[4173,55596,55597,55599],{"class":4657,"line":1263},[4173,55598,55408],{"class":31210},[4173,55600,2815],{"class":4784},[4173,55602,55603,55605,55607],{"class":4657,"line":4770},[4173,55604,31306],{"class":31210},[4173,55606,7412],{"class":4784},[4173,55608,55609],{"class":4669},"php:8.2-apache\n",[4173,55611,55612,55614],{"class":4657,"line":4775},[4173,55613,31392],{"class":31210},[4173,55615,2815],{"class":4784},[4173,55617,55618,55620],{"class":4657,"line":6320},[4173,55619,31294],{"class":4784},[4173,55621,55622],{"class":4669},".\u002Fsrc:\u002Fvar\u002Fwww\u002Fhtml\n",[4173,55624,55625,55627],{"class":4657,"line":6325},[4173,55626,31359],{"class":31210},[4173,55628,2815],{"class":4784},[4173,55630,55631,55633],{"class":4657,"line":6343},[4173,55632,31294],{"class":4784},[4173,55634,55635],{"class":4669},"\"8000:80\"\n",[4173,55637,55638,55640],{"class":4657,"line":6348},[4173,55639,31518],{"class":31210},[4173,55641,2815],{"class":4784},[4173,55643,55644,55646],{"class":4657,"line":6457},[4173,55645,31294],{"class":4784},[4173,55647,55648],{"class":4669},"db\n",[4173,55650,55651,55653],{"class":4657,"line":6462},[4173,55652,54298],{"class":31210},[4173,55654,2815],{"class":4784},[4173,55656,55657,55659,55661],{"class":4657,"line":6468},[4173,55658,31306],{"class":31210},[4173,55660,7412],{"class":4784},[4173,55662,55663],{"class":4669},"mysql:8.0\n",[4173,55665,55666,55668],{"class":4657,"line":6473},[4173,55667,31425],{"class":31210},[4173,55669,2815],{"class":4784},[4173,55671,55672,55675,55677],{"class":4657,"line":6479},[4173,55673,55674],{"class":31210},"MYSQL_DATABASE",[4173,55676,7412],{"class":4784},[4173,55678,55679],{"class":4669},"testdb\n",[4173,55681,55682,55685,55687],{"class":4657,"line":6503},[4173,55683,55684],{"class":31210},"MYSQL_USER",[4173,55686,7412],{"class":4784},[4173,55688,54403],{"class":4669},[4173,55690,55691,55694,55696],{"class":4657,"line":6516},[4173,55692,55693],{"class":31210},"MYSQL_PASSWORD",[4173,55695,7412],{"class":4784},[4173,55697,55698],{"class":4669},"password\n",[4173,55700,55701,55704,55706],{"class":4657,"line":6971},[4173,55702,55703],{"class":31210},"MYSQL_ROOT_PASSWORD",[4173,55705,7412],{"class":4784},[4173,55707,55708],{"class":4669},"root\n",[470,55710,55712],{"id":55711},"seite-3","Seite 3",[414,55714,55312],{},[414,55716,55454,55717,55315],{},[7135,55718],{},[414,55720,55721,55722,55724,55725,55727],{},"Aufgabe 3: Node.js mit MongoDB",[7135,55723],{},"\nZiel: Erstelle eine Node.js-App, die eine Verbindung zu MongoDB aufnimmt und einfache HTTP-",[7135,55726],{},"\nAntworten liefert.",[414,55729,55327],{},[318,55731,55732,55735,55738],{},[24,55733,55734],{},"Erstelle einen Node.js-Service mit Express.",[24,55736,55737],{},"Verbinde dich mit einer MongoDB-Instanz (in einem eigenen Container).",[24,55739,55740],{},"Zeige über einen HTTP-Endpunkt eine Erfolgsmeldung, wenn MongoDB verbunden ist.",[414,55742,55347,55743,55745],{},[7135,55744],{},"\n• Du brauchst eine Dockerfile, package.json und index.js.",[414,55747,55748,55749,55751],{},"• Verwende Mongoose zur Verbindung mit MongoDB.",[7135,55750],{},"\n• MongoDB läuft unter dem Service-Namen mongo.",[414,55753,55359,55754,55362,55756,55758,55759,55368,55761,55763,55764,55766,55767,55769,55770,55772],{},[7135,55755],{},[7135,55757],{},"\nnode-mongo\u002F",[7135,55760],{},[7135,55762],{},"\n├── app\u002F",[7135,55765],{},"\n│ ├── Dockerfile",[7135,55768],{},"\n│ ├── index.js",[7135,55771],{},"\n│ └── package.json",[414,55774,55775],{},"Dockerfile:",[4647,55777,55779],{"className":8413,"code":55778,"language":8415,"meta":269,"style":269},"FROM node:18\nWORKDIR \u002Fapp\nCOPY package*.json .\u002F\nRUN npm install\nCOPY . .\nCMD [\"node\", \"index.js\"]\n\n",[4653,55780,55781,55788,55794,55801,55808,55814],{"__ignoreMap":269},[4173,55782,55783,55785],{"class":4657,"line":4658},[4173,55784,8440],{"class":4788},[4173,55786,55787],{"class":4784}," node:18\n",[4173,55789,55790,55792],{"class":4657,"line":270},[4173,55791,8500],{"class":4788},[4173,55793,8697],{"class":4784},[4173,55795,55796,55798],{"class":4657,"line":1263},[4173,55797,8524],{"class":4788},[4173,55799,55800],{"class":4784}," package*.json .\u002F\n",[4173,55802,55803,55805],{"class":4657,"line":4770},[4173,55804,8548],{"class":4788},[4173,55806,55807],{"class":4784}," npm install\n",[4173,55809,55810,55812],{"class":4657,"line":4775},[4173,55811,8524],{"class":4788},[4173,55813,52865],{"class":4784},[4173,55815,55816,55818,55820,55822,55824,55827],{"class":4657,"line":6320},[4173,55817,8591],{"class":4788},[4173,55819,8623],{"class":4784},[4173,55821,8836],{"class":4669},[4173,55823,8629],{"class":4784},[4173,55825,55826],{"class":4669},"\"index.js\"",[4173,55828,8635],{"class":4784},[414,55830,55831,55832,55834,55835,55837,55838,55840],{},"index.js:",[7135,55833],{},"\nconst express = require('express');",[7135,55836],{},"\nconst mongoose = require('mongoose');",[7135,55839],{},"\nconst app = express();",[414,55842,55843,55844,55846,55847,55849],{},"mongoose.connect('mongodb:\u002F\u002Fmongo:27017\u002Ftest')",[7135,55845],{},"\n.then(() => console.log('Connected to MongoDB'))",[7135,55848],{},"\n.catch(err => console.error('MongoDB connection error:', err));",[414,55851,55852,55853,55855,55856,55858],{},"app.get('\u002F', (req, res) => {",[7135,55854],{},"\nres.send('Hello from Node.js and MongoDB!');",[7135,55857],{},"\n});",[414,55860,55861],{},"app.listen(3000, () => console.log('Server running on port 3000'));",[470,55863,55865],{"id":55864},"seite-4","Seite 4",[414,55867,55312,55868,55315],{},[7135,55869],{},[414,55871,55872,55873,55875,55876,55878,55879,55881,55882,55884,55885,55887,55888,55890,55891,55893,55894,55893],{},"package.json:",[7135,55874],{},"\n{",[7135,55877],{},"\n\"name\": \"node-mongo-app\",",[7135,55880],{},"\n\"version\": \"1.0.0\",",[7135,55883],{},"\n\"dependencies\": {",[7135,55886],{},"\n\"express\": \"^4.18.2\",",[7135,55889],{},"\n\"mongoose\": \"^7.0.0\"",[7135,55892],{},"\n}",[7135,55895],{},[414,55897,55383],{},[4647,55899,55901],{"className":31201,"code":55900,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\napp:\nbuild: .\u002Fapp\nports:\n- \"3000:3000\"\ndepends_on:\n- mongo\n\nmongo:\nimage: mongo\nports:\n- \"27017:27017\"\n\n",[4653,55902,55903,55911,55917,55923,55931,55937,55944,55950,55957,55961,55968,55976,55982],{"__ignoreMap":269},[4173,55904,55905,55907,55909],{"class":4657,"line":4658},[4173,55906,30805],{"class":31210},[4173,55908,7412],{"class":4784},[4173,55910,55397],{"class":4669},[4173,55912,55913,55915],{"class":4657,"line":270},[4173,55914,31224],{"class":31210},[4173,55916,2815],{"class":4784},[4173,55918,55919,55921],{"class":4657,"line":1263},[4173,55920,32947],{"class":31210},[4173,55922,2815],{"class":4784},[4173,55924,55925,55927,55929],{"class":4657,"line":4770},[4173,55926,30675],{"class":31210},[4173,55928,7412],{"class":4784},[4173,55930,54111],{"class":4669},[4173,55932,55933,55935],{"class":4657,"line":4775},[4173,55934,31359],{"class":31210},[4173,55936,2815],{"class":4784},[4173,55938,55939,55941],{"class":4657,"line":6320},[4173,55940,31294],{"class":4784},[4173,55942,55943],{"class":4669},"\"3000:3000\"\n",[4173,55945,55946,55948],{"class":4657,"line":6325},[4173,55947,31518],{"class":31210},[4173,55949,2815],{"class":4784},[4173,55951,55952,55954],{"class":4657,"line":6343},[4173,55953,31294],{"class":4784},[4173,55955,55956],{"class":4669},"mongo\n",[4173,55958,55959],{"class":4657,"line":6348},[4173,55960,4761],{"emptyLinePlaceholder":4760},[4173,55962,55963,55966],{"class":4657,"line":6457},[4173,55964,55965],{"class":31210},"mongo",[4173,55967,2815],{"class":4784},[4173,55969,55970,55972,55974],{"class":4657,"line":6462},[4173,55971,31306],{"class":31210},[4173,55973,7412],{"class":4784},[4173,55975,55956],{"class":4669},[4173,55977,55978,55980],{"class":4657,"line":6468},[4173,55979,31359],{"class":31210},[4173,55981,2815],{"class":4784},[4173,55983,55984,55986],{"class":4657,"line":6473},[4173,55985,31294],{"class":4784},[4173,55987,55988],{"class":4669},"\"27017:27017\"\n",[470,55990,55992],{"id":55991},"seite-5","Seite 5",[414,55994,55312],{},[414,55996,55997,55998,55315],{},"🛠️",[7135,55999],{},[414,56001,56002,56003,56005,56006,56008],{},"Aufgabe 4: Laravel + MySQL Umgebung",[7135,56004],{},"\n📋 Aufgabenstellung:",[7135,56007],{},"\nSetze eine vollständige Laravel-Entwicklungsumgebung mit MySQL und Docker Compose auf.",[414,56010,55347,56011,56013],{},[7135,56012],{},"\n• Verwende laravel\u002Flaravel und mysql:8.",[414,56015,56016,56017,56019],{},"• Benutze Volumes für persistente Daten.",[7135,56018],{},"\n• Öffne Laravel auf Port 8000.",[414,56021,55359,56022,56024],{},[7135,56023],{},"\ndocker-compose.yml",[4647,56026,56028],{"className":31201,"code":56027,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\napp:\nimage: laravelsail\u002Fphp82-composer\ncontainer_name: laravel_app\nworking_dir: \u002Fvar\u002Fwww\u002Fhtml\nvolumes:\n- .:\u002Fvar\u002Fwww\u002Fhtml\nports:\n- \"8000:8000\"\ndepends_on:\n- db\ncommand: bash -c \"composer install && php artisan serve --host=0.0.0.0 --\n",[4653,56029,56030,56038,56044,56050,56059,56068,56078,56084,56091,56097,56104,56110,56116],{"__ignoreMap":269},[4173,56031,56032,56034,56036],{"class":4657,"line":4658},[4173,56033,30805],{"class":31210},[4173,56035,7412],{"class":4784},[4173,56037,55397],{"class":4669},[4173,56039,56040,56042],{"class":4657,"line":270},[4173,56041,31224],{"class":31210},[4173,56043,2815],{"class":4784},[4173,56045,56046,56048],{"class":4657,"line":1263},[4173,56047,32947],{"class":31210},[4173,56049,2815],{"class":4784},[4173,56051,56052,56054,56056],{"class":4657,"line":4770},[4173,56053,31306],{"class":31210},[4173,56055,7412],{"class":4784},[4173,56057,56058],{"class":4669},"laravelsail\u002Fphp82-composer\n",[4173,56060,56061,56063,56065],{"class":4657,"line":4775},[4173,56062,31320],{"class":31210},[4173,56064,7412],{"class":4784},[4173,56066,56067],{"class":4669},"laravel_app\n",[4173,56069,56070,56073,56075],{"class":4657,"line":6320},[4173,56071,56072],{"class":31210},"working_dir",[4173,56074,7412],{"class":4784},[4173,56076,56077],{"class":4669},"\u002Fvar\u002Fwww\u002Fhtml\n",[4173,56079,56080,56082],{"class":4657,"line":6325},[4173,56081,31392],{"class":31210},[4173,56083,2815],{"class":4784},[4173,56085,56086,56088],{"class":4657,"line":6343},[4173,56087,31294],{"class":4784},[4173,56089,56090],{"class":4669},".:\u002Fvar\u002Fwww\u002Fhtml\n",[4173,56092,56093,56095],{"class":4657,"line":6348},[4173,56094,31359],{"class":31210},[4173,56096,2815],{"class":4784},[4173,56098,56099,56101],{"class":4657,"line":6457},[4173,56100,31294],{"class":4784},[4173,56102,56103],{"class":4669},"\"8000:8000\"\n",[4173,56105,56106,56108],{"class":4657,"line":6462},[4173,56107,31518],{"class":31210},[4173,56109,2815],{"class":4784},[4173,56111,56112,56114],{"class":4657,"line":6468},[4173,56113,31294],{"class":4784},[4173,56115,55648],{"class":4669},[4173,56117,56118,56120,56122],{"class":4657,"line":6473},[4173,56119,32419],{"class":31210},[4173,56121,7412],{"class":4784},[4173,56123,56124],{"class":4669},"bash -c \"composer install && php artisan serve --host=0.0.0.0 --\n",[4647,56126,56128],{"className":4649,"code":56127,"language":4651,"meta":269,"style":269},"port=8000\"\n\n",[4653,56129,56130],{"__ignoreMap":269},[4173,56131,56132,56134,56136],{"class":4657,"line":4658},[4173,56133,30774],{"class":4784},[4173,56135,6387],{"class":4788},[4173,56137,56138],{"class":4669},"8000\"\n",[414,56140,56141],{},"db:",[4647,56143,56145],{"className":31201,"code":56144,"language":31203,"meta":269,"style":269},"image: mysql:8.0\ncontainer_name: mysql_db\nenvironment:\nMYSQL_DATABASE: laravel\nMYSQL_ROOT_PASSWORD: root\nMYSQL_USER: user\nMYSQL_PASSWORD: password\nvolumes:\n- dbdata:\u002Fvar\u002Flib\u002Fmysql\nports:\n- \"3306:3306\"\n\nvolumes:\ndbdata:\n\n",[4653,56146,56147,56155,56164,56170,56179,56187,56195,56203,56209,56216,56222,56229,56233,56239],{"__ignoreMap":269},[4173,56148,56149,56151,56153],{"class":4657,"line":4658},[4173,56150,31306],{"class":31210},[4173,56152,7412],{"class":4784},[4173,56154,55663],{"class":4669},[4173,56156,56157,56159,56161],{"class":4657,"line":270},[4173,56158,31320],{"class":31210},[4173,56160,7412],{"class":4784},[4173,56162,56163],{"class":4669},"mysql_db\n",[4173,56165,56166,56168],{"class":4657,"line":1263},[4173,56167,31425],{"class":31210},[4173,56169,2815],{"class":4784},[4173,56171,56172,56174,56176],{"class":4657,"line":4770},[4173,56173,55674],{"class":31210},[4173,56175,7412],{"class":4784},[4173,56177,56178],{"class":4669},"laravel\n",[4173,56180,56181,56183,56185],{"class":4657,"line":4775},[4173,56182,55703],{"class":31210},[4173,56184,7412],{"class":4784},[4173,56186,55708],{"class":4669},[4173,56188,56189,56191,56193],{"class":4657,"line":6320},[4173,56190,55684],{"class":31210},[4173,56192,7412],{"class":4784},[4173,56194,54403],{"class":4669},[4173,56196,56197,56199,56201],{"class":4657,"line":6325},[4173,56198,55693],{"class":31210},[4173,56200,7412],{"class":4784},[4173,56202,55698],{"class":4669},[4173,56204,56205,56207],{"class":4657,"line":6343},[4173,56206,31392],{"class":31210},[4173,56208,2815],{"class":4784},[4173,56210,56211,56213],{"class":4657,"line":6348},[4173,56212,31294],{"class":4784},[4173,56214,56215],{"class":4669},"dbdata:\u002Fvar\u002Flib\u002Fmysql\n",[4173,56217,56218,56220],{"class":4657,"line":6457},[4173,56219,31359],{"class":31210},[4173,56221,2815],{"class":4784},[4173,56223,56224,56226],{"class":4657,"line":6462},[4173,56225,31294],{"class":4784},[4173,56227,56228],{"class":4669},"\"3306:3306\"\n",[4173,56230,56231],{"class":4657,"line":6468},[4173,56232,4761],{"emptyLinePlaceholder":4760},[4173,56234,56235,56237],{"class":4657,"line":6473},[4173,56236,31392],{"class":31210},[4173,56238,2815],{"class":4784},[4173,56240,56241,56244],{"class":4657,"line":6479},[4173,56242,56243],{"class":31210},"dbdata",[4173,56245,2815],{"class":4784},[470,56247,56249],{"id":56248},"seite-6","Seite 6",[414,56251,55312],{},[414,56253,55997,56254,55315],{},[7135,56255],{},[414,56257,56258,56259,56005,56261,56263,56264,56266],{},"Aufgabe 5: Redis als Cache-Service",[7135,56260],{},[7135,56262],{},"\nErstelle einen Redis-Service mit Docker Compose und verbinde ihn mit einer einfachen Node.js-",[7135,56265],{},"\nApp als Cache Layer.",[414,56268,55347,56269,56271,56272,56274],{},[7135,56270],{},"\n• Verwende das Redis-Image.",[7135,56273],{},"\n• Die App soll bei \u002F prüfen, ob Daten gecached sind.",[414,56276,56277],{},"• Wenn nicht, speichert sie etwas in Redis.",[414,56279,55359,56280,56282,56283,55834,56285,56287],{},[7135,56281],{},"\nindex.js",[7135,56284],{},[7135,56286],{},"\nconst redis = require('redis');",[414,56289,56290,56291,56293],{},"const client = redis.createClient({ url: 'redis:\u002F\u002Fredis:6379' });",[7135,56292],{},"\nclient.connect();",[414,56295,56296],{},"const app = express();",[414,56298,56299,56300,56302],{},"app.get('\u002F', async (req, res) => {",[7135,56301],{},"\nconst value = await client.get('message');",[4647,56304,56306],{"className":4649,"code":56305,"language":4651,"meta":269,"style":269},"if (value) {\nres.send(`Cached: ${value}`);\n",[4653,56307,56308,56320],{"__ignoreMap":269},[4173,56309,56310,56312,56314,56317],{"class":4657,"line":4658},[4173,56311,6201],{"class":4788},[4173,56313,4171],{"class":4784},[4173,56315,56316],{"class":4661},"value",[4173,56318,56319],{"class":4784},") {\n",[4173,56321,56322,56325,56328,56331,56333,56335,56338],{"class":4657,"line":270},[4173,56323,56324],{"class":4661},"res.send(",[4173,56326,56327],{"class":4669},"`",[4173,56329,56330],{"class":4661},"Cached:",[4173,56332,11642],{"class":4669},[4173,56334,56316],{"class":4784},[4173,56336,56337],{"class":4669},"}`",[4173,56339,55545],{"class":4784},[414,56341,56342,56343,56345,56346,56348,56349,55893,56351,55858],{},"} else {",[7135,56344],{},"\nawait client.set('message', 'Hello Redis');",[7135,56347],{},"\nres.send('Set cache: Hello Redis');",[7135,56350],{},[7135,56352],{},[414,56354,56355],{},"app.listen(3000, () => console.log('Server on 3000'));",[414,56357,56358],{},"docker-compose.yml",[4647,56360,56362],{"className":31201,"code":56361,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\napp:\nbuild: .\nports:\n- \"3000:3000\"\ndepends_on:\n- redis\n\nredis:\nimage: redis:alpine\nports:\n- \"6379:6379\"\n\n",[4653,56363,56364,56372,56378,56384,56393,56399,56405,56411,56418,56422,56429,56438,56444],{"__ignoreMap":269},[4173,56365,56366,56368,56370],{"class":4657,"line":4658},[4173,56367,30805],{"class":31210},[4173,56369,7412],{"class":4784},[4173,56371,55397],{"class":4669},[4173,56373,56374,56376],{"class":4657,"line":270},[4173,56375,31224],{"class":31210},[4173,56377,2815],{"class":4784},[4173,56379,56380,56382],{"class":4657,"line":1263},[4173,56381,32947],{"class":31210},[4173,56383,2815],{"class":4784},[4173,56385,56386,56388,56390],{"class":4657,"line":4770},[4173,56387,30675],{"class":31210},[4173,56389,7412],{"class":4784},[4173,56391,56392],{"class":4665},".\n",[4173,56394,56395,56397],{"class":4657,"line":4775},[4173,56396,31359],{"class":31210},[4173,56398,2815],{"class":4784},[4173,56400,56401,56403],{"class":4657,"line":6320},[4173,56402,31294],{"class":4784},[4173,56404,55943],{"class":4669},[4173,56406,56407,56409],{"class":4657,"line":6325},[4173,56408,31518],{"class":31210},[4173,56410,2815],{"class":4784},[4173,56412,56413,56415],{"class":4657,"line":6343},[4173,56414,31294],{"class":4784},[4173,56416,56417],{"class":4669},"redis\n",[4173,56419,56420],{"class":4657,"line":6348},[4173,56421,4761],{"emptyLinePlaceholder":4760},[4173,56423,56424,56427],{"class":4657,"line":6457},[4173,56425,56426],{"class":31210},"redis",[4173,56428,2815],{"class":4784},[4173,56430,56431,56433,56435],{"class":4657,"line":6462},[4173,56432,31306],{"class":31210},[4173,56434,7412],{"class":4784},[4173,56436,56437],{"class":4669},"redis:alpine\n",[4173,56439,56440,56442],{"class":4657,"line":6468},[4173,56441,31359],{"class":31210},[4173,56443,2815],{"class":4784},[4173,56445,56446,56448],{"class":4657,"line":6473},[4173,56447,31294],{"class":4784},[4173,56449,56450],{"class":4669},"\"6379:6379\"\n",[470,56452,56454],{"id":56453},"seite-7","Seite 7",[414,56456,55312],{},[414,56458,55997,56459,55315],{},[7135,56460],{},[414,56462,56463,56464,56005,56466,56468],{},"Aufgabe 6: PostgreSQL + Adminer (Datenbank GUI)",[7135,56465],{},[7135,56467],{},"\nStarte eine PostgreSQL-Datenbank mit Adminer zur Verwaltung über den Browser.",[414,56470,55347,56471,56473],{},[7135,56472],{},"\n• PostgreSQL Port: 5432",[414,56475,56476],{},"• Adminer Port: 8080",[414,56478,55359,56479,56024],{},[7135,56480],{},[4647,56482,56484],{"className":31201,"code":56483,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\ndb:\nimage: postgres:15\nenvironment:\nPOSTGRES_DB: example\nPOSTGRES_USER: user\nPOSTGRES_PASSWORD: password\nvolumes:\n- pgdata:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\nports:\n- \"5432:5432\"\n\nadminer:\nimage: adminer\nports:\n- \"8080:8080\"\n\nvolumes:\npgdata:\n\n",[4653,56485,56486,56494,56500,56506,56515,56521,56530,56538,56546,56552,56559,56565,56572,56576,56583,56592,56598,56605,56609,56615],{"__ignoreMap":269},[4173,56487,56488,56490,56492],{"class":4657,"line":4658},[4173,56489,30805],{"class":31210},[4173,56491,7412],{"class":4784},[4173,56493,55397],{"class":4669},[4173,56495,56496,56498],{"class":4657,"line":270},[4173,56497,31224],{"class":31210},[4173,56499,2815],{"class":4784},[4173,56501,56502,56504],{"class":4657,"line":1263},[4173,56503,54298],{"class":31210},[4173,56505,2815],{"class":4784},[4173,56507,56508,56510,56512],{"class":4657,"line":4770},[4173,56509,31306],{"class":31210},[4173,56511,7412],{"class":4784},[4173,56513,56514],{"class":4669},"postgres:15\n",[4173,56516,56517,56519],{"class":4657,"line":4775},[4173,56518,31425],{"class":31210},[4173,56520,2815],{"class":4784},[4173,56522,56523,56525,56527],{"class":4657,"line":6320},[4173,56524,32222],{"class":31210},[4173,56526,7412],{"class":4784},[4173,56528,56529],{"class":4669},"example\n",[4173,56531,56532,56534,56536],{"class":4657,"line":6325},[4173,56533,32236],{"class":31210},[4173,56535,7412],{"class":4784},[4173,56537,54403],{"class":4669},[4173,56539,56540,56542,56544],{"class":4657,"line":6343},[4173,56541,32250],{"class":31210},[4173,56543,7412],{"class":4784},[4173,56545,55698],{"class":4669},[4173,56547,56548,56550],{"class":4657,"line":6348},[4173,56549,31392],{"class":31210},[4173,56551,2815],{"class":4784},[4173,56553,56554,56556],{"class":4657,"line":6457},[4173,56555,31294],{"class":4784},[4173,56557,56558],{"class":4669},"pgdata:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n",[4173,56560,56561,56563],{"class":4657,"line":6462},[4173,56562,31359],{"class":31210},[4173,56564,2815],{"class":4784},[4173,56566,56567,56569],{"class":4657,"line":6468},[4173,56568,31294],{"class":4784},[4173,56570,56571],{"class":4669},"\"5432:5432\"\n",[4173,56573,56574],{"class":4657,"line":6473},[4173,56575,4761],{"emptyLinePlaceholder":4760},[4173,56577,56578,56581],{"class":4657,"line":6479},[4173,56579,56580],{"class":31210},"adminer",[4173,56582,2815],{"class":4784},[4173,56584,56585,56587,56589],{"class":4657,"line":6503},[4173,56586,31306],{"class":31210},[4173,56588,7412],{"class":4784},[4173,56590,56591],{"class":4669},"adminer\n",[4173,56593,56594,56596],{"class":4657,"line":6516},[4173,56595,31359],{"class":31210},[4173,56597,2815],{"class":4784},[4173,56599,56600,56602],{"class":4657,"line":6971},[4173,56601,31294],{"class":4784},[4173,56603,56604],{"class":4669},"\"8080:8080\"\n",[4173,56606,56607],{"class":4657,"line":10649},[4173,56608,4761],{"emptyLinePlaceholder":4760},[4173,56610,56611,56613],{"class":4657,"line":10654},[4173,56612,31392],{"class":31210},[4173,56614,2815],{"class":4784},[4173,56616,56617,56620],{"class":4657,"line":10659},[4173,56618,56619],{"class":31210},"pgdata",[4173,56621,2815],{"class":4784},[470,56623,56625],{"id":56624},"seite-8","Seite 8",[414,56627,55312],{},[414,56629,55997,56630,55315],{},[7135,56631],{},[414,56633,56634,56635,56005,56637,56639],{},"Aufgabe 7: RabbitMQ Messaging Queue",[7135,56636],{},[7135,56638],{},"\nStarte einen RabbitMQ-Container und sende eine Nachricht von einer Node.js-App.",[414,56641,55347,56642,56644],{},[7135,56643],{},"\n• RabbitMQ läuft auf 5672, Web-UI auf 15672",[414,56646,56647],{},"• Nutze das Paket amqplib",[414,56649,55359,56650,56024],{},[7135,56651],{},[4647,56653,56655],{"className":31201,"code":56654,"language":31203,"meta":269,"style":269},"version: '3.8'\nservices:\nrabbitmq:\nimage: rabbitmq:3-management\nports:\n- \"5672:5672\"\n- \"15672:15672\"\n\nsender:\nbuild: .\u002Fsender\ndepends_on:\n- rabbitmq\n\n",[4653,56656,56657,56665,56671,56678,56687,56693,56700,56707,56711,56718,56727,56733],{"__ignoreMap":269},[4173,56658,56659,56661,56663],{"class":4657,"line":4658},[4173,56660,30805],{"class":31210},[4173,56662,7412],{"class":4784},[4173,56664,55397],{"class":4669},[4173,56666,56667,56669],{"class":4657,"line":270},[4173,56668,31224],{"class":31210},[4173,56670,2815],{"class":4784},[4173,56672,56673,56676],{"class":4657,"line":1263},[4173,56674,56675],{"class":31210},"rabbitmq",[4173,56677,2815],{"class":4784},[4173,56679,56680,56682,56684],{"class":4657,"line":4770},[4173,56681,31306],{"class":31210},[4173,56683,7412],{"class":4784},[4173,56685,56686],{"class":4669},"rabbitmq:3-management\n",[4173,56688,56689,56691],{"class":4657,"line":4775},[4173,56690,31359],{"class":31210},[4173,56692,2815],{"class":4784},[4173,56694,56695,56697],{"class":4657,"line":6320},[4173,56696,31294],{"class":4784},[4173,56698,56699],{"class":4669},"\"5672:5672\"\n",[4173,56701,56702,56704],{"class":4657,"line":6325},[4173,56703,31294],{"class":4784},[4173,56705,56706],{"class":4669},"\"15672:15672\"\n",[4173,56708,56709],{"class":4657,"line":6343},[4173,56710,4761],{"emptyLinePlaceholder":4760},[4173,56712,56713,56716],{"class":4657,"line":6348},[4173,56714,56715],{"class":31210},"sender",[4173,56717,2815],{"class":4784},[4173,56719,56720,56722,56724],{"class":4657,"line":6457},[4173,56721,30675],{"class":31210},[4173,56723,7412],{"class":4784},[4173,56725,56726],{"class":4669},".\u002Fsender\n",[4173,56728,56729,56731],{"class":4657,"line":6462},[4173,56730,31518],{"class":31210},[4173,56732,2815],{"class":4784},[4173,56734,56735,56737],{"class":4657,"line":6468},[4173,56736,31294],{"class":4784},[4173,56738,56739],{"class":4669},"rabbitmq\n",[414,56741,56742,56743,56745],{},"sender\u002Findex.js",[7135,56744],{},"\nconst amqp = require('amqplib');",[414,56747,56748,56749,56751,56752,56754,56755,56757,56758,56760,56761,56763,56764,56766,56767,56769,56770,56772,56773,56775],{},"(async () => {",[7135,56750],{},"\nconst conn = await amqp.connect('amqp:\u002F\u002Frabbitmq');",[7135,56753],{},"\nconst ch = await conn.createChannel();",[7135,56756],{},"\nconst q = 'task_queue';",[7135,56759],{},"\nawait ch.assertQueue(q);",[7135,56762],{},"\nch.sendToQueue(q, Buffer.from('Hello RabbitMQ'));",[7135,56765],{},"\nconsole.log('Message sent');",[7135,56768],{},"\nawait ch.close();",[7135,56771],{},"\nawait conn.close();",[7135,56774],{},"\n})();",[414,56777,56778],{},"sender\u002FDockerfile",[4647,56780,56782],{"className":8413,"code":56781,"language":8415,"meta":269,"style":269},"FROM node:18\nWORKDIR \u002Fapp\nCOPY . .\nRUN npm install\nCMD [\"node\", \"index.js\"]\n\n",[4653,56783,56784,56790,56796,56802,56808],{"__ignoreMap":269},[4173,56785,56786,56788],{"class":4657,"line":4658},[4173,56787,8440],{"class":4788},[4173,56789,55787],{"class":4784},[4173,56791,56792,56794],{"class":4657,"line":270},[4173,56793,8500],{"class":4788},[4173,56795,8697],{"class":4784},[4173,56797,56798,56800],{"class":4657,"line":1263},[4173,56799,8524],{"class":4788},[4173,56801,52865],{"class":4784},[4173,56803,56804,56806],{"class":4657,"line":4770},[4173,56805,8548],{"class":4788},[4173,56807,55807],{"class":4784},[4173,56809,56810,56812,56814,56816,56818,56820],{"class":4657,"line":4775},[4173,56811,8591],{"class":4788},[4173,56813,8623],{"class":4784},[4173,56815,8836],{"class":4669},[4173,56817,8629],{"class":4784},[4173,56819,55826],{"class":4669},[4173,56821,8635],{"class":4784},[470,56823,56825],{"id":56824},"seite-9","Seite 9",[414,56827,55312,56828,55315],{},[7135,56829],{},[414,56831,56832,56833,55875,56835,56837,56838,55884,56840,56842,56843,55893,56845,55893],{},"sender\u002Fpackage.json",[7135,56834],{},[7135,56836],{},"\n\"name\": \"rabbit-sender\",",[7135,56839],{},[7135,56841],{},"\n\"amqplib\": \"^0.10.0\"",[7135,56844],{},[7135,56846],{},[16,56848,56850],{"id":56849},"sudoers_antworten_mit_fragenpdf","sudoers_antworten_mit_fragen.pdf",[414,56852,56853],{},"Quelle: sudoers_antworten_mit_fragen.pdf - 9 Seite(n)",[470,56855,55309],{"id":56856},"seite-1-1",[414,56858,55312],{},[414,56860,56861],{},"Technikerschule Erlangen",[414,56863,56864,56865,56867],{},"Prufungsfragen zur sudoers-Datei - Antworten",[7135,56866],{},"\nGrundlagen",[318,56869,56870,56879,56888],{},[24,56871,56872,56873,56875,56876,56878],{},"Was ist die Datei \u002Fetc\u002Fsudoers?",[7135,56874],{},"\nAntwort: Die Datei \u002Fetc\u002Fsudoers legt fest, welche Benutzer oder Gruppen sudo benutzen durfen,",[7135,56877],{},"\nals welcher Zielbenutzer Befehle laufen und welche Kommandos erlaubt oder verboten sind.",[24,56880,56881,56882,56884,56885,56887],{},"Warum sollte man die sudoers-Datei nicht direkt mit einem Editor bearbeiten?",[7135,56883],{},"\nAntwort: Weil schon kleine Syntaxfehler sudo unbrauchbar machen konnen. Dann konnen",[7135,56886],{},"\nAdministratoren sich im schlimmsten Fall aussperren oder Rechte falsch vergeben.",[24,56889,56890,56891,56893,56894,56896],{},"Welchen Befehl nutzt man zum sicheren Bearbeiten der sudoers-Datei?",[7135,56892],{},"\nAntwort: Dafur nutzt man visudo. Das Tool sperrt die Datei wahrend der Bearbeitung und pruft",[7135,56895],{},"\ndie Syntax vor dem Speichern.",[414,56898,56899,56900,56902,56903,56905,56906,56908,56909,56911,56912,56914,56915,56917,56918,56920,56921,56923,56924,56926],{},"Syntax & Struktur",[7135,56901],{},"\n4. Wie ist eine typische sudoers-Regel aufgebaut?",[7135,56904],{},"\nAntwort: Typisch ist: Benutzer Host=(Runas) Optionen: Befehl. Beispiel: max ALL=(root)",[7135,56907],{},"\n\u002Fusr\u002Fbin\u002Fsystemctl restart apache2.",[7135,56910],{},"\n5. Was bedeutet ALL in der sudoers-Datei?",[7135,56913],{},"\nAntwort: ALL bedeutet immer eine Freigabe fur alle Werte im jeweiligen Feld. Je nach Position",[7135,56916],{},"\nkann es also alle Hosts, alle Zielbenutzer oder alle Befehle meinen.",[7135,56919],{},"\n6. Was bedeutet (ALL) in einer Regel?",[7135,56922],{},"\nAntwort: Das Runas-Feld (ALL) bedeutet, dass der Befehl als jeder beliebige Zielbenutzer",[7135,56925],{},"\nausgefuhrt werden darf, also nicht nur als root.",[414,56928,56929,56930,56932,56933,56935,56936,56938,56939,56941,56942,56944,56945,56947],{},"Rechte & Sicherheit",[7135,56931],{},"\n7. Was bewirkt die Option NOPASSWD?",[7135,56934],{},"\nAntwort: NOPASSWD erlaubt die Ausfuhrung der angegebenen Befehle ohne Passwortabfrage.",[7135,56937],{},"\nDas ist bequem, sollte aber nur sehr gezielt fur wenige sichere Kommandos eingesetzt werden.",[7135,56940],{},"\n8. Was ist der Unterschied zwischen sudo und su?",[7135,56943],{},"\nAntwort: sudo fuhrt einzelne Befehle mit erhohten Rechten aus und kann fein granular geregelt",[7135,56946],{},"\nwerden. su wechselt direkt in ein anderes Benutzerkonto, oft in eine komplette Root-Shell.",[414,56949,56950,56951,56953,56954,56956,56957,56959],{},"Aliase",[7135,56952],{},"\n9. Welche Alias-Typen gibt es in der sudoers-Datei?",[7135,56955],{},"\nAntwort: Es gibt User_Alias fur Benutzer, Runas_Alias fur Zielbenutzer, Host_Alias fur Rechner",[7135,56958],{},"\nund Cmnd_Alias fur Befehlsgruppen.",[414,56961,56962,56963,56965,56966,56968,56969,56971,56972,56974,56975,56977],{},"Praktische Fragen",[7135,56964],{},"\n10. Wie erlaubst du einem Benutzer nur den Neustart des Systems?",[7135,56967],{},"\nAntwort: Zum Beispiel mit: max ALL=(root) \u002Fusr\u002Fsbin\u002Freboot. Noch besser ist die exakte Freigabe",[7135,56970],{},"\nnur des einen benotigten Befehls statt allgemeiner Systemrechte.",[7135,56973],{},"\n11. Wie erlaubst du einer Gruppe sudo-Zugriff?",[7135,56976],{},"\nAntwort: Gruppen werden mit einem Prozentzeichen geschrieben, zum Beispiel: %sudo",[4647,56979,56981],{"className":4649,"code":56980,"language":4651,"meta":269,"style":269},"ALL=(ALL) ALL. Dann erhalten alle Mitglieder dieser Gruppe die erlaubten Rechte.\n\n",[4653,56982,56983],{"__ignoreMap":269},[4173,56984,56985,56987,56989,56991,56993],{"class":4657,"line":4658},[4173,56986,38137],{"class":4784},[4173,56988,6387],{"class":4788},[4173,56990,6390],{"class":4784},[4173,56992,38137],{"class":4669},[4173,56994,56995],{"class":4784},") ALL. Dann erhalten alle Mitglieder dieser Gruppe die erlaubten Rechte.\n",[414,56997,56998],{},"Sicherheit & Best Practices",[470,57000,55449],{"id":57001},"seite-2-1",[318,57003,57004,57016],{"start":6468},[24,57005,57006,57007,57009,57010,57012,57013,57015],{},"Warum ist es gefahrlich, ALL=(ALL) ALL zu vergeben?",[7135,57008],{},"\nAntwort: Weil der Benutzer damit praktisch jede Aktion als jeder Benutzer ausfuhren kann. Das",[7135,57011],{},"\nentspricht fast vollem Administrationszugriff und vergroBert das Missbrauchs- und Fehlerrisiko",[7135,57014],{},"\nstark.",[24,57017,57018,57019,57021,57022,57024,57025,57027],{},"Was macht die Direktive Defaults?",[7135,57020],{},"\nAntwort: Defaults setzt Standardoptionen fur sudo, zum Beispiel Umgebungsvariablen,",[7135,57023],{},"\nPasswortverhalten oder TTY-Anforderungen. Solche Vorgaben konnen global oder",[7135,57026],{},"\nbenutzerbezogen gelten.",[414,57029,57030,57031,57033,57034,57036,57037,57039,57040,57042,57043,57045,57046,57048],{},"Erweiterte Fragen",[7135,57032],{},"\n14. Was ist der Unterschied zwischen \u002Fetc\u002Fsudoers und \u002Fetc\u002Fsudoers.d\u002F?",[7135,57035],{},"\nAntwort: \u002Fetc\u002Fsudoers ist die zentrale Hauptdatei. In \u002Fetc\u002Fsudoers.d\u002F liegen zusatzliche",[7135,57038],{},"\nEinzeldateien, mit denen Rechte sauber modular und besser wartbar verteilt werden konnen.",[7135,57041],{},"\n15. Wie uberpruft man die Syntax der sudoers-Datei?",[7135,57044],{},"\nAntwort: Mit visudo -c. Der Befehl pruft die Syntax der Hauptdatei und normalerweise auch die",[7135,57047],{},"\neingebundenen Dateien.",[470,57050,55712],{"id":57051},"seite-3-1",[414,57053,55312],{},[414,57055,56861],{},[414,57057,57058,57059,57061,57062,57064],{},"Szenario- & Analysefragen - Antworten",[7135,57060],{},"\nSzenario- & Analysefragen",[7135,57063],{},"\n16. Was bewirkt folgende Regel genau?",[4647,57066,57068],{"className":4649,"code":57067,"language":4651,"meta":269,"style":269},"max ALL=(root, www-data) \u002Fusr\u002Fbin\u002Fsystemctl restart apache2\n",[4653,57069,57070],{"__ignoreMap":269},[4173,57071,57072,57074,57076,57078,57081,57084,57086,57088,57090],{"class":4657,"line":4658},[4173,57073,38072],{"class":4661},[4173,57075,38075],{"class":4669},[4173,57077,6390],{"class":4784},[4173,57079,57080],{"class":4661},"root,",[4173,57082,57083],{"class":4669}," www-data",[4173,57085,6306],{"class":4784},[4173,57087,38142],{"class":4669},[4173,57089,33670],{"class":4669},[4173,57091,38147],{"class":4669},[414,57093,57094,57095,57097,57098,57100],{},"Antwort: Benutzer max darf auf allen Hosts genau den Befehl \u002Fusr\u002Fbin\u002Fsystemctl restart apache2",[7135,57096],{},"\nausfuhren, und zwar als root oder als www-data. Andere Befehle sind dadurch nicht erlaubt.",[7135,57099],{},"\n17. Was ist der Unterschied zwischen diesen beiden Regeln?",[4647,57102,57104],{"className":4649,"code":57103,"language":4651,"meta":269,"style":269},"max ALL=(ALL) ALL\nmax ALL=ALL ALL\n",[4653,57105,57106,57120],{"__ignoreMap":269},[4173,57107,57108,57110,57112,57114,57116,57118],{"class":4657,"line":4658},[4173,57109,38072],{"class":4661},[4173,57111,38075],{"class":4669},[4173,57113,6390],{"class":4784},[4173,57115,38137],{"class":4661},[4173,57117,6306],{"class":4784},[4173,57119,38085],{"class":4669},[4173,57121,57122,57124,57127],{"class":4657,"line":270},[4173,57123,38072],{"class":4661},[4173,57125,57126],{"class":4669}," ALL=ALL",[4173,57128,38404],{"class":4669},[414,57130,57131,57132,57134,57135,57137,57138,57140],{},"Antwort: Inhaltlich fast keiner: beide erlauben max alle Befehle als alle Zielbenutzer. Die",[7135,57133],{},"\nSchreibweise mit Klammern ist die ubliche und klarere Form; ohne Klammern wird historisch ein",[7135,57136],{},"\nStandard-Runas angenommen.",[7135,57139],{},"\n18. Welche Regel hat Prioritat und warum?",[4647,57142,57144],{"className":4649,"code":57143,"language":4651,"meta":269,"style":269},"max ALL=(ALL) ALL\nmax ALL=(ALL) !\u002Fbin\u002Fbash\n",[4653,57145,57146,57160],{"__ignoreMap":269},[4173,57147,57148,57150,57152,57154,57156,57158],{"class":4657,"line":4658},[4173,57149,38072],{"class":4661},[4173,57151,38075],{"class":4669},[4173,57153,6390],{"class":4784},[4173,57155,38137],{"class":4661},[4173,57157,6306],{"class":4784},[4173,57159,38085],{"class":4669},[4173,57161,57162,57164,57166,57168,57170,57172],{"class":4657,"line":270},[4173,57163,38072],{"class":4661},[4173,57165,38075],{"class":4669},[4173,57167,6390],{"class":4784},[4173,57169,38137],{"class":4661},[4173,57171,6306],{"class":4784},[4173,57173,57174],{"class":4669},"!\u002Fbin\u002Fbash\n",[414,57176,57177,57178,57180,57181,57183,57184,57186,57187,57189],{},"Antwort: Die einschrankende Regel mit !\u002Fbin\u002Fbash ist wichtiger, weil Negationen verbotene",[7135,57179],{},"\nBefehle explizit ausschlieBen. Trotzdem sind solche Mischregeln heikel, weil man Bash oft uber",[7135,57182],{},"\nandere Programme indirekt wieder erreichen kann.",[7135,57185],{},"\n19. Was passiert bei folgender Konfiguration?",[7135,57188],{},"\nCmnd_Alias DANGER = \u002Fbin\u002Frm, \u002Fbin\u002Fdd",[4647,57191,57193],{"className":4649,"code":57192,"language":4651,"meta":269,"style":269},"max ALL=(ALL) ALL, !DANGER\n",[4653,57194,57195],{"__ignoreMap":269},[4173,57196,57197,57199,57201,57203,57205,57207,57210],{"class":4657,"line":4658},[4173,57198,38072],{"class":4661},[4173,57200,38075],{"class":4669},[4173,57202,6390],{"class":4784},[4173,57204,38137],{"class":4661},[4173,57206,6306],{"class":4784},[4173,57208,57209],{"class":4669},"ALL,",[4173,57211,57212],{"class":4669}," !DANGER\n",[414,57214,57215,57216,57218,57219,57221],{},"Antwort: max darf grundsatzlich alle Befehle ausfuhren, auBer \u002Fbin\u002Frm und \u002Fbin\u002Fdd. Sicher ist das",[7135,57217],{},"\ntrotzdem nicht, weil ahnliche Wirkungen oft uber andere Werkzeuge oder Shells erreicht werden",[7135,57220],{},"\nkonnen.",[414,57223,57224,57225,57227],{},"Tiefergehende Syntaxfragen",[7135,57226],{},"\n20. Wie wirken NOPASSWD und PASSWD in Kombination innerhalb einer Regel?",[4647,57229,57231],{"className":4649,"code":57230,"language":4651,"meta":269,"style":269},"max ALL=(ALL) NOPASSWD: \u002Fbin\u002Fls, PASSWD: \u002Fbin\u002Fcat\n",[4653,57232,57233],{"__ignoreMap":269},[4173,57234,57235,57237,57239,57241,57243,57245,57247,57250,57253],{"class":4657,"line":4658},[4173,57236,38072],{"class":4661},[4173,57238,38075],{"class":4669},[4173,57240,6390],{"class":4784},[4173,57242,38137],{"class":4661},[4173,57244,6306],{"class":4784},[4173,57246,38179],{"class":4669},[4173,57248,57249],{"class":4669}," \u002Fbin\u002Fls,",[4173,57251,57252],{"class":4669}," PASSWD:",[4173,57254,57255],{"class":4669}," \u002Fbin\u002Fcat\n",[414,57257,57258,57259,57261,57262,57264,57265,57267,57268,57270,57271,57273,57274,57276],{},"Antwort: Die Option wirkt nur fur die danach genannten Befehle. \u002Fbin\u002Fls ware ohne Passwort",[7135,57260],{},"\nerlaubt, wahrend fur \u002Fbin\u002Fcat weiterhin eine Passwortabfrage erfolgt.",[7135,57263],{},"\n21. Was bewirkt folgende Defaults-Zeile?",[7135,57266],{},"\nDefaults:max !requiretty",[7135,57269],{},"\nAntwort: Fur den Benutzer max wird die TTY-Pflicht deaktiviert. Er darf sudo also auch ohne",[7135,57272],{},"\ninteraktives Terminal verwenden, etwa in Skripten oder per Fernaufruf.",[7135,57275],{},"\n22. Was ist der Unterschied zwischen folgenden Regeln?",[4647,57278,57280],{"className":4649,"code":57279,"language":4651,"meta":269,"style":269},"max ALL=(ALL:ALL) ALL\nmax ALL=(ALL) ALL\n",[4653,57281,57282,57296],{"__ignoreMap":269},[4173,57283,57284,57286,57288,57290,57292,57294],{"class":4657,"line":4658},[4173,57285,38072],{"class":4661},[4173,57287,38075],{"class":4669},[4173,57289,6390],{"class":4784},[4173,57291,38080],{"class":4661},[4173,57293,6306],{"class":4784},[4173,57295,38085],{"class":4669},[4173,57297,57298,57300,57302,57304,57306,57308],{"class":4657,"line":270},[4173,57299,38072],{"class":4661},[4173,57301,38075],{"class":4669},[4173,57303,6390],{"class":4784},[4173,57305,38137],{"class":4661},[4173,57307,6306],{"class":4784},[4173,57309,38085],{"class":4669},[414,57311,57312,57313,57315],{},"Antwort: Mit (ALL:ALL) werden sowohl Zielbenutzer als auch Zielgruppen frei wahlbar. Mit (ALL)",[7135,57314],{},"\nist nur der Zielbenutzer explizit frei; die Gruppenseite bleibt standardmaBig eingeschrankter.",[414,57317,57318,57319,57321],{},"Edge Cases & Fallen",[7135,57320],{},"\n23. Warum kann folgende Regel ein Sicherheitsrisiko darstellen?",[4647,57323,57325],{"className":4649,"code":57324,"language":4651,"meta":269,"style":269},"max ALL=(ALL) \u002Fusr\u002Fbin\u002Fvim\n\n",[4653,57326,57327],{"__ignoreMap":269},[4173,57328,57329,57331,57333,57335,57337,57339],{"class":4657,"line":4658},[4173,57330,38072],{"class":4661},[4173,57332,38075],{"class":4669},[4173,57334,6390],{"class":4784},[4173,57336,38137],{"class":4661},[4173,57338,6306],{"class":4784},[4173,57340,57341],{"class":4669},"\u002Fusr\u002Fbin\u002Fvim\n",[470,57343,55865],{"id":57344},"seite-4-1",[414,57346,57347,57348,57350,57351,57353,57354,57356],{},"Antwort: Weil man aus vim heraus Shell-Befehle starten oder Dateien mit hohen Rechten",[7135,57349],{},"\nbearbeiten kann. Dadurch wird aus einem scheinbar harmlosen Editor schnell ein Weg zur",[7135,57352],{},"\nPrivilege Escalation.",[7135,57355],{},"\n24. Was passiert bei dieser Regel und wo liegt ein mogliches Problem?",[4647,57358,57360],{"className":4649,"code":57359,"language":4651,"meta":269,"style":269},"max ALL=(ALL) \u002Fusr\u002Fbin\u002Fless \u002Fvar\u002Flog\u002F*\n",[4653,57361,57362],{"__ignoreMap":269},[4173,57363,57364,57366,57368,57370,57372,57374,57377,57379],{"class":4657,"line":4658},[4173,57365,38072],{"class":4661},[4173,57367,38075],{"class":4669},[4173,57369,6390],{"class":4784},[4173,57371,38137],{"class":4661},[4173,57373,6306],{"class":4784},[4173,57375,57376],{"class":4669},"\u002Fusr\u002Fbin\u002Fless",[4173,57378,23933],{"class":4669},[4173,57380,26959],{"class":4665},[414,57382,57383,57384,57386,57387,57389,57390,57392],{},"Antwort: max darf Logdateien unter \u002Fvar\u002Flog mit less lesen. Problematisch ist, dass less externe",[7135,57385],{},"\nProgramme aufrufen kann und Wildcards zusammen mit Dateilinks oder Sonderfallen unerwartete",[7135,57388],{},"\nZugriffe erlauben konnen.",[7135,57391],{},"\n25. Warum ist folgende Regel problematisch?",[4647,57394,57396],{"className":4649,"code":57395,"language":4651,"meta":269,"style":269},"max ALL=(ALL) \u002Fusr\u002Fbin\u002Fpython3\n",[4653,57397,57398],{"__ignoreMap":269},[4173,57399,57400,57402,57404,57406,57408,57410],{"class":4657,"line":4658},[4173,57401,38072],{"class":4661},[4173,57403,38075],{"class":4669},[4173,57405,6390],{"class":4784},[4173,57407,38137],{"class":4661},[4173,57409,6306],{"class":4784},[4173,57411,57412],{"class":4669},"\u002Fusr\u002Fbin\u002Fpython3\n",[414,57414,57415,57416,57418],{},"Antwort: Ein Interpreter wie python3 kann beliebige Programme starten, Dateien schreiben oder",[7135,57417],{},"\nShells offnen. Damit entspricht die Freigabe praktisch sehr weitreichendem Vollzugriff.",[470,57420,55992],{"id":57421},"seite-5-1",[414,57423,55312],{},[414,57425,56861],{},[414,57427,57428,57429,57431,57432,57434,57435,57437,57438,57440],{},"Kombinations- & Logikfragen - Antworten",[7135,57430],{},"\nKombinations- & Logikfragen",[7135,57433],{},"\n26. Welche Berechtigungen ergeben sich aus folgender Konfiguration?",[7135,57436],{},"\nUser_Alias ADMINS = max, anna",[7135,57439],{},"\nCmnd_Alias WEB = \u002Fusr\u002Fbin\u002Fsystemctl restart apache2",[4647,57442,57444],{"className":4649,"code":57443,"language":4651,"meta":269,"style":269},"ADMINS ALL=(root) WEB\n",[4653,57445,57446],{"__ignoreMap":269},[4173,57447,57448,57451,57453,57455,57457,57459],{"class":4657,"line":4658},[4173,57449,57450],{"class":4661},"ADMINS",[4173,57452,38075],{"class":4669},[4173,57454,6390],{"class":4784},[4173,57456,13685],{"class":4661},[4173,57458,6306],{"class":4784},[4173,57460,57461],{"class":4669},"WEB\n",[414,57463,57464,57465,57467,57468,57470,57471,57473,57474,57476,57477,57479,57480,57482],{},"Antwort: Die Benutzer max und anna durfen auf allen Hosts als root genau den Befehl",[7135,57466],{},"\n\u002Fusr\u002Fbin\u002Fsystemctl restart apache2 ausfuhren. Weitere Kommandos werden dadurch nicht",[7135,57469],{},"\nfreigegeben.",[7135,57472],{},"\n27. Was passiert, wenn mehrere Dateien im Verzeichnis \u002Fetc\u002Fsudoers.d\u002F vorhanden sind?",[7135,57475],{},"\nAntwort: Alle eingebundenen Dateien werden ausgewertet. Deshalb muss man auf Reihenfolge,",[7135,57478],{},"\nNamensgebung und mogliche Regelkonflikte achten, damit keine unbeabsichtigten Rechte",[7135,57481],{},"\nentstehen.",[414,57484,57485,57486,57488],{},"Sicherheitsbewertung",[7135,57487],{},"\n28. Welche der folgenden Regeln ist sicherer und warum?",[4647,57490,57492],{"className":4649,"code":57491,"language":4651,"meta":269,"style":269},"max ALL=(ALL) ALL\n",[4653,57493,57494],{"__ignoreMap":269},[4173,57495,57496,57498,57500,57502,57504,57506],{"class":4657,"line":4658},[4173,57497,38072],{"class":4661},[4173,57499,38075],{"class":4669},[4173,57501,6390],{"class":4784},[4173,57503,38137],{"class":4661},[4173,57505,6306],{"class":4784},[4173,57507,38085],{"class":4669},[414,57509,57510],{},"vs.",[4647,57512,57514],{"className":4649,"code":57513,"language":4651,"meta":269,"style":269},"max ALL=(root) \u002Fusr\u002Fbin\u002Fsystemctl\n",[4653,57515,57516],{"__ignoreMap":269},[4173,57517,57518,57520,57522,57524,57526,57528],{"class":4657,"line":4658},[4173,57519,38072],{"class":4661},[4173,57521,38075],{"class":4669},[4173,57523,6390],{"class":4784},[4173,57525,13685],{"class":4661},[4173,57527,6306],{"class":4784},[4173,57529,38365],{"class":4669},[414,57531,57532,57533,57535],{},"Antwort: Die zweite Regel ist deutlich sicherer, weil sie nur einen bestimmten Befehl als root",[7135,57534],{},"\nerlaubt. Das Prinzip der minimalen Rechte wird damit viel besser umgesetzt.",[414,57537,57538,57539,57541,57542,57544,57545,57547,57548,57550],{},"Praxisaufgabe",[7135,57540],{},"\n29. Formuliere eine sudoers-Regel mit folgenden Anforderungen: Benutzer max,",[7135,57543],{},"\nAusfuhrung als root, apt update und apt upgrade, ohne Passwort",[7135,57546],{},"\nAntwort: Eine passende Regel ist: max ALL=(root) NOPASSWD: \u002Fusr\u002Fbin\u002Fapt update, \u002Fusr\u002Fbin\u002Fapt",[7135,57549],{},"\nupgrade. Wichtig ist die exakte Angabe der erlaubten Kommandos.",[470,57552,56249],{"id":57553},"seite-6-1",[414,57555,55312],{},[414,57557,56861],{},[414,57559,57560,57561,57563],{},"Komplexe Prufungsaufgabe: sudoers Analyse - Antworten",[7135,57562],{},"\nTeil 1: Verstandnisfragen",[318,57565,57566,57575,57587],{},[24,57567,57568,57569,57571,57572,57574],{},"Welche Rechte haben Benutzer aus der Gruppe ADMINS grundsatzlich?",[7135,57570],{},"\nAntwort: ADMINS umfasst max und anna. Durch die Regel ADMINS ALL=(ALL) ALL durfen",[7135,57573],{},"\nbeide grundsatzlich alle Befehle als alle Zielbenutzer ausfuhren.",[24,57576,57577,57578,57580,57581,57583,57584,57586],{},"Welche Befehle darf tom konkret ausfuhren?",[7135,57579],{},"\nAntwort: tom gehort zu DEV und darf dadurch als root die Befehle aus SYSTEM und EDIT",[7135,57582],{},"\nausfuhren, also systemctl, journalctl, vim und nano. Zusatzlich darf er laut letzter Regel less auf",[7135,57585],{},"\nDateien unter \u002Fvar\u002Flog verwenden.",[24,57588,57589,57590,57592,57593,57595,57596,57598],{},"Darf tom den Befehl \u002Fbin\u002Frm ausfuhren? Begrunde.",[7135,57591],{},"\nAntwort: Nach der DEV-Regel nicht direkt, weil !DANGEROUS den Alias mit \u002Fbin\u002Frm und \u002Fbin\u002Fdd",[7135,57594],{},"\nausschlieBen soll. Praktisch bleibt die Konfiguration aber unsicher, weil erlaubte Editoren oder",[7135,57597],{},"\nandere Programme dennoch Missbrauch ermoglichen konnen.",[414,57600,57601,57602,57604,57605,57607,57608,57610],{},"Teil 2: Prioritat & Regelkonflikte",[7135,57603],{},"\n4. Welche Regel gilt fur max beim Ausfuhren von Befehlen allgemein? Begrunde anhand",[7135,57606],{},"\nder Reihenfolge.",[7135,57609],{},"\nAntwort: Fur max gilt insgesamt die Kombination aller passenden Regeln. Allgemein hat er durch",[4647,57612,57614],{"className":4649,"code":57613,"language":4651,"meta":269,"style":269},"ADMINS ALL=(ALL) ALL Vollzugriff; die spateren PASSWD- und NOPASSWD-Regeln steuern\n",[4653,57615,57616],{"__ignoreMap":269},[4173,57617,57618,57620,57622,57624,57626,57628,57630,57633,57635,57638,57641,57644,57646,57649],{"class":4657,"line":4658},[4173,57619,57450],{"class":4661},[4173,57621,38075],{"class":4669},[4173,57623,6390],{"class":4784},[4173,57625,38137],{"class":4661},[4173,57627,6306],{"class":4784},[4173,57629,38137],{"class":4669},[4173,57631,57632],{"class":4669}," Vollzugriff",[4173,57634,6498],{"class":4784},[4173,57636,57637],{"class":4661},"die",[4173,57639,57640],{"class":4669}," spateren",[4173,57642,57643],{"class":4669}," PASSWD-",[4173,57645,36454],{"class":4669},[4173,57647,57648],{"class":4669}," NOPASSWD-Regeln",[4173,57650,57651],{"class":4669}," steuern\n",[414,57653,57654,57655,57657,57658,57660,57661,57663,57664,57666,57667,57669,57670,57672,57673,57675,57676,57678],{},"vor allem das Passwortverhalten fur bestimmte Befehle nach.",[7135,57656],{},"\n5. Kann max den Apache-Service ohne Passwort neu starten? Warum oder warum nicht?",[7135,57659],{},"\nAntwort: Ja. Fur genau \u002Fusr\u002Fbin\u002Fsystemctl restart apache2 existiert explizit eine NOPASSWD-",[7135,57662],{},"\nRegel, die die Passwortabfrage fur diesen Befehl aufhebt.",[7135,57665],{},"\n6. Welche Auswirkung hat die Kombination aus NOPASSWD: \u002Fusr\u002Fbin\u002Fsystemctl restart",[7135,57668],{},"\napache2 und PASSWD: ALL?",[7135,57671],{},"\nAntwort: Der Apache-Neustart bleibt ohne Passwort erlaubt, alle anderen per sudo erlaubten",[7135,57674],{},"\nBefehle erfordern ein Passwort. Die speziellere Ausnahme greift also nur fur das exakt genannte",[7135,57677],{},"\nKommando.",[414,57680,57681,57682,57684,57685,57687,57688,57690,57691,57693,57694,57696,57697,57699,57700,57702,57703,57705,57706,57708],{},"Teil 3: Sicherheitsanalyse",[7135,57683],{},"\n7. Warum ist die EDIT-Alias-Definition kritisch im Kontext von sudo?",[7135,57686],{},"\nAntwort: Weil Editoren wie vim oder nano nicht nur Text bearbeiten, sondern oft Shell-Aufrufe,",[7135,57689],{},"\nDateizugriffe und Plugins erlauben. Damit lassen sich Beschrankungen leicht umgehen.",[7135,57692],{},"\n8. Welche Sicherheitsprobleme entstehen durch die Regel: anna ALL=(root)",[7135,57695],{},"\n\u002Fusr\u002Fbin\u002Fvim \u002Fetc\u002F*",[7135,57698],{},"\nAntwort: anna darf damit als root beliebige Dateien unter \u002Fetc mit vim offnen und verandern. Aus",[7135,57701],{},"\nvim heraus kann sie zudem unter Umstanden Shell-Kommandos starten und so weit mehr als nur",[7135,57704],{},"\nKonfigurationen bearbeiten.",[7135,57707],{},"\n9. Warum ist folgende Regel potenziell unsicher, obwohl sie eingeschrankt wirkt? tom",[4647,57710,57712],{"className":4649,"code":57711,"language":4651,"meta":269,"style":269},"ALL=(ALL) \u002Fusr\u002Fbin\u002Fless \u002Fvar\u002Flog\u002F*\n",[4653,57713,57714],{"__ignoreMap":269},[4173,57715,57716,57718,57720,57722,57724,57727],{"class":4657,"line":4658},[4173,57717,38137],{"class":4784},[4173,57719,6387],{"class":4788},[4173,57721,6390],{"class":4784},[4173,57723,38137],{"class":4669},[4173,57725,57726],{"class":4784},") \u002Fusr\u002Fbin\u002Fless \u002Fvar\u002Flog\u002F",[4173,57728,26959],{"class":4788},[414,57730,57731,57732,57734],{},"Antwort: less wirkt wie ein Lesewerkzeug, kann aber externe Programme aufrufen. Auerdem",[7135,57733],{},"\nkonnen Wildcards und besondere Dateien oder Symlinks zu unerwarteten Zugriffen fuhren.",[414,57736,57737],{},"Teil 4: Syntax & Logikfehler",[470,57739,56454],{"id":57740},"seite-7-1",[318,57742,57743],{"start":6457},[24,57744,57745],{},"Gibt es einen logischen oder sicherheitstechnischen Fehler in dieser Zeile? DEV",[4647,57747,57749],{"className":4649,"code":57748,"language":4651,"meta":269,"style":269},"ALL=(root) SYSTEM, EDIT, !DANGEROUS\n",[4653,57750,57751],{"__ignoreMap":269},[4173,57752,57753,57755,57757,57759,57761,57764,57766],{"class":4657,"line":4658},[4173,57754,38137],{"class":4784},[4173,57756,6387],{"class":4788},[4173,57758,6390],{"class":4784},[4173,57760,13685],{"class":4669},[4173,57762,57763],{"class":4784},") SYSTEM, EDIT, ",[4173,57765,6842],{"class":4788},[4173,57767,57768],{"class":4661},"DANGEROUS\n",[414,57770,57771,57772,57774,57775,57777,57778,57780,57781,57783,57784,57786],{},"Antwort: Ja. Die Regel erlaubt sehr starke Werkzeuge wie Editoren und versucht nur einzelne",[7135,57773],{},"\ngefahrliche Befehle auszuschlieBen. Das ist logisch schwach, weil viele andere erlaubte",[7135,57776],{},"\nProgramme ebenfalls missbraucht werden konnen.",[7135,57779],{},"\n11. Wird !DANGEROUS hier zuverlassig durchgesetzt? Begrunde.",[7135,57782],{},"\nAntwort: Nur fur exakt die dort genannten Pfade. Zuverlassig sicher ist das nicht, weil dieselben",[7135,57785],{},"\nWirkungen uber andere Programme, Shells oder alternative Pfade erreichbar bleiben konnen.",[414,57788,57789,57790,57792,57793,57795,57796,57798,57799,57801,57802,57804,57805,57807,57808,57810,57811,57813],{},"Teil 5: Fehler finden",[7135,57791],{},"\n12. Identifiziere mindestens zwei versteckte Probleme oder Risiken in der gesamten",[7135,57794],{},"\nKonfiguration.",[7135,57797],{},"\nAntwort: Erstens fuhrt ADMINS ALL=(ALL) ALL praktisch zu Vollzugriff. Zweitens sind vim, nano,",[7135,57800],{},"\nless und ahnliche Programme als sudo-Befehle riskant, weil sie Shell-Eskalation oder",[7135,57803],{},"\nDateimanipulation erlauben.",[7135,57806],{},"\n13. Welche Regel(n) konnten unbeabsichtigt zu vollstandigem Root-Zugriff fuhren?",[7135,57809],{},"\nAntwort: Sicher die ADMINS-Regel. Praktisch ebenfalls kritisch sind die Freigaben fur vim, nano",[7135,57812],{},"\noder pythonartige Werkzeuge, weil sie sehr leicht zu einer Root-Shell fuhren konnen.",[414,57815,57816,57817,57819,57820,57822,57823,57825,57826,57828,57829,57831,57832,57834,57835,57837,57838,57840,57841,57843],{},"Teil 6: Transfer \u002F Praxis",[7135,57818],{},"\n14. Formuliere eine sichere Alternative fur die DEV-Regel, sodass nur systemctl restart",[7135,57821],{},"\napache2 erlaubt ist und keine Shell-Eskalation moglich ist.",[7135,57824],{},"\nAntwort: Eine sichere Alternative ware: tom ALL=(root) \u002Fusr\u002Fbin\u002Fsystemctl restart apache2. Damit",[7135,57827],{},"\nwird nur ein exakt benannter Befehl freigegeben und keine Shell oder kein Editor erlaubt.",[7135,57830],{},"\n15. Wie wurdest du verhindern, dass Editoren wie vim zur Privilege Escalation genutzt",[7135,57833],{},"\nwerden?",[7135,57836],{},"\nAntwort: Am besten gar keine allgemeinen Editoren per sudo freigeben. Stattdessen nur",[7135,57839],{},"\neinzelne, exakt definierte Verwaltungsbefehle erlauben oder mit sudoedit arbeiten und Shell-",[7135,57842],{},"\nFunktionen vermeiden.",[470,57845,56625],{"id":57846},"seite-8-1",[414,57848,55312],{},[414,57850,56861],{},[414,57852,57853,57854,57856,57857,57859],{},"Prufungsaufgabe: sudoers mit Syntaxfehlern & Fallen -",[7135,57855],{},"\nAntworten",[7135,57858],{},"\nTeil 1: Syntaxfehler erkennen",[318,57861,57862],{},[24,57863,57864,57865,57867,57868,57870,57871,57873],{},"Identifiziere alle Syntaxfehler, die dazu fuhren, dass visudo die Datei ablehnt.",[7135,57866],{},"\nAntwort: Fehlerhaft sind zum Beispiel: User_Alias ADMINS = max, anna, wegen des",[7135,57869],{},"\nabschlieBenden Kommas; Cmnd_Alias EDIT = \u002Fusr\u002Fbin\u002Fvim \u002Fusr\u002Fbin\u002Fnano wegen fehlendem",[7135,57872],{},"\nKomma; Cmnd_Alias DANG = \u002Fbin\u002Frm, \u002Fbin\u002Fdd, wegen des abschlieBenden Kommas; ADMINS",[4647,57875,57877],{"className":4649,"code":57876,"language":4651,"meta":269,"style":269},"ALL=(ALL ALL) ALL wegen falscher Runas-Syntax; DEV ALL=(root) SYS, EDIT !DANG wegen\nfehlendem Komma; max ALL=(ALL) PASSWD ALL wegen fehlendem Doppelpunkt nach\n",[4653,57878,57879,57918],{"__ignoreMap":269},[4173,57880,57881,57883,57885,57887,57889,57892,57895,57898,57900,57902,57904,57906,57909,57912,57915],{"class":4657,"line":4658},[4173,57882,38137],{"class":4784},[4173,57884,6387],{"class":4788},[4173,57886,6390],{"class":4784},[4173,57888,38137],{"class":4669},[4173,57890,57891],{"class":4669}," ALL",[4173,57893,57894],{"class":4784},") ALL wegen falscher Runas-Syntax; ",[4173,57896,57897],{"class":4661},"DEV",[4173,57899,38075],{"class":4669},[4173,57901,6390],{"class":4784},[4173,57903,13685],{"class":4661},[4173,57905,6306],{"class":4784},[4173,57907,57908],{"class":4669},"SYS,",[4173,57910,57911],{"class":4669}," EDIT",[4173,57913,57914],{"class":4669}," !DANG",[4173,57916,57917],{"class":4669}," wegen\n",[4173,57919,57920,57923,57926,57928,57930,57932,57934,57936,57938,57941,57943,57946,57949,57952],{"class":4657,"line":270},[4173,57921,57922],{"class":4661},"fehlendem",[4173,57924,57925],{"class":4669}," Komma",[4173,57927,6498],{"class":4784},[4173,57929,38072],{"class":4661},[4173,57931,38075],{"class":4669},[4173,57933,6390],{"class":4784},[4173,57935,38137],{"class":4661},[4173,57937,6306],{"class":4784},[4173,57939,57940],{"class":4669},"PASSWD",[4173,57942,57891],{"class":4669},[4173,57944,57945],{"class":4669}," wegen",[4173,57947,57948],{"class":4669}," fehlendem",[4173,57950,57951],{"class":4669}," Doppelpunkt",[4173,57953,57954],{"class":4669}," nach\n",[414,57956,57957,57958,57960,57961,57963,57964,57966,57967,57969,57970,57972,57973,57975],{},"PASSWD.",[7135,57959],{},"\n2. Welche Zeilen enthalten unguItige Alias-Definitionen?",[7135,57962],{},"\nAntwort: Unzulassig sind User_Alias ADMINS = max, anna, sowie Cmnd_Alias EDIT =",[7135,57965],{},"\n\u002Fusr\u002Fbin\u002Fvim \u002Fusr\u002Fbin\u002Fnano und Cmnd_Alias DANG = \u002Fbin\u002Frm, \u002Fbin\u002Fdd,.",[7135,57968],{},"\n3. Wo fehlen notwendige Trennzeichen oder Operatoren?",[7135,57971],{},"\nAntwort: Es fehlt ein Komma zwischen vim und nano, ein Komma vor !DANG und ein",[7135,57974],{},"\nDoppelpunkt nach PASSWD. Genau solche kleinen Zeichen sind in sudoers besonders wichtig.",[414,57977,57978,57979,57981,57982,57984,57985,57987,57988,57990,57991,57993,57994,57996,57997,57999,58000,58002],{},"Teil 2: Tricky Syntax",[7135,57980],{},"\n4. Ist folgende Zeile gultig oder fehlerhaft? Begrunde.",[7135,57983],{},"\nDefaults:anna ! requiretty",[7135,57986],{},"\nAntwort: Sie ist fehlerhaft, weil zwischen ! und requiretty kein Leerzeichen stehen darf. Korrekt",[7135,57989],{},"\nware: Defaults:anna !requiretty.",[7135,57992],{},"\n5. Was ist das Problem bei: ADMINS ALL=(ALL ALL) ALL",[7135,57995],{},"\nAntwort: Im Runas-Teil fehlt der korrekte Trenner zwischen Benutzer und Gruppe. Richtig ware",[7135,57998],{},"\nentweder (ALL) oder (ALL:ALL).",[7135,58001],{},"\n6. Warum ist diese Zeile syntaktisch oder logisch problematisch?",[4647,58004,58006],{"className":4649,"code":58005,"language":4651,"meta":269,"style":269},"DEV ALL=(root) SYS, EDIT !DANG\n",[4653,58007,58008],{"__ignoreMap":269},[4173,58009,58010,58012,58014,58016,58018,58020,58022,58024],{"class":4657,"line":4658},[4173,58011,57897],{"class":4661},[4173,58013,38075],{"class":4669},[4173,58015,6390],{"class":4784},[4173,58017,13685],{"class":4661},[4173,58019,6306],{"class":4784},[4173,58021,57908],{"class":4669},[4173,58023,57911],{"class":4669},[4173,58025,58026],{"class":4669}," !DANG\n",[414,58028,58029,58030,58032,58033,58035],{},"Antwort: Syntaktisch fehlt das Komma vor !DANG. Logisch ist die Regel auBerdem",[7135,58031],{},"\nproblematisch, weil sie mit EDIT sehr machtige Programme erlaubt und nur einzelne Gefahren",[7135,58034],{},"\nausschlieBt.",[414,58037,58038,58039,58041,58042,58044,58045,58047,58048,58050,58051,58053,58054,58056],{},"Teil 3: Semantik trotz Syntax",[7135,58040],{},"\n7. Welche effektiven Rechte hatte max am Ende wirklich?",[7135,58043],{},"\nAntwort: Wenn alle Syntaxfehler behoben werden, hatte max durch die ADMINS-Regel im Kern",[7135,58046],{},"\nVollzugriff. Zusatzlich ware der Apache-Neustart ohne Passwort erlaubt.",[7135,58049],{},"\n8. Welche Regel wurde fur Passwortabfragen bei max gelten?",[7135,58052],{},"\nAntwort: Fur \u002Fusr\u002Fbin\u002Fsystemctl restart apache2 galt NOPASSWD, fur alle anderen Befehle",[7135,58055],{},"\nPASSWD. Also genau ein freigestellter Befehl, sonst Passwortpflicht.",[414,58058,58059,58060,58062,58063,58065,58066,58068,58069,58071,58072,58074],{},"Teil 4: Sicherheitsanalyse",[7135,58061],{},"\n9. Welche Regeln ermoglichen trotz Einschrankungen eine Root-Shell?",[7135,58064],{},"\nAntwort: Vor allem Regeln mit vim, nano oder ahnlichen interaktiven Programmen. Auch",[7135,58067],{},"\nInterpreter oder falsch eingeschrankte Werkzeuge konnen trotz scheinbarer Grenzen schnell zu",[7135,58070],{},"\neiner Root-Shell fuhren.",[7135,58073],{},"\n10. Warum ist die Kombination aus EDIT und sudo grundsatzlich kritisch?",[470,58076,56825],{"id":58077},"seite-9-1",[414,58079,58080,58081,58083],{},"Antwort: Weil Editoren nicht nur Dateien andern, sondern oft Shell-Kommandos, Plugins oder",[7135,58082],{},"\nDateibrowser enthalten. Damit werden sie unter sudo zu sehr machtigen Werkzeugen.",[414,58085,58086,58087,58089,58090,58092,58093,58095,58096,58098,58099,58101,58102,58104,58105,58107,58108,58110],{},"Teil 5: Fehlerbehebung",[7135,58088],{},"\n11. Korrigiere folgende Zeile vollstandig: Cmnd_Alias EDIT = \u002Fusr\u002Fbin\u002Fvim \u002Fusr\u002Fbin\u002Fnano",[7135,58091],{},"\nAntwort: Korrektur: Cmnd_Alias EDIT = \u002Fusr\u002Fbin\u002Fvim, \u002Fusr\u002Fbin\u002Fnano",[7135,58094],{},"\n12. Korrigiere die Alias-Definition mit minimaler Anderung: User_Alias ADMINS = max,",[7135,58097],{},"\nanna,",[7135,58100],{},"\nAntwort: Korrektur: User_Alias ADMINS = max, anna",[7135,58103],{},"\n13. Formuliere die DEV-Regel korrekt und sicher (nur Syntax, keine",[7135,58106],{},"\nSicherheitsoptimierung).",[7135,58109],{},"\nAntwort: Syntaktisch korrekt ware: DEV ALL=(root) SYS, EDIT, !DANG",[414,58112,58113,58114,58116,58117,58119,58120,58122,58123,58125,58126,58128,58129,58131,58132,58134,58135,58137,58138,58140],{},"Teil 6: Transfer",[7135,58115],{},"\n14. Nenne zwei Grunde, warum syntaktisch korrekte sudoers-Dateien trotzdem unsicher",[7135,58118],{},"\nsein konnen.",[7135,58121],{},"\nAntwort: Erstens konnen zu breite Rechte wie ALL=(ALL) ALL vergeben sein. Zweitens konnen",[7135,58124],{},"\nscheinbar harmlose Programme wie Editoren, Pager oder Interpreter indirekt eine",[7135,58127],{},"\nRechteausweitung erlauben.",[7135,58130],{},"\n15. Erklare, warum visudo zwar notwendig, aber nicht ausreichend fur Sicherheit ist.",[7135,58133],{},"\nAntwort: visudo pruft nur die Syntax, nicht die fachliche Sicherheit der Regeln. Eine Datei kann",[7135,58136],{},"\nalso formal korrekt sein und trotzdem gefahrliche oder zu weitreichende Berechtigungen",[7135,58139],{},"\nenthalten.",[16,58142,58144],{"id":58143},"technikervorbereitungpdf","TechnikerVorbereitung.pdf",[414,58146,58147],{},"Quelle: TechnikerVorbereitung.pdf - 5 Seite(n)",[470,58149,55309],{"id":58150},"seite-1-2",[414,58152,58153,58154,58156,58157,58159],{},"Aufgabe 1: System 11 Punkte",[7135,58155],{},"\nWelcher Verzeichniszweig ist der, bei dem eine Datensicherung am wenigstens Sinn macht? 1P",[7135,58158],{},"\nKreuzen Sie die richtige Antwort an! Begründen Sie Ihre Antwort!",[414,58161,15432,58162,58164],{},[7135,58163],{},"\n\u002Fetc",[4647,58166,58168],{"className":4649,"code":58167,"language":4651,"meta":269,"style":269},"x \u002Fproc\n",[4653,58169,58170],{"__ignoreMap":269},[4173,58171,58172,58174],{"class":4657,"line":4658},[4173,58173,14220],{"class":4661},[4173,58175,58176],{"class":4669}," \u002Fproc\n",[414,58178,58179],{},"\u002Fvar",[414,58181,58182],{},"Werfen Sie einen Blick auf die folgende Ausgabe von top und beantworten Sie die folgenden Fragen:",[414,58184,58185,58186,58188],{},"Welche Prozesse wurden vom Benutzer carol gestartet? 1P",[7135,58187],{},"\nNur einer: top. (887)",[414,58190,58191,58192,58194,58195,58197],{},"Welches virtuelle Verzeichnis von \u002Fproc sollten Sie aufrufen, um nach Daten des Befehls top zu suchen?",[7135,58193],{},"\n2P",[7135,58196],{},"\n\u002Fproc\u002F887",[414,58199,58200],{},"Welcher Prozess wurde als erstes gestartet? Woher wissen Sie das? 2P",[414,58202,58203],{},"systemd, weil es die PID 1 hat.",[414,58205,58206,58207,58209,58210,58212,58213,58215,58216,58218,58219,58221,58222,58224],{},"Wie könnte der Befehl telinit verwendet werden, um das System neu zu starten? 2P",[7135,58208],{},"\nDer Befehl telinit 6 wechselt zu Runlevel 6, d.h. das System wird neu gestartet.",[7135,58211],{},"\nWas passiert mit den Diensten, die sich auf die Datei \u002Fetc\u002Frc1.d\u002FK90network beziehen, wenn das System",[7135,58214],{},"\nRunlevel 1 aktiviert? 1P",[7135,58217],{},"\nAufgrund des Buchstabens K am Anfang des Dateinamens werden die entsprechenden Dienste beendet.",[7135,58220],{},"\nWie könnte ein Benutzer mit dem Befehl systemctl überprüfen, ob die Unit sshd.service läuft?",[7135,58223],{},"\nMit dem Befehl systemctl status sshd.service oder systemctl is-active sshd.service. 1P",[414,58226,58227,58228,58230,58231,58233],{},"Basierend auf der Nutzung von systemd: Welcher Befehl muss ausgeführt werden, um die Aktivierung von",[7135,58229],{},"\nsshd.service während der Systeminitialisierung zu ermöglichen? 1P",[7135,58232],{},"\nDer Befehl systemctl enable sshd.service wird von root ausgeführt.",[470,58235,55449],{"id":58236},"seite-2-2",[414,58238,58239,58240,58242],{},"Aufgabe 2: Shell-Umgebung 7 Punkte",[7135,58241],{},"\nGeben Sie im Folgenden die entsprechenden Befehle für die angegebene Aufgabe an.",[414,58244,58245],{},"Erzeugen Sie eine lokale Variable namens mammal und weisen Sie ihr den Wert gnu zu: 1P",[4647,58247,58249],{"className":4649,"code":58248,"language":4651,"meta":269,"style":269},"mammal=\"gnu\"\n\n",[4653,58250,58251],{"__ignoreMap":269},[4173,58252,58253,58256,58258],{"class":4657,"line":4658},[4173,58254,58255],{"class":4784},"mammal",[4173,58257,6387],{"class":4788},[4173,58259,58260],{"class":4669},"\"gnu\"\n",[414,58262,58263,58264,58266,58267,58269,58270,58272],{},"Die Variable var_sub soll einen String in folgendem Format enthalten: 1P",[7135,58265],{},"\nThe value of mammal is gnu",[7135,58268],{},"\nGeben Sie die Befehlszeile an die, die Variable var_sub auf diesen Wert setzt. Verwenden Sie dabei die",[7135,58271],{},"\nVariable mammal, um den String gnu zu erhalten.",[4647,58274,58276],{"className":4649,"code":58275,"language":4651,"meta":269,"style":269},"var_sub=\"The value of mammal is $mammal\" oder var_sub=\"The value of mammal is “ $mammal\n\n",[4653,58277,58278],{"__ignoreMap":269},[4173,58279,58280,58283,58285,58288,58291,58293,58295,58298],{"class":4657,"line":4658},[4173,58281,58282],{"class":4784},"var_sub",[4173,58284,6387],{"class":4788},[4173,58286,58287],{"class":4669},"\"The value of mammal is ",[4173,58289,58290],{"class":4784},"$mammal",[4173,58292,6207],{"class":4669},[4173,58294,26948],{"class":4661},[4173,58296,58297],{"class":4669}," var_sub=\"The value of mammal is “ ",[4173,58299,58300],{"class":4784},"$mammal\n",[414,58302,58303,58304,58306],{},"Machen Sie mammal zu einer Umgebungsvariablen: 1P",[7135,58305],{},"\nexport mammal",[414,58308,58309,58310,58312],{},"Suchen Sie mit grep nach dieser Umgebungsvariable: 1P",[7135,58311],{},"\nset | grep mammal oder env | grep mammal",[414,58314,58315],{},"Sie sind als user2 eingeloggt. Erstellen Sie ein Verzeichnis namens bin in Ihrem Homeverzeichnis. 1P",[4647,58317,58319],{"className":4649,"code":58318,"language":4651,"meta":269,"style":269},"mkdir ~\u002Fbin oder mkdir \u002Fhome\u002Fuser2\u002Fbin oder mkdir $HOME\u002Fbin\n\n",[4653,58320,58321],{"__ignoreMap":269},[4173,58322,58323,58325,58328,58330,58333,58336,58338,58340,58343],{"class":4657,"line":4658},[4173,58324,6940],{"class":4661},[4173,58326,58327],{"class":4669}," ~\u002Fbin",[4173,58329,26948],{"class":4669},[4173,58331,58332],{"class":4669}," mkdir",[4173,58334,58335],{"class":4669}," \u002Fhome\u002Fuser2\u002Fbin",[4173,58337,26948],{"class":4669},[4173,58339,58332],{"class":4669},[4173,58341,58342],{"class":4784}," $HOME",[4173,58344,58345],{"class":4669},"\u002Fbin\n",[414,58347,58348,58349,58351],{},"Das gerade angelegte Verzeichnis soll das Verzeichnis werden, in dem sie als erstes nach ausführbaren",[7135,58350],{},"\nDateien suchen. Geben Sie den Befehl, der die entsprechende Umgebungsvariable anpasst. 1P",[4647,58353,58355],{"className":4649,"code":58354,"language":4651,"meta":269,"style":269},"PATH=\"$HOME\u002Fbin:$PATH\" PATH=~\u002Fbin:$PATH oder PATH=\u002Fhome\u002Fuser2\u002Fbin:$PATH\n\n",[4653,58356,58357],{"__ignoreMap":269},[4173,58358,58359,58361,58363,58365,58367,58370,58372,58374,58376,58378,58381,58384,58387,58390],{"class":4657,"line":4658},[4173,58360,45935],{"class":4784},[4173,58362,6387],{"class":4788},[4173,58364,6207],{"class":4669},[4173,58366,11962],{"class":4784},[4173,58368,58369],{"class":4669},"\u002Fbin:",[4173,58371,43811],{"class":4784},[4173,58373,6207],{"class":4669},[4173,58375,43993],{"class":4784},[4173,58377,6387],{"class":4788},[4173,58379,58380],{"class":4669},"~\u002Fbin:",[4173,58382,58383],{"class":4784},"$PATH ",[4173,58385,58386],{"class":4661},"oder",[4173,58388,58389],{"class":4669}," PATH=\u002Fhome\u002Fuser2\u002Fbin:",[4173,58391,58392],{"class":4784},"$PATH\n",[414,58394,58395,58396,58398],{},"Geben Sie eine if-Anweisung an, die Sie in ~\u002F.profile einfügen, um sicherzustellen, dass der Wert von der",[7135,58397],{},"\ngerade veränderten Umgebungsvariable über Neustarts hinweg unverändert bleibt. 1P",[4647,58400,58402],{"className":4649,"code":58401,"language":4651,"meta":269,"style":269},"if [ -d \"$HOME\u002Fbin\" ] ; then\nPATH=\"$HOME\u002Fbin:$PATH\"\nfi\n\n",[4653,58403,58404,58424,58440],{"__ignoreMap":269},[4173,58405,58406,58408,58410,58412,58414,58416,58419,58422],{"class":4657,"line":4658},[4173,58407,6201],{"class":4788},[4173,58409,6204],{"class":4784},[4173,58411,22493],{"class":4788},[4173,58413,6218],{"class":4669},[4173,58415,11962],{"class":4784},[4173,58417,58418],{"class":4669},"\u002Fbin\"",[4173,58420,58421],{"class":4784}," ] ; ",[4173,58423,6229],{"class":4788},[4173,58425,58426,58428,58430,58432,58434,58436,58438],{"class":4657,"line":270},[4173,58427,45935],{"class":4784},[4173,58429,6387],{"class":4788},[4173,58431,6207],{"class":4669},[4173,58433,11962],{"class":4784},[4173,58435,58369],{"class":4669},[4173,58437,43811],{"class":4784},[4173,58439,6454],{"class":4669},[4173,58441,58442],{"class":4657,"line":1263},[4173,58443,6247],{"class":4788},[470,58445,55712],{"id":58446},"seite-3-2",[414,58448,58449],{},"Aufgabe 3: Befehle 17 Punkte",[414,58451,58452,58453,58455],{},"Legen Sie mit genau einem Befehlsaufruf 5 nummerierte Dateien mit dem Präfix games an (games1,",[7135,58454],{},"\ngames2,…). 1,5 P",[4647,58457,58459],{"className":4649,"code":58458,"language":4651,"meta":269,"style":269},"touch games{1..5}\n\n",[4653,58460,58461],{"__ignoreMap":269},[4173,58462,58463,58465],{"class":4657,"line":4658},[4173,58464,11437],{"class":4661},[4173,58466,58467],{"class":4669}," games{1..5}\n",[414,58469,58470],{},"Löschen Sie mit genau einem Befehlsaufruf die gerade erstellten 5 Dateien. 1,5 P",[4647,58472,58474],{"className":4649,"code":58473,"language":4651,"meta":269,"style":269},"rm games? Oder rm games[12345]\n\n",[4653,58475,58476],{"__ignoreMap":269},[4173,58477,58478,58480,58483,58486,58488],{"class":4657,"line":4658},[4173,58479,11334],{"class":4661},[4173,58481,58482],{"class":4669}," games?",[4173,58484,58485],{"class":4669}," Oder",[4173,58487,9794],{"class":4669},[4173,58489,58490],{"class":4669}," games[12345]\n",[414,58492,58493,58494,58496],{},"Entfernen Sie die gesamten Verzeichnisbäume unterhalb der Verzeichnisse, die mit Test_Verzeichnis begin-",[7135,58495],{},"\nnen (z.B. Test_Verzeichnis1 oder auch Text_Verzeichnis_x uvm.) mit nur einem Befehl. 1P",[4647,58498,58500],{"className":4649,"code":58499,"language":4651,"meta":269,"style":269},"rm -r Test_Verzeichnis*\n\n",[4653,58501,58502],{"__ignoreMap":269},[4173,58503,58504,58506,58508,58511],{"class":4657,"line":4658},[4173,58505,11334],{"class":4661},[4173,58507,9095],{"class":4665},[4173,58509,58510],{"class":4669}," Test_Verzeichnis",[4173,58512,26959],{"class":4665},[414,58514,58515],{},"Piping ist eine Möglichkeit zwei Befehle miteinander interagieren zu lassen. Erklären Sie das Prinzip. 2P",[414,58517,58518],{},"Piping sendet stdout von einem Befehl als stdin des anderen Befehls.",[414,58520,58521],{},"Erklären Sie folgende Befehlszeile möglichst genau: 2P",[4647,58523,58525],{"className":4649,"code":58524,"language":4651,"meta":269,"style":269},"ls -l | head | wc -w\n\nls -l gibt langform des Verzeichnislisting an head weiter, der die ersten 10 Zeilen nimmt und an wc gibt, der\n",[4653,58526,58527,58544,58548],{"__ignoreMap":269},[4173,58528,58529,58531,58533,58535,58537,58539,58541],{"class":4657,"line":4658},[4173,58530,13462],{"class":4661},[4173,58532,10277],{"class":4665},[4173,58534,8928],{"class":4788},[4173,58536,10445],{"class":4661},[4173,58538,8928],{"class":4788},[4173,58540,10274],{"class":4661},[4173,58542,58543],{"class":4665}," -w\n",[4173,58545,58546],{"class":4657,"line":270},[4173,58547,4761],{"emptyLinePlaceholder":4760},[4173,58549,58550,58552,58554,58557,58560,58563,58566,58569,58571,58574,58576,58578,58581,58583,58586,58589,58591,58593,58595,58598],{"class":4657,"line":1263},[4173,58551,13462],{"class":4661},[4173,58553,10277],{"class":4665},[4173,58555,58556],{"class":4669}," gibt",[4173,58558,58559],{"class":4669}," langform",[4173,58561,58562],{"class":4669}," des",[4173,58564,58565],{"class":4669}," Verzeichnislisting",[4173,58567,58568],{"class":4669}," an",[4173,58570,10445],{"class":4669},[4173,58572,58573],{"class":4669}," weiter,",[4173,58575,48676],{"class":4669},[4173,58577,48690],{"class":4669},[4173,58579,58580],{"class":4669}," ersten",[4173,58582,15571],{"class":4665},[4173,58584,58585],{"class":4669}," Zeilen",[4173,58587,58588],{"class":4669}," nimmt",[4173,58590,36454],{"class":4669},[4173,58592,58568],{"class":4669},[4173,58594,10274],{"class":4669},[4173,58596,58597],{"class":4669}," gibt,",[4173,58599,58600],{"class":4669}," der\n",[414,58602,58603],{},"Wörter zählt.",[414,58605,58606],{},"Suchen Sie im Verzeichnisbaum nach allen Dateien, die mit einer Ziffer enden. 2P",[4647,58608,58610],{"className":4649,"code":58609,"language":4651,"meta":269,"style":269},"find ~ -name “*[0-9]“ -type f\noder ls | find -name “*[0-9]“\n\n",[4653,58611,58612,58632],{"__ignoreMap":269},[4173,58613,58614,58616,58618,58620,58623,58625,58628,58630],{"class":4657,"line":4658},[4173,58615,9459],{"class":4661},[4173,58617,38870],{"class":4669},[4173,58619,9484],{"class":4665},[4173,58621,58622],{"class":4669}," “",[4173,58624,6328],{"class":4665},[4173,58626,58627],{"class":4669},"[0-9]“",[4173,58629,9497],{"class":4665},[4173,58631,6872],{"class":4669},[4173,58633,58634,58636,58638,58640,58643,58645,58647,58649],{"class":4657,"line":270},[4173,58635,58386],{"class":4661},[4173,58637,52143],{"class":4669},[4173,58639,8928],{"class":4788},[4173,58641,58642],{"class":4661}," find",[4173,58644,9484],{"class":4665},[4173,58646,58622],{"class":4669},[4173,58648,6328],{"class":4665},[4173,58650,58651],{"class":4669},"[0-9]“\n",[414,58653,58521],{},[4647,58655,58657],{"className":4649,"code":58656,"language":4651,"meta":269,"style":269},"sort \u002Fetc 2 > \u002Fdev\u002Fnull\n\n",[4653,58658,58659],{"__ignoreMap":269},[4173,58660,58661,58663,58665,58667,58669],{"class":4657,"line":4658},[4173,58662,23487],{"class":4661},[4173,58664,18613],{"class":4669},[4173,58666,15327],{"class":4665},[4173,58668,24509],{"class":4788},[4173,58670,58671],{"class":4669}," \u002Fdev\u002Fnull\n",[414,58673,58674],{},"Fehlerausgabe (2) wird in die Mülltonne gelenkt",[414,58676,58677],{},"Hängen Sie die letzten 9 Zeilen der Datei contents.txt, an die Datei dump.txt an 2P",[4647,58679,58681],{"className":4649,"code":58680,"language":4651,"meta":269,"style":269},"tail -n 9 contents.txt » dump.txt\n\n",[4653,58682,58683],{"__ignoreMap":269},[4173,58684,58685,58687,58689,58692,58695,58698],{"class":4657,"line":4658},[4173,58686,16719],{"class":4661},[4173,58688,9376],{"class":4665},[4173,58690,58691],{"class":4665}," 9",[4173,58693,58694],{"class":4669}," contents.txt",[4173,58696,58697],{"class":4669}," »",[4173,58699,58700],{"class":4669}," dump.txt\n",[414,58702,58703,58704,58706],{},"Schreiben Sie einen Befehl, der im aktuellen Verzeichnis nach Dateien mit der Endung .c sucht, in denen im",[7135,58705],{},"\nDateiinhalt die Zeichenfolge „apple“ enthalten ist. (Ignorieren Sie dabei Groß- und Kleinschreibung) 3P",[4647,58708,58710],{"className":4649,"code":58709,"language":4651,"meta":269,"style":269},"find .\u002F -name “*.c“ | grep -i “apple“\n\n",[4653,58711,58712],{"__ignoreMap":269},[4173,58713,58714,58716,58719,58721,58723,58725,58728,58730,58732,58734],{"class":4657,"line":4658},[4173,58715,9459],{"class":4661},[4173,58717,58718],{"class":4669}," .\u002F",[4173,58720,9484],{"class":4665},[4173,58722,58622],{"class":4669},[4173,58724,6328],{"class":4665},[4173,58726,58727],{"class":4669},".c“",[4173,58729,8928],{"class":4788},[4173,58731,8931],{"class":4661},[4173,58733,8941],{"class":4665},[4173,58735,58736],{"class":4669}," “apple“\n",[470,58738,55865],{"id":58739},"seite-4-2",[414,58741,58742],{},"Aufgabe 4: Benutzerverwaltung 8 Punkte",[414,58744,58745],{},"Gegeben ist die folgende Ausgabe. Beantworten Sie folgende Fragen:",[414,58747,58748,58749,58751],{},"Wie lauten die Benutzer-ID (UID) und die Gruppen-ID (GID) von root und catherine? 1P",[7135,58750],{},"\nDie UID und GID von root sind 0 und 0, während die UID und GID von catherine 1030 und 1025 sind.",[414,58753,58754,58755,58757],{},"Wie lautet der Name der primären Gruppe von kevin? Geben Sie weitere Mitglieder der Gruppe an. 1,5 P",[7135,58756],{},"\nDer Gruppenname lautet db-admin. Auch emma und grace sind in dieser Gruppe.",[414,58759,58760],{},"Welche Shell ist für mail eingestellt? Warum ist die Shell für Benutzer mail auf diesen Wert gesetzt? 1,5 P",[414,58762,58763,58764,58766,58767,58769,58770,58772],{},"mail ist ein Systembenutzerkonto und seine Shell ist \u002Fsbin\u002Fnologin. Tatsächlich werden Systembenutzerkon-",[7135,58765],{},"\nten wie mail, ftp, news und daemon für administrative Aufgaben verwendet und daher sollte die normale An-",[7135,58768],{},"\nmeldung für diese Konten verhindert werden. Aus diesem Grund wird die Shell normalerweise auf \u002Fsbin\u002Fnolo-",[7135,58771],{},"\ngin oder \u002Fbin\u002Ffalse gesetzt.",[470,58774,55992],{"id":58775},"seite-5-2",[414,58777,58778],{},"Fortsetzung Aufgabe 4:",[414,58780,58781,58782,58784,58785,58787],{},"Geben Sie die Mitglieder der Gruppe app-developer an! Welche davon sind Gruppenadministratoren und",[7135,58783],{},"\nwelche sind normale Mitglieder? 1P",[7135,58786],{},"\nDie Mitglieder sind catherine, dave und christian — alle sind ordentliche Mitglieder.",[414,58789,58790,58791,58793],{},"Welche IDs werden per Konvention den Systemkonten und welche den normalen Benutzern zugewiesen?",[7135,58792],{},"\nWelche ID hat root? 2P",[414,58795,58796,58797,58799,58800,58802],{},"Systemkonten haben in der Regel UIDs unter 100 oder zwischen 500 und 1000, während normale Benutzer",[7135,58798],{},"\nUIDs haben, die bei 1000 beginnen, obwohl einige Altsysteme die Nummerierung bei 500 beginnen können.",[7135,58801],{},"\nDer Benutzer root hat die UID 0.",[414,58804,58805],{},"Ihr System verwendet Shadow-Passwörter. Was heisst das? 1P",[414,58807,58808,58809,58811],{},"Wenn Shadow-Passwörter verwendet werden, enthält das zweite Feld in \u002Fetc\u002Fpasswd für jedes Benutzerkon-",[7135,58810],{},"\nto das Zeichen x, da die verschlüsselten Benutzerpasswörter in \u002Fetc\u002Fshadow gespeichert werden.",[16,58813,58815],{"id":58814},"technikervorbereitungawk2lsgpdf","TechnikerVorbereitungawk2Lsg.pdf",[414,58817,58818],{},"Quelle: TechnikerVorbereitungawk2Lsg.pdf - 4 Seite(n)",[470,58820,55309],{"id":58821},"seite-1-3",[414,58823,58824],{},"Wiederholung awk",[318,58826,58827,58836,58851],{},[24,58828,58829,58830,58832,58833,58835],{},"Was ist AWK und wofür wird es verwendet?",[7135,58831],{},"\nAWK ist eine Skriptsprache zur Textverarbeitung, die besonders für das Filtern, Analysieren und Formatieren",[7135,58834],{},"\nvon strukturierten Daten (z. B. Tabellen, Logfiles) verwendet wird.",[24,58837,58838,58839,58841,58842,58844,58845,58847,58848,58850],{},"Wie ist ein AWK-Programm grundsätzlich aufgebaut?",[7135,58840],{},"\nSchema:",[7135,58843],{},"\npattern { action }",[7135,58846],{},"\n• pattern: Bedingung (wann wird etwas ausgeführt)",[7135,58849],{},"\n• action: Anweisung (was wird gemacht)",[24,58852,58853],{},"Was bewirkt folgender Befehl?",[4647,58855,58856],{"className":4649,"code":9932,"language":4651,"meta":269,"style":269},[4653,58857,58858],{"__ignoreMap":269},[4173,58859,58860,58862,58864],{"class":4657,"line":4658},[4173,58861,9844],{"class":4661},[4173,58863,9941],{"class":4669},[4173,58865,8947],{"class":4669},[414,58867,58868],{},"Gibt die erste Spalte jeder Zeile aus.",[318,58870,58871],{"start":4770},[24,58872,58873],{},"Bedeutung von $0, $1, $NF?",[414,58875,58876,58877,58879,58880,58882],{},"• $0 → ganze Zeile",[7135,58878],{},"\n• $1 → erstes Feld",[7135,58881],{},"\n• $NF → letztes Feld",[318,58884,58885],{"start":4775},[24,58886,58887],{},"Was macht dieser Ausdruck?",[4647,58889,58891],{"className":4649,"code":58890,"language":4651,"meta":269,"style":269},"awk '$3 > 100'\n\n",[4653,58892,58893],{"__ignoreMap":269},[4173,58894,58895,58897],{"class":4657,"line":4658},[4173,58896,9844],{"class":4661},[4173,58898,58899],{"class":4669}," '$3 > 100'\n",[414,58901,58902],{},"Gibt alle Zeilen aus, bei denen das 3. Feld größer als 100 ist.",[318,58904,58905],{"start":6320},[24,58906,58907],{},"Wie filtert man nach einem bestimmten Wort?",[4647,58909,58911],{"className":4649,"code":58910,"language":4651,"meta":269,"style":269},"awk '\u002FFehler\u002F'\n\n",[4653,58912,58913],{"__ignoreMap":269},[4173,58914,58915,58917],{"class":4657,"line":4658},[4173,58916,9844],{"class":4661},[4173,58918,58919],{"class":4669}," '\u002FFehler\u002F'\n",[414,58921,58922],{},"Zeigt alle Zeilen, die „Fehler“ enthalte",[318,58924,58925],{"start":6325},[24,58926,58927],{},"Was macht folgendes Skript?",[4647,58929,58931],{"className":4649,"code":58930,"language":4651,"meta":269,"style":269},"awk '{sum += $2} END {print sum}'\n\n",[4653,58932,58933],{"__ignoreMap":269},[4173,58934,58935,58937],{"class":4657,"line":4658},[4173,58936,9844],{"class":4661},[4173,58938,58939],{"class":4669}," '{sum += $2} END {print sum}'\n",[414,58941,58942],{},"Summiert die zweite Spalte und gibt das Ergebnis am Ende aus.",[414,58944,58945],{},"Seite 1 von 4",[470,58947,55449],{"id":58948},"seite-2-3",[318,58950,58951],{"start":6343},[24,58952,58953],{},"Unterschied zwischen BEGIN und END?",[414,58955,58956,58957,58959,58960,58962],{},"• BEGIN → wird vor der Verarbeitung ausgeführt",[7135,58958],{},"\n• END → wird nach der Verarbeitung ausgeführt",[7135,58961],{},"\n9. Wie ändert man das Feldtrennzeichen?",[4647,58964,58966],{"className":4649,"code":58965,"language":4651,"meta":269,"style":269},"awk -F \":\" '{print $1}'\n\n",[4653,58967,58968],{"__ignoreMap":269},[4173,58969,58970,58972,58974,58976],{"class":4657,"line":4658},[4173,58971,9844],{"class":4661},[4173,58973,9999],{"class":4665},[4173,58975,10002],{"class":4669},[4173,58977,58978],{"class":4669}," '{print $1}'\n",[414,58980,58981],{},"Trennt Felder anhand von : statt Leerzeichen.",[318,58983,58984],{"start":6457},[24,58985,58986],{},"Was macht dieses Beispiel?",[4647,58988,58990],{"className":4649,"code":58989,"language":4651,"meta":269,"style":269},"awk '{if ($2 > 50) print $1, $2}'\n\nGibt nur Zeilen aus, bei denen Spalte 2 > 50 ist, und zeigt Spalte 1 und 2.\n\n",[4653,58991,58992,58999,59003],{"__ignoreMap":269},[4173,58993,58994,58996],{"class":4657,"line":4658},[4173,58995,9844],{"class":4661},[4173,58997,58998],{"class":4669}," '{if ($2 > 50) print $1, $2}'\n",[4173,59000,59001],{"class":4657,"line":270},[4173,59002,4761],{"emptyLinePlaceholder":4760},[4173,59004,59005,59008,59011,59013,59016,59019,59022,59025,59027,59029,59032,59035,59037,59040,59042,59044,59046],{"class":4657,"line":1263},[4173,59006,59007],{"class":4661},"Gibt",[4173,59009,59010],{"class":4669}," nur",[4173,59012,58585],{"class":4669},[4173,59014,59015],{"class":4669}," aus,",[4173,59017,59018],{"class":4669}," bei",[4173,59020,59021],{"class":4669}," denen",[4173,59023,59024],{"class":4669}," Spalte",[4173,59026,15327],{"class":4665},[4173,59028,24509],{"class":4788},[4173,59030,59031],{"class":4665}," 50",[4173,59033,59034],{"class":4669}," ist,",[4173,59036,36454],{"class":4669},[4173,59038,59039],{"class":4669}," zeigt",[4173,59041,59024],{"class":4669},[4173,59043,10264],{"class":4665},[4173,59045,36454],{"class":4669},[4173,59047,59048],{"class":4669}," 2.\n",[318,59050,59051],{"start":6462},[24,59052,59053],{},"Wie zählt man die Anzahl der Zeilen?",[4647,59055,59057],{"className":4649,"code":59056,"language":4651,"meta":269,"style":269},"awk 'END {print NR}'\n\nNR = Number of Records (Zeilenanzahl)\n\n",[4653,59058,59059,59066,59070],{"__ignoreMap":269},[4173,59060,59061,59063],{"class":4657,"line":4658},[4173,59062,9844],{"class":4661},[4173,59064,59065],{"class":4669}," 'END {print NR}'\n",[4173,59067,59068],{"class":4657,"line":270},[4173,59069,4761],{"emptyLinePlaceholder":4760},[4173,59071,59072,59074,59076,59079,59082,59085],{"class":4657,"line":1263},[4173,59073,9918],{"class":4661},[4173,59075,15169],{"class":4669},[4173,59077,59078],{"class":4669}," Number",[4173,59080,59081],{"class":4669}," of",[4173,59083,59084],{"class":4669}," Records",[4173,59086,59087],{"class":4784}," (Zeilenanzahl)\n",[318,59089,59090],{"start":6468},[24,59091,59092],{},"Wie gibt man nur eindeutige Werte aus?",[4647,59094,59096],{"className":4649,"code":59095,"language":4651,"meta":269,"style":269},"awk '!seen[$1]++'\n\n",[4653,59097,59098],{"__ignoreMap":269},[4173,59099,59100,59102],{"class":4657,"line":4658},[4173,59101,9844],{"class":4661},[4173,59103,59104],{"class":4669}," '!seen[$1]++'\n",[414,59106,59107],{},"Gibt jede erste Spalte nur einmal aus.",[318,59109,59110],{"start":6473},[24,59111,59112,59113,59115],{},"Aufgabe:",[7135,59114],{},"\nGegeben ist eine Datei mit Name und Punktzahl. Berechne den Durchschnitt.",[4647,59117,59119],{"className":4649,"code":59118,"language":4651,"meta":269,"style":269},"awk '{sum += $2; count++} END {print sum\u002Fcount}'\n\n",[4653,59120,59121],{"__ignoreMap":269},[4173,59122,59123,59125],{"class":4657,"line":4658},[4173,59124,9844],{"class":4661},[4173,59126,59127],{"class":4669}," '{sum += $2; count++} END {print sum\u002Fcount}'\n",[318,59129,59130],{"start":6479},[24,59131,59132],{},"Was ist der Unterschied zwischen AWK und grep?",[414,59134,59135,59136,59138],{},"• grep → nur Suchen",[7135,59137],{},"\n• AWK → Suchen + Verarbeiten + Berechnen",[414,59140,59141],{},"Seite 2 von 4",[470,59143,55712],{"id":59144},"seite-3-3",[318,59146,59147],{"start":6503},[24,59148,59149],{},"Logdateien auswerten.",[414,59151,59152],{},"Gegeben: Mehrere Logdateien in \u002Fvar\u002Flog\u002Fapp\u002F",[414,59154,59155],{},"Ziel:",[414,59157,59158],{},"• Nur Dateinamen (ohne Pfad) ausgeben",[414,59160,59161],{},"• Fehlerzeilen (ERROR) filtern",[414,59163,59164],{},"• Anzahl Fehler pro Datei berechnen",[414,59166,59167],{},"• Ergebnis gleichzeitig anzeigen und in report.txt speichern",[4647,59169,59171],{"className":4649,"code":59170,"language":4651,"meta":269,"style":269},"for file in \u002Fvar\u002Flog\u002Fapp\u002F*.log; do\nname=$(basename \"$file\")\ncount=$(awk '\u002FERROR\u002F {c++} END {print c+0}' \"$file\")\necho \"$name: $count\"\ndone | tee report.txt\n\n",[4653,59172,59173,59188,59206,59228,59243],{"__ignoreMap":269},[4173,59174,59175,59177,59179,59181,59184,59186],{"class":4657,"line":4658},[4173,59176,6425],{"class":4788},[4173,59178,12060],{"class":4784},[4173,59180,6431],{"class":4788},[4173,59182,59183],{"class":4669}," \u002Fvar\u002Flog\u002Fapp\u002F*.log",[4173,59185,6498],{"class":4784},[4173,59187,6437],{"class":4788},[4173,59189,59190,59192,59194,59196,59198,59200,59202,59204],{"class":4657,"line":270},[4173,59191,28734],{"class":4784},[4173,59193,6387],{"class":4788},[4173,59195,10249],{"class":4784},[4173,59197,28103],{"class":4661},[4173,59199,6218],{"class":4669},[4173,59201,12093],{"class":4784},[4173,59203,6207],{"class":4669},[4173,59205,6402],{"class":4784},[4173,59207,59208,59211,59213,59215,59217,59220,59222,59224,59226],{"class":4657,"line":1263},[4173,59209,59210],{"class":4784},"count",[4173,59212,6387],{"class":4788},[4173,59214,10249],{"class":4784},[4173,59216,9844],{"class":4661},[4173,59218,59219],{"class":4669}," '\u002FERROR\u002F {c++} END {print c+0}'",[4173,59221,6218],{"class":4669},[4173,59223,12093],{"class":4784},[4173,59225,6207],{"class":4669},[4173,59227,6402],{"class":4784},[4173,59229,59230,59232,59234,59236,59238,59241],{"class":4657,"line":4770},[4173,59231,6309],{"class":4665},[4173,59233,6218],{"class":4669},[4173,59235,28764],{"class":4784},[4173,59237,7412],{"class":4669},[4173,59239,59240],{"class":4784},"$count",[4173,59242,6454],{"class":4669},[4173,59244,59245,59247,59249,59251],{"class":4657,"line":4775},[4173,59246,6683],{"class":4788},[4173,59248,8928],{"class":4788},[4173,59250,11301],{"class":4661},[4173,59252,59253],{"class":4669}," report.txt\n",[414,59255,59256],{},"Was wird geprüft:",[414,59258,59259],{},"• basename → entfernt Pfad",[414,59261,59262],{},"• awk → zählt Fehler",[414,59264,59265],{},"• tee → Ausgabe + Speicherung gleichzeitig",[318,59267,59268],{"start":6503},[24,59269,59270],{},"CSV analysieren + bedingte Ausgabe",[414,59272,59273],{},"Gegeben: Datei daten.csv",[414,59275,59276,59277,59279,59280,59282,59283,59285],{},"id,name,punkte",[7135,59278],{},"\n1,Anna,45",[7135,59281],{},"\n2,Bob,78",[7135,59284],{},"\n3,Chris,30",[414,59287,59155],{},[414,59289,59290,59291,59293,59294,59296],{},"• Nur Datensätze mit Punkte > 50",[7135,59292],{},"\n• Ausgabeformat: Dateiname: Name (Punkte)",[7135,59295],{},"\n• Ergebnis in Datei und Konsole",[414,59298,59299],{},"Seite 3 von 4",[470,59301,55865],{"id":59302},"seite-4-3",[414,59304,59305],{},"Lösung:",[4647,59307,59309],{"className":4649,"code":59308,"language":4651,"meta":269,"style":269},"file=\"daten.csv\"\nawk -F, '$3 > 50 {print $2 \" (\" $3 \")\"}' \"$file\" \\\n| sed \"s\u002F^\u002F$(basename \"$file\"): \u002F\" \\\n| tee output.txt\n\n",[4653,59310,59311,59321,59339,59359],{"__ignoreMap":269},[4173,59312,59313,59316,59318],{"class":4657,"line":4658},[4173,59314,59315],{"class":4784},"file",[4173,59317,6387],{"class":4788},[4173,59319,59320],{"class":4669},"\"daten.csv\"\n",[4173,59322,59323,59325,59328,59331,59333,59335,59337],{"class":4657,"line":270},[4173,59324,9844],{"class":4661},[4173,59326,59327],{"class":4665}," -F,",[4173,59329,59330],{"class":4669}," '$3 > 50 {print $2 \" (\" $3 \")\"}'",[4173,59332,6218],{"class":4669},[4173,59334,12093],{"class":4784},[4173,59336,6207],{"class":4669},[4173,59338,8051],{"class":4665},[4173,59340,59341,59343,59345,59348,59350,59352,59354,59357],{"class":4657,"line":1263},[4173,59342,47993],{"class":4788},[4173,59344,21776],{"class":4661},[4173,59346,59347],{"class":4669}," \"s\u002F^\u002F$(",[4173,59349,28103],{"class":4661},[4173,59351,6218],{"class":4669},[4173,59353,12093],{"class":4784},[4173,59355,59356],{"class":4669},"\"): \u002F\"",[4173,59358,8051],{"class":4665},[4173,59360,59361,59363,59365],{"class":4657,"line":4770},[4173,59362,47993],{"class":4788},[4173,59364,11301],{"class":4661},[4173,59366,59367],{"class":4669}," output.txt\n",[318,59369,59370],{"start":6516},[24,59371,59372],{},"Mehrere Dateien + Summenbildung",[414,59374,59375],{},"👉 Ziel:",[414,59377,59378],{},"• Für jede Datei die Summe der 2. Spalte",[414,59380,59381],{},"• Nur Dateiname anzeigen",[414,59383,59384],{},"• Gesamtsumme aller Dateien am Ende",[414,59386,59305],{},[4647,59388,59390],{"className":4649,"code":59389,"language":4651,"meta":269,"style":269},"total=0\n\nfor f in *.txt; do\nname=$(basename \"$f\")\nsum=$(awk '{s += $2} END {print s+0}' \"$f\")\necho \"$name: $sum\"\ntotal=$((total + sum))\ndone | tee result.txt\n\necho \"TOTAL: $total\" | tee -a result.txt\n\n",[4653,59391,59392,59401,59405,59419,59437,59459,59474,59491,59502,59506],{"__ignoreMap":269},[4173,59393,59394,59397,59399],{"class":4657,"line":4658},[4173,59395,59396],{"class":4784},"total",[4173,59398,6387],{"class":4788},[4173,59400,10511],{"class":4669},[4173,59402,59403],{"class":4657,"line":270},[4173,59404,4761],{"emptyLinePlaceholder":4760},[4173,59406,59407,59409,59411,59413,59415,59417],{"class":4657,"line":1263},[4173,59408,6425],{"class":4788},[4173,59410,28716],{"class":4784},[4173,59412,6431],{"class":4788},[4173,59414,6624],{"class":4669},[4173,59416,6498],{"class":4784},[4173,59418,6437],{"class":4788},[4173,59420,59421,59423,59425,59427,59429,59431,59433,59435],{"class":4657,"line":4770},[4173,59422,28734],{"class":4784},[4173,59424,6387],{"class":4788},[4173,59426,10249],{"class":4784},[4173,59428,28103],{"class":4661},[4173,59430,6218],{"class":4669},[4173,59432,6894],{"class":4784},[4173,59434,6207],{"class":4669},[4173,59436,6402],{"class":4784},[4173,59438,59439,59442,59444,59446,59448,59451,59453,59455,59457],{"class":4657,"line":4775},[4173,59440,59441],{"class":4784},"sum",[4173,59443,6387],{"class":4788},[4173,59445,10249],{"class":4784},[4173,59447,9844],{"class":4661},[4173,59449,59450],{"class":4669}," '{s += $2} END {print s+0}'",[4173,59452,6218],{"class":4669},[4173,59454,6894],{"class":4784},[4173,59456,6207],{"class":4669},[4173,59458,6402],{"class":4784},[4173,59460,59461,59463,59465,59467,59469,59472],{"class":4657,"line":6320},[4173,59462,6309],{"class":4665},[4173,59464,6218],{"class":4669},[4173,59466,28764],{"class":4784},[4173,59468,7412],{"class":4669},[4173,59470,59471],{"class":4784},"$sum",[4173,59473,6454],{"class":4669},[4173,59475,59476,59478,59480,59482,59484,59486,59489],{"class":4657,"line":6325},[4173,59477,59396],{"class":4784},[4173,59479,6387],{"class":4788},[4173,59481,48189],{"class":4784},[4173,59483,59396],{"class":4661},[4173,59485,11719],{"class":4669},[4173,59487,59488],{"class":4669}," sum",[4173,59490,10673],{"class":4784},[4173,59492,59493,59495,59497,59499],{"class":4657,"line":6343},[4173,59494,6683],{"class":4788},[4173,59496,8928],{"class":4788},[4173,59498,11301],{"class":4661},[4173,59500,59501],{"class":4669}," result.txt\n",[4173,59503,59504],{"class":4657,"line":6348},[4173,59505,4761],{"emptyLinePlaceholder":4760},[4173,59507,59508,59510,59513,59516,59518,59520,59522,59524],{"class":4657,"line":6457},[4173,59509,6309],{"class":4665},[4173,59511,59512],{"class":4669}," \"TOTAL: ",[4173,59514,59515],{"class":4784},"$total",[4173,59517,6207],{"class":4669},[4173,59519,8928],{"class":4788},[4173,59521,11301],{"class":4661},[4173,59523,11304],{"class":4665},[4173,59525,59501],{"class":4669},[318,59527,59528],{"start":6971},[24,59529,59530],{},"Analysiere folgendes:",[4647,59532,59534],{"className":4649,"code":59533,"language":4651,"meta":269,"style":269},"for f in *.txt; do\nbase=$(basename \"$f\" .txt)\nawk 'NF \u003C 3' \"$f\" | tee \"${base}_errors.txt\"\ndone\n\n",[4653,59535,59536,59550,59571,59595],{"__ignoreMap":269},[4173,59537,59538,59540,59542,59544,59546,59548],{"class":4657,"line":4658},[4173,59539,6425],{"class":4788},[4173,59541,28716],{"class":4784},[4173,59543,6431],{"class":4788},[4173,59545,6624],{"class":4669},[4173,59547,6498],{"class":4784},[4173,59549,6437],{"class":4788},[4173,59551,59552,59555,59557,59559,59561,59563,59565,59567,59569],{"class":4657,"line":270},[4173,59553,59554],{"class":4784},"base",[4173,59556,6387],{"class":4788},[4173,59558,10249],{"class":4784},[4173,59560,28103],{"class":4661},[4173,59562,6218],{"class":4669},[4173,59564,6894],{"class":4784},[4173,59566,6207],{"class":4669},[4173,59568,26399],{"class":4669},[4173,59570,6402],{"class":4784},[4173,59572,59573,59575,59578,59580,59582,59584,59586,59588,59590,59592],{"class":4657,"line":1263},[4173,59574,9844],{"class":4661},[4173,59576,59577],{"class":4669}," 'NF \u003C 3'",[4173,59579,6218],{"class":4669},[4173,59581,6894],{"class":4784},[4173,59583,6207],{"class":4669},[4173,59585,8928],{"class":4788},[4173,59587,11301],{"class":4661},[4173,59589,11607],{"class":4669},[4173,59591,59554],{"class":4784},[4173,59593,59594],{"class":4669},"}_errors.txt\"\n",[4173,59596,59597],{"class":4657,"line":4770},[4173,59598,6519],{"class":4788},[414,59600,59601],{},"Seite 4 von 4",[16,59603,59605],{"id":59604},"technikervorbereitungsedlsgpdf","TechnikerVorbereitungsedLsg.pdf",[414,59607,59608],{},"Quelle: TechnikerVorbereitungsedLsg.pdf - 3 Seite(n)",[470,59610,55309],{"id":59611},"seite-1-4",[414,59613,59614],{},"Wiederholung sed",[318,59616,59617],{},[24,59618,59619],{},"Nur bestimmte Zeilen ändern",[414,59621,59622,59623,59625],{},"Gegeben: Datei mit Logeinträgen",[7135,59624],{},"\nErsetze „ERROR“ durch „WARNUNG“, aber nur in Zeilen 5–10",[4647,59627,59629],{"className":4649,"code":59628,"language":4651,"meta":269,"style":269},"sed '5,10 s\u002FERROR\u002FWARNUNG\u002F' logfile.txt\n\n",[4653,59630,59631],{"__ignoreMap":269},[4173,59632,59633,59635,59638],{"class":4657,"line":4658},[4173,59634,9165],{"class":4661},[4173,59636,59637],{"class":4669}," '5,10 s\u002FERROR\u002FWARNUNG\u002F'",[4173,59639,8917],{"class":4669},[318,59641,59642],{"start":270},[24,59643,59644],{},"Nur erste Übereinstimmung pro Zeile ersetzen",[414,59646,59647],{},"Ersetze nur das erste Vorkommen von „foo“ in jeder Zeile",[4647,59649,59651],{"className":4649,"code":59650,"language":4651,"meta":269,"style":269},"sed 's\u002Ffoo\u002Fbar\u002F'\n\n",[4653,59652,59653],{"__ignoreMap":269},[4173,59654,59655,59657],{"class":4657,"line":4658},[4173,59656,9165],{"class":4661},[4173,59658,59659],{"class":4669}," 's\u002Ffoo\u002Fbar\u002F'\n",[318,59661,59662],{"start":1263},[24,59663,9267],{},[414,59665,59666],{},"Jetzt aber alle „foo“ ersetzen",[4647,59668,59670],{"className":4649,"code":59669,"language":4651,"meta":269,"style":269},"sed 's\u002Ffoo\u002Fbar\u002Fg'\n\n",[4653,59671,59672],{"__ignoreMap":269},[4173,59673,59674,59676],{"class":4657,"line":4658},[4173,59675,9165],{"class":4661},[4173,59677,59678],{"class":4669}," 's\u002Ffoo\u002Fbar\u002Fg'\n",[318,59680,59681],{"start":4770},[24,59682,59683],{},"Nur Zeilen anzeigen, die NICHT passen",[414,59685,59686],{},"Zeige alle Zeilen, die kein „ERROR“ enthalten",[4647,59688,59690],{"className":4649,"code":59689,"language":4651,"meta":269,"style":269},"sed '\u002FERROR\u002Fd'\n\n",[4653,59691,59692],{"__ignoreMap":269},[4173,59693,59694,59696],{"class":4657,"line":4658},[4173,59695,9165],{"class":4661},[4173,59697,59698],{"class":4669}," '\u002FERROR\u002Fd'\n",[318,59700,59701],{"start":4775},[24,59702,59703],{},"Bestimmte Zeilen extrahieren",[414,59705,59706],{},"Nur Zeilen 10–20 anzeigen",[4647,59708,59710],{"className":4649,"code":59709,"language":4651,"meta":269,"style":269},"sed -n '10,20p' file.txt\n\n",[4653,59711,59712],{"__ignoreMap":269},[4173,59713,59714,59716,59718,59721],{"class":4657,"line":4658},[4173,59715,9165],{"class":4661},[4173,59717,9376],{"class":4665},[4173,59719,59720],{"class":4669}," '10,20p'",[4173,59722,59723],{"class":4669}," file.txt\n",[414,59725,59726],{},"• -n unterdrückt Standardausgabe",[414,59728,59729],{},"• p druckt explizit",[414,59731,59732],{},"•",[414,59734,59735],{},"Seite 1 von 3",[470,59737,55449],{"id":59738},"seite-2-4",[318,59740,59741],{"start":6320},[24,59742,59743],{},"Mehrere Befehle kombinieren",[414,59745,59746],{},"Ersetze „foo“ durch „bar“ UND lösche leere Zeilen",[4647,59748,59750],{"className":4649,"code":59749,"language":4651,"meta":269,"style":269},"sed -e 's\u002Ffoo\u002Fbar\u002Fg' -e '\u002F^$\u002Fd'\n\n",[4653,59751,59752],{"__ignoreMap":269},[4173,59753,59754,59756,59758,59760,59762],{"class":4657,"line":4658},[4173,59755,9165],{"class":4661},[4173,59757,21075],{"class":4665},[4173,59759,21078],{"class":4669},[4173,59761,21075],{"class":4665},[4173,59763,59764],{"class":4669}," '\u002F^$\u002Fd'\n",[318,59766,59767],{"start":6325},[24,59768,59769],{},"In-place bearbeiten",[414,59771,59772],{},"Datei direkt ändern",[4647,59774,59776],{"className":4649,"code":59775,"language":4651,"meta":269,"style":269},"sed -i 's\u002Ffoo\u002Fbar\u002Fg' file.txt\n\n",[4653,59777,59778],{"__ignoreMap":269},[4173,59779,59780,59782,59784,59786],{"class":4657,"line":4658},[4173,59781,9165],{"class":4661},[4173,59783,8941],{"class":4665},[4173,59785,21078],{"class":4669},[4173,59787,59723],{"class":4669},[318,59789,59790],{"start":6343},[24,59791,59792],{},"Mit Capture Groups arbeiten",[414,59794,59795],{},"Format ändern: Name: Max → Max (Name)",[4647,59797,59799],{"className":4649,"code":59798,"language":4651,"meta":269,"style":269},"sed 's\u002F(.): (.)\u002F\\2 (\\1)\u002F'\n\n",[4653,59800,59801],{"__ignoreMap":269},[4173,59802,59803,59805],{"class":4657,"line":4658},[4173,59804,9165],{"class":4661},[4173,59806,59807],{"class":4669}," 's\u002F(.): (.)\u002F\\2 (\\1)\u002F'\n",[318,59809,59810],{"start":6348},[24,59811,59812],{},"Nur bestimmte Spalte ersetzen",[414,59814,59815],{},"Ersetze nur im 2. Feld (durch Leerzeichen getrennt)",[4647,59817,59819],{"className":4649,"code":59818,"language":4651,"meta":269,"style":269},"sed 's\u002F^([^ ]* )foo\u002F\\1bar\u002F'\n\n",[4653,59820,59821],{"__ignoreMap":269},[4173,59822,59823,59825],{"class":4657,"line":4658},[4173,59824,9165],{"class":4661},[4173,59826,59827],{"class":4669}," 's\u002F^([^ ]* )foo\u002F\\1bar\u002F'\n",[318,59829,59830],{"start":6457},[24,59831,59832],{},"Zeilen einfügen",[414,59834,59835],{},"Füge nach jeder Zeile mit „START“ eine neue Zeile „---“ ein",[4647,59837,59839],{"className":4649,"code":59838,"language":4651,"meta":269,"style":269},"sed '\u002FSTART\u002Fa ---'\n\n",[4653,59840,59841],{"__ignoreMap":269},[4173,59842,59843,59845],{"class":4657,"line":4658},[4173,59844,9165],{"class":4661},[4173,59846,59847],{"class":4669}," '\u002FSTART\u002Fa ---'\n",[414,59849,59850],{},"Seite 2 von 3",[470,59852,55712],{"id":59853},"seite-3-4",[318,59855,59856],{},[24,59857,59858],{},"Unterschied zwischen sed und AWK?",[414,59860,59861],{},"• sed → Stream Editor (Text ersetzen, löschen)",[414,59863,59864],{},"• AWK → datenorientierte Verarbeitung (Spalten, Berechnungen)",[318,59866,59867,59873],{"start":270},[24,59868,59869,59870,59872],{},"Was macht -n?",[7135,59871],{},"\nUnterdrückt automatische Ausgabe",[24,59874,59875],{},"Unterschied p vs. d?",[414,59877,59878],{},"p → drucken",[414,59880,59881],{},"d → löschen + nächste Zeile",[318,59883,59884],{"start":4770},[24,59885,59886],{},"„Zeilen, die nicht mit # beginnen“ ersetzen.",[414,59888,59889],{},"Seite 3 von 3",[16,59891,59893],{"id":59892},"techniker_vorbereitung2_mit_antwortenpdf","techniker_vorbereitung2_mit_antworten.pdf",[414,59895,59896],{},"Quelle: techniker_vorbereitung2_mit_antworten.pdf - 4 Seite(n)",[470,59898,55309],{"id":59899},"seite-1-5",[414,59901,59902,59903,59905],{},"Aufgabe 4: crontab",[7135,59904],{},"\n8 Punkte",[414,59907,59908],{},"Folgendes Shellskript clean_backup.sh liegt vor:",[4647,59910,59912],{"className":4649,"code":59911,"language":4651,"meta":269,"style":269},"#!\u002Fbin\u002Fbash\nfind \"\u002Fbackupfolder\" -type f -mtime +5 -exec rm {} \\;\n",[4653,59913,59914,59918],{"__ignoreMap":269},[4173,59915,59916],{"class":4657,"line":4658},[4173,59917,6375],{"class":4766},[4173,59919,59920,59922,59925,59927,59929,59931,59934,59936,59938,59940],{"class":4657,"line":270},[4173,59921,9459],{"class":4661},[4173,59923,59924],{"class":4669}," \"\u002Fbackupfolder\"",[4173,59926,9497],{"class":4665},[4173,59928,10269],{"class":4669},[4173,59930,9737],{"class":4665},[4173,59932,59933],{"class":4669}," +5",[4173,59935,9791],{"class":4665},[4173,59937,9794],{"class":4669},[4173,59939,9797],{"class":4669},[4173,59941,9800],{"class":4665},[414,59943,59944,59945,59947,59948,59950,59951,59953,59954,59956,59957,59959,59960,59962,59963,59965,59966,59968,59969,59971,59972,59974,59975,59977],{},"a) Wozu dient die erste Zeile des Skripts?",[7135,59946],{},"\nAntwort: Die erste Zeile ist der sogenannte Shebang. Sie legt fest, dass das Skript mit \u002Fbin\u002Fbash",[7135,59949],{},"\nausgeführt werden soll. Dadurch wird sichergestellt, dass die Bash als Interpreter verwendet wird und",[7135,59952],{},"\ndie Shell-Befehle korrekt verarbeitet werden.",[7135,59955],{},"\nb) Was sind die Auswirkungen des Skripts?",[7135,59958],{},"\nAntwort: Das Skript durchsucht das Verzeichnis \u002Fbackupfolder nach normalen Dateien. Alle Dateien,",[7135,59961],{},"\nderen Änderungsdatum mehr als 5 Tage zurückliegt, werden mit rm gelöscht. Unterordner selbst",[7135,59964],{},"\nwerden dabei nicht gelöscht, sondern nur passende Dateien.",[7135,59967],{},"\nc) Für die Ausführung des Shellskript clean_backup.sh sind Root-Rechte notwendig. Geben Sie",[7135,59970],{},"\ndie Befehle an, um root zum Besitzer der Datei clean_backup.sh zu machen und die Ausführung",[7135,59973],{},"\nunter root – also unter den Rechten des Besitzers – zu gewährleisten.",[7135,59976],{},"\nAntwort: Möglich wäre:",[4647,59979,59981],{"className":4649,"code":59980,"language":4651,"meta":269,"style":269},"sudo chown root clean_backup.sh\nsudo chmod u+s clean_backup.sh\n",[4653,59982,59983,59995],{"__ignoreMap":269},[4173,59984,59985,59987,59990,59992],{"class":4657,"line":4658},[4173,59986,13062],{"class":4661},[4173,59988,59989],{"class":4669}," chown",[4173,59991,15137],{"class":4669},[4173,59993,59994],{"class":4669}," clean_backup.sh\n",[4173,59996,59997,59999,60001,60003],{"class":4657,"line":270},[4173,59998,13062],{"class":4661},[4173,60000,18949],{"class":4669},[4173,60002,15024],{"class":4669},[4173,60004,59994],{"class":4669},[414,60006,60007,60008,60010,60011,60013,60014,60016,60017,60019,60020,60022,60023,60025,60026,60028,60029,60031,60032,60034,60035,60037,60038,60040,60041,60043],{},"Der erste Befehl setzt root als Eigentümer. Der zweite setzt das Setuid-Bit, sodass das Skript mit den",[7135,60009],{},"\nRechten des Besitzers laufen soll. In der Praxis ist Setuid bei Shellskripten jedoch oft aus",[7135,60012],{},"\nSicherheitsgründen deaktiviert; sicherer wäre die Ausführung über sudo oder einen root-Cronjob.",[7135,60015],{},"\nd) Sie wollen das Skript clean_backup.sh automatisch ausführen lassen. Notieren Sie den",[7135,60018],{},"\nnotwendigen Eintrag in der Datei crontab, um das Skript jeden Dienstag und Freitag einmal pro",[7135,60021],{},"\nStunde zwischen 15:00 und 17:00 auszuführen.",[7135,60024],{},"\nAntwort: Ein möglicher Eintrag lautet:",[7135,60027],{},"\n0 15,16,17 * * 2,5 \u002Fpfad\u002Fzu\u002Fclean_backup.sh",[7135,60030],{},"\nDas bedeutet: Minute 0, also jeweils zur vollen Stunde, an den Stunden 15, 16 und 17, an jedem Tag",[7135,60033],{},"\nund Monat, aber nur an den Wochentagen Dienstag (2) und Freitag (5).",[7135,60036],{},"\ne) Mit welchem Befehl geben Sie Ihre aktuelle crontab am Bildschirm aus? Leiten Sie die",[7135,60039],{},"\nAusgabe in die Datei crontab.bak um.",[7135,60042],{},"\nAntwort:",[4647,60045,60047],{"className":4649,"code":60046,"language":4651,"meta":269,"style":269},"crontab -l > crontab.bak\nMit crontab -l wird die aktuelle Crontab angezeigt. Durch die Umleitung mit > wird die Ausgabe in die\n",[4653,60048,60049,60060],{"__ignoreMap":269},[4173,60050,60051,60053,60055,60057],{"class":4657,"line":4658},[4173,60052,45398],{"class":4661},[4173,60054,10277],{"class":4665},[4173,60056,24509],{"class":4788},[4173,60058,60059],{"class":4669}," crontab.bak\n",[4173,60061,60062,60064,60067,60069,60072,60074,60077,60080,60083,60086,60088,60091,60094,60096,60098,60100,60103,60105],{"class":4657,"line":270},[4173,60063,13163],{"class":4661},[4173,60065,60066],{"class":4669}," crontab",[4173,60068,10277],{"class":4665},[4173,60070,60071],{"class":4669}," wird",[4173,60073,48690],{"class":4669},[4173,60075,60076],{"class":4669}," aktuelle",[4173,60078,60079],{"class":4669}," Crontab",[4173,60081,60082],{"class":4669}," angezeigt.",[4173,60084,60085],{"class":4669}," Durch",[4173,60087,48690],{"class":4669},[4173,60089,60090],{"class":4669}," Umleitung",[4173,60092,60093],{"class":4669}," mit",[4173,60095,24509],{"class":4788},[4173,60097,60071],{"class":4669},[4173,60099,48690],{"class":4669},[4173,60101,60102],{"class":4669}," Ausgabe",[4173,60104,16308],{"class":4669},[4173,60106,60107],{"class":4669}," die\n",[414,60109,60110],{},"Datei crontab.bak geschrieben.",[414,60112,58945],{},[470,60114,55449],{"id":60115},"seite-2-5",[414,60117,60118,60119,60121],{},"Aufgabe 5: Software Installation",[7135,60120],{},"\n14 Punkte",[414,60123,60124,60125,60127,60128,60130,60131,60133],{},"Advanced Package Tool (APT) ist der Paketmanager für Debian- und Ubuntu-Linux-Distributionen.",[7135,60126],{},"\na) Welche Datei regelt dabei, welche Online-Repositories bei der Software-Installation von APT",[7135,60129],{},"\nverwendet werden?",[7135,60132],{},"\nAntwort: Die zentrale Datei ist \u002Fetc\u002Fapt\u002Fsources.list. Zusätzlich können weitere Paketquellen in Dateien",[4647,60135,60137],{"className":4649,"code":60136,"language":4651,"meta":269,"style":269},"unter \u002Fetc\u002Fapt\u002Fsources.list.d\u002F eingetragen sein.\n",[4653,60138,60139],{"__ignoreMap":269},[4173,60140,60141,60144,60147,60150],{"class":4657,"line":4658},[4173,60142,60143],{"class":4661},"unter",[4173,60145,60146],{"class":4669}," \u002Fetc\u002Fapt\u002Fsources.list.d\u002F",[4173,60148,60149],{"class":4669}," eingetragen",[4173,60151,60152],{"class":4669}," sein.\n",[414,60154,60155,60156,60158,60159,60043],{},"b) Wie sollten Sie vorgehen, wenn Sie den Webserver apache2 installieren wollen? Geben Sie die",[7135,60157],{},"\nKommandos an.",[7135,60160],{},[4647,60162,60164],{"className":4649,"code":60163,"language":4651,"meta":269,"style":269},"sudo apt update\nsudo apt install apache2\n",[4653,60165,60166,60176],{"__ignoreMap":269},[4173,60167,60168,60170,60173],{"class":4657,"line":4658},[4173,60169,13062],{"class":4661},[4173,60171,60172],{"class":4669}," apt",[4173,60174,60175],{"class":4669}," update\n",[4173,60177,60178,60180,60182,60185],{"class":4657,"line":270},[4173,60179,13062],{"class":4661},[4173,60181,60172],{"class":4669},[4173,60183,60184],{"class":4669}," install",[4173,60186,38147],{"class":4669},[414,60188,60189,60190,60192,60193,60195,60196,60043,60198,60200,60201,60203,60204,60206,60207,60209,60210,60212,60213,60215,60216,60043],{},"Zuerst wird die Paketliste aktualisiert, damit der Paketmanager den aktuellen Stand der Repositories",[7135,60191],{},"\nkennt. Anschließend wird das Paket apache2 installiert.",[7135,60194],{},"\nc) Nennen Sie drei distributionsunabhängige Paketformate und erklären Sie sie stichpunktartig.",[7135,60197],{},[7135,60199],{},"\nAppImage: Eine einzelne ausführbare Datei, die meist ohne klassische Installation gestartet werden",[7135,60202],{},"\nkann.",[7135,60205],{},"\nSnap: Ein von Canonical unterstütztes Paketformat mit Sandbox-Ansatz und zentralem Snap Store.",[7135,60208],{},"\nFlatpak: Ebenfalls ein distributionsübergreifendes Format mit Fokus auf Desktop-Anwendungen und",[7135,60211],{},"\nisolierter Ausführung in einer Sandbox.",[7135,60214],{},"\nd) Wie installieren Sie mit einem Befehl spotify im Snap-Format?",[7135,60217],{},[4647,60219,60221],{"className":4649,"code":60220,"language":4651,"meta":269,"style":269},"sudo snap install spotify\n",[4653,60222,60223],{"__ignoreMap":269},[4173,60224,60225,60227,60230,60232],{"class":4657,"line":4658},[4173,60226,13062],{"class":4661},[4173,60228,60229],{"class":4669}," snap",[4173,60231,60184],{"class":4669},[4173,60233,60234],{"class":4669}," spotify\n",[414,60236,60237,60238,60240,60241,60243,60244,60246,60247,60249,60250,60252],{},"Damit wird das Spotify-Paket aus dem Snap-Store installiert.",[7135,60239],{},"\ne) Welche Aufgabe hat die Datei \u002Fetc\u002Fsudoers?",[7135,60242],{},"\nAntwort: Die Datei \u002Fetc\u002Fsudoers legt fest, welche Benutzer oder Gruppen sudo verwenden dürfen und",[7135,60245],{},"\nwelche Befehle sie mit erhöhten Rechten ausführen dürfen. Sie ist damit ein zentrales Sicherheits-",[7135,60248],{},"\nund Berechtigungskonfigurationsfile.",[7135,60251],{},"\nf) Was bedeutet die folgende Zeile aus der \u002Fetc\u002Fsudoers-Datei?",[4647,60254,60256],{"className":4649,"code":60255,"language":4651,"meta":269,"style":269},"%admin ALL=(ALL) ALL\n",[4653,60257,60258],{"__ignoreMap":269},[4173,60259,60260,60262,60264,60266,60268,60270],{"class":4657,"line":4658},[4173,60261,38099],{"class":4661},[4173,60263,38075],{"class":4669},[4173,60265,6390],{"class":4784},[4173,60267,38137],{"class":4661},[4173,60269,6306],{"class":4784},[4173,60271,38085],{"class":4669},[414,60273,60274,60275,60277,60278,60280,60281,60283,60284,60043],{},"Antwort: Alle Benutzer, die Mitglied der Gruppe admin sind, dürfen auf allen Hosts bzw. in allen",[7135,60276],{},"\npassenden Kontexten alle Befehle als alle Benutzer ausführen. In der Praxis bedeutet das meist",[7135,60279],{},"\nweitreichende Administratorrechte, typischerweise auch Root-Rechte.",[7135,60282],{},"\ng) Mit welchem Befehl bearbeitet man die \u002Fetc\u002Fsudoers-Datei?",[7135,60285],{},[4647,60287,60289],{"className":4649,"code":60288,"language":4651,"meta":269,"style":269},"visudo\n",[4653,60290,60291],{"__ignoreMap":269},[4173,60292,60293],{"class":4657,"line":4658},[4173,60294,60288],{"class":4661},[414,60296,60297,60298,60300,60301,60303,60304,60306,60307,60309,60310,60312,60313,60315,60316,60318],{},"Dieser Befehl öffnet die sudoers-Datei in einem sicheren Editor und prüft beim Speichern direkt die",[7135,60299],{},"\nSyntax.",[7135,60302],{},"\nh) Was sind die Unterschiede der Befehle su und sudo in der Anwendung?",[7135,60305],{},"\nAntwort: su wechselt in der Regel auf einen anderen Benutzer, meist root, und verlangt normalerweise",[7135,60308],{},"\ndas Passwort des Zielbenutzers. sudo führt dagegen gezielt einen einzelnen Befehl mit erhöhten",[7135,60311],{},"\nRechten aus und verwendet normalerweise das eigene Benutzerpasswort. sudo ist feiner",[7135,60314],{},"\nkonfigurierbar und protokollierbarer, während su eher einen vollständigen Benutzerwechsel bis zum",[7135,60317],{},"\nAbmelden oder bis exit darstellt.",[414,60320,59141],{},[470,60322,55712],{"id":60323},"seite-3-5",[414,60325,60326,60327,60329],{},"Aufgabe 6: Shellskript",[7135,60328],{},"\n12 Punkte",[414,60331,60332,60333,60335],{},"a) Gegeben sei folgendes Shellskript:",[7135,60334],{},"\n#! \u002Fbin\u002Fsh",[4647,60337,60339],{"className":4649,"code":60338,"language":4651,"meta":269,"style":269},"readcmd() {\necho \"Anzahl der Parameter in der Kommandozeile : $#\"\nfor var in $*\ndo\necho \"$i. Parameter : $var\"\ni=`expr $i + 1`\ndone\n}\necho \"Vor der Funktion ...\"\nreadcmd $*\necho \"... nach der Funktion\"\n",[4653,60340,60341,60348,60359,60371,60375,60391,60413,60417,60421,60428,60434],{"__ignoreMap":269},[4173,60342,60343,60346],{"class":4657,"line":4658},[4173,60344,60345],{"class":4661},"readcmd",[4173,60347,7062],{"class":4784},[4173,60349,60350,60352,60355,60357],{"class":4657,"line":270},[4173,60351,6309],{"class":4665},[4173,60353,60354],{"class":4669}," \"Anzahl der Parameter in der Kommandozeile : ",[4173,60356,6141],{"class":4665},[4173,60358,6454],{"class":4669},[4173,60360,60361,60363,60366,60368],{"class":4657,"line":1263},[4173,60362,6425],{"class":4788},[4173,60364,60365],{"class":4784}," var ",[4173,60367,6431],{"class":4788},[4173,60369,60370],{"class":4665}," $*\n",[4173,60372,60373],{"class":4657,"line":4770},[4173,60374,6437],{"class":4788},[4173,60376,60377,60379,60381,60383,60386,60389],{"class":4657,"line":4775},[4173,60378,6309],{"class":4665},[4173,60380,6218],{"class":4669},[4173,60382,6577],{"class":4784},[4173,60384,60385],{"class":4669},". Parameter : ",[4173,60387,60388],{"class":4784},"$var",[4173,60390,6454],{"class":4669},[4173,60392,60393,60396,60398,60400,60402,60405,60408,60410],{"class":4657,"line":6320},[4173,60394,60395],{"class":4784},"i",[4173,60397,6387],{"class":4788},[4173,60399,56327],{"class":4669},[4173,60401,7071],{"class":4661},[4173,60403,60404],{"class":4784}," $i",[4173,60406,60407],{"class":4669}," + ",[4173,60409,14223],{"class":4665},[4173,60411,60412],{"class":4669},"`\n",[4173,60414,60415],{"class":4657,"line":6325},[4173,60416,6519],{"class":4788},[4173,60418,60419],{"class":4657,"line":6343},[4173,60420,7090],{"class":4784},[4173,60422,60423,60425],{"class":4657,"line":6348},[4173,60424,6309],{"class":4665},[4173,60426,60427],{"class":4669}," \"Vor der Funktion ...\"\n",[4173,60429,60430,60432],{"class":4657,"line":6457},[4173,60431,60345],{"class":4661},[4173,60433,60370],{"class":4665},[4173,60435,60436,60438],{"class":4657,"line":6462},[4173,60437,6309],{"class":4665},[4173,60439,60440],{"class":4669}," \"... nach der Funktion\"\n",[414,60442,60443,60444,60446,60447,60043,60449,60451,60452,60454,60455,60457],{},"Geben Sie an, was bei folgender Ausführung ausgegeben wird:",[7135,60445],{},"\nyou@host > .\u002Fafunc7 eins zwei drei vier",[7135,60448],{},[7135,60450],{},"\nVor der Funktion ...",[7135,60453],{},"\nAnzahl der Parameter in der Kommandozeile : 4",[7135,60456],{},"\n. Parameter : eins",[318,60459,60460,60463,60466],{},[24,60461,60462],{},"Parameter : zwei",[24,60464,60465],{},"Parameter : drei",[24,60467,60468,60469,60471,60472,60474,60475,60477,60478,60480,60481,60483,60484,60486,60487,60489,60490,60492,60493,60043,60495,60335],{},"Parameter : vier",[7135,60470],{},"\n... nach der Funktion",[7135,60473],{},"\nBegründung: Es werden vier Parameter übergeben. Die Variable i ist anfangs leer, daher beginnt die",[7135,60476],{},"\nerste Ausgabe mit einem leeren Zähler vor dem Punkt. Danach wird i schrittweise erhöht.",[7135,60479],{},"\nb) Schreiben Sie ein Shellskript, welches Zeilenduplikate in einer Datei erkennt und löscht. Dabei",[7135,60482],{},"\nwird der Dateiname eingelesen und überprüft, ob die Datei vorhanden ist. Anschließend werden",[7135,60485],{},"\ndie Zeilenduplikate gelöscht, sodass jede Zeile nur einmal vorhanden ist. Dann wird das Ergebnis",[7135,60488],{},"\nin die Datei sorted.txt geschrieben. Die ursprüngliche Datei bleibt unverändert erhalten. (Tipp:",[7135,60491],{},"\nReihenfolge der Zeilen in sorted.txt ist egal)",[7135,60494],{},[7135,60496],{},[4647,60498,60500],{"className":4649,"code":60499,"language":4651,"meta":269,"style":269},"echo -n \"Enter Filename-> \"\nread filename\nif [ -f \"$filename\" ]; then\nsort \"$filename\" | uniq > sorted.txt\nelse\necho \"No $filename in $PWD...try again\"\nfi\nexit 0\n",[4653,60501,60502,60511,60518,60537,60557,60561,60578,60582],{"__ignoreMap":269},[4173,60503,60504,60506,60508],{"class":4657,"line":4658},[4173,60505,6309],{"class":4665},[4173,60507,9376],{"class":4665},[4173,60509,60510],{"class":4669}," \"Enter Filename-> \"\n",[4173,60512,60513,60515],{"class":4657,"line":270},[4173,60514,11042],{"class":4665},[4173,60516,60517],{"class":4669}," filename\n",[4173,60519,60520,60522,60524,60526,60528,60531,60533,60535],{"class":4657,"line":1263},[4173,60521,6201],{"class":4788},[4173,60523,6204],{"class":4784},[4173,60525,10577],{"class":4788},[4173,60527,6218],{"class":4669},[4173,60529,60530],{"class":4784},"$filename",[4173,60532,6207],{"class":4669},[4173,60534,6226],{"class":4784},[4173,60536,6229],{"class":4788},[4173,60538,60539,60541,60543,60545,60547,60549,60552,60554],{"class":4657,"line":4770},[4173,60540,23487],{"class":4661},[4173,60542,6218],{"class":4669},[4173,60544,60530],{"class":4784},[4173,60546,6207],{"class":4669},[4173,60548,8928],{"class":4788},[4173,60550,60551],{"class":4661}," uniq",[4173,60553,24509],{"class":4788},[4173,60555,60556],{"class":4669}," sorted.txt\n",[4173,60558,60559],{"class":4657,"line":4775},[4173,60560,7657],{"class":4788},[4173,60562,60563,60565,60568,60570,60573,60575],{"class":4657,"line":6320},[4173,60564,6309],{"class":4665},[4173,60566,60567],{"class":4669}," \"No ",[4173,60569,60530],{"class":4784},[4173,60571,60572],{"class":4669}," in ",[4173,60574,43833],{"class":4784},[4173,60576,60577],{"class":4669},"...try again\"\n",[4173,60579,60580],{"class":4657,"line":6325},[4173,60581,6247],{"class":4788},[4173,60583,60584,60586],{"class":4657,"line":6343},[4173,60585,10898],{"class":4665},[4173,60587,51329],{"class":4665},[414,60589,60590,60591,60593,60594,60596],{},"Erläuterung: Der Dateiname wird eingelesen. Mit -f wird geprüft, ob eine normale Datei existiert. sort",[7135,60592],{},"\nsortiert die Zeilen, uniq entfernt danach doppelte Zeilen. Das Ergebnis wird in sorted.txt gespeichert,",[7135,60595],{},"\ndie Originaldatei bleibt unverändert.",[414,60598,59299],{},[470,60600,55865],{"id":60601},"seite-4-4",[414,60603,60604,60605,60607],{},"Aufgabe 7: Docker",[7135,60606],{},"\n18 Punkte",[414,60609,60610,60611,60613,60614,60616,60617,60619,60620,60622,60623,60625,60626,60628,60629,60631,60632,60634,60635,60637],{},"a) Erklären Sie die Unterschiede zwischen virtueller Maschine und Docker-Container bezüglich",[7135,60612],{},"\nRessourcenverteilung.",[7135,60615],{},"\nAntwort: Eine virtuelle Maschine bringt ein komplettes Gastbetriebssystem mit. Dadurch benötigt sie",[7135,60618],{},"\nmehr Arbeitsspeicher, mehr Speicherplatz und meist auch mehr Startzeit. Docker-Container teilen sich",[7135,60621],{},"\ndagegen den Kernel des Host-Systems und kapseln nur die Anwendung samt benötigter Bibliotheken.",[7135,60624],{},"\nDeshalb sind Container leichter, starten schneller und nutzen die vorhandenen Ressourcen in der",[7135,60627],{},"\nRegel effizienter.",[7135,60630],{},"\nb) Schreiben Sie ein Dockerfile für ein Docker-Image für einen Apache-Webserver unter Port 80 in",[7135,60633],{},"\neinem Ubuntu-Docker-Container. Dazu apache2 installieren und folgende Umgebungsvariablen",[7135,60636],{},"\nsetzen: APACHE_RUN_USER=www-data, APACHE_RUN_GROUP=www-data,",[4647,60639,60641],{"className":4649,"code":60640,"language":4651,"meta":269,"style":269},"APACHE_LOG_DIR=\u002Fvar\u002Flog\u002Fapache2. Darin starten Sie beim Erstellen des Containers den\n",[4653,60642,60643],{"__ignoreMap":269},[4173,60644,60645,60648,60650,60653,60656,60659,60662,60665,60668,60670,60673],{"class":4657,"line":4658},[4173,60646,60647],{"class":4784},"APACHE_LOG_DIR",[4173,60649,6387],{"class":4788},[4173,60651,60652],{"class":4669},"\u002Fvar\u002Flog\u002Fapache2.",[4173,60654,60655],{"class":4661}," Darin",[4173,60657,60658],{"class":4669}," starten",[4173,60660,60661],{"class":4669}," Sie",[4173,60663,60664],{"class":4669}," beim",[4173,60666,60667],{"class":4669}," Erstellen",[4173,60669,58562],{"class":4669},[4173,60671,60672],{"class":4669}," Containers",[4173,60674,60675],{"class":4669}," den\n",[414,60677,60678,60679,60043],{},"apache2-Dienst.",[7135,60680],{},[4647,60682,60684],{"className":8413,"code":60683,"language":8415,"meta":269,"style":269},"FROM ubuntu\nRUN apt update && apt-get install -y apache2 && apt-get clean\nENV APACHE_RUN_USER=www-data\nENV APACHE_RUN_GROUP=www-data\nENV APACHE_LOG_DIR=\u002Fvar\u002Flog\u002Fapache2\nEXPOSE 80\nCMD [\"apachectl\", \"-D\", \"FOREGROUND\"]\n",[4653,60685,60686,60692,60699,60706,60713,60720,60727],{"__ignoreMap":269},[4173,60687,60688,60690],{"class":4657,"line":4658},[4173,60689,8440],{"class":4788},[4173,60691,52636],{"class":4784},[4173,60693,60694,60696],{"class":4657,"line":270},[4173,60695,8548],{"class":4788},[4173,60697,60698],{"class":4784}," apt update && apt-get install -y apache2 && apt-get clean\n",[4173,60700,60701,60703],{"class":4657,"line":1263},[4173,60702,8488],{"class":4788},[4173,60704,60705],{"class":4784}," APACHE_RUN_USER=www-data\n",[4173,60707,60708,60710],{"class":4657,"line":4770},[4173,60709,8488],{"class":4788},[4173,60711,60712],{"class":4784}," APACHE_RUN_GROUP=www-data\n",[4173,60714,60715,60717],{"class":4657,"line":4775},[4173,60716,8488],{"class":4788},[4173,60718,60719],{"class":4784}," APACHE_LOG_DIR=\u002Fvar\u002Flog\u002Fapache2\n",[4173,60721,60722,60724],{"class":4657,"line":6320},[4173,60723,8603],{"class":4788},[4173,60725,60726],{"class":4784}," 80\n",[4173,60728,60729,60731,60733,60736,60738,60741,60743,60746],{"class":4657,"line":6325},[4173,60730,8591],{"class":4788},[4173,60732,8623],{"class":4784},[4173,60734,60735],{"class":4669},"\"apachectl\"",[4173,60737,8629],{"class":4784},[4173,60739,60740],{"class":4669},"\"-D\"",[4173,60742,8629],{"class":4784},[4173,60744,60745],{"class":4669},"\"FOREGROUND\"",[4173,60747,8635],{"class":4784},[414,60749,60750,60751,60753,60754,60756,60757,60759],{},"Hinweis: Für Container ist es besser, den Webserver im Vordergrund laufen zu lassen. service",[7135,60752],{},"\napache2 start startet den Dienst nur kurzzeitig und beendet den Container meist wieder.",[7135,60755],{},"\nc) Schreiben Sie folgende Docker-Container-Einstellung als Docker Compose um und verwenden",[7135,60758],{},"\nSie Version 2.",[4647,60761,60763],{"className":4649,"code":60762,"language":4651,"meta":269,"style":269},"docker run --name apache -p 80:8080 -p 443:8443 -v \u002Fpath\u002Fto\u002Fapp:\u002Fapp bitnami\u002Fapache:latest\n",[4653,60764,60765],{"__ignoreMap":269},[4173,60766,60767,60769,60771,60773,60776,60778,60781,60783,60786,60788,60791],{"class":4657,"line":4658},[4173,60768,8042],{"class":4661},[4173,60770,8045],{"class":4669},[4173,60772,8212],{"class":4665},[4173,60774,60775],{"class":4669}," apache",[4173,60777,8206],{"class":4665},[4173,60779,60780],{"class":4669}," 80:8080",[4173,60782,8206],{"class":4665},[4173,60784,60785],{"class":4669}," 443:8443",[4173,60787,17702],{"class":4665},[4173,60789,60790],{"class":4669}," \u002Fpath\u002Fto\u002Fapp:\u002Fapp",[4173,60792,60793],{"class":4669}," bitnami\u002Fapache:latest\n",[414,60795,60796],{},"Antwort:",[4647,60798,60800],{"className":31201,"code":60799,"language":31203,"meta":269,"style":269},"version: \"2\"\nservices:\napache:\nimage: bitnami\u002Fapache:latest\ncontainer_name: apache\nports:\n- \"80:8080\"\n- \"443:8443\"\nvolumes:\n- \u002Fpath\u002Fto\u002Fapp:\u002Fapp\n",[4653,60801,60802,60811,60817,60824,60833,60842,60848,60855,60862,60868],{"__ignoreMap":269},[4173,60803,60804,60806,60808],{"class":4657,"line":4658},[4173,60805,30805],{"class":31210},[4173,60807,7412],{"class":4784},[4173,60809,60810],{"class":4669},"\"2\"\n",[4173,60812,60813,60815],{"class":4657,"line":270},[4173,60814,31224],{"class":31210},[4173,60816,2815],{"class":4784},[4173,60818,60819,60822],{"class":4657,"line":1263},[4173,60820,60821],{"class":31210},"apache",[4173,60823,2815],{"class":4784},[4173,60825,60826,60828,60830],{"class":4657,"line":4770},[4173,60827,31306],{"class":31210},[4173,60829,7412],{"class":4784},[4173,60831,60832],{"class":4669},"bitnami\u002Fapache:latest\n",[4173,60834,60835,60837,60839],{"class":4657,"line":4775},[4173,60836,31320],{"class":31210},[4173,60838,7412],{"class":4784},[4173,60840,60841],{"class":4669},"apache\n",[4173,60843,60844,60846],{"class":4657,"line":6320},[4173,60845,31359],{"class":31210},[4173,60847,2815],{"class":4784},[4173,60849,60850,60852],{"class":4657,"line":6325},[4173,60851,31294],{"class":4784},[4173,60853,60854],{"class":4669},"\"80:8080\"\n",[4173,60856,60857,60859],{"class":4657,"line":6343},[4173,60858,31294],{"class":4784},[4173,60860,60861],{"class":4669},"\"443:8443\"\n",[4173,60863,60864,60866],{"class":4657,"line":6348},[4173,60865,31392],{"class":31210},[4173,60867,2815],{"class":4784},[4173,60869,60870,60872],{"class":4657,"line":6457},[4173,60871,31294],{"class":4784},[4173,60873,60874],{"class":4669},"\u002Fpath\u002Fto\u002Fapp:\u002Fapp\n",[414,60876,60877,60878,60880],{},"Diese Compose-Datei bildet dieselben Einstellungen wie der docker-run-Befehl ab: Containername,",[7135,60879],{},"\nImage, Portweiterleitungen und Volume-Mount.",[414,60882,59601],{},[16,60884,60886],{"id":60885},"techniker_vorbereitung_find_mit_antwortenpdf","techniker_vorbereitung_find_mit_antworten.pdf",[414,60888,60889],{},"Quelle: techniker_vorbereitung_find_mit_antworten.pdf - 1 Seite(n)",[470,60891,55309],{"id":60892},"seite-1-6",[414,60894,60895],{},"Wiederholung find",[318,60897,60898,60910,60926,60935,60944,60956,60965,60974,60983,60992,61001,61013],{},[24,60899,60900,60901,60903,60904,60906,60907,60909],{},"Was ist die Hauptfunktion des Befehls find in Linux?",[7135,60902],{},"\nAntwort: Der Befehl find dient dazu, Dateien und Verzeichnisse rekursiv zu durchsuchen. Dabei kann",[7135,60905],{},"\nnach verschiedenen Kriterien wie Name, Typ, Größe, Änderungszeit, Besitzer oder Rechten gesucht",[7135,60908],{},"\nwerden.",[24,60911,60912,60913,60915,60916,60918,60919,60921,60922,60925],{},"Welche Option wird mit find verwendet, um nach einem Dateinamen zu suchen? A) -user B) -size",[7135,60914],{},"\nC) -name D) -exec",[7135,60917],{},"\nAntwort: Richtig ist C) -name. Mit -name wird nach einem konkreten Dateinamen oder nach Mustern",[7135,60920],{},"\nmit Platzhaltern wie ",[406,60923,60924],{},".txt oder backup"," gesucht.",[24,60927,60928,60929,60931,60932,60934],{},"Was bewirkt folgender Befehl? find \u002Fhome -type f -name \"*.pdf\"",[7135,60930],{},"\nAntwort: Der Befehl durchsucht \u002Fhome und alle Unterverzeichnisse nach normalen Dateien (-type f),",[7135,60933],{},"\nderen Name auf .pdf endet. Es werden also alle PDF-Dateien unterhalb von \u002Fhome gefunden.",[24,60936,60937,60938,60940,60941,60943],{},"Finde alle Dateien im aktuellen Verzeichnis, die größer als 10 MB sind.",[7135,60939],{},"\nAntwort: Befehl: find . -type f -size +10M. Der Punkt steht für das aktuelle Verzeichnis, -type f",[7135,60942],{},"\nbeschränkt die Suche auf Dateien und +10M bedeutet größer als 10 Megabyte.",[24,60945,60946,60947,60949,60950,60952,60953,60955],{},"Finde alle Dateien mit der Endung .log in \u002Fvar\u002Flog und lösche sie.",[7135,60948],{},"\nAntwort: Befehl: find \u002Fvar\u002Flog -type f -name \"*.log\" -delete. Damit werden alle .log-Dateien in \u002Fvar\u002Flog",[7135,60951],{},"\nund darunter direkt gelöscht. Vorsicht: -delete sollte nur verwendet werden, wenn das Suchmuster",[7135,60954],{},"\nsicher stimmt.",[24,60957,60958,60959,60961,60962,60964],{},"Suche im Verzeichnis \u002Fetc alle Dateien, die in den letzten 7 Tagen geändert wurden.",[7135,60960],{},"\nAntwort: Befehl: find \u002Fetc -type f -mtime -7. Die Option -mtime -7 findet Dateien, deren Änderungszeit",[7135,60963],{},"\nweniger als 7 Tage zurückliegt.",[24,60966,60967,60968,60970,60971,60973],{},"Finde alle Verzeichnisse, deren Name mit „backup“ beginnt.",[7135,60969],{},"\nAntwort: Befehl: find . -type d -name \"backup*\". Mit -type d werden nur Verzeichnisse gesucht und das",[7135,60972],{},"\nMuster backup* findet alle Namen, die mit backup anfangen.",[24,60975,60976,60977,60979,60980,60982],{},"Suche nach Dateien, die genau 100 KB groß sind.",[7135,60978],{},"\nAntwort: Befehl: find . -type f -size 100k. Damit werden Dateien gesucht, deren Größe genau 100",[7135,60981],{},"\nKilobyte beträgt. Das kleine k steht hier für Kilobyte in der find-Syntax.",[24,60984,60985,60986,60988,60989,60991],{},"Finde alle Dateien, die dem Benutzer student gehören.",[7135,60987],{},"\nAntwort: Befehl: find . -type f -user student. Damit werden alle Dateien im aktuellen Verzeichnis und",[7135,60990],{},"\nseinen Unterordnern gesucht, deren Besitzer der Benutzer student ist.",[24,60993,60994,60995,60997,60998,61000],{},"Führe für jede gefundene Datei mit Endung .tmp den Befehl rm aus.",[7135,60996],{},"\nAntwort: Befehl: find . -type f -name \"*.tmp\" -exec rm {} ;. Für jede gefundene .tmp-Datei wird der",[7135,60999],{},"\nBefehl rm einzeln ausgeführt. {} steht dabei für die jeweils gefundene Datei.",[24,61002,61003,61004,61006,61007,61009,61010,61012],{},"Was bedeutet {} ; in folgendem Befehl? find . -name \"*.sh\" -exec chmod +x {} ;",[7135,61005],{},"\nAntwort: Die geschweiften Klammern {} sind ein Platzhalter für jede gefundene Datei. Das",[7135,61008],{},"\nabschließende ; beendet den mit -exec gestarteten Befehl. Dadurch wird chmod +x nacheinander auf",[7135,61011],{},"\njede gefundene .sh-Datei angewendet.",[24,61014,61015,61016,61018,61019,61021,61022,61024],{},"Wie kann man mit find nur in einem bestimmten Verzeichnistiefenbereich suchen? (z. B. nur erste",[7135,61017],{},"\nEbene)",[7135,61020],{},"\nAntwort: Dafür verwendet man zum Beispiel -maxdepth und -mindepth. Mit find . -maxdepth 1 -name",[7135,61023],{},"\n\"*.txt\" wird nur im aktuellen Verzeichnis gesucht, also ohne tiefer in Unterordner zu gehen.",[16,61026,61028],{"id":61027},"techniker_vorbereitung_grep_mit_antwortenpdf","techniker_vorbereitung_grep_mit_antworten.pdf",[414,61030,61031],{},"Quelle: techniker_vorbereitung_grep_mit_antworten.pdf - 2 Seite(n)",[470,61033,55309],{"id":61034},"seite-1-7",[414,61036,61037],{},"Wiederholung grep",[318,61039,61040,61052,61067,61076,61085,61097,61115],{},[24,61041,61042,61043,61045,61046,61048,61049,61051],{},"Was ist der Zweck des Befehls grep?",[7135,61044],{},"\nAntwort: grep dient dazu, Textdateien oder Eingaben nach einem bestimmten Suchmuster zu",[7135,61047],{},"\ndurchsuchen. Das Muster kann ein normales Wort, eine Zeichenfolge oder auch ein regulärer Ausdruck",[7135,61050],{},"\nsein. So lassen sich passende Zeilen schnell finden und ausgeben.",[24,61053,61054,61055,61057,61058,61060,61061,61063,61064,61066],{},"Welcher Befehl sucht nach dem Wort \"Fehler\" in der Datei log.txt, ohne auf",[7135,61056],{},"\nGroß-\u002FKleinschreibung zu achten?",[7135,61059],{},"\nAntwort: Richtige Antwort: B) grep -i Fehler log.txt",[7135,61062],{},"\nDie Option -i sorgt dafür, dass grep nicht zwischen Groß- und Kleinschreibung unterscheidet. Dadurch",[7135,61065],{},"\nwerden zum Beispiel sowohl „Fehler“ als auch „fehler“ oder „FEHLER“ gefunden.",[24,61068,61069,61070,61072,61073,61075],{},"Was bewirkt grep -v \"root\" \u002Fetc\u002Fpasswd?",[7135,61071],{},"\nAntwort: Der Befehl gibt alle Zeilen aus der Datei \u002Fetc\u002Fpasswd aus, in denen das Wort root nicht",[7135,61074],{},"\nvorkommt. Die Option -v kehrt die Suche also um und filtert passende Zeilen heraus.",[24,61077,61078,61079,61081,61082,61084],{},"Suchen Sie in der Datei system.log nach allen Zeilen, die den Begriff „error“ enthalten.",[7135,61080],{},"\nAntwort: grep \"error\" system.log",[7135,61083],{},"\nDieser Befehl zeigt alle Zeilen der Datei system.log an, in denen der Text error vorkommt.",[24,61086,61087,61088,61090,61091,61093,61094,61096],{},"Zeigen Sie alle Zeilen in users.txt, die mit dem Buchstaben „A“ beginnen.",[7135,61089],{},"\nAntwort: grep \"^A\" users.txt",[7135,61092],{},"\nDas Zeichen ^ steht für den Zeilenanfang. Deshalb werden nur Zeilen angezeigt, deren erstes Zeichen",[7135,61095],{},"\nein großes A ist.",[24,61098,61099,61100,61102,61103,61105,61106,61108,61109,61111,61112,61114],{},"Suchen Sie in der Datei daten.csv alle Zeilen, die mit einer Zahl beginnen.",[7135,61101],{},"\nAntwort: grep \"^",[4173,61104,18063],{},"\" daten.csv",[7135,61107],{},"\nDer Ausdruck ",[4173,61110,18063],{}," steht für eine beliebige Ziffer. Zusammen mit ^ bedeutet das: Zeige alle Zeilen, die",[7135,61113],{},"\ndirekt am Anfang mit einer Zahl starten.",[24,61116,61117,61118,61120,61121,61123],{},"Suchen Sie rekursiv im Verzeichnis \u002Fvar\u002Flog nach dem Begriff „failed“.",[7135,61119],{},"\nAntwort: grep -r \"failed\" \u002Fvar\u002Flog",[7135,61122],{},"\nMit der Option -r werden das angegebene Verzeichnis und alle Unterverzeichnisse rekursiv durchsucht.",[4647,61125,61127],{"className":4649,"code":61126,"language":4651,"meta":269,"style":269},"grep sucht dabei in allen passenden Dateien nach dem Begriff failed.\n",[4653,61128,61129],{"__ignoreMap":269},[4173,61130,61131,61133,61136,61139,61141,61144,61147,61149,61152,61155,61158],{"class":4657,"line":4658},[4173,61132,8894],{"class":4661},[4173,61134,61135],{"class":4669}," sucht",[4173,61137,61138],{"class":4669}," dabei",[4173,61140,16308],{"class":4669},[4173,61142,61143],{"class":4669}," allen",[4173,61145,61146],{"class":4669}," passenden",[4173,61148,36451],{"class":4669},[4173,61150,61151],{"class":4669}," nach",[4173,61153,61154],{"class":4669}," dem",[4173,61156,61157],{"class":4669}," Begriff",[4173,61159,61160],{"class":4669}," failed.\n",[318,61162,61163,61175,61187],{"start":6343},[24,61164,61165,61166,61168,61169,61171,61172,61174],{},"Zählen Sie, wie oft das Wort „login“ in der Datei auth.log vorkommt.",[7135,61167],{},"\nAntwort: grep -o \"login\" auth.log | wc -l",[7135,61170],{},"\nDie Option -o gibt jeden einzelnen Treffer separat aus. Diese Treffer werden an wc -l weitergegeben,",[7135,61173],{},"\ndas dann die Anzahl der Zeilen und damit die Anzahl der Vorkommen zählt.",[24,61176,61177,61178,61180,61181,61183,61184,61186],{},"Wie würden Sie alle Zeilen mit genau 8 Zeichen anzeigen? (Zeichenanzahl = 8)",[7135,61179],{},"\nAntwort: grep -x \".{8}\" datei.txt",[7135,61182],{},"\nDer Ausdruck .{8} steht für genau acht beliebige Zeichen. Die Option -x sorgt dafür, dass die gesamte",[7135,61185],{},"\nZeile genau diesem Muster entsprechen muss.",[24,61188,61189],{},"Verwenden Sie grep, um in einer Datei users.txt nur Zeilen auszugeben, die NICHT das",[4647,61191,61193],{"className":4649,"code":61192,"language":4651,"meta":269,"style":269},"Wort \"admin\" enthalten.\n",[4653,61194,61195],{"__ignoreMap":269},[4173,61196,61197,61200,61203],{"class":4657,"line":4658},[4173,61198,61199],{"class":4661},"Wort",[4173,61201,61202],{"class":4669}," \"admin\"",[4173,61204,61205],{"class":4669}," enthalten.\n",[414,61207,61208,61209,61211,61212,61214,61215,61217,61218,61220,61221,61223,61224,61226,61227,61229],{},"Antwort: grep -v \"admin\" users.txt",[7135,61210],{},"\nAuch hier bedeutet -v, dass alle Zeilen ohne den Suchbegriff ausgegeben werden. Zeilen mit dem Wort",[7135,61213],{},"\nadmin werden also ausgeschlossen.",[7135,61216],{},"\n11. Wozu dient der Befehl grep -l ?",[7135,61219],{},"\nAntwort: Die Option -l gibt nur die Namen der Dateien aus, in denen ein Suchmuster gefunden wurde.",[7135,61222],{},"\nDie eigentlichen Trefferzeilen werden dabei nicht angezeigt. Das ist praktisch, wenn man nur wissen",[7135,61225],{},"\nmöchte, in welchen Dateien ein Begriff vorkommt.",[7135,61228],{},"\n12. Geben Sie ein Beispiel an.",[414,61231,55309],{},[470,61233,55449],{"id":61234},"seite-2-6",[414,61236,61237,61238,61240,61241,61243,61244,61246,61247,61249,61250,61252,61253,61255,61256,61258,61259,61261,61262,61264,61265,61267],{},"Antwort: grep -l \"Fehler\" *.log",[7135,61239],{},"\nDieser Befehl durchsucht alle Dateien mit der Endung .log im aktuellen Verzeichnis. Anschließend",[7135,61242],{},"\nwerden nur die Dateinamen ausgegeben, in denen das Wort Fehler gefunden wurde.",[7135,61245],{},"\n13. Was macht folgender Befehl? grep -rl \"TODO\" .",[7135,61248],{},"\nAntwort: Der Befehl durchsucht das aktuelle Verzeichnis . und alle Unterordner rekursiv nach dem",[7135,61251],{},"\nBegriff TODO. Durch die Kombination aus -r und -l werden nur die Dateinamen angezeigt, in denen",[7135,61254],{},"\nmindestens ein Treffer vorkommt.",[7135,61257],{},"\n14. Was macht folgender Befehl? grep -li \"warnung\" *.txt",[7135,61260],{},"\nAntwort: Dieser Befehl durchsucht alle .txt-Dateien im aktuellen Verzeichnis nach dem Wort warnung,",[7135,61263],{},"\nohne zwischen Groß- und Kleinschreibung zu unterscheiden. Wegen -l werden nur die Dateinamen",[7135,61266],{},"\nausgegeben, nicht die einzelnen Zeilen mit dem Treffer.",[414,61269,55449],{},[16,61271,61273],{"id":61272},"techniker_vorbereitung_systemd_mit_antwortenpdf","techniker_vorbereitung_systemd_mit_antworten.pdf",[414,61275,61276],{},"Quelle: techniker_vorbereitung_systemd_mit_antworten.pdf - 2 Seite(n)",[470,61278,55309],{"id":61279},"seite-1-8",[414,61281,61282],{},"Prüfungsfragen zu systemd",[318,61284,61285,61300,61315,61330,61339,61351,61363,61372,61387,61399],{},[24,61286,61287,61288,61290,61291,61293,61294,61296,61297,61299],{},"Was ist systemd und welche Aufgabe erfüllt es?",[7135,61289],{},"\nAntwort: systemd ist das Init-System und der Service-Manager vieler Linux-Distributionen. Es startet",[7135,61292],{},"\nbeim Booten die notwendigen Dienste, überwacht laufende Prozesse und verwaltet deren Status",[7135,61295],{},"\nwährend des Betriebs. Außerdem stellt es Werkzeuge bereit, um Dienste kontrolliert zu starten, zu",[7135,61298],{},"\nstoppen, neu zu laden oder beim Systemstart automatisch zu aktivieren.",[24,61301,61302,61303,61305,61306,61308,61309,61311,61312,61314],{},"Was ist eine Unit-Datei? Nenne Beispiele.",[7135,61304],{},"\nAntwort: Eine Unit-Datei ist eine Konfigurationsdatei, mit der systemd festlegt, wie eine bestimmte",[7135,61307],{},"\nRessource oder Funktion verwaltet wird. Beispiele sind .service für Dienste, .socket für Socket-",[7135,61310],{},"\nAktivierung, .target für Zielzustände ähnlich den früheren Runleveln, .mount für Einhängepunkte",[7135,61313],{},"\nund .timer für zeitgesteuerte Aufgaben.",[24,61316,61317,61318,61320,61321,61323,61324,61326,61327,61329],{},"Wo befinden sich systemd-Unit-Dateien?",[7135,61319],{},"\nAntwort: Häufig liegen benutzerdefinierte oder lokal angepasste Units unter \u002Fetc\u002Fsystemd\u002Fsystem. Vom",[7135,61322],{},"\nPaketmanager installierte Standard-Units liegen meist unter \u002Fusr\u002Flib\u002Fsystemd\u002Fsystem oder je nach",[7135,61325],{},"\nDistribution unter \u002Flib\u002Fsystemd\u002Fsystem. Änderungen in \u002Fetc haben in der Praxis Vorrang, weil dort lokale",[7135,61328],{},"\nAnpassungen vorgenommen werden.",[24,61331,61332,61333,61335,61336,61338],{},"Wie startest du einen Dienst manuell?",[7135,61334],{},"\nAntwort: Mit einem Befehl wie systemctl start nginx. Dadurch wird der Dienst sofort gestartet, aber noch",[7135,61337],{},"\nnicht automatisch für den nächsten Bootvorgang aktiviert.",[24,61340,61341,61342,61344,61345,61347,61348,61350],{},"Wie aktivierst du einen Dienst beim Booten?",[7135,61343],{},"\nAntwort: Mit systemctl enable nginx. Damit wird der Dienst so eingerichtet, dass er beim Systemstart",[7135,61346],{},"\nautomatisch geladen und gestartet wird. Der Befehl ändert also die Boot-Konfiguration, startet den",[7135,61349],{},"\nDienst aber nicht zwingend sofort.",[24,61352,61353,61354,61356,61357,61359,61360,61362],{},"Unterschied zwischen start und enable?",[7135,61355],{},"\nAntwort: start wirkt sofort und startet den Dienst in der aktuellen Sitzung. enable sorgt dafür, dass der",[7135,61358],{},"\nDienst beim nächsten Systemstart automatisch startet. In der Praxis werden oft beide Befehle",[7135,61361],{},"\nkombiniert, wenn ein Dienst sofort laufen und dauerhaft aktiviert sein soll.",[24,61364,61365,61366,61368,61369,61371],{},"Wie prüfst du den Status eines Dienstes?",[7135,61367],{},"\nAntwort: Mit systemctl status nginx. Der Befehl zeigt unter anderem, ob der Dienst aktiv ist, wann er",[7135,61370],{},"\ngestartet wurde, ob Fehler aufgetreten sind und welche letzten Log-Ausgaben zugeordnet wurden.",[24,61373,61374,61375,61377,61378,61380,61381,61383,61384,61386],{},"Was ist ein Target?",[7135,61376],{},"\nAntwort: Ein Target ist eine Sammlung von Units, die einen bestimmten Systemzustand beschreibt.",[7135,61379],{},"\nBeispiele sind multi-user.target für einen Mehrbenutzerbetrieb ohne grafische Oberfläche oder",[7135,61382],{},"\ngraphical.target für den grafischen Modus. Targets ersetzen damit weitgehend das frühere Runlevel-",[7135,61385],{},"\nKonzept.",[24,61388,61389,61390,61392,61393,61395,61396,61398],{},"Wie wechselst du das Target zur Laufzeit?",[7135,61391],{},"\nAntwort: Mit systemctl isolate multi-user.target. Dadurch versucht systemd, sofort in den angegebenen",[7135,61394],{},"\nZielzustand zu wechseln und nur die dafür benötigten Units aktiv zu lassen. Das kann laufende Dienste",[7135,61397],{},"\nstoppen, die im neuen Target nicht mehr benötigt werden.",[24,61400,61401,61402,61404,61405,61407,61408,61410],{},"Was ist der Unterschied zwischen restart und reload?",[7135,61403],{},"\nAntwort: restart beendet einen Dienst vollständig und startet ihn anschließend neu. reload lädt nur die",[7135,61406],{},"\nKonfiguration neu, ohne den Prozess komplett zu beenden, sofern der Dienst diese Funktion unterstützt.",[7135,61409],{},"\nreload ist daher oft schonender, weil laufende Verbindungen oder Zustände eher erhalten bleiben.",[414,61412,55309],{},[470,61414,55449],{"id":61415},"seite-2-7",[318,61417,61418],{"start":6462},[24,61419,61420,61421,61423,61424,61426,61427,61429,61430,61432],{},"Erstelle einen einfachen Service: Datei: \u002Fetc\u002Fsystemd\u002Fsystem\u002Fmeinservice.service",[7135,61422],{},"\nAntwort: Eine einfache Unit-Datei könnte den Dienst mit ExecStart=\u002Fusr\u002Fbin\u002Fsleep 1000 definieren und",[7135,61425],{},"\nmit WantedBy=multi-user.target beim Mehrbenutzerstart einbinden. Nach dem Anlegen oder Ändern der",[7135,61428],{},"\nDatei sollte man systemctl daemon-reload ausführen, damit systemd die neue Unit-Datei einliest.",[7135,61431],{},"\nAnschließend kann man den Dienst mit systemctl enable meinservice dauerhaft aktivieren und mit",[4647,61434,61436],{"className":4649,"code":61435,"language":4651,"meta":269,"style":269},"systemctl start meinservice sofort starten.\n",[4653,61437,61438],{"__ignoreMap":269},[4173,61439,61440,61443,61445,61448,61451],{"class":4657,"line":4658},[4173,61441,61442],{"class":4661},"systemctl",[4173,61444,45364],{"class":4669},[4173,61446,61447],{"class":4669}," meinservice",[4173,61449,61450],{"class":4669}," sofort",[4173,61452,61453],{"class":4669}," starten.\n",[318,61455,61456,61471,61483,61495],{"start":6468},[24,61457,61458,61459,61461,61462,61464,61465,61467,61468,61470],{},"Was macht systemctl daemon-reload?",[7135,61460],{},"\nAntwort: Dieser Befehl liest die Unit-Dateien erneut ein, wenn Konfigurationen neu angelegt oder",[7135,61463],{},"\nverändert wurden. Er ist notwendig, damit systemd Änderungen an Service-Dateien, Timern oder",[7135,61466],{},"\nanderen Units überhaupt erkennt. Ohne daemon-reload arbeitet systemd oft noch mit der alten Version",[7135,61469],{},"\nder Datei.",[24,61472,61473,61474,61476,61477,61479,61480,61482],{},"Was ist journalctl?",[7135,61475],{},"\nAntwort: journalctl ist das Werkzeug zum Auslesen des systemd-Journals. Darüber lassen sich zentrale",[7135,61478],{},"\nLogeinträge des Systems und einzelner Dienste anzeigen, filtern und zeitlich eingrenzen. Es ist",[7135,61481],{},"\nbesonders nützlich für die Fehlersuche und die Analyse von Startproblemen.",[24,61484,61485,61486,61488,61489,61491,61492,61494],{},"Beispiel: Logs eines Dienstes anzeigen",[7135,61487],{},"\nAntwort: Mit journalctl -u nginx. Der Parameter -u filtert die Einträge auf eine bestimmte Unit, sodass nur",[7135,61490],{},"\ndie Protokolle des betreffenden Dienstes angezeigt werden. So lassen sich Fehler, Warnungen und",[7135,61493],{},"\nStartmeldungen gezielt untersuchen.",[24,61496,61497,61498,61500,61501,61503,61504,61506,61507,61509],{},"Was sind Timer-Units?",[7135,61499],{},"\nAntwort: Timer-Units sind die systemd-Variante für zeitgesteuerte Aufgaben und damit oft ein Ersatz für",[7135,61502],{},"\nklassische Cronjobs. Ein Timer startet zu bestimmten Zeitpunkten oder nach bestimmten Intervallen eine",[7135,61505],{},"\nzugehörige Service-Unit. Der Vorteil liegt darin, dass Zeitsteuerung und Dienstverwaltung direkt",[7135,61508],{},"\ninnerhalb von systemd zusammenarbeiten.",[5719,61511,61512],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":269,"searchDepth":270,"depth":270,"links":61514},[61515,61516,61517,61518,61519,61520,61521,61522,61523,61524,61527,61528,61534,61535,61536,61540,61544,61549,61557,61558,61567,61568,61569,61570,61577,61578,61579,61580,61581,61586,61587,61592,61601,61609,61610,61611,61612,61615,61616,61617,61618,61619,61620,61623,61624,61625,61626,61632,61633,61634,61635,61636,61637,61638,61639,61640,61641,61642,61643,61644,61645,61646,61647,61648,61651,61652,61653,61654,61663,61664,61671,61672,61673,61674,61679,61680,61681,61688,61689,61690,61691,61696,61700,61706,61719,61730,61741,61748,61754,61759,61765,61768,61772],{"id":35816,"depth":270,"text":35817},{"id":35954,"depth":270,"text":35955},{"id":36027,"depth":270,"text":36028},{"id":36150,"depth":270,"text":36151},{"id":36264,"depth":270,"text":36265},{"id":36370,"depth":270,"text":36371},{"id":36433,"depth":270,"text":36434},{"id":24806,"depth":270,"text":24806},{"id":28103,"depth":270,"text":28103},{"id":37859,"depth":270,"text":37860,"children":61525},[61526],{"id":37972,"depth":1263,"text":37973},{"id":38026,"depth":270,"text":38027},{"id":33010,"depth":270,"text":33011,"children":61529},[61530,61531,61532,61533],{"id":38054,"depth":1263,"text":38055},{"id":38112,"depth":1263,"text":38113},{"id":38150,"depth":1263,"text":38151},{"id":38193,"depth":1263,"text":38194},{"id":38227,"depth":270,"text":38228},{"id":38246,"depth":270,"text":38247},{"id":38297,"depth":270,"text":38298,"children":61537},[61538,61539],{"id":38301,"depth":1263,"text":38302},{"id":38506,"depth":1263,"text":296},{"id":38562,"depth":270,"text":38563,"children":61541},[61542,61543],{"id":8950,"depth":1263,"text":38584},{"id":9924,"depth":1263,"text":8902},{"id":38875,"depth":270,"text":38876,"children":61545},[61546,61547,61548],{"id":9195,"depth":1263,"text":38584},{"id":38960,"depth":1263,"text":38961},{"id":13368,"depth":1263,"text":8902},{"id":39126,"depth":270,"text":39127,"children":61550},[61551,61552,61553,61554,61555,61556],{"id":9852,"depth":1263,"text":9853},{"id":20312,"depth":1263,"text":20313},{"id":20435,"depth":1263,"text":20436},{"id":39443,"depth":1263,"text":39444},{"id":39546,"depth":1263,"text":39547},{"id":13857,"depth":1263,"text":9925},{"id":40336,"depth":270,"text":40337},{"id":40388,"depth":270,"text":40389,"children":61559},[61560,61561,61562,61563,61564,61565,61566],{"id":40392,"depth":1263,"text":9853},{"id":40487,"depth":1263,"text":40488},{"id":40615,"depth":1263,"text":40616},{"id":40687,"depth":1263,"text":40688},{"id":40700,"depth":1263,"text":19431},{"id":40753,"depth":1263,"text":40754},{"id":14639,"depth":1263,"text":9925},{"id":41514,"depth":270,"text":41515},{"id":41614,"depth":270,"text":41615},{"id":41691,"depth":270,"text":41692},{"id":41747,"depth":270,"text":41748,"children":61571},[61572,61573,61574,61575,61576],{"id":41751,"depth":1263,"text":41752},{"id":41755,"depth":1263,"text":41756},{"id":41767,"depth":1263,"text":41768},{"id":41782,"depth":1263,"text":41783},{"id":41789,"depth":1263,"text":41790},{"id":41798,"depth":270,"text":41799},{"id":41871,"depth":270,"text":41872},{"id":41998,"depth":270,"text":41999},{"id":14145,"depth":270,"text":14146},{"id":42074,"depth":270,"text":42075,"children":61582},[61583,61584,61585],{"id":42078,"depth":1263,"text":42079},{"id":42163,"depth":1263,"text":42164},{"id":42230,"depth":1263,"text":42231},{"id":42299,"depth":270,"text":42300},{"id":42353,"depth":270,"text":42354,"children":61588},[61589,61590,61591],{"id":42420,"depth":1263,"text":42421},{"id":42492,"depth":1263,"text":42493},{"id":42548,"depth":1263,"text":42549},{"id":42645,"depth":270,"text":42646,"children":61593},[61594,61595,61596,61597,61598,61599,61600],{"id":42680,"depth":1263,"text":42681},{"id":42746,"depth":1263,"text":42747},{"id":42827,"depth":1263,"text":42828},{"id":42956,"depth":1263,"text":42957},{"id":42975,"depth":1263,"text":42976},{"id":43065,"depth":1263,"text":43066},{"id":43152,"depth":1263,"text":43153},{"id":43274,"depth":270,"text":43275,"children":61602},[61603,61604,61605,61606,61607,61608],{"id":43291,"depth":1263,"text":43292},{"id":43400,"depth":1263,"text":43401},{"id":43463,"depth":1263,"text":43464},{"id":43572,"depth":1263,"text":43573},{"id":43616,"depth":1263,"text":43617},{"id":43673,"depth":1263,"text":43674},{"id":43782,"depth":270,"text":43783},{"id":43853,"depth":270,"text":43854},{"id":44005,"depth":270,"text":44006},{"id":44066,"depth":270,"text":44067,"children":61613},[61614],{"id":44094,"depth":1263,"text":44095},{"id":44171,"depth":270,"text":44172},{"id":44285,"depth":270,"text":44286},{"id":44353,"depth":270,"text":44354},{"id":44487,"depth":270,"text":44488},{"id":44548,"depth":270,"text":44549},{"id":44583,"depth":270,"text":44584,"children":61621},[61622],{"id":1680,"depth":1263,"text":1681},{"id":44614,"depth":270,"text":44615},{"id":44737,"depth":270,"text":44738},{"id":44861,"depth":270,"text":44862},{"id":44937,"depth":270,"text":44938,"children":61627},[61628,61629,61630,61631],{"id":44941,"depth":1263,"text":44942},{"id":44953,"depth":1263,"text":44954},{"id":45319,"depth":1263,"text":45320},{"id":45369,"depth":1263,"text":45370},{"id":45388,"depth":270,"text":9853},{"id":45460,"depth":270,"text":45461},{"id":45502,"depth":270,"text":45503},{"id":45565,"depth":270,"text":45566},{"id":45622,"depth":270,"text":45623},{"id":45707,"depth":270,"text":45708},{"id":15941,"depth":270,"text":9925},{"id":45946,"depth":270,"text":45947},{"id":46014,"depth":270,"text":46015},{"id":46036,"depth":270,"text":46037},{"id":46092,"depth":270,"text":9853},{"id":46114,"depth":270,"text":46115},{"id":27015,"depth":270,"text":27016},{"id":27474,"depth":270,"text":27475},{"id":16425,"depth":270,"text":9925},{"id":47037,"depth":270,"text":47038},{"id":47052,"depth":270,"text":47053,"children":61649},[61650],{"id":47175,"depth":1263,"text":47176},{"id":47248,"depth":270,"text":47249},{"id":47633,"depth":270,"text":47634},{"id":47707,"depth":270,"text":47708},{"id":47741,"depth":270,"text":47742,"children":61655},[61656,61657,61658,61659,61660,61661,61662],{"id":47748,"depth":1263,"text":47749},{"id":47845,"depth":1263,"text":47846},{"id":48149,"depth":1263,"text":48150},{"id":48222,"depth":1263,"text":48223},{"id":48349,"depth":1263,"text":48350},{"id":48476,"depth":1263,"text":48477},{"id":48528,"depth":1263,"text":48529},{"id":49100,"depth":270,"text":49101},{"id":49479,"depth":270,"text":49480,"children":61665},[61666,61667,61668,61670],{"id":49609,"depth":1263,"text":49610},{"id":49656,"depth":1263,"text":49657},{"id":49748,"depth":1263,"text":61669},"Unterschied zwischen \"$array\" und \"${array@}\"",{"id":49905,"depth":1263,"text":49906},{"id":49932,"depth":270,"text":6171},{"id":49945,"depth":270,"text":49946},{"id":49995,"depth":270,"text":6252},{"id":50078,"depth":270,"text":50079,"children":61675},[61676,61677,61678],{"id":50217,"depth":1263,"text":50218},{"id":50284,"depth":1263,"text":50285},{"id":50357,"depth":1263,"text":6654},{"id":50401,"depth":270,"text":6712},{"id":50516,"depth":270,"text":6855},{"id":50625,"depth":270,"text":50626,"children":61682},[61683,61684,61685,61686,61687],{"id":50629,"depth":1263,"text":50630},{"id":50669,"depth":1263,"text":50670},{"id":50719,"depth":1263,"text":50720},{"id":51035,"depth":1263,"text":51036},{"id":51071,"depth":1263,"text":51072},{"id":51121,"depth":270,"text":51122},{"id":51179,"depth":270,"text":51180},{"id":51201,"depth":270,"text":51202},{"id":51488,"depth":270,"text":51489,"children":61692},[61693,61694,61695],{"id":51492,"depth":1263,"text":51493},{"id":51561,"depth":1263,"text":51562},{"id":51645,"depth":1263,"text":51646},{"id":51838,"depth":270,"text":51839,"children":61697},[61698,61699],{"id":51940,"depth":1263,"text":51941},{"id":51964,"depth":1263,"text":51965},{"id":8042,"depth":270,"text":52024,"children":61701},[61702,61703,61704,61705],{"id":52027,"depth":1263,"text":52028},{"id":29135,"depth":1263,"text":52083},{"id":52773,"depth":1263,"text":52774},{"id":53172,"depth":1263,"text":53173},{"id":53185,"depth":270,"text":53186,"children":61707},[61708,61709,61710,61711,61712,61713,61714,61715,61716,61717,61718],{"id":53189,"depth":1263,"text":9853},{"id":30598,"depth":1263,"text":30599},{"id":30811,"depth":1263,"text":30812},{"id":30934,"depth":1263,"text":30935},{"id":30992,"depth":1263,"text":30993},{"id":31060,"depth":1263,"text":31061},{"id":31123,"depth":1263,"text":31124},{"id":53660,"depth":1263,"text":53661},{"id":32766,"depth":1263,"text":32767},{"id":32863,"depth":1263,"text":32864},{"id":54858,"depth":1263,"text":33011},{"id":55301,"depth":270,"text":55302,"children":61720},[61721,61722,61723,61724,61725,61726,61727,61728,61729],{"id":55308,"depth":1263,"text":55309},{"id":55448,"depth":1263,"text":55449},{"id":55711,"depth":1263,"text":55712},{"id":55864,"depth":1263,"text":55865},{"id":55991,"depth":1263,"text":55992},{"id":56248,"depth":1263,"text":56249},{"id":56453,"depth":1263,"text":56454},{"id":56624,"depth":1263,"text":56625},{"id":56824,"depth":1263,"text":56825},{"id":56849,"depth":270,"text":56850,"children":61731},[61732,61733,61734,61735,61736,61737,61738,61739,61740],{"id":56856,"depth":1263,"text":55309},{"id":57001,"depth":1263,"text":55449},{"id":57051,"depth":1263,"text":55712},{"id":57344,"depth":1263,"text":55865},{"id":57421,"depth":1263,"text":55992},{"id":57553,"depth":1263,"text":56249},{"id":57740,"depth":1263,"text":56454},{"id":57846,"depth":1263,"text":56625},{"id":58077,"depth":1263,"text":56825},{"id":58143,"depth":270,"text":58144,"children":61742},[61743,61744,61745,61746,61747],{"id":58150,"depth":1263,"text":55309},{"id":58236,"depth":1263,"text":55449},{"id":58446,"depth":1263,"text":55712},{"id":58739,"depth":1263,"text":55865},{"id":58775,"depth":1263,"text":55992},{"id":58814,"depth":270,"text":58815,"children":61749},[61750,61751,61752,61753],{"id":58821,"depth":1263,"text":55309},{"id":58948,"depth":1263,"text":55449},{"id":59144,"depth":1263,"text":55712},{"id":59302,"depth":1263,"text":55865},{"id":59604,"depth":270,"text":59605,"children":61755},[61756,61757,61758],{"id":59611,"depth":1263,"text":55309},{"id":59738,"depth":1263,"text":55449},{"id":59853,"depth":1263,"text":55712},{"id":59892,"depth":270,"text":59893,"children":61760},[61761,61762,61763,61764],{"id":59899,"depth":1263,"text":55309},{"id":60115,"depth":1263,"text":55449},{"id":60323,"depth":1263,"text":55712},{"id":60601,"depth":1263,"text":55865},{"id":60885,"depth":270,"text":60886,"children":61766},[61767],{"id":60892,"depth":1263,"text":55309},{"id":61027,"depth":270,"text":61028,"children":61769},[61770,61771],{"id":61034,"depth":1263,"text":55309},{"id":61234,"depth":1263,"text":55449},{"id":61272,"depth":270,"text":61273,"children":61773},[61774,61775],{"id":61279,"depth":1263,"text":55309},{"id":61415,"depth":1263,"text":55449},{},{"title":35633},"\u002Ffaecher\u002Fbsa\u002Fap-zsmf","\u002Fdownloads\u002FBSA\u002FBSA_ZSMF_AP.pdf",{"title":35633,"description":269},"faecher\u002Fbsa\u002Fap-zsmf","5EnLwpdNJfUZrGDKUmMLO1A5TlBoDrA1y-3kO_Bs0DM",{"id":61784,"title":6,"body":61785,"class":12223,"description":269,"extension":283,"meta":62552,"navigation":62553,"path":62554,"pdfDownload":62555,"scope":289,"scopeName":290,"seo":62556,"stem":62557,"subject":62558,"subjectName":62559,"type":295,"typeName":296,"year":12233,"__hash__":62560},"faecher\u002Ffaecher\u002Fbwp\u002F7-8-zsmf-sa1.md",{"type":8,"value":61786,"toc":62537},[61787,61791,61796,61800,61865,61869,61922,61936,61940,61950,61954,62046,62050,62108,62112,62117,62121,62178,62182,62246,62250,62254,62339,62343,62347,62413,62417,62444,62448,62467,62471],[11,61788,61790],{"id":61789},"incoterms","Incoterms",[414,61792,61793],{},[1504,61794],{"alt":269,"src":61795},"\u002Fdownloads\u002FBWP\u002Fimages\u002F7-8-zsmf-sa1_img_1.png",[11,61797,61799],{"id":61798},"lagerarten-01","Lagerarten (01)",[765,61801,61802,61815],{},[768,61803,61804],{},[771,61805,61806,61811],{},[774,61807,61808],{},[42,61809,61810],{},"Lager",[774,61812,61813],{},[42,61814,5800],{},[787,61816,61817,61825,61833,61841,61849,61857],{},[771,61818,61819,61822],{},[792,61820,61821],{},"Beschaffungslager \u002F Produktionslager",[792,61823,61824],{},"- Produktionsrelevante Produkte - Sicherstellung reibungsloser Produktion",[771,61826,61827,61830],{},[792,61828,61829],{},"Umschlaglager",[792,61831,61832],{},"- Zwischenlagerung eingehender Sendungen zum Umschlag - Z.B. zw. Zwei LKWs",[771,61834,61835,61838],{},[792,61836,61837],{},"Distributionslager \u002F Verteillager",[792,61839,61840],{},"- Direkte Zustellung eingelagerter Ware - Z.B. Amazon Lager in Kundennähe",[771,61842,61843,61846],{},[792,61844,61845],{},"Zwischenlager \u002F Pufferlager",[792,61847,61848],{},"- Zwischen Produktionsschritten",[771,61850,61851,61854],{},[792,61852,61853],{},"Vorratslager",[792,61855,61856],{},"- Zum Ausgleich von Bedarfsschwankungen",[771,61858,61859,61862],{},[792,61860,61861],{},"Kommissionier Lager",[792,61863,61864],{},"- Zusammenstellung von Kundenbestellungen",[11,61866,61868],{"id":61867},"vertriebswege-01","Vertriebswege (01)",[765,61870,61871,61887],{},[768,61872,61873],{},[771,61874,61875,61879,61883],{},[774,61876,61877],{},[42,61878,12446],{},[774,61880,61881],{},[42,61882,15635],{},[774,61884,61885],{},[42,61886,5800],{},[787,61888,61889,61900,61911],{},[771,61890,61891,61894,61897],{},[792,61892,61893],{},"GH",[792,61895,61896],{},"Großhandel",[792,61898,61899],{},"Beliefert Einzelhändler",[771,61901,61902,61905,61908],{},[792,61903,61904],{},"EH",[792,61906,61907],{},"Einzelhändler",[792,61909,61910],{},"Beliefert Endkunde",[771,61912,61913,61916,61919],{},[792,61914,61915],{},"DV",[792,61917,61918],{},"Direktvertrieb",[792,61920,61921],{},"Z.B. Belieferung über Onlinehandel",[21,61923,61924,61930],{},[24,61925,61926,61929],{},[42,61927,61928],{},"Eigene Erzeugnisse",": Produkte, die selbst hergestellt werden",[24,61931,61932,61935],{},[42,61933,61934],{},"Handelswaren",": Produkte, die zugekauft werden und unverarbeitet weiterverkauft werden",[11,61937,61939],{"id":61938},"unternehmensformen-07","Unternehmensformen (07)",[21,61941,61942],{},[24,61943,61944,61945],{},"Firmenname: Personen-, Sach- oder Phantasienamen & Rechtsformzusatz\n",[21,61946,61947],{},[24,61948,61949],{},"Irreführungsverbot: z.B. Kube e.K. als Radladen nicht erlaubt, da es schon Cube gibt",[16,61951,61953],{"id":61952},"einteilung","Einteilung",[21,61955,61956,61959],{},[24,61957,61958],{},"Einzelunternehmung",[24,61960,61961,61962],{},"Gesellschaftsformen\n",[21,61963,61964,62006],{},[24,61965,61966,61969],{},[42,61967,61968],{},"Personengesellschaft",[21,61970,61971,61978,61984,61987,61990],{},[24,61972,61973,61974,61977],{},"Handelsregister ",[42,61975,61976],{},"A (HRA)"," -> wie Vereine und Einzelunternehmen",[24,61979,61980,61981],{},"Vollhafter haftet mit ",[42,61982,61983],{},"Privat- & Gesellschaftsvermögen",[24,61985,61986],{},"Nur vollhaftende Gesellschafter können Gesellschaft vertreten",[24,61988,61989],{},"Gesellschaft ist nicht rechtsfähig -> Gesellschafter ist rechtsfähig",[24,61991,12425,61992],{},[21,61993,61994,62000],{},[24,61995,61996,61999],{},[42,61997,61998],{},"OHG:"," Offene Handelsgesellschaft",[24,62001,62002,62005],{},[42,62003,62004],{},"KG:"," Kommanditgesellschaft",[24,62007,62008,62011],{},[42,62009,62010],{},"Kapitalgesellschaft",[21,62012,62013,62018,62021,62024,62027,62030],{},[24,62014,61973,62015],{},[42,62016,62017],{},"B (HRB)",[24,62019,62020],{},"Haftung ist auf Vermögen der Gesellschaft beschränkt",[24,62022,62023],{},"Mindestkapitalvorschrift",[24,62025,62026],{},"Ein Organ führt Geschäfte und vertritt das Unternehmen",[24,62028,62029],{},"Gesellschaft ist juristische Person",[24,62031,12425,62032],{},[21,62033,62034,62040],{},[24,62035,62036,62039],{},[42,62037,62038],{},"GmbH:"," Gemeinschaft mit beschränkter Haftung",[24,62041,62042,62045],{},[42,62043,62044],{},"AG:"," Aktiengesellschaft",[16,62047,62049],{"id":62048},"einzelunternehmung-ek-eingetragener-kaufmann-02","Einzelunternehmung (e.K. – eingetragener Kaufmann) (02)",[21,62051,62052,62055,62058,62066,62087],{},[24,62053,62054],{},"Vertreten durch Einzelunternehmer",[24,62056,62057],{},"Vollhaftung (Privat und Gesellschaft)",[24,62059,62060,62061],{},"Kapitalaufbringung vollständig durch den Einzelunternehmer\n",[21,62062,62063],{},[24,62064,62065],{},"Gewinn allerdings auch alleinig",[24,62067,4806,62068],{},[21,62069,62070,62075,62078,62081,62084],{},[24,62071,62072],{},[42,62073,62074],{},"Keine Mindestkapitalvorschrift",[24,62076,62077],{},"Keine Notarpflicht",[24,62079,62080],{},"Alleiniges Entscheidungsrecht",[24,62082,62083],{},"Eingeschränkte Publizitätspflichten",[24,62085,62086],{},"Keine Pflicht zur Gründung eines Aufsichtsrats",[24,62088,62089,62090],{},"Nachteile\n",[21,62091,62092,62097,62102,62105],{},[24,62093,62094],{},[42,62095,62096],{},"Vollhaftung",[24,62098,62099],{},[42,62100,62101],{},"Mitarbeitspflicht",[24,62103,62104],{},"Gefahr von Fehlentscheidungen",[24,62106,62107],{},"Schwierige Kapitalaufbringung",[16,62109,62111],{"id":62110},"personengesellschaften-hra","Personengesellschaften (HRA)",[21,62113,62114],{},[24,62115,62116],{},"Einbringung von Kapital-, Sach- oder Rechtswerten möglich",[470,62118,62120],{"id":62119},"ohg-offene-handelsgesellschaft-03","OHG: Offene Handelsgesellschaft (03)",[21,62122,62123,62142,62144,62155],{},[24,62124,62125,62128,62129],{},[42,62126,62127],{},"Gründung",": mind. 2 Gesellschafter (mündlicher Vertrag)\n",[21,62130,62131],{},[24,62132,62133,62134],{},"Gültigkeit\n",[21,62135,62136,62139],{},[24,62137,62138],{},"Innenverhältnis: sofort",[24,62140,62141],{},"Außenverhältnis: bei Geschäftsaufnahme",[24,62143,62074],{},[24,62145,62146,62149,62150],{},[42,62147,62148],{},"Gesellschafter haben Einzelvertretungsbefugnis"," -> unabhängig voneinander Rechtsgeschäfte abschließen\n",[21,62151,62152],{},[24,62153,62154],{},"Ausnahme: außergewöhnliche Rechtsgeschäfte (nichts alltägliches)",[24,62156,62157,62158],{},"Gesellschafter haften\n",[21,62159,62160,62166,62172],{},[24,62161,62162,62165],{},[42,62163,62164],{},"UNBESCHRÄNKT",": Privat- & Geschäftsvermögen",[24,62167,62168,62171],{},[42,62169,62170],{},"UNMITTELBAR",": Jeder Gläubiger kann sich an jeden Gesellschafter wenden",[24,62173,62174,62177],{},[42,62175,62176],{},"SOLIDARISCH",": Jeder Gesellschafter haftet für Schulden des gesamten Unternehmen",[470,62179,62181],{"id":62180},"kg-kommanditgesellschaft-05","KG: Kommanditgesellschaft (05)",[21,62183,62184,62210,62212,62215,62218,62229,62232],{},[24,62185,62186,62187],{},"Gründung: mind. 2 Gesellschafter\n",[21,62188,62189,62200],{},[24,62190,62191,62192,62195],{},"Mind. Ein ",[42,62193,62194],{},"Vollhafter (Komplementär)",[21,62196,62197],{},[24,62198,62199],{},"Einzelvertretungsbefugnis",[24,62201,62191,62202,62205],{},[42,62203,62204],{},"Teilhafter (Kommanditist)",[21,62206,62207],{},[24,62208,62209],{},"Keine Mitarbeitspflicht",[24,62211,62077],{},[24,62213,62214],{},"Keine Mindestkapitalpflicht",[24,62216,62217],{},"Außergewöhnliche Rechtsgeschäfte: Kommanditist muss informiert werden und hat eingeschränktes Wiederspruchsrecht",[24,62219,62220,62221],{},"Gewinnaufteilung\n",[21,62222,62223,62226],{},[24,62224,62225],{},"4% Verzinsung der Kapitaleinlage",[24,62227,62228],{},"Rest im angemessenen Verhältnis",[24,62230,62231],{},"Verlust nach Köpfen verteilt",[24,62233,62234,62235],{},"Haftung\n",[21,62236,62237,62240],{},[24,62238,62239],{},"Teilhafter: Nur mit Kapitaleinlage",[24,62241,62242,62243],{},"Vollhafter: ",[42,62244,62245],{},"unbeschränkt, unmittelbar, solidarisch",[16,62247,62249],{"id":62248},"kapitalgesellschaften-hrb","Kapitalgesellschaften (HRB)",[470,62251,62253],{"id":62252},"gmbh-gesellschaft-mit-beschränkter-haftung-06","GmbH: Gesellschaft mit beschränkter Haftung (06)",[21,62255,62256,62272,62295,62328,62336],{},[24,62257,62258,62259],{},"Gründung\n",[21,62260,62261,62264],{},[24,62262,62263],{},"mind. Ein Gesellschafter",[24,62265,62266,62267],{},"Notarvertrag unterschrieben von allen Gesellschaftern\n",[21,62268,62269],{},[24,62270,62271],{},"Gesellschafterwechsel: Vertrag muss geändert werden",[24,62273,62274,62275],{},"Kapital\n",[21,62276,62277,62283,62289],{},[24,62278,62279,62282],{},[42,62280,62281],{},"Stammkapital: mind. 25.000€"," (bei Gründung 12.500€ einbezahlt; Rest kann nachgereicht werden)",[24,62284,62285,62288],{},[42,62286,62287],{},"Stammeinlage",": Einlage, die jeder einzelne Gesellschafter einbringt",[24,62290,62291,62294],{},[42,62292,62293],{},"Geschäftsanteil",": Anteil am Unternehmenswert",[24,62296,62297,62298],{},"Organe\n",[21,62299,62300,62311,62317],{},[24,62301,62302,62305,62306],{},[42,62303,62304],{},"Gesellschafterversammlung",": alle GmbH Gesellschafter\n",[21,62307,62308],{},[24,62309,62310],{},"Beschließt Bestellungen und Weisungen über Geschäftsführer",[24,62312,62313,62316],{},[42,62314,62315],{},"Geschäftsführer",": Gesellschafter oder externer Geschäftsführer",[24,62318,62319,62322,62323],{},[42,62320,62321],{},"Aufsichtsrat",": ab 500 Mitarbeiter\n",[21,62324,62325],{},[24,62326,62327],{},"Kontrolliert Geschäftsführer",[24,62329,62330,62331],{},"Gesellschafter können mitentscheiden\n",[21,62332,62333],{},[24,62334,62335],{},"Stimmgewicht durch Höhe der Einlage: 1 Euro -> 1 Stimme",[24,62337,62338],{},"Haftung: Nur Geschäftsanteil",[11,62340,62342],{"id":62341},"kaufvertrag","Kaufvertrag",[16,62344,62346],{"id":62345},"zustandekommen-08","Zustandekommen (08)",[21,62348,62349,62364,62393],{},[24,62350,62351,62352],{},"Zwei übereinstimmende Willenserklärungen\n",[21,62353,62354,62359],{},[24,62355,62356],{},[42,62357,62358],{},"Antrag",[24,62360,62361],{},[42,62362,62363],{},"Annahme",[24,62365,62366,62369,62370],{},[42,62367,62368],{},"Fall 1",": Käufer ändert rechtlich bindendes Angebot ab (z.B. anderer Lieferort)\n",[21,62371,62372,62379,62386],{},[24,62373,62374],{},[318,62375,62376],{},[24,62377,62378],{},"Antrag: Initiales Angebot vom Verkäufer",[24,62380,62381],{},[318,62382,62383],{"start":270},[24,62384,62385],{},"Antrag: Abgeändertes Angebot vom Käufer",[24,62387,62388],{},[318,62389,62390],{"start":1263},[24,62391,62392],{},"Annahme: Auftragsbestätigung vom Verkäufer",[24,62394,62395,62398,62399],{},[42,62396,62397],{},"Fall 2",": Verkäufer gibt Angebot ab, das eine Freizeichnungsklausel (FZK) enthält\n",[21,62400,62401,62404,62407,62410],{},[24,62402,62403],{},"FZK: „Solange der Vorrat reicht“; „ohne Obligo“; „vorbehaltlich Materialverfügbarkeit“",[24,62405,62406],{},"Angebot mit FZK ist nicht rechtlich binden",[24,62408,62409],{},"Bestellung vom Käufer gilt als Antrag",[24,62411,62412],{},"Auftragsbestätigung\u002FLieferung als Annahme",[16,62414,62416],{"id":62415},"verpflichtungsgeschäft-09","Verpflichtungsgeschäft (09)",[21,62418,62419,62433],{},[24,62420,62421,62422],{},"Verkäufer\n",[21,62423,62424,62427,62430],{},[24,62425,62426],{},"Ordnungsgemäße Lieferung (Zeit, Ort, Art und Weise)",[24,62428,62429],{},"Kaufpreis annehmen",[24,62431,62432],{},"Eigentum übertragen",[24,62434,62435,62436],{},"Käufer\n",[21,62437,62438,62441],{},[24,62439,62440],{},"Ware annehmen",[24,62442,62443],{},"Kaufpreis bezahlen",[16,62445,62447],{"id":62446},"erfüllungsgeschäft-09","Erfüllungsgeschäft (09)",[21,62449,62450,62453,62456,62459],{},[24,62451,62452],{},"Verkäufer tauscht Ware gegen Geld",[24,62454,62455],{},"Käufer wird Eigentümer der Ware",[24,62457,62458],{},"Verkäufer wird Eigentümer des Geldes",[24,62460,62461,62462],{},"Wird er Kaufvertrag rückgängig gemacht wird das Erfüllungsgeschäft rückabgewickelt\n",[21,62463,62464],{},[24,62465,62466],{},"Gutschein muss nicht angenommen werden!",[16,62468,62470],{"id":62469},"einkauf-10","Einkauf (10)",[21,62472,62473,62487],{},[24,62474,62475,62476],{},"Anfrage\n",[21,62477,62478,62481,62484],{},[24,62479,62480],{},"Kostet nichts",[24,62482,62483],{},"Rechtsunverbindlich",[24,62485,62486],{},"Formfrei",[24,62488,62489,62490],{},"Angebot\n",[21,62491,62492,62495,62503,62506,62509,62523],{},[24,62493,62494],{},"Rechtsverbindlich",[24,62496,62497,62498],{},"An Person\u002FUnternehmen gerichtet\n",[21,62499,62500],{},[24,62501,62502],{},"Nicht an eine Person gerichteter Kaufhinweis: Anpreisung",[24,62504,62505],{},"Darf keine FZK enthalten",[24,62507,62508],{},"Muss gültig sein (Datum)",[24,62510,62511,62512],{},"Erlischt wenn…\n",[21,62513,62514,62517,62520],{},[24,62515,62516],{},"Ausdrückliche oder stillschweigende Ablehnung",[24,62518,62519],{},"Abänderung",[24,62521,62522],{},"Annahme außerhalb der Frist",[24,62524,62525,62526],{},"Annahmefristen\n",[21,62527,62528,62531,62534],{},[24,62529,62530],{},"Mündlich: Solange das Gespräch geht",[24,62532,62533],{},"Brief: 7 Tage",[24,62535,62536],{},"Mail\u002FFax: 24 Stunden",{"title":269,"searchDepth":270,"depth":270,"links":62538},[62539,62540,62541,62545,62548,62549,62550,62551],{"id":61952,"depth":270,"text":61953},{"id":62048,"depth":270,"text":62049},{"id":62110,"depth":270,"text":62111,"children":62542},[62543,62544],{"id":62119,"depth":1263,"text":62120},{"id":62180,"depth":1263,"text":62181},{"id":62248,"depth":270,"text":62249,"children":62546},[62547],{"id":62252,"depth":1263,"text":62253},{"id":62345,"depth":270,"text":62346},{"id":62415,"depth":270,"text":62416},{"id":62446,"depth":270,"text":62447},{"id":62469,"depth":270,"text":62470},{},{"title":12691},"\u002Ffaecher\u002Fbwp\u002F7-8-zsmf-sa1","\u002Fdownloads\u002FBWP\u002FBWP_7-8_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fbwp\u002F7-8-zsmf-sa1","BWP","Betriebswirtschaftliche Prozesse","o0u60RYhpr0q_HH5WI5qui1udhY6mQpp9XfyTrBv428",{"id":62562,"title":301,"body":62563,"class":12223,"description":269,"extension":283,"meta":63033,"navigation":63034,"path":63036,"pdfDownload":63037,"scope":1288,"scopeName":1289,"seo":63038,"stem":63039,"subject":62558,"subjectName":62559,"type":295,"typeName":296,"year":12233,"__hash__":63040},"faecher\u002Ffaecher\u002Fbwp\u002F7-8-zsmf-sa2.md",{"type":8,"value":62564,"toc":63023},[62565,62567,62569,62625,62627,62655,62657,62671,62673,62725,62729,62826,62830,62853,62857,62865,62869,62899,62903,62927,62931,62945,62949,62953,62981,62985],[11,62566,62342],{"id":62341},[16,62568,62346],{"id":62345},[21,62570,62571,62587,62611],{},[24,62572,62351,62573],{},[21,62574,62575,62581],{},[24,62576,62577,62580],{},[42,62578,62579],{},"Antrag:"," z.B. Bestellung, Angebot",[24,62582,62583,62586],{},[42,62584,62585],{},"Annahme:"," Lieferung, Bestellung",[24,62588,62589,62369,62591],{},[42,62590,62368],{},[21,62592,62593,62599,62605],{},[24,62594,62595],{},[318,62596,62597],{},[24,62598,62378],{},[24,62600,62601],{},[318,62602,62603],{"start":270},[24,62604,62385],{},[24,62606,62607],{},[318,62608,62609],{"start":1263},[24,62610,62392],{},[24,62612,62613,62398,62615],{},[42,62614,62397],{},[21,62616,62617,62619,62621,62623],{},[24,62618,62403],{},[24,62620,62406],{},[24,62622,62409],{},[24,62624,62412],{},[16,62626,62416],{"id":62415},[21,62628,62629,62643],{},[24,62630,62631,62634],{},[42,62632,62633],{},"Verkäufer",[21,62635,62636,62638,62641],{},[24,62637,62426],{},[24,62639,62640],{},"Geld annehmen",[24,62642,62432],{},[24,62644,62645,62648],{},[42,62646,62647],{},"Käufer",[21,62649,62650,62652],{},[24,62651,62440],{},[24,62653,62654],{},"Geld bezahlen",[16,62656,62447],{"id":62446},[21,62658,62659,62661,62663,62665],{},[24,62660,62452],{},[24,62662,62455],{},[24,62664,62458],{},[24,62666,62461,62667],{},[21,62668,62669],{},[24,62670,62466],{},[16,62672,62470],{"id":62469},[21,62674,62675,62685],{},[24,62676,62475,62677],{},[21,62678,62679,62681,62683],{},[24,62680,62480],{},[24,62682,62483],{},[24,62684,62486],{},[24,62686,62489,62687],{},[21,62688,62689,62691,62701,62703,62705,62715],{},[24,62690,62494],{},[24,62692,62497,62693],{},[21,62694,62695],{},[24,62696,62697,62700],{},[42,62698,62699],{},"Anpreisung",": Nicht an eine Person gerichteter Kaufhinweis",[24,62702,62505],{},[24,62704,62508],{},[24,62706,62511,62707],{},[21,62708,62709,62711,62713],{},[24,62710,62516],{},[24,62712,62519],{},[24,62714,62522],{},[24,62716,62525,62717],{},[21,62718,62719,62721,62723],{},[24,62720,62530],{},[24,62722,62533],{},[24,62724,62536],{},[16,62726,62728],{"id":62727},"mangelhafte-lieferung-11","Mangelhafte Lieferung (11)",[21,62730,62731,62745,62748,62751,62774,62823],{},[24,62732,62733,62734],{},"Beim Gefahrenübergang muss die Ware den folgenden Anforderungen entsprechen:\n",[21,62735,62736,62739,62742],{},[24,62737,62738],{},"Subjektive Anforderungen (Beschaffenheit, Eignung usw.)",[24,62740,62741],{},"Objektive Anforderung (Verwendbarkeit, Beschaffenheit)",[24,62743,62744],{},"Montageanforderungen (Durchführung, Anleitung)",[24,62746,62747],{},"Gefahrenübergang: Punkt, an dem das Risiko des Transports an den Kunden übergeht",[24,62749,62750],{},"Kostenübergang: Punkt, bis zu dem der Lieferant die Transportkosten übernimmt",[24,62752,62753,62754],{},"Mangelarten\n",[21,62755,62756,62759,62762,62765,62768,62771],{},[24,62757,62758],{},"Montagemangel: Hersteller setzt Schraube falsch \u002F Anleitung führt zu falscher Montage (IKEA-Klausel)",[24,62760,62761],{},"Falschlieferung: Anderes Objekt erhalten als bestellt",[24,62763,62764],{},"Zuweniglieferung: Weniger erhalten als bestellt",[24,62766,62767],{},"Ware ungleich Werbung: Zugesicherte Leistung wird nicht erreicht",[24,62769,62770],{},"Mangel in Beschaffenheit: Kratzer auf Neuware",[24,62772,62773],{},"Mangel in Verwendbarkeit: Falscher Toner für Drucker",[24,62775,62776,62777],{},"Bei Sachmangel:\n",[21,62778,62779,62801,62820],{},[24,62780,62781,62782],{},"Vorrangiges Recht: Nacherfüllung\n",[21,62783,62784,62787,62790],{},[24,62785,62786],{},"Verkäufer hat 2x die Möglichkeit für eine Nacherfüllung",[24,62788,62789],{},"Verkäufer kann auch verzichten",[24,62791,62792,62793],{},"Möglichkeiten:\n",[21,62794,62795,62798],{},[24,62796,62797],{},"Nachbesserung",[24,62799,62800],{},"Neulieferung",[24,62802,62803,62804],{},"Nachrangige Rechte: Treten in Kraft, wenn die Nacherfüllung fehlschlägt:\n",[21,62805,62806,62809,62812],{},[24,62807,62808],{},"Rückabwicklung des Kaufvertrags",[24,62810,62811],{},"Minderung (hängt von Akzeptanz des Käufers ab)",[24,62813,62814,62815],{},"Schadensersatz: Konkreter Schaden muss entstanden sein\n",[21,62816,62817],{},[24,62818,62819],{},"Ersatz vergeblicher Aufwendungen (Handy kann nicht verwendet werden -> Lieferant muss auch die Kosten für die Handyhülle übernehmen)",[24,62821,62822],{},"Ausnahme: geringfügige Schäden -> kein nachrangiges Recht Rückabwicklung KV",[24,62824,62825],{},"Privatleute müssen nicht unverzüglich auf Mängel prüfen (2 Jahre Neue Ware, 1 Jahr Gebrauchte Ware) – Unternehmen schon (Offene Mängel sofort; Rest bei Bekanntwerden)",[11,62827,62829],{"id":62828},"handelswaren-kalkulation-12","Handelswaren Kalkulation (12)",[21,62831,62832,62835,62838,62841,62844,62847,62850],{},[24,62833,62834],{},"Zieleinkaufspreis (ZEP) = Listeneinkaufspreis (LEP) – Lieferrabatt (LR)",[24,62836,62837],{},"Bareinkaufspreis (BEP) = ZEP – Lieferskonto (LS)",[24,62839,62840],{},"Bezugspreis (BZP) = BEP + Bezugskosten (BK)",[24,62842,62843],{},"Selbstkostenpreis (SKP) = BZP + Handlungskosten (HK)",[24,62845,62846],{},"Barverkaufspreis (BVP) = SKP + Gewinn (G)",[24,62848,62849],{},"Zielverkaufspreis (ZVP) = BVP + Kundenskonto (KS)",[24,62851,62852],{},"Nettoverkaufspreis (NVP) = ZVP + Kundenrabatt (KR)",[11,62854,62856],{"id":62855},"einzel-gemeinkosten-13","Einzel- & Gemeinkosten (13)",[21,62858,62859,62862],{},[24,62860,62861],{},"Einzelkosten: Kosten, die dem Produkt direkt zurechenbar sind (Materialkosten, Fertigungslöhne)",[24,62863,62864],{},"Gemeinkosten: Kosten, die dem Produkt nicht direkt zurechenbar sind (Strom, Wasser, Verwaltung, Grundsteuer, IT-Support)",[11,62866,62868],{"id":62867},"berechnung-der-herstellkosten-des-umsatzes-hku-17","Berechnung der Herstellkosten des Umsatzes – HKU (17)",[21,62870,62871,62888],{},[24,62872,62873,62874],{},"Herstellkosten der Erzeugung (HKE): Summe aus folgenden Komponenten:\n",[21,62875,62876,62879,62882,62885],{},[24,62877,62878],{},"Fertigungsmaterial (FM)",[24,62880,62881],{},"Materialgemeinkosten (MGK)",[24,62883,62884],{},"Fertigungslöhne (FL)",[24,62886,62887],{},"Fertigungsgemeinkosten (FGK)",[24,62889,62890,62891],{},"Herstellkosten des Umsatzes (HKU) entspricht HKE nach Berücksichtigung der Bestandsveränderung:\n",[21,62892,62893,62896],{},[24,62894,62895],{},"Unfertige Erzeugnisse: Anfangsbestand (AB) – Schlussbestand (SB)",[24,62897,62898],{},"Fertige Erzeugnisse: Anfangsbestand (AB) – Schlussbestand (SB)",[16,62900,62902],{"id":62901},"bestandsveränderung-18","Bestandsveränderung (18)",[21,62904,62905,62916],{},[24,62906,62907,62908],{},"Mehrbestand: Jahresende mehr Ware im Lager als zu Beginn\n",[21,62909,62910,62913],{},[24,62911,62912],{},"Hat noch keinen Verkaufserlös erzielt",[24,62914,62915],{},"Differenz muss von den Herstellkosten der Erzeugung (HKE) abgezogen werden",[24,62917,62918,62919],{},"Minderbestand: Jahresende weniger Ware im Lager als zu Beginn\n",[21,62920,62921,62924],{},[24,62922,62923],{},"Ware aus dem Lager hat Verkaufserlös erzielt",[24,62925,62926],{},"Differenz muss zu den HKE addiert werden",[11,62928,62930],{"id":62929},"betriebsabrechnungsbogen-14-15","Betriebsabrechnungsbogen (14 &15)",[21,62932,62933,62936,62939,62942],{},[24,62934,62935],{},"Dient dazu die Gemeinkosten auf Funktionsbereiche aufzuteilen",[24,62937,62938],{},"Dreisatzrechnungen mittels Verteilungsschlüssel",[24,62940,62941],{},"Fertigungsmaterial, Fertigungslöhne & Bestandsveränderungen werden angegeben",[24,62943,62944],{},"Herstellkosten des Umsatzes: siehe Kapitel 17",[11,62946,62948],{"id":62947},"maschinenstundensatz","Maschinenstundensatz",[16,62950,62952],{"id":62951},"formeln-20","Formeln (20)",[21,62954,62955,62958,62961,62964,62967,62978],{},[24,62956,62957],{},"Kalkulatorische Abschreibungen = Wiederbeschaffungswert \u002F Nutzungsdauer",[24,62959,62960],{},"Kalkulatorische Zinsen = Halber Anschaffungswert * Zinssatz (%)",[24,62962,62963],{},"Instandhaltung\u002FWartung = Instandhaltungskosten \u002F Nutzungsdauer",[24,62965,62966],{},"Raumkosten (Miete) = Raumbedarf (m2) * Kosten pro m2",[24,62968,62969,62970],{},"Energiekosten = Grundgebühr + Verbrauch\n",[21,62971,62972,62975],{},[24,62973,62974],{},"Grundgebühr\u002FJahr = Grundgebühr pro Monat * 12",[24,62976,62977],{},"Verbrauch = Energieverbrauch (kWh) * Preis\u002FkWh * Laufzeitstunden",[24,62979,62980],{},"Kosten der Maschine: Summe aus allem",[16,62982,62984],{"id":62983},"selbstkosten-mit-maschinenstundensatz-22","Selbstkosten mit Maschinenstundensatz (22)",[21,62986,62987,62993,62996,62999,63002,63008,63011,63014,63017],{},[24,62988,62989,62992],{},[42,62990,62991],{},"Materialkosten"," (MK) = Fertigungsmaterial (FM) + FM * Materialkostenzuschlagssatz (MGK)",[24,62994,62995],{},"Fertigungslöhne (FL) = Lohn\u002FStunde * Fertigungsstunden",[24,62997,62998],{},"Restgemeinkostenzuschlag (RGK) = FL * Restgemeinkostenzuschlagssatz (RGK)",[24,63000,63001],{},"Maschinelle Fertigungskosten (FGK) = Maschinenlaufzeit * Maschinenstundensatz",[24,63003,63004,63007],{},[42,63005,63006],{},"Fertigungskosten"," (FK) = masch. FGK + FL + RGK",[24,63009,63010],{},"Herstellkosten (HK) = MK + FK",[24,63012,63013],{},"Verwaltungsgemeinkostenzuschlag (VwGK) = HK * Verwaltungsgemeinkostenzuschlagssatz",[24,63015,63016],{},"Vertriebsgemeinkostenzuschlags (VtGK) = HK * Vertriebsgemeinkostenzuschlagssatz",[24,63018,63019,63022],{},[42,63020,63021],{},"Selbstkosten"," = HK + VwGK + VtGK",{"title":269,"searchDepth":270,"depth":270,"links":63024},[63025,63026,63027,63028,63029,63030,63031,63032],{"id":62345,"depth":270,"text":62346},{"id":62415,"depth":270,"text":62416},{"id":62446,"depth":270,"text":62447},{"id":62469,"depth":270,"text":62470},{"id":62727,"depth":270,"text":62728},{"id":62901,"depth":270,"text":62902},{"id":62951,"depth":270,"text":62952},{"id":62983,"depth":270,"text":62984},{},{"title":63035},"Zusammenfassung – Schulaufgabe 2 (2025\u002F2026)","\u002Ffaecher\u002Fbwp\u002F7-8-zsmf-sa2","\u002Fdownloads\u002FBWP\u002FBWP_7-8_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fbwp\u002F7-8-zsmf-sa2","U7XOWKoaTmxS_dskzns8PpZ6m3urcS3w_QgB23txE88",{"id":63042,"title":12699,"body":63043,"class":35621,"description":269,"extension":283,"meta":63437,"navigation":63438,"path":63439,"pdfDownload":63440,"scope":35621,"scopeName":35627,"seo":63441,"stem":63442,"subject":62558,"subjectName":62559,"type":12231,"typeName":12232,"year":35627,"__hash__":63443},"faecher\u002Ffaecher\u002Fbwp\u002Fap-cs.md",{"type":8,"value":63044,"toc":63435},[63045,63049,63108,63112,63193,63195,63236,63240,63283,63287,63315,63319,63345,63349,63375,63379,63397],[11,63046,63048],{"id":63047},"kostenträgerstückrechnung","Kostenträgerstückrechnung",[765,63050,63051,63057],{},[768,63052,63053],{},[771,63054,63055],{},[774,63056,62878],{},[787,63058,63059,63064,63069,63073,63078,63083,63088,63093,63098,63103],{},[771,63060,63061],{},[792,63062,63063],{},"+ Materialgemeinkosten (MGK)",[771,63065,63066],{},[792,63067,63068],{},"= Materialkosten (MK)",[771,63070,63071],{},[792,63072,62884],{},[771,63074,63075],{},[792,63076,63077],{},"+ Restgemeinkosten (RGK)",[771,63079,63080],{},[792,63081,63082],{},"+ Fertigungsgemeinkosten (FGK)",[771,63084,63085],{},[792,63086,63087],{},"= Fertigungskosten (FK)",[771,63089,63090],{},[792,63091,63092],{},"Herstellkosten (HK = FK + MK)",[771,63094,63095],{},[792,63096,63097],{},"+ Verwaltungsgemeinkosten (HK * x%)",[771,63099,63100],{},[792,63101,63102],{},"+ Vertriebsgemeinkosten (HK * x%)",[771,63104,63105],{},[792,63106,63107],{},"= Selbstkosten",[11,63109,63111],{"id":63110},"nettoverkaufspreis","Nettoverkaufspreis",[765,63113,63114,63121],{},[768,63115,63116],{},[771,63117,63118],{},[774,63119,63120],{},"Listeneinkaufspreis",[787,63122,63123,63128,63133,63138,63143,63148,63153,63158,63163,63168,63173,63178,63183,63188],{},[771,63124,63125],{},[792,63126,63127],{},"- Lieferrabatt",[771,63129,63130],{},[792,63131,63132],{},"= Zieleinkaufspreis",[771,63134,63135],{},[792,63136,63137],{},"- Lieferskonto",[771,63139,63140],{},[792,63141,63142],{},"= Bareinkaufspreis",[771,63144,63145],{},[792,63146,63147],{},"+ Bezugskosten",[771,63149,63150],{},[792,63151,63152],{},"= Bezugspreis",[771,63154,63155],{},[792,63156,63157],{},"+ Handlungskosten",[771,63159,63160],{},[792,63161,63162],{},"= Selbstkostenpreis",[771,63164,63165],{},[792,63166,63167],{},"+ Gewinn",[771,63169,63170],{},[792,63171,63172],{},"= Barverkaufspreis",[771,63174,63175],{},[792,63176,63177],{},"+ Kundenskonto",[771,63179,63180],{},[792,63181,63182],{},"= Zielverkaufspreis",[771,63184,63185],{},[792,63186,63187],{},"+ Kundenrabatt",[771,63189,63190],{},[792,63191,63192],{},"= Nettoverkaufspreis",[11,63194,62948],{"id":62947},[765,63196,63197,63204],{},[768,63198,63199],{},[771,63200,63201],{},[774,63202,63203],{},"kalk. Abschreibungen ( = Wiederbeschaffung \u002F Jahre)",[787,63205,63206,63211,63216,63221,63226,63231],{},[771,63207,63208],{},[792,63209,63210],{},"+ kalk. Zinsen ( = ½ Anschaffung * Zinssatz)",[771,63212,63213],{},[792,63214,63215],{},"+ Wartung \u002F Instandhaltung pro Jahr",[771,63217,63218],{},[792,63219,63220],{},"+ Raumkosten (Miete) pro Jahr",[771,63222,63223],{},[792,63224,63225],{},"+ Energiekosten pro Jahr",[771,63227,63228],{},[792,63229,63230],{},"= Kosten der Maschine",[771,63232,63233],{},[792,63234,63235],{},"= Maschinenstundensatz ( Kosten der Maschine \u002F Stunden pro Jahr)",[11,63237,63239],{"id":63238},"herstellkosten-des-umsatzes","Herstellkosten des Umsatzes",[765,63241,63242,63248],{},[768,63243,63244],{},[771,63245,63246],{},[774,63247,62878],{},[787,63249,63250,63254,63259,63263,63268,63273,63278],{},[771,63251,63252],{},[792,63253,63063],{},[771,63255,63256],{},[792,63257,63258],{},"+ Fertigungslöhne (FL)",[771,63260,63261],{},[792,63262,63082],{},[771,63264,63265],{},[792,63266,63267],{},"= Herstellkosten der Erzeugung (HKE)",[771,63269,63270],{},[792,63271,63272],{},"- Mehrbestand",[771,63274,63275],{},[792,63276,63277],{},"+ Minderbestand",[771,63279,63280],{},[792,63281,63282],{},"= Herstellkosten des Umsatzes (HKU)",[11,63284,63286],{"id":63285},"vollkostenrechnung","Vollkostenrechnung",[765,63288,63289,63302],{},[768,63290,63291],{},[771,63292,63293,63296,63299],{},[774,63294,63295],{},"Nettoverkaufserlös",[774,63297,63298],{},"- Selbstkosten",[774,63300,63301],{},"= Stückerfolg",[787,63303,63304],{},[771,63305,63306,63309,63312],{},[792,63307,63308],{},"nve",[792,63310,63311],{},"- sk",[792,63313,63314],{},"= se",[11,63316,63318],{"id":63317},"deckungsbeitrag","Deckungsbeitrag",[765,63320,63321,63333],{},[768,63322,63323],{},[771,63324,63325,63327,63330],{},[774,63326,63295],{},[774,63328,63329],{},"- variable Fixkosten",[774,63331,63332],{},"= Deckungsbeitrag",[787,63334,63335],{},[771,63336,63337,63339,63342],{},[792,63338,63308],{},[792,63340,63341],{},"- kvar",[792,63343,63344],{},"= db",[11,63346,63348],{"id":63347},"betriebsergebnis","Betriebsergebnis",[765,63350,63351,63363],{},[768,63352,63353],{},[771,63354,63355,63357,63360],{},[774,63356,63318],{},[774,63358,63359],{},"- Fixkosten",[774,63361,63362],{},"= Betriebsergebnis",[787,63364,63365],{},[771,63366,63367,63369,63372],{},[792,63368,54298],{},[792,63370,63371],{},"- kfix",[792,63373,63374],{},"= be",[11,63376,63378],{"id":63377},"materialstammdaten","Materialstammdaten",[765,63380,63381],{},[768,63382,63383],{},[771,63384,63385,63388,63391,63394],{},[774,63386,63387],{},"Meldebestand =",[774,63389,63390],{},"Täglicher Absatz",[774,63392,63393],{},"* Lieferzeit",[774,63395,63396],{},"+ Sicherheitsbestand",[765,63398,63399,63409],{},[768,63400,63401],{},[771,63402,63403,63406],{},[774,63404,63405],{},"Durchs. Lagerbestand =",[774,63407,63408],{},"(Anfangsbestand + Endbestand) \u002F 2",[787,63410,63411,63419,63427],{},[771,63412,63413,63416],{},[792,63414,63415],{},"Lagerumschlagshäufigkeit =",[792,63417,63418],{},"Jahresverbrauch \u002F durchs. Lagerbestand",[771,63420,63421,63424],{},[792,63422,63423],{},"Lagerzinssatz =",[792,63425,63426],{},"(Marktzinssatz * durchs. Lagerdauer) \u002F 360 Tage",[771,63428,63429,63432],{},[792,63430,63431],{},"Lagerzinsen =",[792,63433,63434],{},"(durchs. Lagerbestand € * Lagerzinssatz) \u002F 360 Tage",{"title":269,"searchDepth":270,"depth":270,"links":63436},[],{},{"title":12699},"\u002Ffaecher\u002Fbwp\u002Fap-cs","\u002Fdownloads\u002FBWP\u002FBWP_CS_AP.pdf",{"title":12699,"description":269},"faecher\u002Fbwp\u002Fap-cs","xVxI1Ok48i_qEIaCwjvr46nu3uERN0OuR5KiOkfyrVQ",{"id":63445,"title":35633,"body":63446,"class":35621,"description":269,"extension":283,"meta":64435,"navigation":64436,"path":64437,"pdfDownload":64438,"scope":35621,"scopeName":35627,"seo":64439,"stem":64440,"subject":62558,"subjectName":62559,"type":295,"typeName":296,"year":35627,"__hash__":64441},"faecher\u002Ffaecher\u002Fbwp\u002Fap-zsmf.md",{"type":8,"value":63447,"toc":64410},[63448,63450,63455,63457,63509,63511,63555,63565,63567,63569,63621,63623,63643,63645,63659,63661,63665,63684,63688,63738,63766,63772,63776,63778,63811,63815,63848,63852,63918,63922,63968,63972,63988,63992,64010,64014,64026,64030,64051,64054,64151,64155,64159,64176,64179,64183,64191,64195,64233,64237,64240,64300,64304,64341,64345,64355,64359,64364,64368,64397,64401,64404,64407],[11,63449,61790],{"id":61789},[414,63451,63452],{},[1504,63453],{"alt":269,"src":63454},"\u002Fdownloads\u002FBWP\u002Fimages\u002Fap-zsmf_img_1.png",[11,63456,61799],{"id":61798},[765,63458,63459,63471],{},[768,63460,63461],{},[771,63462,63463,63467],{},[774,63464,63465],{},[42,63466,61810],{},[774,63468,63469],{},[42,63470,5800],{},[787,63472,63473,63479,63485,63491,63497,63503],{},[771,63474,63475,63477],{},[792,63476,61821],{},[792,63478,61824],{},[771,63480,63481,63483],{},[792,63482,61829],{},[792,63484,61832],{},[771,63486,63487,63489],{},[792,63488,61837],{},[792,63490,61840],{},[771,63492,63493,63495],{},[792,63494,61845],{},[792,63496,61848],{},[771,63498,63499,63501],{},[792,63500,61853],{},[792,63502,61856],{},[771,63504,63505,63507],{},[792,63506,61861],{},[792,63508,61864],{},[11,63510,61868],{"id":61867},[765,63512,63513,63529],{},[768,63514,63515],{},[771,63516,63517,63521,63525],{},[774,63518,63519],{},[42,63520,12446],{},[774,63522,63523],{},[42,63524,15635],{},[774,63526,63527],{},[42,63528,5800],{},[787,63530,63531,63539,63547],{},[771,63532,63533,63535,63537],{},[792,63534,61893],{},[792,63536,61896],{},[792,63538,61899],{},[771,63540,63541,63543,63545],{},[792,63542,61904],{},[792,63544,61907],{},[792,63546,61910],{},[771,63548,63549,63551,63553],{},[792,63550,61915],{},[792,63552,61918],{},[792,63554,61921],{},[21,63556,63557,63561],{},[24,63558,63559,61929],{},[42,63560,61928],{},[24,63562,63563,61935],{},[42,63564,61934],{},[11,63566,62342],{"id":62341},[16,63568,62346],{"id":62345},[21,63570,63571,63583,63607],{},[24,63572,62351,63573],{},[21,63574,63575,63579],{},[24,63576,63577],{},[42,63578,62358],{},[24,63580,63581],{},[42,63582,62363],{},[24,63584,63585,62369,63587],{},[42,63586,62368],{},[21,63588,63589,63595,63601],{},[24,63590,63591],{},[318,63592,63593],{},[24,63594,62378],{},[24,63596,63597],{},[318,63598,63599],{"start":270},[24,63600,62385],{},[24,63602,63603],{},[318,63604,63605],{"start":1263},[24,63606,62392],{},[24,63608,63609,62398,63611],{},[42,63610,62397],{},[21,63612,63613,63615,63617,63619],{},[24,63614,62403],{},[24,63616,62406],{},[24,63618,62409],{},[24,63620,62412],{},[16,63622,62416],{"id":62415},[21,63624,63625,63635],{},[24,63626,62421,63627],{},[21,63628,63629,63631,63633],{},[24,63630,62426],{},[24,63632,62429],{},[24,63634,62432],{},[24,63636,62435,63637],{},[21,63638,63639,63641],{},[24,63640,62440],{},[24,63642,62443],{},[16,63644,62447],{"id":62446},[21,63646,63647,63649,63651,63653],{},[24,63648,62452],{},[24,63650,62455],{},[24,63652,62458],{},[24,63654,62461,63655],{},[21,63656,63657],{},[24,63658,62466],{},[16,63660,62470],{"id":62469},[470,63662,63664],{"id":63663},"die-anfrage","Die Anfrage",[21,63666,63667,63670,63676,63678,63681],{},[24,63668,63669],{},"Fragen kostet nichts!",[24,63671,63672,63673],{},"Wirkung: ",[42,63674,63675],{},"rechtsunverbindlich",[24,63677,62486],{},[24,63679,63680],{},"Schriftlich, Telefonisch, Mündlich usw.",[24,63682,63683],{},"Eine Anfrage kann nicht kostenpflichtig sein. Sollten Fragen zu Kosten führen, z.B. Ausmessungen von Handwerkern, müssen diese vorher klar kommuniziert sein (Dienstleistungsvertrag)",[470,63685,63687],{"id":63686},"das-angebot","Das Angebot",[21,63689,63690,63695,63709,63723],{},[24,63691,63672,63692],{},[42,63693,63694],{},"Rechtlich bindend",[24,63696,63697,63698],{},"Wichtig:\n",[21,63699,63700,63703,63706],{},[24,63701,63702],{},"Muss an eine Person oder Unternehmen gerichtet sein",[24,63704,63705],{},"Darf keine Freizeichnungsklausel haben",[24,63707,63708],{},"Muss nach Datum noch gültig",[24,63710,63711,63712],{},"Erlischt\n",[21,63713,63714,63717,63720],{},[24,63715,63716],{},"Wenn es ausdrücklich oder still abgelehnt wird",[24,63718,63719],{},"Wenn es abgeändert wird",[24,63721,63722],{},"Wenn nicht rechtzeitig angenommen",[24,63724,62525,63725],{},[21,63726,63727,63730,63733,63735],{},[24,63728,63729],{},"Wenn nicht anders vereinbart",[24,63731,63732],{},"Mündlich\u002FTelefonisch: bis ende des Gesprächs",[24,63734,62533],{},[24,63736,63737],{},"Mail\u002FFax: 24 h",[765,63739,63740,63750],{},[768,63741,63742],{},[771,63743,63744,63747],{},[774,63745,63746],{},"Gesetzliche Bezeichnung",[774,63748,63749],{},"Kaufmännische Bezeichnung",[787,63751,63752,63759],{},[771,63753,63754,63756],{},[792,63755,62358],{},[792,63757,63758],{},"Bestellung \u002F Angebot (dann aber bestellung ist annahme)",[771,63760,63761,63763],{},[792,63762,62363],{},[792,63764,63765],{},"Lieferung \u002F Auftragsbestätigung",[414,63767,63768,63769],{},"Wichtig: wenn Angebote nicht direkt an eine Person gerichtet sind, sind das keine rechtlich bindenden Angebote, sondern ",[42,63770,63771],{},"Anpreisungen",[11,63773,63775],{"id":63774},"sachmangel-11","Sachmangel (11)",[16,63777,62728],{"id":62727},[21,63779,63780,63790,63792,63794],{},[24,63781,62733,63782],{},[21,63783,63784,63786,63788],{},[24,63785,62738],{},[24,63787,62741],{},[24,63789,62744],{},[24,63791,62747],{},[24,63793,62750],{},[24,63795,63796,63797],{},"Mangelarten:\n",[21,63798,63799,63801,63803,63805,63807,63809],{},[24,63800,62758],{},[24,63802,62761],{},[24,63804,62764],{},[24,63806,62767],{},[24,63808,62770],{},[24,63810,62773],{},[16,63812,63814],{"id":63813},"nacherfüllung-11","Nacherfüllung (11)",[21,63816,63817,63826],{},[24,63818,63819,63820],{},"Vorrangiges Recht (Darf bis zu zwei Mal probiert werden)\n",[21,63821,63822,63824],{},[24,63823,62797],{},[24,63825,62800],{},[24,63827,63828,63829],{},"Nachrangiges Recht (tritt erst nach vergeblichem Vorrangigen Recht ein)\n",[21,63830,63831,63834,63837],{},[24,63832,63833],{},"Rückgängigmachung des Kaufvertrags",[24,63835,63836],{},"Minderung",[24,63838,63839,63840],{},"Schadensersatz\n",[21,63841,63842,63845],{},[24,63843,63844],{},"Nur wenn ein konkreter Schaden aufgetreten ist",[24,63846,63847],{},"Ersatz vergeblicher Aufwendungen",[16,63849,63851],{"id":63850},"fristen-11","Fristen (11)",[765,63853,63854,63872],{},[768,63855,63856],{},[771,63857,63858,63863,63865,63870],{},[774,63859,63860],{},[42,63861,63862],{},"Einseitiger Handelskauf",[774,63864],{},[774,63866,63867],{},[42,63868,63869],{},"Zweiseitiger Handelskauf",[774,63871],{},[787,63873,63874,63886,63900],{},[771,63875,63876,63879,63881,63884],{},[792,63877,63878],{},"Privatleute sind nicht verpflichtet, die gelieferte Ware unverzüglich auf Mängel zu prüfen.",[792,63880],{},[792,63882,63883],{},"Kaufleute müssen die Ware unverzüglich (ohne schuldhaftes Verzögern) prüfen",[792,63885],{},[771,63887,63888,63891,63894,63897],{},[792,63889,63890],{},"Ungebrauchte Sachen",[792,63892,63893],{},"Gebrauchte Sachen",[792,63895,63896],{},"Offene Mängel",[792,63898,63899],{},"Versteckte Mängel",[771,63901,63902,63909,63912,63915],{},[792,63903,63904,63905,63908],{},"2 Jahre Gewährleistungsfrist  ",[42,63906,63907],{},"ALLERDINGS","  Nach 12 Monaten „Umkehr der Beweispflicht“  d.h. nach 12 Mo muss Kd. beweisen, dass Mangel von Anfang an bestanden hat",[792,63910,63911],{},"Grundsätzlich 2 Jahre Gewährleistungsfrist  Händler können einseitig auf 1 Jahr verkürzen  Privatpersonen können die Gewährleistung ausschließen",[792,63913,63914],{},"(= sofort sichtbare Mängel)  müssen sofort angezeigt werden",[792,63916,63917],{},"(= Mängel, die nicht sofort sichtbar sind)  Müssen sofort nach Bekanntwerden angezeigt werden (Frist 2 Jahre)",[11,63919,63921],{"id":63920},"baukästen-21","Baukästen (21)",[21,63923,63924,63927,63935,63957],{},[24,63925,63926],{},"Beschreibt eine „Liste“ wie bestimmte Produkte sich in der Produktion zusammensetzen",[24,63928,63929,63930],{},"Ebene\u002FBaustufe 0\n",[21,63931,63932],{},[24,63933,63934],{},"Ist immer das Finale Produkt z.B. Profi Touringbike (rot)",[24,63936,63937,63938],{},"Ebene\u002FBaustufe 1\n",[21,63939,63940,63943],{},[24,63941,63942],{},"Beschreibt aus welchen Teilen die Ebene 0 gebaut wird",[24,63944,63945,63946],{},"Zum Beispiel\n",[21,63947,63948,63951,63954],{},[24,63949,63950],{},"Fahrradlenker",[24,63952,63953],{},"Pedale",[24,63955,63956],{},"Fahrradrahmen",[24,63958,63959,63960],{},"Ebene\u002FBaustufe n\n",[21,63961,63962,63965],{},[24,63963,63964],{},"Beschreibe wie Ebene n-1 gebaut wird",[24,63966,63967],{},"Es darf beliebig viele Ebenen geben",[16,63969,63971],{"id":63970},"baukastenstücklist","Baukastenstücklist",[21,63973,63974,63977,63980],{},[24,63975,63976],{},"einfachste Form der Stückliste",[24,63978,63979],{},"Sie listet alle benötigten Komponenten für ein Endprodukt auf, ohne dabei auf die hierarchische Struktur oder die Montagefolge zu achten",[24,63981,63982,63983],{},"Wird im Einkauf oder in der Lagerlogistik genutzt\n",[21,63984,63985],{},[24,63986,63987],{},"„Wie viel Material brauche ich insgesamt für 100 fertige Geräte?“",[16,63989,63991],{"id":63990},"strukturstückliste","Strukturstückliste",[21,63993,63994,63997,64000],{},[24,63995,63996],{},"diese Liste zeigt den kompletten technischen Aufbau eines Produkts über alle Ebenen hinweg (Baugruppen, Unterbaugruppen und Einzelteile)",[24,63998,63999],{},"Eine hierarchische Darstellung, die zeigt, welche Teile in welcher Baugruppe verbaut sind (meist durch Einrückungen dargestellt)",[24,64001,64002,64003,7445,64006,64009],{},"Wird in der ",[42,64004,64005],{},"Konstruktion",[42,64007,64008],{},"Fertigungssteuerung"," genutzt, um den exakten Montageablauf und die Abhängigkeiten der Bauteile zu verstehen",[16,64011,64013],{"id":64012},"mengenübersichtsstücklist","Mengenübersichtsstücklist",[21,64015,64016,64019],{},[24,64017,64018],{},"Eine \"Ein-Ebenen-Sicht\". Jede Baugruppe hat ihre eigene kleine Liste",[24,64020,64021,64022,64025],{},"Perfekt für die ",[42,64023,64024],{},"Fertigung an einzelnen Arbeitsstationen",". Ein Mitarbeiter sieht genau, was er für seinen spezifischen Montageschritt braucht, ohne vom \"großen Ganzen\" abgelenkt zu werden",[16,64027,64029],{"id":64028},"teilverwendungsnachweiß","Teilverwendungsnachweiß",[21,64031,64032,64035,64038,64045],{},[24,64033,64034],{},"Eine Liste aller Erzeugnisse oder Baugruppen, in denen ein bestimmtes Material enthalten ist",[24,64036,64037],{},"Dies ist quasi die Umkehrung der Stückliste. Hier schaut man nicht vom Produkt nach unten zum Teil, sondern vom Einzelteil nach oben zum Produkt.",[24,64039,64040,64041,64044],{},"Kritisch für das ",[42,64042,64043],{},"Qualitätsmanagement"," (z. B. bei Rückrufaktionen: \"In welchen Produkten haben wir die fehlerhafte Schraube verbaut?\")",[24,64046,64047,64050],{},[42,64048,64049],{},"Änderungsplanung"," (\"Wenn wir diesen Chip austauschen, welche Geräte sind davon betroffen?\")",[11,64052,61810],{"id":64053},"lager",[21,64055,64056,64064,64072,64088,64114,64131],{},[24,64057,64058,64059],{},"Höchstbestand\n",[21,64060,64061],{},[24,64062,64063],{},"Bestand, bis zu dem das Lager maximal gefüllt werden darf",[24,64065,64066,64067],{},"Meldebestand\n",[21,64068,64069],{},[24,64070,64071],{},"Bestand ab dem bestellt werden muss damit der Mindestbestand nicht angegriffen wird",[24,64073,64074,64075],{},"Sicherheitsbestand \u002F Mindestbestand\n",[21,64076,64077,64080],{},[24,64078,64079],{},"eiserner Bestand",[24,64081,64082,64083],{},"Bestand, der nur in Notfällen angegriffen werden darf\n",[21,64084,64085],{},[24,64086,64087],{},"Z.B. Lieferverzögerungen",[24,64089,64090,64091],{},"Fixe Lagerkosten\n",[21,64092,64093,64096,64099,64102,64105,64108,64111],{},[24,64094,64095],{},"Abschreibung",[24,64097,64098],{},"Personalkosten",[24,64100,64101],{},"Versicherungen",[24,64103,64104],{},"Miete \u002F Pacht",[24,64106,64107],{},"Grundsteuer",[24,64109,64110],{},"Instandhaltungskosten",[24,64112,64113],{},"IT-Kosten",[24,64115,64116,64117],{},"Variable Lagerkosten\n",[21,64118,64119,64122,64125,64128],{},[24,64120,64121],{},"Energiekosten",[24,64123,64124],{},"Innerbetrieblichte Transportkosten",[24,64126,64127],{},"Fremdlagerung",[24,64129,64130],{},"Nachtarbeit",[24,64132,64133,64134],{},"Lagerrisiken\n",[21,64135,64136,64139,64142,64145,64148],{},[24,64137,64138],{},"Verderb",[24,64140,64141],{},"Schwund",[24,64143,64144],{},"Diebstahl",[24,64146,64147],{},"Feuer- \u002F Wasserschäden",[24,64149,64150],{},"Technische Veralterung",[11,64152,64154],{"id":64153},"kalkulationen","Kalkulationen",[16,64156,64158],{"id":64157},"handelswaren-12","Handelswaren (12)",[21,64160,64161,64164,64166,64168,64170,64172,64174],{},[24,64162,64163],{},"Zieleinkaufspreis (ZEP) = Listeneinkaufspreis (LEP, immer netto) – Lieferrabatt (LR)",[24,64165,62837],{},[24,64167,62840],{},[24,64169,62843],{},[24,64171,62846],{},[24,64173,62849],{},[24,64175,62852],{},[414,64177,64178],{},"Bei Nettoverkaufspreis und Zielverkaufspreis muss von unten nach oben gerechnet werden",[16,64180,64182],{"id":64181},"deckungsbeitrag-des-betriebsergebnis-16","Deckungsbeitrag des Betriebsergebnis (16)",[21,64184,64185,64188],{},[24,64186,64187],{},"Deckungsbeitrag = Nettoverkaufserlöse – Variable Kosten",[24,64189,64190],{},"Betriebsergebnis = Deckungsbeitrag – Fixe Kosten",[16,64192,64194],{"id":64193},"herstellkosten-des-umsatzes-17-u-18","Herstellkosten des Umsatzes (17 u. 18)",[765,64196,64197,64203],{},[768,64198,64199],{},[771,64200,64201],{},[774,64202,62878],{},[787,64204,64205,64209,64213,64217,64221,64225,64229],{},[771,64206,64207],{},[792,64208,63063],{},[771,64210,64211],{},[792,64212,63258],{},[771,64214,64215],{},[792,64216,63082],{},[771,64218,64219],{},[792,64220,63267],{},[771,64222,64223],{},[792,64224,63272],{},[771,64226,64227],{},[792,64228,63277],{},[771,64230,64231],{},[792,64232,63282],{},[16,64234,64236],{"id":64235},"kostenträgerstückrechnung-19","Kostenträgerstückrechnung (19)",[414,64238,64239],{},"Kalkulation der eigenen Erzeugnisse",[765,64241,64242,64248],{},[768,64243,64244],{},[771,64245,64246],{},[774,64247,62878],{},[787,64249,64250,64254,64258,64262,64266,64270,64275,64279,64283,64287,64291,64296],{},[771,64251,64252],{},[792,64253,63063],{},[771,64255,64256],{},[792,64257,63068],{},[771,64259,64260],{},[792,64261,62884],{},[771,64263,64264],{},[792,64265,63077],{},[771,64267,64268],{},[792,64269,63082],{},[771,64271,64272],{},[792,64273,64274],{},"+ Sondereinzelkosten d. Fertigung (SEK)",[771,64276,64277],{},[792,64278,63087],{},[771,64280,64281],{},[792,64282,63092],{},[771,64284,64285],{},[792,64286,63097],{},[771,64288,64289],{},[792,64290,63102],{},[771,64292,64293],{},[792,64294,64295],{},"+ Sondereinzelkosten des Vertriebs (SEK)",[771,64297,64298],{},[792,64299,63107],{},[16,64301,64303],{"id":64302},"maschinenstundensatz-20","Maschinenstundensatz (20)",[765,64305,64306,64312],{},[768,64307,64308],{},[771,64309,64310],{},[774,64311,63203],{},[787,64313,64314,64319,64324,64329,64333,64337],{},[771,64315,64316],{},[792,64317,64318],{},"+ kalk. Zinsen ( = ½ Anschaffung * Zinssatz (%))",[771,64320,64321],{},[792,64322,64323],{},"+ Wartung pro Jahr",[771,64325,64326],{},[792,64327,64328],{},"+ Raumkosten pro Jahr",[771,64330,64331],{},[792,64332,63225],{},[771,64334,64335],{},[792,64336,63230],{},[771,64338,64339],{},[792,64340,63235],{},[16,64342,64344],{"id":64343},"voll-und-teilkostenrechnung-24","Voll- und Teilkostenrechnung (24)",[21,64346,64347,64350,64352],{},[24,64348,64349],{},"Stückerfolg (Vollkosten) = Nettoverkaufserlös – Selbstkosten",[24,64351,64187],{},[24,64353,64354],{},"Stückgewinn (Teilkosten) = Deckungsbeitrag – Fixkosten",[16,64356,64358],{"id":64357},"break-even-point-26","Break Even Point (26)",[21,64360,64361],{},[24,64362,64363],{},"Gewinnschwelle = Fixkosten \u002F Deckungsbeitrag pro Stück",[16,64365,64367],{"id":64366},"lagerkennzahlen","Lagerkennzahlen",[21,64369,64370,64378,64386,64394],{},[24,64371,64372,64373],{},"Durchschnittlicher Lagerbestand = (Anfangsbestand + Endbestand) \u002F 2)\n",[21,64374,64375],{},[24,64376,64377],{},"Gibt an, wie viel Stück des Produktes sich durchschnittlich im Lager befinden.",[24,64379,64380,64381],{},"Lagerumschlaghäufigkeit = Jahresverbrauch \u002F Durchschnittlicher Lagerbestand\n",[21,64382,64383],{},[24,64384,64385],{},"Gibt an, wie häufig das Lager pro Jahr vollständig geräumt und neu bestückt wird.",[24,64387,64388,64389],{},"Durchschnittliche Lagerdauer = 360 Tage \u002F Umschlaghäufigkeit\n",[21,64390,64391],{},[24,64392,64393],{},"Anzahl der Tage, an welchen sich das Produkt durchschnittlich im Lager befindet.",[24,64395,64396],{},"Meldebestand = täglicher Absatz * Lieferzeit + Sicherheitsbestand",[16,64398,64400],{"id":64399},"auslastung","Auslastung",[414,64402,64403],{},"Kritische Stückzahl = Fixe Kosten pro Periode \u002F Deckungsbeitrag pro Stück",[414,64405,64406],{},"Kritischer Beschäftigungsgrad = Kritische Stückzahl \u002F maximale Betriebskapazität",[414,64408,64409],{},"Produktionsauslastung = Produziertes Stück pro Periode \u002F maximale Betriebskapazität",{"title":269,"searchDepth":270,"depth":270,"links":64411},[64412,64413,64414,64415,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434],{"id":62345,"depth":270,"text":62346},{"id":62415,"depth":270,"text":62416},{"id":62446,"depth":270,"text":62447},{"id":62469,"depth":270,"text":62470,"children":64416},[64417,64418],{"id":63663,"depth":1263,"text":63664},{"id":63686,"depth":1263,"text":63687},{"id":62727,"depth":270,"text":62728},{"id":63813,"depth":270,"text":63814},{"id":63850,"depth":270,"text":63851},{"id":63970,"depth":270,"text":63971},{"id":63990,"depth":270,"text":63991},{"id":64012,"depth":270,"text":64013},{"id":64028,"depth":270,"text":64029},{"id":64157,"depth":270,"text":64158},{"id":64181,"depth":270,"text":64182},{"id":64193,"depth":270,"text":64194},{"id":64235,"depth":270,"text":64236},{"id":64302,"depth":270,"text":64303},{"id":64343,"depth":270,"text":64344},{"id":64357,"depth":270,"text":64358},{"id":64366,"depth":270,"text":64367},{"id":64399,"depth":270,"text":64400},{},{"title":35633},"\u002Ffaecher\u002Fbwp\u002Fap-zsmf","\u002Fdownloads\u002FBWP\u002FBWP_ZSMF_AP.pdf",{"title":35633,"description":269},"faecher\u002Fbwp\u002Fap-zsmf","1npuguxUaG8zBbcwvqOy6MisbS_FYcn7SL_Opy76kVs",{"id":64443,"title":5774,"body":64444,"class":12223,"description":269,"extension":283,"meta":66892,"navigation":66893,"path":66894,"pdfDownload":66895,"scope":1288,"scopeName":1289,"seo":66896,"stem":66897,"subject":66898,"subjectName":66899,"type":12231,"typeName":12232,"year":12233,"__hash__":66900},"faecher\u002Ffaecher\u002Fdbk\u002F7-8-cs-sa2.md",{"type":8,"value":64445,"toc":66857},[64446,64450,64455,64459,64463,64474,64517,64521,64535,64565,64569,64583,64616,64620,64778,64782,64796,64800,64928,64932,64960,64964,64971,64976,64994,64999,65021,65026,65047,65051,65066,65070,65094,65097,65237,65241,65244,65247,65261,65265,65276,65279,65298,65300,65392,65396,65408,65412,65415,65418,65422,65431,65457,65461,65468,65471,65567,65572,65575,65578,65581,65619,65622,65642,65646,65665,65669,65702,65705,65708,65712,65742,65744,65747,65750,65764,65768,65788,65791,65897,65900,65920,65923,65931,65934,66066,66069,66083,66087,66091,66114,66117,66120,66123,66125,66127,66130,66133,66136,66171,66175,66435,66438,66441,66480,66489,66492,66495,66499,66641,66644,66654,66657,66660,66671,66680,66684,66687,66690,66693,66696,66699,66716,66720,66723,66725,66727,66729,66746,66750,66854],[11,64447,64449],{"id":64448},"variablen-in-mysql","Variablen in MySQL",[21,64451,64452],{},[24,64453,64454],{},"Variablen dienen zur temporären Speicherung von Werten innerhalb von SQL-Sitzungen, Stored Procedures oder Funktionen.",[16,64456,64458],{"id":64457},"typen","Typen",[470,64460,64462],{"id":64461},"lokale-variablen","Lokale Variablen",[21,64464,64465,64468,64471],{},[24,64466,64467],{},"Nur innerhalb eines BEGIN...END-Blocks gültig (z.B. in Stored Procedures \u002F Functions)",[24,64469,64470],{},"Müssen mit DECLARE deklariert werden",[24,64472,64473],{},"Existieren nur während der Ausführung der Routine",[4647,64475,64479],{"className":64476,"code":64477,"language":64478,"meta":269,"style":269},"language-sql shiki shiki-themes github-light github-dark","DECLARE variablen_name INT DEFAULT 0;\n\nSET variablen_name = 42;\n\n","sql",[4653,64480,64481,64499,64503],{"__ignoreMap":269},[4173,64482,64483,64486,64489,64492,64495,64497],{"class":4657,"line":4658},[4173,64484,64485],{"class":4788},"DECLARE",[4173,64487,64488],{"class":4784}," variablen_name ",[4173,64490,64491],{"class":4788},"INT",[4173,64493,64494],{"class":4788}," DEFAULT",[4173,64496,25370],{"class":4665},[4173,64498,55559],{"class":4784},[4173,64500,64501],{"class":4657,"line":270},[4173,64502,4761],{"emptyLinePlaceholder":4760},[4173,64504,64505,64508,64510,64512,64515],{"class":4657,"line":1263},[4173,64506,64507],{"class":4788},"SET",[4173,64509,64488],{"class":4784},[4173,64511,6387],{"class":4788},[4173,64513,64514],{"class":4665}," 42",[4173,64516,55559],{"class":4784},[470,64518,64520],{"id":64519},"session-variablen","Session Variablen",[21,64522,64523,64526,64529,64532],{},[24,64524,64525],{},"Gültig für die gesamte aktuelle Datenbankverbindung (Session)",[24,64527,64528],{},"Beginnen immer mit @",[24,64530,64531],{},"Keine Deklaration notwendig",[24,64533,64534],{},"Werden automatisch gelöscht, wenn die Session endet",[4647,64536,64538],{"className":64476,"code":64537,"language":64478,"meta":269,"style":269},"SET @meine_variable = 100;\n\nSELECT @meine_variable;\n\n",[4653,64539,64540,64553,64557],{"__ignoreMap":269},[4173,64541,64542,64544,64547,64549,64551],{"class":4657,"line":4658},[4173,64543,64507],{"class":4788},[4173,64545,64546],{"class":4784}," @meine_variable ",[4173,64548,6387],{"class":4788},[4173,64550,16520],{"class":4665},[4173,64552,55559],{"class":4784},[4173,64554,64555],{"class":4657,"line":270},[4173,64556,4761],{"emptyLinePlaceholder":4760},[4173,64558,64559,64562],{"class":4657,"line":1263},[4173,64560,64561],{"class":4788},"SELECT",[4173,64563,64564],{"class":4784}," @meine_variable;\n",[470,64566,64568],{"id":64567},"globale-system-variablen","Globale System-Variablen",[21,64570,64571,64574,64577,64580],{},[24,64572,64573],{},"Gelten für den gesamten MySQL-Server (alle Sessions)",[24,64575,64576],{},"Beginnen mit @@",[24,64578,64579],{},"Können nur mit ausreichenden Berechtigungen geändert werden",[24,64581,64582],{},"Änderungen gelten sofort, aber nicht dauerhaft (nach Neustart zurückgesetzt)",[4647,64584,64586],{"className":64476,"code":64585,"language":64478,"meta":269,"style":269},"SET GLOBAL event_scheduler = ON;\n\nSELECT @@autocommit;\n\n",[4653,64587,64588,64605,64609],{"__ignoreMap":269},[4173,64589,64590,64592,64595,64598,64600,64603],{"class":4657,"line":4658},[4173,64591,64507],{"class":4788},[4173,64593,64594],{"class":4788}," GLOBAL",[4173,64596,64597],{"class":4784}," event_scheduler ",[4173,64599,6387],{"class":4788},[4173,64601,64602],{"class":4788}," ON",[4173,64604,55559],{"class":4784},[4173,64606,64607],{"class":4657,"line":270},[4173,64608,4761],{"emptyLinePlaceholder":4760},[4173,64610,64611,64613],{"class":4657,"line":1263},[4173,64612,64561],{"class":4788},[4173,64614,64615],{"class":4784}," @@autocommit;\n",[470,64617,64619],{"id":64618},"verwendungsbeispiel","Verwendungsbeispiel",[4647,64621,64623],{"className":64476,"code":64622,"language":64478,"meta":269,"style":269},"DELIMITER \u002F\u002F\n\nCREATE PROCEDURE var_beispiel()\n\nBEGIN\n\n-- Lokale Variable\n\nDECLARE lokал INT DEFAULT 0;\n\nSET lokal = 10;\n\n-- Session-Variable setzen\n\nSET @session_var = lokal * 2;\n\nEND \u002F\u002F\n\nDELIMITER ;\n\nCALL var_beispiel();\n\nSELECT @session_var; -- Ergebnis: 20\n\n",[4653,64624,64625,64633,64637,64648,64652,64657,64661,64666,64670,64685,64689,64702,64706,64711,64715,64732,64736,64743,64747,64752,64756,64764,64768],{"__ignoreMap":269},[4173,64626,64627,64630],{"class":4657,"line":4658},[4173,64628,64629],{"class":4784},"DELIMITER ",[4173,64631,64632],{"class":4788},"\u002F\u002F\n",[4173,64634,64635],{"class":4657,"line":270},[4173,64636,4761],{"emptyLinePlaceholder":4760},[4173,64638,64639,64642,64645],{"class":4657,"line":1263},[4173,64640,64641],{"class":4788},"CREATE",[4173,64643,64644],{"class":4788}," PROCEDURE",[4173,64646,64647],{"class":4784}," var_beispiel()\n",[4173,64649,64650],{"class":4657,"line":4770},[4173,64651,4761],{"emptyLinePlaceholder":4760},[4173,64653,64654],{"class":4657,"line":4775},[4173,64655,64656],{"class":4788},"BEGIN\n",[4173,64658,64659],{"class":4657,"line":6320},[4173,64660,4761],{"emptyLinePlaceholder":4760},[4173,64662,64663],{"class":4657,"line":6325},[4173,64664,64665],{"class":4766},"-- Lokale Variable\n",[4173,64667,64668],{"class":4657,"line":6343},[4173,64669,4761],{"emptyLinePlaceholder":4760},[4173,64671,64672,64674,64677,64679,64681,64683],{"class":4657,"line":6348},[4173,64673,64485],{"class":4788},[4173,64675,64676],{"class":4784}," lokал ",[4173,64678,64491],{"class":4788},[4173,64680,64494],{"class":4788},[4173,64682,25370],{"class":4665},[4173,64684,55559],{"class":4784},[4173,64686,64687],{"class":4657,"line":6457},[4173,64688,4761],{"emptyLinePlaceholder":4760},[4173,64690,64691,64693,64696,64698,64700],{"class":4657,"line":6462},[4173,64692,64507],{"class":4788},[4173,64694,64695],{"class":4784}," lokal ",[4173,64697,6387],{"class":4788},[4173,64699,15571],{"class":4665},[4173,64701,55559],{"class":4784},[4173,64703,64704],{"class":4657,"line":6468},[4173,64705,4761],{"emptyLinePlaceholder":4760},[4173,64707,64708],{"class":4657,"line":6473},[4173,64709,64710],{"class":4766},"-- Session-Variable setzen\n",[4173,64712,64713],{"class":4657,"line":6479},[4173,64714,4761],{"emptyLinePlaceholder":4760},[4173,64716,64717,64719,64722,64724,64726,64728,64730],{"class":4657,"line":6503},[4173,64718,64507],{"class":4788},[4173,64720,64721],{"class":4784}," @session_var ",[4173,64723,6387],{"class":4788},[4173,64725,64695],{"class":4784},[4173,64727,6328],{"class":4788},[4173,64729,15327],{"class":4665},[4173,64731,55559],{"class":4784},[4173,64733,64734],{"class":4657,"line":6516},[4173,64735,4761],{"emptyLinePlaceholder":4760},[4173,64737,64738,64740],{"class":4657,"line":6971},[4173,64739,19275],{"class":4788},[4173,64741,64742],{"class":4788}," \u002F\u002F\n",[4173,64744,64745],{"class":4657,"line":10649},[4173,64746,4761],{"emptyLinePlaceholder":4760},[4173,64748,64749],{"class":4657,"line":10654},[4173,64750,64751],{"class":4784},"DELIMITER ;\n",[4173,64753,64754],{"class":4657,"line":10659},[4173,64755,4761],{"emptyLinePlaceholder":4760},[4173,64757,64758,64761],{"class":4657,"line":10664},[4173,64759,64760],{"class":4788},"CALL",[4173,64762,64763],{"class":4784}," var_beispiel();\n",[4173,64765,64766],{"class":4657,"line":10676},[4173,64767,4761],{"emptyLinePlaceholder":4760},[4173,64769,64770,64772,64775],{"class":4657,"line":10681},[4173,64771,64561],{"class":4788},[4173,64773,64774],{"class":4784}," @session_var; ",[4173,64776,64777],{"class":4766},"-- Ergebnis: 20\n",[11,64779,64781],{"id":64780},"stored-procedures","Stored Procedures",[21,64783,64784,64787,64790,64793],{},[24,64785,64786],{},"Gespeicherte Programme auf dem Server, die mehrere SQL-Befehle ausführen Gespeicherte Programme auf dem Server (Datenbank)",[24,64788,64789],{},"Führen mehrere SQL-Befehle als eine einzige Einheit aus",[24,64791,64792],{},"Können Parameter akzeptieren und Werte zurückgeben",[24,64794,64795],{},"Werden zur Kapselung von Geschäftslogik und zur Verbesserung der Leistung\u002FSicherheit verwendet",[16,64797,64799],{"id":64798},"erstellen","Erstellen",[4647,64801,64803],{"className":64476,"code":64802,"language":64478,"meta":269,"style":269},"DELIMITER \u002F\u002F\n\nCREATE PROCEDURE proc_name(in param1 int, out param2 int)\n\nBEGIN\n\nSELECT Count(*)\n\nINTO param2\n\nFROM users\n\nWHERE age > param1;\n\nEND \u002F\u002F\n\ndelimiter ;\n\n",[4653,64804,64805,64811,64815,64844,64848,64852,64856,64869,64873,64881,64885,64892,64896,64909,64913,64919,64923],{"__ignoreMap":269},[4173,64806,64807,64809],{"class":4657,"line":4658},[4173,64808,64629],{"class":4784},[4173,64810,64632],{"class":4788},[4173,64812,64813],{"class":4657,"line":270},[4173,64814,4761],{"emptyLinePlaceholder":4760},[4173,64816,64817,64819,64821,64824,64826,64829,64832,64834,64837,64840,64842],{"class":4657,"line":1263},[4173,64818,64641],{"class":4788},[4173,64820,64644],{"class":4788},[4173,64822,64823],{"class":4784}," proc_name(",[4173,64825,6431],{"class":4788},[4173,64827,64828],{"class":4784}," param1 ",[4173,64830,64831],{"class":4788},"int",[4173,64833,8629],{"class":4784},[4173,64835,64836],{"class":4788},"out",[4173,64838,64839],{"class":4784}," param2 ",[4173,64841,64831],{"class":4788},[4173,64843,6402],{"class":4784},[4173,64845,64846],{"class":4657,"line":4770},[4173,64847,4761],{"emptyLinePlaceholder":4760},[4173,64849,64850],{"class":4657,"line":4775},[4173,64851,64656],{"class":4788},[4173,64853,64854],{"class":4657,"line":6320},[4173,64855,4761],{"emptyLinePlaceholder":4760},[4173,64857,64858,64860,64863,64865,64867],{"class":4657,"line":6325},[4173,64859,64561],{"class":4788},[4173,64861,64862],{"class":4665}," Count",[4173,64864,6390],{"class":4784},[4173,64866,6328],{"class":4788},[4173,64868,6402],{"class":4784},[4173,64870,64871],{"class":4657,"line":6343},[4173,64872,4761],{"emptyLinePlaceholder":4760},[4173,64874,64875,64878],{"class":4657,"line":6348},[4173,64876,64877],{"class":4788},"INTO",[4173,64879,64880],{"class":4784}," param2\n",[4173,64882,64883],{"class":4657,"line":6457},[4173,64884,4761],{"emptyLinePlaceholder":4760},[4173,64886,64887,64889],{"class":4657,"line":6462},[4173,64888,8440],{"class":4788},[4173,64890,64891],{"class":4784}," users\n",[4173,64893,64894],{"class":4657,"line":6468},[4173,64895,4761],{"emptyLinePlaceholder":4760},[4173,64897,64898,64901,64904,64906],{"class":4657,"line":6473},[4173,64899,64900],{"class":4788},"WHERE",[4173,64902,64903],{"class":4784}," age ",[4173,64905,4789],{"class":4788},[4173,64907,64908],{"class":4784}," param1;\n",[4173,64910,64911],{"class":4657,"line":6479},[4173,64912,4761],{"emptyLinePlaceholder":4760},[4173,64914,64915,64917],{"class":4657,"line":6503},[4173,64916,19275],{"class":4788},[4173,64918,64742],{"class":4788},[4173,64920,64921],{"class":4657,"line":6516},[4173,64922,4761],{"emptyLinePlaceholder":4760},[4173,64924,64925],{"class":4657,"line":6971},[4173,64926,64927],{"class":4784},"delimiter ;\n",[16,64929,64931],{"id":64930},"aufrufen","Aufrufen",[4647,64933,64935],{"className":64476,"code":64934,"language":64478,"meta":269,"style":269},"CALL proc_name(18, @result);\n\nSELECT @result;\n\n",[4653,64936,64937,64949,64953],{"__ignoreMap":269},[4173,64938,64939,64941,64943,64946],{"class":4657,"line":4658},[4173,64940,64760],{"class":4788},[4173,64942,64823],{"class":4784},[4173,64944,64945],{"class":4665},"18",[4173,64947,64948],{"class":4784},", @result);\n",[4173,64950,64951],{"class":4657,"line":270},[4173,64952,4761],{"emptyLinePlaceholder":4760},[4173,64954,64955,64957],{"class":4657,"line":1263},[4173,64956,64561],{"class":4788},[4173,64958,64959],{"class":4784}," @result;\n",[16,64961,64963],{"id":64962},"parameter","Parameter",[414,64965,64966,64967,64970],{},"Diese Modi legen die ",[42,64968,64969],{},"Richtung des Datenflusses"," fest.",[318,64972,64973],{},[24,64974,64975],{},"Input (IN)",[21,64977,64978,64985,64988],{},[24,64979,64980,64981,64984],{},"Datenfluss ",[42,64982,64983],{},"zur"," aufgerufenen Einheit (Lesen).",[24,64986,64987],{},"Übergabe eines Anfangswertes.",[24,64989,64990,64991,7834],{},"Der Wert in der aufrufenden Einheit bleibt ",[42,64992,64993],{},"unverändert",[318,64995,64996],{"start":270},[24,64997,64998],{},"Output (OUT)",[21,65000,65001,65011,65014],{},[24,65002,64980,65003,65006,65007,65010],{},[42,65004,65005],{},"von"," der aufgerufenen Einheit ",[42,65008,65009],{},"zurück"," an die aufrufende Einheit.",[24,65012,65013],{},"Rückgabe eines oder mehrerer Ergebnisse.",[24,65015,65016,65017,65020],{},"Der zugewiesene Wert ",[42,65018,65019],{},"ersetzt"," den ursprünglichen Wert beim Aufrufer.",[318,65022,65023],{"start":1263},[24,65024,65025],{},"Input\u002FOutput (INOUT)",[21,65027,65028,65035,65038],{},[24,65029,64980,65030,7445,65032,65034],{},[42,65031,64983],{},[42,65033,65005],{}," der aufgerufenen Einheit (Lesen und Schreiben).",[24,65036,65037],{},"Dient zur Modifikation eines existierenden Wertes.",[24,65039,65040,65041,65044,65045,65020],{},"Der ",[42,65042,65043],{},"modifizierte"," Wert ",[42,65046,65019],{},[16,65048,65050],{"id":65049},"löschen","Löschen",[4647,65052,65054],{"className":64476,"code":65053,"language":64478,"meta":269,"style":269},"DROP PROCEDURE proc_name;\n\n",[4653,65055,65056],{"__ignoreMap":269},[4173,65057,65058,65061,65063],{"class":4657,"line":4658},[4173,65059,65060],{"class":4788},"DROP",[4173,65062,64644],{"class":4788},[4173,65064,65065],{"class":4784}," proc_name;\n",[11,65067,65069],{"id":65068},"stored-functions","Stored Functions",[21,65071,65072,65089],{},[24,65073,65074,65077,65078,65081,65082,65085,65086,7834],{},[42,65075,65076],{},"Definition:"," Gespeicherte SQL-Routinen in der DB. Führen als Einheit aus und ",[42,65079,65080],{},"geben immer genau einen Wert zurück",". Benötigen ",[42,65083,65084],{},"RETURNS","-Typ. Optional ",[42,65087,65088],{},"DETERMINISTIC",[24,65090,65091,65093],{},[42,65092,7953],{}," Kapselung\u002FWiederverwendung von Logik\u002FBerechnungen. Vereinfachen komplexe SELECT-Abfragen. Sichern Datenkonsistenz\u002FIntegrität. Performance-Verbesserung (vorkompiliert).",[16,65095,64799],{"id":65096},"erstellen-1",[4647,65098,65100],{"className":64476,"code":65099,"language":64478,"meta":269,"style":269},"DELIMITER \u002F\u002F\n\nCREATE FUNCTION get_user_count(min_age INT)\n\nRETURNS INT\n\nDETERMINISTIC\n\nBEGIN\n\nDECLARE total INT;\n\nSELECT COUNT(*) INTO total FROM users WHERE age >= min_age;\n\nRETURN total;\n\nEND \u002F\u002F\n\nDELIMITER ;\n\n",[4653,65101,65102,65108,65112,65129,65133,65140,65144,65149,65153,65157,65161,65172,65176,65207,65211,65219,65223,65229,65233],{"__ignoreMap":269},[4173,65103,65104,65106],{"class":4657,"line":4658},[4173,65105,64629],{"class":4784},[4173,65107,64632],{"class":4788},[4173,65109,65110],{"class":4657,"line":270},[4173,65111,4761],{"emptyLinePlaceholder":4760},[4173,65113,65114,65116,65119,65122,65125,65127],{"class":4657,"line":1263},[4173,65115,64641],{"class":4788},[4173,65117,65118],{"class":4788}," FUNCTION",[4173,65120,65121],{"class":4661}," get_user_count",[4173,65123,65124],{"class":4784},"(min_age ",[4173,65126,64491],{"class":4788},[4173,65128,6402],{"class":4784},[4173,65130,65131],{"class":4657,"line":4770},[4173,65132,4761],{"emptyLinePlaceholder":4760},[4173,65134,65135,65137],{"class":4657,"line":4775},[4173,65136,65084],{"class":4788},[4173,65138,65139],{"class":4788}," INT\n",[4173,65141,65142],{"class":4657,"line":6320},[4173,65143,4761],{"emptyLinePlaceholder":4760},[4173,65145,65146],{"class":4657,"line":6325},[4173,65147,65148],{"class":4784},"DETERMINISTIC\n",[4173,65150,65151],{"class":4657,"line":6343},[4173,65152,4761],{"emptyLinePlaceholder":4760},[4173,65154,65155],{"class":4657,"line":6348},[4173,65156,64656],{"class":4788},[4173,65158,65159],{"class":4657,"line":6457},[4173,65160,4761],{"emptyLinePlaceholder":4760},[4173,65162,65163,65165,65168,65170],{"class":4657,"line":6462},[4173,65164,64485],{"class":4788},[4173,65166,65167],{"class":4784}," total ",[4173,65169,64491],{"class":4788},[4173,65171,55559],{"class":4784},[4173,65173,65174],{"class":4657,"line":6468},[4173,65175,4761],{"emptyLinePlaceholder":4760},[4173,65177,65178,65180,65183,65185,65187,65189,65191,65193,65195,65198,65200,65202,65204],{"class":4657,"line":6473},[4173,65179,64561],{"class":4788},[4173,65181,65182],{"class":4665}," COUNT",[4173,65184,6390],{"class":4784},[4173,65186,6328],{"class":4788},[4173,65188,6306],{"class":4784},[4173,65190,64877],{"class":4788},[4173,65192,65167],{"class":4784},[4173,65194,8440],{"class":4788},[4173,65196,65197],{"class":4784}," users ",[4173,65199,64900],{"class":4788},[4173,65201,64903],{"class":4784},[4173,65203,48379],{"class":4788},[4173,65205,65206],{"class":4784}," min_age;\n",[4173,65208,65209],{"class":4657,"line":6479},[4173,65210,4761],{"emptyLinePlaceholder":4760},[4173,65212,65213,65216],{"class":4657,"line":6503},[4173,65214,65215],{"class":4788},"RETURN",[4173,65217,65218],{"class":4784}," total;\n",[4173,65220,65221],{"class":4657,"line":6516},[4173,65222,4761],{"emptyLinePlaceholder":4760},[4173,65224,65225,65227],{"class":4657,"line":6971},[4173,65226,19275],{"class":4788},[4173,65228,64742],{"class":4788},[4173,65230,65231],{"class":4657,"line":10649},[4173,65232,4761],{"emptyLinePlaceholder":4760},[4173,65234,65235],{"class":4657,"line":10654},[4173,65236,64751],{"class":4784},[16,65238,65240],{"id":65239},"aufruf","Aufruf",[414,65242,65243],{},"SELECT get_user_count(18);",[16,65245,65050],{"id":65246},"löschen-1",[4647,65248,65250],{"className":64476,"code":65249,"language":64478,"meta":269,"style":269},"DROP FUNCTION get_user_count;\n\n",[4653,65251,65252],{"__ignoreMap":269},[4173,65253,65254,65256,65258],{"class":4657,"line":4658},[4173,65255,65060],{"class":4788},[4173,65257,65118],{"class":4788},[4173,65259,65260],{"class":4784}," get_user_count;\n",[11,65262,65264],{"id":65263},"transaktionen","Transaktionen",[414,65266,65267,65268,65271,65272,65275],{},"Eine ",[42,65269,65270],{},"Transaktion"," bündelt mehrere SQL-Befehle zu einer sicheren, logischen Einheit und erfüllt die ",[42,65273,65274],{},"ACID","-Prinzipien.",[414,65277,65278],{},"Sie wird immer dann verwendet, wenn:",[318,65280,65281,65287,65293],{},[24,65282,65283,65286],{},[42,65284,65285],{},"Mehrere Aktionen zusammengehören und nur als Ganzes gültig sind"," (z.B. die Überweisung von Geld, bei der sowohl das Abbuchen als auch das Gutschreiben erfolgreich sein muss).",[24,65288,65289,65292],{},[42,65290,65291],{},"Die Konsistenz der Datenbank zu jedem Zeitpunkt garantiert werden muss",", auch wenn mehrere Benutzer gleichzeitig Änderungen vornehmen.",[24,65294,65295],{},[42,65296,65297],{},"Änderungen bei Fehlern oder bewusstem Abbruch rückgängig gemacht werden müssen.",[16,65299,763],{"id":762},[4647,65301,65303],{"className":64476,"code":65302,"language":64478,"meta":269,"style":269},"START TRANSACTION;\n\nUPDATE accounts SET balance = balance - 100 WHERE id = 1;\n\nUPDATE accounts SET balance = balance + 100 WHERE id = 2;\n\nCOMMIT;\n\n",[4653,65304,65305,65312,65316,65349,65353,65381,65385],{"__ignoreMap":269},[4173,65306,65307,65310],{"class":4657,"line":4658},[4173,65308,65309],{"class":4788},"START TRANSACTION",[4173,65311,55559],{"class":4784},[4173,65313,65314],{"class":4657,"line":270},[4173,65315,4761],{"emptyLinePlaceholder":4760},[4173,65317,65318,65321,65324,65326,65329,65331,65333,65335,65337,65340,65343,65345,65347],{"class":4657,"line":1263},[4173,65319,65320],{"class":4788},"UPDATE",[4173,65322,65323],{"class":4784}," accounts ",[4173,65325,64507],{"class":4788},[4173,65327,65328],{"class":4784}," balance ",[4173,65330,6387],{"class":4788},[4173,65332,65328],{"class":4784},[4173,65334,4778],{"class":4788},[4173,65336,16520],{"class":4665},[4173,65338,65339],{"class":4788}," WHERE",[4173,65341,65342],{"class":4784}," id ",[4173,65344,6387],{"class":4788},[4173,65346,10264],{"class":4665},[4173,65348,55559],{"class":4784},[4173,65350,65351],{"class":4657,"line":4770},[4173,65352,4761],{"emptyLinePlaceholder":4760},[4173,65354,65355,65357,65359,65361,65363,65365,65367,65369,65371,65373,65375,65377,65379],{"class":4657,"line":4775},[4173,65356,65320],{"class":4788},[4173,65358,65323],{"class":4784},[4173,65360,64507],{"class":4788},[4173,65362,65328],{"class":4784},[4173,65364,6387],{"class":4788},[4173,65366,65328],{"class":4784},[4173,65368,14419],{"class":4788},[4173,65370,16520],{"class":4665},[4173,65372,65339],{"class":4788},[4173,65374,65342],{"class":4784},[4173,65376,6387],{"class":4788},[4173,65378,15327],{"class":4665},[4173,65380,55559],{"class":4784},[4173,65382,65383],{"class":4657,"line":6320},[4173,65384,4761],{"emptyLinePlaceholder":4760},[4173,65386,65387,65390],{"class":4657,"line":6325},[4173,65388,65389],{"class":4788},"COMMIT",[4173,65391,55559],{"class":4784},[16,65393,65395],{"id":65394},"rollback","Rollback",[4647,65397,65399],{"className":64476,"code":65398,"language":64478,"meta":269,"style":269},"ROLLBACK;\n\n",[4653,65400,65401],{"__ignoreMap":269},[4173,65402,65403,65406],{"class":4657,"line":4658},[4173,65404,65405],{"class":4788},"ROLLBACK",[4173,65407,55559],{"class":4784},[16,65409,65411],{"id":65410},"autocommit","Autocommit",[414,65413,65414],{},"SELECT @@autocommit;",[414,65416,65417],{},"SET autocommit = 0;",[16,65419,65421],{"id":65420},"multi-session","Multi-Session",[414,65423,65424,7445,65427,65430],{},[42,65425,65426],{},"Wenn mehrere Benutzer (Sessions) gleichzeitig versuchen, dieselben Daten zu ändern, können Probleme der Datenkonsistenz",[42,65428,65429],{},"Datenintegrität"," entstehen.",[21,65432,65433,65445],{},[24,65434,65435,65438,65439,8629,65442,8173],{},[42,65436,65437],{},"Problem:"," Ohne Mechanismen zur Steuerung des gleichzeitigen Zugriffs könnten sich Transaktionen gegenseitig beeinflussen und zu falschen Ergebnissen führen (z.B. ",[406,65440,65441],{},"Lost Update",[406,65443,65444],{},"Dirty Read",[24,65446,65447,65449,65450,7445,65453,65456],{},[42,65448,59305],{}," Datenbanken verwenden ",[42,65451,65452],{},"Locking",[42,65454,65455],{},"Isolation Levels"," (siehe unten), um konkurrierenden Zugriff zu regeln. Locks stellen sicher, dass eine Ressource (z.B. eine Zeile in einer Tabelle) während der Bearbeitung durch eine Transaktion für andere Transaktionen gesperrt ist.",[16,65458,65460],{"id":65459},"levels","Levels",[414,65462,65463,65464,65467],{},"Die ",[42,65465,65466],{},"Isolationsebene (Isolation Level)"," bestimmt, wie stark sich gleichzeitige Transaktionen gegenseitig beeinflussen dürfen. Sie ist ein Kompromiss zwischen Datenkonsistenz und Performance.",[414,65469,65470],{},"MySQL unterstützt (standardmäßig) vier Isolation Levels, die unterschiedliche Probleme verhindern:",[21,65472,65473,65499,65523,65545],{},[24,65474,65475,65478],{},[42,65476,65477],{},"READ UNCOMMITTED",[21,65479,65480,65485],{},[24,65481,65482,65484],{},[42,65483,12709],{}," Niedrigste Isolation. Eine Transaktion sieht unbestätigte (ungecommittete) Änderungen anderer Transaktionen.",[24,65486,65487,65490,65491,8629,65493,7445,65496,7834],{},[42,65488,65489],{},"Probleme:"," Erlaubt ",[406,65492,65444],{},[406,65494,65495],{},"Non-Repeatable Read",[406,65497,65498],{},"Phantom Read",[24,65500,65501,65504],{},[42,65502,65503],{},"READ COMMITTED",[21,65505,65506,65511],{},[24,65507,65508,65510],{},[42,65509,12709],{}," Eine Transaktion sieht nur Änderungen, die committed wurden.",[24,65512,65513,65515,65516,65518,65519,7445,65521,7834],{},[42,65514,65489],{}," Verhindert ",[406,65517,65444],{},", erlaubt aber ",[406,65520,65495],{},[406,65522,65498],{},[24,65524,65525,65528],{},[42,65526,65527],{},"REPEATABLE READ",[21,65529,65530,65535],{},[24,65531,65532,65534],{},[42,65533,12709],{}," MySQL-Standard. Eine Transaktion erhält bei wiederholtem Lesen dieselben Daten, solange die Transaktion läuft.",[24,65536,65537,65515,65539,7445,65541,65518,65543,7834],{},[42,65538,65489],{},[406,65540,65444],{},[406,65542,65495],{},[406,65544,65498],{},[24,65546,65547,65550],{},[42,65548,65549],{},"SERIALIZABLE",[21,65551,65552,65557],{},[24,65553,65554,65556],{},[42,65555,12709],{}," Höchste Isolation. Die Transaktionen werden seriell ausgeführt, um größtmögliche Konsistenz zu gewährleisten.",[24,65558,65559,65515,65561,8629,65563,7445,65565,7834],{},[42,65560,65489],{},[406,65562,65444],{},[406,65564,65495],{},[406,65566,65498],{},[414,65568,65569],{},[42,65570,65571],{},"Ändern des Isolation Levels:",[414,65573,65574],{},"Eine Transaktion: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;",[414,65576,65577],{},"Gesamte Session: SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;",[16,65579,65274],{"id":65580},"acid",[21,65582,65583,65597,65603,65609],{},[24,65584,65585,65588,65589,65592,65593,65596],{},[42,65586,65587],{},"Atomicity:"," Eine Transaktion ist eine unteilbare Einheit, die entweder komplett ausgeführt wird (",[406,65590,65591],{},"commit",") oder komplett rückgängig gemacht wird (",[406,65594,65595],{},"abort\u002Frollback","). Es gibt keinen \"halbfertigen\" Zustand.",[24,65598,65599,65602],{},[42,65600,65601],{},"Consistency:"," Eine Transaktion überführt die Datenbank von einem gültigen Zustand in einen anderen gültigen Zustand und hält dabei alle definierten Regeln und Integritätsbedingungen ein.",[24,65604,65605,65608],{},[42,65606,65607],{},"Isolation:"," Gleichzeitig ablaufende Transaktionen beeinflussen sich nicht gegenseitig. Jede Transaktion sieht es so, als wäre sie die einzige, die auf der Datenbank arbeitet.",[24,65610,65611,65614,65615,65618],{},[42,65612,65613],{},"Durability:"," Sobald eine Transaktion erfolgreich abgeschlossen (",[406,65616,65617],{},"committed",") wurde, sind ihre Änderungen dauerhaft gespeichert und überleben Systemausfälle wie Stromausfälle oder Abstürze.",[11,65620,65621],{"id":30766},"Events",[21,65623,65624,65630,65636],{},[24,65625,65626,65629],{},[42,65627,65628],{},"Reaktion auf Aktionen:"," Events ermöglichen es, dass verschiedene Teile einer Anwendung auf bestimmte Vorkommnisse (z.B. Mausklick, Datenänderung) reagieren, ohne direkt miteinander gekoppelt zu sein.",[24,65631,65632,65635],{},[42,65633,65634],{},"Entkopplung und Modularität:"," Sie fördern lose Kopplung, da der Auslöser eines Events (Publisher) nicht wissen muss, wer darauf reagiert (Subscriber). Das verbessert die Wartbarkeit und Erweiterbarkeit.",[24,65637,65638,65641],{},[42,65639,65640],{},"Asynchrone Kommunikation:"," Events können für die asynchrone Kommunikation verwendet werden, um zeitintensive Aufgaben in den Hintergrund zu verlagern und die Hauptanwendung nicht zu blockieren.",[16,65643,65645],{"id":65644},"aktivieren","Aktivieren",[4647,65647,65649],{"className":64476,"code":65648,"language":64478,"meta":269,"style":269},"SET GLOBAL event_scheduler = ON;\n\n",[4653,65650,65651],{"__ignoreMap":269},[4173,65652,65653,65655,65657,65659,65661,65663],{"class":4657,"line":4658},[4173,65654,64507],{"class":4788},[4173,65656,64594],{"class":4788},[4173,65658,64597],{"class":4784},[4173,65660,6387],{"class":4788},[4173,65662,64602],{"class":4788},[4173,65664,55559],{"class":4784},[16,65666,65668],{"id":65667},"einmaliges-event","Einmaliges Event",[4647,65670,65672],{"className":64476,"code":65671,"language":64478,"meta":269,"style":269},"CREATE EVENT one_time_event\n\nON SCHEDULE AT '2026-01-01 00:00:00'\n\n",[4653,65673,65674,65684,65688],{"__ignoreMap":269},[4173,65675,65676,65678,65681],{"class":4657,"line":4658},[4173,65677,64641],{"class":4788},[4173,65679,65680],{"class":4788}," EVENT",[4173,65682,65683],{"class":4784}," one_time_event\n",[4173,65685,65686],{"class":4657,"line":270},[4173,65687,4761],{"emptyLinePlaceholder":4760},[4173,65689,65690,65693,65696,65699],{"class":4657,"line":1263},[4173,65691,65692],{"class":4788},"ON",[4173,65694,65695],{"class":4784}," SCHEDULE ",[4173,65697,65698],{"class":4788},"AT",[4173,65700,65701],{"class":4669}," '2026-01-01 00:00:00'\n",[414,65703,65704],{},"DO",[414,65706,65707],{},"INSERT INTO test VALUES ('Happy New Year');",[16,65709,65711],{"id":65710},"wiederkehrendes-event","Wiederkehrendes Event",[4647,65713,65715],{"className":64476,"code":65714,"language":64478,"meta":269,"style":269},"CREATE EVENT my_event\n\nON SCHEDULE EVERY 1 DAY\n\n",[4653,65716,65717,65726,65730],{"__ignoreMap":269},[4173,65718,65719,65721,65723],{"class":4657,"line":4658},[4173,65720,64641],{"class":4788},[4173,65722,65680],{"class":4788},[4173,65724,65725],{"class":4784}," my_event\n",[4173,65727,65728],{"class":4657,"line":270},[4173,65729,4761],{"emptyLinePlaceholder":4760},[4173,65731,65732,65734,65737,65739],{"class":4657,"line":1263},[4173,65733,65692],{"class":4788},[4173,65735,65736],{"class":4784}," SCHEDULE EVERY ",[4173,65738,14223],{"class":4665},[4173,65740,65741],{"class":4788}," DAY\n",[414,65743,65704],{},[414,65745,65746],{},"DELETE FROM logs WHERE created_at \u003C NOW() - INTERVAL 30 DAY;",[16,65748,65050],{"id":65749},"löschen-2",[4647,65751,65753],{"className":64476,"code":65752,"language":64478,"meta":269,"style":269},"DROP EVENT my_event;\n\n",[4653,65754,65755],{"__ignoreMap":269},[4173,65756,65757,65759,65761],{"class":4657,"line":4658},[4173,65758,65060],{"class":4788},[4173,65760,65680],{"class":4788},[4173,65762,65763],{"class":4784}," my_event;\n",[11,65765,65767],{"id":65766},"triggers","Triggers",[21,65769,65770,65776,65782],{},[24,65771,65772,65775],{},[42,65773,65774],{},"Automatisierung:"," Automatische Ausführung von Aktionen bei Datenänderungen (INSERT, UPDATE, DELETE).",[24,65777,65778,65781],{},[42,65779,65780],{},"Datenintegrität\u002FValidierung:"," Sicherstellen komplexer Geschäftsregeln und Datenkonsistenz.",[24,65783,65784,65787],{},[42,65785,65786],{},"Protokollierung\u002FAudit:"," Nachverfolgen und Aufzeichnen von Änderungen an Daten.",[16,65789,64799],{"id":65790},"erstellen-2",[4647,65792,65794],{"className":64476,"code":65793,"language":64478,"meta":269,"style":269},"DELIMITER \u002F\u002F\n\nCREATE TRIGGER before_user_insert\n\nBEFORE INSERT ON users\n\nFOR EACH ROW\n\nBEGIN\n\nSET NEW.created_at = NOW();\n\nEND \u002F\u002F\n\nDELIMITER ;\n\n",[4653,65795,65796,65802,65806,65816,65820,65832,65836,65847,65851,65855,65859,65879,65883,65889,65893],{"__ignoreMap":269},[4173,65797,65798,65800],{"class":4657,"line":4658},[4173,65799,64629],{"class":4784},[4173,65801,64632],{"class":4788},[4173,65803,65804],{"class":4657,"line":270},[4173,65805,4761],{"emptyLinePlaceholder":4760},[4173,65807,65808,65810,65813],{"class":4657,"line":1263},[4173,65809,64641],{"class":4788},[4173,65811,65812],{"class":4788}," TRIGGER",[4173,65814,65815],{"class":4661}," before_user_insert\n",[4173,65817,65818],{"class":4657,"line":4770},[4173,65819,4761],{"emptyLinePlaceholder":4760},[4173,65821,65822,65825,65828,65830],{"class":4657,"line":4775},[4173,65823,65824],{"class":4788},"BEFORE",[4173,65826,65827],{"class":4788}," INSERT",[4173,65829,64602],{"class":4788},[4173,65831,64891],{"class":4784},[4173,65833,65834],{"class":4657,"line":6320},[4173,65835,4761],{"emptyLinePlaceholder":4760},[4173,65837,65838,65841,65844],{"class":4657,"line":6325},[4173,65839,65840],{"class":4788},"FOR",[4173,65842,65843],{"class":4784}," EACH ",[4173,65845,65846],{"class":4788},"ROW\n",[4173,65848,65849],{"class":4657,"line":6343},[4173,65850,4761],{"emptyLinePlaceholder":4760},[4173,65852,65853],{"class":4657,"line":6348},[4173,65854,64656],{"class":4788},[4173,65856,65857],{"class":4657,"line":6457},[4173,65858,4761],{"emptyLinePlaceholder":4760},[4173,65860,65861,65863,65866,65868,65871,65873,65876],{"class":4657,"line":6462},[4173,65862,64507],{"class":4788},[4173,65864,65865],{"class":4665}," NEW",[4173,65867,7834],{"class":4784},[4173,65869,65870],{"class":4665},"created_at",[4173,65872,15169],{"class":4788},[4173,65874,65875],{"class":4788}," NOW",[4173,65877,65878],{"class":4784},"();\n",[4173,65880,65881],{"class":4657,"line":6468},[4173,65882,4761],{"emptyLinePlaceholder":4760},[4173,65884,65885,65887],{"class":4657,"line":6473},[4173,65886,19275],{"class":4788},[4173,65888,64742],{"class":4788},[4173,65890,65891],{"class":4657,"line":6479},[4173,65892,4761],{"emptyLinePlaceholder":4760},[4173,65894,65895],{"class":4657,"line":6503},[4173,65896,64751],{"class":4784},[16,65898,64458],{"id":65899},"typen-1",[21,65901,65902,65905,65908,65911,65914,65917],{},[24,65903,65904],{},"BEFORE INSERT",[24,65906,65907],{},"AFTER INSERT",[24,65909,65910],{},"BEFORE UPDATE",[24,65912,65913],{},"AFTER UPDATE",[24,65915,65916],{},"BEFORE DELETE",[24,65918,65919],{},"AFTER DELETE",[16,65921,49572],{"id":65922},"zugriff",[21,65924,65925,65928],{},[24,65926,65927],{},"NEW.column",[24,65929,65930],{},"OLD.column",[16,65932,763],{"id":65933},"beispiel-1",[4647,65935,65937],{"className":64476,"code":65936,"language":64478,"meta":269,"style":269},"DELIMITER \u002F\u002F\n\nCREATE TRIGGER after_delete_user\n\nAFTER DELETE ON users\n\nFOR EACH ROW\n\nBEGIN\n\nINSERT INTO deleted_users_log(user_id, msg)\n\nVALUES (OLD.id,\n\nCONCAT(“User gelöscht: “, OLD.name));\n\nEND \u002F\u002F\n\nDELIMITER ;\n\n",[4653,65938,65939,65945,65949,65958,65962,65974,65978,65986,65990,65994,65998,66006,66010,66027,66031,66048,66052,66058,66062],{"__ignoreMap":269},[4173,65940,65941,65943],{"class":4657,"line":4658},[4173,65942,64629],{"class":4784},[4173,65944,64632],{"class":4788},[4173,65946,65947],{"class":4657,"line":270},[4173,65948,4761],{"emptyLinePlaceholder":4760},[4173,65950,65951,65953,65955],{"class":4657,"line":1263},[4173,65952,64641],{"class":4788},[4173,65954,65812],{"class":4788},[4173,65956,65957],{"class":4661}," after_delete_user\n",[4173,65959,65960],{"class":4657,"line":4770},[4173,65961,4761],{"emptyLinePlaceholder":4760},[4173,65963,65964,65967,65970,65972],{"class":4657,"line":4775},[4173,65965,65966],{"class":4788},"AFTER",[4173,65968,65969],{"class":4788}," DELETE",[4173,65971,64602],{"class":4788},[4173,65973,64891],{"class":4784},[4173,65975,65976],{"class":4657,"line":6320},[4173,65977,4761],{"emptyLinePlaceholder":4760},[4173,65979,65980,65982,65984],{"class":4657,"line":6325},[4173,65981,65840],{"class":4788},[4173,65983,65843],{"class":4784},[4173,65985,65846],{"class":4788},[4173,65987,65988],{"class":4657,"line":6343},[4173,65989,4761],{"emptyLinePlaceholder":4760},[4173,65991,65992],{"class":4657,"line":6348},[4173,65993,64656],{"class":4788},[4173,65995,65996],{"class":4657,"line":6457},[4173,65997,4761],{"emptyLinePlaceholder":4760},[4173,65999,66000,66003],{"class":4657,"line":6462},[4173,66001,66002],{"class":4788},"INSERT INTO",[4173,66004,66005],{"class":4784}," deleted_users_log(user_id, msg)\n",[4173,66007,66008],{"class":4657,"line":6468},[4173,66009,4761],{"emptyLinePlaceholder":4760},[4173,66011,66012,66015,66017,66020,66022,66024],{"class":4657,"line":6473},[4173,66013,66014],{"class":4788},"VALUES",[4173,66016,4171],{"class":4784},[4173,66018,66019],{"class":4665},"OLD",[4173,66021,7834],{"class":4784},[4173,66023,12704],{"class":4665},[4173,66025,66026],{"class":4784},",\n",[4173,66028,66029],{"class":4657,"line":6479},[4173,66030,4761],{"emptyLinePlaceholder":4760},[4173,66032,66033,66036,66039,66041,66043,66045],{"class":4657,"line":6503},[4173,66034,66035],{"class":4665},"CONCAT",[4173,66037,66038],{"class":4784},"(“User gelöscht: “, ",[4173,66040,66019],{"class":4665},[4173,66042,7834],{"class":4784},[4173,66044,28734],{"class":4665},[4173,66046,66047],{"class":4784},"));\n",[4173,66049,66050],{"class":4657,"line":6516},[4173,66051,4761],{"emptyLinePlaceholder":4760},[4173,66053,66054,66056],{"class":4657,"line":6971},[4173,66055,19275],{"class":4788},[4173,66057,64742],{"class":4788},[4173,66059,66060],{"class":4657,"line":10649},[4173,66061,4761],{"emptyLinePlaceholder":4760},[4173,66063,66064],{"class":4657,"line":10654},[4173,66065,64751],{"class":4784},[16,66067,65050],{"id":66068},"löschen-3",[4647,66070,66072],{"className":64476,"code":66071,"language":64478,"meta":269,"style":269},"DROP TRIGGER trigger_name;\n\n",[4653,66073,66074],{"__ignoreMap":269},[4173,66075,66076,66078,66080],{"class":4657,"line":4658},[4173,66077,65060],{"class":4788},[4173,66079,65812],{"class":4788},[4173,66081,66082],{"class":4784}," trigger_name;\n",[11,66084,66086],{"id":66085},"beispiele-aus-dem-unterricht","Beispiele aus dem Unterricht",[16,66088,66090],{"id":66089},"procedure","Procedure",[4647,66092,66094],{"className":64476,"code":66093,"language":64478,"meta":269,"style":269},"DELIMITER @@\n\nCREATE PROCEDURE proc_OrtEinfuegen(\n\n",[4653,66095,66096,66101,66105],{"__ignoreMap":269},[4173,66097,66098],{"class":4657,"line":4658},[4173,66099,66100],{"class":4784},"DELIMITER @@\n",[4173,66102,66103],{"class":4657,"line":270},[4173,66104,4761],{"emptyLinePlaceholder":4760},[4173,66106,66107,66109,66111],{"class":4657,"line":1263},[4173,66108,64641],{"class":4788},[4173,66110,64644],{"class":4788},[4173,66112,66113],{"class":4784}," proc_OrtEinfuegen(\n",[414,66115,66116],{},"IN id INT,",[414,66118,66119],{},"IN ort VARCHAR(255),",[414,66121,66122],{},"IN schulname VARCHAR(255)",[414,66124,6282],{},[414,66126,19265],{},[414,66128,66129],{},"INSERT INTO kurse.ort (ortnr, ort, schule)",[414,66131,66132],{},"VALUES (id, ort, schulname);",[414,66134,66135],{},"END @@",[4647,66137,66139],{"className":64476,"code":66138,"language":64478,"meta":269,"style":269},"DELIMITER ;\n\nCALL proc_OrtEinfuegen(71, 'Erlangen', 'Baumschule');\n\n",[4653,66140,66141,66145,66149],{"__ignoreMap":269},[4173,66142,66143],{"class":4657,"line":4658},[4173,66144,64751],{"class":4784},[4173,66146,66147],{"class":4657,"line":270},[4173,66148,4761],{"emptyLinePlaceholder":4760},[4173,66150,66151,66153,66156,66159,66161,66164,66166,66169],{"class":4657,"line":1263},[4173,66152,64760],{"class":4788},[4173,66154,66155],{"class":4784}," proc_OrtEinfuegen(",[4173,66157,66158],{"class":4665},"71",[4173,66160,8629],{"class":4784},[4173,66162,66163],{"class":4669},"'Erlangen'",[4173,66165,8629],{"class":4784},[4173,66167,66168],{"class":4669},"'Baumschule'",[4173,66170,55545],{"class":4784},[16,66172,66174],{"id":66173},"functions","Functions",[4647,66176,66178],{"className":64476,"code":66177,"language":64478,"meta":269,"style":269},"DELIMITER $$\n\nCREATE FUNCTION fakultaet(n INT)\n\nRETURNS INT\n\nDETERMINISTIC\n\nBEGIN\n\nDECLARE ergebnis INT DEFAULT 1;\n\nDECLARE i INT DEFAULT 1;\n\nIF n \u003C 0 THEN\n\nRETURN NULL; -- negative Fakultät existiert nicht\n\nEND IF;\n\nWHILE i \u003C= n DO\n\nSET ergebnis = ergebnis * i;\n\nSET i = i + 1;\n\nEND WHILE;\n\nRETURN ergebnis;\n\nEND$$\n\nDELIMITER ;\n\nSELECT fakultaet(5) AS result;\n\n",[4653,66179,66180,66185,66189,66205,66209,66215,66219,66223,66227,66231,66235,66250,66254,66268,66272,66287,66291,66303,66307,66316,66320,66333,66337,66352,66356,66372,66376,66385,66389,66396,66400,66407,66411,66415,66419],{"__ignoreMap":269},[4173,66181,66182],{"class":4657,"line":4658},[4173,66183,66184],{"class":4784},"DELIMITER $$\n",[4173,66186,66187],{"class":4657,"line":270},[4173,66188,4761],{"emptyLinePlaceholder":4760},[4173,66190,66191,66193,66195,66198,66201,66203],{"class":4657,"line":1263},[4173,66192,64641],{"class":4788},[4173,66194,65118],{"class":4788},[4173,66196,66197],{"class":4661}," fakultaet",[4173,66199,66200],{"class":4784},"(n ",[4173,66202,64491],{"class":4788},[4173,66204,6402],{"class":4784},[4173,66206,66207],{"class":4657,"line":4770},[4173,66208,4761],{"emptyLinePlaceholder":4760},[4173,66210,66211,66213],{"class":4657,"line":4775},[4173,66212,65084],{"class":4788},[4173,66214,65139],{"class":4788},[4173,66216,66217],{"class":4657,"line":6320},[4173,66218,4761],{"emptyLinePlaceholder":4760},[4173,66220,66221],{"class":4657,"line":6325},[4173,66222,65148],{"class":4784},[4173,66224,66225],{"class":4657,"line":6343},[4173,66226,4761],{"emptyLinePlaceholder":4760},[4173,66228,66229],{"class":4657,"line":6348},[4173,66230,64656],{"class":4788},[4173,66232,66233],{"class":4657,"line":6457},[4173,66234,4761],{"emptyLinePlaceholder":4760},[4173,66236,66237,66239,66242,66244,66246,66248],{"class":4657,"line":6462},[4173,66238,64485],{"class":4788},[4173,66240,66241],{"class":4784}," ergebnis ",[4173,66243,64491],{"class":4788},[4173,66245,64494],{"class":4788},[4173,66247,10264],{"class":4665},[4173,66249,55559],{"class":4784},[4173,66251,66252],{"class":4657,"line":6468},[4173,66253,4761],{"emptyLinePlaceholder":4760},[4173,66255,66256,66258,66260,66262,66264,66266],{"class":4657,"line":6473},[4173,66257,64485],{"class":4788},[4173,66259,6555],{"class":4784},[4173,66261,64491],{"class":4788},[4173,66263,64494],{"class":4788},[4173,66265,10264],{"class":4665},[4173,66267,55559],{"class":4784},[4173,66269,66270],{"class":4657,"line":6479},[4173,66271,4761],{"emptyLinePlaceholder":4760},[4173,66273,66274,66277,66280,66282,66284],{"class":4657,"line":6503},[4173,66275,66276],{"class":4788},"IF",[4173,66278,66279],{"class":4784}," n ",[4173,66281,24345],{"class":4788},[4173,66283,25370],{"class":4665},[4173,66285,66286],{"class":4788}," THEN\n",[4173,66288,66289],{"class":4657,"line":6516},[4173,66290,4761],{"emptyLinePlaceholder":4760},[4173,66292,66293,66295,66298,66300],{"class":4657,"line":6971},[4173,66294,65215],{"class":4788},[4173,66296,66297],{"class":4788}," NULL",[4173,66299,6498],{"class":4784},[4173,66301,66302],{"class":4766},"-- negative Fakultät existiert nicht\n",[4173,66304,66305],{"class":4657,"line":10649},[4173,66306,4761],{"emptyLinePlaceholder":4760},[4173,66308,66309,66311,66314],{"class":4657,"line":10654},[4173,66310,19275],{"class":4788},[4173,66312,66313],{"class":4788}," IF",[4173,66315,55559],{"class":4784},[4173,66317,66318],{"class":4657,"line":10659},[4173,66319,4761],{"emptyLinePlaceholder":4760},[4173,66321,66322,66325,66327,66330],{"class":4657,"line":10664},[4173,66323,66324],{"class":4788},"WHILE",[4173,66326,6555],{"class":4784},[4173,66328,66329],{"class":4788},"\u003C=",[4173,66331,66332],{"class":4784}," n DO\n",[4173,66334,66335],{"class":4657,"line":10676},[4173,66336,4761],{"emptyLinePlaceholder":4760},[4173,66338,66339,66341,66343,66345,66347,66349],{"class":4657,"line":10681},[4173,66340,64507],{"class":4788},[4173,66342,66241],{"class":4784},[4173,66344,6387],{"class":4788},[4173,66346,66241],{"class":4784},[4173,66348,6328],{"class":4788},[4173,66350,66351],{"class":4784}," i;\n",[4173,66353,66354],{"class":4657,"line":10702},[4173,66355,4761],{"emptyLinePlaceholder":4760},[4173,66357,66358,66360,66362,66364,66366,66368,66370],{"class":4657,"line":10707},[4173,66359,64507],{"class":4788},[4173,66361,6555],{"class":4784},[4173,66363,6387],{"class":4788},[4173,66365,6555],{"class":4784},[4173,66367,14419],{"class":4788},[4173,66369,10264],{"class":4665},[4173,66371,55559],{"class":4784},[4173,66373,66374],{"class":4657,"line":10712},[4173,66375,4761],{"emptyLinePlaceholder":4760},[4173,66377,66378,66380,66383],{"class":4657,"line":10717},[4173,66379,19275],{"class":4788},[4173,66381,66382],{"class":4788}," WHILE",[4173,66384,55559],{"class":4784},[4173,66386,66387],{"class":4657,"line":10727},[4173,66388,4761],{"emptyLinePlaceholder":4760},[4173,66390,66391,66393],{"class":4657,"line":10732},[4173,66392,65215],{"class":4788},[4173,66394,66395],{"class":4784}," ergebnis;\n",[4173,66397,66398],{"class":4657,"line":10737},[4173,66399,4761],{"emptyLinePlaceholder":4760},[4173,66401,66402,66404],{"class":4657,"line":10742},[4173,66403,19275],{"class":4788},[4173,66405,66406],{"class":4784},"$$\n",[4173,66408,66409],{"class":4657,"line":10752},[4173,66410,4761],{"emptyLinePlaceholder":4760},[4173,66412,66413],{"class":4657,"line":10757},[4173,66414,64751],{"class":4784},[4173,66416,66417],{"class":4657,"line":10762},[4173,66418,4761],{"emptyLinePlaceholder":4760},[4173,66420,66421,66423,66426,66428,66430,66432],{"class":4657,"line":10767},[4173,66422,64561],{"class":4788},[4173,66424,66425],{"class":4784}," fakultaet(",[4173,66427,14292],{"class":4665},[4173,66429,6306],{"class":4784},[4173,66431,53087],{"class":4788},[4173,66433,66434],{"class":4784}," result;\n",[16,66436,65621],{"id":66437},"events-1",[414,66439,66440],{},"use bank;",[4647,66442,66444],{"className":64476,"code":66443,"language":64478,"meta":269,"style":269},"create event test_event_03ALTER\n\non schedule every 1 minute ends '2026-02-03 20:31:00'\n\n",[4653,66445,66446,66457,66461],{"__ignoreMap":269},[4173,66447,66448,66451,66454],{"class":4657,"line":4658},[4173,66449,66450],{"class":4788},"create",[4173,66452,66453],{"class":4788}," event",[4173,66455,66456],{"class":4784}," test_event_03ALTER\n",[4173,66458,66459],{"class":4657,"line":270},[4173,66460,4761],{"emptyLinePlaceholder":4760},[4173,66462,66463,66466,66469,66471,66474,66477],{"class":4657,"line":1263},[4173,66464,66465],{"class":4788},"on",[4173,66467,66468],{"class":4784}," schedule every ",[4173,66470,14223],{"class":4665},[4173,66472,66473],{"class":4788}," minute",[4173,66475,66476],{"class":4784}," ends ",[4173,66478,66479],{"class":4669},"'2026-02-03 20:31:00'\n",[4647,66481,66483],{"className":4649,"code":66482,"language":4651,"meta":269,"style":269},"do\n\n",[4653,66484,66485],{"__ignoreMap":269},[4173,66486,66487],{"class":4657,"line":4658},[4173,66488,6437],{"class":4788},[414,66490,66491],{},"insert into messages (message, created_at)",[414,66493,66494],{},"values ('test', NOW();",[16,66496,66498],{"id":66497},"trigger","Trigger",[4647,66500,66502],{"className":64476,"code":66501,"language":64478,"meta":269,"style":269},"DELIMITER \u002F\u002F\n\nCREATE TRIGGER trg_auth_before_insert\n\nBEFORE INSERT ON auth\n\nFOR EACH ROW\n\nBEGIN\n\n-- Entferne alle Leerzeichen aus dem neuen Usernamen\n\nSET NEW.user = REPLACE(NEW.user, ' ', '');\n\n-- Trage das Ereignis ins Log ein\n\nINSERT INTO log (wann, wer, was)\n\nVALUES (\n\n",[4653,66503,66504,66510,66514,66523,66527,66538,66542,66550,66554,66558,66562,66567,66571,66607,66611,66616,66620,66630,66634],{"__ignoreMap":269},[4173,66505,66506,66508],{"class":4657,"line":4658},[4173,66507,64629],{"class":4784},[4173,66509,64632],{"class":4788},[4173,66511,66512],{"class":4657,"line":270},[4173,66513,4761],{"emptyLinePlaceholder":4760},[4173,66515,66516,66518,66520],{"class":4657,"line":1263},[4173,66517,64641],{"class":4788},[4173,66519,65812],{"class":4788},[4173,66521,66522],{"class":4661}," trg_auth_before_insert\n",[4173,66524,66525],{"class":4657,"line":4770},[4173,66526,4761],{"emptyLinePlaceholder":4760},[4173,66528,66529,66531,66533,66535],{"class":4657,"line":4775},[4173,66530,65824],{"class":4788},[4173,66532,65827],{"class":4788},[4173,66534,64602],{"class":4788},[4173,66536,66537],{"class":4784}," auth\n",[4173,66539,66540],{"class":4657,"line":6320},[4173,66541,4761],{"emptyLinePlaceholder":4760},[4173,66543,66544,66546,66548],{"class":4657,"line":6325},[4173,66545,65840],{"class":4788},[4173,66547,65843],{"class":4784},[4173,66549,65846],{"class":4788},[4173,66551,66552],{"class":4657,"line":6343},[4173,66553,4761],{"emptyLinePlaceholder":4760},[4173,66555,66556],{"class":4657,"line":6348},[4173,66557,64656],{"class":4788},[4173,66559,66560],{"class":4657,"line":6457},[4173,66561,4761],{"emptyLinePlaceholder":4760},[4173,66563,66564],{"class":4657,"line":6462},[4173,66565,66566],{"class":4766},"-- Entferne alle Leerzeichen aus dem neuen Usernamen\n",[4173,66568,66569],{"class":4657,"line":6468},[4173,66570,4761],{"emptyLinePlaceholder":4760},[4173,66572,66573,66575,66577,66579,66581,66583,66586,66588,66591,66593,66595,66597,66600,66602,66605],{"class":4657,"line":6473},[4173,66574,64507],{"class":4788},[4173,66576,65865],{"class":4665},[4173,66578,7834],{"class":4784},[4173,66580,13677],{"class":4665},[4173,66582,15169],{"class":4788},[4173,66584,66585],{"class":4665}," REPLACE",[4173,66587,6390],{"class":4784},[4173,66589,66590],{"class":4665},"NEW",[4173,66592,7834],{"class":4784},[4173,66594,13677],{"class":4665},[4173,66596,8629],{"class":4784},[4173,66598,66599],{"class":4669},"' '",[4173,66601,8629],{"class":4784},[4173,66603,66604],{"class":4669},"''",[4173,66606,55545],{"class":4784},[4173,66608,66609],{"class":4657,"line":6479},[4173,66610,4761],{"emptyLinePlaceholder":4760},[4173,66612,66613],{"class":4657,"line":6503},[4173,66614,66615],{"class":4766},"-- Trage das Ereignis ins Log ein\n",[4173,66617,66618],{"class":4657,"line":6516},[4173,66619,4761],{"emptyLinePlaceholder":4760},[4173,66621,66622,66624,66627],{"class":4657,"line":6971},[4173,66623,66002],{"class":4788},[4173,66625,66626],{"class":4665}," log",[4173,66628,66629],{"class":4784}," (wann, wer, was)\n",[4173,66631,66632],{"class":4657,"line":10649},[4173,66633,4761],{"emptyLinePlaceholder":4760},[4173,66635,66636,66638],{"class":4657,"line":10654},[4173,66637,66014],{"class":4788},[4173,66639,66640],{"class":4784}," (\n",[414,66642,66643],{},"NOW(),",[4647,66645,66647],{"className":8413,"code":66646,"language":8415,"meta":269,"style":269},"USER(),\n\n",[4653,66648,66649],{"__ignoreMap":269},[4173,66650,66651],{"class":4657,"line":4658},[4173,66652,66653],{"class":4784},"USER(),\n",[414,66655,66656],{},"CONCAT('Neuer User angelegt: ', NEW.user)",[414,66658,66659],{},");",[4647,66661,66663],{"className":4649,"code":66662,"language":4651,"meta":269,"style":269},"END \u002F\u002F\n\n",[4653,66664,66665],{"__ignoreMap":269},[4173,66666,66667,66669],{"class":4657,"line":4658},[4173,66668,19275],{"class":4661},[4173,66670,64742],{"class":4669},[4647,66672,66674],{"className":64476,"code":66673,"language":64478,"meta":269,"style":269},"DELIMITER ;\n\n",[4653,66675,66676],{"__ignoreMap":269},[4173,66677,66678],{"class":4657,"line":4658},[4173,66679,64751],{"class":4784},[16,66681,66683],{"id":66682},"transactions","Transactions",[414,66685,66686],{},"set autocommit = OFF;",[414,66688,66689],{},"select * from kunde;",[414,66691,66692],{},"begin;",[414,66694,66695],{},"update kunde set saldo = saldo -500 where id = 1;",[414,66697,66698],{},"update kunde set saldo = saldo +500 where id = 2;",[4647,66700,66702],{"className":64476,"code":66701,"language":64478,"meta":269,"style":269},"commit; # erst mit dem commit werden die neuen saldos gespeichert\n\n",[4653,66703,66704],{"__ignoreMap":269},[4173,66705,66706,66708,66711,66713],{"class":4657,"line":4658},[4173,66707,65591],{"class":4788},[4173,66709,66710],{"class":4784},"; # erst mit dem ",[4173,66712,65591],{"class":4788},[4173,66714,66715],{"class":4784}," werden die neuen saldos gespeichert\n",[11,66717,66719],{"id":66718},"mit-rollback-kann-die-änderung-also-vor-dem-commit-rückgängig-gemacht-werden","mit Rollback kann die Änderung also vor dem commit rückgängig gemacht werden",[414,66721,66722],{},"set autocommit = ON;",[414,66724,66692],{},[414,66726,66695],{},[414,66728,66698],{},[4647,66730,66732],{"className":64476,"code":66731,"language":64478,"meta":269,"style":269},"commit; # durch autocommit on hat diese Zeile keinen Einfluss\n\n",[4653,66733,66734],{"__ignoreMap":269},[4173,66735,66736,66738,66741,66743],{"class":4657,"line":4658},[4173,66737,65591],{"class":4788},[4173,66739,66740],{"class":4784},"; # durch autocommit ",[4173,66742,66465],{"class":4788},[4173,66744,66745],{"class":4784}," hat diese Zeile keinen Einfluss\n",[11,66747,66749],{"id":66748},"rollback-hat-keinen-einfluss","Rollback hat keinen Einfluss",[4647,66751,66753],{"className":64476,"code":66752,"language":64478,"meta":269,"style":269},"START TRANSACTION;\n\nINSERT INTO tab2 VALUES (NULL, 'Hello', 1);\n\nINSERT INTO tab2 VALUES (NULL, 'World', 2);\n\nINSERT INTO tab2 VALUES (NULL, 'in SQL', 3);\n\nCOMMIT;\n",[4653,66754,66755,66761,66765,66790,66794,66817,66821,66844,66848],{"__ignoreMap":269},[4173,66756,66757,66759],{"class":4657,"line":4658},[4173,66758,65309],{"class":4788},[4173,66760,55559],{"class":4784},[4173,66762,66763],{"class":4657,"line":270},[4173,66764,4761],{"emptyLinePlaceholder":4760},[4173,66766,66767,66769,66772,66774,66776,66779,66781,66784,66786,66788],{"class":4657,"line":1263},[4173,66768,66002],{"class":4788},[4173,66770,66771],{"class":4784}," tab2 ",[4173,66773,66014],{"class":4788},[4173,66775,4171],{"class":4784},[4173,66777,66778],{"class":4788},"NULL",[4173,66780,8629],{"class":4784},[4173,66782,66783],{"class":4669},"'Hello'",[4173,66785,8629],{"class":4784},[4173,66787,14223],{"class":4665},[4173,66789,55545],{"class":4784},[4173,66791,66792],{"class":4657,"line":4770},[4173,66793,4761],{"emptyLinePlaceholder":4760},[4173,66795,66796,66798,66800,66802,66804,66806,66808,66811,66813,66815],{"class":4657,"line":4775},[4173,66797,66002],{"class":4788},[4173,66799,66771],{"class":4784},[4173,66801,66014],{"class":4788},[4173,66803,4171],{"class":4784},[4173,66805,66778],{"class":4788},[4173,66807,8629],{"class":4784},[4173,66809,66810],{"class":4669},"'World'",[4173,66812,8629],{"class":4784},[4173,66814,14206],{"class":4665},[4173,66816,55545],{"class":4784},[4173,66818,66819],{"class":4657,"line":6320},[4173,66820,4761],{"emptyLinePlaceholder":4760},[4173,66822,66823,66825,66827,66829,66831,66833,66835,66838,66840,66842],{"class":4657,"line":6325},[4173,66824,66002],{"class":4788},[4173,66826,66771],{"class":4784},[4173,66828,66014],{"class":4788},[4173,66830,4171],{"class":4784},[4173,66832,66778],{"class":4788},[4173,66834,8629],{"class":4784},[4173,66836,66837],{"class":4669},"'in SQL'",[4173,66839,8629],{"class":4784},[4173,66841,14318],{"class":4665},[4173,66843,55545],{"class":4784},[4173,66845,66846],{"class":4657,"line":6343},[4173,66847,4761],{"emptyLinePlaceholder":4760},[4173,66849,66850,66852],{"class":4657,"line":6348},[4173,66851,65389],{"class":4788},[4173,66853,55559],{"class":4784},[5719,66855,66856],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":269,"searchDepth":270,"depth":270,"links":66858},[66859,66865,66866,66867,66868,66869,66870,66871,66872,66873,66874,66875,66876,66877,66878,66879,66880,66881,66882,66883,66884,66885,66886,66887,66888,66889,66890,66891],{"id":64457,"depth":270,"text":64458,"children":66860},[66861,66862,66863,66864],{"id":64461,"depth":1263,"text":64462},{"id":64519,"depth":1263,"text":64520},{"id":64567,"depth":1263,"text":64568},{"id":64618,"depth":1263,"text":64619},{"id":64798,"depth":270,"text":64799},{"id":64930,"depth":270,"text":64931},{"id":64962,"depth":270,"text":64963},{"id":65049,"depth":270,"text":65050},{"id":65096,"depth":270,"text":64799},{"id":65239,"depth":270,"text":65240},{"id":65246,"depth":270,"text":65050},{"id":762,"depth":270,"text":763},{"id":65394,"depth":270,"text":65395},{"id":65410,"depth":270,"text":65411},{"id":65420,"depth":270,"text":65421},{"id":65459,"depth":270,"text":65460},{"id":65580,"depth":270,"text":65274},{"id":65644,"depth":270,"text":65645},{"id":65667,"depth":270,"text":65668},{"id":65710,"depth":270,"text":65711},{"id":65749,"depth":270,"text":65050},{"id":65790,"depth":270,"text":64799},{"id":65899,"depth":270,"text":64458},{"id":65922,"depth":270,"text":49572},{"id":65933,"depth":270,"text":763},{"id":66068,"depth":270,"text":65050},{"id":66089,"depth":270,"text":66090},{"id":66173,"depth":270,"text":66174},{"id":66437,"depth":270,"text":65621},{"id":66497,"depth":270,"text":66498},{"id":66682,"depth":270,"text":66683},{},{"title":12226},"\u002Ffaecher\u002Fdbk\u002F7-8-cs-sa2","\u002Fdownloads\u002FDBK\u002FDBK_7-8_CS_SA2.pdf",{"title":5774,"description":269},"faecher\u002Fdbk\u002F7-8-cs-sa2","DBK","Datenbanken","_kQObH9Dn0wr8gkeCwepv-I3zGEDJMbGuCFGAL7qP-8",{"id":66902,"title":6,"body":66903,"class":12223,"description":269,"extension":283,"meta":67627,"navigation":67628,"path":67629,"pdfDownload":67630,"scope":289,"scopeName":290,"seo":67631,"stem":67632,"subject":67633,"subjectName":67634,"type":295,"typeName":296,"year":12233,"__hash__":67635},"faecher\u002Ffaecher\u002Fits\u002F7-8-zsmf-sa1.md",{"type":8,"value":66904,"toc":67608},[66905,66909,66913,66927,66931,66973,66977,67002,67006,67026,67030,67041,67045,67097,67101,67114,67118,67129,67131,67216,67218,67223,67264,67266,67277,67291,67293,67298,67323,67327,67332,67356,67358,67385,67389,67394,67397,67411,67415],[11,66906,66908],{"id":66907},"ethisches-hacken","Ethisches Hacken",[16,66910,66912],{"id":66911},"grundidee-und-zweck","Grundidee und Zweck",[21,66914,66915,66918,66924],{},[24,66916,66917],{},"Ethical Hacking nutzt dieselben Methoden wie Bedrohungsakteure, jedoch mit Erlaubnis und zum Schutz des Systems.",[24,66919,66920,66923],{},[42,66921,66922],{},"Ziel",": Schwachstellen identifizieren, bevor sie von Angreifern ausgenutzt werden.",[24,66925,66926],{},"Teil professioneller Netzwerksicherheits- und Penetrationstests.",[16,66928,66930],{"id":66929},"eingesetzte-methoden-und-vorgehen","Eingesetzte Methoden und Vorgehen",[21,66932,66933,66936,66939,66959],{},[24,66934,66935],{},"Nutzung von Penetrationstest-Tools, die auch von Angreifern missbraucht werden könnten.",[24,66937,66938],{},"Angreifertechniken werden kontrolliert simuliert, um Sicherheitsmaßnahmen zu überprüfen.",[24,66940,66941,66942],{},"Fokus auf das Erkennen typischer Angriffskategorien wie:\n",[21,66943,66944,66947,66950,66953,66956],{},[24,66945,66946],{},"Aufklärungsangriffe (Recon)",[24,66948,66949],{},"Zugriffsangriffe",[24,66951,66952],{},"Social Engineering",[24,66954,66955],{},"DoS\u002FDDoS",[24,66957,66958],{},"Malware-basierte Angriffe",[24,66960,66961,66962],{},"Recon: Informationsbeschaffung über ein Ziel\n",[21,66963,66964,66967,66970],{},[24,66965,66966],{},"Welche Systeme existieren?",[24,66968,66969],{},"Welche Dienste laufen dort?",[24,66971,66972],{},"Welche Schwachstellen können ausgenutzt werden?",[16,66974,66976],{"id":66975},"typische-werkzeuge","Typische Werkzeuge",[21,66978,66979,66999],{},[24,66980,66981,66982],{},"Spezialisierte Tools für:\n",[21,66983,66984,66987,66990,66993,66996],{},[24,66985,66986],{},"Netzwerk-Scanning",[24,66988,66989],{},"Schwachstellenanalyse",[24,66991,66992],{},"Exploitation",[24,66994,66995],{},"Passwort-Cracking",[24,66997,66998],{},"Analyse von Malware",[24,67000,67001],{},"Viele Tools sind dual-use (können ethisch oder illegal eingesetzt werden).",[16,67003,67005],{"id":67004},"typische-sicherheitsmaßnahmen-die-geprüft-werden","Typische Sicherheitsmaßnahmen, die geprüft werden",[21,67007,67008,67011,67014,67017,67020,67023],{},[24,67009,67010],{},"Passwortsicherheit und Richtlinien",[24,67012,67013],{},"Physischer Zugriffsschutz",[24,67015,67016],{},"Patch-Management",[24,67018,67019],{},"Schutz durch Firewalls, VPNs, IPS, Antivirenlösungen",[24,67021,67022],{},"Abschalten unnötiger Dienste\u002FPorts",[24,67024,67025],{},"Verschlüsselung und sichere Authentifizierung (z. B. MFA, HMAC)",[11,67027,67029],{"id":67028},"kryptographie","Kryptographie",[21,67031,67032,67035],{},[24,67033,67034],{},"Sichere Kommunikation über unsicheren Kanal",[24,67036,67037,67040],{},[42,67038,67039],{},"Hashing",": Leicht ausführbar -> schwer umkehrbar",[16,67042,67044],{"id":67043},"cia-triade","CIA-Triade",[21,67046,67047,67064,67081],{},[24,67048,67049,4171,67052,67055,67056],{},[42,67050,67051],{},"Vertraulichkeit",[42,67053,67054],{},"C","onfidentiality)\n",[21,67057,67058,67061],{},[24,67059,67060],{},"Gewährleistung der Privatsphäre; nur Empfänger kann lesen",[24,67062,67063],{},"Realisiert z.B. durch Verschlüsselung",[24,67065,67066,4171,67069,67072,67073],{},[42,67067,67068],{},"Integrität",[42,67070,67071],{},"I","ntegrity)\n",[21,67074,67075,67078],{},[24,67076,67077],{},"Sicherstellung, dass die Nachricht auf dem Weg nicht geändert wurde",[24,67079,67080],{},"Realisiert z.B. durch Prüfsummen",[24,67082,67083,4171,67085,67088,67089],{},[42,67084,5335],{},[42,67086,67087],{},"A","uthenticity)\n",[21,67090,67091,67094],{},[24,67092,67093],{},"Sicherstellen, dass es tatsächlich der angepriesene Absender war",[24,67095,67096],{},"Realisiert z.B. durch eine PIN",[16,67098,67100],{"id":67099},"beispielmethoden-um-code-zu-knacken","Beispielmethoden, um Code zu knacken",[21,67102,67103,67108],{},[24,67104,67105,67107],{},[42,67106,5413],{},": Alle möglichen Schlüssel probieren",[24,67109,67110,67113],{},[42,67111,67112],{},"Known-Plaintext-Methode",": Teilstück, das enthalten ist, ist bekannt (Enigma)",[16,67115,67117],{"id":67116},"chiffren","Chiffren",[21,67119,67120,67126],{},[24,67121,67122,67125],{},[42,67123,67124],{},"Chiffre",": Verschlüsselungsverfahren, das Klartext in Chiffretext umwandelt",[24,67127,67128],{},"Kann nur mit dem passenden Schlüssel gelesen werden",[470,67130,1432],{"id":1431},[765,67132,67133,67150],{},[768,67134,67135],{},[771,67136,67137,67142,67146],{},[774,67138,67139],{},[42,67140,67141],{},"Kategorie",[774,67143,67144],{},[42,67145,5800],{},[774,67147,67148],{},[42,67149,9925],{},[787,67151,67152,67163,67174,67183,67194,67205],{},[771,67153,67154,67157,67160],{},[792,67155,67156],{},"Transpositions-Chiffren",[792,67158,67159],{},"Umordnung der Zeichen",[792,67161,67162],{},"Umkehrung, Gitterzaun",[771,67164,67165,67168,67171],{},[792,67166,67167],{},"Substitutions-Chiffren",[792,67169,67170],{},"Ersetzen von Zeichen",[792,67172,67173],{},"einfache Substitution",[771,67175,67176,67179,67181],{},[792,67177,67178],{},"Blockchiffren",[792,67180],{},[792,67182],{},[771,67184,67185,67188,67191],{},[792,67186,67187],{},"Stromchiffren",[792,67189,67190],{},"Verschlüsselung bit-\u002Fbyteweise",[792,67192,67193],{},"Stromchiffren allgemein",[771,67195,67196,67199,67202],{},[792,67197,67198],{},"Symmetrische Chiffren",[792,67200,67201],{},"gleicher Schlüssel",[792,67203,67204],{},"DES, 3DES, AES",[771,67206,67207,67210,67213],{},[792,67208,67209],{},"Asymmetrische Chiffren",[792,67211,67212],{},"Schlüsselpaar (öffentlich\u002Fprivat)",[792,67214,67215],{},"RSA, PKI",[16,67217,3670],{"id":3669},[414,67219,67220],{},[1504,67221],{"alt":269,"src":67222},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa1_img_1.png",[21,67224,67225,67227,67235,67246,67252,67254],{},[24,67226,3675],{},[24,67228,67229,67230],{},"Ein Schlüssel pro Kommunikationsweg zwischen zwei Personen\n",[21,67231,67232],{},[24,67233,67234],{},"Bei vielen Kommunikationspartnern wird die Anzahl der benötigten Schlüssel sehr hoch",[24,67236,67237,67239,67240],{},[42,67238,763],{},": Caesar \u002F Monoalphabetische Substitution\n",[21,67241,67242,67244],{},[24,67243,3683],{},[24,67245,3686],{},[24,67247,67248,67251],{},[42,67249,67250],{},"Schneller"," als asymmetrische Verschlüsselung",[24,67253,3692],{},[24,67255,67256,3698,67258],{},[42,67257,3697],{},[21,67259,67260],{},[24,67261,67262,3705],{},[42,67263,558],{},[470,67265,3886],{"id":3885},[21,67267,67268,67271,67274],{},[24,67269,67270],{},"Aus dem Schlüssel werden Rundschlüssel erstellt",[24,67272,67273],{},"Datenblock wird in Matrix geschrieben",[24,67275,67276],{},"Mehrere Runden folgende vier Schritte über jede Datenblockmatrix",[318,67278,67279,67282,67285,67288],{},[24,67280,67281],{},"Substitution: Jedes Byte wird mittels S-Box durch anderen Wert ersetzt",[24,67283,67284],{},"Shift-Row: Zeilen werden um bestimmte Anzahl verschoben",[24,67286,67287],{},"Mix Column: Spalten werden durch Matrixmultiplikation vermischt",[24,67289,67290],{},"Key Addition: Block wird mit Rundschlüssel über XOR verknüpft",[16,67292,3709],{"id":3708},[414,67294,67295],{},[1504,67296],{"alt":269,"src":67297},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa1_img_2.png",[21,67299,67300,67302,67304,67310,67312,67317],{},[24,67301,3714],{},[24,67303,3717],{},[24,67305,67306,67309],{},[42,67307,67308],{},"Langsamer"," als symmetrische Verschlüsselung",[24,67311,3723],{},[24,67313,67314,67316],{},[42,67315,9925],{},": RSA & DAS",[24,67318,67319,67322],{},[42,67320,67321],{},"Authentizität beweisen",": Wenn A mit dem eigenen privaten Schlüssel verschlüsselt und B mit dem öffentlichen Schlüssel von A entschlüsselt, beweist A, dass er im Besitz des privaten Schlüssels ist.",[470,67324,67326],{"id":67325},"rsa","RSA",[414,67328,67329],{},[1504,67330],{"alt":269,"src":67331},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa1_img_3.png",[21,67333,67334,67345],{},[24,67335,67336,67337],{},"Öffentlicher Schlüssel\n",[21,67338,67339,67342],{},[24,67340,67341],{},"n: Gemeinsamer Bestandteil von Public und Private (p*q=n)",[24,67343,67344],{},"e: Öffentlicher Exponent",[24,67346,67347,67348],{},"Privater Schlüssel\n",[21,67349,67350,67353],{},[24,67351,67352],{},"d: privater Exponent – wird aus p & q berechnet",[24,67354,67355],{},"p & q: Geheime Primzahlen",[16,67357,3730],{"id":3729},[21,67359,67360,67362,67367,67372,67380],{},[24,67361,3735],{},[24,67363,67364,67366],{},[42,67365,2091],{},": Symmetrische Verschlüsselung für Datenübertragung (schnell)",[24,67368,67369,67371],{},[42,67370,2904],{},": Asymmetrische Verschlüsselung für sicheren Schlüsselaustausch",[24,67373,3744,67374],{},[21,67375,67376,67378],{},[24,67377,3749],{},[24,67379,3752],{},[24,67381,67382,67384],{},[42,67383,9925],{},": HTTPS & verschlüsselte Mails",[16,67386,67388],{"id":67387},"diffie-hellman","Diffie Hellman",[414,67390,67391],{},[1504,67392],{"alt":269,"src":67393},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa1_img_4.png",[414,67395,67396],{},"Farben sollen verschiedene große Zahlenfolgen darstellen",[21,67398,67399,67402,67405,67408],{},[24,67400,67401],{},"Es wird sich zuerst auf eine gemeinsame Zahl geeinigt",[24,67403,67404],{},"Anschließend verrechnet jede Seite eine eigene geheime Zahl mit der öffentlichen bekannten Zahl",[24,67406,67407],{},"Die daraus resultierenden Ergebnisse werden ausgetauscht",[24,67409,67410],{},"Durch das Verrechnen des Ergebnisses des Partners mit der eigenen geheimen Zahl wird die Finale Zahl berechnet. Diese ist bei beiden Partnern gleich.",[11,67412,67414],{"id":67413},"shenjas-fragenkatalog","Shenjas Fragenkatalog",[765,67416,67417,67436],{},[768,67418,67419],{},[771,67420,67421,67426,67431],{},[774,67422,67423],{},[42,67424,67425],{},"Prio",[774,67427,67428],{},[42,67429,67430],{},"Frage",[774,67432,67433],{},[42,67434,67435],{},"Antwort",[787,67437,67438,67448,67458,67468,67478,67488,67498,67508,67518,67528,67538,67548,67558,67568,67578,67588,67598],{},[771,67439,67440,67442,67445],{},[792,67441,14223],{},[792,67443,67444],{},"Wie verbreitet sich ein Virus?",[792,67446,67447],{},"Ein Virus verbreitet sich, indem er sich in andere Programme einfügt und durch deren Ausführung weitergetragen wird.",[771,67449,67450,67452,67455],{},[792,67451,14223],{},[792,67453,67454],{},"Wie verbreitet sich ein Wurm?",[792,67456,67457],{},"Ein Wurm verbreitet sich selbstständig über Netzwerkschwachstellen.",[771,67459,67460,67462,67465],{},[792,67461,14223],{},[792,67463,67464],{},"Was ist ein Trojaner?",[792,67466,67467],{},"Ein Trojaner tarnt sich als legitime Software und führt im Hintergrund Schadcode aus.",[771,67469,67470,67472,67475],{},[792,67471,14223],{},[792,67473,67474],{},"Was ist Ransomware?",[792,67476,67477],{},"Ransomware blockiert den Zugriff auf Systeme oder Daten und fordert ein Lösegeld für die Freigabe.",[771,67479,67480,67482,67485],{},[792,67481,14223],{},[792,67483,67484],{},"Was ist ein Aufklärungsangriff (Recon)?",[792,67486,67487],{},"Ein Aufklärungsangriff dient der Informationssammlung über Systeme, Dienste oder Schwachstellen.  Recon erkennen und erklären können",[771,67489,67490,67492,67495],{},[792,67491,14223],{},[792,67493,67494],{},"Was ist ein DoS-Angriff?",[792,67496,67497],{},"Ein DoS-Angriff unterbricht Netzwerkdienste durch übermäßigen Traffic oder manipulierte Pakete.",[771,67499,67500,67502,67505],{},[792,67501,14223],{},[792,67503,67504],{},"Was ist ein DDoS-Angriff?",[792,67506,67507],{},"Ein DDoS-Angriff wird von vielen koordinierten Quellen gleichzeitig durchgeführt.",[771,67509,67510,67512,67515],{},[792,67511,14223],{},[792,67513,67514],{},"Was bedeutet Authentifizierung?",[792,67516,67517],{},"Authentifizierung stellt sicher, dass die Identität des Absenders einer Nachricht echt ist.",[771,67519,67520,67522,67525],{},[792,67521,14223],{},[792,67523,67524],{},"Was ist ein Hash?",[792,67526,67527],{},"Ein Hash ist eine kurze Prüfsumme fester Länge, die aus Daten berechnet wird und deren Integrität sicherstellt.",[771,67529,67530,67532,67535],{},[792,67531,14223],{},[792,67533,67534],{},"Was ist ein HMAC?",[792,67536,67537],{},"Ein HMAC ist ein Hash, der zusätzlich einen geheimen Schlüssel zur Authentifizierung nutzt.",[771,67539,67540,67542,67545],{},[792,67541,14223],{},[792,67543,67544],{},"Wie funktioniert symmetrische Verschlüsselung?",[792,67546,67547],{},"Sender und Empfänger verwenden denselben geheimen Schlüssel für Ver- und Entschlüsselung.",[771,67549,67550,67552,67555],{},[792,67551,14223],{},[792,67553,67554],{},"Wie funktioniert asymmetrische Verschlüsselung?",[792,67556,67557],{},"Es werden ein öffentlicher Schlüssel zum Verschlüsseln und ein privater Schlüssel zum Entschlüsseln verwendet.",[771,67559,67560,67562,67565],{},[792,67561,14223],{},[792,67563,67564],{},"Nenne ein Protokoll, das asymmetrische Verschlüsselung nutzt.",[792,67566,67567],{},"TLS (ehemals SSL) verwendet asymmetrische Verschlüsselung.  RSA",[771,67569,67570,67572,67575],{},[792,67571,14223],{},[792,67573,67574],{},"Was ist eine Transpositionschiffre?",[792,67576,67577],{},"Eine Chiffre, bei der die Buchstaben einer Nachricht neu angeordnet werden.",[771,67579,67580,67582,67585],{},[792,67581,14223],{},[792,67583,67584],{},"Was ist das Ziel eines Penetrationstests?",[792,67586,67587],{},"Die Sicherheitsmaßnahmen eines Netzwerks zu überprüfen, indem Angriffe simuliert werden.",[771,67589,67590,67592,67595],{},[792,67591,14206],{},[792,67593,67594],{},"Was ist ein Angriffsvektor?",[792,67596,67597],{},"Ein Angriffsvektor ist ein Pfad, über den sich ein Bedrohungsakteur Zugang zu einem Server, Host oder Netzwerk verschaffen kann.",[771,67599,67600,67602,67605],{},[792,67601,14206],{},[792,67603,67604],{},"Was ist ein Pufferüberlauf?",[792,67606,67607],{},"Ein Pufferüberlauf nutzt eine Schwachstelle im Speicher aus, wodurch Systeme funktionsunfähig werden können.",{"title":269,"searchDepth":270,"depth":270,"links":67609},[67610,67611,67612,67613,67614,67615,67616,67619,67622,67625,67626],{"id":66911,"depth":270,"text":66912},{"id":66929,"depth":270,"text":66930},{"id":66975,"depth":270,"text":66976},{"id":67004,"depth":270,"text":67005},{"id":67043,"depth":270,"text":67044},{"id":67099,"depth":270,"text":67100},{"id":67116,"depth":270,"text":67117,"children":67617},[67618],{"id":1431,"depth":1263,"text":1432},{"id":3669,"depth":270,"text":3670,"children":67620},[67621],{"id":3885,"depth":1263,"text":3886},{"id":3708,"depth":270,"text":3709,"children":67623},[67624],{"id":67325,"depth":1263,"text":67326},{"id":3729,"depth":270,"text":3730},{"id":67387,"depth":270,"text":67388},{},{"title":12691},"\u002Ffaecher\u002Fits\u002F7-8-zsmf-sa1","\u002Fdownloads\u002FITS\u002FITS_7-8_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fits\u002F7-8-zsmf-sa1","ITS","IT-Sicherheit","PndYfVJogizMYVu-uIatwSGrxpqJrw_LflF5rB2YX8Y",{"id":67637,"title":301,"body":67638,"class":12223,"description":269,"extension":283,"meta":68947,"navigation":68948,"path":68949,"pdfDownload":68950,"scope":1288,"scopeName":1289,"seo":68951,"stem":68952,"subject":67633,"subjectName":67634,"type":295,"typeName":296,"year":12233,"__hash__":68953},"faecher\u002Ffaecher\u002Fits\u002F7-8-zsmf-sa2.md",{"type":8,"value":67639,"toc":68900},[67640,67644,67687,67691,67695,67700,67714,67718,67723,67734,67738,67858,67862,67867,67871,67876,67880,67885,67899,67903,67908,67944,67948,67952,67957,67971,67975,67980,67991,67995,68013,68018,68022,68036,68040,68058,68062,68067,68071,68099,68102,68113,68116,68130,68132,68161,68165,68176,68180,68182,68186,68203,68205,68213,68218,68223,68243,68247,68270,68274,68346,68350,68354,68359,68375,68379,68384,68401,68405,68410,68418,68422,68427,68431,68435,68463,68467,68495,68499,68518,68522,68599,68602,68613,68617,68676,68680,68685,68725,68729,68772,68776,68780,68785,68799,68803,68808,68822,68826,68831,68845,68849,68853,68869,68872,68877,68881],[11,67641,67643],{"id":67642},"aaa-authentication-authorization-accounting-712","AAA: Authentication, Authorization, Accounting (7.1.2)",[21,67645,67646,67673],{},[24,67647,67648,67652,67653],{},[1504,67649],{"alt":67650,"src":67651},"Big Enough Meme Generator","\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_1.jpg","Zugangskontrolle auf Netzwerkgeräten\n",[21,67654,67655,67661,67667],{},[24,67656,67657,67660],{},[42,67658,67659],{},"Authentication",": Legt fest wer zugreifen darf",[24,67662,67663,67666],{},[42,67664,67665],{},"Authorization",": Legt fest was gemacht werden darf",[24,67668,67669,67672],{},[42,67670,67671],{},"Accounting",": Loggt was gemacht wird",[24,67674,67675,67676],{},"Beispiel Kreditkarte:\n",[21,67677,67678,67681,67684],{},[24,67679,67680],{},"Authentication: Prüfziffer und Kartennummer",[24,67682,67683],{},"Authorization: Kartenlimit",[24,67685,67686],{},"Accounting: Kreditkartenabrechnung",[16,67688,67690],{"id":67689},"authentifizierungsmodi-713","Authentifizierungsmodi (7.1.3)",[470,67692,67694],{"id":67693},"local-aaa-authentication","Local AAA Authentication",[414,67696,67697],{},[1504,67698],{"alt":269,"src":67699},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_2.png",[21,67701,67702,67705,67708,67711],{},[24,67703,67704],{},"Nutzt lokale Datenbank auf Gerät",[24,67706,67707],{},"Datenbank enthält Nutzernamen und Passwörter",[24,67709,67710],{},"Nutzer authentifizieren sich gegen die lokale Datenbank",[24,67712,67713],{},"Verwendung in kleinen Netzwerken",[470,67715,67717],{"id":67716},"server-based-aaa-authentication-73","Server-Based AAA Authentication (7.3)",[414,67719,67720],{},[1504,67721],{"alt":269,"src":67722},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_3.png",[21,67724,67725,67728,67731],{},[24,67726,67727],{},"Router greift auf AAA-Server zu (RADIUS \u002F TACACS+)",[24,67729,67730],{},"Server enthält Nutzernamen und Passwörter",[24,67732,67733],{},"Nützlich für große Netzwerke, da Nutzer an einer zentralen Stelle verwaltet werden können",[16,67735,67737],{"id":67736},"authentifizierungsprotokolle-733","Authentifizierungsprotokolle (7.3.3)",[765,67739,67740,67756],{},[768,67741,67742],{},[771,67743,67744,67746,67751],{},[774,67745],{},[774,67747,67748],{},[42,67749,67750],{},"TACACS+",[774,67752,67753],{},[42,67754,67755],{},"RADIUS",[787,67757,67758,67771,67783,67796,67809,67821,67834,67846],{},[771,67759,67760,67765,67768],{},[792,67761,67762],{},[406,67763,67764],{},"Funktionalität",[792,67766,67767],{},"- Separiert AAA - Erlaubt Modularität (Unterschiedliche Dienste für Authentication & Authorization)",[792,67769,67770],{},"- Kombiniert Authentication und Authorization - Weniger flexibel",[771,67772,67773,67777,67780],{},[792,67774,67775],{},[406,67776,44403],{},[792,67778,67779],{},"- Cisco",[792,67781,67782],{},"- Offen\u002FRFC",[771,67784,67785,67790,67793],{},[792,67786,67787],{},[406,67788,67789],{},"Transport",[792,67791,67792],{},"- TCP",[792,67794,67795],{},"- UDP",[771,67797,67798,67803,67806],{},[792,67799,67800],{},[406,67801,67802],{},"Challenge Handshake Authentication Protocol",[792,67804,67805],{},"- Bidirektionale Challenge und Antwort",[792,67807,67808],{},"- Unidirektionale Challenge und Antwort vom Server zum Client",[771,67810,67811,67815,67818],{},[792,67812,67813],{},[406,67814,67051],{},[792,67816,67817],{},"- Jedes Paket verschlüsselt",[792,67819,67820],{},"- Nur Passwort wird verschlüsselt",[771,67822,67823,67828,67831],{},[792,67824,67825],{},[406,67826,67827],{},"Anpassbarkeit",[792,67829,67830],{},"- Befehle auf per-user \u002F per-group Ebene",[792,67832,67833],{},"- Keine Authorization auf per-user \u002F per-group Ebene",[771,67835,67836,67840,67843],{},[792,67837,67838],{},[406,67839,67671],{},[792,67841,67842],{},"- Begrenzt",[792,67844,67845],{},"- Ausführlich",[771,67847,67848,67852,67855],{},[792,67849,67850],{},[406,67851,854],{},[792,67853,67854],{},"- z.B. Organisation mit vielen Gruppen",[792,67856,67857],{},"- z.B. ISP für ausführliches Accounting",[470,67859,67861],{"id":67860},"tacacs-authentication-734","TACACS+ Authentication (7.3.4)",[414,67863,67864],{},[1504,67865],{"alt":269,"src":67866},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_4.png",[470,67868,67870],{"id":67869},"radius-authentication-735","RADIUS Authentication (7.3.5)",[414,67872,67873],{},[1504,67874],{"alt":269,"src":67875},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_5.png",[16,67877,67879],{"id":67878},"authorization-714","Authorization (7.1.4)",[414,67881,67882],{},[1504,67883],{"alt":269,"src":67884},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_6.png",[21,67886,67887,67890,67893,67896],{},[24,67888,67889],{},"Automatischer Schritt nach der Authentifizierung",[24,67891,67892],{},"Regelt was Nutzer dürfen oder nicht dürfen",[24,67894,67895],{},"Rechte werden vom Router am AAA-Server abgeglichen",[24,67897,67898],{},"Rechteset würde vom Server an den Router übermittelt",[16,67900,67902],{"id":67901},"accounting-715","Accounting (7.1.5)",[414,67904,67905],{},[1504,67906],{"alt":269,"src":67907},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_7.png",[21,67909,67910,67913,67927,67941],{},[24,67911,67912],{},"Sammelt und meldet Datennutzung",[24,67914,67915,67916],{},"Verwendung für\n",[21,67917,67918,67921,67924],{},[24,67919,67920],{},"Abrechnung",[24,67922,67923],{},"Audits",[24,67925,67926],{},"Troubleshooting",[24,67928,67929,67930],{},"Enthält\n",[21,67931,67932,67935,67938],{},[24,67933,67934],{},"Start- & Endzeiten einer Verbindung",[24,67936,67937],{},"Ausgeführte Befehle",[24,67939,67940],{},"Paket- & Byteanzahl",[24,67942,67943],{},"Netzwerkgerät meldet an Server",[11,67945,67947],{"id":67946},"vpn-virtual-private-network-81","VPN: Virtual Private Network (8.1)",[16,67949,67951],{"id":67950},"site-to-site-vpn","Site-to-Site VPN",[414,67953,67954],{},[1504,67955],{"alt":269,"src":67956},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_8.png",[21,67958,67959,67962,67965,67968],{},[24,67960,67961],{},"Zwei VPN-Gateways bauen einen Tunnel zueinander auf",[24,67963,67964],{},"Datenverkehr wird nur zwischen den beiden Gateways verschlüsselt",[24,67966,67967],{},"Meist durch IPsec abgesichert",[24,67969,67970],{},"Hosts haben keine Kenntnis von der Existenz des VPNs",[16,67972,67974],{"id":67973},"remote-access-vpn-821","Remote-Access VPN (8.2.1)",[414,67976,67977],{},[1504,67978],{"alt":269,"src":67979},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_9.png",[21,67981,67982,67985,67988],{},[24,67983,67984],{},"Wird bei Bedarf dynamisch aufgebaut",[24,67986,67987],{},"Tunnel besteht zwischen Client und VPN-Gateway",[24,67989,67990],{},"Z.B. Remoteeinwahl in die Firma",[470,67992,67994],{"id":67993},"ssl-vpn-822","SSL-VPN (8.2.2)",[21,67996,67997,68000,68003,68006],{},[24,67998,67999],{},"Client stellt Verbindung mit VPN-Gateway mittels SSL\u002FTLS her",[24,68001,68002],{},"Setzt PKI und Zertifikate voraus",[24,68004,68005],{},"Sinnvoll für einfache Bereitstellung und breiten Support (Nicht so sicher wie IPsec)",[24,68007,68008,68009,68012],{},"IPsec und SSL-VPN schließen sich ",[42,68010,68011],{},"nicht"," gegenseitig aus, sondern ergänzen sich",[414,68014,68015],{},[1504,68016],{"alt":269,"src":68017},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_10.png",[16,68019,68021],{"id":68020},"ipsec-ip-security-83","IPsec: IP Security (8.3)",[21,68023,68024,68027,68030,68033],{},[24,68025,68026],{},"IETF-Standard, der definiert, wie ein VPN über IP-Netze gesichert werden kann",[24,68028,68029],{},"Gibt nur ein Framework vor",[24,68031,68032],{},"Schützt und authentifiziert zwischen Quelle & Ziel",[24,68034,68035],{},"Kann von Layer 4 – 7 schützen",[470,68037,68039],{"id":68038},"sicherheitsfunktionen","Sicherheitsfunktionen",[21,68041,68042,68047,68052],{},[24,68043,68044,68046],{},[42,68045,67051],{},": Verschlüsselung verhindert das Lesen des Inhalts durch Dritte",[24,68048,68049,68051],{},[42,68050,67068],{},": Hashing-Algorithmen stellen sicher, dass das Paket auf dem Weg nicht verändert, wurde",[24,68053,68054,68057],{},[42,68055,68056],{},"Authentifizierung des Ursprungs",": Nutzt Internet-Key-Exchange (IKE) um Quelle & Ziel zu authentifizieren (PSK oder Zertifikate)",[470,68059,68061],{"id":68060},"framework-elemente","Framework-Elemente",[414,68063,68064],{},[1504,68065],{"alt":269,"src":68066},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_11.png",[475,68068,68070],{"id":68069},"ipsec-protokollkapselung","IPsec-Protokollkapselung",[21,68072,68073,68086],{},[24,68074,68075,68078],{},[42,68076,68077],{},"AH: Authentication Header",[21,68079,68080,68083],{},[24,68081,68082],{},"Wenn keine Vertraulichkeit (Verschlüsselung) erforderlich ist",[24,68084,68085],{},"Unverschlüsselt",[24,68087,68088,68091],{},[42,68089,68090],{},"ESP: Encapsulation Security Protocol",[21,68092,68093,68096],{},[24,68094,68095],{},"Verschlüsselt IP-Pakete",[24,68097,68098],{},"Authentifiziert Datenherkunft und Integrität",[475,68100,67051],{"id":68101},"vertraulichkeit",[21,68103,68104,68107,68110],{},[24,68105,68106],{},"Wird durch Verschlüsselung erreicht",[24,68108,68109],{},"Je besser der Algorithmus und die Schlüssellänge, desto höher der Grad der Vertraulichkeit",[24,68111,68112],{},"Meist symmetrische Verschlüsselung, da schneller",[475,68114,67068],{"id":68115},"integrität",[21,68117,68118,68121,68127],{},[24,68119,68120],{},"Stellt sicher, dass gesendete Daten mit empfangenen Daten übereinstimmen",[24,68122,68123,68126],{},[42,68124,68125],{},"HMAC: Hashed Message Authentication Code"," – Hashcode des versendeten Pakets",[24,68128,68129],{},"Wenn Hashcode beim Versenden und Empfangen identisch ist, gilt das Paket als Integer",[475,68131,5335],{"id":5334},[21,68133,68134,68137],{},[24,68135,68136],{},"Gerät am anderen Ende des Tunnels muss authentifiziert werden damit der Tunnel als sicher gilt",[24,68138,68139,68140],{},"Entweder PSK oder RSA\n",[21,68141,68142,68156],{},[24,68143,68144,68147,68148],{},[42,68145,68146],{},"PSK",": Authentifizierungsschlüssel und ID werden gehashed\n",[21,68149,68150,68153],{},[24,68151,68152],{},"Schlüssel wurde zuvor manuell an den VPN-Gateways hinterlegt",[24,68154,68155],{},"Stimmt erhaltener und berechneter Hash überein ist die Gegenstelle authentifiziert",[24,68157,68158,68160],{},[42,68159,67326],{},": Authentifizierung mittels Zertifikats",[475,68162,68164],{"id":68163},"schlüsselaustausch","Schlüsselaustausch",[21,68166,68167,68170,68173],{},[24,68168,68169],{},"Verschlüsselungsalgorithmen benötigen gemeinsamen Schlüssel",[24,68171,68172],{},"Austausch erfolgt nach Diffie-Hellman",[24,68174,68175],{},"Je höher die DH-Gruppe, desto sicherer",[16,68177,68179],{"id":68178},"gre-over-ipsec-824","GRE over IPsec (8.2.4)",[470,68181,530],{"id":529},[475,68183,68185],{"id":68184},"gre-generic-route-encapsulation","GRE: Generic Route Encapsulation",[21,68187,68188,68191,68194,68200],{},[24,68189,68190],{},"Unsicheres Site-to-Site VPN Protokoll",[24,68192,68193],{},"Keine Verschlüsselung",[24,68195,68196,68197,68199],{},"Kann verschiedene Protokolle der Vermittlungsschicht (Network Layer ",[4173,68198,14318],{},") verschlüsseln",[24,68201,68202],{},"Unterstützt neben Unicast auch Multicast und Broadcast",[470,68204,558],{"id":557},[21,68206,68207,68210],{},[24,68208,68209],{},"Mutlicast \u002F Broadcast wird in GRE gekapselt",[24,68211,68212],{},"GRE-Paket wird in ein IPsec-Paket eingepackt",[414,68214,68215],{},[1504,68216],{"alt":269,"src":68217},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_12.png",[414,68219,68220],{},[1504,68221],{"alt":269,"src":68222},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_13.png",[21,68224,68225,68231,68237],{},[24,68226,68227,68230],{},[42,68228,68229],{},"Passenger-Protokoll",": Ursprüngliches Paket – Unabhängig welches Protokoll, und ob Uni- \u002F Mutli- \u002F Broadcast",[24,68232,68233,68236],{},[42,68234,68235],{},"Carrier-Protokoll",": Träger-Protokoll, das das Passenger-Paket einkapselt",[24,68238,68239,68242],{},[42,68240,68241],{},"Transportprotokoll",": Protokoll, das sich um die tatsächliche Weiterleitung des Pakets handelt",[11,68244,68246],{"id":68245},"firewall-9","Firewall (9)",[21,68248,68249,68252,68255,68258,68261,68264,68267],{},[24,68250,68251],{},"System, das ein Regelwerk zwischen Netzwerken erzwingt",[24,68253,68254],{},"Resistent gegen Netzwerkangriffe",[24,68256,68257],{},"Einziger Transitpunkt zwischen internem und externem Netzwerk",[24,68259,68260],{},"Verhindert unzulässigen Zugriff auf Systeme",[24,68262,68263],{},"Blockiert bösartigen Netzwerktraffic",[24,68265,68266],{},"Kann Netzwerkperformance reduzieren",[24,68268,68269],{},"Getunnelter Traffic kann nicht verhindert werden",[16,68271,68273],{"id":68272},"arten-91","Arten (9.1)",[765,68275,68276,68293],{},[768,68277,68278],{},[771,68279,68280,68285,68289],{},[774,68281,68282],{},[42,68283,68284],{},"Firewall",[774,68286,68287],{},[42,68288,29113],{},[774,68290,68291],{},[42,68292,5800],{},[787,68294,68295,68308,68321,68334],{},[771,68296,68297,68302,68305],{},[792,68298,68299],{},[406,68300,68301],{},"Packet-Filtering (Stateless)",[792,68303,68304],{},"3 – 4",[792,68306,68307],{},"- Lediglich Analyse der Pakete und Abgleich mit Regelwerk anhand Port, Adressen und Protokoll - Bereits in vielen Routern integriert - Anfällig für IP-Spoofing",[771,68309,68310,68315,68318],{},[792,68311,68312],{},[406,68313,68314],{},"Stateful",[792,68316,68317],{},"3 – 5",[792,68319,68320],{},"- Analysiert zusätzlich Verbindungsinformationen - Bessere Performance",[771,68322,68323,68328,68331],{},[792,68324,68325],{},[406,68326,68327],{},"Application Gateway",[792,68329,68330],{},"3 – 5 & 7",[792,68332,68333],{},"- Arbeitet als proxy für den Client",[771,68335,68336,68341,68343],{},[792,68337,68338],{},[406,68339,68340],{},"Next Generation",[792,68342],{},[792,68344,68345],{},"- Intrusion-Prevention - Application awareness",[16,68347,68349],{"id":68348},"netzwerkdesign-92","Netzwerkdesign (9.2)",[470,68351,68353],{"id":68352},"privat-öffentlich","Privat & Öffentlich",[414,68355,68356],{},[1504,68357],{"alt":269,"src":68358},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_14.png",[21,68360,68361,68364],{},[24,68362,68363],{},"Ausgehender Verkehr wird zugelassen",[24,68365,68366,68367],{},"Eingehender Verkehr wird überprüft\n",[21,68368,68369,68372],{},[24,68370,68371],{},"Wird zugelassen bei Verbindung mit ausgehendem Traffic",[24,68373,68374],{},"Wird in allen anderen Szenarien blockiert",[470,68376,68378],{"id":68377},"dmz-demilitarisierte-zone","DMZ: Demilitarisierte Zone",[414,68380,68381],{},[1504,68382],{"alt":269,"src":68383},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_15.png",[21,68385,68386,68389,68392,68395,68398],{},[24,68387,68388],{},"Ausgehender Traffic Richtung DMZ\u002FÖffentlich weitestgehend zugelassen",[24,68390,68391],{},"Eingehender Traffic von DMZ wird blockiert",[24,68393,68394],{},"Ausgehender Traffic von der DMZ Richtung Öffentlich entsprechend der Service-Anforderungen zugelassen",[24,68396,68397],{},"Eingehender Traffic vom Öffentlichen Richtung DMZ wird untersucht und entsprechend der Service-Anforderung zugelassen",[24,68399,68400],{},"Eingehender Traffic vom Öffentlichen ins private Netz wird blockiert",[470,68402,68404],{"id":68403},"zonen-basiert","Zonen basiert",[414,68406,68407],{},[1504,68408],{"alt":269,"src":68409},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_16.png",[21,68411,68412,68415],{},[24,68413,68414],{},"Regelwerk wird auf Zonen angewandt",[24,68416,68417],{},"Kommunikation zwischen Mitglieder derselben Zone wird nicht untersucht und immer erlaubt",[470,68419,68421],{"id":68420},"layered-defense","Layered Defense",[414,68423,68424],{},[1504,68425],{"alt":269,"src":68426},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_17.png",[11,68428,68430],{"id":68429},"integrität-und-authentizität-161","Integrität und Authentizität (16.1)",[16,68432,68434],{"id":68433},"sichere-kommunikation","Sichere Kommunikation",[21,68436,68437,68442,68448,68454],{},[24,68438,68439,68441],{},[42,68440,65429],{},": Garantiert, dass die Daten auf dem Weg nicht verändert wurden",[24,68443,68444,68447],{},[42,68445,68446],{},"Origin Authentifizierung",": Garantiert, dass der angegebene Absender auch der tatsächliche ist",[24,68449,68450,68453],{},[42,68451,68452],{},"Datenvertraulichkeit",": Garantiert, dass nur autorisierte Nutzer das Paket lesen können",[24,68455,68456,68462],{},[42,68457,68458,68461],{},[1504,68459],{"alt":269,"src":68460},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_18.png","Nichtabstreitbarkeit der Daten",": Garantiert, dass der Absender die gesendeten Daten nicht abstreiten kann",[16,68464,68466],{"id":68465},"hash-funktionen","Hash-Funktionen",[21,68468,68469,68472,68475,68478,68481,68492],{},[24,68470,68471],{},"Verwendet, um Datenintegrität zu gewährleisten",[24,68473,68474],{},"Input: Variable Daten",[24,68476,68477],{},"Output: Hash mit immer gleicher Länge",[24,68479,68480],{},"Wenn die Daten beim Absenden und Empfangen den gleichen Hashwert ergeben, ist die Datenintegrität gewährleistet",[24,68482,68483,68484],{},"Bekannte Hashfunktionen\n",[21,68485,68486,68489],{},[24,68487,68488],{},"MD5 (legacy)",[24,68490,68491],{},"SHA",[24,68493,68494],{},"Schützt nicht vor Man-in-the-Middle, da in diesem Fall der Angreifer einfach den mitgesendeten Hashwert, der zum Vergleich beim Empfangen dient, mit abändert.",[16,68496,68498],{"id":68497},"origin-authentication-hmac","Origin Authentication (HMAC)",[21,68500,68501,68515],{},[24,68502,68503,68506,68507],{},[1504,68504],{"alt":269,"src":68505},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_19.png","Um MITM-Attacken zu unterbinden \u002F zu erkennen, wird dem Hashing-Prozess ein PSK hinzugefügt, den nur Absender und Empfänger kennen\n",[21,68508,68509,68512],{},[24,68510,68511],{},"Das gleiche Hashergebnis kann nur dann entstehen, wenn Daten und Key bei beiden Hashing-Prozessen identisch sind",[24,68513,68514],{},"Ein MITM-Angreifer kennt den PSK nicht und kann somit den Hash nicht anpassen",[24,68516,68517],{},"Datenintegrität UND Authentifizierung des Origins in einem Schritt, da nur der Origin auch den PSK kennt",[11,68519,68521],{"id":68520},"digitale-signatur-171","Digitale Signatur (17.1)",[21,68523,68524,68527,68530,68559,68576],{},[24,68525,68526],{},"Nutzt asymmetrische Kryptographie",[24,68528,68529],{},"Gilt als Beweis, dass Datenaustausch stattgefunden hat",[24,68531,68532,68533],{},"Eigenschaften einer Signatur\n",[21,68534,68535,68541,68547,68553],{},[24,68536,68537,68540],{},[42,68538,68539],{},"Authentisch",": Signatur kann nicht gefälscht werden und beweist, dass ausschließlich der Absender das Dokument signiert hat",[24,68542,68543,68546],{},[42,68544,68545],{},"Unveränderlich",": Nach der Signierung kann das Dokument nicht mehr geändert werden",[24,68548,68549,68552],{},[42,68550,68551],{},"Nicht transferierbar",": Die Signatur kann nicht auf ein anderes Dokument übertragen werden",[24,68554,68555,68558],{},[42,68556,68557],{},"Nicht abstreitbar",": Gilt als Beweis, dass das Dokument von einer Person signiert wurde",[24,68560,68561,68562],{},"Verwendung\n",[21,68563,68564,68570],{},[24,68565,68566,68569],{},[42,68567,68568],{},"Code-Signierung",": Für Datenintegrität und Authentifizierung bei ausführbaren Dateien",[24,68571,68572,68575],{},[42,68573,68574],{},"Digitale Zertifikate",": Authentifiziert die Identität eines Systems und dient zum Aufbaue einer verschlüsselten Kommunikation",[24,68577,68578,68579],{},"Standards\n",[21,68580,68581,68587,68593],{},[24,68582,68583,68586],{},[42,68584,68585],{},"DSA - Digital Signature Algorithm",": Ursprünglicher Standard zur Generierung von öffentlichen, privaten Schlüsseln und Generierung und Verifizierung von digitalen Signaturen",[24,68588,68589,68592],{},[42,68590,68591],{},"RSA – Rivest-Shamir-Adelman Algorithm",": Asymmetrischer Algorithmus zur Generierung und Verifizierung von digitalen Signaturen",[24,68594,68595,68598],{},[42,68596,68597],{},"ECDSA – Elliptic Curve Digital Signature Algorithm",": Neuere effizientere Variante von DSA. Unterstützt Authentifizierung von digitalen Signaturen und Nichtabstreitbarkeit.",[16,68600,68568],{"id":68601},"code-signierung",[21,68603,68604,68607,68610],{},[24,68605,68606],{},"Beweist Authentizität des Codes und, dass er tatsächlich aus der angegebenen Quelle stammt",[24,68608,68609],{},"Beweist, dass der Code nicht auf dem Weg verändert wurde",[24,68611,68612],{},"Beweist, dass der Code definitiv vom Entwickler veröffentlicht wurde",[16,68614,68616],{"id":68615},"digitales-zertifikat","Digitales Zertifikat",[21,68618,68619,68622],{},[24,68620,68621],{},"Authentifiziert und verifiziert die Echtheit einer Nachricht und dessen Absender",[24,68623,68624,68625],{},"Beispielablauf\n",[21,68626,68627],{},[24,68628,68629,68630],{},"Bob bestätigt eine Bestellung auf Alices Website\n",[21,68631,68632,68635,68656,68659,68662,68665,68668],{},[24,68633,68634],{},"Bob erstellt einen Hash seiner Bestätigung",[24,68636,68637,68638,68641,68642],{},"Bob verschlüsselt den Hash mit seinem ",[42,68639,68640],{},"privaten Schlüssel"," (Digitale Signatur)\n",[21,68643,68644,68650,68653],{},[24,68645,68646,68649],{},[42,68647,68648],{},"Nicht"," wie bei der Asymmetrischen Verschlüsselung mit dem öffentlichen Schlüssel",[24,68651,68652],{},"Somit kann jeder, der Bobs öffentlichen Schlüssel hat, den Hash entschlüsseln",[24,68654,68655],{},"Damit beweist Bob seine Identität, da nur er im Besitz seines privaten Schlüssels sein kann",[24,68657,68658],{},"Bob sendet den verschlüsselten Hash mit seiner Bestätigung an Alice",[24,68660,68661],{},"Alice empfängt den verschlüsselten Hash und die Bestätigung",[24,68663,68664],{},"Alice entschlüsselt den Hash mit Bobs öffentlichen Schlüssel",[24,68666,68667],{},"Alice erstellt ebenfalls einen Hash der Bestätigung von Bob (ohne die Signatur von Bob!)",[24,68669,68670,68671],{},"Wenn die beiden Hashes übereinstimmen, ist die Authentizität des Dokuments bewiesen\n",[21,68672,68673],{},[24,68674,68675],{},"Die Bestätigung wurde von Bob verschickt und unterwegs nicht verändert",[11,68677,68679],{"id":68678},"pki-public-key-infrastructure-172","PKI: Public Key Infrastructure (17.2)",[414,68681,68682],{},[1504,68683],{"alt":269,"src":68684},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_20.png",[21,68686,68687,68690,68693,68710,68716,68719,68722],{},[24,68688,68689],{},"Internet-Verkehr immer zwischen zwei Parteien",[24,68691,68692],{},"Beim Herstellen einer Verbindung werden öffentliche Schlüsselinformationen ausgetauscht",[24,68694,68695,68696],{},"Beispiel Webserver\n",[21,68697,68698,68701,68704,68707],{},[24,68699,68700],{},"Webserver brauchen ein SSL-Zertifikat",[24,68702,68703],{},"Betreiber des Webserver kaufen ein Zertifikat für die Domain des Webservers bei einer Zertifizierungsstelle",[24,68705,68706],{},"Die Zertifizierungsstelle prüft die Zertifikatsanfrage und stellt ein Zertifikat aus",[24,68708,68709],{},"Ab diesem Zeitpunkt vertrauen automatisch alle Systeme dem ausgestellten Zertifikat, die der Zertifizierungsstelle vertrauen",[24,68711,68712,68715],{},[42,68713,68714],{},"Zertifikatsautorität (CA: Certificate Authority):"," Organisation, die digitale Zertifikate erstellt, indem sie einen öffentlichen Schlüssel an eine bestätigte Identität bindet",[24,68717,68718],{},"PKI ist notwendig, um die Verteilung und Identifizierung von öffentlichen Schlüsseln zu unterstützen",[24,68720,68721],{},"Hoch skalierbar",[24,68723,68724],{},"IETF X.509 v3 Standard definiert das Format eines Digitalen Zertifikats",[16,68726,68728],{"id":68727},"autoritäts-system","Autoritäts-System",[21,68730,68731],{},[24,68732,68733,68734],{},"CAs erstellen Zertifikate basierend auf Klassen, die angeben, wie vertrauenswürdig ein Zertifikat ist\n",[21,68735,68736,68742,68748,68754,68760,68766],{},[24,68737,68738,68741],{},[42,68739,68740],{},"0:"," Für Tests; Keine Überprüfung hat stattgefunden",[24,68743,68744,68747],{},[42,68745,68746],{},"1:"," Für Einzelpersonen; Benötigt E-Mail-Bestätigung",[24,68749,68750,68753],{},[42,68751,68752],{},"2:"," Für Organisationen; Identitätsbeweis notwendig",[24,68755,68756,68759],{},[42,68757,68758],{},"3:"," Server und Code-Signierung; Unabhängige Prüfung der Identität durch die CA",[24,68761,68762,68765],{},[42,68763,68764],{},"4:"," Für Transaktionen zwischen Firmen",[24,68767,68768,68771],{},[42,68769,68770],{},"5:"," Für private Organisationen oder Staatliche Sicherheit",[16,68773,68775],{"id":68774},"topologien","Topologien",[470,68777,68779],{"id":68778},"single-root-pki","Single-Root PKI",[414,68781,68782],{},[1504,68783],{"alt":269,"src":68784},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_21.png",[21,68786,68787,68790,68793,68796],{},[24,68788,68789],{},"Simpler Aufbau",[24,68791,68792],{},"Nur eine einzige CA, die Zertifikate ausstellt",[24,68794,68795],{},"Single-Point of Failure",[24,68797,68798],{},"Schwer skalierbar",[470,68800,68802],{"id":68801},"cross-certified-ca","Cross-Certified CA",[414,68804,68805],{},[1504,68806],{"alt":269,"src":68807},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_22.png",[21,68809,68810,68813,68816,68819],{},[24,68811,68812],{},"Vertrauensbildung zwischen zwei Cas",[24,68814,68815],{},"Stellen gegenseitig Zertifikate aus",[24,68817,68818],{},"Nutzer jeder CA-Domain vertrauen automatisch einander",[24,68820,68821],{},"Kein Single-Point of Failure mehr",[470,68823,68825],{"id":68824},"hierarchical-ca","Hierarchical CA",[414,68827,68828],{},[1504,68829],{"alt":269,"src":68830},"\u002Fdownloads\u002FITS\u002Fimages\u002F7-8-zsmf-sa2_img_23.png",[21,68832,68833,68836,68839,68842],{},[24,68834,68835],{},"Eine Root CA stellt Zertifikate für Sub-CAs aus, die Zertifikate für Endnutzer ausstellen",[24,68837,68838],{},"Gut skalierbar",[24,68840,68841],{},"Leicht verwaltbar",[24,68843,68844],{},"Ggf. schwierig die Zertifikatskette zu bestimmen",[16,68846,68848],{"id":68847},"verwaltung-eines-zertifikats","Verwaltung eines Zertifikats",[470,68850,68852],{"id":68851},"ausrollen","Ausrollen",[21,68854,68855,68866],{},[24,68856,68857,68858],{},"Kopie des öffentlichen Schlüssels der CA erhalten (Self-Signed-Certificate)\n",[21,68859,68860,68863],{},[24,68861,68862],{},"Verifiziert alle Zertifikate, die von der CA ausgestellt wurden",[24,68864,68865],{},"Nur die Root-CA kann ein Self-Signed-Certificate ausstellen.",[24,68867,68868],{},"Verteilung der CA-Zertifikate meist automatisch",[470,68870,5335],{"id":68871},"authentifizierung-1",[21,68873,68874],{},[24,68875,68876],{},"Sobald das Zertifikat von der CA ausgerollt wurde, wird die CA zur Kommunikation zwischen zwei Parteien nicht mehr benötigt",[470,68878,68880],{"id":68879},"widerrufen","Widerrufen",[21,68882,68883],{},[24,68884,68885,68886],{},"Ggf. muss ein Zertifikat widerrufen werden, wenn der Schlüssel kompromittiert ist\n",[21,68887,68888,68894],{},[24,68889,68890,68893],{},[42,68891,68892],{},"CRL – Certificate Revocation List",": Liste mit Seriennummern von widerrufenen Zertifikaten. PKI-Mitglieder holen sich regelmäßig diese Liste",[24,68895,68896,68899],{},[42,68897,68898],{},"OCSP – Online Certificate Status Protocol",": Genutzt, um einen OCSP-Server über den Status eines Zertifikats abzufragen",{"title":269,"searchDepth":270,"depth":270,"links":68901},[68902,68906,68910,68911,68912,68913,68916,68920,68924,68925,68931,68932,68933,68934,68935,68936,68937,68942],{"id":67689,"depth":270,"text":67690,"children":68903},[68904,68905],{"id":67693,"depth":1263,"text":67694},{"id":67716,"depth":1263,"text":67717},{"id":67736,"depth":270,"text":67737,"children":68907},[68908,68909],{"id":67860,"depth":1263,"text":67861},{"id":67869,"depth":1263,"text":67870},{"id":67878,"depth":270,"text":67879},{"id":67901,"depth":270,"text":67902},{"id":67950,"depth":270,"text":67951},{"id":67973,"depth":270,"text":67974,"children":68914},[68915],{"id":67993,"depth":1263,"text":67994},{"id":68020,"depth":270,"text":68021,"children":68917},[68918,68919],{"id":68038,"depth":1263,"text":68039},{"id":68060,"depth":1263,"text":68061},{"id":68178,"depth":270,"text":68179,"children":68921},[68922,68923],{"id":529,"depth":1263,"text":530},{"id":557,"depth":1263,"text":558},{"id":68272,"depth":270,"text":68273},{"id":68348,"depth":270,"text":68349,"children":68926},[68927,68928,68929,68930],{"id":68352,"depth":1263,"text":68353},{"id":68377,"depth":1263,"text":68378},{"id":68403,"depth":1263,"text":68404},{"id":68420,"depth":1263,"text":68421},{"id":68433,"depth":270,"text":68434},{"id":68465,"depth":270,"text":68466},{"id":68497,"depth":270,"text":68498},{"id":68601,"depth":270,"text":68568},{"id":68615,"depth":270,"text":68616},{"id":68727,"depth":270,"text":68728},{"id":68774,"depth":270,"text":68775,"children":68938},[68939,68940,68941],{"id":68778,"depth":1263,"text":68779},{"id":68801,"depth":1263,"text":68802},{"id":68824,"depth":1263,"text":68825},{"id":68847,"depth":270,"text":68848,"children":68943},[68944,68945,68946],{"id":68851,"depth":1263,"text":68852},{"id":68871,"depth":1263,"text":5335},{"id":68879,"depth":1263,"text":68880},{},{"title":63035},"\u002Ffaecher\u002Fits\u002F7-8-zsmf-sa2","\u002Fdownloads\u002FITS\u002FITS_7-8_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fits\u002F7-8-zsmf-sa2","zmHFNUmlbair6TuhCfTp-RG-2H_YJTiM0eyGUEA1qgc",{"id":68955,"title":6,"body":68956,"class":2421,"description":69328,"extension":283,"meta":69329,"navigation":69330,"path":69331,"pdfDownload":69332,"scope":289,"scopeName":290,"seo":69333,"stem":69334,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":2431,"__hash__":69337},"faecher\u002Ffaecher\u002Fknt\u002F3-4-zsmf-sa1.md",{"type":8,"value":68957,"toc":69322},[68958,68962,68968,68972,68998,69002,69022,69026,69146,69152,69156,69230,69235,69239,69244,69277,69281,69297,69301,69317],[11,68959,68961],{"id":68960},"protokolle-und-modelle","Protokolle und Modelle",[414,68963,68964,68967],{},[42,68965,68966],{},"Protokolle",": Regeln, die festlegen, wie Geräte miteinander kommunizieren",[16,68969,68971],{"id":68970},"netzwerkprotokolle","Netzwerkprotokolle",[21,68973,68974,68980,68986,68992],{},[24,68975,68976,68979],{},[42,68977,68978],{},"Netzwerkkommunikationsprotokolle",": Ermöglichen die Kommunikation von zwei oder mehreren Geräten über ein oder mehrere Netzwerke (IP, TCP, http)",[24,68981,68982,68985],{},[42,68983,68984],{},"Netzwerksicherheitsprotokolle",": Sichern Daten – Authentifizierung, Datenintegrität und Verschlüsselung (SSH, SSL, TSL)",[24,68987,68988,68991],{},[42,68989,68990],{},"Routingprotokolle",": Ermöglicht Routern Informationen über Routen auszutauschen und zu vergleichen (OSPF, BGP)",[24,68993,68994,68997],{},[42,68995,68996],{},"Diensterkennungsprotokolle",": Erkennung von Geräten oder Diensten (DHCP, DNS)",[11,68999,69001],{"id":69000},"referenzmodelle","Referenzmodelle",[21,69003,69004,69012],{},[24,69005,69006,69007],{},"Netzwerk ist komplex\n",[21,69008,69009],{},[24,69010,69011],{},"Aufteilung in mehrere Schichten um es überschaubarer zu machen",[24,69013,4806,69014],{},[21,69015,69016,69019],{},[24,69017,69018],{},"Wettbewerb wird gefördert: Produkte von verschiedenen Herstellern sind miteinander kompatibel",[24,69020,69021],{},"Veränderungen auf einer Schicht wirken sich nicht auf die anderen aus",[16,69023,69025],{"id":69024},"osi-modell","OSI-Modell",[765,69027,69028,69047],{},[768,69029,69030],{},[771,69031,69032,69037,69042],{},[774,69033,69034],{},[42,69035,69036],{},"Nr.",[774,69038,69039],{},[42,69040,69041],{},"Schicht",[774,69043,69044],{},[42,69045,69046],{},"Aufgabe",[787,69048,69049,69063,69077,69091,69104,69118,69132],{},[771,69050,69051,69055,69060],{},[792,69052,69053],{},[42,69054,14264],{},[792,69056,69057],{},[42,69058,69059],{},"Anwendung",[792,69061,69062],{},"Kommunikation zwischen Prozessen",[771,69064,69065,69069,69074],{},[792,69066,69067],{},[42,69068,14278],{},[792,69070,69071],{},[42,69072,69073],{},"Darstellung",[792,69075,69076],{},"Gemeinsame Darstellung der Daten, die zwischen Anwendungsschicht-Diensten übertragen werden",[771,69078,69079,69083,69088],{},[792,69080,69081],{},[42,69082,14292],{},[792,69084,69085],{},[42,69086,69087],{},"Sitzung",[792,69089,69090],{},"Bereitstellung der Daten für die Darstellungsschicht; Dialogsteuerung und Verwaltung des Datenaustauschs",[771,69092,69093,69097,69101],{},[792,69094,69095],{},[42,69096,2894],{},[792,69098,69099],{},[42,69100,67789],{},[792,69102,69103],{},"Dienste für Segmentierung, Transfer und Zusammenfügen der Daten zwischen End-Geräten",[771,69105,69106,69110,69115],{},[792,69107,69108],{},[42,69109,14318],{},[792,69111,69112],{},[42,69113,69114],{},"Vermittlung",[792,69116,69117],{},"Dienste für Austausch einzelner Datenblöcke über das Netzwerk zwischen Endgeräten",[771,69119,69120,69124,69129],{},[792,69121,69122],{},[42,69123,14206],{},[792,69125,69126],{},[42,69127,69128],{},"Sicherung",[792,69130,69131],{},"Methoden für den Austausch von Daten-Frames zwischen Geräten über gemeinsames Medium",[771,69133,69134,69138,69143],{},[792,69135,69136],{},[42,69137,14223],{},[792,69139,69140],{},[42,69141,69142],{},"Bitübertragung",[792,69144,69145],{},"Beschreiben mechanische, elektrische, funktionale und prozedurale Mittel zum Aktivieren, Verwaltend und Deaktivieren physikalischer Verbindungen zur Bitübertragung zwischen Netzwerk-Geräten",[414,69147,69148,69151],{},[42,69149,69150],{},"Merksatz",": Alle deutschen Studenten trinken verschiedene sorten Bier",[16,69153,69155],{"id":69154},"tcpip-modell","TCP\u002FIP-Modell",[765,69157,69158,69174],{},[768,69159,69160],{},[771,69161,69162,69166,69170],{},[774,69163,69164],{},[42,69165,69036],{},[774,69167,69168],{},[42,69169,69041],{},[774,69171,69172],{},[42,69173,69046],{},[787,69175,69176,69189,69202,69216],{},[771,69177,69178,69182,69186],{},[792,69179,69180],{},[42,69181,2894],{},[792,69183,69184],{},[42,69185,69059],{},[792,69187,69188],{},"Präsentiert Daten; Übernimmt Kodierung und Dialogsteuerung",[771,69190,69191,69195,69199],{},[792,69192,69193],{},[42,69194,14318],{},[792,69196,69197],{},[42,69198,67789],{},[792,69200,69201],{},"Kommunikation zwischen Geräten über Netzwerke",[771,69203,69204,69208,69213],{},[792,69205,69206],{},[42,69207,14206],{},[792,69209,69210],{},[42,69211,69212],{},"Internet",[792,69214,69215],{},"Bestimmt Pfad durch Netzwerke",[771,69217,69218,69222,69227],{},[792,69219,69220],{},[42,69221,14223],{},[792,69223,69224],{},[42,69225,69226],{},"Netzwerkzugriff",[792,69228,69229],{},"Steuert Geräte und Medien, aus denen das Netzwerk besteht",[414,69231,69232,69234],{},[42,69233,69150],{},": Andy Tanzt Nie Disco-Fox",[16,69236,69238],{"id":69237},"gegenüberstellung-osi-tcpip-modell","Gegenüberstellung: OSI- & TCP\u002FIP-Modell",[414,69240,69241],{},[1504,69242],{"alt":269,"src":69243},"\u002Fdownloads\u002FKNT\u002Fimages\u002F3-4-zsmf-sa1_img_1.png",[21,69245,69246,69260,69269],{},[24,69247,69248,69249,69252,69253,8629,69255,7445,69257,69259],{},"TCP fasst die ",[42,69250,69251],{},"Anwendungsschicht"," zusammen, die bei OSI aus ",[42,69254,69059],{},[42,69256,69073],{},[42,69258,69087],{}," besteht",[24,69261,69248,69262,69252,69265,7445,69267,69259],{},[42,69263,69264],{},"Netzwerkzugriffsschicht",[42,69266,69128],{},[42,69268,69142],{},[24,69270,69271,69272],{},"OSI wird eher verwendet, wenn es um die niedrigeren Schichten geht\n",[21,69273,69274],{},[24,69275,69276],{},"Trennung der physikalischen Schicht von der Sicherungsschicht",[11,69278,69280],{"id":69279},"vlsm-variable-length-subnet-mask","VLSM – Variable Length Subnet Mask",[21,69282,69283,69286],{},[24,69284,69285],{},"Immer große Netzte zuerst, da sonst Lücken entstehen können",[24,69287,69288,69289],{},"Anzahl der nutzbaren Adressen ist n-2\n",[21,69290,69291,69294],{},[24,69292,69293],{},"Eine Adresse für die Netzadresse",[24,69295,69296],{},"Eine Adresse für den Broadcast",[11,69298,69300],{"id":69299},"anding","ANDing",[21,69302,69303,69314],{},[24,69304,69305,69306],{},"Berechnen der Netzadresse aus\n",[21,69307,69308,69311],{},[24,69309,69310],{},"IP-Adresse",[24,69312,69313],{},"Subnetzmaske",[24,69315,69316],{},"Durch ANDing lässt sich feststellen, ob zwei IP-Adressen im selben Subnetz sind",[414,69318,69319],{},[1504,69320],{"alt":269,"src":69321},"\u002Fdownloads\u002FKNT\u002Fimages\u002F3-4-zsmf-sa1_img_2.png",{"title":269,"searchDepth":270,"depth":270,"links":69323},[69324,69325,69326,69327],{"id":68970,"depth":270,"text":68971},{"id":69024,"depth":270,"text":69025},{"id":69154,"depth":270,"text":69155},{"id":69237,"depth":270,"text":69238},"Protokolle: Regeln, die festlegen, wie Geräte miteinander kommunizieren",{},{"title":2424},"\u002Ffaecher\u002Fknt\u002F3-4-zsmf-sa1","\u002Fdownloads\u002FKNT\u002FKNT_3-4_ZSMF_SA1.pdf",{"title":6,"description":69328},"faecher\u002Fknt\u002F3-4-zsmf-sa1","KNT","Kommunikations- und Netzwerktechnik","9uHYLS9KzKIdGQb3__-vp9eUXG2yyhDXq6vEMOSl_UI",{"id":69339,"title":301,"body":69340,"class":2421,"description":269,"extension":283,"meta":70076,"navigation":70077,"path":70078,"pdfDownload":70079,"scope":1288,"scopeName":1289,"seo":70080,"stem":70081,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":2431,"__hash__":70082},"faecher\u002Ffaecher\u002Fknt\u002F3-4-zsmf-sa2.md",{"type":8,"value":69341,"toc":70043},[69342,69344,69362,69364,69376,69380,69427,69431,69457,69461,69480,69484,69495,69497,69511,69513,69541,69545,69562,69568,69572,69586,69590,69607,69610,69618,69620,69623,69667,69671,69691,69695,69718,69722,69739,69742,69749,69753,69764,69768,69779,69781,69813,69815,69855,69859,69867,69871,69874,69878,69883,69899,69903,69908,69916,69920,69925,69936,69940,69944,69949,69957,69961,69965,69970,69974,69978,69992,69996,70000,70016,70020,70024],[11,69343,3400],{"id":3399},[21,69345,69346,69348,69350,69352,69354,69358],{},[24,69347,3405],{},[24,69349,3408],{},[24,69351,3411],{},[24,69353,3414],{},[24,69355,69356,3420],{},[42,69357,3419],{},[24,69359,69360,3426],{},[42,69361,3425],{},[16,69363,3430],{"id":3429},[318,69365,69366,69368,69370,69372,69374],{},[24,69367,3435],{},[24,69369,3438],{},[24,69371,3441],{},[24,69373,3444],{},[24,69375,3447],{},[16,69377,69379],{"id":69378},"ressourcendatensätze","Ressourcendatensätze",[765,69381,69382,69394],{},[768,69383,69384],{},[771,69385,69386,69390],{},[774,69387,69388],{},[42,69389,1932],{},[774,69391,69392],{},[42,69393,6733],{},[787,69395,69396,69403,69411,69419],{},[771,69397,69398,69400],{},[792,69399,67087],{},[792,69401,69402],{},"IPv4 Adresse",[771,69404,69405,69408],{},[792,69406,69407],{},"NS",[792,69409,69410],{},"Autoritativer Nameserver",[771,69412,69413,69416],{},[792,69414,69415],{},"AAAA",[792,69417,69418],{},"IPv6 Adresse",[771,69420,69421,69424],{},[792,69422,69423],{},"MX",[792,69425,69426],{},"Mail-Exchange",[16,69428,69430],{"id":69429},"dns-server-vorgang","DNS-Server-Vorgang",[21,69432,69433],{},[24,69434,69435,69436],{},"Server erhält DNS-Abfrage\n",[21,69437,69438,69448,69451,69454],{},[24,69439,69440,69441],{},"Server kann mit eigenen Datensätzen auflösen\n",[21,69442,69443],{},[24,69444,69445],{},[42,69446,69447],{},"Fertig",[24,69449,69450],{},"Server hat keinen passenden Datensatz",[24,69452,69453],{},"Gibt die Abfrage an den nächsten DNS-Server weiter",[24,69455,69456],{},"Sobald der Datensatz von einem anderen Server aufgelöst wurde sendet der DNS-Server die entsprechende Auflösung und speichert diese für einen definierten Zeitraum in den eigenen Datensätzen um eine weiter Abfrage schneller auflösen zu können",[16,69458,69460],{"id":69459},"hierarchie","Hierarchie",[21,69462,69463,69466,69477],{},[24,69464,69465],{},"Namensstruktur wird in kleinere und dadurch überschaubarere Zonen unterteilt",[24,69467,69468,69469],{},"Jeder DNS-Server bedient nur eine dieser Zonen\n",[21,69470,69471,69474],{},[24,69472,69473],{},"Leitet Abfragen außerhalb seiner Zone an zuständige DNS-Server weiter",[24,69475,69476],{},"Eine Zone enthält die DNS-Einträge (Records)",[24,69478,69479],{},"DNS ist dadurch Skalierbar",[470,69481,69483],{"id":69482},"abfolge","Abfolge",[318,69485,69486,69489,69492],{},[24,69487,69488],{},"Root-Level-Domain",[24,69490,69491],{},"Top-Level-Domain (TLD): .net \u002F .de \u002F .com …",[24,69493,69494],{},"Second-Level-Domain: tinquiz.de \u002F shenjasmom.to",[11,69496,3451],{"id":3450},[21,69498,69499,69501,69503,69505],{},[24,69500,3456],{},[24,69502,3459],{},[24,69504,3462],{},[24,69506,3465,69507],{},[21,69508,69509],{},[24,69510,3470],{},[16,69512,3430],{"id":3473},[318,69514,69515,69519,69523,69527],{},[24,69516,69517,3481],{},[42,69518,3480],{},[24,69520,69521,3487],{},[42,69522,3486],{},[24,69524,69525,3493],{},[42,69526,3492],{},[24,69528,69529,69531],{},[42,69530,3498],{},[318,69532,69533,69535],{},[24,69534,3503],{},[24,69536,3506,69537,3510,69539,3513],{},[42,69538,3509],{},[42,69540,3480],{},[11,69542,69544],{"id":69543},"osi-layer-4-transportschicht","OSI Layer 4: Transportschicht",[21,69546,69547,69550,69553,69556,69559],{},[24,69548,69549],{},"Verantwortlich für Kommunikation zwischen Anwendungen auf verschiedenen Hosts",[24,69551,69552],{},"Verwaltet alle Konversationen zwischen Hosts",[24,69554,69555],{},"Segmentiert Daten und setzt Daten zusammen für den Transportweg",[24,69557,69558],{},"Fügt Header-Daten hinzu, damit der Empfänger die Daten richtig interpretiert",[24,69560,69561],{},"Ziel-Anwendung wird über Port-Nummer identifiziert",[414,69563,69564],{},[1504,69565],{"alt":69566,"src":69567},"Пояснительная бригада: разница между TCP и UDP — Журнал «Код ...","\u002Fdownloads\u002FKNT\u002Fimages\u002F3-4-zsmf-sa2_img_1.png",[16,69569,69571],{"id":69570},"tcp-transmission-control-protocol","TCP: Transmission Control Protocol",[21,69573,69574,69577,69580,69583],{},[24,69575,69576],{},"Stellt sicher, dass die Daten beim Ziel ankommen",[24,69578,69579],{},"Teilt Daten in Segmente auf",[24,69581,69582],{},"Zuverlässig",[24,69584,69585],{},"Verbindungsorientiert",[470,69587,69589],{"id":69588},"grundlegende-operationen","Grundlegende Operationen",[21,69591,69592,69595,69598,69601,69604],{},[24,69593,69594],{},"Nummerierung und Nachverfolgung von Datensegmenten",[24,69596,69597],{},"Bestätigung empfangener Daten",[24,69599,69600],{},"Erneute Übertragung wenn keine Bestätigung erfolgt",[24,69602,69603],{},"Sequenzieren von Daten, die ggf. in falscher Reihenfolge angekommen sind",[24,69605,69606],{},"Effiziente Datenrate, die der Empfänger verarbeiten kann",[470,69608,69059],{"id":69609},"anwendung",[21,69611,69612,69615],{},[24,69613,69614],{},"SMTP\u002FIMAP",[24,69616,69617],{},"HTTP\u002FHTTPS",[470,69619,2615],{"id":2614},[414,69621,69622],{},"Header (20 Byte) enthält folgende Daten:",[21,69624,69625,69628,69631,69637,69643,69646,69649,69655,69658,69661,69664],{},[24,69626,69627],{},"Quellport",[24,69629,69630],{},"Zielport",[24,69632,69633,69636],{},[42,69634,69635],{},"Sequenznummer",": Für den Wiederzusammenbau",[24,69638,69639,69642],{},[42,69640,69641],{},"Bestätigungsnummer",": Anzeige, dass Daten erhalten wurden und auf das Nächste Segment gewartet wird",[24,69644,69645],{},"Länge des Headers",[24,69647,69648],{},"Reserviert",[24,69650,69651,69654],{},[42,69652,69653],{},"Steuer-Bit",": Erläutert Zweck und Funktion des Segments",[24,69656,69657],{},"Fenstergröße",[24,69659,69660],{},"Prüfsumme",[24,69662,69663],{},"Dringlichkeit",[24,69665,69666],{},"Optionen",[470,69668,69670],{"id":69669},"drei-wege-handshake","Drei-Wege-Handshake",[318,69672,69673,69679,69685],{},[24,69674,69675,69678],{},[42,69676,69677],{},"SYN",": Initiierende Client fordert eine Kommunikationssitzung an",[24,69680,69681,69684],{},[42,69682,69683],{},"ACK, SYN",": Der Server bestätigt die Kommunikationssitzung und fordert ebenfalls eine an",[24,69686,69687,69690],{},[42,69688,69689],{},"ACK",": Der initiierende Client bestätigt die Kommunikationssitzung",[470,69692,69694],{"id":69693},"beenden-von-sitzungen","Beenden von Sitzungen",[318,69696,69697,69703,69708,69713],{},[24,69698,69699,69702],{},[42,69700,69701],{},"FIN",": Client sendet Segment mit FIN-Flag wenn keine Daten mehr übertragen werden müssen",[24,69704,69705,69707],{},[42,69706,69689],{},": Server bestätigt Ende der Sitzung",[24,69709,69710,69712],{},[42,69711,69701],{},": Server sendet FIN um die Sitzung zu beenden",[24,69714,69715,69717],{},[42,69716,69689],{},": Client bestätigt Ende der Sitzung",[16,69719,69721],{"id":69720},"udp-user-datagram-protocol","UDP: User Datagram Protocol",[21,69723,69724,69727,69730,69733,69736],{},[24,69725,69726],{},"Unzuverlässig",[24,69728,69729],{},"Schnellere Verarbeitung",[24,69731,69732],{},"Teilt Daten in Datagramme auf",[24,69734,69735],{},"Verbindungslos",[24,69737,69738],{},"Keine Bestätigung empfangener Daten",[470,69740,69059],{"id":69741},"anwendung-1",[21,69743,69744,69747],{},[24,69745,69746],{},"VOIP",[24,69748,4262],{},[11,69750,69752],{"id":69751},"vlan","VLAN",[21,69754,69755,69758,69761],{},[24,69756,69757],{},"Logische Segmentierung von Netzwerken",[24,69759,69760],{},"Verhält sich wie eigenes physikalisches Netzwerk (LAN)",[24,69762,69763],{},"VLAN schafft logische Broadcast-Domäne",[16,69765,69767],{"id":69766},"vlan-vs-subnet","VLAN vs. Subnet",[21,69769,69770,69773,69776],{},[24,69771,69772],{},"VLANs trennen auf logischer Ebene auf OSI-Layer 2 Netzwerke voneinander",[24,69774,69775],{},"Subnetting ermöglicht es auf OSI-Layer 3 ein großes Netz in mehrere kleine Subnetze aufzuteilen",[24,69777,69778],{},"Damit Clients im selben VLAN miteinander kommunizieren können müssen sie ebenfalls im selben Subnetz sein (ohne Router)",[16,69780,1014],{"id":1013},[21,69782,69783,69789,69795,69801,69807],{},[24,69784,69785,69788],{},[42,69786,69787],{},"Kleine Broadcast-Domänen",": Segmentierung reduziert die Anzahl der Clients in einer großen Broadcast-Domäne",[24,69790,69791,69794],{},[42,69792,69793],{},"Erhöhte Sicherheit",": Nur Clients im selben VLAN können miteinander kommunizieren",[24,69796,69797,69800],{},[42,69798,69799],{},"Reduzierte Kosten:"," VLANs verwenden die vorhandene Bandbreite effizienter",[24,69802,69803,69806],{},[42,69804,69805],{},"Mehr Leistung",": Kleine Broadcast-Domänen reduzieren unnötigen Datenverkehr",[24,69808,69809,69812],{},[42,69810,69811],{},"Einfaches Management",": VLANs fassen Geräte \u002F Benutzer zusammen",[16,69814,1432],{"id":1431},[21,69816,69817,69823,69829,69843,69849],{},[24,69818,69819,69822],{},[42,69820,69821],{},"Standard-VLAN",": Wenn kein VLAN konfiguriert ist liegt das VLAN 1 an",[24,69824,69825,69828],{},[42,69826,69827],{},"Daten-VLAN",": Trennung von benutzergeneriertem Datenverkehr",[24,69830,69831,69834,69835],{},[42,69832,69833],{},"Natives-VLAN",": Zwischen Trunk-Ports (IEEE 802.1Q)\n",[21,69836,69837,69840],{},[24,69838,69839],{},"Untagged Frames werden an einem Trunk-Port in das Native-VLAN weitergeleitet",[24,69841,69842],{},"Frames mit einem Tag des Nativen-VLANs werden verworfen",[24,69844,69845,69848],{},[42,69846,69847],{},"Management-VLAN",": Netzwerkverwaltungsverkehr (SSH, SNMP usw.)",[24,69850,69851,69854],{},[42,69852,69853],{},"Sprach-VLAN",": VoIP benötigt ein priorisiertes VLAN",[16,69856,69858],{"id":69857},"vlan-trunk-ieee-8021q","VLAN-Trunk (IEEE 802.1Q)",[21,69860,69861,69864],{},[24,69862,69863],{},"Strecke zwischen zwei Switches über die mehrere unterschiedliche VLANs laufen",[24,69865,69866],{},"VLANs auf einem Trunk-Port müssen getagged werden",[16,69868,69870],{"id":69869},"inter-vlan-routing","Inter-VLAN-Routing",[414,69872,69873],{},"Inter-VLAN-Routing ist der Prozess der Weiterleitung von Netzwerkverkehr von einem VLAN zu einem anderen VLAN",[470,69875,69877],{"id":69876},"legacy-inter-vlan-routing","Legacy-Inter-VLAN-Routing",[414,69879,69880],{},[1504,69881],{"alt":269,"src":69882},"\u002Fdownloads\u002FKNT\u002Fimages\u002F3-4-zsmf-sa2_img_2.png",[21,69884,69885,69888,69891],{},[24,69886,69887],{},"Router mit mehreren Ethernet-Schnittstellen",[24,69889,69890],{},"Jede Schnittstelle ist mit einem Switchport in einem VLAN verbunden und stellt das Standardgateway des VLANs dar",[24,69892,69893,69894],{},"Bei vielen VLANs werden am Switch und am Router viele Ports benötigt\n",[21,69895,69896],{},[24,69897,69898],{},"Schlecht Skalierbar",[470,69900,69902],{"id":69901},"router-on-a-stick","Router-on-a-Stick",[414,69904,69905],{},[1504,69906],{"alt":269,"src":69907},"\u002Fdownloads\u002FKNT\u002Fimages\u002F3-4-zsmf-sa2_img_3.png",[21,69909,69910,69913],{},[24,69911,69912],{},"Weiterentwicklung des Legacy-Inter-VLAN-Routings",[24,69914,69915],{},"Statt mehreren Ports zwischen Switch und Router wird ein einziger Trunk-Port verwendet",[470,69917,69919],{"id":69918},"layer-3-switch","Layer 3 Switch",[414,69921,69922],{},[1504,69923],{"alt":269,"src":69924},"\u002Fdownloads\u002FKNT\u002Fimages\u002F3-4-zsmf-sa2_img_4.png",[21,69926,69927,69930,69933],{},[24,69928,69929],{},"Routing wird innerhalb des Layer-3-Switches von virtuellen Interfaces übernommen",[24,69931,69932],{},"Routing ist dadurch schneller und benötigt keinen externen Router",[24,69934,69935],{},"Layer-3-Switches sind teuer",[11,69937,69939],{"id":69938},"konsolenbefehle","Konsolenbefehle",[16,69941,69943],{"id":69942},"vlan-erstellen","VLAN erstellen",[21,69945,69946],{},[24,69947,69948],{},"Globaler Konfigmodus",[318,69950,69951,69954],{},[24,69952,69953],{},"VLAN erstellen: vlan \u003Cvlan-id>",[24,69955,69956],{},"VLAN-Namen vergeben: name \u003Cvlan-name>",[16,69958,69960],{"id":69959},"vlan-löschen","VLAN löschen",[21,69962,69963],{},[24,69964,69948],{},[318,69966,69967],{},[24,69968,69969],{},"VLAN löschen: no vlan \u003Cvlan-id>",[16,69971,69973],{"id":69972},"vlan-portzuweisung","VLAN Portzuweisung",[21,69975,69976],{},[24,69977,69948],{},[318,69979,69980,69983,69986,69989],{},[24,69981,69982],{},"Interface-Konfig: interface \u003Cinteface-id>",[24,69984,69985],{},"Accessmodus setzen: switchport mode access",[24,69987,69988],{},"Port zu VLAN zuweisen: switchport access vlan \u003Cvlan-id>",[24,69990,69991],{},"Interface aktivieren: no shutdown",[16,69993,69995],{"id":69994},"vlan-trunk-konfigurieren","VLAN Trunk konfigurieren",[21,69997,69998],{},[24,69999,69948],{},[318,70001,70002,70005,70008,70011,70014],{},[24,70003,70004],{},"Interface-Konfig: interface \u003Cinterface-id>",[24,70006,70007],{},"Trunkmodus setzen: switchport mode trunk",[24,70009,70010],{},"Ggf. Natives VLAN ändern: switchport trunk native vlan \u003Cvlan-id>",[24,70012,70013],{},"Angeben welche VLANs erlaubt sind (komma separiert): switchport trunk allowed vlan \u003Cvlan-list>",[24,70015,69991],{},[16,70017,70019],{"id":70018},"vlan-trunk-am-router-konfigurieren","VLAN Trunk am Router konfigurieren",[21,70021,70022],{},[24,70023,69948],{},[318,70025,70026,70029,70032,70035,70038,70041],{},[24,70027,70028],{},"Subinterface-Konfig (G0\u002F0\u002F1.10 -> 10 ist vlan-id): interface \u003Cinterface-id>",[24,70030,70031],{},"Dot1Q aktivieren: encapsulation dot1Q \u003Cvlan-id>",[24,70033,70034],{},"IP-Adresse konfigurieren: ip add \u003Cip> \u003Csubnetmask>",[24,70036,70037],{},"Subinterface verlassen: exit",[24,70039,70040],{},"Volle Interface-Konfig (G0\u002F0\u002F1): interface \u003Cinterface-id>",[24,70042,69991],{},{"title":269,"searchDepth":270,"depth":270,"links":70044},[70045,70046,70047,70048,70051,70052,70059,70062,70063,70064,70065,70066,70071,70072,70073,70074,70075],{"id":3429,"depth":270,"text":3430},{"id":69378,"depth":270,"text":69379},{"id":69429,"depth":270,"text":69430},{"id":69459,"depth":270,"text":69460,"children":70049},[70050],{"id":69482,"depth":1263,"text":69483},{"id":3473,"depth":270,"text":3430},{"id":69570,"depth":270,"text":69571,"children":70053},[70054,70055,70056,70057,70058],{"id":69588,"depth":1263,"text":69589},{"id":69609,"depth":1263,"text":69059},{"id":2614,"depth":1263,"text":2615},{"id":69669,"depth":1263,"text":69670},{"id":69693,"depth":1263,"text":69694},{"id":69720,"depth":270,"text":69721,"children":70060},[70061],{"id":69741,"depth":1263,"text":69059},{"id":69766,"depth":270,"text":69767},{"id":1013,"depth":270,"text":1014},{"id":1431,"depth":270,"text":1432},{"id":69857,"depth":270,"text":69858},{"id":69869,"depth":270,"text":69870,"children":70067},[70068,70069,70070],{"id":69876,"depth":1263,"text":69877},{"id":69901,"depth":1263,"text":69902},{"id":69918,"depth":1263,"text":69919},{"id":69942,"depth":270,"text":69943},{"id":69959,"depth":270,"text":69960},{"id":69972,"depth":270,"text":69973},{"id":69994,"depth":270,"text":69995},{"id":70018,"depth":270,"text":70019},{},{"title":3985},"\u002Ffaecher\u002Fknt\u002F3-4-zsmf-sa2","\u002Fdownloads\u002FKNT\u002FKNT_3-4_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fknt\u002F3-4-zsmf-sa2","qdTa19OHM_gHOwFOMIgzUFuIlrw0YxyYQKK9ENcWItc",{"id":70084,"title":6,"body":70085,"class":282,"description":70093,"extension":283,"meta":70538,"navigation":70539,"path":70540,"pdfDownload":70541,"scope":289,"scopeName":290,"seo":70542,"stem":70543,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":297,"__hash__":70544},"faecher\u002Ffaecher\u002Fknt\u002F5-6-zsmf-sa1.md",{"type":8,"value":70086,"toc":70510},[70087,70091,70094,70098,70101,70105,70109,70112,70119,70153,70163,70167,70170,70174,70185,70190,70200,70210,70217,70222,70226,70229,70237,70241,70244,70247,70251,70262,70266,70270,70301,70306,70310,70336,70341,70345,70348,70351,70356,70360,70364,70371,70375,70380,70384,70394,70398,70406,70409,70431,70435,70438,70442,70447,70449,70463,70465,70493,70498,70500,70502,70504],[11,70088,70090],{"id":70089},"stp-spanning-tree-protocol","STP: Spanning-Tree-Protocol",[414,70092,70093],{},"Mit Hilfe von STP lassen sich Redundanzen im Netzwerk bilden. Ohne STP würden in diesen Topologien Schleifen auf Layer-2 entstehen, die das gesamte Netzwerk lahmlegen können.",[16,70095,70097],{"id":70096},"broadcast-sturm","Broadcast-Sturm",[414,70099,70100],{},"Wenn Schleifen existieren und STP nicht aktiviert ist, werden Broadcast-Pakete (z.B. ARP) von einem Client an jedem Switch an alle anderen Ports weitergeleitet. Bei Schleifen erhält ein Switch das gleiche Paket nach kurzer Zeit wieder und leitet es erneut an alle anderen Ports weiter. Die Anzahl der Pakete im Netz steigt somit schnell an und überlastet die Infrastruktur, wodurch andere Pakete vernachlässigt werden.",[16,70102,70104],{"id":70103},"stp-algorithmus","STP-Algorithmus",[470,70106,70108],{"id":70107},"_1-root-bridge-auswählen","1. Root-Bridge auswählen",[414,70110,70111],{},"Es wird eine Root-Bridge ermittelt. Sie dient als Zentrum der STP-Topologie. Alle anderen Switches ermitteln den kostengünstigsten Pfad zur Root-Bridge.",[414,70113,70114,70115,70118],{},"Zur Ermittlung der Root-Bridge bildet jeder Switch eine ",[42,70116,70117],{},"Bridge-ID",". Diese ID besteht aus folgenden Elementen:",[21,70120,70121,70133,70143],{},[24,70122,70123,70125],{},[42,70124,1863],{},[21,70126,70127,70130],{},[24,70128,70129],{},"Kann in Schritten von 4096 gewählt werden",[24,70131,70132],{},"Bereich von 0 bis 61440",[24,70134,70135,70138],{},[42,70136,70137],{},"Erweiterte System-ID",[21,70139,70140],{},[24,70141,70142],{},"Entspricht der VLAN-ID",[24,70144,70145,70148],{},[42,70146,70147],{},"MAC-Adresse",[21,70149,70150],{},[24,70151,70152],{},"Entscheiden, wenn die Priorität und Erweiterte-System-ID bei zwei oder mehr Switches identisch sind",[414,70154,70155,70156,70159,70160,7834],{},"Der Switch mit der ",[42,70157,70158],{},"niedrigsten BID"," wird zur ",[42,70161,70162],{},"Root-Bridge",[470,70164,70166],{"id":70165},"_2-pfadermittlung","2. Pfadermittlung",[414,70168,70169],{},"Wenn eine Root-Bridge entschieden wurde, werden die kostengünstigsten Pfade von allen anderen Switches zur Root-Bridge ermittelt. Dabei ist die Geschwindigkeit der Strecken relevant.",[470,70171,70173],{"id":70172},"_3-ermitteln-der-port-zustände","3. Ermitteln der Port-Zustände",[414,70175,70176,70177,70180,70181,70184],{},"Jeder Switch, der nicht die Root-Bridge ist, wählt genau einen Root-Port aus. Der ",[42,70178,70179],{},"Root-Port"," ist der Port am Switch, der ",[42,70182,70183],{},"der Root-Bridge am nächsten"," ist.",[414,70186,70187],{},[1504,70188],{"alt":269,"src":70189},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_1.png",[414,70191,70192,70193,70196,70197,7834],{},"Alle Ports ",[42,70194,70195],{},"die gegenüber eines Root-Ports"," liegen werden zu einem ",[42,70198,70199],{},"Designated-Port",[414,70201,70202,70203,70206,70207],{},"Bei einer Verbindung zwischen zwei Switches, bei denen keiner der beiden Ports ein Root-Port ist, wird der Switch Port am Switch mit ",[42,70204,70205],{},"dem kostengünstigeren Pfad der Designated-Port",". Sind die Pfadkosten identisch entscheidet die ",[42,70208,70209],{},"kleinere Bridge-ID.",[414,70211,70212,70213,70216],{},"Alle anderen Ports zwischen Switches werden zu ",[42,70214,70215],{},"Alternate-Ports\u002FBlocked-Ports",". Über diese Leitungen wird die Kommunikation gesperrt und dadurch Schleifen verhindert.",[414,70218,70219],{},[1504,70220],{"alt":269,"src":70221},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_2.png",[470,70223,70225],{"id":70224},"_4-neuberechnung-bei-topologie-änderung","4. Neuberechnung bei Topologie Änderung",[414,70227,70228],{},"Wenn ein Switch oder eine Leitung ausfällt wird die STP Topologie neuberechnet. Dabei werden zuvor geblockte Ports ggf. wieder freigegeben.",[414,70230,70231,70234],{},[1504,70232],{"alt":269,"src":70233},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_3.png",[1504,70235],{"alt":269,"src":70236},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_4.png",[11,70238,70240],{"id":70239},"etherchannel","Etherchannel",[414,70242,70243],{},"Etherchannel aggregiert Verbindungen zwischen Geräten zu Bündeln. Dadurch können eine höhere Bandbreite, Ausfallsicherheit, Fehlertoleranz und Lastverteilung erreicht werden.",[414,70245,70246],{},"Es können nur Schnittstellen des gleichen Typs und maximal 8 separate Schnittstellen aggregiert werden.",[16,70248,70250],{"id":70249},"konfigurationsrichtlinien","Konfigurationsrichtlinien",[21,70252,70253,70256,70259],{},[24,70254,70255],{},"Schnittstellen müssen Etherchannel unterstützen",[24,70257,70258],{},"Geschwindigkeit und Duplex-Modus müssen identisch sein",[24,70260,70261],{},"Alle Schnittstellen müssen dieselben VLANs haben",[16,70263,70265],{"id":70264},"aushandlungsprotokolle","Aushandlungsprotokolle",[470,70267,70269],{"id":70268},"pagp-port-aggregation-protocol","PAgP: Port Aggregation Protocol",[21,70271,70272,70275,70278],{},[24,70273,70274],{},"Cisco-Proprietär",[24,70276,70277],{},"Verwaltet die Bildung des Etherchannels und falls aktiviert den erstellten Etherchannel",[24,70279,70280,70281],{},"Switch Zustände:\n",[21,70282,70283,70289,70295],{},[24,70284,70285,70288],{},[42,70286,70287],{},"On",": Erzwingt die Erstellung eines Channels ohne PAgP",[24,70290,70291,70294],{},[42,70292,70293],{},"PAgP desirable",": Verhandelt aktiv die Bildung eines Etherchannels",[24,70296,70297,70300],{},[42,70298,70299],{},"PAgP auto",": Ist bereit zur Verhandlung über PAgP aber initiiert nichts. Reagiert nur.",[414,70302,70303],{},[1504,70304],{"alt":269,"src":70305},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_5.png",[470,70307,70309],{"id":70308},"lacp-port-aggregation-control-protocol","LACP: Port Aggregation Control Protocol",[21,70311,70312,70315],{},[24,70313,70314],{},"Ideal für Multivendor-Umgebungen",[24,70316,70317,70318],{},"Ähnliche Switch Zustände wie PAgP:\n",[21,70319,70320,70325,70330],{},[24,70321,70322,70324],{},[42,70323,70287],{},": Erzwingt die Erstellung eines Channels ohne LACP",[24,70326,70327,70294],{},[42,70328,70329],{},"LACP active",[24,70331,70332,70335],{},[42,70333,70334],{},"LACP inactive",": Ist bereit zur Verhandlung über LACP aber initiiert nichts. Reagiert nur.",[414,70337,70338],{},[1504,70339],{"alt":269,"src":70340},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_6.png",[11,70342,70344],{"id":70343},"first-hop-redundancy-protokolle","First-Hop-Redundancy Protokolle",[414,70346,70347],{},"In einem Netzwerk in dem Clients einen einzelnen Router als Standardgateway hinterlegt haben, sind eben diese Clients vom externen Netz getrennt sobald der Router ausfällt. Um das zu verhindern werden First-Hop Redundancy-Protokolle verwendet.",[414,70349,70350],{},"Um einen Single-Point-of-Failure zu verhindern bietet es sich an eine virtuelle IP-Adresse als Standardgateway zu verwenden, hinter der sich mehrere Router verbergen. Über die virtuelle IP-Adresse können Pakete nach extern weitergeleitet werden, auch wenn ein Router ausfällt.",[414,70352,70353],{},[1504,70354],{"alt":269,"src":70355},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_7.png",[16,70357,70359],{"id":70358},"verfügbare-protokolle","Verfügbare Protokolle",[470,70361,70363],{"id":70362},"hsrp-hot-standby-router-protocol","HSRP: Hot Standby Router Protocol",[21,70365,70366,70368],{},[24,70367,70274],{},[24,70369,70370],{},"Überwacht und verwaltet aktive und Standby-Router",[470,70372,70374],{"id":70373},"vrrp-virtual-router-redundancy-protocol","VRRP: Virtual Router Redundancy Protocol",[21,70376,70377],{},[24,70378,70379],{},"Ein Router wird Master, alle anderen werden Backup",[470,70381,70383],{"id":70382},"glbp-gateway-load-balancing-protocol","GLBP: Gateway Load Balancing Protocol",[21,70385,70386,70388,70391],{},[24,70387,70274],{},[24,70389,70390],{},"Wie HSRP\u002FVRRP",[24,70392,70393],{},"Zusätzlich Load Balancing",[470,70395,70397],{"id":70396},"irdp-icmp-router-detection-protocol","IRDP: ICMP Router Detection Protocol",[21,70399,70400,70403],{},[24,70401,70402],{},"Altes Protokoll",[24,70404,70405],{},"Erlaubt es Clients einen anderen Router zu finden, der eine Verbindung zu externen Netzen hat",[16,70407,70363],{"id":70408},"hsrp-hot-standby-router-protocol-1",[21,70410,70411,70414,70425,70428],{},[24,70412,70413],{},"Bestimmt in einer Gruppe von Geräten den aktiven Router und die Standby-Router",[24,70415,70416,70417],{},"Aktiver Router:\n",[21,70418,70419,70422],{},[24,70420,70421],{},"leitet Pakete weiter",[24,70423,70424],{},"Standardmäßig der Router mit der höchsten IP",[24,70426,70427],{},"Standby-Router: springt für aktiven Router im Falle eines Ausfalls ein",[24,70429,70430],{},"HSRP-Priorität: Kann verwendet werden um den aktiven Router festzulegen",[470,70432,70434],{"id":70433},"hsrp-präemotion","HSRP-Präemotion",[414,70436,70437],{},"Wenn ein Router mit einer höheren Priorität online kommt kann dieser das Auswahlverfahren erneut erzwingen. Wenn Deaktiviert bleibt der aktuelle Router der aktive Router, auch wenn er ggf. eine niedrigere Priorität hat",[470,70439,70441],{"id":70440},"zustände","Zustände",[414,70443,70444],{},[1504,70445],{"alt":269,"src":70446},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_8.png",[11,70448,3451],{"id":3450},[21,70450,70451,70453,70455,70457],{},[24,70452,3456],{},[24,70454,3459],{},[24,70456,3462],{},[24,70458,3465,70459],{},[21,70460,70461],{},[24,70462,3470],{},[16,70464,3430],{"id":3429},[318,70466,70467,70471,70475,70479],{},[24,70468,70469,5291],{},[42,70470,3480],{},[24,70472,70473,3487],{},[42,70474,3486],{},[24,70476,70477,5300],{},[42,70478,3492],{},[24,70480,70481,70483],{},[42,70482,3498],{},[318,70484,70485,70487],{},[24,70486,3503],{},[24,70488,3506,70489,3510,70491,3513],{},[42,70490,3509],{},[42,70492,3480],{},[414,70494,70495],{},[1504,70496],{"alt":269,"src":70497},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa1_img_9.png",[16,70499,5318],{"id":5317},[414,70501,5321],{},[470,70503,3430],{"id":3473},[318,70505,70506,70508],{},[24,70507,5328],{},[24,70509,5331],{},{"title":269,"searchDepth":270,"depth":270,"links":70511},[70512,70513,70519,70520,70524,70530,70534,70535],{"id":70096,"depth":270,"text":70097},{"id":70103,"depth":270,"text":70104,"children":70514},[70515,70516,70517,70518],{"id":70107,"depth":1263,"text":70108},{"id":70165,"depth":1263,"text":70166},{"id":70172,"depth":1263,"text":70173},{"id":70224,"depth":1263,"text":70225},{"id":70249,"depth":270,"text":70250},{"id":70264,"depth":270,"text":70265,"children":70521},[70522,70523],{"id":70268,"depth":1263,"text":70269},{"id":70308,"depth":1263,"text":70309},{"id":70358,"depth":270,"text":70359,"children":70525},[70526,70527,70528,70529],{"id":70362,"depth":1263,"text":70363},{"id":70373,"depth":1263,"text":70374},{"id":70382,"depth":1263,"text":70383},{"id":70396,"depth":1263,"text":70397},{"id":70408,"depth":270,"text":70363,"children":70531},[70532,70533],{"id":70433,"depth":1263,"text":70434},{"id":70440,"depth":1263,"text":70441},{"id":3429,"depth":270,"text":3430},{"id":5317,"depth":270,"text":5318,"children":70536},[70537],{"id":3473,"depth":1263,"text":3430},{},{"title":286},"\u002Ffaecher\u002Fknt\u002F5-6-zsmf-sa1","\u002Fdownloads\u002FKNT\u002FKNT_5-6_ZSMF_SA1.pdf",{"title":6,"description":70093},"faecher\u002Fknt\u002F5-6-zsmf-sa1","5cyUo1k9FL2ELsnONgWOHJ0KGoS5RnfzGqO50KDHOJ0",{"id":70546,"title":301,"body":70547,"class":282,"description":269,"extension":283,"meta":71113,"navigation":71114,"path":71115,"pdfDownload":71116,"scope":1288,"scopeName":1289,"seo":71117,"stem":71118,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":297,"__hash__":71119},"faecher\u002Ffaecher\u002Fknt\u002F5-6-zsmf-sa2.md",{"type":8,"value":70548,"toc":71092},[70549,70553,70564,70568,70576,70580,70622,70626,70648,70652,70655,70659,70701,70705,70731,70735,70743,70747,70752,70754,70779,70783,70794,70798,70802,70848,70852,70860,70862,70867,70919,70921,70925,70947,70951,70954,70957,70960,70963,70966,70969,70972,70975,70978,70981,70983,70985,70988,70990,70993,70996,70999,71004,71009,71014,71019,71024,71029,71034,71037,71040,71043,71046,71049,71051,71053,71056,71059,71062,71065,71068,71070,71072,71075,71081,71084,71089],[11,70550,70552],{"id":70551},"routing","Routing",[21,70554,70555,70558],{},[24,70556,70557],{},"Den besten Pfad zum Weiterleiten eines Pakets anhand von Routing-Tabellen zu ermitteln",[24,70559,70560,70563],{},[42,70561,70562],{},"Next-Hop",": Bezeichnet den nächsten Router (oder das nächste Gerät) auf dem Weg zum Ziel, an den ein Paket weitergeleitet wird. Dieser Router muss direkt erreichbar sein",[16,70565,70567],{"id":70566},"routing-tabelle","Routing-Tabelle",[21,70569,70570],{},[24,70571,70572,70575],{},[42,70573,70574],{},"show ip route",": Routing-Tabelle anzeigen lassen",[470,70577,70579],{"id":70578},"routing-codes","Routing-Codes",[21,70581,70582,70588,70594,70600,70606,70612],{},[24,70583,70584,70587],{},[42,70585,70586],{},"L – Local",": Router-Adresse des Routers im direkt angeschlossenen Netz – Immer \u002F32",[24,70589,70590,70593],{},[42,70591,70592],{},"C – Connected",": Netz, das direkt am Router angeschlossen ist",[24,70595,70596,70599],{},[42,70597,70598],{},"S – Static",": Statisch konfigurierte Route (Manuell konfiguriert)",[24,70601,70602,70605],{},[42,70603,70604],{},"O – OSPF",": Über OSPF (Open-Shortest-Path-First) gelernt",[24,70607,70608,70611],{},[42,70609,70610],{},"R – RIP",": Über RIP (Routing Information Protocol) gelernt",[24,70613,70614,70621],{},[406,70615,70616,70620],{},[406,70617,70618],{},[4173,70619,14462],{}," - Stern","* an beliebigem Code: Markiert die Standardroute – z.B.: S*",[470,70623,70625],{"id":70624},"administrative-distanz","Administrative Distanz",[21,70627,70628,70631,70634],{},[24,70629,70630],{},"Stellt Zuverlässigkeit der Route dar",[24,70632,70633],{},"Je niedriger die Zahl, desto zuverlässiger",[24,70635,70636,70637],{},"Standard ADs:\n",[21,70638,70639,70642,70645],{},[24,70640,70641],{},"Direkt verbunden: 0",[24,70643,70644],{},"Statisch: 1",[24,70646,70647],{},"OSPF: 110",[470,70649,70651],{"id":70650},"eintrag-aufbau","Eintrag Aufbau",[414,70653,70654],{},"\u003CCode> \u003CZielnetz> \u003CSubnetzmaske> \u003CAusgangsport\u002FNextHop\u002F Ausgangsport NextHop> \u003CAdminDist>",[470,70656,70658],{"id":70657},"erstellen-der-routing-tabelle-1416","Erstellen der Routing-Tabelle (14.1.6)",[21,70660,70661,70667,70687],{},[24,70662,70663,70666],{},[42,70664,70665],{},"Direkt verbundene Netzwerke",": Netze, die auf aktiven Schnittstellen des Routers konfiguriert sind",[24,70668,70669,70672,70673],{},[42,70670,70671],{},"Remote Netzwerke",": Netzwerke, die nicht direkt am Router anliegen\n",[21,70674,70675,70681],{},[24,70676,70677,70680],{},[42,70678,70679],{},"Statische Routen",": Manuelles Bekanntmachen eines Netzes",[24,70682,70683,70686],{},[42,70684,70685],{},"Dynamische Routing Protokolle (OSPF etc.):"," Wird zur Tabelle hinzugefügt, wenn Dyn. Routing-Protokolle etwas über entfernte Netze erfahren",[24,70688,70689,70692,70693],{},[42,70690,70691],{},"Standardroute",": Gibt Next-Hop-Router an, wenn keiner der Tabellen-Einträge passt. In der Hoffnung, dass der nächste Router das Zielnetz kennt.\n",[21,70694,70695,70698],{},[24,70696,70697],{},"Kann statisch konfiguriert oder dynamisch gelernt werden",[24,70699,70700],{},"Routeneintrag immer: 0.0.0.0\u002F0",[16,70702,70704],{"id":70703},"statisches-routing","Statisches Routing",[21,70706,70707,70713,70719,70725],{},[24,70708,70709,70712],{},[42,70710,70711],{},"ip route \u003CEintrag ohne Code>:"," Konfiguriert eine statische Route",[24,70714,70715,70718],{},[42,70716,70717],{},"Next-Hop-Route",": Ip route 0.0.0.0 0.0.0.0 17216.0.2 (Zieladresse)",[24,70720,70721,70724],{},[42,70722,70723],{},"Direkt-verbundene Route",": Ip route 0.0.0.0 0.0.0.0 Fa0\u002F2 (Ausgangsport)",[24,70726,70727,70730],{},[42,70728,70729],{},"Fully Qualified Route",": Ip route 0.0.0.0 0.0.0.0 Fa0\u002F2 17216.0.2 (Ausgangsport und Zieladresse)",[470,70732,70734],{"id":70733},"floating-static-route","Floating Static Route",[21,70736,70737,70740],{},[24,70738,70739],{},"Wird als Backup-Route für eine andere Route verwendet",[24,70741,70742],{},"Lösung über Administrative Distanz -> Floating Static Route hat eine höhere AD als die primäre Route",[470,70744,70746],{"id":70745},"summary-static-route","Summary Static Route",[21,70748,70749],{},[24,70750,70751],{},"Mehrere Netze können zusammengefasst werden, indem man eine breitere Subnetzmaske wählt",[475,70753,763],{"id":762},[21,70755,70756,70759,70762,70765,70772],{},[24,70757,70758],{},"10.40.1.0\u002F24",[24,70760,70761],{},"10.40.2.0\u002F24",[24,70763,70764],{},"10.40.3.0\u002F24",[24,70766,70767,70768,70771],{},"Kann unter ",[42,70769,70770],{},"10.40.0.0\u002F16"," zusammengefasst werden",[24,70773,70774,70775,70778],{},"Alternativ auch enger als ",[42,70776,70777],{},"10.40.0.0\u002F22"," -> umfasst 10.40.0.0 – 10.40.3.255",[16,70780,70782],{"id":70781},"dynamisches-routing","Dynamisches Routing",[21,70784,70785,70788,70791],{},[24,70786,70787],{},"Router tauschen Informationen über Remote-Netze miteinander aus",[24,70789,70790],{},"Bei Topologie-Änderungen kann schnell ein neuer bester Pfad ermittelt werden",[24,70792,70793],{},"Protokolle: OSPF, RIP",[16,70795,70797],{"id":70796},"paketweiterleitung","Paketweiterleitung",[470,70799,70801],{"id":70800},"entscheidungsprozess","Entscheidungsprozess",[318,70803,70804,70807,70810],{},[24,70805,70806],{},"Router erhält Paket",[24,70808,70809],{},"Router extrahiert die Ziel-IP-Adresse",[24,70811,70812,70813],{},"Router vergleicht die Ziel-IP-Adresse mit seiner Routing-Tabelle auf die längste Übereinstimmung\n",[318,70814,70815,70832],{},[24,70816,70817,70818],{},"Router findet einen passenden Eintrag in der Routing Tabelle\n",[318,70819,70820,70826],{},[24,70821,70822,70825],{},[42,70823,70824],{},"Eintrag zeigt auf direkt verbundenes Netz",": Paket wird an Zielgerät geleitet (Ggf. ARP-Request notwendig)",[24,70827,70828,70831],{},[42,70829,70830],{},"Eintrag zeigt auf remote Netz",": Paket wird an Next-Hop weitergeleitet",[24,70833,70834,70835],{},"Router findet keinen Eintrag in der Routing Tabelle\n",[318,70836,70837,70842],{},[24,70838,70839,70831],{},[42,70840,70841],{},"Es ist eine Standardroute konfiguriert",[24,70843,70844,70847],{},[42,70845,70846],{},"Es ist keine Standardroute konfiguriert",": Paket wird gelöscht",[470,70849,70851],{"id":70850},"end-to-end-weiterleitung","End-to-End-Weiterleitung",[21,70853,70854,70857],{},[24,70855,70856],{},"Bei der Weiterleitung wird das Layer-3 Paket (IP) nicht verändert. Lediglich die Layer-2 (MAC) Informationen ändern sich ständig",[24,70858,70859],{},"Falls keine Layer-2 Informationen am bearbeitenden Gerät vorliegen, muss erst ein ARP-Request durchgeführt werden",[475,70861,763],{"id":65933},[414,70863,70864],{},[1504,70865],{"alt":269,"src":70866},"\u002Fdownloads\u002FKNT\u002Fimages\u002F5-6-zsmf-sa2_img_1.png",[318,70868,70869,70880,70891,70905,70916],{},[24,70870,70871,70872],{},"PC1 weiß, dass PC2 nicht im eigenen Netz ist -> Sendet Paket ans Standardgateway\n",[318,70873,70874,70877],{},[24,70875,70876],{},"Quell-MAC: PC1",[24,70878,70879],{},"Ziel-MAC: R1",[24,70881,70882,70883],{},"R1 weiß, dass es kein direkt angebundenes Netzwerk ist. Er hat allerdings einen Routeneintrag in dem R2 als Next-Hop für das Netz angegeben wird\n",[318,70884,70885,70888],{},[24,70886,70887],{},"Quell-MAC: R1",[24,70889,70890],{},"Ziel-MAC: R2",[24,70892,70893,70894],{},"R2 weiß, dass es kein direkt angebundenes Netzwerk ist. Er hat allerdings einen Routeneintrag in dem R3 als Next-Hop angegeben wird.\n",[318,70895,70896,70899,70902],{},[24,70897,70898],{},"Quell-MAC: \u002F",[24,70900,70901],{},"Ziel-MAC: 0x8F (Layer-2 Broadcast)",[24,70903,70904],{},"R2 und R3 sind über eine serielle Schnittstelle miteinander verbunden -> R2 muss eine Layer-3 Broadcast-Adresse verwenden und keine Quell-Adresse angeben",[24,70906,70907,70908],{},"R3 weiß, dass es ein direkt verbundenes Netzwerk ist. Er kann die MAC-Adresse des Endgeräts als Zieladresse hinterlegen\n",[318,70909,70910,70913],{},[24,70911,70912],{},"Quell-MAC: R3",[24,70914,70915],{},"Ziel-MAC: PC2",[24,70917,70918],{},"PC2 empfängt Paket auf seiner MAC-Adresse und erkennt, dass es sich um seine IP-Adresse handelt (die IP wurde nie geändert). Es muss also sein Paket sein",[16,70920,4283],{"id":4282},[470,70922,70924],{"id":70923},"überprüfungsbefehle","Überprüfungsbefehle",[21,70926,70927,70930,70933,70936,70939,70941,70944],{},[24,70928,70929],{},"show ip interface brief",[24,70931,70932],{},"show running-config interface interface-type number",[24,70934,70935],{},"show interfaces",[24,70937,70938],{},"show ip interface",[24,70940,70574],{},[24,70942,70943],{},"ping",[24,70945,70946],{},"traceroute",[470,70948,70950],{"id":70949},"vollständige-konfiguration","Vollständige Konfiguration",[414,70952,70953],{},"Router> enable",[414,70955,70956],{},"Router# configure terminal",[414,70958,70959],{},"Router(config)# hostname R1",[414,70961,70962],{},"R1(config)# enable secret class",[414,70964,70965],{},"R1(config)# line console 0",[414,70967,70968],{},"R1(config-line)# logging synchronous",[414,70970,70971],{},"R1(config-line)# password cisco",[414,70973,70974],{},"R1(config-line)# login",[414,70976,70977],{},"R1(config-line)# exit",[414,70979,70980],{},"R1(config)# line vty 0 4",[414,70982,70971],{},[414,70984,70974],{},[414,70986,70987],{},"R1(config-line)# transport input ssh telnet",[414,70989,70977],{},[414,70991,70992],{},"R1(config)# service password-encryption",[414,70994,70995],{},"R1(config)# banner motd #WARNING: Unauthorized access is prohibited!#",[414,70997,70998],{},"R1(config)# ipv6 unicast-routing",[414,71000,71001],{},[42,71002,71003],{},"R1(config)# interface gigabitethernet 0\u002F0\u002F0",[414,71005,71006],{},[42,71007,71008],{},"R1(config-if)# description Link to LAN 1",[414,71010,71011],{},[42,71012,71013],{},"R1(config-if)# ip address 10.0.1.1 255.255.255.0",[414,71015,71016],{},[42,71017,71018],{},"R1(config-if)# ipv6 address 2001:db8:acad:1::1\u002F64",[414,71020,71021],{},[42,71022,71023],{},"R1(config-if)# ipv6 address fe80::1:a link-local",[414,71025,71026],{},[42,71027,71028],{},"R1(config-if)# no shutdown",[414,71030,71031],{},[42,71032,71033],{},"R1(config-if)# exit",[414,71035,71036],{},"R1(config)# interface gigabitethernet 0\u002F0\u002F1",[414,71038,71039],{},"R1(config-if)# description Link to LAN 2",[414,71041,71042],{},"R1(config-if)# ip address 10.0.2.1 255.255.255.0",[414,71044,71045],{},"R1(config-if)# ipv6 address 2001:db8:acad:2::1\u002F64",[414,71047,71048],{},"R1(config-if)# ipv6 address fe80::1:b link-local",[414,71050,71028],{},[414,71052,71033],{},[414,71054,71055],{},"R1(config)# interface serial 0\u002F1\u002F1",[414,71057,71058],{},"R1(config-if)# description Link to R2",[414,71060,71061],{},"R1(config-if)# ip address 10.0.3.1 255.255.255.0",[414,71063,71064],{},"R1(config-if)# ipv6 address 2001:db8:acad:3::1\u002F64",[414,71066,71067],{},"R1(config-if)# ipv6 address fe80::1:c link-local",[414,71069,71028],{},[414,71071,71033],{},[414,71073,71074],{},"R1# copy running-config startup-config",[414,71076,71077,71078,17533],{},"Destination filename ",[4173,71079,71080],{},"startup-config",[414,71082,71083],{},"Building configuration...",[414,71085,71086],{},[4173,71087,71088],{},"OK",[414,71090,71091],{},"R1#",{"title":269,"searchDepth":270,"depth":270,"links":71093},[71094,71100,71104,71105,71109],{"id":70566,"depth":270,"text":70567,"children":71095},[71096,71097,71098,71099],{"id":70578,"depth":1263,"text":70579},{"id":70624,"depth":1263,"text":70625},{"id":70650,"depth":1263,"text":70651},{"id":70657,"depth":1263,"text":70658},{"id":70703,"depth":270,"text":70704,"children":71101},[71102,71103],{"id":70733,"depth":1263,"text":70734},{"id":70745,"depth":1263,"text":70746},{"id":70781,"depth":270,"text":70782},{"id":70796,"depth":270,"text":70797,"children":71106},[71107,71108],{"id":70800,"depth":1263,"text":70801},{"id":70850,"depth":1263,"text":70851},{"id":4282,"depth":270,"text":4283,"children":71110},[71111,71112],{"id":70923,"depth":1263,"text":70924},{"id":70949,"depth":1263,"text":70950},{},{"title":1285},"\u002Ffaecher\u002Fknt\u002F5-6-zsmf-sa2","\u002Fdownloads\u002FKNT\u002FKNT_5-6_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fknt\u002F5-6-zsmf-sa2","oGMjUjKvUKaD38xxwhVkkAM5mRfIvtt3bq-_0T-XOTg",{"id":71121,"title":6,"body":71122,"class":12223,"description":269,"extension":283,"meta":72215,"navigation":72216,"path":72217,"pdfDownload":72218,"scope":289,"scopeName":290,"seo":72219,"stem":72220,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":12233,"__hash__":72221},"faecher\u002Ffaecher\u002Fknt\u002F7-8-zsmf-sa1.md",{"type":8,"value":71123,"toc":72180},[71124,71128,71145,71149,71165,71169,71214,71218,71222,71274,71277,71299,71303,71355,71359,71420,71424,71470,71474,71476,71495,71497,71528,71532,71556,71560,71571,71576,71580,71595,71599,71613,71617,71625,71629,71632,71658,71662,71679,71681,71797,71799,71858,71862,71876,71878,71883,71887,71906,71909,71912,71916,71922,71925,71934,71937,71940,71944,71947,71950,71953,71956,71959,71964,71967,71971,72005,72008,72012,72016,72051,72054,72057,72061,72064,72067,72096,72099,72102,72105,72110,72112,72115,72121,72123,72154,72157,72161,72165,72174,72177],[11,71125,71127],{"id":71126},"ospf-open-shortest-path-first","OSPF (Open Shortest Path First)",[21,71129,71130,71136,71142],{},[24,71131,71132,71135],{},[42,71133,71134],{},"OSPFv2",": IPv4",[24,71137,71138,71141],{},[42,71139,71140],{},"OSPFv3",": IPv6",[24,71143,71144],{},"V2 und V3 sind strikt getrennt",[16,71146,71148],{"id":71147},"ablösung-für-distant-vector-routing","Ablösung für Distant Vector Routing",[21,71150,71151],{},[24,71152,71153,71156,71157],{},[42,71154,71155],{},"RIP"," (Routing Information Protocol)\n",[21,71158,71159,71162],{},[24,71160,71161],{},"Hop-Anzahl als Angabe für die Effizienz einer Route",[24,71163,71164],{},"Schlecht skalierbar",[16,71166,71168],{"id":71167},"link-state-routing-ospf","Link-State Routing (OSPF)",[21,71170,71171,71178,71201],{},[24,71172,71173,71174,71177],{},"Netzwerk kann in verschiedene „",[42,71175,71176],{},"Areas","“ aufgeteilt werden",[24,71179,71180,71181],{},"Link kann sein…\n",[21,71182,71183,71189,71195],{},[24,71184,71185,71188],{},[42,71186,71187],{},"Interface"," an einem Router",[24,71190,71191,71194],{},[42,71192,71193],{},"Netzwerksegment",", dass zwei Router verbindet",[24,71196,71197,71200],{},[42,71198,71199],{},"Endnetzwerk",", das nur mit einem Router verbunden ist",[24,71202,71203,71204],{},"Link-State beinhält…\n",[21,71205,71206,71209,71212],{},[24,71207,71208],{},"Netzwerk-Prefix",[24,71210,71211],{},"Subnetz-Prefix",[24,71213,3539],{},[16,71215,71217],{"id":71216},"ospf-komponenten","OSPF-Komponenten",[470,71219,71221],{"id":71220},"ospf-pakete-link-state-packets","OSPF-Pakete (Link-State-Packets)",[318,71223,71224,71243,71256,71262,71268],{},[24,71225,71226,2815,71229],{},[42,71227,71228],{},"Hello Paket",[21,71230,71231,71234,71237,71240],{},[24,71232,71233],{},"Nachbarschaft mit anderen OSPF-Routern herstellen und halten",[24,71235,71236],{},"Beinhält Parameter, die bei benachbarten Routern übereinstimmen müssen, damit sie benachbart sein können",[24,71238,71239],{},"Designated-Router und Backup-Designated-Router aushandeln",[24,71241,71242],{},"Dead-Intervall: Zeit bis ein Nachbar-Router als down definiert wird und einen Topology-Change auslöst",[24,71244,71245,2815,71248],{},[42,71246,71247],{},"Database-Description-Paket (DBD)",[21,71249,71250,71253],{},[24,71251,71252],{},"Enthält abgekürzte Version der eigenen LSDB",[24,71254,71255],{},"LSDB muss überall gleich sein -> Empfänger gleicht DBD mit eigener LSDB ab",[24,71257,71258,71261],{},[42,71259,71260],{},"Link-State-Request (LSR):"," Nach mehr Informationen zu einem DBD fragen",[24,71263,71264,71267],{},[42,71265,71266],{},"Link-State-Update (LSU):"," Antwort auf LSR -> Bekanntmachen von Informationen durch LSAs",[24,71269,71270,71273],{},[42,71271,71272],{},"Link-State-Acknowledgement (LSAck):"," Empfänger bestätigt den Erhalt eines LSU-Pakets",[470,71275,34009],{"id":71276},"algorithmus",[21,71278,71279,71282,71285,71296],{},[24,71280,71281],{},"Dijkstra Shortest-Path-First Algorithmus",[24,71283,71284],{},"Errechnet die kumulativen Kosten um ein Ziel zu erreichen",[24,71286,71287,71288],{},"Erstellt SPF-Baum\n",[21,71289,71290,71293],{},[24,71291,71292],{},"Setzt jeden Router als Beginn des Baums",[24,71294,71295],{},"Errechnet dann den kürzesten Pfad zu jedem anderen Router",[24,71297,71298],{},"Daraus entstehen die Routen für die Forwarding-Database",[470,71300,71302],{"id":71301},"datenstrukturen","Datenstrukturen",[21,71304,71305,71321,71340],{},[24,71306,71307,71310],{},[42,71308,71309],{},"Adjacency-Datenbank",[21,71311,71312,71315,71318],{},[24,71313,71314],{},"Benachbarte Router, zu denen es eine bidirektionale Verbindung gibt",[24,71316,71317],{},"Einzigartig pro Router",[24,71319,71320],{},"Show ip ospf neighbor",[24,71322,71323,71326],{},[42,71324,71325],{},"Link-State-Datenbank",[21,71327,71328,71331,71334,71337],{},[24,71329,71330],{},"Alle anderen Router im Netzwerk",[24,71332,71333],{},"Stellt Topologie dar",[24,71335,71336],{},"Identisch bei jedem Router",[24,71338,71339],{},"Show ip ospf database",[24,71341,71342,71345],{},[42,71343,71344],{},"Forwarding-Datenbank",[21,71346,71347,71350,71352],{},[24,71348,71349],{},"Durch Algorithmus generierte Routen auf Basis der LSDB",[24,71351,71317],{},[24,71353,71354],{},"Show ip route",[16,71356,71358],{"id":71357},"ablauf-link-state-operation","Ablauf: Link-State Operation",[318,71360,71361,71374,71387,71400,71410],{},[24,71362,71363,71366],{},[42,71364,71365],{},"Neighbor-Adjacency einrichten",[21,71367,71368,71371],{},[24,71369,71370],{},"OSPF-Router müssen prüfen ob es weitere OSPF-Router in der „Nachbarschaft“ gibt",[24,71372,71373],{},"Senden „Hello“-Pakete aus allen OSPF-Schnittstellen",[24,71375,71376,71379],{},[42,71377,71378],{},"Link-State-Advertisements (LSAs) austauschen",[21,71380,71381,71384],{},[24,71382,71383],{},"Es werden Status und Kosten von jedem angebundenen Link an die Nachbarn ausgetauscht",[24,71385,71386],{},"Jeder Router sendet alle LSAs auch an alle anderen Router weiter, bis jeder Router alle LSAs hat",[24,71388,71389,71392],{},[42,71390,71391],{},"Link-State Datenbank bauen",[21,71393,71394,71397],{},[24,71395,71396],{},"Aus allen erhaltenen LSAs wird die LSDB gebaut",[24,71398,71399],{},"Daraus resultiert die Netzwerktopologie",[24,71401,71402,71405],{},[42,71403,71404],{},"Ausführen des SPF-Algorithmus",[21,71406,71407],{},[24,71408,71409],{},"Es wird auf der Basis der LSDB der SPF-Baum erstellt",[24,71411,71412,71415],{},[42,71413,71414],{},"Beste Route wählen",[21,71416,71417],{},[24,71418,71419],{},"Die besten Routen aus dem SPF-Baum zu jedem Netzwerk werden in die Routingtabelle aufgenommen, außer es gibt dort bereits eine Route zu diesem Netzwerk mit einer niedrigeren administrativen Distanz (z.B. statische Route)",[16,71421,71423],{"id":71422},"single-multi-area","Single- & Multi-Area",[21,71425,71426,71432],{},[24,71427,71428,71431],{},[42,71429,71430],{},"Single-Area",": Alle Router sind in derselben Area (Normalerweise: 0)",[24,71433,71434,2815,71437],{},[42,71435,71436],{},"Multi-Area",[21,71438,71439,71442,71445,71448],{},[24,71440,71441],{},"Hierarchische Abtrennung von Areas",[24,71443,71444],{},"Alle Areas müssen mit dem Backbone (Area: 0) verbunden sein",[24,71446,71447],{},"Router zwischen Areas sind „Area Border Routers“ (ARBs)",[24,71449,4806,71450],{},[21,71451,71452,71458,71464],{},[24,71453,71454,71457],{},[42,71455,71456],{},"Kleinere Routingtabellen",": Weniger Einträge, da Netzwerkadressen zusammengefasst werden können",[24,71459,71460,71463],{},[42,71461,71462],{},"Reduzierter Berechnungsaufwand",": Neuberechnung der Datenbank nach Topology-Change nur für eigene Area",[24,71465,71466,71469],{},[42,71467,71468],{},"Reduzierte Anzahl von Berechnungen",": LSA-Floods sind geringer, da weniger Router in derselben Area sind",[16,71471,71473],{"id":71472},"designated-router-dr-notwendigkeit","Designated-Router (DR) Notwendigkeit",[470,71475,530],{"id":529},[21,71477,71478,71481,71484,71487],{},[24,71479,71480],{},"Bei der Initialisierung oder bei Topology-Changes werden jedes Mal wieder LSAs von jedem Router versendet",[24,71482,71483],{},"Netzwerk kann stark belastet werden",[24,71485,71486],{},"Durch die Erstellung von Neighbor Ajacencies können viele Nachbarschaften entstehen",[24,71488,71489,71490],{},"Unnötig\n",[21,71491,71492],{},[24,71493,71494],{},"Bei 5 Routern im selben Netz -> 10 Nachbarschaften (20 R -> 190 N): n(n-1) \u002F2",[470,71496,558],{"id":557},[21,71498,71499,71516,71519,71522,71525],{},[24,71500,71501,71502],{},"Es wird ein Designated Router erklärt (Zusätzlich auch ein Backup Designated Router (BDR) für den Fall des Ausfalls des DR)\n",[21,71503,71504,71507,71510,71513],{},[24,71505,71506],{},"Router mit der höchsten konfigurierten Interface-Priorität wird DR, zweithöchste wird BDR",[24,71508,71509],{},"Router die mit der Prio 0 konfiguriert wurden können nicht DR oder BDR werden",[24,71511,71512],{},"Wenn keine Prio konfiguriert ist (alle Router Prio 1) wird die Router-ID zur Entscheidung verwendet",[24,71514,71515],{},"Kommt ein neuer Router mit einer höheren ID hinzu wird die Wahl nicht wiederholt",[24,71517,71518],{},"Alle anderen Router werden zu DROthers",[24,71520,71521],{},"Alle Router senden nur noch an DR und BDR LSAs",[24,71523,71524],{},"Der aktive DR verteilt dann an alle anderen Router das empfangene LSA",[24,71526,71527],{},"Beim Ausfall des DR übernimmt der BDR und der DROther mit der höchsten Prio wird zum neuen BDR",[16,71529,71531],{"id":71530},"ospf-router-id","OSPF-Router-ID",[21,71533,71534,71537,71540],{},[24,71535,71536],{},"Elementarer Bestandteil von OSPF",[24,71538,71539],{},"32bit-Wert in Form einer IP-Adresse",[24,71541,71542,71543],{},"Jeder Router hat eine OSPF-Router-ID\n",[21,71544,71545],{},[24,71546,71547,71548],{},"Verwendet die ID um…\n",[21,71549,71550,71553],{},[24,71551,71552],{},"Am Synchronisierungsprozess der OSPF Datenbanken teilzunehmen (Höchste ID beginnt)",[24,71554,71555],{},"Um den DR (Höchste ID) und BDR (Zweithöchste ID) zu bestimmen",[470,71557,71559],{"id":71558},"bestimmungsprozess","Bestimmungsprozess",[318,71561,71562,71565,71568],{},[24,71563,71564],{},"Ist die ID manuell festgelegt -> Manuelle ID verwenden",[24,71566,71567],{},"Loopback-IP ist konfiguriert -> Loopback-IP als ID verwenden",[24,71569,71570],{},"Höchste aktive konfigurierte IP-Adresse verwenden",[21,71572,71573],{},[24,71574,71575],{},"Wird die ID im Nachgang verändert muss OSPF neugestartet werden, da bereits mit der vorherigen ID Nachbarschaften bekanntgemacht wurden",[16,71577,71579],{"id":71578},"wildcard-maske","Wildcard-Maske",[21,71581,71582,71592],{},[24,71583,71584,71586,71587],{},[42,71585,43292],{},": \u002F32-Subnetzmaske – Konfigurierte Subnetzmaske = Wildcard-Maske\n",[21,71588,71589],{},[24,71590,71591],{},"Umkehrung der Subnetzmaske",[24,71593,71594],{},"Notwendig bei der Netzwerkkonfiguration für OSPF an einem Router",[16,71596,71598],{"id":71597},"punkt-zu-punkt-ospf-netzwerke","Punkt-zu-Punkt OSPF-Netzwerke",[21,71600,71601,71604,71607,71610],{},[24,71602,71603],{},"Direkte Verbindung zwischen zwei Routern",[24,71605,71606],{},"Wahl des DR und BDR überflüssig",[24,71608,71609],{},"Wenig Overhead, da LSAs nur zwischen zwei Routern ausgetauscht werden müssen",[24,71611,71612],{},"Einfacher Aufbau",[16,71614,71616],{"id":71615},"multiaccess-ospf-netzwerke","Multiaccess OSPF-Netzwerke",[21,71618,71619,71622],{},[24,71620,71621],{},"Mehrere Router im selben Netzwerk",[24,71623,71624],{},"DR und BDR werden gewählt um Netzlast zu reduzieren",[16,71626,71628],{"id":71627},"single-area-ospf-netze-anpassen","Single-Area OSPF Netze anpassen",[470,71630,3539],{"id":71631},"kosten",[21,71633,71634,71642,71650,71655],{},[24,71635,71636,71637],{},"Kosten einer Route sind abhängig von der Bandbreite der Schnittstelle\n",[21,71638,71639],{},[24,71640,71641],{},"Je höher die Bandbreite, desto niedriger die Kosten",[24,71643,71644,71645],{},"Kosten für 100M, 1G und 10G sind gleich, da sie immer auf 1 gerundet werden\n",[21,71646,71647],{},[24,71648,71649],{},"Um bessere Leitungen zu priorisieren müssen die Kosten manuell konfiguriert werden -> Kosten für 100M und 1G sollten höher sein als für 10G",[24,71651,71652,71654],{},[42,71653,43292],{},": Referenzbandbreite \u002F Bandbreite = Kosten",[24,71656,71657],{},"Kosten für eine Route werden aus der Summe der verwendeten Leitungen berechnet",[16,71659,71661],{"id":71660},"default-route","Default-Route",[21,71663,71664,71667,71673,71676],{},[24,71665,71666],{},"Wird verwendet um Traffic in andere Netze weiterzuleiten (z.B. Internet)",[24,71668,71669,71672],{},[42,71670,71671],{},"Autonomous-System-Boundary-Router (ASBR):"," Router der zwischen einem OSPF- und einem Nicht-OSPF-Netz hängt",[24,71674,71675],{},"Route muss am ASBR angelegt werden (ip route 0.0.0.0\u002F0 next-hop)",[24,71677,71678],{},"ASBR muss als Quelle der Route festgelegt werden für OSPF (default-information originate)",[16,71680,43573],{"id":43572},[765,71682,71683,71695],{},[768,71684,71685],{},[771,71686,71687,71691],{},[774,71688,71689],{},[42,71690,8243],{},[774,71692,71693],{},[42,71694,19511],{},[787,71696,71697,71708,71718,71745,71756,71766,71776,71787],{},[771,71698,71699,71705],{},[792,71700,71701,71702],{},"router ospf ",[406,71703,71704],{},"process-id",[792,71706,71707],{},"OSPF aktivieren",[771,71709,71710,71715],{},[792,71711,71712,71713],{},"router-id ",[406,71714,12704],{},[792,71716,71717],{},"OSPF-ID festlegen",[771,71719,71720,71742],{},[792,71721,71722,71723,71726,71727,71730,71731,71734,71735,71737,71738,71726,71740],{},"Network ",[406,71724,71725],{},"network-address wildcard-mask"," area ",[406,71728,71729],{},"area-id","  Oder  Network ",[406,71732,71733],{},"interface-ip"," 0.0.0.0 area ",[406,71736,71729],{},"  Oder (pro Interface)  Ip ospf ",[406,71739,71704],{},[406,71741,71729],{},[792,71743,71744],{},"OSPF Netzwerk an einem Router festlegen",[771,71746,71747,71753],{},[792,71748,71749,71750],{},"Passive-interface ",[406,71751,71752],{},"interface-id",[792,71754,71755],{},"OSPF-Advertisements deaktivieren auf einem Interface",[771,71757,71758,71763],{},[792,71759,71760,71761],{},"Show ip ospf interface ",[406,71762,71752],{},[792,71764,71765],{},"OSPF Informationen einer Netzwerkschnittstelle anzeigen",[771,71767,71768,71773],{},[792,71769,71770,71771],{},"Ip ospf priority ",[406,71772,56316],{},[792,71774,71775],{},"OSPF Priorität auf einer Netzwerkschnittstelle festlegen",[771,71777,71778,71784],{},[792,71779,71780,71781],{},"Auto-cost reference-bandwidth ",[406,71782,71783],{},"bandwidth",[792,71785,71786],{},"Referenzbandbreite für die Berechnung der Kosten festlegen",[771,71788,71789,71794],{},[792,71790,71791,71792],{},"Ip ospf cost ",[406,71793,56316],{},[792,71795,71796],{},"Manuelles festlegen der Kosten",[11,71798,4938],{"id":4937},[21,71800,71801,71804,71807,71813,71816,71832,71847],{},[24,71802,71803],{},"Liste aus Access Control Entries",[24,71805,71806],{},"Access Control Entries: Filter für Netzwerkverkehr (deny\u002Fallow)",[24,71808,71809,71810,6282],{},"Jedes Paket wird mit den auf dem Interface festgelegten ACEs abgeglichen (",[42,71811,71812],{},"Layer 3 & 4",[24,71814,71815],{},"Fördern Sicherheit und\u002Foder Performance",[24,71817,71818,71819,71822,71823,71826,71827],{},"Können auf eingehenden (",[42,71820,71821],{},"inbound",") und ausgehenden (",[42,71824,71825],{},"outbound",") Verkehr konfiguriert werden\n",[21,71828,71829],{},[24,71830,71831],{},"Inbound spart dem Router das heraussuchen der passenden Route",[24,71833,71834,2815,71836],{},[42,71835,1681],{},[21,71837,71838,71841,71844],{},[24,71839,71840],{},"Jedes Paket durchläuft die ACL und damit jeden darin enthaltenen ACE nacheinander",[24,71842,71843],{},"Sobald ein ACE mit der Quell-IP übereinstimmt wird die ACE Aktion ausgeführt",[24,71845,71846],{},"Gibt es keinen Treffer wird das Paket verworfen, da am Ende jeder ACL ein implizites Deny-All existiert",[24,71848,71849,71850],{},"Bei der Erstellung von ACEs werden ebenfalls Wildcard-Masken verwendet (siehe OSPF)\n",[21,71851,71852,71855],{},[24,71853,71854],{},"0.0.0.0 kann durch „host“ ersetzt werden",[24,71856,71857],{},"255.255.255.255 kann durch „any“ ersetzt werden",[16,71859,71861],{"id":71860},"standard-acls","Standard-ACLs",[21,71863,71864,71867,71873],{},[24,71865,71866],{},"Filter nur anhand der Quell-IP-Adresse",[24,71868,71869,71870,71872],{},"Typischerweise am ",[42,71871,66922],{}," angewandt",[24,71874,71875],{},"Können auch mittels „access-class“ auf Terminal-Schnittstellen gelegt werden um den Zugriff auf Geräte zu limitieren",[470,71877,4283],{"id":4282},[21,71879,71880],{},[24,71881,71882],{},"Beispiele in grün",[475,71884,71886],{"id":71885},"nummerierte-standard-acl","Nummerierte Standard-ACL",[414,71888,71889,71890,71893,71894,71897,71898,6100,71901],{},"access-list ",[406,71891,71892],{},"access-list-number"," {deny | permit | remark ",[406,71895,71896],{},"text","} ",[406,71899,71900],{},"source",[4173,71902,71903],{},[406,71904,71905],{},"source-wildcard",[414,71907,71908],{},"access-list 10 permit 192.168.20.0 0.0.0.255",[414,71910,71911],{},"access-list 10 permit host 192.168.20.1",[475,71913,71915],{"id":71914},"benannte-standard-acl","Benannte Standard-ACL",[414,71917,71918,71919],{},"ip access-list standard ",[406,71920,71921],{},"access-list-name",[414,71923,71924],{},"ip access-list standard PERMIT-ACCESS",[414,71926,71927,71928,6100,71930],{},"permit ",[406,71929,71900],{},[4173,71931,71932],{},[406,71933,71905],{},[414,71935,71936],{},"permit 192.168.20.0 0.0.0.255",[414,71938,71939],{},"permit host 192.168.10.10",[475,71941,71943],{"id":71942},"bearbeiten","Bearbeiten",[414,71945,71946],{},"Ip access-list standard {access-list-name | access-list-number}",[414,71948,71949],{},"Ip access-list standard PERMIT-ACCESS",[414,71951,71952],{},"Ip access-list standard 10",[414,71954,71955],{},"No sequence-number",[414,71957,71958],{},"No 10",[414,71960,71961,71962],{},"Sequence-number {deny | permit | remark text} source ",[4173,71963,71905],{},[414,71965,71966],{},"10 permit host 192.168.20.21",[16,71968,71970],{"id":71969},"extended-acls","Extended-ACLs",[21,71972,71973,71990,72002],{},[24,71974,71975,71976],{},"Filter anhand…\n",[21,71977,71978,71981,71984,71987],{},[24,71979,71980],{},"Quell-IP-Adresse",[24,71982,71983],{},"Ziel-IP-Adresse",[24,71985,71986],{},"TCP\u002FUDP-Ports",[24,71988,71989],{},"Protokoll",[24,71991,71992,71993,71996,71997],{},"Typischerweise an der ",[42,71994,71995],{},"Quelle"," angewandt\n",[21,71998,71999],{},[24,72000,72001],{},"Bandbreite einsparen",[24,72003,72004],{},"Kann stateful arbeiten: TCP-Replies zulassen aber TCP-Requests nicht (established)",[470,72006,4283],{"id":72007},"konfiguration-1",[21,72009,72010],{},[24,72011,71882],{},[475,72013,72015],{"id":72014},"nummerierte-extended-acl","Nummerierte Extended-ACL",[414,72017,71889,72018,71893,72020,71897,72022,6100,72025,6100,72027,6100,72029,6100,72036,6100,72039,6100,72042,6100,72048],{},[406,72019,71892],{},[406,72021,71896],{},[406,72023,72024],{},"protocol",[406,72026,71900],{},[406,72028,71905],{},[4173,72030,72031,6560,72034,19762],{},[406,72032,72033],{},"operator",[406,72035,30774],{},[406,72037,72038],{},"destination",[406,72040,72041],{},"destination-wildcard",[4173,72043,72044,6560,72046,19762],{},[406,72045,72033],{},[406,72047,30774],{},[4173,72049,72050],{},"established",[414,72052,72053],{},"access-list 10 permit tcp 192.168.10.0 0.0.0.255 any eq 443",[414,72055,72056],{},"access-list 20 permit tcp 192.168.10.0 0.0.0.255 192.168.0.0 0.0.255.255 eq www",[475,72058,72060],{"id":72059},"benannte-extended-acl","Benannte Extended ACL",[414,72062,72063],{},"Ip access-list extended access-list-name",[414,72065,72066],{},"Ip access-list extended SURFING",[414,72068,72069,72070,71897,72072,6100,72074,6100,72076,6100,72078,6100,72084,6100,72086,6100,72088,6100,72094],{},"{deny | permit | remark ",[406,72071,71896],{},[406,72073,72024],{},[406,72075,71900],{},[406,72077,71905],{},[4173,72079,72080,6560,72082,19762],{},[406,72081,72033],{},[406,72083,30774],{},[406,72085,72038],{},[406,72087,72041],{},[4173,72089,72090,6560,72092,19762],{},[406,72091,72033],{},[406,72093,30774],{},[4173,72095,72050],{},[414,72097,72098],{},"Permit tcp 192.168.10.0 0.0.0.255 any eq 80",[414,72100,72101],{},"Permit tcp 192.168.10.0 0.0.0.255 any eq 443",[475,72103,71943],{"id":72104},"bearbeiten-1",[414,72106,72107,72108,19762],{},"Ip access-list extended {access*-list-name* | ",[406,72109,71892],{},[414,72111,72066],{},[414,72113,72114],{},"Ip access-list extended 10",[414,72116,72117,72118],{},"No ",[406,72119,72120],{},"sequence-number",[414,72122,71958],{},[414,72124,72125,71893,72128,71897,72130,6100,72132,6100,72134,6100,72136,6100,72142,6100,72144,6100,72146,6100,72152],{},[406,72126,72127],{},"Sequence-number",[406,72129,71896],{},[406,72131,72024],{},[406,72133,71900],{},[406,72135,71905],{},[4173,72137,72138,6560,72140,19762],{},[406,72139,72033],{},[406,72141,30774],{},[406,72143,72038],{},[406,72145,72041],{},[4173,72147,72148,6560,72150,19762],{},[406,72149,72033],{},[406,72151,30774],{},[4173,72153,72050],{},[414,72155,72156],{},"10 permit tcp 192.168.10.0 0.0.0.255 any eq www",[16,72158,72160],{"id":72159},"allgemeingültige-konfiguration","Allgemeingültige Konfiguration",[470,72162,72164],{"id":72163},"anwenden-auf-interface","Anwenden auf Interface",[414,72166,72167,72168,72170,72171,72173],{},"ip access-group {",[406,72169,71892],{}," | ",[406,72172,71921],{},"} {in | out}",[414,72175,72176],{},"ip access-group 10 out",[414,72178,72179],{},"ip access-group PERMIT-ACCESS out",{"title":269,"searchDepth":270,"depth":270,"links":72181},[72182,72183,72184,72189,72190,72191,72195,72198,72199,72200,72201,72204,72205,72206,72209,72212],{"id":71147,"depth":270,"text":71148},{"id":71167,"depth":270,"text":71168},{"id":71216,"depth":270,"text":71217,"children":72185},[72186,72187,72188],{"id":71220,"depth":1263,"text":71221},{"id":71276,"depth":1263,"text":34009},{"id":71301,"depth":1263,"text":71302},{"id":71357,"depth":270,"text":71358},{"id":71422,"depth":270,"text":71423},{"id":71472,"depth":270,"text":71473,"children":72192},[72193,72194],{"id":529,"depth":1263,"text":530},{"id":557,"depth":1263,"text":558},{"id":71530,"depth":270,"text":71531,"children":72196},[72197],{"id":71558,"depth":1263,"text":71559},{"id":71578,"depth":270,"text":71579},{"id":71597,"depth":270,"text":71598},{"id":71615,"depth":270,"text":71616},{"id":71627,"depth":270,"text":71628,"children":72202},[72203],{"id":71631,"depth":1263,"text":3539},{"id":71660,"depth":270,"text":71661},{"id":43572,"depth":270,"text":43573},{"id":71860,"depth":270,"text":71861,"children":72207},[72208],{"id":4282,"depth":1263,"text":4283},{"id":71969,"depth":270,"text":71970,"children":72210},[72211],{"id":72007,"depth":1263,"text":4283},{"id":72159,"depth":270,"text":72160,"children":72213},[72214],{"id":72163,"depth":1263,"text":72164},{},{"title":12691},"\u002Ffaecher\u002Fknt\u002F7-8-zsmf-sa1","\u002Fdownloads\u002FKNT\u002FKNT_7-8_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fknt\u002F7-8-zsmf-sa1","6x44BWRWpcA28-VdEazhKd9dEn_xxPI25qOOJYYDS5E",{"id":72223,"title":301,"body":72224,"class":12223,"description":269,"extension":283,"meta":72864,"navigation":72865,"path":72866,"pdfDownload":72867,"scope":1288,"scopeName":1289,"seo":72868,"stem":72869,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":12233,"__hash__":72870},"faecher\u002Ffaecher\u002Fknt\u002F7-8-zsmf-sa2.md",{"type":8,"value":72225,"toc":72844},[72226,72230,72245,72247,72261,72265,72276,72280,72357,72361,72365,72370,72390,72394,72399,72408,72412,72417,72469,72473,72515,72519,72572,72576,72587,72592,72596,72663,72666,72671,72733,72737,72742,72746,72751,72762,72766,72771,72787,72791,72796,72807,72811,72816,72827,72831,72836],[11,72227,72229],{"id":72228},"nat-ipv4-network-address-translation","NAT IPv4 (Network Address Translation)",[21,72231,72232,72237,72240],{},[24,72233,72234,72236],{},[42,72235,530],{},": Nicht ausreichend IPv4 Adressen verfügbar",[24,72238,72239],{},"Private IPv4-Adressen werden nicht ins Internet geroutet",[24,72241,72242,72244],{},[42,72243,558],{},": Wechsel zu IPv6 \u002F Translation",[16,72246,1014],{"id":1013},[21,72248,72249,72252,72258],{},[24,72250,72251],{},"Erhält öffentliche IPv4 Adressen",[24,72253,72254,72257],{},[42,72255,72256],{},"Datenschutz",": Kein direkter Rückschluss von extern durch die öffentliche IP-Adresse auf den Ursprungs-Client",[24,72259,72260],{},"Keine Änderung an internen Clients notwendig beim ISP-Wechsel",[16,72262,72264],{"id":72263},"nachteile","Nachteile",[21,72266,72267,72270,72273],{},[24,72268,72269],{},"Zusätzliche Verzögerung durch NAT\u002FPAT (Kritisch bei Echtzeitprotokollen -> VoIP)",[24,72271,72272],{},"End-to-End-Adressierung geht verloren (Manche Anwendungen kommen nicht mit NAT klar)",[24,72274,72275],{},"Fehlersuche durch Adressänderung erschwert",[16,72277,72279],{"id":72278},"begriffe","Begriffe",[21,72281,72282,72288,72294,72300,72306,72312,72318,72324,72330,72336],{},[24,72283,72284,72287],{},[42,72285,72286],{},"NAT-Pool",": Menge an öffentlichen IP-Adressen an einem Router",[24,72289,72290,72293],{},[42,72291,72292],{},"Interne Adresse",": Adresse des Geräts, die mit NAT übersetzt wird",[24,72295,72296,72299],{},[42,72297,72298],{},"Externe Adresse",": Adresse des Zielgeräts",[24,72301,72302,72305],{},[42,72303,72304],{},"Lokale Adresse",": Im internen Netzwerk verwendet (Gibt Perspektive an)",[24,72307,72308,72311],{},[42,72309,72310],{},"Globale Adresse",": Im externen Netzwerk verwendet (Gibt Perspektive an)",[24,72313,72314,72317],{},[42,72315,72316],{},"Intern Lokal",": Adresse der Quelle aus Perspektive des internen Netzwerks",[24,72319,72320,72323],{},[42,72321,72322],{},"Intern Global",": Adresse der Quelle aus der Perspektive des externen Netzwerks",[24,72325,72326,72329],{},[42,72327,72328],{},"Extern Global",": Adresse des Ziels aus der Perspektive des externen Netzwerks",[24,72331,72332,72335],{},[42,72333,72334],{},"Extern Lokal",": Adresse des Ziels aus der Perspektive des internen Netzwerks",[24,72337,72338,72340,72341],{},[42,72339,763],{},": PC sendet Daten an Öffentlichen Webserver\n",[21,72342,72343,72351,72354],{},[24,72344,72345,72346],{},"Interne Lokale wird am NAT-Router zur internen globalen Adresse\n",[21,72347,72348],{},[24,72349,72350],{},"Private IP-Adresse (RFC1918) -> Öffentliche IP-Adresse aus NAT-Pool",[24,72352,72353],{},"Externe globale Adresse (also Ziel-IP) ändert sich in der Regel nicht, da das Ziel meistens öffentlich ist. Extern global und extern lokal sind dann identisch",[24,72355,72356],{},"Aus Sicht des öffentlichen Zielservers ist die Quell-IP die Interne globale Adresse (also öffentliche IP aus NAT-Pool)",[11,72358,72360],{"id":72359},"arten-von-nat","Arten von NAT",[470,72362,72364],{"id":72363},"statisches-nat","Statisches NAT",[414,72366,72367],{},[1504,72368],{"alt":269,"src":72369},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_1.png",[21,72371,72372,72375,72378,72381,72384,72387],{},[24,72373,72374],{},"1:1 Übersetzung der privaten in öffentliche Adressen",[24,72376,72377],{},"Für das Internet haben die einzelnen Geräte öffentliche IP-Adressen",[24,72379,72380],{},"Manuell konfiguriert und zugeordnet",[24,72382,72383],{},"Hilfreich, wenn Geräte von der gleichen öffentlichen IP erreichbar bleiben müssen (Webserver)",[24,72385,72386],{},"Benötigt ausreichend öffentliche IP-Adressen",[24,72388,72389],{},"Nur so viele parallele Sitzungen möglich wie öffentliche IP-Adressen verfügbar sind",[470,72391,72393],{"id":72392},"dynamisches-nat","Dynamisches NAT",[414,72395,72396],{},[1504,72397],{"alt":269,"src":72398},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_2.png",[21,72400,72401,72403,72406],{},[24,72402,72374],{},[24,72404,72405],{},"Öffentliche IP-Adressen aus dem NAT-Pool werden bei einer Anfrage nach dem First-Come-First-Serve-Prinzip vergeben",[24,72407,72389],{},[470,72409,72411],{"id":72410},"port-address-translation-pat","Port Address Translation (PAT)",[414,72413,72414],{},[1504,72415],{"alt":269,"src":72416},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_3.png",[21,72418,72419,72427,72463,72466],{},[24,72420,72421,72422],{},"N:1\u002FM Übersetzung\n",[21,72423,72424],{},[24,72425,72426],{},"Beliebig viele private Adressen zu einer oder mehreren öffentlichen Adressen",[24,72428,72429,72430],{},"Kommunikation eines internen Clients mit einem Webserver:\n",[21,72431,72432,72435,72446,72449,72452],{},[24,72433,72434],{},"Client sendet Paket an Webserver und wählt einen Quell-Port",[24,72436,72437,72438],{},"Router prüft, ob der Quell-Port schon in Verwendung ist\n",[21,72439,72440,72443],{},[24,72441,72442],{},"Wenn nicht wir der Port übernommen",[24,72444,72445],{},"Wenn bereits in Verwendung wird der nächste verfügbare Port verwendet",[24,72447,72448],{},"Router setzt interne globale Adresse + Quell-Port",[24,72450,72451],{},"Webserver antwortet auf diese IP-Adresse und setzt Quell-Port als Ziel-Port",[24,72453,72454,72455],{},"Router kann das Paket vom Webserver eindeutig dem Client zuordnen.\n",[21,72456,72457,72460],{},[24,72458,72459],{},"Je nachdem, ob der Router den Port anpassen musste, stellt er den Ausgangs-Port wieder her",[24,72461,72462],{},"Zusätzliche Sicherheit: PAT prüft zusätzlich, ob die Daten vom Webserver überhaupt zuvor angefordert wurden",[24,72464,72465],{},"Wenn alle Ports einer IP-Adresse aus dem NAT-Pool ausgeschöpft sind, wird mit der nächsten weiter gemacht, bis keine IP-Adressen und Ports mehr verfügbar sind",[24,72467,72468],{},"Pakete ohne Schicht-4-Segment (Ohne Portnummer) erhalten vom Router eine Abfrage-ID um Anfrage und Antwort zuordnen zu können",[16,72470,72472],{"id":72471},"cli","CLI",[765,72474,72475,72487],{},[768,72476,72477],{},[771,72478,72479,72483],{},[774,72480,72481],{},[42,72482,8243],{},[774,72484,72485],{},[42,72486,854],{},[787,72488,72489,72499,72507],{},[771,72490,72491,72496],{},[792,72492,72493,72494],{},"show ip nat translations ",[4173,72495,25842],{},[792,72497,72498],{},"Ausgabe aller konfigurierten \u002F dynamischen Übersetzungen. Ggf. inklusive aktueller Externen Adressen  „verbose“ gibt zusätzliche Informationen an (Zeit)",[771,72500,72501,72504],{},[792,72502,72503],{},"clear ip nat translations",[792,72505,72506],{},"Löschte alle dynamischen Übersetzungseinträge",[771,72508,72509,72512],{},[792,72510,72511],{},"show ip nat statistics",[792,72513,72514],{},"Zeigt Verwendete Interfaces, aktive Übersetzungen, Konfiguration, Anzahl der Adressen im Pool, Anzahl der zugewiesenen Adressen",[16,72516,72518],{"id":72517},"rfc1918-address-allocation-for-private-internets","RFC1918: Address Allocation for Private Internets",[765,72520,72521,72539],{},[768,72522,72523],{},[771,72524,72525,72530,72534],{},[774,72526,72527],{},[42,72528,72529],{},"Klasse",[774,72531,72532],{},[42,72533,12738],{},[774,72535,72536],{},[42,72537,72538],{},"Prefix",[787,72540,72541,72551,72562],{},[771,72542,72543,72545,72548],{},[792,72544,67087],{},[792,72546,72547],{},"10.0.0.0-10.255.255.255",[792,72549,72550],{},"10.0.0.0\u002F8",[771,72552,72553,72556,72559],{},[792,72554,72555],{},"B",[792,72557,72558],{},"172.16.0.0-172.31.255.255",[792,72560,72561],{},"172.16.0.0\u002F12",[771,72563,72564,72566,72569],{},[792,72565,67054],{},[792,72567,72568],{},"192.168.0.0-192.168.255.255",[792,72570,72571],{},"192.168.0.0\u002F16",[11,72573,72575],{"id":72574},"wide-area-network-wan","Wide Area Network (WAN)",[21,72577,72578,72584],{},[24,72579,72580,72583],{},[42,72581,72582],{},"WAN",": Kommunikationsnetz, dass sich über einen großen geografischen Bereich erstreckt",[24,72585,72586],{},"Notwendig um Remote-LANs mit dem eignen LAN zu vernetzen",[414,72588,72589],{},[1504,72590],{"alt":269,"src":72591},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_4.png",[16,72593,72595],{"id":72594},"wans-im-osi-modell","WANs im OSI-Modell",[21,72597,72598,72601,72630],{},[24,72599,72600],{},"Auf Layer 1 (Bitübertragunsschicht \u002F Physical Layer) und 2 (Sicherungsschicht \u002F Datalink Layer)",[24,72602,72603,2815,72606],{},[42,72604,72605],{},"Layer 1",[21,72607,72608,72611],{},[24,72609,72610],{},"Elektronische, Mechanische Übertragung von Bits",[24,72612,72613,72614],{},"Provider verwenden meistens Glasfaser für hohe Bandbreite und lange Strecken\n",[21,72615,72616],{},[24,72617,72618,72619],{},"Protokoll-Standards:\n",[21,72620,72621,72624,72627],{},[24,72622,72623],{},"SDH: Synchronous Digial Hierachy",[24,72625,72626],{},"SONET: Synchronous Optical Networking",[24,72628,72629],{},"DWDM: Dense Wavelength Division Multiplexing",[24,72631,72632,2815,72635],{},[42,72633,72634],{},"Layer 2",[21,72636,72637,72640],{},[24,72638,72639],{},"Definition der Framekapselung",[24,72641,72642,72643],{},"Protokolle:\n",[21,72644,72645,72648,72651,72654,72657,72660],{},[24,72646,72647],{},"Breitband (DSL & Kabel)",[24,72649,72650],{},"Wireless",[24,72652,72653],{},"Ethernet-WAN",[24,72655,72656],{},"Multiprotocol Label Switching (MPLS)",[24,72658,72659],{},"Point-to-Point Protocol",[24,72661,72662],{},"High-Level Data Link Control",[16,72664,72279],{"id":72665},"begriffe-1",[414,72667,72668],{},[1504,72669],{"alt":269,"src":72670},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_5.png",[21,72672,72673,72679,72685,72691,72697,72703,72709,72715,72721,72727],{},[24,72674,72675,72678],{},[42,72676,72677],{},"Data Terminal Equipment (DTE):"," Verbindet Teilnehmer-LANs mit dem WAN-Kommunikationsgerät",[24,72680,72681,72684],{},[42,72682,72683],{},"Data Communications Equipment (DCE) (Datenleitungs-Endgerät):"," Kommunikation mit dem Provider",[24,72686,72687,72690],{},[42,72688,72689],{},"Customer Premises Equipment (CPE):"," Fasst DTEs und DCEs am Firmenstandort zusammen",[24,72692,72693,72696],{},[42,72694,72695],{},"Point-of-Presence (POP):"," Punkt, an dem sich Teilnehmer- und Providernetz verbinden",[24,72698,72699,72702],{},[42,72700,72701],{},"Demarkationspunkt",": Offizieller Trennungspunkt zwischen CPE und Geräten vom Provider",[24,72704,72705,72708],{},[42,72706,72707],{},"Local Loop (letzte Meile):"," Kupfer\u002FGlasleitung, die CPE mit CO verbindet",[24,72710,72711,72714],{},[42,72712,72713],{},"Central Office (CO, Zentrale):"," Einrichtung des Providers, die CPE mit Provider-Netz verbindet",[24,72716,72717,72720],{},[42,72718,72719],{},"Gebührenpflichtiges Netz:"," Infrastruktur des Providernetzes",[24,72722,72723,72726],{},[42,72724,72725],{},"Backhaul Netzwerk:"," Verbindet mehrere Zugangskonten des Providernetzes",[24,72728,72729,72732],{},[42,72730,72731],{},"Backbone-Netzwerk:"," Großes Netzwerk; Hohe Kapazität; Verbindung von Prodivernetzen",[16,72734,72736],{"id":72735},"wan-topologien","WAN-Topologien",[21,72738,72739],{},[24,72740,72741],{},"Werden durch logische Topologien beschrieben",[470,72743,72745],{"id":72744},"punkt-zu-punkt","Punkt-zu-Punkt",[414,72747,72748],{},[1504,72749],{"alt":269,"src":72750},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_6.png",[21,72752,72753,72756,72759],{},[24,72754,72755],{},"Verbindung zwischen zwei Endpunkten",[24,72757,72758],{},"Scheinbar eine physische Verbindung zwischen den Endpunkten",[24,72760,72761],{},"Z.B. Standleitung (Teuer)",[470,72763,72765],{"id":72764},"hub-and-spoke","Hub-and-Spoke",[414,72767,72768],{},[1504,72769],{"alt":269,"src":72770},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_7.png",[21,72772,72773,72781,72784],{},[24,72774,72775,72776],{},"Mehrere Spokes verwenden eine Schnittstelle des Hubs\n",[21,72777,72778],{},[24,72779,72780],{},"Durch Subinterfaces oder virtuelle Verbindungen",[24,72782,72783],{},"Spokes können nur über den Hub miteinander kommunizieren",[24,72785,72786],{},"Hub ist Single-Point of Failure",[470,72788,72790],{"id":72789},"dual-homed","Dual-Homed",[414,72792,72793],{},[1504,72794],{"alt":269,"src":72795},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_8.png",[21,72797,72798,72801,72804],{},[24,72799,72800],{},"Erweiterung von Hub-and-Spke",[24,72802,72803],{},"Bietet Redundanz, Lastverteilung, dezentrale Datenverarbeitung",[24,72805,72806],{},"Implementierung ist teurer (mehr Hardware nötig; komplexe Einrichtung)",[470,72808,72810],{"id":72809},"vollständig-vermascht","Vollständig vermascht",[414,72812,72813],{},[1504,72814],{"alt":269,"src":72815},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_9.png",[21,72817,72818,72821,72824],{},[24,72819,72820],{},"Mehrere virtuelle Verbindungen",[24,72822,72823],{},"Alle Standorte miteinander vernetzt",[24,72825,72826],{},"Hohe Fehlertoleranz",[470,72828,72830],{"id":72829},"teilweise-vermascht","Teilweise vermascht",[414,72832,72833],{},[1504,72834],{"alt":269,"src":72835},"\u002Fdownloads\u002FKNT\u002Fimages\u002F7-8-zsmf-sa2_img_10.png",[21,72837,72838,72841],{},[24,72839,72840],{},"Verbindet viele Standorte miteinander, aber nicht alle",[24,72842,72843],{},"Schlechtere Fehlertoleranz als vollvermascht",{"title":269,"searchDepth":270,"depth":270,"links":72845},[72846,72847,72848,72853,72854,72855,72856,72857],{"id":1013,"depth":270,"text":1014},{"id":72263,"depth":270,"text":72264},{"id":72278,"depth":270,"text":72279,"children":72849},[72850,72851,72852],{"id":72363,"depth":1263,"text":72364},{"id":72392,"depth":1263,"text":72393},{"id":72410,"depth":1263,"text":72411},{"id":72471,"depth":270,"text":72472},{"id":72517,"depth":270,"text":72518},{"id":72594,"depth":270,"text":72595},{"id":72665,"depth":270,"text":72279},{"id":72735,"depth":270,"text":72736,"children":72858},[72859,72860,72861,72862,72863],{"id":72744,"depth":1263,"text":72745},{"id":72764,"depth":1263,"text":72765},{"id":72789,"depth":1263,"text":72790},{"id":72809,"depth":1263,"text":72810},{"id":72829,"depth":1263,"text":72830},{},{"title":63035},"\u002Ffaecher\u002Fknt\u002F7-8-zsmf-sa2","\u002Fdownloads\u002FKNT\u002FKNT_7-8_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fknt\u002F7-8-zsmf-sa2","VAKNwwSUUdrIVnBWKIOTzcGcKFrlRZ4qgtUQyw9nBxA",{"id":72872,"title":35633,"body":72873,"class":35621,"description":69328,"extension":283,"meta":76025,"navigation":76026,"path":76027,"pdfDownload":76028,"scope":35621,"scopeName":35627,"seo":76029,"stem":76030,"subject":69335,"subjectName":69336,"type":295,"typeName":296,"year":35627,"__hash__":76031},"faecher\u002Ffaecher\u002Fknt\u002Fap-zsmf.md",{"type":8,"value":72874,"toc":75896},[72875,72877,72881,72883,72901,72903,72908,72911,72914,72917,72919,73010,73013,73015,73075,73078,73080,73085,73108,73110,73122,73124,73139,73143,73147,73150,73154,73161,73165,73186,73190,73194,73219,73224,73228,73242,73246,73250,73279,73284,73302,73307,73342,73347,73379,73384,73417,73440,73444,73448,73473,73477,73491,73493,73499,73502,73519,73521,73533,73535,73571,73573,73592,73594,73608,73610,73618,73620,73634,73636,73668,73673,73675,73677,73680,73686,73690,73701,73705,73708,73711,73735,73740,73742,73752,73754,73767,73771,73778,73780,73782,73809,73811,73827,73829,73847,73849,73861,73863,73869,73873,73906,73908,73916,73918,73927,73929,73953,73955,73983,73985,73991,73993,73995,73997,74009,74011,74020,74022,74033,74035,74037,74041,74047,74049,74053,74057,74059,74063,74073,74075,74079,74091,74093,74097,74111,74113,74116,74119,74121,74124,74127,74130,74133,74136,74138,74140,74142,74147,74175,74181,74183,74185,74189,74195,74200,74206,74212,74216,74221,74223,74229,74231,74233,74235,74237,74245,74247,74249,74271,74276,74278,74301,74303,74306,74309,74314,74318,74320,74326,74328,74332,74334,74342,74344,74350,74352,74387,74389,74391,74393,74395,74403,74406,74412,74414,74444,74446,74462,74464,74466,74468,74499,74501,74520,74522,74528,74530,74534,74538,74557,74559,74567,74571,74573,74607,74609,74615,74622,74660,74662,74674,74676,74688,74690,74723,74725,74727,74765,74767,74783,74785,74825,74827,74875,74877,74911,74913,74917,74930,74932,74957,74959,74978,74980,74988,74992,74994,75006,75008,75018,75020,75026,75028,75031,75055,75057,75069,75071,75112,75114,75123,75125,75129,75132,75144,75146,75148,75151,75155,75157,75165,75167,75169,75171,75173,75175,75177,75179,75181,75185,75187,75189,75212,75214,75218,75220,75246,75248,75250,75252,75254,75256,75278,75280,75282,75284,75288,75290,75292,75296,75298,75322,75324,75326,75328,75331,75334,75337,75343,75345,75347,75349,75361,75365,75375,75377,75385,75387,75442,75444,75446,75451,75465,75467,75472,75480,75482,75487,75525,75527,75563,75565,75609,75611,75619,75624,75626,75676,75678,75683,75725,75727,75731,75733,75738,75746,75748,75753,75765,75767,75772,75780,75782,75787,75795,75797,75802,75808,75812,75877,75881,75886,75891],[11,72876,68961],{"id":68960},[414,72878,72879,68967],{},[42,72880,68966],{},[16,72882,68971],{"id":68970},[21,72884,72885,72889,72893,72897],{},[24,72886,72887,68979],{},[42,72888,68978],{},[24,72890,72891,68985],{},[42,72892,68984],{},[24,72894,72895,68991],{},[42,72896,68990],{},[24,72898,72899,68997],{},[42,72900,68996],{},[16,72902,69001],{"id":69000},[21,72904,72905],{},[24,72906,72907],{},"Netzwerk ist komplex",[414,72909,72910],{},"o Aufteilung in mehrere Schichten um es überschaubarer zu machen - Vorteile:",[414,72912,72913],{},"o Wettbewerb wird gefördert: Produkte von verschiedenen Herstellern sind miteinander kompatibel",[414,72915,72916],{},"o Veränderungen auf einer Schicht wirken sich nicht auf die anderen aus",[16,72918,69025],{"id":69024},[765,72920,72921,72938],{},[768,72922,72923],{},[771,72924,72925,72930,72934],{},[774,72926,72927],{},[42,72928,72929],{},"Nr",[774,72931,72932],{},[42,72933,69041],{},[774,72935,72936],{},[42,72937,69046],{},[787,72939,72940,72950,72960,72970,72980,72990,73000],{},[771,72941,72942,72944,72948],{},[792,72943,14264],{},[792,72945,72946],{},[42,72947,69059],{},[792,72949,69062],{},[771,72951,72952,72954,72958],{},[792,72953,14278],{},[792,72955,72956],{},[42,72957,69073],{},[792,72959,69076],{},[771,72961,72962,72964,72968],{},[792,72963,14292],{},[792,72965,72966],{},[42,72967,69087],{},[792,72969,69090],{},[771,72971,72972,72974,72978],{},[792,72973,2894],{},[792,72975,72976],{},[42,72977,67789],{},[792,72979,69103],{},[771,72981,72982,72984,72988],{},[792,72983,14318],{},[792,72985,72986],{},[42,72987,69114],{},[792,72989,69117],{},[771,72991,72992,72994,72998],{},[792,72993,14206],{},[792,72995,72996],{},[42,72997,69128],{},[792,72999,69131],{},[771,73001,73002,73004,73008],{},[792,73003,14223],{},[792,73005,73006],{},[42,73007,69142],{},[792,73009,69145],{},[414,73011,73012],{},"Merksatz: Alle deutschen Studenten trinken verschiedene sorten Bier",[16,73014,69155],{"id":69154},[765,73016,73017,73033],{},[768,73018,73019],{},[771,73020,73021,73025,73029],{},[774,73022,73023],{},[42,73024,72929],{},[774,73026,73027],{},[42,73028,69041],{},[774,73030,73031],{},[42,73032,69046],{},[787,73034,73035,73045,73055,73065],{},[771,73036,73037,73039,73043],{},[792,73038,2894],{},[792,73040,73041],{},[42,73042,69059],{},[792,73044,69188],{},[771,73046,73047,73049,73053],{},[792,73048,14318],{},[792,73050,73051],{},[42,73052,67789],{},[792,73054,69201],{},[771,73056,73057,73059,73063],{},[792,73058,14206],{},[792,73060,73061],{},[42,73062,69212],{},[792,73064,69215],{},[771,73066,73067,73069,73073],{},[792,73068,14223],{},[792,73070,73071],{},[42,73072,69226],{},[792,73074,69229],{},[414,73076,73077],{},"Merksatz: Andy Tanzt irgendwie nicht (lebt er noch?)",[16,73079,69238],{"id":69237},[414,73081,73082],{},[1504,73083],{"alt":269,"src":73084},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_1.png",[21,73086,73087,73097,73105],{},[24,73088,69248,73089,69252,73091,8629,73093,7445,73095,69259],{},[42,73090,69251],{},[42,73092,69059],{},[42,73094,69073],{},[42,73096,69087],{},[24,73098,69248,73099,69252,73101,7445,73103,69259],{},[42,73100,69264],{},[42,73102,69128],{},[42,73104,69142],{},[24,73106,73107],{},"OSI wird eher verwendet, wenn es um die niedrigeren Schichten geht o Trennung der physikalischen Schicht von der Sicherungsschicht",[16,73109,69280],{"id":69279},[21,73111,73112,73114],{},[24,73113,69285],{},[24,73115,69288,73116],{},[21,73117,73118,73120],{},[24,73119,69293],{},[24,73121,69296],{},[16,73123,69300],{"id":69299},[21,73125,73126,73134],{},[24,73127,69305,73128],{},[21,73129,73130,73132],{},[24,73131,69310],{},[24,73133,69313],{},[24,73135,73136,69316],{},[1504,73137],{"alt":269,"src":73138},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_2.png",[11,73140,73142],{"id":73141},"mac-adresstabelle-forwarding","MAC-Adresstabelle & Forwarding",[16,73144,73146],{"id":73145},"mac-addresstabelle-cam-tabelle","Mac-Addresstabelle (CAM-Tabelle)",[414,73148,73149],{},"Eine Tabelle im Switch, die MAC-Adressen den physischen Ports zuordnet",[16,73151,73153],{"id":73152},"lernprozess","Lernprozess",[414,73155,73156,73157,73160],{},"Der Switch prüft die ",[42,73158,73159],{},"Quell-MAC"," eines eingehenden Frames. Ist sie unbekannt, wird sie mit dem zugehörigen Port in die Tabelle eingetragen.",[16,73162,73164],{"id":73163},"forwarding","Forwarding",[21,73166,73167],{},[24,73168,73156,73169,2815,73172],{},[42,73170,73171],{},"Ziel-MAC",[21,73173,73174,73180],{},[24,73175,73176,73179],{},[42,73177,73178],{},"Eintrag vorhanden:"," Frame wird gezielt an diesen Port weitergeleitet (Unicast).",[24,73181,73182,73185],{},[42,73183,73184],{},"Eintrag nicht vorhanden \u002F Broadcast:"," Der Switch flutet den Frame an alle Ports außer dem Eingangsport (Unknown Unicast Flooding). (Nicht das gleiche wie Broadcast)",[11,73187,73189],{"id":73188},"ipv4","IPv4",[16,73191,73193],{"id":73192},"ipv4-header","IPv4 Header",[21,73195,73196,73199,73202,73204,73207,73210,73212,73215,73217],{},[24,73197,73198],{},"Version",[24,73200,73201],{},"Gesamtlänge",[24,73203,12780],{},[24,73205,73206],{},"Fragment Offsets",[24,73208,73209],{},"Time-To-Live",[24,73211,71989],{},[24,73213,73214],{},"Prüfsumme für Header",[24,73216,71980],{},[24,73218,71983],{},[414,73220,73221],{},[1504,73222],{"alt":269,"src":73223},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_3.png",[16,73225,73227],{"id":73226},"arp","ARP",[21,73229,73230,73233,73236,73239],{},[24,73231,73232],{},"Address Resolution Protocol",[24,73234,73235],{},"Löst eine bekannte IPv4-Adresse in eine MAC-Adresse auf, damit die Daten im lokalen Netz adressiert werden können",[24,73237,73238],{},"Wird Per Broadcast gesendet per FF:FF:FF:FF:FF:FF oder 255.255.255.255",[24,73240,73241],{},"Es werden alle gefragt bis entweder einer die Adresse hat oder das Gerät selbst antwortet",[470,73243,73245],{"id":73244},"auswahlprozess","Auswahlprozess",[318,73247,73248],{},[24,73249,1092],{},[21,73251,73252,73258,73264,73270],{},[24,73253,73254,73257],{},[42,73255,73256],{},"Ziel-IP:"," IP von PC2",[24,73259,73260,73263],{},[42,73261,73262],{},"Quell-IP:"," IP von PC1",[24,73265,73266,73269],{},[42,73267,73268],{},"Quell-MAC:"," MAC von PC1 (08-15-47-11-20-01)",[24,73271,73272,6100,73275,73278],{},[42,73273,73274],{},"Ziel-MAC:",[42,73276,73277],{},"Unbekannt"," (Hier stockt der Prozess!)",[318,73280,73281],{},[24,73282,73283],{},"ARP-Cache Check",[21,73285,73286,73292],{},[24,73287,73288,73291],{},[42,73289,73290],{},"Was ist der ARP-Cache?"," Eine temporäre Tabelle im Arbeitsspeicher des Hosts, die IP-Adressen den zugehörigen MAC-Adressen zuordnet",[24,73293,73294,73297,73298,73301],{},[42,73295,73296],{},"Was findet das Protokoll hier?"," Da es die \"erste Verbindung\" ist, findet PC1 ",[42,73299,73300],{},"keinen Eintrag"," für die Ziel-IP. Das Paket kann noch nicht gekapselt werden",[318,73303,73304],{},[24,73305,73306],{},"ARP-Request",[21,73308,73309,73317,73322,73328,73336],{},[24,73310,73311,6100,73314,73316],{},[42,73312,73313],{},"Spezieller Name:",[42,73315,73306],{}," (Broadcast)",[24,73318,73319,73321],{},[42,73320,73274],{}," FF-FF-FF-FF-FF-FF (Broadcast-Adresse)",[24,73323,73324,73327],{},[42,73325,73326],{},"Inhalt:"," \"Wer hat die IP von PC2? Bitte antworte an PC1.\"",[24,73329,73330,6100,73333,73335],{},[42,73331,73332],{},"Wer bekommt das Paket?",[42,73334,44406],{}," Geräte im lokalen Subnetz (da es ein Broadcast ist)",[24,73337,73338,73341],{},[42,73339,73340],{},"Was passiert mit dem Datenpaket?"," Das ursprüngliche Datenpaket von PC1 wird solange gepuffert (wartet), bis die MAC bekannt ist",[318,73343,73344],{},[24,73345,73346],{},"ARP-Replay",[21,73348,73349,73355,73361,73370,73374],{},[24,73350,73351,73354],{},[42,73352,73353],{},"Verhalten der anderen:"," Alle Geräte, die nicht die gesuchte IP haben, verwerfen das Paket einfach",[24,73356,73357,73360],{},[42,73358,73359],{},"Verhalten von PC2:"," PC2 erkennt seine IP, trägt PC1 in seinen eigenen ARP-Cache ein und erstellt ein Antwort-Paket",[24,73362,73363,6100,73366,73369],{},[42,73364,73365],{},"Name des Pakets:",[42,73367,73368],{},"ARP-Reply"," (Unicast)",[24,73371,73372,73269],{},[42,73373,73274],{},[24,73375,73376,73378],{},[42,73377,73326],{}," \"Ich bin PC2, hier ist meine MAC: 08-15-47-11-20-02.\"",[318,73380,73381],{},[24,73382,73383],{},"Abschluss",[21,73385,73386,73395],{},[24,73387,73388,73391,73392],{},[42,73389,73390],{},"Aktion von PC1:"," Er empfängt die Antwort und speichert die MAC von PC2 in seinem ",[42,73393,73394],{},"ARP-Cache",[24,73396,73397,73400],{},[42,73398,73399],{},"Das Datenpaket: Jetzt kann PC1 den fertigen Frame senden:",[21,73401,73402,73407,73412],{},[24,73403,73404],{},[42,73405,73406],{},"Ziel-MAC: 08-15-47-11-20-02 (MAC von PC2)",[24,73408,73409],{},[42,73410,73411],{},"Quell-MAC: 08-15-47-11-20-01 (MAC von PC1)",[24,73413,73414],{},[42,73415,73416],{},"Inhalt: Die eigentlichen Nutzdaten (z. B. ein HTTP-Request oder Ping)",[318,73418,73419],{},[24,73420,73421,73422],{},"Besonderheit (Reden nach Außen)\n",[318,73423,73424,73427,73437],{},[24,73425,73426],{},"PC1 stellt fest, dass die Ziel-IP außerhalb seines Subnetzes liegt",[24,73428,73429,73430,73432,73433,73436],{},"ARP wird nun ",[42,73431,68011],{}," für die Ziel-IP ausgeführt, sondern für das ",[42,73434,73435],{},"Standard-Gateway"," (Router-Port G01)",[24,73438,73439],{},"PC1 sendet das Paket an die MAC des Routers (08-15-47-11-20-65), damit dieser es weiterleitet",[11,73441,73443],{"id":73442},"ipv6","IPv6",[16,73445,73447],{"id":73446},"aufbau-einer-ipv6-adresse","Aufbau einer IPv6-Adresse",[21,73449,73450,73453,73456,73459],{},[24,73451,73452],{},"128-Bit lang",[24,73454,73455],{},"Darstellung erfolgt hexadezimal",[24,73457,73458],{},"Blöcke werden durch Doppelpunkte getrennt",[24,73460,73461,73464,73465,73468,73469,73472],{},[42,73462,73463],{},"Der Trenner (\u002F64):"," In der Regel wird die Adresse exakt in der Mitte geteilt. Die ersten 64 Bit bilden das ",[42,73466,73467],{},"Netzwerkpräfix"," (Netzwerkanteil), die letzten 64 Bit bilden die ",[42,73470,73471],{},"Interface-ID"," (Hostanteil). \u002F64 ist das Standard-Subnetz für lokale Netzwerke (notwendig z.B. für SLAAC).",[16,73474,73476],{"id":73475},"wichtige-adressbereiche","Wichtige Adressbereiche",[21,73478,73479,73485],{},[24,73480,73481,73484],{},[42,73482,73483],{},"::\u002F0 (Standardroute \u002F \"allow all\"):"," Repräsentiert alle möglichen IPv6-Adressen. Es ist das IPv6-Äquivalent zur IPv4-Standardroute 0.0.0.0\u002F0. Wird im Routing (Default-Route) oder in ACLs verwendet, um den restlichen Traffic abzufangen oder durchzulassen.",[24,73486,73487,73490],{},[42,73488,73489],{},"::1 (Localhost \u002F Loopback):"," Das ist die Loopback-Adresse des eigenen Geräts. Es ist das exakte Äquivalent zur 127.0.0.1 unter IPv4 und wird genutzt, um die lokale TCP\u002FIP-Konfiguration zu testen.",[11,73492,3400],{"id":3399},[21,73494,73495,73497],{},[24,73496,3405],{},[24,73498,3408],{},[414,73500,73501],{},"=> Domain-Namen wurden entwickelt",[21,73503,73504,73507,73513],{},[24,73505,73506],{},"Außerdem leichter wartbar, da beim Benutzen eines Domain-Namen dem Nutzer nicht auffällt, wenn sich die IP-Adresse hinter dem Namen ändert",[24,73508,73509,73512],{},[42,73510,73511],{},"FQDN:"," Fully Qualified Domain Name z.B. shenjas-pc.fritz.box",[24,73514,73515,73518],{},[42,73516,73517],{},"NSLOOKUP:"," Dienstprogramm zur “manuellen” Abfrage von Domain-Namen, z.B. für Debug",[16,73520,3430],{"id":3429},[318,73522,73523,73525,73527,73529,73531],{},[24,73524,3435],{},[24,73526,3438],{},[24,73528,3441],{},[24,73530,3444],{},[24,73532,3447],{},[16,73534,69379],{"id":69378},[765,73536,73537,73545],{},[768,73538,73539],{},[771,73540,73541,73543],{},[774,73542,1932],{},[774,73544,6733],{},[787,73546,73547,73553,73559,73565],{},[771,73548,73549,73551],{},[792,73550,67087],{},[792,73552,69402],{},[771,73554,73555,73557],{},[792,73556,69407],{},[792,73558,69410],{},[771,73560,73561,73563],{},[792,73562,69415],{},[792,73564,69418],{},[771,73566,73567,73569],{},[792,73568,69423],{},[792,73570,69426],{},[16,73572,69430],{"id":69429},[21,73574,73575],{},[24,73576,69435,73577],{},[21,73578,73579,73585,73587,73589],{},[24,73580,69440,73581],{},[21,73582,73583],{},[24,73584,69447],{},[24,73586,69450],{},[24,73588,69453],{},[24,73590,73591],{},"Sobald der Datensatz von einem anderen Server aufgelöst wurde, sendet der DNS-Server die entsprechende Auflösung und speichert diese für einen definierten Zeitraum in den eigenen Datensätzen, um eine weiter Abfrage schneller auflösen zu können",[16,73593,69460],{"id":69459},[21,73595,73596,73598,73606],{},[24,73597,69465],{},[24,73599,69468,73600],{},[21,73601,73602,73604],{},[24,73603,69473],{},[24,73605,69476],{},[24,73607,69479],{},[16,73609,69483],{"id":69482},[318,73611,73612,73614,73616],{},[24,73613,69488],{},[24,73615,69491],{},[24,73617,69494],{},[11,73619,3451],{"id":3450},[21,73621,73622,73624,73626,73628],{},[24,73623,3456],{},[24,73625,3459],{},[24,73627,3462],{},[24,73629,3465,73630],{},[21,73631,73632],{},[24,73633,3470],{},[16,73635,3430],{"id":3473},[318,73637,73638,73643,73649,73653],{},[24,73639,73640,73642],{},[42,73641,3480],{}," (Broadcast): Client sendet DHCP-Discover beim Booten bzw. beim Herstellen einer Verbindung in einem Netzwerk",[24,73644,73645,73648],{},[42,73646,73647],{},"Offer:"," Ein DHCP-Server, der den Discover-Broadcast erhalten hat, antwortet mit einem DHCP-Offer, in dem die Netzwerkdaten über eine bestimmte Lease-Dauer enthalten sind",[24,73650,73651,3493],{},[42,73652,3492],{},[24,73654,73655,73657],{},[42,73656,69689],{},[318,73658,73659,73662],{},[24,73660,73661],{},"Wenn die angebotene Adresse aus dem Offer am Server noch verfügbar ist, antwortet dieser mit einer entsprechenden Bestätigung",[24,73663,3506,73664,3510,73666,3513],{},[42,73665,3509],{},[42,73667,3480],{},[414,73669,73670],{},[1504,73671],{"alt":269,"src":73672},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_4.png",[16,73674,5318],{"id":5317},[414,73676,5321],{},[470,73678,3430],{"id":73679},"schritte-2",[318,73681,73682,73684],{},[24,73683,5328],{},[24,73685,5331],{},[16,73687,73689],{"id":73688},"dhcpv6","DHCPv6",[21,73691,73692,73695,73698],{},[24,73693,73694],{},"A flag: Das ist der Address Autoconfigure Flag",[24,73696,73697],{},"O flag: Das ist der Other Flag bedeutet der Server hat noch Informationen",[24,73699,73700],{},"M flag: Das ist der Managed Flag bedeutet der Server gibt die Addresse vor",[470,73702,73704],{"id":73703},"slaac","SLAAC",[414,73706,73707],{},"Der Client generiert seine eigene Adresse mithilfe von Router Advertisement (RA) Nachrichten, ohne einen DHCP-Server zu benötigen und wird eingeleitet mit einem A Flag only Nachricht.",[470,73709,73689],{"id":73710},"dhcpv6-1",[21,73712,73713,73724],{},[24,73714,73715,73716],{},"Stateless DHCPv6\n",[21,73717,73718,73721],{},[24,73719,73720],{},"Beginnt mit einer Antwort vom Server mit einer A und O Flag Antwort",[24,73722,73723],{},"Der Client gibt sich selbst die Adresse, aber Server hat zusätzliche Informationen über den Client wie z.B. DNS",[24,73725,73726,73727],{},"Stateful DHCPv6\n",[21,73728,73729,73732],{},[24,73730,73731],{},"Beginnt mit einer M Flag Antwort",[24,73733,73734],{},"Der Client erhält seine IPv6 Adresse von dem DHCPv6 Server",[414,73736,73737],{},[1504,73738],{"alt":269,"src":73739},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_5.png",[11,73741,69571],{"id":69570},[21,73743,73744,73746,73748,73750],{},[24,73745,69576],{},[24,73747,69579],{},[24,73749,69582],{},[24,73751,69585],{},[16,73753,69589],{"id":69588},[21,73755,73756,73758,73760,73763,73765],{},[24,73757,69594],{},[24,73759,69597],{},[24,73761,73762],{},"Erneute Übertragung, wenn keine Bestätigung erfolgt",[24,73764,69603],{},[24,73766,69606],{},[16,73768,73770],{"id":73769},"anwendungen","Anwendungen",[21,73772,73773,73775],{},[24,73774,69614],{},[24,73776,73777],{},"http\u002FHTTPS",[414,73779,2615],{},[414,73781,69622],{},[21,73783,73784,73786,73788,73791,73794,73796,73798,73801,73803,73805,73807],{},[24,73785,69627],{},[24,73787,69630],{},[24,73789,73790],{},"Sequenznummer: Für den Wiederzusammenbau",[24,73792,73793],{},"Bestätigungsnummer: Anzeige, dass Daten erhalten wurden und auf das Nächste Segment gewartet wird",[24,73795,69645],{},[24,73797,69648],{},[24,73799,73800],{},"Steuer-Bit: Erläutert Zweck und Funktion des Segments",[24,73802,69657],{},[24,73804,69660],{},[24,73806,69663],{},[24,73808,69666],{},[16,73810,69670],{"id":69669},[318,73812,73813,73817,73823],{},[24,73814,73815,69678],{},[42,73816,69677],{},[24,73818,73819,8629,73821,69684],{},[42,73820,69689],{},[42,73822,69677],{},[24,73824,73825,69690],{},[42,73826,69689],{},[16,73828,69694],{"id":69693},[318,73830,73831,73835,73839,73843],{},[24,73832,73833,69702],{},[42,73834,69701],{},[24,73836,73837,69707],{},[42,73838,69689],{},[24,73840,73841,69712],{},[42,73842,69701],{},[24,73844,73845,69717],{},[42,73846,69689],{},[11,73848,69721],{"id":69720},[21,73850,73851,73853,73855,73857,73859],{},[24,73852,69726],{},[24,73854,69729],{},[24,73856,69732],{},[24,73858,69735],{},[24,73860,69738],{},[16,73862,69059],{"id":69609},[21,73864,73865,73867],{},[24,73866,69746],{},[24,73868,4262],{},[11,73870,73872],{"id":73871},"icmp-ping-tracert","ICMP (Ping + Tracert)",[21,73874,73875,73878,73883],{},[24,73876,73877],{},"Internet Control Message Protocol",[24,73879,73880,73882],{},[42,73881,8248],{},": Fehlermeldungen und Diagnoseinformationen zur IP-Paketübertragung",[24,73884,73885,73886],{},"Wichtige Nachrichten:\n",[21,73887,73888,73894,73900],{},[24,73889,73890,73893],{},[42,73891,73892],{},"Echo Request \u002F Reply",": Wird vom Befehl ping genutzt, um Erreichbarkeit zu prüfen",[24,73895,73896,73899],{},[42,73897,73898],{},"Destination Unreachable",": Meldung, wenn ein Ziel oder Dienst nicht erreichbar ist",[24,73901,73902,73905],{},[42,73903,73904],{},"Time Exceeded:"," Wenn die TTL eines Pakets auf 0 sinkt (genutzt von traceroute)",[11,73907,69752],{"id":69751},[21,73909,73910,73912,73914],{},[24,73911,69757],{},[24,73913,69760],{},[24,73915,69763],{},[16,73917,69767],{"id":69766},[21,73919,73920,73922,73925],{},[24,73921,69772],{},[24,73923,73924],{},"Subnetting ermöglicht es auf OSI-Layer 3 ein großes Netz in mehrere kleinen Subnetze aufzuteilen",[24,73926,69778],{},[16,73928,1014],{"id":1013},[21,73930,73931,73935,73939,73945,73949],{},[24,73932,73933,69788],{},[42,73934,69787],{},[24,73936,73937,69794],{},[42,73938,69793],{},[24,73940,73941,73944],{},[42,73942,73943],{},"Reduzierte Kosten",": VLANs verwenden die vorhandene Bandbreite effizienter",[24,73946,73947,69806],{},[42,73948,69805],{},[24,73950,73951,69812],{},[42,73952,69811],{},[16,73954,1432],{"id":1431},[21,73956,73957,73961,73965,73975,73979],{},[24,73958,73959,69822],{},[42,73960,69821],{},[24,73962,73963,69828],{},[42,73964,69827],{},[24,73966,73967,69834,73969],{},[42,73968,69833],{},[21,73970,73971,73973],{},[24,73972,69839],{},[24,73974,69842],{},[24,73976,73977,69848],{},[42,73978,69847],{},[24,73980,73981,69854],{},[42,73982,69853],{},[16,73984,69858],{"id":69857},[21,73986,73987,73989],{},[24,73988,69863],{},[24,73990,69866],{},[16,73992,69870],{"id":69869},[414,73994,69873],{},[470,73996,69877],{"id":69876},[21,73998,73999,74001,74003],{},[24,74000,69887],{},[24,74002,69890],{},[24,74004,69893,74005],{},[21,74006,74007],{},[24,74008,69898],{},[470,74010,69902],{"id":69901},[21,74012,74013,74018],{},[24,74014,74015,69912],{},[1504,74016],{"alt":269,"src":74017},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_8.png",[24,74019,69915],{},[470,74021,69919],{"id":69918},[21,74023,74024,74029,74031],{},[24,74025,74026,69929],{},[1504,74027],{"alt":269,"src":74028},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_9.png",[24,74030,69932],{},[24,74032,69935],{},[16,74034,69939],{"id":69938},[470,74036,69943],{"id":69942},[21,74038,74039],{},[24,74040,69948],{},[318,74042,74043,74045],{},[24,74044,69953],{},[24,74046,69956],{},[470,74048,69960],{"id":69959},[21,74050,74051],{},[24,74052,69948],{},[318,74054,74055],{},[24,74056,69969],{},[470,74058,69973],{"id":69972},[21,74060,74061],{},[24,74062,69948],{},[318,74064,74065,74067,74069,74071],{},[24,74066,69982],{},[24,74068,69985],{},[24,74070,69988],{},[24,74072,69991],{},[470,74074,69995],{"id":69994},[21,74076,74077],{},[24,74078,69948],{},[318,74080,74081,74083,74085,74087,74089],{},[24,74082,70004],{},[24,74084,70007],{},[24,74086,70010],{},[24,74088,70013],{},[24,74090,69991],{},[470,74092,70019],{"id":70018},[21,74094,74095],{},[24,74096,69948],{},[318,74098,74099,74101,74103,74105,74107,74109],{},[24,74100,70028],{},[24,74102,70031],{},[24,74104,70034],{},[24,74106,70037],{},[24,74108,70040],{},[24,74110,69991],{},[11,74112,70090],{"id":70089},[414,74114,74115],{},"Mit Hilfe von STP lassen sich Redundanzen im Netzwerk bilden. Ohne STP würden in diesen",[414,74117,74118],{},"Topologien Schleifen auf Layer-2 entstehen, die das gesamte Netzwerk lahmlegen können.",[16,74120,70097],{"id":70096},[414,74122,74123],{},"Wenn Schleifen existieren und STP nicht aktiviert ist, werden Broadcast-Pakete (z.B. ARP) von einem",[414,74125,74126],{},"Client an jedem Switch an alle anderen Ports weitergeleitet. Bei Schleifen erhält ein Switch das",[414,74128,74129],{},"gleiche Paket nach kurzer Zeit wieder und leitet es erneut an alle anderen Ports weiter. Die Anzahl",[414,74131,74132],{},"der Pakete im Netz steigt somit schnell an und überlastet die Infrastruktur, wodurch andere Pakete",[414,74134,74135],{},"vernachlässigt werden.",[16,74137,70104],{"id":70103},[470,74139,70108],{"id":70107},[414,74141,70111],{},[414,74143,70114,74144,74146],{},[42,74145,70117],{},". Diese ID besteht ausfolgenden Elementen:",[21,74148,74149,74159,74167],{},[24,74150,74151,74153],{},[42,74152,1863],{},[21,74154,74155,74157],{},[24,74156,70129],{},[24,74158,70132],{},[24,74160,74161,74163],{},[42,74162,70137],{},[21,74164,74165],{},[24,74166,70142],{},[24,74168,74169,74171],{},[42,74170,70147],{},[21,74172,74173],{},[24,74174,70152],{},[414,74176,70155,74177,70159,74179],{},[42,74178,70158],{},[42,74180,70162],{},[470,74182,70166],{"id":70165},[414,74184,70169],{},[470,74186,74188],{"id":74187},"_3-ermittlung-der-prot-zustände","3. Ermittlung der Prot-Zustände",[414,74190,70176,74191,70180,74193,70184],{},[42,74192,70179],{},[42,74194,70183],{},[414,74196,74197],{},[1504,74198],{"alt":269,"src":74199},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_10.png",[414,74201,70192,74202,70196,74204,7834],{},[42,74203,70195],{},[42,74205,70199],{},[414,74207,70202,74208,70206,74210],{},[42,74209,70205],{},[42,74211,70209],{},[414,74213,70212,74214,70216],{},[42,74215,70215],{},[414,74217,74218],{},[1504,74219],{"alt":269,"src":74220},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_11.png",[470,74222,70225],{"id":70224},[414,74224,74225,74228],{},[1504,74226],{"alt":269,"src":74227},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_12.png","Wenn ein Switch oder eine Leitung ausfällt wird die STP Topologie neuberechnet. Dabei werden zuvor geblockte Ports ggf. wieder freigegeben. Auch bei jedem topology change (neuer switch) wird root neu ermittelt!",[11,74230,70240],{"id":70239},[414,74232,70243],{},[414,74234,70246],{},[16,74236,70250],{"id":70249},[21,74238,74239,74241,74243],{},[24,74240,70255],{},[24,74242,70258],{},[24,74244,70261],{},[16,74246,70265],{"id":70264},[470,74248,70269],{"id":70268},[21,74250,74251,74253,74255],{},[24,74252,70274],{},[24,74254,70277],{},[24,74256,70280,74257],{},[21,74258,74259,74263,74267],{},[24,74260,74261,70288],{},[42,74262,70287],{},[24,74264,74265,70294],{},[42,74266,70293],{},[24,74268,74269,70300],{},[42,74270,70299],{},[414,74272,74273],{},[1504,74274],{"alt":269,"src":74275},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_13.png",[470,74277,70309],{"id":70308},[21,74279,74280,74282],{},[24,74281,70314],{},[24,74283,70317,74284],{},[21,74285,74286,74290,74294],{},[24,74287,74288,70324],{},[42,74289,70287],{},[24,74291,74292,70294],{},[42,74293,70329],{},[24,74295,74296,74299,70335],{},[1504,74297],{"alt":269,"src":74298},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_14.png",[42,74300,70334],{},[11,74302,70344],{"id":70343},[414,74304,74305],{},"In einem Netzwerk in dem Client einen einzelnen Router als Standardgateway hinterlegt haben, sind eben diese Clients vom externen Netz getrennt, sobald der Router ausfällt. Um das zu verhindern, werden First-Hop Redundancy-Protokolle verwendet.",[414,74307,74308],{},"Um einen Single-Point-of-Failure zu verhindern, bietet es sich an eine virtuelle IP-Adresse als Standardgateway zu verwenden, hinter der sich mehrere Router verbergen. Über die virtuelle IP-Adresse können Pakete nach extern weitergeleitet werden, auch wenn ein Router ausfällt.",[414,74310,74311],{},[1504,74312],{"alt":269,"src":74313},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_15.png",[16,74315,74317],{"id":74316},"verfügbare-protokole","Verfügbare Protokole",[470,74319,70363],{"id":70362},[21,74321,74322,74324],{},[24,74323,70274],{},[24,74325,70370],{},[470,74327,70374],{"id":70373},[21,74329,74330],{},[24,74331,70379],{},[470,74333,70383],{"id":70382},[21,74335,74336,74338,74340],{},[24,74337,70274],{},[24,74339,70390],{},[24,74341,70393],{},[470,74343,70397],{"id":70396},[21,74345,74346,74348],{},[24,74347,70402],{},[24,74349,70405],{},[470,74351,70363],{"id":70408},[21,74353,74354,74356,74364,74366,74368],{},[24,74355,70413],{},[24,74357,70416,74358],{},[21,74359,74360,74362],{},[24,74361,70421],{},[24,74363,70424],{},[24,74365,70427],{},[24,74367,70430],{},[24,74369,74370,74371],{},"Bestimmung des aktiven Routers\n",[21,74372,74373,74380],{},[24,74374,74375],{},[318,74376,74377],{},[24,74378,74379],{},"Priorität: Standardmäßig 100; Zwischen 0 und 255; Höchste Prio gewinnt",[24,74381,74382],{},[318,74383,74384],{"start":270},[24,74385,74386],{},"IP-Adresse: Höchste IP-Adresse gewinnt",[470,74388,70434],{"id":70433},[414,74390,70437],{},[470,74392,70441],{"id":70440},[11,74394,70552],{"id":70551},[21,74396,74397,74399],{},[24,74398,70557],{},[24,74400,74401,70563],{},[42,74402,70562],{},[16,74404,74405],{"id":70566},"Routing Tabelle",[21,74407,74408],{},[24,74409,74410,70575],{},[42,74411,70574],{},[470,74413,70579],{"id":70578},[21,74415,74416,74420,74424,74428,74432,74436],{},[24,74417,74418,70587],{},[42,74419,70586],{},[24,74421,74422,70593],{},[42,74423,70592],{},[24,74425,74426,70599],{},[42,74427,70598],{},[24,74429,74430,70605],{},[42,74431,70604],{},[24,74433,74434,70611],{},[42,74435,70610],{},[24,74437,74438,70621],{},[406,74439,74440,70620],{},[406,74441,74442],{},[4173,74443,14462],{},[470,74445,70625],{"id":70624},[21,74447,74448,74450,74452],{},[24,74449,70630],{},[24,74451,70633],{},[24,74453,70636,74454],{},[21,74455,74456,74458,74460],{},[24,74457,70641],{},[24,74459,70644],{},[24,74461,70647],{},[470,74463,70651],{"id":70650},[414,74465,70654],{},[470,74467,70658],{"id":70657},[21,74469,74470,74474,74489],{},[24,74471,74472,70666],{},[42,74473,70665],{},[24,74475,74476,70672,74478],{},[42,74477,70671],{},[21,74479,74480,74484],{},[24,74481,74482,70680],{},[42,74483,70679],{},[24,74485,74486],{},[42,74487,74488],{},"Dynamische Routing Protokolle (OSPF etc.): Wird zur Tabelle hinzugefügt, wenn Dyn. Routing-Protokolle etwas über entfernte Netze erfahren",[24,74490,74491,70692,74493],{},[42,74492,70691],{},[21,74494,74495,74497],{},[24,74496,70697],{},[24,74498,70700],{},[16,74500,70704],{"id":70703},[21,74502,74503,74507,74512,74516],{},[24,74504,74505,70712],{},[42,74506,70711],{},[24,74508,74509,74511],{},[42,74510,70717],{},": Ip route 0.0.0.0 0.0.0.0 172.168.0.2 (Zieladresse)",[24,74513,74514,70724],{},[42,74515,70723],{},[24,74517,74518,70730],{},[42,74519,70729],{},[470,74521,70734],{"id":70733},[21,74523,74524,74526],{},[24,74525,70739],{},[24,74527,70742],{},[470,74529,70746],{"id":70745},[21,74531,74532],{},[24,74533,70751],{},[414,74535,74536],{},[406,74537,8190],{},[21,74539,74540,74542,74544],{},[24,74541,70758],{},[24,74543,70761],{},[24,74545,74546,74547],{},"10.40.3.0\u002F24\n",[21,74548,74549,74553],{},[24,74550,70767,74551,70771],{},[42,74552,70770],{},[24,74554,70774,74555,70778],{},[42,74556,70777],{},[16,74558,70782],{"id":70781},[21,74560,74561,74563,74565],{},[24,74562,70787],{},[24,74564,70790],{},[24,74566,70793],{},[16,74568,74570],{"id":74569},"packetweiterleitung","Packetweiterleitung",[470,74572,70801],{"id":70800},[318,74574,74575,74577,74579],{},[24,74576,70806],{},[24,74578,70809],{},[24,74580,70812,74581],{},[318,74582,74583,74595],{},[24,74584,70817,74585],{},[318,74586,74587,74591],{},[24,74588,74589,70825],{},[42,74590,70824],{},[24,74592,74593,70831],{},[42,74594,70830],{},[24,74596,70834,74597],{},[318,74598,74599,74603],{},[24,74600,74601,70831],{},[42,74602,70841],{},[24,74604,74605,70847],{},[42,74606,70846],{},[470,74608,70851],{"id":70850},[21,74610,74611,74613],{},[24,74612,70856],{},[24,74614,70859],{},[414,74616,74617,74620],{},[1504,74618],{"alt":269,"src":74619},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_17.png",[406,74621,763],{},[318,74623,74624,74632,74640,74650,74658],{},[24,74625,70871,74626],{},[318,74627,74628,74630],{},[24,74629,70876],{},[24,74631,70879],{},[24,74633,70882,74634],{},[318,74635,74636,74638],{},[24,74637,70887],{},[24,74639,70890],{},[24,74641,70893,74642],{},[318,74643,74644,74646,74648],{},[24,74645,70898],{},[24,74647,70901],{},[24,74649,70904],{},[24,74651,70907,74652],{},[318,74653,74654,74656],{},[24,74655,70912],{},[24,74657,70915],{},[24,74659,70918],{},[16,74661,71127],{"id":71126},[21,74663,74664,74668,74672],{},[24,74665,74666,71135],{},[42,74667,71134],{},[24,74669,74670,71141],{},[42,74671,71140],{},[24,74673,71144],{},[470,74675,71148],{"id":71147},[21,74677,74678],{},[24,74679,74680,71156,74682],{},[42,74681,71155],{},[21,74683,74684,74686],{},[24,74685,71161],{},[24,74687,71164],{},[470,74689,71168],{"id":71167},[21,74691,74692,74696,74713],{},[24,74693,71173,74694,71177],{},[42,74695,71176],{},[24,74697,74698,74699],{},"Link kann sein …\n",[21,74700,74701,74705,74709],{},[24,74702,74703,71188],{},[42,74704,71187],{},[24,74706,74707,71194],{},[42,74708,71193],{},[24,74710,74711,71200],{},[42,74712,71199],{},[24,74714,71203,74715],{},[21,74716,74717,74719,74721],{},[24,74718,71208],{},[24,74720,71211],{},[24,74722,3539],{},[470,74724,71217],{"id":71216},[475,74726,71221],{"id":71220},[318,74728,74729,74742,74753,74757,74761],{},[24,74730,74731,74732],{},"Hello Paket:\n",[21,74733,74734,74736,74738,74740],{},[24,74735,71233],{},[24,74737,71236],{},[24,74739,71239],{},[24,74741,71242],{},[24,74743,74744,74747],{},[42,74745,74746],{},"Database-Description-Paket (DBD):",[21,74748,74749,74751],{},[24,74750,71252],{},[24,74752,71255],{},[24,74754,74755,71261],{},[42,74756,71260],{},[24,74758,74759,71267],{},[42,74760,71266],{},[24,74762,74763,71273],{},[42,74764,71272],{},[475,74766,34009],{"id":71276},[21,74768,74769,74771,74773,74781],{},[24,74770,71281],{},[24,74772,71284],{},[24,74774,71287,74775],{},[21,74776,74777,74779],{},[24,74778,71292],{},[24,74780,71295],{},[24,74782,71298],{},[475,74784,71302],{"id":71301},[21,74786,74787,74799,74813],{},[24,74788,74789,74791],{},[42,74790,71309],{},[21,74792,74793,74795,74797],{},[24,74794,71314],{},[24,74796,71317],{},[24,74798,71320],{},[24,74800,74801,74803],{},[42,74802,71325],{},[21,74804,74805,74807,74809,74811],{},[24,74806,71330],{},[24,74808,71333],{},[24,74810,71336],{},[24,74812,71339],{},[24,74814,74815,74817],{},[42,74816,71344],{},[21,74818,74819,74821,74823],{},[24,74820,71349],{},[24,74822,71317],{},[24,74824,71354],{},[470,74826,71358],{"id":71357},[318,74828,74829,74839,74849,74859,74867],{},[24,74830,74831,74833],{},[42,74832,71365],{},[21,74834,74835,74837],{},[24,74836,71370],{},[24,74838,71373],{},[24,74840,74841,74843],{},[42,74842,71378],{},[21,74844,74845,74847],{},[24,74846,71383],{},[24,74848,71386],{},[24,74850,74851,74853],{},[42,74852,71391],{},[21,74854,74855,74857],{},[24,74856,71396],{},[24,74858,71399],{},[24,74860,74861,74863],{},[42,74862,71404],{},[21,74864,74865],{},[24,74866,71409],{},[24,74868,74869,74871],{},[42,74870,71414],{},[21,74872,74873],{},[24,74874,71419],{},[470,74876,71423],{"id":71422},[21,74878,74879,74883],{},[24,74880,74881,71431],{},[42,74882,71430],{},[24,74884,74885,2815,74887],{},[42,74886,71436],{},[21,74888,74889,74891,74893,74895],{},[24,74890,71441],{},[24,74892,71444],{},[24,74894,71447],{},[24,74896,4806,74897],{},[21,74898,74899,74903,74907],{},[24,74900,74901,71457],{},[42,74902,71456],{},[24,74904,74905,71463],{},[42,74906,71462],{},[24,74908,74909,71469],{},[42,74910,71468],{},[470,74912,71473],{"id":71472},[475,74914,74916],{"id":74915},"probem","Probem",[21,74918,74919,74921,74923],{},[24,74920,71480],{},[24,74922,71483],{},[24,74924,74925,74926],{},"Durch die Erstellung von Neighbor Ajacencies können viele Nachbarschaften entstehen => Unnötig\n",[21,74927,74928],{},[24,74929,71494],{},[475,74931,558],{"id":557},[21,74933,74934,74946,74948,74950,74952,74954],{},[24,74935,71501,74936],{},[21,74937,74938,74940,74942,74944],{},[24,74939,71506],{},[24,74941,71509],{},[24,74943,71512],{},[24,74945,71515],{},[24,74947,71518],{},[24,74949,71521],{},[24,74951,71524],{},[24,74953,71527],{},[24,74955,74956],{},"Neuer DR (alter BDR) bleibt DR, auch wenn ursprünglicher DR wieder da ist > solange bis entweder ausfall, oder neues Bestimmen (händisch)",[470,74958,71531],{"id":71530},[21,74960,74961,74963,74965],{},[24,74962,71536],{},[24,74964,71539],{},[24,74966,74967,74968],{},"Jeder Router hat eine OSPF-Router-IDW\n",[21,74969,74970],{},[24,74971,71547,74972],{},[21,74973,74974,74976],{},[24,74975,71552],{},[24,74977,71555],{},[475,74979,71559],{"id":71558},[318,74981,74982,74984,74986],{},[24,74983,71564],{},[24,74985,71567],{},[24,74987,71570],{},[21,74989,74990],{},[24,74991,71575],{},[470,74993,71579],{"id":71578},[21,74995,74996,75004],{},[24,74997,74998,71586,75000],{},[42,74999,43292],{},[21,75001,75002],{},[24,75003,71591],{},[24,75005,71594],{},[470,75007,71598],{"id":71597},[21,75009,75010,75012,75014,75016],{},[24,75011,71621],{},[24,75013,71624],{},[24,75015,71609],{},[24,75017,71612],{},[470,75019,71616],{"id":71615},[21,75021,75022,75024],{},[24,75023,71621],{},[24,75025,71624],{},[470,75027,71628],{"id":71627},[414,75029,75030],{},"Kosten:",[21,75032,75033,75039,75049,75053],{},[24,75034,71636,75035],{},[21,75036,75037],{},[24,75038,71641],{},[24,75040,71644,75041],{},[21,75042,75043,75046],{},[24,75044,75045],{},"Um bessere Leitungen zu priorisieren müssen die Kosten manuell konfiguriert werden",[24,75047,75048],{},"=> Kosten für 100M und 1G sollten höher sein als für 10G",[24,75050,75051,71654],{},[42,75052,43292],{},[24,75054,71657],{},[470,75056,71661],{"id":71660},[21,75058,75059,75061,75065,75067],{},[24,75060,71666],{},[24,75062,75063,71672],{},[42,75064,71671],{},[24,75066,71675],{},[24,75068,71678],{},[11,75070,4938],{"id":4937},[21,75072,75073,75075,75077,75081,75083,75093,75104],{},[24,75074,71803],{},[24,75076,71806],{},[24,75078,71809,75079,6282],{},[42,75080,71812],{},[24,75082,71815],{},[24,75084,71818,75085,71822,75087,71826,75089],{},[42,75086,71821],{},[42,75088,71825],{},[21,75090,75091],{},[24,75092,71831],{},[24,75094,75095,75096],{},"Ablauf:\n",[21,75097,75098,75100,75102],{},[24,75099,71840],{},[24,75101,71843],{},[24,75103,71846],{},[24,75105,71849,75106],{},[21,75107,75108,75110],{},[24,75109,71854],{},[24,75111,71857],{},[16,75113,71861],{"id":71860},[21,75115,75116,75118,75121],{},[24,75117,71866],{},[24,75119,75120],{},"Typischerweise am Ziel angewandt",[24,75122,71875],{},[470,75124,4283],{"id":4282},[21,75126,75127],{},[24,75128,71882],{},[475,75130,75131],{"id":71885},"Nummerierte Standard ACL",[414,75133,71889,75134,71893,75136,71897,75138,6100,75140],{},[406,75135,71892],{},[406,75137,71896],{},[406,75139,71900],{},[4173,75141,75142],{},[406,75143,71905],{},[414,75145,71908],{},[414,75147,71911],{},[475,75149,75150],{"id":71914},"Benannte Standard ACL",[414,75152,71918,75153],{},[406,75154,71921],{},[414,75156,71924],{},[414,75158,71927,75159,6100,75161],{},[406,75160,71900],{},[4173,75162,75163],{},[406,75164,71905],{},[414,75166,71936],{},[414,75168,71939],{},[475,75170,71943],{"id":71942},[414,75172,71946],{},[414,75174,71949],{},[414,75176,71952],{},[414,75178,71955],{},[414,75180,71958],{},[414,75182,71961,75183],{},[4173,75184,71905],{},[414,75186,71966],{},[16,75188,71970],{"id":71969},[21,75190,75191,75203,75210],{},[24,75192,71975,75193],{},[21,75194,75195,75197,75199,75201],{},[24,75196,71980],{},[24,75198,71983],{},[24,75200,71986],{},[24,75202,71989],{},[24,75204,75205,75206],{},"Typischerweise an der Quelle angewandt\n",[21,75207,75208],{},[24,75209,72001],{},[24,75211,72004],{},[470,75213,4283],{"id":72007},[21,75215,75216],{},[24,75217,71882],{},[475,75219,72015],{"id":72014},[414,75221,71889,75222,71893,75224,71897,75226,6100,75229,6100,75235,6100,75238,6100,75244],{},[406,75223,71892],{},[406,75225,71896],{},[406,75227,75228],{},"protocol source source-wildcard",[4173,75230,75231,6560,75233,19762],{},[406,75232,72033],{},[406,75234,30774],{},[406,75236,75237],{},"destination destination-wildcard",[4173,75239,75240,6560,75242,19762],{},[406,75241,72033],{},[406,75243,30774],{},[4173,75245,72050],{},[414,75247,72053],{},[414,75249,72056],{},[475,75251,72060],{"id":72059},[414,75253,72063],{},[414,75255,72066],{},[414,75257,72069,75258,71897,75260,6100,75262,6100,75268,6100,75270,6100,75276],{},[406,75259,71896],{},[406,75261,75228],{},[4173,75263,75264,6560,75266,19762],{},[406,75265,72033],{},[406,75267,30774],{},[406,75269,75237],{},[4173,75271,75272,6560,75274,19762],{},[406,75273,72033],{},[406,75275,30774],{},[4173,75277,72050],{},[414,75279,72098],{},[414,75281,72101],{},[475,75283,71943],{"id":72104},[414,75285,72107,75286,19762],{},[406,75287,71892],{},[414,75289,72066],{},[414,75291,72114],{},[414,75293,72117,75294],{},[406,75295,72120],{},[414,75297,71958],{},[414,75299,75300,71893,75302,71897,75304,6100,75306,6100,75312,6100,75314,6100,75320],{},[406,75301,72127],{},[406,75303,71896],{},[406,75305,75228],{},[4173,75307,75308,6560,75310,19762],{},[406,75309,72033],{},[406,75311,30774],{},[406,75313,75237],{},[4173,75315,75316,6560,75318,19762],{},[406,75317,72033],{},[406,75319,30774],{},[4173,75321,72050],{},[414,75323,72156],{},[16,75325,72160],{"id":72159},[470,75327,72164],{"id":72163},[414,75329,75330],{},"Enable",[414,75332,75333],{},"Configure terminal",[414,75335,75336],{},"Interface g0\u002F0\u002F0",[414,75338,72167,75339,72170,75341,72173],{},[406,75340,71892],{},[406,75342,71921],{},[414,75344,72176],{},[414,75346,72179],{},[11,75348,72229],{"id":72228},[21,75350,75351,75355,75357],{},[24,75352,75353,72236],{},[42,75354,530],{},[24,75356,72239],{},[24,75358,75359,72244],{},[42,75360,558],{},[16,75362,75364],{"id":75363},"vorteil","Vorteil",[21,75366,75367,75369,75373],{},[24,75368,72251],{},[24,75370,75371,72257],{},[42,75372,72256],{},[24,75374,72260],{},[16,75376,72264],{"id":72263},[21,75378,75379,75381,75383],{},[24,75380,72269],{},[24,75382,72272],{},[24,75384,72275],{},[16,75386,72279],{"id":72278},[21,75388,75389,75393,75397,75401,75405,75409,75413,75417,75421,75425],{},[24,75390,75391,72287],{},[42,75392,72286],{},[24,75394,75395,72293],{},[42,75396,72292],{},[24,75398,75399,72299],{},[42,75400,72298],{},[24,75402,75403,72305],{},[42,75404,72304],{},[24,75406,75407,72311],{},[42,75408,72310],{},[24,75410,75411,72317],{},[42,75412,72316],{},[24,75414,75415,72323],{},[42,75416,72322],{},[24,75418,75419,72329],{},[42,75420,72328],{},[24,75422,75423,72335],{},[42,75424,72334],{},[24,75426,75427,72340,75429],{},[42,75428,763],{},[21,75430,75431,75437,75440],{},[24,75432,72345,75433],{},[21,75434,75435],{},[24,75436,72350],{},[24,75438,75439],{},"Externe globale Adresse (also Ziel-IP) ändert sich in der Regel nicht, da das Zielmeistens öffentlich ist. Extern global und extern lokal sind dann identisch",[24,75441,72356],{},[11,75443,72360],{"id":72359},[470,75445,72364],{"id":72363},[414,75447,75448],{},[1504,75449],{"alt":269,"src":75450},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_19.png",[21,75452,75453,75455,75457,75459,75461,75463],{},[24,75454,72374],{},[24,75456,72377],{},[24,75458,72380],{},[24,75460,72383],{},[24,75462,72386],{},[24,75464,72389],{},[470,75466,72393],{"id":72392},[414,75468,75469],{},[1504,75470],{"alt":269,"src":75471},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_20.png",[21,75473,75474,75476,75478],{},[24,75475,72374],{},[24,75477,72405],{},[24,75479,72389],{},[470,75481,72411],{"id":72410},[414,75483,75484],{},[1504,75485],{"alt":269,"src":75486},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_21.png",[21,75488,75489,75495,75521,75523],{},[24,75490,72421,75491],{},[21,75492,75493],{},[24,75494,72426],{},[24,75496,72429,75497],{},[21,75498,75499,75501,75509,75511,75513],{},[24,75500,72434],{},[24,75502,72437,75503],{},[21,75504,75505,75507],{},[24,75506,72442],{},[24,75508,72445],{},[24,75510,72448],{},[24,75512,72451],{},[24,75514,72454,75515],{},[21,75516,75517,75519],{},[24,75518,72459],{},[24,75520,72462],{},[24,75522,72465],{},[24,75524,72468],{},[16,75526,72472],{"id":72471},[765,75528,75529,75541],{},[768,75530,75531],{},[771,75532,75533,75537],{},[774,75534,75535],{},[42,75536,8243],{},[774,75538,75539],{},[42,75540,854],{},[787,75542,75543,75551,75557],{},[771,75544,75545,75549],{},[792,75546,72493,75547],{},[4173,75548,25842],{},[792,75550,72498],{},[771,75552,75553,75555],{},[792,75554,72503],{},[792,75556,72506],{},[771,75558,75559,75561],{},[792,75560,72511],{},[792,75562,72514],{},[16,75564,72518],{"id":72517},[765,75566,75567,75583],{},[768,75568,75569],{},[771,75570,75571,75575,75579],{},[774,75572,75573],{},[42,75574,72529],{},[774,75576,75577],{},[42,75578,12738],{},[774,75580,75581],{},[42,75582,72538],{},[787,75584,75585,75593,75601],{},[771,75586,75587,75589,75591],{},[792,75588,67087],{},[792,75590,72547],{},[792,75592,72550],{},[771,75594,75595,75597,75599],{},[792,75596,72555],{},[792,75598,72558],{},[792,75600,72561],{},[771,75602,75603,75605,75607],{},[792,75604,67054],{},[792,75606,72568],{},[792,75608,72571],{},[11,75610,72575],{"id":72574},[21,75612,75613,75617],{},[24,75614,75615,72583],{},[42,75616,72582],{},[24,75618,72586],{},[414,75620,75621],{},[1504,75622],{"alt":269,"src":75623},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_22.png",[16,75625,72595],{"id":72594},[21,75627,75628,75630,75652],{},[24,75629,72600],{},[24,75631,75632,2815,75634],{},[42,75633,72605],{},[21,75635,75636,75638],{},[24,75637,72610],{},[24,75639,72613,75640],{},[21,75641,75642],{},[24,75643,72618,75644],{},[21,75645,75646,75648,75650],{},[24,75647,72623],{},[24,75649,72626],{},[24,75651,72629],{},[24,75653,75654,2815,75656],{},[42,75655,72634],{},[21,75657,75658,75660],{},[24,75659,72639],{},[24,75661,72642,75662],{},[21,75663,75664,75666,75668,75670,75672,75674],{},[24,75665,72647],{},[24,75667,72650],{},[24,75669,72653],{},[24,75671,72656],{},[24,75673,72659],{},[24,75675,72662],{},[16,75677,72279],{"id":72665},[414,75679,75680],{},[1504,75681],{"alt":269,"src":75682},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_23.png",[21,75684,75685,75689,75693,75697,75701,75705,75709,75713,75717,75721],{},[24,75686,75687,72678],{},[42,75688,72677],{},[24,75690,75691,72684],{},[42,75692,72683],{},[24,75694,75695,72690],{},[42,75696,72689],{},[24,75698,75699,72696],{},[42,75700,72695],{},[24,75702,75703,72702],{},[42,75704,72701],{},[24,75706,75707,72708],{},[42,75708,72707],{},[24,75710,75711,72714],{},[42,75712,72713],{},[24,75714,75715,72720],{},[42,75716,72719],{},[24,75718,75719,72726],{},[42,75720,72725],{},[24,75722,75723,72732],{},[42,75724,72731],{},[16,75726,72736],{"id":72735},[21,75728,75729],{},[24,75730,72741],{},[470,75732,72745],{"id":72744},[414,75734,75735],{},[1504,75736],{"alt":269,"src":75737},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_24.png",[21,75739,75740,75742,75744],{},[24,75741,72755],{},[24,75743,72758],{},[24,75745,72761],{},[470,75747,72765],{"id":72764},[414,75749,75750],{},[1504,75751],{"alt":269,"src":75752},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_25.png",[21,75754,75755,75761,75763],{},[24,75756,72775,75757],{},[21,75758,75759],{},[24,75760,72780],{},[24,75762,72783],{},[24,75764,72786],{},[470,75766,72790],{"id":72789},[414,75768,75769],{},[1504,75770],{"alt":269,"src":75771},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_26.png",[21,75773,75774,75776,75778],{},[24,75775,72800],{},[24,75777,72803],{},[24,75779,72806],{},[470,75781,72810],{"id":72809},[414,75783,75784],{},[1504,75785],{"alt":269,"src":75786},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_27.png",[21,75788,75789,75791,75793],{},[24,75790,72820],{},[24,75792,72823],{},[24,75794,72826],{},[470,75796,72830],{"id":72829},[414,75798,75799],{},[1504,75800],{"alt":269,"src":75801},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_28.png",[21,75803,75804,75806],{},[24,75805,72840],{},[24,75807,72843],{},[11,75809,75811],{"id":75810},"vpn","VPN",[21,75813,75814,75817,75846],{},[24,75815,75816],{},"Virtual Privat Network",[24,75818,75819,75820],{},"Benefits:\n",[21,75821,75822,75828,75834,75840],{},[24,75823,75824,75827],{},[42,75825,75826],{},"Cost-Saving",": Da VPN-Router eine sehr hohe Bandbreite zueinander auf weißen ist es sehr kosten effizient dadurch eine hohe Bandbreite zu erreichen",[24,75829,75830,75833],{},[42,75831,75832],{},"Security",": wegen der vorgeschrittenen Verschlüsslung von VPN-Tunneln weißt du dieser ein hohes Level an Sicherheit auf",[24,75835,75836,75839],{},[42,75837,75838],{},"Scalability",": Es ist sehr einfach neue VPN-Clients und Router einem Bestehenden VPN-Netzwerk hinzuzufügen, dadurch ist das System sehr gut Skalierbar",[24,75841,75842,75845],{},[42,75843,75844],{},"Compatibility",": Durch die hohe Standardisierung des VPN-Systems können viele Clients und Router in der gesamten Welt funktionieren zusammen.",[24,75847,75848,75849],{},"Types:\n",[21,75850,75851,75864],{},[24,75852,75853,75854],{},"Site-to-Site VPN\n",[21,75855,75856],{},[24,75857,75858,75859,75861],{},"Das ist eine Verbindung von 2 VPN Routern über das WAN zwischen z.B. zwei Standorten einer Firma",[7135,75860],{},[1504,75862],{"alt":269,"src":75863},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_29.png",[24,75865,75866,75867],{},"Remote-Access VPN\n",[21,75868,75869],{},[24,75870,75871,75872,75874],{},"Verbindung zwischen einem Client (z.B. Laptop) und dem VPN-Router der Firma das ein VPN Tunnel entsteht so das z.B. aus dem Homeoffice geartbeite werden kann.",[7135,75873],{},[1504,75875],{"alt":269,"src":75876},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_30.png",[11,75878,75880],{"id":75879},"shenjas-notes","Shenjas Notes",[414,75882,75883],{},[1504,75884],{"alt":269,"src":75885},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_31.png",[414,75887,75888],{},[1504,75889],{"alt":269,"src":75890},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_32.png",[414,75892,75893],{},[1504,75894],{"alt":269,"src":75895},"\u002Fdownloads\u002FKNT\u002Fimages\u002Fap-zsmf_img_33.jpg",{"title":269,"searchDepth":270,"depth":270,"links":75897},[75898,75899,75900,75901,75902,75903,75904,75905,75906,75907,75908,75909,75912,75913,75914,75915,75916,75917,75918,75919,75920,75923,75927,75928,75929,75930,75931,75932,75933,75934,75935,75936,75941,75948,75949,75955,75956,75960,75969,75975,75979,75980,75984,75998,76001,76004,76007,76008,76009,76014,76015,76016,76017,76018],{"id":68970,"depth":270,"text":68971},{"id":69000,"depth":270,"text":69001},{"id":69024,"depth":270,"text":69025},{"id":69154,"depth":270,"text":69155},{"id":69237,"depth":270,"text":69238},{"id":69279,"depth":270,"text":69280},{"id":69299,"depth":270,"text":69300},{"id":73145,"depth":270,"text":73146},{"id":73152,"depth":270,"text":73153},{"id":73163,"depth":270,"text":73164},{"id":73192,"depth":270,"text":73193},{"id":73226,"depth":270,"text":73227,"children":75910},[75911],{"id":73244,"depth":1263,"text":73245},{"id":73446,"depth":270,"text":73447},{"id":73475,"depth":270,"text":73476},{"id":3429,"depth":270,"text":3430},{"id":69378,"depth":270,"text":69379},{"id":69429,"depth":270,"text":69430},{"id":69459,"depth":270,"text":69460},{"id":69482,"depth":270,"text":69483},{"id":3473,"depth":270,"text":3430},{"id":5317,"depth":270,"text":5318,"children":75921},[75922],{"id":73679,"depth":1263,"text":3430},{"id":73688,"depth":270,"text":73689,"children":75924},[75925,75926],{"id":73703,"depth":1263,"text":73704},{"id":73710,"depth":1263,"text":73689},{"id":69588,"depth":270,"text":69589},{"id":73769,"depth":270,"text":73770},{"id":69669,"depth":270,"text":69670},{"id":69693,"depth":270,"text":69694},{"id":69609,"depth":270,"text":69059},{"id":69766,"depth":270,"text":69767},{"id":1013,"depth":270,"text":1014},{"id":1431,"depth":270,"text":1432},{"id":69857,"depth":270,"text":69858},{"id":69869,"depth":270,"text":69870,"children":75937},[75938,75939,75940],{"id":69876,"depth":1263,"text":69877},{"id":69901,"depth":1263,"text":69902},{"id":69918,"depth":1263,"text":69919},{"id":69938,"depth":270,"text":69939,"children":75942},[75943,75944,75945,75946,75947],{"id":69942,"depth":1263,"text":69943},{"id":69959,"depth":1263,"text":69960},{"id":69972,"depth":1263,"text":69973},{"id":69994,"depth":1263,"text":69995},{"id":70018,"depth":1263,"text":70019},{"id":70096,"depth":270,"text":70097},{"id":70103,"depth":270,"text":70104,"children":75950},[75951,75952,75953,75954],{"id":70107,"depth":1263,"text":70108},{"id":70165,"depth":1263,"text":70166},{"id":74187,"depth":1263,"text":74188},{"id":70224,"depth":1263,"text":70225},{"id":70249,"depth":270,"text":70250},{"id":70264,"depth":270,"text":70265,"children":75957},[75958,75959],{"id":70268,"depth":1263,"text":70269},{"id":70308,"depth":1263,"text":70309},{"id":74316,"depth":270,"text":74317,"children":75961},[75962,75963,75964,75965,75966,75967,75968],{"id":70362,"depth":1263,"text":70363},{"id":70373,"depth":1263,"text":70374},{"id":70382,"depth":1263,"text":70383},{"id":70396,"depth":1263,"text":70397},{"id":70408,"depth":1263,"text":70363},{"id":70433,"depth":1263,"text":70434},{"id":70440,"depth":1263,"text":70441},{"id":70566,"depth":270,"text":74405,"children":75970},[75971,75972,75973,75974],{"id":70578,"depth":1263,"text":70579},{"id":70624,"depth":1263,"text":70625},{"id":70650,"depth":1263,"text":70651},{"id":70657,"depth":1263,"text":70658},{"id":70703,"depth":270,"text":70704,"children":75976},[75977,75978],{"id":70733,"depth":1263,"text":70734},{"id":70745,"depth":1263,"text":70746},{"id":70781,"depth":270,"text":70782},{"id":74569,"depth":270,"text":74570,"children":75981},[75982,75983],{"id":70800,"depth":1263,"text":70801},{"id":70850,"depth":1263,"text":70851},{"id":71126,"depth":270,"text":71127,"children":75985},[75986,75987,75988,75989,75990,75991,75992,75993,75994,75995,75996,75997],{"id":71147,"depth":1263,"text":71148},{"id":71167,"depth":1263,"text":71168},{"id":71216,"depth":1263,"text":71217},{"id":71357,"depth":1263,"text":71358},{"id":71422,"depth":1263,"text":71423},{"id":71472,"depth":1263,"text":71473},{"id":71530,"depth":1263,"text":71531},{"id":71578,"depth":1263,"text":71579},{"id":71597,"depth":1263,"text":71598},{"id":71615,"depth":1263,"text":71616},{"id":71627,"depth":1263,"text":71628},{"id":71660,"depth":1263,"text":71661},{"id":71860,"depth":270,"text":71861,"children":75999},[76000],{"id":4282,"depth":1263,"text":4283},{"id":71969,"depth":270,"text":71970,"children":76002},[76003],{"id":72007,"depth":1263,"text":4283},{"id":72159,"depth":270,"text":72160,"children":76005},[76006],{"id":72163,"depth":1263,"text":72164},{"id":75363,"depth":270,"text":75364},{"id":72263,"depth":270,"text":72264},{"id":72278,"depth":270,"text":72279,"children":76010},[76011,76012,76013],{"id":72363,"depth":1263,"text":72364},{"id":72392,"depth":1263,"text":72393},{"id":72410,"depth":1263,"text":72411},{"id":72471,"depth":270,"text":72472},{"id":72517,"depth":270,"text":72518},{"id":72594,"depth":270,"text":72595},{"id":72665,"depth":270,"text":72279},{"id":72735,"depth":270,"text":72736,"children":76019},[76020,76021,76022,76023,76024],{"id":72744,"depth":1263,"text":72745},{"id":72764,"depth":1263,"text":72765},{"id":72789,"depth":1263,"text":72790},{"id":72809,"depth":1263,"text":72810},{"id":72829,"depth":1263,"text":72830},{},{"title":35633},"\u002Ffaecher\u002Fknt\u002Fap-zsmf","\u002Fdownloads\u002FKNT\u002FKNT_ZSMF_AP.pdf",{"title":35633,"description":69328},"faecher\u002Fknt\u002Fap-zsmf","i4Ovg0LyvHyttS4Frr9izPFacug5wzzB05Xm7Njojmk",{"id":76033,"title":6,"body":76034,"class":282,"description":269,"extension":283,"meta":77199,"navigation":77200,"path":77201,"pdfDownload":77202,"scope":289,"scopeName":290,"seo":77203,"stem":77204,"subject":77205,"subjectName":77206,"type":295,"typeName":296,"year":297,"__hash__":77207},"faecher\u002Ffaecher\u002Fpma\u002F5-6-zsmf-sa1.md",{"type":8,"value":76035,"toc":77149},[76036,76040,76042,76045,76049,76065,76069,76073,76101,76105,76130,76134,76148,76151,76165,76169,76172,76175,76206,76210,76242,76246,76251,76261,76265,76286,76290,76304,76308,76311,76315,76319,76322,76335,76338,76354,76356,76367,76369,76380,76384,76387,76400,76404,76424,76427,76449,76453,76457,76465,76468,76476,76479,76487,76491,76505,76508,76519,76522,76533,76537,76551,76554,76562,76565,76572,76576,76580,76640,76644,76664,76667,76671,76679,76683,76711,76715,76718,76735,76739,76785,76819,76822,76826,76840,76844,76858,76862,76912,76916,76965,76968,76976,76981,76985,77008,77012,77016,77072,77075,77092,77095,77106,77110,77132,77135,77143],[11,76037,76039],{"id":76038},"was-ist-ein-projekt","Was ist ein Projekt (!)",[16,76041,51216],{"id":51215},[414,76043,76044],{},"Zeitlich definiertes Vorhaben, um einmaliges Produkt zu erstellen",[16,76046,76048],{"id":76047},"magisches-dreieck","Magisches Dreieck",[21,76050,76051,76054,76057],{},[24,76052,76053],{},"Idealerweise ausbalanciert",[24,76055,76056],{},"Projekt laufend definieren und verfeinern",[24,76058,76059,76060],{},"Änderungen in einem Bereich führen automatisch zu Änderungen in anderen Bereichen\n",[21,76061,76062],{},[24,76063,76064],{},"Kompromisse müssen eingegangen werden",[11,76066,76068],{"id":76067},"projektlebenszyklus","Projektlebenszyklus",[16,76070,76072],{"id":76071},"initiierung-vorbereitung","Initiierung (Vorbereitung)",[21,76074,76075,76078,76089,76092,76095,76098],{},[24,76076,76077],{},"Anforderungen definieren",[24,76079,76080,76081],{},"Stakeholder identifizieren\n",[21,76082,76083],{},[24,76084,76085,76088],{},[42,76086,76087],{},"Stakeholder",": Menschen oder Institutionen, die vom Projekt betroffen sind und darauf Einfluss nehmen können",[24,76090,76091],{},"Risiken identifizieren",[24,76093,76094],{},"Kosten feststellen",[24,76096,76097],{},"Nutzen ermitteln",[24,76099,76100],{},"Formelle Genehmigung des Projekts",[16,76102,76104],{"id":76103},"planung","Planung",[21,76106,76107],{},[24,76108,76109,76110],{},"Projektmanagementplan erstellen\n",[21,76111,76112,76115,76118,76121,76124,76127],{},[24,76113,76114],{},"Projektstrukturplan (PSP)",[24,76116,76117],{},"Ablaufplan",[24,76119,76120],{},"Meilensteinplan",[24,76122,76123],{},"Ressourcenplan",[24,76125,76126],{},"Risikoplan",[24,76128,76129],{},"Kommunikationsplan",[16,76131,76133],{"id":76132},"durchführung","Durchführung",[21,76135,76136,76139,76142,76145],{},[24,76137,76138],{},"Abarbeitung & Überwachung der Pläne",[24,76140,76141],{},"Problemmanagement",[24,76143,76144],{},"Fortschritt überwachen",[24,76146,76147],{},"Steuerung von Änderungen",[16,76149,73383],{"id":76150},"abschluss",[21,76152,76153,76156,76159,76162],{},[24,76154,76155],{},"Umsetzung mit Anforderung vergleichen",[24,76157,76158],{},"Projektabnahme & Übergabe",[24,76160,76161],{},"Dokumentation",[24,76163,76164],{},"Verträge & Rechnungen bearbeiten",[11,76166,76168],{"id":76167},"onepager","Onepager (!)",[414,76170,76171],{},"Fasst die Wichtigsten Informationen eines Projekts kompakt zusammen",[16,76173,5795],{"id":76174},"inhalt",[21,76176,76177,76180,76183,76186],{},[24,76178,76179],{},"Projektname",[24,76181,76182],{},"Projektauftrag (Projektbeschreibung): Was soll erreicht werden",[24,76184,76185],{},"Projektziele (SMART)",[24,76187,76188,76189],{},"Rahmenbedingungen\n",[21,76190,76191,76194,76197,76200,76203],{},[24,76192,76193],{},"Budget",[24,76195,76196],{},"Zeitvorgabe",[24,76198,76199],{},"Mitarbeitereinsatz",[24,76201,76202],{},"Kommunikationswege",[24,76204,76205],{},"Phasenplan",[11,76207,76209],{"id":76208},"smart-ziele","SMART-Ziele (!)",[21,76211,76212,76218,76224,76230,76236],{},[24,76213,76214,76217],{},[42,76215,76216],{},"Spezifisch",": Eindeutige Definition mit allen Details",[24,76219,76220,76223],{},[42,76221,76222],{},"Messbar",": Eindeutige Bewertung durch Erfüllungskriterien",[24,76225,76226,76229],{},[42,76227,76228],{},"Attraktiv",": Positive Formulierung und Akzeptanz von allen",[24,76231,76232,76235],{},[42,76233,76234],{},"Realistisch",": Erreichbare aber herausfordernde Ziele (Ressourcen & Kosten einschätzen)",[24,76237,76238,76241],{},[42,76239,76240],{},"Terminiert",": Klare zeitliche Begrenzung, bis wann das Ziel erreicht werden soll",[11,76243,76245],{"id":76244},"bedarfsanalyse","Bedarfsanalyse",[414,76247,76248,76250],{},[42,76249,530],{},": Aufträge werden oft nur knapp formuliert -> Auftragnehmer versteht etwas anderes als der Auftraggeber eigentlich meint",[21,76252,76253],{},[24,76254,76255,76256],{},"Konkrete Abklärung von Wünschen, Bedürfnissen und Anforderungen\n",[21,76257,76258],{},[24,76259,76260],{},"Je später das passiert, desto kostspieliger",[16,76262,76264],{"id":76263},"wichtige-aspekte-der-bedarfsanalyse","Wichtige Aspekte der Bedarfsanalyse",[21,76266,76267,76270,76278],{},[24,76268,76269],{},"Bedürfnisse können auf allen Ebenen existieren",[24,76271,76272,76273],{},"Wünsche sind nicht gleich Bedürfnisse\n",[21,76274,76275],{},[24,76276,76277],{},"Wünsche hinterfragen, um tatsächliche Bedürfnisse zu ermitteln",[24,76279,76280,76281],{},"Kunden kennen\u002Fverstehen ihre tatsächlichen Bedürfnisse nicht\n",[21,76282,76283],{},[24,76284,76285],{},"Methoden zur Klärung nutzen",[16,76287,76289],{"id":76288},"methoden-der-bedarfsanalyse","Methoden der Bedarfsanalyse",[21,76291,76292,76295,76298,76301],{},[24,76293,76294],{},"Nachfragen\u002FInterview",[24,76296,76297],{},"Workshop",[24,76299,76300],{},"Soll-Ist-Vergleich",[24,76302,76303],{},"Fragebogen",[16,76305,76307],{"id":76306},"progressive-ausarbeitung","Progressive Ausarbeitung",[414,76309,76310],{},"Schrittweise Entwicklung der Spezifizierung der Anforderungen durch mehr Informationen, auch während des laufenden Projekts",[11,76312,76314],{"id":76313},"lasten-pflichtenheft","Lasten- & Pflichtenheft",[16,76316,76318],{"id":76317},"lastenheft-was-wofür","Lastenheft (Was & Wofür)",[414,76320,76321],{},"Es wird definiert was für eine Aufgabe zu lösen ist",[21,76323,76324,76327],{},[24,76325,76326],{},"Alle Forderungen des Auftraggebers",[24,76328,76329,76330],{},"Aus Anwendersicht unter Einschließung der Rahmenbedingungen formuliert\n",[21,76331,76332],{},[24,76333,76334],{},"Rahmenbedingungen sollten quantifizierbar und prüfbar sein",[470,76336,5795],{"id":76337},"inhalt-1",[21,76339,76340,76343,76345,76348,76351],{},[24,76341,76342],{},"Anforderungsträger",[24,76344,76117],{},[24,76346,76347],{},"Projektziele",[24,76349,76350],{},"Budgetrahmen",[24,76352,76353],{},"Zertifizierungen und Audits als Vorgabe",[470,76355,1014],{"id":1013},[21,76357,76358,76361,76364],{},[24,76359,76360],{},"Gemeinsame Grundlage",[24,76362,76363],{},"Qualitätssicherung",[24,76365,76366],{},"Risikominimierung (weniger Missverständnisse)",[470,76368,72264],{"id":72263},[21,76370,76371,76374,76377],{},[24,76372,76373],{},"Hoher Aufwand",[24,76375,76376],{},"Einschränkung der Flexibilität",[24,76378,76379],{},"Keine Standardisierung",[16,76381,76383],{"id":76382},"pflichtenheft-wie-womit","Pflichtenheft (Wie & Womit)",[414,76385,76386],{},"Enthält Realisierungsvorhaben vom Auftragnehmer (Grundlage: Lastenheft)",[21,76388,76389,76397],{},[24,76390,76391,76392],{},"Aufzählung der Anwendervorgaben\n",[21,76393,76394],{},[24,76395,76396],{},"Lösungsansätze zu den Vorgaben",[24,76398,76399],{},"Roter Faden während der Projektierung",[470,76401,76403],{"id":76402},"anforderungen","Anforderungen",[21,76405,76406,76412,76418],{},[24,76407,76408,76411],{},[42,76409,76410],{},"Vollständigkeit",": Alle Details der Anforderungen sind zu definieren",[24,76413,76414,76417],{},[42,76415,76416],{},"Eindeutigkeit",": Vermeidung von Missverständnissen",[24,76419,76420,76423],{},[42,76421,76422],{},"Testbarkeit",": Überprüfbarkeit der Anforderungen (Wichtig für Abnahme)",[470,76425,5795],{"id":76426},"inhalt-2",[21,76428,76429,76431,76434,76436,76438,76441,76444,76446],{},[24,76430,76179],{},[24,76432,76433],{},"Verfasser des Pflichtenhefts",[24,76435,73198],{},[24,76437,1050],{},[24,76439,76440],{},"Konkrete (technische) Anforderungen",[24,76442,76443],{},"Schnittstellen",[24,76445,1074],{},[24,76447,76448],{},"Unterschrift von Auftraggeber und Projektleiter (Pflichtenheft ist rechtsverbindlich)",[11,76450,76452],{"id":76451},"projektorganisation","Projektorganisation",[16,76454,76456],{"id":76455},"stabsorganisation","Stabsorganisation",[21,76458,76459,76462],{},[24,76460,76461],{},"Für kleine Projekte",[24,76463,76464],{},"Geschäftsführung teilt Projekt vorab mit",[470,76466,72264],{"id":76467},"nachteile-1",[21,76469,76470,76473],{},[24,76471,76472],{},"Projektleiter hat kein Weisungsrecht -> nur über Vorgesetzte möglich",[24,76474,76475],{},"Hoher Kommunikationsaufwand",[470,76477,1014],{"id":76478},"vorteile-1",[21,76480,76481,76484],{},[24,76482,76483],{},"Keine extra Strukturen",[24,76485,76486],{},"Leicht auflösbar",[16,76488,76490],{"id":76489},"autonome-organisation","Autonome Organisation",[21,76492,76493,76496,76499,76502],{},[24,76494,76495],{},"Mitarbeiter verlassen Abteilung -> sind nur dem Prinzipojekt zugeteilt",[24,76497,76498],{},"Projektleiter hat Weisungsrecht",[24,76500,76501],{},"Bei hoher Dringlichkeit des Projekts",[24,76503,76504],{},"Für kritische und strategisch wichtige Projekte",[470,76506,1014],{"id":76507},"vorteile-2",[21,76509,76510,76513,76516],{},[24,76511,76512],{},"kurze Entscheidungswege",[24,76514,76515],{},"Projektleiter hat volle Weisungsbefugnis",[24,76517,76518],{},"Ein einziger Vorgesetzter",[470,76520,72264],{"id":76521},"nachteile-2",[21,76523,76524,76527,76530],{},[24,76525,76526],{},"Mitarbeiter fehlen in der Stammorganisation (in ihren eigenen Abteilungen)",[24,76528,76529],{},"Ressourcenausnutzung nicht optimal",[24,76531,76532],{},"Wiedereingliederung in vorherige Abteilung am Ende nötig",[16,76534,76536],{"id":76535},"matrix-organisation","Matrix Organisation",[21,76538,76539,76542,76545,76548],{},[24,76540,76541],{},"Mischform aus Stabsorganisation und Autonomer Organisation",[24,76543,76544],{},"Projektleiter hat fachliche Weisungsbefugnis",[24,76546,76547],{},"Abteilungsleiter hat disziplinäre Weisungsbefugnis",[24,76549,76550],{},"Für mittelgroße Projekte",[470,76552,1014],{"id":76553},"vorteile-3",[21,76555,76556,76559],{},[24,76557,76558],{},"Keine Änderung an der Organisation",[24,76560,76561],{},"flexibler Zugriff auf Ressourcen",[470,76563,72264],{"id":76564},"nachteile-3",[21,76566,76567,76570],{},[24,76568,76569],{},"zwei Chefs (Projektleiter & Chef)",[24,76571,76475],{},[11,76573,76575],{"id":76574},"teamzusammenstellung","Teamzusammenstellung",[16,76577,76579],{"id":76578},"_5-phasen-modell","5-Phasen-Modell",[318,76581,76582,76593,76604,76618,76629],{},[24,76583,76584,76585],{},"Forming\n",[21,76586,76587,76590],{},[24,76588,76589],{},"Vorsichtiges Kennenlernen",[24,76591,76592],{},"Reservierter Umgang",[24,76594,76595,76596],{},"Storming\n",[21,76597,76598,76601],{},[24,76599,76600],{},"Problemorientierung und Spannungen",[24,76602,76603],{},"Gruppenbildung",[24,76605,76606,76607],{},"Norming\n",[21,76608,76609,76612,76615],{},[24,76610,76611],{},"Offene Konfrontation",[24,76613,76614],{},"Prozesse & Regeln",[24,76616,76617],{},"Lösungsorientiert",[24,76619,76620,76621],{},"Performing\n",[21,76622,76623,76626],{},[24,76624,76625],{},"Hohe Leistungsfähigkeit",[24,76627,76628],{},"Eigenständiges & konstruktives Arbeiten",[24,76630,76631,76632],{},"Adjourning\n",[21,76633,76634,76637],{},[24,76635,76636],{},"Auflösungsphase",[24,76638,76639],{},"Rückführung der Mitarbeiter in Linienbetrieb",[16,76641,76643],{"id":76642},"teamrollen-nach-belbin","Teamrollen nach Belbin",[21,76645,76646,76652,76658],{},[24,76647,76648,76651],{},[42,76649,76650],{},"Handlungsorientiert",": Macher, Umsetzer, Perfektionist",[24,76653,76654,76657],{},[42,76655,76656],{},"Kommunikationsorientiert",": Koordinator, Teamarbeiter, Wegbereiter",[24,76659,76660,76663],{},[42,76661,76662],{},"Wissensorientiert",": Beobachter, Erfinder, Spezialist",[414,76665,76666],{},"Sollte eine Rolle fehlen entsteht eine Lücke, die von anderen gefüllt werden muss. Es leidet die Leistung des Teams darunter",[11,76668,76670],{"id":76669},"kommunikationsmodelle","Kommunikationsmodelle",[21,76672,76673,76676],{},[24,76674,76675],{},"Verständnis für den Gegenüber",[24,76677,76678],{},"Entgegenwirken von Missverständnissen durch passende Wortwahl",[16,76680,76682],{"id":76681},"_4-ohren-modell","4-Ohren-Modell (!)",[21,76684,76685],{},[24,76686,76687,76688],{},"Jede Nachricht erfolgt auf vier Ebenen und kann dementsprechend unterschiedlich interpretiert werden (Bsp. Ist noch Kaffee da?)\n",[21,76689,76690,76695,76700,76705],{},[24,76691,76692,76694],{},[42,76693,478],{},": Inhalt (Ist noch Kaffee da?)",[24,76696,76697,76699],{},[42,76698,746],{},": Eigene Wünsche (Ich will gerne Kaffee trinken)",[24,76701,76702,76704],{},[42,76703,752],{},": kritische, wertschätzende Interpretation (Immer muss ich Kaffee kochen)",[24,76706,76707,76710],{},[42,76708,76709],{},"Appelleben",": Offene\u002Fverborgene Forderung (Du sollst Kaffee kochen)",[16,76712,76714],{"id":76713},"fünf-axiome-nach-watzlawik","Fünf Axiome nach Watzlawik",[414,76716,76717],{},"Beziehen sich auf Beziehungsaspekt",[318,76719,76720,76723,76726,76729,76732],{},[24,76721,76722],{},"Man kann nicht nicht kommunizieren",[24,76724,76725],{},"Jede Kommunikation hat einen Inhalts- & Beziehungsaspekt",[24,76727,76728],{},"Kommunikation ist immer Ursache und Wirkung",[24,76730,76731],{},"Kommunikation erfolgt sowohl analog als auch digital",[24,76733,76734],{},"Kommunikation erfolgt symmetrisch oder komplementär",[11,76736,76738],{"id":76737},"johari-fenster","Johari Fenster (!)",[765,76740,76741,76757],{},[768,76742,76743],{},[771,76744,76745,76747,76752],{},[774,76746],{},[774,76748,76749],{},[42,76750,76751],{},"Mir bekannt",[774,76753,76754],{},[42,76755,76756],{},"Mir nicht bekannt",[787,76758,76759,76772],{},[771,76760,76761,76766,76769],{},[792,76762,76763],{},[42,76764,76765],{},"Anderen bekannt",[792,76767,76768],{},"Öffentlicher Bereich",[792,76770,76771],{},"Blinder Fleck",[771,76773,76774,76779,76782],{},[792,76775,76776],{},[42,76777,76778],{},"Anderen nicht bekannt",[792,76780,76781],{},"Geheimer Bereich",[792,76783,76784],{},"Unbekannter Bereich",[21,76786,76787,76793,76804],{},[24,76788,76789,76792],{},[42,76790,76791],{},"Nutzen",": Zusammenarbeit wird besser, je mehr man voneinander weiß",[24,76794,76795,76796],{},"Ziel\n",[21,76797,76798,76801],{},[24,76799,76800],{},"Vergrößerung des öffentlichen Bereichs",[24,76802,76803],{},"Verkleinerung des blinden Flecks",[24,76805,76806,76807],{},"Umsetzung\n",[21,76808,76809,76814],{},[24,76810,76811,76813],{},[42,76812,455],{},": Informationen über mich, die mir nicht bewusst sind",[24,76815,76816,76818],{},[42,76817,746],{},": Durch das eigene Mitteilen schrumpft der geheime Bereich",[16,76820,1014],{"id":76821},"vorteile-4",[16,76823,76825],{"id":76824},"teammitglied","Teammitglied",[21,76827,76828,76831,76834,76837],{},[24,76829,76830],{},"Unterbewusste Verhalten werden ins Bewusstsein geholt",[24,76832,76833],{},"Gezielte Kommunikation",[24,76835,76836],{},"Gezieltes Arbeiten an Schwächen\u002FStärken",[24,76838,76839],{},"Reduzierung der inneren Anspannung",[16,76841,76843],{"id":76842},"team","Team",[21,76845,76846,76849,76852,76855],{},[24,76847,76848],{},"Qualität der Beziehungen verbessert sich",[24,76850,76851],{},"Gegenseitiges Verständnis",[24,76853,76854],{},"Transparenz für bestimmtes Verhalten",[24,76856,76857],{},"Team lernt sich schneller kennen",[11,76859,76861],{"id":76860},"kick-off-meeting","Kick-Off-Meeting",[21,76863,76864,76869,76892],{},[24,76865,76866,76868],{},[42,76867,530],{},": Hochmotivierte Mitarbeiter, die loslegen wollen, aber ungleiche Projektvorstellungen haben",[24,76870,76871,76873],{},[42,76872,66922],{},[21,76874,76875,76878],{},[24,76876,76877],{},"Alle auf eine Linie bringen, um unnötige Kosten zu vermeiden",[24,76879,76880,76881],{},"Alle haben klare Vorstellung von\n",[21,76882,76883,76886,76889],{},[24,76884,76885],{},"Projekt",[24,76887,76888],{},"Eigene Rolle",[24,76890,76891],{},"Nächstem Schritt",[24,76893,76894,2815,76897],{},[42,76895,76896],{},"Teilnehmer",[21,76898,76899,76902,76904,76907,76910],{},[24,76900,76901],{},"Projektleiter",[24,76903,76843],{},[24,76905,76906],{},"Teamleiter",[24,76908,76909],{},"Auftraggeber",[24,76911,76087],{},[11,76913,76915],{"id":76914},"projektplanungsphase","Projektplanungsphase",[21,76917,76918,76921,76924,76943],{},[24,76919,76920],{},"Nach Projektinitiierung",[24,76922,76923],{},"Entstehung des Projektplans",[24,76925,76926,76927],{},"Wichtigster Schritt des Projekts\n",[21,76928,76929],{},[24,76930,76931,76932],{},"Mögliche Fehler (erhebliche Kosten)\n",[21,76933,76934,76937,76940],{},[24,76935,76936],{},"Budgetüberschreitung",[24,76938,76939],{},"Terminüberschreitung",[24,76941,76942],{},"Ressourcenknappheit \u002F -überschuss",[24,76944,76945,76946],{},"Teile des Projektplans\n",[21,76947,76948,76954,76960],{},[24,76949,76950,76953],{},[42,76951,76952],{},"Projektstrukturplan"," (PSP bzw. Work Breakdown Structure (WBS))",[24,76955,76956,76959],{},[42,76957,76958],{},"Projektablaufplan"," (PAP): Enthält Termine und Meilensteine",[24,76961,76962,76964],{},[42,76963,76123],{},": Kapazitäten- & Kostenplan",[16,76966,76114],{"id":76967},"projektstrukturplan-psp",[21,76969,76970,76973],{},[24,76971,76972],{},"Alle Aufgaben sammeln und in Arbeitspakete zusammenfassen",[24,76974,76975],{},"Entweder Baumstruktur oder Liste",[414,76977,76978],{},[1504,76979],{"alt":269,"src":76980},"\u002Fdownloads\u002FPMA\u002Fimages\u002F5-6-zsmf-sa1_img_3.png",[470,76982,76984],{"id":76983},"arbeitspaket","Arbeitspaket",[21,76986,76987,76990,76993,76996,76999,77002,77005],{},[24,76988,76989],{},"Klar definierter Bestandteil",[24,76991,76992],{},"PSP-Code",[24,76994,76995],{},"Klare Ziele",[24,76997,76998],{},"Festgelegter Umfang",[24,77000,77001],{},"Definierter Start- & Endtermin",[24,77003,77004],{},"Zugeordnete Ressourcen",[24,77006,77007],{},"Klarer Verantwortlicher",[11,77009,77011],{"id":77010},"netzplan-gantt-diagramm","Netzplan & GANTT-Diagramm (!)",[16,77013,77015],{"id":77014},"netzplan","Netzplan",[21,77017,77018,77021],{},[24,77019,77020],{},"Alle Vorgänge eines Projekts verkettet (abhängig von ihrer Reihenfolge)",[24,77022,77023,77024],{},"Jeder Vorgang enthält:\n",[21,77025,77026,77031,77037,77043,77049,77055,77060,77066],{},[24,77027,77028,77030],{},[42,77029,72929],{},": Vorgangsnummer",[24,77032,77033,77036],{},[42,77034,77035],{},"FAZ",": Frühester Anfangszeitpunkt",[24,77038,77039,77042],{},[42,77040,77041],{},"SAZ",": Spätester Anfangszeitpunkt",[24,77044,77045,77048],{},[42,77046,77047],{},"FEZ",": Früherster Endzeitpunkt",[24,77050,77051,77054],{},[42,77052,77053],{},"SEZ",": Spätester Endzeitpunkt",[24,77056,77057,77059],{},[42,77058,20555],{},": Dauer",[24,77061,77062,77065],{},[42,77063,77064],{},"GP",": Gesamter Puffer",[24,77067,77068,77071],{},[42,77069,77070],{},"FP",": Freier Puffer",[470,77073,1014],{"id":77074},"vorteile-5",[21,77076,77077,77080,77083,77089],{},[24,77078,77079],{},"Abhängigkeiten der Vorgänge",[24,77081,77082],{},"Bestimmung der frühesten und spätesten Zeitpunkte",[24,77084,77085,77088],{},[42,77086,77087],{},"Kritischer Pfad",": Längste Abfolge von Aktivitäten zur Fertigstellung des Projekts",[24,77090,77091],{},"Terminplan festlegbar anhand des Plans",[470,77093,72264],{"id":77094},"nachteile-4",[21,77096,77097,77100,77103],{},[24,77098,77099],{},"Nicht anschaulich",[24,77101,77102],{},"Alle Vorgänge gleich groß",[24,77104,77105],{},"Keine Zeitachse",[16,77107,77109],{"id":77108},"gantt-diagramm","GANTT-Diagramm (!)",[21,77111,77112,77115,77126,77129],{},[24,77113,77114],{},"Visualisiert Arbeitsschritte in zeitlicher Abfolge",[24,77116,77117,77118],{},"Notation als Balkendiagramm\n",[21,77119,77120],{},[24,77121,77122,77125],{},[42,77123,77124],{},"Länge der Balken",": Dauer des Arbeitspakets",[24,77127,77128],{},"Arbeitspakete können parallel ablaufen",[24,77130,77131],{},"Jedes Arbeitspaket hat einen Vorgänger",[470,77133,1014],{"id":77134},"vorteile-6",[21,77136,77137,77140],{},[24,77138,77139],{},"Abhängigkeit der Abläufe",[24,77141,77142],{},"Erstellung von Termin- und Ablaufplänen",[414,77144,77145],{},[1504,77146],{"alt":77147,"src":77148},"Was ist Gantt-Diagramm? - Definition von Computer Weekly","\u002Fdownloads\u002FPMA\u002Fimages\u002F5-6-zsmf-sa1_img_4.png",{"title":269,"searchDepth":270,"depth":270,"links":77150},[77151,77152,77153,77154,77155,77156,77157,77158,77159,77160,77161,77166,77170,77174,77178,77182,77183,77184,77185,77186,77187,77188,77189,77192,77196],{"id":51215,"depth":270,"text":51216},{"id":76047,"depth":270,"text":76048},{"id":76071,"depth":270,"text":76072},{"id":76103,"depth":270,"text":76104},{"id":76132,"depth":270,"text":76133},{"id":76150,"depth":270,"text":73383},{"id":76174,"depth":270,"text":5795},{"id":76263,"depth":270,"text":76264},{"id":76288,"depth":270,"text":76289},{"id":76306,"depth":270,"text":76307},{"id":76317,"depth":270,"text":76318,"children":77162},[77163,77164,77165],{"id":76337,"depth":1263,"text":5795},{"id":1013,"depth":1263,"text":1014},{"id":72263,"depth":1263,"text":72264},{"id":76382,"depth":270,"text":76383,"children":77167},[77168,77169],{"id":76402,"depth":1263,"text":76403},{"id":76426,"depth":1263,"text":5795},{"id":76455,"depth":270,"text":76456,"children":77171},[77172,77173],{"id":76467,"depth":1263,"text":72264},{"id":76478,"depth":1263,"text":1014},{"id":76489,"depth":270,"text":76490,"children":77175},[77176,77177],{"id":76507,"depth":1263,"text":1014},{"id":76521,"depth":1263,"text":72264},{"id":76535,"depth":270,"text":76536,"children":77179},[77180,77181],{"id":76553,"depth":1263,"text":1014},{"id":76564,"depth":1263,"text":72264},{"id":76578,"depth":270,"text":76579},{"id":76642,"depth":270,"text":76643},{"id":76681,"depth":270,"text":76682},{"id":76713,"depth":270,"text":76714},{"id":76821,"depth":270,"text":1014},{"id":76824,"depth":270,"text":76825},{"id":76842,"depth":270,"text":76843},{"id":76967,"depth":270,"text":76114,"children":77190},[77191],{"id":76983,"depth":1263,"text":76984},{"id":77014,"depth":270,"text":77015,"children":77193},[77194,77195],{"id":77074,"depth":1263,"text":1014},{"id":77094,"depth":1263,"text":72264},{"id":77108,"depth":270,"text":77109,"children":77197},[77198],{"id":77134,"depth":1263,"text":1014},{},{"title":286},"\u002Ffaecher\u002Fpma\u002F5-6-zsmf-sa1","\u002Fdownloads\u002FPMA\u002FPM_5-6_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fpma\u002F5-6-zsmf-sa1","PMA","Projektmanagement","OmwpBjKiqvSYTmuSsY3-3UeYXcu90S9KKMr8lb8-nco",{"id":77209,"title":301,"body":77210,"class":282,"description":269,"extension":283,"meta":78497,"navigation":78498,"path":78499,"pdfDownload":78500,"scope":1288,"scopeName":1289,"seo":78501,"stem":78502,"subject":77205,"subjectName":77206,"type":295,"typeName":296,"year":297,"__hash__":78503},"faecher\u002Ffaecher\u002Fpma\u002F5-6-zsmf-sa2.md",{"type":8,"value":77211,"toc":78456},[77212,77216,77247,77251,77255,77285,77289,77309,77313,77336,77340,77358,77362,77405,77409,77428,77432,77437,77440,77486,77490,77501,77505,77612,77614,77631,77635,77637,77651,77655,77688,77692,77710,77714,77718,77743,77747,77772,77776,77793,77797,77801,77827,77829,77843,77845,77859,77863,77867,77889,77893,77910,77914,77928,77932,77955,77958,77978,77981,77989,77993,78010,78012,78153,78157,78235,78239,78243,78246,78263,78267,78278,78283,78287,78323,78327,78329,78349,78351,78371,78375,78383,78387,78395,78397,78430,78432,78451],[11,77213,77215],{"id":77214},"aufwandsschätzung","Aufwandsschätzung",[21,77217,77218,77221,77224,77227,77230],{},[24,77219,77220],{},"Während Planungsphase",[24,77222,77223],{},"Zur Abschätzung der Gesamtdauer des Projekts",[24,77225,77226],{},"„Bekannte Aufgaben lassen sich leichter schätzen als unbekannte“",[24,77228,77229],{},"Sind nur Schätzungen – Ggf. falsch",[24,77231,77232,77233],{},"Anschließend Terminplanung und Ressourcenplanung inkl. Zuordnung zu den einzelnen Vorgängen\n",[21,77234,77235,77238,77241,77244],{},[24,77236,77237],{},"Welche Ressourcen?",[24,77239,77240],{},"Welche Qualifikationen?",[24,77242,77243],{},"Welche Sachressourcen?",[24,77245,77246],{},"Wie viele Ressourcen zu welcher Verfügbarkeit?",[16,77248,77250],{"id":77249},"methoden","Methoden",[470,77252,77254],{"id":77253},"expertenschätzung","Expertenschätzung",[21,77256,77257,77263,77279],{},[24,77258,77259,77262],{},[42,77260,77261],{},"Ansatz",": Frage jemanden, der sich auskennt (Expert)",[24,77264,77265,2815,77268],{},[42,77266,77267],{},"Wichtig",[21,77269,77270,77273,77276],{},[24,77271,77272],{},"Experte sollte sich besser auskennen als man selbst",[24,77274,77275],{},"Mehrere Experten fragen",[24,77277,77278],{},"Experte sollte Teil des Projektteams sein",[24,77280,77281,77284],{},[42,77282,77283],{},"Alternative",": Planen zusammen mit dem Team und Ergebnisse zusammenfügen",[470,77286,77288],{"id":77287},"analogiemethoden","Analogiemethoden",[21,77290,77291,77296],{},[24,77292,77293,77295],{},[42,77294,77261],{},": Auf Erfahrungen zurückgreifen und für neue Schätzungen anwenden",[24,77297,77298,2815,77301],{},[42,77299,77300],{},"Tipps",[21,77302,77303,77306],{},[24,77304,77305],{},"Geeignet für Projekte mit bekanntem Inhalt",[24,77307,77308],{},"Lessons learnt: Frühere Planungen\u002FFehler aus alten Projekten berücksichtigen",[470,77310,77312],{"id":77311},"bottom-up-fein-grob","Bottom-Up: Fein -> Grob",[21,77314,77315,77325,77330],{},[24,77316,77317,77319,77320],{},[42,77318,77261],{},": Abschätzung aller kleinen Aufgaben. Aufsummierung aller Aufgaben\n",[21,77321,77322],{},[24,77323,77324],{},"Braucht Projektstrukturplan mit Arbeitspaketen",[24,77326,77327,77329],{},[42,77328,763],{},": Hausbau in kleine Schritte: Ausheben, Aufstellen von Wänden etc. Anschließend aufsummieren",[24,77331,77332,77335],{},[42,77333,77334],{},"Risiko",": Verzettelung – Zu viel Zeit mit der Planung der Teilschritte verschwendet",[470,77337,77339],{"id":77338},"top-down-grob-fein","Top-Down: Grob -> Fein",[21,77341,77342,77347,77350],{},[24,77343,77344,77346],{},[42,77345,77261],{},": Gesamtaufwand in einzelne Bereiche des Projekts unterteilen und Plausibilitäten prüfen",[24,77348,77349],{},"Wird verwendet wenn alle Aufwände schon grob bekannt sind",[24,77351,77352,77353],{},"Geeignet als Plausibilitätsprüfung bei vorgegebenen Aufwänden\n",[21,77354,77355],{},[24,77356,77357],{},"Rechnung geht nicht auf -> Etwas passt nicht",[11,77359,77361],{"id":77360},"projektkosten","Projektkosten",[21,77363,77364,77375],{},[24,77365,77366,77369,77370],{},[42,77367,77368],{},"Direkte Kosten",": Für Ressourcen die nur für die Projektdurchführung nötig sind\n",[21,77371,77372],{},[24,77373,77374],{},"Bsp.: Material, Externe Vertragspartner, Genehmigungen, Gehälter, Lizenzen",[24,77376,77377,77380,77381],{},[42,77378,77379],{},"Indirekte Kosten",": Zur Unterstützung der Projektkosten\n",[21,77382,77383,77394],{},[24,77384,77385,77388,77389],{},[42,77386,77387],{},"Scheingemeinkosten",": Für zur Durchführung erforderliche Ressourcen\n",[21,77390,77391],{},[24,77392,77393],{},"Bsp.: Büromittel, Miete, Steuern, Sozialleistung, Anlagen, Büromöbel",[24,77395,77396,77399,77400],{},[42,77397,77398],{},"Echte Gemeinkosten",": Für Geschäftsbetrieb\n",[21,77401,77402],{},[24,77403,77404],{},"Bsp.: Serviceabteilung, Personalabteilung, Einkauf, Marketing, Bankgebühren",[16,77406,77408],{"id":77407},"planungsvorgang","Planungsvorgang",[318,77410,77411,77414,77417,77420],{},[24,77412,77413],{},"Erstellung des Projektplans",[24,77415,77416],{},"Strukturierung der Arbeitspakete (AP)",[24,77418,77419],{},"Kostenschätzung pro AP für Personal, Material, Dienstleistungen",[24,77421,77422,77423],{},"Erstellung des Kostenplans\n",[318,77424,77425],{},[24,77426,77427],{},"Kostenverlauf pro Monat",[11,77429,77431],{"id":77430},"raci-matrix","RACI-Matrix",[21,77433,77434],{},[24,77435,77436],{},"Welche Projektbeteiligten sind wofür verantwortlich",[16,77438,6733],{"id":77439},"bedeutung",[21,77441,77442,77453,77464,77475],{},[24,77443,77444,77447,77448],{},[42,77445,77446],{},"Responsible",": Verwantwortlicher für Durchführung einer Aufgabe\n",[21,77449,77450],{},[24,77451,77452],{},"Eine Person – kann aber weitere Personen hinzuziehen",[24,77454,77455,77458,77459],{},[42,77456,77457],{},"Accountable",": Prüft korrekte Durchführung\u002FErgebnisse\n",[21,77460,77461],{},[24,77462,77463],{},"Delegiert Aufgaben an „Responsible“",[24,77465,77466,77469,77470],{},[42,77467,77468],{},"Consulted",": Wird zur Durchführung befragt\n",[21,77471,77472],{},[24,77473,77474],{},"Fachexperten\u002FDritte, die nicht direkt an der Durchführung beteiligt sind",[24,77476,77477,77480,77481],{},[42,77478,77479],{},"Informed",": Erhält Informationen über Ergebnisse\n",[21,77482,77483],{},[24,77484,77485],{},"Kommunikation in der Regel nur einseitig",[16,77487,77489],{"id":77488},"erstellung","Erstellung",[21,77491,77492,77495,77498],{},[24,77493,77494],{},"Welche Aufgaben gibt es?",[24,77496,77497],{},"Welche Rollen sind beteiligt?",[24,77499,77500],{},"Wer ist wofür verantwortlich?",[470,77502,77504],{"id":77503},"beispiel-gebäudebau","Beispiel – Gebäudebau",[765,77506,77507,77531],{},[768,77508,77509],{},[771,77510,77511,77515,77519,77523,77527],{},[774,77512,77513],{},[42,77514,69046],{},[774,77516,77517],{},[42,77518,77446],{},[774,77520,77521],{},[42,77522,77457],{},[774,77524,77525],{},[42,77526,77468],{},[774,77528,77529],{},[42,77530,77479],{},[787,77532,77533,77552,77568,77583,77597],{},[771,77534,77535,77540,77543,77546,77549],{},[792,77536,77537],{},[406,77538,77539],{},"Bauplanung",[792,77541,77542],{},"Architekt",[792,77544,77545],{},"Bauherr",[792,77547,77548],{},"Bauunternehmer",[792,77550,77551],{},"Ingenieure",[771,77553,77554,77559,77561,77564,77566],{},[792,77555,77556],{},[406,77557,77558],{},"Genehmigungsverfahren",[792,77560,77545],{},[792,77562,77563],{},"Behörden",[792,77565,77551],{},[792,77567,77542],{},[771,77569,77570,77575,77577,77579,77581],{},[792,77571,77572],{},[406,77573,77574],{},"Bauausführung",[792,77576,77548],{},[792,77578,77545],{},[792,77580,77551],{},[792,77582,77542],{},[771,77584,77585,77589,77591,77593,77595],{},[792,77586,77587],{},[406,77588,76363],{},[792,77590,77548],{},[792,77592,77545],{},[792,77594,77551],{},[792,77596,77542],{},[771,77598,77599,77604,77606,77608,77610],{},[792,77600,77601],{},[406,77602,77603],{},"Inbetriebnahme",[792,77605,77548],{},[792,77607,77545],{},[792,77609,77551],{},[792,77611,77542],{},[16,77613,1014],{"id":1013},[21,77615,77616,77619,77622,77625,77628],{},[24,77617,77618],{},"Übersichtliche Darstellung der Beteiligten\u002FVerantwortlichen",[24,77620,77621],{},"Verbesserung der Kommunikation",[24,77623,77624],{},"Klare Rollen und Verantwortlichkeiten",[24,77626,77627],{},"Reduziert Missverständnisse",[24,77629,77630],{},"Einfach zu erstellen",[11,77632,77634],{"id":77633},"risikomanagement","Risikomanagement",[16,77636,1050],{"id":1049},[21,77638,77639,77642,77645,77648],{},[24,77640,77641],{},"Minimierung von Risiken – Erhöhung der Projektsicherheit",[24,77643,77644],{},"Flexibilität & Anpassungsfähigkeit",[24,77646,77647],{},"Maximierung von Chancen",[24,77649,77650],{},"Förderung proaktiver Projektkultur",[16,77652,77654],{"id":77653},"unterscheidung-in-positive-negative-risiken","Unterscheidung in positive & negative Risiken",[21,77656,77657,77673],{},[24,77658,77659,2815,77662],{},[42,77660,77661],{},"Positiv",[21,77663,77664,77667,77670],{},[24,77665,77666],{},"Geringere Gesamtkosten als geplant",[24,77668,77669],{},"Schnellere Erteilung von Genehmigungen",[24,77671,77672],{},"Verfügbarkeit von Mitarbeitern",[24,77674,77675,2815,77678],{},[42,77676,77677],{},"Negativ",[21,77679,77680,77682,77685],{},[24,77681,76936],{},[24,77683,77684],{},"Zeitplanverzögerung",[24,77686,77687],{},"Ressourcen-Knappheit",[16,77689,77691],{"id":77690},"bewertung-der-eintrittswahrscheinlichkeit-von-risiken","Bewertung der Eintrittswahrscheinlichkeit von Risiken",[21,77693,77694],{},[24,77695,77696],{},[21,77697,77698,77701,77704,77707],{},[24,77699,77700],{},"Wahrscheinlichkeit",[24,77702,77703],{},"Klassifizierung (Niedrig\u002FMittel\u002FHoch)(Immer\u002FHäufig\u002FManchmal\u002FSelten\u002FNie)",[24,77705,77706],{},"Reihenfolge",[24,77708,77709],{},"Relative Eintrittswahrscheinlichkeit",[16,77711,77713],{"id":77712},"bewältigungsstrategien","Bewältigungsstrategien",[470,77715,77717],{"id":77716},"bedrohung-negative-risiken","Bedrohung – negative Risiken",[21,77719,77720,77726,77732,77737],{},[24,77721,77722,77725],{},[42,77723,77724],{},"Akzeptanz",": Risiko akzeptieren; Gegenmaßnahmen teurer, als Risikoeintritt",[24,77727,77728,77731],{},[42,77729,77730],{},"Vermeidung",": Eliminierung des Risikos durch Anpassung des Projektplans",[24,77733,77734,77736],{},[42,77735,63836],{},": Reduzieren der Eintrittswahrscheinlichkeit oder der Auswirkung",[24,77738,77739,77742],{},[42,77740,77741],{},"Übertragung",": Abwälzen auf Dritte z.B. Versicherung",[16,77744,77746],{"id":77745},"chancen-positive-risiken","Chancen – positive Risiken",[21,77748,77749,77754,77760,77766],{},[24,77750,77751,77753],{},[42,77752,77724],{},": Hinnehmen",[24,77755,77756,77759],{},[42,77757,77758],{},"Verbessern",": Maximieren der Wahrscheinlichkeit und Auswirkung",[24,77761,77762,77765],{},[42,77763,77764],{},"Ausschöpfen",": Risiko nutzen z.B. Geschäftsbeziehung mit Lieferanten",[24,77767,77768,77771],{},[42,77769,77770],{},"Teilen",": Mit Dritten die Chance nutzen",[16,77773,77775],{"id":77774},"herausforderungen","Herausforderungen",[21,77777,77778,77781,77784,77787,77790],{},[24,77779,77780],{},"Wirtschaftslage",[24,77782,77783],{},"Neue Projekte ohne Erfahrungswerte (bzw. Informationen zur Risikoanalyse)",[24,77785,77786],{},"Umwelteinflüsse",[24,77788,77789],{},"Widerstand gegen Veränderung (Team\u002FStakeholder)",[24,77791,77792],{},"Veränderung rechtlicher Rahmenbedingungen",[11,77794,77796],{"id":77795},"soft-skills","Soft-Skills",[16,77798,77800],{"id":77799},"selbstmanagement-moscow-methode","Selbstmanagement – MoSCoW-Methode",[21,77802,77803,77809,77815,77821],{},[24,77804,77805,77808],{},[42,77806,77807],{},"Mo – Must have",": Essentielle Anforderung",[24,77810,77811,77814],{},[42,77812,77813],{},"S – Should have",": Nicht zwingend erfoderlich",[24,77816,77817,77820],{},[42,77818,77819],{},"Co – Could have",": Optional",[24,77822,77823,77826],{},[42,77824,77825],{},"W – Won’t have",": Wird nicht berücksichtigt",[470,77828,1014],{"id":76478},[21,77830,77831,77837],{},[24,77832,77833,77836],{},[42,77834,77835],{},"Klare Priorisierung",": Erleichtert Entscheidungsfindung",[24,77838,77839,77842],{},[42,77840,77841],{},"Flexibilität",": Ressourcen können besser verteilt werden",[470,77844,72264],{"id":72263},[21,77846,77847,77853],{},[24,77848,77849,77852],{},[42,77850,77851],{},"Subjektivität",": Einordnung in Kategorien je nach Position unterschiedlich –> Missverständnisse",[24,77854,77855,77858],{},[42,77856,77857],{},"Überlastung von „Should have“:"," Zu viele S-Elemente können das Projektteam überlasten",[16,77860,77862],{"id":77861},"kreativitätsmethoden","Kreativitätsmethoden",[470,77864,77866],{"id":77865},"walt-disney-methode","Walt-Disney-Methode",[21,77868,77869,77872,77875],{},[24,77870,77871],{},"Betrachtung aus unterschiedlichen Perspektiven",[24,77873,77874],{},"Kann allein oder mit mehreren durchgeführt werden",[24,77876,77877,77878],{},"3 Rollen + Moderator\n",[21,77879,77880,77883,77886],{},[24,77881,77882],{},"Träumer",[24,77884,77885],{},"Realist",[24,77887,77888],{},"Kritiker",[475,77890,77892],{"id":77891},"vorgehen","Vorgehen",[318,77894,77895,77898,77901,77904,77907],{},[24,77896,77897],{},"Konkrete Formulierung der Fragestellung (Problem\u002FZiel)",[24,77899,77900],{},"Teilnehmer versetzen sich in alle drei Rollen",[24,77902,77903],{},"Moderator notiert Ergebnisse",[24,77905,77906],{},"Auswertung der Ergebnisse",[24,77908,77909],{},"Verwertung der Ergebnisse",[475,77911,77913],{"id":77912},"maßnahmen","Maßnahmen",[21,77915,77916,77919,77922,77925],{},[24,77917,77918],{},"Identifizieren von Träumer-Ideen, die weiterverfolgt werden sollen",[24,77920,77921],{},"Relevante Kritik erkennen",[24,77923,77924],{},"Erforderliche Schritte festlegen",[24,77926,77927],{},"Liste mit Schritten und Verantwortlichen",[470,77929,77931],{"id":77930},"brainstorming","Brainstorming",[21,77933,77934,77936,77939],{},[24,77935,77871],{},[24,77937,77938],{},"Beliebig viele Teammitglieder + Moderator",[24,77940,77941,2815,77944],{},[42,77942,77943],{},"Regeln",[21,77945,77946,77949,77952],{},[24,77947,77948],{},"Gedanken freien Lauf lassen",[24,77950,77951],{},"Keine Kritik",[24,77953,77954],{},"Inspirieren lassen",[475,77956,77892],{"id":77957},"vorgehen-1",[318,77959,77960,77963,77966,77969,77972,77975],{},[24,77961,77962],{},"Rahmenbedingungen klären",[24,77964,77965],{},"Frage stellen",[24,77967,77968],{},"Ideen sammeln",[24,77970,77971],{},"Ideen ordnen",[24,77973,77974],{},"Ideen bewerten",[24,77976,77977],{},"Nachbereiten",[475,77979,77913],{"id":77980},"maßnahmen-1",[21,77982,77983,77986],{},[24,77984,77985],{},"Relevante Ideen identifizieren",[24,77987,77988],{},"Liste mit nächsten Schritten und Verantwortlichen",[470,77990,77992],{"id":77991},"nutzwertanalyse","Nutzwertanalyse",[21,77994,77995,77998,78001,78004,78007],{},[24,77996,77997],{},"Zur Priorisierung und Entscheidung",[24,77999,78000],{},"Optionen anhand unterschiedlicher Kriterien miteinander vergleichen",[24,78002,78003],{},"Gewichtete Punktzahl = Wichtung * Punkte",[24,78005,78006],{},"Option mit höchstem Ergebniswert gewinnt",[24,78008,78009],{},"Wichtig: Keine überlappenden Kriterien wählen",[475,78011,2615],{"id":2614},[765,78013,78014,78034],{},[768,78015,78016],{},[771,78017,78018,78020,78022,78025,78027,78030,78032],{},[774,78019],{},[774,78021],{},[774,78023,78024],{},"Option 1",[774,78026],{},[774,78028,78029],{},"Option 2",[774,78031],{},[774,78033,12552],{},[787,78035,78036,78067,78089,78109,78127],{},[771,78037,78038,78042,78047,78052,78057,78061,78065],{},[792,78039,78040],{},[42,78041,2489],{},[792,78043,78044],{},[42,78045,78046],{},"Wichtung",[792,78048,78049],{},[42,78050,78051],{},"Punkte",[792,78053,78054],{},[42,78055,78056],{},"Gewichtet",[792,78058,78059],{},[42,78060,78051],{},[792,78062,78063],{},[42,78064,78056],{},[792,78066],{},[771,78068,78069,78074,78077,78079,78082,78084,78087],{},[792,78070,78071],{},[406,78072,78073],{},"Kriterium A",[792,78075,78076],{},"10 %",[792,78078,14292],{},[792,78080,78081],{},"0,5",[792,78083,14318],{},[792,78085,78086],{},"0,3",[792,78088],{},[771,78090,78091,78096,78099,78101,78103,78105,78107],{},[792,78092,78093],{},[406,78094,78095],{},"Kriterium B",[792,78097,78098],{},"25 %",[792,78100,2894],{},[792,78102,14223],{},[792,78104,16286],{},[792,78106,14206],{},[792,78108],{},[771,78110,78111,78115,78117,78119,78121,78123,78125],{},[792,78112,78113],{},[406,78114,12552],{},[792,78116],{},[792,78118],{},[792,78120],{},[792,78122],{},[792,78124],{},[792,78126],{},[771,78128,78129,78133,78138,78143,78145,78149,78151],{},[792,78130,78131],{},[42,78132,43350],{},[792,78134,78135],{},[42,78136,78137],{},"100 %",[792,78139,78140],{},[42,78141,78142],{},"Summe aus „Gewichtet“",[792,78144],{},[792,78146,78147],{},[42,78148,78142],{},[792,78150],{},[792,78152],{},[11,78154,78156],{"id":78155},"projektsteuerung","Projektsteuerung",[21,78158,78159,78179,78198],{},[24,78160,78161,78162],{},"Es entstehen Probleme\n",[21,78163,78164,78167,78170,78173,78176],{},[24,78165,78166],{},"Konflikte im Team",[24,78168,78169],{},"Verzögerung der Lieferung",[24,78171,78172],{},"Unerwartete Hürden",[24,78174,78175],{},"Mangelnder Fortschritt",[24,78177,78178],{},"Änderungswünsche durch Kunde",[24,78180,78181,78182],{},"Während der Durchführung muss der Projektleiter (PL) Übersicht behalten\n",[21,78183,78184,78187,78190],{},[24,78185,78186],{},"Lenkung des Projekts",[24,78188,78189],{},"Einhaltung von Terminen, Budget und Qualität",[24,78191,78192,78193],{},"Projektplan als Grundlage\n",[21,78194,78195],{},[24,78196,78197],{},"Ermöglicht Soll-Ist-Vergleich",[24,78199,78200,78201],{},"Aufgaben des PLs:\n",[21,78202,78203,78206,78209,78212,78215,78218],{},[24,78204,78205],{},"Fortschrittsüberwachung",[24,78207,78208],{},"Arbeitspakte beginnen\u002Fbeenden",[24,78210,78211],{},"Ergebnisprüfung (Definition of Done festlegen)",[24,78213,78214],{},"Statusberichte erstellen",[24,78216,78217],{},"Risikoanalyse durchführen (fortlaufend)",[24,78219,78220,78221],{},"Regieren auf Abweichungen\n",[21,78222,78223,78226,78229,78232],{},[24,78224,78225],{},"Alternativer Lösungsweg",[24,78227,78228],{},"Anpassung des Projektplans",[24,78230,78231],{},"Anpassung der Aufgabenstellung",[24,78233,78234],{},"Anpassung von Budget und Ressourcen",[16,78236,78238],{"id":78237},"statusübersicht","Statusübersicht",[470,78240,78242],{"id":78241},"statusbericht","Statusbericht",[414,78244,78245],{},"Enthält folgende Informationen",[21,78247,78248,78251,78254,78257,78260],{},[24,78249,78250],{},"Grundlegende Projektinformationen",[24,78252,78253],{},"Aktuelle Aktivitäten",[24,78255,78256],{},"Statusbewertung (z.B. Ampel – rot, gelb, grün)",[24,78258,78259],{},"Aktuelle Hürden",[24,78261,78262],{},"Entscheidungsgrundlagen",[470,78264,78266],{"id":78265},"meilensteintrendanalyse","Meilensteintrendanalyse",[21,78268,78269,78272,78275],{},[24,78270,78271],{},"Dient zur Prognose und Steuerung von Terminen",[24,78273,78274],{},"Ggf. Teil des Statusberichts",[24,78276,78277],{},"Vor Berichterstattung: Soll-Ist-Vergleich der Meilensteine",[414,78279,78280],{},[1504,78281],{"alt":269,"src":78282},"\u002Fdownloads\u002FPMA\u002Fimages\u002F5-6-zsmf-sa2_img_1.png",[470,78284,78286],{"id":78285},"earned-value-analyse","Earned Value Analyse",[21,78288,78289,78292,78312,78315,78318],{},[24,78290,78291],{},"Vergleich aus Kosten zum Fertigstellungsgrad",[24,78293,78294,78295],{},"Voraussetzung:\n",[21,78296,78297,78300,78303,78306,78309],{},[24,78298,78299],{},"Detaillierte und realistische Kostenplanung",[24,78301,78302],{},"Geplante Gesamtkosten",[24,78304,78305],{},"Aktuelle Ist-Kosten",[24,78307,78308],{},"Fertigstellungsgrad Soll",[24,78310,78311],{},"Fertigstellungsgrad Ist",[24,78313,78314],{},"Es wird der Fertigstellungswert (Earned Value) für Soll & Ist ermittelt",[24,78316,78317],{},"Es können dementsprechend Kosten- und Terminabweichungen abgeleitet werden",[24,78319,78320],{},[42,78321,78322],{},"Formel: Earned Value = Gesamtkosten * Fertigstellungsgrad (Ist\u002FSoll)",[11,78324,78326],{"id":78325},"erfolgreiche-meetings","Erfolgreiche Meetings",[16,78328,76104],{"id":76103},[21,78330,78331,78334,78337,78340,78343,78346],{},[24,78332,78333],{},"Zweck klar machen",[24,78335,78336],{},"Teilnehmer auswählen und frühzeitig einladen",[24,78338,78339],{},"Tagesordnung sollte in Einladung enthalten sein",[24,78341,78342],{},"Entscheidungsgrundlage erstellen (z.B. Onepager)",[24,78344,78345],{},"Ggf. Keyplayer separat informieren",[24,78347,78348],{},"Nicht länger als 1h planen -> Ansonsten mehr Meetings",[16,78350,76133],{"id":76132},[21,78352,78353,78356,78359,78362,78365,78368],{},[24,78354,78355],{},"Pünktlicher beginn",[24,78357,78358],{},"Moderator bestimmen (Einhaltung der Tagesordnung)",[24,78360,78361],{},"Protokoll führen",[24,78363,78364],{},"To-Do-Liste mit weiteren Schritten erstellen",[24,78366,78367],{},"Keine Punkte diskutieren für die die Keyplayer fehlen -> vertagen",[24,78369,78370],{},"Pünktliches Ende",[16,78372,78374],{"id":78373},"nachbereitung","Nachbereitung",[21,78376,78377,78380],{},[24,78378,78379],{},"Verteilung des Protokolls & To-Do-Liste",[24,78381,78382],{},"Kontrolle der To-Do-Liste",[11,78384,78386],{"id":78385},"kanban","Kanban",[21,78388,78389,78392],{},[24,78390,78391],{},"Visualisierung der Arbeit",[24,78393,78394],{},"Optimierung des “Flows”",[16,78396,2615],{"id":3308},[21,78398,78399,78402],{},[24,78400,78401],{},"Kanban-Board",[24,78403,78404,78405],{},"Aufteilung in drei Spalten:\n",[21,78406,78407,78413,78424],{},[24,78408,78409,78412],{},[42,78410,78411],{},"Offen",": Bekannte Aufgaben, die noch zu erledigen sind",[24,78414,78415,78418,78419],{},[42,78416,78417],{},"In Arbeit",": Stellt alle Aufgaben dar, die derzeit bearbeitet werden\n",[21,78420,78421],{},[24,78422,78423],{},"Work-In-Progress-Limit festlegen",[24,78425,78426,78429],{},[42,78427,78428],{},"Erledigt",": Alle bereits abgeschlossenen Aufgaben",[16,78431,1681],{"id":1680},[21,78433,78434,78440,78448],{},[24,78435,78436,78439],{},[42,78437,78438],{},"Daily Standup",": Tägliches Treffen am Kanban-Board",[24,78441,78442,78443],{},"Status aller „In-Arbeit“-Tasks\n",[21,78444,78445],{},[24,78446,78447],{},"Entscheiden welche geschlossen werden können",[24,78449,78450],{},"Welche neuen Aufgaben können begonnen werden",[414,78452,78453],{},[1504,78454],{"alt":269,"src":78455},"\u002Fdownloads\u002FPMA\u002Fimages\u002F5-6-zsmf-sa2_img_2.png",{"title":269,"searchDepth":270,"depth":270,"links":78457},[78458,78464,78465,78466,78469,78470,78471,78472,78473,78476,78477,78478,78482,78487,78492,78493,78494,78495,78496],{"id":77249,"depth":270,"text":77250,"children":78459},[78460,78461,78462,78463],{"id":77253,"depth":1263,"text":77254},{"id":77287,"depth":1263,"text":77288},{"id":77311,"depth":1263,"text":77312},{"id":77338,"depth":1263,"text":77339},{"id":77407,"depth":270,"text":77408},{"id":77439,"depth":270,"text":6733},{"id":77488,"depth":270,"text":77489,"children":78467},[78468],{"id":77503,"depth":1263,"text":77504},{"id":1013,"depth":270,"text":1014},{"id":1049,"depth":270,"text":1050},{"id":77653,"depth":270,"text":77654},{"id":77690,"depth":270,"text":77691},{"id":77712,"depth":270,"text":77713,"children":78474},[78475],{"id":77716,"depth":1263,"text":77717},{"id":77745,"depth":270,"text":77746},{"id":77774,"depth":270,"text":77775},{"id":77799,"depth":270,"text":77800,"children":78479},[78480,78481],{"id":76478,"depth":1263,"text":1014},{"id":72263,"depth":1263,"text":72264},{"id":77861,"depth":270,"text":77862,"children":78483},[78484,78485,78486],{"id":77865,"depth":1263,"text":77866},{"id":77930,"depth":1263,"text":77931},{"id":77991,"depth":1263,"text":77992},{"id":78237,"depth":270,"text":78238,"children":78488},[78489,78490,78491],{"id":78241,"depth":1263,"text":78242},{"id":78265,"depth":1263,"text":78266},{"id":78285,"depth":1263,"text":78286},{"id":76103,"depth":270,"text":76104},{"id":76132,"depth":270,"text":76133},{"id":78373,"depth":270,"text":78374},{"id":3308,"depth":270,"text":2615},{"id":1680,"depth":270,"text":1681},{},{"title":1285},"\u002Ffaecher\u002Fpma\u002F5-6-zsmf-sa2","\u002Fdownloads\u002FPMA\u002FPM_5-6_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fpma\u002F5-6-zsmf-sa2","tkrgu_yeMkhxI4kRp9-fsn5deQ47xfP-jXIggllKaes",{"id":78505,"title":78506,"body":78507,"class":282,"description":269,"extension":283,"meta":78622,"navigation":78623,"path":78625,"pdfDownload":78626,"scope":289,"scopeName":290,"seo":78627,"stem":78628,"subject":78629,"subjectName":78630,"type":12231,"typeName":12232,"year":297,"__hash__":78631},"faecher\u002Ffaecher\u002Fprg\u002F5-6-cs-sa1.md","Cheat-Sheet – Schulaufgabe 1",{"type":8,"value":78508,"toc":78620},[78509,78514,78519,78524,78529,78534,78539,78544,78549,78554,78560,78566,78572,78578,78584,78590,78596,78602,78608,78614],[414,78510,78511],{},[1504,78512],{"alt":55309,"src":78513},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_1.png",[414,78515,78516],{},[1504,78517],{"alt":55449,"src":78518},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_2.png",[414,78520,78521],{},[1504,78522],{"alt":55712,"src":78523},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_3.png",[414,78525,78526],{},[1504,78527],{"alt":55865,"src":78528},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_4.png",[414,78530,78531],{},[1504,78532],{"alt":55992,"src":78533},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_5.png",[414,78535,78536],{},[1504,78537],{"alt":56249,"src":78538},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_6.png",[414,78540,78541],{},[1504,78542],{"alt":56454,"src":78543},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_7.png",[414,78545,78546],{},[1504,78547],{"alt":56625,"src":78548},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_8.png",[414,78550,78551],{},[1504,78552],{"alt":56825,"src":78553},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_9.png",[414,78555,78556],{},[1504,78557],{"alt":78558,"src":78559},"Seite 10","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_10.png",[414,78561,78562],{},[1504,78563],{"alt":78564,"src":78565},"Seite 11","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_11.png",[414,78567,78568],{},[1504,78569],{"alt":78570,"src":78571},"Seite 12","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_12.png",[414,78573,78574],{},[1504,78575],{"alt":78576,"src":78577},"Seite 13","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_13.png",[414,78579,78580],{},[1504,78581],{"alt":78582,"src":78583},"Seite 14","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_14.png",[414,78585,78586],{},[1504,78587],{"alt":78588,"src":78589},"Seite 15","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_15.png",[414,78591,78592],{},[1504,78593],{"alt":78594,"src":78595},"Seite 16","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_16.png",[414,78597,78598],{},[1504,78599],{"alt":78600,"src":78601},"Seite 17","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_17.png",[414,78603,78604],{},[1504,78605],{"alt":78606,"src":78607},"Seite 18","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_18.png",[414,78609,78610],{},[1504,78611],{"alt":78612,"src":78613},"Seite 19","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_19.png",[414,78615,78616],{},[1504,78617],{"alt":78618,"src":78619},"Seite 20","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa1_page_20.png",{"title":269,"searchDepth":270,"depth":270,"links":78621},[],{},{"title":78624},"Cheat-Sheet – Schulaufgabe 1 (2024\u002F2025)","\u002Ffaecher\u002Fprg\u002F5-6-cs-sa1","\u002Fdownloads\u002FPRG\u002FPRG_5-6_CS_SA1.pdf",{"title":78506,"description":269},"faecher\u002Fprg\u002F5-6-cs-sa1","PRG","Programmieren","0eTubvG7ECUzb9Vjdo7TXlqxdcr1XaAC5t4oW3WcYhw",{"id":78633,"title":5774,"body":78634,"class":282,"description":269,"extension":283,"meta":78906,"navigation":78907,"path":78909,"pdfDownload":78910,"scope":1288,"scopeName":1289,"seo":78911,"stem":78912,"subject":78629,"subjectName":78630,"type":12231,"typeName":12232,"year":297,"__hash__":78913},"faecher\u002Ffaecher\u002Fprg\u002F5-6-cs-sa2.md",{"type":8,"value":78635,"toc":78904},[78636,78641,78646,78651,78656,78661,78666,78671,78676,78681,78686,78691,78696,78701,78706,78711,78716,78721,78726,78731,78736,78742,78748,78754,78760,78766,78772,78778,78784,78790,78796,78802,78808,78814,78820,78826,78832,78838,78844,78850,78856,78862,78868,78874,78880,78886,78892,78898],[414,78637,78638],{},[1504,78639],{"alt":55309,"src":78640},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_1.png",[414,78642,78643],{},[1504,78644],{"alt":55449,"src":78645},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_2.png",[414,78647,78648],{},[1504,78649],{"alt":55712,"src":78650},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_3.png",[414,78652,78653],{},[1504,78654],{"alt":55865,"src":78655},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_4.png",[414,78657,78658],{},[1504,78659],{"alt":55992,"src":78660},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_5.png",[414,78662,78663],{},[1504,78664],{"alt":56249,"src":78665},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_6.png",[414,78667,78668],{},[1504,78669],{"alt":56454,"src":78670},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_7.png",[414,78672,78673],{},[1504,78674],{"alt":56625,"src":78675},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_8.png",[414,78677,78678],{},[1504,78679],{"alt":56825,"src":78680},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_9.png",[414,78682,78683],{},[1504,78684],{"alt":78558,"src":78685},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_10.png",[414,78687,78688],{},[1504,78689],{"alt":78564,"src":78690},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_11.png",[414,78692,78693],{},[1504,78694],{"alt":78570,"src":78695},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_12.png",[414,78697,78698],{},[1504,78699],{"alt":78576,"src":78700},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_13.png",[414,78702,78703],{},[1504,78704],{"alt":78582,"src":78705},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_14.png",[414,78707,78708],{},[1504,78709],{"alt":78588,"src":78710},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_15.png",[414,78712,78713],{},[1504,78714],{"alt":78594,"src":78715},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_16.png",[414,78717,78718],{},[1504,78719],{"alt":78600,"src":78720},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_17.png",[414,78722,78723],{},[1504,78724],{"alt":78606,"src":78725},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_18.png",[414,78727,78728],{},[1504,78729],{"alt":78612,"src":78730},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_19.png",[414,78732,78733],{},[1504,78734],{"alt":78618,"src":78735},"\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_20.png",[414,78737,78738],{},[1504,78739],{"alt":78740,"src":78741},"Seite 21","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_21.png",[414,78743,78744],{},[1504,78745],{"alt":78746,"src":78747},"Seite 22","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_22.png",[414,78749,78750],{},[1504,78751],{"alt":78752,"src":78753},"Seite 23","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_23.png",[414,78755,78756],{},[1504,78757],{"alt":78758,"src":78759},"Seite 24","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_24.png",[414,78761,78762],{},[1504,78763],{"alt":78764,"src":78765},"Seite 25","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_25.png",[414,78767,78768],{},[1504,78769],{"alt":78770,"src":78771},"Seite 26","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_26.png",[414,78773,78774],{},[1504,78775],{"alt":78776,"src":78777},"Seite 27","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_27.png",[414,78779,78780],{},[1504,78781],{"alt":78782,"src":78783},"Seite 28","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_28.png",[414,78785,78786],{},[1504,78787],{"alt":78788,"src":78789},"Seite 29","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_29.png",[414,78791,78792],{},[1504,78793],{"alt":78794,"src":78795},"Seite 30","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_30.png",[414,78797,78798],{},[1504,78799],{"alt":78800,"src":78801},"Seite 31","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_31.png",[414,78803,78804],{},[1504,78805],{"alt":78806,"src":78807},"Seite 32","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_32.png",[414,78809,78810],{},[1504,78811],{"alt":78812,"src":78813},"Seite 33","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_33.png",[414,78815,78816],{},[1504,78817],{"alt":78818,"src":78819},"Seite 34","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_34.png",[414,78821,78822],{},[1504,78823],{"alt":78824,"src":78825},"Seite 35","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_35.png",[414,78827,78828],{},[1504,78829],{"alt":78830,"src":78831},"Seite 36","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_36.png",[414,78833,78834],{},[1504,78835],{"alt":78836,"src":78837},"Seite 37","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_37.png",[414,78839,78840],{},[1504,78841],{"alt":78842,"src":78843},"Seite 38","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_38.png",[414,78845,78846],{},[1504,78847],{"alt":78848,"src":78849},"Seite 39","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_39.png",[414,78851,78852],{},[1504,78853],{"alt":78854,"src":78855},"Seite 40","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_40.png",[414,78857,78858],{},[1504,78859],{"alt":78860,"src":78861},"Seite 41","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_41.png",[414,78863,78864],{},[1504,78865],{"alt":78866,"src":78867},"Seite 42","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_42.png",[414,78869,78870],{},[1504,78871],{"alt":78872,"src":78873},"Seite 43","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_43.png",[414,78875,78876],{},[1504,78877],{"alt":78878,"src":78879},"Seite 44","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_44.png",[414,78881,78882],{},[1504,78883],{"alt":78884,"src":78885},"Seite 45","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_45.png",[414,78887,78888],{},[1504,78889],{"alt":78890,"src":78891},"Seite 46","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_46.png",[414,78893,78894],{},[1504,78895],{"alt":78896,"src":78897},"Seite 47","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_47.png",[414,78899,78900],{},[1504,78901],{"alt":78902,"src":78903},"Seite 48","\u002Fdownloads\u002FPRG\u002Fimages\u002F5-6-cs-sa2_page_48.png",{"title":269,"searchDepth":270,"depth":270,"links":78905},[],{},{"title":78908},"Cheat-Sheet – Schulaufgabe 2 (2024\u002F2025)","\u002Ffaecher\u002Fprg\u002F5-6-cs-sa2","\u002Fdownloads\u002FPRG\u002FPRG_5-6_CS_SA2.pdf",{"title":5774,"description":269},"faecher\u002Fprg\u002F5-6-cs-sa2","NR3jJKC26x4Ffq_1AgZdsL2jUaanNPIgea07OeA5-K0",{"id":78915,"title":12232,"body":78916,"class":12223,"description":78920,"extension":283,"meta":99178,"navigation":99179,"path":99181,"pdfDownload":99182,"scope":99183,"scopeName":99183,"seo":99184,"stem":99185,"subject":78629,"subjectName":78630,"type":12231,"typeName":12232,"year":12233,"__hash__":99186},"faecher\u002Ffaecher\u002Fprg\u002F7-8-cs.md",{"type":8,"value":78917,"toc":99103},[78918,78921,78925,78929,79006,79010,79085,79089,79128,79132,79437,79441,79509,79513,79620,79624,79811,79815,79876,79880,79970,79974,80125,80129,80133,80383,80387,80480,80484,80574,80578,80608,80612,80709,80713,80776,80780,80858,80862,80866,83475,83479,84007,84011,84057,84061,84104,84108,84150,84154,84196,84200,84242,84246,84313,84317,84381,84385,84447,84451,84557,84561,84701,84705,84727,84731,84849,84853,84984,84988,85704,85708,85712,86367,86371,86375,86763,86767,86771,86874,86878,87250,87254,87504,87508,87702,87706,87931,87935,88067,88071,89296,89300,89393,89397,89498,89502,89564,89568,89829,89833,90072,90075,90093,90097,90101,90105,90109,90113,90117,90121,90305,90309,90654,90658,90662,91451,91455,91802,91806,91958,91962,91965,92794,92798,92985,92989,92993,93054,93058,95304,95308,95441,95445,95465,95469,95473,96002,96006,96203,96207,96511,96515,96908,96912,98327,98331,98344,98348,98638,98642,98816,98820,99060,99064,99070,99075,99080,99085,99090,99095,99100],[414,78919,78920],{},"Programmieren Schülerscript V1.3:",[11,78922,78924],{"id":78923},"basics","BASICS",[16,78926,78928],{"id":78927},"_1variables-data-types","1.Variables & Data Types",[4647,78930,78934],{"className":78931,"code":78932,"language":78933,"meta":269,"style":269},"language-java shiki shiki-themes github-light github-dark","int age = 25;\ndouble price = 19.99;\nchar letter = 'A';\nboolean isActive = true;\nString name = \"Anna\";\n","java",[4653,78935,78936,78949,78964,78979,78994],{"__ignoreMap":269},[4173,78937,78938,78940,78942,78944,78947],{"class":4657,"line":4658},[4173,78939,64831],{"class":4788},[4173,78941,64903],{"class":4784},[4173,78943,6387],{"class":4788},[4173,78945,78946],{"class":4665}," 25",[4173,78948,55559],{"class":4784},[4173,78950,78951,78954,78957,78959,78962],{"class":4657,"line":270},[4173,78952,78953],{"class":4788},"double",[4173,78955,78956],{"class":4784}," price ",[4173,78958,6387],{"class":4788},[4173,78960,78961],{"class":4665}," 19.99",[4173,78963,55559],{"class":4784},[4173,78965,78966,78969,78972,78974,78977],{"class":4657,"line":1263},[4173,78967,78968],{"class":4788},"char",[4173,78970,78971],{"class":4784}," letter ",[4173,78973,6387],{"class":4788},[4173,78975,78976],{"class":4669}," 'A'",[4173,78978,55559],{"class":4784},[4173,78980,78981,78984,78987,78989,78992],{"class":4657,"line":4770},[4173,78982,78983],{"class":4788},"boolean",[4173,78985,78986],{"class":4784}," isActive ",[4173,78988,6387],{"class":4788},[4173,78990,78991],{"class":4665}," true",[4173,78993,55559],{"class":4784},[4173,78995,78996,78999,79001,79004],{"class":4657,"line":4775},[4173,78997,78998],{"class":4784},"String name ",[4173,79000,6387],{"class":4788},[4173,79002,79003],{"class":4669}," \"Anna\"",[4173,79005,55559],{"class":4784},[16,79007,79009],{"id":79008},"_2-basic-input-scanner","2. Basic Input (Scanner)",[4647,79011,79013],{"className":78931,"code":79012,"language":78933,"meta":269,"style":269},"import java.util.Scanner;\nScanner sc = new Scanner(System.in);\nSystem.out.print(\"Enter your name: \");\nString name = sc.nextLine();\nSystem.out.println(\"Hello \" + name);\n",[4653,79014,79015,79023,79039,79054,79068],{"__ignoreMap":269},[4173,79016,79017,79020],{"class":4657,"line":4658},[4173,79018,79019],{"class":4788},"import",[4173,79021,79022],{"class":4784}," java.util.Scanner;\n",[4173,79024,79025,79028,79030,79033,79036],{"class":4657,"line":270},[4173,79026,79027],{"class":4784},"Scanner sc ",[4173,79029,6387],{"class":4788},[4173,79031,79032],{"class":4788}," new",[4173,79034,79035],{"class":4661}," Scanner",[4173,79037,79038],{"class":4784},"(System.in);\n",[4173,79040,79041,79044,79047,79049,79052],{"class":4657,"line":1263},[4173,79042,79043],{"class":4784},"System.out.",[4173,79045,79046],{"class":4661},"print",[4173,79048,6390],{"class":4784},[4173,79050,79051],{"class":4669},"\"Enter your name: \"",[4173,79053,55545],{"class":4784},[4173,79055,79056,79058,79060,79063,79066],{"class":4657,"line":4770},[4173,79057,78998],{"class":4784},[4173,79059,6387],{"class":4788},[4173,79061,79062],{"class":4784}," sc.",[4173,79064,79065],{"class":4661},"nextLine",[4173,79067,65878],{"class":4784},[4173,79069,79070,79072,79075,79077,79080,79082],{"class":4657,"line":4775},[4173,79071,79043],{"class":4784},[4173,79073,79074],{"class":4661},"println",[4173,79076,6390],{"class":4784},[4173,79078,79079],{"class":4669},"\"Hello \"",[4173,79081,11719],{"class":4788},[4173,79083,79084],{"class":4784}," name);\n",[16,79086,79088],{"id":79087},"_3-basic-output","3. Basic Output",[4647,79090,79092],{"className":78931,"code":79091,"language":78933,"meta":269,"style":269},"System.out.println(\"Hello World\"); \u002F\u002FWith New Line\nSystem.out.print(\"No newline\");    \u002F\u002FWithout New Line\n",[4653,79093,79094,79111],{"__ignoreMap":269},[4173,79095,79096,79098,79100,79102,79105,79108],{"class":4657,"line":4658},[4173,79097,79043],{"class":4784},[4173,79099,79074],{"class":4661},[4173,79101,6390],{"class":4784},[4173,79103,79104],{"class":4669},"\"Hello World\"",[4173,79106,79107],{"class":4784},"); ",[4173,79109,79110],{"class":4766},"\u002F\u002FWith New Line\n",[4173,79112,79113,79115,79117,79119,79122,79125],{"class":4657,"line":270},[4173,79114,79043],{"class":4784},[4173,79116,79046],{"class":4661},[4173,79118,6390],{"class":4784},[4173,79120,79121],{"class":4669},"\"No newline\"",[4173,79123,79124],{"class":4784},");    ",[4173,79126,79127],{"class":4766},"\u002F\u002FWithout New Line\n",[16,79129,79131],{"id":79130},"_4-arithmetic-operations","4. Arithmetic Operations",[4647,79133,79135],{"className":78931,"code":79134,"language":78933,"meta":269,"style":269},"int a = 10;\nint b = 3;\nint sum = a + b; \u002F\u002F Addition: 10 + 3 = 13\nint diff = a - b; \u002F\u002F Subtraktion: 10 - 3 = 7\nint prod = a * b; \u002F\u002F Multiplikation: 10 * 3 = 30\nint div = a \u002F b; \u002F\u002F Ganzzahl-Division: 10 \u002F 3 = 3\nint mod = a % b; \u002F\u002F Modulo: 10 % 3 = 1\na++; \u002F\u002F Post-Inkrement: a = a + 1 -> a = 11\nb--; \u002F\u002F Post-Dekrement: b = b - 1 -> b = 2\n++a; \u002F\u002F Prä-Inkrement: a = a + 1 -> a = 12\n--b; \u002F\u002F Prä-Dekrement: b = b - 1 -> b = 1\nint sumAssign = 5;\nsumAssign += 3; \u002F\u002F Addition mit Zuweisung: sumAssign = 5 + 3 -> 8\nint diffAssign = 5;\ndiffAssign -= 2; \u002F\u002F Subtraktion mit Zuweisung: diffAssign = 5 - 2 -> 3\nint prodAssign = 5;\nprodAssign *= 4; \u002F\u002F Multiplikation mit Zuweisung: prodAssign = 5 * 4 -> 20\nint divAssign = 20;\ndivAssign \u002F= 5; \u002F\u002F Division mit Zuweisung: divAssign = 20 \u002F 5 -> 4\nint modAssign = 10;\nmodAssign %= 3; \u002F\u002F Modulo mit Zuweisung: modAssign = 10 % 3 -> 1\n",[4653,79136,79137,79150,79162,79181,79199,79217,79235,79254,79265,79277,79287,79297,79310,79325,79338,79353,79366,79381,79394,79409,79422],{"__ignoreMap":269},[4173,79138,79139,79141,79144,79146,79148],{"class":4657,"line":4658},[4173,79140,64831],{"class":4788},[4173,79142,79143],{"class":4784}," a ",[4173,79145,6387],{"class":4788},[4173,79147,15571],{"class":4665},[4173,79149,55559],{"class":4784},[4173,79151,79152,79154,79156,79158,79160],{"class":4657,"line":270},[4173,79153,64831],{"class":4788},[4173,79155,49052],{"class":4784},[4173,79157,6387],{"class":4788},[4173,79159,16593],{"class":4665},[4173,79161,55559],{"class":4784},[4173,79163,79164,79166,79169,79171,79173,79175,79178],{"class":4657,"line":1263},[4173,79165,64831],{"class":4788},[4173,79167,79168],{"class":4784}," sum ",[4173,79170,6387],{"class":4788},[4173,79172,79143],{"class":4784},[4173,79174,14419],{"class":4788},[4173,79176,79177],{"class":4784}," b; ",[4173,79179,79180],{"class":4766},"\u002F\u002F Addition: 10 + 3 = 13\n",[4173,79182,79183,79185,79188,79190,79192,79194,79196],{"class":4657,"line":4770},[4173,79184,64831],{"class":4788},[4173,79186,79187],{"class":4784}," diff ",[4173,79189,6387],{"class":4788},[4173,79191,79143],{"class":4784},[4173,79193,4778],{"class":4788},[4173,79195,79177],{"class":4784},[4173,79197,79198],{"class":4766},"\u002F\u002F Subtraktion: 10 - 3 = 7\n",[4173,79200,79201,79203,79206,79208,79210,79212,79214],{"class":4657,"line":4775},[4173,79202,64831],{"class":4788},[4173,79204,79205],{"class":4784}," prod ",[4173,79207,6387],{"class":4788},[4173,79209,79143],{"class":4784},[4173,79211,6328],{"class":4788},[4173,79213,79177],{"class":4784},[4173,79215,79216],{"class":4766},"\u002F\u002F Multiplikation: 10 * 3 = 30\n",[4173,79218,79219,79221,79224,79226,79228,79230,79232],{"class":4657,"line":6320},[4173,79220,64831],{"class":4788},[4173,79222,79223],{"class":4784}," div ",[4173,79225,6387],{"class":4788},[4173,79227,79143],{"class":4784},[4173,79229,13658],{"class":4788},[4173,79231,79177],{"class":4784},[4173,79233,79234],{"class":4766},"\u002F\u002F Ganzzahl-Division: 10 \u002F 3 = 3\n",[4173,79236,79237,79239,79242,79244,79246,79249,79251],{"class":4657,"line":6325},[4173,79238,64831],{"class":4788},[4173,79240,79241],{"class":4784}," mod ",[4173,79243,6387],{"class":4788},[4173,79245,79143],{"class":4784},[4173,79247,79248],{"class":4788},"%",[4173,79250,79177],{"class":4784},[4173,79252,79253],{"class":4766},"\u002F\u002F Modulo: 10 % 3 = 1\n",[4173,79255,79256,79258,79260,79262],{"class":4657,"line":6343},[4173,79257,4687],{"class":4784},[4173,79259,10670],{"class":4788},[4173,79261,6498],{"class":4784},[4173,79263,79264],{"class":4766},"\u002F\u002F Post-Inkrement: a = a + 1 -> a = 11\n",[4173,79266,79267,79269,79272,79274],{"class":4657,"line":6348},[4173,79268,6303],{"class":4784},[4173,79270,79271],{"class":4788},"--",[4173,79273,6498],{"class":4784},[4173,79275,79276],{"class":4766},"\u002F\u002F Post-Dekrement: b = b - 1 -> b = 2\n",[4173,79278,79279,79281,79284],{"class":4657,"line":6457},[4173,79280,10670],{"class":4788},[4173,79282,79283],{"class":4784},"a; ",[4173,79285,79286],{"class":4766},"\u002F\u002F Prä-Inkrement: a = a + 1 -> a = 12\n",[4173,79288,79289,79291,79294],{"class":4657,"line":6462},[4173,79290,79271],{"class":4788},[4173,79292,79293],{"class":4784},"b; ",[4173,79295,79296],{"class":4766},"\u002F\u002F Prä-Dekrement: b = b - 1 -> b = 1\n",[4173,79298,79299,79301,79304,79306,79308],{"class":4657,"line":6468},[4173,79300,64831],{"class":4788},[4173,79302,79303],{"class":4784}," sumAssign ",[4173,79305,6387],{"class":4788},[4173,79307,16450],{"class":4665},[4173,79309,55559],{"class":4784},[4173,79311,79312,79315,79318,79320,79322],{"class":4657,"line":6473},[4173,79313,79314],{"class":4784},"sumAssign ",[4173,79316,79317],{"class":4788},"+=",[4173,79319,16593],{"class":4665},[4173,79321,6498],{"class":4784},[4173,79323,79324],{"class":4766},"\u002F\u002F Addition mit Zuweisung: sumAssign = 5 + 3 -> 8\n",[4173,79326,79327,79329,79332,79334,79336],{"class":4657,"line":6479},[4173,79328,64831],{"class":4788},[4173,79330,79331],{"class":4784}," diffAssign ",[4173,79333,6387],{"class":4788},[4173,79335,16450],{"class":4665},[4173,79337,55559],{"class":4784},[4173,79339,79340,79343,79346,79348,79350],{"class":4657,"line":6503},[4173,79341,79342],{"class":4784},"diffAssign ",[4173,79344,79345],{"class":4788},"-=",[4173,79347,15327],{"class":4665},[4173,79349,6498],{"class":4784},[4173,79351,79352],{"class":4766},"\u002F\u002F Subtraktion mit Zuweisung: diffAssign = 5 - 2 -> 3\n",[4173,79354,79355,79357,79360,79362,79364],{"class":4657,"line":6516},[4173,79356,64831],{"class":4788},[4173,79358,79359],{"class":4784}," prodAssign ",[4173,79361,6387],{"class":4788},[4173,79363,16450],{"class":4665},[4173,79365,55559],{"class":4784},[4173,79367,79368,79371,79374,79376,79378],{"class":4657,"line":6971},[4173,79369,79370],{"class":4784},"prodAssign ",[4173,79372,79373],{"class":4788},"*=",[4173,79375,10954],{"class":4665},[4173,79377,6498],{"class":4784},[4173,79379,79380],{"class":4766},"\u002F\u002F Multiplikation mit Zuweisung: prodAssign = 5 * 4 -> 20\n",[4173,79382,79383,79385,79388,79390,79392],{"class":4657,"line":10649},[4173,79384,64831],{"class":4788},[4173,79386,79387],{"class":4784}," divAssign ",[4173,79389,6387],{"class":4788},[4173,79391,16865],{"class":4665},[4173,79393,55559],{"class":4784},[4173,79395,79396,79399,79402,79404,79406],{"class":4657,"line":10654},[4173,79397,79398],{"class":4784},"divAssign ",[4173,79400,79401],{"class":4788},"\u002F=",[4173,79403,16450],{"class":4665},[4173,79405,6498],{"class":4784},[4173,79407,79408],{"class":4766},"\u002F\u002F Division mit Zuweisung: divAssign = 20 \u002F 5 -> 4\n",[4173,79410,79411,79413,79416,79418,79420],{"class":4657,"line":10659},[4173,79412,64831],{"class":4788},[4173,79414,79415],{"class":4784}," modAssign ",[4173,79417,6387],{"class":4788},[4173,79419,15571],{"class":4665},[4173,79421,55559],{"class":4784},[4173,79423,79424,79427,79430,79432,79434],{"class":4657,"line":10664},[4173,79425,79426],{"class":4784},"modAssign ",[4173,79428,79429],{"class":4788},"%=",[4173,79431,16593],{"class":4665},[4173,79433,6498],{"class":4784},[4173,79435,79436],{"class":4766},"\u002F\u002F Modulo mit Zuweisung: modAssign = 10 % 3 -> 1\n",[16,79438,79440],{"id":79439},"_5-if-else","5. If \u002F Else",[4647,79442,79444],{"className":78931,"code":79443,"language":78933,"meta":269,"style":269},"int age = 18;\nif (age >= 18) {\nSystem.out.println(\"Adult\");\n} else {\nSystem.out.println(\"Minor\");\n}\n",[4653,79445,79446,79458,79471,79484,79492,79505],{"__ignoreMap":269},[4173,79447,79448,79450,79452,79454,79456],{"class":4657,"line":4658},[4173,79449,64831],{"class":4788},[4173,79451,64903],{"class":4784},[4173,79453,6387],{"class":4788},[4173,79455,48382],{"class":4665},[4173,79457,55559],{"class":4784},[4173,79459,79460,79462,79465,79467,79469],{"class":4657,"line":270},[4173,79461,6201],{"class":4788},[4173,79463,79464],{"class":4784}," (age ",[4173,79466,48379],{"class":4788},[4173,79468,48382],{"class":4665},[4173,79470,56319],{"class":4784},[4173,79472,79473,79475,79477,79479,79482],{"class":4657,"line":1263},[4173,79474,79043],{"class":4784},[4173,79476,79074],{"class":4661},[4173,79478,6390],{"class":4784},[4173,79480,79481],{"class":4669},"\"Adult\"",[4173,79483,55545],{"class":4784},[4173,79485,79486,79488,79490],{"class":4657,"line":4770},[4173,79487,71897],{"class":4784},[4173,79489,19734],{"class":4788},[4173,79491,51614],{"class":4784},[4173,79493,79494,79496,79498,79500,79503],{"class":4657,"line":4775},[4173,79495,79043],{"class":4784},[4173,79497,79074],{"class":4661},[4173,79499,6390],{"class":4784},[4173,79501,79502],{"class":4669},"\"Minor\"",[4173,79504,55545],{"class":4784},[4173,79506,79507],{"class":4657,"line":6320},[4173,79508,7090],{"class":4784},[16,79510,79512],{"id":79511},"_6-switch-case","6. Switch Case",[4647,79514,79516],{"className":78931,"code":79515,"language":78933,"meta":269,"style":269},"int day = 3;\nswitch (day) {\ncase 1 -> System.out.println(\"Monday\");\ncase 2 -> System.out.println(\"Tuesday\");\ncase 3 -> System.out.println(\"Wednesday\");\ndefault -> System.out.println(\"Unknown\");\n}\n",[4653,79517,79518,79531,79539,79560,79579,79598,79616],{"__ignoreMap":269},[4173,79519,79520,79522,79525,79527,79529],{"class":4657,"line":4658},[4173,79521,64831],{"class":4788},[4173,79523,79524],{"class":4784}," day ",[4173,79526,6387],{"class":4788},[4173,79528,16593],{"class":4665},[4173,79530,55559],{"class":4784},[4173,79532,79533,79536],{"class":4657,"line":270},[4173,79534,79535],{"class":4788},"switch",[4173,79537,79538],{"class":4784}," (day) {\n",[4173,79540,79541,79543,79545,79548,79551,79553,79555,79558],{"class":4657,"line":1263},[4173,79542,6264],{"class":4788},[4173,79544,10264],{"class":4665},[4173,79546,79547],{"class":4788}," ->",[4173,79549,79550],{"class":4784}," System.out.",[4173,79552,79074],{"class":4661},[4173,79554,6390],{"class":4784},[4173,79556,79557],{"class":4669},"\"Monday\"",[4173,79559,55545],{"class":4784},[4173,79561,79562,79564,79566,79568,79570,79572,79574,79577],{"class":4657,"line":4770},[4173,79563,6264],{"class":4788},[4173,79565,15327],{"class":4665},[4173,79567,79547],{"class":4788},[4173,79569,79550],{"class":4784},[4173,79571,79074],{"class":4661},[4173,79573,6390],{"class":4784},[4173,79575,79576],{"class":4669},"\"Tuesday\"",[4173,79578,55545],{"class":4784},[4173,79580,79581,79583,79585,79587,79589,79591,79593,79596],{"class":4657,"line":4775},[4173,79582,6264],{"class":4788},[4173,79584,16593],{"class":4665},[4173,79586,79547],{"class":4788},[4173,79588,79550],{"class":4784},[4173,79590,79074],{"class":4661},[4173,79592,6390],{"class":4784},[4173,79594,79595],{"class":4669},"\"Wednesday\"",[4173,79597,55545],{"class":4784},[4173,79599,79600,79603,79605,79607,79609,79611,79614],{"class":4657,"line":6320},[4173,79601,79602],{"class":4788},"default",[4173,79604,79547],{"class":4788},[4173,79606,79550],{"class":4784},[4173,79608,79074],{"class":4661},[4173,79610,6390],{"class":4784},[4173,79612,79613],{"class":4669},"\"Unknown\"",[4173,79615,55545],{"class":4784},[4173,79617,79618],{"class":4657,"line":6325},[4173,79619,7090],{"class":4784},[16,79621,79623],{"id":79622},"_7-loops-for-while","7. Loops (For \u002FWhile)",[4647,79625,79627],{"className":78931,"code":79626,"language":78933,"meta":269,"style":269},"for (int i = 0; i \u003C 5; i++) {\nSystem.out.println(\"i = \" + i);\n}\nString text = \"Hello World 123\";\nString[] words = text.split(\" \");\nSystem.out.println(\"Split:\");\nfor(String word : words) {\nSystem.out.println(word);\n\u002F\u002F Hello\n\u002F\u002F World\n\u002F\u002F 123\n}\nint i = 0;\nwhile (i \u003C 5) {\nSystem.out.println(i);\ni++;\n}\n",[4653,79628,79629,79657,79673,79677,79689,79712,79725,79737,79746,79751,79756,79761,79765,79777,79790,79799,79807],{"__ignoreMap":269},[4173,79630,79631,79633,79635,79637,79639,79641,79643,79646,79648,79650,79653,79655],{"class":4657,"line":4658},[4173,79632,6425],{"class":4788},[4173,79634,4171],{"class":4784},[4173,79636,64831],{"class":4788},[4173,79638,6555],{"class":4784},[4173,79640,6387],{"class":4788},[4173,79642,25370],{"class":4665},[4173,79644,79645],{"class":4784},"; i ",[4173,79647,24345],{"class":4788},[4173,79649,16450],{"class":4665},[4173,79651,79652],{"class":4784},"; i",[4173,79654,10670],{"class":4788},[4173,79656,56319],{"class":4784},[4173,79658,79659,79661,79663,79665,79668,79670],{"class":4657,"line":270},[4173,79660,79043],{"class":4784},[4173,79662,79074],{"class":4661},[4173,79664,6390],{"class":4784},[4173,79666,79667],{"class":4669},"\"i = \"",[4173,79669,11719],{"class":4788},[4173,79671,79672],{"class":4784}," i);\n",[4173,79674,79675],{"class":4657,"line":1263},[4173,79676,7090],{"class":4784},[4173,79678,79679,79682,79684,79687],{"class":4657,"line":4770},[4173,79680,79681],{"class":4784},"String text ",[4173,79683,6387],{"class":4788},[4173,79685,79686],{"class":4669}," \"Hello World 123\"",[4173,79688,55559],{"class":4784},[4173,79690,79691,79694,79697,79699,79702,79705,79707,79710],{"class":4657,"line":4775},[4173,79692,79693],{"class":4788},"String",[4173,79695,79696],{"class":4784},"[] words ",[4173,79698,6387],{"class":4788},[4173,79700,79701],{"class":4784}," text.",[4173,79703,79704],{"class":4661},"split",[4173,79706,6390],{"class":4784},[4173,79708,79709],{"class":4669},"\" \"",[4173,79711,55545],{"class":4784},[4173,79713,79714,79716,79718,79720,79723],{"class":4657,"line":6320},[4173,79715,79043],{"class":4784},[4173,79717,79074],{"class":4661},[4173,79719,6390],{"class":4784},[4173,79721,79722],{"class":4669},"\"Split:\"",[4173,79724,55545],{"class":4784},[4173,79726,79727,79729,79732,79734],{"class":4657,"line":6325},[4173,79728,6425],{"class":4788},[4173,79730,79731],{"class":4784},"(String word ",[4173,79733,8158],{"class":4788},[4173,79735,79736],{"class":4784}," words) {\n",[4173,79738,79739,79741,79743],{"class":4657,"line":6343},[4173,79740,79043],{"class":4784},[4173,79742,79074],{"class":4661},[4173,79744,79745],{"class":4784},"(word);\n",[4173,79747,79748],{"class":4657,"line":6348},[4173,79749,79750],{"class":4766},"\u002F\u002F Hello\n",[4173,79752,79753],{"class":4657,"line":6457},[4173,79754,79755],{"class":4766},"\u002F\u002F World\n",[4173,79757,79758],{"class":4657,"line":6462},[4173,79759,79760],{"class":4766},"\u002F\u002F 123\n",[4173,79762,79763],{"class":4657,"line":6468},[4173,79764,7090],{"class":4784},[4173,79766,79767,79769,79771,79773,79775],{"class":4657,"line":6473},[4173,79768,64831],{"class":4788},[4173,79770,6555],{"class":4784},[4173,79772,6387],{"class":4788},[4173,79774,25370],{"class":4665},[4173,79776,55559],{"class":4784},[4173,79778,79779,79781,79784,79786,79788],{"class":4657,"line":6479},[4173,79780,6694],{"class":4788},[4173,79782,79783],{"class":4784}," (i ",[4173,79785,24345],{"class":4788},[4173,79787,16450],{"class":4665},[4173,79789,56319],{"class":4784},[4173,79791,79792,79794,79796],{"class":4657,"line":6503},[4173,79793,79043],{"class":4784},[4173,79795,79074],{"class":4661},[4173,79797,79798],{"class":4784},"(i);\n",[4173,79800,79801,79803,79805],{"class":4657,"line":6516},[4173,79802,60395],{"class":4784},[4173,79804,10670],{"class":4788},[4173,79806,55559],{"class":4784},[4173,79808,79809],{"class":4657,"line":6971},[4173,79810,7090],{"class":4784},[16,79812,79814],{"id":79813},"_8-arrays","8. Arrays",[4647,79816,79818],{"className":78931,"code":79817,"language":78933,"meta":269,"style":269},"int[] numbers = {1, 2, 3, 4};\nfor (int n : numbers) {\nSystem.out.println(n);\n}\n",[4653,79819,79820,79848,79863,79872],{"__ignoreMap":269},[4173,79821,79822,79824,79827,79829,79831,79833,79835,79837,79839,79841,79843,79845],{"class":4657,"line":4658},[4173,79823,64831],{"class":4788},[4173,79825,79826],{"class":4784},"[] numbers ",[4173,79828,6387],{"class":4788},[4173,79830,6560],{"class":4784},[4173,79832,14223],{"class":4665},[4173,79834,8629],{"class":4784},[4173,79836,14206],{"class":4665},[4173,79838,8629],{"class":4784},[4173,79840,14318],{"class":4665},[4173,79842,8629],{"class":4784},[4173,79844,2894],{"class":4665},[4173,79846,79847],{"class":4784},"};\n",[4173,79849,79850,79852,79854,79856,79858,79860],{"class":4657,"line":270},[4173,79851,6425],{"class":4788},[4173,79853,4171],{"class":4784},[4173,79855,64831],{"class":4788},[4173,79857,66279],{"class":4784},[4173,79859,8158],{"class":4788},[4173,79861,79862],{"class":4784}," numbers) {\n",[4173,79864,79865,79867,79869],{"class":4657,"line":1263},[4173,79866,79043],{"class":4784},[4173,79868,79074],{"class":4661},[4173,79870,79871],{"class":4784},"(n);\n",[4173,79873,79874],{"class":4657,"line":4770},[4173,79875,7090],{"class":4784},[16,79877,79879],{"id":79878},"_9-methods","9. Methods",[4647,79881,79883],{"className":78931,"code":79882,"language":78933,"meta":269,"style":269},"public static int add(int a, int b) {\nreturn a + b;\n}\npublic static void main(String[] args) {\nSystem.out.println(add(3, 5));\n}\n",[4653,79884,79885,79911,79922,79926,79945,79966],{"__ignoreMap":269},[4173,79886,79887,79890,79893,79896,79899,79901,79903,79906,79908],{"class":4657,"line":4658},[4173,79888,79889],{"class":4788},"public",[4173,79891,79892],{"class":4788}," static",[4173,79894,79895],{"class":4788}," int",[4173,79897,79898],{"class":4661}," add",[4173,79900,6390],{"class":4784},[4173,79902,64831],{"class":4788},[4173,79904,79905],{"class":4784}," a, ",[4173,79907,64831],{"class":4788},[4173,79909,79910],{"class":4784}," b) {\n",[4173,79912,79913,79915,79917,79919],{"class":4657,"line":270},[4173,79914,51326],{"class":4788},[4173,79916,79143],{"class":4784},[4173,79918,14419],{"class":4788},[4173,79920,79921],{"class":4784}," b;\n",[4173,79923,79924],{"class":4657,"line":1263},[4173,79925,7090],{"class":4784},[4173,79927,79928,79930,79932,79935,79938,79940,79942],{"class":4657,"line":4770},[4173,79929,79889],{"class":4788},[4173,79931,79892],{"class":4788},[4173,79933,79934],{"class":4788}," void",[4173,79936,79937],{"class":4661}," main",[4173,79939,6390],{"class":4784},[4173,79941,79693],{"class":4788},[4173,79943,79944],{"class":4784},"[] args) {\n",[4173,79946,79947,79949,79951,79953,79956,79958,79960,79962,79964],{"class":4657,"line":4775},[4173,79948,79043],{"class":4784},[4173,79950,79074],{"class":4661},[4173,79952,6390],{"class":4784},[4173,79954,79955],{"class":4661},"add",[4173,79957,6390],{"class":4784},[4173,79959,14318],{"class":4665},[4173,79961,8629],{"class":4784},[4173,79963,14292],{"class":4665},[4173,79965,66047],{"class":4784},[4173,79967,79968],{"class":4657,"line":6320},[4173,79969,7090],{"class":4784},[16,79971,79973],{"id":79972},"_10-classes-objects-main","10. Classes & Objects & Main",[4647,79975,79977],{"className":78931,"code":79976,"language":78933,"meta":269,"style":269},"class Person {\nString name;\nPerson(String name) {\nthis.name = name;\n}\nvoid greet() {\nSystem.out.println(\"Hello, I'm \" + name);\n}\n}\npublic class Main {\npublic static void main(String[] args) {\nPerson p = new Person(\"Anna\");\np.greet();\n}\n}\n",[4653,79978,79979,79989,79994,80006,80019,80023,80033,80048,80052,80056,80068,80089,80107,80117,80121],{"__ignoreMap":269},[4173,79980,79981,79984,79987],{"class":4657,"line":4658},[4173,79982,79983],{"class":4788},"class",[4173,79985,79986],{"class":4661}," Person",[4173,79988,51614],{"class":4784},[4173,79990,79991],{"class":4657,"line":270},[4173,79992,79993],{"class":4784},"String name;\n",[4173,79995,79996,79999,80002,80004],{"class":4657,"line":1263},[4173,79997,79998],{"class":4661},"Person",[4173,80000,80001],{"class":4784},"(String ",[4173,80003,28734],{"class":7074},[4173,80005,56319],{"class":4784},[4173,80007,80008,80011,80014,80016],{"class":4657,"line":4770},[4173,80009,80010],{"class":4665},"this",[4173,80012,80013],{"class":4784},".name ",[4173,80015,6387],{"class":4788},[4173,80017,80018],{"class":4784}," name;\n",[4173,80020,80021],{"class":4657,"line":4775},[4173,80022,7090],{"class":4784},[4173,80024,80025,80028,80031],{"class":4657,"line":6320},[4173,80026,80027],{"class":4788},"void",[4173,80029,80030],{"class":4661}," greet",[4173,80032,7062],{"class":4784},[4173,80034,80035,80037,80039,80041,80044,80046],{"class":4657,"line":6325},[4173,80036,79043],{"class":4784},[4173,80038,79074],{"class":4661},[4173,80040,6390],{"class":4784},[4173,80042,80043],{"class":4669},"\"Hello, I'm \"",[4173,80045,11719],{"class":4788},[4173,80047,79084],{"class":4784},[4173,80049,80050],{"class":4657,"line":6343},[4173,80051,7090],{"class":4784},[4173,80053,80054],{"class":4657,"line":6348},[4173,80055,7090],{"class":4784},[4173,80057,80058,80060,80063,80066],{"class":4657,"line":6457},[4173,80059,79889],{"class":4788},[4173,80061,80062],{"class":4788}," class",[4173,80064,80065],{"class":4661}," Main",[4173,80067,51614],{"class":4784},[4173,80069,80070,80072,80074,80076,80078,80080,80082,80085,80087],{"class":4657,"line":6462},[4173,80071,79889],{"class":4788},[4173,80073,79892],{"class":4788},[4173,80075,79934],{"class":4788},[4173,80077,79937],{"class":4661},[4173,80079,6390],{"class":4784},[4173,80081,79693],{"class":4788},[4173,80083,80084],{"class":4784},"[] ",[4173,80086,31283],{"class":7074},[4173,80088,56319],{"class":4784},[4173,80090,80091,80094,80096,80098,80100,80102,80105],{"class":4657,"line":6468},[4173,80092,80093],{"class":4784},"Person p ",[4173,80095,6387],{"class":4788},[4173,80097,79032],{"class":4788},[4173,80099,79986],{"class":4661},[4173,80101,6390],{"class":4784},[4173,80103,80104],{"class":4669},"\"Anna\"",[4173,80106,55545],{"class":4784},[4173,80108,80109,80112,80115],{"class":4657,"line":6473},[4173,80110,80111],{"class":4784},"p.",[4173,80113,80114],{"class":4661},"greet",[4173,80116,65878],{"class":4784},[4173,80118,80119],{"class":4657,"line":6479},[4173,80120,7090],{"class":4784},[4173,80122,80123],{"class":4657,"line":6503},[4173,80124,7090],{"class":4784},[11,80126,80128],{"id":80127},"klassen","KLASSEN",[16,80130,80132],{"id":80131},"_1-einfache-klasse-person","1. Einfache Klasse – Person",[4647,80134,80136],{"className":78931,"code":80135,"language":78933,"meta":269,"style":269},"public class Person {\nprivate String name;\nprivate int age;\n\u002F\u002F Konstruktor\npublic Person(String name, int age) {\nthis.name = name;\nthis.age = age;\n}\n\u002F\u002F Getter & Setter\npublic String getName() {\nreturn name;\n}\npublic void setName(String name) {\nthis.name = name;\n}\npublic int getAge() {\nreturn age;\n}\npublic void setAge(int age) {\nthis.age = age;\n}\n\u002F\u002F Methode\npublic void introduce() {\nSystem.out.println(\"Hallo, ich bin \" + name + \" und \" + age + \" Jahre\nalt.\");\n}\n}\n",[4653,80137,80138,80148,80156,80165,80170,80189,80199,80210,80214,80219,80231,80237,80241,80256,80266,80270,80281,80287,80291,80308,80318,80322,80327,80338,80368,80375,80379],{"__ignoreMap":269},[4173,80139,80140,80142,80144,80146],{"class":4657,"line":4658},[4173,80141,79889],{"class":4788},[4173,80143,80062],{"class":4788},[4173,80145,79986],{"class":4661},[4173,80147,51614],{"class":4784},[4173,80149,80150,80153],{"class":4657,"line":270},[4173,80151,80152],{"class":4788},"private",[4173,80154,80155],{"class":4784}," String name;\n",[4173,80157,80158,80160,80162],{"class":4657,"line":1263},[4173,80159,80152],{"class":4788},[4173,80161,79895],{"class":4788},[4173,80163,80164],{"class":4784}," age;\n",[4173,80166,80167],{"class":4657,"line":4770},[4173,80168,80169],{"class":4766},"\u002F\u002F Konstruktor\n",[4173,80171,80172,80174,80176,80178,80180,80182,80184,80187],{"class":4657,"line":4775},[4173,80173,79889],{"class":4788},[4173,80175,79986],{"class":4661},[4173,80177,80001],{"class":4784},[4173,80179,28734],{"class":7074},[4173,80181,8629],{"class":4784},[4173,80183,64831],{"class":4788},[4173,80185,80186],{"class":7074}," age",[4173,80188,56319],{"class":4784},[4173,80190,80191,80193,80195,80197],{"class":4657,"line":6320},[4173,80192,80010],{"class":4665},[4173,80194,80013],{"class":4784},[4173,80196,6387],{"class":4788},[4173,80198,80018],{"class":4784},[4173,80200,80201,80203,80206,80208],{"class":4657,"line":6325},[4173,80202,80010],{"class":4665},[4173,80204,80205],{"class":4784},".age ",[4173,80207,6387],{"class":4788},[4173,80209,80164],{"class":4784},[4173,80211,80212],{"class":4657,"line":6343},[4173,80213,7090],{"class":4784},[4173,80215,80216],{"class":4657,"line":6348},[4173,80217,80218],{"class":4766},"\u002F\u002F Getter & Setter\n",[4173,80220,80221,80223,80226,80229],{"class":4657,"line":6457},[4173,80222,79889],{"class":4788},[4173,80224,80225],{"class":4784}," String ",[4173,80227,80228],{"class":4661},"getName",[4173,80230,7062],{"class":4784},[4173,80232,80233,80235],{"class":4657,"line":6462},[4173,80234,51326],{"class":4788},[4173,80236,80018],{"class":4784},[4173,80238,80239],{"class":4657,"line":6468},[4173,80240,7090],{"class":4784},[4173,80242,80243,80245,80247,80250,80252,80254],{"class":4657,"line":6473},[4173,80244,79889],{"class":4788},[4173,80246,79934],{"class":4788},[4173,80248,80249],{"class":4661}," setName",[4173,80251,80001],{"class":4784},[4173,80253,28734],{"class":7074},[4173,80255,56319],{"class":4784},[4173,80257,80258,80260,80262,80264],{"class":4657,"line":6479},[4173,80259,80010],{"class":4665},[4173,80261,80013],{"class":4784},[4173,80263,6387],{"class":4788},[4173,80265,80018],{"class":4784},[4173,80267,80268],{"class":4657,"line":6503},[4173,80269,7090],{"class":4784},[4173,80271,80272,80274,80276,80279],{"class":4657,"line":6516},[4173,80273,79889],{"class":4788},[4173,80275,79895],{"class":4788},[4173,80277,80278],{"class":4661}," getAge",[4173,80280,7062],{"class":4784},[4173,80282,80283,80285],{"class":4657,"line":6971},[4173,80284,51326],{"class":4788},[4173,80286,80164],{"class":4784},[4173,80288,80289],{"class":4657,"line":10649},[4173,80290,7090],{"class":4784},[4173,80292,80293,80295,80297,80300,80302,80304,80306],{"class":4657,"line":10654},[4173,80294,79889],{"class":4788},[4173,80296,79934],{"class":4788},[4173,80298,80299],{"class":4661}," setAge",[4173,80301,6390],{"class":4784},[4173,80303,64831],{"class":4788},[4173,80305,80186],{"class":7074},[4173,80307,56319],{"class":4784},[4173,80309,80310,80312,80314,80316],{"class":4657,"line":10659},[4173,80311,80010],{"class":4665},[4173,80313,80205],{"class":4784},[4173,80315,6387],{"class":4788},[4173,80317,80164],{"class":4784},[4173,80319,80320],{"class":4657,"line":10664},[4173,80321,7090],{"class":4784},[4173,80323,80324],{"class":4657,"line":10676},[4173,80325,80326],{"class":4766},"\u002F\u002F Methode\n",[4173,80328,80329,80331,80333,80336],{"class":4657,"line":10681},[4173,80330,79889],{"class":4788},[4173,80332,79934],{"class":4788},[4173,80334,80335],{"class":4661}," introduce",[4173,80337,7062],{"class":4784},[4173,80339,80340,80342,80344,80346,80349,80351,80354,80356,80359,80361,80363,80365],{"class":4657,"line":10702},[4173,80341,79043],{"class":4784},[4173,80343,79074],{"class":4661},[4173,80345,6390],{"class":4784},[4173,80347,80348],{"class":4669},"\"Hallo, ich bin \"",[4173,80350,11719],{"class":4788},[4173,80352,80353],{"class":4784}," name ",[4173,80355,14419],{"class":4788},[4173,80357,80358],{"class":4669}," \" und \"",[4173,80360,11719],{"class":4788},[4173,80362,64903],{"class":4784},[4173,80364,14419],{"class":4788},[4173,80366,80367],{"class":4669}," \" Jahre\n",[4173,80369,80370,80373],{"class":4657,"line":10707},[4173,80371,80372],{"class":4669},"alt.\"",[4173,80374,55545],{"class":4784},[4173,80376,80377],{"class":4657,"line":10712},[4173,80378,7090],{"class":4784},[4173,80380,80381],{"class":4657,"line":10717},[4173,80382,7090],{"class":4784},[16,80384,80386],{"id":80385},"_2-abstrakte-klasse-animal","2. Abstrakte Klasse – Animal",[4647,80388,80390],{"className":78931,"code":80389,"language":78933,"meta":269,"style":269},"public abstract class Animal {\nprivate String name;\npublic Animal(String name) {\nthis.name = name;\n}\npublic String getName() {\nreturn name;\n}\n\u002F\u002F Abstrakte Methode: muss in Unterklassen implementiert werden\npublic abstract void makeSound();\n}\n",[4653,80391,80392,80406,80412,80424,80434,80438,80448,80454,80458,80463,80476],{"__ignoreMap":269},[4173,80393,80394,80396,80399,80401,80404],{"class":4657,"line":4658},[4173,80395,79889],{"class":4788},[4173,80397,80398],{"class":4788}," abstract",[4173,80400,80062],{"class":4788},[4173,80402,80403],{"class":4661}," Animal",[4173,80405,51614],{"class":4784},[4173,80407,80408,80410],{"class":4657,"line":270},[4173,80409,80152],{"class":4788},[4173,80411,80155],{"class":4784},[4173,80413,80414,80416,80418,80420,80422],{"class":4657,"line":1263},[4173,80415,79889],{"class":4788},[4173,80417,80403],{"class":4661},[4173,80419,80001],{"class":4784},[4173,80421,28734],{"class":7074},[4173,80423,56319],{"class":4784},[4173,80425,80426,80428,80430,80432],{"class":4657,"line":4770},[4173,80427,80010],{"class":4665},[4173,80429,80013],{"class":4784},[4173,80431,6387],{"class":4788},[4173,80433,80018],{"class":4784},[4173,80435,80436],{"class":4657,"line":4775},[4173,80437,7090],{"class":4784},[4173,80439,80440,80442,80444,80446],{"class":4657,"line":6320},[4173,80441,79889],{"class":4788},[4173,80443,80225],{"class":4784},[4173,80445,80228],{"class":4661},[4173,80447,7062],{"class":4784},[4173,80449,80450,80452],{"class":4657,"line":6325},[4173,80451,51326],{"class":4788},[4173,80453,80018],{"class":4784},[4173,80455,80456],{"class":4657,"line":6343},[4173,80457,7090],{"class":4784},[4173,80459,80460],{"class":4657,"line":6348},[4173,80461,80462],{"class":4766},"\u002F\u002F Abstrakte Methode: muss in Unterklassen implementiert werden\n",[4173,80464,80465,80467,80469,80471,80474],{"class":4657,"line":6457},[4173,80466,79889],{"class":4788},[4173,80468,80398],{"class":4788},[4173,80470,79934],{"class":4788},[4173,80472,80473],{"class":4661}," makeSound",[4173,80475,65878],{"class":4784},[4173,80477,80478],{"class":4657,"line":6462},[4173,80479,7090],{"class":4784},[16,80481,80483],{"id":80482},"_3-vererbung-dog","3. Vererbung – Dog",[4647,80485,80487],{"className":78931,"code":80486,"language":78933,"meta":269,"style":269},"public class Dog extends Animal {\npublic Dog(String name) {\nsuper(name);\n}\n@Override\npublic void makeSound() {\nSystem.out.println(getName() + \" sagt: Wuff!\");\n}\n}\n",[4653,80488,80489,80505,80517,80525,80529,80536,80546,80566,80570],{"__ignoreMap":269},[4173,80490,80491,80493,80495,80498,80501,80503],{"class":4657,"line":4658},[4173,80492,79889],{"class":4788},[4173,80494,80062],{"class":4788},[4173,80496,80497],{"class":4661}," Dog",[4173,80499,80500],{"class":4788}," extends",[4173,80502,80403],{"class":4661},[4173,80504,51614],{"class":4784},[4173,80506,80507,80509,80511,80513,80515],{"class":4657,"line":270},[4173,80508,79889],{"class":4788},[4173,80510,80497],{"class":4661},[4173,80512,80001],{"class":4784},[4173,80514,28734],{"class":7074},[4173,80516,56319],{"class":4784},[4173,80518,80519,80522],{"class":4657,"line":1263},[4173,80520,80521],{"class":4665},"super",[4173,80523,80524],{"class":4784},"(name);\n",[4173,80526,80527],{"class":4657,"line":4770},[4173,80528,7090],{"class":4784},[4173,80530,80531,80533],{"class":4657,"line":4775},[4173,80532,11615],{"class":4784},[4173,80534,80535],{"class":4788},"Override\n",[4173,80537,80538,80540,80542,80544],{"class":4657,"line":6320},[4173,80539,79889],{"class":4788},[4173,80541,79934],{"class":4788},[4173,80543,80473],{"class":4661},[4173,80545,7062],{"class":4784},[4173,80547,80548,80550,80552,80554,80556,80559,80561,80564],{"class":4657,"line":6325},[4173,80549,79043],{"class":4784},[4173,80551,79074],{"class":4661},[4173,80553,6390],{"class":4784},[4173,80555,80228],{"class":4661},[4173,80557,80558],{"class":4784},"() ",[4173,80560,14419],{"class":4788},[4173,80562,80563],{"class":4669}," \" sagt: Wuff!\"",[4173,80565,55545],{"class":4784},[4173,80567,80568],{"class":4657,"line":6343},[4173,80569,7090],{"class":4784},[4173,80571,80572],{"class":4657,"line":6348},[4173,80573,7090],{"class":4784},[16,80575,80577],{"id":80576},"_4-interface-movable","4. Interface – Movable",[4647,80579,80581],{"className":78931,"code":80580,"language":78933,"meta":269,"style":269},"public interface Movable {\nvoid move();\n}\n",[4653,80582,80583,80595,80604],{"__ignoreMap":269},[4173,80584,80585,80587,80590,80593],{"class":4657,"line":4658},[4173,80586,79889],{"class":4788},[4173,80588,80589],{"class":4788}," interface",[4173,80591,80592],{"class":4661}," Movable",[4173,80594,51614],{"class":4784},[4173,80596,80597,80599,80602],{"class":4657,"line":270},[4173,80598,80027],{"class":4788},[4173,80600,80601],{"class":4661}," move",[4173,80603,65878],{"class":4784},[4173,80605,80606],{"class":4657,"line":1263},[4173,80607,7090],{"class":4784},[16,80609,80611],{"id":80610},"_5-klasse-die-ein-interface-implementiert-car","5. Klasse, die ein Interface implementiert – Car",[4647,80613,80615],{"className":78931,"code":80614,"language":78933,"meta":269,"style":269},"public class Car implements Movable {\nprivate String model;\npublic Car(String model) {\nthis.model = model;\n}\n@Override\npublic void move() {\nSystem.out.println(model + \" fährt los!\");\n}\n}\n",[4653,80616,80617,80633,80640,80653,80665,80669,80675,80685,80701,80705],{"__ignoreMap":269},[4173,80618,80619,80621,80623,80626,80629,80631],{"class":4657,"line":4658},[4173,80620,79889],{"class":4788},[4173,80622,80062],{"class":4788},[4173,80624,80625],{"class":4661}," Car",[4173,80627,80628],{"class":4788}," implements",[4173,80630,80592],{"class":4661},[4173,80632,51614],{"class":4784},[4173,80634,80635,80637],{"class":4657,"line":270},[4173,80636,80152],{"class":4788},[4173,80638,80639],{"class":4784}," String model;\n",[4173,80641,80642,80644,80646,80648,80651],{"class":4657,"line":1263},[4173,80643,79889],{"class":4788},[4173,80645,80625],{"class":4661},[4173,80647,80001],{"class":4784},[4173,80649,80650],{"class":7074},"model",[4173,80652,56319],{"class":4784},[4173,80654,80655,80657,80660,80662],{"class":4657,"line":4770},[4173,80656,80010],{"class":4665},[4173,80658,80659],{"class":4784},".model ",[4173,80661,6387],{"class":4788},[4173,80663,80664],{"class":4784}," model;\n",[4173,80666,80667],{"class":4657,"line":4775},[4173,80668,7090],{"class":4784},[4173,80670,80671,80673],{"class":4657,"line":6320},[4173,80672,11615],{"class":4784},[4173,80674,80535],{"class":4788},[4173,80676,80677,80679,80681,80683],{"class":4657,"line":6325},[4173,80678,79889],{"class":4788},[4173,80680,79934],{"class":4788},[4173,80682,80601],{"class":4661},[4173,80684,7062],{"class":4784},[4173,80686,80687,80689,80691,80694,80696,80699],{"class":4657,"line":6343},[4173,80688,79043],{"class":4784},[4173,80690,79074],{"class":4661},[4173,80692,80693],{"class":4784},"(model ",[4173,80695,14419],{"class":4788},[4173,80697,80698],{"class":4669}," \" fährt los!\"",[4173,80700,55545],{"class":4784},[4173,80702,80703],{"class":4657,"line":6348},[4173,80704,7090],{"class":4784},[4173,80706,80707],{"class":4657,"line":6457},[4173,80708,7090],{"class":4784},[16,80710,80712],{"id":80711},"_6-main-klasse-zum-testen","6. Main-Klasse zum Testen",[4647,80714,80716],{"className":78931,"code":80715,"language":78933,"meta":269,"style":269},"public class Main {\n\u002F\u002FGlobale Variabeln HIER\npublic static void main(String[] args) {\nPerson p = new Person(\"Anna\", 28); \u002F\u002FAlles was Objekt ist benötigt new\n",[4653,80717,80718,80728,80733,80753],{"__ignoreMap":269},[4173,80719,80720,80722,80724,80726],{"class":4657,"line":4658},[4173,80721,79889],{"class":4788},[4173,80723,80062],{"class":4788},[4173,80725,80065],{"class":4661},[4173,80727,51614],{"class":4784},[4173,80729,80730],{"class":4657,"line":270},[4173,80731,80732],{"class":4766},"\u002F\u002FGlobale Variabeln HIER\n",[4173,80734,80735,80737,80739,80741,80743,80745,80747,80749,80751],{"class":4657,"line":1263},[4173,80736,79889],{"class":4788},[4173,80738,79892],{"class":4788},[4173,80740,79934],{"class":4788},[4173,80742,79937],{"class":4661},[4173,80744,6390],{"class":4784},[4173,80746,79693],{"class":4788},[4173,80748,80084],{"class":4784},[4173,80750,31283],{"class":7074},[4173,80752,56319],{"class":4784},[4173,80754,80755,80757,80759,80761,80763,80765,80767,80769,80771,80773],{"class":4657,"line":4770},[4173,80756,80093],{"class":4784},[4173,80758,6387],{"class":4788},[4173,80760,79032],{"class":4788},[4173,80762,79986],{"class":4661},[4173,80764,6390],{"class":4784},[4173,80766,80104],{"class":4669},[4173,80768,8629],{"class":4784},[4173,80770,5818],{"class":4665},[4173,80772,79107],{"class":4784},[4173,80774,80775],{"class":4766},"\u002F\u002FAlles was Objekt ist benötigt new\n",[11,80777,80779],{"id":80778},"objekt","OBJEKT",[4647,80781,80783],{"className":78931,"code":80782,"language":78933,"meta":269,"style":269},"p.introduce();\nAnimal dog = new Dog(\"Bello\");\ndog.makeSound();\nMovable car = new Car(\"Audi A4\");\ncar.move();\n}\n}\n",[4653,80784,80785,80794,80812,80822,80840,80850,80854],{"__ignoreMap":269},[4173,80786,80787,80789,80792],{"class":4657,"line":4658},[4173,80788,80111],{"class":4784},[4173,80790,80791],{"class":4661},"introduce",[4173,80793,65878],{"class":4784},[4173,80795,80796,80799,80801,80803,80805,80807,80810],{"class":4657,"line":270},[4173,80797,80798],{"class":4784},"Animal dog ",[4173,80800,6387],{"class":4788},[4173,80802,79032],{"class":4788},[4173,80804,80497],{"class":4661},[4173,80806,6390],{"class":4784},[4173,80808,80809],{"class":4669},"\"Bello\"",[4173,80811,55545],{"class":4784},[4173,80813,80814,80817,80820],{"class":4657,"line":1263},[4173,80815,80816],{"class":4784},"dog.",[4173,80818,80819],{"class":4661},"makeSound",[4173,80821,65878],{"class":4784},[4173,80823,80824,80827,80829,80831,80833,80835,80838],{"class":4657,"line":4770},[4173,80825,80826],{"class":4784},"Movable car ",[4173,80828,6387],{"class":4788},[4173,80830,79032],{"class":4788},[4173,80832,80625],{"class":4661},[4173,80834,6390],{"class":4784},[4173,80836,80837],{"class":4669},"\"Audi A4\"",[4173,80839,55545],{"class":4784},[4173,80841,80842,80845,80848],{"class":4657,"line":4775},[4173,80843,80844],{"class":4784},"car.",[4173,80846,80847],{"class":4661},"move",[4173,80849,65878],{"class":4784},[4173,80851,80852],{"class":4657,"line":6320},[4173,80853,7090],{"class":4784},[4173,80855,80856],{"class":4657,"line":6325},[4173,80857,7090],{"class":4784},[16,80859,80861],{"id":80860},"gui-javaxswing","GUI – JavaX.swing",[16,80863,80865],{"id":80864},"komplettes-beispiel-mit-allen-layouts-eventhandling","Komplettes Beispiel mit allen Layouts + Eventhandling",[4647,80867,80869],{"className":78931,"code":80868,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport javax.swing.event.ChangeEvent;\nimport javax.swing.event.ChangeListener;\nimport java.awt.*;\nimport java.awt.event.*;\n\u002F**\n* Umfangreiches Beispiel einer Java Swing GUI, das zeigt:\n* - verschiedene Layouts (BorderLayout, FlowLayout, GridLayout, BoxLayout, GridBagLayout)\n* - Labels mit Schriftarten und fett\n* - Verwendung von JPanel\n* - Instanzvariablen für Komponenten\n* - verschiedene Button-Typen (JButton, JToggleButton, JCheckBox, JRadioButton)\n* - Menü mit JMenuItem\n* - DefaultCloseOperation, setSize, setResizable\n* - Event-Handling (ActionListener, ItemListener, ChangeListener, WindowListener)\n*\u002F\npublic class JavaSwingGUIExample extends JFrame {\n\u002F\u002F --- Instanzvariablen (Sichtbar über die ganze Klasse) ---\nprivate JPanel topPanel;            \u002F\u002F BorderLayout.NORTH\nprivate JPanel centerPanel;         \u002F\u002F BorderLayout.CENTER\nprivate JPanel bottomPanel;         \u002F\u002F BorderLayout.SOUTH\nprivate JLabel statusLabel;         \u002F\u002F zeigt Statusmeldungen\n\u002F\u002F Buttons\nprivate JButton normalButton;\nprivate JButton iconButton;\nprivate JToggleButton toggleButton;\nprivate JCheckBox checkBox;\nprivate JRadioButton radio1, radio2, radio3;\n\u002F\u002F Menü\nprivate JMenuItem exitMenuItem;\npublic JavaSwingGUIExample() {\nsuper(\"Java Swing GUI Beispiel\");\n\u002F\u002F Grundkonfiguration des Frames\nsetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); \u002F\u002F\nDefaultCloseOperation\nsetSize(900, 600);                              \u002F\u002F setSize\nsetResizable(true);                             \u002F\u002F setResizable\nsetLocationRelativeTo(null);                    \u002F\u002F zentrieren\n\u002F\u002F Menü erstellen\ncreateMenuBar();\n\u002F\u002F Komponenten und Layouts aufbauen\nbuildTopPanel();\nbuildCenterPanel();\nbuildBottomPanel();\n\u002F\u002F Haupt-Layout des Frames\nContainer cp = getContentPane();\ncp.setLayout(new BorderLayout(8, 8));\ncp.add(topPanel, BorderLayout.NORTH);\ncp.add(centerPanel, BorderLayout.CENTER);\ncp.add(bottomPanel, BorderLayout.SOUTH);\n\u002F\u002F WindowListener (Event handling auf Fenster-Ebene)\naddWindowListener(new WindowAdapter() {\n@Override\npublic void windowClosing(WindowEvent e) {\nSystem.out.println(\"Fenster wird geschlossen\");\n}\n@Override\npublic void windowOpened(WindowEvent e) {\nstatusLabel.setText(\"Anwendung gestartet\");\n}\n});\n}\nprivate void createMenuBar() {\nJMenuBar menuBar = new JMenuBar();\nJMenu fileMenu = new JMenu(\"Datei\");\nexitMenuItem = new JMenuItem(\"Beenden\");\nexitMenuItem.addActionListener(e -> System.exit(0));\nfileMenu.add(exitMenuItem);\nmenuBar.add(fileMenu);\nsetJMenuBar(menuBar);\n}\nprivate void buildTopPanel() {\ntopPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); \u002F\u002F FlowLayout\n\u002F\u002F Label mit verschiedener Schriftart und fett\nJLabel titleLabel = new JLabel(\"Java Swing GUI - Demo\");\ntitleLabel.setFont(new Font(\"Serif\", Font.BOLD, 24)); \u002F\u002F fett\nJLabel subtitle = new JLabel(\"(verschiedene Layouts, Buttons &\nEvents)\");\nsubtitle.setFont(new Font(\"SansSerif\", Font.ITALIC, 12));\ntopPanel.add(titleLabel);\ntopPanel.add(Box.createHorizontalStrut(10));\ntopPanel.add(subtitle);\n}\nprivate void buildCenterPanel() {\ncenterPanel = new JPanel();\ncenterPanel.setLayout(new GridLayout(1, 2, 8, 8)); \u002F\u002F GridLayout\n\u002F\u002F Linke Seite: verschiedene Buttons in einem Grid\nJPanel buttonPanel = new JPanel();\nbuttonPanel.setBorder(BorderFactory.createTitledBorder(\"Buttons\"));\nbuttonPanel.setLayout(new GridLayout(6, 1, 4, 4));\n\u002F\u002F normaler JButton mit ActionListener\nnormalButton = new JButton(\"Normaler Button\");\nnormalButton.addActionListener(e -> onNormalButton());\n\u002F\u002F JButton mit Icon (wenn Icon nicht gefunden, geht es trotzdem)\nIcon infoIcon = UIManager.getIcon(\"OptionPane.informationIcon\");\niconButton = new JButton(\"Icon Button\", infoIcon);\niconButton.setToolTipText(\"Button mit Icon\");\niconButton.addActionListener(e -> statusLabel.setText(\"Icon-Button\ngedrückt\"));\n\u002F\u002F JToggleButton\ntoggleButton = new JToggleButton(\"Toggle\");\ntoggleButton.addItemListener(e -> {\nif (e.getStateChange() == ItemEvent.SELECTED)\nstatusLabel.setText(\"Toggle: AN\");\nelse\nstatusLabel.setText(\"Toggle: AUS\");\n});\n\u002F\u002F JCheckBox\ncheckBox = new JCheckBox(\"Resizability aktivieren\");\ncheckBox.setSelected(true);\ncheckBox.addItemListener(e -> setResizable(checkBox.isSelected()));\n\u002F\u002F JRadioButtons in einer ButtonGroup\nJPanel radios = new JPanel(new FlowLayout(FlowLayout.LEFT));\nradios.setBorder(BorderFactory.createTitledBorder(\"Radio-Gruppe\"));\nradio1 = new JRadioButton(\"Option 1\");\nradio2 = new JRadioButton(\"Option 2\");\nradio3 = new JRadioButton(\"Option 3\");\nButtonGroup bg = new ButtonGroup();\nbg.add(radio1); bg.add(radio2); bg.add(radio3);\nradio1.addItemListener(e -> { if\n(e.getStateChange()==ItemEvent.SELECTED) statusLabel.setText(\"Option 1\ngewählt\"); });\nradio2.addItemListener(e -> { if\n(e.getStateChange()==ItemEvent.SELECTED) statusLabel.setText(\"Option 2\ngewählt\"); });\nradio3.addItemListener(e -> { if\n(e.getStateChange()==ItemEvent.SELECTED) statusLabel.setText(\"Option 3\ngewählt\"); });\nradios.add(radio1); radios.add(radio2); radios.add(radio3);\n\u002F\u002F JButton mit AbstractAction (zeigt nochmal eine andere Art, Events\nzu verarbeiten)\nAction specialAction = new AbstractAction(\"Special Action\") {\n@Override\npublic void actionPerformed(ActionEvent e) {\nstatusLabel.setText(\"Special Action ausgeführt\");\n}\n};\nJButton actionButton = new JButton(specialAction);\n\u002F\u002F ChangeListener Beispiel (für Slider -> hier als Demo ein JSlider)\nJSlider slider = new JSlider(0, 100, 50);\nslider.addChangeListener(new ChangeListener() {\n@Override\npublic void stateChanged(ChangeEvent e) {\nstatusLabel.setText(\"Slider: \" + slider.getValue());\n}\n});\n\u002F\u002F Komponenten in buttonPanel\nbuttonPanel.add(normalButton);\nbuttonPanel.add(iconButton);\nbuttonPanel.add(toggleButton);\nbuttonPanel.add(checkBox);\nbuttonPanel.add(actionButton);\nbuttonPanel.add(slider);\n\u002F\u002F Rechte Seite: Demonstration verschiedener Layouts in JPanels\nJPanel layoutDemo = new JPanel();\nlayoutDemo.setBorder(BorderFactory.createTitledBorder(\"Layout-\nDemos\"));\nlayoutDemo.setLayout(new BoxLayout(layoutDemo, BoxLayout.Y_AXIS)); \u002F\u002F\nBoxLayout\n\u002F\u002F FlowLayout Beispiel\nJPanel flow = new JPanel(new FlowLayout(FlowLayout.LEFT));\nflow.setBorder(BorderFactory.createTitledBorder(\"FlowLayout\"));\nflow.add(new JLabel(\"A\")); flow.add(new JLabel(\"B\")); flow.add(new\nJLabel(\"C\"));\n\u002F\u002F GridLayout Beispiel\nJPanel grid = new JPanel(new GridLayout(2, 2, 4, 4));\ngrid.setBorder(BorderFactory.createTitledBorder(\"GridLayout 2x2\"));\ngrid.add(new JLabel(\"1\")); grid.add(new JLabel(\"2\")); grid.add(new\nJLabel(\"3\")); grid.add(new JLabel(\"4\"));\n\u002F\u002F GridBagLayout Beispiel (flexibel)\nJPanel gb = new JPanel(new GridBagLayout());\ngb.setBorder(BorderFactory.createTitledBorder(\"GridBagLayout\"));\nGridBagConstraints c = new GridBagConstraints();\nc.insets = new Insets(2,2,2,2);\nc.gridx = 0; c.gridy = 0; gb.add(new JLabel(\"GBA-Label 1:\"), c);\nc.gridx = 1; c.gridy = 0; c.weightx = 1.0; c.fill =\nGridBagConstraints.HORIZONTAL; gb.add(new JTextField(\"TextField\"), c);\nlayoutDemo.add(flow);\nlayoutDemo.add(grid);\nlayoutDemo.add(gb);\ncenterPanel.add(buttonPanel);\ncenterPanel.add(layoutDemo);\n}\nprivate void buildBottomPanel() {\nbottomPanel = new JPanel(new BorderLayout());\nstatusLabel = new JLabel(\"Bereit\");\nstatusLabel.setFont(new Font(\"Dialog\", Font.BOLD, 14)); \u002F\u002F fett\nbottomPanel.add(statusLabel, BorderLayout.WEST);\n\u002F\u002F Beispiel für einen kleinen Input-Bereich\nJPanel inputPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\nJTextField input = new JTextField(20);\nJButton send = new JButton(\"Senden\");\nsend.addActionListener(e -> statusLabel.setText(\"Gesendet: \" +\ninput.getText()));\u002F\u002F Dies nicht benutzen\ninputPanel.add(input);\ninputPanel.add(send);\nbottomPanel.add(inputPanel, BorderLayout.EAST);\n}\nprivate void onNormalButton() {\n\u002F\u002F Beispiel: Modal-Dialog anzeigen\nJOptionPane.showMessageDialog(this, \"Der normale Button wurde\ngedrückt\", \"Info\", JOptionPane.INFORMATION_MESSAGE);\nstatusLabel.setText(\"Normaler Button gedrückt\");\n}\npublic static void main(String[] args) {\n\u002F\u002F GUI muss im EDT (Event Dispatch Thread) gestartet werden\nSwingUtilities.invokeLater(() -> {\nJavaSwingGUIExample frame = new JavaSwingGUIExample();\nframe.setVisible(true);\n});\n}\n}\n",[4653,80870,80871,80882,80889,80896,80907,80918,80923,80928,80933,80938,80943,80948,80953,80958,80963,80968,80973,80989,80994,81004,81014,81024,81034,81039,81046,81053,81060,81067,81074,81079,81086,81094,81105,81110,81120,81125,81145,81160,81176,81181,81188,81193,81200,81207,81214,81219,81231,81257,81266,81275,81284,81289,81303,81309,81325,81338,81342,81348,81363,81378,81382,81387,81391,81402,81416,81435,81454,81479,81489,81499,81507,81511,81522,81547,81552,81571,81602,81618,81625,81650,81660,81679,81688,81692,81703,81716,81751,81756,81769,81790,81820,81825,81844,81861,81866,81886,81905,81920,81940,81947,81952,81971,81985,82002,82015,82019,82032,82036,82041,82060,82074,82096,82101,82121,82139,82158,82176,82194,82208,82228,82245,82267,82275,82290,82309,82315,82330,82349,82355,82373,82378,82383,82402,82408,82424,82437,82441,82445,82459,82464,82491,82508,82514,82530,82551,82555,82559,82564,82573,82582,82591,82600,82609,82618,82623,82636,82652,82659,82677,82682,82687,82706,82724,82766,82778,82783,82818,82836,82877,82903,82908,82928,82946,82960,82990,83025,83052,83073,83082,83091,83100,83109,83118,83122,83133,83152,83170,83196,83206,83211,83231,83249,83267,83289,83303,83313,83322,83331,83335,83345,83350,83367,83379,83392,83396,83416,83421,83436,83449,83463,83467,83471],{"__ignoreMap":269},[4173,80872,80873,80875,80878,80880],{"class":4657,"line":4658},[4173,80874,79019],{"class":4788},[4173,80876,80877],{"class":4784}," javax.swing.",[4173,80879,6328],{"class":4665},[4173,80881,55559],{"class":4784},[4173,80883,80884,80886],{"class":4657,"line":270},[4173,80885,79019],{"class":4788},[4173,80887,80888],{"class":4784}," javax.swing.event.ChangeEvent;\n",[4173,80890,80891,80893],{"class":4657,"line":1263},[4173,80892,79019],{"class":4788},[4173,80894,80895],{"class":4784}," javax.swing.event.ChangeListener;\n",[4173,80897,80898,80900,80903,80905],{"class":4657,"line":4770},[4173,80899,79019],{"class":4788},[4173,80901,80902],{"class":4784}," java.awt.",[4173,80904,6328],{"class":4665},[4173,80906,55559],{"class":4784},[4173,80908,80909,80911,80914,80916],{"class":4657,"line":4775},[4173,80910,79019],{"class":4788},[4173,80912,80913],{"class":4784}," java.awt.event.",[4173,80915,6328],{"class":4665},[4173,80917,55559],{"class":4784},[4173,80919,80920],{"class":4657,"line":6320},[4173,80921,80922],{"class":4766},"\u002F**\n",[4173,80924,80925],{"class":4657,"line":6325},[4173,80926,80927],{"class":4766},"* Umfangreiches Beispiel einer Java Swing GUI, das zeigt:\n",[4173,80929,80930],{"class":4657,"line":6343},[4173,80931,80932],{"class":4766},"* - verschiedene Layouts (BorderLayout, FlowLayout, GridLayout, BoxLayout, GridBagLayout)\n",[4173,80934,80935],{"class":4657,"line":6348},[4173,80936,80937],{"class":4766},"* - Labels mit Schriftarten und fett\n",[4173,80939,80940],{"class":4657,"line":6457},[4173,80941,80942],{"class":4766},"* - Verwendung von JPanel\n",[4173,80944,80945],{"class":4657,"line":6462},[4173,80946,80947],{"class":4766},"* - Instanzvariablen für Komponenten\n",[4173,80949,80950],{"class":4657,"line":6468},[4173,80951,80952],{"class":4766},"* - verschiedene Button-Typen (JButton, JToggleButton, JCheckBox, JRadioButton)\n",[4173,80954,80955],{"class":4657,"line":6473},[4173,80956,80957],{"class":4766},"* - Menü mit JMenuItem\n",[4173,80959,80960],{"class":4657,"line":6479},[4173,80961,80962],{"class":4766},"* - DefaultCloseOperation, setSize, setResizable\n",[4173,80964,80965],{"class":4657,"line":6503},[4173,80966,80967],{"class":4766},"* - Event-Handling (ActionListener, ItemListener, ChangeListener, WindowListener)\n",[4173,80969,80970],{"class":4657,"line":6516},[4173,80971,80972],{"class":4766},"*\u002F\n",[4173,80974,80975,80977,80979,80982,80984,80987],{"class":4657,"line":6971},[4173,80976,79889],{"class":4788},[4173,80978,80062],{"class":4788},[4173,80980,80981],{"class":4661}," JavaSwingGUIExample",[4173,80983,80500],{"class":4788},[4173,80985,80986],{"class":4661}," JFrame",[4173,80988,51614],{"class":4784},[4173,80990,80991],{"class":4657,"line":10649},[4173,80992,80993],{"class":4766},"\u002F\u002F --- Instanzvariablen (Sichtbar über die ganze Klasse) ---\n",[4173,80995,80996,80998,81001],{"class":4657,"line":10654},[4173,80997,80152],{"class":4788},[4173,80999,81000],{"class":4784}," JPanel topPanel;            ",[4173,81002,81003],{"class":4766},"\u002F\u002F BorderLayout.NORTH\n",[4173,81005,81006,81008,81011],{"class":4657,"line":10659},[4173,81007,80152],{"class":4788},[4173,81009,81010],{"class":4784}," JPanel centerPanel;         ",[4173,81012,81013],{"class":4766},"\u002F\u002F BorderLayout.CENTER\n",[4173,81015,81016,81018,81021],{"class":4657,"line":10664},[4173,81017,80152],{"class":4788},[4173,81019,81020],{"class":4784}," JPanel bottomPanel;         ",[4173,81022,81023],{"class":4766},"\u002F\u002F BorderLayout.SOUTH\n",[4173,81025,81026,81028,81031],{"class":4657,"line":10676},[4173,81027,80152],{"class":4788},[4173,81029,81030],{"class":4784}," JLabel statusLabel;         ",[4173,81032,81033],{"class":4766},"\u002F\u002F zeigt Statusmeldungen\n",[4173,81035,81036],{"class":4657,"line":10681},[4173,81037,81038],{"class":4766},"\u002F\u002F Buttons\n",[4173,81040,81041,81043],{"class":4657,"line":10702},[4173,81042,80152],{"class":4788},[4173,81044,81045],{"class":4784}," JButton normalButton;\n",[4173,81047,81048,81050],{"class":4657,"line":10707},[4173,81049,80152],{"class":4788},[4173,81051,81052],{"class":4784}," JButton iconButton;\n",[4173,81054,81055,81057],{"class":4657,"line":10712},[4173,81056,80152],{"class":4788},[4173,81058,81059],{"class":4784}," JToggleButton toggleButton;\n",[4173,81061,81062,81064],{"class":4657,"line":10717},[4173,81063,80152],{"class":4788},[4173,81065,81066],{"class":4784}," JCheckBox checkBox;\n",[4173,81068,81069,81071],{"class":4657,"line":10727},[4173,81070,80152],{"class":4788},[4173,81072,81073],{"class":4784}," JRadioButton radio1, radio2, radio3;\n",[4173,81075,81076],{"class":4657,"line":10732},[4173,81077,81078],{"class":4766},"\u002F\u002F Menü\n",[4173,81080,81081,81083],{"class":4657,"line":10737},[4173,81082,80152],{"class":4788},[4173,81084,81085],{"class":4784}," JMenuItem exitMenuItem;\n",[4173,81087,81088,81090,81092],{"class":4657,"line":10742},[4173,81089,79889],{"class":4788},[4173,81091,80981],{"class":4661},[4173,81093,7062],{"class":4784},[4173,81095,81096,81098,81100,81103],{"class":4657,"line":10752},[4173,81097,80521],{"class":4665},[4173,81099,6390],{"class":4784},[4173,81101,81102],{"class":4669},"\"Java Swing GUI Beispiel\"",[4173,81104,55545],{"class":4784},[4173,81106,81107],{"class":4657,"line":10757},[4173,81108,81109],{"class":4766},"\u002F\u002F Grundkonfiguration des Frames\n",[4173,81111,81112,81115,81118],{"class":4657,"line":10762},[4173,81113,81114],{"class":4661},"setDefaultCloseOperation",[4173,81116,81117],{"class":4784},"(JFrame.EXIT_ON_CLOSE); ",[4173,81119,64632],{"class":4766},[4173,81121,81122],{"class":4657,"line":10767},[4173,81123,81124],{"class":4784},"DefaultCloseOperation\n",[4173,81126,81127,81130,81132,81135,81137,81139,81142],{"class":4657,"line":10772},[4173,81128,81129],{"class":4661},"setSize",[4173,81131,6390],{"class":4784},[4173,81133,81134],{"class":4665},"900",[4173,81136,8629],{"class":4784},[4173,81138,14586],{"class":4665},[4173,81140,81141],{"class":4784},");                              ",[4173,81143,81144],{"class":4766},"\u002F\u002F setSize\n",[4173,81146,81147,81150,81152,81154,81157],{"class":4657,"line":10777},[4173,81148,81149],{"class":4661},"setResizable",[4173,81151,6390],{"class":4784},[4173,81153,45190],{"class":4665},[4173,81155,81156],{"class":4784},");                             ",[4173,81158,81159],{"class":4766},"\u002F\u002F setResizable\n",[4173,81161,81162,81165,81167,81170,81173],{"class":4657,"line":10782},[4173,81163,81164],{"class":4661},"setLocationRelativeTo",[4173,81166,6390],{"class":4784},[4173,81168,81169],{"class":4665},"null",[4173,81171,81172],{"class":4784},");                    ",[4173,81174,81175],{"class":4766},"\u002F\u002F zentrieren\n",[4173,81177,81178],{"class":4657,"line":10787},[4173,81179,81180],{"class":4766},"\u002F\u002F Menü erstellen\n",[4173,81182,81183,81186],{"class":4657,"line":10800},[4173,81184,81185],{"class":4661},"createMenuBar",[4173,81187,65878],{"class":4784},[4173,81189,81190],{"class":4657,"line":10805},[4173,81191,81192],{"class":4766},"\u002F\u002F Komponenten und Layouts aufbauen\n",[4173,81194,81195,81198],{"class":4657,"line":10818},[4173,81196,81197],{"class":4661},"buildTopPanel",[4173,81199,65878],{"class":4784},[4173,81201,81202,81205],{"class":4657,"line":10823},[4173,81203,81204],{"class":4661},"buildCenterPanel",[4173,81206,65878],{"class":4784},[4173,81208,81209,81212],{"class":4657,"line":10836},[4173,81210,81211],{"class":4661},"buildBottomPanel",[4173,81213,65878],{"class":4784},[4173,81215,81216],{"class":4657,"line":10841},[4173,81217,81218],{"class":4766},"\u002F\u002F Haupt-Layout des Frames\n",[4173,81220,81221,81224,81226,81229],{"class":4657,"line":10846},[4173,81222,81223],{"class":4784},"Container cp ",[4173,81225,6387],{"class":4788},[4173,81227,81228],{"class":4661}," getContentPane",[4173,81230,65878],{"class":4784},[4173,81232,81233,81236,81239,81241,81244,81247,81249,81251,81253,81255],{"class":4657,"line":10851},[4173,81234,81235],{"class":4784},"cp.",[4173,81237,81238],{"class":4661},"setLayout",[4173,81240,6390],{"class":4784},[4173,81242,81243],{"class":4788},"new",[4173,81245,81246],{"class":4661}," BorderLayout",[4173,81248,6390],{"class":4784},[4173,81250,16286],{"class":4665},[4173,81252,8629],{"class":4784},[4173,81254,16286],{"class":4665},[4173,81256,66047],{"class":4784},[4173,81258,81259,81261,81263],{"class":4657,"line":10867},[4173,81260,81235],{"class":4784},[4173,81262,79955],{"class":4661},[4173,81264,81265],{"class":4784},"(topPanel, BorderLayout.NORTH);\n",[4173,81267,81268,81270,81272],{"class":4657,"line":10872},[4173,81269,81235],{"class":4784},[4173,81271,79955],{"class":4661},[4173,81273,81274],{"class":4784},"(centerPanel, BorderLayout.CENTER);\n",[4173,81276,81277,81279,81281],{"class":4657,"line":10877},[4173,81278,81235],{"class":4784},[4173,81280,79955],{"class":4661},[4173,81282,81283],{"class":4784},"(bottomPanel, BorderLayout.SOUTH);\n",[4173,81285,81286],{"class":4657,"line":10882},[4173,81287,81288],{"class":4766},"\u002F\u002F WindowListener (Event handling auf Fenster-Ebene)\n",[4173,81290,81291,81294,81296,81298,81301],{"class":4657,"line":10890},[4173,81292,81293],{"class":4661},"addWindowListener",[4173,81295,6390],{"class":4784},[4173,81297,81243],{"class":4788},[4173,81299,81300],{"class":4661}," WindowAdapter",[4173,81302,7062],{"class":4784},[4173,81304,81305,81307],{"class":4657,"line":10895},[4173,81306,11615],{"class":4784},[4173,81308,80535],{"class":4788},[4173,81310,81311,81313,81315,81318,81321,81323],{"class":4657,"line":10904},[4173,81312,79889],{"class":4788},[4173,81314,79934],{"class":4788},[4173,81316,81317],{"class":4661}," windowClosing",[4173,81319,81320],{"class":4784},"(WindowEvent ",[4173,81322,20602],{"class":7074},[4173,81324,56319],{"class":4784},[4173,81326,81327,81329,81331,81333,81336],{"class":4657,"line":10909},[4173,81328,79043],{"class":4784},[4173,81330,79074],{"class":4661},[4173,81332,6390],{"class":4784},[4173,81334,81335],{"class":4669},"\"Fenster wird geschlossen\"",[4173,81337,55545],{"class":4784},[4173,81339,81340],{"class":4657,"line":10914},[4173,81341,7090],{"class":4784},[4173,81343,81344,81346],{"class":4657,"line":10919},[4173,81345,11615],{"class":4784},[4173,81347,80535],{"class":4788},[4173,81349,81350,81352,81354,81357,81359,81361],{"class":4657,"line":10933},[4173,81351,79889],{"class":4788},[4173,81353,79934],{"class":4788},[4173,81355,81356],{"class":4661}," windowOpened",[4173,81358,81320],{"class":4784},[4173,81360,20602],{"class":7074},[4173,81362,56319],{"class":4784},[4173,81364,81365,81368,81371,81373,81376],{"class":4657,"line":10938},[4173,81366,81367],{"class":4784},"statusLabel.",[4173,81369,81370],{"class":4661},"setText",[4173,81372,6390],{"class":4784},[4173,81374,81375],{"class":4669},"\"Anwendung gestartet\"",[4173,81377,55545],{"class":4784},[4173,81379,81380],{"class":4657,"line":10959},[4173,81381,7090],{"class":4784},[4173,81383,81384],{"class":4657,"line":10964},[4173,81385,81386],{"class":4784},"});\n",[4173,81388,81389],{"class":4657,"line":10969},[4173,81390,7090],{"class":4784},[4173,81392,81393,81395,81397,81400],{"class":4657,"line":10974},[4173,81394,80152],{"class":4788},[4173,81396,79934],{"class":4788},[4173,81398,81399],{"class":4661}," createMenuBar",[4173,81401,7062],{"class":4784},[4173,81403,81404,81407,81409,81411,81414],{"class":4657,"line":10982},[4173,81405,81406],{"class":4784},"JMenuBar menuBar ",[4173,81408,6387],{"class":4788},[4173,81410,79032],{"class":4788},[4173,81412,81413],{"class":4661}," JMenuBar",[4173,81415,65878],{"class":4784},[4173,81417,81418,81421,81423,81425,81428,81430,81433],{"class":4657,"line":10987},[4173,81419,81420],{"class":4784},"JMenu fileMenu ",[4173,81422,6387],{"class":4788},[4173,81424,79032],{"class":4788},[4173,81426,81427],{"class":4661}," JMenu",[4173,81429,6390],{"class":4784},[4173,81431,81432],{"class":4669},"\"Datei\"",[4173,81434,55545],{"class":4784},[4173,81436,81437,81440,81442,81444,81447,81449,81452],{"class":4657,"line":10995},[4173,81438,81439],{"class":4784},"exitMenuItem ",[4173,81441,6387],{"class":4788},[4173,81443,79032],{"class":4788},[4173,81445,81446],{"class":4661}," JMenuItem",[4173,81448,6390],{"class":4784},[4173,81450,81451],{"class":4669},"\"Beenden\"",[4173,81453,55545],{"class":4784},[4173,81455,81456,81459,81462,81465,81468,81471,81473,81475,81477],{"class":4657,"line":11000},[4173,81457,81458],{"class":4784},"exitMenuItem.",[4173,81460,81461],{"class":4661},"addActionListener",[4173,81463,81464],{"class":4784},"(e ",[4173,81466,81467],{"class":4788},"->",[4173,81469,81470],{"class":4784}," System.",[4173,81472,10898],{"class":4661},[4173,81474,6390],{"class":4784},[4173,81476,12749],{"class":4665},[4173,81478,66047],{"class":4784},[4173,81480,81481,81484,81486],{"class":4657,"line":11008},[4173,81482,81483],{"class":4784},"fileMenu.",[4173,81485,79955],{"class":4661},[4173,81487,81488],{"class":4784},"(exitMenuItem);\n",[4173,81490,81491,81494,81496],{"class":4657,"line":11013},[4173,81492,81493],{"class":4784},"menuBar.",[4173,81495,79955],{"class":4661},[4173,81497,81498],{"class":4784},"(fileMenu);\n",[4173,81500,81501,81504],{"class":4657,"line":11021},[4173,81502,81503],{"class":4661},"setJMenuBar",[4173,81505,81506],{"class":4784},"(menuBar);\n",[4173,81508,81509],{"class":4657,"line":11026},[4173,81510,7090],{"class":4784},[4173,81512,81513,81515,81517,81520],{"class":4657,"line":11034},[4173,81514,80152],{"class":4788},[4173,81516,79934],{"class":4788},[4173,81518,81519],{"class":4661}," buildTopPanel",[4173,81521,7062],{"class":4784},[4173,81523,81524,81527,81529,81531,81534,81536,81538,81541,81544],{"class":4657,"line":11039},[4173,81525,81526],{"class":4784},"topPanel ",[4173,81528,6387],{"class":4788},[4173,81530,79032],{"class":4788},[4173,81532,81533],{"class":4661}," JPanel",[4173,81535,6390],{"class":4784},[4173,81537,81243],{"class":4788},[4173,81539,81540],{"class":4661}," FlowLayout",[4173,81542,81543],{"class":4784},"(FlowLayout.LEFT)); ",[4173,81545,81546],{"class":4766},"\u002F\u002F FlowLayout\n",[4173,81548,81549],{"class":4657,"line":11048},[4173,81550,81551],{"class":4766},"\u002F\u002F Label mit verschiedener Schriftart und fett\n",[4173,81553,81554,81557,81559,81561,81564,81566,81569],{"class":4657,"line":11053},[4173,81555,81556],{"class":4784},"JLabel titleLabel ",[4173,81558,6387],{"class":4788},[4173,81560,79032],{"class":4788},[4173,81562,81563],{"class":4661}," JLabel",[4173,81565,6390],{"class":4784},[4173,81567,81568],{"class":4669},"\"Java Swing GUI - Demo\"",[4173,81570,55545],{"class":4784},[4173,81572,81573,81576,81579,81581,81583,81586,81588,81591,81594,81597,81599],{"class":4657,"line":21369},[4173,81574,81575],{"class":4784},"titleLabel.",[4173,81577,81578],{"class":4661},"setFont",[4173,81580,6390],{"class":4784},[4173,81582,81243],{"class":4788},[4173,81584,81585],{"class":4661}," Font",[4173,81587,6390],{"class":4784},[4173,81589,81590],{"class":4669},"\"Serif\"",[4173,81592,81593],{"class":4784},", Font.BOLD, ",[4173,81595,81596],{"class":4665},"24",[4173,81598,48385],{"class":4784},[4173,81600,81601],{"class":4766},"\u002F\u002F fett\n",[4173,81603,81604,81607,81609,81611,81613,81615],{"class":4657,"line":21374},[4173,81605,81606],{"class":4784},"JLabel subtitle ",[4173,81608,6387],{"class":4788},[4173,81610,79032],{"class":4788},[4173,81612,81563],{"class":4661},[4173,81614,6390],{"class":4784},[4173,81616,81617],{"class":4669},"\"(verschiedene Layouts, Buttons &\n",[4173,81619,81620,81623],{"class":4657,"line":21380},[4173,81621,81622],{"class":4669},"Events)\"",[4173,81624,55545],{"class":4784},[4173,81626,81627,81630,81632,81634,81636,81638,81640,81643,81646,81648],{"class":4657,"line":21385},[4173,81628,81629],{"class":4784},"subtitle.",[4173,81631,81578],{"class":4661},[4173,81633,6390],{"class":4784},[4173,81635,81243],{"class":4788},[4173,81637,81585],{"class":4661},[4173,81639,6390],{"class":4784},[4173,81641,81642],{"class":4669},"\"SansSerif\"",[4173,81644,81645],{"class":4784},", Font.ITALIC, ",[4173,81647,36010],{"class":4665},[4173,81649,66047],{"class":4784},[4173,81651,81652,81655,81657],{"class":4657,"line":21397},[4173,81653,81654],{"class":4784},"topPanel.",[4173,81656,79955],{"class":4661},[4173,81658,81659],{"class":4784},"(titleLabel);\n",[4173,81661,81662,81664,81666,81669,81672,81674,81677],{"class":4657,"line":21402},[4173,81663,81654],{"class":4784},[4173,81665,79955],{"class":4661},[4173,81667,81668],{"class":4784},"(Box.",[4173,81670,81671],{"class":4661},"createHorizontalStrut",[4173,81673,6390],{"class":4784},[4173,81675,81676],{"class":4665},"10",[4173,81678,66047],{"class":4784},[4173,81680,81681,81683,81685],{"class":4657,"line":21408},[4173,81682,81654],{"class":4784},[4173,81684,79955],{"class":4661},[4173,81686,81687],{"class":4784},"(subtitle);\n",[4173,81689,81690],{"class":4657,"line":21413},[4173,81691,7090],{"class":4784},[4173,81693,81694,81696,81698,81701],{"class":4657,"line":21425},[4173,81695,80152],{"class":4788},[4173,81697,79934],{"class":4788},[4173,81699,81700],{"class":4661}," buildCenterPanel",[4173,81702,7062],{"class":4784},[4173,81704,81705,81708,81710,81712,81714],{"class":4657,"line":21430},[4173,81706,81707],{"class":4784},"centerPanel ",[4173,81709,6387],{"class":4788},[4173,81711,79032],{"class":4788},[4173,81713,81533],{"class":4661},[4173,81715,65878],{"class":4784},[4173,81717,81718,81721,81723,81725,81727,81730,81732,81734,81736,81738,81740,81742,81744,81746,81748],{"class":4657,"line":21436},[4173,81719,81720],{"class":4784},"centerPanel.",[4173,81722,81238],{"class":4661},[4173,81724,6390],{"class":4784},[4173,81726,81243],{"class":4788},[4173,81728,81729],{"class":4661}," GridLayout",[4173,81731,6390],{"class":4784},[4173,81733,14223],{"class":4665},[4173,81735,8629],{"class":4784},[4173,81737,14206],{"class":4665},[4173,81739,8629],{"class":4784},[4173,81741,16286],{"class":4665},[4173,81743,8629],{"class":4784},[4173,81745,16286],{"class":4665},[4173,81747,48385],{"class":4784},[4173,81749,81750],{"class":4766},"\u002F\u002F GridLayout\n",[4173,81752,81753],{"class":4657,"line":21441},[4173,81754,81755],{"class":4766},"\u002F\u002F Linke Seite: verschiedene Buttons in einem Grid\n",[4173,81757,81758,81761,81763,81765,81767],{"class":4657,"line":21453},[4173,81759,81760],{"class":4784},"JPanel buttonPanel ",[4173,81762,6387],{"class":4788},[4173,81764,79032],{"class":4788},[4173,81766,81533],{"class":4661},[4173,81768,65878],{"class":4784},[4173,81770,81771,81774,81777,81780,81783,81785,81788],{"class":4657,"line":21458},[4173,81772,81773],{"class":4784},"buttonPanel.",[4173,81775,81776],{"class":4661},"setBorder",[4173,81778,81779],{"class":4784},"(BorderFactory.",[4173,81781,81782],{"class":4661},"createTitledBorder",[4173,81784,6390],{"class":4784},[4173,81786,81787],{"class":4669},"\"Buttons\"",[4173,81789,66047],{"class":4784},[4173,81791,81792,81794,81796,81798,81800,81802,81804,81806,81808,81810,81812,81814,81816,81818],{"class":4657,"line":21464},[4173,81793,81773],{"class":4784},[4173,81795,81238],{"class":4661},[4173,81797,6390],{"class":4784},[4173,81799,81243],{"class":4788},[4173,81801,81729],{"class":4661},[4173,81803,6390],{"class":4784},[4173,81805,14278],{"class":4665},[4173,81807,8629],{"class":4784},[4173,81809,14223],{"class":4665},[4173,81811,8629],{"class":4784},[4173,81813,2894],{"class":4665},[4173,81815,8629],{"class":4784},[4173,81817,2894],{"class":4665},[4173,81819,66047],{"class":4784},[4173,81821,81822],{"class":4657,"line":21469},[4173,81823,81824],{"class":4766},"\u002F\u002F normaler JButton mit ActionListener\n",[4173,81826,81827,81830,81832,81834,81837,81839,81842],{"class":4657,"line":21481},[4173,81828,81829],{"class":4784},"normalButton ",[4173,81831,6387],{"class":4788},[4173,81833,79032],{"class":4788},[4173,81835,81836],{"class":4661}," JButton",[4173,81838,6390],{"class":4784},[4173,81840,81841],{"class":4669},"\"Normaler Button\"",[4173,81843,55545],{"class":4784},[4173,81845,81846,81849,81851,81853,81855,81858],{"class":4657,"line":21486},[4173,81847,81848],{"class":4784},"normalButton.",[4173,81850,81461],{"class":4661},[4173,81852,81464],{"class":4784},[4173,81854,81467],{"class":4788},[4173,81856,81857],{"class":4661}," onNormalButton",[4173,81859,81860],{"class":4784},"());\n",[4173,81862,81863],{"class":4657,"line":21492},[4173,81864,81865],{"class":4766},"\u002F\u002F JButton mit Icon (wenn Icon nicht gefunden, geht es trotzdem)\n",[4173,81867,81868,81871,81873,81876,81879,81881,81884],{"class":4657,"line":21497},[4173,81869,81870],{"class":4784},"Icon infoIcon ",[4173,81872,6387],{"class":4788},[4173,81874,81875],{"class":4784}," UIManager.",[4173,81877,81878],{"class":4661},"getIcon",[4173,81880,6390],{"class":4784},[4173,81882,81883],{"class":4669},"\"OptionPane.informationIcon\"",[4173,81885,55545],{"class":4784},[4173,81887,81888,81891,81893,81895,81897,81899,81902],{"class":4657,"line":21503},[4173,81889,81890],{"class":4784},"iconButton ",[4173,81892,6387],{"class":4788},[4173,81894,79032],{"class":4788},[4173,81896,81836],{"class":4661},[4173,81898,6390],{"class":4784},[4173,81900,81901],{"class":4669},"\"Icon Button\"",[4173,81903,81904],{"class":4784},", infoIcon);\n",[4173,81906,81907,81910,81913,81915,81918],{"class":4657,"line":21508},[4173,81908,81909],{"class":4784},"iconButton.",[4173,81911,81912],{"class":4661},"setToolTipText",[4173,81914,6390],{"class":4784},[4173,81916,81917],{"class":4669},"\"Button mit Icon\"",[4173,81919,55545],{"class":4784},[4173,81921,81922,81924,81926,81928,81930,81933,81935,81937],{"class":4657,"line":21518},[4173,81923,81909],{"class":4784},[4173,81925,81461],{"class":4661},[4173,81927,81464],{"class":4784},[4173,81929,81467],{"class":4788},[4173,81931,81932],{"class":4784}," statusLabel.",[4173,81934,81370],{"class":4661},[4173,81936,6390],{"class":4784},[4173,81938,81939],{"class":4669},"\"Icon-Button\n",[4173,81941,81942,81945],{"class":4657,"line":21523},[4173,81943,81944],{"class":4669},"gedrückt\"",[4173,81946,66047],{"class":4784},[4173,81948,81949],{"class":4657,"line":21529},[4173,81950,81951],{"class":4766},"\u002F\u002F JToggleButton\n",[4173,81953,81954,81957,81959,81961,81964,81966,81969],{"class":4657,"line":21534},[4173,81955,81956],{"class":4784},"toggleButton ",[4173,81958,6387],{"class":4788},[4173,81960,79032],{"class":4788},[4173,81962,81963],{"class":4661}," JToggleButton",[4173,81965,6390],{"class":4784},[4173,81967,81968],{"class":4669},"\"Toggle\"",[4173,81970,55545],{"class":4784},[4173,81972,81973,81976,81979,81981,81983],{"class":4657,"line":21544},[4173,81974,81975],{"class":4784},"toggleButton.",[4173,81977,81978],{"class":4661},"addItemListener",[4173,81980,81464],{"class":4784},[4173,81982,81467],{"class":4788},[4173,81984,51614],{"class":4784},[4173,81986,81987,81989,81992,81995,81997,81999],{"class":4657,"line":21549},[4173,81988,6201],{"class":4788},[4173,81990,81991],{"class":4784}," (e.",[4173,81993,81994],{"class":4661},"getStateChange",[4173,81996,80558],{"class":4784},[4173,81998,19453],{"class":4788},[4173,82000,82001],{"class":4784}," ItemEvent.SELECTED)\n",[4173,82003,82004,82006,82008,82010,82013],{"class":4657,"line":21555},[4173,82005,81367],{"class":4784},[4173,82007,81370],{"class":4661},[4173,82009,6390],{"class":4784},[4173,82011,82012],{"class":4669},"\"Toggle: AN\"",[4173,82014,55545],{"class":4784},[4173,82016,82017],{"class":4657,"line":21560},[4173,82018,7657],{"class":4788},[4173,82020,82021,82023,82025,82027,82030],{"class":4657,"line":21570},[4173,82022,81367],{"class":4784},[4173,82024,81370],{"class":4661},[4173,82026,6390],{"class":4784},[4173,82028,82029],{"class":4669},"\"Toggle: AUS\"",[4173,82031,55545],{"class":4784},[4173,82033,82034],{"class":4657,"line":21575},[4173,82035,81386],{"class":4784},[4173,82037,82038],{"class":4657,"line":21581},[4173,82039,82040],{"class":4766},"\u002F\u002F JCheckBox\n",[4173,82042,82043,82046,82048,82050,82053,82055,82058],{"class":4657,"line":21586},[4173,82044,82045],{"class":4784},"checkBox ",[4173,82047,6387],{"class":4788},[4173,82049,79032],{"class":4788},[4173,82051,82052],{"class":4661}," JCheckBox",[4173,82054,6390],{"class":4784},[4173,82056,82057],{"class":4669},"\"Resizability aktivieren\"",[4173,82059,55545],{"class":4784},[4173,82061,82062,82065,82068,82070,82072],{"class":4657,"line":21596},[4173,82063,82064],{"class":4784},"checkBox.",[4173,82066,82067],{"class":4661},"setSelected",[4173,82069,6390],{"class":4784},[4173,82071,45190],{"class":4665},[4173,82073,55545],{"class":4784},[4173,82075,82076,82078,82080,82082,82084,82087,82090,82093],{"class":4657,"line":21601},[4173,82077,82064],{"class":4784},[4173,82079,81978],{"class":4661},[4173,82081,81464],{"class":4784},[4173,82083,81467],{"class":4788},[4173,82085,82086],{"class":4661}," setResizable",[4173,82088,82089],{"class":4784},"(checkBox.",[4173,82091,82092],{"class":4661},"isSelected",[4173,82094,82095],{"class":4784},"()));\n",[4173,82097,82098],{"class":4657,"line":21607},[4173,82099,82100],{"class":4766},"\u002F\u002F JRadioButtons in einer ButtonGroup\n",[4173,82102,82103,82106,82108,82110,82112,82114,82116,82118],{"class":4657,"line":21612},[4173,82104,82105],{"class":4784},"JPanel radios ",[4173,82107,6387],{"class":4788},[4173,82109,79032],{"class":4788},[4173,82111,81533],{"class":4661},[4173,82113,6390],{"class":4784},[4173,82115,81243],{"class":4788},[4173,82117,81540],{"class":4661},[4173,82119,82120],{"class":4784},"(FlowLayout.LEFT));\n",[4173,82122,82123,82126,82128,82130,82132,82134,82137],{"class":4657,"line":21622},[4173,82124,82125],{"class":4784},"radios.",[4173,82127,81776],{"class":4661},[4173,82129,81779],{"class":4784},[4173,82131,81782],{"class":4661},[4173,82133,6390],{"class":4784},[4173,82135,82136],{"class":4669},"\"Radio-Gruppe\"",[4173,82138,66047],{"class":4784},[4173,82140,82141,82144,82146,82148,82151,82153,82156],{"class":4657,"line":21627},[4173,82142,82143],{"class":4784},"radio1 ",[4173,82145,6387],{"class":4788},[4173,82147,79032],{"class":4788},[4173,82149,82150],{"class":4661}," JRadioButton",[4173,82152,6390],{"class":4784},[4173,82154,82155],{"class":4669},"\"Option 1\"",[4173,82157,55545],{"class":4784},[4173,82159,82160,82163,82165,82167,82169,82171,82174],{"class":4657,"line":21633},[4173,82161,82162],{"class":4784},"radio2 ",[4173,82164,6387],{"class":4788},[4173,82166,79032],{"class":4788},[4173,82168,82150],{"class":4661},[4173,82170,6390],{"class":4784},[4173,82172,82173],{"class":4669},"\"Option 2\"",[4173,82175,55545],{"class":4784},[4173,82177,82178,82181,82183,82185,82187,82189,82192],{"class":4657,"line":21638},[4173,82179,82180],{"class":4784},"radio3 ",[4173,82182,6387],{"class":4788},[4173,82184,79032],{"class":4788},[4173,82186,82150],{"class":4661},[4173,82188,6390],{"class":4784},[4173,82190,82191],{"class":4669},"\"Option 3\"",[4173,82193,55545],{"class":4784},[4173,82195,82196,82199,82201,82203,82206],{"class":4657,"line":21644},[4173,82197,82198],{"class":4784},"ButtonGroup bg ",[4173,82200,6387],{"class":4788},[4173,82202,79032],{"class":4788},[4173,82204,82205],{"class":4661}," ButtonGroup",[4173,82207,65878],{"class":4784},[4173,82209,82210,82213,82215,82218,82220,82223,82225],{"class":4657,"line":21649},[4173,82211,82212],{"class":4784},"bg.",[4173,82214,79955],{"class":4661},[4173,82216,82217],{"class":4784},"(radio1); bg.",[4173,82219,79955],{"class":4661},[4173,82221,82222],{"class":4784},"(radio2); bg.",[4173,82224,79955],{"class":4661},[4173,82226,82227],{"class":4784},"(radio3);\n",[4173,82229,82230,82233,82235,82237,82239,82242],{"class":4657,"line":21659},[4173,82231,82232],{"class":4784},"radio1.",[4173,82234,81978],{"class":4661},[4173,82236,81464],{"class":4784},[4173,82238,81467],{"class":4788},[4173,82240,82241],{"class":4784}," { ",[4173,82243,82244],{"class":4788},"if\n",[4173,82246,82247,82250,82252,82255,82257,82260,82262,82264],{"class":4657,"line":21664},[4173,82248,82249],{"class":4784},"(e.",[4173,82251,81994],{"class":4661},[4173,82253,82254],{"class":4784},"()",[4173,82256,19453],{"class":4788},[4173,82258,82259],{"class":4784},"ItemEvent.SELECTED) statusLabel.",[4173,82261,81370],{"class":4661},[4173,82263,6390],{"class":4784},[4173,82265,82266],{"class":4669},"\"Option 1\n",[4173,82268,82269,82272],{"class":4657,"line":21670},[4173,82270,82271],{"class":4669},"gewählt\"",[4173,82273,82274],{"class":4784},"); });\n",[4173,82276,82277,82280,82282,82284,82286,82288],{"class":4657,"line":21675},[4173,82278,82279],{"class":4784},"radio2.",[4173,82281,81978],{"class":4661},[4173,82283,81464],{"class":4784},[4173,82285,81467],{"class":4788},[4173,82287,82241],{"class":4784},[4173,82289,82244],{"class":4788},[4173,82291,82292,82294,82296,82298,82300,82302,82304,82306],{"class":4657,"line":21685},[4173,82293,82249],{"class":4784},[4173,82295,81994],{"class":4661},[4173,82297,82254],{"class":4784},[4173,82299,19453],{"class":4788},[4173,82301,82259],{"class":4784},[4173,82303,81370],{"class":4661},[4173,82305,6390],{"class":4784},[4173,82307,82308],{"class":4669},"\"Option 2\n",[4173,82310,82311,82313],{"class":4657,"line":21690},[4173,82312,82271],{"class":4669},[4173,82314,82274],{"class":4784},[4173,82316,82317,82320,82322,82324,82326,82328],{"class":4657,"line":21696},[4173,82318,82319],{"class":4784},"radio3.",[4173,82321,81978],{"class":4661},[4173,82323,81464],{"class":4784},[4173,82325,81467],{"class":4788},[4173,82327,82241],{"class":4784},[4173,82329,82244],{"class":4788},[4173,82331,82332,82334,82336,82338,82340,82342,82344,82346],{"class":4657,"line":21701},[4173,82333,82249],{"class":4784},[4173,82335,81994],{"class":4661},[4173,82337,82254],{"class":4784},[4173,82339,19453],{"class":4788},[4173,82341,82259],{"class":4784},[4173,82343,81370],{"class":4661},[4173,82345,6390],{"class":4784},[4173,82347,82348],{"class":4669},"\"Option 3\n",[4173,82350,82351,82353],{"class":4657,"line":21711},[4173,82352,82271],{"class":4669},[4173,82354,82274],{"class":4784},[4173,82356,82357,82359,82361,82364,82366,82369,82371],{"class":4657,"line":21716},[4173,82358,82125],{"class":4784},[4173,82360,79955],{"class":4661},[4173,82362,82363],{"class":4784},"(radio1); radios.",[4173,82365,79955],{"class":4661},[4173,82367,82368],{"class":4784},"(radio2); radios.",[4173,82370,79955],{"class":4661},[4173,82372,82227],{"class":4784},[4173,82374,82375],{"class":4657,"line":21722},[4173,82376,82377],{"class":4766},"\u002F\u002F JButton mit AbstractAction (zeigt nochmal eine andere Art, Events\n",[4173,82379,82380],{"class":4657,"line":21727},[4173,82381,82382],{"class":4784},"zu verarbeiten)\n",[4173,82384,82385,82388,82390,82392,82395,82397,82400],{"class":4657,"line":21737},[4173,82386,82387],{"class":4784},"Action specialAction ",[4173,82389,6387],{"class":4788},[4173,82391,79032],{"class":4788},[4173,82393,82394],{"class":4661}," AbstractAction",[4173,82396,6390],{"class":4784},[4173,82398,82399],{"class":4669},"\"Special Action\"",[4173,82401,56319],{"class":4784},[4173,82403,82404,82406],{"class":4657,"line":21742},[4173,82405,11615],{"class":4784},[4173,82407,80535],{"class":4788},[4173,82409,82410,82412,82414,82417,82420,82422],{"class":4657,"line":21748},[4173,82411,79889],{"class":4788},[4173,82413,79934],{"class":4788},[4173,82415,82416],{"class":4661}," actionPerformed",[4173,82418,82419],{"class":4784},"(ActionEvent ",[4173,82421,20602],{"class":7074},[4173,82423,56319],{"class":4784},[4173,82425,82426,82428,82430,82432,82435],{"class":4657,"line":21753},[4173,82427,81367],{"class":4784},[4173,82429,81370],{"class":4661},[4173,82431,6390],{"class":4784},[4173,82433,82434],{"class":4669},"\"Special Action ausgeführt\"",[4173,82436,55545],{"class":4784},[4173,82438,82439],{"class":4657,"line":21759},[4173,82440,7090],{"class":4784},[4173,82442,82443],{"class":4657,"line":21764},[4173,82444,79847],{"class":4784},[4173,82446,82447,82450,82452,82454,82456],{"class":4657,"line":21782},[4173,82448,82449],{"class":4784},"JButton actionButton ",[4173,82451,6387],{"class":4788},[4173,82453,79032],{"class":4788},[4173,82455,81836],{"class":4661},[4173,82457,82458],{"class":4784},"(specialAction);\n",[4173,82460,82461],{"class":4657,"line":21787},[4173,82462,82463],{"class":4766},"\u002F\u002F ChangeListener Beispiel (für Slider -> hier als Demo ein JSlider)\n",[4173,82465,82466,82469,82471,82473,82476,82478,82480,82482,82484,82486,82489],{"class":4657,"line":21793},[4173,82467,82468],{"class":4784},"JSlider slider ",[4173,82470,6387],{"class":4788},[4173,82472,79032],{"class":4788},[4173,82474,82475],{"class":4661}," JSlider",[4173,82477,6390],{"class":4784},[4173,82479,12749],{"class":4665},[4173,82481,8629],{"class":4784},[4173,82483,5961],{"class":4665},[4173,82485,8629],{"class":4784},[4173,82487,82488],{"class":4665},"50",[4173,82490,55545],{"class":4784},[4173,82492,82493,82496,82499,82501,82503,82506],{"class":4657,"line":21798},[4173,82494,82495],{"class":4784},"slider.",[4173,82497,82498],{"class":4661},"addChangeListener",[4173,82500,6390],{"class":4784},[4173,82502,81243],{"class":4788},[4173,82504,82505],{"class":4661}," ChangeListener",[4173,82507,7062],{"class":4784},[4173,82509,82510,82512],{"class":4657,"line":21810},[4173,82511,11615],{"class":4784},[4173,82513,80535],{"class":4788},[4173,82515,82516,82518,82520,82523,82526,82528],{"class":4657,"line":21815},[4173,82517,79889],{"class":4788},[4173,82519,79934],{"class":4788},[4173,82521,82522],{"class":4661}," stateChanged",[4173,82524,82525],{"class":4784},"(ChangeEvent ",[4173,82527,20602],{"class":7074},[4173,82529,56319],{"class":4784},[4173,82531,82532,82534,82536,82538,82541,82543,82546,82549],{"class":4657,"line":21821},[4173,82533,81367],{"class":4784},[4173,82535,81370],{"class":4661},[4173,82537,6390],{"class":4784},[4173,82539,82540],{"class":4669},"\"Slider: \"",[4173,82542,11719],{"class":4788},[4173,82544,82545],{"class":4784}," slider.",[4173,82547,82548],{"class":4661},"getValue",[4173,82550,81860],{"class":4784},[4173,82552,82553],{"class":4657,"line":21826},[4173,82554,7090],{"class":4784},[4173,82556,82557],{"class":4657,"line":21836},[4173,82558,81386],{"class":4784},[4173,82560,82561],{"class":4657,"line":21841},[4173,82562,82563],{"class":4766},"\u002F\u002F Komponenten in buttonPanel\n",[4173,82565,82566,82568,82570],{"class":4657,"line":21847},[4173,82567,81773],{"class":4784},[4173,82569,79955],{"class":4661},[4173,82571,82572],{"class":4784},"(normalButton);\n",[4173,82574,82575,82577,82579],{"class":4657,"line":21852},[4173,82576,81773],{"class":4784},[4173,82578,79955],{"class":4661},[4173,82580,82581],{"class":4784},"(iconButton);\n",[4173,82583,82584,82586,82588],{"class":4657,"line":21862},[4173,82585,81773],{"class":4784},[4173,82587,79955],{"class":4661},[4173,82589,82590],{"class":4784},"(toggleButton);\n",[4173,82592,82593,82595,82597],{"class":4657,"line":21867},[4173,82594,81773],{"class":4784},[4173,82596,79955],{"class":4661},[4173,82598,82599],{"class":4784},"(checkBox);\n",[4173,82601,82602,82604,82606],{"class":4657,"line":21873},[4173,82603,81773],{"class":4784},[4173,82605,79955],{"class":4661},[4173,82607,82608],{"class":4784},"(actionButton);\n",[4173,82610,82611,82613,82615],{"class":4657,"line":21878},[4173,82612,81773],{"class":4784},[4173,82614,79955],{"class":4661},[4173,82616,82617],{"class":4784},"(slider);\n",[4173,82619,82620],{"class":4657,"line":21888},[4173,82621,82622],{"class":4766},"\u002F\u002F Rechte Seite: Demonstration verschiedener Layouts in JPanels\n",[4173,82624,82625,82628,82630,82632,82634],{"class":4657,"line":21893},[4173,82626,82627],{"class":4784},"JPanel layoutDemo ",[4173,82629,6387],{"class":4788},[4173,82631,79032],{"class":4788},[4173,82633,81533],{"class":4661},[4173,82635,65878],{"class":4784},[4173,82637,82638,82641,82643,82645,82647,82649],{"class":4657,"line":21899},[4173,82639,82640],{"class":4784},"layoutDemo.",[4173,82642,81776],{"class":4661},[4173,82644,81779],{"class":4784},[4173,82646,81782],{"class":4661},[4173,82648,6390],{"class":4784},[4173,82650,82651],{"class":4669},"\"Layout-\n",[4173,82653,82654,82657],{"class":4657,"line":21904},[4173,82655,82656],{"class":4669},"Demos\"",[4173,82658,66047],{"class":4784},[4173,82660,82661,82663,82665,82667,82669,82672,82675],{"class":4657,"line":21910},[4173,82662,82640],{"class":4784},[4173,82664,81238],{"class":4661},[4173,82666,6390],{"class":4784},[4173,82668,81243],{"class":4788},[4173,82670,82671],{"class":4661}," BoxLayout",[4173,82673,82674],{"class":4784},"(layoutDemo, BoxLayout.Y_AXIS)); ",[4173,82676,64632],{"class":4766},[4173,82678,82679],{"class":4657,"line":21915},[4173,82680,82681],{"class":4784},"BoxLayout\n",[4173,82683,82684],{"class":4657,"line":21925},[4173,82685,82686],{"class":4766},"\u002F\u002F FlowLayout Beispiel\n",[4173,82688,82689,82692,82694,82696,82698,82700,82702,82704],{"class":4657,"line":21930},[4173,82690,82691],{"class":4784},"JPanel flow ",[4173,82693,6387],{"class":4788},[4173,82695,79032],{"class":4788},[4173,82697,81533],{"class":4661},[4173,82699,6390],{"class":4784},[4173,82701,81243],{"class":4788},[4173,82703,81540],{"class":4661},[4173,82705,82120],{"class":4784},[4173,82707,82708,82711,82713,82715,82717,82719,82722],{"class":4657,"line":21936},[4173,82709,82710],{"class":4784},"flow.",[4173,82712,81776],{"class":4661},[4173,82714,81779],{"class":4784},[4173,82716,81782],{"class":4661},[4173,82718,6390],{"class":4784},[4173,82720,82721],{"class":4669},"\"FlowLayout\"",[4173,82723,66047],{"class":4784},[4173,82725,82726,82728,82730,82732,82734,82736,82738,82741,82744,82746,82748,82750,82752,82754,82757,82759,82761,82763],{"class":4657,"line":21941},[4173,82727,82710],{"class":4784},[4173,82729,79955],{"class":4661},[4173,82731,6390],{"class":4784},[4173,82733,81243],{"class":4788},[4173,82735,81563],{"class":4661},[4173,82737,6390],{"class":4784},[4173,82739,82740],{"class":4669},"\"A\"",[4173,82742,82743],{"class":4784},")); flow.",[4173,82745,79955],{"class":4661},[4173,82747,6390],{"class":4784},[4173,82749,81243],{"class":4788},[4173,82751,81563],{"class":4661},[4173,82753,6390],{"class":4784},[4173,82755,82756],{"class":4669},"\"B\"",[4173,82758,82743],{"class":4784},[4173,82760,79955],{"class":4661},[4173,82762,6390],{"class":4784},[4173,82764,82765],{"class":4788},"new\n",[4173,82767,82768,82771,82773,82776],{"class":4657,"line":21952},[4173,82769,82770],{"class":4661},"JLabel",[4173,82772,6390],{"class":4784},[4173,82774,82775],{"class":4669},"\"C\"",[4173,82777,66047],{"class":4784},[4173,82779,82780],{"class":4657,"line":21957},[4173,82781,82782],{"class":4766},"\u002F\u002F GridLayout Beispiel\n",[4173,82784,82785,82788,82790,82792,82794,82796,82798,82800,82802,82804,82806,82808,82810,82812,82814,82816],{"class":4657,"line":21963},[4173,82786,82787],{"class":4784},"JPanel grid ",[4173,82789,6387],{"class":4788},[4173,82791,79032],{"class":4788},[4173,82793,81533],{"class":4661},[4173,82795,6390],{"class":4784},[4173,82797,81243],{"class":4788},[4173,82799,81729],{"class":4661},[4173,82801,6390],{"class":4784},[4173,82803,14206],{"class":4665},[4173,82805,8629],{"class":4784},[4173,82807,14206],{"class":4665},[4173,82809,8629],{"class":4784},[4173,82811,2894],{"class":4665},[4173,82813,8629],{"class":4784},[4173,82815,2894],{"class":4665},[4173,82817,66047],{"class":4784},[4173,82819,82820,82823,82825,82827,82829,82831,82834],{"class":4657,"line":21968},[4173,82821,82822],{"class":4784},"grid.",[4173,82824,81776],{"class":4661},[4173,82826,81779],{"class":4784},[4173,82828,81782],{"class":4661},[4173,82830,6390],{"class":4784},[4173,82832,82833],{"class":4669},"\"GridLayout 2x2\"",[4173,82835,66047],{"class":4784},[4173,82837,82838,82840,82842,82844,82846,82848,82850,82853,82856,82858,82860,82862,82864,82866,82869,82871,82873,82875],{"class":4657,"line":21980},[4173,82839,82822],{"class":4784},[4173,82841,79955],{"class":4661},[4173,82843,6390],{"class":4784},[4173,82845,81243],{"class":4788},[4173,82847,81563],{"class":4661},[4173,82849,6390],{"class":4784},[4173,82851,82852],{"class":4669},"\"1\"",[4173,82854,82855],{"class":4784},")); grid.",[4173,82857,79955],{"class":4661},[4173,82859,6390],{"class":4784},[4173,82861,81243],{"class":4788},[4173,82863,81563],{"class":4661},[4173,82865,6390],{"class":4784},[4173,82867,82868],{"class":4669},"\"2\"",[4173,82870,82855],{"class":4784},[4173,82872,79955],{"class":4661},[4173,82874,6390],{"class":4784},[4173,82876,82765],{"class":4788},[4173,82878,82879,82881,82883,82886,82888,82890,82892,82894,82896,82898,82901],{"class":4657,"line":21985},[4173,82880,82770],{"class":4661},[4173,82882,6390],{"class":4784},[4173,82884,82885],{"class":4669},"\"3\"",[4173,82887,82855],{"class":4784},[4173,82889,79955],{"class":4661},[4173,82891,6390],{"class":4784},[4173,82893,81243],{"class":4788},[4173,82895,81563],{"class":4661},[4173,82897,6390],{"class":4784},[4173,82899,82900],{"class":4669},"\"4\"",[4173,82902,66047],{"class":4784},[4173,82904,82905],{"class":4657,"line":21991},[4173,82906,82907],{"class":4766},"\u002F\u002F GridBagLayout Beispiel (flexibel)\n",[4173,82909,82910,82913,82915,82917,82919,82921,82923,82926],{"class":4657,"line":21996},[4173,82911,82912],{"class":4784},"JPanel gb ",[4173,82914,6387],{"class":4788},[4173,82916,79032],{"class":4788},[4173,82918,81533],{"class":4661},[4173,82920,6390],{"class":4784},[4173,82922,81243],{"class":4788},[4173,82924,82925],{"class":4661}," GridBagLayout",[4173,82927,81860],{"class":4784},[4173,82929,82930,82933,82935,82937,82939,82941,82944],{"class":4657,"line":22009},[4173,82931,82932],{"class":4784},"gb.",[4173,82934,81776],{"class":4661},[4173,82936,81779],{"class":4784},[4173,82938,81782],{"class":4661},[4173,82940,6390],{"class":4784},[4173,82942,82943],{"class":4669},"\"GridBagLayout\"",[4173,82945,66047],{"class":4784},[4173,82947,82948,82951,82953,82955,82958],{"class":4657,"line":22014},[4173,82949,82950],{"class":4784},"GridBagConstraints c ",[4173,82952,6387],{"class":4788},[4173,82954,79032],{"class":4788},[4173,82956,82957],{"class":4661}," GridBagConstraints",[4173,82959,65878],{"class":4784},[4173,82961,82962,82965,82967,82969,82972,82974,82976,82978,82980,82982,82984,82986,82988],{"class":4657,"line":22020},[4173,82963,82964],{"class":4784},"c.insets ",[4173,82966,6387],{"class":4788},[4173,82968,79032],{"class":4788},[4173,82970,82971],{"class":4661}," Insets",[4173,82973,6390],{"class":4784},[4173,82975,14206],{"class":4665},[4173,82977,42920],{"class":4784},[4173,82979,14206],{"class":4665},[4173,82981,42920],{"class":4784},[4173,82983,14206],{"class":4665},[4173,82985,42920],{"class":4784},[4173,82987,14206],{"class":4665},[4173,82989,55545],{"class":4784},[4173,82991,82992,82995,82997,82999,83002,83004,83006,83009,83011,83013,83015,83017,83019,83022],{"class":4657,"line":22025},[4173,82993,82994],{"class":4784},"c.gridx ",[4173,82996,6387],{"class":4788},[4173,82998,25370],{"class":4665},[4173,83000,83001],{"class":4784},"; c.gridy ",[4173,83003,6387],{"class":4788},[4173,83005,25370],{"class":4665},[4173,83007,83008],{"class":4784},"; gb.",[4173,83010,79955],{"class":4661},[4173,83012,6390],{"class":4784},[4173,83014,81243],{"class":4788},[4173,83016,81563],{"class":4661},[4173,83018,6390],{"class":4784},[4173,83020,83021],{"class":4669},"\"GBA-Label 1:\"",[4173,83023,83024],{"class":4784},"), c);\n",[4173,83026,83027,83029,83031,83033,83035,83037,83039,83042,83044,83047,83050],{"class":4657,"line":22031},[4173,83028,82994],{"class":4784},[4173,83030,6387],{"class":4788},[4173,83032,10264],{"class":4665},[4173,83034,83001],{"class":4784},[4173,83036,6387],{"class":4788},[4173,83038,25370],{"class":4665},[4173,83040,83041],{"class":4784},"; c.weightx ",[4173,83043,6387],{"class":4788},[4173,83045,83046],{"class":4665}," 1.0",[4173,83048,83049],{"class":4784},"; c.fill ",[4173,83051,13594],{"class":4788},[4173,83053,83054,83057,83059,83061,83063,83066,83068,83071],{"class":4657,"line":22036},[4173,83055,83056],{"class":4784},"GridBagConstraints.HORIZONTAL; gb.",[4173,83058,79955],{"class":4661},[4173,83060,6390],{"class":4784},[4173,83062,81243],{"class":4788},[4173,83064,83065],{"class":4661}," JTextField",[4173,83067,6390],{"class":4784},[4173,83069,83070],{"class":4669},"\"TextField\"",[4173,83072,83024],{"class":4784},[4173,83074,83075,83077,83079],{"class":4657,"line":22046},[4173,83076,82640],{"class":4784},[4173,83078,79955],{"class":4661},[4173,83080,83081],{"class":4784},"(flow);\n",[4173,83083,83084,83086,83088],{"class":4657,"line":22051},[4173,83085,82640],{"class":4784},[4173,83087,79955],{"class":4661},[4173,83089,83090],{"class":4784},"(grid);\n",[4173,83092,83093,83095,83097],{"class":4657,"line":22057},[4173,83094,82640],{"class":4784},[4173,83096,79955],{"class":4661},[4173,83098,83099],{"class":4784},"(gb);\n",[4173,83101,83102,83104,83106],{"class":4657,"line":22062},[4173,83103,81720],{"class":4784},[4173,83105,79955],{"class":4661},[4173,83107,83108],{"class":4784},"(buttonPanel);\n",[4173,83110,83111,83113,83115],{"class":4657,"line":22072},[4173,83112,81720],{"class":4784},[4173,83114,79955],{"class":4661},[4173,83116,83117],{"class":4784},"(layoutDemo);\n",[4173,83119,83120],{"class":4657,"line":22077},[4173,83121,7090],{"class":4784},[4173,83123,83124,83126,83128,83131],{"class":4657,"line":22083},[4173,83125,80152],{"class":4788},[4173,83127,79934],{"class":4788},[4173,83129,83130],{"class":4661}," buildBottomPanel",[4173,83132,7062],{"class":4784},[4173,83134,83135,83138,83140,83142,83144,83146,83148,83150],{"class":4657,"line":22088},[4173,83136,83137],{"class":4784},"bottomPanel ",[4173,83139,6387],{"class":4788},[4173,83141,79032],{"class":4788},[4173,83143,81533],{"class":4661},[4173,83145,6390],{"class":4784},[4173,83147,81243],{"class":4788},[4173,83149,81246],{"class":4661},[4173,83151,81860],{"class":4784},[4173,83153,83154,83157,83159,83161,83163,83165,83168],{"class":4657,"line":22094},[4173,83155,83156],{"class":4784},"statusLabel ",[4173,83158,6387],{"class":4788},[4173,83160,79032],{"class":4788},[4173,83162,81563],{"class":4661},[4173,83164,6390],{"class":4784},[4173,83166,83167],{"class":4669},"\"Bereit\"",[4173,83169,55545],{"class":4784},[4173,83171,83172,83174,83176,83178,83180,83182,83184,83187,83189,83192,83194],{"class":4657,"line":22099},[4173,83173,81367],{"class":4784},[4173,83175,81578],{"class":4661},[4173,83177,6390],{"class":4784},[4173,83179,81243],{"class":4788},[4173,83181,81585],{"class":4661},[4173,83183,6390],{"class":4784},[4173,83185,83186],{"class":4669},"\"Dialog\"",[4173,83188,81593],{"class":4784},[4173,83190,83191],{"class":4665},"14",[4173,83193,48385],{"class":4784},[4173,83195,81601],{"class":4766},[4173,83197,83198,83201,83203],{"class":4657,"line":22109},[4173,83199,83200],{"class":4784},"bottomPanel.",[4173,83202,79955],{"class":4661},[4173,83204,83205],{"class":4784},"(statusLabel, BorderLayout.WEST);\n",[4173,83207,83208],{"class":4657,"line":22114},[4173,83209,83210],{"class":4766},"\u002F\u002F Beispiel für einen kleinen Input-Bereich\n",[4173,83212,83213,83216,83218,83220,83222,83224,83226,83228],{"class":4657,"line":22120},[4173,83214,83215],{"class":4784},"JPanel inputPanel ",[4173,83217,6387],{"class":4788},[4173,83219,79032],{"class":4788},[4173,83221,81533],{"class":4661},[4173,83223,6390],{"class":4784},[4173,83225,81243],{"class":4788},[4173,83227,81540],{"class":4661},[4173,83229,83230],{"class":4784},"(FlowLayout.RIGHT));\n",[4173,83232,83233,83236,83238,83240,83242,83244,83247],{"class":4657,"line":22125},[4173,83234,83235],{"class":4784},"JTextField input ",[4173,83237,6387],{"class":4788},[4173,83239,79032],{"class":4788},[4173,83241,83065],{"class":4661},[4173,83243,6390],{"class":4784},[4173,83245,83246],{"class":4665},"20",[4173,83248,55545],{"class":4784},[4173,83250,83251,83254,83256,83258,83260,83262,83265],{"class":4657,"line":22131},[4173,83252,83253],{"class":4784},"JButton send ",[4173,83255,6387],{"class":4788},[4173,83257,79032],{"class":4788},[4173,83259,81836],{"class":4661},[4173,83261,6390],{"class":4784},[4173,83263,83264],{"class":4669},"\"Senden\"",[4173,83266,55545],{"class":4784},[4173,83268,83269,83272,83274,83276,83278,83280,83282,83284,83287],{"class":4657,"line":22136},[4173,83270,83271],{"class":4784},"send.",[4173,83273,81461],{"class":4661},[4173,83275,81464],{"class":4784},[4173,83277,81467],{"class":4788},[4173,83279,81932],{"class":4784},[4173,83281,81370],{"class":4661},[4173,83283,6390],{"class":4784},[4173,83285,83286],{"class":4669},"\"Gesendet: \"",[4173,83288,18989],{"class":4788},[4173,83290,83291,83294,83297,83300],{"class":4657,"line":22147},[4173,83292,83293],{"class":4784},"input.",[4173,83295,83296],{"class":4661},"getText",[4173,83298,83299],{"class":4784},"()));",[4173,83301,83302],{"class":4766},"\u002F\u002F Dies nicht benutzen\n",[4173,83304,83305,83308,83310],{"class":4657,"line":22152},[4173,83306,83307],{"class":4784},"inputPanel.",[4173,83309,79955],{"class":4661},[4173,83311,83312],{"class":4784},"(input);\n",[4173,83314,83315,83317,83319],{"class":4657,"line":22158},[4173,83316,83307],{"class":4784},[4173,83318,79955],{"class":4661},[4173,83320,83321],{"class":4784},"(send);\n",[4173,83323,83324,83326,83328],{"class":4657,"line":22163},[4173,83325,83200],{"class":4784},[4173,83327,79955],{"class":4661},[4173,83329,83330],{"class":4784},"(inputPanel, BorderLayout.EAST);\n",[4173,83332,83333],{"class":4657,"line":22173},[4173,83334,7090],{"class":4784},[4173,83336,83337,83339,83341,83343],{"class":4657,"line":22178},[4173,83338,80152],{"class":4788},[4173,83340,79934],{"class":4788},[4173,83342,81857],{"class":4661},[4173,83344,7062],{"class":4784},[4173,83346,83347],{"class":4657,"line":22184},[4173,83348,83349],{"class":4766},"\u002F\u002F Beispiel: Modal-Dialog anzeigen\n",[4173,83351,83352,83355,83358,83360,83362,83364],{"class":4657,"line":22189},[4173,83353,83354],{"class":4784},"JOptionPane.",[4173,83356,83357],{"class":4661},"showMessageDialog",[4173,83359,6390],{"class":4784},[4173,83361,80010],{"class":4665},[4173,83363,8629],{"class":4784},[4173,83365,83366],{"class":4669},"\"Der normale Button wurde\n",[4173,83368,83369,83371,83373,83376],{"class":4657,"line":22201},[4173,83370,81944],{"class":4669},[4173,83372,8629],{"class":4784},[4173,83374,83375],{"class":4669},"\"Info\"",[4173,83377,83378],{"class":4784},", JOptionPane.INFORMATION_MESSAGE);\n",[4173,83380,83381,83383,83385,83387,83390],{"class":4657,"line":22206},[4173,83382,81367],{"class":4784},[4173,83384,81370],{"class":4661},[4173,83386,6390],{"class":4784},[4173,83388,83389],{"class":4669},"\"Normaler Button gedrückt\"",[4173,83391,55545],{"class":4784},[4173,83393,83394],{"class":4657,"line":22212},[4173,83395,7090],{"class":4784},[4173,83397,83398,83400,83402,83404,83406,83408,83410,83412,83414],{"class":4657,"line":22217},[4173,83399,79889],{"class":4788},[4173,83401,79892],{"class":4788},[4173,83403,79934],{"class":4788},[4173,83405,79937],{"class":4661},[4173,83407,6390],{"class":4784},[4173,83409,79693],{"class":4788},[4173,83411,80084],{"class":4784},[4173,83413,31283],{"class":7074},[4173,83415,56319],{"class":4784},[4173,83417,83418],{"class":4657,"line":22230},[4173,83419,83420],{"class":4766},"\u002F\u002F GUI muss im EDT (Event Dispatch Thread) gestartet werden\n",[4173,83422,83423,83426,83429,83432,83434],{"class":4657,"line":22235},[4173,83424,83425],{"class":4784},"SwingUtilities.",[4173,83427,83428],{"class":4661},"invokeLater",[4173,83430,83431],{"class":4784},"(() ",[4173,83433,81467],{"class":4788},[4173,83435,51614],{"class":4784},[4173,83437,83438,83441,83443,83445,83447],{"class":4657,"line":22241},[4173,83439,83440],{"class":4784},"JavaSwingGUIExample frame ",[4173,83442,6387],{"class":4788},[4173,83444,79032],{"class":4788},[4173,83446,80981],{"class":4661},[4173,83448,65878],{"class":4784},[4173,83450,83451,83454,83457,83459,83461],{"class":4657,"line":22246},[4173,83452,83453],{"class":4784},"frame.",[4173,83455,83456],{"class":4661},"setVisible",[4173,83458,6390],{"class":4784},[4173,83460,45190],{"class":4665},[4173,83462,55545],{"class":4784},[4173,83464,83465],{"class":4657,"line":22256},[4173,83466,81386],{"class":4784},[4173,83468,83469],{"class":4657,"line":22261},[4173,83470,7090],{"class":4784},[4173,83472,83473],{"class":4657,"line":22267},[4173,83474,7090],{"class":4784},[16,83476,83478],{"id":83477},"_2jpanel-jlabel-jtextfield","2.JPanel – JLabel-JTextField",[4647,83480,83482],{"className":78931,"code":83481,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport java.awt.*;\npublic class PanelInputExample {\npublic static void main(String[] args) {\nJFrame frame = new JFrame(\"Input mit JPanel\");\nframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\nframe.setSize(350, 180);\nframe.setLayout(new GridLayout(3, 1, 10, 10)); \u002F\u002F 3 Zeilen, 1 Spalte,\nAbstand 10px\n\u002F\u002F Panel für Benutzername\nJPanel userPanel = new JPanel(new BorderLayout(5, 5)); \u002F\u002F Label links,\nFeld rechts\nJLabel userLabel = new JLabel(\"Benutzername:\");\nuserLabel.setFont(new Font(\"Arial\", Font.BOLD, 16));\nJTextField userField = new JTextField(20); \u002F\u002F Feldlänge 20 Zeichen\nuserPanel.add(userLabel, BorderLayout.WEST);\nuserPanel.add(userField, BorderLayout.CENTER);\n\u002F\u002F Panel für Passwort\nJPanel passPanel = new JPanel(new BorderLayout(5, 5));\nJLabel passLabel = new JLabel(\"Passwort:\");\npassLabel.setFont(new Font(\"Courier New\", Font.ITALIC, 14));\nJTextField passField = new JTextField(20); \u002F\u002F Feldlänge 20 Zeichen\npassPanel.add(passLabel, BorderLayout.WEST);\npassPanel.add(passField, BorderLayout.CENTER);\n\u002F\u002F Panel für Button\nJPanel buttonPanel = new JPanel();\nJButton submitButton = new JButton(\"Absenden\");\nsubmitButton.addActionListener(e -> {\nJOptionPane.showMessageDialog(frame,\n\"Benutzername: \" + userField.getText() + \"\\nPasswort: \" +\npassField.getText());\n});\nbuttonPanel.add(submitButton);\n\u002F\u002F Panels zum Frame hinzufügen\nframe.add(userPanel);\nframe.add(passPanel);\nframe.add(buttonPanel);\nframe.setVisible(true);\n}\n}\n",[4653,83483,83484,83494,83504,83515,83535,83553,83562,83579,83612,83617,83622,83652,83657,83675,83700,83720,83730,83739,83744,83771,83789,83813,83832,83842,83851,83856,83868,83886,83899,83908,83934,83943,83947,83956,83961,83970,83979,83987,83999,84003],{"__ignoreMap":269},[4173,83485,83486,83488,83490,83492],{"class":4657,"line":4658},[4173,83487,79019],{"class":4788},[4173,83489,80877],{"class":4784},[4173,83491,6328],{"class":4665},[4173,83493,55559],{"class":4784},[4173,83495,83496,83498,83500,83502],{"class":4657,"line":270},[4173,83497,79019],{"class":4788},[4173,83499,80902],{"class":4784},[4173,83501,6328],{"class":4665},[4173,83503,55559],{"class":4784},[4173,83505,83506,83508,83510,83513],{"class":4657,"line":1263},[4173,83507,79889],{"class":4788},[4173,83509,80062],{"class":4788},[4173,83511,83512],{"class":4661}," PanelInputExample",[4173,83514,51614],{"class":4784},[4173,83516,83517,83519,83521,83523,83525,83527,83529,83531,83533],{"class":4657,"line":4770},[4173,83518,79889],{"class":4788},[4173,83520,79892],{"class":4788},[4173,83522,79934],{"class":4788},[4173,83524,79937],{"class":4661},[4173,83526,6390],{"class":4784},[4173,83528,79693],{"class":4788},[4173,83530,80084],{"class":4784},[4173,83532,31283],{"class":7074},[4173,83534,56319],{"class":4784},[4173,83536,83537,83540,83542,83544,83546,83548,83551],{"class":4657,"line":4775},[4173,83538,83539],{"class":4784},"JFrame frame ",[4173,83541,6387],{"class":4788},[4173,83543,79032],{"class":4788},[4173,83545,80986],{"class":4661},[4173,83547,6390],{"class":4784},[4173,83549,83550],{"class":4669},"\"Input mit JPanel\"",[4173,83552,55545],{"class":4784},[4173,83554,83555,83557,83559],{"class":4657,"line":6320},[4173,83556,83453],{"class":4784},[4173,83558,81114],{"class":4661},[4173,83560,83561],{"class":4784},"(JFrame.EXIT_ON_CLOSE);\n",[4173,83563,83564,83566,83568,83570,83573,83575,83577],{"class":4657,"line":6325},[4173,83565,83453],{"class":4784},[4173,83567,81129],{"class":4661},[4173,83569,6390],{"class":4784},[4173,83571,83572],{"class":4665},"350",[4173,83574,8629],{"class":4784},[4173,83576,5807],{"class":4665},[4173,83578,55545],{"class":4784},[4173,83580,83581,83583,83585,83587,83589,83591,83593,83595,83597,83599,83601,83603,83605,83607,83609],{"class":4657,"line":6343},[4173,83582,83453],{"class":4784},[4173,83584,81238],{"class":4661},[4173,83586,6390],{"class":4784},[4173,83588,81243],{"class":4788},[4173,83590,81729],{"class":4661},[4173,83592,6390],{"class":4784},[4173,83594,14318],{"class":4665},[4173,83596,8629],{"class":4784},[4173,83598,14223],{"class":4665},[4173,83600,8629],{"class":4784},[4173,83602,81676],{"class":4665},[4173,83604,8629],{"class":4784},[4173,83606,81676],{"class":4665},[4173,83608,48385],{"class":4784},[4173,83610,83611],{"class":4766},"\u002F\u002F 3 Zeilen, 1 Spalte,\n",[4173,83613,83614],{"class":4657,"line":6348},[4173,83615,83616],{"class":4784},"Abstand 10px\n",[4173,83618,83619],{"class":4657,"line":6457},[4173,83620,83621],{"class":4766},"\u002F\u002F Panel für Benutzername\n",[4173,83623,83624,83627,83629,83631,83633,83635,83637,83639,83641,83643,83645,83647,83649],{"class":4657,"line":6462},[4173,83625,83626],{"class":4784},"JPanel userPanel ",[4173,83628,6387],{"class":4788},[4173,83630,79032],{"class":4788},[4173,83632,81533],{"class":4661},[4173,83634,6390],{"class":4784},[4173,83636,81243],{"class":4788},[4173,83638,81246],{"class":4661},[4173,83640,6390],{"class":4784},[4173,83642,14292],{"class":4665},[4173,83644,8629],{"class":4784},[4173,83646,14292],{"class":4665},[4173,83648,48385],{"class":4784},[4173,83650,83651],{"class":4766},"\u002F\u002F Label links,\n",[4173,83653,83654],{"class":4657,"line":6468},[4173,83655,83656],{"class":4784},"Feld rechts\n",[4173,83658,83659,83662,83664,83666,83668,83670,83673],{"class":4657,"line":6473},[4173,83660,83661],{"class":4784},"JLabel userLabel ",[4173,83663,6387],{"class":4788},[4173,83665,79032],{"class":4788},[4173,83667,81563],{"class":4661},[4173,83669,6390],{"class":4784},[4173,83671,83672],{"class":4669},"\"Benutzername:\"",[4173,83674,55545],{"class":4784},[4173,83676,83677,83680,83682,83684,83686,83688,83690,83693,83695,83698],{"class":4657,"line":6479},[4173,83678,83679],{"class":4784},"userLabel.",[4173,83681,81578],{"class":4661},[4173,83683,6390],{"class":4784},[4173,83685,81243],{"class":4788},[4173,83687,81585],{"class":4661},[4173,83689,6390],{"class":4784},[4173,83691,83692],{"class":4669},"\"Arial\"",[4173,83694,81593],{"class":4784},[4173,83696,83697],{"class":4665},"16",[4173,83699,66047],{"class":4784},[4173,83701,83702,83705,83707,83709,83711,83713,83715,83717],{"class":4657,"line":6503},[4173,83703,83704],{"class":4784},"JTextField userField ",[4173,83706,6387],{"class":4788},[4173,83708,79032],{"class":4788},[4173,83710,83065],{"class":4661},[4173,83712,6390],{"class":4784},[4173,83714,83246],{"class":4665},[4173,83716,79107],{"class":4784},[4173,83718,83719],{"class":4766},"\u002F\u002F Feldlänge 20 Zeichen\n",[4173,83721,83722,83725,83727],{"class":4657,"line":6516},[4173,83723,83724],{"class":4784},"userPanel.",[4173,83726,79955],{"class":4661},[4173,83728,83729],{"class":4784},"(userLabel, BorderLayout.WEST);\n",[4173,83731,83732,83734,83736],{"class":4657,"line":6971},[4173,83733,83724],{"class":4784},[4173,83735,79955],{"class":4661},[4173,83737,83738],{"class":4784},"(userField, BorderLayout.CENTER);\n",[4173,83740,83741],{"class":4657,"line":10649},[4173,83742,83743],{"class":4766},"\u002F\u002F Panel für Passwort\n",[4173,83745,83746,83749,83751,83753,83755,83757,83759,83761,83763,83765,83767,83769],{"class":4657,"line":10654},[4173,83747,83748],{"class":4784},"JPanel passPanel ",[4173,83750,6387],{"class":4788},[4173,83752,79032],{"class":4788},[4173,83754,81533],{"class":4661},[4173,83756,6390],{"class":4784},[4173,83758,81243],{"class":4788},[4173,83760,81246],{"class":4661},[4173,83762,6390],{"class":4784},[4173,83764,14292],{"class":4665},[4173,83766,8629],{"class":4784},[4173,83768,14292],{"class":4665},[4173,83770,66047],{"class":4784},[4173,83772,83773,83776,83778,83780,83782,83784,83787],{"class":4657,"line":10659},[4173,83774,83775],{"class":4784},"JLabel passLabel ",[4173,83777,6387],{"class":4788},[4173,83779,79032],{"class":4788},[4173,83781,81563],{"class":4661},[4173,83783,6390],{"class":4784},[4173,83785,83786],{"class":4669},"\"Passwort:\"",[4173,83788,55545],{"class":4784},[4173,83790,83791,83794,83796,83798,83800,83802,83804,83807,83809,83811],{"class":4657,"line":10664},[4173,83792,83793],{"class":4784},"passLabel.",[4173,83795,81578],{"class":4661},[4173,83797,6390],{"class":4784},[4173,83799,81243],{"class":4788},[4173,83801,81585],{"class":4661},[4173,83803,6390],{"class":4784},[4173,83805,83806],{"class":4669},"\"Courier New\"",[4173,83808,81645],{"class":4784},[4173,83810,83191],{"class":4665},[4173,83812,66047],{"class":4784},[4173,83814,83815,83818,83820,83822,83824,83826,83828,83830],{"class":4657,"line":10676},[4173,83816,83817],{"class":4784},"JTextField passField ",[4173,83819,6387],{"class":4788},[4173,83821,79032],{"class":4788},[4173,83823,83065],{"class":4661},[4173,83825,6390],{"class":4784},[4173,83827,83246],{"class":4665},[4173,83829,79107],{"class":4784},[4173,83831,83719],{"class":4766},[4173,83833,83834,83837,83839],{"class":4657,"line":10681},[4173,83835,83836],{"class":4784},"passPanel.",[4173,83838,79955],{"class":4661},[4173,83840,83841],{"class":4784},"(passLabel, BorderLayout.WEST);\n",[4173,83843,83844,83846,83848],{"class":4657,"line":10702},[4173,83845,83836],{"class":4784},[4173,83847,79955],{"class":4661},[4173,83849,83850],{"class":4784},"(passField, BorderLayout.CENTER);\n",[4173,83852,83853],{"class":4657,"line":10707},[4173,83854,83855],{"class":4766},"\u002F\u002F Panel für Button\n",[4173,83857,83858,83860,83862,83864,83866],{"class":4657,"line":10712},[4173,83859,81760],{"class":4784},[4173,83861,6387],{"class":4788},[4173,83863,79032],{"class":4788},[4173,83865,81533],{"class":4661},[4173,83867,65878],{"class":4784},[4173,83869,83870,83873,83875,83877,83879,83881,83884],{"class":4657,"line":10717},[4173,83871,83872],{"class":4784},"JButton submitButton ",[4173,83874,6387],{"class":4788},[4173,83876,79032],{"class":4788},[4173,83878,81836],{"class":4661},[4173,83880,6390],{"class":4784},[4173,83882,83883],{"class":4669},"\"Absenden\"",[4173,83885,55545],{"class":4784},[4173,83887,83888,83891,83893,83895,83897],{"class":4657,"line":10727},[4173,83889,83890],{"class":4784},"submitButton.",[4173,83892,81461],{"class":4661},[4173,83894,81464],{"class":4784},[4173,83896,81467],{"class":4788},[4173,83898,51614],{"class":4784},[4173,83900,83901,83903,83905],{"class":4657,"line":10732},[4173,83902,83354],{"class":4784},[4173,83904,83357],{"class":4661},[4173,83906,83907],{"class":4784},"(frame,\n",[4173,83909,83910,83913,83915,83918,83920,83922,83924,83926,83929,83932],{"class":4657,"line":10737},[4173,83911,83912],{"class":4669},"\"Benutzername: \"",[4173,83914,11719],{"class":4788},[4173,83916,83917],{"class":4784}," userField.",[4173,83919,83296],{"class":4661},[4173,83921,80558],{"class":4784},[4173,83923,14419],{"class":4788},[4173,83925,6218],{"class":4669},[4173,83927,83928],{"class":4665},"\\n",[4173,83930,83931],{"class":4669},"Passwort: \"",[4173,83933,18989],{"class":4788},[4173,83935,83936,83939,83941],{"class":4657,"line":10742},[4173,83937,83938],{"class":4784},"passField.",[4173,83940,83296],{"class":4661},[4173,83942,81860],{"class":4784},[4173,83944,83945],{"class":4657,"line":10752},[4173,83946,81386],{"class":4784},[4173,83948,83949,83951,83953],{"class":4657,"line":10757},[4173,83950,81773],{"class":4784},[4173,83952,79955],{"class":4661},[4173,83954,83955],{"class":4784},"(submitButton);\n",[4173,83957,83958],{"class":4657,"line":10762},[4173,83959,83960],{"class":4766},"\u002F\u002F Panels zum Frame hinzufügen\n",[4173,83962,83963,83965,83967],{"class":4657,"line":10767},[4173,83964,83453],{"class":4784},[4173,83966,79955],{"class":4661},[4173,83968,83969],{"class":4784},"(userPanel);\n",[4173,83971,83972,83974,83976],{"class":4657,"line":10772},[4173,83973,83453],{"class":4784},[4173,83975,79955],{"class":4661},[4173,83977,83978],{"class":4784},"(passPanel);\n",[4173,83980,83981,83983,83985],{"class":4657,"line":10777},[4173,83982,83453],{"class":4784},[4173,83984,79955],{"class":4661},[4173,83986,83108],{"class":4784},[4173,83988,83989,83991,83993,83995,83997],{"class":4657,"line":10782},[4173,83990,83453],{"class":4784},[4173,83992,83456],{"class":4661},[4173,83994,6390],{"class":4784},[4173,83996,45190],{"class":4665},[4173,83998,55545],{"class":4784},[4173,84000,84001],{"class":4657,"line":10787},[4173,84002,7090],{"class":4784},[4173,84004,84005],{"class":4657,"line":10800},[4173,84006,7090],{"class":4784},[16,84008,84010],{"id":84009},"_3joptionpane","3.JOptionPane",[4647,84012,84014],{"className":78931,"code":84013,"language":78933,"meta":269,"style":269},"import javax.swing.*;\npublic class JOptionPaneDemo {\npublic static void main(String[] args) {\n",[4653,84015,84016,84026,84037],{"__ignoreMap":269},[4173,84017,84018,84020,84022,84024],{"class":4657,"line":4658},[4173,84019,79019],{"class":4788},[4173,84021,80877],{"class":4784},[4173,84023,6328],{"class":4665},[4173,84025,55559],{"class":4784},[4173,84027,84028,84030,84032,84035],{"class":4657,"line":270},[4173,84029,79889],{"class":4788},[4173,84031,80062],{"class":4788},[4173,84033,84034],{"class":4661}," JOptionPaneDemo",[4173,84036,51614],{"class":4784},[4173,84038,84039,84041,84043,84045,84047,84049,84051,84053,84055],{"class":4657,"line":1263},[4173,84040,79889],{"class":4788},[4173,84042,79892],{"class":4788},[4173,84044,79934],{"class":4788},[4173,84046,79937],{"class":4661},[4173,84048,6390],{"class":4784},[4173,84050,79693],{"class":4788},[4173,84052,80084],{"class":4784},[4173,84054,31283],{"class":7074},[4173,84056,56319],{"class":4784},[16,84058,84060],{"id":84059},"_1-einfache-nachricht","\u002F\u002F 1) Einfache Nachricht",[4647,84062,84064],{"className":78931,"code":84063,"language":78933,"meta":269,"style":269},"JOptionPane.showMessageDialog(\nnull,\n\"Dies ist eine einfache Nachricht.\",\n\"MessageDialog\",\nJOptionPane.INFORMATION_MESSAGE\n);\n",[4653,84065,84066,84075,84081,84088,84095,84100],{"__ignoreMap":269},[4173,84067,84068,84070,84072],{"class":4657,"line":4658},[4173,84069,83354],{"class":4784},[4173,84071,83357],{"class":4661},[4173,84073,84074],{"class":4784},"(\n",[4173,84076,84077,84079],{"class":4657,"line":270},[4173,84078,81169],{"class":4665},[4173,84080,66026],{"class":4784},[4173,84082,84083,84086],{"class":4657,"line":1263},[4173,84084,84085],{"class":4669},"\"Dies ist eine einfache Nachricht.\"",[4173,84087,66026],{"class":4784},[4173,84089,84090,84093],{"class":4657,"line":4770},[4173,84091,84092],{"class":4669},"\"MessageDialog\"",[4173,84094,66026],{"class":4784},[4173,84096,84097],{"class":4657,"line":4775},[4173,84098,84099],{"class":4784},"JOptionPane.INFORMATION_MESSAGE\n",[4173,84101,84102],{"class":4657,"line":6320},[4173,84103,55545],{"class":4784},[16,84105,84107],{"id":84106},"_2-warnung","\u002F\u002F 2) Warnung",[4647,84109,84111],{"className":78931,"code":84110,"language":78933,"meta":269,"style":269},"JOptionPane.showMessageDialog(\nnull,\n\"Dies ist eine Warnung!\",\n\"Warnung\",\nJOptionPane.WARNING_MESSAGE\n);\n",[4653,84112,84113,84121,84127,84134,84141,84146],{"__ignoreMap":269},[4173,84114,84115,84117,84119],{"class":4657,"line":4658},[4173,84116,83354],{"class":4784},[4173,84118,83357],{"class":4661},[4173,84120,84074],{"class":4784},[4173,84122,84123,84125],{"class":4657,"line":270},[4173,84124,81169],{"class":4665},[4173,84126,66026],{"class":4784},[4173,84128,84129,84132],{"class":4657,"line":1263},[4173,84130,84131],{"class":4669},"\"Dies ist eine Warnung!\"",[4173,84133,66026],{"class":4784},[4173,84135,84136,84139],{"class":4657,"line":4770},[4173,84137,84138],{"class":4669},"\"Warnung\"",[4173,84140,66026],{"class":4784},[4173,84142,84143],{"class":4657,"line":4775},[4173,84144,84145],{"class":4784},"JOptionPane.WARNING_MESSAGE\n",[4173,84147,84148],{"class":4657,"line":6320},[4173,84149,55545],{"class":4784},[16,84151,84153],{"id":84152},"_3-fehler","\u002F\u002F 3) Fehler",[4647,84155,84157],{"className":78931,"code":84156,"language":78933,"meta":269,"style":269},"JOptionPane.showMessageDialog(\nnull,\n\"Es ist ein Fehler aufgetreten.\",\n\"Fehler\",\nJOptionPane.ERROR_MESSAGE\n);\n",[4653,84158,84159,84167,84173,84180,84187,84192],{"__ignoreMap":269},[4173,84160,84161,84163,84165],{"class":4657,"line":4658},[4173,84162,83354],{"class":4784},[4173,84164,83357],{"class":4661},[4173,84166,84074],{"class":4784},[4173,84168,84169,84171],{"class":4657,"line":270},[4173,84170,81169],{"class":4665},[4173,84172,66026],{"class":4784},[4173,84174,84175,84178],{"class":4657,"line":1263},[4173,84176,84177],{"class":4669},"\"Es ist ein Fehler aufgetreten.\"",[4173,84179,66026],{"class":4784},[4173,84181,84182,84185],{"class":4657,"line":4770},[4173,84183,84184],{"class":4669},"\"Fehler\"",[4173,84186,66026],{"class":4784},[4173,84188,84189],{"class":4657,"line":4775},[4173,84190,84191],{"class":4784},"JOptionPane.ERROR_MESSAGE\n",[4173,84193,84194],{"class":4657,"line":6320},[4173,84195,55545],{"class":4784},[16,84197,84199],{"id":84198},"_4-frage-dialog","\u002F\u002F 4) Frage-Dialog",[4647,84201,84203],{"className":78931,"code":84202,"language":78933,"meta":269,"style":269},"JOptionPane.showMessageDialog(\nnull,\n\"Eine Frage (nur zur Anzeige).\",\n\"Frage\",\nJOptionPane.QUESTION_MESSAGE\n);\n",[4653,84204,84205,84213,84219,84226,84233,84238],{"__ignoreMap":269},[4173,84206,84207,84209,84211],{"class":4657,"line":4658},[4173,84208,83354],{"class":4784},[4173,84210,83357],{"class":4661},[4173,84212,84074],{"class":4784},[4173,84214,84215,84217],{"class":4657,"line":270},[4173,84216,81169],{"class":4665},[4173,84218,66026],{"class":4784},[4173,84220,84221,84224],{"class":4657,"line":1263},[4173,84222,84223],{"class":4669},"\"Eine Frage (nur zur Anzeige).\"",[4173,84225,66026],{"class":4784},[4173,84227,84228,84231],{"class":4657,"line":4770},[4173,84229,84230],{"class":4669},"\"Frage\"",[4173,84232,66026],{"class":4784},[4173,84234,84235],{"class":4657,"line":4775},[4173,84236,84237],{"class":4784},"JOptionPane.QUESTION_MESSAGE\n",[4173,84239,84240],{"class":4657,"line":6320},[4173,84241,55545],{"class":4784},[16,84243,84245],{"id":84244},"_5-bestätigungsdialog-janein","\u002F\u002F 5) Bestätigungsdialog (Ja\u002FNein)",[4647,84247,84249],{"className":78931,"code":84248,"language":78933,"meta":269,"style":269},"int confirm = JOptionPane.showConfirmDialog(\nnull,\n\"Möchten Sie fortfahren?\",\n\"Bestätigung\",\nJOptionPane.YES_NO_OPTION\n);\nSystem.out.println(\"Auswahl confirm: \" + confirm);\n",[4653,84250,84251,84268,84274,84281,84288,84293,84297],{"__ignoreMap":269},[4173,84252,84253,84255,84258,84260,84263,84266],{"class":4657,"line":4658},[4173,84254,64831],{"class":4788},[4173,84256,84257],{"class":4784}," confirm ",[4173,84259,6387],{"class":4788},[4173,84261,84262],{"class":4784}," JOptionPane.",[4173,84264,84265],{"class":4661},"showConfirmDialog",[4173,84267,84074],{"class":4784},[4173,84269,84270,84272],{"class":4657,"line":270},[4173,84271,81169],{"class":4665},[4173,84273,66026],{"class":4784},[4173,84275,84276,84279],{"class":4657,"line":1263},[4173,84277,84278],{"class":4669},"\"Möchten Sie fortfahren?\"",[4173,84280,66026],{"class":4784},[4173,84282,84283,84286],{"class":4657,"line":4770},[4173,84284,84285],{"class":4669},"\"Bestätigung\"",[4173,84287,66026],{"class":4784},[4173,84289,84290],{"class":4657,"line":4775},[4173,84291,84292],{"class":4784},"JOptionPane.YES_NO_OPTION\n",[4173,84294,84295],{"class":4657,"line":6320},[4173,84296,55545],{"class":4784},[4173,84298,84299,84301,84303,84305,84308,84310],{"class":4657,"line":6325},[4173,84300,79043],{"class":4784},[4173,84302,79074],{"class":4661},[4173,84304,6390],{"class":4784},[4173,84306,84307],{"class":4669},"\"Auswahl confirm: \"",[4173,84309,11719],{"class":4788},[4173,84311,84312],{"class":4784}," confirm);\n",[16,84314,84316],{"id":84315},"_6-bestätigungsdialog-janeinabbrechen","\u002F\u002F 6) Bestätigungsdialog (Ja\u002FNein\u002FAbbrechen)",[4647,84318,84320],{"className":78931,"code":84319,"language":78933,"meta":269,"style":269},"int confirm2 = JOptionPane.showConfirmDialog(\nnull,\n\"Ja \u002F Nein \u002F Abbrechen?\",\n\"Bestätigung\",\nJOptionPane.YES_NO_CANCEL_OPTION\n);\nSystem.out.println(\"Auswahl confirm2: \" + confirm2);\n",[4653,84321,84322,84337,84343,84350,84356,84361,84365],{"__ignoreMap":269},[4173,84323,84324,84326,84329,84331,84333,84335],{"class":4657,"line":4658},[4173,84325,64831],{"class":4788},[4173,84327,84328],{"class":4784}," confirm2 ",[4173,84330,6387],{"class":4788},[4173,84332,84262],{"class":4784},[4173,84334,84265],{"class":4661},[4173,84336,84074],{"class":4784},[4173,84338,84339,84341],{"class":4657,"line":270},[4173,84340,81169],{"class":4665},[4173,84342,66026],{"class":4784},[4173,84344,84345,84348],{"class":4657,"line":1263},[4173,84346,84347],{"class":4669},"\"Ja \u002F Nein \u002F Abbrechen?\"",[4173,84349,66026],{"class":4784},[4173,84351,84352,84354],{"class":4657,"line":4770},[4173,84353,84285],{"class":4669},[4173,84355,66026],{"class":4784},[4173,84357,84358],{"class":4657,"line":4775},[4173,84359,84360],{"class":4784},"JOptionPane.YES_NO_CANCEL_OPTION\n",[4173,84362,84363],{"class":4657,"line":6320},[4173,84364,55545],{"class":4784},[4173,84366,84367,84369,84371,84373,84376,84378],{"class":4657,"line":6325},[4173,84368,79043],{"class":4784},[4173,84370,79074],{"class":4661},[4173,84372,6390],{"class":4784},[4173,84374,84375],{"class":4669},"\"Auswahl confirm2: \"",[4173,84377,11719],{"class":4788},[4173,84379,84380],{"class":4784}," confirm2);\n",[16,84382,84384],{"id":84383},"_7-inputdialog-freitext","\u002F\u002F 7) InputDialog – Freitext",[4647,84386,84388],{"className":78931,"code":84387,"language":78933,"meta":269,"style":269},"String text = JOptionPane.showInputDialog(\nnull,\n\"Bitte geben Sie etwas ein:\",\n\"Text-Eingabe\",\nJOptionPane.QUESTION_MESSAGE\n);\nSystem.out.println(\"Eingabe: \" + text);\n",[4653,84389,84390,84403,84409,84416,84423,84427,84431],{"__ignoreMap":269},[4173,84391,84392,84394,84396,84398,84401],{"class":4657,"line":4658},[4173,84393,79681],{"class":4784},[4173,84395,6387],{"class":4788},[4173,84397,84262],{"class":4784},[4173,84399,84400],{"class":4661},"showInputDialog",[4173,84402,84074],{"class":4784},[4173,84404,84405,84407],{"class":4657,"line":270},[4173,84406,81169],{"class":4665},[4173,84408,66026],{"class":4784},[4173,84410,84411,84414],{"class":4657,"line":1263},[4173,84412,84413],{"class":4669},"\"Bitte geben Sie etwas ein:\"",[4173,84415,66026],{"class":4784},[4173,84417,84418,84421],{"class":4657,"line":4770},[4173,84419,84420],{"class":4669},"\"Text-Eingabe\"",[4173,84422,66026],{"class":4784},[4173,84424,84425],{"class":4657,"line":4775},[4173,84426,84237],{"class":4784},[4173,84428,84429],{"class":4657,"line":6320},[4173,84430,55545],{"class":4784},[4173,84432,84433,84435,84437,84439,84442,84444],{"class":4657,"line":6325},[4173,84434,79043],{"class":4784},[4173,84436,79074],{"class":4661},[4173,84438,6390],{"class":4784},[4173,84440,84441],{"class":4669},"\"Eingabe: \"",[4173,84443,11719],{"class":4788},[4173,84445,84446],{"class":4784}," text);\n",[16,84448,84450],{"id":84449},"_8-inputdialog-dropdown-auswahl","\u002F\u002F 8) InputDialog – Dropdown Auswahl",[4647,84452,84454],{"className":78931,"code":84453,"language":78933,"meta":269,"style":269},"Object[] farben = {\"Rot\", \"Grün\", \"Blau\"};\nObject auswahl = JOptionPane.showInputDialog(\nnull,\n\"Wähle eine Farbe:\",\n\"Dropdown-Eingabe\",\nJOptionPane.PLAIN_MESSAGE,\nnull,\nfarben,\n\"Rot\"\n);\nSystem.out.println(\"Farbwahl: \" + auswahl);\n",[4653,84455,84456,84483,84496,84502,84509,84516,84521,84527,84532,84537,84541],{"__ignoreMap":269},[4173,84457,84458,84461,84464,84466,84468,84471,84473,84476,84478,84481],{"class":4657,"line":4658},[4173,84459,84460],{"class":4788},"Object",[4173,84462,84463],{"class":4784},"[] farben ",[4173,84465,6387],{"class":4788},[4173,84467,6560],{"class":4784},[4173,84469,84470],{"class":4669},"\"Rot\"",[4173,84472,8629],{"class":4784},[4173,84474,84475],{"class":4669},"\"Grün\"",[4173,84477,8629],{"class":4784},[4173,84479,84480],{"class":4669},"\"Blau\"",[4173,84482,79847],{"class":4784},[4173,84484,84485,84488,84490,84492,84494],{"class":4657,"line":270},[4173,84486,84487],{"class":4784},"Object auswahl ",[4173,84489,6387],{"class":4788},[4173,84491,84262],{"class":4784},[4173,84493,84400],{"class":4661},[4173,84495,84074],{"class":4784},[4173,84497,84498,84500],{"class":4657,"line":1263},[4173,84499,81169],{"class":4665},[4173,84501,66026],{"class":4784},[4173,84503,84504,84507],{"class":4657,"line":4770},[4173,84505,84506],{"class":4669},"\"Wähle eine Farbe:\"",[4173,84508,66026],{"class":4784},[4173,84510,84511,84514],{"class":4657,"line":4775},[4173,84512,84513],{"class":4669},"\"Dropdown-Eingabe\"",[4173,84515,66026],{"class":4784},[4173,84517,84518],{"class":4657,"line":6320},[4173,84519,84520],{"class":4784},"JOptionPane.PLAIN_MESSAGE,\n",[4173,84522,84523,84525],{"class":4657,"line":6325},[4173,84524,81169],{"class":4665},[4173,84526,66026],{"class":4784},[4173,84528,84529],{"class":4657,"line":6343},[4173,84530,84531],{"class":4784},"farben,\n",[4173,84533,84534],{"class":4657,"line":6348},[4173,84535,84536],{"class":4669},"\"Rot\"\n",[4173,84538,84539],{"class":4657,"line":6457},[4173,84540,55545],{"class":4784},[4173,84542,84543,84545,84547,84549,84552,84554],{"class":4657,"line":6462},[4173,84544,79043],{"class":4784},[4173,84546,79074],{"class":4661},[4173,84548,6390],{"class":4784},[4173,84550,84551],{"class":4669},"\"Farbwahl: \"",[4173,84553,11719],{"class":4788},[4173,84555,84556],{"class":4784}," auswahl);\n",[16,84558,84560],{"id":84559},"_9-optiondialog-völlig-frei","\u002F\u002F 9) OptionDialog – völlig frei",[4647,84562,84564],{"className":78931,"code":84563,"language":78933,"meta":269,"style":269},"Object[] buttons = {\"Speichern\", \"Laden\", \"Abbrechen\"};\nint option = JOptionPane.showOptionDialog(\nnull,\n\"Was möchten Sie tun?\",\n\"Optionen\",\nJOptionPane.DEFAULT_OPTION,\nJOptionPane.QUESTION_MESSAGE,\nnull,\nbuttons,\nbuttons[0]\n);\nSystem.out.println(\"Ausgewählte Option: \" + option);\n\u002F\u002F 10) Eigener Icon (optional – funktioniert nur, wenn Bild existiert)\n\u002F\u002F ImageIcon icon = new ImageIcon(\"pfad\u002Fzu\u002Fbild.png\");\n\u002F\u002F JOptionPane.showMessageDialog(null, \"Nachricht mit eigenem Icon\",\n\"Custom Icon\", JOptionPane.PLAIN_MESSAGE, icon);\n",[4653,84565,84566,84592,84608,84614,84621,84628,84633,84638,84644,84649,84658,84662,84678,84683,84688,84693],{"__ignoreMap":269},[4173,84567,84568,84570,84573,84575,84577,84580,84582,84585,84587,84590],{"class":4657,"line":4658},[4173,84569,84460],{"class":4788},[4173,84571,84572],{"class":4784},"[] buttons ",[4173,84574,6387],{"class":4788},[4173,84576,6560],{"class":4784},[4173,84578,84579],{"class":4669},"\"Speichern\"",[4173,84581,8629],{"class":4784},[4173,84583,84584],{"class":4669},"\"Laden\"",[4173,84586,8629],{"class":4784},[4173,84588,84589],{"class":4669},"\"Abbrechen\"",[4173,84591,79847],{"class":4784},[4173,84593,84594,84596,84599,84601,84603,84606],{"class":4657,"line":270},[4173,84595,64831],{"class":4788},[4173,84597,84598],{"class":4784}," option ",[4173,84600,6387],{"class":4788},[4173,84602,84262],{"class":4784},[4173,84604,84605],{"class":4661},"showOptionDialog",[4173,84607,84074],{"class":4784},[4173,84609,84610,84612],{"class":4657,"line":1263},[4173,84611,81169],{"class":4665},[4173,84613,66026],{"class":4784},[4173,84615,84616,84619],{"class":4657,"line":4770},[4173,84617,84618],{"class":4669},"\"Was möchten Sie tun?\"",[4173,84620,66026],{"class":4784},[4173,84622,84623,84626],{"class":4657,"line":4775},[4173,84624,84625],{"class":4669},"\"Optionen\"",[4173,84627,66026],{"class":4784},[4173,84629,84630],{"class":4657,"line":6320},[4173,84631,84632],{"class":4784},"JOptionPane.DEFAULT_OPTION,\n",[4173,84634,84635],{"class":4657,"line":6325},[4173,84636,84637],{"class":4784},"JOptionPane.QUESTION_MESSAGE,\n",[4173,84639,84640,84642],{"class":4657,"line":6343},[4173,84641,81169],{"class":4665},[4173,84643,66026],{"class":4784},[4173,84645,84646],{"class":4657,"line":6348},[4173,84647,84648],{"class":4784},"buttons,\n",[4173,84650,84651,84654,84656],{"class":4657,"line":6457},[4173,84652,84653],{"class":4784},"buttons[",[4173,84655,12749],{"class":4665},[4173,84657,8635],{"class":4784},[4173,84659,84660],{"class":4657,"line":6462},[4173,84661,55545],{"class":4784},[4173,84663,84664,84666,84668,84670,84673,84675],{"class":4657,"line":6468},[4173,84665,79043],{"class":4784},[4173,84667,79074],{"class":4661},[4173,84669,6390],{"class":4784},[4173,84671,84672],{"class":4669},"\"Ausgewählte Option: \"",[4173,84674,11719],{"class":4788},[4173,84676,84677],{"class":4784}," option);\n",[4173,84679,84680],{"class":4657,"line":6473},[4173,84681,84682],{"class":4766},"\u002F\u002F 10) Eigener Icon (optional – funktioniert nur, wenn Bild existiert)\n",[4173,84684,84685],{"class":4657,"line":6479},[4173,84686,84687],{"class":4766},"\u002F\u002F ImageIcon icon = new ImageIcon(\"pfad\u002Fzu\u002Fbild.png\");\n",[4173,84689,84690],{"class":4657,"line":6503},[4173,84691,84692],{"class":4766},"\u002F\u002F JOptionPane.showMessageDialog(null, \"Nachricht mit eigenem Icon\",\n",[4173,84694,84695,84698],{"class":4657,"line":6516},[4173,84696,84697],{"class":4669},"\"Custom Icon\"",[4173,84699,84700],{"class":4784},", JOptionPane.PLAIN_MESSAGE, icon);\n",[16,84702,84704],{"id":84703},"_11-nur-information-ohne-titel","\u002F\u002F 11) Nur Information ohne Titel",[4647,84706,84708],{"className":78931,"code":84707,"language":78933,"meta":269,"style":269},"JOptionPane.showMessageDialog(null, \"Kurze Info ohne Titel\");\n",[4653,84709,84710],{"__ignoreMap":269},[4173,84711,84712,84714,84716,84718,84720,84722,84725],{"class":4657,"line":4658},[4173,84713,83354],{"class":4784},[4173,84715,83357],{"class":4661},[4173,84717,6390],{"class":4784},[4173,84719,81169],{"class":4665},[4173,84721,8629],{"class":4784},[4173,84723,84724],{"class":4669},"\"Kurze Info ohne Titel\"",[4173,84726,55545],{"class":4784},[16,84728,84730],{"id":84729},"_12-nur-optiondialog-ohne-icon-pure-buttons","\u002F\u002F 12) Nur OptionDialog ohne Icon \u002F pure Buttons",[4647,84732,84734],{"className":78931,"code":84733,"language":78933,"meta":269,"style":269},"String[] options2 = {\"Option A\", \"Option B\", \"Option C\"};\nint click = JOptionPane.showOptionDialog(\nnull,\n\"Wähle eine Option:\",\n\"Benutzerdefinierte Buttons\",\nJOptionPane.YES_NO_CANCEL_OPTION,\nJOptionPane.PLAIN_MESSAGE,\nnull, \u002F\u002F Icon null\noptions2,\noptions2[1]\n);\nSystem.out.println(\"Benutzerdefinierte Auswahl: \" + click);\n",[4653,84735,84736,84762,84777,84783,84790,84797,84802,84806,84815,84820,84829,84833],{"__ignoreMap":269},[4173,84737,84738,84740,84743,84745,84747,84750,84752,84755,84757,84760],{"class":4657,"line":4658},[4173,84739,79693],{"class":4788},[4173,84741,84742],{"class":4784},"[] options2 ",[4173,84744,6387],{"class":4788},[4173,84746,6560],{"class":4784},[4173,84748,84749],{"class":4669},"\"Option A\"",[4173,84751,8629],{"class":4784},[4173,84753,84754],{"class":4669},"\"Option B\"",[4173,84756,8629],{"class":4784},[4173,84758,84759],{"class":4669},"\"Option C\"",[4173,84761,79847],{"class":4784},[4173,84763,84764,84766,84769,84771,84773,84775],{"class":4657,"line":270},[4173,84765,64831],{"class":4788},[4173,84767,84768],{"class":4784}," click ",[4173,84770,6387],{"class":4788},[4173,84772,84262],{"class":4784},[4173,84774,84605],{"class":4661},[4173,84776,84074],{"class":4784},[4173,84778,84779,84781],{"class":4657,"line":1263},[4173,84780,81169],{"class":4665},[4173,84782,66026],{"class":4784},[4173,84784,84785,84788],{"class":4657,"line":4770},[4173,84786,84787],{"class":4669},"\"Wähle eine Option:\"",[4173,84789,66026],{"class":4784},[4173,84791,84792,84795],{"class":4657,"line":4775},[4173,84793,84794],{"class":4669},"\"Benutzerdefinierte Buttons\"",[4173,84796,66026],{"class":4784},[4173,84798,84799],{"class":4657,"line":6320},[4173,84800,84801],{"class":4784},"JOptionPane.YES_NO_CANCEL_OPTION,\n",[4173,84803,84804],{"class":4657,"line":6325},[4173,84805,84520],{"class":4784},[4173,84807,84808,84810,84812],{"class":4657,"line":6343},[4173,84809,81169],{"class":4665},[4173,84811,8629],{"class":4784},[4173,84813,84814],{"class":4766},"\u002F\u002F Icon null\n",[4173,84816,84817],{"class":4657,"line":6348},[4173,84818,84819],{"class":4784},"options2,\n",[4173,84821,84822,84825,84827],{"class":4657,"line":6457},[4173,84823,84824],{"class":4784},"options2[",[4173,84826,14223],{"class":4665},[4173,84828,8635],{"class":4784},[4173,84830,84831],{"class":4657,"line":6462},[4173,84832,55545],{"class":4784},[4173,84834,84835,84837,84839,84841,84844,84846],{"class":4657,"line":6468},[4173,84836,79043],{"class":4784},[4173,84838,79074],{"class":4661},[4173,84840,6390],{"class":4784},[4173,84842,84843],{"class":4669},"\"Benutzerdefinierte Auswahl: \"",[4173,84845,11719],{"class":4788},[4173,84847,84848],{"class":4784}," click);\n",[16,84850,84852],{"id":84851},"_13-dialog-mit-textfeld-buttons","\u002F\u002F 13) Dialog mit Textfeld + Buttons",[4647,84854,84856],{"className":78931,"code":84855,"language":78933,"meta":269,"style":269},"JTextField feld = new JTextField();\nObject[] content = {\n\"Geben Sie Ihren Namen ein:\",\nfeld\n};\nint ok = JOptionPane.showConfirmDialog(\nnull,\ncontent,\n\"Formular\",\nJOptionPane.OK_CANCEL_OPTION\n);\nif (ok == JOptionPane.OK_OPTION) {\nSystem.out.println(\"Eingegeben: \" + feld.getText());\n}\n}\n}\n",[4653,84857,84858,84871,84882,84889,84894,84898,84913,84919,84924,84931,84936,84940,84952,84972,84976,84980],{"__ignoreMap":269},[4173,84859,84860,84863,84865,84867,84869],{"class":4657,"line":4658},[4173,84861,84862],{"class":4784},"JTextField feld ",[4173,84864,6387],{"class":4788},[4173,84866,79032],{"class":4788},[4173,84868,83065],{"class":4661},[4173,84870,65878],{"class":4784},[4173,84872,84873,84875,84878,84880],{"class":4657,"line":270},[4173,84874,84460],{"class":4788},[4173,84876,84877],{"class":4784},"[] content ",[4173,84879,6387],{"class":4788},[4173,84881,51614],{"class":4784},[4173,84883,84884,84887],{"class":4657,"line":1263},[4173,84885,84886],{"class":4669},"\"Geben Sie Ihren Namen ein:\"",[4173,84888,66026],{"class":4784},[4173,84890,84891],{"class":4657,"line":4770},[4173,84892,84893],{"class":4784},"feld\n",[4173,84895,84896],{"class":4657,"line":4775},[4173,84897,79847],{"class":4784},[4173,84899,84900,84902,84905,84907,84909,84911],{"class":4657,"line":6320},[4173,84901,64831],{"class":4788},[4173,84903,84904],{"class":4784}," ok ",[4173,84906,6387],{"class":4788},[4173,84908,84262],{"class":4784},[4173,84910,84265],{"class":4661},[4173,84912,84074],{"class":4784},[4173,84914,84915,84917],{"class":4657,"line":6325},[4173,84916,81169],{"class":4665},[4173,84918,66026],{"class":4784},[4173,84920,84921],{"class":4657,"line":6343},[4173,84922,84923],{"class":4784},"content,\n",[4173,84925,84926,84929],{"class":4657,"line":6348},[4173,84927,84928],{"class":4669},"\"Formular\"",[4173,84930,66026],{"class":4784},[4173,84932,84933],{"class":4657,"line":6457},[4173,84934,84935],{"class":4784},"JOptionPane.OK_CANCEL_OPTION\n",[4173,84937,84938],{"class":4657,"line":6462},[4173,84939,55545],{"class":4784},[4173,84941,84942,84944,84947,84949],{"class":4657,"line":6468},[4173,84943,6201],{"class":4788},[4173,84945,84946],{"class":4784}," (ok ",[4173,84948,19453],{"class":4788},[4173,84950,84951],{"class":4784}," JOptionPane.OK_OPTION) {\n",[4173,84953,84954,84956,84958,84960,84963,84965,84968,84970],{"class":4657,"line":6473},[4173,84955,79043],{"class":4784},[4173,84957,79074],{"class":4661},[4173,84959,6390],{"class":4784},[4173,84961,84962],{"class":4669},"\"Eingegeben: \"",[4173,84964,11719],{"class":4788},[4173,84966,84967],{"class":4784}," feld.",[4173,84969,83296],{"class":4661},[4173,84971,81860],{"class":4784},[4173,84973,84974],{"class":4657,"line":6479},[4173,84975,7090],{"class":4784},[4173,84977,84978],{"class":4657,"line":6503},[4173,84979,7090],{"class":4784},[4173,84981,84982],{"class":4657,"line":6516},[4173,84983,7090],{"class":4784},[16,84985,84987],{"id":84986},"_4joptionpane-beispiel-mit-ausgabe","4.JOptionPane-Beispiel mit Ausgabe",[4647,84989,84991],{"className":78931,"code":84990,"language":78933,"meta":269,"style":269},"import javax.swing.JOptionPane;\npublic class JOptionPaneDemo {\npublic static void main(String[] args) {\n\u002F\u002F --- MESSAGE DIALOG ---\n\u002F\u002F Displays a simple message box\nJOptionPane.showMessageDialog(\nnull,\n\"\u003Chtml> \u003Cdiv style='color: red; background: blue'>OptionPane\nDemo\u003C\u002Fdiv> \u003C\u002Fhtml>\",\n\"Message Dialog\",\nJOptionPane.INFORMATION_MESSAGE\n);\n\u002F\u002F --- INPUT DIALOG ---\n\u002F\u002F Asks the user to input their name\nString name = JOptionPane.showInputDialog(\nnull,\n\"Name?\",\n\"Input Dialog\",\nJOptionPane.QUESTION_MESSAGE\n);\n\u002F\u002F If user cancels or closes the dialog, name will be null\nif (name == null || name.isEmpty()) {\nname = \"Fremder\";\n}\n\u002F\u002F --- CONFIRM DIALOG ---\n\u002F\u002F Asks the user a Yes\u002FNo\u002FCancel type question.\nint confirm = JOptionPane.showConfirmDialog(\nnull,\n\"Weiter, \" + name + \"?\",\n\"Confirm Dialog\",\nJOptionPane.YES_NO_CANCEL_OPTION,\nJOptionPane.QUESTION_MESSAGE\n);\n\u002F\u002F Handle the user’s response\nif (confirm == JOptionPane.YES_OPTION) {\nJOptionPane.showMessageDialog(\nnull,\n\"Weiter geht's!\",\n\"Response\",\nJOptionPane.INFORMATION_MESSAGE\n);\n} else if (confirm == JOptionPane.NO_OPTION) {\nJOptionPane.showMessageDialog(\nnull,\n\"Bye.\",\n\"Response\",\nJOptionPane.WARNING_MESSAGE\n);\n} else {\nJOptionPane.showMessageDialog(\nnull,\n\"Abbruch!\",\n\"Response\",\nJOptionPane.PLAIN_MESSAGE\n);\n}\n\u002F\u002F --- OPTION DIALOG ---\n\u002F\u002F Custom option dialog\nObject[] options = {\"Speichern\", \"Nicht speichern\", \"Abbrechen\"};\nint choice = JOptionPane.showOptionDialog(\nnull,\n\"Fortschritt speichern?\",\n\"Option Dialog\",\nJOptionPane.YES_NO_CANCEL_OPTION,\nJOptionPane.QUESTION_MESSAGE,\nnull,      \u002F\u002F no custom icon\noptions,   \u002F\u002F custom button labels\noptions[0] \u002F\u002F default selected option\n);\n\u002F\u002F Interpret the result of the user's choice\nswitch (choice) {\ncase 0:\nJOptionPane.showMessageDialog(null, \"Fortschritt gespeichert!\",\n\"Result\", JOptionPane.INFORMATION_MESSAGE);\nbreak;\ncase 1:\nJOptionPane.showMessageDialog(null, \"Fortschritt nicht gespeichert.\",\n\"Result\", JOptionPane.WARNING_MESSAGE);\nbreak;\ncase 2:\ndefault:\nJOptionPane.showMessageDialog(null, \"Aktion abgebrochen.\", \"Result\",\nJOptionPane.PLAIN_MESSAGE);\nbreak;\n}\n\u002F\u002F --- END ---\n\u002F\u002F Final message before exiting\nJOptionPane.showMessageDialog(\nnull,\n\"Demo beendet, \" + name + \".\",\n\"Goodbye\",\nJOptionPane.INFORMATION_MESSAGE\n);\n}\n}\n",[4653,84992,84993,85000,85010,85030,85035,85040,85048,85054,85059,85066,85073,85077,85081,85086,85091,85103,85109,85116,85123,85127,85131,85136,85159,85171,85175,85180,85185,85199,85205,85221,85228,85232,85236,85240,85245,85257,85265,85271,85278,85285,85289,85293,85309,85317,85323,85330,85336,85340,85344,85352,85360,85366,85373,85379,85384,85388,85392,85397,85402,85426,85441,85447,85454,85461,85465,85469,85479,85487,85500,85504,85509,85516,85524,85541,85548,85554,85562,85579,85586,85592,85600,85605,85626,85631,85637,85641,85646,85651,85659,85665,85681,85688,85692,85696,85700],{"__ignoreMap":269},[4173,84994,84995,84997],{"class":4657,"line":4658},[4173,84996,79019],{"class":4788},[4173,84998,84999],{"class":4784}," javax.swing.JOptionPane;\n",[4173,85001,85002,85004,85006,85008],{"class":4657,"line":270},[4173,85003,79889],{"class":4788},[4173,85005,80062],{"class":4788},[4173,85007,84034],{"class":4661},[4173,85009,51614],{"class":4784},[4173,85011,85012,85014,85016,85018,85020,85022,85024,85026,85028],{"class":4657,"line":1263},[4173,85013,79889],{"class":4788},[4173,85015,79892],{"class":4788},[4173,85017,79934],{"class":4788},[4173,85019,79937],{"class":4661},[4173,85021,6390],{"class":4784},[4173,85023,79693],{"class":4788},[4173,85025,80084],{"class":4784},[4173,85027,31283],{"class":7074},[4173,85029,56319],{"class":4784},[4173,85031,85032],{"class":4657,"line":4770},[4173,85033,85034],{"class":4766},"\u002F\u002F --- MESSAGE DIALOG ---\n",[4173,85036,85037],{"class":4657,"line":4775},[4173,85038,85039],{"class":4766},"\u002F\u002F Displays a simple message box\n",[4173,85041,85042,85044,85046],{"class":4657,"line":6320},[4173,85043,83354],{"class":4784},[4173,85045,83357],{"class":4661},[4173,85047,84074],{"class":4784},[4173,85049,85050,85052],{"class":4657,"line":6325},[4173,85051,81169],{"class":4665},[4173,85053,66026],{"class":4784},[4173,85055,85056],{"class":4657,"line":6343},[4173,85057,85058],{"class":4669},"\"\u003Chtml> \u003Cdiv style='color: red; background: blue'>OptionPane\n",[4173,85060,85061,85064],{"class":4657,"line":6348},[4173,85062,85063],{"class":4669},"Demo\u003C\u002Fdiv> \u003C\u002Fhtml>\"",[4173,85065,66026],{"class":4784},[4173,85067,85068,85071],{"class":4657,"line":6457},[4173,85069,85070],{"class":4669},"\"Message Dialog\"",[4173,85072,66026],{"class":4784},[4173,85074,85075],{"class":4657,"line":6462},[4173,85076,84099],{"class":4784},[4173,85078,85079],{"class":4657,"line":6468},[4173,85080,55545],{"class":4784},[4173,85082,85083],{"class":4657,"line":6473},[4173,85084,85085],{"class":4766},"\u002F\u002F --- INPUT DIALOG ---\n",[4173,85087,85088],{"class":4657,"line":6479},[4173,85089,85090],{"class":4766},"\u002F\u002F Asks the user to input their name\n",[4173,85092,85093,85095,85097,85099,85101],{"class":4657,"line":6503},[4173,85094,78998],{"class":4784},[4173,85096,6387],{"class":4788},[4173,85098,84262],{"class":4784},[4173,85100,84400],{"class":4661},[4173,85102,84074],{"class":4784},[4173,85104,85105,85107],{"class":4657,"line":6516},[4173,85106,81169],{"class":4665},[4173,85108,66026],{"class":4784},[4173,85110,85111,85114],{"class":4657,"line":6971},[4173,85112,85113],{"class":4669},"\"Name?\"",[4173,85115,66026],{"class":4784},[4173,85117,85118,85121],{"class":4657,"line":10649},[4173,85119,85120],{"class":4669},"\"Input Dialog\"",[4173,85122,66026],{"class":4784},[4173,85124,85125],{"class":4657,"line":10654},[4173,85126,84237],{"class":4784},[4173,85128,85129],{"class":4657,"line":10659},[4173,85130,55545],{"class":4784},[4173,85132,85133],{"class":4657,"line":10664},[4173,85134,85135],{"class":4766},"\u002F\u002F If user cancels or closes the dialog, name will be null\n",[4173,85137,85138,85140,85143,85145,85148,85150,85153,85156],{"class":4657,"line":10676},[4173,85139,6201],{"class":4788},[4173,85141,85142],{"class":4784}," (name ",[4173,85144,19453],{"class":4788},[4173,85146,85147],{"class":4665}," null",[4173,85149,24074],{"class":4788},[4173,85151,85152],{"class":4784}," name.",[4173,85154,85155],{"class":4661},"isEmpty",[4173,85157,85158],{"class":4784},"()) {\n",[4173,85160,85161,85164,85166,85169],{"class":4657,"line":10681},[4173,85162,85163],{"class":4784},"name ",[4173,85165,6387],{"class":4788},[4173,85167,85168],{"class":4669}," \"Fremder\"",[4173,85170,55559],{"class":4784},[4173,85172,85173],{"class":4657,"line":10702},[4173,85174,7090],{"class":4784},[4173,85176,85177],{"class":4657,"line":10707},[4173,85178,85179],{"class":4766},"\u002F\u002F --- CONFIRM DIALOG ---\n",[4173,85181,85182],{"class":4657,"line":10712},[4173,85183,85184],{"class":4766},"\u002F\u002F Asks the user a Yes\u002FNo\u002FCancel type question.\n",[4173,85186,85187,85189,85191,85193,85195,85197],{"class":4657,"line":10717},[4173,85188,64831],{"class":4788},[4173,85190,84257],{"class":4784},[4173,85192,6387],{"class":4788},[4173,85194,84262],{"class":4784},[4173,85196,84265],{"class":4661},[4173,85198,84074],{"class":4784},[4173,85200,85201,85203],{"class":4657,"line":10727},[4173,85202,81169],{"class":4665},[4173,85204,66026],{"class":4784},[4173,85206,85207,85210,85212,85214,85216,85219],{"class":4657,"line":10732},[4173,85208,85209],{"class":4669},"\"Weiter, \"",[4173,85211,11719],{"class":4788},[4173,85213,80353],{"class":4784},[4173,85215,14419],{"class":4788},[4173,85217,85218],{"class":4669}," \"?\"",[4173,85220,66026],{"class":4784},[4173,85222,85223,85226],{"class":4657,"line":10737},[4173,85224,85225],{"class":4669},"\"Confirm Dialog\"",[4173,85227,66026],{"class":4784},[4173,85229,85230],{"class":4657,"line":10742},[4173,85231,84801],{"class":4784},[4173,85233,85234],{"class":4657,"line":10752},[4173,85235,84237],{"class":4784},[4173,85237,85238],{"class":4657,"line":10757},[4173,85239,55545],{"class":4784},[4173,85241,85242],{"class":4657,"line":10762},[4173,85243,85244],{"class":4766},"\u002F\u002F Handle the user’s response\n",[4173,85246,85247,85249,85252,85254],{"class":4657,"line":10767},[4173,85248,6201],{"class":4788},[4173,85250,85251],{"class":4784}," (confirm ",[4173,85253,19453],{"class":4788},[4173,85255,85256],{"class":4784}," JOptionPane.YES_OPTION) {\n",[4173,85258,85259,85261,85263],{"class":4657,"line":10772},[4173,85260,83354],{"class":4784},[4173,85262,83357],{"class":4661},[4173,85264,84074],{"class":4784},[4173,85266,85267,85269],{"class":4657,"line":10777},[4173,85268,81169],{"class":4665},[4173,85270,66026],{"class":4784},[4173,85272,85273,85276],{"class":4657,"line":10782},[4173,85274,85275],{"class":4669},"\"Weiter geht's!\"",[4173,85277,66026],{"class":4784},[4173,85279,85280,85283],{"class":4657,"line":10787},[4173,85281,85282],{"class":4669},"\"Response\"",[4173,85284,66026],{"class":4784},[4173,85286,85287],{"class":4657,"line":10800},[4173,85288,84099],{"class":4784},[4173,85290,85291],{"class":4657,"line":10805},[4173,85292,55545],{"class":4784},[4173,85294,85295,85297,85299,85302,85304,85306],{"class":4657,"line":10818},[4173,85296,71897],{"class":4784},[4173,85298,19734],{"class":4788},[4173,85300,85301],{"class":4788}," if",[4173,85303,85251],{"class":4784},[4173,85305,19453],{"class":4788},[4173,85307,85308],{"class":4784}," JOptionPane.NO_OPTION) {\n",[4173,85310,85311,85313,85315],{"class":4657,"line":10823},[4173,85312,83354],{"class":4784},[4173,85314,83357],{"class":4661},[4173,85316,84074],{"class":4784},[4173,85318,85319,85321],{"class":4657,"line":10836},[4173,85320,81169],{"class":4665},[4173,85322,66026],{"class":4784},[4173,85324,85325,85328],{"class":4657,"line":10841},[4173,85326,85327],{"class":4669},"\"Bye.\"",[4173,85329,66026],{"class":4784},[4173,85331,85332,85334],{"class":4657,"line":10846},[4173,85333,85282],{"class":4669},[4173,85335,66026],{"class":4784},[4173,85337,85338],{"class":4657,"line":10851},[4173,85339,84145],{"class":4784},[4173,85341,85342],{"class":4657,"line":10867},[4173,85343,55545],{"class":4784},[4173,85345,85346,85348,85350],{"class":4657,"line":10872},[4173,85347,71897],{"class":4784},[4173,85349,19734],{"class":4788},[4173,85351,51614],{"class":4784},[4173,85353,85354,85356,85358],{"class":4657,"line":10877},[4173,85355,83354],{"class":4784},[4173,85357,83357],{"class":4661},[4173,85359,84074],{"class":4784},[4173,85361,85362,85364],{"class":4657,"line":10882},[4173,85363,81169],{"class":4665},[4173,85365,66026],{"class":4784},[4173,85367,85368,85371],{"class":4657,"line":10890},[4173,85369,85370],{"class":4669},"\"Abbruch!\"",[4173,85372,66026],{"class":4784},[4173,85374,85375,85377],{"class":4657,"line":10895},[4173,85376,85282],{"class":4669},[4173,85378,66026],{"class":4784},[4173,85380,85381],{"class":4657,"line":10904},[4173,85382,85383],{"class":4784},"JOptionPane.PLAIN_MESSAGE\n",[4173,85385,85386],{"class":4657,"line":10909},[4173,85387,55545],{"class":4784},[4173,85389,85390],{"class":4657,"line":10914},[4173,85391,7090],{"class":4784},[4173,85393,85394],{"class":4657,"line":10919},[4173,85395,85396],{"class":4766},"\u002F\u002F --- OPTION DIALOG ---\n",[4173,85398,85399],{"class":4657,"line":10933},[4173,85400,85401],{"class":4766},"\u002F\u002F Custom option dialog\n",[4173,85403,85404,85406,85409,85411,85413,85415,85417,85420,85422,85424],{"class":4657,"line":10938},[4173,85405,84460],{"class":4788},[4173,85407,85408],{"class":4784},"[] options ",[4173,85410,6387],{"class":4788},[4173,85412,6560],{"class":4784},[4173,85414,84579],{"class":4669},[4173,85416,8629],{"class":4784},[4173,85418,85419],{"class":4669},"\"Nicht speichern\"",[4173,85421,8629],{"class":4784},[4173,85423,84589],{"class":4669},[4173,85425,79847],{"class":4784},[4173,85427,85428,85430,85433,85435,85437,85439],{"class":4657,"line":10959},[4173,85429,64831],{"class":4788},[4173,85431,85432],{"class":4784}," choice ",[4173,85434,6387],{"class":4788},[4173,85436,84262],{"class":4784},[4173,85438,84605],{"class":4661},[4173,85440,84074],{"class":4784},[4173,85442,85443,85445],{"class":4657,"line":10964},[4173,85444,81169],{"class":4665},[4173,85446,66026],{"class":4784},[4173,85448,85449,85452],{"class":4657,"line":10969},[4173,85450,85451],{"class":4669},"\"Fortschritt speichern?\"",[4173,85453,66026],{"class":4784},[4173,85455,85456,85459],{"class":4657,"line":10974},[4173,85457,85458],{"class":4669},"\"Option Dialog\"",[4173,85460,66026],{"class":4784},[4173,85462,85463],{"class":4657,"line":10982},[4173,85464,84801],{"class":4784},[4173,85466,85467],{"class":4657,"line":10987},[4173,85468,84637],{"class":4784},[4173,85470,85471,85473,85476],{"class":4657,"line":10995},[4173,85472,81169],{"class":4665},[4173,85474,85475],{"class":4784},",      ",[4173,85477,85478],{"class":4766},"\u002F\u002F no custom icon\n",[4173,85480,85481,85484],{"class":4657,"line":11000},[4173,85482,85483],{"class":4784},"options,   ",[4173,85485,85486],{"class":4766},"\u002F\u002F custom button labels\n",[4173,85488,85489,85492,85494,85497],{"class":4657,"line":11008},[4173,85490,85491],{"class":4784},"options[",[4173,85493,12749],{"class":4665},[4173,85495,85496],{"class":4784},"] ",[4173,85498,85499],{"class":4766},"\u002F\u002F default selected option\n",[4173,85501,85502],{"class":4657,"line":11013},[4173,85503,55545],{"class":4784},[4173,85505,85506],{"class":4657,"line":11021},[4173,85507,85508],{"class":4766},"\u002F\u002F Interpret the result of the user's choice\n",[4173,85510,85511,85513],{"class":4657,"line":11026},[4173,85512,79535],{"class":4788},[4173,85514,85515],{"class":4784}," (choice) {\n",[4173,85517,85518,85520,85522],{"class":4657,"line":11034},[4173,85519,6264],{"class":4788},[4173,85521,25370],{"class":4665},[4173,85523,2815],{"class":4788},[4173,85525,85526,85528,85530,85532,85534,85536,85539],{"class":4657,"line":11039},[4173,85527,83354],{"class":4784},[4173,85529,83357],{"class":4661},[4173,85531,6390],{"class":4784},[4173,85533,81169],{"class":4665},[4173,85535,8629],{"class":4784},[4173,85537,85538],{"class":4669},"\"Fortschritt gespeichert!\"",[4173,85540,66026],{"class":4784},[4173,85542,85543,85546],{"class":4657,"line":11048},[4173,85544,85545],{"class":4669},"\"Result\"",[4173,85547,83378],{"class":4784},[4173,85549,85550,85552],{"class":4657,"line":11053},[4173,85551,6706],{"class":4788},[4173,85553,55559],{"class":4784},[4173,85555,85556,85558,85560],{"class":4657,"line":21369},[4173,85557,6264],{"class":4788},[4173,85559,10264],{"class":4665},[4173,85561,2815],{"class":4788},[4173,85563,85564,85566,85568,85570,85572,85574,85577],{"class":4657,"line":21374},[4173,85565,83354],{"class":4784},[4173,85567,83357],{"class":4661},[4173,85569,6390],{"class":4784},[4173,85571,81169],{"class":4665},[4173,85573,8629],{"class":4784},[4173,85575,85576],{"class":4669},"\"Fortschritt nicht gespeichert.\"",[4173,85578,66026],{"class":4784},[4173,85580,85581,85583],{"class":4657,"line":21380},[4173,85582,85545],{"class":4669},[4173,85584,85585],{"class":4784},", JOptionPane.WARNING_MESSAGE);\n",[4173,85587,85588,85590],{"class":4657,"line":21385},[4173,85589,6706],{"class":4788},[4173,85591,55559],{"class":4784},[4173,85593,85594,85596,85598],{"class":4657,"line":21397},[4173,85595,6264],{"class":4788},[4173,85597,15327],{"class":4665},[4173,85599,2815],{"class":4788},[4173,85601,85602],{"class":4657,"line":21402},[4173,85603,85604],{"class":4788},"default:\n",[4173,85606,85607,85609,85611,85613,85615,85617,85620,85622,85624],{"class":4657,"line":21408},[4173,85608,83354],{"class":4784},[4173,85610,83357],{"class":4661},[4173,85612,6390],{"class":4784},[4173,85614,81169],{"class":4665},[4173,85616,8629],{"class":4784},[4173,85618,85619],{"class":4669},"\"Aktion abgebrochen.\"",[4173,85621,8629],{"class":4784},[4173,85623,85545],{"class":4669},[4173,85625,66026],{"class":4784},[4173,85627,85628],{"class":4657,"line":21413},[4173,85629,85630],{"class":4784},"JOptionPane.PLAIN_MESSAGE);\n",[4173,85632,85633,85635],{"class":4657,"line":21425},[4173,85634,6706],{"class":4788},[4173,85636,55559],{"class":4784},[4173,85638,85639],{"class":4657,"line":21430},[4173,85640,7090],{"class":4784},[4173,85642,85643],{"class":4657,"line":21436},[4173,85644,85645],{"class":4766},"\u002F\u002F --- END ---\n",[4173,85647,85648],{"class":4657,"line":21441},[4173,85649,85650],{"class":4766},"\u002F\u002F Final message before exiting\n",[4173,85652,85653,85655,85657],{"class":4657,"line":21453},[4173,85654,83354],{"class":4784},[4173,85656,83357],{"class":4661},[4173,85658,84074],{"class":4784},[4173,85660,85661,85663],{"class":4657,"line":21458},[4173,85662,81169],{"class":4665},[4173,85664,66026],{"class":4784},[4173,85666,85667,85670,85672,85674,85676,85679],{"class":4657,"line":21464},[4173,85668,85669],{"class":4669},"\"Demo beendet, \"",[4173,85671,11719],{"class":4788},[4173,85673,80353],{"class":4784},[4173,85675,14419],{"class":4788},[4173,85677,85678],{"class":4669}," \".\"",[4173,85680,66026],{"class":4784},[4173,85682,85683,85686],{"class":4657,"line":21469},[4173,85684,85685],{"class":4669},"\"Goodbye\"",[4173,85687,66026],{"class":4784},[4173,85689,85690],{"class":4657,"line":21481},[4173,85691,84099],{"class":4784},[4173,85693,85694],{"class":4657,"line":21486},[4173,85695,55545],{"class":4784},[4173,85697,85698],{"class":4657,"line":21492},[4173,85699,7090],{"class":4784},[4173,85701,85702],{"class":4657,"line":21497},[4173,85703,7090],{"class":4784},[16,85705,85707],{"id":85706},"file-io-exeptionhandling","FILE IO + Exeptionhandling",[16,85709,85711],{"id":85710},"file-io-mit-exeptionhandling-eigene-exeption","FILE IO mit exeptionhandling + eigene exeption",[4647,85713,85715],{"className":78931,"code":85714,"language":78933,"meta":269,"style":269},"import java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\u002F**\n* Beispielprogramm:\n* - Datei lesen & schreiben (File I\u002FO)\n* - Exception Handling mit try-catch\n* - Eigene Exception (DateiLeerException)\n*\u002F\npublic class FileIOBeispiel {\npublic static void main(String[] args) {\nString inputFile = \"eingabe.txt\";\nString outputFile = \"ausgabe.txt\";\ntry {\n\u002F\u002F Datei lesen (kann IOException oder DateiLeerException werfen)\nString inhalt = leseDatei(inputFile);\nSystem.out.println(\"Datei erfolgreich gelesen:\\n\" + inhalt);\n\u002F\u002F Datei schreiben\nschreibeDatei(outputFile, inhalt.toUpperCase());\nSystem.out.println(\"Datei erfolgreich geschrieben.\");\n} catch (DateiLeerException e) {\n\u002F\u002F Eigene Exception → spezielle Fehlermeldung\nSystem.err.println(\"Eigener Fehler: \" + e.getMessage());\n} catch (IOException e) {\n\u002F\u002F IOExceptions werden hier abgefangen\nSystem.err.println(\"I\u002FO Fehler: \" + e.getMessage());\n}\n}\n\u002F**\n* Liest eine Datei Zeile für Zeile ein.\n* Wirft zusätzlich eine eigene Exception, wenn die Datei leer ist.\n*\u002F\npublic static String leseDatei(String dateiname) throws IOException, DateiLeerException {\nStringBuilder sb = new StringBuilder();\n\u002F\u002F Datei wird automatisch geschlossen (try-with-resources)\ntry (BufferedReader reader = new BufferedReader(new FileReader(dateiname))) {\nString zeile;\nwhile ((zeile = reader.readLine()) != null) {\nsb.append(zeile).append(System.lineSeparator());\n}\n}\n\u002F\u002F Eigene Exception werfen, wenn Datei leer\nif (sb.toString().trim().isEmpty()) {\nthrow new DateiLeerException(\"Die Datei '\" + dateiname + \"' ist leer.\");\n}\nreturn sb.toString();\n}\n\u002F**\n* Schreibt Text in eine Datei.\n*\u002F\npublic static void schreibeDatei(String dateiname, String text) throws IOException {\ntry (BufferedWriter writer = new BufferedWriter(new FileWriter(dateiname))) {\nwriter.write(text);\n}\n}\n}\n\u002F**\n* Eigene Exception für den Fall, dass die Datei leer ist.\n*\n* Eigene Exceptions erben in der Regel von Exception (checked exception).\n*\u002F\nclass DateiLeerException extends Exception {\n\u002F\u002F Konstruktor übernimmt die Fehlermeldung\npublic DateiLeerException(String message) {\nsuper(message);\n}\n}\n",[4653,85716,85717,85724,85731,85738,85745,85752,85756,85761,85766,85771,85776,85780,85791,85811,85823,85835,85842,85847,85860,85880,85885,85898,85911,85925,85930,85952,85965,85970,85989,85993,85997,86001,86006,86011,86015,86039,86053,86058,86082,86087,86111,86132,86136,86140,86145,86167,86194,86198,86209,86213,86217,86222,86226,86253,86276,86287,86291,86295,86299,86303,86308,86312,86317,86321,86334,86339,86352,86359,86363],{"__ignoreMap":269},[4173,85718,85719,85721],{"class":4657,"line":4658},[4173,85720,79019],{"class":4788},[4173,85722,85723],{"class":4784}," java.io.BufferedReader;\n",[4173,85725,85726,85728],{"class":4657,"line":270},[4173,85727,79019],{"class":4788},[4173,85729,85730],{"class":4784}," java.io.BufferedWriter;\n",[4173,85732,85733,85735],{"class":4657,"line":1263},[4173,85734,79019],{"class":4788},[4173,85736,85737],{"class":4784}," java.io.FileReader;\n",[4173,85739,85740,85742],{"class":4657,"line":4770},[4173,85741,79019],{"class":4788},[4173,85743,85744],{"class":4784}," java.io.FileWriter;\n",[4173,85746,85747,85749],{"class":4657,"line":4775},[4173,85748,79019],{"class":4788},[4173,85750,85751],{"class":4784}," java.io.IOException;\n",[4173,85753,85754],{"class":4657,"line":6320},[4173,85755,80922],{"class":4766},[4173,85757,85758],{"class":4657,"line":6325},[4173,85759,85760],{"class":4766},"* Beispielprogramm:\n",[4173,85762,85763],{"class":4657,"line":6343},[4173,85764,85765],{"class":4766},"* - Datei lesen & schreiben (File I\u002FO)\n",[4173,85767,85768],{"class":4657,"line":6348},[4173,85769,85770],{"class":4766},"* - Exception Handling mit try-catch\n",[4173,85772,85773],{"class":4657,"line":6457},[4173,85774,85775],{"class":4766},"* - Eigene Exception (DateiLeerException)\n",[4173,85777,85778],{"class":4657,"line":6462},[4173,85779,80972],{"class":4766},[4173,85781,85782,85784,85786,85789],{"class":4657,"line":6468},[4173,85783,79889],{"class":4788},[4173,85785,80062],{"class":4788},[4173,85787,85788],{"class":4661}," FileIOBeispiel",[4173,85790,51614],{"class":4784},[4173,85792,85793,85795,85797,85799,85801,85803,85805,85807,85809],{"class":4657,"line":6473},[4173,85794,79889],{"class":4788},[4173,85796,79892],{"class":4788},[4173,85798,79934],{"class":4788},[4173,85800,79937],{"class":4661},[4173,85802,6390],{"class":4784},[4173,85804,79693],{"class":4788},[4173,85806,80084],{"class":4784},[4173,85808,31283],{"class":7074},[4173,85810,56319],{"class":4784},[4173,85812,85813,85816,85818,85821],{"class":4657,"line":6479},[4173,85814,85815],{"class":4784},"String inputFile ",[4173,85817,6387],{"class":4788},[4173,85819,85820],{"class":4669}," \"eingabe.txt\"",[4173,85822,55559],{"class":4784},[4173,85824,85825,85828,85830,85833],{"class":4657,"line":6503},[4173,85826,85827],{"class":4784},"String outputFile ",[4173,85829,6387],{"class":4788},[4173,85831,85832],{"class":4669}," \"ausgabe.txt\"",[4173,85834,55559],{"class":4784},[4173,85836,85837,85840],{"class":4657,"line":6516},[4173,85838,85839],{"class":4788},"try",[4173,85841,51614],{"class":4784},[4173,85843,85844],{"class":4657,"line":6971},[4173,85845,85846],{"class":4766},"\u002F\u002F Datei lesen (kann IOException oder DateiLeerException werfen)\n",[4173,85848,85849,85852,85854,85857],{"class":4657,"line":10649},[4173,85850,85851],{"class":4784},"String inhalt ",[4173,85853,6387],{"class":4788},[4173,85855,85856],{"class":4661}," leseDatei",[4173,85858,85859],{"class":4784},"(inputFile);\n",[4173,85861,85862,85864,85866,85868,85871,85873,85875,85877],{"class":4657,"line":10654},[4173,85863,79043],{"class":4784},[4173,85865,79074],{"class":4661},[4173,85867,6390],{"class":4784},[4173,85869,85870],{"class":4669},"\"Datei erfolgreich gelesen:",[4173,85872,83928],{"class":4665},[4173,85874,6207],{"class":4669},[4173,85876,11719],{"class":4788},[4173,85878,85879],{"class":4784}," inhalt);\n",[4173,85881,85882],{"class":4657,"line":10659},[4173,85883,85884],{"class":4766},"\u002F\u002F Datei schreiben\n",[4173,85886,85887,85890,85893,85896],{"class":4657,"line":10664},[4173,85888,85889],{"class":4661},"schreibeDatei",[4173,85891,85892],{"class":4784},"(outputFile, inhalt.",[4173,85894,85895],{"class":4661},"toUpperCase",[4173,85897,81860],{"class":4784},[4173,85899,85900,85902,85904,85906,85909],{"class":4657,"line":10676},[4173,85901,79043],{"class":4784},[4173,85903,79074],{"class":4661},[4173,85905,6390],{"class":4784},[4173,85907,85908],{"class":4669},"\"Datei erfolgreich geschrieben.\"",[4173,85910,55545],{"class":4784},[4173,85912,85913,85915,85918,85921,85923],{"class":4657,"line":10681},[4173,85914,71897],{"class":4784},[4173,85916,85917],{"class":4788},"catch",[4173,85919,85920],{"class":4784}," (DateiLeerException ",[4173,85922,20602],{"class":7074},[4173,85924,56319],{"class":4784},[4173,85926,85927],{"class":4657,"line":10702},[4173,85928,85929],{"class":4766},"\u002F\u002F Eigene Exception → spezielle Fehlermeldung\n",[4173,85931,85932,85935,85937,85939,85942,85944,85947,85950],{"class":4657,"line":10707},[4173,85933,85934],{"class":4784},"System.err.",[4173,85936,79074],{"class":4661},[4173,85938,6390],{"class":4784},[4173,85940,85941],{"class":4669},"\"Eigener Fehler: \"",[4173,85943,11719],{"class":4788},[4173,85945,85946],{"class":4784}," e.",[4173,85948,85949],{"class":4661},"getMessage",[4173,85951,81860],{"class":4784},[4173,85953,85954,85956,85958,85961,85963],{"class":4657,"line":10712},[4173,85955,71897],{"class":4784},[4173,85957,85917],{"class":4788},[4173,85959,85960],{"class":4784}," (IOException ",[4173,85962,20602],{"class":7074},[4173,85964,56319],{"class":4784},[4173,85966,85967],{"class":4657,"line":10717},[4173,85968,85969],{"class":4766},"\u002F\u002F IOExceptions werden hier abgefangen\n",[4173,85971,85972,85974,85976,85978,85981,85983,85985,85987],{"class":4657,"line":10727},[4173,85973,85934],{"class":4784},[4173,85975,79074],{"class":4661},[4173,85977,6390],{"class":4784},[4173,85979,85980],{"class":4669},"\"I\u002FO Fehler: \"",[4173,85982,11719],{"class":4788},[4173,85984,85946],{"class":4784},[4173,85986,85949],{"class":4661},[4173,85988,81860],{"class":4784},[4173,85990,85991],{"class":4657,"line":10732},[4173,85992,7090],{"class":4784},[4173,85994,85995],{"class":4657,"line":10737},[4173,85996,7090],{"class":4784},[4173,85998,85999],{"class":4657,"line":10742},[4173,86000,80922],{"class":4766},[4173,86002,86003],{"class":4657,"line":10752},[4173,86004,86005],{"class":4766},"* Liest eine Datei Zeile für Zeile ein.\n",[4173,86007,86008],{"class":4657,"line":10757},[4173,86009,86010],{"class":4766},"* Wirft zusätzlich eine eigene Exception, wenn die Datei leer ist.\n",[4173,86012,86013],{"class":4657,"line":10762},[4173,86014,80972],{"class":4766},[4173,86016,86017,86019,86021,86023,86026,86028,86031,86033,86036],{"class":4657,"line":10767},[4173,86018,79889],{"class":4788},[4173,86020,79892],{"class":4788},[4173,86022,80225],{"class":4784},[4173,86024,86025],{"class":4661},"leseDatei",[4173,86027,80001],{"class":4784},[4173,86029,86030],{"class":7074},"dateiname",[4173,86032,6306],{"class":4784},[4173,86034,86035],{"class":4788},"throws",[4173,86037,86038],{"class":4784}," IOException, DateiLeerException {\n",[4173,86040,86041,86044,86046,86048,86051],{"class":4657,"line":10772},[4173,86042,86043],{"class":4784},"StringBuilder sb ",[4173,86045,6387],{"class":4788},[4173,86047,79032],{"class":4788},[4173,86049,86050],{"class":4661}," StringBuilder",[4173,86052,65878],{"class":4784},[4173,86054,86055],{"class":4657,"line":10777},[4173,86056,86057],{"class":4766},"\u002F\u002F Datei wird automatisch geschlossen (try-with-resources)\n",[4173,86059,86060,86062,86065,86067,86069,86072,86074,86076,86079],{"class":4657,"line":10782},[4173,86061,85839],{"class":4788},[4173,86063,86064],{"class":4784}," (BufferedReader reader ",[4173,86066,6387],{"class":4788},[4173,86068,79032],{"class":4788},[4173,86070,86071],{"class":4661}," BufferedReader",[4173,86073,6390],{"class":4784},[4173,86075,81243],{"class":4788},[4173,86077,86078],{"class":4661}," FileReader",[4173,86080,86081],{"class":4784},"(dateiname))) {\n",[4173,86083,86084],{"class":4657,"line":10787},[4173,86085,86086],{"class":4784},"String zeile;\n",[4173,86088,86089,86091,86094,86096,86099,86102,86105,86107,86109],{"class":4657,"line":10800},[4173,86090,6694],{"class":4788},[4173,86092,86093],{"class":4784}," ((zeile ",[4173,86095,6387],{"class":4788},[4173,86097,86098],{"class":4784}," reader.",[4173,86100,86101],{"class":4661},"readLine",[4173,86103,86104],{"class":4784},"()) ",[4173,86106,19461],{"class":4788},[4173,86108,85147],{"class":4665},[4173,86110,56319],{"class":4784},[4173,86112,86113,86116,86119,86122,86124,86127,86130],{"class":4657,"line":10805},[4173,86114,86115],{"class":4784},"sb.",[4173,86117,86118],{"class":4661},"append",[4173,86120,86121],{"class":4784},"(zeile).",[4173,86123,86118],{"class":4661},[4173,86125,86126],{"class":4784},"(System.",[4173,86128,86129],{"class":4661},"lineSeparator",[4173,86131,81860],{"class":4784},[4173,86133,86134],{"class":4657,"line":10818},[4173,86135,7090],{"class":4784},[4173,86137,86138],{"class":4657,"line":10823},[4173,86139,7090],{"class":4784},[4173,86141,86142],{"class":4657,"line":10836},[4173,86143,86144],{"class":4766},"\u002F\u002F Eigene Exception werfen, wenn Datei leer\n",[4173,86146,86147,86149,86152,86155,86158,86161,86163,86165],{"class":4657,"line":10841},[4173,86148,6201],{"class":4788},[4173,86150,86151],{"class":4784}," (sb.",[4173,86153,86154],{"class":4661},"toString",[4173,86156,86157],{"class":4784},"().",[4173,86159,86160],{"class":4661},"trim",[4173,86162,86157],{"class":4784},[4173,86164,85155],{"class":4661},[4173,86166,85158],{"class":4784},[4173,86168,86169,86172,86174,86177,86179,86182,86184,86187,86189,86192],{"class":4657,"line":10846},[4173,86170,86171],{"class":4788},"throw",[4173,86173,79032],{"class":4788},[4173,86175,86176],{"class":4661}," DateiLeerException",[4173,86178,6390],{"class":4784},[4173,86180,86181],{"class":4669},"\"Die Datei '\"",[4173,86183,11719],{"class":4788},[4173,86185,86186],{"class":4784}," dateiname ",[4173,86188,14419],{"class":4788},[4173,86190,86191],{"class":4669}," \"' ist leer.\"",[4173,86193,55545],{"class":4784},[4173,86195,86196],{"class":4657,"line":10851},[4173,86197,7090],{"class":4784},[4173,86199,86200,86202,86205,86207],{"class":4657,"line":10867},[4173,86201,51326],{"class":4788},[4173,86203,86204],{"class":4784}," sb.",[4173,86206,86154],{"class":4661},[4173,86208,65878],{"class":4784},[4173,86210,86211],{"class":4657,"line":10872},[4173,86212,7090],{"class":4784},[4173,86214,86215],{"class":4657,"line":10877},[4173,86216,80922],{"class":4766},[4173,86218,86219],{"class":4657,"line":10882},[4173,86220,86221],{"class":4766},"* Schreibt Text in eine Datei.\n",[4173,86223,86224],{"class":4657,"line":10890},[4173,86225,80972],{"class":4766},[4173,86227,86228,86230,86232,86234,86237,86239,86241,86244,86246,86248,86250],{"class":4657,"line":10895},[4173,86229,79889],{"class":4788},[4173,86231,79892],{"class":4788},[4173,86233,79934],{"class":4788},[4173,86235,86236],{"class":4661}," schreibeDatei",[4173,86238,80001],{"class":4784},[4173,86240,86030],{"class":7074},[4173,86242,86243],{"class":4784},", String ",[4173,86245,71896],{"class":7074},[4173,86247,6306],{"class":4784},[4173,86249,86035],{"class":4788},[4173,86251,86252],{"class":4784}," IOException {\n",[4173,86254,86255,86257,86260,86262,86264,86267,86269,86271,86274],{"class":4657,"line":10904},[4173,86256,85839],{"class":4788},[4173,86258,86259],{"class":4784}," (BufferedWriter writer ",[4173,86261,6387],{"class":4788},[4173,86263,79032],{"class":4788},[4173,86265,86266],{"class":4661}," BufferedWriter",[4173,86268,6390],{"class":4784},[4173,86270,81243],{"class":4788},[4173,86272,86273],{"class":4661}," FileWriter",[4173,86275,86081],{"class":4784},[4173,86277,86278,86281,86284],{"class":4657,"line":10909},[4173,86279,86280],{"class":4784},"writer.",[4173,86282,86283],{"class":4661},"write",[4173,86285,86286],{"class":4784},"(text);\n",[4173,86288,86289],{"class":4657,"line":10914},[4173,86290,7090],{"class":4784},[4173,86292,86293],{"class":4657,"line":10919},[4173,86294,7090],{"class":4784},[4173,86296,86297],{"class":4657,"line":10933},[4173,86298,7090],{"class":4784},[4173,86300,86301],{"class":4657,"line":10938},[4173,86302,80922],{"class":4766},[4173,86304,86305],{"class":4657,"line":10959},[4173,86306,86307],{"class":4766},"* Eigene Exception für den Fall, dass die Datei leer ist.\n",[4173,86309,86310],{"class":4657,"line":10964},[4173,86311,26959],{"class":4766},[4173,86313,86314],{"class":4657,"line":10969},[4173,86315,86316],{"class":4766},"* Eigene Exceptions erben in der Regel von Exception (checked exception).\n",[4173,86318,86319],{"class":4657,"line":10974},[4173,86320,80972],{"class":4766},[4173,86322,86323,86325,86327,86329,86332],{"class":4657,"line":10982},[4173,86324,79983],{"class":4788},[4173,86326,86176],{"class":4661},[4173,86328,80500],{"class":4788},[4173,86330,86331],{"class":4661}," Exception",[4173,86333,51614],{"class":4784},[4173,86335,86336],{"class":4657,"line":10987},[4173,86337,86338],{"class":4766},"\u002F\u002F Konstruktor übernimmt die Fehlermeldung\n",[4173,86340,86341,86343,86345,86347,86350],{"class":4657,"line":10995},[4173,86342,79889],{"class":4788},[4173,86344,86176],{"class":4661},[4173,86346,80001],{"class":4784},[4173,86348,86349],{"class":7074},"message",[4173,86351,56319],{"class":4784},[4173,86353,86354,86356],{"class":4657,"line":11000},[4173,86355,80521],{"class":4665},[4173,86357,86358],{"class":4784},"(message);\n",[4173,86360,86361],{"class":4657,"line":11008},[4173,86362,7090],{"class":4784},[4173,86364,86365],{"class":4657,"line":11013},[4173,86366,7090],{"class":4784},[11,86368,86370],{"id":86369},"exeptions","EXEPTIONS",[16,86372,86374],{"id":86373},"exeptions-nochmal-aber-alles","Exeptions nochmal aber alles",[4647,86376,86378],{"className":78931,"code":86377,"language":78933,"meta":269,"style":269},"\u002F**\n* Dieses Beispiel zeigt den Umgang mit Exceptions:\n* - mehrere catch-Blöcke\n* - eigene Exception\n* - try-catch-finally\n* - bewusstes Auslösen von Exceptions (throw)\n*\u002F\npublic class ExceptionBeispiel {\npublic static void main(String[] args) {\ntry {\nint ergebnis = teile(10, 0);  \u002F\u002F wir provozieren eine Division durch 0\nSystem.out.println(\"Ergebnis: \" + ergebnis);\n} catch (ArithmeticException e) {\n\u002F\u002F Abfangen einer Standard-Exception\nSystem.err.println(\"Mathematischer Fehler: \" + e.getMessage());\n} catch (UngueltigeZahlException e) {\n\u002F\u002F Abfangen unserer eigenen Exception\nSystem.err.println(\"Eigener Fehler: \" + e.getMessage());\n} finally {\n\u002F\u002F Wird IMMER ausgeführt, egal ob Fehler passiert oder nicht\nSystem.out.println(\"Finally-Block wurde ausgeführt.\");\n}\n}\n\u002F**\n* Methode teilt zwei Zahlen.\n* Wirft unsere eigene Exception, wenn der zweite Parameter negativ ist.\n*\u002F\npublic static int teile(int a, int b) throws UngueltigeZahlException {\n\u002F\u002F Eigene Exception, wenn b negativ ist\nif (b \u003C 0) {\nthrow new UngueltigeZahlException(\"Der Divisor darf nicht negativ sein!\");\n}\n\u002F\u002F Standard-Exception (Division durch 0) wird automatisch ausgelöst\nreturn a \u002F b;\n}\n}\n\u002F**\n* Eigene Exception für ungültige Parameter.\n* Erbt von Exception → checked exception.\n*\u002F\nclass UngueltigeZahlException extends Exception {\npublic UngueltigeZahlException(String message) {\nsuper(message);\n}\n}\n",[4653,86379,86380,86384,86389,86394,86399,86404,86409,86413,86424,86444,86450,86475,86491,86504,86509,86528,86541,86546,86564,86573,86578,86591,86595,86599,86603,86608,86613,86617,86647,86652,86664,86680,86684,86689,86699,86703,86707,86711,86716,86721,86725,86737,86749,86755,86759],{"__ignoreMap":269},[4173,86381,86382],{"class":4657,"line":4658},[4173,86383,80922],{"class":4766},[4173,86385,86386],{"class":4657,"line":270},[4173,86387,86388],{"class":4766},"* Dieses Beispiel zeigt den Umgang mit Exceptions:\n",[4173,86390,86391],{"class":4657,"line":1263},[4173,86392,86393],{"class":4766},"* - mehrere catch-Blöcke\n",[4173,86395,86396],{"class":4657,"line":4770},[4173,86397,86398],{"class":4766},"* - eigene Exception\n",[4173,86400,86401],{"class":4657,"line":4775},[4173,86402,86403],{"class":4766},"* - try-catch-finally\n",[4173,86405,86406],{"class":4657,"line":6320},[4173,86407,86408],{"class":4766},"* - bewusstes Auslösen von Exceptions (throw)\n",[4173,86410,86411],{"class":4657,"line":6325},[4173,86412,80972],{"class":4766},[4173,86414,86415,86417,86419,86422],{"class":4657,"line":6343},[4173,86416,79889],{"class":4788},[4173,86418,80062],{"class":4788},[4173,86420,86421],{"class":4661}," ExceptionBeispiel",[4173,86423,51614],{"class":4784},[4173,86425,86426,86428,86430,86432,86434,86436,86438,86440,86442],{"class":4657,"line":6348},[4173,86427,79889],{"class":4788},[4173,86429,79892],{"class":4788},[4173,86431,79934],{"class":4788},[4173,86433,79937],{"class":4661},[4173,86435,6390],{"class":4784},[4173,86437,79693],{"class":4788},[4173,86439,80084],{"class":4784},[4173,86441,31283],{"class":7074},[4173,86443,56319],{"class":4784},[4173,86445,86446,86448],{"class":4657,"line":6457},[4173,86447,85839],{"class":4788},[4173,86449,51614],{"class":4784},[4173,86451,86452,86454,86456,86458,86461,86463,86465,86467,86469,86472],{"class":4657,"line":6462},[4173,86453,64831],{"class":4788},[4173,86455,66241],{"class":4784},[4173,86457,6387],{"class":4788},[4173,86459,86460],{"class":4661}," teile",[4173,86462,6390],{"class":4784},[4173,86464,81676],{"class":4665},[4173,86466,8629],{"class":4784},[4173,86468,12749],{"class":4665},[4173,86470,86471],{"class":4784},");  ",[4173,86473,86474],{"class":4766},"\u002F\u002F wir provozieren eine Division durch 0\n",[4173,86476,86477,86479,86481,86483,86486,86488],{"class":4657,"line":6468},[4173,86478,79043],{"class":4784},[4173,86480,79074],{"class":4661},[4173,86482,6390],{"class":4784},[4173,86484,86485],{"class":4669},"\"Ergebnis: \"",[4173,86487,11719],{"class":4788},[4173,86489,86490],{"class":4784}," ergebnis);\n",[4173,86492,86493,86495,86497,86500,86502],{"class":4657,"line":6473},[4173,86494,71897],{"class":4784},[4173,86496,85917],{"class":4788},[4173,86498,86499],{"class":4784}," (ArithmeticException ",[4173,86501,20602],{"class":7074},[4173,86503,56319],{"class":4784},[4173,86505,86506],{"class":4657,"line":6479},[4173,86507,86508],{"class":4766},"\u002F\u002F Abfangen einer Standard-Exception\n",[4173,86510,86511,86513,86515,86517,86520,86522,86524,86526],{"class":4657,"line":6503},[4173,86512,85934],{"class":4784},[4173,86514,79074],{"class":4661},[4173,86516,6390],{"class":4784},[4173,86518,86519],{"class":4669},"\"Mathematischer Fehler: \"",[4173,86521,11719],{"class":4788},[4173,86523,85946],{"class":4784},[4173,86525,85949],{"class":4661},[4173,86527,81860],{"class":4784},[4173,86529,86530,86532,86534,86537,86539],{"class":4657,"line":6516},[4173,86531,71897],{"class":4784},[4173,86533,85917],{"class":4788},[4173,86535,86536],{"class":4784}," (UngueltigeZahlException ",[4173,86538,20602],{"class":7074},[4173,86540,56319],{"class":4784},[4173,86542,86543],{"class":4657,"line":6971},[4173,86544,86545],{"class":4766},"\u002F\u002F Abfangen unserer eigenen Exception\n",[4173,86547,86548,86550,86552,86554,86556,86558,86560,86562],{"class":4657,"line":10649},[4173,86549,85934],{"class":4784},[4173,86551,79074],{"class":4661},[4173,86553,6390],{"class":4784},[4173,86555,85941],{"class":4669},[4173,86557,11719],{"class":4788},[4173,86559,85946],{"class":4784},[4173,86561,85949],{"class":4661},[4173,86563,81860],{"class":4784},[4173,86565,86566,86568,86571],{"class":4657,"line":10654},[4173,86567,71897],{"class":4784},[4173,86569,86570],{"class":4788},"finally",[4173,86572,51614],{"class":4784},[4173,86574,86575],{"class":4657,"line":10659},[4173,86576,86577],{"class":4766},"\u002F\u002F Wird IMMER ausgeführt, egal ob Fehler passiert oder nicht\n",[4173,86579,86580,86582,86584,86586,86589],{"class":4657,"line":10664},[4173,86581,79043],{"class":4784},[4173,86583,79074],{"class":4661},[4173,86585,6390],{"class":4784},[4173,86587,86588],{"class":4669},"\"Finally-Block wurde ausgeführt.\"",[4173,86590,55545],{"class":4784},[4173,86592,86593],{"class":4657,"line":10676},[4173,86594,7090],{"class":4784},[4173,86596,86597],{"class":4657,"line":10681},[4173,86598,7090],{"class":4784},[4173,86600,86601],{"class":4657,"line":10702},[4173,86602,80922],{"class":4766},[4173,86604,86605],{"class":4657,"line":10707},[4173,86606,86607],{"class":4766},"* Methode teilt zwei Zahlen.\n",[4173,86609,86610],{"class":4657,"line":10712},[4173,86611,86612],{"class":4766},"* Wirft unsere eigene Exception, wenn der zweite Parameter negativ ist.\n",[4173,86614,86615],{"class":4657,"line":10717},[4173,86616,80972],{"class":4766},[4173,86618,86619,86621,86623,86625,86627,86629,86631,86634,86636,86638,86640,86642,86644],{"class":4657,"line":10727},[4173,86620,79889],{"class":4788},[4173,86622,79892],{"class":4788},[4173,86624,79895],{"class":4788},[4173,86626,86460],{"class":4661},[4173,86628,6390],{"class":4784},[4173,86630,64831],{"class":4788},[4173,86632,86633],{"class":7074}," a",[4173,86635,8629],{"class":4784},[4173,86637,64831],{"class":4788},[4173,86639,47893],{"class":7074},[4173,86641,6306],{"class":4784},[4173,86643,86035],{"class":4788},[4173,86645,86646],{"class":4784}," UngueltigeZahlException {\n",[4173,86648,86649],{"class":4657,"line":10732},[4173,86650,86651],{"class":4766},"\u002F\u002F Eigene Exception, wenn b negativ ist\n",[4173,86653,86654,86656,86658,86660,86662],{"class":4657,"line":10737},[4173,86655,6201],{"class":4788},[4173,86657,48600],{"class":4784},[4173,86659,24345],{"class":4788},[4173,86661,25370],{"class":4665},[4173,86663,56319],{"class":4784},[4173,86665,86666,86668,86670,86673,86675,86678],{"class":4657,"line":10742},[4173,86667,86171],{"class":4788},[4173,86669,79032],{"class":4788},[4173,86671,86672],{"class":4661}," UngueltigeZahlException",[4173,86674,6390],{"class":4784},[4173,86676,86677],{"class":4669},"\"Der Divisor darf nicht negativ sein!\"",[4173,86679,55545],{"class":4784},[4173,86681,86682],{"class":4657,"line":10752},[4173,86683,7090],{"class":4784},[4173,86685,86686],{"class":4657,"line":10757},[4173,86687,86688],{"class":4766},"\u002F\u002F Standard-Exception (Division durch 0) wird automatisch ausgelöst\n",[4173,86690,86691,86693,86695,86697],{"class":4657,"line":10762},[4173,86692,51326],{"class":4788},[4173,86694,79143],{"class":4784},[4173,86696,13658],{"class":4788},[4173,86698,79921],{"class":4784},[4173,86700,86701],{"class":4657,"line":10767},[4173,86702,7090],{"class":4784},[4173,86704,86705],{"class":4657,"line":10772},[4173,86706,7090],{"class":4784},[4173,86708,86709],{"class":4657,"line":10777},[4173,86710,80922],{"class":4766},[4173,86712,86713],{"class":4657,"line":10782},[4173,86714,86715],{"class":4766},"* Eigene Exception für ungültige Parameter.\n",[4173,86717,86718],{"class":4657,"line":10787},[4173,86719,86720],{"class":4766},"* Erbt von Exception → checked exception.\n",[4173,86722,86723],{"class":4657,"line":10800},[4173,86724,80972],{"class":4766},[4173,86726,86727,86729,86731,86733,86735],{"class":4657,"line":10805},[4173,86728,79983],{"class":4788},[4173,86730,86672],{"class":4661},[4173,86732,80500],{"class":4788},[4173,86734,86331],{"class":4661},[4173,86736,51614],{"class":4784},[4173,86738,86739,86741,86743,86745,86747],{"class":4657,"line":10818},[4173,86740,79889],{"class":4788},[4173,86742,86672],{"class":4661},[4173,86744,80001],{"class":4784},[4173,86746,86349],{"class":7074},[4173,86748,56319],{"class":4784},[4173,86750,86751,86753],{"class":4657,"line":10823},[4173,86752,80521],{"class":4665},[4173,86754,86358],{"class":4784},[4173,86756,86757],{"class":4657,"line":10836},[4173,86758,7090],{"class":4784},[4173,86760,86761],{"class":4657,"line":10841},[4173,86762,7090],{"class":4784},[16,86764,86766],{"id":86765},"alles-über-strings-buch-s-197","Alles über Strings Buch s. 197",[16,86768,86770],{"id":86769},"_1strings","1.Strings",[4647,86772,86774],{"className":78931,"code":86773,"language":78933,"meta":269,"style":269},"public class StringExample {\npublic static void main(String[] args) {\nString text = \"Hello World\";\n\u002F\u002F Länge\nSystem.out.println(\"Länge: \" + text.length()); \u002F\u002F Länge: 11\n\u002F\u002F Groß-\u002FKleinschreibung\nSystem.out.println(\"UpperCase: \" + text.toUpperCase()); \u002F\u002F UpperCase:\n",[4653,86775,86776,86787,86807,86818,86823,86847,86852],{"__ignoreMap":269},[4173,86777,86778,86780,86782,86785],{"class":4657,"line":4658},[4173,86779,79889],{"class":4788},[4173,86781,80062],{"class":4788},[4173,86783,86784],{"class":4661}," StringExample",[4173,86786,51614],{"class":4784},[4173,86788,86789,86791,86793,86795,86797,86799,86801,86803,86805],{"class":4657,"line":270},[4173,86790,79889],{"class":4788},[4173,86792,79892],{"class":4788},[4173,86794,79934],{"class":4788},[4173,86796,79937],{"class":4661},[4173,86798,6390],{"class":4784},[4173,86800,79693],{"class":4788},[4173,86802,80084],{"class":4784},[4173,86804,31283],{"class":7074},[4173,86806,56319],{"class":4784},[4173,86808,86809,86811,86813,86816],{"class":4657,"line":1263},[4173,86810,79681],{"class":4784},[4173,86812,6387],{"class":4788},[4173,86814,86815],{"class":4669}," \"Hello World\"",[4173,86817,55559],{"class":4784},[4173,86819,86820],{"class":4657,"line":4770},[4173,86821,86822],{"class":4766},"\u002F\u002F Länge\n",[4173,86824,86825,86827,86829,86831,86834,86836,86838,86841,86844],{"class":4657,"line":4775},[4173,86826,79043],{"class":4784},[4173,86828,79074],{"class":4661},[4173,86830,6390],{"class":4784},[4173,86832,86833],{"class":4669},"\"Länge: \"",[4173,86835,11719],{"class":4788},[4173,86837,79701],{"class":4784},[4173,86839,86840],{"class":4661},"length",[4173,86842,86843],{"class":4784},"()); ",[4173,86845,86846],{"class":4766},"\u002F\u002F Länge: 11\n",[4173,86848,86849],{"class":4657,"line":6320},[4173,86850,86851],{"class":4766},"\u002F\u002F Groß-\u002FKleinschreibung\n",[4173,86853,86854,86856,86858,86860,86863,86865,86867,86869,86871],{"class":4657,"line":6325},[4173,86855,79043],{"class":4784},[4173,86857,79074],{"class":4661},[4173,86859,6390],{"class":4784},[4173,86861,86862],{"class":4669},"\"UpperCase: \"",[4173,86864,11719],{"class":4788},[4173,86866,79701],{"class":4784},[4173,86868,85895],{"class":4661},[4173,86870,86843],{"class":4784},[4173,86872,86873],{"class":4766},"\u002F\u002F UpperCase:\n",[11,86875,86877],{"id":86876},"hello-world","HELLO WORLD",[4647,86879,86881],{"className":78931,"code":86880,"language":78933,"meta":269,"style":269},"System.out.println(\"LowerCase: \" + text.toLowerCase()); \u002F\u002F LowerCase:\nhello world\n\u002F\u002F Zeichenzugriff\nSystem.out.println(\"Zeichen an Index 1: \" + text.charAt(1)); \u002F\u002F\nZeichen an Index 1: e\n\u002F\u002F Vergleich\nSystem.out.println(\"Vergleich mit 'Hello': \" + text.equals(\"Hello\"));\n\u002F\u002F Vergleich mit 'Hello': false\n\u002F\u002F Teilstring\nSystem.out.println(\"Substring(0,5): \" + text.substring(0,5)); \u002F\u002F\nSubstring(0,5): Hello\n\u002F\u002F Ersetzen\nSystem.out.println(\"Ersetze 'World' durch 'Java': \" +\ntext.replace(\"World\", \"Java\")); \u002F\u002F Ersetze 'World' durch 'Java': Hello Java\n\u002F\u002F Trimmen\nString text2 = \"   Hallo   \";\nSystem.out.println(\"Getrimmt: '\" + text2.trim() + \"'\"); \u002F\u002F Getrimmt:\n'Hallo'\n\u002F\u002F Aufteilen\nString[] words = text.split(\" \");\nfor(String word : words) {\nSystem.out.println(\"Word: \" + word);\n\u002F\u002F Word: Hello\n\u002F\u002F Word: World\n}\n\u002F\u002F Enthält prüfen\nSystem.out.println(\"Enthält 'World'? \" + text.contains(\"World\")); \u002F\u002F\nEnthält 'World'? true\n}\n}\n",[4653,86882,86883,86906,86911,86916,86942,86954,86959,86984,86989,86994,87024,87044,87049,87062,87085,87090,87102,87132,87137,87142,87160,87170,87186,87191,87196,87200,87205,87231,87242,87246],{"__ignoreMap":269},[4173,86884,86885,86887,86889,86891,86894,86896,86898,86901,86903],{"class":4657,"line":4658},[4173,86886,79043],{"class":4784},[4173,86888,79074],{"class":4661},[4173,86890,6390],{"class":4784},[4173,86892,86893],{"class":4669},"\"LowerCase: \"",[4173,86895,11719],{"class":4788},[4173,86897,79701],{"class":4784},[4173,86899,86900],{"class":4661},"toLowerCase",[4173,86902,86843],{"class":4784},[4173,86904,86905],{"class":4766},"\u002F\u002F LowerCase:\n",[4173,86907,86908],{"class":4657,"line":270},[4173,86909,86910],{"class":4784},"hello world\n",[4173,86912,86913],{"class":4657,"line":1263},[4173,86914,86915],{"class":4766},"\u002F\u002F Zeichenzugriff\n",[4173,86917,86918,86920,86922,86924,86927,86929,86931,86934,86936,86938,86940],{"class":4657,"line":4770},[4173,86919,79043],{"class":4784},[4173,86921,79074],{"class":4661},[4173,86923,6390],{"class":4784},[4173,86925,86926],{"class":4669},"\"Zeichen an Index 1: \"",[4173,86928,11719],{"class":4788},[4173,86930,79701],{"class":4784},[4173,86932,86933],{"class":4661},"charAt",[4173,86935,6390],{"class":4784},[4173,86937,14223],{"class":4665},[4173,86939,48385],{"class":4784},[4173,86941,64632],{"class":4766},[4173,86943,86944,86947,86949,86951],{"class":4657,"line":4775},[4173,86945,86946],{"class":4784},"Zeichen an Index ",[4173,86948,14223],{"class":4665},[4173,86950,8158],{"class":4788},[4173,86952,86953],{"class":4784}," e\n",[4173,86955,86956],{"class":4657,"line":6320},[4173,86957,86958],{"class":4766},"\u002F\u002F Vergleich\n",[4173,86960,86961,86963,86965,86967,86970,86972,86974,86977,86979,86982],{"class":4657,"line":6325},[4173,86962,79043],{"class":4784},[4173,86964,79074],{"class":4661},[4173,86966,6390],{"class":4784},[4173,86968,86969],{"class":4669},"\"Vergleich mit 'Hello': \"",[4173,86971,11719],{"class":4788},[4173,86973,79701],{"class":4784},[4173,86975,86976],{"class":4661},"equals",[4173,86978,6390],{"class":4784},[4173,86980,86981],{"class":4669},"\"Hello\"",[4173,86983,66047],{"class":4784},[4173,86985,86986],{"class":4657,"line":6343},[4173,86987,86988],{"class":4766},"\u002F\u002F Vergleich mit 'Hello': false\n",[4173,86990,86991],{"class":4657,"line":6348},[4173,86992,86993],{"class":4766},"\u002F\u002F Teilstring\n",[4173,86995,86996,86998,87000,87002,87005,87007,87009,87012,87014,87016,87018,87020,87022],{"class":4657,"line":6457},[4173,86997,79043],{"class":4784},[4173,86999,79074],{"class":4661},[4173,87001,6390],{"class":4784},[4173,87003,87004],{"class":4669},"\"Substring(0,5): \"",[4173,87006,11719],{"class":4788},[4173,87008,79701],{"class":4784},[4173,87010,87011],{"class":4661},"substring",[4173,87013,6390],{"class":4784},[4173,87015,12749],{"class":4665},[4173,87017,42920],{"class":4784},[4173,87019,14292],{"class":4665},[4173,87021,48385],{"class":4784},[4173,87023,64632],{"class":4766},[4173,87025,87026,87029,87031,87033,87035,87037,87039,87041],{"class":4657,"line":6462},[4173,87027,87028],{"class":4661},"Substring",[4173,87030,6390],{"class":4784},[4173,87032,12749],{"class":4665},[4173,87034,42920],{"class":4784},[4173,87036,14292],{"class":4665},[4173,87038,6282],{"class":4784},[4173,87040,8158],{"class":4788},[4173,87042,87043],{"class":4784}," Hello\n",[4173,87045,87046],{"class":4657,"line":6468},[4173,87047,87048],{"class":4766},"\u002F\u002F Ersetzen\n",[4173,87050,87051,87053,87055,87057,87060],{"class":4657,"line":6473},[4173,87052,79043],{"class":4784},[4173,87054,79074],{"class":4661},[4173,87056,6390],{"class":4784},[4173,87058,87059],{"class":4669},"\"Ersetze 'World' durch 'Java': \"",[4173,87061,18989],{"class":4788},[4173,87063,87064,87067,87070,87072,87075,87077,87080,87082],{"class":4657,"line":6479},[4173,87065,87066],{"class":4784},"text.",[4173,87068,87069],{"class":4661},"replace",[4173,87071,6390],{"class":4784},[4173,87073,87074],{"class":4669},"\"World\"",[4173,87076,8629],{"class":4784},[4173,87078,87079],{"class":4669},"\"Java\"",[4173,87081,48385],{"class":4784},[4173,87083,87084],{"class":4766},"\u002F\u002F Ersetze 'World' durch 'Java': Hello Java\n",[4173,87086,87087],{"class":4657,"line":6503},[4173,87088,87089],{"class":4766},"\u002F\u002F Trimmen\n",[4173,87091,87092,87095,87097,87100],{"class":4657,"line":6516},[4173,87093,87094],{"class":4784},"String text2 ",[4173,87096,6387],{"class":4788},[4173,87098,87099],{"class":4669}," \"   Hallo   \"",[4173,87101,55559],{"class":4784},[4173,87103,87104,87106,87108,87110,87113,87115,87118,87120,87122,87124,87127,87129],{"class":4657,"line":6971},[4173,87105,79043],{"class":4784},[4173,87107,79074],{"class":4661},[4173,87109,6390],{"class":4784},[4173,87111,87112],{"class":4669},"\"Getrimmt: '\"",[4173,87114,11719],{"class":4788},[4173,87116,87117],{"class":4784}," text2.",[4173,87119,86160],{"class":4661},[4173,87121,80558],{"class":4784},[4173,87123,14419],{"class":4788},[4173,87125,87126],{"class":4669}," \"'\"",[4173,87128,79107],{"class":4784},[4173,87130,87131],{"class":4766},"\u002F\u002F Getrimmt:\n",[4173,87133,87134],{"class":4657,"line":10649},[4173,87135,87136],{"class":4669},"'Hallo'\n",[4173,87138,87139],{"class":4657,"line":10654},[4173,87140,87141],{"class":4766},"\u002F\u002F Aufteilen\n",[4173,87143,87144,87146,87148,87150,87152,87154,87156,87158],{"class":4657,"line":10659},[4173,87145,79693],{"class":4788},[4173,87147,79696],{"class":4784},[4173,87149,6387],{"class":4788},[4173,87151,79701],{"class":4784},[4173,87153,79704],{"class":4661},[4173,87155,6390],{"class":4784},[4173,87157,79709],{"class":4669},[4173,87159,55545],{"class":4784},[4173,87161,87162,87164,87166,87168],{"class":4657,"line":10664},[4173,87163,6425],{"class":4788},[4173,87165,79731],{"class":4784},[4173,87167,8158],{"class":4788},[4173,87169,79736],{"class":4784},[4173,87171,87172,87174,87176,87178,87181,87183],{"class":4657,"line":10676},[4173,87173,79043],{"class":4784},[4173,87175,79074],{"class":4661},[4173,87177,6390],{"class":4784},[4173,87179,87180],{"class":4669},"\"Word: \"",[4173,87182,11719],{"class":4788},[4173,87184,87185],{"class":4784}," word);\n",[4173,87187,87188],{"class":4657,"line":10681},[4173,87189,87190],{"class":4766},"\u002F\u002F Word: Hello\n",[4173,87192,87193],{"class":4657,"line":10702},[4173,87194,87195],{"class":4766},"\u002F\u002F Word: World\n",[4173,87197,87198],{"class":4657,"line":10707},[4173,87199,7090],{"class":4784},[4173,87201,87202],{"class":4657,"line":10712},[4173,87203,87204],{"class":4766},"\u002F\u002F Enthält prüfen\n",[4173,87206,87207,87209,87211,87213,87216,87218,87220,87223,87225,87227,87229],{"class":4657,"line":10717},[4173,87208,79043],{"class":4784},[4173,87210,79074],{"class":4661},[4173,87212,6390],{"class":4784},[4173,87214,87215],{"class":4669},"\"Enthält 'World'? \"",[4173,87217,11719],{"class":4788},[4173,87219,79701],{"class":4784},[4173,87221,87222],{"class":4661},"contains",[4173,87224,6390],{"class":4784},[4173,87226,87074],{"class":4669},[4173,87228,48385],{"class":4784},[4173,87230,64632],{"class":4766},[4173,87232,87233,87236,87238,87240],{"class":4657,"line":10727},[4173,87234,87235],{"class":4784},"Enthält ",[4173,87237,66810],{"class":4669},[4173,87239,17533],{"class":4788},[4173,87241,26582],{"class":4665},[4173,87243,87244],{"class":4657,"line":10732},[4173,87245,7090],{"class":4784},[4173,87247,87248],{"class":4657,"line":10737},[4173,87249,7090],{"class":4784},[16,87251,87253],{"id":87252},"_2-stringbuilder","2. StringBuilder",[4647,87255,87257],{"className":78931,"code":87256,"language":78933,"meta":269,"style":269},"public class StringBuilderExample {\npublic static void main(String[] args) {\nStringBuilder sb = new StringBuilder(\"Hello\");\n\u002F\u002F Anhängen\nsb.append(\" World\");\nSystem.out.println(sb); \u002F\u002F Hello World\n\u002F\u002F Einfügen\nsb.insert(6, \"Java \");\nSystem.out.println(sb); \u002F\u002F Hello Java World\n\u002F\u002F Löschen\nsb.delete(6, 11);\nSystem.out.println(sb); \u002F\u002F Hello World\n\u002F\u002F Zeichen ersetzen\nsb.setCharAt(0, 'h');\nSystem.out.println(sb); \u002F\u002F hello World\n\u002F\u002F Umkehren\nsb.reverse();\nSystem.out.println(\"Reverse: \" + sb); \u002F\u002F Reverse: dlroW olleh\n\u002F\u002F Länge\nSystem.out.println(\"Length: \" + sb.length()); \u002F\u002F Length: 11\n}\n}\n",[4653,87258,87259,87270,87290,87306,87311,87324,87336,87341,87359,87370,87375,87393,87403,87408,87426,87437,87442,87451,87470,87474,87496,87500],{"__ignoreMap":269},[4173,87260,87261,87263,87265,87268],{"class":4657,"line":4658},[4173,87262,79889],{"class":4788},[4173,87264,80062],{"class":4788},[4173,87266,87267],{"class":4661}," StringBuilderExample",[4173,87269,51614],{"class":4784},[4173,87271,87272,87274,87276,87278,87280,87282,87284,87286,87288],{"class":4657,"line":270},[4173,87273,79889],{"class":4788},[4173,87275,79892],{"class":4788},[4173,87277,79934],{"class":4788},[4173,87279,79937],{"class":4661},[4173,87281,6390],{"class":4784},[4173,87283,79693],{"class":4788},[4173,87285,80084],{"class":4784},[4173,87287,31283],{"class":7074},[4173,87289,56319],{"class":4784},[4173,87291,87292,87294,87296,87298,87300,87302,87304],{"class":4657,"line":1263},[4173,87293,86043],{"class":4784},[4173,87295,6387],{"class":4788},[4173,87297,79032],{"class":4788},[4173,87299,86050],{"class":4661},[4173,87301,6390],{"class":4784},[4173,87303,86981],{"class":4669},[4173,87305,55545],{"class":4784},[4173,87307,87308],{"class":4657,"line":4770},[4173,87309,87310],{"class":4766},"\u002F\u002F Anhängen\n",[4173,87312,87313,87315,87317,87319,87322],{"class":4657,"line":4775},[4173,87314,86115],{"class":4784},[4173,87316,86118],{"class":4661},[4173,87318,6390],{"class":4784},[4173,87320,87321],{"class":4669},"\" World\"",[4173,87323,55545],{"class":4784},[4173,87325,87326,87328,87330,87333],{"class":4657,"line":6320},[4173,87327,79043],{"class":4784},[4173,87329,79074],{"class":4661},[4173,87331,87332],{"class":4784},"(sb); ",[4173,87334,87335],{"class":4766},"\u002F\u002F Hello World\n",[4173,87337,87338],{"class":4657,"line":6325},[4173,87339,87340],{"class":4766},"\u002F\u002F Einfügen\n",[4173,87342,87343,87345,87348,87350,87352,87354,87357],{"class":4657,"line":6343},[4173,87344,86115],{"class":4784},[4173,87346,87347],{"class":4661},"insert",[4173,87349,6390],{"class":4784},[4173,87351,14278],{"class":4665},[4173,87353,8629],{"class":4784},[4173,87355,87356],{"class":4669},"\"Java \"",[4173,87358,55545],{"class":4784},[4173,87360,87361,87363,87365,87367],{"class":4657,"line":6348},[4173,87362,79043],{"class":4784},[4173,87364,79074],{"class":4661},[4173,87366,87332],{"class":4784},[4173,87368,87369],{"class":4766},"\u002F\u002F Hello Java World\n",[4173,87371,87372],{"class":4657,"line":6457},[4173,87373,87374],{"class":4766},"\u002F\u002F Löschen\n",[4173,87376,87377,87379,87382,87384,87386,87388,87391],{"class":4657,"line":6462},[4173,87378,86115],{"class":4784},[4173,87380,87381],{"class":4661},"delete",[4173,87383,6390],{"class":4784},[4173,87385,14278],{"class":4665},[4173,87387,8629],{"class":4784},[4173,87389,87390],{"class":4665},"11",[4173,87392,55545],{"class":4784},[4173,87394,87395,87397,87399,87401],{"class":4657,"line":6468},[4173,87396,79043],{"class":4784},[4173,87398,79074],{"class":4661},[4173,87400,87332],{"class":4784},[4173,87402,87335],{"class":4766},[4173,87404,87405],{"class":4657,"line":6473},[4173,87406,87407],{"class":4766},"\u002F\u002F Zeichen ersetzen\n",[4173,87409,87410,87412,87415,87417,87419,87421,87424],{"class":4657,"line":6479},[4173,87411,86115],{"class":4784},[4173,87413,87414],{"class":4661},"setCharAt",[4173,87416,6390],{"class":4784},[4173,87418,12749],{"class":4665},[4173,87420,8629],{"class":4784},[4173,87422,87423],{"class":4669},"'h'",[4173,87425,55545],{"class":4784},[4173,87427,87428,87430,87432,87434],{"class":4657,"line":6503},[4173,87429,79043],{"class":4784},[4173,87431,79074],{"class":4661},[4173,87433,87332],{"class":4784},[4173,87435,87436],{"class":4766},"\u002F\u002F hello World\n",[4173,87438,87439],{"class":4657,"line":6516},[4173,87440,87441],{"class":4766},"\u002F\u002F Umkehren\n",[4173,87443,87444,87446,87449],{"class":4657,"line":6971},[4173,87445,86115],{"class":4784},[4173,87447,87448],{"class":4661},"reverse",[4173,87450,65878],{"class":4784},[4173,87452,87453,87455,87457,87459,87462,87464,87467],{"class":4657,"line":10649},[4173,87454,79043],{"class":4784},[4173,87456,79074],{"class":4661},[4173,87458,6390],{"class":4784},[4173,87460,87461],{"class":4669},"\"Reverse: \"",[4173,87463,11719],{"class":4788},[4173,87465,87466],{"class":4784}," sb); ",[4173,87468,87469],{"class":4766},"\u002F\u002F Reverse: dlroW olleh\n",[4173,87471,87472],{"class":4657,"line":10654},[4173,87473,86822],{"class":4766},[4173,87475,87476,87478,87480,87482,87485,87487,87489,87491,87493],{"class":4657,"line":10659},[4173,87477,79043],{"class":4784},[4173,87479,79074],{"class":4661},[4173,87481,6390],{"class":4784},[4173,87483,87484],{"class":4669},"\"Length: \"",[4173,87486,11719],{"class":4788},[4173,87488,86204],{"class":4784},[4173,87490,86840],{"class":4661},[4173,87492,86843],{"class":4784},[4173,87494,87495],{"class":4766},"\u002F\u002F Length: 11\n",[4173,87497,87498],{"class":4657,"line":10664},[4173,87499,7090],{"class":4784},[4173,87501,87502],{"class":4657,"line":10676},[4173,87503,7090],{"class":4784},[16,87505,87507],{"id":87506},"_3-stringbuffer","3. StringBuffer",[4647,87509,87511],{"className":78931,"code":87510,"language":78933,"meta":269,"style":269},"public class StringBufferExample {\npublic static void main(String[] args) {\nStringBuffer sb = new StringBuffer(\"Hello\");\nsb.append(\" World\");\nSystem.out.println(sb); \u002F\u002F Hello World\nsb.insert(6, \"Java \");\nSystem.out.println(sb); \u002F\u002F Hello Java World\nsb.replace(6, 10, \"C++\");\nSystem.out.println(sb); \u002F\u002F Hello C++ World\nsb.delete(6, 9);\nSystem.out.println(sb); \u002F\u002F Hello + World\nsb.reverse();\nSystem.out.println(\"Reverse: \" + sb); \u002F\u002F Reverse: dlroW + olleH\n}\n}\n",[4653,87512,87513,87524,87544,87562,87574,87584,87600,87610,87631,87642,87658,87669,87677,87694,87698],{"__ignoreMap":269},[4173,87514,87515,87517,87519,87522],{"class":4657,"line":4658},[4173,87516,79889],{"class":4788},[4173,87518,80062],{"class":4788},[4173,87520,87521],{"class":4661}," StringBufferExample",[4173,87523,51614],{"class":4784},[4173,87525,87526,87528,87530,87532,87534,87536,87538,87540,87542],{"class":4657,"line":270},[4173,87527,79889],{"class":4788},[4173,87529,79892],{"class":4788},[4173,87531,79934],{"class":4788},[4173,87533,79937],{"class":4661},[4173,87535,6390],{"class":4784},[4173,87537,79693],{"class":4788},[4173,87539,80084],{"class":4784},[4173,87541,31283],{"class":7074},[4173,87543,56319],{"class":4784},[4173,87545,87546,87549,87551,87553,87556,87558,87560],{"class":4657,"line":1263},[4173,87547,87548],{"class":4784},"StringBuffer sb ",[4173,87550,6387],{"class":4788},[4173,87552,79032],{"class":4788},[4173,87554,87555],{"class":4661}," StringBuffer",[4173,87557,6390],{"class":4784},[4173,87559,86981],{"class":4669},[4173,87561,55545],{"class":4784},[4173,87563,87564,87566,87568,87570,87572],{"class":4657,"line":4770},[4173,87565,86115],{"class":4784},[4173,87567,86118],{"class":4661},[4173,87569,6390],{"class":4784},[4173,87571,87321],{"class":4669},[4173,87573,55545],{"class":4784},[4173,87575,87576,87578,87580,87582],{"class":4657,"line":4775},[4173,87577,79043],{"class":4784},[4173,87579,79074],{"class":4661},[4173,87581,87332],{"class":4784},[4173,87583,87335],{"class":4766},[4173,87585,87586,87588,87590,87592,87594,87596,87598],{"class":4657,"line":6320},[4173,87587,86115],{"class":4784},[4173,87589,87347],{"class":4661},[4173,87591,6390],{"class":4784},[4173,87593,14278],{"class":4665},[4173,87595,8629],{"class":4784},[4173,87597,87356],{"class":4669},[4173,87599,55545],{"class":4784},[4173,87601,87602,87604,87606,87608],{"class":4657,"line":6325},[4173,87603,79043],{"class":4784},[4173,87605,79074],{"class":4661},[4173,87607,87332],{"class":4784},[4173,87609,87369],{"class":4766},[4173,87611,87612,87614,87616,87618,87620,87622,87624,87626,87629],{"class":4657,"line":6343},[4173,87613,86115],{"class":4784},[4173,87615,87069],{"class":4661},[4173,87617,6390],{"class":4784},[4173,87619,14278],{"class":4665},[4173,87621,8629],{"class":4784},[4173,87623,81676],{"class":4665},[4173,87625,8629],{"class":4784},[4173,87627,87628],{"class":4669},"\"C++\"",[4173,87630,55545],{"class":4784},[4173,87632,87633,87635,87637,87639],{"class":4657,"line":6348},[4173,87634,79043],{"class":4784},[4173,87636,79074],{"class":4661},[4173,87638,87332],{"class":4784},[4173,87640,87641],{"class":4766},"\u002F\u002F Hello C++ World\n",[4173,87643,87644,87646,87648,87650,87652,87654,87656],{"class":4657,"line":6457},[4173,87645,86115],{"class":4784},[4173,87647,87381],{"class":4661},[4173,87649,6390],{"class":4784},[4173,87651,14278],{"class":4665},[4173,87653,8629],{"class":4784},[4173,87655,33983],{"class":4665},[4173,87657,55545],{"class":4784},[4173,87659,87660,87662,87664,87666],{"class":4657,"line":6462},[4173,87661,79043],{"class":4784},[4173,87663,79074],{"class":4661},[4173,87665,87332],{"class":4784},[4173,87667,87668],{"class":4766},"\u002F\u002F Hello + World\n",[4173,87670,87671,87673,87675],{"class":4657,"line":6468},[4173,87672,86115],{"class":4784},[4173,87674,87448],{"class":4661},[4173,87676,65878],{"class":4784},[4173,87678,87679,87681,87683,87685,87687,87689,87691],{"class":4657,"line":6473},[4173,87680,79043],{"class":4784},[4173,87682,79074],{"class":4661},[4173,87684,6390],{"class":4784},[4173,87686,87461],{"class":4669},[4173,87688,11719],{"class":4788},[4173,87690,87466],{"class":4784},[4173,87692,87693],{"class":4766},"\u002F\u002F Reverse: dlroW + olleH\n",[4173,87695,87696],{"class":4657,"line":6479},[4173,87697,7090],{"class":4784},[4173,87699,87700],{"class":4657,"line":6503},[4173,87701,7090],{"class":4784},[16,87703,87705],{"id":87704},"_4-charsequence","4. CharSequence",[4647,87707,87709],{"className":78931,"code":87708,"language":78933,"meta":269,"style":269},"public class CharSequenceExample {\npublic static void main(String[] args) {\nCharSequence cs1 = \"Hello\"; \u002F\u002F String\nCharSequence cs2 = new StringBuilder(\"World\"); \u002F\u002F StringBuilder\nSystem.out.println(\"Länge cs1: \" + cs1.length()); \u002F\u002F Länge cs1: 5\nSystem.out.println(\"Zeichen an Index 1 cs2: \" + cs2.charAt(1)); \u002F\u002F\nZeichen an Index 1 cs2: o\n\u002F\u002F Subsequence\nSystem.out.println(\"Subsequence cs1: \" + cs1.subSequence(0, 4)); \u002F\u002F\nSubsequence cs1: Hell\nSystem.out.println(\"Subsequence cs2: \" + cs2.subSequence(1, 4)); \u002F\u002F\nSubsequence cs2: orl\n}\n}\n",[4653,87710,87711,87722,87742,87756,87776,87799,87825,87839,87844,87874,87884,87913,87923,87927],{"__ignoreMap":269},[4173,87712,87713,87715,87717,87720],{"class":4657,"line":4658},[4173,87714,79889],{"class":4788},[4173,87716,80062],{"class":4788},[4173,87718,87719],{"class":4661}," CharSequenceExample",[4173,87721,51614],{"class":4784},[4173,87723,87724,87726,87728,87730,87732,87734,87736,87738,87740],{"class":4657,"line":270},[4173,87725,79889],{"class":4788},[4173,87727,79892],{"class":4788},[4173,87729,79934],{"class":4788},[4173,87731,79937],{"class":4661},[4173,87733,6390],{"class":4784},[4173,87735,79693],{"class":4788},[4173,87737,80084],{"class":4784},[4173,87739,31283],{"class":7074},[4173,87741,56319],{"class":4784},[4173,87743,87744,87747,87749,87751,87753],{"class":4657,"line":1263},[4173,87745,87746],{"class":4784},"CharSequence cs1 ",[4173,87748,6387],{"class":4788},[4173,87750,52251],{"class":4669},[4173,87752,6498],{"class":4784},[4173,87754,87755],{"class":4766},"\u002F\u002F String\n",[4173,87757,87758,87761,87763,87765,87767,87769,87771,87773],{"class":4657,"line":4770},[4173,87759,87760],{"class":4784},"CharSequence cs2 ",[4173,87762,6387],{"class":4788},[4173,87764,79032],{"class":4788},[4173,87766,86050],{"class":4661},[4173,87768,6390],{"class":4784},[4173,87770,87074],{"class":4669},[4173,87772,79107],{"class":4784},[4173,87774,87775],{"class":4766},"\u002F\u002F StringBuilder\n",[4173,87777,87778,87780,87782,87784,87787,87789,87792,87794,87796],{"class":4657,"line":4775},[4173,87779,79043],{"class":4784},[4173,87781,79074],{"class":4661},[4173,87783,6390],{"class":4784},[4173,87785,87786],{"class":4669},"\"Länge cs1: \"",[4173,87788,11719],{"class":4788},[4173,87790,87791],{"class":4784}," cs1.",[4173,87793,86840],{"class":4661},[4173,87795,86843],{"class":4784},[4173,87797,87798],{"class":4766},"\u002F\u002F Länge cs1: 5\n",[4173,87800,87801,87803,87805,87807,87810,87812,87815,87817,87819,87821,87823],{"class":4657,"line":6320},[4173,87802,79043],{"class":4784},[4173,87804,79074],{"class":4661},[4173,87806,6390],{"class":4784},[4173,87808,87809],{"class":4669},"\"Zeichen an Index 1 cs2: \"",[4173,87811,11719],{"class":4788},[4173,87813,87814],{"class":4784}," cs2.",[4173,87816,86933],{"class":4661},[4173,87818,6390],{"class":4784},[4173,87820,14223],{"class":4665},[4173,87822,48385],{"class":4784},[4173,87824,64632],{"class":4766},[4173,87826,87827,87829,87831,87834,87836],{"class":4657,"line":6325},[4173,87828,86946],{"class":4784},[4173,87830,14223],{"class":4665},[4173,87832,87833],{"class":4784}," cs2",[4173,87835,8158],{"class":4788},[4173,87837,87838],{"class":4784}," o\n",[4173,87840,87841],{"class":4657,"line":6343},[4173,87842,87843],{"class":4766},"\u002F\u002F Subsequence\n",[4173,87845,87846,87848,87850,87852,87855,87857,87859,87862,87864,87866,87868,87870,87872],{"class":4657,"line":6348},[4173,87847,79043],{"class":4784},[4173,87849,79074],{"class":4661},[4173,87851,6390],{"class":4784},[4173,87853,87854],{"class":4669},"\"Subsequence cs1: \"",[4173,87856,11719],{"class":4788},[4173,87858,87791],{"class":4784},[4173,87860,87861],{"class":4661},"subSequence",[4173,87863,6390],{"class":4784},[4173,87865,12749],{"class":4665},[4173,87867,8629],{"class":4784},[4173,87869,2894],{"class":4665},[4173,87871,48385],{"class":4784},[4173,87873,64632],{"class":4766},[4173,87875,87876,87879,87881],{"class":4657,"line":6457},[4173,87877,87878],{"class":4784},"Subsequence cs1",[4173,87880,8158],{"class":4788},[4173,87882,87883],{"class":4784}," Hell\n",[4173,87885,87886,87888,87890,87892,87895,87897,87899,87901,87903,87905,87907,87909,87911],{"class":4657,"line":6462},[4173,87887,79043],{"class":4784},[4173,87889,79074],{"class":4661},[4173,87891,6390],{"class":4784},[4173,87893,87894],{"class":4669},"\"Subsequence cs2: \"",[4173,87896,11719],{"class":4788},[4173,87898,87814],{"class":4784},[4173,87900,87861],{"class":4661},[4173,87902,6390],{"class":4784},[4173,87904,14223],{"class":4665},[4173,87906,8629],{"class":4784},[4173,87908,2894],{"class":4665},[4173,87910,48385],{"class":4784},[4173,87912,64632],{"class":4766},[4173,87914,87915,87918,87920],{"class":4657,"line":6468},[4173,87916,87917],{"class":4784},"Subsequence cs2",[4173,87919,8158],{"class":4788},[4173,87921,87922],{"class":4784}," orl\n",[4173,87924,87925],{"class":4657,"line":6473},[4173,87926,7090],{"class":4784},[4173,87928,87929],{"class":4657,"line":6479},[4173,87930,7090],{"class":4784},[16,87932,87934],{"id":87933},"_5stringtokenizer","5.StringTokenizer",[4647,87936,87938],{"className":78931,"code":87937,"language":78933,"meta":269,"style":269},"import java.util.StringTokenizer;\npublic class TokenizerBeispiel {\npublic static void main(String[] args) {\nString text = \"Apfel,Birne,Banane,Kiwi\";\n\u002F\u002F StringTokenizer erstellen, Trennzeichen ist ein Komma\nStringTokenizer tokenizer = new StringTokenizer(text, \",\");\n\u002F\u002F Alle Tokens ausgeben\nwhile (tokenizer.hasMoreTokens()) {\nString token = tokenizer.nextToken();\nSystem.out.println(token);\n}\n}\n}\n",[4653,87939,87940,87947,87958,87978,87989,87994,88014,88019,88031,88046,88055,88059,88063],{"__ignoreMap":269},[4173,87941,87942,87944],{"class":4657,"line":4658},[4173,87943,79019],{"class":4788},[4173,87945,87946],{"class":4784}," java.util.StringTokenizer;\n",[4173,87948,87949,87951,87953,87956],{"class":4657,"line":270},[4173,87950,79889],{"class":4788},[4173,87952,80062],{"class":4788},[4173,87954,87955],{"class":4661}," TokenizerBeispiel",[4173,87957,51614],{"class":4784},[4173,87959,87960,87962,87964,87966,87968,87970,87972,87974,87976],{"class":4657,"line":1263},[4173,87961,79889],{"class":4788},[4173,87963,79892],{"class":4788},[4173,87965,79934],{"class":4788},[4173,87967,79937],{"class":4661},[4173,87969,6390],{"class":4784},[4173,87971,79693],{"class":4788},[4173,87973,80084],{"class":4784},[4173,87975,31283],{"class":7074},[4173,87977,56319],{"class":4784},[4173,87979,87980,87982,87984,87987],{"class":4657,"line":4770},[4173,87981,79681],{"class":4784},[4173,87983,6387],{"class":4788},[4173,87985,87986],{"class":4669}," \"Apfel,Birne,Banane,Kiwi\"",[4173,87988,55559],{"class":4784},[4173,87990,87991],{"class":4657,"line":4775},[4173,87992,87993],{"class":4766},"\u002F\u002F StringTokenizer erstellen, Trennzeichen ist ein Komma\n",[4173,87995,87996,87999,88001,88003,88006,88009,88012],{"class":4657,"line":6320},[4173,87997,87998],{"class":4784},"StringTokenizer tokenizer ",[4173,88000,6387],{"class":4788},[4173,88002,79032],{"class":4788},[4173,88004,88005],{"class":4661}," StringTokenizer",[4173,88007,88008],{"class":4784},"(text, ",[4173,88010,88011],{"class":4669},"\",\"",[4173,88013,55545],{"class":4784},[4173,88015,88016],{"class":4657,"line":6325},[4173,88017,88018],{"class":4766},"\u002F\u002F Alle Tokens ausgeben\n",[4173,88020,88021,88023,88026,88029],{"class":4657,"line":6343},[4173,88022,6694],{"class":4788},[4173,88024,88025],{"class":4784}," (tokenizer.",[4173,88027,88028],{"class":4661},"hasMoreTokens",[4173,88030,85158],{"class":4784},[4173,88032,88033,88036,88038,88041,88044],{"class":4657,"line":6348},[4173,88034,88035],{"class":4784},"String token ",[4173,88037,6387],{"class":4788},[4173,88039,88040],{"class":4784}," tokenizer.",[4173,88042,88043],{"class":4661},"nextToken",[4173,88045,65878],{"class":4784},[4173,88047,88048,88050,88052],{"class":4657,"line":6457},[4173,88049,79043],{"class":4784},[4173,88051,79074],{"class":4661},[4173,88053,88054],{"class":4784},"(token);\n",[4173,88056,88057],{"class":4657,"line":6462},[4173,88058,7090],{"class":4784},[4173,88060,88061],{"class":4657,"line":6468},[4173,88062,7090],{"class":4784},[4173,88064,88065],{"class":4657,"line":6473},[4173,88066,7090],{"class":4784},[16,88068,88070],{"id":88069},"_6-string-cheat-sheet-komplett","6. String – Cheat sheet komplett",[4647,88072,88074],{"className":78931,"code":88073,"language":78933,"meta":269,"style":269},"public class StringCheatSheet {\npublic static void main(String[] args) {\n\u002F\u002F --- String Basics ---\nString text = \"Hello World 123\";\nSystem.out.println(\"Original: \" + text); \u002F\u002F Original: Hello World 123\nSystem.out.println(\"Length: \" + text.length()); \u002F\u002F Length: 15\nSystem.out.println(\"UpperCase: \" + text.toUpperCase()); \u002F\u002F UpperCase: HELLO WORLD 123\nSystem.out.println(\"LowerCase: \" + text.toLowerCase()); \u002F\u002F LowerCase: hello world 123\nSystem.out.println(\"charAt(1): \" + text.charAt(1)); \u002F\u002F charAt(1): e\nSystem.out.println(\"startsWith(\\\"Hello\\\"): \" + text.startsWith(\"Hello\")); \u002F\u002F true\nSystem.out.println(\"endsWith(\\\"123\\\"): \" + text.endsWith(\"123\")); \u002F\u002F true\nSystem.out.println(\"indexOf(\\\"o\\\"): \" + text.indexOf(\"o\")); \u002F\u002F 4\nSystem.out.println(\"lastIndexOf(\\\"o\\\"): \" + text.lastIndexOf(\"o\")); \u002F\u002F 7\nSystem.out.println(\"contains(\\\"World\\\"): \" + text.contains(\"World\")); \u002F\u002F true\nSystem.out.println(\"substring(0,5): \" + text.substring(0,5)); \u002F\u002F Hello\nSystem.out.println(\"replace(\\\"World\\\", \\\"Java\\\"): \" + text.replace(\"World\", \"Java\")); \u002F\u002F\nHello Java 123\nSystem.out.println(\"replaceAll(\\\"\\\\d\\\", \\\"*\\\"): \" + text.replaceAll(\"\\\\d\", \"*\")); \u002F\u002F\nHello World ***\nSystem.out.println(\"trim(): '\" + \"   test   \".trim() + \"'\"); \u002F\u002F 'test'\nSystem.out.println(\"matches(\\\".*World.*\\\"): \" + text.matches(\".*World.*\")); \u002F\u002F true\n\u002F\u002F --- equalsIgnoreCase ---\nString mercedes = \"Mercedes\";\nString lowerCaseMercedes = \"mercedes\";\nSystem.out.println(\"equalsIgnoreCase: \" + mercedes.equalsIgnoreCase(lowerCaseMercedes));\n\u002F\u002F true\n\u002F\u002F --- Split ---\nString[] words = text.split(\" \");\nSystem.out.println(\"Split:\");\nfor(String word : words) {\nSystem.out.println(word);\n\u002F\u002F Hello\n\u002F\u002F World\n\u002F\u002F 123\n}\n\u002F\u002F --- String Formatting ---\nString formatted = String.format(\"Name: %s, Age: %d\", \"Anna\", 25);\nSystem.out.println(\"Formatted: \" + formatted); \u002F\u002F Name: Anna, Age: 25\n\u002F\u002F --- StringBuilder ---\nStringBuilder sb = new StringBuilder(\"Hello\");\nsb.append(\" World\");\nSystem.out.println(\"StringBuilder append: \" + sb); \u002F\u002F Hello World\nsb.insert(6, \"Java \");\nSystem.out.println(\"StringBuilder insert: \" + sb); \u002F\u002F Hello Java World\nsb.delete(6, 11);\nSystem.out.println(\"StringBuilder delete: \" + sb); \u002F\u002F Hello World\nsb.setCharAt(0, 'h');\nSystem.out.println(\"StringBuilder setCharAt: \" + sb); \u002F\u002F hello World\nsb.reverse();\nSystem.out.println(\"StringBuilder reverse: \" + sb); \u002F\u002F dlroW olleh\nSystem.out.println(\"StringBuilder length: \" + sb.length()); \u002F\u002F 11\n\u002F\u002F --- StringBuffer (Thread-safe) ---\nStringBuffer sbf = new StringBuffer(\"Buffer\");\nsbf.append(\" Test\");\nSystem.out.println(\"StringBuffer append: \" + sbf); \u002F\u002F Buffer Test\nsbf.replace(0, 6, \"Changed\");\nSystem.out.println(\"StringBuffer replace: \" + sbf); \u002F\u002F Changed Test\nsbf.delete(7, 12);\nSystem.out.println(\"StringBuffer delete: \" + sbf); \u002F\u002F Changed\nsbf.reverse();\nSystem.out.println(\"StringBuffer reverse: \" + sbf); \u002F\u002F dednahC\n\u002F\u002F --- CharSequence ---\nCharSequence cs1 = \"CharSeq\";\nCharSequence cs2 = new StringBuilder(\"Example\");\nSystem.out.println(\"CharSequence length cs1: \" + cs1.length()); \u002F\u002F 7\nSystem.out.println(\"CharSequence charAt cs2: \" + cs2.charAt(2)); \u002F\u002F a\nSystem.out.println(\"CharSequence subsequence cs1: \" + cs1.subSequence(0,4)); \u002F\u002F Char\nSystem.out.println(\"CharSequence subsequence cs2: \" + cs2.subSequence(2,5)); \u002F\u002F amp\n}\n}\n",[4653,88075,88076,88087,88107,88112,88122,88141,88162,88183,88204,88230,88268,88303,88339,88374,88408,88437,88483,88491,88544,88552,88583,88619,88624,88636,88648,88670,88674,88679,88697,88709,88719,88727,88731,88735,88739,88743,88748,88777,88796,88801,88817,88829,88846,88862,88879,88895,88912,88928,88945,88953,88971,88993,88998,89016,89030,89049,89070,89088,89104,89122,89130,89148,89153,89164,89181,89202,89228,89258,89288,89292],{"__ignoreMap":269},[4173,88077,88078,88080,88082,88085],{"class":4657,"line":4658},[4173,88079,79889],{"class":4788},[4173,88081,80062],{"class":4788},[4173,88083,88084],{"class":4661}," StringCheatSheet",[4173,88086,51614],{"class":4784},[4173,88088,88089,88091,88093,88095,88097,88099,88101,88103,88105],{"class":4657,"line":270},[4173,88090,79889],{"class":4788},[4173,88092,79892],{"class":4788},[4173,88094,79934],{"class":4788},[4173,88096,79937],{"class":4661},[4173,88098,6390],{"class":4784},[4173,88100,79693],{"class":4788},[4173,88102,80084],{"class":4784},[4173,88104,31283],{"class":7074},[4173,88106,56319],{"class":4784},[4173,88108,88109],{"class":4657,"line":1263},[4173,88110,88111],{"class":4766},"\u002F\u002F --- String Basics ---\n",[4173,88113,88114,88116,88118,88120],{"class":4657,"line":4770},[4173,88115,79681],{"class":4784},[4173,88117,6387],{"class":4788},[4173,88119,79686],{"class":4669},[4173,88121,55559],{"class":4784},[4173,88123,88124,88126,88128,88130,88133,88135,88138],{"class":4657,"line":4775},[4173,88125,79043],{"class":4784},[4173,88127,79074],{"class":4661},[4173,88129,6390],{"class":4784},[4173,88131,88132],{"class":4669},"\"Original: \"",[4173,88134,11719],{"class":4788},[4173,88136,88137],{"class":4784}," text); ",[4173,88139,88140],{"class":4766},"\u002F\u002F Original: Hello World 123\n",[4173,88142,88143,88145,88147,88149,88151,88153,88155,88157,88159],{"class":4657,"line":6320},[4173,88144,79043],{"class":4784},[4173,88146,79074],{"class":4661},[4173,88148,6390],{"class":4784},[4173,88150,87484],{"class":4669},[4173,88152,11719],{"class":4788},[4173,88154,79701],{"class":4784},[4173,88156,86840],{"class":4661},[4173,88158,86843],{"class":4784},[4173,88160,88161],{"class":4766},"\u002F\u002F Length: 15\n",[4173,88163,88164,88166,88168,88170,88172,88174,88176,88178,88180],{"class":4657,"line":6325},[4173,88165,79043],{"class":4784},[4173,88167,79074],{"class":4661},[4173,88169,6390],{"class":4784},[4173,88171,86862],{"class":4669},[4173,88173,11719],{"class":4788},[4173,88175,79701],{"class":4784},[4173,88177,85895],{"class":4661},[4173,88179,86843],{"class":4784},[4173,88181,88182],{"class":4766},"\u002F\u002F UpperCase: HELLO WORLD 123\n",[4173,88184,88185,88187,88189,88191,88193,88195,88197,88199,88201],{"class":4657,"line":6343},[4173,88186,79043],{"class":4784},[4173,88188,79074],{"class":4661},[4173,88190,6390],{"class":4784},[4173,88192,86893],{"class":4669},[4173,88194,11719],{"class":4788},[4173,88196,79701],{"class":4784},[4173,88198,86900],{"class":4661},[4173,88200,86843],{"class":4784},[4173,88202,88203],{"class":4766},"\u002F\u002F LowerCase: hello world 123\n",[4173,88205,88206,88208,88210,88212,88215,88217,88219,88221,88223,88225,88227],{"class":4657,"line":6348},[4173,88207,79043],{"class":4784},[4173,88209,79074],{"class":4661},[4173,88211,6390],{"class":4784},[4173,88213,88214],{"class":4669},"\"charAt(1): \"",[4173,88216,11719],{"class":4788},[4173,88218,79701],{"class":4784},[4173,88220,86933],{"class":4661},[4173,88222,6390],{"class":4784},[4173,88224,14223],{"class":4665},[4173,88226,48385],{"class":4784},[4173,88228,88229],{"class":4766},"\u002F\u002F charAt(1): e\n",[4173,88231,88232,88234,88236,88238,88241,88244,88247,88249,88252,88254,88256,88259,88261,88263,88265],{"class":4657,"line":6457},[4173,88233,79043],{"class":4784},[4173,88235,79074],{"class":4661},[4173,88237,6390],{"class":4784},[4173,88239,88240],{"class":4669},"\"startsWith(",[4173,88242,88243],{"class":4665},"\\\"",[4173,88245,88246],{"class":4669},"Hello",[4173,88248,88243],{"class":4665},[4173,88250,88251],{"class":4669},"): \"",[4173,88253,11719],{"class":4788},[4173,88255,79701],{"class":4784},[4173,88257,88258],{"class":4661},"startsWith",[4173,88260,6390],{"class":4784},[4173,88262,86981],{"class":4669},[4173,88264,48385],{"class":4784},[4173,88266,88267],{"class":4766},"\u002F\u002F true\n",[4173,88269,88270,88272,88274,88276,88279,88281,88283,88285,88287,88289,88291,88294,88296,88299,88301],{"class":4657,"line":6462},[4173,88271,79043],{"class":4784},[4173,88273,79074],{"class":4661},[4173,88275,6390],{"class":4784},[4173,88277,88278],{"class":4669},"\"endsWith(",[4173,88280,88243],{"class":4665},[4173,88282,18031],{"class":4669},[4173,88284,88243],{"class":4665},[4173,88286,88251],{"class":4669},[4173,88288,11719],{"class":4788},[4173,88290,79701],{"class":4784},[4173,88292,88293],{"class":4661},"endsWith",[4173,88295,6390],{"class":4784},[4173,88297,88298],{"class":4669},"\"123\"",[4173,88300,48385],{"class":4784},[4173,88302,88267],{"class":4766},[4173,88304,88305,88307,88309,88311,88314,88316,88318,88320,88322,88324,88326,88329,88331,88334,88336],{"class":4657,"line":6468},[4173,88306,79043],{"class":4784},[4173,88308,79074],{"class":4661},[4173,88310,6390],{"class":4784},[4173,88312,88313],{"class":4669},"\"indexOf(",[4173,88315,88243],{"class":4665},[4173,88317,13557],{"class":4669},[4173,88319,88243],{"class":4665},[4173,88321,88251],{"class":4669},[4173,88323,11719],{"class":4788},[4173,88325,79701],{"class":4784},[4173,88327,88328],{"class":4661},"indexOf",[4173,88330,6390],{"class":4784},[4173,88332,88333],{"class":4669},"\"o\"",[4173,88335,48385],{"class":4784},[4173,88337,88338],{"class":4766},"\u002F\u002F 4\n",[4173,88340,88341,88343,88345,88347,88350,88352,88354,88356,88358,88360,88362,88365,88367,88369,88371],{"class":4657,"line":6473},[4173,88342,79043],{"class":4784},[4173,88344,79074],{"class":4661},[4173,88346,6390],{"class":4784},[4173,88348,88349],{"class":4669},"\"lastIndexOf(",[4173,88351,88243],{"class":4665},[4173,88353,13557],{"class":4669},[4173,88355,88243],{"class":4665},[4173,88357,88251],{"class":4669},[4173,88359,11719],{"class":4788},[4173,88361,79701],{"class":4784},[4173,88363,88364],{"class":4661},"lastIndexOf",[4173,88366,6390],{"class":4784},[4173,88368,88333],{"class":4669},[4173,88370,48385],{"class":4784},[4173,88372,88373],{"class":4766},"\u002F\u002F 7\n",[4173,88375,88376,88378,88380,88382,88385,88387,88390,88392,88394,88396,88398,88400,88402,88404,88406],{"class":4657,"line":6479},[4173,88377,79043],{"class":4784},[4173,88379,79074],{"class":4661},[4173,88381,6390],{"class":4784},[4173,88383,88384],{"class":4669},"\"contains(",[4173,88386,88243],{"class":4665},[4173,88388,88389],{"class":4669},"World",[4173,88391,88243],{"class":4665},[4173,88393,88251],{"class":4669},[4173,88395,11719],{"class":4788},[4173,88397,79701],{"class":4784},[4173,88399,87222],{"class":4661},[4173,88401,6390],{"class":4784},[4173,88403,87074],{"class":4669},[4173,88405,48385],{"class":4784},[4173,88407,88267],{"class":4766},[4173,88409,88410,88412,88414,88416,88419,88421,88423,88425,88427,88429,88431,88433,88435],{"class":4657,"line":6503},[4173,88411,79043],{"class":4784},[4173,88413,79074],{"class":4661},[4173,88415,6390],{"class":4784},[4173,88417,88418],{"class":4669},"\"substring(0,5): \"",[4173,88420,11719],{"class":4788},[4173,88422,79701],{"class":4784},[4173,88424,87011],{"class":4661},[4173,88426,6390],{"class":4784},[4173,88428,12749],{"class":4665},[4173,88430,42920],{"class":4784},[4173,88432,14292],{"class":4665},[4173,88434,48385],{"class":4784},[4173,88436,79750],{"class":4766},[4173,88438,88439,88441,88443,88445,88448,88450,88452,88454,88456,88458,88461,88463,88465,88467,88469,88471,88473,88475,88477,88479,88481],{"class":4657,"line":6516},[4173,88440,79043],{"class":4784},[4173,88442,79074],{"class":4661},[4173,88444,6390],{"class":4784},[4173,88446,88447],{"class":4669},"\"replace(",[4173,88449,88243],{"class":4665},[4173,88451,88389],{"class":4669},[4173,88453,88243],{"class":4665},[4173,88455,8629],{"class":4669},[4173,88457,88243],{"class":4665},[4173,88459,88460],{"class":4669},"Java",[4173,88462,88243],{"class":4665},[4173,88464,88251],{"class":4669},[4173,88466,11719],{"class":4788},[4173,88468,79701],{"class":4784},[4173,88470,87069],{"class":4661},[4173,88472,6390],{"class":4784},[4173,88474,87074],{"class":4669},[4173,88476,8629],{"class":4784},[4173,88478,87079],{"class":4669},[4173,88480,48385],{"class":4784},[4173,88482,64632],{"class":4766},[4173,88484,88485,88488],{"class":4657,"line":6971},[4173,88486,88487],{"class":4784},"Hello Java ",[4173,88489,88490],{"class":4665},"123\n",[4173,88492,88493,88495,88497,88499,88502,88505,88507,88509,88511,88513,88515,88517,88519,88521,88523,88526,88528,88530,88533,88536,88538,88540,88542],{"class":4657,"line":10649},[4173,88494,79043],{"class":4784},[4173,88496,79074],{"class":4661},[4173,88498,6390],{"class":4784},[4173,88500,88501],{"class":4669},"\"replaceAll(",[4173,88503,88504],{"class":4665},"\\\"\\\\",[4173,88506,12469],{"class":4669},[4173,88508,88243],{"class":4665},[4173,88510,8629],{"class":4669},[4173,88512,88243],{"class":4665},[4173,88514,6328],{"class":4669},[4173,88516,88243],{"class":4665},[4173,88518,88251],{"class":4669},[4173,88520,11719],{"class":4788},[4173,88522,79701],{"class":4784},[4173,88524,88525],{"class":4661},"replaceAll",[4173,88527,6390],{"class":4784},[4173,88529,6207],{"class":4669},[4173,88531,88532],{"class":4665},"\\\\",[4173,88534,88535],{"class":4669},"d\"",[4173,88537,8629],{"class":4784},[4173,88539,27900],{"class":4669},[4173,88541,48385],{"class":4784},[4173,88543,64632],{"class":4766},[4173,88545,88546,88549],{"class":4657,"line":10654},[4173,88547,88548],{"class":4784},"Hello World ",[4173,88550,88551],{"class":4788},"***\n",[4173,88553,88554,88556,88558,88560,88563,88565,88568,88570,88572,88574,88576,88578,88580],{"class":4657,"line":10659},[4173,88555,79043],{"class":4784},[4173,88557,79074],{"class":4661},[4173,88559,6390],{"class":4784},[4173,88561,88562],{"class":4669},"\"trim(): '\"",[4173,88564,11719],{"class":4788},[4173,88566,88567],{"class":4669}," \"   test   \"",[4173,88569,7834],{"class":4784},[4173,88571,86160],{"class":4661},[4173,88573,80558],{"class":4784},[4173,88575,14419],{"class":4788},[4173,88577,87126],{"class":4669},[4173,88579,79107],{"class":4784},[4173,88581,88582],{"class":4766},"\u002F\u002F 'test'\n",[4173,88584,88585,88587,88589,88591,88594,88596,88599,88601,88603,88605,88607,88610,88612,88615,88617],{"class":4657,"line":10664},[4173,88586,79043],{"class":4784},[4173,88588,79074],{"class":4661},[4173,88590,6390],{"class":4784},[4173,88592,88593],{"class":4669},"\"matches(",[4173,88595,88243],{"class":4665},[4173,88597,88598],{"class":4669},".*World.*",[4173,88600,88243],{"class":4665},[4173,88602,88251],{"class":4669},[4173,88604,11719],{"class":4788},[4173,88606,79701],{"class":4784},[4173,88608,88609],{"class":4661},"matches",[4173,88611,6390],{"class":4784},[4173,88613,88614],{"class":4669},"\".*World.*\"",[4173,88616,48385],{"class":4784},[4173,88618,88267],{"class":4766},[4173,88620,88621],{"class":4657,"line":10676},[4173,88622,88623],{"class":4766},"\u002F\u002F --- equalsIgnoreCase ---\n",[4173,88625,88626,88629,88631,88634],{"class":4657,"line":10681},[4173,88627,88628],{"class":4784},"String mercedes ",[4173,88630,6387],{"class":4788},[4173,88632,88633],{"class":4669}," \"Mercedes\"",[4173,88635,55559],{"class":4784},[4173,88637,88638,88641,88643,88646],{"class":4657,"line":10702},[4173,88639,88640],{"class":4784},"String lowerCaseMercedes ",[4173,88642,6387],{"class":4788},[4173,88644,88645],{"class":4669}," \"mercedes\"",[4173,88647,55559],{"class":4784},[4173,88649,88650,88652,88654,88656,88659,88661,88664,88667],{"class":4657,"line":10707},[4173,88651,79043],{"class":4784},[4173,88653,79074],{"class":4661},[4173,88655,6390],{"class":4784},[4173,88657,88658],{"class":4669},"\"equalsIgnoreCase: \"",[4173,88660,11719],{"class":4788},[4173,88662,88663],{"class":4784}," mercedes.",[4173,88665,88666],{"class":4661},"equalsIgnoreCase",[4173,88668,88669],{"class":4784},"(lowerCaseMercedes));\n",[4173,88671,88672],{"class":4657,"line":10712},[4173,88673,88267],{"class":4766},[4173,88675,88676],{"class":4657,"line":10717},[4173,88677,88678],{"class":4766},"\u002F\u002F --- Split ---\n",[4173,88680,88681,88683,88685,88687,88689,88691,88693,88695],{"class":4657,"line":10727},[4173,88682,79693],{"class":4788},[4173,88684,79696],{"class":4784},[4173,88686,6387],{"class":4788},[4173,88688,79701],{"class":4784},[4173,88690,79704],{"class":4661},[4173,88692,6390],{"class":4784},[4173,88694,79709],{"class":4669},[4173,88696,55545],{"class":4784},[4173,88698,88699,88701,88703,88705,88707],{"class":4657,"line":10732},[4173,88700,79043],{"class":4784},[4173,88702,79074],{"class":4661},[4173,88704,6390],{"class":4784},[4173,88706,79722],{"class":4669},[4173,88708,55545],{"class":4784},[4173,88710,88711,88713,88715,88717],{"class":4657,"line":10737},[4173,88712,6425],{"class":4788},[4173,88714,79731],{"class":4784},[4173,88716,8158],{"class":4788},[4173,88718,79736],{"class":4784},[4173,88720,88721,88723,88725],{"class":4657,"line":10742},[4173,88722,79043],{"class":4784},[4173,88724,79074],{"class":4661},[4173,88726,79745],{"class":4784},[4173,88728,88729],{"class":4657,"line":10752},[4173,88730,79750],{"class":4766},[4173,88732,88733],{"class":4657,"line":10757},[4173,88734,79755],{"class":4766},[4173,88736,88737],{"class":4657,"line":10762},[4173,88738,79760],{"class":4766},[4173,88740,88741],{"class":4657,"line":10767},[4173,88742,7090],{"class":4784},[4173,88744,88745],{"class":4657,"line":10772},[4173,88746,88747],{"class":4766},"\u002F\u002F --- String Formatting ---\n",[4173,88749,88750,88753,88755,88758,88761,88763,88766,88768,88770,88772,88775],{"class":4657,"line":10777},[4173,88751,88752],{"class":4784},"String formatted ",[4173,88754,6387],{"class":4788},[4173,88756,88757],{"class":4784}," String.",[4173,88759,88760],{"class":4661},"format",[4173,88762,6390],{"class":4784},[4173,88764,88765],{"class":4669},"\"Name: %s, Age: %d\"",[4173,88767,8629],{"class":4784},[4173,88769,80104],{"class":4669},[4173,88771,8629],{"class":4784},[4173,88773,88774],{"class":4665},"25",[4173,88776,55545],{"class":4784},[4173,88778,88779,88781,88783,88785,88788,88790,88793],{"class":4657,"line":10782},[4173,88780,79043],{"class":4784},[4173,88782,79074],{"class":4661},[4173,88784,6390],{"class":4784},[4173,88786,88787],{"class":4669},"\"Formatted: \"",[4173,88789,11719],{"class":4788},[4173,88791,88792],{"class":4784}," formatted); ",[4173,88794,88795],{"class":4766},"\u002F\u002F Name: Anna, Age: 25\n",[4173,88797,88798],{"class":4657,"line":10787},[4173,88799,88800],{"class":4766},"\u002F\u002F --- StringBuilder ---\n",[4173,88802,88803,88805,88807,88809,88811,88813,88815],{"class":4657,"line":10800},[4173,88804,86043],{"class":4784},[4173,88806,6387],{"class":4788},[4173,88808,79032],{"class":4788},[4173,88810,86050],{"class":4661},[4173,88812,6390],{"class":4784},[4173,88814,86981],{"class":4669},[4173,88816,55545],{"class":4784},[4173,88818,88819,88821,88823,88825,88827],{"class":4657,"line":10805},[4173,88820,86115],{"class":4784},[4173,88822,86118],{"class":4661},[4173,88824,6390],{"class":4784},[4173,88826,87321],{"class":4669},[4173,88828,55545],{"class":4784},[4173,88830,88831,88833,88835,88837,88840,88842,88844],{"class":4657,"line":10818},[4173,88832,79043],{"class":4784},[4173,88834,79074],{"class":4661},[4173,88836,6390],{"class":4784},[4173,88838,88839],{"class":4669},"\"StringBuilder append: \"",[4173,88841,11719],{"class":4788},[4173,88843,87466],{"class":4784},[4173,88845,87335],{"class":4766},[4173,88847,88848,88850,88852,88854,88856,88858,88860],{"class":4657,"line":10823},[4173,88849,86115],{"class":4784},[4173,88851,87347],{"class":4661},[4173,88853,6390],{"class":4784},[4173,88855,14278],{"class":4665},[4173,88857,8629],{"class":4784},[4173,88859,87356],{"class":4669},[4173,88861,55545],{"class":4784},[4173,88863,88864,88866,88868,88870,88873,88875,88877],{"class":4657,"line":10836},[4173,88865,79043],{"class":4784},[4173,88867,79074],{"class":4661},[4173,88869,6390],{"class":4784},[4173,88871,88872],{"class":4669},"\"StringBuilder insert: \"",[4173,88874,11719],{"class":4788},[4173,88876,87466],{"class":4784},[4173,88878,87369],{"class":4766},[4173,88880,88881,88883,88885,88887,88889,88891,88893],{"class":4657,"line":10841},[4173,88882,86115],{"class":4784},[4173,88884,87381],{"class":4661},[4173,88886,6390],{"class":4784},[4173,88888,14278],{"class":4665},[4173,88890,8629],{"class":4784},[4173,88892,87390],{"class":4665},[4173,88894,55545],{"class":4784},[4173,88896,88897,88899,88901,88903,88906,88908,88910],{"class":4657,"line":10846},[4173,88898,79043],{"class":4784},[4173,88900,79074],{"class":4661},[4173,88902,6390],{"class":4784},[4173,88904,88905],{"class":4669},"\"StringBuilder delete: \"",[4173,88907,11719],{"class":4788},[4173,88909,87466],{"class":4784},[4173,88911,87335],{"class":4766},[4173,88913,88914,88916,88918,88920,88922,88924,88926],{"class":4657,"line":10851},[4173,88915,86115],{"class":4784},[4173,88917,87414],{"class":4661},[4173,88919,6390],{"class":4784},[4173,88921,12749],{"class":4665},[4173,88923,8629],{"class":4784},[4173,88925,87423],{"class":4669},[4173,88927,55545],{"class":4784},[4173,88929,88930,88932,88934,88936,88939,88941,88943],{"class":4657,"line":10867},[4173,88931,79043],{"class":4784},[4173,88933,79074],{"class":4661},[4173,88935,6390],{"class":4784},[4173,88937,88938],{"class":4669},"\"StringBuilder setCharAt: \"",[4173,88940,11719],{"class":4788},[4173,88942,87466],{"class":4784},[4173,88944,87436],{"class":4766},[4173,88946,88947,88949,88951],{"class":4657,"line":10872},[4173,88948,86115],{"class":4784},[4173,88950,87448],{"class":4661},[4173,88952,65878],{"class":4784},[4173,88954,88955,88957,88959,88961,88964,88966,88968],{"class":4657,"line":10877},[4173,88956,79043],{"class":4784},[4173,88958,79074],{"class":4661},[4173,88960,6390],{"class":4784},[4173,88962,88963],{"class":4669},"\"StringBuilder reverse: \"",[4173,88965,11719],{"class":4788},[4173,88967,87466],{"class":4784},[4173,88969,88970],{"class":4766},"\u002F\u002F dlroW olleh\n",[4173,88972,88973,88975,88977,88979,88982,88984,88986,88988,88990],{"class":4657,"line":10882},[4173,88974,79043],{"class":4784},[4173,88976,79074],{"class":4661},[4173,88978,6390],{"class":4784},[4173,88980,88981],{"class":4669},"\"StringBuilder length: \"",[4173,88983,11719],{"class":4788},[4173,88985,86204],{"class":4784},[4173,88987,86840],{"class":4661},[4173,88989,86843],{"class":4784},[4173,88991,88992],{"class":4766},"\u002F\u002F 11\n",[4173,88994,88995],{"class":4657,"line":10890},[4173,88996,88997],{"class":4766},"\u002F\u002F --- StringBuffer (Thread-safe) ---\n",[4173,88999,89000,89003,89005,89007,89009,89011,89014],{"class":4657,"line":10895},[4173,89001,89002],{"class":4784},"StringBuffer sbf ",[4173,89004,6387],{"class":4788},[4173,89006,79032],{"class":4788},[4173,89008,87555],{"class":4661},[4173,89010,6390],{"class":4784},[4173,89012,89013],{"class":4669},"\"Buffer\"",[4173,89015,55545],{"class":4784},[4173,89017,89018,89021,89023,89025,89028],{"class":4657,"line":10904},[4173,89019,89020],{"class":4784},"sbf.",[4173,89022,86118],{"class":4661},[4173,89024,6390],{"class":4784},[4173,89026,89027],{"class":4669},"\" Test\"",[4173,89029,55545],{"class":4784},[4173,89031,89032,89034,89036,89038,89041,89043,89046],{"class":4657,"line":10909},[4173,89033,79043],{"class":4784},[4173,89035,79074],{"class":4661},[4173,89037,6390],{"class":4784},[4173,89039,89040],{"class":4669},"\"StringBuffer append: \"",[4173,89042,11719],{"class":4788},[4173,89044,89045],{"class":4784}," sbf); ",[4173,89047,89048],{"class":4766},"\u002F\u002F Buffer Test\n",[4173,89050,89051,89053,89055,89057,89059,89061,89063,89065,89068],{"class":4657,"line":10914},[4173,89052,89020],{"class":4784},[4173,89054,87069],{"class":4661},[4173,89056,6390],{"class":4784},[4173,89058,12749],{"class":4665},[4173,89060,8629],{"class":4784},[4173,89062,14278],{"class":4665},[4173,89064,8629],{"class":4784},[4173,89066,89067],{"class":4669},"\"Changed\"",[4173,89069,55545],{"class":4784},[4173,89071,89072,89074,89076,89078,89081,89083,89085],{"class":4657,"line":10919},[4173,89073,79043],{"class":4784},[4173,89075,79074],{"class":4661},[4173,89077,6390],{"class":4784},[4173,89079,89080],{"class":4669},"\"StringBuffer replace: \"",[4173,89082,11719],{"class":4788},[4173,89084,89045],{"class":4784},[4173,89086,89087],{"class":4766},"\u002F\u002F Changed Test\n",[4173,89089,89090,89092,89094,89096,89098,89100,89102],{"class":4657,"line":10933},[4173,89091,89020],{"class":4784},[4173,89093,87381],{"class":4661},[4173,89095,6390],{"class":4784},[4173,89097,14264],{"class":4665},[4173,89099,8629],{"class":4784},[4173,89101,36010],{"class":4665},[4173,89103,55545],{"class":4784},[4173,89105,89106,89108,89110,89112,89115,89117,89119],{"class":4657,"line":10938},[4173,89107,79043],{"class":4784},[4173,89109,79074],{"class":4661},[4173,89111,6390],{"class":4784},[4173,89113,89114],{"class":4669},"\"StringBuffer delete: \"",[4173,89116,11719],{"class":4788},[4173,89118,89045],{"class":4784},[4173,89120,89121],{"class":4766},"\u002F\u002F Changed\n",[4173,89123,89124,89126,89128],{"class":4657,"line":10959},[4173,89125,89020],{"class":4784},[4173,89127,87448],{"class":4661},[4173,89129,65878],{"class":4784},[4173,89131,89132,89134,89136,89138,89141,89143,89145],{"class":4657,"line":10964},[4173,89133,79043],{"class":4784},[4173,89135,79074],{"class":4661},[4173,89137,6390],{"class":4784},[4173,89139,89140],{"class":4669},"\"StringBuffer reverse: \"",[4173,89142,11719],{"class":4788},[4173,89144,89045],{"class":4784},[4173,89146,89147],{"class":4766},"\u002F\u002F dednahC\n",[4173,89149,89150],{"class":4657,"line":10969},[4173,89151,89152],{"class":4766},"\u002F\u002F --- CharSequence ---\n",[4173,89154,89155,89157,89159,89162],{"class":4657,"line":10974},[4173,89156,87746],{"class":4784},[4173,89158,6387],{"class":4788},[4173,89160,89161],{"class":4669}," \"CharSeq\"",[4173,89163,55559],{"class":4784},[4173,89165,89166,89168,89170,89172,89174,89176,89179],{"class":4657,"line":10982},[4173,89167,87760],{"class":4784},[4173,89169,6387],{"class":4788},[4173,89171,79032],{"class":4788},[4173,89173,86050],{"class":4661},[4173,89175,6390],{"class":4784},[4173,89177,89178],{"class":4669},"\"Example\"",[4173,89180,55545],{"class":4784},[4173,89182,89183,89185,89187,89189,89192,89194,89196,89198,89200],{"class":4657,"line":10987},[4173,89184,79043],{"class":4784},[4173,89186,79074],{"class":4661},[4173,89188,6390],{"class":4784},[4173,89190,89191],{"class":4669},"\"CharSequence length cs1: \"",[4173,89193,11719],{"class":4788},[4173,89195,87791],{"class":4784},[4173,89197,86840],{"class":4661},[4173,89199,86843],{"class":4784},[4173,89201,88373],{"class":4766},[4173,89203,89204,89206,89208,89210,89213,89215,89217,89219,89221,89223,89225],{"class":4657,"line":10995},[4173,89205,79043],{"class":4784},[4173,89207,79074],{"class":4661},[4173,89209,6390],{"class":4784},[4173,89211,89212],{"class":4669},"\"CharSequence charAt cs2: \"",[4173,89214,11719],{"class":4788},[4173,89216,87814],{"class":4784},[4173,89218,86933],{"class":4661},[4173,89220,6390],{"class":4784},[4173,89222,14206],{"class":4665},[4173,89224,48385],{"class":4784},[4173,89226,89227],{"class":4766},"\u002F\u002F a\n",[4173,89229,89230,89232,89234,89236,89239,89241,89243,89245,89247,89249,89251,89253,89255],{"class":4657,"line":11000},[4173,89231,79043],{"class":4784},[4173,89233,79074],{"class":4661},[4173,89235,6390],{"class":4784},[4173,89237,89238],{"class":4669},"\"CharSequence subsequence cs1: \"",[4173,89240,11719],{"class":4788},[4173,89242,87791],{"class":4784},[4173,89244,87861],{"class":4661},[4173,89246,6390],{"class":4784},[4173,89248,12749],{"class":4665},[4173,89250,42920],{"class":4784},[4173,89252,2894],{"class":4665},[4173,89254,48385],{"class":4784},[4173,89256,89257],{"class":4766},"\u002F\u002F Char\n",[4173,89259,89260,89262,89264,89266,89269,89271,89273,89275,89277,89279,89281,89283,89285],{"class":4657,"line":11008},[4173,89261,79043],{"class":4784},[4173,89263,79074],{"class":4661},[4173,89265,6390],{"class":4784},[4173,89267,89268],{"class":4669},"\"CharSequence subsequence cs2: \"",[4173,89270,11719],{"class":4788},[4173,89272,87814],{"class":4784},[4173,89274,87861],{"class":4661},[4173,89276,6390],{"class":4784},[4173,89278,14206],{"class":4665},[4173,89280,42920],{"class":4784},[4173,89282,14292],{"class":4665},[4173,89284,48385],{"class":4784},[4173,89286,89287],{"class":4766},"\u002F\u002F amp\n",[4173,89289,89290],{"class":4657,"line":11013},[4173,89291,7090],{"class":4784},[4173,89293,89294],{"class":4657,"line":11021},[4173,89295,7090],{"class":4784},[16,89297,89299],{"id":89298},"collections","Collections",[4647,89301,89303],{"className":78931,"code":89302,"language":78933,"meta":269,"style":269},"import java.util.*;\npublic class SetDemo {\n\u002F\u002F Enum für EnumSet-Beispiel\nenum Wochentag { MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG }\npublic static void main(String[] args) {\n\u002F\u002F ========================\n",[4653,89304,89305,89316,89327,89332,89368,89388],{"__ignoreMap":269},[4173,89306,89307,89309,89312,89314],{"class":4657,"line":4658},[4173,89308,79019],{"class":4788},[4173,89310,89311],{"class":4784}," java.util.",[4173,89313,6328],{"class":4665},[4173,89315,55559],{"class":4784},[4173,89317,89318,89320,89322,89325],{"class":4657,"line":270},[4173,89319,79889],{"class":4788},[4173,89321,80062],{"class":4788},[4173,89323,89324],{"class":4661}," SetDemo",[4173,89326,51614],{"class":4784},[4173,89328,89329],{"class":4657,"line":1263},[4173,89330,89331],{"class":4766},"\u002F\u002F Enum für EnumSet-Beispiel\n",[4173,89333,89334,89337,89340,89342,89345,89347,89350,89352,89355,89357,89360,89362,89365],{"class":4657,"line":4770},[4173,89335,89336],{"class":4788},"enum",[4173,89338,89339],{"class":4661}," Wochentag",[4173,89341,82241],{"class":4784},[4173,89343,89344],{"class":4665},"MONTAG",[4173,89346,8629],{"class":4784},[4173,89348,89349],{"class":4665},"DIENSTAG",[4173,89351,8629],{"class":4784},[4173,89353,89354],{"class":4665},"MITTWOCH",[4173,89356,8629],{"class":4784},[4173,89358,89359],{"class":4665},"DONNERSTAG",[4173,89361,8629],{"class":4784},[4173,89363,89364],{"class":4665},"FREITAG",[4173,89366,89367],{"class":4784}," }\n",[4173,89369,89370,89372,89374,89376,89378,89380,89382,89384,89386],{"class":4657,"line":4775},[4173,89371,79889],{"class":4788},[4173,89373,79892],{"class":4788},[4173,89375,79934],{"class":4788},[4173,89377,79937],{"class":4661},[4173,89379,6390],{"class":4784},[4173,89381,79693],{"class":4788},[4173,89383,80084],{"class":4784},[4173,89385,31283],{"class":7074},[4173,89387,56319],{"class":4784},[4173,89389,89390],{"class":4657,"line":6320},[4173,89391,89392],{"class":4766},"\u002F\u002F ========================\n",[16,89394,89396],{"id":89395},"_1-hashset","\u002F\u002F 1. HashSet",[4647,89398,89400],{"className":78931,"code":89399,"language":78933,"meta":269,"style":269},"\u002F\u002F ========================\nSet\u003CString> hashSet = new HashSet\u003C>();\nhashSet.add(\"Apfel\");\nhashSet.add(\"Banane\");\nhashSet.add(\"Kiwi\");\nhashSet.add(\"Banane\"); \u002F\u002F Duplikate werden ignoriert\nSystem.out.println(\"HashSet (ungeordnet): \" + hashSet);\n\u002F\u002F ========================\n",[4653,89401,89402,89406,89423,89437,89450,89463,89478,89494],{"__ignoreMap":269},[4173,89403,89404],{"class":4657,"line":4658},[4173,89405,89392],{"class":4766},[4173,89407,89408,89411,89413,89416,89418,89420],{"class":4657,"line":270},[4173,89409,89410],{"class":4784},"Set\u003C",[4173,89412,79693],{"class":4788},[4173,89414,89415],{"class":4784},"> hashSet ",[4173,89417,6387],{"class":4788},[4173,89419,79032],{"class":4788},[4173,89421,89422],{"class":4784}," HashSet\u003C>();\n",[4173,89424,89425,89428,89430,89432,89435],{"class":4657,"line":1263},[4173,89426,89427],{"class":4784},"hashSet.",[4173,89429,79955],{"class":4661},[4173,89431,6390],{"class":4784},[4173,89433,89434],{"class":4669},"\"Apfel\"",[4173,89436,55545],{"class":4784},[4173,89438,89439,89441,89443,89445,89448],{"class":4657,"line":4770},[4173,89440,89427],{"class":4784},[4173,89442,79955],{"class":4661},[4173,89444,6390],{"class":4784},[4173,89446,89447],{"class":4669},"\"Banane\"",[4173,89449,55545],{"class":4784},[4173,89451,89452,89454,89456,89458,89461],{"class":4657,"line":4775},[4173,89453,89427],{"class":4784},[4173,89455,79955],{"class":4661},[4173,89457,6390],{"class":4784},[4173,89459,89460],{"class":4669},"\"Kiwi\"",[4173,89462,55545],{"class":4784},[4173,89464,89465,89467,89469,89471,89473,89475],{"class":4657,"line":6320},[4173,89466,89427],{"class":4784},[4173,89468,79955],{"class":4661},[4173,89470,6390],{"class":4784},[4173,89472,89447],{"class":4669},[4173,89474,79107],{"class":4784},[4173,89476,89477],{"class":4766},"\u002F\u002F Duplikate werden ignoriert\n",[4173,89479,89480,89482,89484,89486,89489,89491],{"class":4657,"line":6325},[4173,89481,79043],{"class":4784},[4173,89483,79074],{"class":4661},[4173,89485,6390],{"class":4784},[4173,89487,89488],{"class":4669},"\"HashSet (ungeordnet): \"",[4173,89490,11719],{"class":4788},[4173,89492,89493],{"class":4784}," hashSet);\n",[4173,89495,89496],{"class":4657,"line":6343},[4173,89497,89392],{"class":4766},[16,89499,89501],{"id":89500},"_2-treeset","\u002F\u002F 2. TreeSet",[4647,89503,89505],{"className":78931,"code":89504,"language":78933,"meta":269,"style":269},"\u002F\u002F ========================\nSet\u003CString> treeSet = new TreeSet\u003C>(hashSet); \u002F\u002F automatisch sortiert\ntreeSet.add(\"Orange\");\nSystem.out.println(\"TreeSet (sortiert): \" + treeSet);\n\u002F\u002F ========================\n",[4653,89506,89507,89511,89530,89544,89560],{"__ignoreMap":269},[4173,89508,89509],{"class":4657,"line":4658},[4173,89510,89392],{"class":4766},[4173,89512,89513,89515,89517,89520,89522,89524,89527],{"class":4657,"line":270},[4173,89514,89410],{"class":4784},[4173,89516,79693],{"class":4788},[4173,89518,89519],{"class":4784},"> treeSet ",[4173,89521,6387],{"class":4788},[4173,89523,79032],{"class":4788},[4173,89525,89526],{"class":4784}," TreeSet\u003C>(hashSet); ",[4173,89528,89529],{"class":4766},"\u002F\u002F automatisch sortiert\n",[4173,89531,89532,89535,89537,89539,89542],{"class":4657,"line":1263},[4173,89533,89534],{"class":4784},"treeSet.",[4173,89536,79955],{"class":4661},[4173,89538,6390],{"class":4784},[4173,89540,89541],{"class":4669},"\"Orange\"",[4173,89543,55545],{"class":4784},[4173,89545,89546,89548,89550,89552,89555,89557],{"class":4657,"line":4770},[4173,89547,79043],{"class":4784},[4173,89549,79074],{"class":4661},[4173,89551,6390],{"class":4784},[4173,89553,89554],{"class":4669},"\"TreeSet (sortiert): \"",[4173,89556,11719],{"class":4788},[4173,89558,89559],{"class":4784}," treeSet);\n",[4173,89561,89562],{"class":4657,"line":4775},[4173,89563,89392],{"class":4766},[16,89565,89567],{"id":89566},"andere","\u002F\u002F Andere",[4647,89569,89571],{"className":78931,"code":89570,"language":78933,"meta":269,"style":269},"\u002F\u002F 3. Collections.unmodifiableSet\n\u002F\u002F ========================\nSet\u003CString> readOnlySet = Collections.unmodifiableSet(treeSet);\nSystem.out.println(\"UnmodifiableSet: \" + readOnlySet);\n\u002F\u002F readOnlySet.add(\"Traube\"); \u002F\u002F ❌ führt zu RuntimeException\n\u002F\u002F ========================\n\u002F\u002F 4. EnumSet\n\u002F\u002F ========================\nEnumSet\u003CWochentag> arbeitstage = EnumSet.of(Wochentag.MONTAG,\nWochentag.DIENSTAG, Wochentag.FREITAG);\nSystem.out.println(\"EnumSet Arbeitstage: \" + arbeitstage);\n\u002F\u002F ========================\n\u002F\u002F Methoden-Demo\n\u002F\u002F ========================\nSystem.out.println(\"\\nTreeSet enthält 'Kiwi'? \" +\ntreeSet.contains(\"Kiwi\"));\nSystem.out.println(\"HashSet Größe: \" + hashSet.size());\ntreeSet.remove(\"Orange\");\nSystem.out.println(\"TreeSet nach remove: \" + treeSet);\nSystem.out.println(\"\\nIterieren über EnumSet:\");\nfor (Wochentag tag : arbeitstage) {\nSystem.out.println(\" - \" + tag);\n}\n}\n}\n",[4653,89572,89573,89578,89582,89602,89618,89626,89630,89635,89639,89661,89666,89682,89686,89691,89695,89712,89724,89744,89757,89772,89789,89801,89817,89821,89825],{"__ignoreMap":269},[4173,89574,89575],{"class":4657,"line":4658},[4173,89576,89577],{"class":4766},"\u002F\u002F 3. Collections.unmodifiableSet\n",[4173,89579,89580],{"class":4657,"line":270},[4173,89581,89392],{"class":4766},[4173,89583,89584,89586,89588,89591,89593,89596,89599],{"class":4657,"line":1263},[4173,89585,89410],{"class":4784},[4173,89587,79693],{"class":4788},[4173,89589,89590],{"class":4784},"> readOnlySet ",[4173,89592,6387],{"class":4788},[4173,89594,89595],{"class":4784}," Collections.",[4173,89597,89598],{"class":4661},"unmodifiableSet",[4173,89600,89601],{"class":4784},"(treeSet);\n",[4173,89603,89604,89606,89608,89610,89613,89615],{"class":4657,"line":4770},[4173,89605,79043],{"class":4784},[4173,89607,79074],{"class":4661},[4173,89609,6390],{"class":4784},[4173,89611,89612],{"class":4669},"\"UnmodifiableSet: \"",[4173,89614,11719],{"class":4788},[4173,89616,89617],{"class":4784}," readOnlySet);\n",[4173,89619,89620,89623],{"class":4657,"line":4775},[4173,89621,89622],{"class":4766},"\u002F\u002F readOnlySet.add(\"Traube\");",[4173,89624,89625],{"class":4766}," \u002F\u002F ❌ führt zu RuntimeException\n",[4173,89627,89628],{"class":4657,"line":6320},[4173,89629,89392],{"class":4766},[4173,89631,89632],{"class":4657,"line":6325},[4173,89633,89634],{"class":4766},"\u002F\u002F 4. EnumSet\n",[4173,89636,89637],{"class":4657,"line":6343},[4173,89638,89392],{"class":4766},[4173,89640,89641,89644,89647,89650,89652,89655,89658],{"class":4657,"line":6348},[4173,89642,89643],{"class":4784},"EnumSet\u003C",[4173,89645,89646],{"class":4788},"Wochentag",[4173,89648,89649],{"class":4784},"> arbeitstage ",[4173,89651,6387],{"class":4788},[4173,89653,89654],{"class":4784}," EnumSet.",[4173,89656,89657],{"class":4661},"of",[4173,89659,89660],{"class":4784},"(Wochentag.MONTAG,\n",[4173,89662,89663],{"class":4657,"line":6457},[4173,89664,89665],{"class":4784},"Wochentag.DIENSTAG, Wochentag.FREITAG);\n",[4173,89667,89668,89670,89672,89674,89677,89679],{"class":4657,"line":6462},[4173,89669,79043],{"class":4784},[4173,89671,79074],{"class":4661},[4173,89673,6390],{"class":4784},[4173,89675,89676],{"class":4669},"\"EnumSet Arbeitstage: \"",[4173,89678,11719],{"class":4788},[4173,89680,89681],{"class":4784}," arbeitstage);\n",[4173,89683,89684],{"class":4657,"line":6468},[4173,89685,89392],{"class":4766},[4173,89687,89688],{"class":4657,"line":6473},[4173,89689,89690],{"class":4766},"\u002F\u002F Methoden-Demo\n",[4173,89692,89693],{"class":4657,"line":6479},[4173,89694,89392],{"class":4766},[4173,89696,89697,89699,89701,89703,89705,89707,89710],{"class":4657,"line":6503},[4173,89698,79043],{"class":4784},[4173,89700,79074],{"class":4661},[4173,89702,6390],{"class":4784},[4173,89704,6207],{"class":4669},[4173,89706,83928],{"class":4665},[4173,89708,89709],{"class":4669},"TreeSet enthält 'Kiwi'? \"",[4173,89711,18989],{"class":4788},[4173,89713,89714,89716,89718,89720,89722],{"class":4657,"line":6516},[4173,89715,89534],{"class":4784},[4173,89717,87222],{"class":4661},[4173,89719,6390],{"class":4784},[4173,89721,89460],{"class":4669},[4173,89723,66047],{"class":4784},[4173,89725,89726,89728,89730,89732,89735,89737,89740,89742],{"class":4657,"line":6971},[4173,89727,79043],{"class":4784},[4173,89729,79074],{"class":4661},[4173,89731,6390],{"class":4784},[4173,89733,89734],{"class":4669},"\"HashSet Größe: \"",[4173,89736,11719],{"class":4788},[4173,89738,89739],{"class":4784}," hashSet.",[4173,89741,10603],{"class":4661},[4173,89743,81860],{"class":4784},[4173,89745,89746,89748,89751,89753,89755],{"class":4657,"line":10649},[4173,89747,89534],{"class":4784},[4173,89749,89750],{"class":4661},"remove",[4173,89752,6390],{"class":4784},[4173,89754,89541],{"class":4669},[4173,89756,55545],{"class":4784},[4173,89758,89759,89761,89763,89765,89768,89770],{"class":4657,"line":10654},[4173,89760,79043],{"class":4784},[4173,89762,79074],{"class":4661},[4173,89764,6390],{"class":4784},[4173,89766,89767],{"class":4669},"\"TreeSet nach remove: \"",[4173,89769,11719],{"class":4788},[4173,89771,89559],{"class":4784},[4173,89773,89774,89776,89778,89780,89782,89784,89787],{"class":4657,"line":10659},[4173,89775,79043],{"class":4784},[4173,89777,79074],{"class":4661},[4173,89779,6390],{"class":4784},[4173,89781,6207],{"class":4669},[4173,89783,83928],{"class":4665},[4173,89785,89786],{"class":4669},"Iterieren über EnumSet:\"",[4173,89788,55545],{"class":4784},[4173,89790,89791,89793,89796,89798],{"class":4657,"line":10664},[4173,89792,6425],{"class":4788},[4173,89794,89795],{"class":4784}," (Wochentag tag ",[4173,89797,8158],{"class":4788},[4173,89799,89800],{"class":4784}," arbeitstage) {\n",[4173,89802,89803,89805,89807,89809,89812,89814],{"class":4657,"line":10676},[4173,89804,79043],{"class":4784},[4173,89806,79074],{"class":4661},[4173,89808,6390],{"class":4784},[4173,89810,89811],{"class":4669},"\" - \"",[4173,89813,11719],{"class":4788},[4173,89815,89816],{"class":4784}," tag);\n",[4173,89818,89819],{"class":4657,"line":10681},[4173,89820,7090],{"class":4784},[4173,89822,89823],{"class":4657,"line":10702},[4173,89824,7090],{"class":4784},[4173,89826,89827],{"class":4657,"line":10707},[4173,89828,7090],{"class":4784},[16,89830,89832],{"id":89831},"generische-datentypen","Generische Datentypen",[4647,89834,89836],{"className":78931,"code":89835,"language":78933,"meta":269,"style":269},"\u002F\u002F Generische Klasse\nclass Box\u003CT> {\nprivate T inhalt;\npublic void setInhalt(T inhalt) {\nthis.inhalt = inhalt;\n}\npublic T getInhalt() {\nreturn inhalt;\n}\n}\npublic class GenericsBeispiel {\npublic static void main(String[] args) {\n\u002F\u002F Box für Integer\nBox\u003CInteger> intBox = new Box\u003C>();\nintBox.setInhalt(123);\nSystem.out.println(\"Integer in Box: \" + intBox.getInhalt());\n\u002F\u002F Box für String\nBox\u003CString> stringBox = new Box\u003C>();\nstringBox.setInhalt(\"Hallo Welt\");\nSystem.out.println(\"String in Box: \" + stringBox.getInhalt());\n}\n}\n",[4653,89837,89838,89843,89857,89864,89880,89892,89896,89908,89914,89918,89922,89933,89953,89958,89976,89990,90010,90015,90030,90044,90064,90068],{"__ignoreMap":269},[4173,89839,89840],{"class":4657,"line":4658},[4173,89841,89842],{"class":4766},"\u002F\u002F Generische Klasse\n",[4173,89844,89845,89847,89850,89852,89854],{"class":4657,"line":270},[4173,89846,79983],{"class":4788},[4173,89848,89849],{"class":4661}," Box",[4173,89851,24345],{"class":4784},[4173,89853,15453],{"class":4788},[4173,89855,89856],{"class":4784},"> {\n",[4173,89858,89859,89861],{"class":4657,"line":1263},[4173,89860,80152],{"class":4788},[4173,89862,89863],{"class":4784}," T inhalt;\n",[4173,89865,89866,89868,89870,89873,89876,89878],{"class":4657,"line":4770},[4173,89867,79889],{"class":4788},[4173,89869,79934],{"class":4788},[4173,89871,89872],{"class":4661}," setInhalt",[4173,89874,89875],{"class":4784},"(T ",[4173,89877,76174],{"class":7074},[4173,89879,56319],{"class":4784},[4173,89881,89882,89884,89887,89889],{"class":4657,"line":4775},[4173,89883,80010],{"class":4665},[4173,89885,89886],{"class":4784},".inhalt ",[4173,89888,6387],{"class":4788},[4173,89890,89891],{"class":4784}," inhalt;\n",[4173,89893,89894],{"class":4657,"line":6320},[4173,89895,7090],{"class":4784},[4173,89897,89898,89900,89903,89906],{"class":4657,"line":6325},[4173,89899,79889],{"class":4788},[4173,89901,89902],{"class":4784}," T ",[4173,89904,89905],{"class":4661},"getInhalt",[4173,89907,7062],{"class":4784},[4173,89909,89910,89912],{"class":4657,"line":6343},[4173,89911,51326],{"class":4788},[4173,89913,89891],{"class":4784},[4173,89915,89916],{"class":4657,"line":6348},[4173,89917,7090],{"class":4784},[4173,89919,89920],{"class":4657,"line":6457},[4173,89921,7090],{"class":4784},[4173,89923,89924,89926,89928,89931],{"class":4657,"line":6462},[4173,89925,79889],{"class":4788},[4173,89927,80062],{"class":4788},[4173,89929,89930],{"class":4661}," GenericsBeispiel",[4173,89932,51614],{"class":4784},[4173,89934,89935,89937,89939,89941,89943,89945,89947,89949,89951],{"class":4657,"line":6468},[4173,89936,79889],{"class":4788},[4173,89938,79892],{"class":4788},[4173,89940,79934],{"class":4788},[4173,89942,79937],{"class":4661},[4173,89944,6390],{"class":4784},[4173,89946,79693],{"class":4788},[4173,89948,80084],{"class":4784},[4173,89950,31283],{"class":7074},[4173,89952,56319],{"class":4784},[4173,89954,89955],{"class":4657,"line":6473},[4173,89956,89957],{"class":4766},"\u002F\u002F Box für Integer\n",[4173,89959,89960,89963,89966,89969,89971,89973],{"class":4657,"line":6479},[4173,89961,89962],{"class":4784},"Box\u003C",[4173,89964,89965],{"class":4788},"Integer",[4173,89967,89968],{"class":4784},"> intBox ",[4173,89970,6387],{"class":4788},[4173,89972,79032],{"class":4788},[4173,89974,89975],{"class":4784}," Box\u003C>();\n",[4173,89977,89978,89981,89984,89986,89988],{"class":4657,"line":6503},[4173,89979,89980],{"class":4784},"intBox.",[4173,89982,89983],{"class":4661},"setInhalt",[4173,89985,6390],{"class":4784},[4173,89987,18031],{"class":4665},[4173,89989,55545],{"class":4784},[4173,89991,89992,89994,89996,89998,90001,90003,90006,90008],{"class":4657,"line":6516},[4173,89993,79043],{"class":4784},[4173,89995,79074],{"class":4661},[4173,89997,6390],{"class":4784},[4173,89999,90000],{"class":4669},"\"Integer in Box: \"",[4173,90002,11719],{"class":4788},[4173,90004,90005],{"class":4784}," intBox.",[4173,90007,89905],{"class":4661},[4173,90009,81860],{"class":4784},[4173,90011,90012],{"class":4657,"line":6971},[4173,90013,90014],{"class":4766},"\u002F\u002F Box für String\n",[4173,90016,90017,90019,90021,90024,90026,90028],{"class":4657,"line":10649},[4173,90018,89962],{"class":4784},[4173,90020,79693],{"class":4788},[4173,90022,90023],{"class":4784},"> stringBox ",[4173,90025,6387],{"class":4788},[4173,90027,79032],{"class":4788},[4173,90029,89975],{"class":4784},[4173,90031,90032,90035,90037,90039,90042],{"class":4657,"line":10654},[4173,90033,90034],{"class":4784},"stringBox.",[4173,90036,89983],{"class":4661},[4173,90038,6390],{"class":4784},[4173,90040,90041],{"class":4669},"\"Hallo Welt\"",[4173,90043,55545],{"class":4784},[4173,90045,90046,90048,90050,90052,90055,90057,90060,90062],{"class":4657,"line":10659},[4173,90047,79043],{"class":4784},[4173,90049,79074],{"class":4661},[4173,90051,6390],{"class":4784},[4173,90053,90054],{"class":4669},"\"String in Box: \"",[4173,90056,11719],{"class":4788},[4173,90058,90059],{"class":4784}," stringBox.",[4173,90061,89905],{"class":4661},[4173,90063,81860],{"class":4784},[4173,90065,90066],{"class":4657,"line":10664},[4173,90067,7090],{"class":4784},[4173,90069,90070],{"class":4657,"line":10676},[4173,90071,7090],{"class":4784},[16,90073,90074],{"id":89336},"Enum",[4647,90076,90078],{"className":78931,"code":90077,"language":78933,"meta":269,"style":269},"\u002F\u002F Definition des Enums\nenum Wochentag {\n",[4653,90079,90080,90085],{"__ignoreMap":269},[4173,90081,90082],{"class":4657,"line":4658},[4173,90083,90084],{"class":4766},"\u002F\u002F Definition des Enums\n",[4173,90086,90087,90089,90091],{"class":4657,"line":270},[4173,90088,89336],{"class":4788},[4173,90090,89339],{"class":4661},[4173,90092,51614],{"class":4784},[11,90094,90096],{"id":90095},"montag","MONTAG,",[11,90098,90100],{"id":90099},"dienstag","DIENSTAG,",[11,90102,90104],{"id":90103},"mittwoch","MITTWOCH,",[11,90106,90108],{"id":90107},"donnerstag","DONNERSTAG,",[11,90110,90112],{"id":90111},"freitag","FREITAG,",[11,90114,90116],{"id":90115},"samstag","SAMSTAG,",[11,90118,90120],{"id":90119},"sonntag","SONNTAG",[4647,90122,90124],{"className":78931,"code":90123,"language":78933,"meta":269,"style":269},"}\npublic class EnumBeispiel {\npublic static void main(String[] args) {\n\u002F\u002F Enum verwenden\nWochentag heute = Wochentag.MITTWOCH;\n\u002F\u002F Ausgabe\nSystem.out.println(\"Heute ist: \" + heute);\n\u002F\u002F Enum in einer Schleife\nSystem.out.println(\"Alle Wochentage:\");\nfor (Wochentag tag : Wochentag.values()) {\nSystem.out.println(tag);\n}\n\u002F\u002F Enum mit Switch\nswitch (heute) {\ncase SAMSTAG, SONNTAG -> System.out.println(\"Es ist Wochenende!\");\ndefault -> System.out.println(\"Es ist ein Arbeitstag.\");\n}\n}\n}\n",[4653,90125,90126,90130,90141,90161,90166,90176,90181,90197,90202,90215,90231,90240,90244,90249,90256,90276,90293,90297,90301],{"__ignoreMap":269},[4173,90127,90128],{"class":4657,"line":4658},[4173,90129,7090],{"class":4784},[4173,90131,90132,90134,90136,90139],{"class":4657,"line":270},[4173,90133,79889],{"class":4788},[4173,90135,80062],{"class":4788},[4173,90137,90138],{"class":4661}," EnumBeispiel",[4173,90140,51614],{"class":4784},[4173,90142,90143,90145,90147,90149,90151,90153,90155,90157,90159],{"class":4657,"line":1263},[4173,90144,79889],{"class":4788},[4173,90146,79892],{"class":4788},[4173,90148,79934],{"class":4788},[4173,90150,79937],{"class":4661},[4173,90152,6390],{"class":4784},[4173,90154,79693],{"class":4788},[4173,90156,80084],{"class":4784},[4173,90158,31283],{"class":7074},[4173,90160,56319],{"class":4784},[4173,90162,90163],{"class":4657,"line":4770},[4173,90164,90165],{"class":4766},"\u002F\u002F Enum verwenden\n",[4173,90167,90168,90171,90173],{"class":4657,"line":4775},[4173,90169,90170],{"class":4784},"Wochentag heute ",[4173,90172,6387],{"class":4788},[4173,90174,90175],{"class":4784}," Wochentag.MITTWOCH;\n",[4173,90177,90178],{"class":4657,"line":6320},[4173,90179,90180],{"class":4766},"\u002F\u002F Ausgabe\n",[4173,90182,90183,90185,90187,90189,90192,90194],{"class":4657,"line":6325},[4173,90184,79043],{"class":4784},[4173,90186,79074],{"class":4661},[4173,90188,6390],{"class":4784},[4173,90190,90191],{"class":4669},"\"Heute ist: \"",[4173,90193,11719],{"class":4788},[4173,90195,90196],{"class":4784}," heute);\n",[4173,90198,90199],{"class":4657,"line":6343},[4173,90200,90201],{"class":4766},"\u002F\u002F Enum in einer Schleife\n",[4173,90203,90204,90206,90208,90210,90213],{"class":4657,"line":6348},[4173,90205,79043],{"class":4784},[4173,90207,79074],{"class":4661},[4173,90209,6390],{"class":4784},[4173,90211,90212],{"class":4669},"\"Alle Wochentage:\"",[4173,90214,55545],{"class":4784},[4173,90216,90217,90219,90221,90223,90226,90229],{"class":4657,"line":6457},[4173,90218,6425],{"class":4788},[4173,90220,89795],{"class":4784},[4173,90222,8158],{"class":4788},[4173,90224,90225],{"class":4784}," Wochentag.",[4173,90227,90228],{"class":4661},"values",[4173,90230,85158],{"class":4784},[4173,90232,90233,90235,90237],{"class":4657,"line":6462},[4173,90234,79043],{"class":4784},[4173,90236,79074],{"class":4661},[4173,90238,90239],{"class":4784},"(tag);\n",[4173,90241,90242],{"class":4657,"line":6468},[4173,90243,7090],{"class":4784},[4173,90245,90246],{"class":4657,"line":6473},[4173,90247,90248],{"class":4766},"\u002F\u002F Enum mit Switch\n",[4173,90250,90251,90253],{"class":4657,"line":6479},[4173,90252,79535],{"class":4788},[4173,90254,90255],{"class":4784}," (heute) {\n",[4173,90257,90258,90260,90263,90265,90267,90269,90271,90274],{"class":4657,"line":6503},[4173,90259,6264],{"class":4788},[4173,90261,90262],{"class":4784}," SAMSTAG, SONNTAG ",[4173,90264,81467],{"class":4788},[4173,90266,79550],{"class":4784},[4173,90268,79074],{"class":4661},[4173,90270,6390],{"class":4784},[4173,90272,90273],{"class":4669},"\"Es ist Wochenende!\"",[4173,90275,55545],{"class":4784},[4173,90277,90278,90280,90282,90284,90286,90288,90291],{"class":4657,"line":6516},[4173,90279,79602],{"class":4788},[4173,90281,79547],{"class":4788},[4173,90283,79550],{"class":4784},[4173,90285,79074],{"class":4661},[4173,90287,6390],{"class":4784},[4173,90289,90290],{"class":4669},"\"Es ist ein Arbeitstag.\"",[4173,90292,55545],{"class":4784},[4173,90294,90295],{"class":4657,"line":6971},[4173,90296,7090],{"class":4784},[4173,90298,90299],{"class":4657,"line":10649},[4173,90300,7090],{"class":4784},[4173,90302,90303],{"class":4657,"line":10654},[4173,90304,7090],{"class":4784},[16,90306,90308],{"id":90307},"java-imports","Java Imports",[4647,90310,90312],{"className":78931,"code":90311,"language":78933,"meta":269,"style":269},"\u002F\u002F GUI-Komponenten\nimport javax.swing.JFrame;       \u002F\u002F Hauptfenster\nimport javax.swing.JPanel;       \u002F\u002F Panel zur Gruppierung von Komponenten\nimport javax.swing.JButton;      \u002F\u002F Button\nimport javax.swing.JLabel;       \u002F\u002F Label\nimport javax.swing.JTextField;   \u002F\u002F Eingabefeld\nimport javax.swing.JFileChooser; \u002F\u002F Datei-Auswahldialog\nimport javax.swing.JOptionPane;  \u002F\u002F Popup-Dialog\n\u002F\u002F GUI-Komponenten (Swing)\nimport javax.swing.*;   \u002F\u002F JFrame, JPanel, JButton, JLabel, JTextField, JOptionPane,\nJFileChooser etc.\n\u002F\u002F Layouts\nimport java.awt.GridLayout;      \u002F\u002F Grid-Layout\nimport java.awt.BorderLayout;    \u002F\u002F Border-Layout\nimport java.awt.FlowLayout;      \u002F\u002F Flow-Layout\nimport java.awt.Font;            \u002F\u002F Schriftarten\n\u002F\u002F Layouts & Schriftarten (AWT)\nimport java.awt.*;      \u002F\u002F GridLayout, BorderLayout, FlowLayout, Font, Color etc.\n\u002F\u002F Event-Handling\nimport java.awt.event.ActionListener; \u002F\u002F Listener für Aktionen (z.B. Button klicken)\nimport java.awt.event.ActionEvent;    \u002F\u002F Event-Objekt für Aktionen\nimport java.awt.event.KeyListener;    \u002F\u002F Listener für Tastatureingaben\nimport java.awt.event.KeyEvent;       \u002F\u002F Event-Objekt für Tastatureingaben\nimport java.awt.event.MouseListener;  \u002F\u002F Listener für Mausaktionen\nimport java.awt.event.MouseEvent;     \u002F\u002F Event-Objekt für Mausaktionen\n\u002F\u002F Event-Handling (AWT Events)\nimport java.awt.event.*; \u002F\u002F ActionListener, ActionEvent, KeyListener, KeyEvent,\nMouseListener, MouseEvent etc.\n\u002F\u002F Datei-Handling\nimport java.io.File;             \u002F\u002F Dateien und Verzeichnisse\nimport java.io.FileReader;       \u002F\u002F Dateien lesen\nimport java.io.FileWriter;       \u002F\u002F Dateien schreiben\nimport java.io.BufferedReader;   \u002F\u002F Puffern beim Lesen\nimport java.io.BufferedWriter;   \u002F\u002F Puffern beim Schreiben\nimport java.io.IOException;      \u002F\u002F Ausnahmebehandlung für Dateioperationen\n\u002F\u002F Datei-Handling\nimport java.io.*;       \u002F\u002F File, FileReader, FileWriter, BufferedReader,\nBufferedWriter, IOException etc.\n",[4653,90313,90314,90319,90329,90339,90349,90359,90369,90379,90389,90394,90408,90413,90418,90428,90438,90448,90458,90463,90477,90482,90492,90502,90512,90522,90532,90542,90547,90560,90565,90570,90580,90590,90600,90610,90620,90630,90634,90649],{"__ignoreMap":269},[4173,90315,90316],{"class":4657,"line":4658},[4173,90317,90318],{"class":4766},"\u002F\u002F GUI-Komponenten\n",[4173,90320,90321,90323,90326],{"class":4657,"line":270},[4173,90322,79019],{"class":4788},[4173,90324,90325],{"class":4784}," javax.swing.JFrame;       ",[4173,90327,90328],{"class":4766},"\u002F\u002F Hauptfenster\n",[4173,90330,90331,90333,90336],{"class":4657,"line":1263},[4173,90332,79019],{"class":4788},[4173,90334,90335],{"class":4784}," javax.swing.JPanel;       ",[4173,90337,90338],{"class":4766},"\u002F\u002F Panel zur Gruppierung von Komponenten\n",[4173,90340,90341,90343,90346],{"class":4657,"line":4770},[4173,90342,79019],{"class":4788},[4173,90344,90345],{"class":4784}," javax.swing.JButton;      ",[4173,90347,90348],{"class":4766},"\u002F\u002F Button\n",[4173,90350,90351,90353,90356],{"class":4657,"line":4775},[4173,90352,79019],{"class":4788},[4173,90354,90355],{"class":4784}," javax.swing.JLabel;       ",[4173,90357,90358],{"class":4766},"\u002F\u002F Label\n",[4173,90360,90361,90363,90366],{"class":4657,"line":6320},[4173,90362,79019],{"class":4788},[4173,90364,90365],{"class":4784}," javax.swing.JTextField;   ",[4173,90367,90368],{"class":4766},"\u002F\u002F Eingabefeld\n",[4173,90370,90371,90373,90376],{"class":4657,"line":6325},[4173,90372,79019],{"class":4788},[4173,90374,90375],{"class":4784}," javax.swing.JFileChooser; ",[4173,90377,90378],{"class":4766},"\u002F\u002F Datei-Auswahldialog\n",[4173,90380,90381,90383,90386],{"class":4657,"line":6343},[4173,90382,79019],{"class":4788},[4173,90384,90385],{"class":4784}," javax.swing.JOptionPane;  ",[4173,90387,90388],{"class":4766},"\u002F\u002F Popup-Dialog\n",[4173,90390,90391],{"class":4657,"line":6348},[4173,90392,90393],{"class":4766},"\u002F\u002F GUI-Komponenten (Swing)\n",[4173,90395,90396,90398,90400,90402,90405],{"class":4657,"line":6457},[4173,90397,79019],{"class":4788},[4173,90399,80877],{"class":4784},[4173,90401,6328],{"class":4665},[4173,90403,90404],{"class":4784},";   ",[4173,90406,90407],{"class":4766},"\u002F\u002F JFrame, JPanel, JButton, JLabel, JTextField, JOptionPane,\n",[4173,90409,90410],{"class":4657,"line":6462},[4173,90411,90412],{"class":4784},"JFileChooser etc.\n",[4173,90414,90415],{"class":4657,"line":6468},[4173,90416,90417],{"class":4766},"\u002F\u002F Layouts\n",[4173,90419,90420,90422,90425],{"class":4657,"line":6473},[4173,90421,79019],{"class":4788},[4173,90423,90424],{"class":4784}," java.awt.GridLayout;      ",[4173,90426,90427],{"class":4766},"\u002F\u002F Grid-Layout\n",[4173,90429,90430,90432,90435],{"class":4657,"line":6479},[4173,90431,79019],{"class":4788},[4173,90433,90434],{"class":4784}," java.awt.BorderLayout;    ",[4173,90436,90437],{"class":4766},"\u002F\u002F Border-Layout\n",[4173,90439,90440,90442,90445],{"class":4657,"line":6503},[4173,90441,79019],{"class":4788},[4173,90443,90444],{"class":4784}," java.awt.FlowLayout;      ",[4173,90446,90447],{"class":4766},"\u002F\u002F Flow-Layout\n",[4173,90449,90450,90452,90455],{"class":4657,"line":6516},[4173,90451,79019],{"class":4788},[4173,90453,90454],{"class":4784}," java.awt.Font;            ",[4173,90456,90457],{"class":4766},"\u002F\u002F Schriftarten\n",[4173,90459,90460],{"class":4657,"line":6971},[4173,90461,90462],{"class":4766},"\u002F\u002F Layouts & Schriftarten (AWT)\n",[4173,90464,90465,90467,90469,90471,90474],{"class":4657,"line":10649},[4173,90466,79019],{"class":4788},[4173,90468,80902],{"class":4784},[4173,90470,6328],{"class":4665},[4173,90472,90473],{"class":4784},";      ",[4173,90475,90476],{"class":4766},"\u002F\u002F GridLayout, BorderLayout, FlowLayout, Font, Color etc.\n",[4173,90478,90479],{"class":4657,"line":10654},[4173,90480,90481],{"class":4766},"\u002F\u002F Event-Handling\n",[4173,90483,90484,90486,90489],{"class":4657,"line":10659},[4173,90485,79019],{"class":4788},[4173,90487,90488],{"class":4784}," java.awt.event.ActionListener; ",[4173,90490,90491],{"class":4766},"\u002F\u002F Listener für Aktionen (z.B. Button klicken)\n",[4173,90493,90494,90496,90499],{"class":4657,"line":10664},[4173,90495,79019],{"class":4788},[4173,90497,90498],{"class":4784}," java.awt.event.ActionEvent;    ",[4173,90500,90501],{"class":4766},"\u002F\u002F Event-Objekt für Aktionen\n",[4173,90503,90504,90506,90509],{"class":4657,"line":10676},[4173,90505,79019],{"class":4788},[4173,90507,90508],{"class":4784}," java.awt.event.KeyListener;    ",[4173,90510,90511],{"class":4766},"\u002F\u002F Listener für Tastatureingaben\n",[4173,90513,90514,90516,90519],{"class":4657,"line":10681},[4173,90515,79019],{"class":4788},[4173,90517,90518],{"class":4784}," java.awt.event.KeyEvent;       ",[4173,90520,90521],{"class":4766},"\u002F\u002F Event-Objekt für Tastatureingaben\n",[4173,90523,90524,90526,90529],{"class":4657,"line":10702},[4173,90525,79019],{"class":4788},[4173,90527,90528],{"class":4784}," java.awt.event.MouseListener;  ",[4173,90530,90531],{"class":4766},"\u002F\u002F Listener für Mausaktionen\n",[4173,90533,90534,90536,90539],{"class":4657,"line":10707},[4173,90535,79019],{"class":4788},[4173,90537,90538],{"class":4784}," java.awt.event.MouseEvent;     ",[4173,90540,90541],{"class":4766},"\u002F\u002F Event-Objekt für Mausaktionen\n",[4173,90543,90544],{"class":4657,"line":10712},[4173,90545,90546],{"class":4766},"\u002F\u002F Event-Handling (AWT Events)\n",[4173,90548,90549,90551,90553,90555,90557],{"class":4657,"line":10717},[4173,90550,79019],{"class":4788},[4173,90552,80913],{"class":4784},[4173,90554,6328],{"class":4665},[4173,90556,6498],{"class":4784},[4173,90558,90559],{"class":4766},"\u002F\u002F ActionListener, ActionEvent, KeyListener, KeyEvent,\n",[4173,90561,90562],{"class":4657,"line":10727},[4173,90563,90564],{"class":4784},"MouseListener, MouseEvent etc.\n",[4173,90566,90567],{"class":4657,"line":10732},[4173,90568,90569],{"class":4766},"\u002F\u002F Datei-Handling\n",[4173,90571,90572,90574,90577],{"class":4657,"line":10737},[4173,90573,79019],{"class":4788},[4173,90575,90576],{"class":4784}," java.io.File;             ",[4173,90578,90579],{"class":4766},"\u002F\u002F Dateien und Verzeichnisse\n",[4173,90581,90582,90584,90587],{"class":4657,"line":10742},[4173,90583,79019],{"class":4788},[4173,90585,90586],{"class":4784}," java.io.FileReader;       ",[4173,90588,90589],{"class":4766},"\u002F\u002F Dateien lesen\n",[4173,90591,90592,90594,90597],{"class":4657,"line":10752},[4173,90593,79019],{"class":4788},[4173,90595,90596],{"class":4784}," java.io.FileWriter;       ",[4173,90598,90599],{"class":4766},"\u002F\u002F Dateien schreiben\n",[4173,90601,90602,90604,90607],{"class":4657,"line":10757},[4173,90603,79019],{"class":4788},[4173,90605,90606],{"class":4784}," java.io.BufferedReader;   ",[4173,90608,90609],{"class":4766},"\u002F\u002F Puffern beim Lesen\n",[4173,90611,90612,90614,90617],{"class":4657,"line":10762},[4173,90613,79019],{"class":4788},[4173,90615,90616],{"class":4784}," java.io.BufferedWriter;   ",[4173,90618,90619],{"class":4766},"\u002F\u002F Puffern beim Schreiben\n",[4173,90621,90622,90624,90627],{"class":4657,"line":10767},[4173,90623,79019],{"class":4788},[4173,90625,90626],{"class":4784}," java.io.IOException;      ",[4173,90628,90629],{"class":4766},"\u002F\u002F Ausnahmebehandlung für Dateioperationen\n",[4173,90631,90632],{"class":4657,"line":10772},[4173,90633,90569],{"class":4766},[4173,90635,90636,90638,90641,90643,90646],{"class":4657,"line":10777},[4173,90637,79019],{"class":4788},[4173,90639,90640],{"class":4784}," java.io.",[4173,90642,6328],{"class":4665},[4173,90644,90645],{"class":4784},";       ",[4173,90647,90648],{"class":4766},"\u002F\u002F File, FileReader, FileWriter, BufferedReader,\n",[4173,90650,90651],{"class":4657,"line":10782},[4173,90652,90653],{"class":4784},"BufferedWriter, IOException etc.\n",[16,90655,90657],{"id":90656},"schwimmer-gui-übung-von-seidel","Schwimmer GUI übung von Seidel",[16,90659,90661],{"id":90660},"_1schwimmerguijava","1.SchwimmerGUI.java",[4647,90663,90665],{"className":78931,"code":90664,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport java.awt.*;\npublic class SchwimmerGUI extends JFrame {\n\u002F\u002F Instanzvariablen nur für benötigte Elemente\nprivate JTextField tfName;\nprivate JTextField tfVorname;\nprivate JTextField tfKlasse;\n\u002F\u002F Feld für bis zu 100 Schwimmer\nprivate Schwimmer[] teilnehmer = new Schwimmer[100];\nprivate int index = 0; \u002F\u002F nächste freie Position\npublic SchwimmerGUI() {\nsuper(\"Schwimmerverwaltung\");\nsetLayout(new GridLayout(6, 1));\nsetSize(400, 300);\nsetResizable(false);\nsetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n\u002F\u002F Erste Zeile – Titel\nJLabel lblTitel = new JLabel(\"Schwimmer-Erfassung\",\nSwingConstants.CENTER);\nlblTitel.setFont(new Font(\"Courier\", Font.ITALIC, 20));\nadd(lblTitel);\n\u002F\u002F Zeile 2 – Name\nJPanel p1 = new JPanel();\np1.add(new JLabel(\"Name:\"));\ntfName = new JTextField(20);\np1.add(tfName);\nadd(p1);\n\u002F\u002F Zeile 3 – Vorname\nJPanel p2 = new JPanel();\np2.add(new JLabel(\"Vorname:\"));\ntfVorname = new JTextField(20);\np2.add(tfVorname);\nadd(p2);\n\u002F\u002F Zeile 4 – Klasse\nJPanel p3 = new JPanel();\np3.add(new JLabel(\"Klasse:\"));\ntfKlasse = new JTextField(3);\np3.add(tfKlasse);\nadd(p3);\n\u002F\u002F Zeile 5 – Speichern Button\nJButton btnSave = new JButton(\"Speichern\");\nbtnSave.addActionListener(new SpeichernEreignis(this));\nadd(btnSave);\n\u002F\u002F Zeile 6 – Zurücksetzen Button\nJButton btnReset = new JButton(\"Zurücksetzen\");\nbtnReset.addActionListener(new ZuruecksetzenEreignis(tfName,\ntfVorname, tfKlasse));\nadd(btnReset);\nsetVisible(true);\n}\n\u002F\u002F Zugriffsmethoden für Ereignisklasse\npublic String getNameEingabe() { return tfName.getText(); }\npublic String getVornameEingabe() { return tfVorname.getText(); }\npublic String getKlasseEingabe() { return tfKlasse.getText(); }\npublic void addSchwimmer(Schwimmer s) {\nif (index \u003C teilnehmer.length) {\nteilnehmer[index] = s;\nindex++;\n}\n}\npublic void printArray() {\nSystem.out.println();\nfor (int i = 0; i \u003C index; i++) {\nSystem.out.println(teilnehmer[i]);\n}\n}\npublic static void main(String[] args) {\nnew SchwimmerGUI();\n}\n}\n",[4653,90666,90667,90677,90687,90702,90707,90714,90721,90728,90733,90756,90774,90782,90793,90813,90828,90839,90845,90850,90868,90873,90897,90904,90909,90922,90942,90959,90968,90975,90980,90993,91013,91030,91039,91046,91051,91064,91084,91101,91110,91117,91122,91139,91159,91166,91171,91189,91206,91211,91218,91228,91232,91237,91259,91279,91299,91315,91327,91337,91346,91350,91354,91365,91373,91398,91407,91411,91415,91435,91443,91447],{"__ignoreMap":269},[4173,90668,90669,90671,90673,90675],{"class":4657,"line":4658},[4173,90670,79019],{"class":4788},[4173,90672,80877],{"class":4784},[4173,90674,6328],{"class":4665},[4173,90676,55559],{"class":4784},[4173,90678,90679,90681,90683,90685],{"class":4657,"line":270},[4173,90680,79019],{"class":4788},[4173,90682,80902],{"class":4784},[4173,90684,6328],{"class":4665},[4173,90686,55559],{"class":4784},[4173,90688,90689,90691,90693,90696,90698,90700],{"class":4657,"line":1263},[4173,90690,79889],{"class":4788},[4173,90692,80062],{"class":4788},[4173,90694,90695],{"class":4661}," SchwimmerGUI",[4173,90697,80500],{"class":4788},[4173,90699,80986],{"class":4661},[4173,90701,51614],{"class":4784},[4173,90703,90704],{"class":4657,"line":4770},[4173,90705,90706],{"class":4766},"\u002F\u002F Instanzvariablen nur für benötigte Elemente\n",[4173,90708,90709,90711],{"class":4657,"line":4775},[4173,90710,80152],{"class":4788},[4173,90712,90713],{"class":4784}," JTextField tfName;\n",[4173,90715,90716,90718],{"class":4657,"line":6320},[4173,90717,80152],{"class":4788},[4173,90719,90720],{"class":4784}," JTextField tfVorname;\n",[4173,90722,90723,90725],{"class":4657,"line":6325},[4173,90724,80152],{"class":4788},[4173,90726,90727],{"class":4784}," JTextField tfKlasse;\n",[4173,90729,90730],{"class":4657,"line":6343},[4173,90731,90732],{"class":4766},"\u002F\u002F Feld für bis zu 100 Schwimmer\n",[4173,90734,90735,90737,90740,90743,90745,90747,90749,90751,90753],{"class":4657,"line":6348},[4173,90736,80152],{"class":4788},[4173,90738,90739],{"class":4788}," Schwimmer",[4173,90741,90742],{"class":4784},"[] teilnehmer ",[4173,90744,6387],{"class":4788},[4173,90746,79032],{"class":4788},[4173,90748,90739],{"class":4788},[4173,90750,11612],{"class":4784},[4173,90752,5961],{"class":4665},[4173,90754,90755],{"class":4784},"];\n",[4173,90757,90758,90760,90762,90765,90767,90769,90771],{"class":4657,"line":6457},[4173,90759,80152],{"class":4788},[4173,90761,79895],{"class":4788},[4173,90763,90764],{"class":4784}," index ",[4173,90766,6387],{"class":4788},[4173,90768,25370],{"class":4665},[4173,90770,6498],{"class":4784},[4173,90772,90773],{"class":4766},"\u002F\u002F nächste freie Position\n",[4173,90775,90776,90778,90780],{"class":4657,"line":6462},[4173,90777,79889],{"class":4788},[4173,90779,90695],{"class":4661},[4173,90781,7062],{"class":4784},[4173,90783,90784,90786,90788,90791],{"class":4657,"line":6468},[4173,90785,80521],{"class":4665},[4173,90787,6390],{"class":4784},[4173,90789,90790],{"class":4669},"\"Schwimmerverwaltung\"",[4173,90792,55545],{"class":4784},[4173,90794,90795,90797,90799,90801,90803,90805,90807,90809,90811],{"class":4657,"line":6473},[4173,90796,81238],{"class":4661},[4173,90798,6390],{"class":4784},[4173,90800,81243],{"class":4788},[4173,90802,81729],{"class":4661},[4173,90804,6390],{"class":4784},[4173,90806,14278],{"class":4665},[4173,90808,8629],{"class":4784},[4173,90810,14223],{"class":4665},[4173,90812,66047],{"class":4784},[4173,90814,90815,90817,90819,90821,90823,90826],{"class":4657,"line":6479},[4173,90816,81129],{"class":4661},[4173,90818,6390],{"class":4784},[4173,90820,35097],{"class":4665},[4173,90822,8629],{"class":4784},[4173,90824,90825],{"class":4665},"300",[4173,90827,55545],{"class":4784},[4173,90829,90830,90832,90834,90837],{"class":4657,"line":6503},[4173,90831,81149],{"class":4661},[4173,90833,6390],{"class":4784},[4173,90835,90836],{"class":4665},"false",[4173,90838,55545],{"class":4784},[4173,90840,90841,90843],{"class":4657,"line":6516},[4173,90842,81114],{"class":4661},[4173,90844,83561],{"class":4784},[4173,90846,90847],{"class":4657,"line":6971},[4173,90848,90849],{"class":4766},"\u002F\u002F Erste Zeile – Titel\n",[4173,90851,90852,90855,90857,90859,90861,90863,90866],{"class":4657,"line":10649},[4173,90853,90854],{"class":4784},"JLabel lblTitel ",[4173,90856,6387],{"class":4788},[4173,90858,79032],{"class":4788},[4173,90860,81563],{"class":4661},[4173,90862,6390],{"class":4784},[4173,90864,90865],{"class":4669},"\"Schwimmer-Erfassung\"",[4173,90867,66026],{"class":4784},[4173,90869,90870],{"class":4657,"line":10654},[4173,90871,90872],{"class":4784},"SwingConstants.CENTER);\n",[4173,90874,90875,90878,90880,90882,90884,90886,90888,90891,90893,90895],{"class":4657,"line":10659},[4173,90876,90877],{"class":4784},"lblTitel.",[4173,90879,81578],{"class":4661},[4173,90881,6390],{"class":4784},[4173,90883,81243],{"class":4788},[4173,90885,81585],{"class":4661},[4173,90887,6390],{"class":4784},[4173,90889,90890],{"class":4669},"\"Courier\"",[4173,90892,81645],{"class":4784},[4173,90894,83246],{"class":4665},[4173,90896,66047],{"class":4784},[4173,90898,90899,90901],{"class":4657,"line":10664},[4173,90900,79955],{"class":4661},[4173,90902,90903],{"class":4784},"(lblTitel);\n",[4173,90905,90906],{"class":4657,"line":10676},[4173,90907,90908],{"class":4766},"\u002F\u002F Zeile 2 – Name\n",[4173,90910,90911,90914,90916,90918,90920],{"class":4657,"line":10681},[4173,90912,90913],{"class":4784},"JPanel p1 ",[4173,90915,6387],{"class":4788},[4173,90917,79032],{"class":4788},[4173,90919,81533],{"class":4661},[4173,90921,65878],{"class":4784},[4173,90923,90924,90927,90929,90931,90933,90935,90937,90940],{"class":4657,"line":10702},[4173,90925,90926],{"class":4784},"p1.",[4173,90928,79955],{"class":4661},[4173,90930,6390],{"class":4784},[4173,90932,81243],{"class":4788},[4173,90934,81563],{"class":4661},[4173,90936,6390],{"class":4784},[4173,90938,90939],{"class":4669},"\"Name:\"",[4173,90941,66047],{"class":4784},[4173,90943,90944,90947,90949,90951,90953,90955,90957],{"class":4657,"line":10707},[4173,90945,90946],{"class":4784},"tfName ",[4173,90948,6387],{"class":4788},[4173,90950,79032],{"class":4788},[4173,90952,83065],{"class":4661},[4173,90954,6390],{"class":4784},[4173,90956,83246],{"class":4665},[4173,90958,55545],{"class":4784},[4173,90960,90961,90963,90965],{"class":4657,"line":10712},[4173,90962,90926],{"class":4784},[4173,90964,79955],{"class":4661},[4173,90966,90967],{"class":4784},"(tfName);\n",[4173,90969,90970,90972],{"class":4657,"line":10717},[4173,90971,79955],{"class":4661},[4173,90973,90974],{"class":4784},"(p1);\n",[4173,90976,90977],{"class":4657,"line":10727},[4173,90978,90979],{"class":4766},"\u002F\u002F Zeile 3 – Vorname\n",[4173,90981,90982,90985,90987,90989,90991],{"class":4657,"line":10732},[4173,90983,90984],{"class":4784},"JPanel p2 ",[4173,90986,6387],{"class":4788},[4173,90988,79032],{"class":4788},[4173,90990,81533],{"class":4661},[4173,90992,65878],{"class":4784},[4173,90994,90995,90998,91000,91002,91004,91006,91008,91011],{"class":4657,"line":10737},[4173,90996,90997],{"class":4784},"p2.",[4173,90999,79955],{"class":4661},[4173,91001,6390],{"class":4784},[4173,91003,81243],{"class":4788},[4173,91005,81563],{"class":4661},[4173,91007,6390],{"class":4784},[4173,91009,91010],{"class":4669},"\"Vorname:\"",[4173,91012,66047],{"class":4784},[4173,91014,91015,91018,91020,91022,91024,91026,91028],{"class":4657,"line":10742},[4173,91016,91017],{"class":4784},"tfVorname ",[4173,91019,6387],{"class":4788},[4173,91021,79032],{"class":4788},[4173,91023,83065],{"class":4661},[4173,91025,6390],{"class":4784},[4173,91027,83246],{"class":4665},[4173,91029,55545],{"class":4784},[4173,91031,91032,91034,91036],{"class":4657,"line":10752},[4173,91033,90997],{"class":4784},[4173,91035,79955],{"class":4661},[4173,91037,91038],{"class":4784},"(tfVorname);\n",[4173,91040,91041,91043],{"class":4657,"line":10757},[4173,91042,79955],{"class":4661},[4173,91044,91045],{"class":4784},"(p2);\n",[4173,91047,91048],{"class":4657,"line":10762},[4173,91049,91050],{"class":4766},"\u002F\u002F Zeile 4 – Klasse\n",[4173,91052,91053,91056,91058,91060,91062],{"class":4657,"line":10767},[4173,91054,91055],{"class":4784},"JPanel p3 ",[4173,91057,6387],{"class":4788},[4173,91059,79032],{"class":4788},[4173,91061,81533],{"class":4661},[4173,91063,65878],{"class":4784},[4173,91065,91066,91069,91071,91073,91075,91077,91079,91082],{"class":4657,"line":10772},[4173,91067,91068],{"class":4784},"p3.",[4173,91070,79955],{"class":4661},[4173,91072,6390],{"class":4784},[4173,91074,81243],{"class":4788},[4173,91076,81563],{"class":4661},[4173,91078,6390],{"class":4784},[4173,91080,91081],{"class":4669},"\"Klasse:\"",[4173,91083,66047],{"class":4784},[4173,91085,91086,91089,91091,91093,91095,91097,91099],{"class":4657,"line":10777},[4173,91087,91088],{"class":4784},"tfKlasse ",[4173,91090,6387],{"class":4788},[4173,91092,79032],{"class":4788},[4173,91094,83065],{"class":4661},[4173,91096,6390],{"class":4784},[4173,91098,14318],{"class":4665},[4173,91100,55545],{"class":4784},[4173,91102,91103,91105,91107],{"class":4657,"line":10782},[4173,91104,91068],{"class":4784},[4173,91106,79955],{"class":4661},[4173,91108,91109],{"class":4784},"(tfKlasse);\n",[4173,91111,91112,91114],{"class":4657,"line":10787},[4173,91113,79955],{"class":4661},[4173,91115,91116],{"class":4784},"(p3);\n",[4173,91118,91119],{"class":4657,"line":10800},[4173,91120,91121],{"class":4766},"\u002F\u002F Zeile 5 – Speichern Button\n",[4173,91123,91124,91127,91129,91131,91133,91135,91137],{"class":4657,"line":10805},[4173,91125,91126],{"class":4784},"JButton btnSave ",[4173,91128,6387],{"class":4788},[4173,91130,79032],{"class":4788},[4173,91132,81836],{"class":4661},[4173,91134,6390],{"class":4784},[4173,91136,84579],{"class":4669},[4173,91138,55545],{"class":4784},[4173,91140,91141,91144,91146,91148,91150,91153,91155,91157],{"class":4657,"line":10818},[4173,91142,91143],{"class":4784},"btnSave.",[4173,91145,81461],{"class":4661},[4173,91147,6390],{"class":4784},[4173,91149,81243],{"class":4788},[4173,91151,91152],{"class":4661}," SpeichernEreignis",[4173,91154,6390],{"class":4784},[4173,91156,80010],{"class":4665},[4173,91158,66047],{"class":4784},[4173,91160,91161,91163],{"class":4657,"line":10823},[4173,91162,79955],{"class":4661},[4173,91164,91165],{"class":4784},"(btnSave);\n",[4173,91167,91168],{"class":4657,"line":10836},[4173,91169,91170],{"class":4766},"\u002F\u002F Zeile 6 – Zurücksetzen Button\n",[4173,91172,91173,91176,91178,91180,91182,91184,91187],{"class":4657,"line":10841},[4173,91174,91175],{"class":4784},"JButton btnReset ",[4173,91177,6387],{"class":4788},[4173,91179,79032],{"class":4788},[4173,91181,81836],{"class":4661},[4173,91183,6390],{"class":4784},[4173,91185,91186],{"class":4669},"\"Zurücksetzen\"",[4173,91188,55545],{"class":4784},[4173,91190,91191,91194,91196,91198,91200,91203],{"class":4657,"line":10846},[4173,91192,91193],{"class":4784},"btnReset.",[4173,91195,81461],{"class":4661},[4173,91197,6390],{"class":4784},[4173,91199,81243],{"class":4788},[4173,91201,91202],{"class":4661}," ZuruecksetzenEreignis",[4173,91204,91205],{"class":4784},"(tfName,\n",[4173,91207,91208],{"class":4657,"line":10851},[4173,91209,91210],{"class":4784},"tfVorname, tfKlasse));\n",[4173,91212,91213,91215],{"class":4657,"line":10867},[4173,91214,79955],{"class":4661},[4173,91216,91217],{"class":4784},"(btnReset);\n",[4173,91219,91220,91222,91224,91226],{"class":4657,"line":10872},[4173,91221,83456],{"class":4661},[4173,91223,6390],{"class":4784},[4173,91225,45190],{"class":4665},[4173,91227,55545],{"class":4784},[4173,91229,91230],{"class":4657,"line":10877},[4173,91231,7090],{"class":4784},[4173,91233,91234],{"class":4657,"line":10882},[4173,91235,91236],{"class":4766},"\u002F\u002F Zugriffsmethoden für Ereignisklasse\n",[4173,91238,91239,91241,91243,91246,91249,91251,91254,91256],{"class":4657,"line":10890},[4173,91240,79889],{"class":4788},[4173,91242,80225],{"class":4784},[4173,91244,91245],{"class":4661},"getNameEingabe",[4173,91247,91248],{"class":4784},"() { ",[4173,91250,51326],{"class":4788},[4173,91252,91253],{"class":4784}," tfName.",[4173,91255,83296],{"class":4661},[4173,91257,91258],{"class":4784},"(); }\n",[4173,91260,91261,91263,91265,91268,91270,91272,91275,91277],{"class":4657,"line":10895},[4173,91262,79889],{"class":4788},[4173,91264,80225],{"class":4784},[4173,91266,91267],{"class":4661},"getVornameEingabe",[4173,91269,91248],{"class":4784},[4173,91271,51326],{"class":4788},[4173,91273,91274],{"class":4784}," tfVorname.",[4173,91276,83296],{"class":4661},[4173,91278,91258],{"class":4784},[4173,91280,91281,91283,91285,91288,91290,91292,91295,91297],{"class":4657,"line":10904},[4173,91282,79889],{"class":4788},[4173,91284,80225],{"class":4784},[4173,91286,91287],{"class":4661},"getKlasseEingabe",[4173,91289,91248],{"class":4784},[4173,91291,51326],{"class":4788},[4173,91293,91294],{"class":4784}," tfKlasse.",[4173,91296,83296],{"class":4661},[4173,91298,91258],{"class":4784},[4173,91300,91301,91303,91305,91308,91311,91313],{"class":4657,"line":10909},[4173,91302,79889],{"class":4788},[4173,91304,79934],{"class":4788},[4173,91306,91307],{"class":4661}," addSchwimmer",[4173,91309,91310],{"class":4784},"(Schwimmer ",[4173,91312,12522],{"class":7074},[4173,91314,56319],{"class":4784},[4173,91316,91317,91319,91322,91324],{"class":4657,"line":10914},[4173,91318,6201],{"class":4788},[4173,91320,91321],{"class":4784}," (index ",[4173,91323,24345],{"class":4788},[4173,91325,91326],{"class":4784}," teilnehmer.length) {\n",[4173,91328,91329,91332,91334],{"class":4657,"line":10919},[4173,91330,91331],{"class":4784},"teilnehmer[index] ",[4173,91333,6387],{"class":4788},[4173,91335,91336],{"class":4784}," s;\n",[4173,91338,91339,91342,91344],{"class":4657,"line":10933},[4173,91340,91341],{"class":4784},"index",[4173,91343,10670],{"class":4788},[4173,91345,55559],{"class":4784},[4173,91347,91348],{"class":4657,"line":10938},[4173,91349,7090],{"class":4784},[4173,91351,91352],{"class":4657,"line":10959},[4173,91353,7090],{"class":4784},[4173,91355,91356,91358,91360,91363],{"class":4657,"line":10964},[4173,91357,79889],{"class":4788},[4173,91359,79934],{"class":4788},[4173,91361,91362],{"class":4661}," printArray",[4173,91364,7062],{"class":4784},[4173,91366,91367,91369,91371],{"class":4657,"line":10969},[4173,91368,79043],{"class":4784},[4173,91370,79074],{"class":4661},[4173,91372,65878],{"class":4784},[4173,91374,91375,91377,91379,91381,91383,91385,91387,91389,91391,91394,91396],{"class":4657,"line":10974},[4173,91376,6425],{"class":4788},[4173,91378,4171],{"class":4784},[4173,91380,64831],{"class":4788},[4173,91382,6555],{"class":4784},[4173,91384,6387],{"class":4788},[4173,91386,25370],{"class":4665},[4173,91388,79645],{"class":4784},[4173,91390,24345],{"class":4788},[4173,91392,91393],{"class":4784}," index; i",[4173,91395,10670],{"class":4788},[4173,91397,56319],{"class":4784},[4173,91399,91400,91402,91404],{"class":4657,"line":10982},[4173,91401,79043],{"class":4784},[4173,91403,79074],{"class":4661},[4173,91405,91406],{"class":4784},"(teilnehmer[i]);\n",[4173,91408,91409],{"class":4657,"line":10987},[4173,91410,7090],{"class":4784},[4173,91412,91413],{"class":4657,"line":10995},[4173,91414,7090],{"class":4784},[4173,91416,91417,91419,91421,91423,91425,91427,91429,91431,91433],{"class":4657,"line":11000},[4173,91418,79889],{"class":4788},[4173,91420,79892],{"class":4788},[4173,91422,79934],{"class":4788},[4173,91424,79937],{"class":4661},[4173,91426,6390],{"class":4784},[4173,91428,79693],{"class":4788},[4173,91430,80084],{"class":4784},[4173,91432,31283],{"class":7074},[4173,91434,56319],{"class":4784},[4173,91436,91437,91439,91441],{"class":4657,"line":11008},[4173,91438,81243],{"class":4788},[4173,91440,90695],{"class":4661},[4173,91442,65878],{"class":4784},[4173,91444,91445],{"class":4657,"line":11013},[4173,91446,7090],{"class":4784},[4173,91448,91449],{"class":4657,"line":11021},[4173,91450,7090],{"class":4784},[16,91452,91454],{"id":91453},"_2ereignisklassenjava","2.Ereignisklassen.java",[4647,91456,91458],{"className":78931,"code":91457,"language":78933,"meta":269,"style":269},"\u002F\u002F Innere Ereignisklasse getrennt von GUI-Datei\nimport java.awt.event.*;\nclass SpeichernEreignis implements ActionListener {\nprivate SchwimmerGUI gui;\npublic SpeichernEreignis(SchwimmerGUI gui) {\nthis.gui = gui;\n}\n@Override\npublic void actionPerformed(ActionEvent e) {\n\u002F\u002F Daten aus GUI auslesen\nString name = gui.getNameEingabe();\nString vorname = gui.getVornameEingabe();\nString klasse = gui.getKlasseEingabe();\n\u002F\u002F Neues Schwimmer-Objekt erzeugen\nSchwimmer s = new Schwimmer(name, vorname, klasse);\n\u002F\u002F Im Array speichern\ngui.addSchwimmer(s);\n\u002F\u002F Ausgabe des vollständigen Arrays\ngui.printArray();\n}\n}\nclass ZuruecksetzenEreignis implements ActionListener {\nprivate JTextField tfName, tfVorname, tfKlasse;\npublic ZuruecksetzenEreignis(JTextField tfName, JTextField tfVorname,\nJTextField tfKlasse) {\nthis.tfName = tfName;\nthis.tfVorname = tfVorname;\nthis.tfKlasse = tfKlasse;\n}\n@Override\npublic void actionPerformed(ActionEvent e) {\ntfName.setText(\"\");\ntfVorname.setText(\"\");\ntfKlasse.setText(\"\");\n}\n}\n",[4653,91459,91460,91465,91475,91488,91495,91509,91521,91525,91531,91545,91550,91563,91576,91589,91594,91608,91613,91624,91629,91638,91642,91646,91658,91665,91685,91695,91707,91719,91731,91735,91741,91755,91768,91781,91794,91798],{"__ignoreMap":269},[4173,91461,91462],{"class":4657,"line":4658},[4173,91463,91464],{"class":4766},"\u002F\u002F Innere Ereignisklasse getrennt von GUI-Datei\n",[4173,91466,91467,91469,91471,91473],{"class":4657,"line":270},[4173,91468,79019],{"class":4788},[4173,91470,80913],{"class":4784},[4173,91472,6328],{"class":4665},[4173,91474,55559],{"class":4784},[4173,91476,91477,91479,91481,91483,91486],{"class":4657,"line":1263},[4173,91478,79983],{"class":4788},[4173,91480,91152],{"class":4661},[4173,91482,80628],{"class":4788},[4173,91484,91485],{"class":4661}," ActionListener",[4173,91487,51614],{"class":4784},[4173,91489,91490,91492],{"class":4657,"line":4770},[4173,91491,80152],{"class":4788},[4173,91493,91494],{"class":4784}," SchwimmerGUI gui;\n",[4173,91496,91497,91499,91501,91504,91507],{"class":4657,"line":4775},[4173,91498,79889],{"class":4788},[4173,91500,91152],{"class":4661},[4173,91502,91503],{"class":4784},"(SchwimmerGUI ",[4173,91505,91506],{"class":7074},"gui",[4173,91508,56319],{"class":4784},[4173,91510,91511,91513,91516,91518],{"class":4657,"line":6320},[4173,91512,80010],{"class":4665},[4173,91514,91515],{"class":4784},".gui ",[4173,91517,6387],{"class":4788},[4173,91519,91520],{"class":4784}," gui;\n",[4173,91522,91523],{"class":4657,"line":6325},[4173,91524,7090],{"class":4784},[4173,91526,91527,91529],{"class":4657,"line":6343},[4173,91528,11615],{"class":4784},[4173,91530,80535],{"class":4788},[4173,91532,91533,91535,91537,91539,91541,91543],{"class":4657,"line":6348},[4173,91534,79889],{"class":4788},[4173,91536,79934],{"class":4788},[4173,91538,82416],{"class":4661},[4173,91540,82419],{"class":4784},[4173,91542,20602],{"class":7074},[4173,91544,56319],{"class":4784},[4173,91546,91547],{"class":4657,"line":6457},[4173,91548,91549],{"class":4766},"\u002F\u002F Daten aus GUI auslesen\n",[4173,91551,91552,91554,91556,91559,91561],{"class":4657,"line":6462},[4173,91553,78998],{"class":4784},[4173,91555,6387],{"class":4788},[4173,91557,91558],{"class":4784}," gui.",[4173,91560,91245],{"class":4661},[4173,91562,65878],{"class":4784},[4173,91564,91565,91568,91570,91572,91574],{"class":4657,"line":6468},[4173,91566,91567],{"class":4784},"String vorname ",[4173,91569,6387],{"class":4788},[4173,91571,91558],{"class":4784},[4173,91573,91267],{"class":4661},[4173,91575,65878],{"class":4784},[4173,91577,91578,91581,91583,91585,91587],{"class":4657,"line":6473},[4173,91579,91580],{"class":4784},"String klasse ",[4173,91582,6387],{"class":4788},[4173,91584,91558],{"class":4784},[4173,91586,91287],{"class":4661},[4173,91588,65878],{"class":4784},[4173,91590,91591],{"class":4657,"line":6479},[4173,91592,91593],{"class":4766},"\u002F\u002F Neues Schwimmer-Objekt erzeugen\n",[4173,91595,91596,91599,91601,91603,91605],{"class":4657,"line":6503},[4173,91597,91598],{"class":4784},"Schwimmer s ",[4173,91600,6387],{"class":4788},[4173,91602,79032],{"class":4788},[4173,91604,90739],{"class":4661},[4173,91606,91607],{"class":4784},"(name, vorname, klasse);\n",[4173,91609,91610],{"class":4657,"line":6516},[4173,91611,91612],{"class":4766},"\u002F\u002F Im Array speichern\n",[4173,91614,91615,91618,91621],{"class":4657,"line":6971},[4173,91616,91617],{"class":4784},"gui.",[4173,91619,91620],{"class":4661},"addSchwimmer",[4173,91622,91623],{"class":4784},"(s);\n",[4173,91625,91626],{"class":4657,"line":10649},[4173,91627,91628],{"class":4766},"\u002F\u002F Ausgabe des vollständigen Arrays\n",[4173,91630,91631,91633,91636],{"class":4657,"line":10654},[4173,91632,91617],{"class":4784},[4173,91634,91635],{"class":4661},"printArray",[4173,91637,65878],{"class":4784},[4173,91639,91640],{"class":4657,"line":10659},[4173,91641,7090],{"class":4784},[4173,91643,91644],{"class":4657,"line":10664},[4173,91645,7090],{"class":4784},[4173,91647,91648,91650,91652,91654,91656],{"class":4657,"line":10676},[4173,91649,79983],{"class":4788},[4173,91651,91202],{"class":4661},[4173,91653,80628],{"class":4788},[4173,91655,91485],{"class":4661},[4173,91657,51614],{"class":4784},[4173,91659,91660,91662],{"class":4657,"line":10681},[4173,91661,80152],{"class":4788},[4173,91663,91664],{"class":4784}," JTextField tfName, tfVorname, tfKlasse;\n",[4173,91666,91667,91669,91671,91674,91677,91680,91683],{"class":4657,"line":10702},[4173,91668,79889],{"class":4788},[4173,91670,91202],{"class":4661},[4173,91672,91673],{"class":4784},"(JTextField ",[4173,91675,91676],{"class":7074},"tfName",[4173,91678,91679],{"class":4784},", JTextField ",[4173,91681,91682],{"class":7074},"tfVorname",[4173,91684,66026],{"class":4784},[4173,91686,91687,91690,91693],{"class":4657,"line":10707},[4173,91688,91689],{"class":4784},"JTextField ",[4173,91691,91692],{"class":7074},"tfKlasse",[4173,91694,56319],{"class":4784},[4173,91696,91697,91699,91702,91704],{"class":4657,"line":10712},[4173,91698,80010],{"class":4665},[4173,91700,91701],{"class":4784},".tfName ",[4173,91703,6387],{"class":4788},[4173,91705,91706],{"class":4784}," tfName;\n",[4173,91708,91709,91711,91714,91716],{"class":4657,"line":10717},[4173,91710,80010],{"class":4665},[4173,91712,91713],{"class":4784},".tfVorname ",[4173,91715,6387],{"class":4788},[4173,91717,91718],{"class":4784}," tfVorname;\n",[4173,91720,91721,91723,91726,91728],{"class":4657,"line":10727},[4173,91722,80010],{"class":4665},[4173,91724,91725],{"class":4784},".tfKlasse ",[4173,91727,6387],{"class":4788},[4173,91729,91730],{"class":4784}," tfKlasse;\n",[4173,91732,91733],{"class":4657,"line":10732},[4173,91734,7090],{"class":4784},[4173,91736,91737,91739],{"class":4657,"line":10737},[4173,91738,11615],{"class":4784},[4173,91740,80535],{"class":4788},[4173,91742,91743,91745,91747,91749,91751,91753],{"class":4657,"line":10742},[4173,91744,79889],{"class":4788},[4173,91746,79934],{"class":4788},[4173,91748,82416],{"class":4661},[4173,91750,82419],{"class":4784},[4173,91752,20602],{"class":7074},[4173,91754,56319],{"class":4784},[4173,91756,91757,91760,91762,91764,91766],{"class":4657,"line":10752},[4173,91758,91759],{"class":4784},"tfName.",[4173,91761,81370],{"class":4661},[4173,91763,6390],{"class":4784},[4173,91765,46851],{"class":4669},[4173,91767,55545],{"class":4784},[4173,91769,91770,91773,91775,91777,91779],{"class":4657,"line":10757},[4173,91771,91772],{"class":4784},"tfVorname.",[4173,91774,81370],{"class":4661},[4173,91776,6390],{"class":4784},[4173,91778,46851],{"class":4669},[4173,91780,55545],{"class":4784},[4173,91782,91783,91786,91788,91790,91792],{"class":4657,"line":10762},[4173,91784,91785],{"class":4784},"tfKlasse.",[4173,91787,81370],{"class":4661},[4173,91789,6390],{"class":4784},[4173,91791,46851],{"class":4669},[4173,91793,55545],{"class":4784},[4173,91795,91796],{"class":4657,"line":10767},[4173,91797,7090],{"class":4784},[4173,91799,91800],{"class":4657,"line":10772},[4173,91801,7090],{"class":4784},[16,91803,91805],{"id":91804},"_3schwimmerjava","3.Schwimmer.java",[4647,91807,91809],{"className":78931,"code":91808,"language":78933,"meta":269,"style":269},"public class Schwimmer {\nprivate String name;\nprivate String vorname;\nprivate String klasse;\npublic Schwimmer(String name, String vorname, String klasse) {\nthis.name = name;\nthis.vorname = vorname;\nthis.klasse = klasse;\n}\n@Override\npublic String toString() {\nreturn name + \", \" + vorname + \" (\" + klasse + \")\";\n}\n}\n",[4653,91810,91811,91821,91827,91834,91841,91863,91873,91885,91897,91901,91907,91917,91950,91954],{"__ignoreMap":269},[4173,91812,91813,91815,91817,91819],{"class":4657,"line":4658},[4173,91814,79889],{"class":4788},[4173,91816,80062],{"class":4788},[4173,91818,90739],{"class":4661},[4173,91820,51614],{"class":4784},[4173,91822,91823,91825],{"class":4657,"line":270},[4173,91824,80152],{"class":4788},[4173,91826,80155],{"class":4784},[4173,91828,91829,91831],{"class":4657,"line":1263},[4173,91830,80152],{"class":4788},[4173,91832,91833],{"class":4784}," String vorname;\n",[4173,91835,91836,91838],{"class":4657,"line":4770},[4173,91837,80152],{"class":4788},[4173,91839,91840],{"class":4784}," String klasse;\n",[4173,91842,91843,91845,91847,91849,91851,91853,91856,91858,91861],{"class":4657,"line":4775},[4173,91844,79889],{"class":4788},[4173,91846,90739],{"class":4661},[4173,91848,80001],{"class":4784},[4173,91850,28734],{"class":7074},[4173,91852,86243],{"class":4784},[4173,91854,91855],{"class":7074},"vorname",[4173,91857,86243],{"class":4784},[4173,91859,91860],{"class":7074},"klasse",[4173,91862,56319],{"class":4784},[4173,91864,91865,91867,91869,91871],{"class":4657,"line":6320},[4173,91866,80010],{"class":4665},[4173,91868,80013],{"class":4784},[4173,91870,6387],{"class":4788},[4173,91872,80018],{"class":4784},[4173,91874,91875,91877,91880,91882],{"class":4657,"line":6325},[4173,91876,80010],{"class":4665},[4173,91878,91879],{"class":4784},".vorname ",[4173,91881,6387],{"class":4788},[4173,91883,91884],{"class":4784}," vorname;\n",[4173,91886,91887,91889,91892,91894],{"class":4657,"line":6343},[4173,91888,80010],{"class":4665},[4173,91890,91891],{"class":4784},".klasse ",[4173,91893,6387],{"class":4788},[4173,91895,91896],{"class":4784}," klasse;\n",[4173,91898,91899],{"class":4657,"line":6348},[4173,91900,7090],{"class":4784},[4173,91902,91903,91905],{"class":4657,"line":6457},[4173,91904,11615],{"class":4784},[4173,91906,80535],{"class":4788},[4173,91908,91909,91911,91913,91915],{"class":4657,"line":6462},[4173,91910,79889],{"class":4788},[4173,91912,80225],{"class":4784},[4173,91914,86154],{"class":4661},[4173,91916,7062],{"class":4784},[4173,91918,91919,91921,91923,91925,91928,91930,91933,91935,91938,91940,91943,91945,91948],{"class":4657,"line":6468},[4173,91920,51326],{"class":4788},[4173,91922,80353],{"class":4784},[4173,91924,14419],{"class":4788},[4173,91926,91927],{"class":4669}," \", \"",[4173,91929,11719],{"class":4788},[4173,91931,91932],{"class":4784}," vorname ",[4173,91934,14419],{"class":4788},[4173,91936,91937],{"class":4669}," \" (\"",[4173,91939,11719],{"class":4788},[4173,91941,91942],{"class":4784}," klasse ",[4173,91944,14419],{"class":4788},[4173,91946,91947],{"class":4669}," \")\"",[4173,91949,55559],{"class":4784},[4173,91951,91952],{"class":4657,"line":6473},[4173,91953,7090],{"class":4784},[4173,91955,91956],{"class":4657,"line":6479},[4173,91957,7090],{"class":4784},[16,91959,91961],{"id":91960},"schwimmer-gui-lösung-von-seidel","Schwimmer GUI LÖSUNG von Seidel",[16,91963,90661],{"id":91964},"_1schwimmerguijava-1",[4647,91966,91968],{"className":78931,"code":91967,"language":78933,"meta":269,"style":269},"import java.awt.*;\nimport javax.swing.*;         \u002F\u002F0,5\nimport java.awt.event.*;  \u002F\u002FAufgabe 2\npublic class SchwimmerGUI extends JFrame {          \u002F\u002F0,5\nSchwimmer[] starterliste = new Schwimmer[100];     \u002F\u002F1 Feld für 100 Schwimmer\nJTextField tName, tVorname, tKlasse;               \u002F\u002F1 (nur notwendig!)\npublic SchwimmerGUI() {\nthis.setLayout(new GridLayout(6,1));            \u002F\u002F1\nthis.setTitle(\"Schulmeisterschaft Schwimmen\");  \u002F\u002F0,5\nthis.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  \u002F\u002F0,5\nthis.setSize(400,300);                   \u002F\u002F0,5\nthis.setResizable(false);                \u002F\u002F0,5\n\u002F\u002F0,5\nJLabel jlUeberschrift = new JLabel(\"Teilnehmerin \u002F Teilnehmer\",JLabel.CENTER);\njlUeberschrift.setFont(new Font(\"Courier\",Font.ITALIC,20));    \u002F\u002F1\nadd(jlUeberschrift);    \u002F\u002F0,5\nJPanel panelSchwimmer1 = new JPanel();  \u002F\u002F0,5\nJLabel jlName = new JLabel(\"Name : \",JLabel.RIGHT); \u002F\u002F0,5\npanelSchwimmer1.add(jlName);          \u002F\u002F0,5\ntName = new JTextField(20);           \u002F\u002F0,5\npanelSchwimmer1.add(tName);           \u002F\u002F0,5\nadd(panelSchwimmer1);                 \u002F\u002F0,5\nJPanel panelSchwimmer2 = new JPanel();\nJLabel jlVorname = new JLabel(\"Vorname : \",JLabel.RIGHT);\npanelSchwimmer2.add(jlVorname);                   \u002F\u002F0,5 analog zu Block \"name\"\ntVorname = new JTextField(20);\npanelSchwimmer2.add(tVorname);\nadd(panelSchwimmer2);\nJPanel panelKlasse = new JPanel();\nJLabel jlKlasse = new JLabel(\"Klasse : \",JLabel.RIGHT);\npanelKlasse.add(jlKlasse);\ntKlasse = new JTextField(3);                     \u002F\u002F0,5 analog zu Block \"name\"\npanelKlasse.add(tKlasse);\nadd(panelKlasse);\nJButton jbSpeichern = new JButton(\"Speichern\");      \u002F\u002F0,5\njbSpeichern.addActionListener(new SpeichernEreignis());\nadd(jbSpeichern);                                    \u002F\u002F0,5\nJButton jbLoeschen = new JButton(\"Eingaben löschen\");   \u002F\u002F0,5\njbLoeschen.addActionListener(new ZuruecksetzenEreignis(tName,tVorname,tKlasse));\nadd(jbLoeschen);                                        \u002F\u002F0,5\nthis.setVisible(true);  \u002F\u002F0,5\n}\npublic static void main(String[] args){\nnew SchwimmerGUI();  \u002F\u002F0,5 nur notwendige Objekterzeugung\n}\nclass SpeichernEreignis implements ActionListener{        \u002F\u002F0,5\n\u002F\u002F0,5  Position\npublic void actionPerformed(ActionEvent ae){    \u002F\u002F0,5\nString name = tName.getText();        \u002F\u002F0,5\nString vorname = tVorname.getText();  \u002F\u002F0,5\nString klasse = tKlasse.getText();    \u002F\u002F0,5\nstarterliste[Schwimmer.teilnehmer-1] = new Schwimmer(name,vorname,klasse);\n\u002F\u002F1                      \u002F\u002F1\nSystem.out.println();  \u002F\u002F0,5  Leerzeile\nfor (int lauf = 0;lauf \u003C Schwimmer.teilnehmer;lauf++ ) {\nSystem.out.println(starterliste[lauf]);           \u002F\u002F1,5\n} \u002F\u002F end of for\n}\n}\n}\n",[4653,91969,91970,91980,91994,92008,92025,92049,92057,92065,92093,92111,92124,92145,92162,92166,92185,92212,92221,92237,92258,92270,92290,92301,92310,92323,92342,92355,92372,92381,92388,92401,92419,92429,92449,92458,92465,92485,92500,92509,92530,92546,92555,92571,92575,92596,92607,92611,92626,92631,92649,92665,92680,92696,92716,92724,92735,92763,92775,92782,92786,92790],{"__ignoreMap":269},[4173,91971,91972,91974,91976,91978],{"class":4657,"line":4658},[4173,91973,79019],{"class":4788},[4173,91975,80902],{"class":4784},[4173,91977,6328],{"class":4665},[4173,91979,55559],{"class":4784},[4173,91981,91982,91984,91986,91988,91991],{"class":4657,"line":270},[4173,91983,79019],{"class":4788},[4173,91985,80877],{"class":4784},[4173,91987,6328],{"class":4665},[4173,91989,91990],{"class":4784},";         ",[4173,91992,91993],{"class":4766},"\u002F\u002F0,5\n",[4173,91995,91996,91998,92000,92002,92005],{"class":4657,"line":1263},[4173,91997,79019],{"class":4788},[4173,91999,80913],{"class":4784},[4173,92001,6328],{"class":4665},[4173,92003,92004],{"class":4784},";  ",[4173,92006,92007],{"class":4766},"\u002F\u002FAufgabe 2\n",[4173,92009,92010,92012,92014,92016,92018,92020,92023],{"class":4657,"line":4770},[4173,92011,79889],{"class":4788},[4173,92013,80062],{"class":4788},[4173,92015,90695],{"class":4661},[4173,92017,80500],{"class":4788},[4173,92019,80986],{"class":4661},[4173,92021,92022],{"class":4784}," {          ",[4173,92024,91993],{"class":4766},[4173,92026,92027,92030,92033,92035,92037,92039,92041,92043,92046],{"class":4657,"line":4775},[4173,92028,92029],{"class":4788},"Schwimmer",[4173,92031,92032],{"class":4784},"[] starterliste ",[4173,92034,6387],{"class":4788},[4173,92036,79032],{"class":4788},[4173,92038,90739],{"class":4788},[4173,92040,11612],{"class":4784},[4173,92042,5961],{"class":4665},[4173,92044,92045],{"class":4784},"];     ",[4173,92047,92048],{"class":4766},"\u002F\u002F1 Feld für 100 Schwimmer\n",[4173,92050,92051,92054],{"class":4657,"line":6320},[4173,92052,92053],{"class":4784},"JTextField tName, tVorname, tKlasse;               ",[4173,92055,92056],{"class":4766},"\u002F\u002F1 (nur notwendig!)\n",[4173,92058,92059,92061,92063],{"class":4657,"line":6325},[4173,92060,79889],{"class":4788},[4173,92062,90695],{"class":4661},[4173,92064,7062],{"class":4784},[4173,92066,92067,92069,92071,92073,92075,92077,92079,92081,92083,92085,92087,92090],{"class":4657,"line":6343},[4173,92068,80010],{"class":4665},[4173,92070,7834],{"class":4784},[4173,92072,81238],{"class":4661},[4173,92074,6390],{"class":4784},[4173,92076,81243],{"class":4788},[4173,92078,81729],{"class":4661},[4173,92080,6390],{"class":4784},[4173,92082,14278],{"class":4665},[4173,92084,42920],{"class":4784},[4173,92086,14223],{"class":4665},[4173,92088,92089],{"class":4784},"));            ",[4173,92091,92092],{"class":4766},"\u002F\u002F1\n",[4173,92094,92095,92097,92099,92102,92104,92107,92109],{"class":4657,"line":6348},[4173,92096,80010],{"class":4665},[4173,92098,7834],{"class":4784},[4173,92100,92101],{"class":4661},"setTitle",[4173,92103,6390],{"class":4784},[4173,92105,92106],{"class":4669},"\"Schulmeisterschaft Schwimmen\"",[4173,92108,86471],{"class":4784},[4173,92110,91993],{"class":4766},[4173,92112,92113,92115,92117,92119,92122],{"class":4657,"line":6457},[4173,92114,80010],{"class":4665},[4173,92116,7834],{"class":4784},[4173,92118,81114],{"class":4661},[4173,92120,92121],{"class":4784},"(JFrame.EXIT_ON_CLOSE);  ",[4173,92123,91993],{"class":4766},[4173,92125,92126,92128,92130,92132,92134,92136,92138,92140,92143],{"class":4657,"line":6462},[4173,92127,80010],{"class":4665},[4173,92129,7834],{"class":4784},[4173,92131,81129],{"class":4661},[4173,92133,6390],{"class":4784},[4173,92135,35097],{"class":4665},[4173,92137,42920],{"class":4784},[4173,92139,90825],{"class":4665},[4173,92141,92142],{"class":4784},");                   ",[4173,92144,91993],{"class":4766},[4173,92146,92147,92149,92151,92153,92155,92157,92160],{"class":4657,"line":6468},[4173,92148,80010],{"class":4665},[4173,92150,7834],{"class":4784},[4173,92152,81149],{"class":4661},[4173,92154,6390],{"class":4784},[4173,92156,90836],{"class":4665},[4173,92158,92159],{"class":4784},");                ",[4173,92161,91993],{"class":4766},[4173,92163,92164],{"class":4657,"line":6473},[4173,92165,91993],{"class":4766},[4173,92167,92168,92171,92173,92175,92177,92179,92182],{"class":4657,"line":6479},[4173,92169,92170],{"class":4784},"JLabel jlUeberschrift ",[4173,92172,6387],{"class":4788},[4173,92174,79032],{"class":4788},[4173,92176,81563],{"class":4661},[4173,92178,6390],{"class":4784},[4173,92180,92181],{"class":4669},"\"Teilnehmerin \u002F Teilnehmer\"",[4173,92183,92184],{"class":4784},",JLabel.CENTER);\n",[4173,92186,92187,92190,92192,92194,92196,92198,92200,92202,92205,92207,92210],{"class":4657,"line":6503},[4173,92188,92189],{"class":4784},"jlUeberschrift.",[4173,92191,81578],{"class":4661},[4173,92193,6390],{"class":4784},[4173,92195,81243],{"class":4788},[4173,92197,81585],{"class":4661},[4173,92199,6390],{"class":4784},[4173,92201,90890],{"class":4669},[4173,92203,92204],{"class":4784},",Font.ITALIC,",[4173,92206,83246],{"class":4665},[4173,92208,92209],{"class":4784},"));    ",[4173,92211,92092],{"class":4766},[4173,92213,92214,92216,92219],{"class":4657,"line":6516},[4173,92215,79955],{"class":4661},[4173,92217,92218],{"class":4784},"(jlUeberschrift);    ",[4173,92220,91993],{"class":4766},[4173,92222,92223,92226,92228,92230,92232,92235],{"class":4657,"line":6971},[4173,92224,92225],{"class":4784},"JPanel panelSchwimmer1 ",[4173,92227,6387],{"class":4788},[4173,92229,79032],{"class":4788},[4173,92231,81533],{"class":4661},[4173,92233,92234],{"class":4784},"();  ",[4173,92236,91993],{"class":4766},[4173,92238,92239,92242,92244,92246,92248,92250,92253,92256],{"class":4657,"line":10649},[4173,92240,92241],{"class":4784},"JLabel jlName ",[4173,92243,6387],{"class":4788},[4173,92245,79032],{"class":4788},[4173,92247,81563],{"class":4661},[4173,92249,6390],{"class":4784},[4173,92251,92252],{"class":4669},"\"Name : \"",[4173,92254,92255],{"class":4784},",JLabel.RIGHT); ",[4173,92257,91993],{"class":4766},[4173,92259,92260,92263,92265,92268],{"class":4657,"line":10654},[4173,92261,92262],{"class":4784},"panelSchwimmer1.",[4173,92264,79955],{"class":4661},[4173,92266,92267],{"class":4784},"(jlName);          ",[4173,92269,91993],{"class":4766},[4173,92271,92272,92275,92277,92279,92281,92283,92285,92288],{"class":4657,"line":10659},[4173,92273,92274],{"class":4784},"tName ",[4173,92276,6387],{"class":4788},[4173,92278,79032],{"class":4788},[4173,92280,83065],{"class":4661},[4173,92282,6390],{"class":4784},[4173,92284,83246],{"class":4665},[4173,92286,92287],{"class":4784},");           ",[4173,92289,91993],{"class":4766},[4173,92291,92292,92294,92296,92299],{"class":4657,"line":10664},[4173,92293,92262],{"class":4784},[4173,92295,79955],{"class":4661},[4173,92297,92298],{"class":4784},"(tName);           ",[4173,92300,91993],{"class":4766},[4173,92302,92303,92305,92308],{"class":4657,"line":10676},[4173,92304,79955],{"class":4661},[4173,92306,92307],{"class":4784},"(panelSchwimmer1);                 ",[4173,92309,91993],{"class":4766},[4173,92311,92312,92315,92317,92319,92321],{"class":4657,"line":10681},[4173,92313,92314],{"class":4784},"JPanel panelSchwimmer2 ",[4173,92316,6387],{"class":4788},[4173,92318,79032],{"class":4788},[4173,92320,81533],{"class":4661},[4173,92322,65878],{"class":4784},[4173,92324,92325,92328,92330,92332,92334,92336,92339],{"class":4657,"line":10702},[4173,92326,92327],{"class":4784},"JLabel jlVorname ",[4173,92329,6387],{"class":4788},[4173,92331,79032],{"class":4788},[4173,92333,81563],{"class":4661},[4173,92335,6390],{"class":4784},[4173,92337,92338],{"class":4669},"\"Vorname : \"",[4173,92340,92341],{"class":4784},",JLabel.RIGHT);\n",[4173,92343,92344,92347,92349,92352],{"class":4657,"line":10707},[4173,92345,92346],{"class":4784},"panelSchwimmer2.",[4173,92348,79955],{"class":4661},[4173,92350,92351],{"class":4784},"(jlVorname);                   ",[4173,92353,92354],{"class":4766},"\u002F\u002F0,5 analog zu Block \"name\"\n",[4173,92356,92357,92360,92362,92364,92366,92368,92370],{"class":4657,"line":10712},[4173,92358,92359],{"class":4784},"tVorname ",[4173,92361,6387],{"class":4788},[4173,92363,79032],{"class":4788},[4173,92365,83065],{"class":4661},[4173,92367,6390],{"class":4784},[4173,92369,83246],{"class":4665},[4173,92371,55545],{"class":4784},[4173,92373,92374,92376,92378],{"class":4657,"line":10717},[4173,92375,92346],{"class":4784},[4173,92377,79955],{"class":4661},[4173,92379,92380],{"class":4784},"(tVorname);\n",[4173,92382,92383,92385],{"class":4657,"line":10727},[4173,92384,79955],{"class":4661},[4173,92386,92387],{"class":4784},"(panelSchwimmer2);\n",[4173,92389,92390,92393,92395,92397,92399],{"class":4657,"line":10732},[4173,92391,92392],{"class":4784},"JPanel panelKlasse ",[4173,92394,6387],{"class":4788},[4173,92396,79032],{"class":4788},[4173,92398,81533],{"class":4661},[4173,92400,65878],{"class":4784},[4173,92402,92403,92406,92408,92410,92412,92414,92417],{"class":4657,"line":10737},[4173,92404,92405],{"class":4784},"JLabel jlKlasse ",[4173,92407,6387],{"class":4788},[4173,92409,79032],{"class":4788},[4173,92411,81563],{"class":4661},[4173,92413,6390],{"class":4784},[4173,92415,92416],{"class":4669},"\"Klasse : \"",[4173,92418,92341],{"class":4784},[4173,92420,92421,92424,92426],{"class":4657,"line":10742},[4173,92422,92423],{"class":4784},"panelKlasse.",[4173,92425,79955],{"class":4661},[4173,92427,92428],{"class":4784},"(jlKlasse);\n",[4173,92430,92431,92434,92436,92438,92440,92442,92444,92447],{"class":4657,"line":10752},[4173,92432,92433],{"class":4784},"tKlasse ",[4173,92435,6387],{"class":4788},[4173,92437,79032],{"class":4788},[4173,92439,83065],{"class":4661},[4173,92441,6390],{"class":4784},[4173,92443,14318],{"class":4665},[4173,92445,92446],{"class":4784},");                     ",[4173,92448,92354],{"class":4766},[4173,92450,92451,92453,92455],{"class":4657,"line":10757},[4173,92452,92423],{"class":4784},[4173,92454,79955],{"class":4661},[4173,92456,92457],{"class":4784},"(tKlasse);\n",[4173,92459,92460,92462],{"class":4657,"line":10762},[4173,92461,79955],{"class":4661},[4173,92463,92464],{"class":4784},"(panelKlasse);\n",[4173,92466,92467,92470,92472,92474,92476,92478,92480,92483],{"class":4657,"line":10767},[4173,92468,92469],{"class":4784},"JButton jbSpeichern ",[4173,92471,6387],{"class":4788},[4173,92473,79032],{"class":4788},[4173,92475,81836],{"class":4661},[4173,92477,6390],{"class":4784},[4173,92479,84579],{"class":4669},[4173,92481,92482],{"class":4784},");      ",[4173,92484,91993],{"class":4766},[4173,92486,92487,92490,92492,92494,92496,92498],{"class":4657,"line":10772},[4173,92488,92489],{"class":4784},"jbSpeichern.",[4173,92491,81461],{"class":4661},[4173,92493,6390],{"class":4784},[4173,92495,81243],{"class":4788},[4173,92497,91152],{"class":4661},[4173,92499,81860],{"class":4784},[4173,92501,92502,92504,92507],{"class":4657,"line":10777},[4173,92503,79955],{"class":4661},[4173,92505,92506],{"class":4784},"(jbSpeichern);                                    ",[4173,92508,91993],{"class":4766},[4173,92510,92511,92514,92516,92518,92520,92522,92525,92528],{"class":4657,"line":10782},[4173,92512,92513],{"class":4784},"JButton jbLoeschen ",[4173,92515,6387],{"class":4788},[4173,92517,79032],{"class":4788},[4173,92519,81836],{"class":4661},[4173,92521,6390],{"class":4784},[4173,92523,92524],{"class":4669},"\"Eingaben löschen\"",[4173,92526,92527],{"class":4784},");   ",[4173,92529,91993],{"class":4766},[4173,92531,92532,92535,92537,92539,92541,92543],{"class":4657,"line":10787},[4173,92533,92534],{"class":4784},"jbLoeschen.",[4173,92536,81461],{"class":4661},[4173,92538,6390],{"class":4784},[4173,92540,81243],{"class":4788},[4173,92542,91202],{"class":4661},[4173,92544,92545],{"class":4784},"(tName,tVorname,tKlasse));\n",[4173,92547,92548,92550,92553],{"class":4657,"line":10800},[4173,92549,79955],{"class":4661},[4173,92551,92552],{"class":4784},"(jbLoeschen);                                        ",[4173,92554,91993],{"class":4766},[4173,92556,92557,92559,92561,92563,92565,92567,92569],{"class":4657,"line":10805},[4173,92558,80010],{"class":4665},[4173,92560,7834],{"class":4784},[4173,92562,83456],{"class":4661},[4173,92564,6390],{"class":4784},[4173,92566,45190],{"class":4665},[4173,92568,86471],{"class":4784},[4173,92570,91993],{"class":4766},[4173,92572,92573],{"class":4657,"line":10818},[4173,92574,7090],{"class":4784},[4173,92576,92577,92579,92581,92583,92585,92587,92589,92591,92593],{"class":4657,"line":10823},[4173,92578,79889],{"class":4788},[4173,92580,79892],{"class":4788},[4173,92582,79934],{"class":4788},[4173,92584,79937],{"class":4661},[4173,92586,6390],{"class":4784},[4173,92588,79693],{"class":4788},[4173,92590,80084],{"class":4784},[4173,92592,31283],{"class":7074},[4173,92594,92595],{"class":4784},"){\n",[4173,92597,92598,92600,92602,92604],{"class":4657,"line":10836},[4173,92599,81243],{"class":4788},[4173,92601,90695],{"class":4661},[4173,92603,92234],{"class":4784},[4173,92605,92606],{"class":4766},"\u002F\u002F0,5 nur notwendige Objekterzeugung\n",[4173,92608,92609],{"class":4657,"line":10841},[4173,92610,7090],{"class":4784},[4173,92612,92613,92615,92617,92619,92621,92624],{"class":4657,"line":10846},[4173,92614,79983],{"class":4788},[4173,92616,91152],{"class":4661},[4173,92618,80628],{"class":4788},[4173,92620,91485],{"class":4661},[4173,92622,92623],{"class":4784},"{        ",[4173,92625,91993],{"class":4766},[4173,92627,92628],{"class":4657,"line":10851},[4173,92629,92630],{"class":4766},"\u002F\u002F0,5  Position\n",[4173,92632,92633,92635,92637,92639,92641,92644,92647],{"class":4657,"line":10867},[4173,92634,79889],{"class":4788},[4173,92636,79934],{"class":4788},[4173,92638,82416],{"class":4661},[4173,92640,82419],{"class":4784},[4173,92642,92643],{"class":7074},"ae",[4173,92645,92646],{"class":4784},"){    ",[4173,92648,91993],{"class":4766},[4173,92650,92651,92653,92655,92658,92660,92663],{"class":4657,"line":10872},[4173,92652,78998],{"class":4784},[4173,92654,6387],{"class":4788},[4173,92656,92657],{"class":4784}," tName.",[4173,92659,83296],{"class":4661},[4173,92661,92662],{"class":4784},"();        ",[4173,92664,91993],{"class":4766},[4173,92666,92667,92669,92671,92674,92676,92678],{"class":4657,"line":10877},[4173,92668,91567],{"class":4784},[4173,92670,6387],{"class":4788},[4173,92672,92673],{"class":4784}," tVorname.",[4173,92675,83296],{"class":4661},[4173,92677,92234],{"class":4784},[4173,92679,91993],{"class":4766},[4173,92681,92682,92684,92686,92689,92691,92694],{"class":4657,"line":10882},[4173,92683,91580],{"class":4784},[4173,92685,6387],{"class":4788},[4173,92687,92688],{"class":4784}," tKlasse.",[4173,92690,83296],{"class":4661},[4173,92692,92693],{"class":4784},"();    ",[4173,92695,91993],{"class":4766},[4173,92697,92698,92701,92703,92705,92707,92709,92711,92713],{"class":4657,"line":10890},[4173,92699,92700],{"class":4784},"starterliste[Schwimmer.teilnehmer",[4173,92702,4778],{"class":4788},[4173,92704,14223],{"class":4665},[4173,92706,85496],{"class":4784},[4173,92708,6387],{"class":4788},[4173,92710,79032],{"class":4788},[4173,92712,90739],{"class":4661},[4173,92714,92715],{"class":4784},"(name,vorname,klasse);\n",[4173,92717,92718,92721],{"class":4657,"line":10895},[4173,92719,92720],{"class":4766},"\u002F\u002F1",[4173,92722,92723],{"class":4766},"                      \u002F\u002F1\n",[4173,92725,92726,92728,92730,92732],{"class":4657,"line":10904},[4173,92727,79043],{"class":4784},[4173,92729,79074],{"class":4661},[4173,92731,92234],{"class":4784},[4173,92733,92734],{"class":4766},"\u002F\u002F0,5  Leerzeile\n",[4173,92736,92737,92739,92741,92743,92746,92748,92750,92753,92755,92758,92760],{"class":4657,"line":10909},[4173,92738,6425],{"class":4788},[4173,92740,4171],{"class":4784},[4173,92742,64831],{"class":4788},[4173,92744,92745],{"class":4784}," lauf ",[4173,92747,6387],{"class":4788},[4173,92749,25370],{"class":4665},[4173,92751,92752],{"class":4784},";lauf ",[4173,92754,24345],{"class":4788},[4173,92756,92757],{"class":4784}," Schwimmer.teilnehmer;lauf",[4173,92759,10670],{"class":4788},[4173,92761,92762],{"class":4784}," ) {\n",[4173,92764,92765,92767,92769,92772],{"class":4657,"line":10914},[4173,92766,79043],{"class":4784},[4173,92768,79074],{"class":4661},[4173,92770,92771],{"class":4784},"(starterliste[lauf]);           ",[4173,92773,92774],{"class":4766},"\u002F\u002F1,5\n",[4173,92776,92777,92779],{"class":4657,"line":10919},[4173,92778,71897],{"class":4784},[4173,92780,92781],{"class":4766},"\u002F\u002F end of for\n",[4173,92783,92784],{"class":4657,"line":10933},[4173,92785,7090],{"class":4784},[4173,92787,92788],{"class":4657,"line":10938},[4173,92789,7090],{"class":4784},[4173,92791,92792],{"class":4657,"line":10959},[4173,92793,7090],{"class":4784},[16,92795,92797],{"id":92796},"_2-zuruecksetzenereignisjava","2. ZuruecksetzenEreignis.java",[4647,92799,92801],{"className":78931,"code":92800,"language":78933,"meta":269,"style":269},"import java.awt.event.*;\nimport javax.swing.*;          \u002F\u002F0,5 nur notwendige Importe\nclass ZuruecksetzenEreignis implements ActionListener{\nJTextField tName, tVorname, tKlasse;             \u002F\u002F0,5\nZuruecksetzenEreignis(JTextField tName,JTextField tVorname,JTextField\ntKlasse){\nthis.tName = tName;                         \u002F\u002F1\nthis.tVorname = tVorname;  \u002F\u002F1 alle Zuweisungen\nthis.tKlasse = tKlasse;\n}\npublic void actionPerformed(ActionEvent ae){    \u002F\u002F0,5\ntName.setText(\"\");\ntVorname.setText(\"\");               \u002F\u002F1 alle set - Befehle\ntKlasse.setText(\"\");\n}\n}\n",[4653,92802,92803,92813,92827,92840,92847,92866,92873,92887,92902,92914,92918,92934,92947,92964,92977,92981],{"__ignoreMap":269},[4173,92804,92805,92807,92809,92811],{"class":4657,"line":4658},[4173,92806,79019],{"class":4788},[4173,92808,80913],{"class":4784},[4173,92810,6328],{"class":4665},[4173,92812,55559],{"class":4784},[4173,92814,92815,92817,92819,92821,92824],{"class":4657,"line":270},[4173,92816,79019],{"class":4788},[4173,92818,80877],{"class":4784},[4173,92820,6328],{"class":4665},[4173,92822,92823],{"class":4784},";          ",[4173,92825,92826],{"class":4766},"\u002F\u002F0,5 nur notwendige Importe\n",[4173,92828,92829,92831,92833,92835,92837],{"class":4657,"line":1263},[4173,92830,79983],{"class":4788},[4173,92832,91202],{"class":4661},[4173,92834,80628],{"class":4788},[4173,92836,91485],{"class":4661},[4173,92838,92839],{"class":4784},"{\n",[4173,92841,92842,92845],{"class":4657,"line":4770},[4173,92843,92844],{"class":4784},"JTextField tName, tVorname, tKlasse;             ",[4173,92846,91993],{"class":4766},[4173,92848,92849,92852,92854,92857,92860,92863],{"class":4657,"line":4775},[4173,92850,92851],{"class":4661},"ZuruecksetzenEreignis",[4173,92853,91673],{"class":4784},[4173,92855,92856],{"class":7074},"tName",[4173,92858,92859],{"class":4784},",JTextField ",[4173,92861,92862],{"class":7074},"tVorname",[4173,92864,92865],{"class":4784},",JTextField\n",[4173,92867,92868,92871],{"class":4657,"line":6320},[4173,92869,92870],{"class":7074},"tKlasse",[4173,92872,92595],{"class":4784},[4173,92874,92875,92877,92880,92882,92885],{"class":4657,"line":6325},[4173,92876,80010],{"class":4665},[4173,92878,92879],{"class":4784},".tName ",[4173,92881,6387],{"class":4788},[4173,92883,92884],{"class":4784}," tName;                         ",[4173,92886,92092],{"class":4766},[4173,92888,92889,92891,92894,92896,92899],{"class":4657,"line":6343},[4173,92890,80010],{"class":4665},[4173,92892,92893],{"class":4784},".tVorname ",[4173,92895,6387],{"class":4788},[4173,92897,92898],{"class":4784}," tVorname;  ",[4173,92900,92901],{"class":4766},"\u002F\u002F1 alle Zuweisungen\n",[4173,92903,92904,92906,92909,92911],{"class":4657,"line":6348},[4173,92905,80010],{"class":4665},[4173,92907,92908],{"class":4784},".tKlasse ",[4173,92910,6387],{"class":4788},[4173,92912,92913],{"class":4784}," tKlasse;\n",[4173,92915,92916],{"class":4657,"line":6457},[4173,92917,7090],{"class":4784},[4173,92919,92920,92922,92924,92926,92928,92930,92932],{"class":4657,"line":6462},[4173,92921,79889],{"class":4788},[4173,92923,79934],{"class":4788},[4173,92925,82416],{"class":4661},[4173,92927,82419],{"class":4784},[4173,92929,92643],{"class":7074},[4173,92931,92646],{"class":4784},[4173,92933,91993],{"class":4766},[4173,92935,92936,92939,92941,92943,92945],{"class":4657,"line":6468},[4173,92937,92938],{"class":4784},"tName.",[4173,92940,81370],{"class":4661},[4173,92942,6390],{"class":4784},[4173,92944,46851],{"class":4669},[4173,92946,55545],{"class":4784},[4173,92948,92949,92952,92954,92956,92958,92961],{"class":4657,"line":6473},[4173,92950,92951],{"class":4784},"tVorname.",[4173,92953,81370],{"class":4661},[4173,92955,6390],{"class":4784},[4173,92957,46851],{"class":4669},[4173,92959,92960],{"class":4784},");               ",[4173,92962,92963],{"class":4766},"\u002F\u002F1 alle set - Befehle\n",[4173,92965,92966,92969,92971,92973,92975],{"class":4657,"line":6479},[4173,92967,92968],{"class":4784},"tKlasse.",[4173,92970,81370],{"class":4661},[4173,92972,6390],{"class":4784},[4173,92974,46851],{"class":4669},[4173,92976,55545],{"class":4784},[4173,92978,92979],{"class":4657,"line":6503},[4173,92980,7090],{"class":4784},[4173,92982,92983],{"class":4657,"line":6516},[4173,92984,7090],{"class":4784},[16,92986,92988],{"id":92987},"pizza-übung-von-itt78","Pizza-Übung von ITT78",[16,92990,92992],{"id":92991},"_1pizzatestjava","1.PizzaTest.java",[4647,92994,92996],{"className":78931,"code":92995,"language":78933,"meta":269,"style":269},"class PizzaTest {\npublic static void main(String[] args){\n\u002F\u002F Titel für das Fenster wird hier übergeben\nnew PizzaBestellung(\"L'Osteria ITT8\");\n}\n}\n",[4653,92997,92998,93007,93027,93032,93046,93050],{"__ignoreMap":269},[4173,92999,93000,93002,93005],{"class":4657,"line":4658},[4173,93001,79983],{"class":4788},[4173,93003,93004],{"class":4661}," PizzaTest",[4173,93006,51614],{"class":4784},[4173,93008,93009,93011,93013,93015,93017,93019,93021,93023,93025],{"class":4657,"line":270},[4173,93010,79889],{"class":4788},[4173,93012,79892],{"class":4788},[4173,93014,79934],{"class":4788},[4173,93016,79937],{"class":4661},[4173,93018,6390],{"class":4784},[4173,93020,79693],{"class":4788},[4173,93022,80084],{"class":4784},[4173,93024,31283],{"class":7074},[4173,93026,92595],{"class":4784},[4173,93028,93029],{"class":4657,"line":1263},[4173,93030,93031],{"class":4766},"\u002F\u002F Titel für das Fenster wird hier übergeben\n",[4173,93033,93034,93036,93039,93041,93044],{"class":4657,"line":4770},[4173,93035,81243],{"class":4788},[4173,93037,93038],{"class":4661}," PizzaBestellung",[4173,93040,6390],{"class":4784},[4173,93042,93043],{"class":4669},"\"L'Osteria ITT8\"",[4173,93045,55545],{"class":4784},[4173,93047,93048],{"class":4657,"line":4775},[4173,93049,7090],{"class":4784},[4173,93051,93052],{"class":4657,"line":6320},[4173,93053,7090],{"class":4784},[16,93055,93057],{"id":93056},"_2pizzabestellungjava","2.Pizzabestellung.java",[4647,93059,93061],{"className":78931,"code":93060,"language":78933,"meta":269,"style":269},"import java.awt.*; \u002F\u002F Datentypen wie JTextField\nimport java.awt.event.*; \u002F\u002FEreignisbehandlung\nimport java.io.*; \u002F\u002F Für Input und Output\nimport javax.swing.*; \u002F\u002F Für JFrame etc.\nclass PizzaBestellung extends JFrame implements ActionListener{\n\u002F\u002FInterface\n\u002F\u002FInstanzvariablen - Global verfügbar -> Wenn nicht notwendig: Im\nKonstruktor anlegen\nJTextField jtName, jtTel;\nJRadioButton g_26, g_30;\nButtonGroup group;\nJComboBox\u003CString> pizzaArt;\nJCheckBox jcBSalami, jcBPeperoni, jcBSchinken;\nInteger bestellNr = 1;\npublic PizzaBestellung(String titel){\n\u002F\u002F JTextField jtName, jtTel; --- Für den Fall, dass die Felder nicht\nGlobal verfügbar sein müssen\n\u002F\u002F Legt Fenstertitel fest\nsuper(titel); \u002F\u002Fsuper(); wird automatisch ausgeführt, wenn nicht anders\nspezifiziert\n\u002F\u002FsetTitle(titel); - Alternativ\nsetLayout(new GridLayout(8,1));\n\u002F\u002Fkein Layout: setLayout(null);\nFont schrift = new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,30);\nFont schrift1 = new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,20);\n\u002F\u002F-------------------- Zeile 1: Farbiges Text-Label ---------------------\nJLabel lb1 = new JLabel(\"Pizzabestellung\",JLabel.CENTER);\nlb1.setForeground(Color.RED);      \u002F\u002F ... new Color(123,45,6);\nlb1.setBackground(Color.YELLOW);\nlb1.setOpaque(true);\nlb1.setFont(schrift);\n\u002F\u002Flb1.setFont(new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,30));\nadd(lb1);\n\u002F\u002F--------------------- Zeile 2: Textfeld für Name --------------------\nJPanel pZeile2 = new JPanel();  \u002F\u002Fleeren Container erzeugen\n\u002F\u002FDefault: FlowLayout\nJLabel jlName = new JLabel(\"Name: \");\njlName.setFont(schrift);\npZeile2.add(jlName); \u002F\u002FKomponenten dem Panel zuordnen\njtName = new JTextField(20);\npZeile2.add(jtName);\nadd(pZeile2); \u002F\u002FPanel in zweite Grid-Zelle\n\u002F\u002F--------------------- Zeile 3: Textfeld für Telefonnummer --------------\n------\nJPanel pZeile3 = new JPanel();\nJLabel jlTel = new JLabel(\"Tel.: \");\njlTel.setFont(schrift);\npZeile3.add(jlTel); \u002F\u002FKomponenten dem Panel zugeordnet\njtTel = new JTextField(20);\npZeile3.add(jtTel);\nadd(pZeile3);            \u002F\u002FPanel in dritte Grid-Zelle\n\u002F\u002F--------------------- Zeile 4: Radiobutton-Group für Größe -------------\n-------\nJPanel pZeile4 = new JPanel();\n\u002F\u002FOptik\ng_26 = new JRadioButton(\"26cm\");\ng_26.setSelected(true);\ng_26.setFont(schrift);\npZeile4.add(g_26);\ng_30 = new JRadioButton(\"30cm\");\ng_30.setSelected(true); \u002F\u002Fwird ignoriert aufgrund der button group\ng_30.setFont(schrift);\npZeile4.add(g_30);\nadd(pZeile4);\n\u002F\u002FLogik\ngroup = new ButtonGroup();\ngroup.add(g_26);\ngroup.add(g_30);\n\u002F\u002F--------------------- Zeile 5: Dropdown für Sorte --------------------\nString[] pizza = { \"Salami\", \"Hawaii\", \"VierJahresZeiten\" , \"Ruccula\" };\npizzaArt = new JComboBox\u003CString>(pizza);\npizzaArt.setSelectedIndex(2); \u002F\u002F Standard-Auswahl festlegen\npizzaArt.setFont(schrift);\nadd(pizzaArt);\n\u002F\u002F--------------------- Zeile 6: Label --------------------\nJLabel lb6 = new JLabel(\"Extra: \",JLabel.LEFT);\nlb6.setForeground(Color.BLUE);      \u002F\u002F ... new Color(123,45,6);\nlb6.setFont(schrift);\nadd(lb6);\n\u002F\u002F--------------------- Zeile 7: Checkboxen für Zusatzoptionen -----------\n---------\nJPanel pZeile7 = new JPanel();\njcBSalami = new JCheckBox(\"Salami\");\njcBSalami.setFont(schrift1);\npZeile7.add(jcBSalami);\njcBPeperoni = new JCheckBox(\"Peperoni\");\njcBPeperoni.setFont(schrift1);\npZeile7.add(jcBPeperoni);\njcBSchinken = new JCheckBox(\"Schinken\");\njcBSchinken.setFont(schrift1);\npZeile7.add(jcBSchinken);\nadd(pZeile7);\n\u002F\u002F--------------------- Zeile 8: Panel für Buttons --------------------\nJPanel pZeile8 = new JPanel();\nJButton jbSenden = new JButton(\"Senden\");\njbSenden.setFont(schrift1);\njbSenden.addActionListener(this);\npZeile8.add(jbSenden);\nJButton jbAbbrechen = new JButton(\"Abbrechen\");\njbAbbrechen.setFont(schrift1);\njbAbbrechen.addActionListener(new AbbrechenEreignis());\npZeile8.add(jbAbbrechen);\nJButton ende = new JButton(\"Ende\");\nende.setFont(schrift1);\nende.addActionListener(new EndeEreignis(jtName));\npZeile8.add(ende);\nadd(pZeile8);\nsetSize(400,400);\nsetResizable(false);\nsetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\nsetVisible(true);\n}\npublic void actionPerformed(ActionEvent e){\n\u002F\u002Fhier steht das, was passiert\nSystem.out.println(\"Action Performed\");\nif (e.getActionCommand().equals(\"Senden\"))\n{\n\u002F\u002FTextfelder\nString name = jtName.getText();    \u002F\u002FAuslesen des Textfeldes\nString tel  = jtTel.getText();\n\u002F\u002FRadioButton\nString groesse;\nif (g_26.isSelected()) {\ngroesse = \"26cm\";\n}\nelse {\ngroesse = \"30cm\";\n} \u002F\u002F end of if-else\n\u002F\u002FComboBox - Implizites Typecasting, da Object returned wird\nString p_Art = (String)pizzaArt.getSelectedItem();\n\u002F\u002FCheckBoxen\nString salami;\nif (jcBSalami.isSelected()) {\nsalami = \"Salami\";\n}\nelse {\nsalami = \"nein\";\n} \u002F\u002F end of if-else\nString peperoni;\nif (jcBPeperoni.isSelected()) {\npeperoni = \"Peperoni\";\n}\nelse {\npeperoni = \"nein\";\n} \u002F\u002F end of if-else\nString schinken;\nif (jcBSchinken.isSelected()) {\nschinken = \"Schinken\";\n}\nelse {\nschinken = \"nein\";\n} \u002F\u002F end of if-else\n\u002F\u002FAusgabe in der Console\nSystem.out.println(\"------Pizzabestellung-------\");\nSystem.out.println();\nSystem.out.println(\"Name : \" + name);\nSystem.out.println(\"Tel. : \" + tel);\nSystem.out.println();\nSystem.out.println(\"Groesse: \" + groesse);\nSystem.out.println(\"Art : \" + p_Art);\nSystem.out.println(\"Extras:\");\nSystem.out.println(salami);\nSystem.out.println(peperoni);\nSystem.out.println(schinken);\nSystem.out.println();\nSystem.out.println(\"Vielen Dank fuer ihre Bestellung!\");\nJOptionPane.showMessageDialog(null,\"Best.-Nr. \\n\"+\nbestellNr,\"Bestellungsübersicht\",JOptionPane.INFORMATION_MESSAGE);\ntry {\n\u002F\u002F File-Writer im Append-Modus durch \"true\" als zweiter\nÜbergabeparameter\nBufferedWriter writer = new BufferedWriter(new\nFileWriter(\"Bestellungen.txt\", true)); \u002F\u002F In Datei schreiben durch Angabe des\nDateinamen\nwriter.write(bestellNr.toString());\nwriter.newLine(); \u002F\u002F Neue Zeile in die Datei\nwriter.close();\n} catch (Exception exception) {\nexception.printStackTrace();\n}\nSystem.out.println(\"Einlesen der letzten Bestellungsnummern:\\n\");\ntry {\nBufferedReader in = new BufferedReader(new\nFileReader(\"Bestellungen.txt\"));\nBufferedWriter out = new BufferedWriter(new\nOutputStreamWriter(System.out));\nbr2bw(in,out);\n}\ncatch (Exception exception) {\nexception.printStackTrace();\n}\nbestellNr++;\n}\nelse {\n} \u002F\u002F end of if-else\n}\npublic static void br2bw(BufferedReader br, BufferedWriter bw)\nthrows IOException {\nString z;                             \u002F\u002F Zeile\nwhile ((z = br.readLine()) != null) { \u002F\u002F lesen, Stromende pruefen,\nbw.write(z);                        \u002F\u002F ausgeben und\nbw.newLine();                       \u002F\u002F Zeilenwechsel ausgeben\n}\nbr.close();\nbw.close(); \u002F\u002F Schließt den Output-Stream permanent! Auch System.out!\n}\nclass AbbrechenEreignis implements ActionListener{\npublic void actionPerformed(ActionEvent e){\n\u002F\u002FTextfelder leeren\njtName.setText(\"\");\njtTel.setText(\"\");\n\u002F\u002FRadiobutton unausgewaehlt\ng_26.setSelected(true);\n\u002F\u002FComboBox - Vorauswahl\npizzaArt.setSelectedIndex(2);\n\u002F\u002FCheckboxen leeren\njcBSalami.setSelected(false);\njcBPeperoni.setSelected(false);\njcBSchinken.setSelected(false);\n}\n}\n}\n",[4653,93062,93063,93076,93089,93102,93115,93131,93136,93141,93146,93151,93156,93161,93171,93176,93187,93200,93205,93210,93215,93225,93230,93235,93255,93260,93289,93314,93319,93337,93351,93361,93374,93383,93388,93395,93400,93416,93421,93438,93447,93460,93477,93486,93496,93501,93506,93519,93537,93546,93559,93576,93585,93595,93600,93605,93618,93623,93641,93654,93662,93672,93690,93706,93714,93723,93730,93735,93748,93757,93765,93770,93803,93820,93837,93845,93852,93857,93876,93888,93896,93903,93908,93913,93926,93943,93953,93963,93981,93990,93999,94017,94026,94035,94042,94047,94060,94077,94086,94098,94108,94125,94134,94149,94158,94176,94185,94201,94210,94217,94231,94241,94247,94257,94261,94275,94280,94293,94312,94316,94321,94337,94351,94356,94361,94372,94384,94388,94394,94405,94412,94417,94432,94437,94442,94453,94465,94469,94475,94486,94492,94497,94508,94520,94524,94530,94540,94546,94551,94562,94574,94578,94584,94594,94600,94605,94618,94626,94640,94656,94664,94680,94696,94709,94718,94727,94736,94744,94757,94779,94790,94796,94801,94806,94821,94840,94845,94858,94871,94880,94894,94904,94908,94925,94931,94946,94957,94972,94980,94988,94992,95002,95010,95014,95023,95027,95033,95039,95043,95067,95073,95081,95107,95120,95132,95136,95145,95156,95160,95172,95186,95191,95204,95217,95222,95234,95239,95251,95256,95268,95280,95292,95296,95300],{"__ignoreMap":269},[4173,93064,93065,93067,93069,93071,93073],{"class":4657,"line":4658},[4173,93066,79019],{"class":4788},[4173,93068,80902],{"class":4784},[4173,93070,6328],{"class":4665},[4173,93072,6498],{"class":4784},[4173,93074,93075],{"class":4766},"\u002F\u002F Datentypen wie JTextField\n",[4173,93077,93078,93080,93082,93084,93086],{"class":4657,"line":270},[4173,93079,79019],{"class":4788},[4173,93081,80913],{"class":4784},[4173,93083,6328],{"class":4665},[4173,93085,6498],{"class":4784},[4173,93087,93088],{"class":4766},"\u002F\u002FEreignisbehandlung\n",[4173,93090,93091,93093,93095,93097,93099],{"class":4657,"line":1263},[4173,93092,79019],{"class":4788},[4173,93094,90640],{"class":4784},[4173,93096,6328],{"class":4665},[4173,93098,6498],{"class":4784},[4173,93100,93101],{"class":4766},"\u002F\u002F Für Input und Output\n",[4173,93103,93104,93106,93108,93110,93112],{"class":4657,"line":4770},[4173,93105,79019],{"class":4788},[4173,93107,80877],{"class":4784},[4173,93109,6328],{"class":4665},[4173,93111,6498],{"class":4784},[4173,93113,93114],{"class":4766},"\u002F\u002F Für JFrame etc.\n",[4173,93116,93117,93119,93121,93123,93125,93127,93129],{"class":4657,"line":4775},[4173,93118,79983],{"class":4788},[4173,93120,93038],{"class":4661},[4173,93122,80500],{"class":4788},[4173,93124,80986],{"class":4661},[4173,93126,80628],{"class":4788},[4173,93128,91485],{"class":4661},[4173,93130,92839],{"class":4784},[4173,93132,93133],{"class":4657,"line":6320},[4173,93134,93135],{"class":4766},"\u002F\u002FInterface\n",[4173,93137,93138],{"class":4657,"line":6325},[4173,93139,93140],{"class":4766},"\u002F\u002FInstanzvariablen - Global verfügbar -> Wenn nicht notwendig: Im\n",[4173,93142,93143],{"class":4657,"line":6343},[4173,93144,93145],{"class":4784},"Konstruktor anlegen\n",[4173,93147,93148],{"class":4657,"line":6348},[4173,93149,93150],{"class":4784},"JTextField jtName, jtTel;\n",[4173,93152,93153],{"class":4657,"line":6457},[4173,93154,93155],{"class":4784},"JRadioButton g_26, g_30;\n",[4173,93157,93158],{"class":4657,"line":6462},[4173,93159,93160],{"class":4784},"ButtonGroup group;\n",[4173,93162,93163,93166,93168],{"class":4657,"line":6468},[4173,93164,93165],{"class":4784},"JComboBox\u003C",[4173,93167,79693],{"class":4788},[4173,93169,93170],{"class":4784},"> pizzaArt;\n",[4173,93172,93173],{"class":4657,"line":6473},[4173,93174,93175],{"class":4784},"JCheckBox jcBSalami, jcBPeperoni, jcBSchinken;\n",[4173,93177,93178,93181,93183,93185],{"class":4657,"line":6479},[4173,93179,93180],{"class":4784},"Integer bestellNr ",[4173,93182,6387],{"class":4788},[4173,93184,10264],{"class":4665},[4173,93186,55559],{"class":4784},[4173,93188,93189,93191,93193,93195,93198],{"class":4657,"line":6503},[4173,93190,79889],{"class":4788},[4173,93192,93038],{"class":4661},[4173,93194,80001],{"class":4784},[4173,93196,93197],{"class":7074},"titel",[4173,93199,92595],{"class":4784},[4173,93201,93202],{"class":4657,"line":6516},[4173,93203,93204],{"class":4766},"\u002F\u002F JTextField jtName, jtTel; --- Für den Fall, dass die Felder nicht\n",[4173,93206,93207],{"class":4657,"line":6971},[4173,93208,93209],{"class":4784},"Global verfügbar sein müssen\n",[4173,93211,93212],{"class":4657,"line":10649},[4173,93213,93214],{"class":4766},"\u002F\u002F Legt Fenstertitel fest\n",[4173,93216,93217,93219,93222],{"class":4657,"line":10654},[4173,93218,80521],{"class":4665},[4173,93220,93221],{"class":4784},"(titel); ",[4173,93223,93224],{"class":4766},"\u002F\u002Fsuper(); wird automatisch ausgeführt, wenn nicht anders\n",[4173,93226,93227],{"class":4657,"line":10659},[4173,93228,93229],{"class":4784},"spezifiziert\n",[4173,93231,93232],{"class":4657,"line":10664},[4173,93233,93234],{"class":4766},"\u002F\u002FsetTitle(titel); - Alternativ\n",[4173,93236,93237,93239,93241,93243,93245,93247,93249,93251,93253],{"class":4657,"line":10676},[4173,93238,81238],{"class":4661},[4173,93240,6390],{"class":4784},[4173,93242,81243],{"class":4788},[4173,93244,81729],{"class":4661},[4173,93246,6390],{"class":4784},[4173,93248,16286],{"class":4665},[4173,93250,42920],{"class":4784},[4173,93252,14223],{"class":4665},[4173,93254,66047],{"class":4784},[4173,93256,93257],{"class":4657,"line":10681},[4173,93258,93259],{"class":4766},"\u002F\u002Fkein Layout: setLayout(null);\n",[4173,93261,93262,93265,93267,93269,93271,93273,93276,93279,93281,93284,93287],{"class":4657,"line":10702},[4173,93263,93264],{"class":4784},"Font schrift ",[4173,93266,6387],{"class":4788},[4173,93268,79032],{"class":4788},[4173,93270,81585],{"class":4661},[4173,93272,6390],{"class":4784},[4173,93274,93275],{"class":4669},"\"Monospaced\"",[4173,93277,93278],{"class":4784},",Font.BOLD",[4173,93280,14419],{"class":4788},[4173,93282,93283],{"class":4784},"Font.ITALIC,",[4173,93285,93286],{"class":4665},"30",[4173,93288,55545],{"class":4784},[4173,93290,93291,93294,93296,93298,93300,93302,93304,93306,93308,93310,93312],{"class":4657,"line":10707},[4173,93292,93293],{"class":4784},"Font schrift1 ",[4173,93295,6387],{"class":4788},[4173,93297,79032],{"class":4788},[4173,93299,81585],{"class":4661},[4173,93301,6390],{"class":4784},[4173,93303,93275],{"class":4669},[4173,93305,93278],{"class":4784},[4173,93307,14419],{"class":4788},[4173,93309,93283],{"class":4784},[4173,93311,83246],{"class":4665},[4173,93313,55545],{"class":4784},[4173,93315,93316],{"class":4657,"line":10712},[4173,93317,93318],{"class":4766},"\u002F\u002F-------------------- Zeile 1: Farbiges Text-Label ---------------------\n",[4173,93320,93321,93324,93326,93328,93330,93332,93335],{"class":4657,"line":10717},[4173,93322,93323],{"class":4784},"JLabel lb1 ",[4173,93325,6387],{"class":4788},[4173,93327,79032],{"class":4788},[4173,93329,81563],{"class":4661},[4173,93331,6390],{"class":4784},[4173,93333,93334],{"class":4669},"\"Pizzabestellung\"",[4173,93336,92184],{"class":4784},[4173,93338,93339,93342,93345,93348],{"class":4657,"line":10727},[4173,93340,93341],{"class":4784},"lb1.",[4173,93343,93344],{"class":4661},"setForeground",[4173,93346,93347],{"class":4784},"(Color.RED);      ",[4173,93349,93350],{"class":4766},"\u002F\u002F ... new Color(123,45,6);\n",[4173,93352,93353,93355,93358],{"class":4657,"line":10732},[4173,93354,93341],{"class":4784},[4173,93356,93357],{"class":4661},"setBackground",[4173,93359,93360],{"class":4784},"(Color.YELLOW);\n",[4173,93362,93363,93365,93368,93370,93372],{"class":4657,"line":10737},[4173,93364,93341],{"class":4784},[4173,93366,93367],{"class":4661},"setOpaque",[4173,93369,6390],{"class":4784},[4173,93371,45190],{"class":4665},[4173,93373,55545],{"class":4784},[4173,93375,93376,93378,93380],{"class":4657,"line":10742},[4173,93377,93341],{"class":4784},[4173,93379,81578],{"class":4661},[4173,93381,93382],{"class":4784},"(schrift);\n",[4173,93384,93385],{"class":4657,"line":10752},[4173,93386,93387],{"class":4766},"\u002F\u002Flb1.setFont(new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,30));\n",[4173,93389,93390,93392],{"class":4657,"line":10757},[4173,93391,79955],{"class":4661},[4173,93393,93394],{"class":4784},"(lb1);\n",[4173,93396,93397],{"class":4657,"line":10762},[4173,93398,93399],{"class":4766},"\u002F\u002F--------------------- Zeile 2: Textfeld für Name --------------------\n",[4173,93401,93402,93405,93407,93409,93411,93413],{"class":4657,"line":10767},[4173,93403,93404],{"class":4784},"JPanel pZeile2 ",[4173,93406,6387],{"class":4788},[4173,93408,79032],{"class":4788},[4173,93410,81533],{"class":4661},[4173,93412,92234],{"class":4784},[4173,93414,93415],{"class":4766},"\u002F\u002Fleeren Container erzeugen\n",[4173,93417,93418],{"class":4657,"line":10772},[4173,93419,93420],{"class":4766},"\u002F\u002FDefault: FlowLayout\n",[4173,93422,93423,93425,93427,93429,93431,93433,93436],{"class":4657,"line":10777},[4173,93424,92241],{"class":4784},[4173,93426,6387],{"class":4788},[4173,93428,79032],{"class":4788},[4173,93430,81563],{"class":4661},[4173,93432,6390],{"class":4784},[4173,93434,93435],{"class":4669},"\"Name: \"",[4173,93437,55545],{"class":4784},[4173,93439,93440,93443,93445],{"class":4657,"line":10782},[4173,93441,93442],{"class":4784},"jlName.",[4173,93444,81578],{"class":4661},[4173,93446,93382],{"class":4784},[4173,93448,93449,93452,93454,93457],{"class":4657,"line":10787},[4173,93450,93451],{"class":4784},"pZeile2.",[4173,93453,79955],{"class":4661},[4173,93455,93456],{"class":4784},"(jlName); ",[4173,93458,93459],{"class":4766},"\u002F\u002FKomponenten dem Panel zuordnen\n",[4173,93461,93462,93465,93467,93469,93471,93473,93475],{"class":4657,"line":10800},[4173,93463,93464],{"class":4784},"jtName ",[4173,93466,6387],{"class":4788},[4173,93468,79032],{"class":4788},[4173,93470,83065],{"class":4661},[4173,93472,6390],{"class":4784},[4173,93474,83246],{"class":4665},[4173,93476,55545],{"class":4784},[4173,93478,93479,93481,93483],{"class":4657,"line":10805},[4173,93480,93451],{"class":4784},[4173,93482,79955],{"class":4661},[4173,93484,93485],{"class":4784},"(jtName);\n",[4173,93487,93488,93490,93493],{"class":4657,"line":10818},[4173,93489,79955],{"class":4661},[4173,93491,93492],{"class":4784},"(pZeile2); ",[4173,93494,93495],{"class":4766},"\u002F\u002FPanel in zweite Grid-Zelle\n",[4173,93497,93498],{"class":4657,"line":10823},[4173,93499,93500],{"class":4766},"\u002F\u002F--------------------- Zeile 3: Textfeld für Telefonnummer --------------\n",[4173,93502,93503],{"class":4657,"line":10836},[4173,93504,93505],{"class":4788},"------\n",[4173,93507,93508,93511,93513,93515,93517],{"class":4657,"line":10841},[4173,93509,93510],{"class":4784},"JPanel pZeile3 ",[4173,93512,6387],{"class":4788},[4173,93514,79032],{"class":4788},[4173,93516,81533],{"class":4661},[4173,93518,65878],{"class":4784},[4173,93520,93521,93524,93526,93528,93530,93532,93535],{"class":4657,"line":10846},[4173,93522,93523],{"class":4784},"JLabel jlTel ",[4173,93525,6387],{"class":4788},[4173,93527,79032],{"class":4788},[4173,93529,81563],{"class":4661},[4173,93531,6390],{"class":4784},[4173,93533,93534],{"class":4669},"\"Tel.: \"",[4173,93536,55545],{"class":4784},[4173,93538,93539,93542,93544],{"class":4657,"line":10851},[4173,93540,93541],{"class":4784},"jlTel.",[4173,93543,81578],{"class":4661},[4173,93545,93382],{"class":4784},[4173,93547,93548,93551,93553,93556],{"class":4657,"line":10867},[4173,93549,93550],{"class":4784},"pZeile3.",[4173,93552,79955],{"class":4661},[4173,93554,93555],{"class":4784},"(jlTel); ",[4173,93557,93558],{"class":4766},"\u002F\u002FKomponenten dem Panel zugeordnet\n",[4173,93560,93561,93564,93566,93568,93570,93572,93574],{"class":4657,"line":10872},[4173,93562,93563],{"class":4784},"jtTel ",[4173,93565,6387],{"class":4788},[4173,93567,79032],{"class":4788},[4173,93569,83065],{"class":4661},[4173,93571,6390],{"class":4784},[4173,93573,83246],{"class":4665},[4173,93575,55545],{"class":4784},[4173,93577,93578,93580,93582],{"class":4657,"line":10877},[4173,93579,93550],{"class":4784},[4173,93581,79955],{"class":4661},[4173,93583,93584],{"class":4784},"(jtTel);\n",[4173,93586,93587,93589,93592],{"class":4657,"line":10882},[4173,93588,79955],{"class":4661},[4173,93590,93591],{"class":4784},"(pZeile3);            ",[4173,93593,93594],{"class":4766},"\u002F\u002FPanel in dritte Grid-Zelle\n",[4173,93596,93597],{"class":4657,"line":10890},[4173,93598,93599],{"class":4766},"\u002F\u002F--------------------- Zeile 4: Radiobutton-Group für Größe -------------\n",[4173,93601,93602],{"class":4657,"line":10895},[4173,93603,93604],{"class":4788},"-------\n",[4173,93606,93607,93610,93612,93614,93616],{"class":4657,"line":10904},[4173,93608,93609],{"class":4784},"JPanel pZeile4 ",[4173,93611,6387],{"class":4788},[4173,93613,79032],{"class":4788},[4173,93615,81533],{"class":4661},[4173,93617,65878],{"class":4784},[4173,93619,93620],{"class":4657,"line":10909},[4173,93621,93622],{"class":4766},"\u002F\u002FOptik\n",[4173,93624,93625,93628,93630,93632,93634,93636,93639],{"class":4657,"line":10914},[4173,93626,93627],{"class":4784},"g_26 ",[4173,93629,6387],{"class":4788},[4173,93631,79032],{"class":4788},[4173,93633,82150],{"class":4661},[4173,93635,6390],{"class":4784},[4173,93637,93638],{"class":4669},"\"26cm\"",[4173,93640,55545],{"class":4784},[4173,93642,93643,93646,93648,93650,93652],{"class":4657,"line":10919},[4173,93644,93645],{"class":4784},"g_26.",[4173,93647,82067],{"class":4661},[4173,93649,6390],{"class":4784},[4173,93651,45190],{"class":4665},[4173,93653,55545],{"class":4784},[4173,93655,93656,93658,93660],{"class":4657,"line":10933},[4173,93657,93645],{"class":4784},[4173,93659,81578],{"class":4661},[4173,93661,93382],{"class":4784},[4173,93663,93664,93667,93669],{"class":4657,"line":10938},[4173,93665,93666],{"class":4784},"pZeile4.",[4173,93668,79955],{"class":4661},[4173,93670,93671],{"class":4784},"(g_26);\n",[4173,93673,93674,93677,93679,93681,93683,93685,93688],{"class":4657,"line":10959},[4173,93675,93676],{"class":4784},"g_30 ",[4173,93678,6387],{"class":4788},[4173,93680,79032],{"class":4788},[4173,93682,82150],{"class":4661},[4173,93684,6390],{"class":4784},[4173,93686,93687],{"class":4669},"\"30cm\"",[4173,93689,55545],{"class":4784},[4173,93691,93692,93695,93697,93699,93701,93703],{"class":4657,"line":10964},[4173,93693,93694],{"class":4784},"g_30.",[4173,93696,82067],{"class":4661},[4173,93698,6390],{"class":4784},[4173,93700,45190],{"class":4665},[4173,93702,79107],{"class":4784},[4173,93704,93705],{"class":4766},"\u002F\u002Fwird ignoriert aufgrund der button group\n",[4173,93707,93708,93710,93712],{"class":4657,"line":10969},[4173,93709,93694],{"class":4784},[4173,93711,81578],{"class":4661},[4173,93713,93382],{"class":4784},[4173,93715,93716,93718,93720],{"class":4657,"line":10974},[4173,93717,93666],{"class":4784},[4173,93719,79955],{"class":4661},[4173,93721,93722],{"class":4784},"(g_30);\n",[4173,93724,93725,93727],{"class":4657,"line":10982},[4173,93726,79955],{"class":4661},[4173,93728,93729],{"class":4784},"(pZeile4);\n",[4173,93731,93732],{"class":4657,"line":10987},[4173,93733,93734],{"class":4766},"\u002F\u002FLogik\n",[4173,93736,93737,93740,93742,93744,93746],{"class":4657,"line":10995},[4173,93738,93739],{"class":4784},"group ",[4173,93741,6387],{"class":4788},[4173,93743,79032],{"class":4788},[4173,93745,82205],{"class":4661},[4173,93747,65878],{"class":4784},[4173,93749,93750,93753,93755],{"class":4657,"line":11000},[4173,93751,93752],{"class":4784},"group.",[4173,93754,79955],{"class":4661},[4173,93756,93671],{"class":4784},[4173,93758,93759,93761,93763],{"class":4657,"line":11008},[4173,93760,93752],{"class":4784},[4173,93762,79955],{"class":4661},[4173,93764,93722],{"class":4784},[4173,93766,93767],{"class":4657,"line":11013},[4173,93768,93769],{"class":4766},"\u002F\u002F--------------------- Zeile 5: Dropdown für Sorte --------------------\n",[4173,93771,93772,93774,93777,93779,93781,93784,93786,93789,93791,93794,93797,93800],{"class":4657,"line":11021},[4173,93773,79693],{"class":4788},[4173,93775,93776],{"class":4784},"[] pizza ",[4173,93778,6387],{"class":4788},[4173,93780,82241],{"class":4784},[4173,93782,93783],{"class":4669},"\"Salami\"",[4173,93785,8629],{"class":4784},[4173,93787,93788],{"class":4669},"\"Hawaii\"",[4173,93790,8629],{"class":4784},[4173,93792,93793],{"class":4669},"\"VierJahresZeiten\"",[4173,93795,93796],{"class":4784}," , ",[4173,93798,93799],{"class":4669},"\"Ruccula\"",[4173,93801,93802],{"class":4784}," };\n",[4173,93804,93805,93808,93810,93812,93815,93817],{"class":4657,"line":11026},[4173,93806,93807],{"class":4784},"pizzaArt ",[4173,93809,6387],{"class":4788},[4173,93811,79032],{"class":4788},[4173,93813,93814],{"class":4784}," JComboBox\u003C",[4173,93816,79693],{"class":4788},[4173,93818,93819],{"class":4784},">(pizza);\n",[4173,93821,93822,93825,93828,93830,93832,93834],{"class":4657,"line":11034},[4173,93823,93824],{"class":4784},"pizzaArt.",[4173,93826,93827],{"class":4661},"setSelectedIndex",[4173,93829,6390],{"class":4784},[4173,93831,14206],{"class":4665},[4173,93833,79107],{"class":4784},[4173,93835,93836],{"class":4766},"\u002F\u002F Standard-Auswahl festlegen\n",[4173,93838,93839,93841,93843],{"class":4657,"line":11039},[4173,93840,93824],{"class":4784},[4173,93842,81578],{"class":4661},[4173,93844,93382],{"class":4784},[4173,93846,93847,93849],{"class":4657,"line":11048},[4173,93848,79955],{"class":4661},[4173,93850,93851],{"class":4784},"(pizzaArt);\n",[4173,93853,93854],{"class":4657,"line":11053},[4173,93855,93856],{"class":4766},"\u002F\u002F--------------------- Zeile 6: Label --------------------\n",[4173,93858,93859,93862,93864,93866,93868,93870,93873],{"class":4657,"line":21369},[4173,93860,93861],{"class":4784},"JLabel lb6 ",[4173,93863,6387],{"class":4788},[4173,93865,79032],{"class":4788},[4173,93867,81563],{"class":4661},[4173,93869,6390],{"class":4784},[4173,93871,93872],{"class":4669},"\"Extra: \"",[4173,93874,93875],{"class":4784},",JLabel.LEFT);\n",[4173,93877,93878,93881,93883,93886],{"class":4657,"line":21374},[4173,93879,93880],{"class":4784},"lb6.",[4173,93882,93344],{"class":4661},[4173,93884,93885],{"class":4784},"(Color.BLUE);      ",[4173,93887,93350],{"class":4766},[4173,93889,93890,93892,93894],{"class":4657,"line":21380},[4173,93891,93880],{"class":4784},[4173,93893,81578],{"class":4661},[4173,93895,93382],{"class":4784},[4173,93897,93898,93900],{"class":4657,"line":21385},[4173,93899,79955],{"class":4661},[4173,93901,93902],{"class":4784},"(lb6);\n",[4173,93904,93905],{"class":4657,"line":21397},[4173,93906,93907],{"class":4766},"\u002F\u002F--------------------- Zeile 7: Checkboxen für Zusatzoptionen -----------\n",[4173,93909,93910],{"class":4657,"line":21402},[4173,93911,93912],{"class":4788},"---------\n",[4173,93914,93915,93918,93920,93922,93924],{"class":4657,"line":21408},[4173,93916,93917],{"class":4784},"JPanel pZeile7 ",[4173,93919,6387],{"class":4788},[4173,93921,79032],{"class":4788},[4173,93923,81533],{"class":4661},[4173,93925,65878],{"class":4784},[4173,93927,93928,93931,93933,93935,93937,93939,93941],{"class":4657,"line":21413},[4173,93929,93930],{"class":4784},"jcBSalami ",[4173,93932,6387],{"class":4788},[4173,93934,79032],{"class":4788},[4173,93936,82052],{"class":4661},[4173,93938,6390],{"class":4784},[4173,93940,93783],{"class":4669},[4173,93942,55545],{"class":4784},[4173,93944,93945,93948,93950],{"class":4657,"line":21425},[4173,93946,93947],{"class":4784},"jcBSalami.",[4173,93949,81578],{"class":4661},[4173,93951,93952],{"class":4784},"(schrift1);\n",[4173,93954,93955,93958,93960],{"class":4657,"line":21430},[4173,93956,93957],{"class":4784},"pZeile7.",[4173,93959,79955],{"class":4661},[4173,93961,93962],{"class":4784},"(jcBSalami);\n",[4173,93964,93965,93968,93970,93972,93974,93976,93979],{"class":4657,"line":21436},[4173,93966,93967],{"class":4784},"jcBPeperoni ",[4173,93969,6387],{"class":4788},[4173,93971,79032],{"class":4788},[4173,93973,82052],{"class":4661},[4173,93975,6390],{"class":4784},[4173,93977,93978],{"class":4669},"\"Peperoni\"",[4173,93980,55545],{"class":4784},[4173,93982,93983,93986,93988],{"class":4657,"line":21441},[4173,93984,93985],{"class":4784},"jcBPeperoni.",[4173,93987,81578],{"class":4661},[4173,93989,93952],{"class":4784},[4173,93991,93992,93994,93996],{"class":4657,"line":21453},[4173,93993,93957],{"class":4784},[4173,93995,79955],{"class":4661},[4173,93997,93998],{"class":4784},"(jcBPeperoni);\n",[4173,94000,94001,94004,94006,94008,94010,94012,94015],{"class":4657,"line":21458},[4173,94002,94003],{"class":4784},"jcBSchinken ",[4173,94005,6387],{"class":4788},[4173,94007,79032],{"class":4788},[4173,94009,82052],{"class":4661},[4173,94011,6390],{"class":4784},[4173,94013,94014],{"class":4669},"\"Schinken\"",[4173,94016,55545],{"class":4784},[4173,94018,94019,94022,94024],{"class":4657,"line":21464},[4173,94020,94021],{"class":4784},"jcBSchinken.",[4173,94023,81578],{"class":4661},[4173,94025,93952],{"class":4784},[4173,94027,94028,94030,94032],{"class":4657,"line":21469},[4173,94029,93957],{"class":4784},[4173,94031,79955],{"class":4661},[4173,94033,94034],{"class":4784},"(jcBSchinken);\n",[4173,94036,94037,94039],{"class":4657,"line":21481},[4173,94038,79955],{"class":4661},[4173,94040,94041],{"class":4784},"(pZeile7);\n",[4173,94043,94044],{"class":4657,"line":21486},[4173,94045,94046],{"class":4766},"\u002F\u002F--------------------- Zeile 8: Panel für Buttons --------------------\n",[4173,94048,94049,94052,94054,94056,94058],{"class":4657,"line":21492},[4173,94050,94051],{"class":4784},"JPanel pZeile8 ",[4173,94053,6387],{"class":4788},[4173,94055,79032],{"class":4788},[4173,94057,81533],{"class":4661},[4173,94059,65878],{"class":4784},[4173,94061,94062,94065,94067,94069,94071,94073,94075],{"class":4657,"line":21497},[4173,94063,94064],{"class":4784},"JButton jbSenden ",[4173,94066,6387],{"class":4788},[4173,94068,79032],{"class":4788},[4173,94070,81836],{"class":4661},[4173,94072,6390],{"class":4784},[4173,94074,83264],{"class":4669},[4173,94076,55545],{"class":4784},[4173,94078,94079,94082,94084],{"class":4657,"line":21503},[4173,94080,94081],{"class":4784},"jbSenden.",[4173,94083,81578],{"class":4661},[4173,94085,93952],{"class":4784},[4173,94087,94088,94090,94092,94094,94096],{"class":4657,"line":21508},[4173,94089,94081],{"class":4784},[4173,94091,81461],{"class":4661},[4173,94093,6390],{"class":4784},[4173,94095,80010],{"class":4665},[4173,94097,55545],{"class":4784},[4173,94099,94100,94103,94105],{"class":4657,"line":21518},[4173,94101,94102],{"class":4784},"pZeile8.",[4173,94104,79955],{"class":4661},[4173,94106,94107],{"class":4784},"(jbSenden);\n",[4173,94109,94110,94113,94115,94117,94119,94121,94123],{"class":4657,"line":21523},[4173,94111,94112],{"class":4784},"JButton jbAbbrechen ",[4173,94114,6387],{"class":4788},[4173,94116,79032],{"class":4788},[4173,94118,81836],{"class":4661},[4173,94120,6390],{"class":4784},[4173,94122,84589],{"class":4669},[4173,94124,55545],{"class":4784},[4173,94126,94127,94130,94132],{"class":4657,"line":21529},[4173,94128,94129],{"class":4784},"jbAbbrechen.",[4173,94131,81578],{"class":4661},[4173,94133,93952],{"class":4784},[4173,94135,94136,94138,94140,94142,94144,94147],{"class":4657,"line":21534},[4173,94137,94129],{"class":4784},[4173,94139,81461],{"class":4661},[4173,94141,6390],{"class":4784},[4173,94143,81243],{"class":4788},[4173,94145,94146],{"class":4661}," AbbrechenEreignis",[4173,94148,81860],{"class":4784},[4173,94150,94151,94153,94155],{"class":4657,"line":21544},[4173,94152,94102],{"class":4784},[4173,94154,79955],{"class":4661},[4173,94156,94157],{"class":4784},"(jbAbbrechen);\n",[4173,94159,94160,94163,94165,94167,94169,94171,94174],{"class":4657,"line":21549},[4173,94161,94162],{"class":4784},"JButton ende ",[4173,94164,6387],{"class":4788},[4173,94166,79032],{"class":4788},[4173,94168,81836],{"class":4661},[4173,94170,6390],{"class":4784},[4173,94172,94173],{"class":4669},"\"Ende\"",[4173,94175,55545],{"class":4784},[4173,94177,94178,94181,94183],{"class":4657,"line":21555},[4173,94179,94180],{"class":4784},"ende.",[4173,94182,81578],{"class":4661},[4173,94184,93952],{"class":4784},[4173,94186,94187,94189,94191,94193,94195,94198],{"class":4657,"line":21560},[4173,94188,94180],{"class":4784},[4173,94190,81461],{"class":4661},[4173,94192,6390],{"class":4784},[4173,94194,81243],{"class":4788},[4173,94196,94197],{"class":4661}," EndeEreignis",[4173,94199,94200],{"class":4784},"(jtName));\n",[4173,94202,94203,94205,94207],{"class":4657,"line":21570},[4173,94204,94102],{"class":4784},[4173,94206,79955],{"class":4661},[4173,94208,94209],{"class":4784},"(ende);\n",[4173,94211,94212,94214],{"class":4657,"line":21575},[4173,94213,79955],{"class":4661},[4173,94215,94216],{"class":4784},"(pZeile8);\n",[4173,94218,94219,94221,94223,94225,94227,94229],{"class":4657,"line":21581},[4173,94220,81129],{"class":4661},[4173,94222,6390],{"class":4784},[4173,94224,35097],{"class":4665},[4173,94226,42920],{"class":4784},[4173,94228,35097],{"class":4665},[4173,94230,55545],{"class":4784},[4173,94232,94233,94235,94237,94239],{"class":4657,"line":21586},[4173,94234,81149],{"class":4661},[4173,94236,6390],{"class":4784},[4173,94238,90836],{"class":4665},[4173,94240,55545],{"class":4784},[4173,94242,94243,94245],{"class":4657,"line":21596},[4173,94244,81114],{"class":4661},[4173,94246,83561],{"class":4784},[4173,94248,94249,94251,94253,94255],{"class":4657,"line":21601},[4173,94250,83456],{"class":4661},[4173,94252,6390],{"class":4784},[4173,94254,45190],{"class":4665},[4173,94256,55545],{"class":4784},[4173,94258,94259],{"class":4657,"line":21607},[4173,94260,7090],{"class":4784},[4173,94262,94263,94265,94267,94269,94271,94273],{"class":4657,"line":21612},[4173,94264,79889],{"class":4788},[4173,94266,79934],{"class":4788},[4173,94268,82416],{"class":4661},[4173,94270,82419],{"class":4784},[4173,94272,20602],{"class":7074},[4173,94274,92595],{"class":4784},[4173,94276,94277],{"class":4657,"line":21622},[4173,94278,94279],{"class":4766},"\u002F\u002Fhier steht das, was passiert\n",[4173,94281,94282,94284,94286,94288,94291],{"class":4657,"line":21627},[4173,94283,79043],{"class":4784},[4173,94285,79074],{"class":4661},[4173,94287,6390],{"class":4784},[4173,94289,94290],{"class":4669},"\"Action Performed\"",[4173,94292,55545],{"class":4784},[4173,94294,94295,94297,94299,94302,94304,94306,94308,94310],{"class":4657,"line":21633},[4173,94296,6201],{"class":4788},[4173,94298,81991],{"class":4784},[4173,94300,94301],{"class":4661},"getActionCommand",[4173,94303,86157],{"class":4784},[4173,94305,86976],{"class":4661},[4173,94307,6390],{"class":4784},[4173,94309,83264],{"class":4669},[4173,94311,10673],{"class":4784},[4173,94313,94314],{"class":4657,"line":21638},[4173,94315,92839],{"class":4784},[4173,94317,94318],{"class":4657,"line":21644},[4173,94319,94320],{"class":4766},"\u002F\u002FTextfelder\n",[4173,94322,94323,94325,94327,94330,94332,94334],{"class":4657,"line":21649},[4173,94324,78998],{"class":4784},[4173,94326,6387],{"class":4788},[4173,94328,94329],{"class":4784}," jtName.",[4173,94331,83296],{"class":4661},[4173,94333,92693],{"class":4784},[4173,94335,94336],{"class":4766},"\u002F\u002FAuslesen des Textfeldes\n",[4173,94338,94339,94342,94344,94347,94349],{"class":4657,"line":21659},[4173,94340,94341],{"class":4784},"String tel  ",[4173,94343,6387],{"class":4788},[4173,94345,94346],{"class":4784}," jtTel.",[4173,94348,83296],{"class":4661},[4173,94350,65878],{"class":4784},[4173,94352,94353],{"class":4657,"line":21664},[4173,94354,94355],{"class":4766},"\u002F\u002FRadioButton\n",[4173,94357,94358],{"class":4657,"line":21670},[4173,94359,94360],{"class":4784},"String groesse;\n",[4173,94362,94363,94365,94368,94370],{"class":4657,"line":21675},[4173,94364,6201],{"class":4788},[4173,94366,94367],{"class":4784}," (g_26.",[4173,94369,82092],{"class":4661},[4173,94371,85158],{"class":4784},[4173,94373,94374,94377,94379,94382],{"class":4657,"line":21685},[4173,94375,94376],{"class":4784},"groesse ",[4173,94378,6387],{"class":4788},[4173,94380,94381],{"class":4669}," \"26cm\"",[4173,94383,55559],{"class":4784},[4173,94385,94386],{"class":4657,"line":21690},[4173,94387,7090],{"class":4784},[4173,94389,94390,94392],{"class":4657,"line":21696},[4173,94391,19734],{"class":4788},[4173,94393,51614],{"class":4784},[4173,94395,94396,94398,94400,94403],{"class":4657,"line":21701},[4173,94397,94376],{"class":4784},[4173,94399,6387],{"class":4788},[4173,94401,94402],{"class":4669}," \"30cm\"",[4173,94404,55559],{"class":4784},[4173,94406,94407,94409],{"class":4657,"line":21711},[4173,94408,71897],{"class":4784},[4173,94410,94411],{"class":4766},"\u002F\u002F end of if-else\n",[4173,94413,94414],{"class":4657,"line":21716},[4173,94415,94416],{"class":4766},"\u002F\u002FComboBox - Implizites Typecasting, da Object returned wird\n",[4173,94418,94419,94422,94424,94427,94430],{"class":4657,"line":21722},[4173,94420,94421],{"class":4784},"String p_Art ",[4173,94423,6387],{"class":4788},[4173,94425,94426],{"class":4784}," (String)pizzaArt.",[4173,94428,94429],{"class":4661},"getSelectedItem",[4173,94431,65878],{"class":4784},[4173,94433,94434],{"class":4657,"line":21727},[4173,94435,94436],{"class":4766},"\u002F\u002FCheckBoxen\n",[4173,94438,94439],{"class":4657,"line":21737},[4173,94440,94441],{"class":4784},"String salami;\n",[4173,94443,94444,94446,94449,94451],{"class":4657,"line":21742},[4173,94445,6201],{"class":4788},[4173,94447,94448],{"class":4784}," (jcBSalami.",[4173,94450,82092],{"class":4661},[4173,94452,85158],{"class":4784},[4173,94454,94455,94458,94460,94463],{"class":4657,"line":21748},[4173,94456,94457],{"class":4784},"salami ",[4173,94459,6387],{"class":4788},[4173,94461,94462],{"class":4669}," \"Salami\"",[4173,94464,55559],{"class":4784},[4173,94466,94467],{"class":4657,"line":21753},[4173,94468,7090],{"class":4784},[4173,94470,94471,94473],{"class":4657,"line":21759},[4173,94472,19734],{"class":4788},[4173,94474,51614],{"class":4784},[4173,94476,94477,94479,94481,94484],{"class":4657,"line":21764},[4173,94478,94457],{"class":4784},[4173,94480,6387],{"class":4788},[4173,94482,94483],{"class":4669}," \"nein\"",[4173,94485,55559],{"class":4784},[4173,94487,94488,94490],{"class":4657,"line":21782},[4173,94489,71897],{"class":4784},[4173,94491,94411],{"class":4766},[4173,94493,94494],{"class":4657,"line":21787},[4173,94495,94496],{"class":4784},"String peperoni;\n",[4173,94498,94499,94501,94504,94506],{"class":4657,"line":21793},[4173,94500,6201],{"class":4788},[4173,94502,94503],{"class":4784}," (jcBPeperoni.",[4173,94505,82092],{"class":4661},[4173,94507,85158],{"class":4784},[4173,94509,94510,94513,94515,94518],{"class":4657,"line":21798},[4173,94511,94512],{"class":4784},"peperoni ",[4173,94514,6387],{"class":4788},[4173,94516,94517],{"class":4669}," \"Peperoni\"",[4173,94519,55559],{"class":4784},[4173,94521,94522],{"class":4657,"line":21810},[4173,94523,7090],{"class":4784},[4173,94525,94526,94528],{"class":4657,"line":21815},[4173,94527,19734],{"class":4788},[4173,94529,51614],{"class":4784},[4173,94531,94532,94534,94536,94538],{"class":4657,"line":21821},[4173,94533,94512],{"class":4784},[4173,94535,6387],{"class":4788},[4173,94537,94483],{"class":4669},[4173,94539,55559],{"class":4784},[4173,94541,94542,94544],{"class":4657,"line":21826},[4173,94543,71897],{"class":4784},[4173,94545,94411],{"class":4766},[4173,94547,94548],{"class":4657,"line":21836},[4173,94549,94550],{"class":4784},"String schinken;\n",[4173,94552,94553,94555,94558,94560],{"class":4657,"line":21841},[4173,94554,6201],{"class":4788},[4173,94556,94557],{"class":4784}," (jcBSchinken.",[4173,94559,82092],{"class":4661},[4173,94561,85158],{"class":4784},[4173,94563,94564,94567,94569,94572],{"class":4657,"line":21847},[4173,94565,94566],{"class":4784},"schinken ",[4173,94568,6387],{"class":4788},[4173,94570,94571],{"class":4669}," \"Schinken\"",[4173,94573,55559],{"class":4784},[4173,94575,94576],{"class":4657,"line":21852},[4173,94577,7090],{"class":4784},[4173,94579,94580,94582],{"class":4657,"line":21862},[4173,94581,19734],{"class":4788},[4173,94583,51614],{"class":4784},[4173,94585,94586,94588,94590,94592],{"class":4657,"line":21867},[4173,94587,94566],{"class":4784},[4173,94589,6387],{"class":4788},[4173,94591,94483],{"class":4669},[4173,94593,55559],{"class":4784},[4173,94595,94596,94598],{"class":4657,"line":21873},[4173,94597,71897],{"class":4784},[4173,94599,94411],{"class":4766},[4173,94601,94602],{"class":4657,"line":21878},[4173,94603,94604],{"class":4766},"\u002F\u002FAusgabe in der Console\n",[4173,94606,94607,94609,94611,94613,94616],{"class":4657,"line":21888},[4173,94608,79043],{"class":4784},[4173,94610,79074],{"class":4661},[4173,94612,6390],{"class":4784},[4173,94614,94615],{"class":4669},"\"------Pizzabestellung-------\"",[4173,94617,55545],{"class":4784},[4173,94619,94620,94622,94624],{"class":4657,"line":21893},[4173,94621,79043],{"class":4784},[4173,94623,79074],{"class":4661},[4173,94625,65878],{"class":4784},[4173,94627,94628,94630,94632,94634,94636,94638],{"class":4657,"line":21899},[4173,94629,79043],{"class":4784},[4173,94631,79074],{"class":4661},[4173,94633,6390],{"class":4784},[4173,94635,92252],{"class":4669},[4173,94637,11719],{"class":4788},[4173,94639,79084],{"class":4784},[4173,94641,94642,94644,94646,94648,94651,94653],{"class":4657,"line":21904},[4173,94643,79043],{"class":4784},[4173,94645,79074],{"class":4661},[4173,94647,6390],{"class":4784},[4173,94649,94650],{"class":4669},"\"Tel. : \"",[4173,94652,11719],{"class":4788},[4173,94654,94655],{"class":4784}," tel);\n",[4173,94657,94658,94660,94662],{"class":4657,"line":21910},[4173,94659,79043],{"class":4784},[4173,94661,79074],{"class":4661},[4173,94663,65878],{"class":4784},[4173,94665,94666,94668,94670,94672,94675,94677],{"class":4657,"line":21915},[4173,94667,79043],{"class":4784},[4173,94669,79074],{"class":4661},[4173,94671,6390],{"class":4784},[4173,94673,94674],{"class":4669},"\"Groesse: \"",[4173,94676,11719],{"class":4788},[4173,94678,94679],{"class":4784}," groesse);\n",[4173,94681,94682,94684,94686,94688,94691,94693],{"class":4657,"line":21925},[4173,94683,79043],{"class":4784},[4173,94685,79074],{"class":4661},[4173,94687,6390],{"class":4784},[4173,94689,94690],{"class":4669},"\"Art : \"",[4173,94692,11719],{"class":4788},[4173,94694,94695],{"class":4784}," p_Art);\n",[4173,94697,94698,94700,94702,94704,94707],{"class":4657,"line":21930},[4173,94699,79043],{"class":4784},[4173,94701,79074],{"class":4661},[4173,94703,6390],{"class":4784},[4173,94705,94706],{"class":4669},"\"Extras:\"",[4173,94708,55545],{"class":4784},[4173,94710,94711,94713,94715],{"class":4657,"line":21936},[4173,94712,79043],{"class":4784},[4173,94714,79074],{"class":4661},[4173,94716,94717],{"class":4784},"(salami);\n",[4173,94719,94720,94722,94724],{"class":4657,"line":21941},[4173,94721,79043],{"class":4784},[4173,94723,79074],{"class":4661},[4173,94725,94726],{"class":4784},"(peperoni);\n",[4173,94728,94729,94731,94733],{"class":4657,"line":21952},[4173,94730,79043],{"class":4784},[4173,94732,79074],{"class":4661},[4173,94734,94735],{"class":4784},"(schinken);\n",[4173,94737,94738,94740,94742],{"class":4657,"line":21957},[4173,94739,79043],{"class":4784},[4173,94741,79074],{"class":4661},[4173,94743,65878],{"class":4784},[4173,94745,94746,94748,94750,94752,94755],{"class":4657,"line":21963},[4173,94747,79043],{"class":4784},[4173,94749,79074],{"class":4661},[4173,94751,6390],{"class":4784},[4173,94753,94754],{"class":4669},"\"Vielen Dank fuer ihre Bestellung!\"",[4173,94756,55545],{"class":4784},[4173,94758,94759,94761,94763,94765,94767,94769,94772,94774,94776],{"class":4657,"line":21968},[4173,94760,83354],{"class":4784},[4173,94762,83357],{"class":4661},[4173,94764,6390],{"class":4784},[4173,94766,81169],{"class":4665},[4173,94768,42920],{"class":4784},[4173,94770,94771],{"class":4669},"\"Best.-Nr. ",[4173,94773,83928],{"class":4665},[4173,94775,6207],{"class":4669},[4173,94777,94778],{"class":4788},"+\n",[4173,94780,94781,94784,94787],{"class":4657,"line":21980},[4173,94782,94783],{"class":4784},"bestellNr,",[4173,94785,94786],{"class":4669},"\"Bestellungsübersicht\"",[4173,94788,94789],{"class":4784},",JOptionPane.INFORMATION_MESSAGE);\n",[4173,94791,94792,94794],{"class":4657,"line":21985},[4173,94793,85839],{"class":4788},[4173,94795,51614],{"class":4784},[4173,94797,94798],{"class":4657,"line":21991},[4173,94799,94800],{"class":4766},"\u002F\u002F File-Writer im Append-Modus durch \"true\" als zweiter\n",[4173,94802,94803],{"class":4657,"line":21996},[4173,94804,94805],{"class":4784},"Übergabeparameter\n",[4173,94807,94808,94811,94813,94815,94817,94819],{"class":4657,"line":22009},[4173,94809,94810],{"class":4784},"BufferedWriter writer ",[4173,94812,6387],{"class":4788},[4173,94814,79032],{"class":4788},[4173,94816,86266],{"class":4661},[4173,94818,6390],{"class":4784},[4173,94820,82765],{"class":4788},[4173,94822,94823,94826,94828,94831,94833,94835,94837],{"class":4657,"line":22014},[4173,94824,94825],{"class":4661},"FileWriter",[4173,94827,6390],{"class":4784},[4173,94829,94830],{"class":4669},"\"Bestellungen.txt\"",[4173,94832,8629],{"class":4784},[4173,94834,45190],{"class":4665},[4173,94836,48385],{"class":4784},[4173,94838,94839],{"class":4766},"\u002F\u002F In Datei schreiben durch Angabe des\n",[4173,94841,94842],{"class":4657,"line":22020},[4173,94843,94844],{"class":4784},"Dateinamen\n",[4173,94846,94847,94849,94851,94854,94856],{"class":4657,"line":22025},[4173,94848,86280],{"class":4784},[4173,94850,86283],{"class":4661},[4173,94852,94853],{"class":4784},"(bestellNr.",[4173,94855,86154],{"class":4661},[4173,94857,81860],{"class":4784},[4173,94859,94860,94862,94865,94868],{"class":4657,"line":22031},[4173,94861,86280],{"class":4784},[4173,94863,94864],{"class":4661},"newLine",[4173,94866,94867],{"class":4784},"(); ",[4173,94869,94870],{"class":4766},"\u002F\u002F Neue Zeile in die Datei\n",[4173,94872,94873,94875,94878],{"class":4657,"line":22036},[4173,94874,86280],{"class":4784},[4173,94876,94877],{"class":4661},"close",[4173,94879,65878],{"class":4784},[4173,94881,94882,94884,94886,94889,94892],{"class":4657,"line":22046},[4173,94883,71897],{"class":4784},[4173,94885,85917],{"class":4788},[4173,94887,94888],{"class":4784}," (Exception ",[4173,94890,94891],{"class":7074},"exception",[4173,94893,56319],{"class":4784},[4173,94895,94896,94899,94902],{"class":4657,"line":22051},[4173,94897,94898],{"class":4784},"exception.",[4173,94900,94901],{"class":4661},"printStackTrace",[4173,94903,65878],{"class":4784},[4173,94905,94906],{"class":4657,"line":22057},[4173,94907,7090],{"class":4784},[4173,94909,94910,94912,94914,94916,94919,94921,94923],{"class":4657,"line":22062},[4173,94911,79043],{"class":4784},[4173,94913,79074],{"class":4661},[4173,94915,6390],{"class":4784},[4173,94917,94918],{"class":4669},"\"Einlesen der letzten Bestellungsnummern:",[4173,94920,83928],{"class":4665},[4173,94922,6207],{"class":4669},[4173,94924,55545],{"class":4784},[4173,94926,94927,94929],{"class":4657,"line":22072},[4173,94928,85839],{"class":4788},[4173,94930,51614],{"class":4784},[4173,94932,94933,94936,94938,94940,94942,94944],{"class":4657,"line":22077},[4173,94934,94935],{"class":4784},"BufferedReader in ",[4173,94937,6387],{"class":4788},[4173,94939,79032],{"class":4788},[4173,94941,86071],{"class":4661},[4173,94943,6390],{"class":4784},[4173,94945,82765],{"class":4788},[4173,94947,94948,94951,94953,94955],{"class":4657,"line":22083},[4173,94949,94950],{"class":4661},"FileReader",[4173,94952,6390],{"class":4784},[4173,94954,94830],{"class":4669},[4173,94956,66047],{"class":4784},[4173,94958,94959,94962,94964,94966,94968,94970],{"class":4657,"line":22088},[4173,94960,94961],{"class":4784},"BufferedWriter out ",[4173,94963,6387],{"class":4788},[4173,94965,79032],{"class":4788},[4173,94967,86266],{"class":4661},[4173,94969,6390],{"class":4784},[4173,94971,82765],{"class":4788},[4173,94973,94974,94977],{"class":4657,"line":22094},[4173,94975,94976],{"class":4661},"OutputStreamWriter",[4173,94978,94979],{"class":4784},"(System.out));\n",[4173,94981,94982,94985],{"class":4657,"line":22099},[4173,94983,94984],{"class":4661},"br2bw",[4173,94986,94987],{"class":4784},"(in,out);\n",[4173,94989,94990],{"class":4657,"line":22109},[4173,94991,7090],{"class":4784},[4173,94993,94994,94996,94998,95000],{"class":4657,"line":22114},[4173,94995,85917],{"class":4788},[4173,94997,94888],{"class":4784},[4173,94999,94891],{"class":7074},[4173,95001,56319],{"class":4784},[4173,95003,95004,95006,95008],{"class":4657,"line":22120},[4173,95005,94898],{"class":4784},[4173,95007,94901],{"class":4661},[4173,95009,65878],{"class":4784},[4173,95011,95012],{"class":4657,"line":22125},[4173,95013,7090],{"class":4784},[4173,95015,95016,95019,95021],{"class":4657,"line":22131},[4173,95017,95018],{"class":4784},"bestellNr",[4173,95020,10670],{"class":4788},[4173,95022,55559],{"class":4784},[4173,95024,95025],{"class":4657,"line":22136},[4173,95026,7090],{"class":4784},[4173,95028,95029,95031],{"class":4657,"line":22147},[4173,95030,19734],{"class":4788},[4173,95032,51614],{"class":4784},[4173,95034,95035,95037],{"class":4657,"line":22152},[4173,95036,71897],{"class":4784},[4173,95038,94411],{"class":4766},[4173,95040,95041],{"class":4657,"line":22158},[4173,95042,7090],{"class":4784},[4173,95044,95045,95047,95049,95051,95054,95057,95059,95062,95065],{"class":4657,"line":22163},[4173,95046,79889],{"class":4788},[4173,95048,79892],{"class":4788},[4173,95050,79934],{"class":4788},[4173,95052,95053],{"class":4661}," br2bw",[4173,95055,95056],{"class":4784},"(BufferedReader ",[4173,95058,7135],{"class":7074},[4173,95060,95061],{"class":4784},", BufferedWriter ",[4173,95063,95064],{"class":7074},"bw",[4173,95066,6402],{"class":4784},[4173,95068,95069,95071],{"class":4657,"line":22173},[4173,95070,86035],{"class":4788},[4173,95072,86252],{"class":4784},[4173,95074,95075,95078],{"class":4657,"line":22178},[4173,95076,95077],{"class":4784},"String z;                             ",[4173,95079,95080],{"class":4766},"\u002F\u002F Zeile\n",[4173,95082,95083,95085,95088,95090,95093,95095,95097,95099,95101,95104],{"class":4657,"line":22184},[4173,95084,6694],{"class":4788},[4173,95086,95087],{"class":4784}," ((z ",[4173,95089,6387],{"class":4788},[4173,95091,95092],{"class":4784}," br.",[4173,95094,86101],{"class":4661},[4173,95096,86104],{"class":4784},[4173,95098,19461],{"class":4788},[4173,95100,85147],{"class":4665},[4173,95102,95103],{"class":4784},") { ",[4173,95105,95106],{"class":4766},"\u002F\u002F lesen, Stromende pruefen,\n",[4173,95108,95109,95112,95114,95117],{"class":4657,"line":22189},[4173,95110,95111],{"class":4784},"bw.",[4173,95113,86283],{"class":4661},[4173,95115,95116],{"class":4784},"(z);                        ",[4173,95118,95119],{"class":4766},"\u002F\u002F ausgeben und\n",[4173,95121,95122,95124,95126,95129],{"class":4657,"line":22201},[4173,95123,95111],{"class":4784},[4173,95125,94864],{"class":4661},[4173,95127,95128],{"class":4784},"();                       ",[4173,95130,95131],{"class":4766},"\u002F\u002F Zeilenwechsel ausgeben\n",[4173,95133,95134],{"class":4657,"line":22206},[4173,95135,7090],{"class":4784},[4173,95137,95138,95141,95143],{"class":4657,"line":22212},[4173,95139,95140],{"class":4784},"br.",[4173,95142,94877],{"class":4661},[4173,95144,65878],{"class":4784},[4173,95146,95147,95149,95151,95153],{"class":4657,"line":22217},[4173,95148,95111],{"class":4784},[4173,95150,94877],{"class":4661},[4173,95152,94867],{"class":4784},[4173,95154,95155],{"class":4766},"\u002F\u002F Schließt den Output-Stream permanent! Auch System.out!\n",[4173,95157,95158],{"class":4657,"line":22230},[4173,95159,7090],{"class":4784},[4173,95161,95162,95164,95166,95168,95170],{"class":4657,"line":22235},[4173,95163,79983],{"class":4788},[4173,95165,94146],{"class":4661},[4173,95167,80628],{"class":4788},[4173,95169,91485],{"class":4661},[4173,95171,92839],{"class":4784},[4173,95173,95174,95176,95178,95180,95182,95184],{"class":4657,"line":22241},[4173,95175,79889],{"class":4788},[4173,95177,79934],{"class":4788},[4173,95179,82416],{"class":4661},[4173,95181,82419],{"class":4784},[4173,95183,20602],{"class":7074},[4173,95185,92595],{"class":4784},[4173,95187,95188],{"class":4657,"line":22246},[4173,95189,95190],{"class":4766},"\u002F\u002FTextfelder leeren\n",[4173,95192,95193,95196,95198,95200,95202],{"class":4657,"line":22256},[4173,95194,95195],{"class":4784},"jtName.",[4173,95197,81370],{"class":4661},[4173,95199,6390],{"class":4784},[4173,95201,46851],{"class":4669},[4173,95203,55545],{"class":4784},[4173,95205,95206,95209,95211,95213,95215],{"class":4657,"line":22261},[4173,95207,95208],{"class":4784},"jtTel.",[4173,95210,81370],{"class":4661},[4173,95212,6390],{"class":4784},[4173,95214,46851],{"class":4669},[4173,95216,55545],{"class":4784},[4173,95218,95219],{"class":4657,"line":22267},[4173,95220,95221],{"class":4766},"\u002F\u002FRadiobutton unausgewaehlt\n",[4173,95223,95224,95226,95228,95230,95232],{"class":4657,"line":22272},[4173,95225,93645],{"class":4784},[4173,95227,82067],{"class":4661},[4173,95229,6390],{"class":4784},[4173,95231,45190],{"class":4665},[4173,95233,55545],{"class":4784},[4173,95235,95236],{"class":4657,"line":32448},[4173,95237,95238],{"class":4766},"\u002F\u002FComboBox - Vorauswahl\n",[4173,95240,95241,95243,95245,95247,95249],{"class":4657,"line":32453},[4173,95242,93824],{"class":4784},[4173,95244,93827],{"class":4661},[4173,95246,6390],{"class":4784},[4173,95248,14206],{"class":4665},[4173,95250,55545],{"class":4784},[4173,95252,95253],{"class":4657,"line":32460},[4173,95254,95255],{"class":4766},"\u002F\u002FCheckboxen leeren\n",[4173,95257,95258,95260,95262,95264,95266],{"class":4657,"line":32465},[4173,95259,93947],{"class":4784},[4173,95261,82067],{"class":4661},[4173,95263,6390],{"class":4784},[4173,95265,90836],{"class":4665},[4173,95267,55545],{"class":4784},[4173,95269,95270,95272,95274,95276,95278],{"class":4657,"line":32472},[4173,95271,93985],{"class":4784},[4173,95273,82067],{"class":4661},[4173,95275,6390],{"class":4784},[4173,95277,90836],{"class":4665},[4173,95279,55545],{"class":4784},[4173,95281,95282,95284,95286,95288,95290],{"class":4657,"line":32477},[4173,95283,94021],{"class":4784},[4173,95285,82067],{"class":4661},[4173,95287,6390],{"class":4784},[4173,95289,90836],{"class":4665},[4173,95291,55545],{"class":4784},[4173,95293,95294],{"class":4657,"line":32485},[4173,95295,7090],{"class":4784},[4173,95297,95298],{"class":4657,"line":32490},[4173,95299,7090],{"class":4784},[4173,95301,95302],{"class":4657,"line":32498},[4173,95303,7090],{"class":4784},[16,95305,95307],{"id":95306},"_3endeereignisjava","3.EndeEreignis.java",[4647,95309,95311],{"className":78931,"code":95310,"language":78933,"meta":269,"style":269},"import java.awt.event.*; \u002F\u002FEreignisbehandlung\nimport javax.swing.JTextField;\nclass EndeEreignis implements ActionListener{\nJTextField jtname;\n\u002F\u002F Beim Erstellen der Klasse wird das Textfeld übergeben, da es nicht global\nverfügbar ist\nEndeEreignis(JTextField jtname){\nthis.jtname = jtname;\n}\npublic void actionPerformed(ActionEvent e){\nSystem.out.println(jtname.getText()); \u002F\u002F Textfeldinhalt wird ausgegeben\nSystem.exit(0);  \u002F\u002Fbeendet den GUI-Prozess\n}\n}\n",[4653,95312,95313,95325,95332,95344,95349,95354,95359,95371,95383,95387,95401,95417,95433,95437],{"__ignoreMap":269},[4173,95314,95315,95317,95319,95321,95323],{"class":4657,"line":4658},[4173,95316,79019],{"class":4788},[4173,95318,80913],{"class":4784},[4173,95320,6328],{"class":4665},[4173,95322,6498],{"class":4784},[4173,95324,93088],{"class":4766},[4173,95326,95327,95329],{"class":4657,"line":270},[4173,95328,79019],{"class":4788},[4173,95330,95331],{"class":4784}," javax.swing.JTextField;\n",[4173,95333,95334,95336,95338,95340,95342],{"class":4657,"line":1263},[4173,95335,79983],{"class":4788},[4173,95337,94197],{"class":4661},[4173,95339,80628],{"class":4788},[4173,95341,91485],{"class":4661},[4173,95343,92839],{"class":4784},[4173,95345,95346],{"class":4657,"line":4770},[4173,95347,95348],{"class":4784},"JTextField jtname;\n",[4173,95350,95351],{"class":4657,"line":4775},[4173,95352,95353],{"class":4766},"\u002F\u002F Beim Erstellen der Klasse wird das Textfeld übergeben, da es nicht global\n",[4173,95355,95356],{"class":4657,"line":6320},[4173,95357,95358],{"class":4784},"verfügbar ist\n",[4173,95360,95361,95364,95366,95369],{"class":4657,"line":6325},[4173,95362,95363],{"class":4661},"EndeEreignis",[4173,95365,91673],{"class":4784},[4173,95367,95368],{"class":7074},"jtname",[4173,95370,92595],{"class":4784},[4173,95372,95373,95375,95378,95380],{"class":4657,"line":6343},[4173,95374,80010],{"class":4665},[4173,95376,95377],{"class":4784},".jtname ",[4173,95379,6387],{"class":4788},[4173,95381,95382],{"class":4784}," jtname;\n",[4173,95384,95385],{"class":4657,"line":6348},[4173,95386,7090],{"class":4784},[4173,95388,95389,95391,95393,95395,95397,95399],{"class":4657,"line":6457},[4173,95390,79889],{"class":4788},[4173,95392,79934],{"class":4788},[4173,95394,82416],{"class":4661},[4173,95396,82419],{"class":4784},[4173,95398,20602],{"class":7074},[4173,95400,92595],{"class":4784},[4173,95402,95403,95405,95407,95410,95412,95414],{"class":4657,"line":6462},[4173,95404,79043],{"class":4784},[4173,95406,79074],{"class":4661},[4173,95408,95409],{"class":4784},"(jtname.",[4173,95411,83296],{"class":4661},[4173,95413,86843],{"class":4784},[4173,95415,95416],{"class":4766},"\u002F\u002F Textfeldinhalt wird ausgegeben\n",[4173,95418,95419,95422,95424,95426,95428,95430],{"class":4657,"line":6468},[4173,95420,95421],{"class":4784},"System.",[4173,95423,10898],{"class":4661},[4173,95425,6390],{"class":4784},[4173,95427,12749],{"class":4665},[4173,95429,86471],{"class":4784},[4173,95431,95432],{"class":4766},"\u002F\u002Fbeendet den GUI-Prozess\n",[4173,95434,95435],{"class":4657,"line":6473},[4173,95436,7090],{"class":4784},[4173,95438,95439],{"class":4657,"line":6479},[4173,95440,7090],{"class":4784},[16,95442,95444],{"id":95443},"_4pizzajava","4.Pizza.java",[4647,95446,95448],{"className":78931,"code":95447,"language":78933,"meta":269,"style":269},"public class Pizza {\n}\n",[4653,95449,95450,95461],{"__ignoreMap":269},[4173,95451,95452,95454,95456,95459],{"class":4657,"line":4658},[4173,95453,79889],{"class":4788},[4173,95455,80062],{"class":4788},[4173,95457,95458],{"class":4661}," Pizza",[4173,95460,51614],{"class":4784},[4173,95462,95463],{"class":4657,"line":270},[4173,95464,7090],{"class":4784},[16,95466,95468],{"id":95467},"laplacesemaphore","Laplace\u002FSemaphore",[16,95470,95472],{"id":95471},"teilnehmerjava","Teilnehmer.java",[4647,95474,95476],{"className":78931,"code":95475,"language":78933,"meta":269,"style":269},"\u002F\u002F Teilnehmer.java\nimport java.util.concurrent.Semaphore;\nimport java.util.Random;\nimport java.io.IOException;\npublic class Teilnehmer extends Thread {\nprivate final Semaphore sem;\nprivate final LaplaceFile file;\nprivate final Random rnd = new Random();\npublic Teilnehmer(LaplaceFile file, Semaphore sem, String name) {\nsuper(name);\nthis.sem = sem;\nthis.file = file;\n}\n@Override\npublic void run() {\n\u002F\u002F Jeder Teilnehmer schreibt 10 Zeilen mit jeweils drei Würfen (jeweils 1..6)\nfor (int i = 0; i \u003C 10; i++) {\nint a = rnd.nextInt(6) + 1;\nint b = rnd.nextInt(6) + 1;\nint c = rnd.nextInt(6) + 1;\nString line = a + \",\" + b + \",\" + c; \u002F\u002F Format: 1,2,3\nString fullLine = getName() + \": \" + line; \u002F\u002F Teilnehmername voranstellen\ntry {\nsem.acquire();\nfile.writeLine(fullLine);\n} catch (InterruptedException e) {\nThread.currentThread().interrupt();\nbreak;\n} catch (IOException e) {\n\u002F\u002F Fehler beim Schreiben: kurz melden und weitermachen\nSystem.err.println(\"Schreibfehler von \" + getName() + \": \" +\ne.getMessage());\n} finally {\nsem.release();\n}\ntry {\u002F\u002F !!!Bräuchte man eigentlich im realen PROG. NICHT!!!\nThread.sleep(rnd.nextInt(50)); \u002F\u002F kurz warten, um Parallelität\nsichtbar zu machen\n} catch (InterruptedException e) {\nThread.currentThread().interrupt();\nbreak;\n}\n}\n}\n}\n",[4653,95477,95478,95483,95490,95497,95503,95519,95529,95538,95556,95579,95585,95597,95609,95613,95619,95629,95634,95660,95686,95710,95735,95765,95790,95796,95806,95817,95830,95845,95851,95863,95868,95891,95900,95908,95917,95921,95930,95951,95956,95968,95980,95986,95990,95994,95998],{"__ignoreMap":269},[4173,95479,95480],{"class":4657,"line":4658},[4173,95481,95482],{"class":4766},"\u002F\u002F Teilnehmer.java\n",[4173,95484,95485,95487],{"class":4657,"line":270},[4173,95486,79019],{"class":4788},[4173,95488,95489],{"class":4784}," java.util.concurrent.Semaphore;\n",[4173,95491,95492,95494],{"class":4657,"line":1263},[4173,95493,79019],{"class":4788},[4173,95495,95496],{"class":4784}," java.util.Random;\n",[4173,95498,95499,95501],{"class":4657,"line":4770},[4173,95500,79019],{"class":4788},[4173,95502,85751],{"class":4784},[4173,95504,95505,95507,95509,95512,95514,95517],{"class":4657,"line":4775},[4173,95506,79889],{"class":4788},[4173,95508,80062],{"class":4788},[4173,95510,95511],{"class":4661}," Teilnehmer",[4173,95513,80500],{"class":4788},[4173,95515,95516],{"class":4661}," Thread",[4173,95518,51614],{"class":4784},[4173,95520,95521,95523,95526],{"class":4657,"line":6320},[4173,95522,80152],{"class":4788},[4173,95524,95525],{"class":4788}," final",[4173,95527,95528],{"class":4784}," Semaphore sem;\n",[4173,95530,95531,95533,95535],{"class":4657,"line":6325},[4173,95532,80152],{"class":4788},[4173,95534,95525],{"class":4788},[4173,95536,95537],{"class":4784}," LaplaceFile file;\n",[4173,95539,95540,95542,95544,95547,95549,95551,95554],{"class":4657,"line":6343},[4173,95541,80152],{"class":4788},[4173,95543,95525],{"class":4788},[4173,95545,95546],{"class":4784}," Random rnd ",[4173,95548,6387],{"class":4788},[4173,95550,79032],{"class":4788},[4173,95552,95553],{"class":4661}," Random",[4173,95555,65878],{"class":4784},[4173,95557,95558,95560,95562,95565,95567,95570,95573,95575,95577],{"class":4657,"line":6348},[4173,95559,79889],{"class":4788},[4173,95561,95511],{"class":4661},[4173,95563,95564],{"class":4784},"(LaplaceFile ",[4173,95566,59315],{"class":7074},[4173,95568,95569],{"class":4784},", Semaphore ",[4173,95571,95572],{"class":7074},"sem",[4173,95574,86243],{"class":4784},[4173,95576,28734],{"class":7074},[4173,95578,56319],{"class":4784},[4173,95580,95581,95583],{"class":4657,"line":6457},[4173,95582,80521],{"class":4665},[4173,95584,80524],{"class":4784},[4173,95586,95587,95589,95592,95594],{"class":4657,"line":6462},[4173,95588,80010],{"class":4665},[4173,95590,95591],{"class":4784},".sem ",[4173,95593,6387],{"class":4788},[4173,95595,95596],{"class":4784}," sem;\n",[4173,95598,95599,95601,95604,95606],{"class":4657,"line":6468},[4173,95600,80010],{"class":4665},[4173,95602,95603],{"class":4784},".file ",[4173,95605,6387],{"class":4788},[4173,95607,95608],{"class":4784}," file;\n",[4173,95610,95611],{"class":4657,"line":6473},[4173,95612,7090],{"class":4784},[4173,95614,95615,95617],{"class":4657,"line":6479},[4173,95616,11615],{"class":4784},[4173,95618,80535],{"class":4788},[4173,95620,95621,95623,95625,95627],{"class":4657,"line":6503},[4173,95622,79889],{"class":4788},[4173,95624,79934],{"class":4788},[4173,95626,8045],{"class":4661},[4173,95628,7062],{"class":4784},[4173,95630,95631],{"class":4657,"line":6516},[4173,95632,95633],{"class":4766},"\u002F\u002F Jeder Teilnehmer schreibt 10 Zeilen mit jeweils drei Würfen (jeweils 1..6)\n",[4173,95635,95636,95638,95640,95642,95644,95646,95648,95650,95652,95654,95656,95658],{"class":4657,"line":6971},[4173,95637,6425],{"class":4788},[4173,95639,4171],{"class":4784},[4173,95641,64831],{"class":4788},[4173,95643,6555],{"class":4784},[4173,95645,6387],{"class":4788},[4173,95647,25370],{"class":4665},[4173,95649,79645],{"class":4784},[4173,95651,24345],{"class":4788},[4173,95653,15571],{"class":4665},[4173,95655,79652],{"class":4784},[4173,95657,10670],{"class":4788},[4173,95659,56319],{"class":4784},[4173,95661,95662,95664,95666,95668,95671,95674,95676,95678,95680,95682,95684],{"class":4657,"line":10649},[4173,95663,64831],{"class":4788},[4173,95665,79143],{"class":4784},[4173,95667,6387],{"class":4788},[4173,95669,95670],{"class":4784}," rnd.",[4173,95672,95673],{"class":4661},"nextInt",[4173,95675,6390],{"class":4784},[4173,95677,14278],{"class":4665},[4173,95679,6306],{"class":4784},[4173,95681,14419],{"class":4788},[4173,95683,10264],{"class":4665},[4173,95685,55559],{"class":4784},[4173,95687,95688,95690,95692,95694,95696,95698,95700,95702,95704,95706,95708],{"class":4657,"line":10654},[4173,95689,64831],{"class":4788},[4173,95691,49052],{"class":4784},[4173,95693,6387],{"class":4788},[4173,95695,95670],{"class":4784},[4173,95697,95673],{"class":4661},[4173,95699,6390],{"class":4784},[4173,95701,14278],{"class":4665},[4173,95703,6306],{"class":4784},[4173,95705,14419],{"class":4788},[4173,95707,10264],{"class":4665},[4173,95709,55559],{"class":4784},[4173,95711,95712,95714,95717,95719,95721,95723,95725,95727,95729,95731,95733],{"class":4657,"line":10659},[4173,95713,64831],{"class":4788},[4173,95715,95716],{"class":4784}," c ",[4173,95718,6387],{"class":4788},[4173,95720,95670],{"class":4784},[4173,95722,95673],{"class":4661},[4173,95724,6390],{"class":4784},[4173,95726,14278],{"class":4665},[4173,95728,6306],{"class":4784},[4173,95730,14419],{"class":4788},[4173,95732,10264],{"class":4665},[4173,95734,55559],{"class":4784},[4173,95736,95737,95740,95742,95744,95746,95749,95751,95753,95755,95757,95759,95762],{"class":4657,"line":10664},[4173,95738,95739],{"class":4784},"String line ",[4173,95741,6387],{"class":4788},[4173,95743,79143],{"class":4784},[4173,95745,14419],{"class":4788},[4173,95747,95748],{"class":4669}," \",\"",[4173,95750,11719],{"class":4788},[4173,95752,49052],{"class":4784},[4173,95754,14419],{"class":4788},[4173,95756,95748],{"class":4669},[4173,95758,11719],{"class":4788},[4173,95760,95761],{"class":4784}," c; ",[4173,95763,95764],{"class":4766},"\u002F\u002F Format: 1,2,3\n",[4173,95766,95767,95770,95772,95775,95777,95779,95782,95784,95787],{"class":4657,"line":10676},[4173,95768,95769],{"class":4784},"String fullLine ",[4173,95771,6387],{"class":4788},[4173,95773,95774],{"class":4661}," getName",[4173,95776,80558],{"class":4784},[4173,95778,14419],{"class":4788},[4173,95780,95781],{"class":4669}," \": \"",[4173,95783,11719],{"class":4788},[4173,95785,95786],{"class":4784}," line; ",[4173,95788,95789],{"class":4766},"\u002F\u002F Teilnehmername voranstellen\n",[4173,95791,95792,95794],{"class":4657,"line":10681},[4173,95793,85839],{"class":4788},[4173,95795,51614],{"class":4784},[4173,95797,95798,95801,95804],{"class":4657,"line":10702},[4173,95799,95800],{"class":4784},"sem.",[4173,95802,95803],{"class":4661},"acquire",[4173,95805,65878],{"class":4784},[4173,95807,95808,95811,95814],{"class":4657,"line":10707},[4173,95809,95810],{"class":4784},"file.",[4173,95812,95813],{"class":4661},"writeLine",[4173,95815,95816],{"class":4784},"(fullLine);\n",[4173,95818,95819,95821,95823,95826,95828],{"class":4657,"line":10712},[4173,95820,71897],{"class":4784},[4173,95822,85917],{"class":4788},[4173,95824,95825],{"class":4784}," (InterruptedException ",[4173,95827,20602],{"class":7074},[4173,95829,56319],{"class":4784},[4173,95831,95832,95835,95838,95840,95843],{"class":4657,"line":10717},[4173,95833,95834],{"class":4784},"Thread.",[4173,95836,95837],{"class":4661},"currentThread",[4173,95839,86157],{"class":4784},[4173,95841,95842],{"class":4661},"interrupt",[4173,95844,65878],{"class":4784},[4173,95846,95847,95849],{"class":4657,"line":10727},[4173,95848,6706],{"class":4788},[4173,95850,55559],{"class":4784},[4173,95852,95853,95855,95857,95859,95861],{"class":4657,"line":10732},[4173,95854,71897],{"class":4784},[4173,95856,85917],{"class":4788},[4173,95858,85960],{"class":4784},[4173,95860,20602],{"class":7074},[4173,95862,56319],{"class":4784},[4173,95864,95865],{"class":4657,"line":10737},[4173,95866,95867],{"class":4766},"\u002F\u002F Fehler beim Schreiben: kurz melden und weitermachen\n",[4173,95869,95870,95872,95874,95876,95879,95881,95883,95885,95887,95889],{"class":4657,"line":10742},[4173,95871,85934],{"class":4784},[4173,95873,79074],{"class":4661},[4173,95875,6390],{"class":4784},[4173,95877,95878],{"class":4669},"\"Schreibfehler von \"",[4173,95880,11719],{"class":4788},[4173,95882,95774],{"class":4661},[4173,95884,80558],{"class":4784},[4173,95886,14419],{"class":4788},[4173,95888,95781],{"class":4669},[4173,95890,18989],{"class":4788},[4173,95892,95893,95896,95898],{"class":4657,"line":10752},[4173,95894,95895],{"class":4784},"e.",[4173,95897,85949],{"class":4661},[4173,95899,81860],{"class":4784},[4173,95901,95902,95904,95906],{"class":4657,"line":10757},[4173,95903,71897],{"class":4784},[4173,95905,86570],{"class":4788},[4173,95907,51614],{"class":4784},[4173,95909,95910,95912,95915],{"class":4657,"line":10762},[4173,95911,95800],{"class":4784},[4173,95913,95914],{"class":4661},"release",[4173,95916,65878],{"class":4784},[4173,95918,95919],{"class":4657,"line":10767},[4173,95920,7090],{"class":4784},[4173,95922,95923,95925,95927],{"class":4657,"line":10772},[4173,95924,85839],{"class":4788},[4173,95926,6560],{"class":4784},[4173,95928,95929],{"class":4766},"\u002F\u002F !!!Bräuchte man eigentlich im realen PROG. NICHT!!!\n",[4173,95931,95932,95934,95937,95940,95942,95944,95946,95948],{"class":4657,"line":10777},[4173,95933,95834],{"class":4784},[4173,95935,95936],{"class":4661},"sleep",[4173,95938,95939],{"class":4784},"(rnd.",[4173,95941,95673],{"class":4661},[4173,95943,6390],{"class":4784},[4173,95945,82488],{"class":4665},[4173,95947,48385],{"class":4784},[4173,95949,95950],{"class":4766},"\u002F\u002F kurz warten, um Parallelität\n",[4173,95952,95953],{"class":4657,"line":10782},[4173,95954,95955],{"class":4784},"sichtbar zu machen\n",[4173,95957,95958,95960,95962,95964,95966],{"class":4657,"line":10787},[4173,95959,71897],{"class":4784},[4173,95961,85917],{"class":4788},[4173,95963,95825],{"class":4784},[4173,95965,20602],{"class":7074},[4173,95967,56319],{"class":4784},[4173,95969,95970,95972,95974,95976,95978],{"class":4657,"line":10800},[4173,95971,95834],{"class":4784},[4173,95973,95837],{"class":4661},[4173,95975,86157],{"class":4784},[4173,95977,95842],{"class":4661},[4173,95979,65878],{"class":4784},[4173,95981,95982,95984],{"class":4657,"line":10805},[4173,95983,6706],{"class":4788},[4173,95985,55559],{"class":4784},[4173,95987,95988],{"class":4657,"line":10818},[4173,95989,7090],{"class":4784},[4173,95991,95992],{"class":4657,"line":10823},[4173,95993,7090],{"class":4784},[4173,95995,95996],{"class":4657,"line":10836},[4173,95997,7090],{"class":4784},[4173,95999,96000],{"class":4657,"line":10841},[4173,96001,7090],{"class":4784},[16,96003,96005],{"id":96004},"laplacefilejava","LaplaceFile.java",[4647,96007,96009],{"className":78931,"code":96008,"language":78933,"meta":269,"style":269},"\u002F\u002F LaplaceFile.java\nimport java.io.BufferedWriter;\nimport java.io.FileWriter;\nimport java.io.IOException; \u002F\u002F für lese\u002Fschreibfehler\npublic class LaplaceFile {\nprivate final BufferedWriter bw;\npublic LaplaceFile(String datei) throws IOException {\nbw = new BufferedWriter(new FileWriter(datei, false)); \u002F\u002F false =\nüberschreiben | true = anhängen\n}\npublic synchronized void writeLine(String line) throws IOException {\nbw.write(line);\nbw.newLine();\nbw.flush();\n}\npublic void close() throws IOException {\nbw.close();\n}\n}\n",[4653,96010,96011,96016,96022,96028,96038,96049,96058,96075,96102,96116,96120,96142,96151,96159,96168,96172,96187,96195,96199],{"__ignoreMap":269},[4173,96012,96013],{"class":4657,"line":4658},[4173,96014,96015],{"class":4766},"\u002F\u002F LaplaceFile.java\n",[4173,96017,96018,96020],{"class":4657,"line":270},[4173,96019,79019],{"class":4788},[4173,96021,85730],{"class":4784},[4173,96023,96024,96026],{"class":4657,"line":1263},[4173,96025,79019],{"class":4788},[4173,96027,85744],{"class":4784},[4173,96029,96030,96032,96035],{"class":4657,"line":4770},[4173,96031,79019],{"class":4788},[4173,96033,96034],{"class":4784}," java.io.IOException; ",[4173,96036,96037],{"class":4766},"\u002F\u002F für lese\u002Fschreibfehler\n",[4173,96039,96040,96042,96044,96047],{"class":4657,"line":4775},[4173,96041,79889],{"class":4788},[4173,96043,80062],{"class":4788},[4173,96045,96046],{"class":4661}," LaplaceFile",[4173,96048,51614],{"class":4784},[4173,96050,96051,96053,96055],{"class":4657,"line":6320},[4173,96052,80152],{"class":4788},[4173,96054,95525],{"class":4788},[4173,96056,96057],{"class":4784}," BufferedWriter bw;\n",[4173,96059,96060,96062,96064,96066,96069,96071,96073],{"class":4657,"line":6325},[4173,96061,79889],{"class":4788},[4173,96063,96046],{"class":4661},[4173,96065,80001],{"class":4784},[4173,96067,96068],{"class":7074},"datei",[4173,96070,6306],{"class":4784},[4173,96072,86035],{"class":4788},[4173,96074,86252],{"class":4784},[4173,96076,96077,96080,96082,96084,96086,96088,96090,96092,96095,96097,96099],{"class":4657,"line":6343},[4173,96078,96079],{"class":4784},"bw ",[4173,96081,6387],{"class":4788},[4173,96083,79032],{"class":4788},[4173,96085,86266],{"class":4661},[4173,96087,6390],{"class":4784},[4173,96089,81243],{"class":4788},[4173,96091,86273],{"class":4661},[4173,96093,96094],{"class":4784},"(datei, ",[4173,96096,90836],{"class":4665},[4173,96098,48385],{"class":4784},[4173,96100,96101],{"class":4766},"\u002F\u002F false =\n",[4173,96103,96104,96107,96109,96111,96113],{"class":4657,"line":6348},[4173,96105,96106],{"class":4784},"überschreiben ",[4173,96108,47993],{"class":4788},[4173,96110,78991],{"class":4665},[4173,96112,15169],{"class":4788},[4173,96114,96115],{"class":4784}," anhängen\n",[4173,96117,96118],{"class":4657,"line":6457},[4173,96119,7090],{"class":4784},[4173,96121,96122,96124,96127,96129,96132,96134,96136,96138,96140],{"class":4657,"line":6462},[4173,96123,79889],{"class":4788},[4173,96125,96126],{"class":4788}," synchronized",[4173,96128,79934],{"class":4788},[4173,96130,96131],{"class":4661}," writeLine",[4173,96133,80001],{"class":4784},[4173,96135,4657],{"class":7074},[4173,96137,6306],{"class":4784},[4173,96139,86035],{"class":4788},[4173,96141,86252],{"class":4784},[4173,96143,96144,96146,96148],{"class":4657,"line":6468},[4173,96145,95111],{"class":4784},[4173,96147,86283],{"class":4661},[4173,96149,96150],{"class":4784},"(line);\n",[4173,96152,96153,96155,96157],{"class":4657,"line":6473},[4173,96154,95111],{"class":4784},[4173,96156,94864],{"class":4661},[4173,96158,65878],{"class":4784},[4173,96160,96161,96163,96166],{"class":4657,"line":6479},[4173,96162,95111],{"class":4784},[4173,96164,96165],{"class":4661},"flush",[4173,96167,65878],{"class":4784},[4173,96169,96170],{"class":4657,"line":6503},[4173,96171,7090],{"class":4784},[4173,96173,96174,96176,96178,96181,96183,96185],{"class":4657,"line":6516},[4173,96175,79889],{"class":4788},[4173,96177,79934],{"class":4788},[4173,96179,96180],{"class":4661}," close",[4173,96182,80558],{"class":4784},[4173,96184,86035],{"class":4788},[4173,96186,86252],{"class":4784},[4173,96188,96189,96191,96193],{"class":4657,"line":6971},[4173,96190,95111],{"class":4784},[4173,96192,94877],{"class":4661},[4173,96194,65878],{"class":4784},[4173,96196,96197],{"class":4657,"line":10649},[4173,96198,7090],{"class":4784},[4173,96200,96201],{"class":4657,"line":10654},[4173,96202,7090],{"class":4784},[16,96204,96206],{"id":96205},"laplacetestjava","LaplaceTest.java",[4647,96208,96210],{"className":78931,"code":96209,"language":78933,"meta":269,"style":269},"\u002F\u002F LaplaceTest.java\nimport java.util.Scanner;\nimport java.util.concurrent.Semaphore;\npublic class LaplaceTest {\npublic static void main(String[] args) throws Exception {\nScanner sc = new Scanner(System.in);\nSystem.out.print(\"Anzahl Teilnehmer: \");\nint teilnehmer = sc.nextInt();\nsc.close();\nSemaphore sem = new Semaphore(5); \u002F\u002F 5 Schreibende gleichzeitig\nLaplaceFile lf = new LaplaceFile(\"laplace.txt\");\nTeilnehmer[] arr = new Teilnehmer[teilnehmer];\nfor (int i = 0; i \u003C teilnehmer; i++) {\narr[i] = new Teilnehmer(lf, sem, \"Teilnehmer\" + (i + 1));\narr[i].start(); \u002F\u002F !!!Threads starten run()!!!\n}\nfor (int i = 0; i \u003C teilnehmer; i++) {\narr[i].join(); \u002F\u002F !!!Warten bis alle Threads beendet sind.!!!\n}\nlf.close();\u002F\u002F Datei schließen\nSystem.out.println(\"Alle Würfe geschrieben in `laplace.txt`.\");\n}\n}\n",[4653,96211,96212,96217,96223,96229,96240,96265,96277,96290,96305,96314,96335,96353,96369,96394,96421,96433,96437,96461,96473,96477,96490,96503,96507],{"__ignoreMap":269},[4173,96213,96214],{"class":4657,"line":4658},[4173,96215,96216],{"class":4766},"\u002F\u002F LaplaceTest.java\n",[4173,96218,96219,96221],{"class":4657,"line":270},[4173,96220,79019],{"class":4788},[4173,96222,79022],{"class":4784},[4173,96224,96225,96227],{"class":4657,"line":1263},[4173,96226,79019],{"class":4788},[4173,96228,95489],{"class":4784},[4173,96230,96231,96233,96235,96238],{"class":4657,"line":4770},[4173,96232,79889],{"class":4788},[4173,96234,80062],{"class":4788},[4173,96236,96237],{"class":4661}," LaplaceTest",[4173,96239,51614],{"class":4784},[4173,96241,96242,96244,96246,96248,96250,96252,96254,96256,96258,96260,96262],{"class":4657,"line":4775},[4173,96243,79889],{"class":4788},[4173,96245,79892],{"class":4788},[4173,96247,79934],{"class":4788},[4173,96249,79937],{"class":4661},[4173,96251,6390],{"class":4784},[4173,96253,79693],{"class":4788},[4173,96255,80084],{"class":4784},[4173,96257,31283],{"class":7074},[4173,96259,6306],{"class":4784},[4173,96261,86035],{"class":4788},[4173,96263,96264],{"class":4784}," Exception {\n",[4173,96266,96267,96269,96271,96273,96275],{"class":4657,"line":6320},[4173,96268,79027],{"class":4784},[4173,96270,6387],{"class":4788},[4173,96272,79032],{"class":4788},[4173,96274,79035],{"class":4661},[4173,96276,79038],{"class":4784},[4173,96278,96279,96281,96283,96285,96288],{"class":4657,"line":6325},[4173,96280,79043],{"class":4784},[4173,96282,79046],{"class":4661},[4173,96284,6390],{"class":4784},[4173,96286,96287],{"class":4669},"\"Anzahl Teilnehmer: \"",[4173,96289,55545],{"class":4784},[4173,96291,96292,96294,96297,96299,96301,96303],{"class":4657,"line":6343},[4173,96293,64831],{"class":4788},[4173,96295,96296],{"class":4784}," teilnehmer ",[4173,96298,6387],{"class":4788},[4173,96300,79062],{"class":4784},[4173,96302,95673],{"class":4661},[4173,96304,65878],{"class":4784},[4173,96306,96307,96310,96312],{"class":4657,"line":6348},[4173,96308,96309],{"class":4784},"sc.",[4173,96311,94877],{"class":4661},[4173,96313,65878],{"class":4784},[4173,96315,96316,96319,96321,96323,96326,96328,96330,96332],{"class":4657,"line":6457},[4173,96317,96318],{"class":4784},"Semaphore sem ",[4173,96320,6387],{"class":4788},[4173,96322,79032],{"class":4788},[4173,96324,96325],{"class":4661}," Semaphore",[4173,96327,6390],{"class":4784},[4173,96329,14292],{"class":4665},[4173,96331,79107],{"class":4784},[4173,96333,96334],{"class":4766},"\u002F\u002F 5 Schreibende gleichzeitig\n",[4173,96336,96337,96340,96342,96344,96346,96348,96351],{"class":4657,"line":6462},[4173,96338,96339],{"class":4784},"LaplaceFile lf ",[4173,96341,6387],{"class":4788},[4173,96343,79032],{"class":4788},[4173,96345,96046],{"class":4661},[4173,96347,6390],{"class":4784},[4173,96349,96350],{"class":4669},"\"laplace.txt\"",[4173,96352,55545],{"class":4784},[4173,96354,96355,96357,96360,96362,96364,96366],{"class":4657,"line":6468},[4173,96356,76896],{"class":4788},[4173,96358,96359],{"class":4784},"[] arr ",[4173,96361,6387],{"class":4788},[4173,96363,79032],{"class":4788},[4173,96365,95511],{"class":4788},[4173,96367,96368],{"class":4784},"[teilnehmer];\n",[4173,96370,96371,96373,96375,96377,96379,96381,96383,96385,96387,96390,96392],{"class":4657,"line":6473},[4173,96372,6425],{"class":4788},[4173,96374,4171],{"class":4784},[4173,96376,64831],{"class":4788},[4173,96378,6555],{"class":4784},[4173,96380,6387],{"class":4788},[4173,96382,25370],{"class":4665},[4173,96384,79645],{"class":4784},[4173,96386,24345],{"class":4788},[4173,96388,96389],{"class":4784}," teilnehmer; i",[4173,96391,10670],{"class":4788},[4173,96393,56319],{"class":4784},[4173,96395,96396,96399,96401,96403,96405,96408,96411,96413,96415,96417,96419],{"class":4657,"line":6479},[4173,96397,96398],{"class":4784},"arr[i] ",[4173,96400,6387],{"class":4788},[4173,96402,79032],{"class":4788},[4173,96404,95511],{"class":4661},[4173,96406,96407],{"class":4784},"(lf, sem, ",[4173,96409,96410],{"class":4669},"\"Teilnehmer\"",[4173,96412,11719],{"class":4788},[4173,96414,79783],{"class":4784},[4173,96416,14419],{"class":4788},[4173,96418,10264],{"class":4665},[4173,96420,66047],{"class":4784},[4173,96422,96423,96426,96428,96430],{"class":4657,"line":6503},[4173,96424,96425],{"class":4784},"arr[i].",[4173,96427,30636],{"class":4661},[4173,96429,94867],{"class":4784},[4173,96431,96432],{"class":4766},"\u002F\u002F !!!Threads starten run()!!!\n",[4173,96434,96435],{"class":4657,"line":6516},[4173,96436,7090],{"class":4784},[4173,96438,96439,96441,96443,96445,96447,96449,96451,96453,96455,96457,96459],{"class":4657,"line":6971},[4173,96440,6425],{"class":4788},[4173,96442,4171],{"class":4784},[4173,96444,64831],{"class":4788},[4173,96446,6555],{"class":4784},[4173,96448,6387],{"class":4788},[4173,96450,25370],{"class":4665},[4173,96452,79645],{"class":4784},[4173,96454,24345],{"class":4788},[4173,96456,96389],{"class":4784},[4173,96458,10670],{"class":4788},[4173,96460,56319],{"class":4784},[4173,96462,96463,96465,96468,96470],{"class":4657,"line":10649},[4173,96464,96425],{"class":4784},[4173,96466,96467],{"class":4661},"join",[4173,96469,94867],{"class":4784},[4173,96471,96472],{"class":4766},"\u002F\u002F !!!Warten bis alle Threads beendet sind.!!!\n",[4173,96474,96475],{"class":4657,"line":10654},[4173,96476,7090],{"class":4784},[4173,96478,96479,96482,96484,96487],{"class":4657,"line":10659},[4173,96480,96481],{"class":4784},"lf.",[4173,96483,94877],{"class":4661},[4173,96485,96486],{"class":4784},"();",[4173,96488,96489],{"class":4766},"\u002F\u002F Datei schließen\n",[4173,96491,96492,96494,96496,96498,96501],{"class":4657,"line":10664},[4173,96493,79043],{"class":4784},[4173,96495,79074],{"class":4661},[4173,96497,6390],{"class":4784},[4173,96499,96500],{"class":4669},"\"Alle Würfe geschrieben in `laplace.txt`.\"",[4173,96502,55545],{"class":4784},[4173,96504,96505],{"class":4657,"line":10676},[4173,96506,7090],{"class":4784},[4173,96508,96509],{"class":4657,"line":10681},[4173,96510,7090],{"class":4784},[16,96512,96514],{"id":96513},"laplaceanalyzerjavaregex","LaplaceAnalyzer.java(REGEX)",[4647,96516,96518],{"className":78931,"code":96517,"language":78933,"meta":269,"style":269},"\u002F\u002F LaplaceAnalyzer.java\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.FileNotFoundException;\nimport java.io.IOException;\nimport java.util.regex.Pattern;\nimport java.util.regex.Matcher;\npublic class LaplaceAnalyzer {\npublic static void main(String[] args) {\n\u002F\u002F nicht notwendig Argument auslesen wenn was da „laplace.txt“ nutzen\nString path = args.length > 0 ? args[0] : \"laplace.txt\";\n\u002F\u002F Sehr einfacher Regex: sucht exakt nach der Sequenz 6,6,6\nPattern pattern = Pattern.compile(\"6,6,6\");\u002F\u002F \u003C- Hier REGEX\nint count = 0;\ntry (BufferedReader br = new BufferedReader(new FileReader(path))) {\nString line;\nwhile ((line = br.readLine()) != null) {\nMatcher m = pattern.matcher(line);\nif (m.find()) {\ncount++;\n}\n}\nSystem.out.println(\"Datei: \" + path);\nSystem.out.println(\"Verwendeter regulärer Ausdruck: \" +\npattern.pattern());\nSystem.out.println(\"Anzahl Zeilen mit dreimal 6: \" + count);\n} catch (FileNotFoundException e) {\nSystem.err.println(\"Datei nicht gefunden: \" + path);\nSystem.err.println(\"Stelle sicher, dass die Datei im\nProjektverzeichnis liegt oder gib einen Pfad als Argument an.\");\n} catch (IOException e) {\nSystem.err.println(\"Fehler beim Lesen der Datei: \" +\ne.getMessage());\n}\n}\n}\n",[4653,96519,96520,96525,96531,96537,96544,96550,96557,96564,96575,96595,96600,96631,96636,96659,96672,96694,96699,96720,96735,96746,96754,96758,96762,96778,96791,96801,96817,96830,96845,96856,96863,96875,96888,96896,96900,96904],{"__ignoreMap":269},[4173,96521,96522],{"class":4657,"line":4658},[4173,96523,96524],{"class":4766},"\u002F\u002F LaplaceAnalyzer.java\n",[4173,96526,96527,96529],{"class":4657,"line":270},[4173,96528,79019],{"class":4788},[4173,96530,85723],{"class":4784},[4173,96532,96533,96535],{"class":4657,"line":1263},[4173,96534,79019],{"class":4788},[4173,96536,85737],{"class":4784},[4173,96538,96539,96541],{"class":4657,"line":4770},[4173,96540,79019],{"class":4788},[4173,96542,96543],{"class":4784}," java.io.FileNotFoundException;\n",[4173,96545,96546,96548],{"class":4657,"line":4775},[4173,96547,79019],{"class":4788},[4173,96549,85751],{"class":4784},[4173,96551,96552,96554],{"class":4657,"line":6320},[4173,96553,79019],{"class":4788},[4173,96555,96556],{"class":4784}," java.util.regex.Pattern;\n",[4173,96558,96559,96561],{"class":4657,"line":6325},[4173,96560,79019],{"class":4788},[4173,96562,96563],{"class":4784}," java.util.regex.Matcher;\n",[4173,96565,96566,96568,96570,96573],{"class":4657,"line":6343},[4173,96567,79889],{"class":4788},[4173,96569,80062],{"class":4788},[4173,96571,96572],{"class":4661}," LaplaceAnalyzer",[4173,96574,51614],{"class":4784},[4173,96576,96577,96579,96581,96583,96585,96587,96589,96591,96593],{"class":4657,"line":6348},[4173,96578,79889],{"class":4788},[4173,96580,79892],{"class":4788},[4173,96582,79934],{"class":4788},[4173,96584,79937],{"class":4661},[4173,96586,6390],{"class":4784},[4173,96588,79693],{"class":4788},[4173,96590,80084],{"class":4784},[4173,96592,31283],{"class":7074},[4173,96594,56319],{"class":4784},[4173,96596,96597],{"class":4657,"line":6457},[4173,96598,96599],{"class":4766},"\u002F\u002F nicht notwendig Argument auslesen wenn was da „laplace.txt“ nutzen\n",[4173,96601,96602,96605,96607,96610,96612,96614,96617,96620,96622,96624,96626,96629],{"class":4657,"line":6462},[4173,96603,96604],{"class":4784},"String path ",[4173,96606,6387],{"class":4788},[4173,96608,96609],{"class":4784}," args.length ",[4173,96611,4789],{"class":4788},[4173,96613,25370],{"class":4665},[4173,96615,96616],{"class":4788}," ?",[4173,96618,96619],{"class":4784}," args[",[4173,96621,12749],{"class":4665},[4173,96623,85496],{"class":4784},[4173,96625,8158],{"class":4788},[4173,96627,96628],{"class":4669}," \"laplace.txt\"",[4173,96630,55559],{"class":4784},[4173,96632,96633],{"class":4657,"line":6468},[4173,96634,96635],{"class":4766},"\u002F\u002F Sehr einfacher Regex: sucht exakt nach der Sequenz 6,6,6\n",[4173,96637,96638,96641,96643,96646,96649,96651,96654,96656],{"class":4657,"line":6473},[4173,96639,96640],{"class":4784},"Pattern pattern ",[4173,96642,6387],{"class":4788},[4173,96644,96645],{"class":4784}," Pattern.",[4173,96647,96648],{"class":4661},"compile",[4173,96650,6390],{"class":4784},[4173,96652,96653],{"class":4669},"\"6,6,6\"",[4173,96655,66659],{"class":4784},[4173,96657,96658],{"class":4766},"\u002F\u002F \u003C- Hier REGEX\n",[4173,96660,96661,96663,96666,96668,96670],{"class":4657,"line":6479},[4173,96662,64831],{"class":4788},[4173,96664,96665],{"class":4784}," count ",[4173,96667,6387],{"class":4788},[4173,96669,25370],{"class":4665},[4173,96671,55559],{"class":4784},[4173,96673,96674,96676,96679,96681,96683,96685,96687,96689,96691],{"class":4657,"line":6503},[4173,96675,85839],{"class":4788},[4173,96677,96678],{"class":4784}," (BufferedReader br ",[4173,96680,6387],{"class":4788},[4173,96682,79032],{"class":4788},[4173,96684,86071],{"class":4661},[4173,96686,6390],{"class":4784},[4173,96688,81243],{"class":4788},[4173,96690,86078],{"class":4661},[4173,96692,96693],{"class":4784},"(path))) {\n",[4173,96695,96696],{"class":4657,"line":6516},[4173,96697,96698],{"class":4784},"String line;\n",[4173,96700,96701,96703,96706,96708,96710,96712,96714,96716,96718],{"class":4657,"line":6971},[4173,96702,6694],{"class":4788},[4173,96704,96705],{"class":4784}," ((line ",[4173,96707,6387],{"class":4788},[4173,96709,95092],{"class":4784},[4173,96711,86101],{"class":4661},[4173,96713,86104],{"class":4784},[4173,96715,19461],{"class":4788},[4173,96717,85147],{"class":4665},[4173,96719,56319],{"class":4784},[4173,96721,96722,96725,96727,96730,96733],{"class":4657,"line":10649},[4173,96723,96724],{"class":4784},"Matcher m ",[4173,96726,6387],{"class":4788},[4173,96728,96729],{"class":4784}," pattern.",[4173,96731,96732],{"class":4661},"matcher",[4173,96734,96150],{"class":4784},[4173,96736,96737,96739,96742,96744],{"class":4657,"line":10654},[4173,96738,6201],{"class":4788},[4173,96740,96741],{"class":4784}," (m.",[4173,96743,9459],{"class":4661},[4173,96745,85158],{"class":4784},[4173,96747,96748,96750,96752],{"class":4657,"line":10659},[4173,96749,59210],{"class":4784},[4173,96751,10670],{"class":4788},[4173,96753,55559],{"class":4784},[4173,96755,96756],{"class":4657,"line":10664},[4173,96757,7090],{"class":4784},[4173,96759,96760],{"class":4657,"line":10676},[4173,96761,7090],{"class":4784},[4173,96763,96764,96766,96768,96770,96773,96775],{"class":4657,"line":10681},[4173,96765,79043],{"class":4784},[4173,96767,79074],{"class":4661},[4173,96769,6390],{"class":4784},[4173,96771,96772],{"class":4669},"\"Datei: \"",[4173,96774,11719],{"class":4788},[4173,96776,96777],{"class":4784}," path);\n",[4173,96779,96780,96782,96784,96786,96789],{"class":4657,"line":10702},[4173,96781,79043],{"class":4784},[4173,96783,79074],{"class":4661},[4173,96785,6390],{"class":4784},[4173,96787,96788],{"class":4669},"\"Verwendeter regulärer Ausdruck: \"",[4173,96790,18989],{"class":4788},[4173,96792,96793,96796,96799],{"class":4657,"line":10707},[4173,96794,96795],{"class":4784},"pattern.",[4173,96797,96798],{"class":4661},"pattern",[4173,96800,81860],{"class":4784},[4173,96802,96803,96805,96807,96809,96812,96814],{"class":4657,"line":10712},[4173,96804,79043],{"class":4784},[4173,96806,79074],{"class":4661},[4173,96808,6390],{"class":4784},[4173,96810,96811],{"class":4669},"\"Anzahl Zeilen mit dreimal 6: \"",[4173,96813,11719],{"class":4788},[4173,96815,96816],{"class":4784}," count);\n",[4173,96818,96819,96821,96823,96826,96828],{"class":4657,"line":10717},[4173,96820,71897],{"class":4784},[4173,96822,85917],{"class":4788},[4173,96824,96825],{"class":4784}," (FileNotFoundException ",[4173,96827,20602],{"class":7074},[4173,96829,56319],{"class":4784},[4173,96831,96832,96834,96836,96838,96841,96843],{"class":4657,"line":10727},[4173,96833,85934],{"class":4784},[4173,96835,79074],{"class":4661},[4173,96837,6390],{"class":4784},[4173,96839,96840],{"class":4669},"\"Datei nicht gefunden: \"",[4173,96842,11719],{"class":4788},[4173,96844,96777],{"class":4784},[4173,96846,96847,96849,96851,96853],{"class":4657,"line":10732},[4173,96848,85934],{"class":4784},[4173,96850,79074],{"class":4661},[4173,96852,6390],{"class":4784},[4173,96854,96855],{"class":4669},"\"Stelle sicher, dass die Datei im\n",[4173,96857,96858,96861],{"class":4657,"line":10737},[4173,96859,96860],{"class":4669},"Projektverzeichnis liegt oder gib einen Pfad als Argument an.\"",[4173,96862,55545],{"class":4784},[4173,96864,96865,96867,96869,96871,96873],{"class":4657,"line":10742},[4173,96866,71897],{"class":4784},[4173,96868,85917],{"class":4788},[4173,96870,85960],{"class":4784},[4173,96872,20602],{"class":7074},[4173,96874,56319],{"class":4784},[4173,96876,96877,96879,96881,96883,96886],{"class":4657,"line":10752},[4173,96878,85934],{"class":4784},[4173,96880,79074],{"class":4661},[4173,96882,6390],{"class":4784},[4173,96884,96885],{"class":4669},"\"Fehler beim Lesen der Datei: \"",[4173,96887,18989],{"class":4788},[4173,96889,96890,96892,96894],{"class":4657,"line":10757},[4173,96891,95895],{"class":4784},[4173,96893,85949],{"class":4661},[4173,96895,81860],{"class":4784},[4173,96897,96898],{"class":4657,"line":10762},[4173,96899,7090],{"class":4784},[4173,96901,96902],{"class":4657,"line":10767},[4173,96903,7090],{"class":4784},[4173,96905,96906],{"class":4657,"line":10772},[4173,96907,7090],{"class":4784},[16,96909,96911],{"id":96910},"try-vergleich-altneu","Try-Vergleich Alt\u002FNeu",[4647,96913,96915],{"className":78931,"code":96914,"language":78933,"meta":269,"style":269},"import java.io.File;\nimport java.io.FileNotFoundException;\nimport java.io.PrintWriter;\nimport java.util.Scanner;\npublic class TryVergleich {\npublic static void main(String[] args) {\nString dateiName = \"test.txt\";\nerstelleTestDatei(dateiName);\n\u002F\u002F --- VARIANTE 1: Der klassische try-Block ---\nSystem.out.println(\"--- Variante 1: Klassisch ---\");\nScanner klassischerScanner = null;\ntry {\n\u002F\u002F Die Ressource wird im Block geöffnet\nklassischerScanner = new Scanner(new File(dateiName));\nSystem.out.println(\"Inhalt: \" + klassischerScanner.nextLine());\n\u002F\u002F PROBLEM: Wenn hier ein Fehler passiert, wird .close() nie\nerreicht!\n\u002F\u002F klassischerScanner.close();\n} catch (FileNotFoundException e) {\nSystem.err.println(\"Fehler: Datei nicht gefunden.\");\n} finally {\n\u002F\u002F Wir MÜSSEN manuell prüfen und schließen\nif (klassischerScanner != null) {\nklassischerScanner.close();\nSystem.out.println(\"Scanner manuell geschlossen.\");\n}\n}\nSystem.out.println(\"\\n--- Variante 2: Try-with-Resources ---\");\n\u002F\u002F --- VARIANTE 2: Das moderne try (Ressource) { ... } ---\n\u002F\u002F Die Ressource wird in den RUNDEN Klammern definiert.\ntry (Scanner modernerScanner = new Scanner(new File(dateiName))) {\nSystem.out.println(\"Inhalt: \" + modernerScanner.nextLine());\n\u002F\u002F KEIN .close() nötig! Java schließt den Scanner automatisch,\n\u002F\u002F sobald die geschweifte Klammer unten erreicht wird.\n} catch (FileNotFoundException e) {\nSystem.err.println(\"Fehler: Datei nicht gefunden.\");\n}\n\u002F\u002F Kein 'finally' Block für das Schließen mehr nötig.\nSystem.out.println(\"Scanner wurde automatisch von Java geschlossen.\");\n}\n\u002F\u002F Hilfsmethode zum Erstellen der Datei\nprivate static void erstelleTestDatei(String name) {\ntry (PrintWriter writer = new PrintWriter(name)) {\nwriter.println(\"Hallo Java-Welt!\");\n} catch (FileNotFoundException e) {\ne.printStackTrace();\n}\n}\n}\nimport java.util.Arrays;\nimport java.util.List;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\nimport java.util.stream.Collectors;\npublic class RegexBeispiele {\npublic static void main(String[] args) {\nSystem.out.println(\"--- 1. EINFACHE VALIDIERUNG (String Methoden) ---\");\nstringMatchesDemo();\nSystem.out.println(\"\\n--- 2. KOMPLEXE SUCHE & EXTRAKTION (Pattern & Matcher) -\n--\");\npatternMatcherFindDemo();\nSystem.out.println(\"\\n--- 3. ERSETZEN VON TEXT (Replace) ---\");\nreplaceDemo();\nSystem.out.println(\"\\n--- 4. TEXT AUFTEILEN (Split) ---\");\nsplitDemo();\nSystem.out.println(\"\\n--- 5. REGEX MIT JAVA STREAMS (Java 8+) ---\");\nstreamPredicateDemo();\n}\n\u002F\u002F 1. Validierung direkt auf dem String\nprivate static void stringMatchesDemo() {\nString email = \"test.user@example.com\";\n\u002F\u002F Einfacher Regex für E-Mails (nicht für den produktiven Einsatz optimiert)\nString regex = \"^[A-Za-z0-9+_.-]+@(.+)$\";\n\u002F\u002F String.matches() prüft, ob der GANZE String dem Muster entspricht\nboolean isValid = email.matches(regex);\nSystem.out.println(\"Ist die E-Mail gültig? \" + isValid);\n}\n\u002F\u002F 2. Suchen und Extrahieren (Gruppen)\nprivate static void patternMatcherFindDemo() {\nString text = \"Die Bestellung #12345 kostet 99.50 Euro. Bestellung #67890\nkostet 12.00 Euro.\";\n\u002F\u002F Pattern.compile() ist effizienter, wenn das Muster mehrfach genutzt wird.\n\u002F\u002F Wir nutzen Capture Groups '()' um Nummer und Preis zu extrahieren.\nPattern pattern = Pattern.compile(\"#(\\\\d+).*?(\\\\d+\\\\.\\\\d{2})\");\nMatcher matcher = pattern.matcher(text);\n\u002F\u002F Matcher.find() sucht das nächste Vorkommen im Text\nwhile (matcher.find()) {\nSystem.out.println(\"Gefunden: \" + matcher.group(0)); \u002F\u002F Gesamter Match\nSystem.out.println(\" -> Bestellnummer (Gruppe 1): \" + matcher.group(1));\nSystem.out.println(\" -> Preis (Gruppe 2): \" + matcher.group(2));\n}\n}\n\u002F\u002F 3. Text ersetzen\nprivate static void replaceDemo() {\nString unsaubererText = \"Hier   sind    viel  zu  viele    Leerzeichen.\";\n\u002F\u002F String.replaceAll() nutzt intern Regex\nString saubererText = unsaubererText.replaceAll(\"\\\\s+\", \" \");\nSystem.out.println(\"Bereinigt: \" + saubererText);\n\u002F\u002F Ersetzen mit Matcher (komplexere Logik)\nString datum = \"Heute ist der 2026-02-23.\";\nPattern datePattern = Pattern.compile(\"(\\\\d{4})-(\\\\d{2})-(\\\\d{2})\");\nMatcher dateMatcher = datePattern.matcher(datum);\n\u002F\u002F Formatiert YYYY-MM-DD zu DD.MM.YYYY ($3 = Gruppe 3, etc.)\nString deutschesDatum = dateMatcher.replaceAll(\"$3.$2.$1\");\nSystem.out.println(\"Datum umformatiert: \" + deutschesDatum);\n}\n\u002F\u002F 4. Strings in Arrays aufteilen\nprivate static void splitDemo() {\nString csvZeile = \"Apfel, Banane; Orange|Pfirsich\";\n\u002F\u002F Wir splitten bei Komma, Semikolon oder Pipe, gefolgt von optionalen\nLeerzeichen\nString[] fruechte = csvZeile.split(\"[,;|]\\\\s*\");\nSystem.out.println(\"Gefundene Früchte:\");\nfor (String frucht : fruechte) {\nSystem.out.println(\"- \" + frucht);\n}\n}\n\u002F\u002F 5. Moderne Filterung mit Streams und Pattern.asPredicate()\nprivate static void streamPredicateDemo() {\nList\u003CString> worte = Arrays.asList(\"Apfel\", \"123\", \"Banane\", \"456\",\n\"Kirsche\");\n\u002F\u002F Nur Strings behalten, die ausschließlich aus Zahlen bestehen\nPattern numberPattern = Pattern.compile(\"^\\\\d+$\");\nList\u003CString> nurZahlen = worte.stream()\n.filter(numberPattern.asPredicate()) \u002F\u002F Wandelt Regex in ein Predicate\num\n.collect(Collectors.toList());\nSystem.out.println(\"Nur Zahlen gefiltert: \" + nurZahlen);\n}\n}\n",[4653,96916,96917,96924,96930,96937,96943,96954,96974,96986,96994,96999,97012,97023,97029,97034,97055,97075,97080,97088,97093,97105,97118,97126,97131,97144,97153,97166,97170,97174,97191,97196,97201,97223,97242,97247,97252,97264,97276,97280,97285,97298,97302,97307,97324,97341,97354,97366,97374,97378,97382,97386,97393,97400,97406,97412,97419,97430,97450,97463,97470,97485,97492,97499,97516,97523,97540,97547,97564,97571,97575,97580,97593,97605,97610,97622,97627,97644,97660,97664,97669,97682,97691,97698,97703,97708,97744,97757,97762,97773,97800,97823,97846,97850,97854,97859,97872,97884,97889,97916,97932,97937,97949,97981,97996,98001,98020,98036,98040,98045,98058,98070,98075,98080,98106,98119,98131,98147,98151,98155,98160,98173,98210,98217,98222,98245,98265,98283,98288,98303,98319,98323],{"__ignoreMap":269},[4173,96918,96919,96921],{"class":4657,"line":4658},[4173,96920,79019],{"class":4788},[4173,96922,96923],{"class":4784}," java.io.File;\n",[4173,96925,96926,96928],{"class":4657,"line":270},[4173,96927,79019],{"class":4788},[4173,96929,96543],{"class":4784},[4173,96931,96932,96934],{"class":4657,"line":1263},[4173,96933,79019],{"class":4788},[4173,96935,96936],{"class":4784}," java.io.PrintWriter;\n",[4173,96938,96939,96941],{"class":4657,"line":4770},[4173,96940,79019],{"class":4788},[4173,96942,79022],{"class":4784},[4173,96944,96945,96947,96949,96952],{"class":4657,"line":4775},[4173,96946,79889],{"class":4788},[4173,96948,80062],{"class":4788},[4173,96950,96951],{"class":4661}," TryVergleich",[4173,96953,51614],{"class":4784},[4173,96955,96956,96958,96960,96962,96964,96966,96968,96970,96972],{"class":4657,"line":6320},[4173,96957,79889],{"class":4788},[4173,96959,79892],{"class":4788},[4173,96961,79934],{"class":4788},[4173,96963,79937],{"class":4661},[4173,96965,6390],{"class":4784},[4173,96967,79693],{"class":4788},[4173,96969,80084],{"class":4784},[4173,96971,31283],{"class":7074},[4173,96973,56319],{"class":4784},[4173,96975,96976,96979,96981,96984],{"class":4657,"line":6325},[4173,96977,96978],{"class":4784},"String dateiName ",[4173,96980,6387],{"class":4788},[4173,96982,96983],{"class":4669}," \"test.txt\"",[4173,96985,55559],{"class":4784},[4173,96987,96988,96991],{"class":4657,"line":6343},[4173,96989,96990],{"class":4661},"erstelleTestDatei",[4173,96992,96993],{"class":4784},"(dateiName);\n",[4173,96995,96996],{"class":4657,"line":6348},[4173,96997,96998],{"class":4766},"\u002F\u002F --- VARIANTE 1: Der klassische try-Block ---\n",[4173,97000,97001,97003,97005,97007,97010],{"class":4657,"line":6457},[4173,97002,79043],{"class":4784},[4173,97004,79074],{"class":4661},[4173,97006,6390],{"class":4784},[4173,97008,97009],{"class":4669},"\"--- Variante 1: Klassisch ---\"",[4173,97011,55545],{"class":4784},[4173,97013,97014,97017,97019,97021],{"class":4657,"line":6462},[4173,97015,97016],{"class":4784},"Scanner klassischerScanner ",[4173,97018,6387],{"class":4788},[4173,97020,85147],{"class":4665},[4173,97022,55559],{"class":4784},[4173,97024,97025,97027],{"class":4657,"line":6468},[4173,97026,85839],{"class":4788},[4173,97028,51614],{"class":4784},[4173,97030,97031],{"class":4657,"line":6473},[4173,97032,97033],{"class":4766},"\u002F\u002F Die Ressource wird im Block geöffnet\n",[4173,97035,97036,97039,97041,97043,97045,97047,97049,97052],{"class":4657,"line":6479},[4173,97037,97038],{"class":4784},"klassischerScanner ",[4173,97040,6387],{"class":4788},[4173,97042,79032],{"class":4788},[4173,97044,79035],{"class":4661},[4173,97046,6390],{"class":4784},[4173,97048,81243],{"class":4788},[4173,97050,97051],{"class":4661}," File",[4173,97053,97054],{"class":4784},"(dateiName));\n",[4173,97056,97057,97059,97061,97063,97066,97068,97071,97073],{"class":4657,"line":6503},[4173,97058,79043],{"class":4784},[4173,97060,79074],{"class":4661},[4173,97062,6390],{"class":4784},[4173,97064,97065],{"class":4669},"\"Inhalt: \"",[4173,97067,11719],{"class":4788},[4173,97069,97070],{"class":4784}," klassischerScanner.",[4173,97072,79065],{"class":4661},[4173,97074,81860],{"class":4784},[4173,97076,97077],{"class":4657,"line":6516},[4173,97078,97079],{"class":4766},"\u002F\u002F PROBLEM: Wenn hier ein Fehler passiert, wird .close() nie\n",[4173,97081,97082,97085],{"class":4657,"line":6971},[4173,97083,97084],{"class":4784},"erreicht",[4173,97086,97087],{"class":4788},"!\n",[4173,97089,97090],{"class":4657,"line":10649},[4173,97091,97092],{"class":4766},"\u002F\u002F klassischerScanner.close();\n",[4173,97094,97095,97097,97099,97101,97103],{"class":4657,"line":10654},[4173,97096,71897],{"class":4784},[4173,97098,85917],{"class":4788},[4173,97100,96825],{"class":4784},[4173,97102,20602],{"class":7074},[4173,97104,56319],{"class":4784},[4173,97106,97107,97109,97111,97113,97116],{"class":4657,"line":10659},[4173,97108,85934],{"class":4784},[4173,97110,79074],{"class":4661},[4173,97112,6390],{"class":4784},[4173,97114,97115],{"class":4669},"\"Fehler: Datei nicht gefunden.\"",[4173,97117,55545],{"class":4784},[4173,97119,97120,97122,97124],{"class":4657,"line":10664},[4173,97121,71897],{"class":4784},[4173,97123,86570],{"class":4788},[4173,97125,51614],{"class":4784},[4173,97127,97128],{"class":4657,"line":10676},[4173,97129,97130],{"class":4766},"\u002F\u002F Wir MÜSSEN manuell prüfen und schließen\n",[4173,97132,97133,97135,97138,97140,97142],{"class":4657,"line":10681},[4173,97134,6201],{"class":4788},[4173,97136,97137],{"class":4784}," (klassischerScanner ",[4173,97139,19461],{"class":4788},[4173,97141,85147],{"class":4665},[4173,97143,56319],{"class":4784},[4173,97145,97146,97149,97151],{"class":4657,"line":10702},[4173,97147,97148],{"class":4784},"klassischerScanner.",[4173,97150,94877],{"class":4661},[4173,97152,65878],{"class":4784},[4173,97154,97155,97157,97159,97161,97164],{"class":4657,"line":10707},[4173,97156,79043],{"class":4784},[4173,97158,79074],{"class":4661},[4173,97160,6390],{"class":4784},[4173,97162,97163],{"class":4669},"\"Scanner manuell geschlossen.\"",[4173,97165,55545],{"class":4784},[4173,97167,97168],{"class":4657,"line":10712},[4173,97169,7090],{"class":4784},[4173,97171,97172],{"class":4657,"line":10717},[4173,97173,7090],{"class":4784},[4173,97175,97176,97178,97180,97182,97184,97186,97189],{"class":4657,"line":10727},[4173,97177,79043],{"class":4784},[4173,97179,79074],{"class":4661},[4173,97181,6390],{"class":4784},[4173,97183,6207],{"class":4669},[4173,97185,83928],{"class":4665},[4173,97187,97188],{"class":4669},"--- Variante 2: Try-with-Resources ---\"",[4173,97190,55545],{"class":4784},[4173,97192,97193],{"class":4657,"line":10732},[4173,97194,97195],{"class":4766},"\u002F\u002F --- VARIANTE 2: Das moderne try (Ressource) { ... } ---\n",[4173,97197,97198],{"class":4657,"line":10737},[4173,97199,97200],{"class":4766},"\u002F\u002F Die Ressource wird in den RUNDEN Klammern definiert.\n",[4173,97202,97203,97205,97208,97210,97212,97214,97216,97218,97220],{"class":4657,"line":10742},[4173,97204,85839],{"class":4788},[4173,97206,97207],{"class":4784}," (Scanner modernerScanner ",[4173,97209,6387],{"class":4788},[4173,97211,79032],{"class":4788},[4173,97213,79035],{"class":4661},[4173,97215,6390],{"class":4784},[4173,97217,81243],{"class":4788},[4173,97219,97051],{"class":4661},[4173,97221,97222],{"class":4784},"(dateiName))) {\n",[4173,97224,97225,97227,97229,97231,97233,97235,97238,97240],{"class":4657,"line":10752},[4173,97226,79043],{"class":4784},[4173,97228,79074],{"class":4661},[4173,97230,6390],{"class":4784},[4173,97232,97065],{"class":4669},[4173,97234,11719],{"class":4788},[4173,97236,97237],{"class":4784}," modernerScanner.",[4173,97239,79065],{"class":4661},[4173,97241,81860],{"class":4784},[4173,97243,97244],{"class":4657,"line":10757},[4173,97245,97246],{"class":4766},"\u002F\u002F KEIN .close() nötig! Java schließt den Scanner automatisch,\n",[4173,97248,97249],{"class":4657,"line":10762},[4173,97250,97251],{"class":4766},"\u002F\u002F sobald die geschweifte Klammer unten erreicht wird.\n",[4173,97253,97254,97256,97258,97260,97262],{"class":4657,"line":10767},[4173,97255,71897],{"class":4784},[4173,97257,85917],{"class":4788},[4173,97259,96825],{"class":4784},[4173,97261,20602],{"class":7074},[4173,97263,56319],{"class":4784},[4173,97265,97266,97268,97270,97272,97274],{"class":4657,"line":10772},[4173,97267,85934],{"class":4784},[4173,97269,79074],{"class":4661},[4173,97271,6390],{"class":4784},[4173,97273,97115],{"class":4669},[4173,97275,55545],{"class":4784},[4173,97277,97278],{"class":4657,"line":10777},[4173,97279,7090],{"class":4784},[4173,97281,97282],{"class":4657,"line":10782},[4173,97283,97284],{"class":4766},"\u002F\u002F Kein 'finally' Block für das Schließen mehr nötig.\n",[4173,97286,97287,97289,97291,97293,97296],{"class":4657,"line":10787},[4173,97288,79043],{"class":4784},[4173,97290,79074],{"class":4661},[4173,97292,6390],{"class":4784},[4173,97294,97295],{"class":4669},"\"Scanner wurde automatisch von Java geschlossen.\"",[4173,97297,55545],{"class":4784},[4173,97299,97300],{"class":4657,"line":10800},[4173,97301,7090],{"class":4784},[4173,97303,97304],{"class":4657,"line":10805},[4173,97305,97306],{"class":4766},"\u002F\u002F Hilfsmethode zum Erstellen der Datei\n",[4173,97308,97309,97311,97313,97315,97318,97320,97322],{"class":4657,"line":10818},[4173,97310,80152],{"class":4788},[4173,97312,79892],{"class":4788},[4173,97314,79934],{"class":4788},[4173,97316,97317],{"class":4661}," erstelleTestDatei",[4173,97319,80001],{"class":4784},[4173,97321,28734],{"class":7074},[4173,97323,56319],{"class":4784},[4173,97325,97326,97328,97331,97333,97335,97338],{"class":4657,"line":10823},[4173,97327,85839],{"class":4788},[4173,97329,97330],{"class":4784}," (PrintWriter writer ",[4173,97332,6387],{"class":4788},[4173,97334,79032],{"class":4788},[4173,97336,97337],{"class":4661}," PrintWriter",[4173,97339,97340],{"class":4784},"(name)) {\n",[4173,97342,97343,97345,97347,97349,97352],{"class":4657,"line":10836},[4173,97344,86280],{"class":4784},[4173,97346,79074],{"class":4661},[4173,97348,6390],{"class":4784},[4173,97350,97351],{"class":4669},"\"Hallo Java-Welt!\"",[4173,97353,55545],{"class":4784},[4173,97355,97356,97358,97360,97362,97364],{"class":4657,"line":10841},[4173,97357,71897],{"class":4784},[4173,97359,85917],{"class":4788},[4173,97361,96825],{"class":4784},[4173,97363,20602],{"class":7074},[4173,97365,56319],{"class":4784},[4173,97367,97368,97370,97372],{"class":4657,"line":10846},[4173,97369,95895],{"class":4784},[4173,97371,94901],{"class":4661},[4173,97373,65878],{"class":4784},[4173,97375,97376],{"class":4657,"line":10851},[4173,97377,7090],{"class":4784},[4173,97379,97380],{"class":4657,"line":10867},[4173,97381,7090],{"class":4784},[4173,97383,97384],{"class":4657,"line":10872},[4173,97385,7090],{"class":4784},[4173,97387,97388,97390],{"class":4657,"line":10877},[4173,97389,79019],{"class":4788},[4173,97391,97392],{"class":4784}," java.util.Arrays;\n",[4173,97394,97395,97397],{"class":4657,"line":10882},[4173,97396,79019],{"class":4788},[4173,97398,97399],{"class":4784}," java.util.List;\n",[4173,97401,97402,97404],{"class":4657,"line":10890},[4173,97403,79019],{"class":4788},[4173,97405,96563],{"class":4784},[4173,97407,97408,97410],{"class":4657,"line":10895},[4173,97409,79019],{"class":4788},[4173,97411,96556],{"class":4784},[4173,97413,97414,97416],{"class":4657,"line":10904},[4173,97415,79019],{"class":4788},[4173,97417,97418],{"class":4784}," java.util.stream.Collectors;\n",[4173,97420,97421,97423,97425,97428],{"class":4657,"line":10909},[4173,97422,79889],{"class":4788},[4173,97424,80062],{"class":4788},[4173,97426,97427],{"class":4661}," RegexBeispiele",[4173,97429,51614],{"class":4784},[4173,97431,97432,97434,97436,97438,97440,97442,97444,97446,97448],{"class":4657,"line":10914},[4173,97433,79889],{"class":4788},[4173,97435,79892],{"class":4788},[4173,97437,79934],{"class":4788},[4173,97439,79937],{"class":4661},[4173,97441,6390],{"class":4784},[4173,97443,79693],{"class":4788},[4173,97445,80084],{"class":4784},[4173,97447,31283],{"class":7074},[4173,97449,56319],{"class":4784},[4173,97451,97452,97454,97456,97458,97461],{"class":4657,"line":10919},[4173,97453,79043],{"class":4784},[4173,97455,79074],{"class":4661},[4173,97457,6390],{"class":4784},[4173,97459,97460],{"class":4669},"\"--- 1. EINFACHE VALIDIERUNG (String Methoden) ---\"",[4173,97462,55545],{"class":4784},[4173,97464,97465,97468],{"class":4657,"line":10933},[4173,97466,97467],{"class":4661},"stringMatchesDemo",[4173,97469,65878],{"class":4784},[4173,97471,97472,97474,97476,97478,97480,97482],{"class":4657,"line":10938},[4173,97473,79043],{"class":4784},[4173,97475,79074],{"class":4661},[4173,97477,6390],{"class":4784},[4173,97479,6207],{"class":4669},[4173,97481,83928],{"class":4665},[4173,97483,97484],{"class":4669},"--- 2. KOMPLEXE SUCHE & EXTRAKTION (Pattern & Matcher) -\n",[4173,97486,97487,97490],{"class":4657,"line":10959},[4173,97488,97489],{"class":4669},"--\"",[4173,97491,55545],{"class":4784},[4173,97493,97494,97497],{"class":4657,"line":10964},[4173,97495,97496],{"class":4661},"patternMatcherFindDemo",[4173,97498,65878],{"class":4784},[4173,97500,97501,97503,97505,97507,97509,97511,97514],{"class":4657,"line":10969},[4173,97502,79043],{"class":4784},[4173,97504,79074],{"class":4661},[4173,97506,6390],{"class":4784},[4173,97508,6207],{"class":4669},[4173,97510,83928],{"class":4665},[4173,97512,97513],{"class":4669},"--- 3. ERSETZEN VON TEXT (Replace) ---\"",[4173,97515,55545],{"class":4784},[4173,97517,97518,97521],{"class":4657,"line":10974},[4173,97519,97520],{"class":4661},"replaceDemo",[4173,97522,65878],{"class":4784},[4173,97524,97525,97527,97529,97531,97533,97535,97538],{"class":4657,"line":10982},[4173,97526,79043],{"class":4784},[4173,97528,79074],{"class":4661},[4173,97530,6390],{"class":4784},[4173,97532,6207],{"class":4669},[4173,97534,83928],{"class":4665},[4173,97536,97537],{"class":4669},"--- 4. TEXT AUFTEILEN (Split) ---\"",[4173,97539,55545],{"class":4784},[4173,97541,97542,97545],{"class":4657,"line":10987},[4173,97543,97544],{"class":4661},"splitDemo",[4173,97546,65878],{"class":4784},[4173,97548,97549,97551,97553,97555,97557,97559,97562],{"class":4657,"line":10995},[4173,97550,79043],{"class":4784},[4173,97552,79074],{"class":4661},[4173,97554,6390],{"class":4784},[4173,97556,6207],{"class":4669},[4173,97558,83928],{"class":4665},[4173,97560,97561],{"class":4669},"--- 5. REGEX MIT JAVA STREAMS (Java 8+) ---\"",[4173,97563,55545],{"class":4784},[4173,97565,97566,97569],{"class":4657,"line":11000},[4173,97567,97568],{"class":4661},"streamPredicateDemo",[4173,97570,65878],{"class":4784},[4173,97572,97573],{"class":4657,"line":11008},[4173,97574,7090],{"class":4784},[4173,97576,97577],{"class":4657,"line":11013},[4173,97578,97579],{"class":4766},"\u002F\u002F 1. Validierung direkt auf dem String\n",[4173,97581,97582,97584,97586,97588,97591],{"class":4657,"line":11021},[4173,97583,80152],{"class":4788},[4173,97585,79892],{"class":4788},[4173,97587,79934],{"class":4788},[4173,97589,97590],{"class":4661}," stringMatchesDemo",[4173,97592,7062],{"class":4784},[4173,97594,97595,97598,97600,97603],{"class":4657,"line":11026},[4173,97596,97597],{"class":4784},"String email ",[4173,97599,6387],{"class":4788},[4173,97601,97602],{"class":4669}," \"test.user@example.com\"",[4173,97604,55559],{"class":4784},[4173,97606,97607],{"class":4657,"line":11034},[4173,97608,97609],{"class":4766},"\u002F\u002F Einfacher Regex für E-Mails (nicht für den produktiven Einsatz optimiert)\n",[4173,97611,97612,97615,97617,97620],{"class":4657,"line":11039},[4173,97613,97614],{"class":4784},"String regex ",[4173,97616,6387],{"class":4788},[4173,97618,97619],{"class":4669}," \"^[A-Za-z0-9+_.-]+@(.+)$\"",[4173,97621,55559],{"class":4784},[4173,97623,97624],{"class":4657,"line":11048},[4173,97625,97626],{"class":4766},"\u002F\u002F String.matches() prüft, ob der GANZE String dem Muster entspricht\n",[4173,97628,97629,97631,97634,97636,97639,97641],{"class":4657,"line":11053},[4173,97630,78983],{"class":4788},[4173,97632,97633],{"class":4784}," isValid ",[4173,97635,6387],{"class":4788},[4173,97637,97638],{"class":4784}," email.",[4173,97640,88609],{"class":4661},[4173,97642,97643],{"class":4784},"(regex);\n",[4173,97645,97646,97648,97650,97652,97655,97657],{"class":4657,"line":21369},[4173,97647,79043],{"class":4784},[4173,97649,79074],{"class":4661},[4173,97651,6390],{"class":4784},[4173,97653,97654],{"class":4669},"\"Ist die E-Mail gültig? \"",[4173,97656,11719],{"class":4788},[4173,97658,97659],{"class":4784}," isValid);\n",[4173,97661,97662],{"class":4657,"line":21374},[4173,97663,7090],{"class":4784},[4173,97665,97666],{"class":4657,"line":21380},[4173,97667,97668],{"class":4766},"\u002F\u002F 2. Suchen und Extrahieren (Gruppen)\n",[4173,97670,97671,97673,97675,97677,97680],{"class":4657,"line":21385},[4173,97672,80152],{"class":4788},[4173,97674,79892],{"class":4788},[4173,97676,79934],{"class":4788},[4173,97678,97679],{"class":4661}," patternMatcherFindDemo",[4173,97681,7062],{"class":4784},[4173,97683,97684,97686,97688],{"class":4657,"line":21397},[4173,97685,79681],{"class":4784},[4173,97687,6387],{"class":4788},[4173,97689,97690],{"class":4669}," \"Die Bestellung #12345 kostet 99.50 Euro. Bestellung #67890\n",[4173,97692,97693,97696],{"class":4657,"line":21402},[4173,97694,97695],{"class":4669},"kostet 12.00 Euro.\"",[4173,97697,55559],{"class":4784},[4173,97699,97700],{"class":4657,"line":21408},[4173,97701,97702],{"class":4766},"\u002F\u002F Pattern.compile() ist effizienter, wenn das Muster mehrfach genutzt wird.\n",[4173,97704,97705],{"class":4657,"line":21413},[4173,97706,97707],{"class":4766},"\u002F\u002F Wir nutzen Capture Groups '()' um Nummer und Preis zu extrahieren.\n",[4173,97709,97710,97712,97714,97716,97718,97720,97723,97725,97728,97730,97733,97735,97737,97739,97742],{"class":4657,"line":21425},[4173,97711,96640],{"class":4784},[4173,97713,6387],{"class":4788},[4173,97715,96645],{"class":4784},[4173,97717,96648],{"class":4661},[4173,97719,6390],{"class":4784},[4173,97721,97722],{"class":4669},"\"#(",[4173,97724,88532],{"class":4665},[4173,97726,97727],{"class":4669},"d+).*?(",[4173,97729,88532],{"class":4665},[4173,97731,97732],{"class":4669},"d+",[4173,97734,88532],{"class":4665},[4173,97736,7834],{"class":4669},[4173,97738,88532],{"class":4665},[4173,97740,97741],{"class":4669},"d{2})\"",[4173,97743,55545],{"class":4784},[4173,97745,97746,97749,97751,97753,97755],{"class":4657,"line":21430},[4173,97747,97748],{"class":4784},"Matcher matcher ",[4173,97750,6387],{"class":4788},[4173,97752,96729],{"class":4784},[4173,97754,96732],{"class":4661},[4173,97756,86286],{"class":4784},[4173,97758,97759],{"class":4657,"line":21436},[4173,97760,97761],{"class":4766},"\u002F\u002F Matcher.find() sucht das nächste Vorkommen im Text\n",[4173,97763,97764,97766,97769,97771],{"class":4657,"line":21441},[4173,97765,6694],{"class":4788},[4173,97767,97768],{"class":4784}," (matcher.",[4173,97770,9459],{"class":4661},[4173,97772,85158],{"class":4784},[4173,97774,97775,97777,97779,97781,97784,97786,97789,97791,97793,97795,97797],{"class":4657,"line":21453},[4173,97776,79043],{"class":4784},[4173,97778,79074],{"class":4661},[4173,97780,6390],{"class":4784},[4173,97782,97783],{"class":4669},"\"Gefunden: \"",[4173,97785,11719],{"class":4788},[4173,97787,97788],{"class":4784}," matcher.",[4173,97790,13681],{"class":4661},[4173,97792,6390],{"class":4784},[4173,97794,12749],{"class":4665},[4173,97796,48385],{"class":4784},[4173,97798,97799],{"class":4766},"\u002F\u002F Gesamter Match\n",[4173,97801,97802,97804,97806,97808,97811,97813,97815,97817,97819,97821],{"class":4657,"line":21458},[4173,97803,79043],{"class":4784},[4173,97805,79074],{"class":4661},[4173,97807,6390],{"class":4784},[4173,97809,97810],{"class":4669},"\" -> Bestellnummer (Gruppe 1): \"",[4173,97812,11719],{"class":4788},[4173,97814,97788],{"class":4784},[4173,97816,13681],{"class":4661},[4173,97818,6390],{"class":4784},[4173,97820,14223],{"class":4665},[4173,97822,66047],{"class":4784},[4173,97824,97825,97827,97829,97831,97834,97836,97838,97840,97842,97844],{"class":4657,"line":21464},[4173,97826,79043],{"class":4784},[4173,97828,79074],{"class":4661},[4173,97830,6390],{"class":4784},[4173,97832,97833],{"class":4669},"\" -> Preis (Gruppe 2): \"",[4173,97835,11719],{"class":4788},[4173,97837,97788],{"class":4784},[4173,97839,13681],{"class":4661},[4173,97841,6390],{"class":4784},[4173,97843,14206],{"class":4665},[4173,97845,66047],{"class":4784},[4173,97847,97848],{"class":4657,"line":21469},[4173,97849,7090],{"class":4784},[4173,97851,97852],{"class":4657,"line":21481},[4173,97853,7090],{"class":4784},[4173,97855,97856],{"class":4657,"line":21486},[4173,97857,97858],{"class":4766},"\u002F\u002F 3. Text ersetzen\n",[4173,97860,97861,97863,97865,97867,97870],{"class":4657,"line":21492},[4173,97862,80152],{"class":4788},[4173,97864,79892],{"class":4788},[4173,97866,79934],{"class":4788},[4173,97868,97869],{"class":4661}," replaceDemo",[4173,97871,7062],{"class":4784},[4173,97873,97874,97877,97879,97882],{"class":4657,"line":21497},[4173,97875,97876],{"class":4784},"String unsaubererText ",[4173,97878,6387],{"class":4788},[4173,97880,97881],{"class":4669}," \"Hier   sind    viel  zu  viele    Leerzeichen.\"",[4173,97883,55559],{"class":4784},[4173,97885,97886],{"class":4657,"line":21503},[4173,97887,97888],{"class":4766},"\u002F\u002F String.replaceAll() nutzt intern Regex\n",[4173,97890,97891,97894,97896,97899,97901,97903,97905,97907,97910,97912,97914],{"class":4657,"line":21508},[4173,97892,97893],{"class":4784},"String saubererText ",[4173,97895,6387],{"class":4788},[4173,97897,97898],{"class":4784}," unsaubererText.",[4173,97900,88525],{"class":4661},[4173,97902,6390],{"class":4784},[4173,97904,6207],{"class":4669},[4173,97906,88532],{"class":4665},[4173,97908,97909],{"class":4669},"s+\"",[4173,97911,8629],{"class":4784},[4173,97913,79709],{"class":4669},[4173,97915,55545],{"class":4784},[4173,97917,97918,97920,97922,97924,97927,97929],{"class":4657,"line":21518},[4173,97919,79043],{"class":4784},[4173,97921,79074],{"class":4661},[4173,97923,6390],{"class":4784},[4173,97925,97926],{"class":4669},"\"Bereinigt: \"",[4173,97928,11719],{"class":4788},[4173,97930,97931],{"class":4784}," saubererText);\n",[4173,97933,97934],{"class":4657,"line":21523},[4173,97935,97936],{"class":4766},"\u002F\u002F Ersetzen mit Matcher (komplexere Logik)\n",[4173,97938,97939,97942,97944,97947],{"class":4657,"line":21529},[4173,97940,97941],{"class":4784},"String datum ",[4173,97943,6387],{"class":4788},[4173,97945,97946],{"class":4669}," \"Heute ist der 2026-02-23.\"",[4173,97948,55559],{"class":4784},[4173,97950,97951,97954,97956,97958,97960,97962,97965,97967,97970,97972,97975,97977,97979],{"class":4657,"line":21534},[4173,97952,97953],{"class":4784},"Pattern datePattern ",[4173,97955,6387],{"class":4788},[4173,97957,96645],{"class":4784},[4173,97959,96648],{"class":4661},[4173,97961,6390],{"class":4784},[4173,97963,97964],{"class":4669},"\"(",[4173,97966,88532],{"class":4665},[4173,97968,97969],{"class":4669},"d{4})-(",[4173,97971,88532],{"class":4665},[4173,97973,97974],{"class":4669},"d{2})-(",[4173,97976,88532],{"class":4665},[4173,97978,97741],{"class":4669},[4173,97980,55545],{"class":4784},[4173,97982,97983,97986,97988,97991,97993],{"class":4657,"line":21544},[4173,97984,97985],{"class":4784},"Matcher dateMatcher ",[4173,97987,6387],{"class":4788},[4173,97989,97990],{"class":4784}," datePattern.",[4173,97992,96732],{"class":4661},[4173,97994,97995],{"class":4784},"(datum);\n",[4173,97997,97998],{"class":4657,"line":21549},[4173,97999,98000],{"class":4766},"\u002F\u002F Formatiert YYYY-MM-DD zu DD.MM.YYYY ($3 = Gruppe 3, etc.)\n",[4173,98002,98003,98006,98008,98011,98013,98015,98018],{"class":4657,"line":21555},[4173,98004,98005],{"class":4784},"String deutschesDatum ",[4173,98007,6387],{"class":4788},[4173,98009,98010],{"class":4784}," dateMatcher.",[4173,98012,88525],{"class":4661},[4173,98014,6390],{"class":4784},[4173,98016,98017],{"class":4669},"\"$3.$2.$1\"",[4173,98019,55545],{"class":4784},[4173,98021,98022,98024,98026,98028,98031,98033],{"class":4657,"line":21560},[4173,98023,79043],{"class":4784},[4173,98025,79074],{"class":4661},[4173,98027,6390],{"class":4784},[4173,98029,98030],{"class":4669},"\"Datum umformatiert: \"",[4173,98032,11719],{"class":4788},[4173,98034,98035],{"class":4784}," deutschesDatum);\n",[4173,98037,98038],{"class":4657,"line":21570},[4173,98039,7090],{"class":4784},[4173,98041,98042],{"class":4657,"line":21575},[4173,98043,98044],{"class":4766},"\u002F\u002F 4. Strings in Arrays aufteilen\n",[4173,98046,98047,98049,98051,98053,98056],{"class":4657,"line":21581},[4173,98048,80152],{"class":4788},[4173,98050,79892],{"class":4788},[4173,98052,79934],{"class":4788},[4173,98054,98055],{"class":4661}," splitDemo",[4173,98057,7062],{"class":4784},[4173,98059,98060,98063,98065,98068],{"class":4657,"line":21586},[4173,98061,98062],{"class":4784},"String csvZeile ",[4173,98064,6387],{"class":4788},[4173,98066,98067],{"class":4669}," \"Apfel, Banane; Orange|Pfirsich\"",[4173,98069,55559],{"class":4784},[4173,98071,98072],{"class":4657,"line":21596},[4173,98073,98074],{"class":4766},"\u002F\u002F Wir splitten bei Komma, Semikolon oder Pipe, gefolgt von optionalen\n",[4173,98076,98077],{"class":4657,"line":21601},[4173,98078,98079],{"class":4784},"Leerzeichen\n",[4173,98081,98082,98084,98087,98089,98092,98094,98096,98099,98101,98104],{"class":4657,"line":21607},[4173,98083,79693],{"class":4788},[4173,98085,98086],{"class":4784},"[] fruechte ",[4173,98088,6387],{"class":4788},[4173,98090,98091],{"class":4784}," csvZeile.",[4173,98093,79704],{"class":4661},[4173,98095,6390],{"class":4784},[4173,98097,98098],{"class":4669},"\"[,;|]",[4173,98100,88532],{"class":4665},[4173,98102,98103],{"class":4669},"s*\"",[4173,98105,55545],{"class":4784},[4173,98107,98108,98110,98112,98114,98117],{"class":4657,"line":21612},[4173,98109,79043],{"class":4784},[4173,98111,79074],{"class":4661},[4173,98113,6390],{"class":4784},[4173,98115,98116],{"class":4669},"\"Gefundene Früchte:\"",[4173,98118,55545],{"class":4784},[4173,98120,98121,98123,98126,98128],{"class":4657,"line":21622},[4173,98122,6425],{"class":4788},[4173,98124,98125],{"class":4784}," (String frucht ",[4173,98127,8158],{"class":4788},[4173,98129,98130],{"class":4784}," fruechte) {\n",[4173,98132,98133,98135,98137,98139,98142,98144],{"class":4657,"line":21627},[4173,98134,79043],{"class":4784},[4173,98136,79074],{"class":4661},[4173,98138,6390],{"class":4784},[4173,98140,98141],{"class":4669},"\"- \"",[4173,98143,11719],{"class":4788},[4173,98145,98146],{"class":4784}," frucht);\n",[4173,98148,98149],{"class":4657,"line":21633},[4173,98150,7090],{"class":4784},[4173,98152,98153],{"class":4657,"line":21638},[4173,98154,7090],{"class":4784},[4173,98156,98157],{"class":4657,"line":21644},[4173,98158,98159],{"class":4766},"\u002F\u002F 5. Moderne Filterung mit Streams und Pattern.asPredicate()\n",[4173,98161,98162,98164,98166,98168,98171],{"class":4657,"line":21649},[4173,98163,80152],{"class":4788},[4173,98165,79892],{"class":4788},[4173,98167,79934],{"class":4788},[4173,98169,98170],{"class":4661}," streamPredicateDemo",[4173,98172,7062],{"class":4784},[4173,98174,98175,98178,98180,98183,98185,98188,98191,98193,98195,98197,98199,98201,98203,98205,98208],{"class":4657,"line":21659},[4173,98176,98177],{"class":4784},"List\u003C",[4173,98179,79693],{"class":4788},[4173,98181,98182],{"class":4784},"> worte ",[4173,98184,6387],{"class":4788},[4173,98186,98187],{"class":4784}," Arrays.",[4173,98189,98190],{"class":4661},"asList",[4173,98192,6390],{"class":4784},[4173,98194,89434],{"class":4669},[4173,98196,8629],{"class":4784},[4173,98198,88298],{"class":4669},[4173,98200,8629],{"class":4784},[4173,98202,89447],{"class":4669},[4173,98204,8629],{"class":4784},[4173,98206,98207],{"class":4669},"\"456\"",[4173,98209,66026],{"class":4784},[4173,98211,98212,98215],{"class":4657,"line":21664},[4173,98213,98214],{"class":4669},"\"Kirsche\"",[4173,98216,55545],{"class":4784},[4173,98218,98219],{"class":4657,"line":21670},[4173,98220,98221],{"class":4766},"\u002F\u002F Nur Strings behalten, die ausschließlich aus Zahlen bestehen\n",[4173,98223,98224,98227,98229,98231,98233,98235,98238,98240,98243],{"class":4657,"line":21675},[4173,98225,98226],{"class":4784},"Pattern numberPattern ",[4173,98228,6387],{"class":4788},[4173,98230,96645],{"class":4784},[4173,98232,96648],{"class":4661},[4173,98234,6390],{"class":4784},[4173,98236,98237],{"class":4669},"\"^",[4173,98239,88532],{"class":4665},[4173,98241,98242],{"class":4669},"d+$\"",[4173,98244,55545],{"class":4784},[4173,98246,98247,98249,98251,98254,98256,98259,98262],{"class":4657,"line":21685},[4173,98248,98177],{"class":4784},[4173,98250,79693],{"class":4788},[4173,98252,98253],{"class":4784},"> nurZahlen ",[4173,98255,6387],{"class":4788},[4173,98257,98258],{"class":4784}," worte.",[4173,98260,98261],{"class":4661},"stream",[4173,98263,98264],{"class":4784},"()\n",[4173,98266,98267,98269,98272,98275,98278,98280],{"class":4657,"line":21690},[4173,98268,7834],{"class":4784},[4173,98270,98271],{"class":4661},"filter",[4173,98273,98274],{"class":4784},"(numberPattern.",[4173,98276,98277],{"class":4661},"asPredicate",[4173,98279,86104],{"class":4784},[4173,98281,98282],{"class":4766},"\u002F\u002F Wandelt Regex in ein Predicate\n",[4173,98284,98285],{"class":4657,"line":21696},[4173,98286,98287],{"class":4784},"um\n",[4173,98289,98290,98292,98295,98298,98301],{"class":4657,"line":21701},[4173,98291,7834],{"class":4784},[4173,98293,98294],{"class":4661},"collect",[4173,98296,98297],{"class":4784},"(Collectors.",[4173,98299,98300],{"class":4661},"toList",[4173,98302,81860],{"class":4784},[4173,98304,98305,98307,98309,98311,98314,98316],{"class":4657,"line":21711},[4173,98306,79043],{"class":4784},[4173,98308,79074],{"class":4661},[4173,98310,6390],{"class":4784},[4173,98312,98313],{"class":4669},"\"Nur Zahlen gefiltert: \"",[4173,98315,11719],{"class":4788},[4173,98317,98318],{"class":4784}," nurZahlen);\n",[4173,98320,98321],{"class":4657,"line":21716},[4173,98322,7090],{"class":4784},[4173,98324,98325],{"class":4657,"line":21722},[4173,98326,7090],{"class":4784},[16,98328,98330],{"id":98329},"java-regex-pdf","Java REGEX PDF",[4647,98332,98334],{"className":78931,"code":98333,"language":78933,"meta":269,"style":269},"Semaphore_Buch(Seidel)\n",[4653,98335,98336],{"__ignoreMap":269},[4173,98337,98338,98341],{"class":4657,"line":4658},[4173,98339,98340],{"class":4661},"Semaphore_Buch",[4173,98342,98343],{"class":4784},"(Seidel)\n",[16,98345,98347],{"id":98346},"besucherjava","Besucher.java",[4647,98349,98351],{"className":78931,"code":98350,"language":78933,"meta":269,"style":269},"import java.util.concurrent.Semaphore;\nimport java.io.*;\npublic class Besucher extends Thread {\nSemaphore sem;\nKondolenzbuch opaF;\nString name;\n\u002F\u002F Konstruktor für zwei Übergabewerte(Semaphore, String)\nBesucher(Kondolenzbuch opaF,Semaphore sem, String name) {\nthis.sem = sem;\nthis.opaF = opaF;\nthis.name = name;\n}\npublic void run() {\ntry {\n\u002F\u002F Besucher wartet auf einen Platz\nSystem.out.println(this.name + \" Wartet auf Eintritt.\");\nsem.acquire();\n\u002F\u002F Gast hat einen Platz bekommen\nSystem.out.println(this.name + \" Kann ins Kondolenzbuch schreiben.\");\n\u002F\u002F    Schreiben in Datei - Baustein\nopaF.writeLog(\"Ruhe sanft, Opa Friedrich wünscht \" + this.name);\n}\ncatch (InterruptedException e) {}\ncatch (IOException e) {\n}\nfinally {\nsem.release();\n\u002F\u002F Der Gast gibt den Platz wieder frei\nSystem.out.println(this.name + \" verlässt Ruhesanft2.0.\");\n}\n}\n}\n",[4653,98352,98353,98359,98369,98384,98389,98394,98398,98403,98425,98435,98447,98457,98461,98471,98477,98482,98501,98509,98514,98533,98538,98559,98563,98574,98584,98588,98594,98602,98607,98626,98630,98634],{"__ignoreMap":269},[4173,98354,98355,98357],{"class":4657,"line":4658},[4173,98356,79019],{"class":4788},[4173,98358,95489],{"class":4784},[4173,98360,98361,98363,98365,98367],{"class":4657,"line":270},[4173,98362,79019],{"class":4788},[4173,98364,90640],{"class":4784},[4173,98366,6328],{"class":4665},[4173,98368,55559],{"class":4784},[4173,98370,98371,98373,98375,98378,98380,98382],{"class":4657,"line":1263},[4173,98372,79889],{"class":4788},[4173,98374,80062],{"class":4788},[4173,98376,98377],{"class":4661}," Besucher",[4173,98379,80500],{"class":4788},[4173,98381,95516],{"class":4661},[4173,98383,51614],{"class":4784},[4173,98385,98386],{"class":4657,"line":4770},[4173,98387,98388],{"class":4784},"Semaphore sem;\n",[4173,98390,98391],{"class":4657,"line":4775},[4173,98392,98393],{"class":4784},"Kondolenzbuch opaF;\n",[4173,98395,98396],{"class":4657,"line":6320},[4173,98397,79993],{"class":4784},[4173,98399,98400],{"class":4657,"line":6325},[4173,98401,98402],{"class":4766},"\u002F\u002F Konstruktor für zwei Übergabewerte(Semaphore, String)\n",[4173,98404,98405,98408,98411,98414,98417,98419,98421,98423],{"class":4657,"line":6343},[4173,98406,98407],{"class":4661},"Besucher",[4173,98409,98410],{"class":4784},"(Kondolenzbuch ",[4173,98412,98413],{"class":7074},"opaF",[4173,98415,98416],{"class":4784},",Semaphore ",[4173,98418,95572],{"class":7074},[4173,98420,86243],{"class":4784},[4173,98422,28734],{"class":7074},[4173,98424,56319],{"class":4784},[4173,98426,98427,98429,98431,98433],{"class":4657,"line":6348},[4173,98428,80010],{"class":4665},[4173,98430,95591],{"class":4784},[4173,98432,6387],{"class":4788},[4173,98434,95596],{"class":4784},[4173,98436,98437,98439,98442,98444],{"class":4657,"line":6457},[4173,98438,80010],{"class":4665},[4173,98440,98441],{"class":4784},".opaF ",[4173,98443,6387],{"class":4788},[4173,98445,98446],{"class":4784}," opaF;\n",[4173,98448,98449,98451,98453,98455],{"class":4657,"line":6462},[4173,98450,80010],{"class":4665},[4173,98452,80013],{"class":4784},[4173,98454,6387],{"class":4788},[4173,98456,80018],{"class":4784},[4173,98458,98459],{"class":4657,"line":6468},[4173,98460,7090],{"class":4784},[4173,98462,98463,98465,98467,98469],{"class":4657,"line":6473},[4173,98464,79889],{"class":4788},[4173,98466,79934],{"class":4788},[4173,98468,8045],{"class":4661},[4173,98470,7062],{"class":4784},[4173,98472,98473,98475],{"class":4657,"line":6479},[4173,98474,85839],{"class":4788},[4173,98476,51614],{"class":4784},[4173,98478,98479],{"class":4657,"line":6503},[4173,98480,98481],{"class":4766},"\u002F\u002F Besucher wartet auf einen Platz\n",[4173,98483,98484,98486,98488,98490,98492,98494,98496,98499],{"class":4657,"line":6516},[4173,98485,79043],{"class":4784},[4173,98487,79074],{"class":4661},[4173,98489,6390],{"class":4784},[4173,98491,80010],{"class":4665},[4173,98493,80013],{"class":4784},[4173,98495,14419],{"class":4788},[4173,98497,98498],{"class":4669}," \" Wartet auf Eintritt.\"",[4173,98500,55545],{"class":4784},[4173,98502,98503,98505,98507],{"class":4657,"line":6971},[4173,98504,95800],{"class":4784},[4173,98506,95803],{"class":4661},[4173,98508,65878],{"class":4784},[4173,98510,98511],{"class":4657,"line":10649},[4173,98512,98513],{"class":4766},"\u002F\u002F Gast hat einen Platz bekommen\n",[4173,98515,98516,98518,98520,98522,98524,98526,98528,98531],{"class":4657,"line":10654},[4173,98517,79043],{"class":4784},[4173,98519,79074],{"class":4661},[4173,98521,6390],{"class":4784},[4173,98523,80010],{"class":4665},[4173,98525,80013],{"class":4784},[4173,98527,14419],{"class":4788},[4173,98529,98530],{"class":4669}," \" Kann ins Kondolenzbuch schreiben.\"",[4173,98532,55545],{"class":4784},[4173,98534,98535],{"class":4657,"line":10659},[4173,98536,98537],{"class":4766},"\u002F\u002F    Schreiben in Datei - Baustein\n",[4173,98539,98540,98543,98546,98548,98551,98553,98556],{"class":4657,"line":10664},[4173,98541,98542],{"class":4784},"opaF.",[4173,98544,98545],{"class":4661},"writeLog",[4173,98547,6390],{"class":4784},[4173,98549,98550],{"class":4669},"\"Ruhe sanft, Opa Friedrich wünscht \"",[4173,98552,11719],{"class":4788},[4173,98554,98555],{"class":4665}," this",[4173,98557,98558],{"class":4784},".name);\n",[4173,98560,98561],{"class":4657,"line":10676},[4173,98562,7090],{"class":4784},[4173,98564,98565,98567,98569,98571],{"class":4657,"line":10681},[4173,98566,85917],{"class":4788},[4173,98568,95825],{"class":4784},[4173,98570,20602],{"class":7074},[4173,98572,98573],{"class":4784},") {}\n",[4173,98575,98576,98578,98580,98582],{"class":4657,"line":10702},[4173,98577,85917],{"class":4788},[4173,98579,85960],{"class":4784},[4173,98581,20602],{"class":7074},[4173,98583,56319],{"class":4784},[4173,98585,98586],{"class":4657,"line":10707},[4173,98587,7090],{"class":4784},[4173,98589,98590,98592],{"class":4657,"line":10712},[4173,98591,86570],{"class":4788},[4173,98593,51614],{"class":4784},[4173,98595,98596,98598,98600],{"class":4657,"line":10717},[4173,98597,95800],{"class":4784},[4173,98599,95914],{"class":4661},[4173,98601,65878],{"class":4784},[4173,98603,98604],{"class":4657,"line":10727},[4173,98605,98606],{"class":4766},"\u002F\u002F Der Gast gibt den Platz wieder frei\n",[4173,98608,98609,98611,98613,98615,98617,98619,98621,98624],{"class":4657,"line":10732},[4173,98610,79043],{"class":4784},[4173,98612,79074],{"class":4661},[4173,98614,6390],{"class":4784},[4173,98616,80010],{"class":4665},[4173,98618,80013],{"class":4784},[4173,98620,14419],{"class":4788},[4173,98622,98623],{"class":4669}," \" verlässt Ruhesanft2.0.\"",[4173,98625,55545],{"class":4784},[4173,98627,98628],{"class":4657,"line":10737},[4173,98629,7090],{"class":4784},[4173,98631,98632],{"class":4657,"line":10742},[4173,98633,7090],{"class":4784},[4173,98635,98636],{"class":4657,"line":10752},[4173,98637,7090],{"class":4784},[16,98639,98641],{"id":98640},"kondolenzbuchjava","Kondolenzbuch.java",[4647,98643,98645],{"className":78931,"code":98644,"language":78933,"meta":269,"style":269},"import java.io.*;\nimport java.util.*;\nclass Kondolenzbuch{\nBufferedWriter bw;\npublic Kondolenzbuch(String datei) throws IOException{\nbw = new BufferedWriter(new FileWriter(datei,true));\n}\npublic synchronized void writeLog(String message) throws IOException{\nbw.write(new Date().toString());\nbw.write(message);\nbw.newLine();\n}\npublic void schliessen() throws IOException{\nbw.close();\n}\n}\n",[4653,98646,98647,98657,98667,98676,98681,98698,98721,98725,98746,98765,98773,98781,98785,98800,98808,98812],{"__ignoreMap":269},[4173,98648,98649,98651,98653,98655],{"class":4657,"line":4658},[4173,98650,79019],{"class":4788},[4173,98652,90640],{"class":4784},[4173,98654,6328],{"class":4665},[4173,98656,55559],{"class":4784},[4173,98658,98659,98661,98663,98665],{"class":4657,"line":270},[4173,98660,79019],{"class":4788},[4173,98662,89311],{"class":4784},[4173,98664,6328],{"class":4665},[4173,98666,55559],{"class":4784},[4173,98668,98669,98671,98674],{"class":4657,"line":1263},[4173,98670,79983],{"class":4788},[4173,98672,98673],{"class":4661}," Kondolenzbuch",[4173,98675,92839],{"class":4784},[4173,98677,98678],{"class":4657,"line":4770},[4173,98679,98680],{"class":4784},"BufferedWriter bw;\n",[4173,98682,98683,98685,98687,98689,98691,98693,98695],{"class":4657,"line":4775},[4173,98684,79889],{"class":4788},[4173,98686,98673],{"class":4661},[4173,98688,80001],{"class":4784},[4173,98690,96068],{"class":7074},[4173,98692,6306],{"class":4784},[4173,98694,86035],{"class":4788},[4173,98696,98697],{"class":4784}," IOException{\n",[4173,98699,98700,98702,98704,98706,98708,98710,98712,98714,98717,98719],{"class":4657,"line":6320},[4173,98701,96079],{"class":4784},[4173,98703,6387],{"class":4788},[4173,98705,79032],{"class":4788},[4173,98707,86266],{"class":4661},[4173,98709,6390],{"class":4784},[4173,98711,81243],{"class":4788},[4173,98713,86273],{"class":4661},[4173,98715,98716],{"class":4784},"(datei,",[4173,98718,45190],{"class":4665},[4173,98720,66047],{"class":4784},[4173,98722,98723],{"class":4657,"line":6325},[4173,98724,7090],{"class":4784},[4173,98726,98727,98729,98731,98733,98736,98738,98740,98742,98744],{"class":4657,"line":6343},[4173,98728,79889],{"class":4788},[4173,98730,96126],{"class":4788},[4173,98732,79934],{"class":4788},[4173,98734,98735],{"class":4661}," writeLog",[4173,98737,80001],{"class":4784},[4173,98739,86349],{"class":7074},[4173,98741,6306],{"class":4784},[4173,98743,86035],{"class":4788},[4173,98745,98697],{"class":4784},[4173,98747,98748,98750,98752,98754,98756,98759,98761,98763],{"class":4657,"line":6348},[4173,98749,95111],{"class":4784},[4173,98751,86283],{"class":4661},[4173,98753,6390],{"class":4784},[4173,98755,81243],{"class":4788},[4173,98757,98758],{"class":4661}," Date",[4173,98760,86157],{"class":4784},[4173,98762,86154],{"class":4661},[4173,98764,81860],{"class":4784},[4173,98766,98767,98769,98771],{"class":4657,"line":6457},[4173,98768,95111],{"class":4784},[4173,98770,86283],{"class":4661},[4173,98772,86358],{"class":4784},[4173,98774,98775,98777,98779],{"class":4657,"line":6462},[4173,98776,95111],{"class":4784},[4173,98778,94864],{"class":4661},[4173,98780,65878],{"class":4784},[4173,98782,98783],{"class":4657,"line":6468},[4173,98784,7090],{"class":4784},[4173,98786,98787,98789,98791,98794,98796,98798],{"class":4657,"line":6473},[4173,98788,79889],{"class":4788},[4173,98790,79934],{"class":4788},[4173,98792,98793],{"class":4661}," schliessen",[4173,98795,80558],{"class":4784},[4173,98797,86035],{"class":4788},[4173,98799,98697],{"class":4784},[4173,98801,98802,98804,98806],{"class":4657,"line":6479},[4173,98803,95111],{"class":4784},[4173,98805,94877],{"class":4661},[4173,98807,65878],{"class":4784},[4173,98809,98810],{"class":4657,"line":6503},[4173,98811,7090],{"class":4784},[4173,98813,98814],{"class":4657,"line":6516},[4173,98815,7090],{"class":4784},[16,98817,98819],{"id":98818},"ruhesanftjavamain","RuheSanft.java(Main)",[4647,98821,98823],{"className":78931,"code":98822,"language":78933,"meta":269,"style":269},"import java.util.concurrent.Semaphore;\npublic class RuheSanft {\npublic static void main(String[] args) throws Exception{\nSemaphore sem = new Semaphore(2);  \u002F\u002Ffaire Warteschlange\nKondolenzbuch opaF = new Kondolenzbuch(\"opaF.txt\");\nString name = \"Besucher\";\nBesucher[] bes = new Besucher[20];\n\u002F\u002F 20 Besucher von \"Opa Friedrich\"\nfor (int i = 0; i \u003C 20; i++) {\nbes[i] = new Besucher(opaF,sem, name+(i+1));\nbes[i].start();\n}\nfor (int i = 0; i \u003C 20; i++) {\nbes[i].join();\n} \u002F\u002F end of for\nopaF.schliessen();\n}\n}\n",[4653,98824,98825,98831,98842,98867,98886,98904,98915,98934,98939,98965,98990,98999,99003,99029,99037,99043,99052,99056],{"__ignoreMap":269},[4173,98826,98827,98829],{"class":4657,"line":4658},[4173,98828,79019],{"class":4788},[4173,98830,95489],{"class":4784},[4173,98832,98833,98835,98837,98840],{"class":4657,"line":270},[4173,98834,79889],{"class":4788},[4173,98836,80062],{"class":4788},[4173,98838,98839],{"class":4661}," RuheSanft",[4173,98841,51614],{"class":4784},[4173,98843,98844,98846,98848,98850,98852,98854,98856,98858,98860,98862,98864],{"class":4657,"line":1263},[4173,98845,79889],{"class":4788},[4173,98847,79892],{"class":4788},[4173,98849,79934],{"class":4788},[4173,98851,79937],{"class":4661},[4173,98853,6390],{"class":4784},[4173,98855,79693],{"class":4788},[4173,98857,80084],{"class":4784},[4173,98859,31283],{"class":7074},[4173,98861,6306],{"class":4784},[4173,98863,86035],{"class":4788},[4173,98865,98866],{"class":4784}," Exception{\n",[4173,98868,98869,98871,98873,98875,98877,98879,98881,98883],{"class":4657,"line":4770},[4173,98870,96318],{"class":4784},[4173,98872,6387],{"class":4788},[4173,98874,79032],{"class":4788},[4173,98876,96325],{"class":4661},[4173,98878,6390],{"class":4784},[4173,98880,14206],{"class":4665},[4173,98882,86471],{"class":4784},[4173,98884,98885],{"class":4766},"\u002F\u002Ffaire Warteschlange\n",[4173,98887,98888,98891,98893,98895,98897,98899,98902],{"class":4657,"line":4775},[4173,98889,98890],{"class":4784},"Kondolenzbuch opaF ",[4173,98892,6387],{"class":4788},[4173,98894,79032],{"class":4788},[4173,98896,98673],{"class":4661},[4173,98898,6390],{"class":4784},[4173,98900,98901],{"class":4669},"\"opaF.txt\"",[4173,98903,55545],{"class":4784},[4173,98905,98906,98908,98910,98913],{"class":4657,"line":6320},[4173,98907,78998],{"class":4784},[4173,98909,6387],{"class":4788},[4173,98911,98912],{"class":4669}," \"Besucher\"",[4173,98914,55559],{"class":4784},[4173,98916,98917,98919,98922,98924,98926,98928,98930,98932],{"class":4657,"line":6325},[4173,98918,98407],{"class":4788},[4173,98920,98921],{"class":4784},"[] bes ",[4173,98923,6387],{"class":4788},[4173,98925,79032],{"class":4788},[4173,98927,98377],{"class":4788},[4173,98929,11612],{"class":4784},[4173,98931,83246],{"class":4665},[4173,98933,90755],{"class":4784},[4173,98935,98936],{"class":4657,"line":6343},[4173,98937,98938],{"class":4766},"\u002F\u002F 20 Besucher von \"Opa Friedrich\"\n",[4173,98940,98941,98943,98945,98947,98949,98951,98953,98955,98957,98959,98961,98963],{"class":4657,"line":6348},[4173,98942,6425],{"class":4788},[4173,98944,4171],{"class":4784},[4173,98946,64831],{"class":4788},[4173,98948,6555],{"class":4784},[4173,98950,6387],{"class":4788},[4173,98952,25370],{"class":4665},[4173,98954,79645],{"class":4784},[4173,98956,24345],{"class":4788},[4173,98958,16865],{"class":4665},[4173,98960,79652],{"class":4784},[4173,98962,10670],{"class":4788},[4173,98964,56319],{"class":4784},[4173,98966,98967,98970,98972,98974,98976,98979,98981,98984,98986,98988],{"class":4657,"line":6457},[4173,98968,98969],{"class":4784},"bes[i] ",[4173,98971,6387],{"class":4788},[4173,98973,79032],{"class":4788},[4173,98975,98377],{"class":4661},[4173,98977,98978],{"class":4784},"(opaF,sem, name",[4173,98980,14419],{"class":4788},[4173,98982,98983],{"class":4784},"(i",[4173,98985,14419],{"class":4788},[4173,98987,14223],{"class":4665},[4173,98989,66047],{"class":4784},[4173,98991,98992,98995,98997],{"class":4657,"line":6462},[4173,98993,98994],{"class":4784},"bes[i].",[4173,98996,30636],{"class":4661},[4173,98998,65878],{"class":4784},[4173,99000,99001],{"class":4657,"line":6468},[4173,99002,7090],{"class":4784},[4173,99004,99005,99007,99009,99011,99013,99015,99017,99019,99021,99023,99025,99027],{"class":4657,"line":6473},[4173,99006,6425],{"class":4788},[4173,99008,4171],{"class":4784},[4173,99010,64831],{"class":4788},[4173,99012,6555],{"class":4784},[4173,99014,6387],{"class":4788},[4173,99016,25370],{"class":4665},[4173,99018,79645],{"class":4784},[4173,99020,24345],{"class":4788},[4173,99022,16865],{"class":4665},[4173,99024,79652],{"class":4784},[4173,99026,10670],{"class":4788},[4173,99028,56319],{"class":4784},[4173,99030,99031,99033,99035],{"class":4657,"line":6479},[4173,99032,98994],{"class":4784},[4173,99034,96467],{"class":4661},[4173,99036,65878],{"class":4784},[4173,99038,99039,99041],{"class":4657,"line":6503},[4173,99040,71897],{"class":4784},[4173,99042,92781],{"class":4766},[4173,99044,99045,99047,99050],{"class":4657,"line":6516},[4173,99046,98542],{"class":4784},[4173,99048,99049],{"class":4661},"schliessen",[4173,99051,65878],{"class":4784},[4173,99053,99054],{"class":4657,"line":6971},[4173,99055,7090],{"class":4784},[4173,99057,99058],{"class":4657,"line":10649},[4173,99059,7090],{"class":4784},[16,99061,99063],{"id":99062},"abbildungen","Abbildungen",[414,99065,99066],{},[1504,99067],{"alt":99068,"src":99069},"Abbildung","\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_1.png",[414,99071,99072],{},[1504,99073],{"alt":99068,"src":99074},"\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_2.png",[414,99076,99077],{},[1504,99078],{"alt":99068,"src":99079},"\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_3.png",[414,99081,99082],{},[1504,99083],{"alt":99068,"src":99084},"\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_4.png",[414,99086,99087],{},[1504,99088],{"alt":99068,"src":99089},"\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_5.png",[414,99091,99092],{},[1504,99093],{"alt":99068,"src":99094},"\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_6.png",[414,99096,99097],{},[1504,99098],{"alt":99068,"src":99099},"\u002Fdownloads\u002FPRG\u002Fimages\u002F7-8-cs_img_7.png",[5719,99101,99102],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":269,"searchDepth":270,"depth":270,"links":99104},[99105,99106,99107,99108,99109,99110,99111,99112,99113,99114,99115,99116,99117,99118,99119,99120,99121,99122,99123,99124,99125,99126,99127,99128,99129,99130,99131,99132,99133,99134,99135,99136,99137,99138,99139,99140,99141,99142,99143,99144,99145,99146,99147,99148,99149,99150,99151,99152,99153,99154,99155,99156,99157,99158,99159,99160,99161,99162,99163,99164,99165,99166,99167,99168,99169,99170,99171,99172,99173,99174,99175,99176,99177],{"id":78927,"depth":270,"text":78928},{"id":79008,"depth":270,"text":79009},{"id":79087,"depth":270,"text":79088},{"id":79130,"depth":270,"text":79131},{"id":79439,"depth":270,"text":79440},{"id":79511,"depth":270,"text":79512},{"id":79622,"depth":270,"text":79623},{"id":79813,"depth":270,"text":79814},{"id":79878,"depth":270,"text":79879},{"id":79972,"depth":270,"text":79973},{"id":80131,"depth":270,"text":80132},{"id":80385,"depth":270,"text":80386},{"id":80482,"depth":270,"text":80483},{"id":80576,"depth":270,"text":80577},{"id":80610,"depth":270,"text":80611},{"id":80711,"depth":270,"text":80712},{"id":80860,"depth":270,"text":80861},{"id":80864,"depth":270,"text":80865},{"id":83477,"depth":270,"text":83478},{"id":84009,"depth":270,"text":84010},{"id":84059,"depth":270,"text":84060},{"id":84106,"depth":270,"text":84107},{"id":84152,"depth":270,"text":84153},{"id":84198,"depth":270,"text":84199},{"id":84244,"depth":270,"text":84245},{"id":84315,"depth":270,"text":84316},{"id":84383,"depth":270,"text":84384},{"id":84449,"depth":270,"text":84450},{"id":84559,"depth":270,"text":84560},{"id":84703,"depth":270,"text":84704},{"id":84729,"depth":270,"text":84730},{"id":84851,"depth":270,"text":84852},{"id":84986,"depth":270,"text":84987},{"id":85706,"depth":270,"text":85707},{"id":85710,"depth":270,"text":85711},{"id":86373,"depth":270,"text":86374},{"id":86765,"depth":270,"text":86766},{"id":86769,"depth":270,"text":86770},{"id":87252,"depth":270,"text":87253},{"id":87506,"depth":270,"text":87507},{"id":87704,"depth":270,"text":87705},{"id":87933,"depth":270,"text":87934},{"id":88069,"depth":270,"text":88070},{"id":89298,"depth":270,"text":89299},{"id":89395,"depth":270,"text":89396},{"id":89500,"depth":270,"text":89501},{"id":89566,"depth":270,"text":89567},{"id":89831,"depth":270,"text":89832},{"id":89336,"depth":270,"text":90074},{"id":90307,"depth":270,"text":90308},{"id":90656,"depth":270,"text":90657},{"id":90660,"depth":270,"text":90661},{"id":91453,"depth":270,"text":91454},{"id":91804,"depth":270,"text":91805},{"id":91960,"depth":270,"text":91961},{"id":91964,"depth":270,"text":90661},{"id":92796,"depth":270,"text":92797},{"id":92987,"depth":270,"text":92988},{"id":92991,"depth":270,"text":92992},{"id":93056,"depth":270,"text":93057},{"id":95306,"depth":270,"text":95307},{"id":95443,"depth":270,"text":95444},{"id":95467,"depth":270,"text":95468},{"id":95471,"depth":270,"text":95472},{"id":96004,"depth":270,"text":96005},{"id":96205,"depth":270,"text":96206},{"id":96513,"depth":270,"text":96514},{"id":96910,"depth":270,"text":96911},{"id":98329,"depth":270,"text":98330},{"id":98346,"depth":270,"text":98347},{"id":98640,"depth":270,"text":98641},{"id":98818,"depth":270,"text":98819},{"id":99062,"depth":270,"text":99063},{},{"title":99180},"Cheat-Sheet (2025\u002F2026)","\u002Ffaecher\u002Fprg\u002F7-8-cs","\u002Fdownloads\u002FPRG\u002FPRG_7-8_CS.pdf",null,{"title":12232,"description":78920},"faecher\u002Fprg\u002F7-8-cs","F6j6HOxIyHdDmLZQqtoa7xxus6YuzBnta-2ERF7-U1s",{"id":99188,"title":12699,"body":99189,"class":35621,"description":269,"extension":283,"meta":123345,"navigation":123346,"path":123347,"pdfDownload":123348,"scope":35621,"scopeName":35627,"seo":123349,"stem":123350,"subject":78629,"subjectName":78630,"type":12231,"typeName":12232,"year":35627,"__hash__":123351},"faecher\u002Ffaecher\u002Fprg\u002Fap-cs.md",{"type":8,"value":99190,"toc":123263},[99191,99193,99396,99398,99402,99466,99470,99531,99535,99569,99575,99839,99842,99907,99911,100010,100014,100191,100195,100252,100256,100337,100341,100481,100484,100488,100721,100725,100815,100819,100904,100908,100935,100939,101028,101032,101163,101165,101167,103551,103555,104051,104055,104100,104104,104148,104152,104194,104198,104240,104244,104286,104290,104353,104357,104418,104422,104482,104486,104586,104590,104699,104703,104718,104722,104743,104747,104858,104862,104988,104992,105694,105696,105698,106241,106245,106310,106312,106314,106588,106592,106771,106775,106879,106883,106928,106932,107039,107041,107111,107113,107187,107189,107226,107228,107270,107272,107276,107693,107697,107930,107934,108122,108126,108323,108327,108449,108453,109590,109594,109599,109613,109617,109816,109821,109841,109845,109849,109867,109872,109889,109893,110098,110102,110125,110129,110133,110150,110154,110480,110484,110508,110510,110594,110598,110691,110695,110751,110753,110808,110812,110994,110996,111214,111216,111447,111449,111721,111723,111727,112466,112470,112788,112792,112931,112933,112936,113713,113717,113901,113905,113963,113967,116064,116068,116189,116191,116193,116684,116686,116863,116865,117152,117154,117516,117518,117962,117966,118984,119004,119008,119175,119193,119197,119204,119208,119218,119221,119225,119256,119260,119270,119274,119327,119331,119334,119349,119353,119374,119378,119398,119402,119432,119436,119439,119454,119458,119477,119481,119484,119488,119508,119512,119522,119526,119528,119809,119811,119980,119982,120218,120222,120786,120790,121015,121019,121207,121211,121215,121491,121495,121618,121622,122034,122038,122341,122345,122943,122946,122949,122952,122955,122958,122961,122964,122967,122970,122973,122976,122979,122982,122985,122988,122991,122994,122997,123000,123003,123006,123009,123012,123015,123018,123021,123024,123027,123030,123033,123036,123039,123042,123045,123048,123051,123054,123057,123060,123063,123066,123069,123072,123075,123078,123081,123084,123087,123090,123093,123096,123099,123102,123105,123108,123111,123114,123117,123120,123123,123126,123129,123132,123135,123138,123141,123144,123147,123150,123153,123156,123159,123162,123165,123168,123171,123174,123177,123180,123183,123186,123189,123192,123195,123198,123201,123204,123207,123210,123213,123216,123219,123222,123225,123228,123231,123234,123237,123240,123243,123246,123249,123252,123255,123258,123261],[11,99192,5780],{"id":5779},[765,99194,99195,99205],{},[768,99196,99197],{},[771,99198,99199,99202],{},[774,99200,99201],{},"Thema",[774,99203,99204],{},"Buchseite",[787,99206,99207,99214,99222,99229,99237,99245,99253,99261,99269,99277,99285,99293,99301,99309,99317,99325,99332,99340,99348,99356,99364,99372,99380,99388],{},[771,99208,99209,99211],{},[792,99210,72529],{},[792,99212,99213],{},"151",[771,99215,99216,99219],{},[792,99217,99218],{},"Klasse – Erweiterte Anwendungen",[792,99220,99221],{},"157",[771,99223,99224,99227],{},[792,99225,99226],{},"Arrays von Klassen",[792,99228,5829],{},[771,99230,99231,99234],{},[792,99232,99233],{},"Klasse Math",[792,99235,99236],{},"193",[771,99238,99239,99242],{},[792,99240,99241],{},"Klasse String",[792,99243,99244],{},"197",[771,99246,99247,99250],{},[792,99248,99249],{},"Objektorientierung",[792,99251,99252],{},"207",[771,99254,99255,99258],{},[792,99256,99257],{},"Instanzmethoden",[792,99259,99260],{},"223",[771,99262,99263,99266],{},[792,99264,99265],{},"Static",[792,99267,99268],{},"229",[771,99270,99271,99274],{},[792,99272,99273],{},"Final",[792,99275,99276],{},"233",[771,99278,99279,99282],{},[792,99280,99281],{},"Vererbung",[792,99283,99284],{},"267",[771,99286,99287,99290],{},[792,99288,99289],{},"Überschreiben",[792,99291,99292],{},"281",[771,99294,99295,99298],{},[792,99296,99297],{},"Zugriffsrechte",[792,99299,99300],{},"309",[771,99302,99303,99306],{},[792,99304,99305],{},"Exceptions",[792,99307,99308],{},"333",[771,99310,99311,99314],{},[792,99312,99313],{},"Exceptions abfangen",[792,99315,99316],{},"335",[771,99318,99319,99322],{},[792,99320,99321],{},"Custom Exception",[792,99323,99324],{},"341",[771,99326,99327,99329],{},[792,99328,90074],{},[792,99330,99331],{},"363",[771,99333,99334,99337],{},[792,99335,99336],{},"Generics",[792,99338,99339],{},"367",[771,99341,99342,99345],{},[792,99343,99344],{},"Wrapper",[792,99346,99347],{},"413",[771,99349,99350,99353],{},[792,99351,99352],{},"Collections (Hashset etc.)",[792,99354,99355],{},"449",[771,99357,99358,99361],{},[792,99359,99360],{},"Iterator",[792,99362,99363],{},"453",[771,99365,99366,99369],{},[792,99367,99368],{},"String Tokenizer",[792,99370,99371],{},"469",[771,99373,99374,99377],{},[792,99375,99376],{},"Threads",[792,99378,99379],{},"589",[771,99381,99382,99385],{},[792,99383,99384],{},"Thread Funktionen",[792,99386,99387],{},"593",[771,99389,99390,99393],{},[792,99391,99392],{},"Thread Lebenszyklus",[792,99394,99395],{},"601",[11,99397,78924],{"id":78923},[16,99399,99401],{"id":99400},"variables-data-types","Variables & Data Types",[4647,99403,99405],{"className":78931,"code":99404,"language":78933,"meta":269,"style":269},"    int age = 25;\ndouble price = 19.99;\nchar letter = 'A';\nboolean isActive = true;\nString name = \"Anna\";\n\n",[4653,99406,99407,99420,99432,99444,99456],{"__ignoreMap":269},[4173,99408,99409,99412,99414,99416,99418],{"class":4657,"line":4658},[4173,99410,99411],{"class":4788},"    int",[4173,99413,64903],{"class":4784},[4173,99415,6387],{"class":4788},[4173,99417,78946],{"class":4665},[4173,99419,55559],{"class":4784},[4173,99421,99422,99424,99426,99428,99430],{"class":4657,"line":270},[4173,99423,78953],{"class":4788},[4173,99425,78956],{"class":4784},[4173,99427,6387],{"class":4788},[4173,99429,78961],{"class":4665},[4173,99431,55559],{"class":4784},[4173,99433,99434,99436,99438,99440,99442],{"class":4657,"line":1263},[4173,99435,78968],{"class":4788},[4173,99437,78971],{"class":4784},[4173,99439,6387],{"class":4788},[4173,99441,78976],{"class":4669},[4173,99443,55559],{"class":4784},[4173,99445,99446,99448,99450,99452,99454],{"class":4657,"line":4770},[4173,99447,78983],{"class":4788},[4173,99449,78986],{"class":4784},[4173,99451,6387],{"class":4788},[4173,99453,78991],{"class":4665},[4173,99455,55559],{"class":4784},[4173,99457,99458,99460,99462,99464],{"class":4657,"line":4775},[4173,99459,78998],{"class":4784},[4173,99461,6387],{"class":4788},[4173,99463,79003],{"class":4669},[4173,99465,55559],{"class":4784},[16,99467,99469],{"id":99468},"basic-input-scanner","Basic Input (Scanner)",[4647,99471,99473],{"className":78931,"code":99472,"language":78933,"meta":269,"style":269},"import java.util.Scanner;\nScanner sc = new Scanner(System.in);\nSystem.out.print(\"Enter your name: \");\nString name = sc.nextLine();\nSystem.out.println(\"Hello \" + name);\n\n",[4653,99474,99475,99481,99493,99505,99517],{"__ignoreMap":269},[4173,99476,99477,99479],{"class":4657,"line":4658},[4173,99478,79019],{"class":4788},[4173,99480,79022],{"class":4784},[4173,99482,99483,99485,99487,99489,99491],{"class":4657,"line":270},[4173,99484,79027],{"class":4784},[4173,99486,6387],{"class":4788},[4173,99488,79032],{"class":4788},[4173,99490,79035],{"class":4661},[4173,99492,79038],{"class":4784},[4173,99494,99495,99497,99499,99501,99503],{"class":4657,"line":1263},[4173,99496,79043],{"class":4784},[4173,99498,79046],{"class":4661},[4173,99500,6390],{"class":4784},[4173,99502,79051],{"class":4669},[4173,99504,55545],{"class":4784},[4173,99506,99507,99509,99511,99513,99515],{"class":4657,"line":4770},[4173,99508,78998],{"class":4784},[4173,99510,6387],{"class":4788},[4173,99512,79062],{"class":4784},[4173,99514,79065],{"class":4661},[4173,99516,65878],{"class":4784},[4173,99518,99519,99521,99523,99525,99527,99529],{"class":4657,"line":4775},[4173,99520,79043],{"class":4784},[4173,99522,79074],{"class":4661},[4173,99524,6390],{"class":4784},[4173,99526,79079],{"class":4669},[4173,99528,11719],{"class":4788},[4173,99530,79084],{"class":4784},[16,99532,99534],{"id":99533},"basic-output","Basic Output",[4647,99536,99538],{"className":78931,"code":99537,"language":78933,"meta":269,"style":269},"    System.out.println(\"Hello World\"); \u002F\u002FWith New Line\nSystem.out.print(\"No newline\");    \u002F\u002FWithout New Line\n\n",[4653,99539,99540,99555],{"__ignoreMap":269},[4173,99541,99542,99545,99547,99549,99551,99553],{"class":4657,"line":4658},[4173,99543,99544],{"class":4784},"    System.out.",[4173,99546,79074],{"class":4661},[4173,99548,6390],{"class":4784},[4173,99550,79104],{"class":4669},[4173,99552,79107],{"class":4784},[4173,99554,79110],{"class":4766},[4173,99556,99557,99559,99561,99563,99565,99567],{"class":4657,"line":270},[4173,99558,79043],{"class":4784},[4173,99560,79046],{"class":4661},[4173,99562,6390],{"class":4784},[4173,99564,79121],{"class":4669},[4173,99566,79124],{"class":4784},[4173,99568,79127],{"class":4766},[16,99570,99572],{"id":99571},"arithmetic-operations",[42,99573,99574],{},"Arithmetic Operations",[4647,99576,99578],{"className":78931,"code":99577,"language":78933,"meta":269,"style":269},"int a = 10;\nint b = 3;\nint sum = a + b; \u002F\u002F Addition: 10 + 3 = 13\nint diff = a - b; \u002F\u002F Subtraktion: 10 - 3 = 7\nint prod = a  b; \u002F\u002F Multiplikation: 10  3 = 30\nint div = a \u002F b; \u002F\u002F Ganzzahl-Division: 10 \u002F 3 = 3\nint mod = a % b; \u002F\u002F Modulo: 10 % 3 = 1\na++; \u002F\u002F Post-Inkrement: a = a + 1 -> a = 11\nb--; \u002F\u002F Post-Dekrement: b = b - 1 -> b = 2\n++a; \u002F\u002F Prä-Inkrement: a = a + 1 -> a = 12\n--b; \u002F\u002F Prä-Dekrement: b = b - 1 -> b = 1\nint sumAssign = 5;\nsumAssign += 3; \u002F\u002F Addition mit Zuweisung: sumAssign = 5 + 3 -> 8\nint diffAssign = 5;\ndiffAssign -= 2; \u002F\u002F Subtraktion mit Zuweisung: diffAssign = 5 - 2 -> 3\nint prodAssign = 5;\nprodAssign = 4; \u002F\u002F Multiplikation mit Zuweisung: prodAssign = 5  4 -> 20\nint divAssign = 20;\ndivAssign \u002F= 5; \u002F\u002F Division mit Zuweisung: divAssign = 20 \u002F 5 -> 4\nint modAssign = 10;\nmodAssign %= 3; \u002F\u002F Modulo mit Zuweisung: modAssign = 10 % 3 -> 1\n\n",[4653,99579,99580,99592,99604,99620,99636,99650,99666,99682,99692,99702,99710,99718,99730,99742,99754,99766,99778,99791,99803,99815,99827],{"__ignoreMap":269},[4173,99581,99582,99584,99586,99588,99590],{"class":4657,"line":4658},[4173,99583,64831],{"class":4788},[4173,99585,79143],{"class":4784},[4173,99587,6387],{"class":4788},[4173,99589,15571],{"class":4665},[4173,99591,55559],{"class":4784},[4173,99593,99594,99596,99598,99600,99602],{"class":4657,"line":270},[4173,99595,64831],{"class":4788},[4173,99597,49052],{"class":4784},[4173,99599,6387],{"class":4788},[4173,99601,16593],{"class":4665},[4173,99603,55559],{"class":4784},[4173,99605,99606,99608,99610,99612,99614,99616,99618],{"class":4657,"line":1263},[4173,99607,64831],{"class":4788},[4173,99609,79168],{"class":4784},[4173,99611,6387],{"class":4788},[4173,99613,79143],{"class":4784},[4173,99615,14419],{"class":4788},[4173,99617,79177],{"class":4784},[4173,99619,79180],{"class":4766},[4173,99621,99622,99624,99626,99628,99630,99632,99634],{"class":4657,"line":4770},[4173,99623,64831],{"class":4788},[4173,99625,79187],{"class":4784},[4173,99627,6387],{"class":4788},[4173,99629,79143],{"class":4784},[4173,99631,4778],{"class":4788},[4173,99633,79177],{"class":4784},[4173,99635,79198],{"class":4766},[4173,99637,99638,99640,99642,99644,99647],{"class":4657,"line":4775},[4173,99639,64831],{"class":4788},[4173,99641,79205],{"class":4784},[4173,99643,6387],{"class":4788},[4173,99645,99646],{"class":4784}," a  b; ",[4173,99648,99649],{"class":4766},"\u002F\u002F Multiplikation: 10  3 = 30\n",[4173,99651,99652,99654,99656,99658,99660,99662,99664],{"class":4657,"line":6320},[4173,99653,64831],{"class":4788},[4173,99655,79223],{"class":4784},[4173,99657,6387],{"class":4788},[4173,99659,79143],{"class":4784},[4173,99661,13658],{"class":4788},[4173,99663,79177],{"class":4784},[4173,99665,79234],{"class":4766},[4173,99667,99668,99670,99672,99674,99676,99678,99680],{"class":4657,"line":6325},[4173,99669,64831],{"class":4788},[4173,99671,79241],{"class":4784},[4173,99673,6387],{"class":4788},[4173,99675,79143],{"class":4784},[4173,99677,79248],{"class":4788},[4173,99679,79177],{"class":4784},[4173,99681,79253],{"class":4766},[4173,99683,99684,99686,99688,99690],{"class":4657,"line":6343},[4173,99685,4687],{"class":4784},[4173,99687,10670],{"class":4788},[4173,99689,6498],{"class":4784},[4173,99691,79264],{"class":4766},[4173,99693,99694,99696,99698,99700],{"class":4657,"line":6348},[4173,99695,6303],{"class":4784},[4173,99697,79271],{"class":4788},[4173,99699,6498],{"class":4784},[4173,99701,79276],{"class":4766},[4173,99703,99704,99706,99708],{"class":4657,"line":6457},[4173,99705,10670],{"class":4788},[4173,99707,79283],{"class":4784},[4173,99709,79286],{"class":4766},[4173,99711,99712,99714,99716],{"class":4657,"line":6462},[4173,99713,79271],{"class":4788},[4173,99715,79293],{"class":4784},[4173,99717,79296],{"class":4766},[4173,99719,99720,99722,99724,99726,99728],{"class":4657,"line":6468},[4173,99721,64831],{"class":4788},[4173,99723,79303],{"class":4784},[4173,99725,6387],{"class":4788},[4173,99727,16450],{"class":4665},[4173,99729,55559],{"class":4784},[4173,99731,99732,99734,99736,99738,99740],{"class":4657,"line":6473},[4173,99733,79314],{"class":4784},[4173,99735,79317],{"class":4788},[4173,99737,16593],{"class":4665},[4173,99739,6498],{"class":4784},[4173,99741,79324],{"class":4766},[4173,99743,99744,99746,99748,99750,99752],{"class":4657,"line":6479},[4173,99745,64831],{"class":4788},[4173,99747,79331],{"class":4784},[4173,99749,6387],{"class":4788},[4173,99751,16450],{"class":4665},[4173,99753,55559],{"class":4784},[4173,99755,99756,99758,99760,99762,99764],{"class":4657,"line":6503},[4173,99757,79342],{"class":4784},[4173,99759,79345],{"class":4788},[4173,99761,15327],{"class":4665},[4173,99763,6498],{"class":4784},[4173,99765,79352],{"class":4766},[4173,99767,99768,99770,99772,99774,99776],{"class":4657,"line":6516},[4173,99769,64831],{"class":4788},[4173,99771,79359],{"class":4784},[4173,99773,6387],{"class":4788},[4173,99775,16450],{"class":4665},[4173,99777,55559],{"class":4784},[4173,99779,99780,99782,99784,99786,99788],{"class":4657,"line":6971},[4173,99781,79370],{"class":4784},[4173,99783,6387],{"class":4788},[4173,99785,10954],{"class":4665},[4173,99787,6498],{"class":4784},[4173,99789,99790],{"class":4766},"\u002F\u002F Multiplikation mit Zuweisung: prodAssign = 5  4 -> 20\n",[4173,99792,99793,99795,99797,99799,99801],{"class":4657,"line":10649},[4173,99794,64831],{"class":4788},[4173,99796,79387],{"class":4784},[4173,99798,6387],{"class":4788},[4173,99800,16865],{"class":4665},[4173,99802,55559],{"class":4784},[4173,99804,99805,99807,99809,99811,99813],{"class":4657,"line":10654},[4173,99806,79398],{"class":4784},[4173,99808,79401],{"class":4788},[4173,99810,16450],{"class":4665},[4173,99812,6498],{"class":4784},[4173,99814,79408],{"class":4766},[4173,99816,99817,99819,99821,99823,99825],{"class":4657,"line":10659},[4173,99818,64831],{"class":4788},[4173,99820,79415],{"class":4784},[4173,99822,6387],{"class":4788},[4173,99824,15571],{"class":4665},[4173,99826,55559],{"class":4784},[4173,99828,99829,99831,99833,99835,99837],{"class":4657,"line":10664},[4173,99830,79426],{"class":4784},[4173,99832,79429],{"class":4788},[4173,99834,16593],{"class":4665},[4173,99836,6498],{"class":4784},[4173,99838,79436],{"class":4766},[16,99840,99841],{"id":19724},"If \u002F Else",[4647,99843,99845],{"className":78931,"code":99844,"language":78933,"meta":269,"style":269},"int age = 18;\nif (age >= 18) {\n    System.out.println(\"Adult\");\n} else {\n    System.out.println(\"Minor\");\n}\n\n",[4653,99846,99847,99859,99871,99883,99891,99903],{"__ignoreMap":269},[4173,99848,99849,99851,99853,99855,99857],{"class":4657,"line":4658},[4173,99850,64831],{"class":4788},[4173,99852,64903],{"class":4784},[4173,99854,6387],{"class":4788},[4173,99856,48382],{"class":4665},[4173,99858,55559],{"class":4784},[4173,99860,99861,99863,99865,99867,99869],{"class":4657,"line":270},[4173,99862,6201],{"class":4788},[4173,99864,79464],{"class":4784},[4173,99866,48379],{"class":4788},[4173,99868,48382],{"class":4665},[4173,99870,56319],{"class":4784},[4173,99872,99873,99875,99877,99879,99881],{"class":4657,"line":1263},[4173,99874,99544],{"class":4784},[4173,99876,79074],{"class":4661},[4173,99878,6390],{"class":4784},[4173,99880,79481],{"class":4669},[4173,99882,55545],{"class":4784},[4173,99884,99885,99887,99889],{"class":4657,"line":4770},[4173,99886,71897],{"class":4784},[4173,99888,19734],{"class":4788},[4173,99890,51614],{"class":4784},[4173,99892,99893,99895,99897,99899,99901],{"class":4657,"line":4775},[4173,99894,99544],{"class":4784},[4173,99896,79074],{"class":4661},[4173,99898,6390],{"class":4784},[4173,99900,79502],{"class":4669},[4173,99902,55545],{"class":4784},[4173,99904,99905],{"class":4657,"line":6320},[4173,99906,7090],{"class":4784},[16,99908,99910],{"id":99909},"switch-case","Switch Case",[4647,99912,99914],{"className":78931,"code":99913,"language":78933,"meta":269,"style":269},"    int day = 3;\nswitch (day) {\n            case 1 -> System.out.println(\"Monday\");\n            case 2 -> System.out.println(\"Tuesday\");\n            case 3 -> System.out.println(\"Wednesday\");\n            default -> System.out.println(\"Unknown\");\n}\n\n",[4653,99915,99916,99928,99934,99953,99971,99989,100006],{"__ignoreMap":269},[4173,99917,99918,99920,99922,99924,99926],{"class":4657,"line":4658},[4173,99919,99411],{"class":4788},[4173,99921,79524],{"class":4784},[4173,99923,6387],{"class":4788},[4173,99925,16593],{"class":4665},[4173,99927,55559],{"class":4784},[4173,99929,99930,99932],{"class":4657,"line":270},[4173,99931,79535],{"class":4788},[4173,99933,79538],{"class":4784},[4173,99935,99936,99939,99941,99943,99945,99947,99949,99951],{"class":4657,"line":1263},[4173,99937,99938],{"class":4788},"            case",[4173,99940,10264],{"class":4665},[4173,99942,79547],{"class":4788},[4173,99944,79550],{"class":4784},[4173,99946,79074],{"class":4661},[4173,99948,6390],{"class":4784},[4173,99950,79557],{"class":4669},[4173,99952,55545],{"class":4784},[4173,99954,99955,99957,99959,99961,99963,99965,99967,99969],{"class":4657,"line":4770},[4173,99956,99938],{"class":4788},[4173,99958,15327],{"class":4665},[4173,99960,79547],{"class":4788},[4173,99962,79550],{"class":4784},[4173,99964,79074],{"class":4661},[4173,99966,6390],{"class":4784},[4173,99968,79576],{"class":4669},[4173,99970,55545],{"class":4784},[4173,99972,99973,99975,99977,99979,99981,99983,99985,99987],{"class":4657,"line":4775},[4173,99974,99938],{"class":4788},[4173,99976,16593],{"class":4665},[4173,99978,79547],{"class":4788},[4173,99980,79550],{"class":4784},[4173,99982,79074],{"class":4661},[4173,99984,6390],{"class":4784},[4173,99986,79595],{"class":4669},[4173,99988,55545],{"class":4784},[4173,99990,99991,99994,99996,99998,100000,100002,100004],{"class":4657,"line":6320},[4173,99992,99993],{"class":4788},"            default",[4173,99995,79547],{"class":4788},[4173,99997,79550],{"class":4784},[4173,99999,79074],{"class":4661},[4173,100001,6390],{"class":4784},[4173,100003,79613],{"class":4669},[4173,100005,55545],{"class":4784},[4173,100007,100008],{"class":4657,"line":6325},[4173,100009,7090],{"class":4784},[16,100011,100013],{"id":100012},"loops-for-while","Loops (For \u002FWhile)",[4647,100015,100017],{"className":78931,"code":100016,"language":78933,"meta":269,"style":269},"for (int i = 0; i \u003C 5; i++) {\n    System.out.println(\"i = \" + i);\n}\n     String text = \"Hello World 123\";\n     String[] words = text.split(\" \");\n        System.out.println(\"Split:\");\n        for(String word : words) {\n            System.out.println(word);\n            \u002F\u002F Hello\n            \u002F\u002F World\n            \u002F\u002F 123\n        }\nint i = 0;\nwhile (i \u003C 5) {\n    System.out.println(i);\n    i++;\n}\n\n",[4653,100018,100019,100045,100059,100063,100074,100093,100106,100117,100126,100131,100136,100141,100146,100158,100170,100178,100187],{"__ignoreMap":269},[4173,100020,100021,100023,100025,100027,100029,100031,100033,100035,100037,100039,100041,100043],{"class":4657,"line":4658},[4173,100022,6425],{"class":4788},[4173,100024,4171],{"class":4784},[4173,100026,64831],{"class":4788},[4173,100028,6555],{"class":4784},[4173,100030,6387],{"class":4788},[4173,100032,25370],{"class":4665},[4173,100034,79645],{"class":4784},[4173,100036,24345],{"class":4788},[4173,100038,16450],{"class":4665},[4173,100040,79652],{"class":4784},[4173,100042,10670],{"class":4788},[4173,100044,56319],{"class":4784},[4173,100046,100047,100049,100051,100053,100055,100057],{"class":4657,"line":270},[4173,100048,99544],{"class":4784},[4173,100050,79074],{"class":4661},[4173,100052,6390],{"class":4784},[4173,100054,79667],{"class":4669},[4173,100056,11719],{"class":4788},[4173,100058,79672],{"class":4784},[4173,100060,100061],{"class":4657,"line":1263},[4173,100062,7090],{"class":4784},[4173,100064,100065,100068,100070,100072],{"class":4657,"line":4770},[4173,100066,100067],{"class":4784},"     String text ",[4173,100069,6387],{"class":4788},[4173,100071,79686],{"class":4669},[4173,100073,55559],{"class":4784},[4173,100075,100076,100079,100081,100083,100085,100087,100089,100091],{"class":4657,"line":4775},[4173,100077,100078],{"class":4788},"     String",[4173,100080,79696],{"class":4784},[4173,100082,6387],{"class":4788},[4173,100084,79701],{"class":4784},[4173,100086,79704],{"class":4661},[4173,100088,6390],{"class":4784},[4173,100090,79709],{"class":4669},[4173,100092,55545],{"class":4784},[4173,100094,100095,100098,100100,100102,100104],{"class":4657,"line":6320},[4173,100096,100097],{"class":4784},"        System.out.",[4173,100099,79074],{"class":4661},[4173,100101,6390],{"class":4784},[4173,100103,79722],{"class":4669},[4173,100105,55545],{"class":4784},[4173,100107,100108,100111,100113,100115],{"class":4657,"line":6325},[4173,100109,100110],{"class":4788},"        for",[4173,100112,79731],{"class":4784},[4173,100114,8158],{"class":4788},[4173,100116,79736],{"class":4784},[4173,100118,100119,100122,100124],{"class":4657,"line":6343},[4173,100120,100121],{"class":4784},"            System.out.",[4173,100123,79074],{"class":4661},[4173,100125,79745],{"class":4784},[4173,100127,100128],{"class":4657,"line":6348},[4173,100129,100130],{"class":4766},"            \u002F\u002F Hello\n",[4173,100132,100133],{"class":4657,"line":6457},[4173,100134,100135],{"class":4766},"            \u002F\u002F World\n",[4173,100137,100138],{"class":4657,"line":6462},[4173,100139,100140],{"class":4766},"            \u002F\u002F 123\n",[4173,100142,100143],{"class":4657,"line":6468},[4173,100144,100145],{"class":4784},"        }\n",[4173,100147,100148,100150,100152,100154,100156],{"class":4657,"line":6473},[4173,100149,64831],{"class":4788},[4173,100151,6555],{"class":4784},[4173,100153,6387],{"class":4788},[4173,100155,25370],{"class":4665},[4173,100157,55559],{"class":4784},[4173,100159,100160,100162,100164,100166,100168],{"class":4657,"line":6479},[4173,100161,6694],{"class":4788},[4173,100163,79783],{"class":4784},[4173,100165,24345],{"class":4788},[4173,100167,16450],{"class":4665},[4173,100169,56319],{"class":4784},[4173,100171,100172,100174,100176],{"class":4657,"line":6503},[4173,100173,99544],{"class":4784},[4173,100175,79074],{"class":4661},[4173,100177,79798],{"class":4784},[4173,100179,100180,100183,100185],{"class":4657,"line":6516},[4173,100181,100182],{"class":4784},"    i",[4173,100184,10670],{"class":4788},[4173,100186,55559],{"class":4784},[4173,100188,100189],{"class":4657,"line":6971},[4173,100190,7090],{"class":4784},[16,100192,100194],{"id":100193},"arrays","Arrays",[4647,100196,100198],{"className":78931,"code":100197,"language":78933,"meta":269,"style":269},"    int[] numbers = {1, 2, 3, 4};\nfor (int n : numbers) {\n    System.out.println(n);\n}\n\n",[4653,100199,100200,100226,100240,100248],{"__ignoreMap":269},[4173,100201,100202,100204,100206,100208,100210,100212,100214,100216,100218,100220,100222,100224],{"class":4657,"line":4658},[4173,100203,99411],{"class":4788},[4173,100205,79826],{"class":4784},[4173,100207,6387],{"class":4788},[4173,100209,6560],{"class":4784},[4173,100211,14223],{"class":4665},[4173,100213,8629],{"class":4784},[4173,100215,14206],{"class":4665},[4173,100217,8629],{"class":4784},[4173,100219,14318],{"class":4665},[4173,100221,8629],{"class":4784},[4173,100223,2894],{"class":4665},[4173,100225,79847],{"class":4784},[4173,100227,100228,100230,100232,100234,100236,100238],{"class":4657,"line":270},[4173,100229,6425],{"class":4788},[4173,100231,4171],{"class":4784},[4173,100233,64831],{"class":4788},[4173,100235,66279],{"class":4784},[4173,100237,8158],{"class":4788},[4173,100239,79862],{"class":4784},[4173,100241,100242,100244,100246],{"class":4657,"line":1263},[4173,100243,99544],{"class":4784},[4173,100245,79074],{"class":4661},[4173,100247,79871],{"class":4784},[4173,100249,100250],{"class":4657,"line":4770},[4173,100251,7090],{"class":4784},[16,100253,100255],{"id":100254},"methods","Methods",[4647,100257,100259],{"className":78931,"code":100258,"language":78933,"meta":269,"style":269},"    public static int add(int a, int b) {\n    return a + b;\n}\npublic static void main(String[] args) {\n        System.out.println(add(3, 5));\n}\n\n",[4653,100260,100261,100282,100293,100297,100313,100333],{"__ignoreMap":269},[4173,100262,100263,100266,100268,100270,100272,100274,100276,100278,100280],{"class":4657,"line":4658},[4173,100264,100265],{"class":4788},"    public",[4173,100267,79892],{"class":4788},[4173,100269,79895],{"class":4788},[4173,100271,79898],{"class":4661},[4173,100273,6390],{"class":4784},[4173,100275,64831],{"class":4788},[4173,100277,79905],{"class":4784},[4173,100279,64831],{"class":4788},[4173,100281,79910],{"class":4784},[4173,100283,100284,100287,100289,100291],{"class":4657,"line":270},[4173,100285,100286],{"class":4788},"    return",[4173,100288,79143],{"class":4784},[4173,100290,14419],{"class":4788},[4173,100292,79921],{"class":4784},[4173,100294,100295],{"class":4657,"line":1263},[4173,100296,7090],{"class":4784},[4173,100298,100299,100301,100303,100305,100307,100309,100311],{"class":4657,"line":4770},[4173,100300,79889],{"class":4788},[4173,100302,79892],{"class":4788},[4173,100304,79934],{"class":4788},[4173,100306,79937],{"class":4661},[4173,100308,6390],{"class":4784},[4173,100310,79693],{"class":4788},[4173,100312,79944],{"class":4784},[4173,100314,100315,100317,100319,100321,100323,100325,100327,100329,100331],{"class":4657,"line":4775},[4173,100316,100097],{"class":4784},[4173,100318,79074],{"class":4661},[4173,100320,6390],{"class":4784},[4173,100322,79955],{"class":4661},[4173,100324,6390],{"class":4784},[4173,100326,14318],{"class":4665},[4173,100328,8629],{"class":4784},[4173,100330,14292],{"class":4665},[4173,100332,66047],{"class":4784},[4173,100334,100335],{"class":4657,"line":6320},[4173,100336,7090],{"class":4784},[16,100338,100340],{"id":100339},"classes-objects-main","Classes & Objects & Main",[4647,100342,100344],{"className":78931,"code":100343,"language":78933,"meta":269,"style":269},"class Person {\n    String name;\n    Person(String name) {\n        this.name = name;\n    }\n    void greet() {\n        System.out.println(\"Hello, I'm \" + name);\n    }\n}\npublic class Main {\n    public static void main(String[] args) {\n        Person p = new Person(\"Anna\");\n        p.greet();\n    }\n}\n\n",[4653,100345,100346,100354,100359,100370,100381,100386,100395,100409,100413,100417,100427,100447,100464,100473,100477],{"__ignoreMap":269},[4173,100347,100348,100350,100352],{"class":4657,"line":4658},[4173,100349,79983],{"class":4788},[4173,100351,79986],{"class":4661},[4173,100353,51614],{"class":4784},[4173,100355,100356],{"class":4657,"line":270},[4173,100357,100358],{"class":4784},"    String name;\n",[4173,100360,100361,100364,100366,100368],{"class":4657,"line":1263},[4173,100362,100363],{"class":4661},"    Person",[4173,100365,80001],{"class":4784},[4173,100367,28734],{"class":7074},[4173,100369,56319],{"class":4784},[4173,100371,100372,100375,100377,100379],{"class":4657,"line":4770},[4173,100373,100374],{"class":4665},"        this",[4173,100376,80013],{"class":4784},[4173,100378,6387],{"class":4788},[4173,100380,80018],{"class":4784},[4173,100382,100383],{"class":4657,"line":4775},[4173,100384,100385],{"class":4784},"    }\n",[4173,100387,100388,100391,100393],{"class":4657,"line":6320},[4173,100389,100390],{"class":4788},"    void",[4173,100392,80030],{"class":4661},[4173,100394,7062],{"class":4784},[4173,100396,100397,100399,100401,100403,100405,100407],{"class":4657,"line":6325},[4173,100398,100097],{"class":4784},[4173,100400,79074],{"class":4661},[4173,100402,6390],{"class":4784},[4173,100404,80043],{"class":4669},[4173,100406,11719],{"class":4788},[4173,100408,79084],{"class":4784},[4173,100410,100411],{"class":4657,"line":6343},[4173,100412,100385],{"class":4784},[4173,100414,100415],{"class":4657,"line":6348},[4173,100416,7090],{"class":4784},[4173,100418,100419,100421,100423,100425],{"class":4657,"line":6457},[4173,100420,79889],{"class":4788},[4173,100422,80062],{"class":4788},[4173,100424,80065],{"class":4661},[4173,100426,51614],{"class":4784},[4173,100428,100429,100431,100433,100435,100437,100439,100441,100443,100445],{"class":4657,"line":6462},[4173,100430,100265],{"class":4788},[4173,100432,79892],{"class":4788},[4173,100434,79934],{"class":4788},[4173,100436,79937],{"class":4661},[4173,100438,6390],{"class":4784},[4173,100440,79693],{"class":4788},[4173,100442,80084],{"class":4784},[4173,100444,31283],{"class":7074},[4173,100446,56319],{"class":4784},[4173,100448,100449,100452,100454,100456,100458,100460,100462],{"class":4657,"line":6468},[4173,100450,100451],{"class":4784},"        Person p ",[4173,100453,6387],{"class":4788},[4173,100455,79032],{"class":4788},[4173,100457,79986],{"class":4661},[4173,100459,6390],{"class":4784},[4173,100461,80104],{"class":4669},[4173,100463,55545],{"class":4784},[4173,100465,100466,100469,100471],{"class":4657,"line":6473},[4173,100467,100468],{"class":4784},"        p.",[4173,100470,80114],{"class":4661},[4173,100472,65878],{"class":4784},[4173,100474,100475],{"class":4657,"line":6479},[4173,100476,100385],{"class":4784},[4173,100478,100479],{"class":4657,"line":6503},[4173,100480,7090],{"class":4784},[11,100482,100483],{"id":80127},"Klassen",[16,100485,100487],{"id":100486},"einfache-klasse-person","Einfache Klasse – Person",[4647,100489,100491],{"className":78931,"code":100490,"language":78933,"meta":269,"style":269},"public class Person {\n    private String name;\n    private int age;\n    \u002F\u002F Konstruktor\n    public Person(String name, int age) {\n        this.name = name;\n        this.age = age;\n    }\n    \u002F\u002F Getter & Setter\n    public String getName() {\n        return name;\n    }\n    public void setName(String name) {\n        this.name = name;\n    }\n    public int getAge() {\n        return age;\n    }\n    public void setAge(int age) {\n        this.age = age;\n    }\n    \u002F\u002F Methode\n    public void introduce() {\n        System.out.println(\"Hallo, ich bin \" + name + \" und \" + age + \" Jahre alt.\");\n    }\n}\n\n",[4653,100492,100493,100503,100510,100518,100523,100541,100551,100561,100565,100570,100580,100587,100591,100605,100615,100619,100629,100635,100639,100655,100665,100669,100674,100684,100713,100717],{"__ignoreMap":269},[4173,100494,100495,100497,100499,100501],{"class":4657,"line":4658},[4173,100496,79889],{"class":4788},[4173,100498,80062],{"class":4788},[4173,100500,79986],{"class":4661},[4173,100502,51614],{"class":4784},[4173,100504,100505,100508],{"class":4657,"line":270},[4173,100506,100507],{"class":4788},"    private",[4173,100509,80155],{"class":4784},[4173,100511,100512,100514,100516],{"class":4657,"line":1263},[4173,100513,100507],{"class":4788},[4173,100515,79895],{"class":4788},[4173,100517,80164],{"class":4784},[4173,100519,100520],{"class":4657,"line":4770},[4173,100521,100522],{"class":4766},"    \u002F\u002F Konstruktor\n",[4173,100524,100525,100527,100529,100531,100533,100535,100537,100539],{"class":4657,"line":4775},[4173,100526,100265],{"class":4788},[4173,100528,79986],{"class":4661},[4173,100530,80001],{"class":4784},[4173,100532,28734],{"class":7074},[4173,100534,8629],{"class":4784},[4173,100536,64831],{"class":4788},[4173,100538,80186],{"class":7074},[4173,100540,56319],{"class":4784},[4173,100542,100543,100545,100547,100549],{"class":4657,"line":6320},[4173,100544,100374],{"class":4665},[4173,100546,80013],{"class":4784},[4173,100548,6387],{"class":4788},[4173,100550,80018],{"class":4784},[4173,100552,100553,100555,100557,100559],{"class":4657,"line":6325},[4173,100554,100374],{"class":4665},[4173,100556,80205],{"class":4784},[4173,100558,6387],{"class":4788},[4173,100560,80164],{"class":4784},[4173,100562,100563],{"class":4657,"line":6343},[4173,100564,100385],{"class":4784},[4173,100566,100567],{"class":4657,"line":6348},[4173,100568,100569],{"class":4766},"    \u002F\u002F Getter & Setter\n",[4173,100571,100572,100574,100576,100578],{"class":4657,"line":6457},[4173,100573,100265],{"class":4788},[4173,100575,80225],{"class":4784},[4173,100577,80228],{"class":4661},[4173,100579,7062],{"class":4784},[4173,100581,100582,100585],{"class":4657,"line":6462},[4173,100583,100584],{"class":4788},"        return",[4173,100586,80018],{"class":4784},[4173,100588,100589],{"class":4657,"line":6468},[4173,100590,100385],{"class":4784},[4173,100592,100593,100595,100597,100599,100601,100603],{"class":4657,"line":6473},[4173,100594,100265],{"class":4788},[4173,100596,79934],{"class":4788},[4173,100598,80249],{"class":4661},[4173,100600,80001],{"class":4784},[4173,100602,28734],{"class":7074},[4173,100604,56319],{"class":4784},[4173,100606,100607,100609,100611,100613],{"class":4657,"line":6479},[4173,100608,100374],{"class":4665},[4173,100610,80013],{"class":4784},[4173,100612,6387],{"class":4788},[4173,100614,80018],{"class":4784},[4173,100616,100617],{"class":4657,"line":6503},[4173,100618,100385],{"class":4784},[4173,100620,100621,100623,100625,100627],{"class":4657,"line":6516},[4173,100622,100265],{"class":4788},[4173,100624,79895],{"class":4788},[4173,100626,80278],{"class":4661},[4173,100628,7062],{"class":4784},[4173,100630,100631,100633],{"class":4657,"line":6971},[4173,100632,100584],{"class":4788},[4173,100634,80164],{"class":4784},[4173,100636,100637],{"class":4657,"line":10649},[4173,100638,100385],{"class":4784},[4173,100640,100641,100643,100645,100647,100649,100651,100653],{"class":4657,"line":10654},[4173,100642,100265],{"class":4788},[4173,100644,79934],{"class":4788},[4173,100646,80299],{"class":4661},[4173,100648,6390],{"class":4784},[4173,100650,64831],{"class":4788},[4173,100652,80186],{"class":7074},[4173,100654,56319],{"class":4784},[4173,100656,100657,100659,100661,100663],{"class":4657,"line":10659},[4173,100658,100374],{"class":4665},[4173,100660,80205],{"class":4784},[4173,100662,6387],{"class":4788},[4173,100664,80164],{"class":4784},[4173,100666,100667],{"class":4657,"line":10664},[4173,100668,100385],{"class":4784},[4173,100670,100671],{"class":4657,"line":10676},[4173,100672,100673],{"class":4766},"    \u002F\u002F Methode\n",[4173,100675,100676,100678,100680,100682],{"class":4657,"line":10681},[4173,100677,100265],{"class":4788},[4173,100679,79934],{"class":4788},[4173,100681,80335],{"class":4661},[4173,100683,7062],{"class":4784},[4173,100685,100686,100688,100690,100692,100694,100696,100698,100700,100702,100704,100706,100708,100711],{"class":4657,"line":10702},[4173,100687,100097],{"class":4784},[4173,100689,79074],{"class":4661},[4173,100691,6390],{"class":4784},[4173,100693,80348],{"class":4669},[4173,100695,11719],{"class":4788},[4173,100697,80353],{"class":4784},[4173,100699,14419],{"class":4788},[4173,100701,80358],{"class":4669},[4173,100703,11719],{"class":4788},[4173,100705,64903],{"class":4784},[4173,100707,14419],{"class":4788},[4173,100709,100710],{"class":4669}," \" Jahre alt.\"",[4173,100712,55545],{"class":4784},[4173,100714,100715],{"class":4657,"line":10707},[4173,100716,100385],{"class":4784},[4173,100718,100719],{"class":4657,"line":10712},[4173,100720,7090],{"class":4784},[16,100722,100724],{"id":100723},"abstrakte-klasse-animal","Abstrakte Klasse – Animal",[4647,100726,100728],{"className":78931,"code":100727,"language":78933,"meta":269,"style":269},"public abstract class Animal {\n    private String name;\n    public Animal(String name) {\n        this.name = name;\n    }\n    public String getName() {\n        return name;\n    }\n    \u002F\u002F Abstrakte Methode: muss in Unterklassen implementiert werden\n    public abstract void makeSound();\n}\n\n",[4653,100729,100730,100742,100748,100760,100770,100774,100784,100790,100794,100799,100811],{"__ignoreMap":269},[4173,100731,100732,100734,100736,100738,100740],{"class":4657,"line":4658},[4173,100733,79889],{"class":4788},[4173,100735,80398],{"class":4788},[4173,100737,80062],{"class":4788},[4173,100739,80403],{"class":4661},[4173,100741,51614],{"class":4784},[4173,100743,100744,100746],{"class":4657,"line":270},[4173,100745,100507],{"class":4788},[4173,100747,80155],{"class":4784},[4173,100749,100750,100752,100754,100756,100758],{"class":4657,"line":1263},[4173,100751,100265],{"class":4788},[4173,100753,80403],{"class":4661},[4173,100755,80001],{"class":4784},[4173,100757,28734],{"class":7074},[4173,100759,56319],{"class":4784},[4173,100761,100762,100764,100766,100768],{"class":4657,"line":4770},[4173,100763,100374],{"class":4665},[4173,100765,80013],{"class":4784},[4173,100767,6387],{"class":4788},[4173,100769,80018],{"class":4784},[4173,100771,100772],{"class":4657,"line":4775},[4173,100773,100385],{"class":4784},[4173,100775,100776,100778,100780,100782],{"class":4657,"line":6320},[4173,100777,100265],{"class":4788},[4173,100779,80225],{"class":4784},[4173,100781,80228],{"class":4661},[4173,100783,7062],{"class":4784},[4173,100785,100786,100788],{"class":4657,"line":6325},[4173,100787,100584],{"class":4788},[4173,100789,80018],{"class":4784},[4173,100791,100792],{"class":4657,"line":6343},[4173,100793,100385],{"class":4784},[4173,100795,100796],{"class":4657,"line":6348},[4173,100797,100798],{"class":4766},"    \u002F\u002F Abstrakte Methode: muss in Unterklassen implementiert werden\n",[4173,100800,100801,100803,100805,100807,100809],{"class":4657,"line":6457},[4173,100802,100265],{"class":4788},[4173,100804,80398],{"class":4788},[4173,100806,79934],{"class":4788},[4173,100808,80473],{"class":4661},[4173,100810,65878],{"class":4784},[4173,100812,100813],{"class":4657,"line":6462},[4173,100814,7090],{"class":4784},[16,100816,100818],{"id":100817},"vererbung-dog","Vererbung – Dog",[4647,100820,100822],{"className":78931,"code":100821,"language":78933,"meta":269,"style":269},"public class Dog extends Animal {\n    public Dog(String name) {\n        super(name);\n    }\n    @Override\n    public void makeSound() {\n        System.out.println(getName() + \" sagt: Wuff!\");\n    }\n}\n\n",[4653,100823,100824,100838,100850,100857,100861,100868,100878,100896,100900],{"__ignoreMap":269},[4173,100825,100826,100828,100830,100832,100834,100836],{"class":4657,"line":4658},[4173,100827,79889],{"class":4788},[4173,100829,80062],{"class":4788},[4173,100831,80497],{"class":4661},[4173,100833,80500],{"class":4788},[4173,100835,80403],{"class":4661},[4173,100837,51614],{"class":4784},[4173,100839,100840,100842,100844,100846,100848],{"class":4657,"line":270},[4173,100841,100265],{"class":4788},[4173,100843,80497],{"class":4661},[4173,100845,80001],{"class":4784},[4173,100847,28734],{"class":7074},[4173,100849,56319],{"class":4784},[4173,100851,100852,100855],{"class":4657,"line":1263},[4173,100853,100854],{"class":4665},"        super",[4173,100856,80524],{"class":4784},[4173,100858,100859],{"class":4657,"line":4770},[4173,100860,100385],{"class":4784},[4173,100862,100863,100866],{"class":4657,"line":4775},[4173,100864,100865],{"class":4784},"    @",[4173,100867,80535],{"class":4788},[4173,100869,100870,100872,100874,100876],{"class":4657,"line":6320},[4173,100871,100265],{"class":4788},[4173,100873,79934],{"class":4788},[4173,100875,80473],{"class":4661},[4173,100877,7062],{"class":4784},[4173,100879,100880,100882,100884,100886,100888,100890,100892,100894],{"class":4657,"line":6325},[4173,100881,100097],{"class":4784},[4173,100883,79074],{"class":4661},[4173,100885,6390],{"class":4784},[4173,100887,80228],{"class":4661},[4173,100889,80558],{"class":4784},[4173,100891,14419],{"class":4788},[4173,100893,80563],{"class":4669},[4173,100895,55545],{"class":4784},[4173,100897,100898],{"class":4657,"line":6343},[4173,100899,100385],{"class":4784},[4173,100901,100902],{"class":4657,"line":6348},[4173,100903,7090],{"class":4784},[16,100905,100907],{"id":100906},"interface-movable","Interface – Movable",[4647,100909,100911],{"className":78931,"code":100910,"language":78933,"meta":269,"style":269},"public interface Movable {\n    void move();\n}\n\n",[4653,100912,100913,100923,100931],{"__ignoreMap":269},[4173,100914,100915,100917,100919,100921],{"class":4657,"line":4658},[4173,100916,79889],{"class":4788},[4173,100918,80589],{"class":4788},[4173,100920,80592],{"class":4661},[4173,100922,51614],{"class":4784},[4173,100924,100925,100927,100929],{"class":4657,"line":270},[4173,100926,100390],{"class":4788},[4173,100928,80601],{"class":4661},[4173,100930,65878],{"class":4784},[4173,100932,100933],{"class":4657,"line":1263},[4173,100934,7090],{"class":4784},[16,100936,100938],{"id":100937},"klasse-die-ein-interface-implementiert-car","Klasse, die ein Interface implementiert – Car",[4647,100940,100942],{"className":78931,"code":100941,"language":78933,"meta":269,"style":269},"public class Car implements Movable {\n    private String model;\n    public Car(String model) {\n        this.model = model;\n    }\n    @Override\n    public void move() {\n        System.out.println(model + \" fährt los!\");\n    }\n}\n\n",[4653,100943,100944,100958,100964,100976,100986,100990,100996,101006,101020,101024],{"__ignoreMap":269},[4173,100945,100946,100948,100950,100952,100954,100956],{"class":4657,"line":4658},[4173,100947,79889],{"class":4788},[4173,100949,80062],{"class":4788},[4173,100951,80625],{"class":4661},[4173,100953,80628],{"class":4788},[4173,100955,80592],{"class":4661},[4173,100957,51614],{"class":4784},[4173,100959,100960,100962],{"class":4657,"line":270},[4173,100961,100507],{"class":4788},[4173,100963,80639],{"class":4784},[4173,100965,100966,100968,100970,100972,100974],{"class":4657,"line":1263},[4173,100967,100265],{"class":4788},[4173,100969,80625],{"class":4661},[4173,100971,80001],{"class":4784},[4173,100973,80650],{"class":7074},[4173,100975,56319],{"class":4784},[4173,100977,100978,100980,100982,100984],{"class":4657,"line":4770},[4173,100979,100374],{"class":4665},[4173,100981,80659],{"class":4784},[4173,100983,6387],{"class":4788},[4173,100985,80664],{"class":4784},[4173,100987,100988],{"class":4657,"line":4775},[4173,100989,100385],{"class":4784},[4173,100991,100992,100994],{"class":4657,"line":6320},[4173,100993,100865],{"class":4784},[4173,100995,80535],{"class":4788},[4173,100997,100998,101000,101002,101004],{"class":4657,"line":6325},[4173,100999,100265],{"class":4788},[4173,101001,79934],{"class":4788},[4173,101003,80601],{"class":4661},[4173,101005,7062],{"class":4784},[4173,101007,101008,101010,101012,101014,101016,101018],{"class":4657,"line":6343},[4173,101009,100097],{"class":4784},[4173,101011,79074],{"class":4661},[4173,101013,80693],{"class":4784},[4173,101015,14419],{"class":4788},[4173,101017,80698],{"class":4669},[4173,101019,55545],{"class":4784},[4173,101021,101022],{"class":4657,"line":6348},[4173,101023,100385],{"class":4784},[4173,101025,101026],{"class":4657,"line":6457},[4173,101027,7090],{"class":4784},[16,101029,101031],{"id":101030},"main-klasse-zum-testen","Main-Klasse zum Testen",[4647,101033,101035],{"className":78931,"code":101034,"language":78933,"meta":269,"style":269},"public class Main {\n    \u002F\u002FGlobale Variabeln HIER\n    public static void main(String[] args) {\n        Person p = new Person(\"Anna\", 28); \u002F\u002FAlles was Objekt ist benötigt new OBJEKT\n        p.introduce();\n        Animal dog = new Dog(\"Bello\");\n        dog.makeSound();\n        Movable car = new Car(\"Audi A4\");\n        car.move();\n    }\n}\n\n",[4653,101036,101037,101047,101052,101072,101095,101103,101120,101129,101146,101155,101159],{"__ignoreMap":269},[4173,101038,101039,101041,101043,101045],{"class":4657,"line":4658},[4173,101040,79889],{"class":4788},[4173,101042,80062],{"class":4788},[4173,101044,80065],{"class":4661},[4173,101046,51614],{"class":4784},[4173,101048,101049],{"class":4657,"line":270},[4173,101050,101051],{"class":4766},"    \u002F\u002FGlobale Variabeln HIER\n",[4173,101053,101054,101056,101058,101060,101062,101064,101066,101068,101070],{"class":4657,"line":1263},[4173,101055,100265],{"class":4788},[4173,101057,79892],{"class":4788},[4173,101059,79934],{"class":4788},[4173,101061,79937],{"class":4661},[4173,101063,6390],{"class":4784},[4173,101065,79693],{"class":4788},[4173,101067,80084],{"class":4784},[4173,101069,31283],{"class":7074},[4173,101071,56319],{"class":4784},[4173,101073,101074,101076,101078,101080,101082,101084,101086,101088,101090,101092],{"class":4657,"line":4770},[4173,101075,100451],{"class":4784},[4173,101077,6387],{"class":4788},[4173,101079,79032],{"class":4788},[4173,101081,79986],{"class":4661},[4173,101083,6390],{"class":4784},[4173,101085,80104],{"class":4669},[4173,101087,8629],{"class":4784},[4173,101089,5818],{"class":4665},[4173,101091,79107],{"class":4784},[4173,101093,101094],{"class":4766},"\u002F\u002FAlles was Objekt ist benötigt new OBJEKT\n",[4173,101096,101097,101099,101101],{"class":4657,"line":4775},[4173,101098,100468],{"class":4784},[4173,101100,80791],{"class":4661},[4173,101102,65878],{"class":4784},[4173,101104,101105,101108,101110,101112,101114,101116,101118],{"class":4657,"line":6320},[4173,101106,101107],{"class":4784},"        Animal dog ",[4173,101109,6387],{"class":4788},[4173,101111,79032],{"class":4788},[4173,101113,80497],{"class":4661},[4173,101115,6390],{"class":4784},[4173,101117,80809],{"class":4669},[4173,101119,55545],{"class":4784},[4173,101121,101122,101125,101127],{"class":4657,"line":6325},[4173,101123,101124],{"class":4784},"        dog.",[4173,101126,80819],{"class":4661},[4173,101128,65878],{"class":4784},[4173,101130,101131,101134,101136,101138,101140,101142,101144],{"class":4657,"line":6343},[4173,101132,101133],{"class":4784},"        Movable car ",[4173,101135,6387],{"class":4788},[4173,101137,79032],{"class":4788},[4173,101139,80625],{"class":4661},[4173,101141,6390],{"class":4784},[4173,101143,80837],{"class":4669},[4173,101145,55545],{"class":4784},[4173,101147,101148,101151,101153],{"class":4657,"line":6348},[4173,101149,101150],{"class":4784},"        car.",[4173,101152,80847],{"class":4661},[4173,101154,65878],{"class":4784},[4173,101156,101157],{"class":4657,"line":6457},[4173,101158,100385],{"class":4784},[4173,101160,101161],{"class":4657,"line":6462},[4173,101162,7090],{"class":4784},[11,101164,80861],{"id":80860},[16,101166,80865],{"id":80864},[4647,101168,101170],{"className":78931,"code":101169,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport javax.swing.event.ChangeEvent;\nimport javax.swing.event.ChangeListener;\nimport java.awt.*;\nimport java.awt.event.*;\n\u002F**\n * Umfangreiches Beispiel einer Java Swing GUI, das zeigt:\n * - verschiedene Layouts (BorderLayout, FlowLayout, GridLayout, BoxLayout, GridBagLayout)\n * - Labels mit Schriftarten und fett\n * - Verwendung von JPanel\n * - Instanzvariablen für Komponenten\n * - verschiedene Button-Typen (JButton, JToggleButton, JCheckBox, JRadioButton)\n * - Menü mit JMenuItem\n * - DefaultCloseOperation, setSize, setResizable\n * - Event-Handling (ActionListener, ItemListener, ChangeListener, WindowListener)\n *\u002F\npublic class JavaSwingGUIExample extends JFrame {\n    \u002F\u002F --- Instanzvariablen (Sichtbar über die ganze Klasse) ---\n    private JPanel topPanel;            \u002F\u002F BorderLayout.NORTH\n    private JPanel centerPanel;         \u002F\u002F BorderLayout.CENTER\n    private JPanel bottomPanel;         \u002F\u002F BorderLayout.SOUTH\n    private JLabel statusLabel;         \u002F\u002F zeigt Statusmeldungen\n    \u002F\u002F Buttons\n    private JButton normalButton;\n    private JButton iconButton;\n    private JToggleButton toggleButton;\n    private JCheckBox checkBox;\n    private JRadioButton radio1, radio2, radio3;\n    \u002F\u002F Menü\n    private JMenuItem exitMenuItem;\n    public JavaSwingGUIExample() {\n        super(\"Java Swing GUI Beispiel\");\n        \u002F\u002F Grundkonfiguration des Frames\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); \u002F\u002F DefaultCloseOperation\n        setSize(900, 600);                              \u002F\u002F setSize\n        setResizable(true);                             \u002F\u002F setResizable\n        setLocationRelativeTo(null);                    \u002F\u002F zentrieren\n        \u002F\u002F Menü erstellen\n        createMenuBar();\n        \u002F\u002F Komponenten und Layouts aufbauen\n        buildTopPanel();\n        buildCenterPanel();\n        buildBottomPanel();\n        \u002F\u002F Haupt-Layout des Frames\n        Container cp = getContentPane();\n        cp.setLayout(new BorderLayout(8, 8));\n        cp.add(topPanel, BorderLayout.NORTH);\n        cp.add(centerPanel, BorderLayout.CENTER);\n        cp.add(bottomPanel, BorderLayout.SOUTH);\n        \u002F\u002F WindowListener (Event handling auf Fenster-Ebene)\n        addWindowListener(new WindowAdapter() {\n            @Override\n            public void windowClosing(WindowEvent e) {\n                System.out.println(\"Fenster wird geschlossen\");\n            }\n            @Override\n            public void windowOpened(WindowEvent e) {\n                statusLabel.setText(\"Anwendung gestartet\");\n            }\n        });\n    }\n    private void createMenuBar() {\n        JMenuBar menuBar = new JMenuBar();\n        JMenu fileMenu = new JMenu(\"Datei\");\n        exitMenuItem = new JMenuItem(\"Beenden\");\n        exitMenuItem.addActionListener(e -> System.exit(0));\n        fileMenu.add(exitMenuItem);\n        menuBar.add(fileMenu);\n        setJMenuBar(menuBar);\n    }\n    private void buildTopPanel() {\n        topPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); \u002F\u002F FlowLayout\n        \u002F\u002F Label mit verschiedener Schriftart und fett\n        JLabel titleLabel = new JLabel(\"Java Swing GUI - Demo\");\n        titleLabel.setFont(new Font(\"Serif\", Font.BOLD, 24)); \u002F\u002F fett\n        JLabel subtitle = new JLabel(\"(verschiedene Layouts, Buttons & Events)\");\n        subtitle.setFont(new Font(\"SansSerif\", Font.ITALIC, 12));\n        topPanel.add(titleLabel);\n        topPanel.add(Box.createHorizontalStrut(10));\n        topPanel.add(subtitle);\n    }\n    private void buildCenterPanel() {\n        centerPanel = new JPanel();\n        centerPanel.setLayout(new GridLayout(1, 2, 8, 8)); \u002F\u002F GridLayout\n        \u002F\u002F Linke Seite: verschiedene Buttons in einem Grid\n        JPanel buttonPanel = new JPanel();\n        buttonPanel.setBorder(BorderFactory.createTitledBorder(\"Buttons\"));\n        buttonPanel.setLayout(new GridLayout(6, 1, 4, 4));\n        \u002F\u002F normaler JButton mit ActionListener\n        normalButton = new JButton(\"Normaler Button\");\n        normalButton.addActionListener(e -> onNormalButton());\n        \u002F\u002F JButton mit Icon (wenn Icon nicht gefunden, geht es trotzdem)\n        Icon infoIcon = UIManager.getIcon(\"OptionPane.informationIcon\");\n        iconButton = new JButton(\"Icon Button\", infoIcon);\n        iconButton.setToolTipText(\"Button mit Icon\");\n        iconButton.addActionListener(e -> statusLabel.setText(\"Icon-Button gedrückt\"));\n        \u002F\u002F JToggleButton\n        toggleButton = new JToggleButton(\"Toggle\");\n        toggleButton.addItemListener(e -> {\n            if (e.getStateChange() == ItemEvent.SELECTED)\n                statusLabel.setText(\"Toggle: AN\");\n            else\n                statusLabel.setText(\"Toggle: AUS\");\n        });\n        \u002F\u002F JCheckBox\n        checkBox = new JCheckBox(\"Resizability aktivieren\");\n        checkBox.setSelected(true);\n        checkBox.addItemListener(e -> setResizable(checkBox.isSelected()));\n        \u002F\u002F JRadioButtons in einer ButtonGroup\n        JPanel radios = new JPanel(new FlowLayout(FlowLayout.LEFT));\n        radios.setBorder(BorderFactory.createTitledBorder(\"Radio-Gruppe\"));\n        radio1 = new JRadioButton(\"Option 1\");\n        radio2 = new JRadioButton(\"Option 2\");\n        radio3 = new JRadioButton(\"Option 3\");\n        ButtonGroup bg = new ButtonGroup();\n        bg.add(radio1); bg.add(radio2); bg.add(radio3);\n        radio1.addItemListener(e -> { if (e.getStateChange()==ItemEvent.SELECTED)\n            statusLabel.setText(\"Option 1 gewählt\"); });\n        radio2.addItemListener(e -> { if (e.getStateChange()==ItemEvent.SELECTED)\nstatusLabel.setText(\"Option 2 gewählt\"); });\n        radio3.addItemListener(e -> { if (e.getStateChange()==ItemEvent.SELECTED)\nstatusLabel.setText(\"Option 3 gewählt\"); });\n        radios.add(radio1); radios.add(radio2); radios.add(radio3);\n        \u002F\u002F JButton mit AbstractAction (zeigt nochmal eine andere Art, Events zu verarbeiten)\n        Action specialAction = new AbstractAction(\"Special Action\") {\n            @Override\n            public void actionPerformed(ActionEvent e) {\n                statusLabel.setText(\"Special Action ausgeführt\");\n            }\n        };\n        JButton actionButton = new JButton(specialAction);\n        \u002F\u002F ChangeListener Beispiel (für Slider -> hier als Demo ein JSlider)\n        JSlider slider = new JSlider(0, 100, 50);\n        slider.addChangeListener(new ChangeListener() {\n            @Override\n            public void stateChanged(ChangeEvent e) {\n                statusLabel.setText(\"Slider: \" + slider.getValue());\n            }\n        });\n        \u002F\u002F Komponenten in buttonPanel\n        buttonPanel.add(normalButton);\n        buttonPanel.add(iconButton);\n        buttonPanel.add(toggleButton);\n        buttonPanel.add(checkBox);\n        buttonPanel.add(actionButton);\n        buttonPanel.add(slider);\n        \u002F\u002F Rechte Seite: Demonstration verschiedener Layouts in JPanels\n        JPanel layoutDemo = new JPanel();\n        layoutDemo.setBorder(BorderFactory.createTitledBorder(\"Layout-Demos\"));\n        layoutDemo.setLayout(new BoxLayout(layoutDemo, BoxLayout.Y_AXIS)); \u002F\u002F BoxLayout\n        \u002F\u002F FlowLayout Beispiel\n        JPanel flow = new JPanel(new FlowLayout(FlowLayout.LEFT));\n        flow.setBorder(BorderFactory.createTitledBorder(\"FlowLayout\"));\n        flow.add(new JLabel(\"A\")); flow.add(new JLabel(\"B\")); flow.add(new JLabel(\"C\"));\n        \u002F\u002F GridLayout Beispiel\n        JPanel grid = new JPanel(new GridLayout(2, 2, 4, 4));\n        grid.setBorder(BorderFactory.createTitledBorder(\"GridLayout 2x2\"));\n        grid.add(new JLabel(\"1\")); grid.add(new JLabel(\"2\")); grid.add(new JLabel(\"3\"));\n        grid.add(new JLabel(\"4\"));\n        \u002F\u002F GridBagLayout Beispiel (flexibel)\n        JPanel gb = new JPanel(new GridBagLayout());\n        gb.setBorder(BorderFactory.createTitledBorder(\"GridBagLayout\"));\n        GridBagConstraints c = new GridBagConstraints();\n        c.insets = new Insets(2,2,2,2);\n        c.gridx = 0; c.gridy = 0; gb.add(new JLabel(\"GBA-Label 1:\"), c);\n        c.gridx = 1; c.gridy = 0; c.weightx = 1.0; c.fill = GridBagConstraints.HORIZONTAL;\n        gb.add(new JTextField(\"TextField\"), c);\n        layoutDemo.add(flow);\n        layoutDemo.add(grid);\n        layoutDemo.add(gb);\n        centerPanel.add(buttonPanel);\n        centerPanel.add(layoutDemo);\n    }\n    private void buildBottomPanel() {\n        bottomPanel = new JPanel(new BorderLayout());\n        statusLabel = new JLabel(\"Bereit\");\n        statusLabel.setFont(new Font(\"Dialog\", Font.BOLD, 14)); \u002F\u002F fett\n        bottomPanel.add(statusLabel, BorderLayout.WEST);\n        \u002F\u002F Beispiel für einen kleinen Input-Bereich\n        JPanel inputPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        JTextField input = new JTextField(20);\n        JButton send = new JButton(\"Senden\");\n        send.addActionListener(e -> statusLabel.setText(\"Gesendet: \" + input.getText()));\u002F\u002F Dies\nnicht benutzen\n        inputPanel.add(input);\n        inputPanel.add(send);\n        bottomPanel.add(inputPanel, BorderLayout.EAST);\n    }\n    private void onNormalButton() {\n        \u002F\u002F Beispiel: Modal-Dialog anzeigen\n        JOptionPane.showMessageDialog(this, \"Der normale Button wurde gedrückt\", \"Info\",\nJOptionPane.INFORMATION_MESSAGE);\n        statusLabel.setText(\"Normaler Button gedrückt\");\n    }\n    public static void main(String[] args) {\n        \u002F\u002F GUI muss im EDT (Event Dispatch Thread) gestartet werden\n        SwingUtilities.invokeLater(() -> {\n            JavaSwingGUIExample frame = new JavaSwingGUIExample();\n            frame.setVisible(true);\n        });\n    }\n}\n\n",[4653,101171,101172,101182,101188,101194,101204,101214,101218,101223,101228,101233,101238,101243,101248,101253,101258,101263,101268,101282,101287,101295,101303,101311,101319,101324,101330,101336,101342,101348,101354,101359,101365,101373,101383,101388,101398,101415,101428,101441,101446,101453,101458,101465,101472,101479,101484,101495,101518,101526,101534,101542,101547,101560,101567,101582,101595,101600,101606,101620,101633,101637,101642,101646,101656,101669,101686,101703,101724,101733,101742,101749,101753,101763,101784,101789,101806,101831,101849,101872,101881,101897,101905,101909,101919,101932,101965,101970,101983,102000,102030,102035,102052,102067,102072,102089,102106,102119,102140,102145,102162,102175,102190,102202,102207,102219,102223,102228,102245,102258,102276,102281,102300,102317,102334,102351,102368,102381,102398,102424,102438,102463,102476,102501,102514,102530,102535,102552,102558,102572,102584,102588,102593,102606,102611,102636,102651,102657,102671,102689,102693,102697,102702,102710,102718,102726,102734,102742,102750,102755,102768,102786,102803,102808,102827,102844,102890,102895,102930,102947,102993,103011,103016,103035,103052,103065,103094,103125,103152,103170,103178,103186,103194,103202,103210,103214,103224,103243,103260,103285,103294,103299,103318,103335,103352,103383,103388,103397,103405,103413,103417,103427,103432,103454,103459,103471,103475,103495,103500,103513,103526,103539,103543,103547],{"__ignoreMap":269},[4173,101173,101174,101176,101178,101180],{"class":4657,"line":4658},[4173,101175,79019],{"class":4788},[4173,101177,80877],{"class":4784},[4173,101179,6328],{"class":4665},[4173,101181,55559],{"class":4784},[4173,101183,101184,101186],{"class":4657,"line":270},[4173,101185,79019],{"class":4788},[4173,101187,80888],{"class":4784},[4173,101189,101190,101192],{"class":4657,"line":1263},[4173,101191,79019],{"class":4788},[4173,101193,80895],{"class":4784},[4173,101195,101196,101198,101200,101202],{"class":4657,"line":4770},[4173,101197,79019],{"class":4788},[4173,101199,80902],{"class":4784},[4173,101201,6328],{"class":4665},[4173,101203,55559],{"class":4784},[4173,101205,101206,101208,101210,101212],{"class":4657,"line":4775},[4173,101207,79019],{"class":4788},[4173,101209,80913],{"class":4784},[4173,101211,6328],{"class":4665},[4173,101213,55559],{"class":4784},[4173,101215,101216],{"class":4657,"line":6320},[4173,101217,80922],{"class":4766},[4173,101219,101220],{"class":4657,"line":6325},[4173,101221,101222],{"class":4766}," * Umfangreiches Beispiel einer Java Swing GUI, das zeigt:\n",[4173,101224,101225],{"class":4657,"line":6343},[4173,101226,101227],{"class":4766}," * - verschiedene Layouts (BorderLayout, FlowLayout, GridLayout, BoxLayout, GridBagLayout)\n",[4173,101229,101230],{"class":4657,"line":6348},[4173,101231,101232],{"class":4766}," * - Labels mit Schriftarten und fett\n",[4173,101234,101235],{"class":4657,"line":6457},[4173,101236,101237],{"class":4766}," * - Verwendung von JPanel\n",[4173,101239,101240],{"class":4657,"line":6462},[4173,101241,101242],{"class":4766}," * - Instanzvariablen für Komponenten\n",[4173,101244,101245],{"class":4657,"line":6468},[4173,101246,101247],{"class":4766}," * - verschiedene Button-Typen (JButton, JToggleButton, JCheckBox, JRadioButton)\n",[4173,101249,101250],{"class":4657,"line":6473},[4173,101251,101252],{"class":4766}," * - Menü mit JMenuItem\n",[4173,101254,101255],{"class":4657,"line":6479},[4173,101256,101257],{"class":4766}," * - DefaultCloseOperation, setSize, setResizable\n",[4173,101259,101260],{"class":4657,"line":6503},[4173,101261,101262],{"class":4766}," * - Event-Handling (ActionListener, ItemListener, ChangeListener, WindowListener)\n",[4173,101264,101265],{"class":4657,"line":6516},[4173,101266,101267],{"class":4766}," *\u002F\n",[4173,101269,101270,101272,101274,101276,101278,101280],{"class":4657,"line":6971},[4173,101271,79889],{"class":4788},[4173,101273,80062],{"class":4788},[4173,101275,80981],{"class":4661},[4173,101277,80500],{"class":4788},[4173,101279,80986],{"class":4661},[4173,101281,51614],{"class":4784},[4173,101283,101284],{"class":4657,"line":10649},[4173,101285,101286],{"class":4766},"    \u002F\u002F --- Instanzvariablen (Sichtbar über die ganze Klasse) ---\n",[4173,101288,101289,101291,101293],{"class":4657,"line":10654},[4173,101290,100507],{"class":4788},[4173,101292,81000],{"class":4784},[4173,101294,81003],{"class":4766},[4173,101296,101297,101299,101301],{"class":4657,"line":10659},[4173,101298,100507],{"class":4788},[4173,101300,81010],{"class":4784},[4173,101302,81013],{"class":4766},[4173,101304,101305,101307,101309],{"class":4657,"line":10664},[4173,101306,100507],{"class":4788},[4173,101308,81020],{"class":4784},[4173,101310,81023],{"class":4766},[4173,101312,101313,101315,101317],{"class":4657,"line":10676},[4173,101314,100507],{"class":4788},[4173,101316,81030],{"class":4784},[4173,101318,81033],{"class":4766},[4173,101320,101321],{"class":4657,"line":10681},[4173,101322,101323],{"class":4766},"    \u002F\u002F Buttons\n",[4173,101325,101326,101328],{"class":4657,"line":10702},[4173,101327,100507],{"class":4788},[4173,101329,81045],{"class":4784},[4173,101331,101332,101334],{"class":4657,"line":10707},[4173,101333,100507],{"class":4788},[4173,101335,81052],{"class":4784},[4173,101337,101338,101340],{"class":4657,"line":10712},[4173,101339,100507],{"class":4788},[4173,101341,81059],{"class":4784},[4173,101343,101344,101346],{"class":4657,"line":10717},[4173,101345,100507],{"class":4788},[4173,101347,81066],{"class":4784},[4173,101349,101350,101352],{"class":4657,"line":10727},[4173,101351,100507],{"class":4788},[4173,101353,81073],{"class":4784},[4173,101355,101356],{"class":4657,"line":10732},[4173,101357,101358],{"class":4766},"    \u002F\u002F Menü\n",[4173,101360,101361,101363],{"class":4657,"line":10737},[4173,101362,100507],{"class":4788},[4173,101364,81085],{"class":4784},[4173,101366,101367,101369,101371],{"class":4657,"line":10742},[4173,101368,100265],{"class":4788},[4173,101370,80981],{"class":4661},[4173,101372,7062],{"class":4784},[4173,101374,101375,101377,101379,101381],{"class":4657,"line":10752},[4173,101376,100854],{"class":4665},[4173,101378,6390],{"class":4784},[4173,101380,81102],{"class":4669},[4173,101382,55545],{"class":4784},[4173,101384,101385],{"class":4657,"line":10757},[4173,101386,101387],{"class":4766},"        \u002F\u002F Grundkonfiguration des Frames\n",[4173,101389,101390,101393,101395],{"class":4657,"line":10762},[4173,101391,101392],{"class":4661},"        setDefaultCloseOperation",[4173,101394,81117],{"class":4784},[4173,101396,101397],{"class":4766},"\u002F\u002F DefaultCloseOperation\n",[4173,101399,101400,101403,101405,101407,101409,101411,101413],{"class":4657,"line":10767},[4173,101401,101402],{"class":4661},"        setSize",[4173,101404,6390],{"class":4784},[4173,101406,81134],{"class":4665},[4173,101408,8629],{"class":4784},[4173,101410,14586],{"class":4665},[4173,101412,81141],{"class":4784},[4173,101414,81144],{"class":4766},[4173,101416,101417,101420,101422,101424,101426],{"class":4657,"line":10772},[4173,101418,101419],{"class":4661},"        setResizable",[4173,101421,6390],{"class":4784},[4173,101423,45190],{"class":4665},[4173,101425,81156],{"class":4784},[4173,101427,81159],{"class":4766},[4173,101429,101430,101433,101435,101437,101439],{"class":4657,"line":10777},[4173,101431,101432],{"class":4661},"        setLocationRelativeTo",[4173,101434,6390],{"class":4784},[4173,101436,81169],{"class":4665},[4173,101438,81172],{"class":4784},[4173,101440,81175],{"class":4766},[4173,101442,101443],{"class":4657,"line":10782},[4173,101444,101445],{"class":4766},"        \u002F\u002F Menü erstellen\n",[4173,101447,101448,101451],{"class":4657,"line":10787},[4173,101449,101450],{"class":4661},"        createMenuBar",[4173,101452,65878],{"class":4784},[4173,101454,101455],{"class":4657,"line":10800},[4173,101456,101457],{"class":4766},"        \u002F\u002F Komponenten und Layouts aufbauen\n",[4173,101459,101460,101463],{"class":4657,"line":10805},[4173,101461,101462],{"class":4661},"        buildTopPanel",[4173,101464,65878],{"class":4784},[4173,101466,101467,101470],{"class":4657,"line":10818},[4173,101468,101469],{"class":4661},"        buildCenterPanel",[4173,101471,65878],{"class":4784},[4173,101473,101474,101477],{"class":4657,"line":10823},[4173,101475,101476],{"class":4661},"        buildBottomPanel",[4173,101478,65878],{"class":4784},[4173,101480,101481],{"class":4657,"line":10836},[4173,101482,101483],{"class":4766},"        \u002F\u002F Haupt-Layout des Frames\n",[4173,101485,101486,101489,101491,101493],{"class":4657,"line":10841},[4173,101487,101488],{"class":4784},"        Container cp ",[4173,101490,6387],{"class":4788},[4173,101492,81228],{"class":4661},[4173,101494,65878],{"class":4784},[4173,101496,101497,101500,101502,101504,101506,101508,101510,101512,101514,101516],{"class":4657,"line":10846},[4173,101498,101499],{"class":4784},"        cp.",[4173,101501,81238],{"class":4661},[4173,101503,6390],{"class":4784},[4173,101505,81243],{"class":4788},[4173,101507,81246],{"class":4661},[4173,101509,6390],{"class":4784},[4173,101511,16286],{"class":4665},[4173,101513,8629],{"class":4784},[4173,101515,16286],{"class":4665},[4173,101517,66047],{"class":4784},[4173,101519,101520,101522,101524],{"class":4657,"line":10851},[4173,101521,101499],{"class":4784},[4173,101523,79955],{"class":4661},[4173,101525,81265],{"class":4784},[4173,101527,101528,101530,101532],{"class":4657,"line":10867},[4173,101529,101499],{"class":4784},[4173,101531,79955],{"class":4661},[4173,101533,81274],{"class":4784},[4173,101535,101536,101538,101540],{"class":4657,"line":10872},[4173,101537,101499],{"class":4784},[4173,101539,79955],{"class":4661},[4173,101541,81283],{"class":4784},[4173,101543,101544],{"class":4657,"line":10877},[4173,101545,101546],{"class":4766},"        \u002F\u002F WindowListener (Event handling auf Fenster-Ebene)\n",[4173,101548,101549,101552,101554,101556,101558],{"class":4657,"line":10882},[4173,101550,101551],{"class":4661},"        addWindowListener",[4173,101553,6390],{"class":4784},[4173,101555,81243],{"class":4788},[4173,101557,81300],{"class":4661},[4173,101559,7062],{"class":4784},[4173,101561,101562,101565],{"class":4657,"line":10890},[4173,101563,101564],{"class":4784},"            @",[4173,101566,80535],{"class":4788},[4173,101568,101569,101572,101574,101576,101578,101580],{"class":4657,"line":10895},[4173,101570,101571],{"class":4788},"            public",[4173,101573,79934],{"class":4788},[4173,101575,81317],{"class":4661},[4173,101577,81320],{"class":4784},[4173,101579,20602],{"class":7074},[4173,101581,56319],{"class":4784},[4173,101583,101584,101587,101589,101591,101593],{"class":4657,"line":10904},[4173,101585,101586],{"class":4784},"                System.out.",[4173,101588,79074],{"class":4661},[4173,101590,6390],{"class":4784},[4173,101592,81335],{"class":4669},[4173,101594,55545],{"class":4784},[4173,101596,101597],{"class":4657,"line":10909},[4173,101598,101599],{"class":4784},"            }\n",[4173,101601,101602,101604],{"class":4657,"line":10914},[4173,101603,101564],{"class":4784},[4173,101605,80535],{"class":4788},[4173,101607,101608,101610,101612,101614,101616,101618],{"class":4657,"line":10919},[4173,101609,101571],{"class":4788},[4173,101611,79934],{"class":4788},[4173,101613,81356],{"class":4661},[4173,101615,81320],{"class":4784},[4173,101617,20602],{"class":7074},[4173,101619,56319],{"class":4784},[4173,101621,101622,101625,101627,101629,101631],{"class":4657,"line":10933},[4173,101623,101624],{"class":4784},"                statusLabel.",[4173,101626,81370],{"class":4661},[4173,101628,6390],{"class":4784},[4173,101630,81375],{"class":4669},[4173,101632,55545],{"class":4784},[4173,101634,101635],{"class":4657,"line":10938},[4173,101636,101599],{"class":4784},[4173,101638,101639],{"class":4657,"line":10959},[4173,101640,101641],{"class":4784},"        });\n",[4173,101643,101644],{"class":4657,"line":10964},[4173,101645,100385],{"class":4784},[4173,101647,101648,101650,101652,101654],{"class":4657,"line":10969},[4173,101649,100507],{"class":4788},[4173,101651,79934],{"class":4788},[4173,101653,81399],{"class":4661},[4173,101655,7062],{"class":4784},[4173,101657,101658,101661,101663,101665,101667],{"class":4657,"line":10974},[4173,101659,101660],{"class":4784},"        JMenuBar menuBar ",[4173,101662,6387],{"class":4788},[4173,101664,79032],{"class":4788},[4173,101666,81413],{"class":4661},[4173,101668,65878],{"class":4784},[4173,101670,101671,101674,101676,101678,101680,101682,101684],{"class":4657,"line":10982},[4173,101672,101673],{"class":4784},"        JMenu fileMenu ",[4173,101675,6387],{"class":4788},[4173,101677,79032],{"class":4788},[4173,101679,81427],{"class":4661},[4173,101681,6390],{"class":4784},[4173,101683,81432],{"class":4669},[4173,101685,55545],{"class":4784},[4173,101687,101688,101691,101693,101695,101697,101699,101701],{"class":4657,"line":10987},[4173,101689,101690],{"class":4784},"        exitMenuItem ",[4173,101692,6387],{"class":4788},[4173,101694,79032],{"class":4788},[4173,101696,81446],{"class":4661},[4173,101698,6390],{"class":4784},[4173,101700,81451],{"class":4669},[4173,101702,55545],{"class":4784},[4173,101704,101705,101708,101710,101712,101714,101716,101718,101720,101722],{"class":4657,"line":10995},[4173,101706,101707],{"class":4784},"        exitMenuItem.",[4173,101709,81461],{"class":4661},[4173,101711,81464],{"class":4784},[4173,101713,81467],{"class":4788},[4173,101715,81470],{"class":4784},[4173,101717,10898],{"class":4661},[4173,101719,6390],{"class":4784},[4173,101721,12749],{"class":4665},[4173,101723,66047],{"class":4784},[4173,101725,101726,101729,101731],{"class":4657,"line":11000},[4173,101727,101728],{"class":4784},"        fileMenu.",[4173,101730,79955],{"class":4661},[4173,101732,81488],{"class":4784},[4173,101734,101735,101738,101740],{"class":4657,"line":11008},[4173,101736,101737],{"class":4784},"        menuBar.",[4173,101739,79955],{"class":4661},[4173,101741,81498],{"class":4784},[4173,101743,101744,101747],{"class":4657,"line":11013},[4173,101745,101746],{"class":4661},"        setJMenuBar",[4173,101748,81506],{"class":4784},[4173,101750,101751],{"class":4657,"line":11021},[4173,101752,100385],{"class":4784},[4173,101754,101755,101757,101759,101761],{"class":4657,"line":11026},[4173,101756,100507],{"class":4788},[4173,101758,79934],{"class":4788},[4173,101760,81519],{"class":4661},[4173,101762,7062],{"class":4784},[4173,101764,101765,101768,101770,101772,101774,101776,101778,101780,101782],{"class":4657,"line":11034},[4173,101766,101767],{"class":4784},"        topPanel ",[4173,101769,6387],{"class":4788},[4173,101771,79032],{"class":4788},[4173,101773,81533],{"class":4661},[4173,101775,6390],{"class":4784},[4173,101777,81243],{"class":4788},[4173,101779,81540],{"class":4661},[4173,101781,81543],{"class":4784},[4173,101783,81546],{"class":4766},[4173,101785,101786],{"class":4657,"line":11039},[4173,101787,101788],{"class":4766},"        \u002F\u002F Label mit verschiedener Schriftart und fett\n",[4173,101790,101791,101794,101796,101798,101800,101802,101804],{"class":4657,"line":11048},[4173,101792,101793],{"class":4784},"        JLabel titleLabel ",[4173,101795,6387],{"class":4788},[4173,101797,79032],{"class":4788},[4173,101799,81563],{"class":4661},[4173,101801,6390],{"class":4784},[4173,101803,81568],{"class":4669},[4173,101805,55545],{"class":4784},[4173,101807,101808,101811,101813,101815,101817,101819,101821,101823,101825,101827,101829],{"class":4657,"line":11053},[4173,101809,101810],{"class":4784},"        titleLabel.",[4173,101812,81578],{"class":4661},[4173,101814,6390],{"class":4784},[4173,101816,81243],{"class":4788},[4173,101818,81585],{"class":4661},[4173,101820,6390],{"class":4784},[4173,101822,81590],{"class":4669},[4173,101824,81593],{"class":4784},[4173,101826,81596],{"class":4665},[4173,101828,48385],{"class":4784},[4173,101830,81601],{"class":4766},[4173,101832,101833,101836,101838,101840,101842,101844,101847],{"class":4657,"line":21369},[4173,101834,101835],{"class":4784},"        JLabel subtitle ",[4173,101837,6387],{"class":4788},[4173,101839,79032],{"class":4788},[4173,101841,81563],{"class":4661},[4173,101843,6390],{"class":4784},[4173,101845,101846],{"class":4669},"\"(verschiedene Layouts, Buttons & Events)\"",[4173,101848,55545],{"class":4784},[4173,101850,101851,101854,101856,101858,101860,101862,101864,101866,101868,101870],{"class":4657,"line":21374},[4173,101852,101853],{"class":4784},"        subtitle.",[4173,101855,81578],{"class":4661},[4173,101857,6390],{"class":4784},[4173,101859,81243],{"class":4788},[4173,101861,81585],{"class":4661},[4173,101863,6390],{"class":4784},[4173,101865,81642],{"class":4669},[4173,101867,81645],{"class":4784},[4173,101869,36010],{"class":4665},[4173,101871,66047],{"class":4784},[4173,101873,101874,101877,101879],{"class":4657,"line":21380},[4173,101875,101876],{"class":4784},"        topPanel.",[4173,101878,79955],{"class":4661},[4173,101880,81659],{"class":4784},[4173,101882,101883,101885,101887,101889,101891,101893,101895],{"class":4657,"line":21385},[4173,101884,101876],{"class":4784},[4173,101886,79955],{"class":4661},[4173,101888,81668],{"class":4784},[4173,101890,81671],{"class":4661},[4173,101892,6390],{"class":4784},[4173,101894,81676],{"class":4665},[4173,101896,66047],{"class":4784},[4173,101898,101899,101901,101903],{"class":4657,"line":21397},[4173,101900,101876],{"class":4784},[4173,101902,79955],{"class":4661},[4173,101904,81687],{"class":4784},[4173,101906,101907],{"class":4657,"line":21402},[4173,101908,100385],{"class":4784},[4173,101910,101911,101913,101915,101917],{"class":4657,"line":21408},[4173,101912,100507],{"class":4788},[4173,101914,79934],{"class":4788},[4173,101916,81700],{"class":4661},[4173,101918,7062],{"class":4784},[4173,101920,101921,101924,101926,101928,101930],{"class":4657,"line":21413},[4173,101922,101923],{"class":4784},"        centerPanel ",[4173,101925,6387],{"class":4788},[4173,101927,79032],{"class":4788},[4173,101929,81533],{"class":4661},[4173,101931,65878],{"class":4784},[4173,101933,101934,101937,101939,101941,101943,101945,101947,101949,101951,101953,101955,101957,101959,101961,101963],{"class":4657,"line":21425},[4173,101935,101936],{"class":4784},"        centerPanel.",[4173,101938,81238],{"class":4661},[4173,101940,6390],{"class":4784},[4173,101942,81243],{"class":4788},[4173,101944,81729],{"class":4661},[4173,101946,6390],{"class":4784},[4173,101948,14223],{"class":4665},[4173,101950,8629],{"class":4784},[4173,101952,14206],{"class":4665},[4173,101954,8629],{"class":4784},[4173,101956,16286],{"class":4665},[4173,101958,8629],{"class":4784},[4173,101960,16286],{"class":4665},[4173,101962,48385],{"class":4784},[4173,101964,81750],{"class":4766},[4173,101966,101967],{"class":4657,"line":21430},[4173,101968,101969],{"class":4766},"        \u002F\u002F Linke Seite: verschiedene Buttons in einem Grid\n",[4173,101971,101972,101975,101977,101979,101981],{"class":4657,"line":21436},[4173,101973,101974],{"class":4784},"        JPanel buttonPanel ",[4173,101976,6387],{"class":4788},[4173,101978,79032],{"class":4788},[4173,101980,81533],{"class":4661},[4173,101982,65878],{"class":4784},[4173,101984,101985,101988,101990,101992,101994,101996,101998],{"class":4657,"line":21441},[4173,101986,101987],{"class":4784},"        buttonPanel.",[4173,101989,81776],{"class":4661},[4173,101991,81779],{"class":4784},[4173,101993,81782],{"class":4661},[4173,101995,6390],{"class":4784},[4173,101997,81787],{"class":4669},[4173,101999,66047],{"class":4784},[4173,102001,102002,102004,102006,102008,102010,102012,102014,102016,102018,102020,102022,102024,102026,102028],{"class":4657,"line":21453},[4173,102003,101987],{"class":4784},[4173,102005,81238],{"class":4661},[4173,102007,6390],{"class":4784},[4173,102009,81243],{"class":4788},[4173,102011,81729],{"class":4661},[4173,102013,6390],{"class":4784},[4173,102015,14278],{"class":4665},[4173,102017,8629],{"class":4784},[4173,102019,14223],{"class":4665},[4173,102021,8629],{"class":4784},[4173,102023,2894],{"class":4665},[4173,102025,8629],{"class":4784},[4173,102027,2894],{"class":4665},[4173,102029,66047],{"class":4784},[4173,102031,102032],{"class":4657,"line":21458},[4173,102033,102034],{"class":4766},"        \u002F\u002F normaler JButton mit ActionListener\n",[4173,102036,102037,102040,102042,102044,102046,102048,102050],{"class":4657,"line":21464},[4173,102038,102039],{"class":4784},"        normalButton ",[4173,102041,6387],{"class":4788},[4173,102043,79032],{"class":4788},[4173,102045,81836],{"class":4661},[4173,102047,6390],{"class":4784},[4173,102049,81841],{"class":4669},[4173,102051,55545],{"class":4784},[4173,102053,102054,102057,102059,102061,102063,102065],{"class":4657,"line":21469},[4173,102055,102056],{"class":4784},"        normalButton.",[4173,102058,81461],{"class":4661},[4173,102060,81464],{"class":4784},[4173,102062,81467],{"class":4788},[4173,102064,81857],{"class":4661},[4173,102066,81860],{"class":4784},[4173,102068,102069],{"class":4657,"line":21481},[4173,102070,102071],{"class":4766},"        \u002F\u002F JButton mit Icon (wenn Icon nicht gefunden, geht es trotzdem)\n",[4173,102073,102074,102077,102079,102081,102083,102085,102087],{"class":4657,"line":21486},[4173,102075,102076],{"class":4784},"        Icon infoIcon ",[4173,102078,6387],{"class":4788},[4173,102080,81875],{"class":4784},[4173,102082,81878],{"class":4661},[4173,102084,6390],{"class":4784},[4173,102086,81883],{"class":4669},[4173,102088,55545],{"class":4784},[4173,102090,102091,102094,102096,102098,102100,102102,102104],{"class":4657,"line":21492},[4173,102092,102093],{"class":4784},"        iconButton ",[4173,102095,6387],{"class":4788},[4173,102097,79032],{"class":4788},[4173,102099,81836],{"class":4661},[4173,102101,6390],{"class":4784},[4173,102103,81901],{"class":4669},[4173,102105,81904],{"class":4784},[4173,102107,102108,102111,102113,102115,102117],{"class":4657,"line":21497},[4173,102109,102110],{"class":4784},"        iconButton.",[4173,102112,81912],{"class":4661},[4173,102114,6390],{"class":4784},[4173,102116,81917],{"class":4669},[4173,102118,55545],{"class":4784},[4173,102120,102121,102123,102125,102127,102129,102131,102133,102135,102138],{"class":4657,"line":21503},[4173,102122,102110],{"class":4784},[4173,102124,81461],{"class":4661},[4173,102126,81464],{"class":4784},[4173,102128,81467],{"class":4788},[4173,102130,81932],{"class":4784},[4173,102132,81370],{"class":4661},[4173,102134,6390],{"class":4784},[4173,102136,102137],{"class":4669},"\"Icon-Button gedrückt\"",[4173,102139,66047],{"class":4784},[4173,102141,102142],{"class":4657,"line":21508},[4173,102143,102144],{"class":4766},"        \u002F\u002F JToggleButton\n",[4173,102146,102147,102150,102152,102154,102156,102158,102160],{"class":4657,"line":21518},[4173,102148,102149],{"class":4784},"        toggleButton ",[4173,102151,6387],{"class":4788},[4173,102153,79032],{"class":4788},[4173,102155,81963],{"class":4661},[4173,102157,6390],{"class":4784},[4173,102159,81968],{"class":4669},[4173,102161,55545],{"class":4784},[4173,102163,102164,102167,102169,102171,102173],{"class":4657,"line":21523},[4173,102165,102166],{"class":4784},"        toggleButton.",[4173,102168,81978],{"class":4661},[4173,102170,81464],{"class":4784},[4173,102172,81467],{"class":4788},[4173,102174,51614],{"class":4784},[4173,102176,102177,102180,102182,102184,102186,102188],{"class":4657,"line":21529},[4173,102178,102179],{"class":4788},"            if",[4173,102181,81991],{"class":4784},[4173,102183,81994],{"class":4661},[4173,102185,80558],{"class":4784},[4173,102187,19453],{"class":4788},[4173,102189,82001],{"class":4784},[4173,102191,102192,102194,102196,102198,102200],{"class":4657,"line":21534},[4173,102193,101624],{"class":4784},[4173,102195,81370],{"class":4661},[4173,102197,6390],{"class":4784},[4173,102199,82012],{"class":4669},[4173,102201,55545],{"class":4784},[4173,102203,102204],{"class":4657,"line":21544},[4173,102205,102206],{"class":4788},"            else\n",[4173,102208,102209,102211,102213,102215,102217],{"class":4657,"line":21549},[4173,102210,101624],{"class":4784},[4173,102212,81370],{"class":4661},[4173,102214,6390],{"class":4784},[4173,102216,82029],{"class":4669},[4173,102218,55545],{"class":4784},[4173,102220,102221],{"class":4657,"line":21555},[4173,102222,101641],{"class":4784},[4173,102224,102225],{"class":4657,"line":21560},[4173,102226,102227],{"class":4766},"        \u002F\u002F JCheckBox\n",[4173,102229,102230,102233,102235,102237,102239,102241,102243],{"class":4657,"line":21570},[4173,102231,102232],{"class":4784},"        checkBox ",[4173,102234,6387],{"class":4788},[4173,102236,79032],{"class":4788},[4173,102238,82052],{"class":4661},[4173,102240,6390],{"class":4784},[4173,102242,82057],{"class":4669},[4173,102244,55545],{"class":4784},[4173,102246,102247,102250,102252,102254,102256],{"class":4657,"line":21575},[4173,102248,102249],{"class":4784},"        checkBox.",[4173,102251,82067],{"class":4661},[4173,102253,6390],{"class":4784},[4173,102255,45190],{"class":4665},[4173,102257,55545],{"class":4784},[4173,102259,102260,102262,102264,102266,102268,102270,102272,102274],{"class":4657,"line":21581},[4173,102261,102249],{"class":4784},[4173,102263,81978],{"class":4661},[4173,102265,81464],{"class":4784},[4173,102267,81467],{"class":4788},[4173,102269,82086],{"class":4661},[4173,102271,82089],{"class":4784},[4173,102273,82092],{"class":4661},[4173,102275,82095],{"class":4784},[4173,102277,102278],{"class":4657,"line":21586},[4173,102279,102280],{"class":4766},"        \u002F\u002F JRadioButtons in einer ButtonGroup\n",[4173,102282,102283,102286,102288,102290,102292,102294,102296,102298],{"class":4657,"line":21596},[4173,102284,102285],{"class":4784},"        JPanel radios ",[4173,102287,6387],{"class":4788},[4173,102289,79032],{"class":4788},[4173,102291,81533],{"class":4661},[4173,102293,6390],{"class":4784},[4173,102295,81243],{"class":4788},[4173,102297,81540],{"class":4661},[4173,102299,82120],{"class":4784},[4173,102301,102302,102305,102307,102309,102311,102313,102315],{"class":4657,"line":21601},[4173,102303,102304],{"class":4784},"        radios.",[4173,102306,81776],{"class":4661},[4173,102308,81779],{"class":4784},[4173,102310,81782],{"class":4661},[4173,102312,6390],{"class":4784},[4173,102314,82136],{"class":4669},[4173,102316,66047],{"class":4784},[4173,102318,102319,102322,102324,102326,102328,102330,102332],{"class":4657,"line":21607},[4173,102320,102321],{"class":4784},"        radio1 ",[4173,102323,6387],{"class":4788},[4173,102325,79032],{"class":4788},[4173,102327,82150],{"class":4661},[4173,102329,6390],{"class":4784},[4173,102331,82155],{"class":4669},[4173,102333,55545],{"class":4784},[4173,102335,102336,102339,102341,102343,102345,102347,102349],{"class":4657,"line":21612},[4173,102337,102338],{"class":4784},"        radio2 ",[4173,102340,6387],{"class":4788},[4173,102342,79032],{"class":4788},[4173,102344,82150],{"class":4661},[4173,102346,6390],{"class":4784},[4173,102348,82173],{"class":4669},[4173,102350,55545],{"class":4784},[4173,102352,102353,102356,102358,102360,102362,102364,102366],{"class":4657,"line":21622},[4173,102354,102355],{"class":4784},"        radio3 ",[4173,102357,6387],{"class":4788},[4173,102359,79032],{"class":4788},[4173,102361,82150],{"class":4661},[4173,102363,6390],{"class":4784},[4173,102365,82191],{"class":4669},[4173,102367,55545],{"class":4784},[4173,102369,102370,102373,102375,102377,102379],{"class":4657,"line":21627},[4173,102371,102372],{"class":4784},"        ButtonGroup bg ",[4173,102374,6387],{"class":4788},[4173,102376,79032],{"class":4788},[4173,102378,82205],{"class":4661},[4173,102380,65878],{"class":4784},[4173,102382,102383,102386,102388,102390,102392,102394,102396],{"class":4657,"line":21633},[4173,102384,102385],{"class":4784},"        bg.",[4173,102387,79955],{"class":4661},[4173,102389,82217],{"class":4784},[4173,102391,79955],{"class":4661},[4173,102393,82222],{"class":4784},[4173,102395,79955],{"class":4661},[4173,102397,82227],{"class":4784},[4173,102399,102400,102403,102405,102407,102409,102411,102413,102415,102417,102419,102421],{"class":4657,"line":21638},[4173,102401,102402],{"class":4784},"        radio1.",[4173,102404,81978],{"class":4661},[4173,102406,81464],{"class":4784},[4173,102408,81467],{"class":4788},[4173,102410,82241],{"class":4784},[4173,102412,6201],{"class":4788},[4173,102414,81991],{"class":4784},[4173,102416,81994],{"class":4661},[4173,102418,82254],{"class":4784},[4173,102420,19453],{"class":4788},[4173,102422,102423],{"class":4784},"ItemEvent.SELECTED)\n",[4173,102425,102426,102429,102431,102433,102436],{"class":4657,"line":21644},[4173,102427,102428],{"class":4784},"            statusLabel.",[4173,102430,81370],{"class":4661},[4173,102432,6390],{"class":4784},[4173,102434,102435],{"class":4669},"\"Option 1 gewählt\"",[4173,102437,82274],{"class":4784},[4173,102439,102440,102443,102445,102447,102449,102451,102453,102455,102457,102459,102461],{"class":4657,"line":21649},[4173,102441,102442],{"class":4784},"        radio2.",[4173,102444,81978],{"class":4661},[4173,102446,81464],{"class":4784},[4173,102448,81467],{"class":4788},[4173,102450,82241],{"class":4784},[4173,102452,6201],{"class":4788},[4173,102454,81991],{"class":4784},[4173,102456,81994],{"class":4661},[4173,102458,82254],{"class":4784},[4173,102460,19453],{"class":4788},[4173,102462,102423],{"class":4784},[4173,102464,102465,102467,102469,102471,102474],{"class":4657,"line":21659},[4173,102466,81367],{"class":4784},[4173,102468,81370],{"class":4661},[4173,102470,6390],{"class":4784},[4173,102472,102473],{"class":4669},"\"Option 2 gewählt\"",[4173,102475,82274],{"class":4784},[4173,102477,102478,102481,102483,102485,102487,102489,102491,102493,102495,102497,102499],{"class":4657,"line":21664},[4173,102479,102480],{"class":4784},"        radio3.",[4173,102482,81978],{"class":4661},[4173,102484,81464],{"class":4784},[4173,102486,81467],{"class":4788},[4173,102488,82241],{"class":4784},[4173,102490,6201],{"class":4788},[4173,102492,81991],{"class":4784},[4173,102494,81994],{"class":4661},[4173,102496,82254],{"class":4784},[4173,102498,19453],{"class":4788},[4173,102500,102423],{"class":4784},[4173,102502,102503,102505,102507,102509,102512],{"class":4657,"line":21670},[4173,102504,81367],{"class":4784},[4173,102506,81370],{"class":4661},[4173,102508,6390],{"class":4784},[4173,102510,102511],{"class":4669},"\"Option 3 gewählt\"",[4173,102513,82274],{"class":4784},[4173,102515,102516,102518,102520,102522,102524,102526,102528],{"class":4657,"line":21675},[4173,102517,102304],{"class":4784},[4173,102519,79955],{"class":4661},[4173,102521,82363],{"class":4784},[4173,102523,79955],{"class":4661},[4173,102525,82368],{"class":4784},[4173,102527,79955],{"class":4661},[4173,102529,82227],{"class":4784},[4173,102531,102532],{"class":4657,"line":21685},[4173,102533,102534],{"class":4766},"        \u002F\u002F JButton mit AbstractAction (zeigt nochmal eine andere Art, Events zu verarbeiten)\n",[4173,102536,102537,102540,102542,102544,102546,102548,102550],{"class":4657,"line":21690},[4173,102538,102539],{"class":4784},"        Action specialAction ",[4173,102541,6387],{"class":4788},[4173,102543,79032],{"class":4788},[4173,102545,82394],{"class":4661},[4173,102547,6390],{"class":4784},[4173,102549,82399],{"class":4669},[4173,102551,56319],{"class":4784},[4173,102553,102554,102556],{"class":4657,"line":21696},[4173,102555,101564],{"class":4784},[4173,102557,80535],{"class":4788},[4173,102559,102560,102562,102564,102566,102568,102570],{"class":4657,"line":21701},[4173,102561,101571],{"class":4788},[4173,102563,79934],{"class":4788},[4173,102565,82416],{"class":4661},[4173,102567,82419],{"class":4784},[4173,102569,20602],{"class":7074},[4173,102571,56319],{"class":4784},[4173,102573,102574,102576,102578,102580,102582],{"class":4657,"line":21711},[4173,102575,101624],{"class":4784},[4173,102577,81370],{"class":4661},[4173,102579,6390],{"class":4784},[4173,102581,82434],{"class":4669},[4173,102583,55545],{"class":4784},[4173,102585,102586],{"class":4657,"line":21716},[4173,102587,101599],{"class":4784},[4173,102589,102590],{"class":4657,"line":21722},[4173,102591,102592],{"class":4784},"        };\n",[4173,102594,102595,102598,102600,102602,102604],{"class":4657,"line":21727},[4173,102596,102597],{"class":4784},"        JButton actionButton ",[4173,102599,6387],{"class":4788},[4173,102601,79032],{"class":4788},[4173,102603,81836],{"class":4661},[4173,102605,82458],{"class":4784},[4173,102607,102608],{"class":4657,"line":21737},[4173,102609,102610],{"class":4766},"        \u002F\u002F ChangeListener Beispiel (für Slider -> hier als Demo ein JSlider)\n",[4173,102612,102613,102616,102618,102620,102622,102624,102626,102628,102630,102632,102634],{"class":4657,"line":21742},[4173,102614,102615],{"class":4784},"        JSlider slider ",[4173,102617,6387],{"class":4788},[4173,102619,79032],{"class":4788},[4173,102621,82475],{"class":4661},[4173,102623,6390],{"class":4784},[4173,102625,12749],{"class":4665},[4173,102627,8629],{"class":4784},[4173,102629,5961],{"class":4665},[4173,102631,8629],{"class":4784},[4173,102633,82488],{"class":4665},[4173,102635,55545],{"class":4784},[4173,102637,102638,102641,102643,102645,102647,102649],{"class":4657,"line":21748},[4173,102639,102640],{"class":4784},"        slider.",[4173,102642,82498],{"class":4661},[4173,102644,6390],{"class":4784},[4173,102646,81243],{"class":4788},[4173,102648,82505],{"class":4661},[4173,102650,7062],{"class":4784},[4173,102652,102653,102655],{"class":4657,"line":21753},[4173,102654,101564],{"class":4784},[4173,102656,80535],{"class":4788},[4173,102658,102659,102661,102663,102665,102667,102669],{"class":4657,"line":21759},[4173,102660,101571],{"class":4788},[4173,102662,79934],{"class":4788},[4173,102664,82522],{"class":4661},[4173,102666,82525],{"class":4784},[4173,102668,20602],{"class":7074},[4173,102670,56319],{"class":4784},[4173,102672,102673,102675,102677,102679,102681,102683,102685,102687],{"class":4657,"line":21764},[4173,102674,101624],{"class":4784},[4173,102676,81370],{"class":4661},[4173,102678,6390],{"class":4784},[4173,102680,82540],{"class":4669},[4173,102682,11719],{"class":4788},[4173,102684,82545],{"class":4784},[4173,102686,82548],{"class":4661},[4173,102688,81860],{"class":4784},[4173,102690,102691],{"class":4657,"line":21782},[4173,102692,101599],{"class":4784},[4173,102694,102695],{"class":4657,"line":21787},[4173,102696,101641],{"class":4784},[4173,102698,102699],{"class":4657,"line":21793},[4173,102700,102701],{"class":4766},"        \u002F\u002F Komponenten in buttonPanel\n",[4173,102703,102704,102706,102708],{"class":4657,"line":21798},[4173,102705,101987],{"class":4784},[4173,102707,79955],{"class":4661},[4173,102709,82572],{"class":4784},[4173,102711,102712,102714,102716],{"class":4657,"line":21810},[4173,102713,101987],{"class":4784},[4173,102715,79955],{"class":4661},[4173,102717,82581],{"class":4784},[4173,102719,102720,102722,102724],{"class":4657,"line":21815},[4173,102721,101987],{"class":4784},[4173,102723,79955],{"class":4661},[4173,102725,82590],{"class":4784},[4173,102727,102728,102730,102732],{"class":4657,"line":21821},[4173,102729,101987],{"class":4784},[4173,102731,79955],{"class":4661},[4173,102733,82599],{"class":4784},[4173,102735,102736,102738,102740],{"class":4657,"line":21826},[4173,102737,101987],{"class":4784},[4173,102739,79955],{"class":4661},[4173,102741,82608],{"class":4784},[4173,102743,102744,102746,102748],{"class":4657,"line":21836},[4173,102745,101987],{"class":4784},[4173,102747,79955],{"class":4661},[4173,102749,82617],{"class":4784},[4173,102751,102752],{"class":4657,"line":21841},[4173,102753,102754],{"class":4766},"        \u002F\u002F Rechte Seite: Demonstration verschiedener Layouts in JPanels\n",[4173,102756,102757,102760,102762,102764,102766],{"class":4657,"line":21847},[4173,102758,102759],{"class":4784},"        JPanel layoutDemo ",[4173,102761,6387],{"class":4788},[4173,102763,79032],{"class":4788},[4173,102765,81533],{"class":4661},[4173,102767,65878],{"class":4784},[4173,102769,102770,102773,102775,102777,102779,102781,102784],{"class":4657,"line":21852},[4173,102771,102772],{"class":4784},"        layoutDemo.",[4173,102774,81776],{"class":4661},[4173,102776,81779],{"class":4784},[4173,102778,81782],{"class":4661},[4173,102780,6390],{"class":4784},[4173,102782,102783],{"class":4669},"\"Layout-Demos\"",[4173,102785,66047],{"class":4784},[4173,102787,102788,102790,102792,102794,102796,102798,102800],{"class":4657,"line":21862},[4173,102789,102772],{"class":4784},[4173,102791,81238],{"class":4661},[4173,102793,6390],{"class":4784},[4173,102795,81243],{"class":4788},[4173,102797,82671],{"class":4661},[4173,102799,82674],{"class":4784},[4173,102801,102802],{"class":4766},"\u002F\u002F BoxLayout\n",[4173,102804,102805],{"class":4657,"line":21867},[4173,102806,102807],{"class":4766},"        \u002F\u002F FlowLayout Beispiel\n",[4173,102809,102810,102813,102815,102817,102819,102821,102823,102825],{"class":4657,"line":21873},[4173,102811,102812],{"class":4784},"        JPanel flow ",[4173,102814,6387],{"class":4788},[4173,102816,79032],{"class":4788},[4173,102818,81533],{"class":4661},[4173,102820,6390],{"class":4784},[4173,102822,81243],{"class":4788},[4173,102824,81540],{"class":4661},[4173,102826,82120],{"class":4784},[4173,102828,102829,102832,102834,102836,102838,102840,102842],{"class":4657,"line":21878},[4173,102830,102831],{"class":4784},"        flow.",[4173,102833,81776],{"class":4661},[4173,102835,81779],{"class":4784},[4173,102837,81782],{"class":4661},[4173,102839,6390],{"class":4784},[4173,102841,82721],{"class":4669},[4173,102843,66047],{"class":4784},[4173,102845,102846,102848,102850,102852,102854,102856,102858,102860,102862,102864,102866,102868,102870,102872,102874,102876,102878,102880,102882,102884,102886,102888],{"class":4657,"line":21888},[4173,102847,102831],{"class":4784},[4173,102849,79955],{"class":4661},[4173,102851,6390],{"class":4784},[4173,102853,81243],{"class":4788},[4173,102855,81563],{"class":4661},[4173,102857,6390],{"class":4784},[4173,102859,82740],{"class":4669},[4173,102861,82743],{"class":4784},[4173,102863,79955],{"class":4661},[4173,102865,6390],{"class":4784},[4173,102867,81243],{"class":4788},[4173,102869,81563],{"class":4661},[4173,102871,6390],{"class":4784},[4173,102873,82756],{"class":4669},[4173,102875,82743],{"class":4784},[4173,102877,79955],{"class":4661},[4173,102879,6390],{"class":4784},[4173,102881,81243],{"class":4788},[4173,102883,81563],{"class":4661},[4173,102885,6390],{"class":4784},[4173,102887,82775],{"class":4669},[4173,102889,66047],{"class":4784},[4173,102891,102892],{"class":4657,"line":21893},[4173,102893,102894],{"class":4766},"        \u002F\u002F GridLayout Beispiel\n",[4173,102896,102897,102900,102902,102904,102906,102908,102910,102912,102914,102916,102918,102920,102922,102924,102926,102928],{"class":4657,"line":21899},[4173,102898,102899],{"class":4784},"        JPanel grid ",[4173,102901,6387],{"class":4788},[4173,102903,79032],{"class":4788},[4173,102905,81533],{"class":4661},[4173,102907,6390],{"class":4784},[4173,102909,81243],{"class":4788},[4173,102911,81729],{"class":4661},[4173,102913,6390],{"class":4784},[4173,102915,14206],{"class":4665},[4173,102917,8629],{"class":4784},[4173,102919,14206],{"class":4665},[4173,102921,8629],{"class":4784},[4173,102923,2894],{"class":4665},[4173,102925,8629],{"class":4784},[4173,102927,2894],{"class":4665},[4173,102929,66047],{"class":4784},[4173,102931,102932,102935,102937,102939,102941,102943,102945],{"class":4657,"line":21904},[4173,102933,102934],{"class":4784},"        grid.",[4173,102936,81776],{"class":4661},[4173,102938,81779],{"class":4784},[4173,102940,81782],{"class":4661},[4173,102942,6390],{"class":4784},[4173,102944,82833],{"class":4669},[4173,102946,66047],{"class":4784},[4173,102948,102949,102951,102953,102955,102957,102959,102961,102963,102965,102967,102969,102971,102973,102975,102977,102979,102981,102983,102985,102987,102989,102991],{"class":4657,"line":21910},[4173,102950,102934],{"class":4784},[4173,102952,79955],{"class":4661},[4173,102954,6390],{"class":4784},[4173,102956,81243],{"class":4788},[4173,102958,81563],{"class":4661},[4173,102960,6390],{"class":4784},[4173,102962,82852],{"class":4669},[4173,102964,82855],{"class":4784},[4173,102966,79955],{"class":4661},[4173,102968,6390],{"class":4784},[4173,102970,81243],{"class":4788},[4173,102972,81563],{"class":4661},[4173,102974,6390],{"class":4784},[4173,102976,82868],{"class":4669},[4173,102978,82855],{"class":4784},[4173,102980,79955],{"class":4661},[4173,102982,6390],{"class":4784},[4173,102984,81243],{"class":4788},[4173,102986,81563],{"class":4661},[4173,102988,6390],{"class":4784},[4173,102990,82885],{"class":4669},[4173,102992,66047],{"class":4784},[4173,102994,102995,102997,102999,103001,103003,103005,103007,103009],{"class":4657,"line":21915},[4173,102996,102934],{"class":4784},[4173,102998,79955],{"class":4661},[4173,103000,6390],{"class":4784},[4173,103002,81243],{"class":4788},[4173,103004,81563],{"class":4661},[4173,103006,6390],{"class":4784},[4173,103008,82900],{"class":4669},[4173,103010,66047],{"class":4784},[4173,103012,103013],{"class":4657,"line":21925},[4173,103014,103015],{"class":4766},"        \u002F\u002F GridBagLayout Beispiel (flexibel)\n",[4173,103017,103018,103021,103023,103025,103027,103029,103031,103033],{"class":4657,"line":21930},[4173,103019,103020],{"class":4784},"        JPanel gb ",[4173,103022,6387],{"class":4788},[4173,103024,79032],{"class":4788},[4173,103026,81533],{"class":4661},[4173,103028,6390],{"class":4784},[4173,103030,81243],{"class":4788},[4173,103032,82925],{"class":4661},[4173,103034,81860],{"class":4784},[4173,103036,103037,103040,103042,103044,103046,103048,103050],{"class":4657,"line":21936},[4173,103038,103039],{"class":4784},"        gb.",[4173,103041,81776],{"class":4661},[4173,103043,81779],{"class":4784},[4173,103045,81782],{"class":4661},[4173,103047,6390],{"class":4784},[4173,103049,82943],{"class":4669},[4173,103051,66047],{"class":4784},[4173,103053,103054,103057,103059,103061,103063],{"class":4657,"line":21941},[4173,103055,103056],{"class":4784},"        GridBagConstraints c ",[4173,103058,6387],{"class":4788},[4173,103060,79032],{"class":4788},[4173,103062,82957],{"class":4661},[4173,103064,65878],{"class":4784},[4173,103066,103067,103070,103072,103074,103076,103078,103080,103082,103084,103086,103088,103090,103092],{"class":4657,"line":21952},[4173,103068,103069],{"class":4784},"        c.insets ",[4173,103071,6387],{"class":4788},[4173,103073,79032],{"class":4788},[4173,103075,82971],{"class":4661},[4173,103077,6390],{"class":4784},[4173,103079,14206],{"class":4665},[4173,103081,42920],{"class":4784},[4173,103083,14206],{"class":4665},[4173,103085,42920],{"class":4784},[4173,103087,14206],{"class":4665},[4173,103089,42920],{"class":4784},[4173,103091,14206],{"class":4665},[4173,103093,55545],{"class":4784},[4173,103095,103096,103099,103101,103103,103105,103107,103109,103111,103113,103115,103117,103119,103121,103123],{"class":4657,"line":21957},[4173,103097,103098],{"class":4784},"        c.gridx ",[4173,103100,6387],{"class":4788},[4173,103102,25370],{"class":4665},[4173,103104,83001],{"class":4784},[4173,103106,6387],{"class":4788},[4173,103108,25370],{"class":4665},[4173,103110,83008],{"class":4784},[4173,103112,79955],{"class":4661},[4173,103114,6390],{"class":4784},[4173,103116,81243],{"class":4788},[4173,103118,81563],{"class":4661},[4173,103120,6390],{"class":4784},[4173,103122,83021],{"class":4669},[4173,103124,83024],{"class":4784},[4173,103126,103127,103129,103131,103133,103135,103137,103139,103141,103143,103145,103147,103149],{"class":4657,"line":21963},[4173,103128,103098],{"class":4784},[4173,103130,6387],{"class":4788},[4173,103132,10264],{"class":4665},[4173,103134,83001],{"class":4784},[4173,103136,6387],{"class":4788},[4173,103138,25370],{"class":4665},[4173,103140,83041],{"class":4784},[4173,103142,6387],{"class":4788},[4173,103144,83046],{"class":4665},[4173,103146,83049],{"class":4784},[4173,103148,6387],{"class":4788},[4173,103150,103151],{"class":4784}," GridBagConstraints.HORIZONTAL;\n",[4173,103153,103154,103156,103158,103160,103162,103164,103166,103168],{"class":4657,"line":21968},[4173,103155,103039],{"class":4784},[4173,103157,79955],{"class":4661},[4173,103159,6390],{"class":4784},[4173,103161,81243],{"class":4788},[4173,103163,83065],{"class":4661},[4173,103165,6390],{"class":4784},[4173,103167,83070],{"class":4669},[4173,103169,83024],{"class":4784},[4173,103171,103172,103174,103176],{"class":4657,"line":21980},[4173,103173,102772],{"class":4784},[4173,103175,79955],{"class":4661},[4173,103177,83081],{"class":4784},[4173,103179,103180,103182,103184],{"class":4657,"line":21985},[4173,103181,102772],{"class":4784},[4173,103183,79955],{"class":4661},[4173,103185,83090],{"class":4784},[4173,103187,103188,103190,103192],{"class":4657,"line":21991},[4173,103189,102772],{"class":4784},[4173,103191,79955],{"class":4661},[4173,103193,83099],{"class":4784},[4173,103195,103196,103198,103200],{"class":4657,"line":21996},[4173,103197,101936],{"class":4784},[4173,103199,79955],{"class":4661},[4173,103201,83108],{"class":4784},[4173,103203,103204,103206,103208],{"class":4657,"line":22009},[4173,103205,101936],{"class":4784},[4173,103207,79955],{"class":4661},[4173,103209,83117],{"class":4784},[4173,103211,103212],{"class":4657,"line":22014},[4173,103213,100385],{"class":4784},[4173,103215,103216,103218,103220,103222],{"class":4657,"line":22020},[4173,103217,100507],{"class":4788},[4173,103219,79934],{"class":4788},[4173,103221,83130],{"class":4661},[4173,103223,7062],{"class":4784},[4173,103225,103226,103229,103231,103233,103235,103237,103239,103241],{"class":4657,"line":22025},[4173,103227,103228],{"class":4784},"        bottomPanel ",[4173,103230,6387],{"class":4788},[4173,103232,79032],{"class":4788},[4173,103234,81533],{"class":4661},[4173,103236,6390],{"class":4784},[4173,103238,81243],{"class":4788},[4173,103240,81246],{"class":4661},[4173,103242,81860],{"class":4784},[4173,103244,103245,103248,103250,103252,103254,103256,103258],{"class":4657,"line":22031},[4173,103246,103247],{"class":4784},"        statusLabel ",[4173,103249,6387],{"class":4788},[4173,103251,79032],{"class":4788},[4173,103253,81563],{"class":4661},[4173,103255,6390],{"class":4784},[4173,103257,83167],{"class":4669},[4173,103259,55545],{"class":4784},[4173,103261,103262,103265,103267,103269,103271,103273,103275,103277,103279,103281,103283],{"class":4657,"line":22036},[4173,103263,103264],{"class":4784},"        statusLabel.",[4173,103266,81578],{"class":4661},[4173,103268,6390],{"class":4784},[4173,103270,81243],{"class":4788},[4173,103272,81585],{"class":4661},[4173,103274,6390],{"class":4784},[4173,103276,83186],{"class":4669},[4173,103278,81593],{"class":4784},[4173,103280,83191],{"class":4665},[4173,103282,48385],{"class":4784},[4173,103284,81601],{"class":4766},[4173,103286,103287,103290,103292],{"class":4657,"line":22046},[4173,103288,103289],{"class":4784},"        bottomPanel.",[4173,103291,79955],{"class":4661},[4173,103293,83205],{"class":4784},[4173,103295,103296],{"class":4657,"line":22051},[4173,103297,103298],{"class":4766},"        \u002F\u002F Beispiel für einen kleinen Input-Bereich\n",[4173,103300,103301,103304,103306,103308,103310,103312,103314,103316],{"class":4657,"line":22057},[4173,103302,103303],{"class":4784},"        JPanel inputPanel ",[4173,103305,6387],{"class":4788},[4173,103307,79032],{"class":4788},[4173,103309,81533],{"class":4661},[4173,103311,6390],{"class":4784},[4173,103313,81243],{"class":4788},[4173,103315,81540],{"class":4661},[4173,103317,83230],{"class":4784},[4173,103319,103320,103323,103325,103327,103329,103331,103333],{"class":4657,"line":22062},[4173,103321,103322],{"class":4784},"        JTextField input ",[4173,103324,6387],{"class":4788},[4173,103326,79032],{"class":4788},[4173,103328,83065],{"class":4661},[4173,103330,6390],{"class":4784},[4173,103332,83246],{"class":4665},[4173,103334,55545],{"class":4784},[4173,103336,103337,103340,103342,103344,103346,103348,103350],{"class":4657,"line":22072},[4173,103338,103339],{"class":4784},"        JButton send ",[4173,103341,6387],{"class":4788},[4173,103343,79032],{"class":4788},[4173,103345,81836],{"class":4661},[4173,103347,6390],{"class":4784},[4173,103349,83264],{"class":4669},[4173,103351,55545],{"class":4784},[4173,103353,103354,103357,103359,103361,103363,103365,103367,103369,103371,103373,103376,103378,103380],{"class":4657,"line":22077},[4173,103355,103356],{"class":4784},"        send.",[4173,103358,81461],{"class":4661},[4173,103360,81464],{"class":4784},[4173,103362,81467],{"class":4788},[4173,103364,81932],{"class":4784},[4173,103366,81370],{"class":4661},[4173,103368,6390],{"class":4784},[4173,103370,83286],{"class":4669},[4173,103372,11719],{"class":4788},[4173,103374,103375],{"class":4784}," input.",[4173,103377,83296],{"class":4661},[4173,103379,83299],{"class":4784},[4173,103381,103382],{"class":4766},"\u002F\u002F Dies\n",[4173,103384,103385],{"class":4657,"line":22083},[4173,103386,103387],{"class":4784},"nicht benutzen\n",[4173,103389,103390,103393,103395],{"class":4657,"line":22088},[4173,103391,103392],{"class":4784},"        inputPanel.",[4173,103394,79955],{"class":4661},[4173,103396,83312],{"class":4784},[4173,103398,103399,103401,103403],{"class":4657,"line":22094},[4173,103400,103392],{"class":4784},[4173,103402,79955],{"class":4661},[4173,103404,83321],{"class":4784},[4173,103406,103407,103409,103411],{"class":4657,"line":22099},[4173,103408,103289],{"class":4784},[4173,103410,79955],{"class":4661},[4173,103412,83330],{"class":4784},[4173,103414,103415],{"class":4657,"line":22109},[4173,103416,100385],{"class":4784},[4173,103418,103419,103421,103423,103425],{"class":4657,"line":22114},[4173,103420,100507],{"class":4788},[4173,103422,79934],{"class":4788},[4173,103424,81857],{"class":4661},[4173,103426,7062],{"class":4784},[4173,103428,103429],{"class":4657,"line":22120},[4173,103430,103431],{"class":4766},"        \u002F\u002F Beispiel: Modal-Dialog anzeigen\n",[4173,103433,103434,103437,103439,103441,103443,103445,103448,103450,103452],{"class":4657,"line":22125},[4173,103435,103436],{"class":4784},"        JOptionPane.",[4173,103438,83357],{"class":4661},[4173,103440,6390],{"class":4784},[4173,103442,80010],{"class":4665},[4173,103444,8629],{"class":4784},[4173,103446,103447],{"class":4669},"\"Der normale Button wurde gedrückt\"",[4173,103449,8629],{"class":4784},[4173,103451,83375],{"class":4669},[4173,103453,66026],{"class":4784},[4173,103455,103456],{"class":4657,"line":22131},[4173,103457,103458],{"class":4784},"JOptionPane.INFORMATION_MESSAGE);\n",[4173,103460,103461,103463,103465,103467,103469],{"class":4657,"line":22136},[4173,103462,103264],{"class":4784},[4173,103464,81370],{"class":4661},[4173,103466,6390],{"class":4784},[4173,103468,83389],{"class":4669},[4173,103470,55545],{"class":4784},[4173,103472,103473],{"class":4657,"line":22147},[4173,103474,100385],{"class":4784},[4173,103476,103477,103479,103481,103483,103485,103487,103489,103491,103493],{"class":4657,"line":22152},[4173,103478,100265],{"class":4788},[4173,103480,79892],{"class":4788},[4173,103482,79934],{"class":4788},[4173,103484,79937],{"class":4661},[4173,103486,6390],{"class":4784},[4173,103488,79693],{"class":4788},[4173,103490,80084],{"class":4784},[4173,103492,31283],{"class":7074},[4173,103494,56319],{"class":4784},[4173,103496,103497],{"class":4657,"line":22158},[4173,103498,103499],{"class":4766},"        \u002F\u002F GUI muss im EDT (Event Dispatch Thread) gestartet werden\n",[4173,103501,103502,103505,103507,103509,103511],{"class":4657,"line":22163},[4173,103503,103504],{"class":4784},"        SwingUtilities.",[4173,103506,83428],{"class":4661},[4173,103508,83431],{"class":4784},[4173,103510,81467],{"class":4788},[4173,103512,51614],{"class":4784},[4173,103514,103515,103518,103520,103522,103524],{"class":4657,"line":22173},[4173,103516,103517],{"class":4784},"            JavaSwingGUIExample frame ",[4173,103519,6387],{"class":4788},[4173,103521,79032],{"class":4788},[4173,103523,80981],{"class":4661},[4173,103525,65878],{"class":4784},[4173,103527,103528,103531,103533,103535,103537],{"class":4657,"line":22178},[4173,103529,103530],{"class":4784},"            frame.",[4173,103532,83456],{"class":4661},[4173,103534,6390],{"class":4784},[4173,103536,45190],{"class":4665},[4173,103538,55545],{"class":4784},[4173,103540,103541],{"class":4657,"line":22184},[4173,103542,101641],{"class":4784},[4173,103544,103545],{"class":4657,"line":22189},[4173,103546,100385],{"class":4784},[4173,103548,103549],{"class":4657,"line":22201},[4173,103550,7090],{"class":4784},[16,103552,103554],{"id":103553},"jpanel-jlabel-jtextfield","JPanel – JLabel-JTextField",[4647,103556,103558],{"className":78931,"code":103557,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport java.awt.*;\npublic class PanelInputExample {\n    public static void main(String[] args) {\n        JFrame frame = new JFrame(\"Input mit JPanel\");\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        frame.setSize(350, 180);\n        frame.setLayout(new GridLayout(3, 1, 10, 10)); \u002F\u002F 3 Zeilen, 1 Spalte, Abstand 10px\n        \u002F\u002F Panel für Benutzername\n        JPanel userPanel = new JPanel(new BorderLayout(5, 5)); \u002F\u002F Label links, Feld rechts\n        JLabel userLabel = new JLabel(\"Benutzername:\");\n        userLabel.setFont(new Font(\"Arial\", Font.BOLD, 16));\n        JTextField userField = new JTextField(20); \u002F\u002F Feldlänge 20 Zeichen\n        userPanel.add(userLabel, BorderLayout.WEST);\n        userPanel.add(userField, BorderLayout.CENTER);\n        \u002F\u002F Panel für Passwort\n        JPanel passPanel = new JPanel(new BorderLayout(5, 5));\n        JLabel passLabel = new JLabel(\"Passwort:\");\n        passLabel.setFont(new Font(\"Courier New\", Font.ITALIC, 14));\n        JTextField passField = new JTextField(20); \u002F\u002F Feldlänge 20 Zeichen\n        passPanel.add(passLabel, BorderLayout.WEST);\n        passPanel.add(passField, BorderLayout.CENTER);\n        \u002F\u002F Panel für Button\n        JPanel buttonPanel = new JPanel();\n        JButton submitButton = new JButton(\"Absenden\");\n        submitButton.addActionListener(e -> {\n            JOptionPane.showMessageDialog(frame,\n                \"Benutzername: \" + userField.getText() + \"\\nPasswort: \" + passField.getText());\n        });\n        buttonPanel.add(submitButton);\n        \u002F\u002F Panels zum Frame hinzufügen\n        frame.add(userPanel);\n        frame.add(passPanel);\n        frame.add(buttonPanel);\n        frame.setVisible(true);\n    }\n}\n\n",[4653,103559,103560,103570,103580,103590,103610,103627,103636,103652,103685,103690,103720,103737,103760,103779,103788,103796,103801,103828,103845,103868,103887,103896,103904,103909,103921,103938,103951,103960,103990,103994,104002,104007,104015,104023,104031,104043,104047],{"__ignoreMap":269},[4173,103561,103562,103564,103566,103568],{"class":4657,"line":4658},[4173,103563,79019],{"class":4788},[4173,103565,80877],{"class":4784},[4173,103567,6328],{"class":4665},[4173,103569,55559],{"class":4784},[4173,103571,103572,103574,103576,103578],{"class":4657,"line":270},[4173,103573,79019],{"class":4788},[4173,103575,80902],{"class":4784},[4173,103577,6328],{"class":4665},[4173,103579,55559],{"class":4784},[4173,103581,103582,103584,103586,103588],{"class":4657,"line":1263},[4173,103583,79889],{"class":4788},[4173,103585,80062],{"class":4788},[4173,103587,83512],{"class":4661},[4173,103589,51614],{"class":4784},[4173,103591,103592,103594,103596,103598,103600,103602,103604,103606,103608],{"class":4657,"line":4770},[4173,103593,100265],{"class":4788},[4173,103595,79892],{"class":4788},[4173,103597,79934],{"class":4788},[4173,103599,79937],{"class":4661},[4173,103601,6390],{"class":4784},[4173,103603,79693],{"class":4788},[4173,103605,80084],{"class":4784},[4173,103607,31283],{"class":7074},[4173,103609,56319],{"class":4784},[4173,103611,103612,103615,103617,103619,103621,103623,103625],{"class":4657,"line":4775},[4173,103613,103614],{"class":4784},"        JFrame frame ",[4173,103616,6387],{"class":4788},[4173,103618,79032],{"class":4788},[4173,103620,80986],{"class":4661},[4173,103622,6390],{"class":4784},[4173,103624,83550],{"class":4669},[4173,103626,55545],{"class":4784},[4173,103628,103629,103632,103634],{"class":4657,"line":6320},[4173,103630,103631],{"class":4784},"        frame.",[4173,103633,81114],{"class":4661},[4173,103635,83561],{"class":4784},[4173,103637,103638,103640,103642,103644,103646,103648,103650],{"class":4657,"line":6325},[4173,103639,103631],{"class":4784},[4173,103641,81129],{"class":4661},[4173,103643,6390],{"class":4784},[4173,103645,83572],{"class":4665},[4173,103647,8629],{"class":4784},[4173,103649,5807],{"class":4665},[4173,103651,55545],{"class":4784},[4173,103653,103654,103656,103658,103660,103662,103664,103666,103668,103670,103672,103674,103676,103678,103680,103682],{"class":4657,"line":6343},[4173,103655,103631],{"class":4784},[4173,103657,81238],{"class":4661},[4173,103659,6390],{"class":4784},[4173,103661,81243],{"class":4788},[4173,103663,81729],{"class":4661},[4173,103665,6390],{"class":4784},[4173,103667,14318],{"class":4665},[4173,103669,8629],{"class":4784},[4173,103671,14223],{"class":4665},[4173,103673,8629],{"class":4784},[4173,103675,81676],{"class":4665},[4173,103677,8629],{"class":4784},[4173,103679,81676],{"class":4665},[4173,103681,48385],{"class":4784},[4173,103683,103684],{"class":4766},"\u002F\u002F 3 Zeilen, 1 Spalte, Abstand 10px\n",[4173,103686,103687],{"class":4657,"line":6348},[4173,103688,103689],{"class":4766},"        \u002F\u002F Panel für Benutzername\n",[4173,103691,103692,103695,103697,103699,103701,103703,103705,103707,103709,103711,103713,103715,103717],{"class":4657,"line":6457},[4173,103693,103694],{"class":4784},"        JPanel userPanel ",[4173,103696,6387],{"class":4788},[4173,103698,79032],{"class":4788},[4173,103700,81533],{"class":4661},[4173,103702,6390],{"class":4784},[4173,103704,81243],{"class":4788},[4173,103706,81246],{"class":4661},[4173,103708,6390],{"class":4784},[4173,103710,14292],{"class":4665},[4173,103712,8629],{"class":4784},[4173,103714,14292],{"class":4665},[4173,103716,48385],{"class":4784},[4173,103718,103719],{"class":4766},"\u002F\u002F Label links, Feld rechts\n",[4173,103721,103722,103725,103727,103729,103731,103733,103735],{"class":4657,"line":6462},[4173,103723,103724],{"class":4784},"        JLabel userLabel ",[4173,103726,6387],{"class":4788},[4173,103728,79032],{"class":4788},[4173,103730,81563],{"class":4661},[4173,103732,6390],{"class":4784},[4173,103734,83672],{"class":4669},[4173,103736,55545],{"class":4784},[4173,103738,103739,103742,103744,103746,103748,103750,103752,103754,103756,103758],{"class":4657,"line":6468},[4173,103740,103741],{"class":4784},"        userLabel.",[4173,103743,81578],{"class":4661},[4173,103745,6390],{"class":4784},[4173,103747,81243],{"class":4788},[4173,103749,81585],{"class":4661},[4173,103751,6390],{"class":4784},[4173,103753,83692],{"class":4669},[4173,103755,81593],{"class":4784},[4173,103757,83697],{"class":4665},[4173,103759,66047],{"class":4784},[4173,103761,103762,103765,103767,103769,103771,103773,103775,103777],{"class":4657,"line":6473},[4173,103763,103764],{"class":4784},"        JTextField userField ",[4173,103766,6387],{"class":4788},[4173,103768,79032],{"class":4788},[4173,103770,83065],{"class":4661},[4173,103772,6390],{"class":4784},[4173,103774,83246],{"class":4665},[4173,103776,79107],{"class":4784},[4173,103778,83719],{"class":4766},[4173,103780,103781,103784,103786],{"class":4657,"line":6479},[4173,103782,103783],{"class":4784},"        userPanel.",[4173,103785,79955],{"class":4661},[4173,103787,83729],{"class":4784},[4173,103789,103790,103792,103794],{"class":4657,"line":6503},[4173,103791,103783],{"class":4784},[4173,103793,79955],{"class":4661},[4173,103795,83738],{"class":4784},[4173,103797,103798],{"class":4657,"line":6516},[4173,103799,103800],{"class":4766},"        \u002F\u002F Panel für Passwort\n",[4173,103802,103803,103806,103808,103810,103812,103814,103816,103818,103820,103822,103824,103826],{"class":4657,"line":6971},[4173,103804,103805],{"class":4784},"        JPanel passPanel ",[4173,103807,6387],{"class":4788},[4173,103809,79032],{"class":4788},[4173,103811,81533],{"class":4661},[4173,103813,6390],{"class":4784},[4173,103815,81243],{"class":4788},[4173,103817,81246],{"class":4661},[4173,103819,6390],{"class":4784},[4173,103821,14292],{"class":4665},[4173,103823,8629],{"class":4784},[4173,103825,14292],{"class":4665},[4173,103827,66047],{"class":4784},[4173,103829,103830,103833,103835,103837,103839,103841,103843],{"class":4657,"line":10649},[4173,103831,103832],{"class":4784},"        JLabel passLabel ",[4173,103834,6387],{"class":4788},[4173,103836,79032],{"class":4788},[4173,103838,81563],{"class":4661},[4173,103840,6390],{"class":4784},[4173,103842,83786],{"class":4669},[4173,103844,55545],{"class":4784},[4173,103846,103847,103850,103852,103854,103856,103858,103860,103862,103864,103866],{"class":4657,"line":10654},[4173,103848,103849],{"class":4784},"        passLabel.",[4173,103851,81578],{"class":4661},[4173,103853,6390],{"class":4784},[4173,103855,81243],{"class":4788},[4173,103857,81585],{"class":4661},[4173,103859,6390],{"class":4784},[4173,103861,83806],{"class":4669},[4173,103863,81645],{"class":4784},[4173,103865,83191],{"class":4665},[4173,103867,66047],{"class":4784},[4173,103869,103870,103873,103875,103877,103879,103881,103883,103885],{"class":4657,"line":10659},[4173,103871,103872],{"class":4784},"        JTextField passField ",[4173,103874,6387],{"class":4788},[4173,103876,79032],{"class":4788},[4173,103878,83065],{"class":4661},[4173,103880,6390],{"class":4784},[4173,103882,83246],{"class":4665},[4173,103884,79107],{"class":4784},[4173,103886,83719],{"class":4766},[4173,103888,103889,103892,103894],{"class":4657,"line":10664},[4173,103890,103891],{"class":4784},"        passPanel.",[4173,103893,79955],{"class":4661},[4173,103895,83841],{"class":4784},[4173,103897,103898,103900,103902],{"class":4657,"line":10676},[4173,103899,103891],{"class":4784},[4173,103901,79955],{"class":4661},[4173,103903,83850],{"class":4784},[4173,103905,103906],{"class":4657,"line":10681},[4173,103907,103908],{"class":4766},"        \u002F\u002F Panel für Button\n",[4173,103910,103911,103913,103915,103917,103919],{"class":4657,"line":10702},[4173,103912,101974],{"class":4784},[4173,103914,6387],{"class":4788},[4173,103916,79032],{"class":4788},[4173,103918,81533],{"class":4661},[4173,103920,65878],{"class":4784},[4173,103922,103923,103926,103928,103930,103932,103934,103936],{"class":4657,"line":10707},[4173,103924,103925],{"class":4784},"        JButton submitButton ",[4173,103927,6387],{"class":4788},[4173,103929,79032],{"class":4788},[4173,103931,81836],{"class":4661},[4173,103933,6390],{"class":4784},[4173,103935,83883],{"class":4669},[4173,103937,55545],{"class":4784},[4173,103939,103940,103943,103945,103947,103949],{"class":4657,"line":10712},[4173,103941,103942],{"class":4784},"        submitButton.",[4173,103944,81461],{"class":4661},[4173,103946,81464],{"class":4784},[4173,103948,81467],{"class":4788},[4173,103950,51614],{"class":4784},[4173,103952,103953,103956,103958],{"class":4657,"line":10717},[4173,103954,103955],{"class":4784},"            JOptionPane.",[4173,103957,83357],{"class":4661},[4173,103959,83907],{"class":4784},[4173,103961,103962,103965,103967,103969,103971,103973,103975,103977,103979,103981,103983,103986,103988],{"class":4657,"line":10727},[4173,103963,103964],{"class":4669},"                \"Benutzername: \"",[4173,103966,11719],{"class":4788},[4173,103968,83917],{"class":4784},[4173,103970,83296],{"class":4661},[4173,103972,80558],{"class":4784},[4173,103974,14419],{"class":4788},[4173,103976,6218],{"class":4669},[4173,103978,83928],{"class":4665},[4173,103980,83931],{"class":4669},[4173,103982,11719],{"class":4788},[4173,103984,103985],{"class":4784}," passField.",[4173,103987,83296],{"class":4661},[4173,103989,81860],{"class":4784},[4173,103991,103992],{"class":4657,"line":10732},[4173,103993,101641],{"class":4784},[4173,103995,103996,103998,104000],{"class":4657,"line":10737},[4173,103997,101987],{"class":4784},[4173,103999,79955],{"class":4661},[4173,104001,83955],{"class":4784},[4173,104003,104004],{"class":4657,"line":10742},[4173,104005,104006],{"class":4766},"        \u002F\u002F Panels zum Frame hinzufügen\n",[4173,104008,104009,104011,104013],{"class":4657,"line":10752},[4173,104010,103631],{"class":4784},[4173,104012,79955],{"class":4661},[4173,104014,83969],{"class":4784},[4173,104016,104017,104019,104021],{"class":4657,"line":10757},[4173,104018,103631],{"class":4784},[4173,104020,79955],{"class":4661},[4173,104022,83978],{"class":4784},[4173,104024,104025,104027,104029],{"class":4657,"line":10762},[4173,104026,103631],{"class":4784},[4173,104028,79955],{"class":4661},[4173,104030,83108],{"class":4784},[4173,104032,104033,104035,104037,104039,104041],{"class":4657,"line":10767},[4173,104034,103631],{"class":4784},[4173,104036,83456],{"class":4661},[4173,104038,6390],{"class":4784},[4173,104040,45190],{"class":4665},[4173,104042,55545],{"class":4784},[4173,104044,104045],{"class":4657,"line":10772},[4173,104046,100385],{"class":4784},[4173,104048,104049],{"class":4657,"line":10777},[4173,104050,7090],{"class":4784},[16,104052,104054],{"id":104053},"joptionpane","JOptionPane",[4647,104056,104058],{"className":78931,"code":104057,"language":78933,"meta":269,"style":269},"import javax.swing.*;\npublic class JOptionPaneDemo {\n    public static void main(String[] args) {\n\n",[4653,104059,104060,104070,104080],{"__ignoreMap":269},[4173,104061,104062,104064,104066,104068],{"class":4657,"line":4658},[4173,104063,79019],{"class":4788},[4173,104065,80877],{"class":4784},[4173,104067,6328],{"class":4665},[4173,104069,55559],{"class":4784},[4173,104071,104072,104074,104076,104078],{"class":4657,"line":270},[4173,104073,79889],{"class":4788},[4173,104075,80062],{"class":4788},[4173,104077,84034],{"class":4661},[4173,104079,51614],{"class":4784},[4173,104081,104082,104084,104086,104088,104090,104092,104094,104096,104098],{"class":4657,"line":1263},[4173,104083,100265],{"class":4788},[4173,104085,79892],{"class":4788},[4173,104087,79934],{"class":4788},[4173,104089,79937],{"class":4661},[4173,104091,6390],{"class":4784},[4173,104093,79693],{"class":4788},[4173,104095,80084],{"class":4784},[4173,104097,31283],{"class":7074},[4173,104099,56319],{"class":4784},[470,104101,104103],{"id":104102},"einfache-nachricht","\u002F\u002F Einfache Nachricht",[4647,104105,104107],{"className":78931,"code":104106,"language":78933,"meta":269,"style":269},"        JOptionPane.showMessageDialog(\n                null,\n                \"Dies ist eine einfache Nachricht.\",\n                \"MessageDialog\",\n                JOptionPane.INFORMATION_MESSAGE\n        );\n\n",[4653,104108,104109,104117,104124,104131,104138,104143],{"__ignoreMap":269},[4173,104110,104111,104113,104115],{"class":4657,"line":4658},[4173,104112,103436],{"class":4784},[4173,104114,83357],{"class":4661},[4173,104116,84074],{"class":4784},[4173,104118,104119,104122],{"class":4657,"line":270},[4173,104120,104121],{"class":4665},"                null",[4173,104123,66026],{"class":4784},[4173,104125,104126,104129],{"class":4657,"line":1263},[4173,104127,104128],{"class":4669},"                \"Dies ist eine einfache Nachricht.\"",[4173,104130,66026],{"class":4784},[4173,104132,104133,104136],{"class":4657,"line":4770},[4173,104134,104135],{"class":4669},"                \"MessageDialog\"",[4173,104137,66026],{"class":4784},[4173,104139,104140],{"class":4657,"line":4775},[4173,104141,104142],{"class":4784},"                JOptionPane.INFORMATION_MESSAGE\n",[4173,104144,104145],{"class":4657,"line":6320},[4173,104146,104147],{"class":4784},"        );\n",[470,104149,104151],{"id":104150},"warnung","\u002F\u002F Warnung",[4647,104153,104155],{"className":78931,"code":104154,"language":78933,"meta":269,"style":269},"        JOptionPane.showMessageDialog(\n                null,\n                \"Dies ist eine Warnung!\",\n                \"Warnung\",\n                JOptionPane.WARNING_MESSAGE\n        );\n\n",[4653,104156,104157,104165,104171,104178,104185,104190],{"__ignoreMap":269},[4173,104158,104159,104161,104163],{"class":4657,"line":4658},[4173,104160,103436],{"class":4784},[4173,104162,83357],{"class":4661},[4173,104164,84074],{"class":4784},[4173,104166,104167,104169],{"class":4657,"line":270},[4173,104168,104121],{"class":4665},[4173,104170,66026],{"class":4784},[4173,104172,104173,104176],{"class":4657,"line":1263},[4173,104174,104175],{"class":4669},"                \"Dies ist eine Warnung!\"",[4173,104177,66026],{"class":4784},[4173,104179,104180,104183],{"class":4657,"line":4770},[4173,104181,104182],{"class":4669},"                \"Warnung\"",[4173,104184,66026],{"class":4784},[4173,104186,104187],{"class":4657,"line":4775},[4173,104188,104189],{"class":4784},"                JOptionPane.WARNING_MESSAGE\n",[4173,104191,104192],{"class":4657,"line":6320},[4173,104193,104147],{"class":4784},[470,104195,104197],{"id":104196},"fehler","\u002F\u002F Fehler",[4647,104199,104201],{"className":78931,"code":104200,"language":78933,"meta":269,"style":269},"        JOptionPane.showMessageDialog(\n                null,\n                \"Es ist ein Fehler aufgetreten.\",\n                \"Fehler\",\n                JOptionPane.ERROR_MESSAGE\n        );\n\n",[4653,104202,104203,104211,104217,104224,104231,104236],{"__ignoreMap":269},[4173,104204,104205,104207,104209],{"class":4657,"line":4658},[4173,104206,103436],{"class":4784},[4173,104208,83357],{"class":4661},[4173,104210,84074],{"class":4784},[4173,104212,104213,104215],{"class":4657,"line":270},[4173,104214,104121],{"class":4665},[4173,104216,66026],{"class":4784},[4173,104218,104219,104222],{"class":4657,"line":1263},[4173,104220,104221],{"class":4669},"                \"Es ist ein Fehler aufgetreten.\"",[4173,104223,66026],{"class":4784},[4173,104225,104226,104229],{"class":4657,"line":4770},[4173,104227,104228],{"class":4669},"                \"Fehler\"",[4173,104230,66026],{"class":4784},[4173,104232,104233],{"class":4657,"line":4775},[4173,104234,104235],{"class":4784},"                JOptionPane.ERROR_MESSAGE\n",[4173,104237,104238],{"class":4657,"line":6320},[4173,104239,104147],{"class":4784},[470,104241,104243],{"id":104242},"frage-dialog","\u002F\u002F Frage-Dialog",[4647,104245,104247],{"className":78931,"code":104246,"language":78933,"meta":269,"style":269},"        JOptionPane.showMessageDialog(\n                null,\n                \"Eine Frage (nur zur Anzeige).\",\n                \"Frage\",\n                JOptionPane.QUESTION_MESSAGE\n        );\n\n",[4653,104248,104249,104257,104263,104270,104277,104282],{"__ignoreMap":269},[4173,104250,104251,104253,104255],{"class":4657,"line":4658},[4173,104252,103436],{"class":4784},[4173,104254,83357],{"class":4661},[4173,104256,84074],{"class":4784},[4173,104258,104259,104261],{"class":4657,"line":270},[4173,104260,104121],{"class":4665},[4173,104262,66026],{"class":4784},[4173,104264,104265,104268],{"class":4657,"line":1263},[4173,104266,104267],{"class":4669},"                \"Eine Frage (nur zur Anzeige).\"",[4173,104269,66026],{"class":4784},[4173,104271,104272,104275],{"class":4657,"line":4770},[4173,104273,104274],{"class":4669},"                \"Frage\"",[4173,104276,66026],{"class":4784},[4173,104278,104279],{"class":4657,"line":4775},[4173,104280,104281],{"class":4784},"                JOptionPane.QUESTION_MESSAGE\n",[4173,104283,104284],{"class":4657,"line":6320},[4173,104285,104147],{"class":4784},[470,104287,104289],{"id":104288},"bestätigungsdialog-janein","\u002F\u002F Bestätigungsdialog (Ja\u002FNein)",[4647,104291,104293],{"className":78931,"code":104292,"language":78933,"meta":269,"style":269},"        int confirm = JOptionPane.showConfirmDialog(\n                null,\n                \"Möchten Sie fortfahren?\",\n                \"Bestätigung\",\n                JOptionPane.YES_NO_OPTION\n        );\n        System.out.println(\"Auswahl confirm: \" + confirm);\n\n",[4653,104294,104295,104310,104316,104323,104330,104335,104339],{"__ignoreMap":269},[4173,104296,104297,104300,104302,104304,104306,104308],{"class":4657,"line":4658},[4173,104298,104299],{"class":4788},"        int",[4173,104301,84257],{"class":4784},[4173,104303,6387],{"class":4788},[4173,104305,84262],{"class":4784},[4173,104307,84265],{"class":4661},[4173,104309,84074],{"class":4784},[4173,104311,104312,104314],{"class":4657,"line":270},[4173,104313,104121],{"class":4665},[4173,104315,66026],{"class":4784},[4173,104317,104318,104321],{"class":4657,"line":1263},[4173,104319,104320],{"class":4669},"                \"Möchten Sie fortfahren?\"",[4173,104322,66026],{"class":4784},[4173,104324,104325,104328],{"class":4657,"line":4770},[4173,104326,104327],{"class":4669},"                \"Bestätigung\"",[4173,104329,66026],{"class":4784},[4173,104331,104332],{"class":4657,"line":4775},[4173,104333,104334],{"class":4784},"                JOptionPane.YES_NO_OPTION\n",[4173,104336,104337],{"class":4657,"line":6320},[4173,104338,104147],{"class":4784},[4173,104340,104341,104343,104345,104347,104349,104351],{"class":4657,"line":6325},[4173,104342,100097],{"class":4784},[4173,104344,79074],{"class":4661},[4173,104346,6390],{"class":4784},[4173,104348,84307],{"class":4669},[4173,104350,11719],{"class":4788},[4173,104352,84312],{"class":4784},[470,104354,104356],{"id":104355},"bestätigungsdialog-janeinabbrechen","\u002F\u002F Bestätigungsdialog (Ja\u002FNein\u002FAbbrechen)",[4647,104358,104360],{"className":78931,"code":104359,"language":78933,"meta":269,"style":269},"        int confirm2 = JOptionPane.showConfirmDialog(\n                null,\n                \"Ja \u002F Nein \u002F Abbrechen?\",\n                \"Bestätigung\",\n                JOptionPane.YES_NO_CANCEL_OPTION\n        );\n        System.out.println(\"Auswahl confirm2: \" + confirm2);\n\n",[4653,104361,104362,104376,104382,104389,104395,104400,104404],{"__ignoreMap":269},[4173,104363,104364,104366,104368,104370,104372,104374],{"class":4657,"line":4658},[4173,104365,104299],{"class":4788},[4173,104367,84328],{"class":4784},[4173,104369,6387],{"class":4788},[4173,104371,84262],{"class":4784},[4173,104373,84265],{"class":4661},[4173,104375,84074],{"class":4784},[4173,104377,104378,104380],{"class":4657,"line":270},[4173,104379,104121],{"class":4665},[4173,104381,66026],{"class":4784},[4173,104383,104384,104387],{"class":4657,"line":1263},[4173,104385,104386],{"class":4669},"                \"Ja \u002F Nein \u002F Abbrechen?\"",[4173,104388,66026],{"class":4784},[4173,104390,104391,104393],{"class":4657,"line":4770},[4173,104392,104327],{"class":4669},[4173,104394,66026],{"class":4784},[4173,104396,104397],{"class":4657,"line":4775},[4173,104398,104399],{"class":4784},"                JOptionPane.YES_NO_CANCEL_OPTION\n",[4173,104401,104402],{"class":4657,"line":6320},[4173,104403,104147],{"class":4784},[4173,104405,104406,104408,104410,104412,104414,104416],{"class":4657,"line":6325},[4173,104407,100097],{"class":4784},[4173,104409,79074],{"class":4661},[4173,104411,6390],{"class":4784},[4173,104413,84375],{"class":4669},[4173,104415,11719],{"class":4788},[4173,104417,84380],{"class":4784},[470,104419,104421],{"id":104420},"inputdialog-freitext","\u002F\u002F InputDialog – Freitext",[4647,104423,104425],{"className":78931,"code":104424,"language":78933,"meta":269,"style":269},"        String text = JOptionPane.showInputDialog(\n                null,\n                \"Bitte geben Sie etwas ein:\",\n                \"Text-Eingabe\",\n                JOptionPane.QUESTION_MESSAGE\n        );\n        System.out.println(\"Eingabe: \" + text);\n\n",[4653,104426,104427,104440,104446,104453,104460,104464,104468],{"__ignoreMap":269},[4173,104428,104429,104432,104434,104436,104438],{"class":4657,"line":4658},[4173,104430,104431],{"class":4784},"        String text ",[4173,104433,6387],{"class":4788},[4173,104435,84262],{"class":4784},[4173,104437,84400],{"class":4661},[4173,104439,84074],{"class":4784},[4173,104441,104442,104444],{"class":4657,"line":270},[4173,104443,104121],{"class":4665},[4173,104445,66026],{"class":4784},[4173,104447,104448,104451],{"class":4657,"line":1263},[4173,104449,104450],{"class":4669},"                \"Bitte geben Sie etwas ein:\"",[4173,104452,66026],{"class":4784},[4173,104454,104455,104458],{"class":4657,"line":4770},[4173,104456,104457],{"class":4669},"                \"Text-Eingabe\"",[4173,104459,66026],{"class":4784},[4173,104461,104462],{"class":4657,"line":4775},[4173,104463,104281],{"class":4784},[4173,104465,104466],{"class":4657,"line":6320},[4173,104467,104147],{"class":4784},[4173,104469,104470,104472,104474,104476,104478,104480],{"class":4657,"line":6325},[4173,104471,100097],{"class":4784},[4173,104473,79074],{"class":4661},[4173,104475,6390],{"class":4784},[4173,104477,84441],{"class":4669},[4173,104479,11719],{"class":4788},[4173,104481,84446],{"class":4784},[470,104483,104485],{"id":104484},"inputdialog-dropdown-auswahl","\u002F\u002F InputDialog – Dropdown Auswahl",[4647,104487,104489],{"className":78931,"code":104488,"language":78933,"meta":269,"style":269},"        Object[] farben = {\"Rot\", \"Grün\", \"Blau\"};\n        Object auswahl = JOptionPane.showInputDialog(\n                null,\n                \"Wähle eine Farbe:\",\n                \"Dropdown-Eingabe\",\n                JOptionPane.PLAIN_MESSAGE,\n                null,\n                farben,\n                \"Rot\"\n        );\n        System.out.println(\"Farbwahl: \" + auswahl);\n\n",[4653,104490,104491,104514,104527,104533,104540,104547,104552,104558,104563,104568,104572],{"__ignoreMap":269},[4173,104492,104493,104496,104498,104500,104502,104504,104506,104508,104510,104512],{"class":4657,"line":4658},[4173,104494,104495],{"class":4788},"        Object",[4173,104497,84463],{"class":4784},[4173,104499,6387],{"class":4788},[4173,104501,6560],{"class":4784},[4173,104503,84470],{"class":4669},[4173,104505,8629],{"class":4784},[4173,104507,84475],{"class":4669},[4173,104509,8629],{"class":4784},[4173,104511,84480],{"class":4669},[4173,104513,79847],{"class":4784},[4173,104515,104516,104519,104521,104523,104525],{"class":4657,"line":270},[4173,104517,104518],{"class":4784},"        Object auswahl ",[4173,104520,6387],{"class":4788},[4173,104522,84262],{"class":4784},[4173,104524,84400],{"class":4661},[4173,104526,84074],{"class":4784},[4173,104528,104529,104531],{"class":4657,"line":1263},[4173,104530,104121],{"class":4665},[4173,104532,66026],{"class":4784},[4173,104534,104535,104538],{"class":4657,"line":4770},[4173,104536,104537],{"class":4669},"                \"Wähle eine Farbe:\"",[4173,104539,66026],{"class":4784},[4173,104541,104542,104545],{"class":4657,"line":4775},[4173,104543,104544],{"class":4669},"                \"Dropdown-Eingabe\"",[4173,104546,66026],{"class":4784},[4173,104548,104549],{"class":4657,"line":6320},[4173,104550,104551],{"class":4784},"                JOptionPane.PLAIN_MESSAGE,\n",[4173,104553,104554,104556],{"class":4657,"line":6325},[4173,104555,104121],{"class":4665},[4173,104557,66026],{"class":4784},[4173,104559,104560],{"class":4657,"line":6343},[4173,104561,104562],{"class":4784},"                farben,\n",[4173,104564,104565],{"class":4657,"line":6348},[4173,104566,104567],{"class":4669},"                \"Rot\"\n",[4173,104569,104570],{"class":4657,"line":6457},[4173,104571,104147],{"class":4784},[4173,104573,104574,104576,104578,104580,104582,104584],{"class":4657,"line":6462},[4173,104575,100097],{"class":4784},[4173,104577,79074],{"class":4661},[4173,104579,6390],{"class":4784},[4173,104581,84551],{"class":4669},[4173,104583,11719],{"class":4788},[4173,104585,84556],{"class":4784},[470,104587,104589],{"id":104588},"optiondialog-völlig-frei","\u002F\u002F OptionDialog – völlig frei",[4647,104591,104593],{"className":78931,"code":104592,"language":78933,"meta":269,"style":269},"        Object[] buttons = {\"Speichern\", \"Laden\", \"Abbrechen\"};\n        int option = JOptionPane.showOptionDialog(\n                null,\n                \"Was möchten Sie tun?\",\n                \"Optionen\",\n                JOptionPane.DEFAULT_OPTION,\n                JOptionPane.QUESTION_MESSAGE,\n                null,\n                buttons,\n                buttons[0]\n        );\n        System.out.println(\"Ausgewählte Option: \" + option);\n\n",[4653,104594,104595,104617,104631,104637,104644,104651,104656,104661,104667,104672,104681,104685],{"__ignoreMap":269},[4173,104596,104597,104599,104601,104603,104605,104607,104609,104611,104613,104615],{"class":4657,"line":4658},[4173,104598,104495],{"class":4788},[4173,104600,84572],{"class":4784},[4173,104602,6387],{"class":4788},[4173,104604,6560],{"class":4784},[4173,104606,84579],{"class":4669},[4173,104608,8629],{"class":4784},[4173,104610,84584],{"class":4669},[4173,104612,8629],{"class":4784},[4173,104614,84589],{"class":4669},[4173,104616,79847],{"class":4784},[4173,104618,104619,104621,104623,104625,104627,104629],{"class":4657,"line":270},[4173,104620,104299],{"class":4788},[4173,104622,84598],{"class":4784},[4173,104624,6387],{"class":4788},[4173,104626,84262],{"class":4784},[4173,104628,84605],{"class":4661},[4173,104630,84074],{"class":4784},[4173,104632,104633,104635],{"class":4657,"line":1263},[4173,104634,104121],{"class":4665},[4173,104636,66026],{"class":4784},[4173,104638,104639,104642],{"class":4657,"line":4770},[4173,104640,104641],{"class":4669},"                \"Was möchten Sie tun?\"",[4173,104643,66026],{"class":4784},[4173,104645,104646,104649],{"class":4657,"line":4775},[4173,104647,104648],{"class":4669},"                \"Optionen\"",[4173,104650,66026],{"class":4784},[4173,104652,104653],{"class":4657,"line":6320},[4173,104654,104655],{"class":4784},"                JOptionPane.DEFAULT_OPTION,\n",[4173,104657,104658],{"class":4657,"line":6325},[4173,104659,104660],{"class":4784},"                JOptionPane.QUESTION_MESSAGE,\n",[4173,104662,104663,104665],{"class":4657,"line":6343},[4173,104664,104121],{"class":4665},[4173,104666,66026],{"class":4784},[4173,104668,104669],{"class":4657,"line":6348},[4173,104670,104671],{"class":4784},"                buttons,\n",[4173,104673,104674,104677,104679],{"class":4657,"line":6457},[4173,104675,104676],{"class":4784},"                buttons[",[4173,104678,12749],{"class":4665},[4173,104680,8635],{"class":4784},[4173,104682,104683],{"class":4657,"line":6462},[4173,104684,104147],{"class":4784},[4173,104686,104687,104689,104691,104693,104695,104697],{"class":4657,"line":6468},[4173,104688,100097],{"class":4784},[4173,104690,79074],{"class":4661},[4173,104692,6390],{"class":4784},[4173,104694,84672],{"class":4669},[4173,104696,11719],{"class":4788},[4173,104698,84677],{"class":4784},[470,104700,104702],{"id":104701},"eigenes-icon-optional-funktioniert-nur-wenn-bild-existiert","\u002F\u002F Eigenes Icon (optional – funktioniert nur, wenn Bild existiert)",[4647,104704,104706],{"className":78931,"code":104705,"language":78933,"meta":269,"style":269},"        \u002F\u002F ImageIcon icon = new ImageIcon(\"pfad\u002Fzu\u002Fbild.png\");\n        \u002F\u002F JOptionPane.showMessageDialog(null, \"Nachricht mit eigenem Icon\", \"Custom Icon\", JOptionPane.PLAIN_MESSAGE, icon);\n\n",[4653,104707,104708,104713],{"__ignoreMap":269},[4173,104709,104710],{"class":4657,"line":4658},[4173,104711,104712],{"class":4766},"        \u002F\u002F ImageIcon icon = new ImageIcon(\"pfad\u002Fzu\u002Fbild.png\");\n",[4173,104714,104715],{"class":4657,"line":270},[4173,104716,104717],{"class":4766},"        \u002F\u002F JOptionPane.showMessageDialog(null, \"Nachricht mit eigenem Icon\", \"Custom Icon\", JOptionPane.PLAIN_MESSAGE, icon);\n",[470,104719,104721],{"id":104720},"nur-information-ohne-titel","\u002F\u002F Nur Information ohne Titel",[4647,104723,104725],{"className":78931,"code":104724,"language":78933,"meta":269,"style":269},"        JOptionPane.showMessageDialog(null, \"Kurze Info ohne Titel\");\n\n",[4653,104726,104727],{"__ignoreMap":269},[4173,104728,104729,104731,104733,104735,104737,104739,104741],{"class":4657,"line":4658},[4173,104730,103436],{"class":4784},[4173,104732,83357],{"class":4661},[4173,104734,6390],{"class":4784},[4173,104736,81169],{"class":4665},[4173,104738,8629],{"class":4784},[4173,104740,84724],{"class":4669},[4173,104742,55545],{"class":4784},[470,104744,104746],{"id":104745},"nur-optiondialog-ohne-icon-pure-buttons","\u002F\u002F Nur OptionDialog ohne Icon \u002F pure Buttons",[4647,104748,104750],{"className":78931,"code":104749,"language":78933,"meta":269,"style":269},"        String[] options2 = {\"Option A\", \"Option B\", \"Option C\"};\n        int click = JOptionPane.showOptionDialog(\n                null,\n                \"Wähle eine Option:\",\n                \"Benutzerdefinierte Buttons\",\n                JOptionPane.YES_NO_CANCEL_OPTION,\n                JOptionPane.PLAIN_MESSAGE,\n                null, \u002F\u002F Icon null\n                options2,\n                options2[1]\n        );\n        System.out.println(\"Benutzerdefinierte Auswahl: \" + click);\n\n",[4653,104751,104752,104775,104789,104795,104802,104809,104814,104818,104826,104831,104840,104844],{"__ignoreMap":269},[4173,104753,104754,104757,104759,104761,104763,104765,104767,104769,104771,104773],{"class":4657,"line":4658},[4173,104755,104756],{"class":4788},"        String",[4173,104758,84742],{"class":4784},[4173,104760,6387],{"class":4788},[4173,104762,6560],{"class":4784},[4173,104764,84749],{"class":4669},[4173,104766,8629],{"class":4784},[4173,104768,84754],{"class":4669},[4173,104770,8629],{"class":4784},[4173,104772,84759],{"class":4669},[4173,104774,79847],{"class":4784},[4173,104776,104777,104779,104781,104783,104785,104787],{"class":4657,"line":270},[4173,104778,104299],{"class":4788},[4173,104780,84768],{"class":4784},[4173,104782,6387],{"class":4788},[4173,104784,84262],{"class":4784},[4173,104786,84605],{"class":4661},[4173,104788,84074],{"class":4784},[4173,104790,104791,104793],{"class":4657,"line":1263},[4173,104792,104121],{"class":4665},[4173,104794,66026],{"class":4784},[4173,104796,104797,104800],{"class":4657,"line":4770},[4173,104798,104799],{"class":4669},"                \"Wähle eine Option:\"",[4173,104801,66026],{"class":4784},[4173,104803,104804,104807],{"class":4657,"line":4775},[4173,104805,104806],{"class":4669},"                \"Benutzerdefinierte Buttons\"",[4173,104808,66026],{"class":4784},[4173,104810,104811],{"class":4657,"line":6320},[4173,104812,104813],{"class":4784},"                JOptionPane.YES_NO_CANCEL_OPTION,\n",[4173,104815,104816],{"class":4657,"line":6325},[4173,104817,104551],{"class":4784},[4173,104819,104820,104822,104824],{"class":4657,"line":6343},[4173,104821,104121],{"class":4665},[4173,104823,8629],{"class":4784},[4173,104825,84814],{"class":4766},[4173,104827,104828],{"class":4657,"line":6348},[4173,104829,104830],{"class":4784},"                options2,\n",[4173,104832,104833,104836,104838],{"class":4657,"line":6457},[4173,104834,104835],{"class":4784},"                options2[",[4173,104837,14223],{"class":4665},[4173,104839,8635],{"class":4784},[4173,104841,104842],{"class":4657,"line":6462},[4173,104843,104147],{"class":4784},[4173,104845,104846,104848,104850,104852,104854,104856],{"class":4657,"line":6468},[4173,104847,100097],{"class":4784},[4173,104849,79074],{"class":4661},[4173,104851,6390],{"class":4784},[4173,104853,84843],{"class":4669},[4173,104855,11719],{"class":4788},[4173,104857,84848],{"class":4784},[470,104859,104861],{"id":104860},"dialog-mit-textfeld-buttons","\u002F\u002F Dialog mit Textfeld + Buttons",[4647,104863,104865],{"className":78931,"code":104864,"language":78933,"meta":269,"style":269},"        JTextField feld = new JTextField();\n        Object[] content = {\n                \"Geben Sie Ihren Namen ein:\",\n                feld\n        };\n        int ok = JOptionPane.showConfirmDialog(\n                null,\n                content,\n                \"Formular\",\n                JOptionPane.OK_CANCEL_OPTION\n        );\n        if (ok == JOptionPane.OK_OPTION) {\n            System.out.println(\"Eingegeben: \" + feld.getText());\n        }\n    }\n}\n\n",[4653,104866,104867,104880,104890,104897,104902,104906,104920,104926,104931,104938,104943,104947,104958,104976,104980,104984],{"__ignoreMap":269},[4173,104868,104869,104872,104874,104876,104878],{"class":4657,"line":4658},[4173,104870,104871],{"class":4784},"        JTextField feld ",[4173,104873,6387],{"class":4788},[4173,104875,79032],{"class":4788},[4173,104877,83065],{"class":4661},[4173,104879,65878],{"class":4784},[4173,104881,104882,104884,104886,104888],{"class":4657,"line":270},[4173,104883,104495],{"class":4788},[4173,104885,84877],{"class":4784},[4173,104887,6387],{"class":4788},[4173,104889,51614],{"class":4784},[4173,104891,104892,104895],{"class":4657,"line":1263},[4173,104893,104894],{"class":4669},"                \"Geben Sie Ihren Namen ein:\"",[4173,104896,66026],{"class":4784},[4173,104898,104899],{"class":4657,"line":4770},[4173,104900,104901],{"class":4784},"                feld\n",[4173,104903,104904],{"class":4657,"line":4775},[4173,104905,102592],{"class":4784},[4173,104907,104908,104910,104912,104914,104916,104918],{"class":4657,"line":6320},[4173,104909,104299],{"class":4788},[4173,104911,84904],{"class":4784},[4173,104913,6387],{"class":4788},[4173,104915,84262],{"class":4784},[4173,104917,84265],{"class":4661},[4173,104919,84074],{"class":4784},[4173,104921,104922,104924],{"class":4657,"line":6325},[4173,104923,104121],{"class":4665},[4173,104925,66026],{"class":4784},[4173,104927,104928],{"class":4657,"line":6343},[4173,104929,104930],{"class":4784},"                content,\n",[4173,104932,104933,104936],{"class":4657,"line":6348},[4173,104934,104935],{"class":4669},"                \"Formular\"",[4173,104937,66026],{"class":4784},[4173,104939,104940],{"class":4657,"line":6457},[4173,104941,104942],{"class":4784},"                JOptionPane.OK_CANCEL_OPTION\n",[4173,104944,104945],{"class":4657,"line":6462},[4173,104946,104147],{"class":4784},[4173,104948,104949,104952,104954,104956],{"class":4657,"line":6468},[4173,104950,104951],{"class":4788},"        if",[4173,104953,84946],{"class":4784},[4173,104955,19453],{"class":4788},[4173,104957,84951],{"class":4784},[4173,104959,104960,104962,104964,104966,104968,104970,104972,104974],{"class":4657,"line":6473},[4173,104961,100121],{"class":4784},[4173,104963,79074],{"class":4661},[4173,104965,6390],{"class":4784},[4173,104967,84962],{"class":4669},[4173,104969,11719],{"class":4788},[4173,104971,84967],{"class":4784},[4173,104973,83296],{"class":4661},[4173,104975,81860],{"class":4784},[4173,104977,104978],{"class":4657,"line":6479},[4173,104979,100145],{"class":4784},[4173,104981,104982],{"class":4657,"line":6503},[4173,104983,100385],{"class":4784},[4173,104985,104986],{"class":4657,"line":6516},[4173,104987,7090],{"class":4784},[16,104989,104991],{"id":104990},"joptionpane-beispiel-mit-ausgabe","JOptionPane-Beispiel mit Ausgabe",[4647,104993,104995],{"className":78931,"code":104994,"language":78933,"meta":269,"style":269},"import javax.swing.JOptionPane;\npublic class JOptionPaneDemo {\n    public static void main(String[] args) {\n        \u002F\u002F --- MESSAGE DIALOG ---\n        \u002F\u002F Displays a simple message box\n        JOptionPane.showMessageDialog(\n                null,\n                \"\u003Chtml> \u003Cdiv style='color: red; background: blue'>OptionPane Demo\u003C\u002Fdiv>\n   \u003C\u002Fhtml>\",\n                \"Message Dialog\",\n                JOptionPane.INFORMATION_MESSAGE\n        );\n        \u002F\u002F --- INPUT DIALOG ---\n        \u002F\u002F Asks the user to input their name\n        String name = JOptionPane.showInputDialog(\n                null,\n                \"Name?\",\n                \"Input Dialog\",\n                JOptionPane.QUESTION_MESSAGE\n        );\n        \u002F\u002F If user cancels or closes the dialog, name will be null\n        if (name == null || name.isEmpty()) {\n            name = \"Fremder\";\n        }\n        \u002F\u002F --- CONFIRM DIALOG ---\n        \u002F\u002F Asks the user a Yes\u002FNo\u002FCancel type question.\n        int confirm = JOptionPane.showConfirmDialog(\n                null,\n                \"Weiter, \" + name + \"?\",\n                \"Confirm Dialog\",\n                JOptionPane.YES_NO_CANCEL_OPTION,\n                JOptionPane.QUESTION_MESSAGE\n        );\n        \u002F\u002F Handle the user’s response\n        if (confirm == JOptionPane.YES_OPTION) {\n            JOptionPane.showMessageDialog(\n                    null,\n                    \"Weiter geht's!\",\n                    \"Response\",\n                    JOptionPane.INFORMATION_MESSAGE\n            );\n        } else if (confirm == JOptionPane.NO_OPTION) {\n            JOptionPane.showMessageDialog(\n                    null,\n                    \"Bye.\",\n                    \"Response\",\n                    JOptionPane.WARNING_MESSAGE\n            );\n        } else {\n            JOptionPane.showMessageDialog(\n                    null,\n                    \"Abbruch!\",\n                    \"Response\",\n                    JOptionPane.PLAIN_MESSAGE\n            );\n        }\n        \u002F\u002F --- OPTION DIALOG ---\n        \u002F\u002F Custom option dialog\n        Object[] options = {\"Speichern\", \"Nicht speichern\", \"Abbrechen\"};\n        int choice = JOptionPane.showOptionDialog(\n                null,\n                \"Fortschritt speichern?\",\n                \"Option Dialog\",\n                JOptionPane.YES_NO_CANCEL_OPTION,\n                JOptionPane.QUESTION_MESSAGE,\n                null,      \u002F\u002F no custom icon\n                options,   \u002F\u002F custom button labels\n                options[0] \u002F\u002F default selected option\n        );\n        \u002F\u002F Interpret the result of the user's choice\n        switch (choice) {\n            case 0:\n                JOptionPane.showMessageDialog(null, \"Fortschritt gespeichert!\", \"Result\",\nJOptionPane.INFORMATION_MESSAGE);\n                break;\n            case 1:\n                JOptionPane.showMessageDialog(null, \"Fortschritt nicht gespeichert.\", \"Result\",\nJOptionPane.WARNING_MESSAGE);\n                break;\n            case 2:\n            default:\n                JOptionPane.showMessageDialog(null, \"Aktion abgebrochen.\", \"Result\",\nJOptionPane.PLAIN_MESSAGE);\n                break;\n        }\n        \u002F\u002F --- END ---\n        \u002F\u002F Final message before exiting\n        JOptionPane.showMessageDialog(\n                null,\n                \"Demo beendet, \" + name + \".\",\n                \"Goodbye\",\n                JOptionPane.INFORMATION_MESSAGE\n        );\n    }\n}\n\n",[4653,104996,104997,105003,105013,105033,105038,105043,105051,105057,105062,105069,105076,105080,105084,105089,105094,105107,105113,105120,105127,105131,105135,105140,105158,105169,105173,105178,105183,105197,105203,105218,105225,105229,105233,105237,105242,105252,105260,105267,105274,105281,105286,105291,105306,105314,105320,105327,105333,105338,105342,105350,105358,105364,105371,105377,105382,105386,105390,105395,105400,105422,105436,105442,105449,105456,105460,105464,105472,105479,105490,105494,105499,105506,105514,105535,105539,105546,105554,105574,105579,105585,105593,105598,105618,105622,105628,105632,105637,105642,105650,105656,105671,105678,105682,105686,105690],{"__ignoreMap":269},[4173,104998,104999,105001],{"class":4657,"line":4658},[4173,105000,79019],{"class":4788},[4173,105002,84999],{"class":4784},[4173,105004,105005,105007,105009,105011],{"class":4657,"line":270},[4173,105006,79889],{"class":4788},[4173,105008,80062],{"class":4788},[4173,105010,84034],{"class":4661},[4173,105012,51614],{"class":4784},[4173,105014,105015,105017,105019,105021,105023,105025,105027,105029,105031],{"class":4657,"line":1263},[4173,105016,100265],{"class":4788},[4173,105018,79892],{"class":4788},[4173,105020,79934],{"class":4788},[4173,105022,79937],{"class":4661},[4173,105024,6390],{"class":4784},[4173,105026,79693],{"class":4788},[4173,105028,80084],{"class":4784},[4173,105030,31283],{"class":7074},[4173,105032,56319],{"class":4784},[4173,105034,105035],{"class":4657,"line":4770},[4173,105036,105037],{"class":4766},"        \u002F\u002F --- MESSAGE DIALOG ---\n",[4173,105039,105040],{"class":4657,"line":4775},[4173,105041,105042],{"class":4766},"        \u002F\u002F Displays a simple message box\n",[4173,105044,105045,105047,105049],{"class":4657,"line":6320},[4173,105046,103436],{"class":4784},[4173,105048,83357],{"class":4661},[4173,105050,84074],{"class":4784},[4173,105052,105053,105055],{"class":4657,"line":6325},[4173,105054,104121],{"class":4665},[4173,105056,66026],{"class":4784},[4173,105058,105059],{"class":4657,"line":6343},[4173,105060,105061],{"class":4669},"                \"\u003Chtml> \u003Cdiv style='color: red; background: blue'>OptionPane Demo\u003C\u002Fdiv>\n",[4173,105063,105064,105067],{"class":4657,"line":6348},[4173,105065,105066],{"class":4669},"   \u003C\u002Fhtml>\"",[4173,105068,66026],{"class":4784},[4173,105070,105071,105074],{"class":4657,"line":6457},[4173,105072,105073],{"class":4669},"                \"Message Dialog\"",[4173,105075,66026],{"class":4784},[4173,105077,105078],{"class":4657,"line":6462},[4173,105079,104142],{"class":4784},[4173,105081,105082],{"class":4657,"line":6468},[4173,105083,104147],{"class":4784},[4173,105085,105086],{"class":4657,"line":6473},[4173,105087,105088],{"class":4766},"        \u002F\u002F --- INPUT DIALOG ---\n",[4173,105090,105091],{"class":4657,"line":6479},[4173,105092,105093],{"class":4766},"        \u002F\u002F Asks the user to input their name\n",[4173,105095,105096,105099,105101,105103,105105],{"class":4657,"line":6503},[4173,105097,105098],{"class":4784},"        String name ",[4173,105100,6387],{"class":4788},[4173,105102,84262],{"class":4784},[4173,105104,84400],{"class":4661},[4173,105106,84074],{"class":4784},[4173,105108,105109,105111],{"class":4657,"line":6516},[4173,105110,104121],{"class":4665},[4173,105112,66026],{"class":4784},[4173,105114,105115,105118],{"class":4657,"line":6971},[4173,105116,105117],{"class":4669},"                \"Name?\"",[4173,105119,66026],{"class":4784},[4173,105121,105122,105125],{"class":4657,"line":10649},[4173,105123,105124],{"class":4669},"                \"Input Dialog\"",[4173,105126,66026],{"class":4784},[4173,105128,105129],{"class":4657,"line":10654},[4173,105130,104281],{"class":4784},[4173,105132,105133],{"class":4657,"line":10659},[4173,105134,104147],{"class":4784},[4173,105136,105137],{"class":4657,"line":10664},[4173,105138,105139],{"class":4766},"        \u002F\u002F If user cancels or closes the dialog, name will be null\n",[4173,105141,105142,105144,105146,105148,105150,105152,105154,105156],{"class":4657,"line":10676},[4173,105143,104951],{"class":4788},[4173,105145,85142],{"class":4784},[4173,105147,19453],{"class":4788},[4173,105149,85147],{"class":4665},[4173,105151,24074],{"class":4788},[4173,105153,85152],{"class":4784},[4173,105155,85155],{"class":4661},[4173,105157,85158],{"class":4784},[4173,105159,105160,105163,105165,105167],{"class":4657,"line":10681},[4173,105161,105162],{"class":4784},"            name ",[4173,105164,6387],{"class":4788},[4173,105166,85168],{"class":4669},[4173,105168,55559],{"class":4784},[4173,105170,105171],{"class":4657,"line":10702},[4173,105172,100145],{"class":4784},[4173,105174,105175],{"class":4657,"line":10707},[4173,105176,105177],{"class":4766},"        \u002F\u002F --- CONFIRM DIALOG ---\n",[4173,105179,105180],{"class":4657,"line":10712},[4173,105181,105182],{"class":4766},"        \u002F\u002F Asks the user a Yes\u002FNo\u002FCancel type question.\n",[4173,105184,105185,105187,105189,105191,105193,105195],{"class":4657,"line":10717},[4173,105186,104299],{"class":4788},[4173,105188,84257],{"class":4784},[4173,105190,6387],{"class":4788},[4173,105192,84262],{"class":4784},[4173,105194,84265],{"class":4661},[4173,105196,84074],{"class":4784},[4173,105198,105199,105201],{"class":4657,"line":10727},[4173,105200,104121],{"class":4665},[4173,105202,66026],{"class":4784},[4173,105204,105205,105208,105210,105212,105214,105216],{"class":4657,"line":10732},[4173,105206,105207],{"class":4669},"                \"Weiter, \"",[4173,105209,11719],{"class":4788},[4173,105211,80353],{"class":4784},[4173,105213,14419],{"class":4788},[4173,105215,85218],{"class":4669},[4173,105217,66026],{"class":4784},[4173,105219,105220,105223],{"class":4657,"line":10737},[4173,105221,105222],{"class":4669},"                \"Confirm Dialog\"",[4173,105224,66026],{"class":4784},[4173,105226,105227],{"class":4657,"line":10742},[4173,105228,104813],{"class":4784},[4173,105230,105231],{"class":4657,"line":10752},[4173,105232,104281],{"class":4784},[4173,105234,105235],{"class":4657,"line":10757},[4173,105236,104147],{"class":4784},[4173,105238,105239],{"class":4657,"line":10762},[4173,105240,105241],{"class":4766},"        \u002F\u002F Handle the user’s response\n",[4173,105243,105244,105246,105248,105250],{"class":4657,"line":10767},[4173,105245,104951],{"class":4788},[4173,105247,85251],{"class":4784},[4173,105249,19453],{"class":4788},[4173,105251,85256],{"class":4784},[4173,105253,105254,105256,105258],{"class":4657,"line":10772},[4173,105255,103955],{"class":4784},[4173,105257,83357],{"class":4661},[4173,105259,84074],{"class":4784},[4173,105261,105262,105265],{"class":4657,"line":10777},[4173,105263,105264],{"class":4665},"                    null",[4173,105266,66026],{"class":4784},[4173,105268,105269,105272],{"class":4657,"line":10782},[4173,105270,105271],{"class":4669},"                    \"Weiter geht's!\"",[4173,105273,66026],{"class":4784},[4173,105275,105276,105279],{"class":4657,"line":10787},[4173,105277,105278],{"class":4669},"                    \"Response\"",[4173,105280,66026],{"class":4784},[4173,105282,105283],{"class":4657,"line":10800},[4173,105284,105285],{"class":4784},"                    JOptionPane.INFORMATION_MESSAGE\n",[4173,105287,105288],{"class":4657,"line":10805},[4173,105289,105290],{"class":4784},"            );\n",[4173,105292,105293,105296,105298,105300,105302,105304],{"class":4657,"line":10818},[4173,105294,105295],{"class":4784},"        } ",[4173,105297,19734],{"class":4788},[4173,105299,85301],{"class":4788},[4173,105301,85251],{"class":4784},[4173,105303,19453],{"class":4788},[4173,105305,85308],{"class":4784},[4173,105307,105308,105310,105312],{"class":4657,"line":10823},[4173,105309,103955],{"class":4784},[4173,105311,83357],{"class":4661},[4173,105313,84074],{"class":4784},[4173,105315,105316,105318],{"class":4657,"line":10836},[4173,105317,105264],{"class":4665},[4173,105319,66026],{"class":4784},[4173,105321,105322,105325],{"class":4657,"line":10841},[4173,105323,105324],{"class":4669},"                    \"Bye.\"",[4173,105326,66026],{"class":4784},[4173,105328,105329,105331],{"class":4657,"line":10846},[4173,105330,105278],{"class":4669},[4173,105332,66026],{"class":4784},[4173,105334,105335],{"class":4657,"line":10851},[4173,105336,105337],{"class":4784},"                    JOptionPane.WARNING_MESSAGE\n",[4173,105339,105340],{"class":4657,"line":10867},[4173,105341,105290],{"class":4784},[4173,105343,105344,105346,105348],{"class":4657,"line":10872},[4173,105345,105295],{"class":4784},[4173,105347,19734],{"class":4788},[4173,105349,51614],{"class":4784},[4173,105351,105352,105354,105356],{"class":4657,"line":10877},[4173,105353,103955],{"class":4784},[4173,105355,83357],{"class":4661},[4173,105357,84074],{"class":4784},[4173,105359,105360,105362],{"class":4657,"line":10882},[4173,105361,105264],{"class":4665},[4173,105363,66026],{"class":4784},[4173,105365,105366,105369],{"class":4657,"line":10890},[4173,105367,105368],{"class":4669},"                    \"Abbruch!\"",[4173,105370,66026],{"class":4784},[4173,105372,105373,105375],{"class":4657,"line":10895},[4173,105374,105278],{"class":4669},[4173,105376,66026],{"class":4784},[4173,105378,105379],{"class":4657,"line":10904},[4173,105380,105381],{"class":4784},"                    JOptionPane.PLAIN_MESSAGE\n",[4173,105383,105384],{"class":4657,"line":10909},[4173,105385,105290],{"class":4784},[4173,105387,105388],{"class":4657,"line":10914},[4173,105389,100145],{"class":4784},[4173,105391,105392],{"class":4657,"line":10919},[4173,105393,105394],{"class":4766},"        \u002F\u002F --- OPTION DIALOG ---\n",[4173,105396,105397],{"class":4657,"line":10933},[4173,105398,105399],{"class":4766},"        \u002F\u002F Custom option dialog\n",[4173,105401,105402,105404,105406,105408,105410,105412,105414,105416,105418,105420],{"class":4657,"line":10938},[4173,105403,104495],{"class":4788},[4173,105405,85408],{"class":4784},[4173,105407,6387],{"class":4788},[4173,105409,6560],{"class":4784},[4173,105411,84579],{"class":4669},[4173,105413,8629],{"class":4784},[4173,105415,85419],{"class":4669},[4173,105417,8629],{"class":4784},[4173,105419,84589],{"class":4669},[4173,105421,79847],{"class":4784},[4173,105423,105424,105426,105428,105430,105432,105434],{"class":4657,"line":10959},[4173,105425,104299],{"class":4788},[4173,105427,85432],{"class":4784},[4173,105429,6387],{"class":4788},[4173,105431,84262],{"class":4784},[4173,105433,84605],{"class":4661},[4173,105435,84074],{"class":4784},[4173,105437,105438,105440],{"class":4657,"line":10964},[4173,105439,104121],{"class":4665},[4173,105441,66026],{"class":4784},[4173,105443,105444,105447],{"class":4657,"line":10969},[4173,105445,105446],{"class":4669},"                \"Fortschritt speichern?\"",[4173,105448,66026],{"class":4784},[4173,105450,105451,105454],{"class":4657,"line":10974},[4173,105452,105453],{"class":4669},"                \"Option Dialog\"",[4173,105455,66026],{"class":4784},[4173,105457,105458],{"class":4657,"line":10982},[4173,105459,104813],{"class":4784},[4173,105461,105462],{"class":4657,"line":10987},[4173,105463,104660],{"class":4784},[4173,105465,105466,105468,105470],{"class":4657,"line":10995},[4173,105467,104121],{"class":4665},[4173,105469,85475],{"class":4784},[4173,105471,85478],{"class":4766},[4173,105473,105474,105477],{"class":4657,"line":11000},[4173,105475,105476],{"class":4784},"                options,   ",[4173,105478,85486],{"class":4766},[4173,105480,105481,105484,105486,105488],{"class":4657,"line":11008},[4173,105482,105483],{"class":4784},"                options[",[4173,105485,12749],{"class":4665},[4173,105487,85496],{"class":4784},[4173,105489,85499],{"class":4766},[4173,105491,105492],{"class":4657,"line":11013},[4173,105493,104147],{"class":4784},[4173,105495,105496],{"class":4657,"line":11021},[4173,105497,105498],{"class":4766},"        \u002F\u002F Interpret the result of the user's choice\n",[4173,105500,105501,105504],{"class":4657,"line":11026},[4173,105502,105503],{"class":4788},"        switch",[4173,105505,85515],{"class":4784},[4173,105507,105508,105510,105512],{"class":4657,"line":11034},[4173,105509,99938],{"class":4788},[4173,105511,25370],{"class":4665},[4173,105513,2815],{"class":4788},[4173,105515,105516,105519,105521,105523,105525,105527,105529,105531,105533],{"class":4657,"line":11039},[4173,105517,105518],{"class":4784},"                JOptionPane.",[4173,105520,83357],{"class":4661},[4173,105522,6390],{"class":4784},[4173,105524,81169],{"class":4665},[4173,105526,8629],{"class":4784},[4173,105528,85538],{"class":4669},[4173,105530,8629],{"class":4784},[4173,105532,85545],{"class":4669},[4173,105534,66026],{"class":4784},[4173,105536,105537],{"class":4657,"line":11048},[4173,105538,103458],{"class":4784},[4173,105540,105541,105544],{"class":4657,"line":11053},[4173,105542,105543],{"class":4788},"                break",[4173,105545,55559],{"class":4784},[4173,105547,105548,105550,105552],{"class":4657,"line":21369},[4173,105549,99938],{"class":4788},[4173,105551,10264],{"class":4665},[4173,105553,2815],{"class":4788},[4173,105555,105556,105558,105560,105562,105564,105566,105568,105570,105572],{"class":4657,"line":21374},[4173,105557,105518],{"class":4784},[4173,105559,83357],{"class":4661},[4173,105561,6390],{"class":4784},[4173,105563,81169],{"class":4665},[4173,105565,8629],{"class":4784},[4173,105567,85576],{"class":4669},[4173,105569,8629],{"class":4784},[4173,105571,85545],{"class":4669},[4173,105573,66026],{"class":4784},[4173,105575,105576],{"class":4657,"line":21380},[4173,105577,105578],{"class":4784},"JOptionPane.WARNING_MESSAGE);\n",[4173,105580,105581,105583],{"class":4657,"line":21385},[4173,105582,105543],{"class":4788},[4173,105584,55559],{"class":4784},[4173,105586,105587,105589,105591],{"class":4657,"line":21397},[4173,105588,99938],{"class":4788},[4173,105590,15327],{"class":4665},[4173,105592,2815],{"class":4788},[4173,105594,105595],{"class":4657,"line":21402},[4173,105596,105597],{"class":4788},"            default:\n",[4173,105599,105600,105602,105604,105606,105608,105610,105612,105614,105616],{"class":4657,"line":21408},[4173,105601,105518],{"class":4784},[4173,105603,83357],{"class":4661},[4173,105605,6390],{"class":4784},[4173,105607,81169],{"class":4665},[4173,105609,8629],{"class":4784},[4173,105611,85619],{"class":4669},[4173,105613,8629],{"class":4784},[4173,105615,85545],{"class":4669},[4173,105617,66026],{"class":4784},[4173,105619,105620],{"class":4657,"line":21413},[4173,105621,85630],{"class":4784},[4173,105623,105624,105626],{"class":4657,"line":21425},[4173,105625,105543],{"class":4788},[4173,105627,55559],{"class":4784},[4173,105629,105630],{"class":4657,"line":21430},[4173,105631,100145],{"class":4784},[4173,105633,105634],{"class":4657,"line":21436},[4173,105635,105636],{"class":4766},"        \u002F\u002F --- END ---\n",[4173,105638,105639],{"class":4657,"line":21441},[4173,105640,105641],{"class":4766},"        \u002F\u002F Final message before exiting\n",[4173,105643,105644,105646,105648],{"class":4657,"line":21453},[4173,105645,103436],{"class":4784},[4173,105647,83357],{"class":4661},[4173,105649,84074],{"class":4784},[4173,105651,105652,105654],{"class":4657,"line":21458},[4173,105653,104121],{"class":4665},[4173,105655,66026],{"class":4784},[4173,105657,105658,105661,105663,105665,105667,105669],{"class":4657,"line":21464},[4173,105659,105660],{"class":4669},"                \"Demo beendet, \"",[4173,105662,11719],{"class":4788},[4173,105664,80353],{"class":4784},[4173,105666,14419],{"class":4788},[4173,105668,85678],{"class":4669},[4173,105670,66026],{"class":4784},[4173,105672,105673,105676],{"class":4657,"line":21469},[4173,105674,105675],{"class":4669},"                \"Goodbye\"",[4173,105677,66026],{"class":4784},[4173,105679,105680],{"class":4657,"line":21481},[4173,105681,104142],{"class":4784},[4173,105683,105684],{"class":4657,"line":21486},[4173,105685,104147],{"class":4784},[4173,105687,105688],{"class":4657,"line":21492},[4173,105689,100385],{"class":4784},[4173,105691,105692],{"class":4657,"line":21497},[4173,105693,7090],{"class":4784},[11,105695,85707],{"id":85706},[16,105697,85711],{"id":85710},[4647,105699,105701],{"className":78931,"code":105700,"language":78933,"meta":269,"style":269},"import java.io.BufferedReader;\nimport java.io.BufferedWriter;\nimport java.io.FileReader;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\u002F**\n * Beispielprogramm:\n * - Datei lesen & schreiben (File I\u002FO)\n * - Exception Handling mit try-catch\n * - Eigene Exception (DateiLeerException)\n *\u002F\npublic class FileIOBeispiel {\n    public static void main(String[] args) {\n        String inputFile = \"eingabe.txt\";\n        String outputFile = \"ausgabe.txt\";\n        try {\n            \u002F\u002F Datei lesen (kann IOException oder DateiLeerException werfen)\n            String inhalt = leseDatei(inputFile);\n            System.out.println(\"Datei erfolgreich gelesen:\\n\" + inhalt);\n            \u002F\u002F Datei schreiben\n            schreibeDatei(outputFile, inhalt.toUpperCase());\n            System.out.println(\"Datei erfolgreich geschrieben.\");\n        } catch (DateiLeerException e) {\n            \u002F\u002F Eigene Exception → spezielle Fehlermeldung\n            System.err.println(\"Eigener Fehler: \" + e.getMessage());\n        } catch (IOException e) {\n            \u002F\u002F IOExceptions werden hier abgefangen\n            System.err.println(\"I\u002FO Fehler: \" + e.getMessage());\n        }\n    }\n    \u002F**\n     * Liest eine Datei Zeile für Zeile ein.\n     * Wirft zusätzlich eine eigene Exception, wenn die Datei leer ist.\n     *\u002F\n    public static String leseDatei(String dateiname) throws IOException, DateiLeerException {\n        StringBuilder sb = new StringBuilder();\n        \u002F\u002F Datei wird automatisch geschlossen (try-with-resources)\n        try (BufferedReader reader = new BufferedReader(new FileReader(dateiname))) {\n            String zeile;\n            while ((zeile = reader.readLine()) != null) {\n                sb.append(zeile).append(System.lineSeparator());\n            }\n        }\n        \u002F\u002F Eigene Exception werfen, wenn Datei leer\n        if (sb.toString().trim().isEmpty()) {\n            throw new DateiLeerException(\"Die Datei '\" + dateiname + \"' ist leer.\");\n        }\n        return sb.toString();\n    }\n    \u002F**\n     * Schreibt Text in eine Datei.\n     *\u002F\n    public static void schreibeDatei(String dateiname, String text) throws IOException {\n        try (BufferedWriter writer = new BufferedWriter(new FileWriter(dateiname))) {\n            writer.write(text);\n        }\n    }\n}\n\u002F**\n * Eigene Exception für den Fall, dass die Datei leer ist.\n\n",[4653,105702,105703,105709,105715,105721,105727,105733,105737,105742,105747,105752,105757,105761,105771,105791,105802,105813,105820,105825,105836,105854,105859,105870,105882,105894,105899,105918,105930,105935,105953,105957,105961,105966,105971,105976,105981,106001,106014,106019,106039,106044,106065,106082,106086,106090,106095,106113,106136,106140,106150,106154,106158,106163,106167,106191,106211,106220,106224,106228,106232,106236],{"__ignoreMap":269},[4173,105704,105705,105707],{"class":4657,"line":4658},[4173,105706,79019],{"class":4788},[4173,105708,85723],{"class":4784},[4173,105710,105711,105713],{"class":4657,"line":270},[4173,105712,79019],{"class":4788},[4173,105714,85730],{"class":4784},[4173,105716,105717,105719],{"class":4657,"line":1263},[4173,105718,79019],{"class":4788},[4173,105720,85737],{"class":4784},[4173,105722,105723,105725],{"class":4657,"line":4770},[4173,105724,79019],{"class":4788},[4173,105726,85744],{"class":4784},[4173,105728,105729,105731],{"class":4657,"line":4775},[4173,105730,79019],{"class":4788},[4173,105732,85751],{"class":4784},[4173,105734,105735],{"class":4657,"line":6320},[4173,105736,80922],{"class":4766},[4173,105738,105739],{"class":4657,"line":6325},[4173,105740,105741],{"class":4766}," * Beispielprogramm:\n",[4173,105743,105744],{"class":4657,"line":6343},[4173,105745,105746],{"class":4766}," * - Datei lesen & schreiben (File I\u002FO)\n",[4173,105748,105749],{"class":4657,"line":6348},[4173,105750,105751],{"class":4766}," * - Exception Handling mit try-catch\n",[4173,105753,105754],{"class":4657,"line":6457},[4173,105755,105756],{"class":4766}," * - Eigene Exception (DateiLeerException)\n",[4173,105758,105759],{"class":4657,"line":6462},[4173,105760,101267],{"class":4766},[4173,105762,105763,105765,105767,105769],{"class":4657,"line":6468},[4173,105764,79889],{"class":4788},[4173,105766,80062],{"class":4788},[4173,105768,85788],{"class":4661},[4173,105770,51614],{"class":4784},[4173,105772,105773,105775,105777,105779,105781,105783,105785,105787,105789],{"class":4657,"line":6473},[4173,105774,100265],{"class":4788},[4173,105776,79892],{"class":4788},[4173,105778,79934],{"class":4788},[4173,105780,79937],{"class":4661},[4173,105782,6390],{"class":4784},[4173,105784,79693],{"class":4788},[4173,105786,80084],{"class":4784},[4173,105788,31283],{"class":7074},[4173,105790,56319],{"class":4784},[4173,105792,105793,105796,105798,105800],{"class":4657,"line":6479},[4173,105794,105795],{"class":4784},"        String inputFile ",[4173,105797,6387],{"class":4788},[4173,105799,85820],{"class":4669},[4173,105801,55559],{"class":4784},[4173,105803,105804,105807,105809,105811],{"class":4657,"line":6503},[4173,105805,105806],{"class":4784},"        String outputFile ",[4173,105808,6387],{"class":4788},[4173,105810,85832],{"class":4669},[4173,105812,55559],{"class":4784},[4173,105814,105815,105818],{"class":4657,"line":6516},[4173,105816,105817],{"class":4788},"        try",[4173,105819,51614],{"class":4784},[4173,105821,105822],{"class":4657,"line":6971},[4173,105823,105824],{"class":4766},"            \u002F\u002F Datei lesen (kann IOException oder DateiLeerException werfen)\n",[4173,105826,105827,105830,105832,105834],{"class":4657,"line":10649},[4173,105828,105829],{"class":4784},"            String inhalt ",[4173,105831,6387],{"class":4788},[4173,105833,85856],{"class":4661},[4173,105835,85859],{"class":4784},[4173,105837,105838,105840,105842,105844,105846,105848,105850,105852],{"class":4657,"line":10654},[4173,105839,100121],{"class":4784},[4173,105841,79074],{"class":4661},[4173,105843,6390],{"class":4784},[4173,105845,85870],{"class":4669},[4173,105847,83928],{"class":4665},[4173,105849,6207],{"class":4669},[4173,105851,11719],{"class":4788},[4173,105853,85879],{"class":4784},[4173,105855,105856],{"class":4657,"line":10659},[4173,105857,105858],{"class":4766},"            \u002F\u002F Datei schreiben\n",[4173,105860,105861,105864,105866,105868],{"class":4657,"line":10664},[4173,105862,105863],{"class":4661},"            schreibeDatei",[4173,105865,85892],{"class":4784},[4173,105867,85895],{"class":4661},[4173,105869,81860],{"class":4784},[4173,105871,105872,105874,105876,105878,105880],{"class":4657,"line":10676},[4173,105873,100121],{"class":4784},[4173,105875,79074],{"class":4661},[4173,105877,6390],{"class":4784},[4173,105879,85908],{"class":4669},[4173,105881,55545],{"class":4784},[4173,105883,105884,105886,105888,105890,105892],{"class":4657,"line":10681},[4173,105885,105295],{"class":4784},[4173,105887,85917],{"class":4788},[4173,105889,85920],{"class":4784},[4173,105891,20602],{"class":7074},[4173,105893,56319],{"class":4784},[4173,105895,105896],{"class":4657,"line":10702},[4173,105897,105898],{"class":4766},"            \u002F\u002F Eigene Exception → spezielle Fehlermeldung\n",[4173,105900,105901,105904,105906,105908,105910,105912,105914,105916],{"class":4657,"line":10707},[4173,105902,105903],{"class":4784},"            System.err.",[4173,105905,79074],{"class":4661},[4173,105907,6390],{"class":4784},[4173,105909,85941],{"class":4669},[4173,105911,11719],{"class":4788},[4173,105913,85946],{"class":4784},[4173,105915,85949],{"class":4661},[4173,105917,81860],{"class":4784},[4173,105919,105920,105922,105924,105926,105928],{"class":4657,"line":10712},[4173,105921,105295],{"class":4784},[4173,105923,85917],{"class":4788},[4173,105925,85960],{"class":4784},[4173,105927,20602],{"class":7074},[4173,105929,56319],{"class":4784},[4173,105931,105932],{"class":4657,"line":10717},[4173,105933,105934],{"class":4766},"            \u002F\u002F IOExceptions werden hier abgefangen\n",[4173,105936,105937,105939,105941,105943,105945,105947,105949,105951],{"class":4657,"line":10727},[4173,105938,105903],{"class":4784},[4173,105940,79074],{"class":4661},[4173,105942,6390],{"class":4784},[4173,105944,85980],{"class":4669},[4173,105946,11719],{"class":4788},[4173,105948,85946],{"class":4784},[4173,105950,85949],{"class":4661},[4173,105952,81860],{"class":4784},[4173,105954,105955],{"class":4657,"line":10732},[4173,105956,100145],{"class":4784},[4173,105958,105959],{"class":4657,"line":10737},[4173,105960,100385],{"class":4784},[4173,105962,105963],{"class":4657,"line":10742},[4173,105964,105965],{"class":4766},"    \u002F**\n",[4173,105967,105968],{"class":4657,"line":10752},[4173,105969,105970],{"class":4766},"     * Liest eine Datei Zeile für Zeile ein.\n",[4173,105972,105973],{"class":4657,"line":10757},[4173,105974,105975],{"class":4766},"     * Wirft zusätzlich eine eigene Exception, wenn die Datei leer ist.\n",[4173,105977,105978],{"class":4657,"line":10762},[4173,105979,105980],{"class":4766},"     *\u002F\n",[4173,105982,105983,105985,105987,105989,105991,105993,105995,105997,105999],{"class":4657,"line":10767},[4173,105984,100265],{"class":4788},[4173,105986,79892],{"class":4788},[4173,105988,80225],{"class":4784},[4173,105990,86025],{"class":4661},[4173,105992,80001],{"class":4784},[4173,105994,86030],{"class":7074},[4173,105996,6306],{"class":4784},[4173,105998,86035],{"class":4788},[4173,106000,86038],{"class":4784},[4173,106002,106003,106006,106008,106010,106012],{"class":4657,"line":10772},[4173,106004,106005],{"class":4784},"        StringBuilder sb ",[4173,106007,6387],{"class":4788},[4173,106009,79032],{"class":4788},[4173,106011,86050],{"class":4661},[4173,106013,65878],{"class":4784},[4173,106015,106016],{"class":4657,"line":10777},[4173,106017,106018],{"class":4766},"        \u002F\u002F Datei wird automatisch geschlossen (try-with-resources)\n",[4173,106020,106021,106023,106025,106027,106029,106031,106033,106035,106037],{"class":4657,"line":10782},[4173,106022,105817],{"class":4788},[4173,106024,86064],{"class":4784},[4173,106026,6387],{"class":4788},[4173,106028,79032],{"class":4788},[4173,106030,86071],{"class":4661},[4173,106032,6390],{"class":4784},[4173,106034,81243],{"class":4788},[4173,106036,86078],{"class":4661},[4173,106038,86081],{"class":4784},[4173,106040,106041],{"class":4657,"line":10787},[4173,106042,106043],{"class":4784},"            String zeile;\n",[4173,106045,106046,106049,106051,106053,106055,106057,106059,106061,106063],{"class":4657,"line":10800},[4173,106047,106048],{"class":4788},"            while",[4173,106050,86093],{"class":4784},[4173,106052,6387],{"class":4788},[4173,106054,86098],{"class":4784},[4173,106056,86101],{"class":4661},[4173,106058,86104],{"class":4784},[4173,106060,19461],{"class":4788},[4173,106062,85147],{"class":4665},[4173,106064,56319],{"class":4784},[4173,106066,106067,106070,106072,106074,106076,106078,106080],{"class":4657,"line":10805},[4173,106068,106069],{"class":4784},"                sb.",[4173,106071,86118],{"class":4661},[4173,106073,86121],{"class":4784},[4173,106075,86118],{"class":4661},[4173,106077,86126],{"class":4784},[4173,106079,86129],{"class":4661},[4173,106081,81860],{"class":4784},[4173,106083,106084],{"class":4657,"line":10818},[4173,106085,101599],{"class":4784},[4173,106087,106088],{"class":4657,"line":10823},[4173,106089,100145],{"class":4784},[4173,106091,106092],{"class":4657,"line":10836},[4173,106093,106094],{"class":4766},"        \u002F\u002F Eigene Exception werfen, wenn Datei leer\n",[4173,106096,106097,106099,106101,106103,106105,106107,106109,106111],{"class":4657,"line":10841},[4173,106098,104951],{"class":4788},[4173,106100,86151],{"class":4784},[4173,106102,86154],{"class":4661},[4173,106104,86157],{"class":4784},[4173,106106,86160],{"class":4661},[4173,106108,86157],{"class":4784},[4173,106110,85155],{"class":4661},[4173,106112,85158],{"class":4784},[4173,106114,106115,106118,106120,106122,106124,106126,106128,106130,106132,106134],{"class":4657,"line":10846},[4173,106116,106117],{"class":4788},"            throw",[4173,106119,79032],{"class":4788},[4173,106121,86176],{"class":4661},[4173,106123,6390],{"class":4784},[4173,106125,86181],{"class":4669},[4173,106127,11719],{"class":4788},[4173,106129,86186],{"class":4784},[4173,106131,14419],{"class":4788},[4173,106133,86191],{"class":4669},[4173,106135,55545],{"class":4784},[4173,106137,106138],{"class":4657,"line":10851},[4173,106139,100145],{"class":4784},[4173,106141,106142,106144,106146,106148],{"class":4657,"line":10867},[4173,106143,100584],{"class":4788},[4173,106145,86204],{"class":4784},[4173,106147,86154],{"class":4661},[4173,106149,65878],{"class":4784},[4173,106151,106152],{"class":4657,"line":10872},[4173,106153,100385],{"class":4784},[4173,106155,106156],{"class":4657,"line":10877},[4173,106157,105965],{"class":4766},[4173,106159,106160],{"class":4657,"line":10882},[4173,106161,106162],{"class":4766},"     * Schreibt Text in eine Datei.\n",[4173,106164,106165],{"class":4657,"line":10890},[4173,106166,105980],{"class":4766},[4173,106168,106169,106171,106173,106175,106177,106179,106181,106183,106185,106187,106189],{"class":4657,"line":10895},[4173,106170,100265],{"class":4788},[4173,106172,79892],{"class":4788},[4173,106174,79934],{"class":4788},[4173,106176,86236],{"class":4661},[4173,106178,80001],{"class":4784},[4173,106180,86030],{"class":7074},[4173,106182,86243],{"class":4784},[4173,106184,71896],{"class":7074},[4173,106186,6306],{"class":4784},[4173,106188,86035],{"class":4788},[4173,106190,86252],{"class":4784},[4173,106192,106193,106195,106197,106199,106201,106203,106205,106207,106209],{"class":4657,"line":10904},[4173,106194,105817],{"class":4788},[4173,106196,86259],{"class":4784},[4173,106198,6387],{"class":4788},[4173,106200,79032],{"class":4788},[4173,106202,86266],{"class":4661},[4173,106204,6390],{"class":4784},[4173,106206,81243],{"class":4788},[4173,106208,86273],{"class":4661},[4173,106210,86081],{"class":4784},[4173,106212,106213,106216,106218],{"class":4657,"line":10909},[4173,106214,106215],{"class":4784},"            writer.",[4173,106217,86283],{"class":4661},[4173,106219,86286],{"class":4784},[4173,106221,106222],{"class":4657,"line":10914},[4173,106223,100145],{"class":4784},[4173,106225,106226],{"class":4657,"line":10919},[4173,106227,100385],{"class":4784},[4173,106229,106230],{"class":4657,"line":10933},[4173,106231,7090],{"class":4784},[4173,106233,106234],{"class":4657,"line":10938},[4173,106235,80922],{"class":4766},[4173,106237,106238],{"class":4657,"line":10959},[4173,106239,106240],{"class":4766}," * Eigene Exception für den Fall, dass die Datei leer ist.\n",[21,106242,106243],{},[24,106244],{},[4647,106246,106248],{"className":78931,"code":106247,"language":78933,"meta":269,"style":269}," * Eigene Exceptions erben in der Regel von Exception (checked exception).\n *\u002F\nclass DateiLeerException extends Exception {\n    \u002F\u002F Konstruktor übernimmt die Fehlermeldung\n    public DateiLeerException(String message) {\n        super(message);\n    }\n}\n\n",[4653,106249,106250,106263,106267,106279,106284,106296,106302,106306],{"__ignoreMap":269},[4173,106251,106252,106254,106257,106260],{"class":4657,"line":4658},[4173,106253,7078],{"class":4788},[4173,106255,106256],{"class":4784}," Eigene Exceptions erben in der Regel von ",[4173,106258,106259],{"class":4661},"Exception",[4173,106261,106262],{"class":4784}," (checked exception).\n",[4173,106264,106265],{"class":4657,"line":270},[4173,106266,101267],{"class":4788},[4173,106268,106269,106271,106273,106275,106277],{"class":4657,"line":1263},[4173,106270,79983],{"class":4788},[4173,106272,86176],{"class":4661},[4173,106274,80500],{"class":4788},[4173,106276,86331],{"class":4661},[4173,106278,51614],{"class":4784},[4173,106280,106281],{"class":4657,"line":4770},[4173,106282,106283],{"class":4766},"    \u002F\u002F Konstruktor übernimmt die Fehlermeldung\n",[4173,106285,106286,106288,106290,106292,106294],{"class":4657,"line":4775},[4173,106287,100265],{"class":4788},[4173,106289,86176],{"class":4661},[4173,106291,80001],{"class":4784},[4173,106293,86349],{"class":7074},[4173,106295,56319],{"class":4784},[4173,106297,106298,106300],{"class":4657,"line":6320},[4173,106299,100854],{"class":4665},[4173,106301,86358],{"class":4784},[4173,106303,106304],{"class":4657,"line":6325},[4173,106305,100385],{"class":4784},[4173,106307,106308],{"class":4657,"line":6343},[4173,106309,7090],{"class":4784},[11,106311,86370],{"id":86369},[16,106313,86374],{"id":86373},[4647,106315,106317],{"className":78931,"code":106316,"language":78933,"meta":269,"style":269},"\u002F**\n * Dieses Beispiel zeigt den Umgang mit Exceptions:\n * - mehrere catch-Blöcke\n * - eigene checked Exception\n * - eigene RuntimeException (unchecked)\n * - try-catch-finally\n * - bewusstes Auslösen von Exceptions (throw)\n * - Unterschiede zwischen checked und unchecked Exceptions\n *\u002F\npublic class ExceptionBeispiel {\n    public static void main(String[] args) {\n        try {\n            int ergebnis = teile(10, -5); \u002F\u002F teste: 0 für Arithmetic, -5 für eigene Exceptions\n            System.out.println(\"Ergebnis: \" + ergebnis);\n        } catch (ArithmeticException e) {\n            \u002F\u002F Standard RuntimeException (unchecked)\n            System.err.println(\"Mathematischer Fehler: \" + e.getMessage());\n        } catch (UngueltigeZahlException e) {\n            \u002F\u002F Eigene checked Exception\n            System.err.println(\"Checked Exception: \" + e.getMessage());\n        } catch (NegativeZahlRuntimeException e) {\n            \u002F\u002F Eigene RuntimeException (unchecked)\n            System.err.println(\"Runtime Exception: \" + e.getMessage());\n        } finally {\n            \u002F\u002F Wird IMMER ausgeführt\n            System.out.println(\"Finally-Block wurde ausgeführt.\");\n        }\n    }\n    \u002F**\n     * Methode teilt zwei Zahlen.\n\n",[4653,106318,106319,106323,106328,106333,106338,106343,106348,106353,106358,106362,106372,106392,106398,106424,106438,106450,106455,106473,106485,106490,106509,106522,106527,106546,106554,106559,106571,106575,106579,106583],{"__ignoreMap":269},[4173,106320,106321],{"class":4657,"line":4658},[4173,106322,80922],{"class":4766},[4173,106324,106325],{"class":4657,"line":270},[4173,106326,106327],{"class":4766}," * Dieses Beispiel zeigt den Umgang mit Exceptions:\n",[4173,106329,106330],{"class":4657,"line":1263},[4173,106331,106332],{"class":4766}," * - mehrere catch-Blöcke\n",[4173,106334,106335],{"class":4657,"line":4770},[4173,106336,106337],{"class":4766}," * - eigene checked Exception\n",[4173,106339,106340],{"class":4657,"line":4775},[4173,106341,106342],{"class":4766}," * - eigene RuntimeException (unchecked)\n",[4173,106344,106345],{"class":4657,"line":6320},[4173,106346,106347],{"class":4766}," * - try-catch-finally\n",[4173,106349,106350],{"class":4657,"line":6325},[4173,106351,106352],{"class":4766}," * - bewusstes Auslösen von Exceptions (throw)\n",[4173,106354,106355],{"class":4657,"line":6343},[4173,106356,106357],{"class":4766}," * - Unterschiede zwischen checked und unchecked Exceptions\n",[4173,106359,106360],{"class":4657,"line":6348},[4173,106361,101267],{"class":4766},[4173,106363,106364,106366,106368,106370],{"class":4657,"line":6457},[4173,106365,79889],{"class":4788},[4173,106367,80062],{"class":4788},[4173,106369,86421],{"class":4661},[4173,106371,51614],{"class":4784},[4173,106373,106374,106376,106378,106380,106382,106384,106386,106388,106390],{"class":4657,"line":6462},[4173,106375,100265],{"class":4788},[4173,106377,79892],{"class":4788},[4173,106379,79934],{"class":4788},[4173,106381,79937],{"class":4661},[4173,106383,6390],{"class":4784},[4173,106385,79693],{"class":4788},[4173,106387,80084],{"class":4784},[4173,106389,31283],{"class":7074},[4173,106391,56319],{"class":4784},[4173,106393,106394,106396],{"class":4657,"line":6468},[4173,106395,105817],{"class":4788},[4173,106397,51614],{"class":4784},[4173,106399,106400,106403,106405,106407,106409,106411,106413,106415,106417,106419,106421],{"class":4657,"line":6473},[4173,106401,106402],{"class":4788},"            int",[4173,106404,66241],{"class":4784},[4173,106406,6387],{"class":4788},[4173,106408,86460],{"class":4661},[4173,106410,6390],{"class":4784},[4173,106412,81676],{"class":4665},[4173,106414,8629],{"class":4784},[4173,106416,4778],{"class":4788},[4173,106418,14292],{"class":4665},[4173,106420,79107],{"class":4784},[4173,106422,106423],{"class":4766},"\u002F\u002F teste: 0 für Arithmetic, -5 für eigene Exceptions\n",[4173,106425,106426,106428,106430,106432,106434,106436],{"class":4657,"line":6479},[4173,106427,100121],{"class":4784},[4173,106429,79074],{"class":4661},[4173,106431,6390],{"class":4784},[4173,106433,86485],{"class":4669},[4173,106435,11719],{"class":4788},[4173,106437,86490],{"class":4784},[4173,106439,106440,106442,106444,106446,106448],{"class":4657,"line":6503},[4173,106441,105295],{"class":4784},[4173,106443,85917],{"class":4788},[4173,106445,86499],{"class":4784},[4173,106447,20602],{"class":7074},[4173,106449,56319],{"class":4784},[4173,106451,106452],{"class":4657,"line":6516},[4173,106453,106454],{"class":4766},"            \u002F\u002F Standard RuntimeException (unchecked)\n",[4173,106456,106457,106459,106461,106463,106465,106467,106469,106471],{"class":4657,"line":6971},[4173,106458,105903],{"class":4784},[4173,106460,79074],{"class":4661},[4173,106462,6390],{"class":4784},[4173,106464,86519],{"class":4669},[4173,106466,11719],{"class":4788},[4173,106468,85946],{"class":4784},[4173,106470,85949],{"class":4661},[4173,106472,81860],{"class":4784},[4173,106474,106475,106477,106479,106481,106483],{"class":4657,"line":10649},[4173,106476,105295],{"class":4784},[4173,106478,85917],{"class":4788},[4173,106480,86536],{"class":4784},[4173,106482,20602],{"class":7074},[4173,106484,56319],{"class":4784},[4173,106486,106487],{"class":4657,"line":10654},[4173,106488,106489],{"class":4766},"            \u002F\u002F Eigene checked Exception\n",[4173,106491,106492,106494,106496,106498,106501,106503,106505,106507],{"class":4657,"line":10659},[4173,106493,105903],{"class":4784},[4173,106495,79074],{"class":4661},[4173,106497,6390],{"class":4784},[4173,106499,106500],{"class":4669},"\"Checked Exception: \"",[4173,106502,11719],{"class":4788},[4173,106504,85946],{"class":4784},[4173,106506,85949],{"class":4661},[4173,106508,81860],{"class":4784},[4173,106510,106511,106513,106515,106518,106520],{"class":4657,"line":10664},[4173,106512,105295],{"class":4784},[4173,106514,85917],{"class":4788},[4173,106516,106517],{"class":4784}," (NegativeZahlRuntimeException ",[4173,106519,20602],{"class":7074},[4173,106521,56319],{"class":4784},[4173,106523,106524],{"class":4657,"line":10676},[4173,106525,106526],{"class":4766},"            \u002F\u002F Eigene RuntimeException (unchecked)\n",[4173,106528,106529,106531,106533,106535,106538,106540,106542,106544],{"class":4657,"line":10681},[4173,106530,105903],{"class":4784},[4173,106532,79074],{"class":4661},[4173,106534,6390],{"class":4784},[4173,106536,106537],{"class":4669},"\"Runtime Exception: \"",[4173,106539,11719],{"class":4788},[4173,106541,85946],{"class":4784},[4173,106543,85949],{"class":4661},[4173,106545,81860],{"class":4784},[4173,106547,106548,106550,106552],{"class":4657,"line":10702},[4173,106549,105295],{"class":4784},[4173,106551,86570],{"class":4788},[4173,106553,51614],{"class":4784},[4173,106555,106556],{"class":4657,"line":10707},[4173,106557,106558],{"class":4766},"            \u002F\u002F Wird IMMER ausgeführt\n",[4173,106560,106561,106563,106565,106567,106569],{"class":4657,"line":10712},[4173,106562,100121],{"class":4784},[4173,106564,79074],{"class":4661},[4173,106566,6390],{"class":4784},[4173,106568,86588],{"class":4669},[4173,106570,55545],{"class":4784},[4173,106572,106573],{"class":4657,"line":10717},[4173,106574,100145],{"class":4784},[4173,106576,106577],{"class":4657,"line":10727},[4173,106578,100385],{"class":4784},[4173,106580,106581],{"class":4657,"line":10732},[4173,106582,105965],{"class":4766},[4173,106584,106585],{"class":4657,"line":10737},[4173,106586,106587],{"class":4766},"     * Methode teilt zwei Zahlen.\n",[21,106589,106590],{},[24,106591],{},[4647,106593,106595],{"className":78931,"code":106594,"language":78933,"meta":269,"style":269},"     * Unterschiede:\n     * - checked Exception (UngueltigeZahlException) MUSS deklariert werden (throws)\n     * - RuntimeException (NegativeZahlRuntimeException) MUSS NICHT deklariert werden\n     *\u002F\n    public static int teile(int a, int b) throws UngueltigeZahlException {\n        \u002F\u002F Checked Exception → Compiler zwingt dich zum Behandeln\n        if (b \u003C -10) {\n            throw new UngueltigeZahlException(\"Der Divisor ist zu klein (\u003C -10)!\");\n        }\n        \u002F\u002F RuntimeException → Programmierfehler \u002F Logikfehler\n        if (b \u003C 0) {\n            throw new NegativeZahlRuntimeException(\"Negative Zahl nicht erlaubt!\");\n        }\n        \u002F\u002F Standard RuntimeException (Division durch 0)\n        return a \u002F b;\n    }\n}\n\u002F**\n * CHECKED EXCEPTION\n\n",[4653,106596,106597,106607,106627,106639,106643,106664,106669,106683,106698,106702,106707,106719,106735,106739,106744,106754,106758,106762,106766],{"__ignoreMap":269},[4173,106598,106599,106602,106605],{"class":4657,"line":4658},[4173,106600,106601],{"class":4788},"     *",[4173,106603,106604],{"class":4784}," Unterschiede",[4173,106606,2815],{"class":4788},[4173,106608,106609,106611,106613,106616,106618,106621,106624],{"class":4657,"line":270},[4173,106610,106601],{"class":4788},[4173,106612,4785],{"class":4788},[4173,106614,106615],{"class":4784}," checked ",[4173,106617,106259],{"class":4661},[4173,106619,106620],{"class":4784}," (UngueltigeZahlException) MUSS deklariert ",[4173,106622,106623],{"class":4661},"werden",[4173,106625,106626],{"class":4784}," (throws)\n",[4173,106628,106629,106631,106633,106636],{"class":4657,"line":1263},[4173,106630,106601],{"class":4788},[4173,106632,4785],{"class":4788},[4173,106634,106635],{"class":4661}," RuntimeException",[4173,106637,106638],{"class":4784}," (NegativeZahlRuntimeException) MUSS NICHT deklariert werden\n",[4173,106640,106641],{"class":4657,"line":4770},[4173,106642,105980],{"class":4788},[4173,106644,106645,106647,106649,106651,106653,106655,106657,106659,106661],{"class":4657,"line":4775},[4173,106646,100265],{"class":4788},[4173,106648,79892],{"class":4788},[4173,106650,79895],{"class":4788},[4173,106652,86460],{"class":4661},[4173,106654,6390],{"class":4784},[4173,106656,64831],{"class":4788},[4173,106658,79905],{"class":4784},[4173,106660,64831],{"class":4788},[4173,106662,106663],{"class":4784}," b) throws UngueltigeZahlException {\n",[4173,106665,106666],{"class":4657,"line":6320},[4173,106667,106668],{"class":4766},"        \u002F\u002F Checked Exception → Compiler zwingt dich zum Behandeln\n",[4173,106670,106671,106673,106675,106677,106679,106681],{"class":4657,"line":6325},[4173,106672,104951],{"class":4788},[4173,106674,48600],{"class":4784},[4173,106676,24345],{"class":4788},[4173,106678,4785],{"class":4788},[4173,106680,81676],{"class":4665},[4173,106682,56319],{"class":4784},[4173,106684,106685,106687,106689,106691,106693,106696],{"class":4657,"line":6343},[4173,106686,106117],{"class":4788},[4173,106688,79032],{"class":4788},[4173,106690,86672],{"class":4661},[4173,106692,6390],{"class":4784},[4173,106694,106695],{"class":4669},"\"Der Divisor ist zu klein (\u003C -10)!\"",[4173,106697,55545],{"class":4784},[4173,106699,106700],{"class":4657,"line":6348},[4173,106701,100145],{"class":4784},[4173,106703,106704],{"class":4657,"line":6457},[4173,106705,106706],{"class":4766},"        \u002F\u002F RuntimeException → Programmierfehler \u002F Logikfehler\n",[4173,106708,106709,106711,106713,106715,106717],{"class":4657,"line":6462},[4173,106710,104951],{"class":4788},[4173,106712,48600],{"class":4784},[4173,106714,24345],{"class":4788},[4173,106716,25370],{"class":4665},[4173,106718,56319],{"class":4784},[4173,106720,106721,106723,106725,106728,106730,106733],{"class":4657,"line":6468},[4173,106722,106117],{"class":4788},[4173,106724,79032],{"class":4788},[4173,106726,106727],{"class":4661}," NegativeZahlRuntimeException",[4173,106729,6390],{"class":4784},[4173,106731,106732],{"class":4669},"\"Negative Zahl nicht erlaubt!\"",[4173,106734,55545],{"class":4784},[4173,106736,106737],{"class":4657,"line":6473},[4173,106738,100145],{"class":4784},[4173,106740,106741],{"class":4657,"line":6479},[4173,106742,106743],{"class":4766},"        \u002F\u002F Standard RuntimeException (Division durch 0)\n",[4173,106745,106746,106748,106750,106752],{"class":4657,"line":6503},[4173,106747,100584],{"class":4788},[4173,106749,79143],{"class":4784},[4173,106751,13658],{"class":4788},[4173,106753,79921],{"class":4784},[4173,106755,106756],{"class":4657,"line":6516},[4173,106757,100385],{"class":4784},[4173,106759,106760],{"class":4657,"line":6971},[4173,106761,7090],{"class":4784},[4173,106763,106764],{"class":4657,"line":10649},[4173,106765,80922],{"class":4766},[4173,106767,106768],{"class":4657,"line":10654},[4173,106769,106770],{"class":4766}," * CHECKED EXCEPTION\n",[21,106772,106773],{},[24,106774],{},[4647,106776,106778],{"className":78931,"code":106777,"language":78933,"meta":269,"style":269}," * Eigenschaften:\n * - erbt von Exception\n * - MUSS behandelt oder mit 'throws' weitergegeben werden\n * - für erwartbare Fehler (z.B. Benutzereingaben, externe Systeme)\n *\u002F\nclass UngueltigeZahlException extends Exception {\n    public UngueltigeZahlException(String message) {\n        super(message);\n    }\n}\n\u002F**\n * UNCHECKED EXCEPTION (RuntimeException)\n\n",[4653,106779,106780,106789,106798,106813,106828,106832,106844,106856,106862,106866,106870,106874],{"__ignoreMap":269},[4173,106781,106782,106784,106787],{"class":4657,"line":4658},[4173,106783,7078],{"class":4788},[4173,106785,106786],{"class":4784}," Eigenschaften",[4173,106788,2815],{"class":4788},[4173,106790,106791,106793,106795],{"class":4657,"line":270},[4173,106792,7078],{"class":4788},[4173,106794,4785],{"class":4788},[4173,106796,106797],{"class":4784}," erbt von Exception\n",[4173,106799,106800,106802,106804,106807,106810],{"class":4657,"line":1263},[4173,106801,7078],{"class":4788},[4173,106803,4785],{"class":4788},[4173,106805,106806],{"class":4784}," MUSS behandelt oder mit ",[4173,106808,106809],{"class":4669},"'throws'",[4173,106811,106812],{"class":4784}," weitergegeben werden\n",[4173,106814,106815,106817,106819,106822,106825],{"class":4657,"line":4770},[4173,106816,7078],{"class":4788},[4173,106818,4785],{"class":4788},[4173,106820,106821],{"class":4784}," für erwartbare ",[4173,106823,106824],{"class":4661},"Fehler",[4173,106826,106827],{"class":4784}," (z.B. Benutzereingaben, externe Systeme)\n",[4173,106829,106830],{"class":4657,"line":4775},[4173,106831,101267],{"class":4788},[4173,106833,106834,106836,106838,106840,106842],{"class":4657,"line":6320},[4173,106835,79983],{"class":4788},[4173,106837,86672],{"class":4661},[4173,106839,80500],{"class":4788},[4173,106841,86331],{"class":4661},[4173,106843,51614],{"class":4784},[4173,106845,106846,106848,106850,106852,106854],{"class":4657,"line":6325},[4173,106847,100265],{"class":4788},[4173,106849,86672],{"class":4661},[4173,106851,80001],{"class":4784},[4173,106853,86349],{"class":7074},[4173,106855,56319],{"class":4784},[4173,106857,106858,106860],{"class":4657,"line":6343},[4173,106859,100854],{"class":4665},[4173,106861,86358],{"class":4784},[4173,106863,106864],{"class":4657,"line":6348},[4173,106865,100385],{"class":4784},[4173,106867,106868],{"class":4657,"line":6457},[4173,106869,7090],{"class":4784},[4173,106871,106872],{"class":4657,"line":6462},[4173,106873,80922],{"class":4766},[4173,106875,106876],{"class":4657,"line":6468},[4173,106877,106878],{"class":4766}," * UNCHECKED EXCEPTION (RuntimeException)\n",[21,106880,106881],{},[24,106882],{},[4647,106884,106886],{"className":78931,"code":106885,"language":78933,"meta":269,"style":269}," * Eigenschaften:\n * - erbt von RuntimeException\n * - MUSS NICHT behandelt werden (optional)\n * - tritt meist bei Programmierfehlern auf\n\n",[4653,106887,106888,106896,106905,106919],{"__ignoreMap":269},[4173,106889,106890,106892,106894],{"class":4657,"line":4658},[4173,106891,7078],{"class":4788},[4173,106893,106786],{"class":4784},[4173,106895,2815],{"class":4788},[4173,106897,106898,106900,106902],{"class":4657,"line":270},[4173,106899,7078],{"class":4788},[4173,106901,4785],{"class":4788},[4173,106903,106904],{"class":4784}," erbt von RuntimeException\n",[4173,106906,106907,106909,106911,106914,106916],{"class":4657,"line":1263},[4173,106908,7078],{"class":4788},[4173,106910,4785],{"class":4788},[4173,106912,106913],{"class":4784}," MUSS NICHT behandelt ",[4173,106915,106623],{"class":4661},[4173,106917,106918],{"class":4784}," (optional)\n",[4173,106920,106921,106923,106925],{"class":4657,"line":4770},[4173,106922,7078],{"class":4788},[4173,106924,4785],{"class":4788},[4173,106926,106927],{"class":4784}," tritt meist bei Programmierfehlern auf\n",[21,106929,106930],{},[24,106931],{},[4647,106933,106935],{"className":78931,"code":106934,"language":78933,"meta":269,"style":269}," * Beispiele:\n * - NullPointerException\n * - ArithmeticException\n * - ArrayIndexOutOfBoundsException\n *\u002F\nclass NegativeZahlRuntimeException extends RuntimeException {\n    public NegativeZahlRuntimeException(String message) {\n        super(message);\n    }\n}\n\u002F*\n===========================\nUNTERSCHIEDE ZUSAMMENGEFASST\n===========================\n1. CHECKED EXCEPTION\n\n",[4653,106936,106937,106946,106955,106964,106973,106977,106989,107001,107007,107011,107015,107020,107025,107030,107034],{"__ignoreMap":269},[4173,106938,106939,106941,106944],{"class":4657,"line":4658},[4173,106940,7078],{"class":4788},[4173,106942,106943],{"class":4784}," Beispiele",[4173,106945,2815],{"class":4788},[4173,106947,106948,106950,106952],{"class":4657,"line":270},[4173,106949,7078],{"class":4788},[4173,106951,4785],{"class":4788},[4173,106953,106954],{"class":4784}," NullPointerException\n",[4173,106956,106957,106959,106961],{"class":4657,"line":1263},[4173,106958,7078],{"class":4788},[4173,106960,4785],{"class":4788},[4173,106962,106963],{"class":4784}," ArithmeticException\n",[4173,106965,106966,106968,106970],{"class":4657,"line":4770},[4173,106967,7078],{"class":4788},[4173,106969,4785],{"class":4788},[4173,106971,106972],{"class":4784}," ArrayIndexOutOfBoundsException\n",[4173,106974,106975],{"class":4657,"line":4775},[4173,106976,101267],{"class":4788},[4173,106978,106979,106981,106983,106985,106987],{"class":4657,"line":6320},[4173,106980,79983],{"class":4788},[4173,106982,106727],{"class":4661},[4173,106984,80500],{"class":4788},[4173,106986,106635],{"class":4661},[4173,106988,51614],{"class":4784},[4173,106990,106991,106993,106995,106997,106999],{"class":4657,"line":6325},[4173,106992,100265],{"class":4788},[4173,106994,106727],{"class":4661},[4173,106996,80001],{"class":4784},[4173,106998,86349],{"class":7074},[4173,107000,56319],{"class":4784},[4173,107002,107003,107005],{"class":4657,"line":6343},[4173,107004,100854],{"class":4665},[4173,107006,86358],{"class":4784},[4173,107008,107009],{"class":4657,"line":6348},[4173,107010,100385],{"class":4784},[4173,107012,107013],{"class":4657,"line":6457},[4173,107014,7090],{"class":4784},[4173,107016,107017],{"class":4657,"line":6462},[4173,107018,107019],{"class":4766},"\u002F*\n",[4173,107021,107022],{"class":4657,"line":6468},[4173,107023,107024],{"class":4766},"===========================\n",[4173,107026,107027],{"class":4657,"line":6473},[4173,107028,107029],{"class":4766},"UNTERSCHIEDE ZUSAMMENGEFASST\n",[4173,107031,107032],{"class":4657,"line":6479},[4173,107033,107024],{"class":4766},[4173,107035,107036],{"class":4657,"line":6503},[4173,107037,107038],{"class":4766},"1. CHECKED EXCEPTION\n",[13230,107040],{},[4647,107042,107044],{"className":78931,"code":107043,"language":78933,"meta":269,"style":269},"- Erbt von Exception\n- Compiler zwingt zur Behandlung\n- Verwendung:\n→ Wenn Fehler erwartbar und behandelbar ist\n→ z.B. Datei nicht gefunden, falsche Eingabe\nSyntax:\npublic void methode() throws MeineException\n2. UNCHECKED EXCEPTION (RuntimeException)\n\n",[4653,107045,107046,107053,107060,107069,107074,107079,107085,107097],{"__ignoreMap":269},[4173,107047,107048,107050],{"class":4657,"line":4658},[4173,107049,4778],{"class":4788},[4173,107051,107052],{"class":4784}," Erbt von Exception\n",[4173,107054,107055,107057],{"class":4657,"line":270},[4173,107056,4778],{"class":4788},[4173,107058,107059],{"class":4784}," Compiler zwingt zur Behandlung\n",[4173,107061,107062,107064,107067],{"class":4657,"line":1263},[4173,107063,4778],{"class":4788},[4173,107065,107066],{"class":4784}," Verwendung",[4173,107068,2815],{"class":4788},[4173,107070,107071],{"class":4657,"line":4770},[4173,107072,107073],{"class":4784},"→ Wenn Fehler erwartbar und behandelbar ist\n",[4173,107075,107076],{"class":4657,"line":4775},[4173,107077,107078],{"class":4784},"→ z.B. Datei nicht gefunden, falsche Eingabe\n",[4173,107080,107081,107083],{"class":4657,"line":6320},[4173,107082,13717],{"class":4784},[4173,107084,2815],{"class":4788},[4173,107086,107087,107089,107091,107094],{"class":4657,"line":6325},[4173,107088,79889],{"class":4788},[4173,107090,79934],{"class":4788},[4173,107092,107093],{"class":4661}," methode",[4173,107095,107096],{"class":4784},"() throws MeineException\n",[4173,107098,107099,107102,107105,107108],{"class":4657,"line":6343},[4173,107100,107101],{"class":4665},"2.",[4173,107103,107104],{"class":4784}," UNCHECKED ",[4173,107106,107107],{"class":4661},"EXCEPTION",[4173,107109,107110],{"class":4784}," (RuntimeException)\n",[13230,107112],{},[4647,107114,107116],{"className":78931,"code":107115,"language":78933,"meta":269,"style":269},"- Erbt von RuntimeException\n- Keine Pflicht zur Behandlung\n- Verwendung:\n→ Programmierfehler\n→ Logikfehler\n→ Dinge, die NICHT passieren sollten\nSyntax:\nthrow new MeineRuntimeException(\"Fehler\");\n3. WANN WAS?\n\n",[4653,107117,107118,107125,107132,107140,107145,107150,107155,107161,107176],{"__ignoreMap":269},[4173,107119,107120,107122],{"class":4657,"line":4658},[4173,107121,4778],{"class":4788},[4173,107123,107124],{"class":4784}," Erbt von RuntimeException\n",[4173,107126,107127,107129],{"class":4657,"line":270},[4173,107128,4778],{"class":4788},[4173,107130,107131],{"class":4784}," Keine Pflicht zur Behandlung\n",[4173,107133,107134,107136,107138],{"class":4657,"line":1263},[4173,107135,4778],{"class":4788},[4173,107137,107066],{"class":4784},[4173,107139,2815],{"class":4788},[4173,107141,107142],{"class":4657,"line":4770},[4173,107143,107144],{"class":4784},"→ Programmierfehler\n",[4173,107146,107147],{"class":4657,"line":4775},[4173,107148,107149],{"class":4784},"→ Logikfehler\n",[4173,107151,107152],{"class":4657,"line":6320},[4173,107153,107154],{"class":4784},"→ Dinge, die NICHT passieren sollten\n",[4173,107156,107157,107159],{"class":4657,"line":6325},[4173,107158,13717],{"class":4784},[4173,107160,2815],{"class":4788},[4173,107162,107163,107165,107167,107170,107172,107174],{"class":4657,"line":6343},[4173,107164,86171],{"class":4788},[4173,107166,79032],{"class":4788},[4173,107168,107169],{"class":4661}," MeineRuntimeException",[4173,107171,6390],{"class":4784},[4173,107173,84184],{"class":4669},[4173,107175,55545],{"class":4784},[4173,107177,107178,107181,107184],{"class":4657,"line":6348},[4173,107179,107180],{"class":4665},"3.",[4173,107182,107183],{"class":4784}," WANN WAS",[4173,107185,107186],{"class":4788},"?\n",[13230,107188],{},[4647,107190,107192],{"className":78931,"code":107191,"language":78933,"meta":269,"style":269},"Checked:\n\"Kann passieren → Benutzer\u002FUmwelt schuld\"\nUnchecked:\n\"Sollte nicht passieren → Entwickler schuld\"\n4. BEST PRACTICE\n\n",[4653,107193,107194,107201,107206,107213,107218],{"__ignoreMap":269},[4173,107195,107196,107199],{"class":4657,"line":4658},[4173,107197,107198],{"class":4784},"Checked",[4173,107200,2815],{"class":4788},[4173,107202,107203],{"class":4657,"line":270},[4173,107204,107205],{"class":4669},"\"Kann passieren → Benutzer\u002FUmwelt schuld\"\n",[4173,107207,107208,107211],{"class":4657,"line":1263},[4173,107209,107210],{"class":4784},"Unchecked",[4173,107212,2815],{"class":4788},[4173,107214,107215],{"class":4657,"line":4770},[4173,107216,107217],{"class":4669},"\"Sollte nicht passieren → Entwickler schuld\"\n",[4173,107219,107220,107223],{"class":4657,"line":4775},[4173,107221,107222],{"class":4665},"4.",[4173,107224,107225],{"class":4784}," BEST PRACTICE\n",[13230,107227],{},[4647,107229,107231],{"className":78931,"code":107230,"language":78933,"meta":269,"style":269},"- Checked: bei validierbaren, erwarteten Problemen\n- Runtime: bei falscher Nutzung von Methoden \u002F Logikfehlern\n\n*\u002F\n\n",[4653,107232,107233,107245,107262,107266],{"__ignoreMap":269},[4173,107234,107235,107237,107240,107242],{"class":4657,"line":4658},[4173,107236,4778],{"class":4788},[4173,107238,107239],{"class":4784}," Checked",[4173,107241,8158],{"class":4788},[4173,107243,107244],{"class":4784}," bei validierbaren, erwarteten Problemen\n",[4173,107246,107247,107249,107252,107254,107257,107259],{"class":4657,"line":270},[4173,107248,4778],{"class":4788},[4173,107250,107251],{"class":4784}," Runtime",[4173,107253,8158],{"class":4788},[4173,107255,107256],{"class":4784}," bei falscher Nutzung von Methoden ",[4173,107258,13658],{"class":4788},[4173,107260,107261],{"class":4784}," Logikfehlern\n",[4173,107263,107264],{"class":4657,"line":1263},[4173,107265,4761],{"emptyLinePlaceholder":4760},[4173,107267,107268],{"class":4657,"line":4770},[4173,107269,80972],{"class":4788},[11,107271,86766],{"id":86765},[16,107273,107275],{"id":107274},"strings","Strings",[4647,107277,107279],{"className":78931,"code":107278,"language":78933,"meta":269,"style":269},"public class StringExample {\n    public static void main(String[] args) {\n        String text = \"Hello World\";\n        \u002F\u002F Länge\n        System.out.println(\"Länge: \" + text.length()); \u002F\u002F Länge: 11\n        \u002F\u002F Groß-\u002FKleinschreibung\n        System.out.println(\"UpperCase: \" + text.toUpperCase()); \u002F\u002F UpperCase: HELLO WORLD\n        System.out.println(\"LowerCase: \" + text.toLowerCase()); \u002F\u002F LowerCase: hello world\n        \u002F\u002F Zeichenzugriff\n        System.out.println(\"Zeichen an Index 1: \" + text.charAt(1)); \u002F\u002F Zeichen an Index 1: e\n        \u002F\u002F Vergleich\n        System.out.println(\"Vergleich mit 'Hello': \" + text.equals(\"Hello\")); \u002F\u002F Vergleich mit\n'Hello': false\n        \u002F\u002F Teilstring\n        System.out.println(\"Substring(0,5): \" + text.substring(0,5)); \u002F\u002F Substring(0,5): Hello\n        \u002F\u002F Ersetzen\n        System.out.println(\"Ersetze 'World' durch 'Java': \" + text.replace(\"World\", \"Java\")); \u002F\u002F\nErsetze 'World' durch 'Java': Hello Java\n        \u002F\u002F Trimmen\n        String text2 = \"   Hallo   \";\n        System.out.println(\"Getrimmt: '\" + text2.trim() + \"'\"); \u002F\u002F Getrimmt: 'Hallo'\n        \u002F\u002F Aufteilen\n        String[] words = text.split(\" \");\n        for(String word : words) {\n            System.out.println(\"Word: \" + word);\n            \u002F\u002F Word: Hello\n            \u002F\u002F Word: World\n        }\n        \u002F\u002F Enthält prüfen\n        System.out.println(\"Enthält 'World'? \" + text.contains(\"World\")); \u002F\u002F Enthält 'World'?\ntrue\n    }\n}\n\n",[4653,107280,107281,107291,107311,107321,107326,107346,107351,107372,107393,107398,107423,107428,107453,107462,107467,107496,107501,107529,107547,107552,107563,107590,107595,107613,107623,107637,107642,107647,107651,107656,107681,107685,107689],{"__ignoreMap":269},[4173,107282,107283,107285,107287,107289],{"class":4657,"line":4658},[4173,107284,79889],{"class":4788},[4173,107286,80062],{"class":4788},[4173,107288,86784],{"class":4661},[4173,107290,51614],{"class":4784},[4173,107292,107293,107295,107297,107299,107301,107303,107305,107307,107309],{"class":4657,"line":270},[4173,107294,100265],{"class":4788},[4173,107296,79892],{"class":4788},[4173,107298,79934],{"class":4788},[4173,107300,79937],{"class":4661},[4173,107302,6390],{"class":4784},[4173,107304,79693],{"class":4788},[4173,107306,80084],{"class":4784},[4173,107308,31283],{"class":7074},[4173,107310,56319],{"class":4784},[4173,107312,107313,107315,107317,107319],{"class":4657,"line":1263},[4173,107314,104431],{"class":4784},[4173,107316,6387],{"class":4788},[4173,107318,86815],{"class":4669},[4173,107320,55559],{"class":4784},[4173,107322,107323],{"class":4657,"line":4770},[4173,107324,107325],{"class":4766},"        \u002F\u002F Länge\n",[4173,107327,107328,107330,107332,107334,107336,107338,107340,107342,107344],{"class":4657,"line":4775},[4173,107329,100097],{"class":4784},[4173,107331,79074],{"class":4661},[4173,107333,6390],{"class":4784},[4173,107335,86833],{"class":4669},[4173,107337,11719],{"class":4788},[4173,107339,79701],{"class":4784},[4173,107341,86840],{"class":4661},[4173,107343,86843],{"class":4784},[4173,107345,86846],{"class":4766},[4173,107347,107348],{"class":4657,"line":6320},[4173,107349,107350],{"class":4766},"        \u002F\u002F Groß-\u002FKleinschreibung\n",[4173,107352,107353,107355,107357,107359,107361,107363,107365,107367,107369],{"class":4657,"line":6325},[4173,107354,100097],{"class":4784},[4173,107356,79074],{"class":4661},[4173,107358,6390],{"class":4784},[4173,107360,86862],{"class":4669},[4173,107362,11719],{"class":4788},[4173,107364,79701],{"class":4784},[4173,107366,85895],{"class":4661},[4173,107368,86843],{"class":4784},[4173,107370,107371],{"class":4766},"\u002F\u002F UpperCase: HELLO WORLD\n",[4173,107373,107374,107376,107378,107380,107382,107384,107386,107388,107390],{"class":4657,"line":6343},[4173,107375,100097],{"class":4784},[4173,107377,79074],{"class":4661},[4173,107379,6390],{"class":4784},[4173,107381,86893],{"class":4669},[4173,107383,11719],{"class":4788},[4173,107385,79701],{"class":4784},[4173,107387,86900],{"class":4661},[4173,107389,86843],{"class":4784},[4173,107391,107392],{"class":4766},"\u002F\u002F LowerCase: hello world\n",[4173,107394,107395],{"class":4657,"line":6348},[4173,107396,107397],{"class":4766},"        \u002F\u002F Zeichenzugriff\n",[4173,107399,107400,107402,107404,107406,107408,107410,107412,107414,107416,107418,107420],{"class":4657,"line":6457},[4173,107401,100097],{"class":4784},[4173,107403,79074],{"class":4661},[4173,107405,6390],{"class":4784},[4173,107407,86926],{"class":4669},[4173,107409,11719],{"class":4788},[4173,107411,79701],{"class":4784},[4173,107413,86933],{"class":4661},[4173,107415,6390],{"class":4784},[4173,107417,14223],{"class":4665},[4173,107419,48385],{"class":4784},[4173,107421,107422],{"class":4766},"\u002F\u002F Zeichen an Index 1: e\n",[4173,107424,107425],{"class":4657,"line":6462},[4173,107426,107427],{"class":4766},"        \u002F\u002F Vergleich\n",[4173,107429,107430,107432,107434,107436,107438,107440,107442,107444,107446,107448,107450],{"class":4657,"line":6468},[4173,107431,100097],{"class":4784},[4173,107433,79074],{"class":4661},[4173,107435,6390],{"class":4784},[4173,107437,86969],{"class":4669},[4173,107439,11719],{"class":4788},[4173,107441,79701],{"class":4784},[4173,107443,86976],{"class":4661},[4173,107445,6390],{"class":4784},[4173,107447,86981],{"class":4669},[4173,107449,48385],{"class":4784},[4173,107451,107452],{"class":4766},"\u002F\u002F Vergleich mit\n",[4173,107454,107455,107457,107459],{"class":4657,"line":6473},[4173,107456,66783],{"class":4669},[4173,107458,8158],{"class":4788},[4173,107460,107461],{"class":4665}," false\n",[4173,107463,107464],{"class":4657,"line":6479},[4173,107465,107466],{"class":4766},"        \u002F\u002F Teilstring\n",[4173,107468,107469,107471,107473,107475,107477,107479,107481,107483,107485,107487,107489,107491,107493],{"class":4657,"line":6503},[4173,107470,100097],{"class":4784},[4173,107472,79074],{"class":4661},[4173,107474,6390],{"class":4784},[4173,107476,87004],{"class":4669},[4173,107478,11719],{"class":4788},[4173,107480,79701],{"class":4784},[4173,107482,87011],{"class":4661},[4173,107484,6390],{"class":4784},[4173,107486,12749],{"class":4665},[4173,107488,42920],{"class":4784},[4173,107490,14292],{"class":4665},[4173,107492,48385],{"class":4784},[4173,107494,107495],{"class":4766},"\u002F\u002F Substring(0,5): Hello\n",[4173,107497,107498],{"class":4657,"line":6516},[4173,107499,107500],{"class":4766},"        \u002F\u002F Ersetzen\n",[4173,107502,107503,107505,107507,107509,107511,107513,107515,107517,107519,107521,107523,107525,107527],{"class":4657,"line":6971},[4173,107504,100097],{"class":4784},[4173,107506,79074],{"class":4661},[4173,107508,6390],{"class":4784},[4173,107510,87059],{"class":4669},[4173,107512,11719],{"class":4788},[4173,107514,79701],{"class":4784},[4173,107516,87069],{"class":4661},[4173,107518,6390],{"class":4784},[4173,107520,87074],{"class":4669},[4173,107522,8629],{"class":4784},[4173,107524,87079],{"class":4669},[4173,107526,48385],{"class":4784},[4173,107528,64632],{"class":4766},[4173,107530,107531,107534,107536,107539,107542,107544],{"class":4657,"line":10649},[4173,107532,107533],{"class":4784},"Ersetze ",[4173,107535,66810],{"class":4669},[4173,107537,107538],{"class":4784}," durch ",[4173,107540,107541],{"class":4669},"'Java'",[4173,107543,8158],{"class":4788},[4173,107545,107546],{"class":4784}," Hello Java\n",[4173,107548,107549],{"class":4657,"line":10654},[4173,107550,107551],{"class":4766},"        \u002F\u002F Trimmen\n",[4173,107553,107554,107557,107559,107561],{"class":4657,"line":10659},[4173,107555,107556],{"class":4784},"        String text2 ",[4173,107558,6387],{"class":4788},[4173,107560,87099],{"class":4669},[4173,107562,55559],{"class":4784},[4173,107564,107565,107567,107569,107571,107573,107575,107577,107579,107581,107583,107585,107587],{"class":4657,"line":10664},[4173,107566,100097],{"class":4784},[4173,107568,79074],{"class":4661},[4173,107570,6390],{"class":4784},[4173,107572,87112],{"class":4669},[4173,107574,11719],{"class":4788},[4173,107576,87117],{"class":4784},[4173,107578,86160],{"class":4661},[4173,107580,80558],{"class":4784},[4173,107582,14419],{"class":4788},[4173,107584,87126],{"class":4669},[4173,107586,79107],{"class":4784},[4173,107588,107589],{"class":4766},"\u002F\u002F Getrimmt: 'Hallo'\n",[4173,107591,107592],{"class":4657,"line":10676},[4173,107593,107594],{"class":4766},"        \u002F\u002F Aufteilen\n",[4173,107596,107597,107599,107601,107603,107605,107607,107609,107611],{"class":4657,"line":10681},[4173,107598,104756],{"class":4788},[4173,107600,79696],{"class":4784},[4173,107602,6387],{"class":4788},[4173,107604,79701],{"class":4784},[4173,107606,79704],{"class":4661},[4173,107608,6390],{"class":4784},[4173,107610,79709],{"class":4669},[4173,107612,55545],{"class":4784},[4173,107614,107615,107617,107619,107621],{"class":4657,"line":10702},[4173,107616,100110],{"class":4788},[4173,107618,79731],{"class":4784},[4173,107620,8158],{"class":4788},[4173,107622,79736],{"class":4784},[4173,107624,107625,107627,107629,107631,107633,107635],{"class":4657,"line":10707},[4173,107626,100121],{"class":4784},[4173,107628,79074],{"class":4661},[4173,107630,6390],{"class":4784},[4173,107632,87180],{"class":4669},[4173,107634,11719],{"class":4788},[4173,107636,87185],{"class":4784},[4173,107638,107639],{"class":4657,"line":10712},[4173,107640,107641],{"class":4766},"            \u002F\u002F Word: Hello\n",[4173,107643,107644],{"class":4657,"line":10717},[4173,107645,107646],{"class":4766},"            \u002F\u002F Word: World\n",[4173,107648,107649],{"class":4657,"line":10727},[4173,107650,100145],{"class":4784},[4173,107652,107653],{"class":4657,"line":10732},[4173,107654,107655],{"class":4766},"        \u002F\u002F Enthält prüfen\n",[4173,107657,107658,107660,107662,107664,107666,107668,107670,107672,107674,107676,107678],{"class":4657,"line":10737},[4173,107659,100097],{"class":4784},[4173,107661,79074],{"class":4661},[4173,107663,6390],{"class":4784},[4173,107665,87215],{"class":4669},[4173,107667,11719],{"class":4788},[4173,107669,79701],{"class":4784},[4173,107671,87222],{"class":4661},[4173,107673,6390],{"class":4784},[4173,107675,87074],{"class":4669},[4173,107677,48385],{"class":4784},[4173,107679,107680],{"class":4766},"\u002F\u002F Enthält 'World'?\n",[4173,107682,107683],{"class":4657,"line":10742},[4173,107684,11505],{"class":4665},[4173,107686,107687],{"class":4657,"line":10752},[4173,107688,100385],{"class":4784},[4173,107690,107691],{"class":4657,"line":10757},[4173,107692,7090],{"class":4784},[16,107694,107696],{"id":107695},"stringbuilder","StringBuilder",[4647,107698,107700],{"className":78931,"code":107699,"language":78933,"meta":269,"style":269},"public class StringBuilderExample {\n    public static void main(String[] args) {\n        StringBuilder sb = new StringBuilder(\"Hello\");\n        \u002F\u002F Anhängen\n        sb.append(\" World\");\n        System.out.println(sb); \u002F\u002F Hello World\n        \u002F\u002F Einfügen\n        sb.insert(6, \"Java \");\n        System.out.println(sb); \u002F\u002F Hello Java World\n        \u002F\u002F Löschen\n        sb.delete(6, 11);\n        System.out.println(sb); \u002F\u002F Hello World\n        \u002F\u002F Zeichen ersetzen\n        sb.setCharAt(0, 'h');\n        System.out.println(sb); \u002F\u002F hello World\n        \u002F\u002F Umkehren\n        sb.reverse();\n        System.out.println(\"Reverse: \" + sb); \u002F\u002F Reverse: dlroW olleh\n        \u002F\u002F Länge\n        System.out.println(\"Length: \" + sb.length()); \u002F\u002F Length: 11\n    }\n}\n\n",[4653,107701,107702,107712,107732,107748,107753,107766,107776,107781,107797,107807,107812,107828,107838,107843,107859,107869,107874,107882,107898,107902,107922,107926],{"__ignoreMap":269},[4173,107703,107704,107706,107708,107710],{"class":4657,"line":4658},[4173,107705,79889],{"class":4788},[4173,107707,80062],{"class":4788},[4173,107709,87267],{"class":4661},[4173,107711,51614],{"class":4784},[4173,107713,107714,107716,107718,107720,107722,107724,107726,107728,107730],{"class":4657,"line":270},[4173,107715,100265],{"class":4788},[4173,107717,79892],{"class":4788},[4173,107719,79934],{"class":4788},[4173,107721,79937],{"class":4661},[4173,107723,6390],{"class":4784},[4173,107725,79693],{"class":4788},[4173,107727,80084],{"class":4784},[4173,107729,31283],{"class":7074},[4173,107731,56319],{"class":4784},[4173,107733,107734,107736,107738,107740,107742,107744,107746],{"class":4657,"line":1263},[4173,107735,106005],{"class":4784},[4173,107737,6387],{"class":4788},[4173,107739,79032],{"class":4788},[4173,107741,86050],{"class":4661},[4173,107743,6390],{"class":4784},[4173,107745,86981],{"class":4669},[4173,107747,55545],{"class":4784},[4173,107749,107750],{"class":4657,"line":4770},[4173,107751,107752],{"class":4766},"        \u002F\u002F Anhängen\n",[4173,107754,107755,107758,107760,107762,107764],{"class":4657,"line":4775},[4173,107756,107757],{"class":4784},"        sb.",[4173,107759,86118],{"class":4661},[4173,107761,6390],{"class":4784},[4173,107763,87321],{"class":4669},[4173,107765,55545],{"class":4784},[4173,107767,107768,107770,107772,107774],{"class":4657,"line":6320},[4173,107769,100097],{"class":4784},[4173,107771,79074],{"class":4661},[4173,107773,87332],{"class":4784},[4173,107775,87335],{"class":4766},[4173,107777,107778],{"class":4657,"line":6325},[4173,107779,107780],{"class":4766},"        \u002F\u002F Einfügen\n",[4173,107782,107783,107785,107787,107789,107791,107793,107795],{"class":4657,"line":6343},[4173,107784,107757],{"class":4784},[4173,107786,87347],{"class":4661},[4173,107788,6390],{"class":4784},[4173,107790,14278],{"class":4665},[4173,107792,8629],{"class":4784},[4173,107794,87356],{"class":4669},[4173,107796,55545],{"class":4784},[4173,107798,107799,107801,107803,107805],{"class":4657,"line":6348},[4173,107800,100097],{"class":4784},[4173,107802,79074],{"class":4661},[4173,107804,87332],{"class":4784},[4173,107806,87369],{"class":4766},[4173,107808,107809],{"class":4657,"line":6457},[4173,107810,107811],{"class":4766},"        \u002F\u002F Löschen\n",[4173,107813,107814,107816,107818,107820,107822,107824,107826],{"class":4657,"line":6462},[4173,107815,107757],{"class":4784},[4173,107817,87381],{"class":4661},[4173,107819,6390],{"class":4784},[4173,107821,14278],{"class":4665},[4173,107823,8629],{"class":4784},[4173,107825,87390],{"class":4665},[4173,107827,55545],{"class":4784},[4173,107829,107830,107832,107834,107836],{"class":4657,"line":6468},[4173,107831,100097],{"class":4784},[4173,107833,79074],{"class":4661},[4173,107835,87332],{"class":4784},[4173,107837,87335],{"class":4766},[4173,107839,107840],{"class":4657,"line":6473},[4173,107841,107842],{"class":4766},"        \u002F\u002F Zeichen ersetzen\n",[4173,107844,107845,107847,107849,107851,107853,107855,107857],{"class":4657,"line":6479},[4173,107846,107757],{"class":4784},[4173,107848,87414],{"class":4661},[4173,107850,6390],{"class":4784},[4173,107852,12749],{"class":4665},[4173,107854,8629],{"class":4784},[4173,107856,87423],{"class":4669},[4173,107858,55545],{"class":4784},[4173,107860,107861,107863,107865,107867],{"class":4657,"line":6503},[4173,107862,100097],{"class":4784},[4173,107864,79074],{"class":4661},[4173,107866,87332],{"class":4784},[4173,107868,87436],{"class":4766},[4173,107870,107871],{"class":4657,"line":6516},[4173,107872,107873],{"class":4766},"        \u002F\u002F Umkehren\n",[4173,107875,107876,107878,107880],{"class":4657,"line":6971},[4173,107877,107757],{"class":4784},[4173,107879,87448],{"class":4661},[4173,107881,65878],{"class":4784},[4173,107883,107884,107886,107888,107890,107892,107894,107896],{"class":4657,"line":10649},[4173,107885,100097],{"class":4784},[4173,107887,79074],{"class":4661},[4173,107889,6390],{"class":4784},[4173,107891,87461],{"class":4669},[4173,107893,11719],{"class":4788},[4173,107895,87466],{"class":4784},[4173,107897,87469],{"class":4766},[4173,107899,107900],{"class":4657,"line":10654},[4173,107901,107325],{"class":4766},[4173,107903,107904,107906,107908,107910,107912,107914,107916,107918,107920],{"class":4657,"line":10659},[4173,107905,100097],{"class":4784},[4173,107907,79074],{"class":4661},[4173,107909,6390],{"class":4784},[4173,107911,87484],{"class":4669},[4173,107913,11719],{"class":4788},[4173,107915,86204],{"class":4784},[4173,107917,86840],{"class":4661},[4173,107919,86843],{"class":4784},[4173,107921,87495],{"class":4766},[4173,107923,107924],{"class":4657,"line":10664},[4173,107925,100385],{"class":4784},[4173,107927,107928],{"class":4657,"line":10676},[4173,107929,7090],{"class":4784},[16,107931,107933],{"id":107932},"stringbuffer","StringBuffer",[4647,107935,107937],{"className":78931,"code":107936,"language":78933,"meta":269,"style":269},"public class StringBufferExample {\n    public static void main(String[] args) {\n        StringBuffer sb = new StringBuffer(\"Hello\");\n        sb.append(\" World\");\n        System.out.println(sb); \u002F\u002F Hello World\n        sb.insert(6, \"Java \");\n        System.out.println(sb); \u002F\u002F Hello Java World\n        sb.replace(6, 10, \"C++\");\n        System.out.println(sb); \u002F\u002F Hello C++ World\n        sb.delete(6, 9);\n        System.out.println(sb); \u002F\u002F Hello + World\n        sb.reverse();\n        System.out.println(\"Reverse: \" + sb); \u002F\u002F Reverse: dlroW + olleH\n    }\n}\n\n",[4653,107938,107939,107949,107969,107986,107998,108008,108024,108034,108054,108064,108080,108090,108098,108114,108118],{"__ignoreMap":269},[4173,107940,107941,107943,107945,107947],{"class":4657,"line":4658},[4173,107942,79889],{"class":4788},[4173,107944,80062],{"class":4788},[4173,107946,87521],{"class":4661},[4173,107948,51614],{"class":4784},[4173,107950,107951,107953,107955,107957,107959,107961,107963,107965,107967],{"class":4657,"line":270},[4173,107952,100265],{"class":4788},[4173,107954,79892],{"class":4788},[4173,107956,79934],{"class":4788},[4173,107958,79937],{"class":4661},[4173,107960,6390],{"class":4784},[4173,107962,79693],{"class":4788},[4173,107964,80084],{"class":4784},[4173,107966,31283],{"class":7074},[4173,107968,56319],{"class":4784},[4173,107970,107971,107974,107976,107978,107980,107982,107984],{"class":4657,"line":1263},[4173,107972,107973],{"class":4784},"        StringBuffer sb ",[4173,107975,6387],{"class":4788},[4173,107977,79032],{"class":4788},[4173,107979,87555],{"class":4661},[4173,107981,6390],{"class":4784},[4173,107983,86981],{"class":4669},[4173,107985,55545],{"class":4784},[4173,107987,107988,107990,107992,107994,107996],{"class":4657,"line":4770},[4173,107989,107757],{"class":4784},[4173,107991,86118],{"class":4661},[4173,107993,6390],{"class":4784},[4173,107995,87321],{"class":4669},[4173,107997,55545],{"class":4784},[4173,107999,108000,108002,108004,108006],{"class":4657,"line":4775},[4173,108001,100097],{"class":4784},[4173,108003,79074],{"class":4661},[4173,108005,87332],{"class":4784},[4173,108007,87335],{"class":4766},[4173,108009,108010,108012,108014,108016,108018,108020,108022],{"class":4657,"line":6320},[4173,108011,107757],{"class":4784},[4173,108013,87347],{"class":4661},[4173,108015,6390],{"class":4784},[4173,108017,14278],{"class":4665},[4173,108019,8629],{"class":4784},[4173,108021,87356],{"class":4669},[4173,108023,55545],{"class":4784},[4173,108025,108026,108028,108030,108032],{"class":4657,"line":6325},[4173,108027,100097],{"class":4784},[4173,108029,79074],{"class":4661},[4173,108031,87332],{"class":4784},[4173,108033,87369],{"class":4766},[4173,108035,108036,108038,108040,108042,108044,108046,108048,108050,108052],{"class":4657,"line":6343},[4173,108037,107757],{"class":4784},[4173,108039,87069],{"class":4661},[4173,108041,6390],{"class":4784},[4173,108043,14278],{"class":4665},[4173,108045,8629],{"class":4784},[4173,108047,81676],{"class":4665},[4173,108049,8629],{"class":4784},[4173,108051,87628],{"class":4669},[4173,108053,55545],{"class":4784},[4173,108055,108056,108058,108060,108062],{"class":4657,"line":6348},[4173,108057,100097],{"class":4784},[4173,108059,79074],{"class":4661},[4173,108061,87332],{"class":4784},[4173,108063,87641],{"class":4766},[4173,108065,108066,108068,108070,108072,108074,108076,108078],{"class":4657,"line":6457},[4173,108067,107757],{"class":4784},[4173,108069,87381],{"class":4661},[4173,108071,6390],{"class":4784},[4173,108073,14278],{"class":4665},[4173,108075,8629],{"class":4784},[4173,108077,33983],{"class":4665},[4173,108079,55545],{"class":4784},[4173,108081,108082,108084,108086,108088],{"class":4657,"line":6462},[4173,108083,100097],{"class":4784},[4173,108085,79074],{"class":4661},[4173,108087,87332],{"class":4784},[4173,108089,87668],{"class":4766},[4173,108091,108092,108094,108096],{"class":4657,"line":6468},[4173,108093,107757],{"class":4784},[4173,108095,87448],{"class":4661},[4173,108097,65878],{"class":4784},[4173,108099,108100,108102,108104,108106,108108,108110,108112],{"class":4657,"line":6473},[4173,108101,100097],{"class":4784},[4173,108103,79074],{"class":4661},[4173,108105,6390],{"class":4784},[4173,108107,87461],{"class":4669},[4173,108109,11719],{"class":4788},[4173,108111,87466],{"class":4784},[4173,108113,87693],{"class":4766},[4173,108115,108116],{"class":4657,"line":6479},[4173,108117,100385],{"class":4784},[4173,108119,108120],{"class":4657,"line":6503},[4173,108121,7090],{"class":4784},[16,108123,108125],{"id":108124},"charsequence","CharSequence",[4647,108127,108129],{"className":78931,"code":108128,"language":78933,"meta":269,"style":269},"public class CharSequenceExample {\n    public static void main(String[] args) {\n        CharSequence cs1 = \"Hello\"; \u002F\u002F String\n        CharSequence cs2 = new StringBuilder(\"World\"); \u002F\u002F StringBuilder\n        System.out.println(\"Länge cs1: \" + cs1.length()); \u002F\u002F Länge cs1: 5\n        System.out.println(\"Zeichen an Index 1 cs2: \" + cs2.charAt(1)); \u002F\u002F Zeichen an Index 1\ncs2: o\n        \u002F\u002F Subsequence\n        System.out.println(\"Subsequence cs1: \" + cs1.subSequence(0, 4)); \u002F\u002F Subsequence cs1:\nHell\n        System.out.println(\"Subsequence cs2: \" + cs2.subSequence(1, 4)); \u002F\u002F Subsequence cs2: orl\n    }\n}\n\n",[4653,108130,108131,108141,108161,108174,108193,108213,108238,108247,108252,108281,108286,108315,108319],{"__ignoreMap":269},[4173,108132,108133,108135,108137,108139],{"class":4657,"line":4658},[4173,108134,79889],{"class":4788},[4173,108136,80062],{"class":4788},[4173,108138,87719],{"class":4661},[4173,108140,51614],{"class":4784},[4173,108142,108143,108145,108147,108149,108151,108153,108155,108157,108159],{"class":4657,"line":270},[4173,108144,100265],{"class":4788},[4173,108146,79892],{"class":4788},[4173,108148,79934],{"class":4788},[4173,108150,79937],{"class":4661},[4173,108152,6390],{"class":4784},[4173,108154,79693],{"class":4788},[4173,108156,80084],{"class":4784},[4173,108158,31283],{"class":7074},[4173,108160,56319],{"class":4784},[4173,108162,108163,108166,108168,108170,108172],{"class":4657,"line":1263},[4173,108164,108165],{"class":4784},"        CharSequence cs1 ",[4173,108167,6387],{"class":4788},[4173,108169,52251],{"class":4669},[4173,108171,6498],{"class":4784},[4173,108173,87755],{"class":4766},[4173,108175,108176,108179,108181,108183,108185,108187,108189,108191],{"class":4657,"line":4770},[4173,108177,108178],{"class":4784},"        CharSequence cs2 ",[4173,108180,6387],{"class":4788},[4173,108182,79032],{"class":4788},[4173,108184,86050],{"class":4661},[4173,108186,6390],{"class":4784},[4173,108188,87074],{"class":4669},[4173,108190,79107],{"class":4784},[4173,108192,87775],{"class":4766},[4173,108194,108195,108197,108199,108201,108203,108205,108207,108209,108211],{"class":4657,"line":4775},[4173,108196,100097],{"class":4784},[4173,108198,79074],{"class":4661},[4173,108200,6390],{"class":4784},[4173,108202,87786],{"class":4669},[4173,108204,11719],{"class":4788},[4173,108206,87791],{"class":4784},[4173,108208,86840],{"class":4661},[4173,108210,86843],{"class":4784},[4173,108212,87798],{"class":4766},[4173,108214,108215,108217,108219,108221,108223,108225,108227,108229,108231,108233,108235],{"class":4657,"line":6320},[4173,108216,100097],{"class":4784},[4173,108218,79074],{"class":4661},[4173,108220,6390],{"class":4784},[4173,108222,87809],{"class":4669},[4173,108224,11719],{"class":4788},[4173,108226,87814],{"class":4784},[4173,108228,86933],{"class":4661},[4173,108230,6390],{"class":4784},[4173,108232,14223],{"class":4665},[4173,108234,48385],{"class":4784},[4173,108236,108237],{"class":4766},"\u002F\u002F Zeichen an Index 1\n",[4173,108239,108240,108243,108245],{"class":4657,"line":6325},[4173,108241,108242],{"class":4784},"cs2",[4173,108244,8158],{"class":4788},[4173,108246,87838],{"class":4784},[4173,108248,108249],{"class":4657,"line":6343},[4173,108250,108251],{"class":4766},"        \u002F\u002F Subsequence\n",[4173,108253,108254,108256,108258,108260,108262,108264,108266,108268,108270,108272,108274,108276,108278],{"class":4657,"line":6348},[4173,108255,100097],{"class":4784},[4173,108257,79074],{"class":4661},[4173,108259,6390],{"class":4784},[4173,108261,87854],{"class":4669},[4173,108263,11719],{"class":4788},[4173,108265,87791],{"class":4784},[4173,108267,87861],{"class":4661},[4173,108269,6390],{"class":4784},[4173,108271,12749],{"class":4665},[4173,108273,8629],{"class":4784},[4173,108275,2894],{"class":4665},[4173,108277,48385],{"class":4784},[4173,108279,108280],{"class":4766},"\u002F\u002F Subsequence cs1:\n",[4173,108282,108283],{"class":4657,"line":6457},[4173,108284,108285],{"class":4784},"Hell\n",[4173,108287,108288,108290,108292,108294,108296,108298,108300,108302,108304,108306,108308,108310,108312],{"class":4657,"line":6462},[4173,108289,100097],{"class":4784},[4173,108291,79074],{"class":4661},[4173,108293,6390],{"class":4784},[4173,108295,87894],{"class":4669},[4173,108297,11719],{"class":4788},[4173,108299,87814],{"class":4784},[4173,108301,87861],{"class":4661},[4173,108303,6390],{"class":4784},[4173,108305,14223],{"class":4665},[4173,108307,8629],{"class":4784},[4173,108309,2894],{"class":4665},[4173,108311,48385],{"class":4784},[4173,108313,108314],{"class":4766},"\u002F\u002F Subsequence cs2: orl\n",[4173,108316,108317],{"class":4657,"line":6468},[4173,108318,100385],{"class":4784},[4173,108320,108321],{"class":4657,"line":6473},[4173,108322,7090],{"class":4784},[16,108324,108326],{"id":108325},"stringtokenizer","StringTokenizer",[4647,108328,108330],{"className":78931,"code":108329,"language":78933,"meta":269,"style":269},"import java.util.StringTokenizer;\npublic class TokenizerBeispiel {\n    public static void main(String[] args) {\n        String text = \"Apfel,Birne,Banane,Kiwi\";\n        \u002F\u002F StringTokenizer erstellen, Trennzeichen ist ein Komma\n        StringTokenizer tokenizer = new StringTokenizer(text, \",\");\n        \u002F\u002F Alle Tokens ausgeben\n        while (tokenizer.hasMoreTokens()) {\n            String token = tokenizer.nextToken();\n            System.out.println(token);\n        }\n    }\n}\n\n",[4653,108331,108332,108338,108348,108368,108378,108383,108400,108405,108416,108429,108437,108441,108445],{"__ignoreMap":269},[4173,108333,108334,108336],{"class":4657,"line":4658},[4173,108335,79019],{"class":4788},[4173,108337,87946],{"class":4784},[4173,108339,108340,108342,108344,108346],{"class":4657,"line":270},[4173,108341,79889],{"class":4788},[4173,108343,80062],{"class":4788},[4173,108345,87955],{"class":4661},[4173,108347,51614],{"class":4784},[4173,108349,108350,108352,108354,108356,108358,108360,108362,108364,108366],{"class":4657,"line":1263},[4173,108351,100265],{"class":4788},[4173,108353,79892],{"class":4788},[4173,108355,79934],{"class":4788},[4173,108357,79937],{"class":4661},[4173,108359,6390],{"class":4784},[4173,108361,79693],{"class":4788},[4173,108363,80084],{"class":4784},[4173,108365,31283],{"class":7074},[4173,108367,56319],{"class":4784},[4173,108369,108370,108372,108374,108376],{"class":4657,"line":4770},[4173,108371,104431],{"class":4784},[4173,108373,6387],{"class":4788},[4173,108375,87986],{"class":4669},[4173,108377,55559],{"class":4784},[4173,108379,108380],{"class":4657,"line":4775},[4173,108381,108382],{"class":4766},"        \u002F\u002F StringTokenizer erstellen, Trennzeichen ist ein Komma\n",[4173,108384,108385,108388,108390,108392,108394,108396,108398],{"class":4657,"line":6320},[4173,108386,108387],{"class":4784},"        StringTokenizer tokenizer ",[4173,108389,6387],{"class":4788},[4173,108391,79032],{"class":4788},[4173,108393,88005],{"class":4661},[4173,108395,88008],{"class":4784},[4173,108397,88011],{"class":4669},[4173,108399,55545],{"class":4784},[4173,108401,108402],{"class":4657,"line":6325},[4173,108403,108404],{"class":4766},"        \u002F\u002F Alle Tokens ausgeben\n",[4173,108406,108407,108410,108412,108414],{"class":4657,"line":6343},[4173,108408,108409],{"class":4788},"        while",[4173,108411,88025],{"class":4784},[4173,108413,88028],{"class":4661},[4173,108415,85158],{"class":4784},[4173,108417,108418,108421,108423,108425,108427],{"class":4657,"line":6348},[4173,108419,108420],{"class":4784},"            String token ",[4173,108422,6387],{"class":4788},[4173,108424,88040],{"class":4784},[4173,108426,88043],{"class":4661},[4173,108428,65878],{"class":4784},[4173,108430,108431,108433,108435],{"class":4657,"line":6457},[4173,108432,100121],{"class":4784},[4173,108434,79074],{"class":4661},[4173,108436,88054],{"class":4784},[4173,108438,108439],{"class":4657,"line":6462},[4173,108440,100145],{"class":4784},[4173,108442,108443],{"class":4657,"line":6468},[4173,108444,100385],{"class":4784},[4173,108446,108447],{"class":4657,"line":6473},[4173,108448,7090],{"class":4784},[16,108450,108452],{"id":108451},"string-cheat-sheet-komplett","String – Cheat sheet komplett",[4647,108454,108456],{"className":78931,"code":108455,"language":78933,"meta":269,"style":269},"public class StringCheatSheet {\n    public static void main(String[] args) {\n        \u002F\u002F --- String Basics ---\n        String text = \"Hello World 123\";\n        System.out.println(\"Original: \" + text); \u002F\u002F Original: Hello World 123\n        System.out.println(\"Length: \" + text.length()); \u002F\u002F Length: 15\n        System.out.println(\"UpperCase: \" + text.toUpperCase()); \u002F\u002F UpperCase: HELLO WORLD 123\n        System.out.println(\"LowerCase: \" + text.toLowerCase()); \u002F\u002F LowerCase: hello world 123\n        System.out.println(\"charAt(1): \" + text.charAt(1)); \u002F\u002F charAt(1): e\n        System.out.println(\"startsWith(\\\"Hello\\\"): \" + text.startsWith(\"Hello\")); \u002F\u002F true\n        System.out.println(\"endsWith(\\\"123\\\"): \" + text.endsWith(\"123\")); \u002F\u002F true\n        System.out.println(\"indexOf(\\\"o\\\"): \" + text.indexOf(\"o\")); \u002F\u002F 4\n        System.out.println(\"lastIndexOf(\\\"o\\\"): \" + text.lastIndexOf(\"o\")); \u002F\u002F 7\n        System.out.println(\"contains(\\\"World\\\"): \" + text.contains(\"World\")); \u002F\u002F true\n        System.out.println(\"substring(0,5): \" + text.substring(0,5)); \u002F\u002F Hello\n        System.out.println(\"replace(\\\"World\\\", \\\"Java\\\"): \" + text.replace(\"World\", \"Java\")); \u002F\u002F\nHello Java 123\n        System.out.println(\"replaceAll(\\\"\\\\d\\\", \\\"\\\"): \" + text.replaceAll(\"\\\\d\", \"\")); \u002F\u002F\nHello World *\n        System.out.println(\"trim(): '\" + \"   test   \".trim() + \"'\"); \u002F\u002F 'test'\n        System.out.println(\"matches(\\\".World.\\\"): \" + text.matches(\".World.\")); \u002F\u002F true\n        \u002F\u002F --- equalsIgnoreCase ---\n        String mercedes = \"Mercedes\";\n        String lowerCaseMercedes = \"mercedes\";\n        System.out.println(\"equalsIgnoreCase: \" + mercedes.equalsIgnoreCase(lowerCaseMercedes));\n        \u002F\u002F true\n        \u002F\u002F --- Split ---\n        String[] words = text.split(\" \");\n        System.out.println(\"Split:\");\n        for(String word : words) {\n            System.out.println(word);\n            \u002F\u002F Hello\n            \u002F\u002F World\n            \u002F\u002F 123\n        }\n        \u002F\u002F --- String Formatting ---\n        String formatted = String.format(\"Name: %s, Age: %d\", \"Anna\", 25);\n        System.out.println(\"Formatted: \" + formatted); \u002F\u002F Name: Anna, Age: 25\n        \u002F\u002F --- StringBuilder ---\n        StringBuilder sb = new StringBuilder(\"Hello\");\n        sb.append(\" World\");\n        System.out.println(\"StringBuilder append: \" + sb); \u002F\u002F Hello World\n        sb.insert(6, \"Java \");\n        System.out.println(\"StringBuilder insert: \" + sb); \u002F\u002F Hello Java World\n        sb.delete(6, 11);\n        System.out.println(\"StringBuilder delete: \" + sb); \u002F\u002F Hello World\n        sb.setCharAt(0, 'h');\n        System.out.println(\"StringBuilder setCharAt: \" + sb); \u002F\u002F hello World\n        sb.reverse();\n        System.out.println(\"StringBuilder reverse: \" + sb); \u002F\u002F dlroW olleh\n        System.out.println(\"StringBuilder length: \" + sb.length()); \u002F\u002F 11\n        \u002F\u002F --- StringBuffer (Thread-safe) ---\n        StringBuffer sbf = new StringBuffer(\"Buffer\");\n        sbf.append(\" Test\");\n        System.out.println(\"StringBuffer append: \" + sbf); \u002F\u002F Buffer Test\n        sbf.replace(0, 6, \"Changed\");\n        System.out.println(\"StringBuffer replace: \" + sbf); \u002F\u002F Changed Test\n        sbf.delete(7, 12);\n        System.out.println(\"StringBuffer delete: \" + sbf); \u002F\u002F Changed\n        sbf.reverse();\n        System.out.println(\"StringBuffer reverse: \" + sbf); \u002F\u002F dednahC\n        \u002F\u002F --- CharSequence ---\n        CharSequence cs1 = \"CharSeq\";\n        CharSequence cs2 = new StringBuilder(\"Example\");\n        System.out.println(\"CharSequence length cs1: \" + cs1.length()); \u002F\u002F 7\n        System.out.println(\"CharSequence charAt cs2: \" + cs2.charAt(2)); \u002F\u002F a\n        System.out.println(\"CharSequence subsequence cs1: \" + cs1.subSequence(0,4)); \u002F\u002F Char\n        System.out.println(\"CharSequence subsequence cs2: \" + cs2.subSequence(2,5)); \u002F\u002F amp\n    }\n}\n\n",[4653,108457,108458,108468,108488,108493,108503,108519,108539,108559,108579,108603,108635,108667,108699,108731,108763,108791,108835,108841,108886,108892,108920,108954,108959,108970,108981,108999,109004,109009,109027,109039,109049,109057,109061,109065,109069,109073,109078,109103,109119,109124,109140,109152,109168,109184,109200,109216,109232,109248,109264,109272,109288,109308,109313,109330,109343,109359,109379,109395,109411,109427,109435,109451,109456,109466,109482,109502,109526,109554,109582,109586],{"__ignoreMap":269},[4173,108459,108460,108462,108464,108466],{"class":4657,"line":4658},[4173,108461,79889],{"class":4788},[4173,108463,80062],{"class":4788},[4173,108465,88084],{"class":4661},[4173,108467,51614],{"class":4784},[4173,108469,108470,108472,108474,108476,108478,108480,108482,108484,108486],{"class":4657,"line":270},[4173,108471,100265],{"class":4788},[4173,108473,79892],{"class":4788},[4173,108475,79934],{"class":4788},[4173,108477,79937],{"class":4661},[4173,108479,6390],{"class":4784},[4173,108481,79693],{"class":4788},[4173,108483,80084],{"class":4784},[4173,108485,31283],{"class":7074},[4173,108487,56319],{"class":4784},[4173,108489,108490],{"class":4657,"line":1263},[4173,108491,108492],{"class":4766},"        \u002F\u002F --- String Basics ---\n",[4173,108494,108495,108497,108499,108501],{"class":4657,"line":4770},[4173,108496,104431],{"class":4784},[4173,108498,6387],{"class":4788},[4173,108500,79686],{"class":4669},[4173,108502,55559],{"class":4784},[4173,108504,108505,108507,108509,108511,108513,108515,108517],{"class":4657,"line":4775},[4173,108506,100097],{"class":4784},[4173,108508,79074],{"class":4661},[4173,108510,6390],{"class":4784},[4173,108512,88132],{"class":4669},[4173,108514,11719],{"class":4788},[4173,108516,88137],{"class":4784},[4173,108518,88140],{"class":4766},[4173,108520,108521,108523,108525,108527,108529,108531,108533,108535,108537],{"class":4657,"line":6320},[4173,108522,100097],{"class":4784},[4173,108524,79074],{"class":4661},[4173,108526,6390],{"class":4784},[4173,108528,87484],{"class":4669},[4173,108530,11719],{"class":4788},[4173,108532,79701],{"class":4784},[4173,108534,86840],{"class":4661},[4173,108536,86843],{"class":4784},[4173,108538,88161],{"class":4766},[4173,108540,108541,108543,108545,108547,108549,108551,108553,108555,108557],{"class":4657,"line":6325},[4173,108542,100097],{"class":4784},[4173,108544,79074],{"class":4661},[4173,108546,6390],{"class":4784},[4173,108548,86862],{"class":4669},[4173,108550,11719],{"class":4788},[4173,108552,79701],{"class":4784},[4173,108554,85895],{"class":4661},[4173,108556,86843],{"class":4784},[4173,108558,88182],{"class":4766},[4173,108560,108561,108563,108565,108567,108569,108571,108573,108575,108577],{"class":4657,"line":6343},[4173,108562,100097],{"class":4784},[4173,108564,79074],{"class":4661},[4173,108566,6390],{"class":4784},[4173,108568,86893],{"class":4669},[4173,108570,11719],{"class":4788},[4173,108572,79701],{"class":4784},[4173,108574,86900],{"class":4661},[4173,108576,86843],{"class":4784},[4173,108578,88203],{"class":4766},[4173,108580,108581,108583,108585,108587,108589,108591,108593,108595,108597,108599,108601],{"class":4657,"line":6348},[4173,108582,100097],{"class":4784},[4173,108584,79074],{"class":4661},[4173,108586,6390],{"class":4784},[4173,108588,88214],{"class":4669},[4173,108590,11719],{"class":4788},[4173,108592,79701],{"class":4784},[4173,108594,86933],{"class":4661},[4173,108596,6390],{"class":4784},[4173,108598,14223],{"class":4665},[4173,108600,48385],{"class":4784},[4173,108602,88229],{"class":4766},[4173,108604,108605,108607,108609,108611,108613,108615,108617,108619,108621,108623,108625,108627,108629,108631,108633],{"class":4657,"line":6457},[4173,108606,100097],{"class":4784},[4173,108608,79074],{"class":4661},[4173,108610,6390],{"class":4784},[4173,108612,88240],{"class":4669},[4173,108614,88243],{"class":4665},[4173,108616,88246],{"class":4669},[4173,108618,88243],{"class":4665},[4173,108620,88251],{"class":4669},[4173,108622,11719],{"class":4788},[4173,108624,79701],{"class":4784},[4173,108626,88258],{"class":4661},[4173,108628,6390],{"class":4784},[4173,108630,86981],{"class":4669},[4173,108632,48385],{"class":4784},[4173,108634,88267],{"class":4766},[4173,108636,108637,108639,108641,108643,108645,108647,108649,108651,108653,108655,108657,108659,108661,108663,108665],{"class":4657,"line":6462},[4173,108638,100097],{"class":4784},[4173,108640,79074],{"class":4661},[4173,108642,6390],{"class":4784},[4173,108644,88278],{"class":4669},[4173,108646,88243],{"class":4665},[4173,108648,18031],{"class":4669},[4173,108650,88243],{"class":4665},[4173,108652,88251],{"class":4669},[4173,108654,11719],{"class":4788},[4173,108656,79701],{"class":4784},[4173,108658,88293],{"class":4661},[4173,108660,6390],{"class":4784},[4173,108662,88298],{"class":4669},[4173,108664,48385],{"class":4784},[4173,108666,88267],{"class":4766},[4173,108668,108669,108671,108673,108675,108677,108679,108681,108683,108685,108687,108689,108691,108693,108695,108697],{"class":4657,"line":6468},[4173,108670,100097],{"class":4784},[4173,108672,79074],{"class":4661},[4173,108674,6390],{"class":4784},[4173,108676,88313],{"class":4669},[4173,108678,88243],{"class":4665},[4173,108680,13557],{"class":4669},[4173,108682,88243],{"class":4665},[4173,108684,88251],{"class":4669},[4173,108686,11719],{"class":4788},[4173,108688,79701],{"class":4784},[4173,108690,88328],{"class":4661},[4173,108692,6390],{"class":4784},[4173,108694,88333],{"class":4669},[4173,108696,48385],{"class":4784},[4173,108698,88338],{"class":4766},[4173,108700,108701,108703,108705,108707,108709,108711,108713,108715,108717,108719,108721,108723,108725,108727,108729],{"class":4657,"line":6473},[4173,108702,100097],{"class":4784},[4173,108704,79074],{"class":4661},[4173,108706,6390],{"class":4784},[4173,108708,88349],{"class":4669},[4173,108710,88243],{"class":4665},[4173,108712,13557],{"class":4669},[4173,108714,88243],{"class":4665},[4173,108716,88251],{"class":4669},[4173,108718,11719],{"class":4788},[4173,108720,79701],{"class":4784},[4173,108722,88364],{"class":4661},[4173,108724,6390],{"class":4784},[4173,108726,88333],{"class":4669},[4173,108728,48385],{"class":4784},[4173,108730,88373],{"class":4766},[4173,108732,108733,108735,108737,108739,108741,108743,108745,108747,108749,108751,108753,108755,108757,108759,108761],{"class":4657,"line":6479},[4173,108734,100097],{"class":4784},[4173,108736,79074],{"class":4661},[4173,108738,6390],{"class":4784},[4173,108740,88384],{"class":4669},[4173,108742,88243],{"class":4665},[4173,108744,88389],{"class":4669},[4173,108746,88243],{"class":4665},[4173,108748,88251],{"class":4669},[4173,108750,11719],{"class":4788},[4173,108752,79701],{"class":4784},[4173,108754,87222],{"class":4661},[4173,108756,6390],{"class":4784},[4173,108758,87074],{"class":4669},[4173,108760,48385],{"class":4784},[4173,108762,88267],{"class":4766},[4173,108764,108765,108767,108769,108771,108773,108775,108777,108779,108781,108783,108785,108787,108789],{"class":4657,"line":6503},[4173,108766,100097],{"class":4784},[4173,108768,79074],{"class":4661},[4173,108770,6390],{"class":4784},[4173,108772,88418],{"class":4669},[4173,108774,11719],{"class":4788},[4173,108776,79701],{"class":4784},[4173,108778,87011],{"class":4661},[4173,108780,6390],{"class":4784},[4173,108782,12749],{"class":4665},[4173,108784,42920],{"class":4784},[4173,108786,14292],{"class":4665},[4173,108788,48385],{"class":4784},[4173,108790,79750],{"class":4766},[4173,108792,108793,108795,108797,108799,108801,108803,108805,108807,108809,108811,108813,108815,108817,108819,108821,108823,108825,108827,108829,108831,108833],{"class":4657,"line":6516},[4173,108794,100097],{"class":4784},[4173,108796,79074],{"class":4661},[4173,108798,6390],{"class":4784},[4173,108800,88447],{"class":4669},[4173,108802,88243],{"class":4665},[4173,108804,88389],{"class":4669},[4173,108806,88243],{"class":4665},[4173,108808,8629],{"class":4669},[4173,108810,88243],{"class":4665},[4173,108812,88460],{"class":4669},[4173,108814,88243],{"class":4665},[4173,108816,88251],{"class":4669},[4173,108818,11719],{"class":4788},[4173,108820,79701],{"class":4784},[4173,108822,87069],{"class":4661},[4173,108824,6390],{"class":4784},[4173,108826,87074],{"class":4669},[4173,108828,8629],{"class":4784},[4173,108830,87079],{"class":4669},[4173,108832,48385],{"class":4784},[4173,108834,64632],{"class":4766},[4173,108836,108837,108839],{"class":4657,"line":6971},[4173,108838,88487],{"class":4784},[4173,108840,88490],{"class":4665},[4173,108842,108843,108845,108847,108849,108851,108853,108855,108857,108859,108862,108864,108866,108868,108870,108872,108874,108876,108878,108880,108882,108884],{"class":4657,"line":10649},[4173,108844,100097],{"class":4784},[4173,108846,79074],{"class":4661},[4173,108848,6390],{"class":4784},[4173,108850,88501],{"class":4669},[4173,108852,88504],{"class":4665},[4173,108854,12469],{"class":4669},[4173,108856,88243],{"class":4665},[4173,108858,8629],{"class":4669},[4173,108860,108861],{"class":4665},"\\\"\\\"",[4173,108863,88251],{"class":4669},[4173,108865,11719],{"class":4788},[4173,108867,79701],{"class":4784},[4173,108869,88525],{"class":4661},[4173,108871,6390],{"class":4784},[4173,108873,6207],{"class":4669},[4173,108875,88532],{"class":4665},[4173,108877,88535],{"class":4669},[4173,108879,8629],{"class":4784},[4173,108881,46851],{"class":4669},[4173,108883,48385],{"class":4784},[4173,108885,64632],{"class":4766},[4173,108887,108888,108890],{"class":4657,"line":10654},[4173,108889,88548],{"class":4784},[4173,108891,26959],{"class":4788},[4173,108893,108894,108896,108898,108900,108902,108904,108906,108908,108910,108912,108914,108916,108918],{"class":4657,"line":10659},[4173,108895,100097],{"class":4784},[4173,108897,79074],{"class":4661},[4173,108899,6390],{"class":4784},[4173,108901,88562],{"class":4669},[4173,108903,11719],{"class":4788},[4173,108905,88567],{"class":4669},[4173,108907,7834],{"class":4784},[4173,108909,86160],{"class":4661},[4173,108911,80558],{"class":4784},[4173,108913,14419],{"class":4788},[4173,108915,87126],{"class":4669},[4173,108917,79107],{"class":4784},[4173,108919,88582],{"class":4766},[4173,108921,108922,108924,108926,108928,108930,108932,108935,108937,108939,108941,108943,108945,108947,108950,108952],{"class":4657,"line":10664},[4173,108923,100097],{"class":4784},[4173,108925,79074],{"class":4661},[4173,108927,6390],{"class":4784},[4173,108929,88593],{"class":4669},[4173,108931,88243],{"class":4665},[4173,108933,108934],{"class":4669},".World.",[4173,108936,88243],{"class":4665},[4173,108938,88251],{"class":4669},[4173,108940,11719],{"class":4788},[4173,108942,79701],{"class":4784},[4173,108944,88609],{"class":4661},[4173,108946,6390],{"class":4784},[4173,108948,108949],{"class":4669},"\".World.\"",[4173,108951,48385],{"class":4784},[4173,108953,88267],{"class":4766},[4173,108955,108956],{"class":4657,"line":10676},[4173,108957,108958],{"class":4766},"        \u002F\u002F --- equalsIgnoreCase ---\n",[4173,108960,108961,108964,108966,108968],{"class":4657,"line":10681},[4173,108962,108963],{"class":4784},"        String mercedes ",[4173,108965,6387],{"class":4788},[4173,108967,88633],{"class":4669},[4173,108969,55559],{"class":4784},[4173,108971,108972,108975,108977,108979],{"class":4657,"line":10702},[4173,108973,108974],{"class":4784},"        String lowerCaseMercedes ",[4173,108976,6387],{"class":4788},[4173,108978,88645],{"class":4669},[4173,108980,55559],{"class":4784},[4173,108982,108983,108985,108987,108989,108991,108993,108995,108997],{"class":4657,"line":10707},[4173,108984,100097],{"class":4784},[4173,108986,79074],{"class":4661},[4173,108988,6390],{"class":4784},[4173,108990,88658],{"class":4669},[4173,108992,11719],{"class":4788},[4173,108994,88663],{"class":4784},[4173,108996,88666],{"class":4661},[4173,108998,88669],{"class":4784},[4173,109000,109001],{"class":4657,"line":10712},[4173,109002,109003],{"class":4766},"        \u002F\u002F true\n",[4173,109005,109006],{"class":4657,"line":10717},[4173,109007,109008],{"class":4766},"        \u002F\u002F --- Split ---\n",[4173,109010,109011,109013,109015,109017,109019,109021,109023,109025],{"class":4657,"line":10727},[4173,109012,104756],{"class":4788},[4173,109014,79696],{"class":4784},[4173,109016,6387],{"class":4788},[4173,109018,79701],{"class":4784},[4173,109020,79704],{"class":4661},[4173,109022,6390],{"class":4784},[4173,109024,79709],{"class":4669},[4173,109026,55545],{"class":4784},[4173,109028,109029,109031,109033,109035,109037],{"class":4657,"line":10732},[4173,109030,100097],{"class":4784},[4173,109032,79074],{"class":4661},[4173,109034,6390],{"class":4784},[4173,109036,79722],{"class":4669},[4173,109038,55545],{"class":4784},[4173,109040,109041,109043,109045,109047],{"class":4657,"line":10737},[4173,109042,100110],{"class":4788},[4173,109044,79731],{"class":4784},[4173,109046,8158],{"class":4788},[4173,109048,79736],{"class":4784},[4173,109050,109051,109053,109055],{"class":4657,"line":10742},[4173,109052,100121],{"class":4784},[4173,109054,79074],{"class":4661},[4173,109056,79745],{"class":4784},[4173,109058,109059],{"class":4657,"line":10752},[4173,109060,100130],{"class":4766},[4173,109062,109063],{"class":4657,"line":10757},[4173,109064,100135],{"class":4766},[4173,109066,109067],{"class":4657,"line":10762},[4173,109068,100140],{"class":4766},[4173,109070,109071],{"class":4657,"line":10767},[4173,109072,100145],{"class":4784},[4173,109074,109075],{"class":4657,"line":10772},[4173,109076,109077],{"class":4766},"        \u002F\u002F --- String Formatting ---\n",[4173,109079,109080,109083,109085,109087,109089,109091,109093,109095,109097,109099,109101],{"class":4657,"line":10777},[4173,109081,109082],{"class":4784},"        String formatted ",[4173,109084,6387],{"class":4788},[4173,109086,88757],{"class":4784},[4173,109088,88760],{"class":4661},[4173,109090,6390],{"class":4784},[4173,109092,88765],{"class":4669},[4173,109094,8629],{"class":4784},[4173,109096,80104],{"class":4669},[4173,109098,8629],{"class":4784},[4173,109100,88774],{"class":4665},[4173,109102,55545],{"class":4784},[4173,109104,109105,109107,109109,109111,109113,109115,109117],{"class":4657,"line":10782},[4173,109106,100097],{"class":4784},[4173,109108,79074],{"class":4661},[4173,109110,6390],{"class":4784},[4173,109112,88787],{"class":4669},[4173,109114,11719],{"class":4788},[4173,109116,88792],{"class":4784},[4173,109118,88795],{"class":4766},[4173,109120,109121],{"class":4657,"line":10787},[4173,109122,109123],{"class":4766},"        \u002F\u002F --- StringBuilder ---\n",[4173,109125,109126,109128,109130,109132,109134,109136,109138],{"class":4657,"line":10800},[4173,109127,106005],{"class":4784},[4173,109129,6387],{"class":4788},[4173,109131,79032],{"class":4788},[4173,109133,86050],{"class":4661},[4173,109135,6390],{"class":4784},[4173,109137,86981],{"class":4669},[4173,109139,55545],{"class":4784},[4173,109141,109142,109144,109146,109148,109150],{"class":4657,"line":10805},[4173,109143,107757],{"class":4784},[4173,109145,86118],{"class":4661},[4173,109147,6390],{"class":4784},[4173,109149,87321],{"class":4669},[4173,109151,55545],{"class":4784},[4173,109153,109154,109156,109158,109160,109162,109164,109166],{"class":4657,"line":10818},[4173,109155,100097],{"class":4784},[4173,109157,79074],{"class":4661},[4173,109159,6390],{"class":4784},[4173,109161,88839],{"class":4669},[4173,109163,11719],{"class":4788},[4173,109165,87466],{"class":4784},[4173,109167,87335],{"class":4766},[4173,109169,109170,109172,109174,109176,109178,109180,109182],{"class":4657,"line":10823},[4173,109171,107757],{"class":4784},[4173,109173,87347],{"class":4661},[4173,109175,6390],{"class":4784},[4173,109177,14278],{"class":4665},[4173,109179,8629],{"class":4784},[4173,109181,87356],{"class":4669},[4173,109183,55545],{"class":4784},[4173,109185,109186,109188,109190,109192,109194,109196,109198],{"class":4657,"line":10836},[4173,109187,100097],{"class":4784},[4173,109189,79074],{"class":4661},[4173,109191,6390],{"class":4784},[4173,109193,88872],{"class":4669},[4173,109195,11719],{"class":4788},[4173,109197,87466],{"class":4784},[4173,109199,87369],{"class":4766},[4173,109201,109202,109204,109206,109208,109210,109212,109214],{"class":4657,"line":10841},[4173,109203,107757],{"class":4784},[4173,109205,87381],{"class":4661},[4173,109207,6390],{"class":4784},[4173,109209,14278],{"class":4665},[4173,109211,8629],{"class":4784},[4173,109213,87390],{"class":4665},[4173,109215,55545],{"class":4784},[4173,109217,109218,109220,109222,109224,109226,109228,109230],{"class":4657,"line":10846},[4173,109219,100097],{"class":4784},[4173,109221,79074],{"class":4661},[4173,109223,6390],{"class":4784},[4173,109225,88905],{"class":4669},[4173,109227,11719],{"class":4788},[4173,109229,87466],{"class":4784},[4173,109231,87335],{"class":4766},[4173,109233,109234,109236,109238,109240,109242,109244,109246],{"class":4657,"line":10851},[4173,109235,107757],{"class":4784},[4173,109237,87414],{"class":4661},[4173,109239,6390],{"class":4784},[4173,109241,12749],{"class":4665},[4173,109243,8629],{"class":4784},[4173,109245,87423],{"class":4669},[4173,109247,55545],{"class":4784},[4173,109249,109250,109252,109254,109256,109258,109260,109262],{"class":4657,"line":10867},[4173,109251,100097],{"class":4784},[4173,109253,79074],{"class":4661},[4173,109255,6390],{"class":4784},[4173,109257,88938],{"class":4669},[4173,109259,11719],{"class":4788},[4173,109261,87466],{"class":4784},[4173,109263,87436],{"class":4766},[4173,109265,109266,109268,109270],{"class":4657,"line":10872},[4173,109267,107757],{"class":4784},[4173,109269,87448],{"class":4661},[4173,109271,65878],{"class":4784},[4173,109273,109274,109276,109278,109280,109282,109284,109286],{"class":4657,"line":10877},[4173,109275,100097],{"class":4784},[4173,109277,79074],{"class":4661},[4173,109279,6390],{"class":4784},[4173,109281,88963],{"class":4669},[4173,109283,11719],{"class":4788},[4173,109285,87466],{"class":4784},[4173,109287,88970],{"class":4766},[4173,109289,109290,109292,109294,109296,109298,109300,109302,109304,109306],{"class":4657,"line":10882},[4173,109291,100097],{"class":4784},[4173,109293,79074],{"class":4661},[4173,109295,6390],{"class":4784},[4173,109297,88981],{"class":4669},[4173,109299,11719],{"class":4788},[4173,109301,86204],{"class":4784},[4173,109303,86840],{"class":4661},[4173,109305,86843],{"class":4784},[4173,109307,88992],{"class":4766},[4173,109309,109310],{"class":4657,"line":10890},[4173,109311,109312],{"class":4766},"        \u002F\u002F --- StringBuffer (Thread-safe) ---\n",[4173,109314,109315,109318,109320,109322,109324,109326,109328],{"class":4657,"line":10895},[4173,109316,109317],{"class":4784},"        StringBuffer sbf ",[4173,109319,6387],{"class":4788},[4173,109321,79032],{"class":4788},[4173,109323,87555],{"class":4661},[4173,109325,6390],{"class":4784},[4173,109327,89013],{"class":4669},[4173,109329,55545],{"class":4784},[4173,109331,109332,109335,109337,109339,109341],{"class":4657,"line":10904},[4173,109333,109334],{"class":4784},"        sbf.",[4173,109336,86118],{"class":4661},[4173,109338,6390],{"class":4784},[4173,109340,89027],{"class":4669},[4173,109342,55545],{"class":4784},[4173,109344,109345,109347,109349,109351,109353,109355,109357],{"class":4657,"line":10909},[4173,109346,100097],{"class":4784},[4173,109348,79074],{"class":4661},[4173,109350,6390],{"class":4784},[4173,109352,89040],{"class":4669},[4173,109354,11719],{"class":4788},[4173,109356,89045],{"class":4784},[4173,109358,89048],{"class":4766},[4173,109360,109361,109363,109365,109367,109369,109371,109373,109375,109377],{"class":4657,"line":10914},[4173,109362,109334],{"class":4784},[4173,109364,87069],{"class":4661},[4173,109366,6390],{"class":4784},[4173,109368,12749],{"class":4665},[4173,109370,8629],{"class":4784},[4173,109372,14278],{"class":4665},[4173,109374,8629],{"class":4784},[4173,109376,89067],{"class":4669},[4173,109378,55545],{"class":4784},[4173,109380,109381,109383,109385,109387,109389,109391,109393],{"class":4657,"line":10919},[4173,109382,100097],{"class":4784},[4173,109384,79074],{"class":4661},[4173,109386,6390],{"class":4784},[4173,109388,89080],{"class":4669},[4173,109390,11719],{"class":4788},[4173,109392,89045],{"class":4784},[4173,109394,89087],{"class":4766},[4173,109396,109397,109399,109401,109403,109405,109407,109409],{"class":4657,"line":10933},[4173,109398,109334],{"class":4784},[4173,109400,87381],{"class":4661},[4173,109402,6390],{"class":4784},[4173,109404,14264],{"class":4665},[4173,109406,8629],{"class":4784},[4173,109408,36010],{"class":4665},[4173,109410,55545],{"class":4784},[4173,109412,109413,109415,109417,109419,109421,109423,109425],{"class":4657,"line":10938},[4173,109414,100097],{"class":4784},[4173,109416,79074],{"class":4661},[4173,109418,6390],{"class":4784},[4173,109420,89114],{"class":4669},[4173,109422,11719],{"class":4788},[4173,109424,89045],{"class":4784},[4173,109426,89121],{"class":4766},[4173,109428,109429,109431,109433],{"class":4657,"line":10959},[4173,109430,109334],{"class":4784},[4173,109432,87448],{"class":4661},[4173,109434,65878],{"class":4784},[4173,109436,109437,109439,109441,109443,109445,109447,109449],{"class":4657,"line":10964},[4173,109438,100097],{"class":4784},[4173,109440,79074],{"class":4661},[4173,109442,6390],{"class":4784},[4173,109444,89140],{"class":4669},[4173,109446,11719],{"class":4788},[4173,109448,89045],{"class":4784},[4173,109450,89147],{"class":4766},[4173,109452,109453],{"class":4657,"line":10969},[4173,109454,109455],{"class":4766},"        \u002F\u002F --- CharSequence ---\n",[4173,109457,109458,109460,109462,109464],{"class":4657,"line":10974},[4173,109459,108165],{"class":4784},[4173,109461,6387],{"class":4788},[4173,109463,89161],{"class":4669},[4173,109465,55559],{"class":4784},[4173,109467,109468,109470,109472,109474,109476,109478,109480],{"class":4657,"line":10982},[4173,109469,108178],{"class":4784},[4173,109471,6387],{"class":4788},[4173,109473,79032],{"class":4788},[4173,109475,86050],{"class":4661},[4173,109477,6390],{"class":4784},[4173,109479,89178],{"class":4669},[4173,109481,55545],{"class":4784},[4173,109483,109484,109486,109488,109490,109492,109494,109496,109498,109500],{"class":4657,"line":10987},[4173,109485,100097],{"class":4784},[4173,109487,79074],{"class":4661},[4173,109489,6390],{"class":4784},[4173,109491,89191],{"class":4669},[4173,109493,11719],{"class":4788},[4173,109495,87791],{"class":4784},[4173,109497,86840],{"class":4661},[4173,109499,86843],{"class":4784},[4173,109501,88373],{"class":4766},[4173,109503,109504,109506,109508,109510,109512,109514,109516,109518,109520,109522,109524],{"class":4657,"line":10995},[4173,109505,100097],{"class":4784},[4173,109507,79074],{"class":4661},[4173,109509,6390],{"class":4784},[4173,109511,89212],{"class":4669},[4173,109513,11719],{"class":4788},[4173,109515,87814],{"class":4784},[4173,109517,86933],{"class":4661},[4173,109519,6390],{"class":4784},[4173,109521,14206],{"class":4665},[4173,109523,48385],{"class":4784},[4173,109525,89227],{"class":4766},[4173,109527,109528,109530,109532,109534,109536,109538,109540,109542,109544,109546,109548,109550,109552],{"class":4657,"line":11000},[4173,109529,100097],{"class":4784},[4173,109531,79074],{"class":4661},[4173,109533,6390],{"class":4784},[4173,109535,89238],{"class":4669},[4173,109537,11719],{"class":4788},[4173,109539,87791],{"class":4784},[4173,109541,87861],{"class":4661},[4173,109543,6390],{"class":4784},[4173,109545,12749],{"class":4665},[4173,109547,42920],{"class":4784},[4173,109549,2894],{"class":4665},[4173,109551,48385],{"class":4784},[4173,109553,89257],{"class":4766},[4173,109555,109556,109558,109560,109562,109564,109566,109568,109570,109572,109574,109576,109578,109580],{"class":4657,"line":11008},[4173,109557,100097],{"class":4784},[4173,109559,79074],{"class":4661},[4173,109561,6390],{"class":4784},[4173,109563,89268],{"class":4669},[4173,109565,11719],{"class":4788},[4173,109567,87814],{"class":4784},[4173,109569,87861],{"class":4661},[4173,109571,6390],{"class":4784},[4173,109573,14206],{"class":4665},[4173,109575,42920],{"class":4784},[4173,109577,14292],{"class":4665},[4173,109579,48385],{"class":4784},[4173,109581,89287],{"class":4766},[4173,109583,109584],{"class":4657,"line":11013},[4173,109585,100385],{"class":4784},[4173,109587,109588],{"class":4657,"line":11021},[4173,109589,7090],{"class":4784},[11,109591,109593],{"id":109592},"decimalformat","DecimalFormat",[414,109595,109596],{},[42,109597,109598],{},"Kurze Erläuterung:",[21,109600,109601,109604,109607,109610],{},[24,109602,109603],{},"Dient zur Formatierung von Dezimalzahlen (double, float) in Strings.",[24,109605,109606],{},"Ermöglicht das Festlegen von Nachkommastellen, Tausendertrennzeichen und Vorzeichen.",[24,109608,109609],{},"Nützlich für Währungen, Prozentzahlen oder genaue mathematische Ausgaben.",[24,109611,109612],{},"Benötigt den Import: import java.text.DecimalFormat;",[414,109614,109615],{},[42,109616,8902],{},[4647,109618,109620],{"className":78931,"code":109619,"language":78933,"meta":269,"style":269},"import java.text.DecimalFormat;\npublic class DecimalFormatBeispiel {\n    public static void main(String[] args) {\n        double zahl = 12345.6789;\n        \u002F\u002F Zwei Nachkommastellen erzwingen (rundet automatisch auf\u002Fab)\n        DecimalFormat df1 = new DecimalFormat(\"0.00\");\n        System.out.println(df1.format(zahl)); \u002F\u002F Ausgabe: 12345,68\n        \u002F\u002F Mit Tausendertrennzeichen und zwei Nachkommastellen\n        DecimalFormat df2 = new DecimalFormat(\"#,##0.00\");\n        System.out.println(df2.format(zahl)); \u002F\u002F Ausgabe: 12.345,68\n        \u002F\u002F Prozentformatierung (multipliziert automatisch mit 100)\n        DecimalFormat df3 = new DecimalFormat(\"#.##%\");\n        double prozent = 0.753;\n        System.out.println(df3.format(prozent)); \u002F\u002F Ausgabe: 75,3%\n    }\n}\n\n",[4653,109621,109622,109629,109640,109660,109674,109679,109698,109715,109720,109738,109754,109759,109777,109791,109808,109812],{"__ignoreMap":269},[4173,109623,109624,109626],{"class":4657,"line":4658},[4173,109625,79019],{"class":4788},[4173,109627,109628],{"class":4784}," java.text.DecimalFormat;\n",[4173,109630,109631,109633,109635,109638],{"class":4657,"line":270},[4173,109632,79889],{"class":4788},[4173,109634,80062],{"class":4788},[4173,109636,109637],{"class":4661}," DecimalFormatBeispiel",[4173,109639,51614],{"class":4784},[4173,109641,109642,109644,109646,109648,109650,109652,109654,109656,109658],{"class":4657,"line":1263},[4173,109643,100265],{"class":4788},[4173,109645,79892],{"class":4788},[4173,109647,79934],{"class":4788},[4173,109649,79937],{"class":4661},[4173,109651,6390],{"class":4784},[4173,109653,79693],{"class":4788},[4173,109655,80084],{"class":4784},[4173,109657,31283],{"class":7074},[4173,109659,56319],{"class":4784},[4173,109661,109662,109665,109667,109669,109672],{"class":4657,"line":4770},[4173,109663,109664],{"class":4788},"        double",[4173,109666,49689],{"class":4784},[4173,109668,6387],{"class":4788},[4173,109670,109671],{"class":4665}," 12345.6789",[4173,109673,55559],{"class":4784},[4173,109675,109676],{"class":4657,"line":4775},[4173,109677,109678],{"class":4766},"        \u002F\u002F Zwei Nachkommastellen erzwingen (rundet automatisch auf\u002Fab)\n",[4173,109680,109681,109684,109686,109688,109691,109693,109696],{"class":4657,"line":6320},[4173,109682,109683],{"class":4784},"        DecimalFormat df1 ",[4173,109685,6387],{"class":4788},[4173,109687,79032],{"class":4788},[4173,109689,109690],{"class":4661}," DecimalFormat",[4173,109692,6390],{"class":4784},[4173,109694,109695],{"class":4669},"\"0.00\"",[4173,109697,55545],{"class":4784},[4173,109699,109700,109702,109704,109707,109709,109712],{"class":4657,"line":6325},[4173,109701,100097],{"class":4784},[4173,109703,79074],{"class":4661},[4173,109705,109706],{"class":4784},"(df1.",[4173,109708,88760],{"class":4661},[4173,109710,109711],{"class":4784},"(zahl)); ",[4173,109713,109714],{"class":4766},"\u002F\u002F Ausgabe: 12345,68\n",[4173,109716,109717],{"class":4657,"line":6343},[4173,109718,109719],{"class":4766},"        \u002F\u002F Mit Tausendertrennzeichen und zwei Nachkommastellen\n",[4173,109721,109722,109725,109727,109729,109731,109733,109736],{"class":4657,"line":6348},[4173,109723,109724],{"class":4784},"        DecimalFormat df2 ",[4173,109726,6387],{"class":4788},[4173,109728,79032],{"class":4788},[4173,109730,109690],{"class":4661},[4173,109732,6390],{"class":4784},[4173,109734,109735],{"class":4669},"\"#,##0.00\"",[4173,109737,55545],{"class":4784},[4173,109739,109740,109742,109744,109747,109749,109751],{"class":4657,"line":6457},[4173,109741,100097],{"class":4784},[4173,109743,79074],{"class":4661},[4173,109745,109746],{"class":4784},"(df2.",[4173,109748,88760],{"class":4661},[4173,109750,109711],{"class":4784},[4173,109752,109753],{"class":4766},"\u002F\u002F Ausgabe: 12.345,68\n",[4173,109755,109756],{"class":4657,"line":6462},[4173,109757,109758],{"class":4766},"        \u002F\u002F Prozentformatierung (multipliziert automatisch mit 100)\n",[4173,109760,109761,109764,109766,109768,109770,109772,109775],{"class":4657,"line":6468},[4173,109762,109763],{"class":4784},"        DecimalFormat df3 ",[4173,109765,6387],{"class":4788},[4173,109767,79032],{"class":4788},[4173,109769,109690],{"class":4661},[4173,109771,6390],{"class":4784},[4173,109773,109774],{"class":4669},"\"#.##%\"",[4173,109776,55545],{"class":4784},[4173,109778,109779,109781,109784,109786,109789],{"class":4657,"line":6473},[4173,109780,109664],{"class":4788},[4173,109782,109783],{"class":4784}," prozent ",[4173,109785,6387],{"class":4788},[4173,109787,109788],{"class":4665}," 0.753",[4173,109790,55559],{"class":4784},[4173,109792,109793,109795,109797,109800,109802,109805],{"class":4657,"line":6479},[4173,109794,100097],{"class":4784},[4173,109796,79074],{"class":4661},[4173,109798,109799],{"class":4784},"(df3.",[4173,109801,88760],{"class":4661},[4173,109803,109804],{"class":4784},"(prozent)); ",[4173,109806,109807],{"class":4766},"\u002F\u002F Ausgabe: 75,3%\n",[4173,109809,109810],{"class":4657,"line":6503},[4173,109811,100385],{"class":4784},[4173,109813,109814],{"class":4657,"line":6516},[4173,109815,7090],{"class":4784},[414,109817,109818],{},[42,109819,109820],{},"Wichtige Merkmale & Stolpersteine:",[21,109822,109823,109829,109835],{},[24,109824,109825,109828],{},[42,109826,109827],{},"0 vs. # im Pattern:"," Eine 0 erzwingt eine Ziffer (füllt mit Nullen auf, falls keine Ziffer da ist, z. B. 0.5 wird bei 0.00 zu 0.50). Ein # zeigt eine Ziffer nur an, wenn sie existiert (keine führenden\u002Fanhängenden Nullen).",[24,109830,109831,109834],{},[42,109832,109833],{},"Rundung:"," DecimalFormat rundet standardmäßig nach dem \"Half-Even\" Prinzip (kaufmännisches Runden).",[24,109836,109837,109840],{},[42,109838,109839],{},"Lokalisierung:"," Das Formatierungszeichen (Punkt oder Komma) hängt von der Spracheinstellung des Betriebssystems ab (in Deutschland ist das Komma das Dezimaltrennzeichen).",[11,109842,109844],{"id":109843},"wrapper-klassen","Wrapper-Klassen",[414,109846,109847],{},[42,109848,109598],{},[21,109850,109851,109854,109864],{},[24,109852,109853],{},"Wrapper-Klassen kapseln primitive Datentypen (int, double, boolean etc.) in echte Objekte.",[24,109855,109856,109859,109860,109863],{},[42,109857,109858],{},"Warum?"," Komplexe Datenstrukturen wie Collections (z. B. ArrayList) können ",[42,109861,109862],{},"nur Objekte"," speichern, keine primitiven Datentypen.",[24,109865,109866],{},"Bieten nützliche Hilfsmethoden (z. B. Konvertierung von String zu int).",[414,109868,109869],{},[42,109870,109871],{},"Die Klassen:",[21,109873,109874,109877,109880,109883,109886],{},[24,109875,109876],{},"int → Integer",[24,109878,109879],{},"double → Double",[24,109881,109882],{},"boolean → Boolean",[24,109884,109885],{},"char → Character",[24,109887,109888],{},"byte → Byte, short → Short, float → Float, long → Long",[414,109890,109891],{},[42,109892,8902],{},[4647,109894,109896],{"className":78931,"code":109895,"language":78933,"meta":269,"style":269},"import java.util.ArrayList;\npublic class WrapperBeispiel {\n    public static void main(String[] args) {\n        \u002F\u002F 1. Parsing (String in Zahl umwandeln - sehr wichtig für GUI-Textfelder!)\n        String eingabe = \"123\";\n        int zahl = Integer.parseInt(eingabe); \u002F\u002F String zu int\n        double kommazahl = Double.parseDouble(\"45.67\"); \u002F\u002F String zu double\n        \u002F\u002F 2. Autoboxing (Primitiver Typ wird automatisch zum Objekt)\n        Integer objZahl = 5;\n        \u002F\u002F Unboxing (Objekt wird automatisch zum primitiven Typ)\n        int primitiveZahl = objZahl;\n        \u002F\u002F 3. Verwendung in Collections (List\u003Cint> geht NICHT!)\n        ArrayList \u003C Integer > zahlenListe = new ArrayList \u003C > ();\n        zahlenListe.add(10); \u002F\u002F Autoboxing greift hier\n        \u002F\u002F 4. Konstanten nutzen\n        System.out.println(\"Maximaler int-Wert: \" + Integer.MAX_VALUE);\n    }\n}\n\n",[4653,109897,109898,109905,109916,109936,109941,109953,109973,109998,110003,110014,110019,110031,110036,110053,110069,110074,110090,110094],{"__ignoreMap":269},[4173,109899,109900,109902],{"class":4657,"line":4658},[4173,109901,79019],{"class":4788},[4173,109903,109904],{"class":4784}," java.util.ArrayList;\n",[4173,109906,109907,109909,109911,109914],{"class":4657,"line":270},[4173,109908,79889],{"class":4788},[4173,109910,80062],{"class":4788},[4173,109912,109913],{"class":4661}," WrapperBeispiel",[4173,109915,51614],{"class":4784},[4173,109917,109918,109920,109922,109924,109926,109928,109930,109932,109934],{"class":4657,"line":1263},[4173,109919,100265],{"class":4788},[4173,109921,79892],{"class":4788},[4173,109923,79934],{"class":4788},[4173,109925,79937],{"class":4661},[4173,109927,6390],{"class":4784},[4173,109929,79693],{"class":4788},[4173,109931,80084],{"class":4784},[4173,109933,31283],{"class":7074},[4173,109935,56319],{"class":4784},[4173,109937,109938],{"class":4657,"line":4770},[4173,109939,109940],{"class":4766},"        \u002F\u002F 1. Parsing (String in Zahl umwandeln - sehr wichtig für GUI-Textfelder!)\n",[4173,109942,109943,109946,109948,109951],{"class":4657,"line":4775},[4173,109944,109945],{"class":4784},"        String eingabe ",[4173,109947,6387],{"class":4788},[4173,109949,109950],{"class":4669}," \"123\"",[4173,109952,55559],{"class":4784},[4173,109954,109955,109957,109959,109961,109964,109967,109970],{"class":4657,"line":6320},[4173,109956,104299],{"class":4788},[4173,109958,49689],{"class":4784},[4173,109960,6387],{"class":4788},[4173,109962,109963],{"class":4784}," Integer.",[4173,109965,109966],{"class":4661},"parseInt",[4173,109968,109969],{"class":4784},"(eingabe); ",[4173,109971,109972],{"class":4766},"\u002F\u002F String zu int\n",[4173,109974,109975,109977,109980,109982,109985,109988,109990,109993,109995],{"class":4657,"line":6325},[4173,109976,109664],{"class":4788},[4173,109978,109979],{"class":4784}," kommazahl ",[4173,109981,6387],{"class":4788},[4173,109983,109984],{"class":4784}," Double.",[4173,109986,109987],{"class":4661},"parseDouble",[4173,109989,6390],{"class":4784},[4173,109991,109992],{"class":4669},"\"45.67\"",[4173,109994,79107],{"class":4784},[4173,109996,109997],{"class":4766},"\u002F\u002F String zu double\n",[4173,109999,110000],{"class":4657,"line":6343},[4173,110001,110002],{"class":4766},"        \u002F\u002F 2. Autoboxing (Primitiver Typ wird automatisch zum Objekt)\n",[4173,110004,110005,110008,110010,110012],{"class":4657,"line":6348},[4173,110006,110007],{"class":4784},"        Integer objZahl ",[4173,110009,6387],{"class":4788},[4173,110011,16450],{"class":4665},[4173,110013,55559],{"class":4784},[4173,110015,110016],{"class":4657,"line":6457},[4173,110017,110018],{"class":4766},"        \u002F\u002F Unboxing (Objekt wird automatisch zum primitiven Typ)\n",[4173,110020,110021,110023,110026,110028],{"class":4657,"line":6462},[4173,110022,104299],{"class":4788},[4173,110024,110025],{"class":4784}," primitiveZahl ",[4173,110027,6387],{"class":4788},[4173,110029,110030],{"class":4784}," objZahl;\n",[4173,110032,110033],{"class":4657,"line":6468},[4173,110034,110035],{"class":4766},"        \u002F\u002F 3. Verwendung in Collections (List\u003Cint> geht NICHT!)\n",[4173,110037,110038,110041,110043,110046,110048,110050],{"class":4657,"line":6473},[4173,110039,110040],{"class":4784},"        ArrayList \u003C ",[4173,110042,89965],{"class":4788},[4173,110044,110045],{"class":4784}," > zahlenListe ",[4173,110047,6387],{"class":4788},[4173,110049,79032],{"class":4788},[4173,110051,110052],{"class":4784}," ArrayList \u003C > ();\n",[4173,110054,110055,110058,110060,110062,110064,110066],{"class":4657,"line":6479},[4173,110056,110057],{"class":4784},"        zahlenListe.",[4173,110059,79955],{"class":4661},[4173,110061,6390],{"class":4784},[4173,110063,81676],{"class":4665},[4173,110065,79107],{"class":4784},[4173,110067,110068],{"class":4766},"\u002F\u002F Autoboxing greift hier\n",[4173,110070,110071],{"class":4657,"line":6503},[4173,110072,110073],{"class":4766},"        \u002F\u002F 4. Konstanten nutzen\n",[4173,110075,110076,110078,110080,110082,110085,110087],{"class":4657,"line":6516},[4173,110077,100097],{"class":4784},[4173,110079,79074],{"class":4661},[4173,110081,6390],{"class":4784},[4173,110083,110084],{"class":4669},"\"Maximaler int-Wert: \"",[4173,110086,11719],{"class":4788},[4173,110088,110089],{"class":4784}," Integer.MAX_VALUE);\n",[4173,110091,110092],{"class":4657,"line":6971},[4173,110093,100385],{"class":4784},[4173,110095,110096],{"class":4657,"line":10649},[4173,110097,7090],{"class":4784},[414,110099,110100],{},[42,110101,109820],{},[21,110103,110104,110110,110116],{},[24,110105,110106,110109],{},[42,110107,110108],{},"NullPointerException:"," Im Gegensatz zu primitiven Typen (die einen Standardwert wie 0 haben), können Wrapper-Objekte null sein. Ein unbedachtes Unboxing eines null-Wertes führt zum Programmabsturz.",[24,110111,110112,110115],{},[42,110113,110114],{},"Speicher:"," Wrapper-Objekte verbrauchen mehr Speicher und Rechenzeit als primitive Datentypen.",[24,110117,110118,110121,110122,110124],{},[42,110119,110120],{},"Vergleich:"," Objekte (also auch Wrapper) ab dem Wert 128 immer mit .equals() vergleichen, ",[42,110123,68011],{}," mit ==!",[11,110126,110128],{"id":110127},"date-calendar-sowie-simpledateformat","Date & Calendar (sowie SimpleDateFormat)",[414,110130,110131],{},[42,110132,109598],{},[21,110134,110135,110138,110141,110144],{},[24,110136,110137],{},"java.util.Date: Repräsentiert einen genauen Zeitpunkt (Datum + Uhrzeit).",[24,110139,110140],{},"java.util.Calendar: Hilfsklasse, um mit Daten zu rechnen (Tage addieren\u002Fsubtrahieren, bestimmte Felder wie den Monat auslesen).",[24,110142,110143],{},"java.text.SimpleDateFormat: Wird genutzt, um Date-Objekte in lesbare Strings zu verwandeln (und umgekehrt).",[24,110145,110146,110149],{},[406,110147,110148],{},"(Hinweis: Seit Java 8 gibt es die moderne API java.time."," wie LocalDate. In Prüfungen wird aber oft noch explizit nach den alten Klassen Date\u002FCalendar gefragt).*",[414,110151,110152],{},[42,110153,8902],{},[4647,110155,110157],{"className":78931,"code":110156,"language":78933,"meta":269,"style":269},"import java.util.Date;\nimport java.util.Calendar;\nimport java.text.SimpleDateFormat;\npublic class DateCalendarBeispiel {\n    public static void main(String[] args) throws Exception {\n        \u002F\u002F 1. Aktuelles Datum ausgeben\n        Date heute = new Date();\n        System.out.println(\"Rohformat: \" + heute);\n        \u002F\u002F 2. Datum formatieren (SimpleDateFormat)\n        SimpleDateFormat sdf = new SimpleDateFormat(\"dd.MM.yyyy HH:mm:ss\");\n        String formatiert = sdf.format(heute);\n        System.out.println(\"Formatiert: \" + formatiert); \u002F\u002F z.B. 23.05.2026 14:30:00\n        \u002F\u002F 3. String in Datum umwandeln (Parsen) - wirft evtl. ParseException\n        String datumString = \"24.12.2026\";\n        SimpleDateFormat sdf2 = new SimpleDateFormat(\"dd.MM.yyyy\");\n        Date weihnachten = sdf2.parse(datumString);\n        \u002F\u002F 4. Mit Calendar rechnen\n        Calendar cal = Calendar.getInstance(); \u002F\u002F Erstellt Kalender mit aktuellem Datum\n        cal.setTime(heute); \u002F\u002F Setzt den Kalender auf ein bestimmtes Date\n        \u002F\u002F 5 Tage in die Zukunft springen\n        cal.add(Calendar.DAY_OF_MONTH, 5);\n        \u002F\u002F 1 Monat abziehen\n        cal.add(Calendar.MONTH, -1);\n        \u002F\u002F Zurück in ein Date-Objekt wandeln, um es auszugeben\n        Date neuesDatum = cal.getTime();\n        System.out.println(\"Neues Datum: \" + sdf.format(neuesDatum));\n    }\n}\n\n",[4653,110158,110159,110166,110173,110180,110191,110215,110220,110233,110248,110253,110272,110287,110306,110311,110323,110341,110357,110362,110380,110394,110399,110412,110417,110432,110437,110452,110472,110476],{"__ignoreMap":269},[4173,110160,110161,110163],{"class":4657,"line":4658},[4173,110162,79019],{"class":4788},[4173,110164,110165],{"class":4784}," java.util.Date;\n",[4173,110167,110168,110170],{"class":4657,"line":270},[4173,110169,79019],{"class":4788},[4173,110171,110172],{"class":4784}," java.util.Calendar;\n",[4173,110174,110175,110177],{"class":4657,"line":1263},[4173,110176,79019],{"class":4788},[4173,110178,110179],{"class":4784}," java.text.SimpleDateFormat;\n",[4173,110181,110182,110184,110186,110189],{"class":4657,"line":4770},[4173,110183,79889],{"class":4788},[4173,110185,80062],{"class":4788},[4173,110187,110188],{"class":4661}," DateCalendarBeispiel",[4173,110190,51614],{"class":4784},[4173,110192,110193,110195,110197,110199,110201,110203,110205,110207,110209,110211,110213],{"class":4657,"line":4775},[4173,110194,100265],{"class":4788},[4173,110196,79892],{"class":4788},[4173,110198,79934],{"class":4788},[4173,110200,79937],{"class":4661},[4173,110202,6390],{"class":4784},[4173,110204,79693],{"class":4788},[4173,110206,80084],{"class":4784},[4173,110208,31283],{"class":7074},[4173,110210,6306],{"class":4784},[4173,110212,86035],{"class":4788},[4173,110214,96264],{"class":4784},[4173,110216,110217],{"class":4657,"line":6320},[4173,110218,110219],{"class":4766},"        \u002F\u002F 1. Aktuelles Datum ausgeben\n",[4173,110221,110222,110225,110227,110229,110231],{"class":4657,"line":6325},[4173,110223,110224],{"class":4784},"        Date heute ",[4173,110226,6387],{"class":4788},[4173,110228,79032],{"class":4788},[4173,110230,98758],{"class":4661},[4173,110232,65878],{"class":4784},[4173,110234,110235,110237,110239,110241,110244,110246],{"class":4657,"line":6343},[4173,110236,100097],{"class":4784},[4173,110238,79074],{"class":4661},[4173,110240,6390],{"class":4784},[4173,110242,110243],{"class":4669},"\"Rohformat: \"",[4173,110245,11719],{"class":4788},[4173,110247,90196],{"class":4784},[4173,110249,110250],{"class":4657,"line":6348},[4173,110251,110252],{"class":4766},"        \u002F\u002F 2. Datum formatieren (SimpleDateFormat)\n",[4173,110254,110255,110258,110260,110262,110265,110267,110270],{"class":4657,"line":6457},[4173,110256,110257],{"class":4784},"        SimpleDateFormat sdf ",[4173,110259,6387],{"class":4788},[4173,110261,79032],{"class":4788},[4173,110263,110264],{"class":4661}," SimpleDateFormat",[4173,110266,6390],{"class":4784},[4173,110268,110269],{"class":4669},"\"dd.MM.yyyy HH:mm:ss\"",[4173,110271,55545],{"class":4784},[4173,110273,110274,110277,110279,110282,110284],{"class":4657,"line":6462},[4173,110275,110276],{"class":4784},"        String formatiert ",[4173,110278,6387],{"class":4788},[4173,110280,110281],{"class":4784}," sdf.",[4173,110283,88760],{"class":4661},[4173,110285,110286],{"class":4784},"(heute);\n",[4173,110288,110289,110291,110293,110295,110298,110300,110303],{"class":4657,"line":6468},[4173,110290,100097],{"class":4784},[4173,110292,79074],{"class":4661},[4173,110294,6390],{"class":4784},[4173,110296,110297],{"class":4669},"\"Formatiert: \"",[4173,110299,11719],{"class":4788},[4173,110301,110302],{"class":4784}," formatiert); ",[4173,110304,110305],{"class":4766},"\u002F\u002F z.B. 23.05.2026 14:30:00\n",[4173,110307,110308],{"class":4657,"line":6473},[4173,110309,110310],{"class":4766},"        \u002F\u002F 3. String in Datum umwandeln (Parsen) - wirft evtl. ParseException\n",[4173,110312,110313,110316,110318,110321],{"class":4657,"line":6479},[4173,110314,110315],{"class":4784},"        String datumString ",[4173,110317,6387],{"class":4788},[4173,110319,110320],{"class":4669}," \"24.12.2026\"",[4173,110322,55559],{"class":4784},[4173,110324,110325,110328,110330,110332,110334,110336,110339],{"class":4657,"line":6503},[4173,110326,110327],{"class":4784},"        SimpleDateFormat sdf2 ",[4173,110329,6387],{"class":4788},[4173,110331,79032],{"class":4788},[4173,110333,110264],{"class":4661},[4173,110335,6390],{"class":4784},[4173,110337,110338],{"class":4669},"\"dd.MM.yyyy\"",[4173,110340,55545],{"class":4784},[4173,110342,110343,110346,110348,110351,110354],{"class":4657,"line":6516},[4173,110344,110345],{"class":4784},"        Date weihnachten ",[4173,110347,6387],{"class":4788},[4173,110349,110350],{"class":4784}," sdf2.",[4173,110352,110353],{"class":4661},"parse",[4173,110355,110356],{"class":4784},"(datumString);\n",[4173,110358,110359],{"class":4657,"line":6971},[4173,110360,110361],{"class":4766},"        \u002F\u002F 4. Mit Calendar rechnen\n",[4173,110363,110364,110367,110369,110372,110375,110377],{"class":4657,"line":10649},[4173,110365,110366],{"class":4784},"        Calendar cal ",[4173,110368,6387],{"class":4788},[4173,110370,110371],{"class":4784}," Calendar.",[4173,110373,110374],{"class":4661},"getInstance",[4173,110376,94867],{"class":4784},[4173,110378,110379],{"class":4766},"\u002F\u002F Erstellt Kalender mit aktuellem Datum\n",[4173,110381,110382,110385,110388,110391],{"class":4657,"line":10654},[4173,110383,110384],{"class":4784},"        cal.",[4173,110386,110387],{"class":4661},"setTime",[4173,110389,110390],{"class":4784},"(heute); ",[4173,110392,110393],{"class":4766},"\u002F\u002F Setzt den Kalender auf ein bestimmtes Date\n",[4173,110395,110396],{"class":4657,"line":10659},[4173,110397,110398],{"class":4766},"        \u002F\u002F 5 Tage in die Zukunft springen\n",[4173,110400,110401,110403,110405,110408,110410],{"class":4657,"line":10664},[4173,110402,110384],{"class":4784},[4173,110404,79955],{"class":4661},[4173,110406,110407],{"class":4784},"(Calendar.DAY_OF_MONTH, ",[4173,110409,14292],{"class":4665},[4173,110411,55545],{"class":4784},[4173,110413,110414],{"class":4657,"line":10676},[4173,110415,110416],{"class":4766},"        \u002F\u002F 1 Monat abziehen\n",[4173,110418,110419,110421,110423,110426,110428,110430],{"class":4657,"line":10681},[4173,110420,110384],{"class":4784},[4173,110422,79955],{"class":4661},[4173,110424,110425],{"class":4784},"(Calendar.MONTH, ",[4173,110427,4778],{"class":4788},[4173,110429,14223],{"class":4665},[4173,110431,55545],{"class":4784},[4173,110433,110434],{"class":4657,"line":10702},[4173,110435,110436],{"class":4766},"        \u002F\u002F Zurück in ein Date-Objekt wandeln, um es auszugeben\n",[4173,110438,110439,110442,110444,110447,110450],{"class":4657,"line":10707},[4173,110440,110441],{"class":4784},"        Date neuesDatum ",[4173,110443,6387],{"class":4788},[4173,110445,110446],{"class":4784}," cal.",[4173,110448,110449],{"class":4661},"getTime",[4173,110451,65878],{"class":4784},[4173,110453,110454,110456,110458,110460,110463,110465,110467,110469],{"class":4657,"line":10712},[4173,110455,100097],{"class":4784},[4173,110457,79074],{"class":4661},[4173,110459,6390],{"class":4784},[4173,110461,110462],{"class":4669},"\"Neues Datum: \"",[4173,110464,11719],{"class":4788},[4173,110466,110281],{"class":4784},[4173,110468,88760],{"class":4661},[4173,110470,110471],{"class":4784},"(neuesDatum));\n",[4173,110473,110474],{"class":4657,"line":10717},[4173,110475,100385],{"class":4784},[4173,110477,110478],{"class":4657,"line":10727},[4173,110479,7090],{"class":4784},[414,110481,110482],{},[42,110483,109820],{},[21,110485,110486,110492,110502],{},[24,110487,110488,110491],{},[42,110489,110490],{},"Die Monats-Falle (VORSICHT!):"," In der Klasse Calendar beginnen die Monate bei Index 0! Januar = 0, Februar = 1, ..., Dezember = 11. Das ist eine der häufigsten Fehlerquellen in Prüfungen! Tage beginnen jedoch normal bei 1.",[24,110493,110494,110497,110498,110501],{},[42,110495,110496],{},"Veraltet (Deprecated):"," Fast alle direkten Getter\u002FSetter-Methoden der Date-Klasse (wie heute.getYear()) sind veraltet. Man ",[42,110499,110500],{},"muss"," den Calendar nutzen, um Datumswerte auszulesen oder zu verändern.",[24,110503,110504,110507],{},[42,110505,110506],{},"SimpleDateFormat Pattern:"," Groß- und Kleinschreibung ist entscheidend! MM ist der Monat, mm ist die Minute. HH ist die Stunde im 24h-Format, hh im 12h-Format.",[11,110509,89299],{"id":89298},[4647,110511,110513],{"className":78931,"code":110512,"language":78933,"meta":269,"style":269},"import java.util.*;\npublic class SetDemo {\n    \u002F\u002F Enum für EnumSet-Beispiel\n    enum Wochentag { MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG }\n    public static void main(String[] args) {\n        \u002F\u002F ========================\n\n",[4653,110514,110515,110525,110535,110540,110569,110589],{"__ignoreMap":269},[4173,110516,110517,110519,110521,110523],{"class":4657,"line":4658},[4173,110518,79019],{"class":4788},[4173,110520,89311],{"class":4784},[4173,110522,6328],{"class":4665},[4173,110524,55559],{"class":4784},[4173,110526,110527,110529,110531,110533],{"class":4657,"line":270},[4173,110528,79889],{"class":4788},[4173,110530,80062],{"class":4788},[4173,110532,89324],{"class":4661},[4173,110534,51614],{"class":4784},[4173,110536,110537],{"class":4657,"line":1263},[4173,110538,110539],{"class":4766},"    \u002F\u002F Enum für EnumSet-Beispiel\n",[4173,110541,110542,110545,110547,110549,110551,110553,110555,110557,110559,110561,110563,110565,110567],{"class":4657,"line":4770},[4173,110543,110544],{"class":4788},"    enum",[4173,110546,89339],{"class":4661},[4173,110548,82241],{"class":4784},[4173,110550,89344],{"class":4665},[4173,110552,8629],{"class":4784},[4173,110554,89349],{"class":4665},[4173,110556,8629],{"class":4784},[4173,110558,89354],{"class":4665},[4173,110560,8629],{"class":4784},[4173,110562,89359],{"class":4665},[4173,110564,8629],{"class":4784},[4173,110566,89364],{"class":4665},[4173,110568,89367],{"class":4784},[4173,110570,110571,110573,110575,110577,110579,110581,110583,110585,110587],{"class":4657,"line":4775},[4173,110572,100265],{"class":4788},[4173,110574,79892],{"class":4788},[4173,110576,79934],{"class":4788},[4173,110578,79937],{"class":4661},[4173,110580,6390],{"class":4784},[4173,110582,79693],{"class":4788},[4173,110584,80084],{"class":4784},[4173,110586,31283],{"class":7074},[4173,110588,56319],{"class":4784},[4173,110590,110591],{"class":4657,"line":6320},[4173,110592,110593],{"class":4766},"        \u002F\u002F ========================\n",[16,110595,110597],{"id":110596},"hashset","\u002F\u002F HashSet",[4647,110599,110601],{"className":78931,"code":110600,"language":78933,"meta":269,"style":269},"        \u002F\u002F ========================\n        Set\u003CString> hashSet = new HashSet\u003C>();\n        hashSet.add(\"Apfel\");\n        hashSet.add(\"Banane\");\n        hashSet.add(\"Kiwi\");\n        hashSet.add(\"Banane\"); \u002F\u002F Duplikate werden ignoriert\n        System.out.println(\"HashSet (ungeordnet): \" + hashSet);\n        \u002F\u002F ========================\n\n",[4653,110602,110603,110607,110622,110635,110647,110659,110673,110687],{"__ignoreMap":269},[4173,110604,110605],{"class":4657,"line":4658},[4173,110606,110593],{"class":4766},[4173,110608,110609,110612,110614,110616,110618,110620],{"class":4657,"line":270},[4173,110610,110611],{"class":4784},"        Set\u003C",[4173,110613,79693],{"class":4788},[4173,110615,89415],{"class":4784},[4173,110617,6387],{"class":4788},[4173,110619,79032],{"class":4788},[4173,110621,89422],{"class":4784},[4173,110623,110624,110627,110629,110631,110633],{"class":4657,"line":1263},[4173,110625,110626],{"class":4784},"        hashSet.",[4173,110628,79955],{"class":4661},[4173,110630,6390],{"class":4784},[4173,110632,89434],{"class":4669},[4173,110634,55545],{"class":4784},[4173,110636,110637,110639,110641,110643,110645],{"class":4657,"line":4770},[4173,110638,110626],{"class":4784},[4173,110640,79955],{"class":4661},[4173,110642,6390],{"class":4784},[4173,110644,89447],{"class":4669},[4173,110646,55545],{"class":4784},[4173,110648,110649,110651,110653,110655,110657],{"class":4657,"line":4775},[4173,110650,110626],{"class":4784},[4173,110652,79955],{"class":4661},[4173,110654,6390],{"class":4784},[4173,110656,89460],{"class":4669},[4173,110658,55545],{"class":4784},[4173,110660,110661,110663,110665,110667,110669,110671],{"class":4657,"line":6320},[4173,110662,110626],{"class":4784},[4173,110664,79955],{"class":4661},[4173,110666,6390],{"class":4784},[4173,110668,89447],{"class":4669},[4173,110670,79107],{"class":4784},[4173,110672,89477],{"class":4766},[4173,110674,110675,110677,110679,110681,110683,110685],{"class":4657,"line":6325},[4173,110676,100097],{"class":4784},[4173,110678,79074],{"class":4661},[4173,110680,6390],{"class":4784},[4173,110682,89488],{"class":4669},[4173,110684,11719],{"class":4788},[4173,110686,89493],{"class":4784},[4173,110688,110689],{"class":4657,"line":6343},[4173,110690,110593],{"class":4766},[16,110692,110694],{"id":110693},"treeset","\u002F\u002F TreeSet",[4647,110696,110698],{"className":78931,"code":110697,"language":78933,"meta":269,"style":269},"        \u002F\u002F ========================\n        Set\u003CString> treeSet = new TreeSet\u003C>(hashSet); \u002F\u002F automatisch sortiert\n        treeSet.add(\"Orange\");\n        System.out.println(\"TreeSet (sortiert): \" + treeSet);\n        \u002F\u002F ========================\n\n",[4653,110699,110700,110704,110720,110733,110747],{"__ignoreMap":269},[4173,110701,110702],{"class":4657,"line":4658},[4173,110703,110593],{"class":4766},[4173,110705,110706,110708,110710,110712,110714,110716,110718],{"class":4657,"line":270},[4173,110707,110611],{"class":4784},[4173,110709,79693],{"class":4788},[4173,110711,89519],{"class":4784},[4173,110713,6387],{"class":4788},[4173,110715,79032],{"class":4788},[4173,110717,89526],{"class":4784},[4173,110719,89529],{"class":4766},[4173,110721,110722,110725,110727,110729,110731],{"class":4657,"line":1263},[4173,110723,110724],{"class":4784},"        treeSet.",[4173,110726,79955],{"class":4661},[4173,110728,6390],{"class":4784},[4173,110730,89541],{"class":4669},[4173,110732,55545],{"class":4784},[4173,110734,110735,110737,110739,110741,110743,110745],{"class":4657,"line":4770},[4173,110736,100097],{"class":4784},[4173,110738,79074],{"class":4661},[4173,110740,6390],{"class":4784},[4173,110742,89554],{"class":4669},[4173,110744,11719],{"class":4788},[4173,110746,89559],{"class":4784},[4173,110748,110749],{"class":4657,"line":4775},[4173,110750,110593],{"class":4766},[16,110752,89567],{"id":89566},[4647,110754,110756],{"className":78931,"code":110755,"language":78933,"meta":269,"style":269},"        \u002F\u002F 3. Collections.unmodifiableSet\n        \u002F\u002F ========================\n        Set\u003CString> readOnlySet = Collections.unmodifiableSet(treeSet);\n        System.out.println(\"UnmodifiableSet: \" + readOnlySet);\n        \u002F\u002F readOnlySet.add(\"Traube\"); \u002F\u002F ❌ führt zu RuntimeException\n        \u002F\u002F ========================\n\n",[4653,110757,110758,110763,110767,110783,110797,110804],{"__ignoreMap":269},[4173,110759,110760],{"class":4657,"line":4658},[4173,110761,110762],{"class":4766},"        \u002F\u002F 3. Collections.unmodifiableSet\n",[4173,110764,110765],{"class":4657,"line":270},[4173,110766,110593],{"class":4766},[4173,110768,110769,110771,110773,110775,110777,110779,110781],{"class":4657,"line":1263},[4173,110770,110611],{"class":4784},[4173,110772,79693],{"class":4788},[4173,110774,89590],{"class":4784},[4173,110776,6387],{"class":4788},[4173,110778,89595],{"class":4784},[4173,110780,89598],{"class":4661},[4173,110782,89601],{"class":4784},[4173,110784,110785,110787,110789,110791,110793,110795],{"class":4657,"line":4770},[4173,110786,100097],{"class":4784},[4173,110788,79074],{"class":4661},[4173,110790,6390],{"class":4784},[4173,110792,89612],{"class":4669},[4173,110794,11719],{"class":4788},[4173,110796,89617],{"class":4784},[4173,110798,110799,110802],{"class":4657,"line":4775},[4173,110800,110801],{"class":4766},"        \u002F\u002F readOnlySet.add(\"Traube\");",[4173,110803,89625],{"class":4766},[4173,110805,110806],{"class":4657,"line":6320},[4173,110807,110593],{"class":4766},[16,110809,110811],{"id":110810},"enumset","\u002F\u002F EnumSet",[4647,110813,110815],{"className":78931,"code":110814,"language":78933,"meta":269,"style":269},"        \u002F\u002F ========================\n        EnumSet\u003CWochentag> arbeitstage = EnumSet.of(Wochentag.MONTAG, Wochentag.DIENSTAG,\nWochentag.FREITAG);\n        System.out.println(\"EnumSet Arbeitstage: \" + arbeitstage);\n        \u002F\u002F ========================\n        \u002F\u002F Methoden-Demo\n        \u002F\u002F ========================\n        System.out.println(\"\\nTreeSet enthält 'Kiwi'? \" + treeSet.contains(\"Kiwi\"));\n        System.out.println(\"HashSet Größe: \" + hashSet.size());\n        treeSet.remove(\"Orange\");\n        System.out.println(\"TreeSet nach remove: \" + treeSet);\n        System.out.println(\"\\nIterieren über EnumSet:\");\n        for (Wochentag tag : arbeitstage) {\n            System.out.println(\" - \" + tag);\n        }\n    }\n}\n\n",[4653,110816,110817,110821,110839,110844,110858,110862,110867,110871,110898,110916,110928,110942,110958,110968,110982,110986,110990],{"__ignoreMap":269},[4173,110818,110819],{"class":4657,"line":4658},[4173,110820,110593],{"class":4766},[4173,110822,110823,110826,110828,110830,110832,110834,110836],{"class":4657,"line":270},[4173,110824,110825],{"class":4784},"        EnumSet\u003C",[4173,110827,89646],{"class":4788},[4173,110829,89649],{"class":4784},[4173,110831,6387],{"class":4788},[4173,110833,89654],{"class":4784},[4173,110835,89657],{"class":4661},[4173,110837,110838],{"class":4784},"(Wochentag.MONTAG, Wochentag.DIENSTAG,\n",[4173,110840,110841],{"class":4657,"line":1263},[4173,110842,110843],{"class":4784},"Wochentag.FREITAG);\n",[4173,110845,110846,110848,110850,110852,110854,110856],{"class":4657,"line":4770},[4173,110847,100097],{"class":4784},[4173,110849,79074],{"class":4661},[4173,110851,6390],{"class":4784},[4173,110853,89676],{"class":4669},[4173,110855,11719],{"class":4788},[4173,110857,89681],{"class":4784},[4173,110859,110860],{"class":4657,"line":4775},[4173,110861,110593],{"class":4766},[4173,110863,110864],{"class":4657,"line":6320},[4173,110865,110866],{"class":4766},"        \u002F\u002F Methoden-Demo\n",[4173,110868,110869],{"class":4657,"line":6325},[4173,110870,110593],{"class":4766},[4173,110872,110873,110875,110877,110879,110881,110883,110885,110887,110890,110892,110894,110896],{"class":4657,"line":6343},[4173,110874,100097],{"class":4784},[4173,110876,79074],{"class":4661},[4173,110878,6390],{"class":4784},[4173,110880,6207],{"class":4669},[4173,110882,83928],{"class":4665},[4173,110884,89709],{"class":4669},[4173,110886,11719],{"class":4788},[4173,110888,110889],{"class":4784}," treeSet.",[4173,110891,87222],{"class":4661},[4173,110893,6390],{"class":4784},[4173,110895,89460],{"class":4669},[4173,110897,66047],{"class":4784},[4173,110899,110900,110902,110904,110906,110908,110910,110912,110914],{"class":4657,"line":6348},[4173,110901,100097],{"class":4784},[4173,110903,79074],{"class":4661},[4173,110905,6390],{"class":4784},[4173,110907,89734],{"class":4669},[4173,110909,11719],{"class":4788},[4173,110911,89739],{"class":4784},[4173,110913,10603],{"class":4661},[4173,110915,81860],{"class":4784},[4173,110917,110918,110920,110922,110924,110926],{"class":4657,"line":6457},[4173,110919,110724],{"class":4784},[4173,110921,89750],{"class":4661},[4173,110923,6390],{"class":4784},[4173,110925,89541],{"class":4669},[4173,110927,55545],{"class":4784},[4173,110929,110930,110932,110934,110936,110938,110940],{"class":4657,"line":6462},[4173,110931,100097],{"class":4784},[4173,110933,79074],{"class":4661},[4173,110935,6390],{"class":4784},[4173,110937,89767],{"class":4669},[4173,110939,11719],{"class":4788},[4173,110941,89559],{"class":4784},[4173,110943,110944,110946,110948,110950,110952,110954,110956],{"class":4657,"line":6468},[4173,110945,100097],{"class":4784},[4173,110947,79074],{"class":4661},[4173,110949,6390],{"class":4784},[4173,110951,6207],{"class":4669},[4173,110953,83928],{"class":4665},[4173,110955,89786],{"class":4669},[4173,110957,55545],{"class":4784},[4173,110959,110960,110962,110964,110966],{"class":4657,"line":6473},[4173,110961,100110],{"class":4788},[4173,110963,89795],{"class":4784},[4173,110965,8158],{"class":4788},[4173,110967,89800],{"class":4784},[4173,110969,110970,110972,110974,110976,110978,110980],{"class":4657,"line":6479},[4173,110971,100121],{"class":4784},[4173,110973,79074],{"class":4661},[4173,110975,6390],{"class":4784},[4173,110977,89811],{"class":4669},[4173,110979,11719],{"class":4788},[4173,110981,89816],{"class":4784},[4173,110983,110984],{"class":4657,"line":6503},[4173,110985,100145],{"class":4784},[4173,110987,110988],{"class":4657,"line":6516},[4173,110989,100385],{"class":4784},[4173,110991,110992],{"class":4657,"line":6971},[4173,110993,7090],{"class":4784},[11,110995,89832],{"id":89831},[4647,110997,110999],{"className":78931,"code":110998,"language":78933,"meta":269,"style":269},"\u002F\u002F Generische Klasse\nclass Box\u003CT> {\n    private T inhalt;\n    public void setInhalt(T inhalt) {\n        this.inhalt = inhalt;\n    }\n    public T getInhalt() {\n        return inhalt;\n    }\n}\npublic class GenericsBeispiel {\n    public static void main(String[] args) {\n        \u002F\u002F Box für Integer\n        Box\u003CInteger> intBox = new Box\u003C>();\n        intBox.setInhalt(123);\n        System.out.println(\"Integer in Box: \" + intBox.getInhalt());\n        \u002F\u002F Box für String\n        Box\u003CString> stringBox = new Box\u003C>();\n        stringBox.setInhalt(\"Hallo Welt\");\n        System.out.println(\"String in Box: \" + stringBox.getInhalt());\n    }\n}\n\n",[4653,111000,111001,111005,111017,111023,111037,111047,111051,111061,111067,111071,111075,111085,111105,111110,111125,111138,111156,111161,111175,111188,111206,111210],{"__ignoreMap":269},[4173,111002,111003],{"class":4657,"line":4658},[4173,111004,89842],{"class":4766},[4173,111006,111007,111009,111011,111013,111015],{"class":4657,"line":270},[4173,111008,79983],{"class":4788},[4173,111010,89849],{"class":4661},[4173,111012,24345],{"class":4784},[4173,111014,15453],{"class":4788},[4173,111016,89856],{"class":4784},[4173,111018,111019,111021],{"class":4657,"line":1263},[4173,111020,100507],{"class":4788},[4173,111022,89863],{"class":4784},[4173,111024,111025,111027,111029,111031,111033,111035],{"class":4657,"line":4770},[4173,111026,100265],{"class":4788},[4173,111028,79934],{"class":4788},[4173,111030,89872],{"class":4661},[4173,111032,89875],{"class":4784},[4173,111034,76174],{"class":7074},[4173,111036,56319],{"class":4784},[4173,111038,111039,111041,111043,111045],{"class":4657,"line":4775},[4173,111040,100374],{"class":4665},[4173,111042,89886],{"class":4784},[4173,111044,6387],{"class":4788},[4173,111046,89891],{"class":4784},[4173,111048,111049],{"class":4657,"line":6320},[4173,111050,100385],{"class":4784},[4173,111052,111053,111055,111057,111059],{"class":4657,"line":6325},[4173,111054,100265],{"class":4788},[4173,111056,89902],{"class":4784},[4173,111058,89905],{"class":4661},[4173,111060,7062],{"class":4784},[4173,111062,111063,111065],{"class":4657,"line":6343},[4173,111064,100584],{"class":4788},[4173,111066,89891],{"class":4784},[4173,111068,111069],{"class":4657,"line":6348},[4173,111070,100385],{"class":4784},[4173,111072,111073],{"class":4657,"line":6457},[4173,111074,7090],{"class":4784},[4173,111076,111077,111079,111081,111083],{"class":4657,"line":6462},[4173,111078,79889],{"class":4788},[4173,111080,80062],{"class":4788},[4173,111082,89930],{"class":4661},[4173,111084,51614],{"class":4784},[4173,111086,111087,111089,111091,111093,111095,111097,111099,111101,111103],{"class":4657,"line":6468},[4173,111088,100265],{"class":4788},[4173,111090,79892],{"class":4788},[4173,111092,79934],{"class":4788},[4173,111094,79937],{"class":4661},[4173,111096,6390],{"class":4784},[4173,111098,79693],{"class":4788},[4173,111100,80084],{"class":4784},[4173,111102,31283],{"class":7074},[4173,111104,56319],{"class":4784},[4173,111106,111107],{"class":4657,"line":6473},[4173,111108,111109],{"class":4766},"        \u002F\u002F Box für Integer\n",[4173,111111,111112,111115,111117,111119,111121,111123],{"class":4657,"line":6479},[4173,111113,111114],{"class":4784},"        Box\u003C",[4173,111116,89965],{"class":4788},[4173,111118,89968],{"class":4784},[4173,111120,6387],{"class":4788},[4173,111122,79032],{"class":4788},[4173,111124,89975],{"class":4784},[4173,111126,111127,111130,111132,111134,111136],{"class":4657,"line":6503},[4173,111128,111129],{"class":4784},"        intBox.",[4173,111131,89983],{"class":4661},[4173,111133,6390],{"class":4784},[4173,111135,18031],{"class":4665},[4173,111137,55545],{"class":4784},[4173,111139,111140,111142,111144,111146,111148,111150,111152,111154],{"class":4657,"line":6516},[4173,111141,100097],{"class":4784},[4173,111143,79074],{"class":4661},[4173,111145,6390],{"class":4784},[4173,111147,90000],{"class":4669},[4173,111149,11719],{"class":4788},[4173,111151,90005],{"class":4784},[4173,111153,89905],{"class":4661},[4173,111155,81860],{"class":4784},[4173,111157,111158],{"class":4657,"line":6971},[4173,111159,111160],{"class":4766},"        \u002F\u002F Box für String\n",[4173,111162,111163,111165,111167,111169,111171,111173],{"class":4657,"line":10649},[4173,111164,111114],{"class":4784},[4173,111166,79693],{"class":4788},[4173,111168,90023],{"class":4784},[4173,111170,6387],{"class":4788},[4173,111172,79032],{"class":4788},[4173,111174,89975],{"class":4784},[4173,111176,111177,111180,111182,111184,111186],{"class":4657,"line":10654},[4173,111178,111179],{"class":4784},"        stringBox.",[4173,111181,89983],{"class":4661},[4173,111183,6390],{"class":4784},[4173,111185,90041],{"class":4669},[4173,111187,55545],{"class":4784},[4173,111189,111190,111192,111194,111196,111198,111200,111202,111204],{"class":4657,"line":10659},[4173,111191,100097],{"class":4784},[4173,111193,79074],{"class":4661},[4173,111195,6390],{"class":4784},[4173,111197,90054],{"class":4669},[4173,111199,11719],{"class":4788},[4173,111201,90059],{"class":4784},[4173,111203,89905],{"class":4661},[4173,111205,81860],{"class":4784},[4173,111207,111208],{"class":4657,"line":10664},[4173,111209,100385],{"class":4784},[4173,111211,111212],{"class":4657,"line":10676},[4173,111213,7090],{"class":4784},[11,111215,90074],{"id":89336},[4647,111217,111219],{"className":78931,"code":111218,"language":78933,"meta":269,"style":269},"\u002F\u002F Definition des Enums\nenum Wochentag {\n    MONTAG,\n    DIENSTAG,\n    MITTWOCH,\n    DONNERSTAG,\n    FREITAG,\n    SAMSTAG,\n    SONNTAG\n}\npublic class EnumBeispiel {\n    public static void main(String[] args) {\n        \u002F\u002F Enum verwenden\n        Wochentag heute = Wochentag.MITTWOCH;\n        \u002F\u002F Ausgabe\n        System.out.println(\"Heute ist: \" + heute);\n        \u002F\u002F Enum in einer Schleife\n        System.out.println(\"Alle Wochentage:\");\n        for (Wochentag tag : Wochentag.values()) {\n            System.out.println(tag);\n        }\n        \u002F\u002F Enum mit Switch\n        switch (heute) {\n            case SAMSTAG, SONNTAG -> System.out.println(\"Es ist Wochenende!\");\n            default -> System.out.println(\"Es ist ein Arbeitstag.\");\n        }\n    }\n}\n\n",[4653,111220,111221,111225,111233,111240,111247,111254,111261,111268,111275,111280,111284,111294,111314,111319,111328,111333,111347,111352,111364,111378,111386,111390,111395,111401,111419,111435,111439,111443],{"__ignoreMap":269},[4173,111222,111223],{"class":4657,"line":4658},[4173,111224,90084],{"class":4766},[4173,111226,111227,111229,111231],{"class":4657,"line":270},[4173,111228,89336],{"class":4788},[4173,111230,89339],{"class":4661},[4173,111232,51614],{"class":4784},[4173,111234,111235,111238],{"class":4657,"line":1263},[4173,111236,111237],{"class":4665},"    MONTAG",[4173,111239,66026],{"class":4784},[4173,111241,111242,111245],{"class":4657,"line":4770},[4173,111243,111244],{"class":4665},"    DIENSTAG",[4173,111246,66026],{"class":4784},[4173,111248,111249,111252],{"class":4657,"line":4775},[4173,111250,111251],{"class":4665},"    MITTWOCH",[4173,111253,66026],{"class":4784},[4173,111255,111256,111259],{"class":4657,"line":6320},[4173,111257,111258],{"class":4665},"    DONNERSTAG",[4173,111260,66026],{"class":4784},[4173,111262,111263,111266],{"class":4657,"line":6325},[4173,111264,111265],{"class":4665},"    FREITAG",[4173,111267,66026],{"class":4784},[4173,111269,111270,111273],{"class":4657,"line":6343},[4173,111271,111272],{"class":4665},"    SAMSTAG",[4173,111274,66026],{"class":4784},[4173,111276,111277],{"class":4657,"line":6348},[4173,111278,111279],{"class":4665},"    SONNTAG\n",[4173,111281,111282],{"class":4657,"line":6457},[4173,111283,7090],{"class":4784},[4173,111285,111286,111288,111290,111292],{"class":4657,"line":6462},[4173,111287,79889],{"class":4788},[4173,111289,80062],{"class":4788},[4173,111291,90138],{"class":4661},[4173,111293,51614],{"class":4784},[4173,111295,111296,111298,111300,111302,111304,111306,111308,111310,111312],{"class":4657,"line":6468},[4173,111297,100265],{"class":4788},[4173,111299,79892],{"class":4788},[4173,111301,79934],{"class":4788},[4173,111303,79937],{"class":4661},[4173,111305,6390],{"class":4784},[4173,111307,79693],{"class":4788},[4173,111309,80084],{"class":4784},[4173,111311,31283],{"class":7074},[4173,111313,56319],{"class":4784},[4173,111315,111316],{"class":4657,"line":6473},[4173,111317,111318],{"class":4766},"        \u002F\u002F Enum verwenden\n",[4173,111320,111321,111324,111326],{"class":4657,"line":6479},[4173,111322,111323],{"class":4784},"        Wochentag heute ",[4173,111325,6387],{"class":4788},[4173,111327,90175],{"class":4784},[4173,111329,111330],{"class":4657,"line":6503},[4173,111331,111332],{"class":4766},"        \u002F\u002F Ausgabe\n",[4173,111334,111335,111337,111339,111341,111343,111345],{"class":4657,"line":6516},[4173,111336,100097],{"class":4784},[4173,111338,79074],{"class":4661},[4173,111340,6390],{"class":4784},[4173,111342,90191],{"class":4669},[4173,111344,11719],{"class":4788},[4173,111346,90196],{"class":4784},[4173,111348,111349],{"class":4657,"line":6971},[4173,111350,111351],{"class":4766},"        \u002F\u002F Enum in einer Schleife\n",[4173,111353,111354,111356,111358,111360,111362],{"class":4657,"line":10649},[4173,111355,100097],{"class":4784},[4173,111357,79074],{"class":4661},[4173,111359,6390],{"class":4784},[4173,111361,90212],{"class":4669},[4173,111363,55545],{"class":4784},[4173,111365,111366,111368,111370,111372,111374,111376],{"class":4657,"line":10654},[4173,111367,100110],{"class":4788},[4173,111369,89795],{"class":4784},[4173,111371,8158],{"class":4788},[4173,111373,90225],{"class":4784},[4173,111375,90228],{"class":4661},[4173,111377,85158],{"class":4784},[4173,111379,111380,111382,111384],{"class":4657,"line":10659},[4173,111381,100121],{"class":4784},[4173,111383,79074],{"class":4661},[4173,111385,90239],{"class":4784},[4173,111387,111388],{"class":4657,"line":10664},[4173,111389,100145],{"class":4784},[4173,111391,111392],{"class":4657,"line":10676},[4173,111393,111394],{"class":4766},"        \u002F\u002F Enum mit Switch\n",[4173,111396,111397,111399],{"class":4657,"line":10681},[4173,111398,105503],{"class":4788},[4173,111400,90255],{"class":4784},[4173,111402,111403,111405,111407,111409,111411,111413,111415,111417],{"class":4657,"line":10702},[4173,111404,99938],{"class":4788},[4173,111406,90262],{"class":4784},[4173,111408,81467],{"class":4788},[4173,111410,79550],{"class":4784},[4173,111412,79074],{"class":4661},[4173,111414,6390],{"class":4784},[4173,111416,90273],{"class":4669},[4173,111418,55545],{"class":4784},[4173,111420,111421,111423,111425,111427,111429,111431,111433],{"class":4657,"line":10707},[4173,111422,99993],{"class":4788},[4173,111424,79547],{"class":4788},[4173,111426,79550],{"class":4784},[4173,111428,79074],{"class":4661},[4173,111430,6390],{"class":4784},[4173,111432,90290],{"class":4669},[4173,111434,55545],{"class":4784},[4173,111436,111437],{"class":4657,"line":10712},[4173,111438,100145],{"class":4784},[4173,111440,111441],{"class":4657,"line":10717},[4173,111442,100385],{"class":4784},[4173,111444,111445],{"class":4657,"line":10727},[4173,111446,7090],{"class":4784},[11,111448,90308],{"id":90307},[4647,111450,111452],{"className":78931,"code":111451,"language":78933,"meta":269,"style":269},"\u002F\u002F GUI-Komponenten\nimport javax.swing.JFrame;       \u002F\u002F Hauptfenster\nimport javax.swing.JPanel;       \u002F\u002F Panel zur Gruppierung von Komponenten\nimport javax.swing.JButton;      \u002F\u002F Button\nimport javax.swing.JLabel;       \u002F\u002F Label\nimport javax.swing.JTextField;   \u002F\u002F Eingabefeld\nimport javax.swing.JFileChooser; \u002F\u002F Datei-Auswahldialog\nimport javax.swing.JOptionPane;  \u002F\u002F Popup-Dialog\n\u002F\u002F GUI-Komponenten (Swing)\nimport javax.swing.*;   \u002F\u002F JFrame, JPanel, JButton, JLabel, JTextField, JOptionPane, JFileChooser etc.\n\u002F\u002F Layouts\nimport java.awt.GridLayout;      \u002F\u002F Grid-Layout\nimport java.awt.BorderLayout;    \u002F\u002F Border-Layout\nimport java.awt.FlowLayout;      \u002F\u002F Flow-Layout\nimport java.awt.Font;            \u002F\u002F Schriftarten\n\u002F\u002F Layouts & Schriftarten (AWT)\nimport java.awt.*;      \u002F\u002F GridLayout, BorderLayout, FlowLayout, Font, Color etc.\n\u002F\u002F Event-Handling\nimport java.awt.event.ActionListener; \u002F\u002F Listener für Aktionen (z.B. Button klicken)\nimport java.awt.event.ActionEvent;    \u002F\u002F Event-Objekt für Aktionen\nimport java.awt.event.KeyListener;    \u002F\u002F Listener für Tastatureingaben\nimport java.awt.event.KeyEvent;       \u002F\u002F Event-Objekt für Tastatureingaben\nimport java.awt.event.MouseListener;  \u002F\u002F Listener für Mausaktionen\nimport java.awt.event.MouseEvent;     \u002F\u002F Event-Objekt für Mausaktionen\n\u002F\u002F Event-Handling (AWT Events)\nimport java.awt.event.*; \u002F\u002F ActionListener, ActionEvent, KeyListener, KeyEvent, MouseListener, MouseEvent etc.\n\u002F\u002F Datei-Handling\nimport java.io.File;             \u002F\u002F Dateien und Verzeichnisse\nimport java.io.FileReader;       \u002F\u002F Dateien lesen\nimport java.io.FileWriter;       \u002F\u002F Dateien schreiben\nimport java.io.BufferedReader;   \u002F\u002F Puffern beim Lesen\nimport java.io.BufferedWriter;   \u002F\u002F Puffern beim Schreiben\nimport java.io.IOException;      \u002F\u002F Ausnahmebehandlung für Dateioperationen\n\u002F\u002F Datei-Handling\nimport java.io.*;       \u002F\u002F File, FileReader, FileWriter, BufferedReader, BufferedWriter, IOException etc.\n\n",[4653,111453,111454,111458,111466,111474,111482,111490,111498,111506,111514,111518,111531,111535,111543,111551,111559,111567,111571,111583,111587,111595,111603,111611,111619,111627,111635,111639,111652,111656,111664,111672,111680,111688,111696,111704,111708],{"__ignoreMap":269},[4173,111455,111456],{"class":4657,"line":4658},[4173,111457,90318],{"class":4766},[4173,111459,111460,111462,111464],{"class":4657,"line":270},[4173,111461,79019],{"class":4788},[4173,111463,90325],{"class":4784},[4173,111465,90328],{"class":4766},[4173,111467,111468,111470,111472],{"class":4657,"line":1263},[4173,111469,79019],{"class":4788},[4173,111471,90335],{"class":4784},[4173,111473,90338],{"class":4766},[4173,111475,111476,111478,111480],{"class":4657,"line":4770},[4173,111477,79019],{"class":4788},[4173,111479,90345],{"class":4784},[4173,111481,90348],{"class":4766},[4173,111483,111484,111486,111488],{"class":4657,"line":4775},[4173,111485,79019],{"class":4788},[4173,111487,90355],{"class":4784},[4173,111489,90358],{"class":4766},[4173,111491,111492,111494,111496],{"class":4657,"line":6320},[4173,111493,79019],{"class":4788},[4173,111495,90365],{"class":4784},[4173,111497,90368],{"class":4766},[4173,111499,111500,111502,111504],{"class":4657,"line":6325},[4173,111501,79019],{"class":4788},[4173,111503,90375],{"class":4784},[4173,111505,90378],{"class":4766},[4173,111507,111508,111510,111512],{"class":4657,"line":6343},[4173,111509,79019],{"class":4788},[4173,111511,90385],{"class":4784},[4173,111513,90388],{"class":4766},[4173,111515,111516],{"class":4657,"line":6348},[4173,111517,90393],{"class":4766},[4173,111519,111520,111522,111524,111526,111528],{"class":4657,"line":6457},[4173,111521,79019],{"class":4788},[4173,111523,80877],{"class":4784},[4173,111525,6328],{"class":4665},[4173,111527,90404],{"class":4784},[4173,111529,111530],{"class":4766},"\u002F\u002F JFrame, JPanel, JButton, JLabel, JTextField, JOptionPane, JFileChooser etc.\n",[4173,111532,111533],{"class":4657,"line":6462},[4173,111534,90417],{"class":4766},[4173,111536,111537,111539,111541],{"class":4657,"line":6468},[4173,111538,79019],{"class":4788},[4173,111540,90424],{"class":4784},[4173,111542,90427],{"class":4766},[4173,111544,111545,111547,111549],{"class":4657,"line":6473},[4173,111546,79019],{"class":4788},[4173,111548,90434],{"class":4784},[4173,111550,90437],{"class":4766},[4173,111552,111553,111555,111557],{"class":4657,"line":6479},[4173,111554,79019],{"class":4788},[4173,111556,90444],{"class":4784},[4173,111558,90447],{"class":4766},[4173,111560,111561,111563,111565],{"class":4657,"line":6503},[4173,111562,79019],{"class":4788},[4173,111564,90454],{"class":4784},[4173,111566,90457],{"class":4766},[4173,111568,111569],{"class":4657,"line":6516},[4173,111570,90462],{"class":4766},[4173,111572,111573,111575,111577,111579,111581],{"class":4657,"line":6971},[4173,111574,79019],{"class":4788},[4173,111576,80902],{"class":4784},[4173,111578,6328],{"class":4665},[4173,111580,90473],{"class":4784},[4173,111582,90476],{"class":4766},[4173,111584,111585],{"class":4657,"line":10649},[4173,111586,90481],{"class":4766},[4173,111588,111589,111591,111593],{"class":4657,"line":10654},[4173,111590,79019],{"class":4788},[4173,111592,90488],{"class":4784},[4173,111594,90491],{"class":4766},[4173,111596,111597,111599,111601],{"class":4657,"line":10659},[4173,111598,79019],{"class":4788},[4173,111600,90498],{"class":4784},[4173,111602,90501],{"class":4766},[4173,111604,111605,111607,111609],{"class":4657,"line":10664},[4173,111606,79019],{"class":4788},[4173,111608,90508],{"class":4784},[4173,111610,90511],{"class":4766},[4173,111612,111613,111615,111617],{"class":4657,"line":10676},[4173,111614,79019],{"class":4788},[4173,111616,90518],{"class":4784},[4173,111618,90521],{"class":4766},[4173,111620,111621,111623,111625],{"class":4657,"line":10681},[4173,111622,79019],{"class":4788},[4173,111624,90528],{"class":4784},[4173,111626,90531],{"class":4766},[4173,111628,111629,111631,111633],{"class":4657,"line":10702},[4173,111630,79019],{"class":4788},[4173,111632,90538],{"class":4784},[4173,111634,90541],{"class":4766},[4173,111636,111637],{"class":4657,"line":10707},[4173,111638,90546],{"class":4766},[4173,111640,111641,111643,111645,111647,111649],{"class":4657,"line":10712},[4173,111642,79019],{"class":4788},[4173,111644,80913],{"class":4784},[4173,111646,6328],{"class":4665},[4173,111648,6498],{"class":4784},[4173,111650,111651],{"class":4766},"\u002F\u002F ActionListener, ActionEvent, KeyListener, KeyEvent, MouseListener, MouseEvent etc.\n",[4173,111653,111654],{"class":4657,"line":10717},[4173,111655,90569],{"class":4766},[4173,111657,111658,111660,111662],{"class":4657,"line":10727},[4173,111659,79019],{"class":4788},[4173,111661,90576],{"class":4784},[4173,111663,90579],{"class":4766},[4173,111665,111666,111668,111670],{"class":4657,"line":10732},[4173,111667,79019],{"class":4788},[4173,111669,90586],{"class":4784},[4173,111671,90589],{"class":4766},[4173,111673,111674,111676,111678],{"class":4657,"line":10737},[4173,111675,79019],{"class":4788},[4173,111677,90596],{"class":4784},[4173,111679,90599],{"class":4766},[4173,111681,111682,111684,111686],{"class":4657,"line":10742},[4173,111683,79019],{"class":4788},[4173,111685,90606],{"class":4784},[4173,111687,90609],{"class":4766},[4173,111689,111690,111692,111694],{"class":4657,"line":10752},[4173,111691,79019],{"class":4788},[4173,111693,90616],{"class":4784},[4173,111695,90619],{"class":4766},[4173,111697,111698,111700,111702],{"class":4657,"line":10757},[4173,111699,79019],{"class":4788},[4173,111701,90626],{"class":4784},[4173,111703,90629],{"class":4766},[4173,111705,111706],{"class":4657,"line":10762},[4173,111707,90569],{"class":4766},[4173,111709,111710,111712,111714,111716,111718],{"class":4657,"line":10767},[4173,111711,79019],{"class":4788},[4173,111713,90640],{"class":4784},[4173,111715,6328],{"class":4665},[4173,111717,90645],{"class":4784},[4173,111719,111720],{"class":4766},"\u002F\u002F File, FileReader, FileWriter, BufferedReader, BufferedWriter, IOException etc.\n",[11,111722,90657],{"id":90656},[16,111724,111726],{"id":111725},"schwimmerguijava","SchwimmerGUI.java",[4647,111728,111730],{"className":78931,"code":111729,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport java.awt.*;\npublic class SchwimmerGUI extends JFrame {\n    \u002F\u002F Instanzvariablen nur für benötigte Elemente\n    private JTextField tfName;\n    private JTextField tfVorname;\n    private JTextField tfKlasse;\n    \u002F\u002F Feld für bis zu 100 Schwimmer\n    private Schwimmer[] teilnehmer = new Schwimmer[100];\n    private int index = 0; \u002F\u002F nächste freie Position\n    public SchwimmerGUI() {\n        super(\"Schwimmerverwaltung\");\n        setLayout(new GridLayout(6, 1));\n        setSize(400, 300);\n        setResizable(false);\n        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n        \u002F\u002F Erste Zeile – Titel\n        JLabel lblTitel = new JLabel(\"Schwimmer-Erfassung\", SwingConstants.CENTER);\n        lblTitel.setFont(new Font(\"Courier\", Font.ITALIC, 20));\n        add(lblTitel);\n        \u002F\u002F Zeile 2 – Name\n        JPanel p1 = new JPanel();\n        p1.add(new JLabel(\"Name:\"));\n        tfName = new JTextField(20);\n        p1.add(tfName);\n        add(p1);\n        \u002F\u002F Zeile 3 – Vorname\n        JPanel p2 = new JPanel();\n        p2.add(new JLabel(\"Vorname:\"));\n        tfVorname = new JTextField(20);\n        p2.add(tfVorname);\n        add(p2);\n        \u002F\u002F Zeile 4 – Klasse\n        JPanel p3 = new JPanel();\n        p3.add(new JLabel(\"Klasse:\"));\n        tfKlasse = new JTextField(3);\n        p3.add(tfKlasse);\n        add(p3);\n        \u002F\u002F Zeile 5 – Speichern Button\n        JButton btnSave = new JButton(\"Speichern\");\n        btnSave.addActionListener(new SpeichernEreignis(this));\n        add(btnSave);\n        \u002F\u002F Zeile 6 – Zurücksetzen Button\n        JButton btnReset = new JButton(\"Zurücksetzen\");\n        btnReset.addActionListener(new ZuruecksetzenEreignis(tfName, tfVorname, tfKlasse));\n        add(btnReset);\n        setVisible(true);\n    }\n    \u002F\u002F Zugriffsmethoden für Ereignisklasse\n    public String getNameEingabe() { return tfName.getText(); }\n    public String getVornameEingabe() { return tfVorname.getText(); }\n    public String getKlasseEingabe() { return tfKlasse.getText(); }\n    public void addSchwimmer(Schwimmer s) {\n        if (index \u003C teilnehmer.length) {\n            teilnehmer[index] = s;\n            index++;\n        }\n    }\n    public void printArray() {\n        System.out.println();\n        for (int i = 0; i \u003C index; i++) {\n            System.out.println(teilnehmer[i]);\n        }\n    }\n    public static void main(String[] args) {\n        new SchwimmerGUI();\n    }\n}\n\n",[4653,111731,111732,111742,111752,111766,111771,111777,111783,111789,111794,111814,111830,111838,111848,111869,111883,111893,111899,111904,111922,111945,111952,111957,111970,111989,112006,112014,112020,112025,112038,112057,112074,112082,112088,112093,112106,112125,112142,112150,112156,112161,112178,112197,112203,112208,112225,112241,112247,112258,112262,112267,112285,112303,112321,112335,112345,112354,112363,112367,112371,112381,112389,112413,112421,112425,112429,112449,112458,112462],{"__ignoreMap":269},[4173,111733,111734,111736,111738,111740],{"class":4657,"line":4658},[4173,111735,79019],{"class":4788},[4173,111737,80877],{"class":4784},[4173,111739,6328],{"class":4665},[4173,111741,55559],{"class":4784},[4173,111743,111744,111746,111748,111750],{"class":4657,"line":270},[4173,111745,79019],{"class":4788},[4173,111747,80902],{"class":4784},[4173,111749,6328],{"class":4665},[4173,111751,55559],{"class":4784},[4173,111753,111754,111756,111758,111760,111762,111764],{"class":4657,"line":1263},[4173,111755,79889],{"class":4788},[4173,111757,80062],{"class":4788},[4173,111759,90695],{"class":4661},[4173,111761,80500],{"class":4788},[4173,111763,80986],{"class":4661},[4173,111765,51614],{"class":4784},[4173,111767,111768],{"class":4657,"line":4770},[4173,111769,111770],{"class":4766},"    \u002F\u002F Instanzvariablen nur für benötigte Elemente\n",[4173,111772,111773,111775],{"class":4657,"line":4775},[4173,111774,100507],{"class":4788},[4173,111776,90713],{"class":4784},[4173,111778,111779,111781],{"class":4657,"line":6320},[4173,111780,100507],{"class":4788},[4173,111782,90720],{"class":4784},[4173,111784,111785,111787],{"class":4657,"line":6325},[4173,111786,100507],{"class":4788},[4173,111788,90727],{"class":4784},[4173,111790,111791],{"class":4657,"line":6343},[4173,111792,111793],{"class":4766},"    \u002F\u002F Feld für bis zu 100 Schwimmer\n",[4173,111795,111796,111798,111800,111802,111804,111806,111808,111810,111812],{"class":4657,"line":6348},[4173,111797,100507],{"class":4788},[4173,111799,90739],{"class":4788},[4173,111801,90742],{"class":4784},[4173,111803,6387],{"class":4788},[4173,111805,79032],{"class":4788},[4173,111807,90739],{"class":4788},[4173,111809,11612],{"class":4784},[4173,111811,5961],{"class":4665},[4173,111813,90755],{"class":4784},[4173,111815,111816,111818,111820,111822,111824,111826,111828],{"class":4657,"line":6457},[4173,111817,100507],{"class":4788},[4173,111819,79895],{"class":4788},[4173,111821,90764],{"class":4784},[4173,111823,6387],{"class":4788},[4173,111825,25370],{"class":4665},[4173,111827,6498],{"class":4784},[4173,111829,90773],{"class":4766},[4173,111831,111832,111834,111836],{"class":4657,"line":6462},[4173,111833,100265],{"class":4788},[4173,111835,90695],{"class":4661},[4173,111837,7062],{"class":4784},[4173,111839,111840,111842,111844,111846],{"class":4657,"line":6468},[4173,111841,100854],{"class":4665},[4173,111843,6390],{"class":4784},[4173,111845,90790],{"class":4669},[4173,111847,55545],{"class":4784},[4173,111849,111850,111853,111855,111857,111859,111861,111863,111865,111867],{"class":4657,"line":6473},[4173,111851,111852],{"class":4661},"        setLayout",[4173,111854,6390],{"class":4784},[4173,111856,81243],{"class":4788},[4173,111858,81729],{"class":4661},[4173,111860,6390],{"class":4784},[4173,111862,14278],{"class":4665},[4173,111864,8629],{"class":4784},[4173,111866,14223],{"class":4665},[4173,111868,66047],{"class":4784},[4173,111870,111871,111873,111875,111877,111879,111881],{"class":4657,"line":6479},[4173,111872,101402],{"class":4661},[4173,111874,6390],{"class":4784},[4173,111876,35097],{"class":4665},[4173,111878,8629],{"class":4784},[4173,111880,90825],{"class":4665},[4173,111882,55545],{"class":4784},[4173,111884,111885,111887,111889,111891],{"class":4657,"line":6503},[4173,111886,101419],{"class":4661},[4173,111888,6390],{"class":4784},[4173,111890,90836],{"class":4665},[4173,111892,55545],{"class":4784},[4173,111894,111895,111897],{"class":4657,"line":6516},[4173,111896,101392],{"class":4661},[4173,111898,83561],{"class":4784},[4173,111900,111901],{"class":4657,"line":6971},[4173,111902,111903],{"class":4766},"        \u002F\u002F Erste Zeile – Titel\n",[4173,111905,111906,111909,111911,111913,111915,111917,111919],{"class":4657,"line":10649},[4173,111907,111908],{"class":4784},"        JLabel lblTitel ",[4173,111910,6387],{"class":4788},[4173,111912,79032],{"class":4788},[4173,111914,81563],{"class":4661},[4173,111916,6390],{"class":4784},[4173,111918,90865],{"class":4669},[4173,111920,111921],{"class":4784},", SwingConstants.CENTER);\n",[4173,111923,111924,111927,111929,111931,111933,111935,111937,111939,111941,111943],{"class":4657,"line":10654},[4173,111925,111926],{"class":4784},"        lblTitel.",[4173,111928,81578],{"class":4661},[4173,111930,6390],{"class":4784},[4173,111932,81243],{"class":4788},[4173,111934,81585],{"class":4661},[4173,111936,6390],{"class":4784},[4173,111938,90890],{"class":4669},[4173,111940,81645],{"class":4784},[4173,111942,83246],{"class":4665},[4173,111944,66047],{"class":4784},[4173,111946,111947,111950],{"class":4657,"line":10659},[4173,111948,111949],{"class":4661},"        add",[4173,111951,90903],{"class":4784},[4173,111953,111954],{"class":4657,"line":10664},[4173,111955,111956],{"class":4766},"        \u002F\u002F Zeile 2 – Name\n",[4173,111958,111959,111962,111964,111966,111968],{"class":4657,"line":10676},[4173,111960,111961],{"class":4784},"        JPanel p1 ",[4173,111963,6387],{"class":4788},[4173,111965,79032],{"class":4788},[4173,111967,81533],{"class":4661},[4173,111969,65878],{"class":4784},[4173,111971,111972,111975,111977,111979,111981,111983,111985,111987],{"class":4657,"line":10681},[4173,111973,111974],{"class":4784},"        p1.",[4173,111976,79955],{"class":4661},[4173,111978,6390],{"class":4784},[4173,111980,81243],{"class":4788},[4173,111982,81563],{"class":4661},[4173,111984,6390],{"class":4784},[4173,111986,90939],{"class":4669},[4173,111988,66047],{"class":4784},[4173,111990,111991,111994,111996,111998,112000,112002,112004],{"class":4657,"line":10702},[4173,111992,111993],{"class":4784},"        tfName ",[4173,111995,6387],{"class":4788},[4173,111997,79032],{"class":4788},[4173,111999,83065],{"class":4661},[4173,112001,6390],{"class":4784},[4173,112003,83246],{"class":4665},[4173,112005,55545],{"class":4784},[4173,112007,112008,112010,112012],{"class":4657,"line":10707},[4173,112009,111974],{"class":4784},[4173,112011,79955],{"class":4661},[4173,112013,90967],{"class":4784},[4173,112015,112016,112018],{"class":4657,"line":10712},[4173,112017,111949],{"class":4661},[4173,112019,90974],{"class":4784},[4173,112021,112022],{"class":4657,"line":10717},[4173,112023,112024],{"class":4766},"        \u002F\u002F Zeile 3 – Vorname\n",[4173,112026,112027,112030,112032,112034,112036],{"class":4657,"line":10727},[4173,112028,112029],{"class":4784},"        JPanel p2 ",[4173,112031,6387],{"class":4788},[4173,112033,79032],{"class":4788},[4173,112035,81533],{"class":4661},[4173,112037,65878],{"class":4784},[4173,112039,112040,112043,112045,112047,112049,112051,112053,112055],{"class":4657,"line":10732},[4173,112041,112042],{"class":4784},"        p2.",[4173,112044,79955],{"class":4661},[4173,112046,6390],{"class":4784},[4173,112048,81243],{"class":4788},[4173,112050,81563],{"class":4661},[4173,112052,6390],{"class":4784},[4173,112054,91010],{"class":4669},[4173,112056,66047],{"class":4784},[4173,112058,112059,112062,112064,112066,112068,112070,112072],{"class":4657,"line":10737},[4173,112060,112061],{"class":4784},"        tfVorname ",[4173,112063,6387],{"class":4788},[4173,112065,79032],{"class":4788},[4173,112067,83065],{"class":4661},[4173,112069,6390],{"class":4784},[4173,112071,83246],{"class":4665},[4173,112073,55545],{"class":4784},[4173,112075,112076,112078,112080],{"class":4657,"line":10742},[4173,112077,112042],{"class":4784},[4173,112079,79955],{"class":4661},[4173,112081,91038],{"class":4784},[4173,112083,112084,112086],{"class":4657,"line":10752},[4173,112085,111949],{"class":4661},[4173,112087,91045],{"class":4784},[4173,112089,112090],{"class":4657,"line":10757},[4173,112091,112092],{"class":4766},"        \u002F\u002F Zeile 4 – Klasse\n",[4173,112094,112095,112098,112100,112102,112104],{"class":4657,"line":10762},[4173,112096,112097],{"class":4784},"        JPanel p3 ",[4173,112099,6387],{"class":4788},[4173,112101,79032],{"class":4788},[4173,112103,81533],{"class":4661},[4173,112105,65878],{"class":4784},[4173,112107,112108,112111,112113,112115,112117,112119,112121,112123],{"class":4657,"line":10767},[4173,112109,112110],{"class":4784},"        p3.",[4173,112112,79955],{"class":4661},[4173,112114,6390],{"class":4784},[4173,112116,81243],{"class":4788},[4173,112118,81563],{"class":4661},[4173,112120,6390],{"class":4784},[4173,112122,91081],{"class":4669},[4173,112124,66047],{"class":4784},[4173,112126,112127,112130,112132,112134,112136,112138,112140],{"class":4657,"line":10772},[4173,112128,112129],{"class":4784},"        tfKlasse ",[4173,112131,6387],{"class":4788},[4173,112133,79032],{"class":4788},[4173,112135,83065],{"class":4661},[4173,112137,6390],{"class":4784},[4173,112139,14318],{"class":4665},[4173,112141,55545],{"class":4784},[4173,112143,112144,112146,112148],{"class":4657,"line":10777},[4173,112145,112110],{"class":4784},[4173,112147,79955],{"class":4661},[4173,112149,91109],{"class":4784},[4173,112151,112152,112154],{"class":4657,"line":10782},[4173,112153,111949],{"class":4661},[4173,112155,91116],{"class":4784},[4173,112157,112158],{"class":4657,"line":10787},[4173,112159,112160],{"class":4766},"        \u002F\u002F Zeile 5 – Speichern Button\n",[4173,112162,112163,112166,112168,112170,112172,112174,112176],{"class":4657,"line":10800},[4173,112164,112165],{"class":4784},"        JButton btnSave ",[4173,112167,6387],{"class":4788},[4173,112169,79032],{"class":4788},[4173,112171,81836],{"class":4661},[4173,112173,6390],{"class":4784},[4173,112175,84579],{"class":4669},[4173,112177,55545],{"class":4784},[4173,112179,112180,112183,112185,112187,112189,112191,112193,112195],{"class":4657,"line":10805},[4173,112181,112182],{"class":4784},"        btnSave.",[4173,112184,81461],{"class":4661},[4173,112186,6390],{"class":4784},[4173,112188,81243],{"class":4788},[4173,112190,91152],{"class":4661},[4173,112192,6390],{"class":4784},[4173,112194,80010],{"class":4665},[4173,112196,66047],{"class":4784},[4173,112198,112199,112201],{"class":4657,"line":10818},[4173,112200,111949],{"class":4661},[4173,112202,91165],{"class":4784},[4173,112204,112205],{"class":4657,"line":10823},[4173,112206,112207],{"class":4766},"        \u002F\u002F Zeile 6 – Zurücksetzen Button\n",[4173,112209,112210,112213,112215,112217,112219,112221,112223],{"class":4657,"line":10836},[4173,112211,112212],{"class":4784},"        JButton btnReset ",[4173,112214,6387],{"class":4788},[4173,112216,79032],{"class":4788},[4173,112218,81836],{"class":4661},[4173,112220,6390],{"class":4784},[4173,112222,91186],{"class":4669},[4173,112224,55545],{"class":4784},[4173,112226,112227,112230,112232,112234,112236,112238],{"class":4657,"line":10841},[4173,112228,112229],{"class":4784},"        btnReset.",[4173,112231,81461],{"class":4661},[4173,112233,6390],{"class":4784},[4173,112235,81243],{"class":4788},[4173,112237,91202],{"class":4661},[4173,112239,112240],{"class":4784},"(tfName, tfVorname, tfKlasse));\n",[4173,112242,112243,112245],{"class":4657,"line":10846},[4173,112244,111949],{"class":4661},[4173,112246,91217],{"class":4784},[4173,112248,112249,112252,112254,112256],{"class":4657,"line":10851},[4173,112250,112251],{"class":4661},"        setVisible",[4173,112253,6390],{"class":4784},[4173,112255,45190],{"class":4665},[4173,112257,55545],{"class":4784},[4173,112259,112260],{"class":4657,"line":10867},[4173,112261,100385],{"class":4784},[4173,112263,112264],{"class":4657,"line":10872},[4173,112265,112266],{"class":4766},"    \u002F\u002F Zugriffsmethoden für Ereignisklasse\n",[4173,112268,112269,112271,112273,112275,112277,112279,112281,112283],{"class":4657,"line":10877},[4173,112270,100265],{"class":4788},[4173,112272,80225],{"class":4784},[4173,112274,91245],{"class":4661},[4173,112276,91248],{"class":4784},[4173,112278,51326],{"class":4788},[4173,112280,91253],{"class":4784},[4173,112282,83296],{"class":4661},[4173,112284,91258],{"class":4784},[4173,112286,112287,112289,112291,112293,112295,112297,112299,112301],{"class":4657,"line":10882},[4173,112288,100265],{"class":4788},[4173,112290,80225],{"class":4784},[4173,112292,91267],{"class":4661},[4173,112294,91248],{"class":4784},[4173,112296,51326],{"class":4788},[4173,112298,91274],{"class":4784},[4173,112300,83296],{"class":4661},[4173,112302,91258],{"class":4784},[4173,112304,112305,112307,112309,112311,112313,112315,112317,112319],{"class":4657,"line":10890},[4173,112306,100265],{"class":4788},[4173,112308,80225],{"class":4784},[4173,112310,91287],{"class":4661},[4173,112312,91248],{"class":4784},[4173,112314,51326],{"class":4788},[4173,112316,91294],{"class":4784},[4173,112318,83296],{"class":4661},[4173,112320,91258],{"class":4784},[4173,112322,112323,112325,112327,112329,112331,112333],{"class":4657,"line":10895},[4173,112324,100265],{"class":4788},[4173,112326,79934],{"class":4788},[4173,112328,91307],{"class":4661},[4173,112330,91310],{"class":4784},[4173,112332,12522],{"class":7074},[4173,112334,56319],{"class":4784},[4173,112336,112337,112339,112341,112343],{"class":4657,"line":10904},[4173,112338,104951],{"class":4788},[4173,112340,91321],{"class":4784},[4173,112342,24345],{"class":4788},[4173,112344,91326],{"class":4784},[4173,112346,112347,112350,112352],{"class":4657,"line":10909},[4173,112348,112349],{"class":4784},"            teilnehmer[index] ",[4173,112351,6387],{"class":4788},[4173,112353,91336],{"class":4784},[4173,112355,112356,112359,112361],{"class":4657,"line":10914},[4173,112357,112358],{"class":4784},"            index",[4173,112360,10670],{"class":4788},[4173,112362,55559],{"class":4784},[4173,112364,112365],{"class":4657,"line":10919},[4173,112366,100145],{"class":4784},[4173,112368,112369],{"class":4657,"line":10933},[4173,112370,100385],{"class":4784},[4173,112372,112373,112375,112377,112379],{"class":4657,"line":10938},[4173,112374,100265],{"class":4788},[4173,112376,79934],{"class":4788},[4173,112378,91362],{"class":4661},[4173,112380,7062],{"class":4784},[4173,112382,112383,112385,112387],{"class":4657,"line":10959},[4173,112384,100097],{"class":4784},[4173,112386,79074],{"class":4661},[4173,112388,65878],{"class":4784},[4173,112390,112391,112393,112395,112397,112399,112401,112403,112405,112407,112409,112411],{"class":4657,"line":10964},[4173,112392,100110],{"class":4788},[4173,112394,4171],{"class":4784},[4173,112396,64831],{"class":4788},[4173,112398,6555],{"class":4784},[4173,112400,6387],{"class":4788},[4173,112402,25370],{"class":4665},[4173,112404,79645],{"class":4784},[4173,112406,24345],{"class":4788},[4173,112408,91393],{"class":4784},[4173,112410,10670],{"class":4788},[4173,112412,56319],{"class":4784},[4173,112414,112415,112417,112419],{"class":4657,"line":10969},[4173,112416,100121],{"class":4784},[4173,112418,79074],{"class":4661},[4173,112420,91406],{"class":4784},[4173,112422,112423],{"class":4657,"line":10974},[4173,112424,100145],{"class":4784},[4173,112426,112427],{"class":4657,"line":10982},[4173,112428,100385],{"class":4784},[4173,112430,112431,112433,112435,112437,112439,112441,112443,112445,112447],{"class":4657,"line":10987},[4173,112432,100265],{"class":4788},[4173,112434,79892],{"class":4788},[4173,112436,79934],{"class":4788},[4173,112438,79937],{"class":4661},[4173,112440,6390],{"class":4784},[4173,112442,79693],{"class":4788},[4173,112444,80084],{"class":4784},[4173,112446,31283],{"class":7074},[4173,112448,56319],{"class":4784},[4173,112450,112451,112454,112456],{"class":4657,"line":10995},[4173,112452,112453],{"class":4788},"        new",[4173,112455,90695],{"class":4661},[4173,112457,65878],{"class":4784},[4173,112459,112460],{"class":4657,"line":11000},[4173,112461,100385],{"class":4784},[4173,112463,112464],{"class":4657,"line":11008},[4173,112465,7090],{"class":4784},[16,112467,112469],{"id":112468},"ereignisklassenjava","Ereignisklassen.java",[4647,112471,112473],{"className":78931,"code":112472,"language":78933,"meta":269,"style":269},"\u002F\u002F Innere Ereignisklasse getrennt von GUI-Datei\nimport java.awt.event.*;\nclass SpeichernEreignis implements ActionListener {\n    private SchwimmerGUI gui;\n    public SpeichernEreignis(SchwimmerGUI gui) {\n        this.gui = gui;\n    }\n    @Override\n    public void actionPerformed(ActionEvent e) {\n        \u002F\u002F Daten aus GUI auslesen\n        String name = gui.getNameEingabe();\n        String vorname = gui.getVornameEingabe();\n        String klasse = gui.getKlasseEingabe();\n        \u002F\u002F Neues Schwimmer-Objekt erzeugen\n        Schwimmer s = new Schwimmer(name, vorname, klasse);\n        \u002F\u002F Im Array speichern\n        gui.addSchwimmer(s);\n        \u002F\u002F Ausgabe des vollständigen Arrays\n        gui.printArray();\n    }\n}\nclass ZuruecksetzenEreignis implements ActionListener {\n    private JTextField tfName, tfVorname, tfKlasse;\n    public ZuruecksetzenEreignis(JTextField tfName, JTextField tfVorname, JTextField tfKlasse) {\n        this.tfName = tfName;\n        this.tfVorname = tfVorname;\n        this.tfKlasse = tfKlasse;\n    }\n    @Override\n    public void actionPerformed(ActionEvent e) {\n        tfName.setText(\"\");\n        tfVorname.setText(\"\");\n        tfKlasse.setText(\"\");\n    }\n}\n\n",[4653,112474,112475,112479,112489,112501,112507,112519,112529,112533,112539,112553,112558,112570,112583,112596,112601,112614,112619,112628,112633,112641,112645,112649,112661,112667,112687,112697,112707,112717,112721,112727,112741,112754,112767,112780,112784],{"__ignoreMap":269},[4173,112476,112477],{"class":4657,"line":4658},[4173,112478,91464],{"class":4766},[4173,112480,112481,112483,112485,112487],{"class":4657,"line":270},[4173,112482,79019],{"class":4788},[4173,112484,80913],{"class":4784},[4173,112486,6328],{"class":4665},[4173,112488,55559],{"class":4784},[4173,112490,112491,112493,112495,112497,112499],{"class":4657,"line":1263},[4173,112492,79983],{"class":4788},[4173,112494,91152],{"class":4661},[4173,112496,80628],{"class":4788},[4173,112498,91485],{"class":4661},[4173,112500,51614],{"class":4784},[4173,112502,112503,112505],{"class":4657,"line":4770},[4173,112504,100507],{"class":4788},[4173,112506,91494],{"class":4784},[4173,112508,112509,112511,112513,112515,112517],{"class":4657,"line":4775},[4173,112510,100265],{"class":4788},[4173,112512,91152],{"class":4661},[4173,112514,91503],{"class":4784},[4173,112516,91506],{"class":7074},[4173,112518,56319],{"class":4784},[4173,112520,112521,112523,112525,112527],{"class":4657,"line":6320},[4173,112522,100374],{"class":4665},[4173,112524,91515],{"class":4784},[4173,112526,6387],{"class":4788},[4173,112528,91520],{"class":4784},[4173,112530,112531],{"class":4657,"line":6325},[4173,112532,100385],{"class":4784},[4173,112534,112535,112537],{"class":4657,"line":6343},[4173,112536,100865],{"class":4784},[4173,112538,80535],{"class":4788},[4173,112540,112541,112543,112545,112547,112549,112551],{"class":4657,"line":6348},[4173,112542,100265],{"class":4788},[4173,112544,79934],{"class":4788},[4173,112546,82416],{"class":4661},[4173,112548,82419],{"class":4784},[4173,112550,20602],{"class":7074},[4173,112552,56319],{"class":4784},[4173,112554,112555],{"class":4657,"line":6457},[4173,112556,112557],{"class":4766},"        \u002F\u002F Daten aus GUI auslesen\n",[4173,112559,112560,112562,112564,112566,112568],{"class":4657,"line":6462},[4173,112561,105098],{"class":4784},[4173,112563,6387],{"class":4788},[4173,112565,91558],{"class":4784},[4173,112567,91245],{"class":4661},[4173,112569,65878],{"class":4784},[4173,112571,112572,112575,112577,112579,112581],{"class":4657,"line":6468},[4173,112573,112574],{"class":4784},"        String vorname ",[4173,112576,6387],{"class":4788},[4173,112578,91558],{"class":4784},[4173,112580,91267],{"class":4661},[4173,112582,65878],{"class":4784},[4173,112584,112585,112588,112590,112592,112594],{"class":4657,"line":6473},[4173,112586,112587],{"class":4784},"        String klasse ",[4173,112589,6387],{"class":4788},[4173,112591,91558],{"class":4784},[4173,112593,91287],{"class":4661},[4173,112595,65878],{"class":4784},[4173,112597,112598],{"class":4657,"line":6479},[4173,112599,112600],{"class":4766},"        \u002F\u002F Neues Schwimmer-Objekt erzeugen\n",[4173,112602,112603,112606,112608,112610,112612],{"class":4657,"line":6503},[4173,112604,112605],{"class":4784},"        Schwimmer s ",[4173,112607,6387],{"class":4788},[4173,112609,79032],{"class":4788},[4173,112611,90739],{"class":4661},[4173,112613,91607],{"class":4784},[4173,112615,112616],{"class":4657,"line":6516},[4173,112617,112618],{"class":4766},"        \u002F\u002F Im Array speichern\n",[4173,112620,112621,112624,112626],{"class":4657,"line":6971},[4173,112622,112623],{"class":4784},"        gui.",[4173,112625,91620],{"class":4661},[4173,112627,91623],{"class":4784},[4173,112629,112630],{"class":4657,"line":10649},[4173,112631,112632],{"class":4766},"        \u002F\u002F Ausgabe des vollständigen Arrays\n",[4173,112634,112635,112637,112639],{"class":4657,"line":10654},[4173,112636,112623],{"class":4784},[4173,112638,91635],{"class":4661},[4173,112640,65878],{"class":4784},[4173,112642,112643],{"class":4657,"line":10659},[4173,112644,100385],{"class":4784},[4173,112646,112647],{"class":4657,"line":10664},[4173,112648,7090],{"class":4784},[4173,112650,112651,112653,112655,112657,112659],{"class":4657,"line":10676},[4173,112652,79983],{"class":4788},[4173,112654,91202],{"class":4661},[4173,112656,80628],{"class":4788},[4173,112658,91485],{"class":4661},[4173,112660,51614],{"class":4784},[4173,112662,112663,112665],{"class":4657,"line":10681},[4173,112664,100507],{"class":4788},[4173,112666,91664],{"class":4784},[4173,112668,112669,112671,112673,112675,112677,112679,112681,112683,112685],{"class":4657,"line":10702},[4173,112670,100265],{"class":4788},[4173,112672,91202],{"class":4661},[4173,112674,91673],{"class":4784},[4173,112676,91676],{"class":7074},[4173,112678,91679],{"class":4784},[4173,112680,91682],{"class":7074},[4173,112682,91679],{"class":4784},[4173,112684,91692],{"class":7074},[4173,112686,56319],{"class":4784},[4173,112688,112689,112691,112693,112695],{"class":4657,"line":10707},[4173,112690,100374],{"class":4665},[4173,112692,91701],{"class":4784},[4173,112694,6387],{"class":4788},[4173,112696,91706],{"class":4784},[4173,112698,112699,112701,112703,112705],{"class":4657,"line":10712},[4173,112700,100374],{"class":4665},[4173,112702,91713],{"class":4784},[4173,112704,6387],{"class":4788},[4173,112706,91718],{"class":4784},[4173,112708,112709,112711,112713,112715],{"class":4657,"line":10717},[4173,112710,100374],{"class":4665},[4173,112712,91725],{"class":4784},[4173,112714,6387],{"class":4788},[4173,112716,91730],{"class":4784},[4173,112718,112719],{"class":4657,"line":10727},[4173,112720,100385],{"class":4784},[4173,112722,112723,112725],{"class":4657,"line":10732},[4173,112724,100865],{"class":4784},[4173,112726,80535],{"class":4788},[4173,112728,112729,112731,112733,112735,112737,112739],{"class":4657,"line":10737},[4173,112730,100265],{"class":4788},[4173,112732,79934],{"class":4788},[4173,112734,82416],{"class":4661},[4173,112736,82419],{"class":4784},[4173,112738,20602],{"class":7074},[4173,112740,56319],{"class":4784},[4173,112742,112743,112746,112748,112750,112752],{"class":4657,"line":10742},[4173,112744,112745],{"class":4784},"        tfName.",[4173,112747,81370],{"class":4661},[4173,112749,6390],{"class":4784},[4173,112751,46851],{"class":4669},[4173,112753,55545],{"class":4784},[4173,112755,112756,112759,112761,112763,112765],{"class":4657,"line":10752},[4173,112757,112758],{"class":4784},"        tfVorname.",[4173,112760,81370],{"class":4661},[4173,112762,6390],{"class":4784},[4173,112764,46851],{"class":4669},[4173,112766,55545],{"class":4784},[4173,112768,112769,112772,112774,112776,112778],{"class":4657,"line":10757},[4173,112770,112771],{"class":4784},"        tfKlasse.",[4173,112773,81370],{"class":4661},[4173,112775,6390],{"class":4784},[4173,112777,46851],{"class":4669},[4173,112779,55545],{"class":4784},[4173,112781,112782],{"class":4657,"line":10762},[4173,112783,100385],{"class":4784},[4173,112785,112786],{"class":4657,"line":10767},[4173,112787,7090],{"class":4784},[16,112789,112791],{"id":112790},"schwimmerjava","Schwimmer.java",[4647,112793,112795],{"className":78931,"code":112794,"language":78933,"meta":269,"style":269},"public class Schwimmer {\n    private String name;\n    private String vorname;\n    private String klasse;\n    public Schwimmer(String name, String vorname, String klasse) {\n        this.name = name;\n        this.vorname = vorname;\n        this.klasse = klasse;\n    }\n    @Override\n    public String toString() {\n        return name + \", \" + vorname + \" (\" + klasse + \")\";\n    }\n}\n\n",[4653,112796,112797,112807,112813,112819,112825,112845,112855,112865,112875,112879,112885,112895,112923,112927],{"__ignoreMap":269},[4173,112798,112799,112801,112803,112805],{"class":4657,"line":4658},[4173,112800,79889],{"class":4788},[4173,112802,80062],{"class":4788},[4173,112804,90739],{"class":4661},[4173,112806,51614],{"class":4784},[4173,112808,112809,112811],{"class":4657,"line":270},[4173,112810,100507],{"class":4788},[4173,112812,80155],{"class":4784},[4173,112814,112815,112817],{"class":4657,"line":1263},[4173,112816,100507],{"class":4788},[4173,112818,91833],{"class":4784},[4173,112820,112821,112823],{"class":4657,"line":4770},[4173,112822,100507],{"class":4788},[4173,112824,91840],{"class":4784},[4173,112826,112827,112829,112831,112833,112835,112837,112839,112841,112843],{"class":4657,"line":4775},[4173,112828,100265],{"class":4788},[4173,112830,90739],{"class":4661},[4173,112832,80001],{"class":4784},[4173,112834,28734],{"class":7074},[4173,112836,86243],{"class":4784},[4173,112838,91855],{"class":7074},[4173,112840,86243],{"class":4784},[4173,112842,91860],{"class":7074},[4173,112844,56319],{"class":4784},[4173,112846,112847,112849,112851,112853],{"class":4657,"line":6320},[4173,112848,100374],{"class":4665},[4173,112850,80013],{"class":4784},[4173,112852,6387],{"class":4788},[4173,112854,80018],{"class":4784},[4173,112856,112857,112859,112861,112863],{"class":4657,"line":6325},[4173,112858,100374],{"class":4665},[4173,112860,91879],{"class":4784},[4173,112862,6387],{"class":4788},[4173,112864,91884],{"class":4784},[4173,112866,112867,112869,112871,112873],{"class":4657,"line":6343},[4173,112868,100374],{"class":4665},[4173,112870,91891],{"class":4784},[4173,112872,6387],{"class":4788},[4173,112874,91896],{"class":4784},[4173,112876,112877],{"class":4657,"line":6348},[4173,112878,100385],{"class":4784},[4173,112880,112881,112883],{"class":4657,"line":6457},[4173,112882,100865],{"class":4784},[4173,112884,80535],{"class":4788},[4173,112886,112887,112889,112891,112893],{"class":4657,"line":6462},[4173,112888,100265],{"class":4788},[4173,112890,80225],{"class":4784},[4173,112892,86154],{"class":4661},[4173,112894,7062],{"class":4784},[4173,112896,112897,112899,112901,112903,112905,112907,112909,112911,112913,112915,112917,112919,112921],{"class":4657,"line":6468},[4173,112898,100584],{"class":4788},[4173,112900,80353],{"class":4784},[4173,112902,14419],{"class":4788},[4173,112904,91927],{"class":4669},[4173,112906,11719],{"class":4788},[4173,112908,91932],{"class":4784},[4173,112910,14419],{"class":4788},[4173,112912,91937],{"class":4669},[4173,112914,11719],{"class":4788},[4173,112916,91942],{"class":4784},[4173,112918,14419],{"class":4788},[4173,112920,91947],{"class":4669},[4173,112922,55559],{"class":4784},[4173,112924,112925],{"class":4657,"line":6473},[4173,112926,100385],{"class":4784},[4173,112928,112929],{"class":4657,"line":6479},[4173,112930,7090],{"class":4784},[11,112932,91961],{"id":91960},[16,112934,111726],{"id":112935},"schwimmerguijava-1",[4647,112937,112939],{"className":78931,"code":112938,"language":78933,"meta":269,"style":269},"import java.awt.*;\nimport javax.swing.*;         \u002F\u002F0,5\nimport java.awt.event.*;  \u002F\u002FAufgabe 2\npublic class SchwimmerGUI extends JFrame {          \u002F\u002F0,5\n  Schwimmer[] starterliste = new Schwimmer[100];     \u002F\u002F1 Feld für 100 Schwimmer\n  JTextField tName, tVorname, tKlasse;               \u002F\u002F1 (nur notwendig!)\n  public SchwimmerGUI() {\n    this.setLayout(new GridLayout(6,1));            \u002F\u002F1\n    this.setTitle(\"Schulmeisterschaft Schwimmen\");  \u002F\u002F0,5\n    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  \u002F\u002F0,5\n    this.setSize(400,300);                   \u002F\u002F0,5\n    this.setResizable(false);                \u002F\u002F0,5\n                                                                        \u002F\u002F0,5\n    JLabel jlUeberschrift = new JLabel(\"Teilnehmerin \u002F Teilnehmer\",JLabel.CENTER);\n    jlUeberschrift.setFont(new Font(\"Courier\",Font.ITALIC,20));    \u002F\u002F1\n    add(jlUeberschrift);    \u002F\u002F0,5\n    JPanel panelSchwimmer1 = new JPanel();  \u002F\u002F0,5\n    JLabel jlName = new JLabel(\"Name : \",JLabel.RIGHT); \u002F\u002F0,5\n    panelSchwimmer1.add(jlName);          \u002F\u002F0,5\n    tName = new JTextField(20);           \u002F\u002F0,5\n    panelSchwimmer1.add(tName);           \u002F\u002F0,5\n    add(panelSchwimmer1);                 \u002F\u002F0,5\n    JPanel panelSchwimmer2 = new JPanel();\n    JLabel jlVorname = new JLabel(\"Vorname : \",JLabel.RIGHT);\n    panelSchwimmer2.add(jlVorname);                   \u002F\u002F0,5 analog zu Block \"name\"\n    tVorname = new JTextField(20);\n    panelSchwimmer2.add(tVorname);\n    add(panelSchwimmer2);\n    JPanel panelKlasse = new JPanel();\n    JLabel jlKlasse = new JLabel(\"Klasse : \",JLabel.RIGHT);\n    panelKlasse.add(jlKlasse);\n    tKlasse = new JTextField(3);                     \u002F\u002F0,5 analog zu Block \"name\"\n    panelKlasse.add(tKlasse);\n    add(panelKlasse);\n    JButton jbSpeichern = new JButton(\"Speichern\");      \u002F\u002F0,5\n    jbSpeichern.addActionListener(new SpeichernEreignis());\n    add(jbSpeichern);                                    \u002F\u002F0,5\n    JButton jbLoeschen = new JButton(\"Eingaben löschen\");   \u002F\u002F0,5\n    jbLoeschen.addActionListener(new ZuruecksetzenEreignis(tName,tVorname,tKlasse));\n    add(jbLoeschen);                                        \u002F\u002F0,5\n    this.setVisible(true);  \u002F\u002F0,5\n  }\n  public static void main(String[] args){\n    new SchwimmerGUI();  \u002F\u002F0,5 nur notwendige Objekterzeugung\n  }\n  class SpeichernEreignis implements ActionListener{        \u002F\u002F0,5\n                                                            \u002F\u002F0,5  Position\n    public void actionPerformed(ActionEvent ae){    \u002F\u002F0,5\n      String name = tName.getText();        \u002F\u002F0,5\n      String vorname = tVorname.getText();  \u002F\u002F0,5\n      String klasse = tKlasse.getText();    \u002F\u002F0,5\n      starterliste[Schwimmer.teilnehmer-1] = new Schwimmer(name,vorname,klasse);\n                               \u002F\u002F1                      \u002F\u002F1\n      System.out.println();  \u002F\u002F0,5  Leerzeile\n      for (int lauf = 0;lauf \u003C Schwimmer.teilnehmer;lauf++ ) {\n        System.out.println(starterliste[lauf]);           \u002F\u002F1,5\n      } \u002F\u002F end of for\n    }\n  }\n}\n\n",[4653,112940,112941,112951,112963,112975,112991,113012,113019,113028,113055,113071,113083,113103,113119,113124,113141,113166,113175,113190,113209,113220,113239,113249,113257,113270,113287,113298,113315,113323,113329,113342,113359,113368,113387,113395,113401,113420,113435,113443,113462,113477,113485,113501,113506,113526,113537,113541,113556,113561,113577,113592,113607,113622,113641,113648,113659,113684,113694,113701,113705,113709],{"__ignoreMap":269},[4173,112942,112943,112945,112947,112949],{"class":4657,"line":4658},[4173,112944,79019],{"class":4788},[4173,112946,80902],{"class":4784},[4173,112948,6328],{"class":4665},[4173,112950,55559],{"class":4784},[4173,112952,112953,112955,112957,112959,112961],{"class":4657,"line":270},[4173,112954,79019],{"class":4788},[4173,112956,80877],{"class":4784},[4173,112958,6328],{"class":4665},[4173,112960,91990],{"class":4784},[4173,112962,91993],{"class":4766},[4173,112964,112965,112967,112969,112971,112973],{"class":4657,"line":1263},[4173,112966,79019],{"class":4788},[4173,112968,80913],{"class":4784},[4173,112970,6328],{"class":4665},[4173,112972,92004],{"class":4784},[4173,112974,92007],{"class":4766},[4173,112976,112977,112979,112981,112983,112985,112987,112989],{"class":4657,"line":4770},[4173,112978,79889],{"class":4788},[4173,112980,80062],{"class":4788},[4173,112982,90695],{"class":4661},[4173,112984,80500],{"class":4788},[4173,112986,80986],{"class":4661},[4173,112988,92022],{"class":4784},[4173,112990,91993],{"class":4766},[4173,112992,112993,112996,112998,113000,113002,113004,113006,113008,113010],{"class":4657,"line":4775},[4173,112994,112995],{"class":4788},"  Schwimmer",[4173,112997,92032],{"class":4784},[4173,112999,6387],{"class":4788},[4173,113001,79032],{"class":4788},[4173,113003,90739],{"class":4788},[4173,113005,11612],{"class":4784},[4173,113007,5961],{"class":4665},[4173,113009,92045],{"class":4784},[4173,113011,92048],{"class":4766},[4173,113013,113014,113017],{"class":4657,"line":6320},[4173,113015,113016],{"class":4784},"  JTextField tName, tVorname, tKlasse;               ",[4173,113018,92056],{"class":4766},[4173,113020,113021,113024,113026],{"class":4657,"line":6325},[4173,113022,113023],{"class":4788},"  public",[4173,113025,90695],{"class":4661},[4173,113027,7062],{"class":4784},[4173,113029,113030,113033,113035,113037,113039,113041,113043,113045,113047,113049,113051,113053],{"class":4657,"line":6343},[4173,113031,113032],{"class":4665},"    this",[4173,113034,7834],{"class":4784},[4173,113036,81238],{"class":4661},[4173,113038,6390],{"class":4784},[4173,113040,81243],{"class":4788},[4173,113042,81729],{"class":4661},[4173,113044,6390],{"class":4784},[4173,113046,14278],{"class":4665},[4173,113048,42920],{"class":4784},[4173,113050,14223],{"class":4665},[4173,113052,92089],{"class":4784},[4173,113054,92092],{"class":4766},[4173,113056,113057,113059,113061,113063,113065,113067,113069],{"class":4657,"line":6348},[4173,113058,113032],{"class":4665},[4173,113060,7834],{"class":4784},[4173,113062,92101],{"class":4661},[4173,113064,6390],{"class":4784},[4173,113066,92106],{"class":4669},[4173,113068,86471],{"class":4784},[4173,113070,91993],{"class":4766},[4173,113072,113073,113075,113077,113079,113081],{"class":4657,"line":6457},[4173,113074,113032],{"class":4665},[4173,113076,7834],{"class":4784},[4173,113078,81114],{"class":4661},[4173,113080,92121],{"class":4784},[4173,113082,91993],{"class":4766},[4173,113084,113085,113087,113089,113091,113093,113095,113097,113099,113101],{"class":4657,"line":6462},[4173,113086,113032],{"class":4665},[4173,113088,7834],{"class":4784},[4173,113090,81129],{"class":4661},[4173,113092,6390],{"class":4784},[4173,113094,35097],{"class":4665},[4173,113096,42920],{"class":4784},[4173,113098,90825],{"class":4665},[4173,113100,92142],{"class":4784},[4173,113102,91993],{"class":4766},[4173,113104,113105,113107,113109,113111,113113,113115,113117],{"class":4657,"line":6468},[4173,113106,113032],{"class":4665},[4173,113108,7834],{"class":4784},[4173,113110,81149],{"class":4661},[4173,113112,6390],{"class":4784},[4173,113114,90836],{"class":4665},[4173,113116,92159],{"class":4784},[4173,113118,91993],{"class":4766},[4173,113120,113121],{"class":4657,"line":6473},[4173,113122,113123],{"class":4766},"                                                                        \u002F\u002F0,5\n",[4173,113125,113126,113129,113131,113133,113135,113137,113139],{"class":4657,"line":6479},[4173,113127,113128],{"class":4784},"    JLabel jlUeberschrift ",[4173,113130,6387],{"class":4788},[4173,113132,79032],{"class":4788},[4173,113134,81563],{"class":4661},[4173,113136,6390],{"class":4784},[4173,113138,92181],{"class":4669},[4173,113140,92184],{"class":4784},[4173,113142,113143,113146,113148,113150,113152,113154,113156,113158,113160,113162,113164],{"class":4657,"line":6503},[4173,113144,113145],{"class":4784},"    jlUeberschrift.",[4173,113147,81578],{"class":4661},[4173,113149,6390],{"class":4784},[4173,113151,81243],{"class":4788},[4173,113153,81585],{"class":4661},[4173,113155,6390],{"class":4784},[4173,113157,90890],{"class":4669},[4173,113159,92204],{"class":4784},[4173,113161,83246],{"class":4665},[4173,113163,92209],{"class":4784},[4173,113165,92092],{"class":4766},[4173,113167,113168,113171,113173],{"class":4657,"line":6516},[4173,113169,113170],{"class":4661},"    add",[4173,113172,92218],{"class":4784},[4173,113174,91993],{"class":4766},[4173,113176,113177,113180,113182,113184,113186,113188],{"class":4657,"line":6971},[4173,113178,113179],{"class":4784},"    JPanel panelSchwimmer1 ",[4173,113181,6387],{"class":4788},[4173,113183,79032],{"class":4788},[4173,113185,81533],{"class":4661},[4173,113187,92234],{"class":4784},[4173,113189,91993],{"class":4766},[4173,113191,113192,113195,113197,113199,113201,113203,113205,113207],{"class":4657,"line":10649},[4173,113193,113194],{"class":4784},"    JLabel jlName ",[4173,113196,6387],{"class":4788},[4173,113198,79032],{"class":4788},[4173,113200,81563],{"class":4661},[4173,113202,6390],{"class":4784},[4173,113204,92252],{"class":4669},[4173,113206,92255],{"class":4784},[4173,113208,91993],{"class":4766},[4173,113210,113211,113214,113216,113218],{"class":4657,"line":10654},[4173,113212,113213],{"class":4784},"    panelSchwimmer1.",[4173,113215,79955],{"class":4661},[4173,113217,92267],{"class":4784},[4173,113219,91993],{"class":4766},[4173,113221,113222,113225,113227,113229,113231,113233,113235,113237],{"class":4657,"line":10659},[4173,113223,113224],{"class":4784},"    tName ",[4173,113226,6387],{"class":4788},[4173,113228,79032],{"class":4788},[4173,113230,83065],{"class":4661},[4173,113232,6390],{"class":4784},[4173,113234,83246],{"class":4665},[4173,113236,92287],{"class":4784},[4173,113238,91993],{"class":4766},[4173,113240,113241,113243,113245,113247],{"class":4657,"line":10664},[4173,113242,113213],{"class":4784},[4173,113244,79955],{"class":4661},[4173,113246,92298],{"class":4784},[4173,113248,91993],{"class":4766},[4173,113250,113251,113253,113255],{"class":4657,"line":10676},[4173,113252,113170],{"class":4661},[4173,113254,92307],{"class":4784},[4173,113256,91993],{"class":4766},[4173,113258,113259,113262,113264,113266,113268],{"class":4657,"line":10681},[4173,113260,113261],{"class":4784},"    JPanel panelSchwimmer2 ",[4173,113263,6387],{"class":4788},[4173,113265,79032],{"class":4788},[4173,113267,81533],{"class":4661},[4173,113269,65878],{"class":4784},[4173,113271,113272,113275,113277,113279,113281,113283,113285],{"class":4657,"line":10702},[4173,113273,113274],{"class":4784},"    JLabel jlVorname ",[4173,113276,6387],{"class":4788},[4173,113278,79032],{"class":4788},[4173,113280,81563],{"class":4661},[4173,113282,6390],{"class":4784},[4173,113284,92338],{"class":4669},[4173,113286,92341],{"class":4784},[4173,113288,113289,113292,113294,113296],{"class":4657,"line":10707},[4173,113290,113291],{"class":4784},"    panelSchwimmer2.",[4173,113293,79955],{"class":4661},[4173,113295,92351],{"class":4784},[4173,113297,92354],{"class":4766},[4173,113299,113300,113303,113305,113307,113309,113311,113313],{"class":4657,"line":10712},[4173,113301,113302],{"class":4784},"    tVorname ",[4173,113304,6387],{"class":4788},[4173,113306,79032],{"class":4788},[4173,113308,83065],{"class":4661},[4173,113310,6390],{"class":4784},[4173,113312,83246],{"class":4665},[4173,113314,55545],{"class":4784},[4173,113316,113317,113319,113321],{"class":4657,"line":10717},[4173,113318,113291],{"class":4784},[4173,113320,79955],{"class":4661},[4173,113322,92380],{"class":4784},[4173,113324,113325,113327],{"class":4657,"line":10727},[4173,113326,113170],{"class":4661},[4173,113328,92387],{"class":4784},[4173,113330,113331,113334,113336,113338,113340],{"class":4657,"line":10732},[4173,113332,113333],{"class":4784},"    JPanel panelKlasse ",[4173,113335,6387],{"class":4788},[4173,113337,79032],{"class":4788},[4173,113339,81533],{"class":4661},[4173,113341,65878],{"class":4784},[4173,113343,113344,113347,113349,113351,113353,113355,113357],{"class":4657,"line":10737},[4173,113345,113346],{"class":4784},"    JLabel jlKlasse ",[4173,113348,6387],{"class":4788},[4173,113350,79032],{"class":4788},[4173,113352,81563],{"class":4661},[4173,113354,6390],{"class":4784},[4173,113356,92416],{"class":4669},[4173,113358,92341],{"class":4784},[4173,113360,113361,113364,113366],{"class":4657,"line":10742},[4173,113362,113363],{"class":4784},"    panelKlasse.",[4173,113365,79955],{"class":4661},[4173,113367,92428],{"class":4784},[4173,113369,113370,113373,113375,113377,113379,113381,113383,113385],{"class":4657,"line":10752},[4173,113371,113372],{"class":4784},"    tKlasse ",[4173,113374,6387],{"class":4788},[4173,113376,79032],{"class":4788},[4173,113378,83065],{"class":4661},[4173,113380,6390],{"class":4784},[4173,113382,14318],{"class":4665},[4173,113384,92446],{"class":4784},[4173,113386,92354],{"class":4766},[4173,113388,113389,113391,113393],{"class":4657,"line":10757},[4173,113390,113363],{"class":4784},[4173,113392,79955],{"class":4661},[4173,113394,92457],{"class":4784},[4173,113396,113397,113399],{"class":4657,"line":10762},[4173,113398,113170],{"class":4661},[4173,113400,92464],{"class":4784},[4173,113402,113403,113406,113408,113410,113412,113414,113416,113418],{"class":4657,"line":10767},[4173,113404,113405],{"class":4784},"    JButton jbSpeichern ",[4173,113407,6387],{"class":4788},[4173,113409,79032],{"class":4788},[4173,113411,81836],{"class":4661},[4173,113413,6390],{"class":4784},[4173,113415,84579],{"class":4669},[4173,113417,92482],{"class":4784},[4173,113419,91993],{"class":4766},[4173,113421,113422,113425,113427,113429,113431,113433],{"class":4657,"line":10772},[4173,113423,113424],{"class":4784},"    jbSpeichern.",[4173,113426,81461],{"class":4661},[4173,113428,6390],{"class":4784},[4173,113430,81243],{"class":4788},[4173,113432,91152],{"class":4661},[4173,113434,81860],{"class":4784},[4173,113436,113437,113439,113441],{"class":4657,"line":10777},[4173,113438,113170],{"class":4661},[4173,113440,92506],{"class":4784},[4173,113442,91993],{"class":4766},[4173,113444,113445,113448,113450,113452,113454,113456,113458,113460],{"class":4657,"line":10782},[4173,113446,113447],{"class":4784},"    JButton jbLoeschen ",[4173,113449,6387],{"class":4788},[4173,113451,79032],{"class":4788},[4173,113453,81836],{"class":4661},[4173,113455,6390],{"class":4784},[4173,113457,92524],{"class":4669},[4173,113459,92527],{"class":4784},[4173,113461,91993],{"class":4766},[4173,113463,113464,113467,113469,113471,113473,113475],{"class":4657,"line":10787},[4173,113465,113466],{"class":4784},"    jbLoeschen.",[4173,113468,81461],{"class":4661},[4173,113470,6390],{"class":4784},[4173,113472,81243],{"class":4788},[4173,113474,91202],{"class":4661},[4173,113476,92545],{"class":4784},[4173,113478,113479,113481,113483],{"class":4657,"line":10800},[4173,113480,113170],{"class":4661},[4173,113482,92552],{"class":4784},[4173,113484,91993],{"class":4766},[4173,113486,113487,113489,113491,113493,113495,113497,113499],{"class":4657,"line":10805},[4173,113488,113032],{"class":4665},[4173,113490,7834],{"class":4784},[4173,113492,83456],{"class":4661},[4173,113494,6390],{"class":4784},[4173,113496,45190],{"class":4665},[4173,113498,86471],{"class":4784},[4173,113500,91993],{"class":4766},[4173,113502,113503],{"class":4657,"line":10818},[4173,113504,113505],{"class":4784},"  }\n",[4173,113507,113508,113510,113512,113514,113516,113518,113520,113522,113524],{"class":4657,"line":10823},[4173,113509,113023],{"class":4788},[4173,113511,79892],{"class":4788},[4173,113513,79934],{"class":4788},[4173,113515,79937],{"class":4661},[4173,113517,6390],{"class":4784},[4173,113519,79693],{"class":4788},[4173,113521,80084],{"class":4784},[4173,113523,31283],{"class":7074},[4173,113525,92595],{"class":4784},[4173,113527,113528,113531,113533,113535],{"class":4657,"line":10836},[4173,113529,113530],{"class":4788},"    new",[4173,113532,90695],{"class":4661},[4173,113534,92234],{"class":4784},[4173,113536,92606],{"class":4766},[4173,113538,113539],{"class":4657,"line":10841},[4173,113540,113505],{"class":4784},[4173,113542,113543,113546,113548,113550,113552,113554],{"class":4657,"line":10846},[4173,113544,113545],{"class":4788},"  class",[4173,113547,91152],{"class":4661},[4173,113549,80628],{"class":4788},[4173,113551,91485],{"class":4661},[4173,113553,92623],{"class":4784},[4173,113555,91993],{"class":4766},[4173,113557,113558],{"class":4657,"line":10851},[4173,113559,113560],{"class":4766},"                                                            \u002F\u002F0,5  Position\n",[4173,113562,113563,113565,113567,113569,113571,113573,113575],{"class":4657,"line":10867},[4173,113564,100265],{"class":4788},[4173,113566,79934],{"class":4788},[4173,113568,82416],{"class":4661},[4173,113570,82419],{"class":4784},[4173,113572,92643],{"class":7074},[4173,113574,92646],{"class":4784},[4173,113576,91993],{"class":4766},[4173,113578,113579,113582,113584,113586,113588,113590],{"class":4657,"line":10872},[4173,113580,113581],{"class":4784},"      String name ",[4173,113583,6387],{"class":4788},[4173,113585,92657],{"class":4784},[4173,113587,83296],{"class":4661},[4173,113589,92662],{"class":4784},[4173,113591,91993],{"class":4766},[4173,113593,113594,113597,113599,113601,113603,113605],{"class":4657,"line":10877},[4173,113595,113596],{"class":4784},"      String vorname ",[4173,113598,6387],{"class":4788},[4173,113600,92673],{"class":4784},[4173,113602,83296],{"class":4661},[4173,113604,92234],{"class":4784},[4173,113606,91993],{"class":4766},[4173,113608,113609,113612,113614,113616,113618,113620],{"class":4657,"line":10882},[4173,113610,113611],{"class":4784},"      String klasse ",[4173,113613,6387],{"class":4788},[4173,113615,92688],{"class":4784},[4173,113617,83296],{"class":4661},[4173,113619,92693],{"class":4784},[4173,113621,91993],{"class":4766},[4173,113623,113624,113627,113629,113631,113633,113635,113637,113639],{"class":4657,"line":10890},[4173,113625,113626],{"class":4784},"      starterliste[Schwimmer.teilnehmer",[4173,113628,4778],{"class":4788},[4173,113630,14223],{"class":4665},[4173,113632,85496],{"class":4784},[4173,113634,6387],{"class":4788},[4173,113636,79032],{"class":4788},[4173,113638,90739],{"class":4661},[4173,113640,92715],{"class":4784},[4173,113642,113643,113646],{"class":4657,"line":10895},[4173,113644,113645],{"class":4766},"                               \u002F\u002F1",[4173,113647,92723],{"class":4766},[4173,113649,113650,113653,113655,113657],{"class":4657,"line":10904},[4173,113651,113652],{"class":4784},"      System.out.",[4173,113654,79074],{"class":4661},[4173,113656,92234],{"class":4784},[4173,113658,92734],{"class":4766},[4173,113660,113661,113664,113666,113668,113670,113672,113674,113676,113678,113680,113682],{"class":4657,"line":10909},[4173,113662,113663],{"class":4788},"      for",[4173,113665,4171],{"class":4784},[4173,113667,64831],{"class":4788},[4173,113669,92745],{"class":4784},[4173,113671,6387],{"class":4788},[4173,113673,25370],{"class":4665},[4173,113675,92752],{"class":4784},[4173,113677,24345],{"class":4788},[4173,113679,92757],{"class":4784},[4173,113681,10670],{"class":4788},[4173,113683,92762],{"class":4784},[4173,113685,113686,113688,113690,113692],{"class":4657,"line":10914},[4173,113687,100097],{"class":4784},[4173,113689,79074],{"class":4661},[4173,113691,92771],{"class":4784},[4173,113693,92774],{"class":4766},[4173,113695,113696,113699],{"class":4657,"line":10919},[4173,113697,113698],{"class":4784},"      } ",[4173,113700,92781],{"class":4766},[4173,113702,113703],{"class":4657,"line":10933},[4173,113704,100385],{"class":4784},[4173,113706,113707],{"class":4657,"line":10938},[4173,113708,113505],{"class":4784},[4173,113710,113711],{"class":4657,"line":10959},[4173,113712,7090],{"class":4784},[16,113714,113716],{"id":113715},"zuruecksetzenereignisjava","ZuruecksetzenEreignis.java",[4647,113718,113720],{"className":78931,"code":113719,"language":78933,"meta":269,"style":269},"import java.awt.event.*;\nimport javax.swing.*;          \u002F\u002F0,5 nur notwendige Importe\nclass ZuruecksetzenEreignis implements ActionListener{\n  JTextField tName, tVorname, tKlasse;             \u002F\u002F0,5\n  ZuruecksetzenEreignis(JTextField tName,JTextField tVorname,JTextField tKlasse){\n    this.tName = tName;                         \u002F\u002F1\n    this.tVorname = tVorname;  \u002F\u002F1 alle Zuweisungen\n    this.tKlasse = tKlasse;\n  }\n  public void actionPerformed(ActionEvent ae){    \u002F\u002F0,5\n    tName.setText(\"\");\n    tVorname.setText(\"\");               \u002F\u002F1 alle set - Befehle\n    tKlasse.setText(\"\");\n  }\n}\nPizza-Übung von ITT78  (PRIO, bei bedarf schwimmer anschauen)\n\n",[4653,113721,113722,113732,113744,113756,113763,113782,113794,113806,113816,113820,113836,113849,113864,113877,113881,113885],{"__ignoreMap":269},[4173,113723,113724,113726,113728,113730],{"class":4657,"line":4658},[4173,113725,79019],{"class":4788},[4173,113727,80913],{"class":4784},[4173,113729,6328],{"class":4665},[4173,113731,55559],{"class":4784},[4173,113733,113734,113736,113738,113740,113742],{"class":4657,"line":270},[4173,113735,79019],{"class":4788},[4173,113737,80877],{"class":4784},[4173,113739,6328],{"class":4665},[4173,113741,92823],{"class":4784},[4173,113743,92826],{"class":4766},[4173,113745,113746,113748,113750,113752,113754],{"class":4657,"line":1263},[4173,113747,79983],{"class":4788},[4173,113749,91202],{"class":4661},[4173,113751,80628],{"class":4788},[4173,113753,91485],{"class":4661},[4173,113755,92839],{"class":4784},[4173,113757,113758,113761],{"class":4657,"line":4770},[4173,113759,113760],{"class":4784},"  JTextField tName, tVorname, tKlasse;             ",[4173,113762,91993],{"class":4766},[4173,113764,113765,113768,113770,113772,113774,113776,113778,113780],{"class":4657,"line":4775},[4173,113766,113767],{"class":4661},"  ZuruecksetzenEreignis",[4173,113769,91673],{"class":4784},[4173,113771,92856],{"class":7074},[4173,113773,92859],{"class":4784},[4173,113775,92862],{"class":7074},[4173,113777,92859],{"class":4784},[4173,113779,92870],{"class":7074},[4173,113781,92595],{"class":4784},[4173,113783,113784,113786,113788,113790,113792],{"class":4657,"line":6320},[4173,113785,113032],{"class":4665},[4173,113787,92879],{"class":4784},[4173,113789,6387],{"class":4788},[4173,113791,92884],{"class":4784},[4173,113793,92092],{"class":4766},[4173,113795,113796,113798,113800,113802,113804],{"class":4657,"line":6325},[4173,113797,113032],{"class":4665},[4173,113799,92893],{"class":4784},[4173,113801,6387],{"class":4788},[4173,113803,92898],{"class":4784},[4173,113805,92901],{"class":4766},[4173,113807,113808,113810,113812,113814],{"class":4657,"line":6343},[4173,113809,113032],{"class":4665},[4173,113811,92908],{"class":4784},[4173,113813,6387],{"class":4788},[4173,113815,92913],{"class":4784},[4173,113817,113818],{"class":4657,"line":6348},[4173,113819,113505],{"class":4784},[4173,113821,113822,113824,113826,113828,113830,113832,113834],{"class":4657,"line":6457},[4173,113823,113023],{"class":4788},[4173,113825,79934],{"class":4788},[4173,113827,82416],{"class":4661},[4173,113829,82419],{"class":4784},[4173,113831,92643],{"class":7074},[4173,113833,92646],{"class":4784},[4173,113835,91993],{"class":4766},[4173,113837,113838,113841,113843,113845,113847],{"class":4657,"line":6462},[4173,113839,113840],{"class":4784},"    tName.",[4173,113842,81370],{"class":4661},[4173,113844,6390],{"class":4784},[4173,113846,46851],{"class":4669},[4173,113848,55545],{"class":4784},[4173,113850,113851,113854,113856,113858,113860,113862],{"class":4657,"line":6468},[4173,113852,113853],{"class":4784},"    tVorname.",[4173,113855,81370],{"class":4661},[4173,113857,6390],{"class":4784},[4173,113859,46851],{"class":4669},[4173,113861,92960],{"class":4784},[4173,113863,92963],{"class":4766},[4173,113865,113866,113869,113871,113873,113875],{"class":4657,"line":6473},[4173,113867,113868],{"class":4784},"    tKlasse.",[4173,113870,81370],{"class":4661},[4173,113872,6390],{"class":4784},[4173,113874,46851],{"class":4669},[4173,113876,55545],{"class":4784},[4173,113878,113879],{"class":4657,"line":6479},[4173,113880,113505],{"class":4784},[4173,113882,113883],{"class":4657,"line":6503},[4173,113884,7090],{"class":4784},[4173,113886,113887,113890,113892,113895,113898],{"class":4657,"line":6516},[4173,113888,113889],{"class":4784},"Pizza",[4173,113891,4778],{"class":4788},[4173,113893,113894],{"class":4784},"Übung von ",[4173,113896,113897],{"class":4661},"ITT78",[4173,113899,113900],{"class":4784},"  (PRIO, bei bedarf schwimmer anschauen)\n",[16,113902,113904],{"id":113903},"pizzatestjava","PizzaTest.java",[4647,113906,113908],{"className":78931,"code":113907,"language":78933,"meta":269,"style":269},"class PizzaTest {\n  public static void main(String[] args){\n    \u002F\u002F Titel für das Fenster wird hier übergeben\n    new PizzaBestellung(\"L'Osteria ITT8\");\n  }\n}\n\n",[4653,113909,113910,113918,113938,113943,113955,113959],{"__ignoreMap":269},[4173,113911,113912,113914,113916],{"class":4657,"line":4658},[4173,113913,79983],{"class":4788},[4173,113915,93004],{"class":4661},[4173,113917,51614],{"class":4784},[4173,113919,113920,113922,113924,113926,113928,113930,113932,113934,113936],{"class":4657,"line":270},[4173,113921,113023],{"class":4788},[4173,113923,79892],{"class":4788},[4173,113925,79934],{"class":4788},[4173,113927,79937],{"class":4661},[4173,113929,6390],{"class":4784},[4173,113931,79693],{"class":4788},[4173,113933,80084],{"class":4784},[4173,113935,31283],{"class":7074},[4173,113937,92595],{"class":4784},[4173,113939,113940],{"class":4657,"line":1263},[4173,113941,113942],{"class":4766},"    \u002F\u002F Titel für das Fenster wird hier übergeben\n",[4173,113944,113945,113947,113949,113951,113953],{"class":4657,"line":4770},[4173,113946,113530],{"class":4788},[4173,113948,93038],{"class":4661},[4173,113950,6390],{"class":4784},[4173,113952,93043],{"class":4669},[4173,113954,55545],{"class":4784},[4173,113956,113957],{"class":4657,"line":4775},[4173,113958,113505],{"class":4784},[4173,113960,113961],{"class":4657,"line":6320},[4173,113962,7090],{"class":4784},[16,113964,113966],{"id":113965},"pizzabestellungjava","Pizzabestellung.java",[4647,113968,113970],{"className":78931,"code":113969,"language":78933,"meta":269,"style":269},"import java.awt.*; \u002F\u002F Datentypen wie JTextField\nimport java.awt.event.*; \u002F\u002FEreignisbehandlung\nimport java.io.*; \u002F\u002F Für Input und Output\nimport javax.swing.*; \u002F\u002F Für JFrame etc.\nclass PizzaBestellung extends JFrame implements ActionListener{\n                                                         \u002F\u002FInterface\n  \u002F\u002FInstanzvariablen - Global verfügbar -> Wenn nicht notwendig: Im Konstruktor anlegen\n  JTextField jtName, jtTel;\n  JRadioButton g_26, g_30;\n  ButtonGroup group;\n  JComboBox\u003CString> pizzaArt;\n  JCheckBox jcBSalami, jcBPeperoni, jcBSchinken;\n  Integer bestellNr = 1;\n  public PizzaBestellung(String titel){\n    \u002F\u002F JTextField jtName, jtTel; --- Für den Fall, dass die Felder nicht Global verfügbar sein müssen\n    \u002F\u002F Legt Fenstertitel fest\n    super(titel); \u002F\u002Fsuper(); wird automatisch ausgeführt, wenn nicht anders spezifiziert\n    \u002F\u002FsetTitle(titel); - Alternativ\n    setLayout(new GridLayout(8,1));\n    \u002F\u002Fkein Layout: setLayout(null);\n    Font schrift = new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,30);\n    Font schrift1 = new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,20);\n    \u002F\u002F-------------------- Zeile 1: Farbiges Text-Label ---------------------\n    JLabel lb1 = new JLabel(\"Pizzabestellung\",JLabel.CENTER);\n    lb1.setForeground(Color.RED);      \u002F\u002F ... new Color(123,45,6);\n    lb1.setBackground(Color.YELLOW);\n    lb1.setOpaque(true);\n    lb1.setFont(schrift);\n    \u002F\u002Flb1.setFont(new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,30));\n    add(lb1);\n    \u002F\u002F--------------------- Zeile 2: Textfeld für Name --------------------\n    JPanel pZeile2 = new JPanel();  \u002F\u002Fleeren Container erzeugen\n                                    \u002F\u002FDefault: FlowLayout\n    JLabel jlName = new JLabel(\"Name: \");\n    jlName.setFont(schrift);\n    pZeile2.add(jlName); \u002F\u002FKomponenten dem Panel zuordnen\n    jtName = new JTextField(20);\n    pZeile2.add(jtName);\n    add(pZeile2); \u002F\u002FPanel in zweite Grid-Zelle\n    \u002F\u002F--------------------- Zeile 3: Textfeld für Telefonnummer --------------------\n    JPanel pZeile3 = new JPanel();\n    JLabel jlTel = new JLabel(\"Tel.: \");\n    jlTel.setFont(schrift);\n    pZeile3.add(jlTel); \u002F\u002FKomponenten dem Panel zugeordnet\n    jtTel = new JTextField(20);\n    pZeile3.add(jtTel);\n    add(pZeile3);            \u002F\u002FPanel in dritte Grid-Zelle\n    \u002F\u002F--------------------- Zeile 4: Radiobutton-Group für Größe --------------------\n    JPanel pZeile4 = new JPanel();\n                     \u002F\u002FOptik\n    g_26 = new JRadioButton(\"26cm\");\n    g_26.setSelected(true);\n    g_26.setFont(schrift);\n    pZeile4.add(g_26);\n    g_30 = new JRadioButton(\"30cm\");\n    g_30.setSelected(true); \u002F\u002Fwird ignoriert aufgrund der button group\n    g_30.setFont(schrift);\n    pZeile4.add(g_30);\n    add(pZeile4);\n    \u002F\u002FLogik\n    group = new ButtonGroup();\n    group.add(g_26);\n    group.add(g_30);\n    \u002F\u002F--------------------- Zeile 5: Dropdown für Sorte --------------------\n    String[] pizza = { \"Salami\", \"Hawaii\", \"VierJahresZeiten\" , \"Ruccula\" };\n    pizzaArt = new JComboBox\u003CString>(pizza);\n    pizzaArt.setSelectedIndex(2); \u002F\u002F Standard-Auswahl festlegen\n    pizzaArt.setFont(schrift);\n    add(pizzaArt);\n    \u002F\u002F--------------------- Zeile 6: Label --------------------\n    JLabel lb6 = new JLabel(\"Extra: \",JLabel.LEFT);\n    lb6.setForeground(Color.BLUE);      \u002F\u002F ... new Color(123,45,6);\n    lb6.setFont(schrift);\n    add(lb6);\n    \u002F\u002F--------------------- Zeile 7: Checkboxen für Zusatzoptionen --------------------\n    JPanel pZeile7 = new JPanel();\n    jcBSalami = new JCheckBox(\"Salami\");\n    jcBSalami.setFont(schrift1);\n    pZeile7.add(jcBSalami);\n    jcBPeperoni = new JCheckBox(\"Peperoni\");\n    jcBPeperoni.setFont(schrift1);\n    pZeile7.add(jcBPeperoni);\n    jcBSchinken = new JCheckBox(\"Schinken\");\n    jcBSchinken.setFont(schrift1);\n    pZeile7.add(jcBSchinken);\n    add(pZeile7);\n    \u002F\u002F--------------------- Zeile 8: Panel für Buttons --------------------\n    JPanel pZeile8 = new JPanel();\n    JButton jbSenden = new JButton(\"Senden\");\n    jbSenden.setFont(schrift1);\n    jbSenden.addActionListener(this);\n    pZeile8.add(jbSenden);\n    JButton jbAbbrechen = new JButton(\"Abbrechen\");\n    jbAbbrechen.setFont(schrift1);\n    jbAbbrechen.addActionListener(new AbbrechenEreignis());\n    pZeile8.add(jbAbbrechen);\n    JButton ende = new JButton(\"Ende\");\n    ende.setFont(schrift1);\n    ende.addActionListener(new EndeEreignis(jtName));\n    pZeile8.add(ende);\n    add(pZeile8);\n    setSize(400,400);\n    setResizable(false);\n    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n    setVisible(true);\n  }\n  public void actionPerformed(ActionEvent e){\n    \u002F\u002Fhier steht das, was passiert\n    System.out.println(\"Action Performed\");\n    if (e.getActionCommand().equals(\"Senden\"))\n    {\n      \u002F\u002FTextfelder\n      String name = jtName.getText();    \u002F\u002FAuslesen des Textfeldes\n      String tel  = jtTel.getText();\n      \u002F\u002FRadioButton\n      String groesse;\n      if (g_26.isSelected()) {\n         groesse = \"26cm\";\n      }\n      else {\n         groesse = \"30cm\";\n      } \u002F\u002F end of if-else\n      \u002F\u002FComboBox - Implizites Typecasting, da Object returned wird\n      String p_Art = (String)pizzaArt.getSelectedItem();\n      \u002F\u002FCheckBoxen\n      String salami;\n      if (jcBSalami.isSelected()) {\n         salami = \"Salami\";\n      }\n      else {\n         salami = \"nein\";\n      } \u002F\u002F end of if-else\n      String peperoni;\n      if (jcBPeperoni.isSelected()) {\n         peperoni = \"Peperoni\";\n      }\n      else {\n         peperoni = \"nein\";\n      } \u002F\u002F end of if-else\n      String schinken;\n      if (jcBSchinken.isSelected()) {\n         schinken = \"Schinken\";\n      }\n      else {\n         schinken = \"nein\";\n      } \u002F\u002F end of if-else\n      \u002F\u002FAusgabe in der Console\n      System.out.println(\"------Pizzabestellung-------\");\n      System.out.println();\n      System.out.println(\"Name : \" + name);\n      System.out.println(\"Tel. : \" + tel);\n      System.out.println();\n      System.out.println(\"Groesse: \" + groesse);\n      System.out.println(\"Art : \" + p_Art);\n      System.out.println(\"Extras:\");\n      System.out.println(salami);\n      System.out.println(peperoni);\n      System.out.println(schinken);\n      System.out.println();\n      System.out.println(\"Vielen Dank fuer ihre Bestellung!\");\n      JOptionPane.showMessageDialog(null,\"Best.-Nr. \\n\"+\nbestellNr,\"Bestellungsübersicht\",JOptionPane.INFORMATION_MESSAGE);\n      try {\n        \u002F\u002F File-Writer im Append-Modus durch \"true\" als zweiter Übergabeparameter\n        BufferedWriter writer = new BufferedWriter(new FileWriter(\"Bestellungen.txt\", true)); \u002F\u002F\nIn Datei schreiben durch Angabe des Dateinamen\n        writer.write(bestellNr.toString());\n        writer.newLine(); \u002F\u002F Neue Zeile in die Datei\n        writer.close();\n      } catch (Exception exception) {\n        exception.printStackTrace();\n      }\n      System.out.println(\"Einlesen der letzten Bestellungsnummern:\\n\");\n      try {\n        BufferedReader in = new BufferedReader(new FileReader(\"Bestellungen.txt\"));\n        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));\n        br2bw(in,out);\n      }\n      catch (Exception exception) {\n        exception.printStackTrace();\n      }\n      bestellNr++;\n    }\n    else {\n    } \u002F\u002F end of if-else\n  }\n  public static void br2bw(BufferedReader br, BufferedWriter bw)\n    throws IOException {\n    String z;                             \u002F\u002F Zeile\n    while ((z = br.readLine()) != null) { \u002F\u002F lesen, Stromende pruefen,\n      bw.write(z);                        \u002F\u002F ausgeben und\n      bw.newLine();                       \u002F\u002F Zeilenwechsel ausgeben\n    }\n    br.close();\n    bw.close(); \u002F\u002F Schließt den Output-Stream permanent! Auch System.out!\n  }\n  class AbbrechenEreignis implements ActionListener{\n    public void actionPerformed(ActionEvent e){\n      \u002F\u002FTextfelder leeren\n      jtName.setText(\"\");\n      jtTel.setText(\"\");\n      \u002F\u002FRadiobutton unausgewaehlt\n      g_26.setSelected(true);\n      \u002F\u002FComboBox - Vorauswahl\n      pizzaArt.setSelectedIndex(2);\n      \u002F\u002FCheckboxen leeren\n      jcBSalami.setSelected(false);\n      jcBPeperoni.setSelected(false);\n      jcBSchinken.setSelected(false);\n    }\n  }\n}\n\n",[4653,113971,113972,113984,113996,114008,114020,114036,114041,114046,114051,114056,114061,114070,114075,114086,114098,114103,114108,114118,114123,114144,114149,114174,114199,114204,114221,114232,114240,114252,114260,114265,114271,114276,114291,114296,114312,114321,114332,114349,114357,114365,114370,114383,114400,114409,114420,114437,114445,114453,114458,114471,114476,114493,114506,114514,114523,114540,114555,114563,114571,114577,114582,114595,114604,114612,114617,114644,114659,114674,114682,114688,114693,114710,114721,114729,114735,114740,114753,114770,114779,114788,114805,114814,114822,114839,114848,114856,114862,114867,114880,114897,114906,114918,114927,114944,114953,114967,114975,114992,115001,115015,115023,115029,115044,115055,115062,115073,115077,115091,115096,115108,115127,115132,115137,115151,115164,115169,115174,115185,115196,115201,115208,115218,115224,115229,115242,115247,115252,115262,115273,115277,115283,115293,115299,115304,115314,115325,115329,115335,115345,115351,115356,115366,115377,115381,115387,115397,115403,115408,115420,115428,115442,115456,115464,115478,115492,115504,115512,115520,115528,115536,115548,115569,115577,115584,115589,115618,115623,115636,115646,115654,115666,115675,115679,115695,115701,115724,115744,115751,115755,115766,115774,115778,115787,115791,115798,115805,115809,115829,115836,115843,115866,115877,115887,115891,115900,115911,115915,115927,115941,115946,115959,115972,115977,115990,115995,116008,116013,116026,116039,116052,116056,116060],{"__ignoreMap":269},[4173,113973,113974,113976,113978,113980,113982],{"class":4657,"line":4658},[4173,113975,79019],{"class":4788},[4173,113977,80902],{"class":4784},[4173,113979,6328],{"class":4665},[4173,113981,6498],{"class":4784},[4173,113983,93075],{"class":4766},[4173,113985,113986,113988,113990,113992,113994],{"class":4657,"line":270},[4173,113987,79019],{"class":4788},[4173,113989,80913],{"class":4784},[4173,113991,6328],{"class":4665},[4173,113993,6498],{"class":4784},[4173,113995,93088],{"class":4766},[4173,113997,113998,114000,114002,114004,114006],{"class":4657,"line":1263},[4173,113999,79019],{"class":4788},[4173,114001,90640],{"class":4784},[4173,114003,6328],{"class":4665},[4173,114005,6498],{"class":4784},[4173,114007,93101],{"class":4766},[4173,114009,114010,114012,114014,114016,114018],{"class":4657,"line":4770},[4173,114011,79019],{"class":4788},[4173,114013,80877],{"class":4784},[4173,114015,6328],{"class":4665},[4173,114017,6498],{"class":4784},[4173,114019,93114],{"class":4766},[4173,114021,114022,114024,114026,114028,114030,114032,114034],{"class":4657,"line":4775},[4173,114023,79983],{"class":4788},[4173,114025,93038],{"class":4661},[4173,114027,80500],{"class":4788},[4173,114029,80986],{"class":4661},[4173,114031,80628],{"class":4788},[4173,114033,91485],{"class":4661},[4173,114035,92839],{"class":4784},[4173,114037,114038],{"class":4657,"line":6320},[4173,114039,114040],{"class":4766},"                                                         \u002F\u002FInterface\n",[4173,114042,114043],{"class":4657,"line":6325},[4173,114044,114045],{"class":4766},"  \u002F\u002FInstanzvariablen - Global verfügbar -> Wenn nicht notwendig: Im Konstruktor anlegen\n",[4173,114047,114048],{"class":4657,"line":6343},[4173,114049,114050],{"class":4784},"  JTextField jtName, jtTel;\n",[4173,114052,114053],{"class":4657,"line":6348},[4173,114054,114055],{"class":4784},"  JRadioButton g_26, g_30;\n",[4173,114057,114058],{"class":4657,"line":6457},[4173,114059,114060],{"class":4784},"  ButtonGroup group;\n",[4173,114062,114063,114066,114068],{"class":4657,"line":6462},[4173,114064,114065],{"class":4784},"  JComboBox\u003C",[4173,114067,79693],{"class":4788},[4173,114069,93170],{"class":4784},[4173,114071,114072],{"class":4657,"line":6468},[4173,114073,114074],{"class":4784},"  JCheckBox jcBSalami, jcBPeperoni, jcBSchinken;\n",[4173,114076,114077,114080,114082,114084],{"class":4657,"line":6473},[4173,114078,114079],{"class":4784},"  Integer bestellNr ",[4173,114081,6387],{"class":4788},[4173,114083,10264],{"class":4665},[4173,114085,55559],{"class":4784},[4173,114087,114088,114090,114092,114094,114096],{"class":4657,"line":6479},[4173,114089,113023],{"class":4788},[4173,114091,93038],{"class":4661},[4173,114093,80001],{"class":4784},[4173,114095,93197],{"class":7074},[4173,114097,92595],{"class":4784},[4173,114099,114100],{"class":4657,"line":6503},[4173,114101,114102],{"class":4766},"    \u002F\u002F JTextField jtName, jtTel; --- Für den Fall, dass die Felder nicht Global verfügbar sein müssen\n",[4173,114104,114105],{"class":4657,"line":6516},[4173,114106,114107],{"class":4766},"    \u002F\u002F Legt Fenstertitel fest\n",[4173,114109,114110,114113,114115],{"class":4657,"line":6971},[4173,114111,114112],{"class":4665},"    super",[4173,114114,93221],{"class":4784},[4173,114116,114117],{"class":4766},"\u002F\u002Fsuper(); wird automatisch ausgeführt, wenn nicht anders spezifiziert\n",[4173,114119,114120],{"class":4657,"line":10649},[4173,114121,114122],{"class":4766},"    \u002F\u002FsetTitle(titel); - Alternativ\n",[4173,114124,114125,114128,114130,114132,114134,114136,114138,114140,114142],{"class":4657,"line":10654},[4173,114126,114127],{"class":4661},"    setLayout",[4173,114129,6390],{"class":4784},[4173,114131,81243],{"class":4788},[4173,114133,81729],{"class":4661},[4173,114135,6390],{"class":4784},[4173,114137,16286],{"class":4665},[4173,114139,42920],{"class":4784},[4173,114141,14223],{"class":4665},[4173,114143,66047],{"class":4784},[4173,114145,114146],{"class":4657,"line":10659},[4173,114147,114148],{"class":4766},"    \u002F\u002Fkein Layout: setLayout(null);\n",[4173,114150,114151,114154,114156,114158,114160,114162,114164,114166,114168,114170,114172],{"class":4657,"line":10664},[4173,114152,114153],{"class":4784},"    Font schrift ",[4173,114155,6387],{"class":4788},[4173,114157,79032],{"class":4788},[4173,114159,81585],{"class":4661},[4173,114161,6390],{"class":4784},[4173,114163,93275],{"class":4669},[4173,114165,93278],{"class":4784},[4173,114167,14419],{"class":4788},[4173,114169,93283],{"class":4784},[4173,114171,93286],{"class":4665},[4173,114173,55545],{"class":4784},[4173,114175,114176,114179,114181,114183,114185,114187,114189,114191,114193,114195,114197],{"class":4657,"line":10676},[4173,114177,114178],{"class":4784},"    Font schrift1 ",[4173,114180,6387],{"class":4788},[4173,114182,79032],{"class":4788},[4173,114184,81585],{"class":4661},[4173,114186,6390],{"class":4784},[4173,114188,93275],{"class":4669},[4173,114190,93278],{"class":4784},[4173,114192,14419],{"class":4788},[4173,114194,93283],{"class":4784},[4173,114196,83246],{"class":4665},[4173,114198,55545],{"class":4784},[4173,114200,114201],{"class":4657,"line":10681},[4173,114202,114203],{"class":4766},"    \u002F\u002F-------------------- Zeile 1: Farbiges Text-Label ---------------------\n",[4173,114205,114206,114209,114211,114213,114215,114217,114219],{"class":4657,"line":10702},[4173,114207,114208],{"class":4784},"    JLabel lb1 ",[4173,114210,6387],{"class":4788},[4173,114212,79032],{"class":4788},[4173,114214,81563],{"class":4661},[4173,114216,6390],{"class":4784},[4173,114218,93334],{"class":4669},[4173,114220,92184],{"class":4784},[4173,114222,114223,114226,114228,114230],{"class":4657,"line":10707},[4173,114224,114225],{"class":4784},"    lb1.",[4173,114227,93344],{"class":4661},[4173,114229,93347],{"class":4784},[4173,114231,93350],{"class":4766},[4173,114233,114234,114236,114238],{"class":4657,"line":10712},[4173,114235,114225],{"class":4784},[4173,114237,93357],{"class":4661},[4173,114239,93360],{"class":4784},[4173,114241,114242,114244,114246,114248,114250],{"class":4657,"line":10717},[4173,114243,114225],{"class":4784},[4173,114245,93367],{"class":4661},[4173,114247,6390],{"class":4784},[4173,114249,45190],{"class":4665},[4173,114251,55545],{"class":4784},[4173,114253,114254,114256,114258],{"class":4657,"line":10727},[4173,114255,114225],{"class":4784},[4173,114257,81578],{"class":4661},[4173,114259,93382],{"class":4784},[4173,114261,114262],{"class":4657,"line":10732},[4173,114263,114264],{"class":4766},"    \u002F\u002Flb1.setFont(new Font(\"Monospaced\",Font.BOLD+Font.ITALIC,30));\n",[4173,114266,114267,114269],{"class":4657,"line":10737},[4173,114268,113170],{"class":4661},[4173,114270,93394],{"class":4784},[4173,114272,114273],{"class":4657,"line":10742},[4173,114274,114275],{"class":4766},"    \u002F\u002F--------------------- Zeile 2: Textfeld für Name --------------------\n",[4173,114277,114278,114281,114283,114285,114287,114289],{"class":4657,"line":10752},[4173,114279,114280],{"class":4784},"    JPanel pZeile2 ",[4173,114282,6387],{"class":4788},[4173,114284,79032],{"class":4788},[4173,114286,81533],{"class":4661},[4173,114288,92234],{"class":4784},[4173,114290,93415],{"class":4766},[4173,114292,114293],{"class":4657,"line":10757},[4173,114294,114295],{"class":4766},"                                    \u002F\u002FDefault: FlowLayout\n",[4173,114297,114298,114300,114302,114304,114306,114308,114310],{"class":4657,"line":10762},[4173,114299,113194],{"class":4784},[4173,114301,6387],{"class":4788},[4173,114303,79032],{"class":4788},[4173,114305,81563],{"class":4661},[4173,114307,6390],{"class":4784},[4173,114309,93435],{"class":4669},[4173,114311,55545],{"class":4784},[4173,114313,114314,114317,114319],{"class":4657,"line":10767},[4173,114315,114316],{"class":4784},"    jlName.",[4173,114318,81578],{"class":4661},[4173,114320,93382],{"class":4784},[4173,114322,114323,114326,114328,114330],{"class":4657,"line":10772},[4173,114324,114325],{"class":4784},"    pZeile2.",[4173,114327,79955],{"class":4661},[4173,114329,93456],{"class":4784},[4173,114331,93459],{"class":4766},[4173,114333,114334,114337,114339,114341,114343,114345,114347],{"class":4657,"line":10777},[4173,114335,114336],{"class":4784},"    jtName ",[4173,114338,6387],{"class":4788},[4173,114340,79032],{"class":4788},[4173,114342,83065],{"class":4661},[4173,114344,6390],{"class":4784},[4173,114346,83246],{"class":4665},[4173,114348,55545],{"class":4784},[4173,114350,114351,114353,114355],{"class":4657,"line":10782},[4173,114352,114325],{"class":4784},[4173,114354,79955],{"class":4661},[4173,114356,93485],{"class":4784},[4173,114358,114359,114361,114363],{"class":4657,"line":10787},[4173,114360,113170],{"class":4661},[4173,114362,93492],{"class":4784},[4173,114364,93495],{"class":4766},[4173,114366,114367],{"class":4657,"line":10800},[4173,114368,114369],{"class":4766},"    \u002F\u002F--------------------- Zeile 3: Textfeld für Telefonnummer --------------------\n",[4173,114371,114372,114375,114377,114379,114381],{"class":4657,"line":10805},[4173,114373,114374],{"class":4784},"    JPanel pZeile3 ",[4173,114376,6387],{"class":4788},[4173,114378,79032],{"class":4788},[4173,114380,81533],{"class":4661},[4173,114382,65878],{"class":4784},[4173,114384,114385,114388,114390,114392,114394,114396,114398],{"class":4657,"line":10818},[4173,114386,114387],{"class":4784},"    JLabel jlTel ",[4173,114389,6387],{"class":4788},[4173,114391,79032],{"class":4788},[4173,114393,81563],{"class":4661},[4173,114395,6390],{"class":4784},[4173,114397,93534],{"class":4669},[4173,114399,55545],{"class":4784},[4173,114401,114402,114405,114407],{"class":4657,"line":10823},[4173,114403,114404],{"class":4784},"    jlTel.",[4173,114406,81578],{"class":4661},[4173,114408,93382],{"class":4784},[4173,114410,114411,114414,114416,114418],{"class":4657,"line":10836},[4173,114412,114413],{"class":4784},"    pZeile3.",[4173,114415,79955],{"class":4661},[4173,114417,93555],{"class":4784},[4173,114419,93558],{"class":4766},[4173,114421,114422,114425,114427,114429,114431,114433,114435],{"class":4657,"line":10841},[4173,114423,114424],{"class":4784},"    jtTel ",[4173,114426,6387],{"class":4788},[4173,114428,79032],{"class":4788},[4173,114430,83065],{"class":4661},[4173,114432,6390],{"class":4784},[4173,114434,83246],{"class":4665},[4173,114436,55545],{"class":4784},[4173,114438,114439,114441,114443],{"class":4657,"line":10846},[4173,114440,114413],{"class":4784},[4173,114442,79955],{"class":4661},[4173,114444,93584],{"class":4784},[4173,114446,114447,114449,114451],{"class":4657,"line":10851},[4173,114448,113170],{"class":4661},[4173,114450,93591],{"class":4784},[4173,114452,93594],{"class":4766},[4173,114454,114455],{"class":4657,"line":10867},[4173,114456,114457],{"class":4766},"    \u002F\u002F--------------------- Zeile 4: Radiobutton-Group für Größe --------------------\n",[4173,114459,114460,114463,114465,114467,114469],{"class":4657,"line":10872},[4173,114461,114462],{"class":4784},"    JPanel pZeile4 ",[4173,114464,6387],{"class":4788},[4173,114466,79032],{"class":4788},[4173,114468,81533],{"class":4661},[4173,114470,65878],{"class":4784},[4173,114472,114473],{"class":4657,"line":10877},[4173,114474,114475],{"class":4766},"                     \u002F\u002FOptik\n",[4173,114477,114478,114481,114483,114485,114487,114489,114491],{"class":4657,"line":10882},[4173,114479,114480],{"class":4784},"    g_26 ",[4173,114482,6387],{"class":4788},[4173,114484,79032],{"class":4788},[4173,114486,82150],{"class":4661},[4173,114488,6390],{"class":4784},[4173,114490,93638],{"class":4669},[4173,114492,55545],{"class":4784},[4173,114494,114495,114498,114500,114502,114504],{"class":4657,"line":10890},[4173,114496,114497],{"class":4784},"    g_26.",[4173,114499,82067],{"class":4661},[4173,114501,6390],{"class":4784},[4173,114503,45190],{"class":4665},[4173,114505,55545],{"class":4784},[4173,114507,114508,114510,114512],{"class":4657,"line":10895},[4173,114509,114497],{"class":4784},[4173,114511,81578],{"class":4661},[4173,114513,93382],{"class":4784},[4173,114515,114516,114519,114521],{"class":4657,"line":10904},[4173,114517,114518],{"class":4784},"    pZeile4.",[4173,114520,79955],{"class":4661},[4173,114522,93671],{"class":4784},[4173,114524,114525,114528,114530,114532,114534,114536,114538],{"class":4657,"line":10909},[4173,114526,114527],{"class":4784},"    g_30 ",[4173,114529,6387],{"class":4788},[4173,114531,79032],{"class":4788},[4173,114533,82150],{"class":4661},[4173,114535,6390],{"class":4784},[4173,114537,93687],{"class":4669},[4173,114539,55545],{"class":4784},[4173,114541,114542,114545,114547,114549,114551,114553],{"class":4657,"line":10914},[4173,114543,114544],{"class":4784},"    g_30.",[4173,114546,82067],{"class":4661},[4173,114548,6390],{"class":4784},[4173,114550,45190],{"class":4665},[4173,114552,79107],{"class":4784},[4173,114554,93705],{"class":4766},[4173,114556,114557,114559,114561],{"class":4657,"line":10919},[4173,114558,114544],{"class":4784},[4173,114560,81578],{"class":4661},[4173,114562,93382],{"class":4784},[4173,114564,114565,114567,114569],{"class":4657,"line":10933},[4173,114566,114518],{"class":4784},[4173,114568,79955],{"class":4661},[4173,114570,93722],{"class":4784},[4173,114572,114573,114575],{"class":4657,"line":10938},[4173,114574,113170],{"class":4661},[4173,114576,93729],{"class":4784},[4173,114578,114579],{"class":4657,"line":10959},[4173,114580,114581],{"class":4766},"    \u002F\u002FLogik\n",[4173,114583,114584,114587,114589,114591,114593],{"class":4657,"line":10964},[4173,114585,114586],{"class":4784},"    group ",[4173,114588,6387],{"class":4788},[4173,114590,79032],{"class":4788},[4173,114592,82205],{"class":4661},[4173,114594,65878],{"class":4784},[4173,114596,114597,114600,114602],{"class":4657,"line":10969},[4173,114598,114599],{"class":4784},"    group.",[4173,114601,79955],{"class":4661},[4173,114603,93671],{"class":4784},[4173,114605,114606,114608,114610],{"class":4657,"line":10974},[4173,114607,114599],{"class":4784},[4173,114609,79955],{"class":4661},[4173,114611,93722],{"class":4784},[4173,114613,114614],{"class":4657,"line":10982},[4173,114615,114616],{"class":4766},"    \u002F\u002F--------------------- Zeile 5: Dropdown für Sorte --------------------\n",[4173,114618,114619,114622,114624,114626,114628,114630,114632,114634,114636,114638,114640,114642],{"class":4657,"line":10987},[4173,114620,114621],{"class":4788},"    String",[4173,114623,93776],{"class":4784},[4173,114625,6387],{"class":4788},[4173,114627,82241],{"class":4784},[4173,114629,93783],{"class":4669},[4173,114631,8629],{"class":4784},[4173,114633,93788],{"class":4669},[4173,114635,8629],{"class":4784},[4173,114637,93793],{"class":4669},[4173,114639,93796],{"class":4784},[4173,114641,93799],{"class":4669},[4173,114643,93802],{"class":4784},[4173,114645,114646,114649,114651,114653,114655,114657],{"class":4657,"line":10995},[4173,114647,114648],{"class":4784},"    pizzaArt ",[4173,114650,6387],{"class":4788},[4173,114652,79032],{"class":4788},[4173,114654,93814],{"class":4784},[4173,114656,79693],{"class":4788},[4173,114658,93819],{"class":4784},[4173,114660,114661,114664,114666,114668,114670,114672],{"class":4657,"line":11000},[4173,114662,114663],{"class":4784},"    pizzaArt.",[4173,114665,93827],{"class":4661},[4173,114667,6390],{"class":4784},[4173,114669,14206],{"class":4665},[4173,114671,79107],{"class":4784},[4173,114673,93836],{"class":4766},[4173,114675,114676,114678,114680],{"class":4657,"line":11008},[4173,114677,114663],{"class":4784},[4173,114679,81578],{"class":4661},[4173,114681,93382],{"class":4784},[4173,114683,114684,114686],{"class":4657,"line":11013},[4173,114685,113170],{"class":4661},[4173,114687,93851],{"class":4784},[4173,114689,114690],{"class":4657,"line":11021},[4173,114691,114692],{"class":4766},"    \u002F\u002F--------------------- Zeile 6: Label --------------------\n",[4173,114694,114695,114698,114700,114702,114704,114706,114708],{"class":4657,"line":11026},[4173,114696,114697],{"class":4784},"    JLabel lb6 ",[4173,114699,6387],{"class":4788},[4173,114701,79032],{"class":4788},[4173,114703,81563],{"class":4661},[4173,114705,6390],{"class":4784},[4173,114707,93872],{"class":4669},[4173,114709,93875],{"class":4784},[4173,114711,114712,114715,114717,114719],{"class":4657,"line":11034},[4173,114713,114714],{"class":4784},"    lb6.",[4173,114716,93344],{"class":4661},[4173,114718,93885],{"class":4784},[4173,114720,93350],{"class":4766},[4173,114722,114723,114725,114727],{"class":4657,"line":11039},[4173,114724,114714],{"class":4784},[4173,114726,81578],{"class":4661},[4173,114728,93382],{"class":4784},[4173,114730,114731,114733],{"class":4657,"line":11048},[4173,114732,113170],{"class":4661},[4173,114734,93902],{"class":4784},[4173,114736,114737],{"class":4657,"line":11053},[4173,114738,114739],{"class":4766},"    \u002F\u002F--------------------- Zeile 7: Checkboxen für Zusatzoptionen --------------------\n",[4173,114741,114742,114745,114747,114749,114751],{"class":4657,"line":21369},[4173,114743,114744],{"class":4784},"    JPanel pZeile7 ",[4173,114746,6387],{"class":4788},[4173,114748,79032],{"class":4788},[4173,114750,81533],{"class":4661},[4173,114752,65878],{"class":4784},[4173,114754,114755,114758,114760,114762,114764,114766,114768],{"class":4657,"line":21374},[4173,114756,114757],{"class":4784},"    jcBSalami ",[4173,114759,6387],{"class":4788},[4173,114761,79032],{"class":4788},[4173,114763,82052],{"class":4661},[4173,114765,6390],{"class":4784},[4173,114767,93783],{"class":4669},[4173,114769,55545],{"class":4784},[4173,114771,114772,114775,114777],{"class":4657,"line":21380},[4173,114773,114774],{"class":4784},"    jcBSalami.",[4173,114776,81578],{"class":4661},[4173,114778,93952],{"class":4784},[4173,114780,114781,114784,114786],{"class":4657,"line":21385},[4173,114782,114783],{"class":4784},"    pZeile7.",[4173,114785,79955],{"class":4661},[4173,114787,93962],{"class":4784},[4173,114789,114790,114793,114795,114797,114799,114801,114803],{"class":4657,"line":21397},[4173,114791,114792],{"class":4784},"    jcBPeperoni ",[4173,114794,6387],{"class":4788},[4173,114796,79032],{"class":4788},[4173,114798,82052],{"class":4661},[4173,114800,6390],{"class":4784},[4173,114802,93978],{"class":4669},[4173,114804,55545],{"class":4784},[4173,114806,114807,114810,114812],{"class":4657,"line":21402},[4173,114808,114809],{"class":4784},"    jcBPeperoni.",[4173,114811,81578],{"class":4661},[4173,114813,93952],{"class":4784},[4173,114815,114816,114818,114820],{"class":4657,"line":21408},[4173,114817,114783],{"class":4784},[4173,114819,79955],{"class":4661},[4173,114821,93998],{"class":4784},[4173,114823,114824,114827,114829,114831,114833,114835,114837],{"class":4657,"line":21413},[4173,114825,114826],{"class":4784},"    jcBSchinken ",[4173,114828,6387],{"class":4788},[4173,114830,79032],{"class":4788},[4173,114832,82052],{"class":4661},[4173,114834,6390],{"class":4784},[4173,114836,94014],{"class":4669},[4173,114838,55545],{"class":4784},[4173,114840,114841,114844,114846],{"class":4657,"line":21425},[4173,114842,114843],{"class":4784},"    jcBSchinken.",[4173,114845,81578],{"class":4661},[4173,114847,93952],{"class":4784},[4173,114849,114850,114852,114854],{"class":4657,"line":21430},[4173,114851,114783],{"class":4784},[4173,114853,79955],{"class":4661},[4173,114855,94034],{"class":4784},[4173,114857,114858,114860],{"class":4657,"line":21436},[4173,114859,113170],{"class":4661},[4173,114861,94041],{"class":4784},[4173,114863,114864],{"class":4657,"line":21441},[4173,114865,114866],{"class":4766},"    \u002F\u002F--------------------- Zeile 8: Panel für Buttons --------------------\n",[4173,114868,114869,114872,114874,114876,114878],{"class":4657,"line":21453},[4173,114870,114871],{"class":4784},"    JPanel pZeile8 ",[4173,114873,6387],{"class":4788},[4173,114875,79032],{"class":4788},[4173,114877,81533],{"class":4661},[4173,114879,65878],{"class":4784},[4173,114881,114882,114885,114887,114889,114891,114893,114895],{"class":4657,"line":21458},[4173,114883,114884],{"class":4784},"    JButton jbSenden ",[4173,114886,6387],{"class":4788},[4173,114888,79032],{"class":4788},[4173,114890,81836],{"class":4661},[4173,114892,6390],{"class":4784},[4173,114894,83264],{"class":4669},[4173,114896,55545],{"class":4784},[4173,114898,114899,114902,114904],{"class":4657,"line":21464},[4173,114900,114901],{"class":4784},"    jbSenden.",[4173,114903,81578],{"class":4661},[4173,114905,93952],{"class":4784},[4173,114907,114908,114910,114912,114914,114916],{"class":4657,"line":21469},[4173,114909,114901],{"class":4784},[4173,114911,81461],{"class":4661},[4173,114913,6390],{"class":4784},[4173,114915,80010],{"class":4665},[4173,114917,55545],{"class":4784},[4173,114919,114920,114923,114925],{"class":4657,"line":21481},[4173,114921,114922],{"class":4784},"    pZeile8.",[4173,114924,79955],{"class":4661},[4173,114926,94107],{"class":4784},[4173,114928,114929,114932,114934,114936,114938,114940,114942],{"class":4657,"line":21486},[4173,114930,114931],{"class":4784},"    JButton jbAbbrechen ",[4173,114933,6387],{"class":4788},[4173,114935,79032],{"class":4788},[4173,114937,81836],{"class":4661},[4173,114939,6390],{"class":4784},[4173,114941,84589],{"class":4669},[4173,114943,55545],{"class":4784},[4173,114945,114946,114949,114951],{"class":4657,"line":21492},[4173,114947,114948],{"class":4784},"    jbAbbrechen.",[4173,114950,81578],{"class":4661},[4173,114952,93952],{"class":4784},[4173,114954,114955,114957,114959,114961,114963,114965],{"class":4657,"line":21497},[4173,114956,114948],{"class":4784},[4173,114958,81461],{"class":4661},[4173,114960,6390],{"class":4784},[4173,114962,81243],{"class":4788},[4173,114964,94146],{"class":4661},[4173,114966,81860],{"class":4784},[4173,114968,114969,114971,114973],{"class":4657,"line":21503},[4173,114970,114922],{"class":4784},[4173,114972,79955],{"class":4661},[4173,114974,94157],{"class":4784},[4173,114976,114977,114980,114982,114984,114986,114988,114990],{"class":4657,"line":21508},[4173,114978,114979],{"class":4784},"    JButton ende ",[4173,114981,6387],{"class":4788},[4173,114983,79032],{"class":4788},[4173,114985,81836],{"class":4661},[4173,114987,6390],{"class":4784},[4173,114989,94173],{"class":4669},[4173,114991,55545],{"class":4784},[4173,114993,114994,114997,114999],{"class":4657,"line":21518},[4173,114995,114996],{"class":4784},"    ende.",[4173,114998,81578],{"class":4661},[4173,115000,93952],{"class":4784},[4173,115002,115003,115005,115007,115009,115011,115013],{"class":4657,"line":21523},[4173,115004,114996],{"class":4784},[4173,115006,81461],{"class":4661},[4173,115008,6390],{"class":4784},[4173,115010,81243],{"class":4788},[4173,115012,94197],{"class":4661},[4173,115014,94200],{"class":4784},[4173,115016,115017,115019,115021],{"class":4657,"line":21529},[4173,115018,114922],{"class":4784},[4173,115020,79955],{"class":4661},[4173,115022,94209],{"class":4784},[4173,115024,115025,115027],{"class":4657,"line":21534},[4173,115026,113170],{"class":4661},[4173,115028,94216],{"class":4784},[4173,115030,115031,115034,115036,115038,115040,115042],{"class":4657,"line":21544},[4173,115032,115033],{"class":4661},"    setSize",[4173,115035,6390],{"class":4784},[4173,115037,35097],{"class":4665},[4173,115039,42920],{"class":4784},[4173,115041,35097],{"class":4665},[4173,115043,55545],{"class":4784},[4173,115045,115046,115049,115051,115053],{"class":4657,"line":21549},[4173,115047,115048],{"class":4661},"    setResizable",[4173,115050,6390],{"class":4784},[4173,115052,90836],{"class":4665},[4173,115054,55545],{"class":4784},[4173,115056,115057,115060],{"class":4657,"line":21555},[4173,115058,115059],{"class":4661},"    setDefaultCloseOperation",[4173,115061,83561],{"class":4784},[4173,115063,115064,115067,115069,115071],{"class":4657,"line":21560},[4173,115065,115066],{"class":4661},"    setVisible",[4173,115068,6390],{"class":4784},[4173,115070,45190],{"class":4665},[4173,115072,55545],{"class":4784},[4173,115074,115075],{"class":4657,"line":21570},[4173,115076,113505],{"class":4784},[4173,115078,115079,115081,115083,115085,115087,115089],{"class":4657,"line":21575},[4173,115080,113023],{"class":4788},[4173,115082,79934],{"class":4788},[4173,115084,82416],{"class":4661},[4173,115086,82419],{"class":4784},[4173,115088,20602],{"class":7074},[4173,115090,92595],{"class":4784},[4173,115092,115093],{"class":4657,"line":21581},[4173,115094,115095],{"class":4766},"    \u002F\u002Fhier steht das, was passiert\n",[4173,115097,115098,115100,115102,115104,115106],{"class":4657,"line":21586},[4173,115099,99544],{"class":4784},[4173,115101,79074],{"class":4661},[4173,115103,6390],{"class":4784},[4173,115105,94290],{"class":4669},[4173,115107,55545],{"class":4784},[4173,115109,115110,115113,115115,115117,115119,115121,115123,115125],{"class":4657,"line":21596},[4173,115111,115112],{"class":4788},"    if",[4173,115114,81991],{"class":4784},[4173,115116,94301],{"class":4661},[4173,115118,86157],{"class":4784},[4173,115120,86976],{"class":4661},[4173,115122,6390],{"class":4784},[4173,115124,83264],{"class":4669},[4173,115126,10673],{"class":4784},[4173,115128,115129],{"class":4657,"line":21601},[4173,115130,115131],{"class":4784},"    {\n",[4173,115133,115134],{"class":4657,"line":21607},[4173,115135,115136],{"class":4766},"      \u002F\u002FTextfelder\n",[4173,115138,115139,115141,115143,115145,115147,115149],{"class":4657,"line":21612},[4173,115140,113581],{"class":4784},[4173,115142,6387],{"class":4788},[4173,115144,94329],{"class":4784},[4173,115146,83296],{"class":4661},[4173,115148,92693],{"class":4784},[4173,115150,94336],{"class":4766},[4173,115152,115153,115156,115158,115160,115162],{"class":4657,"line":21622},[4173,115154,115155],{"class":4784},"      String tel  ",[4173,115157,6387],{"class":4788},[4173,115159,94346],{"class":4784},[4173,115161,83296],{"class":4661},[4173,115163,65878],{"class":4784},[4173,115165,115166],{"class":4657,"line":21627},[4173,115167,115168],{"class":4766},"      \u002F\u002FRadioButton\n",[4173,115170,115171],{"class":4657,"line":21633},[4173,115172,115173],{"class":4784},"      String groesse;\n",[4173,115175,115176,115179,115181,115183],{"class":4657,"line":21638},[4173,115177,115178],{"class":4788},"      if",[4173,115180,94367],{"class":4784},[4173,115182,82092],{"class":4661},[4173,115184,85158],{"class":4784},[4173,115186,115187,115190,115192,115194],{"class":4657,"line":21644},[4173,115188,115189],{"class":4784},"         groesse ",[4173,115191,6387],{"class":4788},[4173,115193,94381],{"class":4669},[4173,115195,55559],{"class":4784},[4173,115197,115198],{"class":4657,"line":21649},[4173,115199,115200],{"class":4784},"      }\n",[4173,115202,115203,115206],{"class":4657,"line":21659},[4173,115204,115205],{"class":4788},"      else",[4173,115207,51614],{"class":4784},[4173,115209,115210,115212,115214,115216],{"class":4657,"line":21664},[4173,115211,115189],{"class":4784},[4173,115213,6387],{"class":4788},[4173,115215,94402],{"class":4669},[4173,115217,55559],{"class":4784},[4173,115219,115220,115222],{"class":4657,"line":21670},[4173,115221,113698],{"class":4784},[4173,115223,94411],{"class":4766},[4173,115225,115226],{"class":4657,"line":21675},[4173,115227,115228],{"class":4766},"      \u002F\u002FComboBox - Implizites Typecasting, da Object returned wird\n",[4173,115230,115231,115234,115236,115238,115240],{"class":4657,"line":21685},[4173,115232,115233],{"class":4784},"      String p_Art ",[4173,115235,6387],{"class":4788},[4173,115237,94426],{"class":4784},[4173,115239,94429],{"class":4661},[4173,115241,65878],{"class":4784},[4173,115243,115244],{"class":4657,"line":21690},[4173,115245,115246],{"class":4766},"      \u002F\u002FCheckBoxen\n",[4173,115248,115249],{"class":4657,"line":21696},[4173,115250,115251],{"class":4784},"      String salami;\n",[4173,115253,115254,115256,115258,115260],{"class":4657,"line":21701},[4173,115255,115178],{"class":4788},[4173,115257,94448],{"class":4784},[4173,115259,82092],{"class":4661},[4173,115261,85158],{"class":4784},[4173,115263,115264,115267,115269,115271],{"class":4657,"line":21711},[4173,115265,115266],{"class":4784},"         salami ",[4173,115268,6387],{"class":4788},[4173,115270,94462],{"class":4669},[4173,115272,55559],{"class":4784},[4173,115274,115275],{"class":4657,"line":21716},[4173,115276,115200],{"class":4784},[4173,115278,115279,115281],{"class":4657,"line":21722},[4173,115280,115205],{"class":4788},[4173,115282,51614],{"class":4784},[4173,115284,115285,115287,115289,115291],{"class":4657,"line":21727},[4173,115286,115266],{"class":4784},[4173,115288,6387],{"class":4788},[4173,115290,94483],{"class":4669},[4173,115292,55559],{"class":4784},[4173,115294,115295,115297],{"class":4657,"line":21737},[4173,115296,113698],{"class":4784},[4173,115298,94411],{"class":4766},[4173,115300,115301],{"class":4657,"line":21742},[4173,115302,115303],{"class":4784},"      String peperoni;\n",[4173,115305,115306,115308,115310,115312],{"class":4657,"line":21748},[4173,115307,115178],{"class":4788},[4173,115309,94503],{"class":4784},[4173,115311,82092],{"class":4661},[4173,115313,85158],{"class":4784},[4173,115315,115316,115319,115321,115323],{"class":4657,"line":21753},[4173,115317,115318],{"class":4784},"         peperoni ",[4173,115320,6387],{"class":4788},[4173,115322,94517],{"class":4669},[4173,115324,55559],{"class":4784},[4173,115326,115327],{"class":4657,"line":21759},[4173,115328,115200],{"class":4784},[4173,115330,115331,115333],{"class":4657,"line":21764},[4173,115332,115205],{"class":4788},[4173,115334,51614],{"class":4784},[4173,115336,115337,115339,115341,115343],{"class":4657,"line":21782},[4173,115338,115318],{"class":4784},[4173,115340,6387],{"class":4788},[4173,115342,94483],{"class":4669},[4173,115344,55559],{"class":4784},[4173,115346,115347,115349],{"class":4657,"line":21787},[4173,115348,113698],{"class":4784},[4173,115350,94411],{"class":4766},[4173,115352,115353],{"class":4657,"line":21793},[4173,115354,115355],{"class":4784},"      String schinken;\n",[4173,115357,115358,115360,115362,115364],{"class":4657,"line":21798},[4173,115359,115178],{"class":4788},[4173,115361,94557],{"class":4784},[4173,115363,82092],{"class":4661},[4173,115365,85158],{"class":4784},[4173,115367,115368,115371,115373,115375],{"class":4657,"line":21810},[4173,115369,115370],{"class":4784},"         schinken ",[4173,115372,6387],{"class":4788},[4173,115374,94571],{"class":4669},[4173,115376,55559],{"class":4784},[4173,115378,115379],{"class":4657,"line":21815},[4173,115380,115200],{"class":4784},[4173,115382,115383,115385],{"class":4657,"line":21821},[4173,115384,115205],{"class":4788},[4173,115386,51614],{"class":4784},[4173,115388,115389,115391,115393,115395],{"class":4657,"line":21826},[4173,115390,115370],{"class":4784},[4173,115392,6387],{"class":4788},[4173,115394,94483],{"class":4669},[4173,115396,55559],{"class":4784},[4173,115398,115399,115401],{"class":4657,"line":21836},[4173,115400,113698],{"class":4784},[4173,115402,94411],{"class":4766},[4173,115404,115405],{"class":4657,"line":21841},[4173,115406,115407],{"class":4766},"      \u002F\u002FAusgabe in der Console\n",[4173,115409,115410,115412,115414,115416,115418],{"class":4657,"line":21847},[4173,115411,113652],{"class":4784},[4173,115413,79074],{"class":4661},[4173,115415,6390],{"class":4784},[4173,115417,94615],{"class":4669},[4173,115419,55545],{"class":4784},[4173,115421,115422,115424,115426],{"class":4657,"line":21852},[4173,115423,113652],{"class":4784},[4173,115425,79074],{"class":4661},[4173,115427,65878],{"class":4784},[4173,115429,115430,115432,115434,115436,115438,115440],{"class":4657,"line":21862},[4173,115431,113652],{"class":4784},[4173,115433,79074],{"class":4661},[4173,115435,6390],{"class":4784},[4173,115437,92252],{"class":4669},[4173,115439,11719],{"class":4788},[4173,115441,79084],{"class":4784},[4173,115443,115444,115446,115448,115450,115452,115454],{"class":4657,"line":21867},[4173,115445,113652],{"class":4784},[4173,115447,79074],{"class":4661},[4173,115449,6390],{"class":4784},[4173,115451,94650],{"class":4669},[4173,115453,11719],{"class":4788},[4173,115455,94655],{"class":4784},[4173,115457,115458,115460,115462],{"class":4657,"line":21873},[4173,115459,113652],{"class":4784},[4173,115461,79074],{"class":4661},[4173,115463,65878],{"class":4784},[4173,115465,115466,115468,115470,115472,115474,115476],{"class":4657,"line":21878},[4173,115467,113652],{"class":4784},[4173,115469,79074],{"class":4661},[4173,115471,6390],{"class":4784},[4173,115473,94674],{"class":4669},[4173,115475,11719],{"class":4788},[4173,115477,94679],{"class":4784},[4173,115479,115480,115482,115484,115486,115488,115490],{"class":4657,"line":21888},[4173,115481,113652],{"class":4784},[4173,115483,79074],{"class":4661},[4173,115485,6390],{"class":4784},[4173,115487,94690],{"class":4669},[4173,115489,11719],{"class":4788},[4173,115491,94695],{"class":4784},[4173,115493,115494,115496,115498,115500,115502],{"class":4657,"line":21893},[4173,115495,113652],{"class":4784},[4173,115497,79074],{"class":4661},[4173,115499,6390],{"class":4784},[4173,115501,94706],{"class":4669},[4173,115503,55545],{"class":4784},[4173,115505,115506,115508,115510],{"class":4657,"line":21899},[4173,115507,113652],{"class":4784},[4173,115509,79074],{"class":4661},[4173,115511,94717],{"class":4784},[4173,115513,115514,115516,115518],{"class":4657,"line":21904},[4173,115515,113652],{"class":4784},[4173,115517,79074],{"class":4661},[4173,115519,94726],{"class":4784},[4173,115521,115522,115524,115526],{"class":4657,"line":21910},[4173,115523,113652],{"class":4784},[4173,115525,79074],{"class":4661},[4173,115527,94735],{"class":4784},[4173,115529,115530,115532,115534],{"class":4657,"line":21915},[4173,115531,113652],{"class":4784},[4173,115533,79074],{"class":4661},[4173,115535,65878],{"class":4784},[4173,115537,115538,115540,115542,115544,115546],{"class":4657,"line":21925},[4173,115539,113652],{"class":4784},[4173,115541,79074],{"class":4661},[4173,115543,6390],{"class":4784},[4173,115545,94754],{"class":4669},[4173,115547,55545],{"class":4784},[4173,115549,115550,115553,115555,115557,115559,115561,115563,115565,115567],{"class":4657,"line":21930},[4173,115551,115552],{"class":4784},"      JOptionPane.",[4173,115554,83357],{"class":4661},[4173,115556,6390],{"class":4784},[4173,115558,81169],{"class":4665},[4173,115560,42920],{"class":4784},[4173,115562,94771],{"class":4669},[4173,115564,83928],{"class":4665},[4173,115566,6207],{"class":4669},[4173,115568,94778],{"class":4788},[4173,115570,115571,115573,115575],{"class":4657,"line":21936},[4173,115572,94783],{"class":4784},[4173,115574,94786],{"class":4669},[4173,115576,94789],{"class":4784},[4173,115578,115579,115582],{"class":4657,"line":21941},[4173,115580,115581],{"class":4788},"      try",[4173,115583,51614],{"class":4784},[4173,115585,115586],{"class":4657,"line":21952},[4173,115587,115588],{"class":4766},"        \u002F\u002F File-Writer im Append-Modus durch \"true\" als zweiter Übergabeparameter\n",[4173,115590,115591,115594,115596,115598,115600,115602,115604,115606,115608,115610,115612,115614,115616],{"class":4657,"line":21957},[4173,115592,115593],{"class":4784},"        BufferedWriter writer ",[4173,115595,6387],{"class":4788},[4173,115597,79032],{"class":4788},[4173,115599,86266],{"class":4661},[4173,115601,6390],{"class":4784},[4173,115603,81243],{"class":4788},[4173,115605,86273],{"class":4661},[4173,115607,6390],{"class":4784},[4173,115609,94830],{"class":4669},[4173,115611,8629],{"class":4784},[4173,115613,45190],{"class":4665},[4173,115615,48385],{"class":4784},[4173,115617,64632],{"class":4766},[4173,115619,115620],{"class":4657,"line":21963},[4173,115621,115622],{"class":4784},"In Datei schreiben durch Angabe des Dateinamen\n",[4173,115624,115625,115628,115630,115632,115634],{"class":4657,"line":21968},[4173,115626,115627],{"class":4784},"        writer.",[4173,115629,86283],{"class":4661},[4173,115631,94853],{"class":4784},[4173,115633,86154],{"class":4661},[4173,115635,81860],{"class":4784},[4173,115637,115638,115640,115642,115644],{"class":4657,"line":21980},[4173,115639,115627],{"class":4784},[4173,115641,94864],{"class":4661},[4173,115643,94867],{"class":4784},[4173,115645,94870],{"class":4766},[4173,115647,115648,115650,115652],{"class":4657,"line":21985},[4173,115649,115627],{"class":4784},[4173,115651,94877],{"class":4661},[4173,115653,65878],{"class":4784},[4173,115655,115656,115658,115660,115662,115664],{"class":4657,"line":21991},[4173,115657,113698],{"class":4784},[4173,115659,85917],{"class":4788},[4173,115661,94888],{"class":4784},[4173,115663,94891],{"class":7074},[4173,115665,56319],{"class":4784},[4173,115667,115668,115671,115673],{"class":4657,"line":21996},[4173,115669,115670],{"class":4784},"        exception.",[4173,115672,94901],{"class":4661},[4173,115674,65878],{"class":4784},[4173,115676,115677],{"class":4657,"line":22009},[4173,115678,115200],{"class":4784},[4173,115680,115681,115683,115685,115687,115689,115691,115693],{"class":4657,"line":22014},[4173,115682,113652],{"class":4784},[4173,115684,79074],{"class":4661},[4173,115686,6390],{"class":4784},[4173,115688,94918],{"class":4669},[4173,115690,83928],{"class":4665},[4173,115692,6207],{"class":4669},[4173,115694,55545],{"class":4784},[4173,115696,115697,115699],{"class":4657,"line":22020},[4173,115698,115581],{"class":4788},[4173,115700,51614],{"class":4784},[4173,115702,115703,115706,115708,115710,115712,115714,115716,115718,115720,115722],{"class":4657,"line":22025},[4173,115704,115705],{"class":4784},"        BufferedReader in ",[4173,115707,6387],{"class":4788},[4173,115709,79032],{"class":4788},[4173,115711,86071],{"class":4661},[4173,115713,6390],{"class":4784},[4173,115715,81243],{"class":4788},[4173,115717,86078],{"class":4661},[4173,115719,6390],{"class":4784},[4173,115721,94830],{"class":4669},[4173,115723,66047],{"class":4784},[4173,115725,115726,115729,115731,115733,115735,115737,115739,115742],{"class":4657,"line":22031},[4173,115727,115728],{"class":4784},"        BufferedWriter out ",[4173,115730,6387],{"class":4788},[4173,115732,79032],{"class":4788},[4173,115734,86266],{"class":4661},[4173,115736,6390],{"class":4784},[4173,115738,81243],{"class":4788},[4173,115740,115741],{"class":4661}," OutputStreamWriter",[4173,115743,94979],{"class":4784},[4173,115745,115746,115749],{"class":4657,"line":22036},[4173,115747,115748],{"class":4661},"        br2bw",[4173,115750,94987],{"class":4784},[4173,115752,115753],{"class":4657,"line":22046},[4173,115754,115200],{"class":4784},[4173,115756,115757,115760,115762,115764],{"class":4657,"line":22051},[4173,115758,115759],{"class":4788},"      catch",[4173,115761,94888],{"class":4784},[4173,115763,94891],{"class":7074},[4173,115765,56319],{"class":4784},[4173,115767,115768,115770,115772],{"class":4657,"line":22057},[4173,115769,115670],{"class":4784},[4173,115771,94901],{"class":4661},[4173,115773,65878],{"class":4784},[4173,115775,115776],{"class":4657,"line":22062},[4173,115777,115200],{"class":4784},[4173,115779,115780,115783,115785],{"class":4657,"line":22072},[4173,115781,115782],{"class":4784},"      bestellNr",[4173,115784,10670],{"class":4788},[4173,115786,55559],{"class":4784},[4173,115788,115789],{"class":4657,"line":22077},[4173,115790,100385],{"class":4784},[4173,115792,115793,115796],{"class":4657,"line":22083},[4173,115794,115795],{"class":4788},"    else",[4173,115797,51614],{"class":4784},[4173,115799,115800,115803],{"class":4657,"line":22088},[4173,115801,115802],{"class":4784},"    } ",[4173,115804,94411],{"class":4766},[4173,115806,115807],{"class":4657,"line":22094},[4173,115808,113505],{"class":4784},[4173,115810,115811,115813,115815,115817,115819,115821,115823,115825,115827],{"class":4657,"line":22099},[4173,115812,113023],{"class":4788},[4173,115814,79892],{"class":4788},[4173,115816,79934],{"class":4788},[4173,115818,95053],{"class":4661},[4173,115820,95056],{"class":4784},[4173,115822,7135],{"class":7074},[4173,115824,95061],{"class":4784},[4173,115826,95064],{"class":7074},[4173,115828,6402],{"class":4784},[4173,115830,115831,115834],{"class":4657,"line":22109},[4173,115832,115833],{"class":4788},"    throws",[4173,115835,86252],{"class":4784},[4173,115837,115838,115841],{"class":4657,"line":22114},[4173,115839,115840],{"class":4784},"    String z;                             ",[4173,115842,95080],{"class":4766},[4173,115844,115845,115848,115850,115852,115854,115856,115858,115860,115862,115864],{"class":4657,"line":22120},[4173,115846,115847],{"class":4788},"    while",[4173,115849,95087],{"class":4784},[4173,115851,6387],{"class":4788},[4173,115853,95092],{"class":4784},[4173,115855,86101],{"class":4661},[4173,115857,86104],{"class":4784},[4173,115859,19461],{"class":4788},[4173,115861,85147],{"class":4665},[4173,115863,95103],{"class":4784},[4173,115865,95106],{"class":4766},[4173,115867,115868,115871,115873,115875],{"class":4657,"line":22125},[4173,115869,115870],{"class":4784},"      bw.",[4173,115872,86283],{"class":4661},[4173,115874,95116],{"class":4784},[4173,115876,95119],{"class":4766},[4173,115878,115879,115881,115883,115885],{"class":4657,"line":22131},[4173,115880,115870],{"class":4784},[4173,115882,94864],{"class":4661},[4173,115884,95128],{"class":4784},[4173,115886,95131],{"class":4766},[4173,115888,115889],{"class":4657,"line":22136},[4173,115890,100385],{"class":4784},[4173,115892,115893,115896,115898],{"class":4657,"line":22147},[4173,115894,115895],{"class":4784},"    br.",[4173,115897,94877],{"class":4661},[4173,115899,65878],{"class":4784},[4173,115901,115902,115905,115907,115909],{"class":4657,"line":22152},[4173,115903,115904],{"class":4784},"    bw.",[4173,115906,94877],{"class":4661},[4173,115908,94867],{"class":4784},[4173,115910,95155],{"class":4766},[4173,115912,115913],{"class":4657,"line":22158},[4173,115914,113505],{"class":4784},[4173,115916,115917,115919,115921,115923,115925],{"class":4657,"line":22163},[4173,115918,113545],{"class":4788},[4173,115920,94146],{"class":4661},[4173,115922,80628],{"class":4788},[4173,115924,91485],{"class":4661},[4173,115926,92839],{"class":4784},[4173,115928,115929,115931,115933,115935,115937,115939],{"class":4657,"line":22173},[4173,115930,100265],{"class":4788},[4173,115932,79934],{"class":4788},[4173,115934,82416],{"class":4661},[4173,115936,82419],{"class":4784},[4173,115938,20602],{"class":7074},[4173,115940,92595],{"class":4784},[4173,115942,115943],{"class":4657,"line":22178},[4173,115944,115945],{"class":4766},"      \u002F\u002FTextfelder leeren\n",[4173,115947,115948,115951,115953,115955,115957],{"class":4657,"line":22184},[4173,115949,115950],{"class":4784},"      jtName.",[4173,115952,81370],{"class":4661},[4173,115954,6390],{"class":4784},[4173,115956,46851],{"class":4669},[4173,115958,55545],{"class":4784},[4173,115960,115961,115964,115966,115968,115970],{"class":4657,"line":22189},[4173,115962,115963],{"class":4784},"      jtTel.",[4173,115965,81370],{"class":4661},[4173,115967,6390],{"class":4784},[4173,115969,46851],{"class":4669},[4173,115971,55545],{"class":4784},[4173,115973,115974],{"class":4657,"line":22201},[4173,115975,115976],{"class":4766},"      \u002F\u002FRadiobutton unausgewaehlt\n",[4173,115978,115979,115982,115984,115986,115988],{"class":4657,"line":22206},[4173,115980,115981],{"class":4784},"      g_26.",[4173,115983,82067],{"class":4661},[4173,115985,6390],{"class":4784},[4173,115987,45190],{"class":4665},[4173,115989,55545],{"class":4784},[4173,115991,115992],{"class":4657,"line":22212},[4173,115993,115994],{"class":4766},"      \u002F\u002FComboBox - Vorauswahl\n",[4173,115996,115997,116000,116002,116004,116006],{"class":4657,"line":22217},[4173,115998,115999],{"class":4784},"      pizzaArt.",[4173,116001,93827],{"class":4661},[4173,116003,6390],{"class":4784},[4173,116005,14206],{"class":4665},[4173,116007,55545],{"class":4784},[4173,116009,116010],{"class":4657,"line":22230},[4173,116011,116012],{"class":4766},"      \u002F\u002FCheckboxen leeren\n",[4173,116014,116015,116018,116020,116022,116024],{"class":4657,"line":22235},[4173,116016,116017],{"class":4784},"      jcBSalami.",[4173,116019,82067],{"class":4661},[4173,116021,6390],{"class":4784},[4173,116023,90836],{"class":4665},[4173,116025,55545],{"class":4784},[4173,116027,116028,116031,116033,116035,116037],{"class":4657,"line":22241},[4173,116029,116030],{"class":4784},"      jcBPeperoni.",[4173,116032,82067],{"class":4661},[4173,116034,6390],{"class":4784},[4173,116036,90836],{"class":4665},[4173,116038,55545],{"class":4784},[4173,116040,116041,116044,116046,116048,116050],{"class":4657,"line":22246},[4173,116042,116043],{"class":4784},"      jcBSchinken.",[4173,116045,82067],{"class":4661},[4173,116047,6390],{"class":4784},[4173,116049,90836],{"class":4665},[4173,116051,55545],{"class":4784},[4173,116053,116054],{"class":4657,"line":22256},[4173,116055,100385],{"class":4784},[4173,116057,116058],{"class":4657,"line":22261},[4173,116059,113505],{"class":4784},[4173,116061,116062],{"class":4657,"line":22267},[4173,116063,7090],{"class":4784},[16,116065,116067],{"id":116066},"endeereignisjava","EndeEreignis.java",[4647,116069,116071],{"className":78931,"code":116070,"language":78933,"meta":269,"style":269},"import java.awt.event.*; \u002F\u002FEreignisbehandlung\nimport javax.swing.JTextField;\nclass EndeEreignis implements ActionListener{\n  JTextField jtname;\n  \u002F\u002F Beim Erstellen der Klasse wird das Textfeld übergeben, da es nicht global verfügbar ist\n  EndeEreignis(JTextField jtname){\n    this.jtname = jtname;\n  }\n  public void actionPerformed(ActionEvent e){\n    System.out.println(jtname.getText()); \u002F\u002F Textfeldinhalt wird ausgegeben\n    System.exit(0);  \u002F\u002Fbeendet den GUI-Prozess\n  }\n}\n\n",[4653,116072,116073,116085,116091,116103,116108,116113,116124,116134,116138,116152,116166,116181,116185],{"__ignoreMap":269},[4173,116074,116075,116077,116079,116081,116083],{"class":4657,"line":4658},[4173,116076,79019],{"class":4788},[4173,116078,80913],{"class":4784},[4173,116080,6328],{"class":4665},[4173,116082,6498],{"class":4784},[4173,116084,93088],{"class":4766},[4173,116086,116087,116089],{"class":4657,"line":270},[4173,116088,79019],{"class":4788},[4173,116090,95331],{"class":4784},[4173,116092,116093,116095,116097,116099,116101],{"class":4657,"line":1263},[4173,116094,79983],{"class":4788},[4173,116096,94197],{"class":4661},[4173,116098,80628],{"class":4788},[4173,116100,91485],{"class":4661},[4173,116102,92839],{"class":4784},[4173,116104,116105],{"class":4657,"line":4770},[4173,116106,116107],{"class":4784},"  JTextField jtname;\n",[4173,116109,116110],{"class":4657,"line":4775},[4173,116111,116112],{"class":4766},"  \u002F\u002F Beim Erstellen der Klasse wird das Textfeld übergeben, da es nicht global verfügbar ist\n",[4173,116114,116115,116118,116120,116122],{"class":4657,"line":6320},[4173,116116,116117],{"class":4661},"  EndeEreignis",[4173,116119,91673],{"class":4784},[4173,116121,95368],{"class":7074},[4173,116123,92595],{"class":4784},[4173,116125,116126,116128,116130,116132],{"class":4657,"line":6325},[4173,116127,113032],{"class":4665},[4173,116129,95377],{"class":4784},[4173,116131,6387],{"class":4788},[4173,116133,95382],{"class":4784},[4173,116135,116136],{"class":4657,"line":6343},[4173,116137,113505],{"class":4784},[4173,116139,116140,116142,116144,116146,116148,116150],{"class":4657,"line":6348},[4173,116141,113023],{"class":4788},[4173,116143,79934],{"class":4788},[4173,116145,82416],{"class":4661},[4173,116147,82419],{"class":4784},[4173,116149,20602],{"class":7074},[4173,116151,92595],{"class":4784},[4173,116153,116154,116156,116158,116160,116162,116164],{"class":4657,"line":6457},[4173,116155,99544],{"class":4784},[4173,116157,79074],{"class":4661},[4173,116159,95409],{"class":4784},[4173,116161,83296],{"class":4661},[4173,116163,86843],{"class":4784},[4173,116165,95416],{"class":4766},[4173,116167,116168,116171,116173,116175,116177,116179],{"class":4657,"line":6462},[4173,116169,116170],{"class":4784},"    System.",[4173,116172,10898],{"class":4661},[4173,116174,6390],{"class":4784},[4173,116176,12749],{"class":4665},[4173,116178,86471],{"class":4784},[4173,116180,95432],{"class":4766},[4173,116182,116183],{"class":4657,"line":6468},[4173,116184,113505],{"class":4784},[4173,116186,116187],{"class":4657,"line":6473},[4173,116188,7090],{"class":4784},[11,116190,95468],{"id":95467},[16,116192,95472],{"id":95471},[4647,116194,116196],{"className":78931,"code":116195,"language":78933,"meta":269,"style":269},"\u002F\u002F Teilnehmer.java\nimport java.util.concurrent.Semaphore;\nimport java.util.Random;\nimport java.io.IOException;\npublic class Teilnehmer extends Thread {\n    private final Semaphore sem;\n    private final LaplaceFile file;\n    private final Random rnd = new Random();\n    public Teilnehmer(LaplaceFile file, Semaphore sem, String name) {\n        super(name);\n        this.sem = sem;\n        this.file = file;\n    }\n    @Override\n    public void run() {\n        \u002F\u002F Jeder Teilnehmer schreibt 10 Zeilen mit jeweils drei Würfen (jeweils 1..6)\n        for (int i = 0; i \u003C 10; i++) {\n            int a = rnd.nextInt(6) + 1;\n            int b = rnd.nextInt(6) + 1;\n            int c = rnd.nextInt(6) + 1;\n            String line = a + \",\" + b + \",\" + c; \u002F\u002F Format: 1,2,3\n            String fullLine = getName() + \": \" + line; \u002F\u002F Teilnehmername voranstellen\n            try {\n                sem.acquire();\n                file.writeLine(fullLine);\n            } catch (InterruptedException e) {\n                Thread.currentThread().interrupt();\n                break;\n            } catch (IOException e) {\n                \u002F\u002F Fehler beim Schreiben: kurz melden und weitermachen\n                System.err.println(\"Schreibfehler von \" + getName() + \": \" + e.getMessage());\n            } finally {\n                sem.release();\n            }\n            try {\u002F\u002F !!!Bräuchte man eigentlich im realen PROG. NICHT!!!\n                Thread.sleep(rnd.nextInt(50)); \u002F\u002F kurz warten, um Parallelität sichtbar zu\nmachen\n            } catch (InterruptedException e) {\n                Thread.currentThread().interrupt();\n                break;\n            }\n        }\n    }\n}\n\n",[4653,116197,116198,116202,116208,116214,116220,116234,116242,116250,116266,116286,116292,116302,116312,116316,116322,116332,116337,116363,116387,116411,116435,116462,116483,116490,116499,116508,116521,116534,116540,116552,116557,116586,116594,116602,116606,116614,116633,116638,116650,116662,116668,116672,116676,116680],{"__ignoreMap":269},[4173,116199,116200],{"class":4657,"line":4658},[4173,116201,95482],{"class":4766},[4173,116203,116204,116206],{"class":4657,"line":270},[4173,116205,79019],{"class":4788},[4173,116207,95489],{"class":4784},[4173,116209,116210,116212],{"class":4657,"line":1263},[4173,116211,79019],{"class":4788},[4173,116213,95496],{"class":4784},[4173,116215,116216,116218],{"class":4657,"line":4770},[4173,116217,79019],{"class":4788},[4173,116219,85751],{"class":4784},[4173,116221,116222,116224,116226,116228,116230,116232],{"class":4657,"line":4775},[4173,116223,79889],{"class":4788},[4173,116225,80062],{"class":4788},[4173,116227,95511],{"class":4661},[4173,116229,80500],{"class":4788},[4173,116231,95516],{"class":4661},[4173,116233,51614],{"class":4784},[4173,116235,116236,116238,116240],{"class":4657,"line":6320},[4173,116237,100507],{"class":4788},[4173,116239,95525],{"class":4788},[4173,116241,95528],{"class":4784},[4173,116243,116244,116246,116248],{"class":4657,"line":6325},[4173,116245,100507],{"class":4788},[4173,116247,95525],{"class":4788},[4173,116249,95537],{"class":4784},[4173,116251,116252,116254,116256,116258,116260,116262,116264],{"class":4657,"line":6343},[4173,116253,100507],{"class":4788},[4173,116255,95525],{"class":4788},[4173,116257,95546],{"class":4784},[4173,116259,6387],{"class":4788},[4173,116261,79032],{"class":4788},[4173,116263,95553],{"class":4661},[4173,116265,65878],{"class":4784},[4173,116267,116268,116270,116272,116274,116276,116278,116280,116282,116284],{"class":4657,"line":6348},[4173,116269,100265],{"class":4788},[4173,116271,95511],{"class":4661},[4173,116273,95564],{"class":4784},[4173,116275,59315],{"class":7074},[4173,116277,95569],{"class":4784},[4173,116279,95572],{"class":7074},[4173,116281,86243],{"class":4784},[4173,116283,28734],{"class":7074},[4173,116285,56319],{"class":4784},[4173,116287,116288,116290],{"class":4657,"line":6457},[4173,116289,100854],{"class":4665},[4173,116291,80524],{"class":4784},[4173,116293,116294,116296,116298,116300],{"class":4657,"line":6462},[4173,116295,100374],{"class":4665},[4173,116297,95591],{"class":4784},[4173,116299,6387],{"class":4788},[4173,116301,95596],{"class":4784},[4173,116303,116304,116306,116308,116310],{"class":4657,"line":6468},[4173,116305,100374],{"class":4665},[4173,116307,95603],{"class":4784},[4173,116309,6387],{"class":4788},[4173,116311,95608],{"class":4784},[4173,116313,116314],{"class":4657,"line":6473},[4173,116315,100385],{"class":4784},[4173,116317,116318,116320],{"class":4657,"line":6479},[4173,116319,100865],{"class":4784},[4173,116321,80535],{"class":4788},[4173,116323,116324,116326,116328,116330],{"class":4657,"line":6503},[4173,116325,100265],{"class":4788},[4173,116327,79934],{"class":4788},[4173,116329,8045],{"class":4661},[4173,116331,7062],{"class":4784},[4173,116333,116334],{"class":4657,"line":6516},[4173,116335,116336],{"class":4766},"        \u002F\u002F Jeder Teilnehmer schreibt 10 Zeilen mit jeweils drei Würfen (jeweils 1..6)\n",[4173,116338,116339,116341,116343,116345,116347,116349,116351,116353,116355,116357,116359,116361],{"class":4657,"line":6971},[4173,116340,100110],{"class":4788},[4173,116342,4171],{"class":4784},[4173,116344,64831],{"class":4788},[4173,116346,6555],{"class":4784},[4173,116348,6387],{"class":4788},[4173,116350,25370],{"class":4665},[4173,116352,79645],{"class":4784},[4173,116354,24345],{"class":4788},[4173,116356,15571],{"class":4665},[4173,116358,79652],{"class":4784},[4173,116360,10670],{"class":4788},[4173,116362,56319],{"class":4784},[4173,116364,116365,116367,116369,116371,116373,116375,116377,116379,116381,116383,116385],{"class":4657,"line":10649},[4173,116366,106402],{"class":4788},[4173,116368,79143],{"class":4784},[4173,116370,6387],{"class":4788},[4173,116372,95670],{"class":4784},[4173,116374,95673],{"class":4661},[4173,116376,6390],{"class":4784},[4173,116378,14278],{"class":4665},[4173,116380,6306],{"class":4784},[4173,116382,14419],{"class":4788},[4173,116384,10264],{"class":4665},[4173,116386,55559],{"class":4784},[4173,116388,116389,116391,116393,116395,116397,116399,116401,116403,116405,116407,116409],{"class":4657,"line":10654},[4173,116390,106402],{"class":4788},[4173,116392,49052],{"class":4784},[4173,116394,6387],{"class":4788},[4173,116396,95670],{"class":4784},[4173,116398,95673],{"class":4661},[4173,116400,6390],{"class":4784},[4173,116402,14278],{"class":4665},[4173,116404,6306],{"class":4784},[4173,116406,14419],{"class":4788},[4173,116408,10264],{"class":4665},[4173,116410,55559],{"class":4784},[4173,116412,116413,116415,116417,116419,116421,116423,116425,116427,116429,116431,116433],{"class":4657,"line":10659},[4173,116414,106402],{"class":4788},[4173,116416,95716],{"class":4784},[4173,116418,6387],{"class":4788},[4173,116420,95670],{"class":4784},[4173,116422,95673],{"class":4661},[4173,116424,6390],{"class":4784},[4173,116426,14278],{"class":4665},[4173,116428,6306],{"class":4784},[4173,116430,14419],{"class":4788},[4173,116432,10264],{"class":4665},[4173,116434,55559],{"class":4784},[4173,116436,116437,116440,116442,116444,116446,116448,116450,116452,116454,116456,116458,116460],{"class":4657,"line":10664},[4173,116438,116439],{"class":4784},"            String line ",[4173,116441,6387],{"class":4788},[4173,116443,79143],{"class":4784},[4173,116445,14419],{"class":4788},[4173,116447,95748],{"class":4669},[4173,116449,11719],{"class":4788},[4173,116451,49052],{"class":4784},[4173,116453,14419],{"class":4788},[4173,116455,95748],{"class":4669},[4173,116457,11719],{"class":4788},[4173,116459,95761],{"class":4784},[4173,116461,95764],{"class":4766},[4173,116463,116464,116467,116469,116471,116473,116475,116477,116479,116481],{"class":4657,"line":10676},[4173,116465,116466],{"class":4784},"            String fullLine ",[4173,116468,6387],{"class":4788},[4173,116470,95774],{"class":4661},[4173,116472,80558],{"class":4784},[4173,116474,14419],{"class":4788},[4173,116476,95781],{"class":4669},[4173,116478,11719],{"class":4788},[4173,116480,95786],{"class":4784},[4173,116482,95789],{"class":4766},[4173,116484,116485,116488],{"class":4657,"line":10681},[4173,116486,116487],{"class":4788},"            try",[4173,116489,51614],{"class":4784},[4173,116491,116492,116495,116497],{"class":4657,"line":10702},[4173,116493,116494],{"class":4784},"                sem.",[4173,116496,95803],{"class":4661},[4173,116498,65878],{"class":4784},[4173,116500,116501,116504,116506],{"class":4657,"line":10707},[4173,116502,116503],{"class":4784},"                file.",[4173,116505,95813],{"class":4661},[4173,116507,95816],{"class":4784},[4173,116509,116510,116513,116515,116517,116519],{"class":4657,"line":10712},[4173,116511,116512],{"class":4784},"            } ",[4173,116514,85917],{"class":4788},[4173,116516,95825],{"class":4784},[4173,116518,20602],{"class":7074},[4173,116520,56319],{"class":4784},[4173,116522,116523,116526,116528,116530,116532],{"class":4657,"line":10717},[4173,116524,116525],{"class":4784},"                Thread.",[4173,116527,95837],{"class":4661},[4173,116529,86157],{"class":4784},[4173,116531,95842],{"class":4661},[4173,116533,65878],{"class":4784},[4173,116535,116536,116538],{"class":4657,"line":10727},[4173,116537,105543],{"class":4788},[4173,116539,55559],{"class":4784},[4173,116541,116542,116544,116546,116548,116550],{"class":4657,"line":10732},[4173,116543,116512],{"class":4784},[4173,116545,85917],{"class":4788},[4173,116547,85960],{"class":4784},[4173,116549,20602],{"class":7074},[4173,116551,56319],{"class":4784},[4173,116553,116554],{"class":4657,"line":10737},[4173,116555,116556],{"class":4766},"                \u002F\u002F Fehler beim Schreiben: kurz melden und weitermachen\n",[4173,116558,116559,116562,116564,116566,116568,116570,116572,116574,116576,116578,116580,116582,116584],{"class":4657,"line":10742},[4173,116560,116561],{"class":4784},"                System.err.",[4173,116563,79074],{"class":4661},[4173,116565,6390],{"class":4784},[4173,116567,95878],{"class":4669},[4173,116569,11719],{"class":4788},[4173,116571,95774],{"class":4661},[4173,116573,80558],{"class":4784},[4173,116575,14419],{"class":4788},[4173,116577,95781],{"class":4669},[4173,116579,11719],{"class":4788},[4173,116581,85946],{"class":4784},[4173,116583,85949],{"class":4661},[4173,116585,81860],{"class":4784},[4173,116587,116588,116590,116592],{"class":4657,"line":10752},[4173,116589,116512],{"class":4784},[4173,116591,86570],{"class":4788},[4173,116593,51614],{"class":4784},[4173,116595,116596,116598,116600],{"class":4657,"line":10757},[4173,116597,116494],{"class":4784},[4173,116599,95914],{"class":4661},[4173,116601,65878],{"class":4784},[4173,116603,116604],{"class":4657,"line":10762},[4173,116605,101599],{"class":4784},[4173,116607,116608,116610,116612],{"class":4657,"line":10767},[4173,116609,116487],{"class":4788},[4173,116611,6560],{"class":4784},[4173,116613,95929],{"class":4766},[4173,116615,116616,116618,116620,116622,116624,116626,116628,116630],{"class":4657,"line":10772},[4173,116617,116525],{"class":4784},[4173,116619,95936],{"class":4661},[4173,116621,95939],{"class":4784},[4173,116623,95673],{"class":4661},[4173,116625,6390],{"class":4784},[4173,116627,82488],{"class":4665},[4173,116629,48385],{"class":4784},[4173,116631,116632],{"class":4766},"\u002F\u002F kurz warten, um Parallelität sichtbar zu\n",[4173,116634,116635],{"class":4657,"line":10777},[4173,116636,116637],{"class":4784},"machen\n",[4173,116639,116640,116642,116644,116646,116648],{"class":4657,"line":10782},[4173,116641,116512],{"class":4784},[4173,116643,85917],{"class":4788},[4173,116645,95825],{"class":4784},[4173,116647,20602],{"class":7074},[4173,116649,56319],{"class":4784},[4173,116651,116652,116654,116656,116658,116660],{"class":4657,"line":10787},[4173,116653,116525],{"class":4784},[4173,116655,95837],{"class":4661},[4173,116657,86157],{"class":4784},[4173,116659,95842],{"class":4661},[4173,116661,65878],{"class":4784},[4173,116663,116664,116666],{"class":4657,"line":10800},[4173,116665,105543],{"class":4788},[4173,116667,55559],{"class":4784},[4173,116669,116670],{"class":4657,"line":10805},[4173,116671,101599],{"class":4784},[4173,116673,116674],{"class":4657,"line":10818},[4173,116675,100145],{"class":4784},[4173,116677,116678],{"class":4657,"line":10823},[4173,116679,100385],{"class":4784},[4173,116681,116682],{"class":4657,"line":10836},[4173,116683,7090],{"class":4784},[16,116685,96005],{"id":96004},[4647,116687,116689],{"className":78931,"code":116688,"language":78933,"meta":269,"style":269},"\u002F\u002F LaplaceFile.java\nimport java.io.BufferedWriter;\nimport java.io.FileWriter;\nimport java.io.IOException; \u002F\u002F für lese\u002Fschreibfehler\npublic class LaplaceFile {\n    private final BufferedWriter bw;\n    public LaplaceFile(String datei) throws IOException {\n        bw = new BufferedWriter(new FileWriter(datei, false)); \u002F\u002F false = überschreiben | true =\nanhängen\n    }\n    public synchronized void writeLine(String line) throws IOException {\n        bw.write(line);\n        bw.newLine();\n        bw.flush();\n    }\n    public void close() throws IOException {\n        bw.close();\n    }\n}\n\n",[4653,116690,116691,116695,116701,116707,116715,116725,116733,116749,116775,116780,116784,116804,116813,116821,116829,116833,116847,116855,116859],{"__ignoreMap":269},[4173,116692,116693],{"class":4657,"line":4658},[4173,116694,96015],{"class":4766},[4173,116696,116697,116699],{"class":4657,"line":270},[4173,116698,79019],{"class":4788},[4173,116700,85730],{"class":4784},[4173,116702,116703,116705],{"class":4657,"line":1263},[4173,116704,79019],{"class":4788},[4173,116706,85744],{"class":4784},[4173,116708,116709,116711,116713],{"class":4657,"line":4770},[4173,116710,79019],{"class":4788},[4173,116712,96034],{"class":4784},[4173,116714,96037],{"class":4766},[4173,116716,116717,116719,116721,116723],{"class":4657,"line":4775},[4173,116718,79889],{"class":4788},[4173,116720,80062],{"class":4788},[4173,116722,96046],{"class":4661},[4173,116724,51614],{"class":4784},[4173,116726,116727,116729,116731],{"class":4657,"line":6320},[4173,116728,100507],{"class":4788},[4173,116730,95525],{"class":4788},[4173,116732,96057],{"class":4784},[4173,116734,116735,116737,116739,116741,116743,116745,116747],{"class":4657,"line":6325},[4173,116736,100265],{"class":4788},[4173,116738,96046],{"class":4661},[4173,116740,80001],{"class":4784},[4173,116742,96068],{"class":7074},[4173,116744,6306],{"class":4784},[4173,116746,86035],{"class":4788},[4173,116748,86252],{"class":4784},[4173,116750,116751,116754,116756,116758,116760,116762,116764,116766,116768,116770,116772],{"class":4657,"line":6343},[4173,116752,116753],{"class":4784},"        bw ",[4173,116755,6387],{"class":4788},[4173,116757,79032],{"class":4788},[4173,116759,86266],{"class":4661},[4173,116761,6390],{"class":4784},[4173,116763,81243],{"class":4788},[4173,116765,86273],{"class":4661},[4173,116767,96094],{"class":4784},[4173,116769,90836],{"class":4665},[4173,116771,48385],{"class":4784},[4173,116773,116774],{"class":4766},"\u002F\u002F false = überschreiben | true =\n",[4173,116776,116777],{"class":4657,"line":6348},[4173,116778,116779],{"class":4784},"anhängen\n",[4173,116781,116782],{"class":4657,"line":6457},[4173,116783,100385],{"class":4784},[4173,116785,116786,116788,116790,116792,116794,116796,116798,116800,116802],{"class":4657,"line":6462},[4173,116787,100265],{"class":4788},[4173,116789,96126],{"class":4788},[4173,116791,79934],{"class":4788},[4173,116793,96131],{"class":4661},[4173,116795,80001],{"class":4784},[4173,116797,4657],{"class":7074},[4173,116799,6306],{"class":4784},[4173,116801,86035],{"class":4788},[4173,116803,86252],{"class":4784},[4173,116805,116806,116809,116811],{"class":4657,"line":6468},[4173,116807,116808],{"class":4784},"        bw.",[4173,116810,86283],{"class":4661},[4173,116812,96150],{"class":4784},[4173,116814,116815,116817,116819],{"class":4657,"line":6473},[4173,116816,116808],{"class":4784},[4173,116818,94864],{"class":4661},[4173,116820,65878],{"class":4784},[4173,116822,116823,116825,116827],{"class":4657,"line":6479},[4173,116824,116808],{"class":4784},[4173,116826,96165],{"class":4661},[4173,116828,65878],{"class":4784},[4173,116830,116831],{"class":4657,"line":6503},[4173,116832,100385],{"class":4784},[4173,116834,116835,116837,116839,116841,116843,116845],{"class":4657,"line":6516},[4173,116836,100265],{"class":4788},[4173,116838,79934],{"class":4788},[4173,116840,96180],{"class":4661},[4173,116842,80558],{"class":4784},[4173,116844,86035],{"class":4788},[4173,116846,86252],{"class":4784},[4173,116848,116849,116851,116853],{"class":4657,"line":6971},[4173,116850,116808],{"class":4784},[4173,116852,94877],{"class":4661},[4173,116854,65878],{"class":4784},[4173,116856,116857],{"class":4657,"line":10649},[4173,116858,100385],{"class":4784},[4173,116860,116861],{"class":4657,"line":10654},[4173,116862,7090],{"class":4784},[16,116864,96206],{"id":96205},[4647,116866,116868],{"className":78931,"code":116867,"language":78933,"meta":269,"style":269},"\u002F\u002F LaplaceTest.java\nimport java.util.Scanner;\nimport java.util.concurrent.Semaphore;\npublic class LaplaceTest {\n    public static void main(String[] args) throws Exception {\n        Scanner sc = new Scanner(System.in);\n        System.out.print(\"Anzahl Teilnehmer: \");\n        int teilnehmer = sc.nextInt();\n        sc.close();\n        Semaphore sem = new Semaphore(5); \u002F\u002F 5 Schreibende gleichzeitig\n        LaplaceFile lf = new LaplaceFile(\"laplace.txt\");\n        Teilnehmer[] arr = new Teilnehmer[teilnehmer];\n        for (int i = 0; i \u003C teilnehmer; i++) {\n            arr[i] = new Teilnehmer(lf, sem, \"Teilnehmer\" + (i + 1));\n            arr[i].start(); \u002F\u002F !!!Threads starten run()!!!\n        }\n        for (int i = 0; i \u003C teilnehmer; i++) {\n            arr[i].join(); \u002F\u002F !!!Warten bis alle Threads beendet sind.!!!\n        }\n        lf.close();\u002F\u002F Datei schließen\n        System.out.println(\"Alle Würfe geschrieben in `laplace.txt`.\");\n    }\n}\n\n",[4653,116869,116870,116874,116880,116886,116896,116920,116933,116945,116959,116968,116987,117004,117019,117043,117068,117079,117083,117107,117117,117121,117132,117144,117148],{"__ignoreMap":269},[4173,116871,116872],{"class":4657,"line":4658},[4173,116873,96216],{"class":4766},[4173,116875,116876,116878],{"class":4657,"line":270},[4173,116877,79019],{"class":4788},[4173,116879,79022],{"class":4784},[4173,116881,116882,116884],{"class":4657,"line":1263},[4173,116883,79019],{"class":4788},[4173,116885,95489],{"class":4784},[4173,116887,116888,116890,116892,116894],{"class":4657,"line":4770},[4173,116889,79889],{"class":4788},[4173,116891,80062],{"class":4788},[4173,116893,96237],{"class":4661},[4173,116895,51614],{"class":4784},[4173,116897,116898,116900,116902,116904,116906,116908,116910,116912,116914,116916,116918],{"class":4657,"line":4775},[4173,116899,100265],{"class":4788},[4173,116901,79892],{"class":4788},[4173,116903,79934],{"class":4788},[4173,116905,79937],{"class":4661},[4173,116907,6390],{"class":4784},[4173,116909,79693],{"class":4788},[4173,116911,80084],{"class":4784},[4173,116913,31283],{"class":7074},[4173,116915,6306],{"class":4784},[4173,116917,86035],{"class":4788},[4173,116919,96264],{"class":4784},[4173,116921,116922,116925,116927,116929,116931],{"class":4657,"line":6320},[4173,116923,116924],{"class":4784},"        Scanner sc ",[4173,116926,6387],{"class":4788},[4173,116928,79032],{"class":4788},[4173,116930,79035],{"class":4661},[4173,116932,79038],{"class":4784},[4173,116934,116935,116937,116939,116941,116943],{"class":4657,"line":6325},[4173,116936,100097],{"class":4784},[4173,116938,79046],{"class":4661},[4173,116940,6390],{"class":4784},[4173,116942,96287],{"class":4669},[4173,116944,55545],{"class":4784},[4173,116946,116947,116949,116951,116953,116955,116957],{"class":4657,"line":6343},[4173,116948,104299],{"class":4788},[4173,116950,96296],{"class":4784},[4173,116952,6387],{"class":4788},[4173,116954,79062],{"class":4784},[4173,116956,95673],{"class":4661},[4173,116958,65878],{"class":4784},[4173,116960,116961,116964,116966],{"class":4657,"line":6348},[4173,116962,116963],{"class":4784},"        sc.",[4173,116965,94877],{"class":4661},[4173,116967,65878],{"class":4784},[4173,116969,116970,116973,116975,116977,116979,116981,116983,116985],{"class":4657,"line":6457},[4173,116971,116972],{"class":4784},"        Semaphore sem ",[4173,116974,6387],{"class":4788},[4173,116976,79032],{"class":4788},[4173,116978,96325],{"class":4661},[4173,116980,6390],{"class":4784},[4173,116982,14292],{"class":4665},[4173,116984,79107],{"class":4784},[4173,116986,96334],{"class":4766},[4173,116988,116989,116992,116994,116996,116998,117000,117002],{"class":4657,"line":6462},[4173,116990,116991],{"class":4784},"        LaplaceFile lf ",[4173,116993,6387],{"class":4788},[4173,116995,79032],{"class":4788},[4173,116997,96046],{"class":4661},[4173,116999,6390],{"class":4784},[4173,117001,96350],{"class":4669},[4173,117003,55545],{"class":4784},[4173,117005,117006,117009,117011,117013,117015,117017],{"class":4657,"line":6468},[4173,117007,117008],{"class":4788},"        Teilnehmer",[4173,117010,96359],{"class":4784},[4173,117012,6387],{"class":4788},[4173,117014,79032],{"class":4788},[4173,117016,95511],{"class":4788},[4173,117018,96368],{"class":4784},[4173,117020,117021,117023,117025,117027,117029,117031,117033,117035,117037,117039,117041],{"class":4657,"line":6473},[4173,117022,100110],{"class":4788},[4173,117024,4171],{"class":4784},[4173,117026,64831],{"class":4788},[4173,117028,6555],{"class":4784},[4173,117030,6387],{"class":4788},[4173,117032,25370],{"class":4665},[4173,117034,79645],{"class":4784},[4173,117036,24345],{"class":4788},[4173,117038,96389],{"class":4784},[4173,117040,10670],{"class":4788},[4173,117042,56319],{"class":4784},[4173,117044,117045,117048,117050,117052,117054,117056,117058,117060,117062,117064,117066],{"class":4657,"line":6479},[4173,117046,117047],{"class":4784},"            arr[i] ",[4173,117049,6387],{"class":4788},[4173,117051,79032],{"class":4788},[4173,117053,95511],{"class":4661},[4173,117055,96407],{"class":4784},[4173,117057,96410],{"class":4669},[4173,117059,11719],{"class":4788},[4173,117061,79783],{"class":4784},[4173,117063,14419],{"class":4788},[4173,117065,10264],{"class":4665},[4173,117067,66047],{"class":4784},[4173,117069,117070,117073,117075,117077],{"class":4657,"line":6503},[4173,117071,117072],{"class":4784},"            arr[i].",[4173,117074,30636],{"class":4661},[4173,117076,94867],{"class":4784},[4173,117078,96432],{"class":4766},[4173,117080,117081],{"class":4657,"line":6516},[4173,117082,100145],{"class":4784},[4173,117084,117085,117087,117089,117091,117093,117095,117097,117099,117101,117103,117105],{"class":4657,"line":6971},[4173,117086,100110],{"class":4788},[4173,117088,4171],{"class":4784},[4173,117090,64831],{"class":4788},[4173,117092,6555],{"class":4784},[4173,117094,6387],{"class":4788},[4173,117096,25370],{"class":4665},[4173,117098,79645],{"class":4784},[4173,117100,24345],{"class":4788},[4173,117102,96389],{"class":4784},[4173,117104,10670],{"class":4788},[4173,117106,56319],{"class":4784},[4173,117108,117109,117111,117113,117115],{"class":4657,"line":10649},[4173,117110,117072],{"class":4784},[4173,117112,96467],{"class":4661},[4173,117114,94867],{"class":4784},[4173,117116,96472],{"class":4766},[4173,117118,117119],{"class":4657,"line":10654},[4173,117120,100145],{"class":4784},[4173,117122,117123,117126,117128,117130],{"class":4657,"line":10659},[4173,117124,117125],{"class":4784},"        lf.",[4173,117127,94877],{"class":4661},[4173,117129,96486],{"class":4784},[4173,117131,96489],{"class":4766},[4173,117133,117134,117136,117138,117140,117142],{"class":4657,"line":10664},[4173,117135,100097],{"class":4784},[4173,117137,79074],{"class":4661},[4173,117139,6390],{"class":4784},[4173,117141,96500],{"class":4669},[4173,117143,55545],{"class":4784},[4173,117145,117146],{"class":4657,"line":10676},[4173,117147,100385],{"class":4784},[4173,117149,117150],{"class":4657,"line":10681},[4173,117151,7090],{"class":4784},[16,117153,96514],{"id":96513},[4647,117155,117157],{"className":78931,"code":117156,"language":78933,"meta":269,"style":269},"\u002F\u002F LaplaceAnalyzer.java\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.FileNotFoundException;\nimport java.io.IOException;\nimport java.util.regex.Pattern;\nimport java.util.regex.Matcher;\npublic class LaplaceAnalyzer {\n    public static void main(String[] args) {\n        \u002F\u002F nicht notwendig Argument auslesen wenn was da „laplace.txt“ nutzen\n        String path = args.length > 0 ? args[0] : \"laplace.txt\";\n        \u002F\u002F Sehr einfacher Regex: sucht exakt nach der Sequenz 6,6,6\n        Pattern pattern = Pattern.compile(\"6,6,6\");\u002F\u002F \u003C- Hier REGEX\n        int count = 0;\n        try (BufferedReader br = new BufferedReader(new FileReader(path))) {\n            String line;\n            while ((line = br.readLine()) != null) {\n                Matcher m = pattern.matcher(line);\n                if (m.find()) {\n                    count++;\n                }\n            }\n            System.out.println(\"Datei: \" + path);\n            System.out.println(\"Verwendeter regulärer Ausdruck: \" + pattern.pattern());\n            System.out.println(\"Anzahl Zeilen mit dreimal 6: \" + count);\n        } catch (FileNotFoundException e) {\n            System.err.println(\"Datei nicht gefunden: \" + path);\n            System.err.println(\"Stelle sicher, dass die Datei im Projektverzeichnis liegt oder\ngib einen Pfad als Argument an.\");\n        } catch (IOException e) {\n            System.err.println(\"Fehler beim Lesen der Datei: \" + e.getMessage());\n        }\n    }\n}\n\n",[4653,117158,117159,117163,117169,117175,117181,117187,117193,117199,117209,117229,117234,117261,117266,117285,117297,117317,117322,117342,117355,117366,117375,117380,117384,117398,117416,117430,117442,117456,117467,117474,117486,117504,117508,117512],{"__ignoreMap":269},[4173,117160,117161],{"class":4657,"line":4658},[4173,117162,96524],{"class":4766},[4173,117164,117165,117167],{"class":4657,"line":270},[4173,117166,79019],{"class":4788},[4173,117168,85723],{"class":4784},[4173,117170,117171,117173],{"class":4657,"line":1263},[4173,117172,79019],{"class":4788},[4173,117174,85737],{"class":4784},[4173,117176,117177,117179],{"class":4657,"line":4770},[4173,117178,79019],{"class":4788},[4173,117180,96543],{"class":4784},[4173,117182,117183,117185],{"class":4657,"line":4775},[4173,117184,79019],{"class":4788},[4173,117186,85751],{"class":4784},[4173,117188,117189,117191],{"class":4657,"line":6320},[4173,117190,79019],{"class":4788},[4173,117192,96556],{"class":4784},[4173,117194,117195,117197],{"class":4657,"line":6325},[4173,117196,79019],{"class":4788},[4173,117198,96563],{"class":4784},[4173,117200,117201,117203,117205,117207],{"class":4657,"line":6343},[4173,117202,79889],{"class":4788},[4173,117204,80062],{"class":4788},[4173,117206,96572],{"class":4661},[4173,117208,51614],{"class":4784},[4173,117210,117211,117213,117215,117217,117219,117221,117223,117225,117227],{"class":4657,"line":6348},[4173,117212,100265],{"class":4788},[4173,117214,79892],{"class":4788},[4173,117216,79934],{"class":4788},[4173,117218,79937],{"class":4661},[4173,117220,6390],{"class":4784},[4173,117222,79693],{"class":4788},[4173,117224,80084],{"class":4784},[4173,117226,31283],{"class":7074},[4173,117228,56319],{"class":4784},[4173,117230,117231],{"class":4657,"line":6457},[4173,117232,117233],{"class":4766},"        \u002F\u002F nicht notwendig Argument auslesen wenn was da „laplace.txt“ nutzen\n",[4173,117235,117236,117239,117241,117243,117245,117247,117249,117251,117253,117255,117257,117259],{"class":4657,"line":6462},[4173,117237,117238],{"class":4784},"        String path ",[4173,117240,6387],{"class":4788},[4173,117242,96609],{"class":4784},[4173,117244,4789],{"class":4788},[4173,117246,25370],{"class":4665},[4173,117248,96616],{"class":4788},[4173,117250,96619],{"class":4784},[4173,117252,12749],{"class":4665},[4173,117254,85496],{"class":4784},[4173,117256,8158],{"class":4788},[4173,117258,96628],{"class":4669},[4173,117260,55559],{"class":4784},[4173,117262,117263],{"class":4657,"line":6468},[4173,117264,117265],{"class":4766},"        \u002F\u002F Sehr einfacher Regex: sucht exakt nach der Sequenz 6,6,6\n",[4173,117267,117268,117271,117273,117275,117277,117279,117281,117283],{"class":4657,"line":6473},[4173,117269,117270],{"class":4784},"        Pattern pattern ",[4173,117272,6387],{"class":4788},[4173,117274,96645],{"class":4784},[4173,117276,96648],{"class":4661},[4173,117278,6390],{"class":4784},[4173,117280,96653],{"class":4669},[4173,117282,66659],{"class":4784},[4173,117284,96658],{"class":4766},[4173,117286,117287,117289,117291,117293,117295],{"class":4657,"line":6479},[4173,117288,104299],{"class":4788},[4173,117290,96665],{"class":4784},[4173,117292,6387],{"class":4788},[4173,117294,25370],{"class":4665},[4173,117296,55559],{"class":4784},[4173,117298,117299,117301,117303,117305,117307,117309,117311,117313,117315],{"class":4657,"line":6503},[4173,117300,105817],{"class":4788},[4173,117302,96678],{"class":4784},[4173,117304,6387],{"class":4788},[4173,117306,79032],{"class":4788},[4173,117308,86071],{"class":4661},[4173,117310,6390],{"class":4784},[4173,117312,81243],{"class":4788},[4173,117314,86078],{"class":4661},[4173,117316,96693],{"class":4784},[4173,117318,117319],{"class":4657,"line":6516},[4173,117320,117321],{"class":4784},"            String line;\n",[4173,117323,117324,117326,117328,117330,117332,117334,117336,117338,117340],{"class":4657,"line":6971},[4173,117325,106048],{"class":4788},[4173,117327,96705],{"class":4784},[4173,117329,6387],{"class":4788},[4173,117331,95092],{"class":4784},[4173,117333,86101],{"class":4661},[4173,117335,86104],{"class":4784},[4173,117337,19461],{"class":4788},[4173,117339,85147],{"class":4665},[4173,117341,56319],{"class":4784},[4173,117343,117344,117347,117349,117351,117353],{"class":4657,"line":10649},[4173,117345,117346],{"class":4784},"                Matcher m ",[4173,117348,6387],{"class":4788},[4173,117350,96729],{"class":4784},[4173,117352,96732],{"class":4661},[4173,117354,96150],{"class":4784},[4173,117356,117357,117360,117362,117364],{"class":4657,"line":10654},[4173,117358,117359],{"class":4788},"                if",[4173,117361,96741],{"class":4784},[4173,117363,9459],{"class":4661},[4173,117365,85158],{"class":4784},[4173,117367,117368,117371,117373],{"class":4657,"line":10659},[4173,117369,117370],{"class":4784},"                    count",[4173,117372,10670],{"class":4788},[4173,117374,55559],{"class":4784},[4173,117376,117377],{"class":4657,"line":10664},[4173,117378,117379],{"class":4784},"                }\n",[4173,117381,117382],{"class":4657,"line":10676},[4173,117383,101599],{"class":4784},[4173,117385,117386,117388,117390,117392,117394,117396],{"class":4657,"line":10681},[4173,117387,100121],{"class":4784},[4173,117389,79074],{"class":4661},[4173,117391,6390],{"class":4784},[4173,117393,96772],{"class":4669},[4173,117395,11719],{"class":4788},[4173,117397,96777],{"class":4784},[4173,117399,117400,117402,117404,117406,117408,117410,117412,117414],{"class":4657,"line":10702},[4173,117401,100121],{"class":4784},[4173,117403,79074],{"class":4661},[4173,117405,6390],{"class":4784},[4173,117407,96788],{"class":4669},[4173,117409,11719],{"class":4788},[4173,117411,96729],{"class":4784},[4173,117413,96798],{"class":4661},[4173,117415,81860],{"class":4784},[4173,117417,117418,117420,117422,117424,117426,117428],{"class":4657,"line":10707},[4173,117419,100121],{"class":4784},[4173,117421,79074],{"class":4661},[4173,117423,6390],{"class":4784},[4173,117425,96811],{"class":4669},[4173,117427,11719],{"class":4788},[4173,117429,96816],{"class":4784},[4173,117431,117432,117434,117436,117438,117440],{"class":4657,"line":10712},[4173,117433,105295],{"class":4784},[4173,117435,85917],{"class":4788},[4173,117437,96825],{"class":4784},[4173,117439,20602],{"class":7074},[4173,117441,56319],{"class":4784},[4173,117443,117444,117446,117448,117450,117452,117454],{"class":4657,"line":10717},[4173,117445,105903],{"class":4784},[4173,117447,79074],{"class":4661},[4173,117449,6390],{"class":4784},[4173,117451,96840],{"class":4669},[4173,117453,11719],{"class":4788},[4173,117455,96777],{"class":4784},[4173,117457,117458,117460,117462,117464],{"class":4657,"line":10727},[4173,117459,105903],{"class":4784},[4173,117461,79074],{"class":4661},[4173,117463,6390],{"class":4784},[4173,117465,117466],{"class":4669},"\"Stelle sicher, dass die Datei im Projektverzeichnis liegt oder\n",[4173,117468,117469,117472],{"class":4657,"line":10732},[4173,117470,117471],{"class":4669},"gib einen Pfad als Argument an.\"",[4173,117473,55545],{"class":4784},[4173,117475,117476,117478,117480,117482,117484],{"class":4657,"line":10737},[4173,117477,105295],{"class":4784},[4173,117479,85917],{"class":4788},[4173,117481,85960],{"class":4784},[4173,117483,20602],{"class":7074},[4173,117485,56319],{"class":4784},[4173,117487,117488,117490,117492,117494,117496,117498,117500,117502],{"class":4657,"line":10742},[4173,117489,105903],{"class":4784},[4173,117491,79074],{"class":4661},[4173,117493,6390],{"class":4784},[4173,117495,96885],{"class":4669},[4173,117497,11719],{"class":4788},[4173,117499,85946],{"class":4784},[4173,117501,85949],{"class":4661},[4173,117503,81860],{"class":4784},[4173,117505,117506],{"class":4657,"line":10752},[4173,117507,100145],{"class":4784},[4173,117509,117510],{"class":4657,"line":10757},[4173,117511,100385],{"class":4784},[4173,117513,117514],{"class":4657,"line":10762},[4173,117515,7090],{"class":4784},[11,117517,96911],{"id":96910},[4647,117519,117521],{"className":78931,"code":117520,"language":78933,"meta":269,"style":269},"import java.io.File;\nimport java.io.FileNotFoundException;\nimport java.io.PrintWriter;\nimport java.util.Scanner;\npublic class TryVergleich {\n    public static void main(String[] args) {\n        String dateiName = \"test.txt\";\n        erstelleTestDatei(dateiName);\n        \u002F\u002F --- VARIANTE 1: Der klassische try-Block ---\n        System.out.println(\"--- Variante 1: Klassisch ---\");\n        Scanner klassischerScanner = null;\n        try {\n            \u002F\u002F Die Ressource wird im Block geöffnet\n            klassischerScanner = new Scanner(new File(dateiName));\n            System.out.println(\"Inhalt: \" + klassischerScanner.nextLine());\n            \u002F\u002F PROBLEM: Wenn hier ein Fehler passiert, wird .close() nie erreicht!\n            \u002F\u002F klassischerScanner.close();\n        } catch (FileNotFoundException e) {\n            System.err.println(\"Fehler: Datei nicht gefunden.\");\n        } finally {\n            \u002F\u002F Wir MÜSSEN manuell prüfen und schließen\n            if (klassischerScanner != null) {\n                klassischerScanner.close();\n                System.out.println(\"Scanner manuell geschlossen.\");\n            }\n        }\n        System.out.println(\"\\n--- Variante 2: Try-with-Resources ---\");\n        \u002F\u002F --- VARIANTE 2: Das moderne try (Ressource) { ... } ---\n        \u002F\u002F Die Ressource wird in den RUNDEN Klammern definiert.\n        try (Scanner modernerScanner = new Scanner(new File(dateiName))) {\n            System.out.println(\"Inhalt: \" + modernerScanner.nextLine());\n            \u002F\u002F KEIN .close() nötig! Java schließt den Scanner automatisch,\n            \u002F\u002F sobald die geschweifte Klammer unten erreicht wird.\n        } catch (FileNotFoundException e) {\n            System.err.println(\"Fehler: Datei nicht gefunden.\");\n        }\n        \u002F\u002F Kein 'finally' Block für das Schließen mehr nötig.\n        System.out.println(\"Scanner wurde automatisch von Java geschlossen.\");\n    }\n    \u002F\u002F Hilfsmethode zum Erstellen der Datei\n    private static void erstelleTestDatei(String name) {\n        try (PrintWriter writer = new PrintWriter(name)) {\n            writer.println(\"Hallo Java-Welt!\");\n        } catch (FileNotFoundException e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n",[4653,117522,117523,117529,117535,117541,117547,117557,117577,117588,117595,117600,117612,117623,117629,117634,117653,117671,117676,117681,117693,117705,117713,117718,117730,117739,117751,117755,117759,117775,117780,117785,117805,117823,117828,117833,117845,117857,117861,117866,117878,117882,117887,117903,117917,117929,117941,117950,117954,117958],{"__ignoreMap":269},[4173,117524,117525,117527],{"class":4657,"line":4658},[4173,117526,79019],{"class":4788},[4173,117528,96923],{"class":4784},[4173,117530,117531,117533],{"class":4657,"line":270},[4173,117532,79019],{"class":4788},[4173,117534,96543],{"class":4784},[4173,117536,117537,117539],{"class":4657,"line":1263},[4173,117538,79019],{"class":4788},[4173,117540,96936],{"class":4784},[4173,117542,117543,117545],{"class":4657,"line":4770},[4173,117544,79019],{"class":4788},[4173,117546,79022],{"class":4784},[4173,117548,117549,117551,117553,117555],{"class":4657,"line":4775},[4173,117550,79889],{"class":4788},[4173,117552,80062],{"class":4788},[4173,117554,96951],{"class":4661},[4173,117556,51614],{"class":4784},[4173,117558,117559,117561,117563,117565,117567,117569,117571,117573,117575],{"class":4657,"line":6320},[4173,117560,100265],{"class":4788},[4173,117562,79892],{"class":4788},[4173,117564,79934],{"class":4788},[4173,117566,79937],{"class":4661},[4173,117568,6390],{"class":4784},[4173,117570,79693],{"class":4788},[4173,117572,80084],{"class":4784},[4173,117574,31283],{"class":7074},[4173,117576,56319],{"class":4784},[4173,117578,117579,117582,117584,117586],{"class":4657,"line":6325},[4173,117580,117581],{"class":4784},"        String dateiName ",[4173,117583,6387],{"class":4788},[4173,117585,96983],{"class":4669},[4173,117587,55559],{"class":4784},[4173,117589,117590,117593],{"class":4657,"line":6343},[4173,117591,117592],{"class":4661},"        erstelleTestDatei",[4173,117594,96993],{"class":4784},[4173,117596,117597],{"class":4657,"line":6348},[4173,117598,117599],{"class":4766},"        \u002F\u002F --- VARIANTE 1: Der klassische try-Block ---\n",[4173,117601,117602,117604,117606,117608,117610],{"class":4657,"line":6457},[4173,117603,100097],{"class":4784},[4173,117605,79074],{"class":4661},[4173,117607,6390],{"class":4784},[4173,117609,97009],{"class":4669},[4173,117611,55545],{"class":4784},[4173,117613,117614,117617,117619,117621],{"class":4657,"line":6462},[4173,117615,117616],{"class":4784},"        Scanner klassischerScanner ",[4173,117618,6387],{"class":4788},[4173,117620,85147],{"class":4665},[4173,117622,55559],{"class":4784},[4173,117624,117625,117627],{"class":4657,"line":6468},[4173,117626,105817],{"class":4788},[4173,117628,51614],{"class":4784},[4173,117630,117631],{"class":4657,"line":6473},[4173,117632,117633],{"class":4766},"            \u002F\u002F Die Ressource wird im Block geöffnet\n",[4173,117635,117636,117639,117641,117643,117645,117647,117649,117651],{"class":4657,"line":6479},[4173,117637,117638],{"class":4784},"            klassischerScanner ",[4173,117640,6387],{"class":4788},[4173,117642,79032],{"class":4788},[4173,117644,79035],{"class":4661},[4173,117646,6390],{"class":4784},[4173,117648,81243],{"class":4788},[4173,117650,97051],{"class":4661},[4173,117652,97054],{"class":4784},[4173,117654,117655,117657,117659,117661,117663,117665,117667,117669],{"class":4657,"line":6503},[4173,117656,100121],{"class":4784},[4173,117658,79074],{"class":4661},[4173,117660,6390],{"class":4784},[4173,117662,97065],{"class":4669},[4173,117664,11719],{"class":4788},[4173,117666,97070],{"class":4784},[4173,117668,79065],{"class":4661},[4173,117670,81860],{"class":4784},[4173,117672,117673],{"class":4657,"line":6516},[4173,117674,117675],{"class":4766},"            \u002F\u002F PROBLEM: Wenn hier ein Fehler passiert, wird .close() nie erreicht!\n",[4173,117677,117678],{"class":4657,"line":6971},[4173,117679,117680],{"class":4766},"            \u002F\u002F klassischerScanner.close();\n",[4173,117682,117683,117685,117687,117689,117691],{"class":4657,"line":10649},[4173,117684,105295],{"class":4784},[4173,117686,85917],{"class":4788},[4173,117688,96825],{"class":4784},[4173,117690,20602],{"class":7074},[4173,117692,56319],{"class":4784},[4173,117694,117695,117697,117699,117701,117703],{"class":4657,"line":10654},[4173,117696,105903],{"class":4784},[4173,117698,79074],{"class":4661},[4173,117700,6390],{"class":4784},[4173,117702,97115],{"class":4669},[4173,117704,55545],{"class":4784},[4173,117706,117707,117709,117711],{"class":4657,"line":10659},[4173,117708,105295],{"class":4784},[4173,117710,86570],{"class":4788},[4173,117712,51614],{"class":4784},[4173,117714,117715],{"class":4657,"line":10664},[4173,117716,117717],{"class":4766},"            \u002F\u002F Wir MÜSSEN manuell prüfen und schließen\n",[4173,117719,117720,117722,117724,117726,117728],{"class":4657,"line":10676},[4173,117721,102179],{"class":4788},[4173,117723,97137],{"class":4784},[4173,117725,19461],{"class":4788},[4173,117727,85147],{"class":4665},[4173,117729,56319],{"class":4784},[4173,117731,117732,117735,117737],{"class":4657,"line":10681},[4173,117733,117734],{"class":4784},"                klassischerScanner.",[4173,117736,94877],{"class":4661},[4173,117738,65878],{"class":4784},[4173,117740,117741,117743,117745,117747,117749],{"class":4657,"line":10702},[4173,117742,101586],{"class":4784},[4173,117744,79074],{"class":4661},[4173,117746,6390],{"class":4784},[4173,117748,97163],{"class":4669},[4173,117750,55545],{"class":4784},[4173,117752,117753],{"class":4657,"line":10707},[4173,117754,101599],{"class":4784},[4173,117756,117757],{"class":4657,"line":10712},[4173,117758,100145],{"class":4784},[4173,117760,117761,117763,117765,117767,117769,117771,117773],{"class":4657,"line":10717},[4173,117762,100097],{"class":4784},[4173,117764,79074],{"class":4661},[4173,117766,6390],{"class":4784},[4173,117768,6207],{"class":4669},[4173,117770,83928],{"class":4665},[4173,117772,97188],{"class":4669},[4173,117774,55545],{"class":4784},[4173,117776,117777],{"class":4657,"line":10727},[4173,117778,117779],{"class":4766},"        \u002F\u002F --- VARIANTE 2: Das moderne try (Ressource) { ... } ---\n",[4173,117781,117782],{"class":4657,"line":10732},[4173,117783,117784],{"class":4766},"        \u002F\u002F Die Ressource wird in den RUNDEN Klammern definiert.\n",[4173,117786,117787,117789,117791,117793,117795,117797,117799,117801,117803],{"class":4657,"line":10737},[4173,117788,105817],{"class":4788},[4173,117790,97207],{"class":4784},[4173,117792,6387],{"class":4788},[4173,117794,79032],{"class":4788},[4173,117796,79035],{"class":4661},[4173,117798,6390],{"class":4784},[4173,117800,81243],{"class":4788},[4173,117802,97051],{"class":4661},[4173,117804,97222],{"class":4784},[4173,117806,117807,117809,117811,117813,117815,117817,117819,117821],{"class":4657,"line":10742},[4173,117808,100121],{"class":4784},[4173,117810,79074],{"class":4661},[4173,117812,6390],{"class":4784},[4173,117814,97065],{"class":4669},[4173,117816,11719],{"class":4788},[4173,117818,97237],{"class":4784},[4173,117820,79065],{"class":4661},[4173,117822,81860],{"class":4784},[4173,117824,117825],{"class":4657,"line":10752},[4173,117826,117827],{"class":4766},"            \u002F\u002F KEIN .close() nötig! Java schließt den Scanner automatisch,\n",[4173,117829,117830],{"class":4657,"line":10757},[4173,117831,117832],{"class":4766},"            \u002F\u002F sobald die geschweifte Klammer unten erreicht wird.\n",[4173,117834,117835,117837,117839,117841,117843],{"class":4657,"line":10762},[4173,117836,105295],{"class":4784},[4173,117838,85917],{"class":4788},[4173,117840,96825],{"class":4784},[4173,117842,20602],{"class":7074},[4173,117844,56319],{"class":4784},[4173,117846,117847,117849,117851,117853,117855],{"class":4657,"line":10767},[4173,117848,105903],{"class":4784},[4173,117850,79074],{"class":4661},[4173,117852,6390],{"class":4784},[4173,117854,97115],{"class":4669},[4173,117856,55545],{"class":4784},[4173,117858,117859],{"class":4657,"line":10772},[4173,117860,100145],{"class":4784},[4173,117862,117863],{"class":4657,"line":10777},[4173,117864,117865],{"class":4766},"        \u002F\u002F Kein 'finally' Block für das Schließen mehr nötig.\n",[4173,117867,117868,117870,117872,117874,117876],{"class":4657,"line":10782},[4173,117869,100097],{"class":4784},[4173,117871,79074],{"class":4661},[4173,117873,6390],{"class":4784},[4173,117875,97295],{"class":4669},[4173,117877,55545],{"class":4784},[4173,117879,117880],{"class":4657,"line":10787},[4173,117881,100385],{"class":4784},[4173,117883,117884],{"class":4657,"line":10800},[4173,117885,117886],{"class":4766},"    \u002F\u002F Hilfsmethode zum Erstellen der Datei\n",[4173,117888,117889,117891,117893,117895,117897,117899,117901],{"class":4657,"line":10805},[4173,117890,100507],{"class":4788},[4173,117892,79892],{"class":4788},[4173,117894,79934],{"class":4788},[4173,117896,97317],{"class":4661},[4173,117898,80001],{"class":4784},[4173,117900,28734],{"class":7074},[4173,117902,56319],{"class":4784},[4173,117904,117905,117907,117909,117911,117913,117915],{"class":4657,"line":10818},[4173,117906,105817],{"class":4788},[4173,117908,97330],{"class":4784},[4173,117910,6387],{"class":4788},[4173,117912,79032],{"class":4788},[4173,117914,97337],{"class":4661},[4173,117916,97340],{"class":4784},[4173,117918,117919,117921,117923,117925,117927],{"class":4657,"line":10823},[4173,117920,106215],{"class":4784},[4173,117922,79074],{"class":4661},[4173,117924,6390],{"class":4784},[4173,117926,97351],{"class":4669},[4173,117928,55545],{"class":4784},[4173,117930,117931,117933,117935,117937,117939],{"class":4657,"line":10836},[4173,117932,105295],{"class":4784},[4173,117934,85917],{"class":4788},[4173,117936,96825],{"class":4784},[4173,117938,20602],{"class":7074},[4173,117940,56319],{"class":4784},[4173,117942,117943,117946,117948],{"class":4657,"line":10841},[4173,117944,117945],{"class":4784},"            e.",[4173,117947,94901],{"class":4661},[4173,117949,65878],{"class":4784},[4173,117951,117952],{"class":4657,"line":10846},[4173,117953,100145],{"class":4784},[4173,117955,117956],{"class":4657,"line":10851},[4173,117957,100385],{"class":4784},[4173,117959,117960],{"class":4657,"line":10867},[4173,117961,7090],{"class":4784},[11,117963,117965],{"id":117964},"java-programm-zu-regex","Java-Programm zu REGEX",[4647,117967,117969],{"className":78931,"code":117968,"language":78933,"meta":269,"style":269},"import java.util.Arrays;\nimport java.util.List;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\nimport java.util.stream.Collectors;\npublic class RegexBeispiele {\n    public static void main(String[] args) {\n        System.out.println(\"--- 1. EINFACHE VALIDIERUNG (String Methoden) ---\");\n        stringMatchesDemo();\n        System.out.println(\"\\n--- 2. KOMPLEXE SUCHE & EXTRAKTION (Pattern & Matcher) ---\");\n        patternMatcherFindDemo();\n        System.out.println(\"\\n--- 3. ERSETZEN VON TEXT (Replace) ---\");\n        replaceDemo();\n        System.out.println(\"\\n--- 4. TEXT AUFTEILEN (Split) ---\");\n        splitDemo();\n        System.out.println(\"\\n--- 5. REGEX MIT JAVA STREAMS (Java 8+) ---\");\n        streamPredicateDemo();\n    }\n    \u002F\u002F 1. Validierung direkt auf dem String\n    private static void stringMatchesDemo() {\n        String email = \"test.user@example.com\";\n        \u002F\u002F Einfacher Regex für E-Mails (nicht für den produktiven Einsatz optimiert)\n        String regex = \"^[A-Za-z0-9+_.-]+@(.+)$\";\n        \u002F\u002F String.matches() prüft, ob der GANZE String dem Muster entspricht\n        boolean isValid = email.matches(regex);\n        System.out.println(\"Ist die E-Mail gültig? \" + isValid);\n    }\n    \u002F\u002F 2. Suchen und Extrahieren (Gruppen)\n    private static void patternMatcherFindDemo() {\n        String text = \"Die Bestellung #12345 kostet 99.50 Euro. Bestellung #67890 kostet 12.00\nEuro.\";\n        \u002F\u002F Pattern.compile() ist effizienter, wenn das Muster mehrfach genutzt wird.\n        \u002F\u002F Wir nutzen Capture Groups '()' um Nummer und Preis zu extrahieren.\n        Pattern pattern = Pattern.compile(\"#(\\\\d+).*?(\\\\d+\\.\\\\d{2})\");\n        Matcher matcher = pattern.matcher(text);\n        \u002F\u002F Matcher.find() sucht das nächste Vorkommen im Text\n        while (matcher.find()) {\n            System.out.println(\"Gefunden: \" + matcher.group(0)); \u002F\u002F Gesamter Match\n            System.out.println(\" -> Bestellnummer (Gruppe 1): \" + matcher.group(1));\n            System.out.println(\" -> Preis (Gruppe 2): \" + matcher.group(2));\n        }\n    }\n    \u002F\u002F 3. Text ersetzen\n    private static void replaceDemo() {\n        String unsaubererText = \"Hier   sind    viel  zu  viele    Leerzeichen.\";\n        \u002F\u002F String.replaceAll() nutzt intern Regex\n        String saubererText = unsaubererText.replaceAll(\"\\\\s+\", \" \");\n        System.out.println(\"Bereinigt: \" + saubererText);\n        \u002F\u002F Ersetzen mit Matcher (komplexere Logik)\n        String datum = \"Heute ist der 2026-02-23.\";\n        Pattern datePattern = Pattern.compile(\"(\\\\d{4})-(\\\\d{2})-(\\\\d{2})\");\n        Matcher dateMatcher = datePattern.matcher(datum);\n        \u002F\u002F Formatiert YYYY-MM-DD zu DD.MM.YYYY ($3 = Gruppe 3, etc.)\n        String deutschesDatum = dateMatcher.replaceAll(\"$3.$2.$1\");\n        System.out.println(\"Datum umformatiert: \" + deutschesDatum);\n    }\n    \u002F\u002F 4. Strings in Arrays aufteilen\n    private static void splitDemo() {\n        String csvZeile = \"Apfel, Banane; Orange|Pfirsich\";\n        \u002F\u002F Wir splitten bei Komma, Semikolon oder Pipe, gefolgt von optionalen Leerzeichen\n        String[] fruechte = csvZeile.split(\"[,;|]\\\\s*\");\n        System.out.println(\"Gefundene Früchte:\");\n        for (String frucht : fruechte) {\n            System.out.println(\"- \" + frucht);\n        }\n    }\n    \u002F\u002F 5. Moderne Filterung mit Streams und Pattern.asPredicate()\n    private static void streamPredicateDemo() {\n        List\u003CString> worte = Arrays.asList(\"Apfel\", \"123\", \"Banane\", \"456\", \"Kirsche\");\n        \u002F\u002F Nur Strings behalten, die ausschließlich aus Zahlen bestehen\n        Pattern numberPattern = Pattern.compile(\"^\\\\d+$\");\n        List\u003CString> nurZahlen = worte.stream()\n                .filter(numberPattern.asPredicate()) \u002F\u002F Wandelt Regex in ein Predicate um\n                .collect(Collectors.toList());\n        System.out.println(\"Nur Zahlen gefiltert: \" + nurZahlen);\n    }\n}\nJava REGEX PDF\n\n![](\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_2.jpg)![](\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_3.jpg)![](\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_4.jpg)![](\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_5.jpg)![](\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_6.jpg)![](\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_7.jpg)\n",[4653,117970,117971,117977,117983,117989,117995,118001,118011,118031,118043,118050,118067,118074,118090,118097,118113,118120,118136,118143,118147,118152,118164,118175,118180,118191,118196,118211,118225,118229,118234,118246,118255,118262,118267,118272,118301,118314,118319,118329,118353,118375,118397,118401,118405,118410,118422,118433,118438,118463,118477,118482,118493,118522,118535,118540,118557,118571,118575,118580,118592,118603,118608,118630,118642,118652,118666,118670,118674,118679,118691,118728,118733,118754,118770,118786,118798,118812,118816,118820,118825,118829],{"__ignoreMap":269},[4173,117972,117973,117975],{"class":4657,"line":4658},[4173,117974,79019],{"class":4788},[4173,117976,97392],{"class":4784},[4173,117978,117979,117981],{"class":4657,"line":270},[4173,117980,79019],{"class":4788},[4173,117982,97399],{"class":4784},[4173,117984,117985,117987],{"class":4657,"line":1263},[4173,117986,79019],{"class":4788},[4173,117988,96563],{"class":4784},[4173,117990,117991,117993],{"class":4657,"line":4770},[4173,117992,79019],{"class":4788},[4173,117994,96556],{"class":4784},[4173,117996,117997,117999],{"class":4657,"line":4775},[4173,117998,79019],{"class":4788},[4173,118000,97418],{"class":4784},[4173,118002,118003,118005,118007,118009],{"class":4657,"line":6320},[4173,118004,79889],{"class":4788},[4173,118006,80062],{"class":4788},[4173,118008,97427],{"class":4661},[4173,118010,51614],{"class":4784},[4173,118012,118013,118015,118017,118019,118021,118023,118025,118027,118029],{"class":4657,"line":6325},[4173,118014,100265],{"class":4788},[4173,118016,79892],{"class":4788},[4173,118018,79934],{"class":4788},[4173,118020,79937],{"class":4661},[4173,118022,6390],{"class":4784},[4173,118024,79693],{"class":4788},[4173,118026,80084],{"class":4784},[4173,118028,31283],{"class":7074},[4173,118030,56319],{"class":4784},[4173,118032,118033,118035,118037,118039,118041],{"class":4657,"line":6343},[4173,118034,100097],{"class":4784},[4173,118036,79074],{"class":4661},[4173,118038,6390],{"class":4784},[4173,118040,97460],{"class":4669},[4173,118042,55545],{"class":4784},[4173,118044,118045,118048],{"class":4657,"line":6348},[4173,118046,118047],{"class":4661},"        stringMatchesDemo",[4173,118049,65878],{"class":4784},[4173,118051,118052,118054,118056,118058,118060,118062,118065],{"class":4657,"line":6457},[4173,118053,100097],{"class":4784},[4173,118055,79074],{"class":4661},[4173,118057,6390],{"class":4784},[4173,118059,6207],{"class":4669},[4173,118061,83928],{"class":4665},[4173,118063,118064],{"class":4669},"--- 2. KOMPLEXE SUCHE & EXTRAKTION (Pattern & Matcher) ---\"",[4173,118066,55545],{"class":4784},[4173,118068,118069,118072],{"class":4657,"line":6462},[4173,118070,118071],{"class":4661},"        patternMatcherFindDemo",[4173,118073,65878],{"class":4784},[4173,118075,118076,118078,118080,118082,118084,118086,118088],{"class":4657,"line":6468},[4173,118077,100097],{"class":4784},[4173,118079,79074],{"class":4661},[4173,118081,6390],{"class":4784},[4173,118083,6207],{"class":4669},[4173,118085,83928],{"class":4665},[4173,118087,97513],{"class":4669},[4173,118089,55545],{"class":4784},[4173,118091,118092,118095],{"class":4657,"line":6473},[4173,118093,118094],{"class":4661},"        replaceDemo",[4173,118096,65878],{"class":4784},[4173,118098,118099,118101,118103,118105,118107,118109,118111],{"class":4657,"line":6479},[4173,118100,100097],{"class":4784},[4173,118102,79074],{"class":4661},[4173,118104,6390],{"class":4784},[4173,118106,6207],{"class":4669},[4173,118108,83928],{"class":4665},[4173,118110,97537],{"class":4669},[4173,118112,55545],{"class":4784},[4173,118114,118115,118118],{"class":4657,"line":6503},[4173,118116,118117],{"class":4661},"        splitDemo",[4173,118119,65878],{"class":4784},[4173,118121,118122,118124,118126,118128,118130,118132,118134],{"class":4657,"line":6516},[4173,118123,100097],{"class":4784},[4173,118125,79074],{"class":4661},[4173,118127,6390],{"class":4784},[4173,118129,6207],{"class":4669},[4173,118131,83928],{"class":4665},[4173,118133,97561],{"class":4669},[4173,118135,55545],{"class":4784},[4173,118137,118138,118141],{"class":4657,"line":6971},[4173,118139,118140],{"class":4661},"        streamPredicateDemo",[4173,118142,65878],{"class":4784},[4173,118144,118145],{"class":4657,"line":10649},[4173,118146,100385],{"class":4784},[4173,118148,118149],{"class":4657,"line":10654},[4173,118150,118151],{"class":4766},"    \u002F\u002F 1. Validierung direkt auf dem String\n",[4173,118153,118154,118156,118158,118160,118162],{"class":4657,"line":10659},[4173,118155,100507],{"class":4788},[4173,118157,79892],{"class":4788},[4173,118159,79934],{"class":4788},[4173,118161,97590],{"class":4661},[4173,118163,7062],{"class":4784},[4173,118165,118166,118169,118171,118173],{"class":4657,"line":10664},[4173,118167,118168],{"class":4784},"        String email ",[4173,118170,6387],{"class":4788},[4173,118172,97602],{"class":4669},[4173,118174,55559],{"class":4784},[4173,118176,118177],{"class":4657,"line":10676},[4173,118178,118179],{"class":4766},"        \u002F\u002F Einfacher Regex für E-Mails (nicht für den produktiven Einsatz optimiert)\n",[4173,118181,118182,118185,118187,118189],{"class":4657,"line":10681},[4173,118183,118184],{"class":4784},"        String regex ",[4173,118186,6387],{"class":4788},[4173,118188,97619],{"class":4669},[4173,118190,55559],{"class":4784},[4173,118192,118193],{"class":4657,"line":10702},[4173,118194,118195],{"class":4766},"        \u002F\u002F String.matches() prüft, ob der GANZE String dem Muster entspricht\n",[4173,118197,118198,118201,118203,118205,118207,118209],{"class":4657,"line":10707},[4173,118199,118200],{"class":4788},"        boolean",[4173,118202,97633],{"class":4784},[4173,118204,6387],{"class":4788},[4173,118206,97638],{"class":4784},[4173,118208,88609],{"class":4661},[4173,118210,97643],{"class":4784},[4173,118212,118213,118215,118217,118219,118221,118223],{"class":4657,"line":10712},[4173,118214,100097],{"class":4784},[4173,118216,79074],{"class":4661},[4173,118218,6390],{"class":4784},[4173,118220,97654],{"class":4669},[4173,118222,11719],{"class":4788},[4173,118224,97659],{"class":4784},[4173,118226,118227],{"class":4657,"line":10717},[4173,118228,100385],{"class":4784},[4173,118230,118231],{"class":4657,"line":10727},[4173,118232,118233],{"class":4766},"    \u002F\u002F 2. Suchen und Extrahieren (Gruppen)\n",[4173,118235,118236,118238,118240,118242,118244],{"class":4657,"line":10732},[4173,118237,100507],{"class":4788},[4173,118239,79892],{"class":4788},[4173,118241,79934],{"class":4788},[4173,118243,97679],{"class":4661},[4173,118245,7062],{"class":4784},[4173,118247,118248,118250,118252],{"class":4657,"line":10737},[4173,118249,104431],{"class":4784},[4173,118251,6387],{"class":4788},[4173,118253,118254],{"class":4669}," \"Die Bestellung #12345 kostet 99.50 Euro. Bestellung #67890 kostet 12.00\n",[4173,118256,118257,118260],{"class":4657,"line":10742},[4173,118258,118259],{"class":4669},"Euro.\"",[4173,118261,55559],{"class":4784},[4173,118263,118264],{"class":4657,"line":10752},[4173,118265,118266],{"class":4766},"        \u002F\u002F Pattern.compile() ist effizienter, wenn das Muster mehrfach genutzt wird.\n",[4173,118268,118269],{"class":4657,"line":10757},[4173,118270,118271],{"class":4766},"        \u002F\u002F Wir nutzen Capture Groups '()' um Nummer und Preis zu extrahieren.\n",[4173,118273,118274,118276,118278,118280,118282,118284,118286,118288,118290,118292,118294,118297,118299],{"class":4657,"line":10762},[4173,118275,117270],{"class":4784},[4173,118277,6387],{"class":4788},[4173,118279,96645],{"class":4784},[4173,118281,96648],{"class":4661},[4173,118283,6390],{"class":4784},[4173,118285,97722],{"class":4669},[4173,118287,88532],{"class":4665},[4173,118289,97727],{"class":4669},[4173,118291,88532],{"class":4665},[4173,118293,97732],{"class":4669},[4173,118295,118296],{"class":4665},"\\.\\\\",[4173,118298,97741],{"class":4669},[4173,118300,55545],{"class":4784},[4173,118302,118303,118306,118308,118310,118312],{"class":4657,"line":10767},[4173,118304,118305],{"class":4784},"        Matcher matcher ",[4173,118307,6387],{"class":4788},[4173,118309,96729],{"class":4784},[4173,118311,96732],{"class":4661},[4173,118313,86286],{"class":4784},[4173,118315,118316],{"class":4657,"line":10772},[4173,118317,118318],{"class":4766},"        \u002F\u002F Matcher.find() sucht das nächste Vorkommen im Text\n",[4173,118320,118321,118323,118325,118327],{"class":4657,"line":10777},[4173,118322,108409],{"class":4788},[4173,118324,97768],{"class":4784},[4173,118326,9459],{"class":4661},[4173,118328,85158],{"class":4784},[4173,118330,118331,118333,118335,118337,118339,118341,118343,118345,118347,118349,118351],{"class":4657,"line":10782},[4173,118332,100121],{"class":4784},[4173,118334,79074],{"class":4661},[4173,118336,6390],{"class":4784},[4173,118338,97783],{"class":4669},[4173,118340,11719],{"class":4788},[4173,118342,97788],{"class":4784},[4173,118344,13681],{"class":4661},[4173,118346,6390],{"class":4784},[4173,118348,12749],{"class":4665},[4173,118350,48385],{"class":4784},[4173,118352,97799],{"class":4766},[4173,118354,118355,118357,118359,118361,118363,118365,118367,118369,118371,118373],{"class":4657,"line":10787},[4173,118356,100121],{"class":4784},[4173,118358,79074],{"class":4661},[4173,118360,6390],{"class":4784},[4173,118362,97810],{"class":4669},[4173,118364,11719],{"class":4788},[4173,118366,97788],{"class":4784},[4173,118368,13681],{"class":4661},[4173,118370,6390],{"class":4784},[4173,118372,14223],{"class":4665},[4173,118374,66047],{"class":4784},[4173,118376,118377,118379,118381,118383,118385,118387,118389,118391,118393,118395],{"class":4657,"line":10800},[4173,118378,100121],{"class":4784},[4173,118380,79074],{"class":4661},[4173,118382,6390],{"class":4784},[4173,118384,97833],{"class":4669},[4173,118386,11719],{"class":4788},[4173,118388,97788],{"class":4784},[4173,118390,13681],{"class":4661},[4173,118392,6390],{"class":4784},[4173,118394,14206],{"class":4665},[4173,118396,66047],{"class":4784},[4173,118398,118399],{"class":4657,"line":10805},[4173,118400,100145],{"class":4784},[4173,118402,118403],{"class":4657,"line":10818},[4173,118404,100385],{"class":4784},[4173,118406,118407],{"class":4657,"line":10823},[4173,118408,118409],{"class":4766},"    \u002F\u002F 3. Text ersetzen\n",[4173,118411,118412,118414,118416,118418,118420],{"class":4657,"line":10836},[4173,118413,100507],{"class":4788},[4173,118415,79892],{"class":4788},[4173,118417,79934],{"class":4788},[4173,118419,97869],{"class":4661},[4173,118421,7062],{"class":4784},[4173,118423,118424,118427,118429,118431],{"class":4657,"line":10841},[4173,118425,118426],{"class":4784},"        String unsaubererText ",[4173,118428,6387],{"class":4788},[4173,118430,97881],{"class":4669},[4173,118432,55559],{"class":4784},[4173,118434,118435],{"class":4657,"line":10846},[4173,118436,118437],{"class":4766},"        \u002F\u002F String.replaceAll() nutzt intern Regex\n",[4173,118439,118440,118443,118445,118447,118449,118451,118453,118455,118457,118459,118461],{"class":4657,"line":10851},[4173,118441,118442],{"class":4784},"        String saubererText ",[4173,118444,6387],{"class":4788},[4173,118446,97898],{"class":4784},[4173,118448,88525],{"class":4661},[4173,118450,6390],{"class":4784},[4173,118452,6207],{"class":4669},[4173,118454,88532],{"class":4665},[4173,118456,97909],{"class":4669},[4173,118458,8629],{"class":4784},[4173,118460,79709],{"class":4669},[4173,118462,55545],{"class":4784},[4173,118464,118465,118467,118469,118471,118473,118475],{"class":4657,"line":10867},[4173,118466,100097],{"class":4784},[4173,118468,79074],{"class":4661},[4173,118470,6390],{"class":4784},[4173,118472,97926],{"class":4669},[4173,118474,11719],{"class":4788},[4173,118476,97931],{"class":4784},[4173,118478,118479],{"class":4657,"line":10872},[4173,118480,118481],{"class":4766},"        \u002F\u002F Ersetzen mit Matcher (komplexere Logik)\n",[4173,118483,118484,118487,118489,118491],{"class":4657,"line":10877},[4173,118485,118486],{"class":4784},"        String datum ",[4173,118488,6387],{"class":4788},[4173,118490,97946],{"class":4669},[4173,118492,55559],{"class":4784},[4173,118494,118495,118498,118500,118502,118504,118506,118508,118510,118512,118514,118516,118518,118520],{"class":4657,"line":10882},[4173,118496,118497],{"class":4784},"        Pattern datePattern ",[4173,118499,6387],{"class":4788},[4173,118501,96645],{"class":4784},[4173,118503,96648],{"class":4661},[4173,118505,6390],{"class":4784},[4173,118507,97964],{"class":4669},[4173,118509,88532],{"class":4665},[4173,118511,97969],{"class":4669},[4173,118513,88532],{"class":4665},[4173,118515,97974],{"class":4669},[4173,118517,88532],{"class":4665},[4173,118519,97741],{"class":4669},[4173,118521,55545],{"class":4784},[4173,118523,118524,118527,118529,118531,118533],{"class":4657,"line":10890},[4173,118525,118526],{"class":4784},"        Matcher dateMatcher ",[4173,118528,6387],{"class":4788},[4173,118530,97990],{"class":4784},[4173,118532,96732],{"class":4661},[4173,118534,97995],{"class":4784},[4173,118536,118537],{"class":4657,"line":10895},[4173,118538,118539],{"class":4766},"        \u002F\u002F Formatiert YYYY-MM-DD zu DD.MM.YYYY ($3 = Gruppe 3, etc.)\n",[4173,118541,118542,118545,118547,118549,118551,118553,118555],{"class":4657,"line":10904},[4173,118543,118544],{"class":4784},"        String deutschesDatum ",[4173,118546,6387],{"class":4788},[4173,118548,98010],{"class":4784},[4173,118550,88525],{"class":4661},[4173,118552,6390],{"class":4784},[4173,118554,98017],{"class":4669},[4173,118556,55545],{"class":4784},[4173,118558,118559,118561,118563,118565,118567,118569],{"class":4657,"line":10909},[4173,118560,100097],{"class":4784},[4173,118562,79074],{"class":4661},[4173,118564,6390],{"class":4784},[4173,118566,98030],{"class":4669},[4173,118568,11719],{"class":4788},[4173,118570,98035],{"class":4784},[4173,118572,118573],{"class":4657,"line":10914},[4173,118574,100385],{"class":4784},[4173,118576,118577],{"class":4657,"line":10919},[4173,118578,118579],{"class":4766},"    \u002F\u002F 4. Strings in Arrays aufteilen\n",[4173,118581,118582,118584,118586,118588,118590],{"class":4657,"line":10933},[4173,118583,100507],{"class":4788},[4173,118585,79892],{"class":4788},[4173,118587,79934],{"class":4788},[4173,118589,98055],{"class":4661},[4173,118591,7062],{"class":4784},[4173,118593,118594,118597,118599,118601],{"class":4657,"line":10938},[4173,118595,118596],{"class":4784},"        String csvZeile ",[4173,118598,6387],{"class":4788},[4173,118600,98067],{"class":4669},[4173,118602,55559],{"class":4784},[4173,118604,118605],{"class":4657,"line":10959},[4173,118606,118607],{"class":4766},"        \u002F\u002F Wir splitten bei Komma, Semikolon oder Pipe, gefolgt von optionalen Leerzeichen\n",[4173,118609,118610,118612,118614,118616,118618,118620,118622,118624,118626,118628],{"class":4657,"line":10964},[4173,118611,104756],{"class":4788},[4173,118613,98086],{"class":4784},[4173,118615,6387],{"class":4788},[4173,118617,98091],{"class":4784},[4173,118619,79704],{"class":4661},[4173,118621,6390],{"class":4784},[4173,118623,98098],{"class":4669},[4173,118625,88532],{"class":4665},[4173,118627,98103],{"class":4669},[4173,118629,55545],{"class":4784},[4173,118631,118632,118634,118636,118638,118640],{"class":4657,"line":10969},[4173,118633,100097],{"class":4784},[4173,118635,79074],{"class":4661},[4173,118637,6390],{"class":4784},[4173,118639,98116],{"class":4669},[4173,118641,55545],{"class":4784},[4173,118643,118644,118646,118648,118650],{"class":4657,"line":10974},[4173,118645,100110],{"class":4788},[4173,118647,98125],{"class":4784},[4173,118649,8158],{"class":4788},[4173,118651,98130],{"class":4784},[4173,118653,118654,118656,118658,118660,118662,118664],{"class":4657,"line":10982},[4173,118655,100121],{"class":4784},[4173,118657,79074],{"class":4661},[4173,118659,6390],{"class":4784},[4173,118661,98141],{"class":4669},[4173,118663,11719],{"class":4788},[4173,118665,98146],{"class":4784},[4173,118667,118668],{"class":4657,"line":10987},[4173,118669,100145],{"class":4784},[4173,118671,118672],{"class":4657,"line":10995},[4173,118673,100385],{"class":4784},[4173,118675,118676],{"class":4657,"line":11000},[4173,118677,118678],{"class":4766},"    \u002F\u002F 5. Moderne Filterung mit Streams und Pattern.asPredicate()\n",[4173,118680,118681,118683,118685,118687,118689],{"class":4657,"line":11008},[4173,118682,100507],{"class":4788},[4173,118684,79892],{"class":4788},[4173,118686,79934],{"class":4788},[4173,118688,98170],{"class":4661},[4173,118690,7062],{"class":4784},[4173,118692,118693,118696,118698,118700,118702,118704,118706,118708,118710,118712,118714,118716,118718,118720,118722,118724,118726],{"class":4657,"line":11013},[4173,118694,118695],{"class":4784},"        List\u003C",[4173,118697,79693],{"class":4788},[4173,118699,98182],{"class":4784},[4173,118701,6387],{"class":4788},[4173,118703,98187],{"class":4784},[4173,118705,98190],{"class":4661},[4173,118707,6390],{"class":4784},[4173,118709,89434],{"class":4669},[4173,118711,8629],{"class":4784},[4173,118713,88298],{"class":4669},[4173,118715,8629],{"class":4784},[4173,118717,89447],{"class":4669},[4173,118719,8629],{"class":4784},[4173,118721,98207],{"class":4669},[4173,118723,8629],{"class":4784},[4173,118725,98214],{"class":4669},[4173,118727,55545],{"class":4784},[4173,118729,118730],{"class":4657,"line":11021},[4173,118731,118732],{"class":4766},"        \u002F\u002F Nur Strings behalten, die ausschließlich aus Zahlen bestehen\n",[4173,118734,118735,118738,118740,118742,118744,118746,118748,118750,118752],{"class":4657,"line":11026},[4173,118736,118737],{"class":4784},"        Pattern numberPattern ",[4173,118739,6387],{"class":4788},[4173,118741,96645],{"class":4784},[4173,118743,96648],{"class":4661},[4173,118745,6390],{"class":4784},[4173,118747,98237],{"class":4669},[4173,118749,88532],{"class":4665},[4173,118751,98242],{"class":4669},[4173,118753,55545],{"class":4784},[4173,118755,118756,118758,118760,118762,118764,118766,118768],{"class":4657,"line":11034},[4173,118757,118695],{"class":4784},[4173,118759,79693],{"class":4788},[4173,118761,98253],{"class":4784},[4173,118763,6387],{"class":4788},[4173,118765,98258],{"class":4784},[4173,118767,98261],{"class":4661},[4173,118769,98264],{"class":4784},[4173,118771,118772,118775,118777,118779,118781,118783],{"class":4657,"line":11039},[4173,118773,118774],{"class":4784},"                .",[4173,118776,98271],{"class":4661},[4173,118778,98274],{"class":4784},[4173,118780,98277],{"class":4661},[4173,118782,86104],{"class":4784},[4173,118784,118785],{"class":4766},"\u002F\u002F Wandelt Regex in ein Predicate um\n",[4173,118787,118788,118790,118792,118794,118796],{"class":4657,"line":11048},[4173,118789,118774],{"class":4784},[4173,118791,98294],{"class":4661},[4173,118793,98297],{"class":4784},[4173,118795,98300],{"class":4661},[4173,118797,81860],{"class":4784},[4173,118799,118800,118802,118804,118806,118808,118810],{"class":4657,"line":11053},[4173,118801,100097],{"class":4784},[4173,118803,79074],{"class":4661},[4173,118805,6390],{"class":4784},[4173,118807,98313],{"class":4669},[4173,118809,11719],{"class":4788},[4173,118811,98318],{"class":4784},[4173,118813,118814],{"class":4657,"line":21369},[4173,118815,100385],{"class":4784},[4173,118817,118818],{"class":4657,"line":21374},[4173,118819,7090],{"class":4784},[4173,118821,118822],{"class":4657,"line":21380},[4173,118823,118824],{"class":4784},"Java REGEX PDF\n",[4173,118826,118827],{"class":4657,"line":21385},[4173,118828,4761],{"emptyLinePlaceholder":4760},[4173,118830,118831,118833,118836,118838,118841,118843,118845,118847,118849,118851,118854,118856,118859,118861,118863,118865,118867,118869,118871,118873,118875,118877,118879,118881,118884,118886,118888,118890,118892,118894,118896,118898,118900,118902,118904,118906,118909,118911,118913,118915,118917,118919,118921,118923,118925,118927,118929,118931,118934,118936,118938,118940,118942,118944,118946,118948,118950,118952,118954,118956,118959,118961,118963,118965,118967,118969,118971,118973,118975,118977,118979,118981],{"class":4657,"line":21397},[4173,118832,6842],{"class":4788},[4173,118834,118835],{"class":4784},"[](",[4173,118837,13658],{"class":4788},[4173,118839,118840],{"class":4784},"downloads",[4173,118842,13658],{"class":4788},[4173,118844,78629],{"class":4784},[4173,118846,13658],{"class":4788},[4173,118848,29139],{"class":4784},[4173,118850,13658],{"class":4788},[4173,118852,118853],{"class":4784},"ap",[4173,118855,4778],{"class":4788},[4173,118857,118858],{"class":4784},"cs_img_2.jpg)",[4173,118860,6842],{"class":4788},[4173,118862,118835],{"class":4784},[4173,118864,13658],{"class":4788},[4173,118866,118840],{"class":4784},[4173,118868,13658],{"class":4788},[4173,118870,78629],{"class":4784},[4173,118872,13658],{"class":4788},[4173,118874,29139],{"class":4784},[4173,118876,13658],{"class":4788},[4173,118878,118853],{"class":4784},[4173,118880,4778],{"class":4788},[4173,118882,118883],{"class":4784},"cs_img_3.jpg)",[4173,118885,6842],{"class":4788},[4173,118887,118835],{"class":4784},[4173,118889,13658],{"class":4788},[4173,118891,118840],{"class":4784},[4173,118893,13658],{"class":4788},[4173,118895,78629],{"class":4784},[4173,118897,13658],{"class":4788},[4173,118899,29139],{"class":4784},[4173,118901,13658],{"class":4788},[4173,118903,118853],{"class":4784},[4173,118905,4778],{"class":4788},[4173,118907,118908],{"class":4784},"cs_img_4.jpg)",[4173,118910,6842],{"class":4788},[4173,118912,118835],{"class":4784},[4173,118914,13658],{"class":4788},[4173,118916,118840],{"class":4784},[4173,118918,13658],{"class":4788},[4173,118920,78629],{"class":4784},[4173,118922,13658],{"class":4788},[4173,118924,29139],{"class":4784},[4173,118926,13658],{"class":4788},[4173,118928,118853],{"class":4784},[4173,118930,4778],{"class":4788},[4173,118932,118933],{"class":4784},"cs_img_5.jpg)",[4173,118935,6842],{"class":4788},[4173,118937,118835],{"class":4784},[4173,118939,13658],{"class":4788},[4173,118941,118840],{"class":4784},[4173,118943,13658],{"class":4788},[4173,118945,78629],{"class":4784},[4173,118947,13658],{"class":4788},[4173,118949,29139],{"class":4784},[4173,118951,13658],{"class":4788},[4173,118953,118853],{"class":4784},[4173,118955,4778],{"class":4788},[4173,118957,118958],{"class":4784},"cs_img_6.jpg)",[4173,118960,6842],{"class":4788},[4173,118962,118835],{"class":4784},[4173,118964,13658],{"class":4788},[4173,118966,118840],{"class":4784},[4173,118968,13658],{"class":4788},[4173,118970,78629],{"class":4784},[4173,118972,13658],{"class":4788},[4173,118974,29139],{"class":4784},[4173,118976,13658],{"class":4788},[4173,118978,118853],{"class":4784},[4173,118980,4778],{"class":4788},[4173,118982,118983],{"class":4784},"cs_img_7.jpg)\n",[414,118985,118986,118989,118992,118995,118998,119001],{},[1504,118987],{"alt":269,"src":118988},"\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_2.jpg",[1504,118990],{"alt":269,"src":118991},"\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_3.jpg",[1504,118993],{"alt":269,"src":118994},"\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_4.jpg",[1504,118996],{"alt":269,"src":118997},"\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_5.jpg",[1504,118999],{"alt":269,"src":119000},"\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_6.jpg",[1504,119002],{"alt":269,"src":119003},"\u002Fdownloads\u002FPRG\u002Fimages\u002Fap-cs_img_7.jpg",[11,119005,119007],{"id":119006},"beispiel-aufgaben-regex","Beispiel Aufgaben REGEX",[4647,119009,119011],{"className":78931,"code":119010,"language":78933,"meta":269,"style":269},"Wörter beginnen und enden mit aba\n^aba(a|b)*aba$\n^ → Start des Strings\naba → muss am Anfang stehen\n(a|b)* → beliebige Folge aus a und b (auch leer erlaubt)\naba → muss am Ende stehen\n$ → Ende des Strings\nNur Paare ab oder ba\n^(ab|ba)+$\n(ab|ba) → erlaubt nur die Paare „ab“ oder „ba“\n+ → mindestens ein solches Paar\ndadurch sind nur gerade Längen möglich und keine einzelnen a oder b\nDNA-Sequenz mit A,T,C,G unabhängig von Groß-\u002FKleinschreibung\n^(?i)[ATCG]+$\nOder\n^[ATCGatcg]+$ (insensitive)\nErklärung:\n\n",[4653,119012,119013,119018,119036,119043,119048,119066,119071,119076,119081,119097,119106,119113,119118,119134,119149,119154,119168],{"__ignoreMap":269},[4173,119014,119015],{"class":4657,"line":4658},[4173,119016,119017],{"class":4784},"Wörter beginnen und enden mit aba\n",[4173,119019,119020,119022,119025,119027,119029,119031,119033],{"class":4657,"line":270},[4173,119021,15157],{"class":4788},[4173,119023,119024],{"class":4661},"aba",[4173,119026,17579],{"class":4784},[4173,119028,47993],{"class":4788},[4173,119030,17582],{"class":4784},[4173,119032,6328],{"class":4788},[4173,119034,119035],{"class":4784},"aba$\n",[4173,119037,119038,119040],{"class":4657,"line":1263},[4173,119039,15157],{"class":4788},[4173,119041,119042],{"class":4784}," → Start des Strings\n",[4173,119044,119045],{"class":4657,"line":4770},[4173,119046,119047],{"class":4784},"aba → muss am Anfang stehen\n",[4173,119049,119050,119052,119054,119056,119058,119061,119063],{"class":4657,"line":4775},[4173,119051,17579],{"class":4784},[4173,119053,47993],{"class":4788},[4173,119055,17582],{"class":4784},[4173,119057,6328],{"class":4788},[4173,119059,119060],{"class":4784}," → beliebige Folge aus a und ",[4173,119062,6303],{"class":4661},[4173,119064,119065],{"class":4784}," (auch leer erlaubt)\n",[4173,119067,119068],{"class":4657,"line":6320},[4173,119069,119070],{"class":4784},"aba → muss am Ende stehen\n",[4173,119072,119073],{"class":4657,"line":6325},[4173,119074,119075],{"class":4784},"$ → Ende des Strings\n",[4173,119077,119078],{"class":4657,"line":6343},[4173,119079,119080],{"class":4784},"Nur Paare ab oder ba\n",[4173,119082,119083,119085,119088,119090,119093,119095],{"class":4657,"line":6348},[4173,119084,15157],{"class":4788},[4173,119086,119087],{"class":4784},"(ab",[4173,119089,47993],{"class":4788},[4173,119091,119092],{"class":4784},"ba)",[4173,119094,14419],{"class":4788},[4173,119096,24763],{"class":4784},[4173,119098,119099,119101,119103],{"class":4657,"line":6457},[4173,119100,119087],{"class":4784},[4173,119102,47993],{"class":4788},[4173,119104,119105],{"class":4784},"ba) → erlaubt nur die Paare „ab“ oder „ba“\n",[4173,119107,119108,119110],{"class":4657,"line":6462},[4173,119109,14419],{"class":4788},[4173,119111,119112],{"class":4784}," → mindestens ein solches Paar\n",[4173,119114,119115],{"class":4657,"line":6468},[4173,119116,119117],{"class":4784},"dadurch sind nur gerade Längen möglich und keine einzelnen a oder b\n",[4173,119119,119120,119123,119125,119128,119131],{"class":4657,"line":6473},[4173,119121,119122],{"class":4784},"DNA",[4173,119124,4778],{"class":4788},[4173,119126,119127],{"class":4784},"Sequenz mit A,T,C,G unabhängig von Groß",[4173,119129,119130],{"class":4788},"-\u002F",[4173,119132,119133],{"class":4784},"Kleinschreibung\n",[4173,119135,119136,119138,119140,119142,119145,119147],{"class":4657,"line":6479},[4173,119137,15157],{"class":4788},[4173,119139,6390],{"class":4784},[4173,119141,17533],{"class":4788},[4173,119143,119144],{"class":4784},"i)[ATCG]",[4173,119146,14419],{"class":4788},[4173,119148,24763],{"class":4784},[4173,119150,119151],{"class":4657,"line":6503},[4173,119152,119153],{"class":4784},"Oder\n",[4173,119155,119156,119158,119161,119163,119165],{"class":4657,"line":6516},[4173,119157,15157],{"class":4788},[4173,119159,119160],{"class":4784},"[ATCGatcg]",[4173,119162,14419],{"class":4788},[4173,119164,6147],{"class":4661},[4173,119166,119167],{"class":4784}," (insensitive)\n",[4173,119169,119170,119173],{"class":4657,"line":6971},[4173,119171,119172],{"class":4784},"Erklärung",[4173,119174,2815],{"class":4788},[21,119176,119177,119180,119186],{},[24,119178,119179],{},"(?i) → Groß-\u002FKleinschreibung ignorieren",[24,119181,119182,119185],{},[4173,119183,119184],{},"ATCG"," → nur erlaubte Zeichen",[24,119187,119188],{},[21,119189,119190],{},[24,119191,119192],{},"→ mindestens ein Zeichen",[11,119194,119196],{"id":119195},"beispiel-regex","Beispiel Regex",[414,119198,119199,119200,119203],{},"Hier ist eine kompakte Sammlung ",[42,119201,119202],{},"sehr nützlicher Regex-Beispiele in Java",", jeweils mit kurzer Erklärung und Beispiel:",[16,119205,119207],{"id":119206},"nur-buchstaben-az-az","Nur Buchstaben (a–z, A–Z)",[4647,119209,119211],{"className":78931,"code":119210,"language":78933,"meta":269,"style":269},"\"^[a-zA-Z]+$\"\n\n",[4653,119212,119213],{"__ignoreMap":269},[4173,119214,119215],{"class":4657,"line":4658},[4173,119216,119217],{"class":4669},"\"^[a-zA-Z]+$\"\n",[414,119219,119220],{},"✔ erlaubt nur Buchstaben, mindestens 1 Zeichen",[16,119222,119224],{"id":119223},"nur-zahlen","Nur Zahlen",[4647,119226,119228],{"className":78931,"code":119227,"language":78933,"meta":269,"style":269},"\"^[0-9]+$\"\n\n✔ nur Ziffern (z. B. „12345“)\n\n",[4653,119229,119230,119235,119239],{"__ignoreMap":269},[4173,119231,119232],{"class":4657,"line":4658},[4173,119233,119234],{"class":4669},"\"^[0-9]+$\"\n",[4173,119236,119237],{"class":4657,"line":270},[4173,119238,4761],{"emptyLinePlaceholder":4760},[4173,119240,119241,119244,119247,119250,119253],{"class":4657,"line":1263},[4173,119242,119243],{"class":4784},"✔ nur ",[4173,119245,119246],{"class":4661},"Ziffern",[4173,119248,119249],{"class":4784}," (z. B. „",[4173,119251,119252],{"class":4665},"12345",[4173,119254,119255],{"class":4784},"“)\n",[16,119257,119259],{"id":119258},"alphanumerisch-buchstaben-zahlen","Alphanumerisch (Buchstaben + Zahlen)",[4647,119261,119263],{"className":78931,"code":119262,"language":78933,"meta":269,"style":269},"\"^[a-zA-Z0-9]+$\"\n\n",[4653,119264,119265],{"__ignoreMap":269},[4173,119266,119267],{"class":4657,"line":4658},[4173,119268,119269],{"class":4669},"\"^[a-zA-Z0-9]+$\"\n",[16,119271,119273],{"id":119272},"einfache-e-mail-prüfung","Einfache E-Mail-Prüfung",[4647,119275,119277],{"className":78931,"code":119276,"language":78933,"meta":269,"style":269},"\"^[\\\\w.-]+@[\\\\w.-]+\\.[a-zA-Z]{2,}$\"\n\n✔ deckt typische Fälle ab (nicht 100 % RFC-konform, aber praxisnah)\n\n",[4653,119278,119279,119300,119304],{"__ignoreMap":269},[4173,119280,119281,119284,119286,119289,119291,119294,119297],{"class":4657,"line":4658},[4173,119282,119283],{"class":4669},"\"^[",[4173,119285,88532],{"class":4665},[4173,119287,119288],{"class":4669},"w.-]+@[",[4173,119290,88532],{"class":4665},[4173,119292,119293],{"class":4669},"w.-]+",[4173,119295,119296],{"class":4665},"\\.",[4173,119298,119299],{"class":4669},"[a-zA-Z]{2,}$\"\n",[4173,119301,119302],{"class":4657,"line":270},[4173,119303,4761],{"emptyLinePlaceholder":4760},[4173,119305,119306,119309,119312,119315,119317,119319,119322,119324],{"class":4657,"line":1263},[4173,119307,119308],{"class":4784},"✔ deckt typische Fälle ",[4173,119310,119311],{"class":4661},"ab",[4173,119313,119314],{"class":4784}," (nicht ",[4173,119316,5961],{"class":4665},[4173,119318,47977],{"class":4788},[4173,119320,119321],{"class":4784}," RFC",[4173,119323,4778],{"class":4788},[4173,119325,119326],{"class":4784},"konform, aber praxisnah)\n",[16,119328,119330],{"id":119329},"starkes-passwort","Starkes Passwort",[414,119332,119333],{},"(Mind. 8 Zeichen, Groß-, Kleinbuchstaben, Zahl)",[4647,119335,119337],{"className":78931,"code":119336,"language":78933,"meta":269,"style":269},"\"^(?=.[a-z])(?=.[A-Z])(?=.*\\\\d).{8,}$\"\n\n",[4653,119338,119339],{"__ignoreMap":269},[4173,119340,119341,119344,119346],{"class":4657,"line":4658},[4173,119342,119343],{"class":4669},"\"^(?=.[a-z])(?=.[A-Z])(?=.*",[4173,119345,88532],{"class":4665},[4173,119347,119348],{"class":4669},"d).{8,}$\"\n",[16,119350,119352],{"id":119351},"telefonnummer-einfach","Telefonnummer (einfach)",[4647,119354,119356],{"className":78931,"code":119355,"language":78933,"meta":269,"style":269},"\"^\\\\+?[0-9 ]{7,15}$\"\n✔ erlaubt internationale Nummern mit optionalem +\n\n",[4653,119357,119358,119367],{"__ignoreMap":269},[4173,119359,119360,119362,119364],{"class":4657,"line":4658},[4173,119361,98237],{"class":4669},[4173,119363,88532],{"class":4665},[4173,119365,119366],{"class":4669},"+?[0-9 ]{7,15}$\"\n",[4173,119368,119369,119372],{"class":4657,"line":270},[4173,119370,119371],{"class":4784},"✔ erlaubt internationale Nummern mit optionalem ",[4173,119373,94778],{"class":4788},[16,119375,119377],{"id":119376},"url-vereinfacht","URL (vereinfacht)",[4647,119379,119381],{"className":78931,"code":119380,"language":78933,"meta":269,"style":269},"\"^(https?:\u002F\u002F)?(www\\.)?[a-zA-Z0-9-]+\\.[a-zA-Z]{2,}.*$\"\n\n",[4653,119382,119383],{"__ignoreMap":269},[4173,119384,119385,119388,119390,119393,119395],{"class":4657,"line":4658},[4173,119386,119387],{"class":4669},"\"^(https?:\u002F\u002F)?(www",[4173,119389,119296],{"class":4665},[4173,119391,119392],{"class":4669},")?[a-zA-Z0-9-]+",[4173,119394,119296],{"class":4665},[4173,119396,119397],{"class":4669},"[a-zA-Z]{2,}.*$\"\n",[16,119399,119401],{"id":119400},"dna-sequenz-a-t-c-g-case-insensitive","DNA-Sequenz (A, T, C, G, case-insensitive)",[4647,119403,119405],{"className":78931,"code":119404,"language":78933,"meta":269,"style":269},"\"(?i)^[ATCG]+$\"\n✔ (?i) = Groß-\u002FKleinschreibung ignorieren\n\n",[4653,119406,119407,119412],{"__ignoreMap":269},[4173,119408,119409],{"class":4657,"line":4658},[4173,119410,119411],{"class":4669},"\"(?i)^[ATCG]+$\"\n",[4173,119413,119414,119417,119419,119422,119424,119427,119429],{"class":4657,"line":270},[4173,119415,119416],{"class":4784},"✔ (",[4173,119418,17533],{"class":4788},[4173,119420,119421],{"class":4784},"i) ",[4173,119423,6387],{"class":4788},[4173,119425,119426],{"class":4784}," Groß",[4173,119428,119130],{"class":4788},[4173,119430,119431],{"class":4784},"Kleinschreibung ignorieren\n",[16,119433,119435],{"id":119434},"wiederholte-zeichen-erkennen","Wiederholte Zeichen erkennen",[414,119437,119438],{},"(z. B. „aaa“, „111“)",[4647,119440,119442],{"className":78931,"code":119441,"language":78933,"meta":269,"style":269},"\"(.)\\\\1+\"\n\n",[4653,119443,119444],{"__ignoreMap":269},[4173,119445,119446,119449,119451],{"class":4657,"line":4658},[4173,119447,119448],{"class":4669},"\"(.)",[4173,119450,88532],{"class":4665},[4173,119452,119453],{"class":4669},"1+\"\n",[16,119455,119457],{"id":119456},"leerzeichen-trimmen-anfang-ende","Leerzeichen trimmen (Anfang & Ende)",[4647,119459,119461],{"className":78931,"code":119460,"language":78933,"meta":269,"style":269},"\"^\\\\s+|\\\\s+$\"\n\n",[4653,119462,119463],{"__ignoreMap":269},[4173,119464,119465,119467,119469,119472,119474],{"class":4657,"line":4658},[4173,119466,98237],{"class":4669},[4173,119468,88532],{"class":4665},[4173,119470,119471],{"class":4669},"s+|",[4173,119473,88532],{"class":4665},[4173,119475,119476],{"class":4669},"s+$\"\n",[16,119478,119480],{"id":119479},"wort-finden-z-b-cat-als-ganzes-wort","Wort finden (z. B. „cat“ als ganzes Wort)",[414,119482,119483],{},"\"\\bcat\\b\"",[16,119485,119487],{"id":119486},"datum-format-ddmmyyyy","Datum (Format: DD.MM.YYYY)",[4647,119489,119491],{"className":78931,"code":119490,"language":78933,"meta":269,"style":269},"\"^(0[1-9]|[12][0-9]|3[01])\\.(0[1-9]|1[0-2])\\.[0-9]{4}$\"\n\n",[4653,119492,119493],{"__ignoreMap":269},[4173,119494,119495,119498,119500,119503,119505],{"class":4657,"line":4658},[4173,119496,119497],{"class":4669},"\"^(0[1-9]|[12][0-9]|3[01])",[4173,119499,119296],{"class":4665},[4173,119501,119502],{"class":4669},"(0[1-9]|1[0-2])",[4173,119504,119296],{"class":4665},[4173,119506,119507],{"class":4669},"[0-9]{4}$\"\n",[16,119509,119511],{"id":119510},"java-anwendung-allgemein","Java Anwendung allgemein",[414,119513,119514,119515,119518,119519,119521],{},"String regex = \"^",[4173,119516,119517],{},"a-zA-Z","+$\";",[7135,119520],{},"\nboolean result = \"Hallo\".matches(regex);",[11,119523,119525],{"id":119524},"semaphore_buchseidel","Semaphore_Buch(Seidel)",[16,119527,98347],{"id":98346},[4647,119529,119531],{"className":78931,"code":119530,"language":78933,"meta":269,"style":269},"import java.util.concurrent.Semaphore;\nimport java.io.*;\npublic class Besucher extends Thread {\n  Semaphore sem;\n  Kondolenzbuch opaF;\n  String name;\n  \u002F\u002F Konstruktor für zwei Übergabewerte(Semaphore, String)\n  Besucher(Kondolenzbuch opaF,Semaphore sem, String name) {\n    this.sem = sem;\n    this.opaF = opaF;\n    this.name = name;\n  }\n  public void run() {\n    try {\n      \u002F\u002F Besucher wartet auf einen Platz\n      System.out.println(this.name + \" Wartet auf Eintritt.\");\n      sem.acquire();\n      \u002F\u002F Gast hat einen Platz bekommen\n      System.out.println(this.name + \" Kann ins Kondolenzbuch schreiben.\");\n      \u002F\u002F    Schreiben in Datei - Baustein\n      opaF.writeLog(\"Ruhe sanft, Opa Friedrich wünscht \" + this.name);\n    }\n    catch (InterruptedException e) {}\n    catch (IOException e) {\n    }\n    finally {\n      sem.release();\n      \u002F\u002F Der Gast gibt den Platz wieder frei\n      System.out.println(this.name + \" verlässt Ruhesanft2.0.\");\n    }\n  }\n}\n\n",[4653,119532,119533,119539,119549,119563,119568,119573,119578,119583,119602,119612,119622,119632,119636,119646,119653,119658,119676,119685,119690,119708,119713,119730,119734,119745,119755,119759,119766,119774,119779,119797,119801,119805],{"__ignoreMap":269},[4173,119534,119535,119537],{"class":4657,"line":4658},[4173,119536,79019],{"class":4788},[4173,119538,95489],{"class":4784},[4173,119540,119541,119543,119545,119547],{"class":4657,"line":270},[4173,119542,79019],{"class":4788},[4173,119544,90640],{"class":4784},[4173,119546,6328],{"class":4665},[4173,119548,55559],{"class":4784},[4173,119550,119551,119553,119555,119557,119559,119561],{"class":4657,"line":1263},[4173,119552,79889],{"class":4788},[4173,119554,80062],{"class":4788},[4173,119556,98377],{"class":4661},[4173,119558,80500],{"class":4788},[4173,119560,95516],{"class":4661},[4173,119562,51614],{"class":4784},[4173,119564,119565],{"class":4657,"line":4770},[4173,119566,119567],{"class":4784},"  Semaphore sem;\n",[4173,119569,119570],{"class":4657,"line":4775},[4173,119571,119572],{"class":4784},"  Kondolenzbuch opaF;\n",[4173,119574,119575],{"class":4657,"line":6320},[4173,119576,119577],{"class":4784},"  String name;\n",[4173,119579,119580],{"class":4657,"line":6325},[4173,119581,119582],{"class":4766},"  \u002F\u002F Konstruktor für zwei Übergabewerte(Semaphore, String)\n",[4173,119584,119585,119588,119590,119592,119594,119596,119598,119600],{"class":4657,"line":6343},[4173,119586,119587],{"class":4661},"  Besucher",[4173,119589,98410],{"class":4784},[4173,119591,98413],{"class":7074},[4173,119593,98416],{"class":4784},[4173,119595,95572],{"class":7074},[4173,119597,86243],{"class":4784},[4173,119599,28734],{"class":7074},[4173,119601,56319],{"class":4784},[4173,119603,119604,119606,119608,119610],{"class":4657,"line":6348},[4173,119605,113032],{"class":4665},[4173,119607,95591],{"class":4784},[4173,119609,6387],{"class":4788},[4173,119611,95596],{"class":4784},[4173,119613,119614,119616,119618,119620],{"class":4657,"line":6457},[4173,119615,113032],{"class":4665},[4173,119617,98441],{"class":4784},[4173,119619,6387],{"class":4788},[4173,119621,98446],{"class":4784},[4173,119623,119624,119626,119628,119630],{"class":4657,"line":6462},[4173,119625,113032],{"class":4665},[4173,119627,80013],{"class":4784},[4173,119629,6387],{"class":4788},[4173,119631,80018],{"class":4784},[4173,119633,119634],{"class":4657,"line":6468},[4173,119635,113505],{"class":4784},[4173,119637,119638,119640,119642,119644],{"class":4657,"line":6473},[4173,119639,113023],{"class":4788},[4173,119641,79934],{"class":4788},[4173,119643,8045],{"class":4661},[4173,119645,7062],{"class":4784},[4173,119647,119648,119651],{"class":4657,"line":6479},[4173,119649,119650],{"class":4788},"    try",[4173,119652,51614],{"class":4784},[4173,119654,119655],{"class":4657,"line":6503},[4173,119656,119657],{"class":4766},"      \u002F\u002F Besucher wartet auf einen Platz\n",[4173,119659,119660,119662,119664,119666,119668,119670,119672,119674],{"class":4657,"line":6516},[4173,119661,113652],{"class":4784},[4173,119663,79074],{"class":4661},[4173,119665,6390],{"class":4784},[4173,119667,80010],{"class":4665},[4173,119669,80013],{"class":4784},[4173,119671,14419],{"class":4788},[4173,119673,98498],{"class":4669},[4173,119675,55545],{"class":4784},[4173,119677,119678,119681,119683],{"class":4657,"line":6971},[4173,119679,119680],{"class":4784},"      sem.",[4173,119682,95803],{"class":4661},[4173,119684,65878],{"class":4784},[4173,119686,119687],{"class":4657,"line":10649},[4173,119688,119689],{"class":4766},"      \u002F\u002F Gast hat einen Platz bekommen\n",[4173,119691,119692,119694,119696,119698,119700,119702,119704,119706],{"class":4657,"line":10654},[4173,119693,113652],{"class":4784},[4173,119695,79074],{"class":4661},[4173,119697,6390],{"class":4784},[4173,119699,80010],{"class":4665},[4173,119701,80013],{"class":4784},[4173,119703,14419],{"class":4788},[4173,119705,98530],{"class":4669},[4173,119707,55545],{"class":4784},[4173,119709,119710],{"class":4657,"line":10659},[4173,119711,119712],{"class":4766},"      \u002F\u002F    Schreiben in Datei - Baustein\n",[4173,119714,119715,119718,119720,119722,119724,119726,119728],{"class":4657,"line":10664},[4173,119716,119717],{"class":4784},"      opaF.",[4173,119719,98545],{"class":4661},[4173,119721,6390],{"class":4784},[4173,119723,98550],{"class":4669},[4173,119725,11719],{"class":4788},[4173,119727,98555],{"class":4665},[4173,119729,98558],{"class":4784},[4173,119731,119732],{"class":4657,"line":10676},[4173,119733,100385],{"class":4784},[4173,119735,119736,119739,119741,119743],{"class":4657,"line":10681},[4173,119737,119738],{"class":4788},"    catch",[4173,119740,95825],{"class":4784},[4173,119742,20602],{"class":7074},[4173,119744,98573],{"class":4784},[4173,119746,119747,119749,119751,119753],{"class":4657,"line":10702},[4173,119748,119738],{"class":4788},[4173,119750,85960],{"class":4784},[4173,119752,20602],{"class":7074},[4173,119754,56319],{"class":4784},[4173,119756,119757],{"class":4657,"line":10707},[4173,119758,100385],{"class":4784},[4173,119760,119761,119764],{"class":4657,"line":10712},[4173,119762,119763],{"class":4788},"    finally",[4173,119765,51614],{"class":4784},[4173,119767,119768,119770,119772],{"class":4657,"line":10717},[4173,119769,119680],{"class":4784},[4173,119771,95914],{"class":4661},[4173,119773,65878],{"class":4784},[4173,119775,119776],{"class":4657,"line":10727},[4173,119777,119778],{"class":4766},"      \u002F\u002F Der Gast gibt den Platz wieder frei\n",[4173,119780,119781,119783,119785,119787,119789,119791,119793,119795],{"class":4657,"line":10732},[4173,119782,113652],{"class":4784},[4173,119784,79074],{"class":4661},[4173,119786,6390],{"class":4784},[4173,119788,80010],{"class":4665},[4173,119790,80013],{"class":4784},[4173,119792,14419],{"class":4788},[4173,119794,98623],{"class":4669},[4173,119796,55545],{"class":4784},[4173,119798,119799],{"class":4657,"line":10737},[4173,119800,100385],{"class":4784},[4173,119802,119803],{"class":4657,"line":10742},[4173,119804,113505],{"class":4784},[4173,119806,119807],{"class":4657,"line":10752},[4173,119808,7090],{"class":4784},[16,119810,98641],{"id":98640},[4647,119812,119814],{"className":78931,"code":119813,"language":78933,"meta":269,"style":269},"import java.io.*;\nimport java.util.*;\nclass Kondolenzbuch{\n  BufferedWriter bw;\n  public Kondolenzbuch(String datei) throws IOException{\n    bw = new BufferedWriter(new FileWriter(datei,true));\n  }\n  public synchronized void writeLog(String message) throws IOException{\n    bw.write(new Date().toString());\n    bw.write(message);\n    bw.newLine();\n  }\n  public void schliessen() throws IOException{\n    bw.close();\n  }\n}\n\n",[4653,119815,119816,119826,119836,119844,119849,119865,119888,119892,119912,119930,119938,119946,119950,119964,119972,119976],{"__ignoreMap":269},[4173,119817,119818,119820,119822,119824],{"class":4657,"line":4658},[4173,119819,79019],{"class":4788},[4173,119821,90640],{"class":4784},[4173,119823,6328],{"class":4665},[4173,119825,55559],{"class":4784},[4173,119827,119828,119830,119832,119834],{"class":4657,"line":270},[4173,119829,79019],{"class":4788},[4173,119831,89311],{"class":4784},[4173,119833,6328],{"class":4665},[4173,119835,55559],{"class":4784},[4173,119837,119838,119840,119842],{"class":4657,"line":1263},[4173,119839,79983],{"class":4788},[4173,119841,98673],{"class":4661},[4173,119843,92839],{"class":4784},[4173,119845,119846],{"class":4657,"line":4770},[4173,119847,119848],{"class":4784},"  BufferedWriter bw;\n",[4173,119850,119851,119853,119855,119857,119859,119861,119863],{"class":4657,"line":4775},[4173,119852,113023],{"class":4788},[4173,119854,98673],{"class":4661},[4173,119856,80001],{"class":4784},[4173,119858,96068],{"class":7074},[4173,119860,6306],{"class":4784},[4173,119862,86035],{"class":4788},[4173,119864,98697],{"class":4784},[4173,119866,119867,119870,119872,119874,119876,119878,119880,119882,119884,119886],{"class":4657,"line":6320},[4173,119868,119869],{"class":4784},"    bw ",[4173,119871,6387],{"class":4788},[4173,119873,79032],{"class":4788},[4173,119875,86266],{"class":4661},[4173,119877,6390],{"class":4784},[4173,119879,81243],{"class":4788},[4173,119881,86273],{"class":4661},[4173,119883,98716],{"class":4784},[4173,119885,45190],{"class":4665},[4173,119887,66047],{"class":4784},[4173,119889,119890],{"class":4657,"line":6325},[4173,119891,113505],{"class":4784},[4173,119893,119894,119896,119898,119900,119902,119904,119906,119908,119910],{"class":4657,"line":6343},[4173,119895,113023],{"class":4788},[4173,119897,96126],{"class":4788},[4173,119899,79934],{"class":4788},[4173,119901,98735],{"class":4661},[4173,119903,80001],{"class":4784},[4173,119905,86349],{"class":7074},[4173,119907,6306],{"class":4784},[4173,119909,86035],{"class":4788},[4173,119911,98697],{"class":4784},[4173,119913,119914,119916,119918,119920,119922,119924,119926,119928],{"class":4657,"line":6348},[4173,119915,115904],{"class":4784},[4173,119917,86283],{"class":4661},[4173,119919,6390],{"class":4784},[4173,119921,81243],{"class":4788},[4173,119923,98758],{"class":4661},[4173,119925,86157],{"class":4784},[4173,119927,86154],{"class":4661},[4173,119929,81860],{"class":4784},[4173,119931,119932,119934,119936],{"class":4657,"line":6457},[4173,119933,115904],{"class":4784},[4173,119935,86283],{"class":4661},[4173,119937,86358],{"class":4784},[4173,119939,119940,119942,119944],{"class":4657,"line":6462},[4173,119941,115904],{"class":4784},[4173,119943,94864],{"class":4661},[4173,119945,65878],{"class":4784},[4173,119947,119948],{"class":4657,"line":6468},[4173,119949,113505],{"class":4784},[4173,119951,119952,119954,119956,119958,119960,119962],{"class":4657,"line":6473},[4173,119953,113023],{"class":4788},[4173,119955,79934],{"class":4788},[4173,119957,98793],{"class":4661},[4173,119959,80558],{"class":4784},[4173,119961,86035],{"class":4788},[4173,119963,98697],{"class":4784},[4173,119965,119966,119968,119970],{"class":4657,"line":6479},[4173,119967,115904],{"class":4784},[4173,119969,94877],{"class":4661},[4173,119971,65878],{"class":4784},[4173,119973,119974],{"class":4657,"line":6503},[4173,119975,113505],{"class":4784},[4173,119977,119978],{"class":4657,"line":6516},[4173,119979,7090],{"class":4784},[16,119981,98819],{"id":98818},[4647,119983,119985],{"className":78931,"code":119984,"language":78933,"meta":269,"style":269},"import java.util.concurrent.Semaphore;\npublic class RuheSanft {\n  public static void main(String[] args) throws Exception{\n    Semaphore sem = new Semaphore(2);  \u002F\u002Ffaire Warteschlange\n    Kondolenzbuch opaF = new Kondolenzbuch(\"opaF.txt\");\n    String name = \"Besucher\";\n    Besucher[] bes = new Besucher[20];\n    \u002F\u002F 20 Besucher von \"Opa Friedrich\"\n    for (int i = 0; i \u003C 20; i++) {\n      bes[i] = new Besucher(opaF,sem, name+(i+1));\n      bes[i].start();\n    }\n    for (int i = 0; i \u003C 20; i++) {\n      bes[i].join();\n    } \u002F\u002F end of for\n    opaF.schliessen();\n  }\n}\n\n",[4653,119986,119987,119993,120003,120027,120046,120063,120074,120093,120098,120125,120148,120157,120161,120187,120195,120201,120210,120214],{"__ignoreMap":269},[4173,119988,119989,119991],{"class":4657,"line":4658},[4173,119990,79019],{"class":4788},[4173,119992,95489],{"class":4784},[4173,119994,119995,119997,119999,120001],{"class":4657,"line":270},[4173,119996,79889],{"class":4788},[4173,119998,80062],{"class":4788},[4173,120000,98839],{"class":4661},[4173,120002,51614],{"class":4784},[4173,120004,120005,120007,120009,120011,120013,120015,120017,120019,120021,120023,120025],{"class":4657,"line":1263},[4173,120006,113023],{"class":4788},[4173,120008,79892],{"class":4788},[4173,120010,79934],{"class":4788},[4173,120012,79937],{"class":4661},[4173,120014,6390],{"class":4784},[4173,120016,79693],{"class":4788},[4173,120018,80084],{"class":4784},[4173,120020,31283],{"class":7074},[4173,120022,6306],{"class":4784},[4173,120024,86035],{"class":4788},[4173,120026,98866],{"class":4784},[4173,120028,120029,120032,120034,120036,120038,120040,120042,120044],{"class":4657,"line":4770},[4173,120030,120031],{"class":4784},"    Semaphore sem ",[4173,120033,6387],{"class":4788},[4173,120035,79032],{"class":4788},[4173,120037,96325],{"class":4661},[4173,120039,6390],{"class":4784},[4173,120041,14206],{"class":4665},[4173,120043,86471],{"class":4784},[4173,120045,98885],{"class":4766},[4173,120047,120048,120051,120053,120055,120057,120059,120061],{"class":4657,"line":4775},[4173,120049,120050],{"class":4784},"    Kondolenzbuch opaF ",[4173,120052,6387],{"class":4788},[4173,120054,79032],{"class":4788},[4173,120056,98673],{"class":4661},[4173,120058,6390],{"class":4784},[4173,120060,98901],{"class":4669},[4173,120062,55545],{"class":4784},[4173,120064,120065,120068,120070,120072],{"class":4657,"line":6320},[4173,120066,120067],{"class":4784},"    String name ",[4173,120069,6387],{"class":4788},[4173,120071,98912],{"class":4669},[4173,120073,55559],{"class":4784},[4173,120075,120076,120079,120081,120083,120085,120087,120089,120091],{"class":4657,"line":6325},[4173,120077,120078],{"class":4788},"    Besucher",[4173,120080,98921],{"class":4784},[4173,120082,6387],{"class":4788},[4173,120084,79032],{"class":4788},[4173,120086,98377],{"class":4788},[4173,120088,11612],{"class":4784},[4173,120090,83246],{"class":4665},[4173,120092,90755],{"class":4784},[4173,120094,120095],{"class":4657,"line":6343},[4173,120096,120097],{"class":4766},"    \u002F\u002F 20 Besucher von \"Opa Friedrich\"\n",[4173,120099,120100,120103,120105,120107,120109,120111,120113,120115,120117,120119,120121,120123],{"class":4657,"line":6348},[4173,120101,120102],{"class":4788},"    for",[4173,120104,4171],{"class":4784},[4173,120106,64831],{"class":4788},[4173,120108,6555],{"class":4784},[4173,120110,6387],{"class":4788},[4173,120112,25370],{"class":4665},[4173,120114,79645],{"class":4784},[4173,120116,24345],{"class":4788},[4173,120118,16865],{"class":4665},[4173,120120,79652],{"class":4784},[4173,120122,10670],{"class":4788},[4173,120124,56319],{"class":4784},[4173,120126,120127,120130,120132,120134,120136,120138,120140,120142,120144,120146],{"class":4657,"line":6457},[4173,120128,120129],{"class":4784},"      bes[i] ",[4173,120131,6387],{"class":4788},[4173,120133,79032],{"class":4788},[4173,120135,98377],{"class":4661},[4173,120137,98978],{"class":4784},[4173,120139,14419],{"class":4788},[4173,120141,98983],{"class":4784},[4173,120143,14419],{"class":4788},[4173,120145,14223],{"class":4665},[4173,120147,66047],{"class":4784},[4173,120149,120150,120153,120155],{"class":4657,"line":6462},[4173,120151,120152],{"class":4784},"      bes[i].",[4173,120154,30636],{"class":4661},[4173,120156,65878],{"class":4784},[4173,120158,120159],{"class":4657,"line":6468},[4173,120160,100385],{"class":4784},[4173,120162,120163,120165,120167,120169,120171,120173,120175,120177,120179,120181,120183,120185],{"class":4657,"line":6473},[4173,120164,120102],{"class":4788},[4173,120166,4171],{"class":4784},[4173,120168,64831],{"class":4788},[4173,120170,6555],{"class":4784},[4173,120172,6387],{"class":4788},[4173,120174,25370],{"class":4665},[4173,120176,79645],{"class":4784},[4173,120178,24345],{"class":4788},[4173,120180,16865],{"class":4665},[4173,120182,79652],{"class":4784},[4173,120184,10670],{"class":4788},[4173,120186,56319],{"class":4784},[4173,120188,120189,120191,120193],{"class":4657,"line":6479},[4173,120190,120152],{"class":4784},[4173,120192,96467],{"class":4661},[4173,120194,65878],{"class":4784},[4173,120196,120197,120199],{"class":4657,"line":6503},[4173,120198,115802],{"class":4784},[4173,120200,92781],{"class":4766},[4173,120202,120203,120206,120208],{"class":4657,"line":6516},[4173,120204,120205],{"class":4784},"    opaF.",[4173,120207,99049],{"class":4661},[4173,120209,65878],{"class":4784},[4173,120211,120212],{"class":4657,"line":6971},[4173,120213,113505],{"class":4784},[4173,120215,120216],{"class":4657,"line":10649},[4173,120217,7090],{"class":4784},[11,120219,120221],{"id":120220},"runnable-thread","Runnable + Thread",[4647,120223,120225],{"className":78931,"code":120224,"language":78933,"meta":269,"style":269},"\u002F\u002F Methode 1: Implementierung des Runnable-Interfaces (Empfohlen)\n\u002F\u002F Hier trennen wir die Aufgabe (Task) von der Ausführung (Thread).\nclass MeinTask implements Runnable {\n    private String name;\n    public MeinTask(String name) {\n        this.name = name;\n    }\n    @Override\n    public void run() {\n        for (int i = 1; i \u003C= 5; i++) {\n            System.out.println(name + \" arbeitet... Schritt \" + i);\n            try {\n                \u002F\u002F Simuliert eine kurze Arbeitspause (500 Millisekunden)\n                Thread.sleep(500);\n            } catch (InterruptedException e) {\n                System.out.println(name + \" wurde unterbrochen.\");\n                return;\n            }\n        }\n        System.out.println(name + \" ist fertig!\");\n    }\n}\n\u002F\u002F--------------------------------------------------\n\u002F\u002F Methode 2: Erweiterung der Thread-Klasse\n\u002F\u002F Dies ist einfacher, aber weniger flexibel, da man nicht mehr von anderen Klassen erben kann.\nclass ThreadErweiterung extends Thread {\n    @Override\n    public void run() {\n        System.out.println(\"Ich bin ein Thread, der direkt von der Thread-Klasse erbt.\");\n    }\n}\n\u002F\u002F---------------------------------------------------------\npublic class ThreadBeispiel {\n    public static void main(String[] args) {\n        System.out.println(\"--- Programm gestartet ---\");\n        \u002F\u002F --- Anwendung von Runnable ---\n        \u002F\u002F Wir erstellen die Aufgabe (Runnable)\n        Runnable aufgabe1 = new MeinTask(\"Thread A\");\n        Runnable aufgabe2 = new MeinTask(\"Thread B\");\n        \u002F\u002F Wir erstellen die Worker (Threads) und geben ihnen die Aufgaben\n        Thread thread1 = new Thread(aufgabe1);\n        Thread thread2 = new Thread(aufgabe2);\n        \u002F\u002F --- Anwendung der Thread-Erweiterung ---\n        Thread thread3 = new ThreadErweiterung();\n        \u002F\u002F Starten der Threads\n        \u002F\u002F WICHTIG: Man ruft .start() auf, NICHT .run().\n        \u002F\u002F .start() weist dem Betriebssystem an, einen neuen Thread zu erstellen.\n        thread1.start();\n        thread2.start();\n        thread3.start();\n        \u002F\u002F Der Main-Thread läuft hier parallel weiter\n        System.out.println(\"Der Main-Thread läuft auch gerade...\");\n        try {\n            \u002F\u002F Wir warten hier, bis alle Threads fertig sind, bevor das Programm endet\n            thread1.join();\n            thread2.join();\n            thread3.join();\n        } catch (InterruptedException e) {\n            e.printStackTrace();\n        }\n        System.out.println(\"--- Alle Threads beendet. Programm Ende. ---\");\n    }\n}\n\n",[4653,120226,120227,120232,120237,120251,120257,120269,120279,120283,120289,120299,120325,120343,120349,120354,120367,120379,120394,120401,120405,120409,120424,120428,120432,120437,120442,120447,120460,120466,120476,120489,120493,120497,120502,120513,120533,120546,120551,120556,120574,120592,120597,120611,120625,120630,120643,120648,120653,120658,120667,120676,120685,120690,120703,120709,120714,120723,120732,120741,120753,120761,120765,120778,120782],{"__ignoreMap":269},[4173,120228,120229],{"class":4657,"line":4658},[4173,120230,120231],{"class":4766},"\u002F\u002F Methode 1: Implementierung des Runnable-Interfaces (Empfohlen)\n",[4173,120233,120234],{"class":4657,"line":270},[4173,120235,120236],{"class":4766},"\u002F\u002F Hier trennen wir die Aufgabe (Task) von der Ausführung (Thread).\n",[4173,120238,120239,120241,120244,120246,120249],{"class":4657,"line":1263},[4173,120240,79983],{"class":4788},[4173,120242,120243],{"class":4661}," MeinTask",[4173,120245,80628],{"class":4788},[4173,120247,120248],{"class":4661}," Runnable",[4173,120250,51614],{"class":4784},[4173,120252,120253,120255],{"class":4657,"line":4770},[4173,120254,100507],{"class":4788},[4173,120256,80155],{"class":4784},[4173,120258,120259,120261,120263,120265,120267],{"class":4657,"line":4775},[4173,120260,100265],{"class":4788},[4173,120262,120243],{"class":4661},[4173,120264,80001],{"class":4784},[4173,120266,28734],{"class":7074},[4173,120268,56319],{"class":4784},[4173,120270,120271,120273,120275,120277],{"class":4657,"line":6320},[4173,120272,100374],{"class":4665},[4173,120274,80013],{"class":4784},[4173,120276,6387],{"class":4788},[4173,120278,80018],{"class":4784},[4173,120280,120281],{"class":4657,"line":6325},[4173,120282,100385],{"class":4784},[4173,120284,120285,120287],{"class":4657,"line":6343},[4173,120286,100865],{"class":4784},[4173,120288,80535],{"class":4788},[4173,120290,120291,120293,120295,120297],{"class":4657,"line":6348},[4173,120292,100265],{"class":4788},[4173,120294,79934],{"class":4788},[4173,120296,8045],{"class":4661},[4173,120298,7062],{"class":4784},[4173,120300,120301,120303,120305,120307,120309,120311,120313,120315,120317,120319,120321,120323],{"class":4657,"line":6457},[4173,120302,100110],{"class":4788},[4173,120304,4171],{"class":4784},[4173,120306,64831],{"class":4788},[4173,120308,6555],{"class":4784},[4173,120310,6387],{"class":4788},[4173,120312,10264],{"class":4665},[4173,120314,79645],{"class":4784},[4173,120316,66329],{"class":4788},[4173,120318,16450],{"class":4665},[4173,120320,79652],{"class":4784},[4173,120322,10670],{"class":4788},[4173,120324,56319],{"class":4784},[4173,120326,120327,120329,120331,120334,120336,120339,120341],{"class":4657,"line":6462},[4173,120328,100121],{"class":4784},[4173,120330,79074],{"class":4661},[4173,120332,120333],{"class":4784},"(name ",[4173,120335,14419],{"class":4788},[4173,120337,120338],{"class":4669}," \" arbeitet... Schritt \"",[4173,120340,11719],{"class":4788},[4173,120342,79672],{"class":4784},[4173,120344,120345,120347],{"class":4657,"line":6468},[4173,120346,116487],{"class":4788},[4173,120348,51614],{"class":4784},[4173,120350,120351],{"class":4657,"line":6473},[4173,120352,120353],{"class":4766},"                \u002F\u002F Simuliert eine kurze Arbeitspause (500 Millisekunden)\n",[4173,120355,120356,120358,120360,120362,120365],{"class":4657,"line":6479},[4173,120357,116525],{"class":4784},[4173,120359,95936],{"class":4661},[4173,120361,6390],{"class":4784},[4173,120363,120364],{"class":4665},"500",[4173,120366,55545],{"class":4784},[4173,120368,120369,120371,120373,120375,120377],{"class":4657,"line":6503},[4173,120370,116512],{"class":4784},[4173,120372,85917],{"class":4788},[4173,120374,95825],{"class":4784},[4173,120376,20602],{"class":7074},[4173,120378,56319],{"class":4784},[4173,120380,120381,120383,120385,120387,120389,120392],{"class":4657,"line":6516},[4173,120382,101586],{"class":4784},[4173,120384,79074],{"class":4661},[4173,120386,120333],{"class":4784},[4173,120388,14419],{"class":4788},[4173,120390,120391],{"class":4669}," \" wurde unterbrochen.\"",[4173,120393,55545],{"class":4784},[4173,120395,120396,120399],{"class":4657,"line":6971},[4173,120397,120398],{"class":4788},"                return",[4173,120400,55559],{"class":4784},[4173,120402,120403],{"class":4657,"line":10649},[4173,120404,101599],{"class":4784},[4173,120406,120407],{"class":4657,"line":10654},[4173,120408,100145],{"class":4784},[4173,120410,120411,120413,120415,120417,120419,120422],{"class":4657,"line":10659},[4173,120412,100097],{"class":4784},[4173,120414,79074],{"class":4661},[4173,120416,120333],{"class":4784},[4173,120418,14419],{"class":4788},[4173,120420,120421],{"class":4669}," \" ist fertig!\"",[4173,120423,55545],{"class":4784},[4173,120425,120426],{"class":4657,"line":10664},[4173,120427,100385],{"class":4784},[4173,120429,120430],{"class":4657,"line":10676},[4173,120431,7090],{"class":4784},[4173,120433,120434],{"class":4657,"line":10681},[4173,120435,120436],{"class":4766},"\u002F\u002F--------------------------------------------------\n",[4173,120438,120439],{"class":4657,"line":10702},[4173,120440,120441],{"class":4766},"\u002F\u002F Methode 2: Erweiterung der Thread-Klasse\n",[4173,120443,120444],{"class":4657,"line":10707},[4173,120445,120446],{"class":4766},"\u002F\u002F Dies ist einfacher, aber weniger flexibel, da man nicht mehr von anderen Klassen erben kann.\n",[4173,120448,120449,120451,120454,120456,120458],{"class":4657,"line":10712},[4173,120450,79983],{"class":4788},[4173,120452,120453],{"class":4661}," ThreadErweiterung",[4173,120455,80500],{"class":4788},[4173,120457,95516],{"class":4661},[4173,120459,51614],{"class":4784},[4173,120461,120462,120464],{"class":4657,"line":10717},[4173,120463,100865],{"class":4784},[4173,120465,80535],{"class":4788},[4173,120467,120468,120470,120472,120474],{"class":4657,"line":10727},[4173,120469,100265],{"class":4788},[4173,120471,79934],{"class":4788},[4173,120473,8045],{"class":4661},[4173,120475,7062],{"class":4784},[4173,120477,120478,120480,120482,120484,120487],{"class":4657,"line":10732},[4173,120479,100097],{"class":4784},[4173,120481,79074],{"class":4661},[4173,120483,6390],{"class":4784},[4173,120485,120486],{"class":4669},"\"Ich bin ein Thread, der direkt von der Thread-Klasse erbt.\"",[4173,120488,55545],{"class":4784},[4173,120490,120491],{"class":4657,"line":10737},[4173,120492,100385],{"class":4784},[4173,120494,120495],{"class":4657,"line":10742},[4173,120496,7090],{"class":4784},[4173,120498,120499],{"class":4657,"line":10752},[4173,120500,120501],{"class":4766},"\u002F\u002F---------------------------------------------------------\n",[4173,120503,120504,120506,120508,120511],{"class":4657,"line":10757},[4173,120505,79889],{"class":4788},[4173,120507,80062],{"class":4788},[4173,120509,120510],{"class":4661}," ThreadBeispiel",[4173,120512,51614],{"class":4784},[4173,120514,120515,120517,120519,120521,120523,120525,120527,120529,120531],{"class":4657,"line":10762},[4173,120516,100265],{"class":4788},[4173,120518,79892],{"class":4788},[4173,120520,79934],{"class":4788},[4173,120522,79937],{"class":4661},[4173,120524,6390],{"class":4784},[4173,120526,79693],{"class":4788},[4173,120528,80084],{"class":4784},[4173,120530,31283],{"class":7074},[4173,120532,56319],{"class":4784},[4173,120534,120535,120537,120539,120541,120544],{"class":4657,"line":10767},[4173,120536,100097],{"class":4784},[4173,120538,79074],{"class":4661},[4173,120540,6390],{"class":4784},[4173,120542,120543],{"class":4669},"\"--- Programm gestartet ---\"",[4173,120545,55545],{"class":4784},[4173,120547,120548],{"class":4657,"line":10772},[4173,120549,120550],{"class":4766},"        \u002F\u002F --- Anwendung von Runnable ---\n",[4173,120552,120553],{"class":4657,"line":10777},[4173,120554,120555],{"class":4766},"        \u002F\u002F Wir erstellen die Aufgabe (Runnable)\n",[4173,120557,120558,120561,120563,120565,120567,120569,120572],{"class":4657,"line":10782},[4173,120559,120560],{"class":4784},"        Runnable aufgabe1 ",[4173,120562,6387],{"class":4788},[4173,120564,79032],{"class":4788},[4173,120566,120243],{"class":4661},[4173,120568,6390],{"class":4784},[4173,120570,120571],{"class":4669},"\"Thread A\"",[4173,120573,55545],{"class":4784},[4173,120575,120576,120579,120581,120583,120585,120587,120590],{"class":4657,"line":10787},[4173,120577,120578],{"class":4784},"        Runnable aufgabe2 ",[4173,120580,6387],{"class":4788},[4173,120582,79032],{"class":4788},[4173,120584,120243],{"class":4661},[4173,120586,6390],{"class":4784},[4173,120588,120589],{"class":4669},"\"Thread B\"",[4173,120591,55545],{"class":4784},[4173,120593,120594],{"class":4657,"line":10800},[4173,120595,120596],{"class":4766},"        \u002F\u002F Wir erstellen die Worker (Threads) und geben ihnen die Aufgaben\n",[4173,120598,120599,120602,120604,120606,120608],{"class":4657,"line":10805},[4173,120600,120601],{"class":4784},"        Thread thread1 ",[4173,120603,6387],{"class":4788},[4173,120605,79032],{"class":4788},[4173,120607,95516],{"class":4661},[4173,120609,120610],{"class":4784},"(aufgabe1);\n",[4173,120612,120613,120616,120618,120620,120622],{"class":4657,"line":10818},[4173,120614,120615],{"class":4784},"        Thread thread2 ",[4173,120617,6387],{"class":4788},[4173,120619,79032],{"class":4788},[4173,120621,95516],{"class":4661},[4173,120623,120624],{"class":4784},"(aufgabe2);\n",[4173,120626,120627],{"class":4657,"line":10823},[4173,120628,120629],{"class":4766},"        \u002F\u002F --- Anwendung der Thread-Erweiterung ---\n",[4173,120631,120632,120635,120637,120639,120641],{"class":4657,"line":10836},[4173,120633,120634],{"class":4784},"        Thread thread3 ",[4173,120636,6387],{"class":4788},[4173,120638,79032],{"class":4788},[4173,120640,120453],{"class":4661},[4173,120642,65878],{"class":4784},[4173,120644,120645],{"class":4657,"line":10841},[4173,120646,120647],{"class":4766},"        \u002F\u002F Starten der Threads\n",[4173,120649,120650],{"class":4657,"line":10846},[4173,120651,120652],{"class":4766},"        \u002F\u002F WICHTIG: Man ruft .start() auf, NICHT .run().\n",[4173,120654,120655],{"class":4657,"line":10851},[4173,120656,120657],{"class":4766},"        \u002F\u002F .start() weist dem Betriebssystem an, einen neuen Thread zu erstellen.\n",[4173,120659,120660,120663,120665],{"class":4657,"line":10867},[4173,120661,120662],{"class":4784},"        thread1.",[4173,120664,30636],{"class":4661},[4173,120666,65878],{"class":4784},[4173,120668,120669,120672,120674],{"class":4657,"line":10872},[4173,120670,120671],{"class":4784},"        thread2.",[4173,120673,30636],{"class":4661},[4173,120675,65878],{"class":4784},[4173,120677,120678,120681,120683],{"class":4657,"line":10877},[4173,120679,120680],{"class":4784},"        thread3.",[4173,120682,30636],{"class":4661},[4173,120684,65878],{"class":4784},[4173,120686,120687],{"class":4657,"line":10882},[4173,120688,120689],{"class":4766},"        \u002F\u002F Der Main-Thread läuft hier parallel weiter\n",[4173,120691,120692,120694,120696,120698,120701],{"class":4657,"line":10890},[4173,120693,100097],{"class":4784},[4173,120695,79074],{"class":4661},[4173,120697,6390],{"class":4784},[4173,120699,120700],{"class":4669},"\"Der Main-Thread läuft auch gerade...\"",[4173,120702,55545],{"class":4784},[4173,120704,120705,120707],{"class":4657,"line":10895},[4173,120706,105817],{"class":4788},[4173,120708,51614],{"class":4784},[4173,120710,120711],{"class":4657,"line":10904},[4173,120712,120713],{"class":4766},"            \u002F\u002F Wir warten hier, bis alle Threads fertig sind, bevor das Programm endet\n",[4173,120715,120716,120719,120721],{"class":4657,"line":10909},[4173,120717,120718],{"class":4784},"            thread1.",[4173,120720,96467],{"class":4661},[4173,120722,65878],{"class":4784},[4173,120724,120725,120728,120730],{"class":4657,"line":10914},[4173,120726,120727],{"class":4784},"            thread2.",[4173,120729,96467],{"class":4661},[4173,120731,65878],{"class":4784},[4173,120733,120734,120737,120739],{"class":4657,"line":10919},[4173,120735,120736],{"class":4784},"            thread3.",[4173,120738,96467],{"class":4661},[4173,120740,65878],{"class":4784},[4173,120742,120743,120745,120747,120749,120751],{"class":4657,"line":10933},[4173,120744,105295],{"class":4784},[4173,120746,85917],{"class":4788},[4173,120748,95825],{"class":4784},[4173,120750,20602],{"class":7074},[4173,120752,56319],{"class":4784},[4173,120754,120755,120757,120759],{"class":4657,"line":10938},[4173,120756,117945],{"class":4784},[4173,120758,94901],{"class":4661},[4173,120760,65878],{"class":4784},[4173,120762,120763],{"class":4657,"line":10959},[4173,120764,100145],{"class":4784},[4173,120766,120767,120769,120771,120773,120776],{"class":4657,"line":10964},[4173,120768,100097],{"class":4784},[4173,120770,79074],{"class":4661},[4173,120772,6390],{"class":4784},[4173,120774,120775],{"class":4669},"\"--- Alle Threads beendet. Programm Ende. ---\"",[4173,120777,55545],{"class":4784},[4173,120779,120780],{"class":4657,"line":10969},[4173,120781,100385],{"class":4784},[4173,120783,120784],{"class":4657,"line":10974},[4173,120785,7090],{"class":4784},[11,120787,120789],{"id":120788},"runnable","Runnable",[4647,120791,120793],{"className":78931,"code":120792,"language":78933,"meta":269,"style":269},"public class RunnableBeispiel {\n    public static void main(String[] args) {\n        \u002F\u002F Runnable erstellen\n        Runnable aufgabe = new Runnable() {\n            @Override\n            public void run() {\n                for (int i = 1; i \u003C= 5; i++) {\n                    System.out.println(\"Thread läuft: \" + i);\n                    try {\n                        Thread.sleep(1000); \u002F\u002F 1 Sekunde warten\n                    } catch (InterruptedException e) {\n                        e.printStackTrace();\n                    }\n                }\n            }\n        };\n        \u002F\u002F Thread mit Runnable starten\n        Thread thread = new Thread(aufgabe);\n        thread.start();\n        \u002F\u002F Hauptthread läuft weiter\n        System.out.println(\"Main-Methode beendet\");\n    }\n\n",[4653,120794,120795,120806,120826,120831,120844,120850,120860,120887,120903,120910,120926,120939,120948,120953,120957,120961,120965,120970,120984,120993,120998,121011],{"__ignoreMap":269},[4173,120796,120797,120799,120801,120804],{"class":4657,"line":4658},[4173,120798,79889],{"class":4788},[4173,120800,80062],{"class":4788},[4173,120802,120803],{"class":4661}," RunnableBeispiel",[4173,120805,51614],{"class":4784},[4173,120807,120808,120810,120812,120814,120816,120818,120820,120822,120824],{"class":4657,"line":270},[4173,120809,100265],{"class":4788},[4173,120811,79892],{"class":4788},[4173,120813,79934],{"class":4788},[4173,120815,79937],{"class":4661},[4173,120817,6390],{"class":4784},[4173,120819,79693],{"class":4788},[4173,120821,80084],{"class":4784},[4173,120823,31283],{"class":7074},[4173,120825,56319],{"class":4784},[4173,120827,120828],{"class":4657,"line":1263},[4173,120829,120830],{"class":4766},"        \u002F\u002F Runnable erstellen\n",[4173,120832,120833,120836,120838,120840,120842],{"class":4657,"line":4770},[4173,120834,120835],{"class":4784},"        Runnable aufgabe ",[4173,120837,6387],{"class":4788},[4173,120839,79032],{"class":4788},[4173,120841,120248],{"class":4661},[4173,120843,7062],{"class":4784},[4173,120845,120846,120848],{"class":4657,"line":4775},[4173,120847,101564],{"class":4784},[4173,120849,80535],{"class":4788},[4173,120851,120852,120854,120856,120858],{"class":4657,"line":6320},[4173,120853,101571],{"class":4788},[4173,120855,79934],{"class":4788},[4173,120857,8045],{"class":4661},[4173,120859,7062],{"class":4784},[4173,120861,120862,120865,120867,120869,120871,120873,120875,120877,120879,120881,120883,120885],{"class":4657,"line":6325},[4173,120863,120864],{"class":4788},"                for",[4173,120866,4171],{"class":4784},[4173,120868,64831],{"class":4788},[4173,120870,6555],{"class":4784},[4173,120872,6387],{"class":4788},[4173,120874,10264],{"class":4665},[4173,120876,79645],{"class":4784},[4173,120878,66329],{"class":4788},[4173,120880,16450],{"class":4665},[4173,120882,79652],{"class":4784},[4173,120884,10670],{"class":4788},[4173,120886,56319],{"class":4784},[4173,120888,120889,120892,120894,120896,120899,120901],{"class":4657,"line":6343},[4173,120890,120891],{"class":4784},"                    System.out.",[4173,120893,79074],{"class":4661},[4173,120895,6390],{"class":4784},[4173,120897,120898],{"class":4669},"\"Thread läuft: \"",[4173,120900,11719],{"class":4788},[4173,120902,79672],{"class":4784},[4173,120904,120905,120908],{"class":4657,"line":6348},[4173,120906,120907],{"class":4788},"                    try",[4173,120909,51614],{"class":4784},[4173,120911,120912,120915,120917,120919,120921,120923],{"class":4657,"line":6457},[4173,120913,120914],{"class":4784},"                        Thread.",[4173,120916,95936],{"class":4661},[4173,120918,6390],{"class":4784},[4173,120920,13015],{"class":4665},[4173,120922,79107],{"class":4784},[4173,120924,120925],{"class":4766},"\u002F\u002F 1 Sekunde warten\n",[4173,120927,120928,120931,120933,120935,120937],{"class":4657,"line":6462},[4173,120929,120930],{"class":4784},"                    } ",[4173,120932,85917],{"class":4788},[4173,120934,95825],{"class":4784},[4173,120936,20602],{"class":7074},[4173,120938,56319],{"class":4784},[4173,120940,120941,120944,120946],{"class":4657,"line":6468},[4173,120942,120943],{"class":4784},"                        e.",[4173,120945,94901],{"class":4661},[4173,120947,65878],{"class":4784},[4173,120949,120950],{"class":4657,"line":6473},[4173,120951,120952],{"class":4784},"                    }\n",[4173,120954,120955],{"class":4657,"line":6479},[4173,120956,117379],{"class":4784},[4173,120958,120959],{"class":4657,"line":6503},[4173,120960,101599],{"class":4784},[4173,120962,120963],{"class":4657,"line":6516},[4173,120964,102592],{"class":4784},[4173,120966,120967],{"class":4657,"line":6971},[4173,120968,120969],{"class":4766},"        \u002F\u002F Thread mit Runnable starten\n",[4173,120971,120972,120975,120977,120979,120981],{"class":4657,"line":10649},[4173,120973,120974],{"class":4784},"        Thread thread ",[4173,120976,6387],{"class":4788},[4173,120978,79032],{"class":4788},[4173,120980,95516],{"class":4661},[4173,120982,120983],{"class":4784},"(aufgabe);\n",[4173,120985,120986,120989,120991],{"class":4657,"line":10654},[4173,120987,120988],{"class":4784},"        thread.",[4173,120990,30636],{"class":4661},[4173,120992,65878],{"class":4784},[4173,120994,120995],{"class":4657,"line":10659},[4173,120996,120997],{"class":4766},"        \u002F\u002F Hauptthread läuft weiter\n",[4173,120999,121000,121002,121004,121006,121009],{"class":4657,"line":10664},[4173,121001,100097],{"class":4784},[4173,121003,79074],{"class":4661},[4173,121005,6390],{"class":4784},[4173,121007,121008],{"class":4669},"\"Main-Methode beendet\"",[4173,121010,55545],{"class":4784},[4173,121012,121013],{"class":4657,"line":10676},[4173,121014,100385],{"class":4784},[16,121016,121018],{"id":121017},"modern-mit-lamda-ab-java-8","Modern mit Lamda ab java 8",[4647,121020,121022],{"className":78931,"code":121021,"language":78933,"meta":269,"style":269},"public class RunnableLambda {\n    public static void main(String[] args) {\n        Runnable aufgabe = () - > {\n            for (int i = 1; i \u003C= 5; i++) {\n                System.out.println(\"Lambda-Thread: \" + i);\n                try {\n                    Thread.sleep(500);\n                } catch (InterruptedException e) {\n                    e.printStackTrace();\n                }\n            }\n        };\n        Thread thread = new Thread(aufgabe);\n        thread.start();\n        System.out.println(\"Main läuft weiter\");\n    }\n}\n\n",[4653,121023,121024,121035,121055,121070,121097,121112,121119,121132,121145,121154,121158,121162,121166,121178,121186,121199,121203],{"__ignoreMap":269},[4173,121025,121026,121028,121030,121033],{"class":4657,"line":4658},[4173,121027,79889],{"class":4788},[4173,121029,80062],{"class":4788},[4173,121031,121032],{"class":4661}," RunnableLambda",[4173,121034,51614],{"class":4784},[4173,121036,121037,121039,121041,121043,121045,121047,121049,121051,121053],{"class":4657,"line":270},[4173,121038,100265],{"class":4788},[4173,121040,79892],{"class":4788},[4173,121042,79934],{"class":4788},[4173,121044,79937],{"class":4661},[4173,121046,6390],{"class":4784},[4173,121048,79693],{"class":4788},[4173,121050,80084],{"class":4784},[4173,121052,31283],{"class":7074},[4173,121054,56319],{"class":4784},[4173,121056,121057,121059,121061,121064,121066,121068],{"class":4657,"line":1263},[4173,121058,120835],{"class":4784},[4173,121060,6387],{"class":4788},[4173,121062,121063],{"class":4784}," () ",[4173,121065,4778],{"class":4788},[4173,121067,24509],{"class":4788},[4173,121069,51614],{"class":4784},[4173,121071,121072,121075,121077,121079,121081,121083,121085,121087,121089,121091,121093,121095],{"class":4657,"line":4770},[4173,121073,121074],{"class":4788},"            for",[4173,121076,4171],{"class":4784},[4173,121078,64831],{"class":4788},[4173,121080,6555],{"class":4784},[4173,121082,6387],{"class":4788},[4173,121084,10264],{"class":4665},[4173,121086,79645],{"class":4784},[4173,121088,66329],{"class":4788},[4173,121090,16450],{"class":4665},[4173,121092,79652],{"class":4784},[4173,121094,10670],{"class":4788},[4173,121096,56319],{"class":4784},[4173,121098,121099,121101,121103,121105,121108,121110],{"class":4657,"line":4775},[4173,121100,101586],{"class":4784},[4173,121102,79074],{"class":4661},[4173,121104,6390],{"class":4784},[4173,121106,121107],{"class":4669},"\"Lambda-Thread: \"",[4173,121109,11719],{"class":4788},[4173,121111,79672],{"class":4784},[4173,121113,121114,121117],{"class":4657,"line":6320},[4173,121115,121116],{"class":4788},"                try",[4173,121118,51614],{"class":4784},[4173,121120,121121,121124,121126,121128,121130],{"class":4657,"line":6325},[4173,121122,121123],{"class":4784},"                    Thread.",[4173,121125,95936],{"class":4661},[4173,121127,6390],{"class":4784},[4173,121129,120364],{"class":4665},[4173,121131,55545],{"class":4784},[4173,121133,121134,121137,121139,121141,121143],{"class":4657,"line":6343},[4173,121135,121136],{"class":4784},"                } ",[4173,121138,85917],{"class":4788},[4173,121140,95825],{"class":4784},[4173,121142,20602],{"class":7074},[4173,121144,56319],{"class":4784},[4173,121146,121147,121150,121152],{"class":4657,"line":6348},[4173,121148,121149],{"class":4784},"                    e.",[4173,121151,94901],{"class":4661},[4173,121153,65878],{"class":4784},[4173,121155,121156],{"class":4657,"line":6457},[4173,121157,117379],{"class":4784},[4173,121159,121160],{"class":4657,"line":6462},[4173,121161,101599],{"class":4784},[4173,121163,121164],{"class":4657,"line":6468},[4173,121165,102592],{"class":4784},[4173,121167,121168,121170,121172,121174,121176],{"class":4657,"line":6473},[4173,121169,120974],{"class":4784},[4173,121171,6387],{"class":4788},[4173,121173,79032],{"class":4788},[4173,121175,95516],{"class":4661},[4173,121177,120983],{"class":4784},[4173,121179,121180,121182,121184],{"class":4657,"line":6479},[4173,121181,120988],{"class":4784},[4173,121183,30636],{"class":4661},[4173,121185,65878],{"class":4784},[4173,121187,121188,121190,121192,121194,121197],{"class":4657,"line":6503},[4173,121189,100097],{"class":4784},[4173,121191,79074],{"class":4661},[4173,121193,6390],{"class":4784},[4173,121195,121196],{"class":4669},"\"Main läuft weiter\"",[4173,121198,55545],{"class":4784},[4173,121200,121201],{"class":4657,"line":6516},[4173,121202,100385],{"class":4784},[4173,121204,121205],{"class":4657,"line":6971},[4173,121206,7090],{"class":4784},[11,121208,121210],{"id":121209},"prüfung-2023","Prüfung 2023",[16,121212,121214],{"id":121213},"aufgabe-1","Aufgabe 1",[4647,121216,121218],{"className":78931,"code":121217,"language":78933,"meta":269,"style":269},"public class Ratte {\n    private String nameMutter;\n    private int code;\n    public static final int MIN = 10000;\n    public static final int MAX = 99999;\n    public Ratte(String nameMutter) {\n        this.nameMutter = nameMutter;\n        this.code = buildCode();\n    }\n    public String getNameMutter() {\n        return nameMutter;\n    }\n    public void setNameMutter(String nameMutter) {\n        this.nameMutter = nameMutter;\n    }\n    public int getCode() {\n        return code;\n    }\n    private int buildCode() {\n        return (int)(Math.random() * (MAX - MIN + 1)) + MIN;\n    }\n    @Override\n    public String toString() {\n        return nameMutter + \"-\" + code;\n    }\n}\n\n",[4653,121219,121220,121231,121238,121247,121267,121287,121300,121312,121326,121330,121341,121347,121351,121366,121376,121380,121391,121397,121401,121411,121447,121451,121457,121467,121483,121487],{"__ignoreMap":269},[4173,121221,121222,121224,121226,121229],{"class":4657,"line":4658},[4173,121223,79889],{"class":4788},[4173,121225,80062],{"class":4788},[4173,121227,121228],{"class":4661}," Ratte",[4173,121230,51614],{"class":4784},[4173,121232,121233,121235],{"class":4657,"line":270},[4173,121234,100507],{"class":4788},[4173,121236,121237],{"class":4784}," String nameMutter;\n",[4173,121239,121240,121242,121244],{"class":4657,"line":1263},[4173,121241,100507],{"class":4788},[4173,121243,79895],{"class":4788},[4173,121245,121246],{"class":4784}," code;\n",[4173,121248,121249,121251,121253,121255,121257,121260,121262,121265],{"class":4657,"line":4770},[4173,121250,100265],{"class":4788},[4173,121252,79892],{"class":4788},[4173,121254,95525],{"class":4788},[4173,121256,79895],{"class":4788},[4173,121258,121259],{"class":4784}," MIN ",[4173,121261,6387],{"class":4788},[4173,121263,121264],{"class":4665}," 10000",[4173,121266,55559],{"class":4784},[4173,121268,121269,121271,121273,121275,121277,121280,121282,121285],{"class":4657,"line":4775},[4173,121270,100265],{"class":4788},[4173,121272,79892],{"class":4788},[4173,121274,95525],{"class":4788},[4173,121276,79895],{"class":4788},[4173,121278,121279],{"class":4784}," MAX ",[4173,121281,6387],{"class":4788},[4173,121283,121284],{"class":4665}," 99999",[4173,121286,55559],{"class":4784},[4173,121288,121289,121291,121293,121295,121298],{"class":4657,"line":6320},[4173,121290,100265],{"class":4788},[4173,121292,121228],{"class":4661},[4173,121294,80001],{"class":4784},[4173,121296,121297],{"class":7074},"nameMutter",[4173,121299,56319],{"class":4784},[4173,121301,121302,121304,121307,121309],{"class":4657,"line":6325},[4173,121303,100374],{"class":4665},[4173,121305,121306],{"class":4784},".nameMutter ",[4173,121308,6387],{"class":4788},[4173,121310,121311],{"class":4784}," nameMutter;\n",[4173,121313,121314,121316,121319,121321,121324],{"class":4657,"line":6343},[4173,121315,100374],{"class":4665},[4173,121317,121318],{"class":4784},".code ",[4173,121320,6387],{"class":4788},[4173,121322,121323],{"class":4661}," buildCode",[4173,121325,65878],{"class":4784},[4173,121327,121328],{"class":4657,"line":6348},[4173,121329,100385],{"class":4784},[4173,121331,121332,121334,121336,121339],{"class":4657,"line":6457},[4173,121333,100265],{"class":4788},[4173,121335,80225],{"class":4784},[4173,121337,121338],{"class":4661},"getNameMutter",[4173,121340,7062],{"class":4784},[4173,121342,121343,121345],{"class":4657,"line":6462},[4173,121344,100584],{"class":4788},[4173,121346,121311],{"class":4784},[4173,121348,121349],{"class":4657,"line":6468},[4173,121350,100385],{"class":4784},[4173,121352,121353,121355,121357,121360,121362,121364],{"class":4657,"line":6473},[4173,121354,100265],{"class":4788},[4173,121356,79934],{"class":4788},[4173,121358,121359],{"class":4661}," setNameMutter",[4173,121361,80001],{"class":4784},[4173,121363,121297],{"class":7074},[4173,121365,56319],{"class":4784},[4173,121367,121368,121370,121372,121374],{"class":4657,"line":6479},[4173,121369,100374],{"class":4665},[4173,121371,121306],{"class":4784},[4173,121373,6387],{"class":4788},[4173,121375,121311],{"class":4784},[4173,121377,121378],{"class":4657,"line":6503},[4173,121379,100385],{"class":4784},[4173,121381,121382,121384,121386,121389],{"class":4657,"line":6516},[4173,121383,100265],{"class":4788},[4173,121385,79895],{"class":4788},[4173,121387,121388],{"class":4661}," getCode",[4173,121390,7062],{"class":4784},[4173,121392,121393,121395],{"class":4657,"line":6971},[4173,121394,100584],{"class":4788},[4173,121396,121246],{"class":4784},[4173,121398,121399],{"class":4657,"line":10649},[4173,121400,100385],{"class":4784},[4173,121402,121403,121405,121407,121409],{"class":4657,"line":10654},[4173,121404,100507],{"class":4788},[4173,121406,79895],{"class":4788},[4173,121408,121323],{"class":4661},[4173,121410,7062],{"class":4784},[4173,121412,121413,121415,121417,121419,121422,121425,121427,121429,121432,121434,121436,121438,121440,121442,121444],{"class":4657,"line":10659},[4173,121414,100584],{"class":4788},[4173,121416,4171],{"class":4784},[4173,121418,64831],{"class":4788},[4173,121420,121421],{"class":4784},")(Math.",[4173,121423,121424],{"class":4661},"random",[4173,121426,80558],{"class":4784},[4173,121428,6328],{"class":4788},[4173,121430,121431],{"class":4784}," (MAX ",[4173,121433,4778],{"class":4788},[4173,121435,121259],{"class":4784},[4173,121437,14419],{"class":4788},[4173,121439,10264],{"class":4665},[4173,121441,47896],{"class":4784},[4173,121443,14419],{"class":4788},[4173,121445,121446],{"class":4784}," MIN;\n",[4173,121448,121449],{"class":4657,"line":10664},[4173,121450,100385],{"class":4784},[4173,121452,121453,121455],{"class":4657,"line":10676},[4173,121454,100865],{"class":4784},[4173,121456,80535],{"class":4788},[4173,121458,121459,121461,121463,121465],{"class":4657,"line":10681},[4173,121460,100265],{"class":4788},[4173,121462,80225],{"class":4784},[4173,121464,86154],{"class":4661},[4173,121466,7062],{"class":4784},[4173,121468,121469,121471,121474,121476,121479,121481],{"class":4657,"line":10702},[4173,121470,100584],{"class":4788},[4173,121472,121473],{"class":4784}," nameMutter ",[4173,121475,14419],{"class":4788},[4173,121477,121478],{"class":4669}," \"-\"",[4173,121480,11719],{"class":4788},[4173,121482,121246],{"class":4784},[4173,121484,121485],{"class":4657,"line":10707},[4173,121486,100385],{"class":4784},[4173,121488,121489],{"class":4657,"line":10712},[4173,121490,7090],{"class":4784},[16,121492,121494],{"id":121493},"aufgabe-2","Aufgabe 2",[4647,121496,121498],{"className":78931,"code":121497,"language":78933,"meta":269,"style":269},"public class RatteTest {\n    public static void main(String[] args) {\n        Ratte r1 = new Ratte(\"Elvira\");\n        Ratte r2 = new Ratte(\"Elvira\");\n        Ratte r3 = new Ratte(\"Elvira\");\n        System.out.println(r1);\n        System.out.println(r2);\n        System.out.println(r3);\n    }\n}\n\n",[4653,121499,121500,121511,121531,121549,121566,121583,121592,121601,121610,121614],{"__ignoreMap":269},[4173,121501,121502,121504,121506,121509],{"class":4657,"line":4658},[4173,121503,79889],{"class":4788},[4173,121505,80062],{"class":4788},[4173,121507,121508],{"class":4661}," RatteTest",[4173,121510,51614],{"class":4784},[4173,121512,121513,121515,121517,121519,121521,121523,121525,121527,121529],{"class":4657,"line":270},[4173,121514,100265],{"class":4788},[4173,121516,79892],{"class":4788},[4173,121518,79934],{"class":4788},[4173,121520,79937],{"class":4661},[4173,121522,6390],{"class":4784},[4173,121524,79693],{"class":4788},[4173,121526,80084],{"class":4784},[4173,121528,31283],{"class":7074},[4173,121530,56319],{"class":4784},[4173,121532,121533,121536,121538,121540,121542,121544,121547],{"class":4657,"line":1263},[4173,121534,121535],{"class":4784},"        Ratte r1 ",[4173,121537,6387],{"class":4788},[4173,121539,79032],{"class":4788},[4173,121541,121228],{"class":4661},[4173,121543,6390],{"class":4784},[4173,121545,121546],{"class":4669},"\"Elvira\"",[4173,121548,55545],{"class":4784},[4173,121550,121551,121554,121556,121558,121560,121562,121564],{"class":4657,"line":4770},[4173,121552,121553],{"class":4784},"        Ratte r2 ",[4173,121555,6387],{"class":4788},[4173,121557,79032],{"class":4788},[4173,121559,121228],{"class":4661},[4173,121561,6390],{"class":4784},[4173,121563,121546],{"class":4669},[4173,121565,55545],{"class":4784},[4173,121567,121568,121571,121573,121575,121577,121579,121581],{"class":4657,"line":4775},[4173,121569,121570],{"class":4784},"        Ratte r3 ",[4173,121572,6387],{"class":4788},[4173,121574,79032],{"class":4788},[4173,121576,121228],{"class":4661},[4173,121578,6390],{"class":4784},[4173,121580,121546],{"class":4669},[4173,121582,55545],{"class":4784},[4173,121584,121585,121587,121589],{"class":4657,"line":6320},[4173,121586,100097],{"class":4784},[4173,121588,79074],{"class":4661},[4173,121590,121591],{"class":4784},"(r1);\n",[4173,121593,121594,121596,121598],{"class":4657,"line":6325},[4173,121595,100097],{"class":4784},[4173,121597,79074],{"class":4661},[4173,121599,121600],{"class":4784},"(r2);\n",[4173,121602,121603,121605,121607],{"class":4657,"line":6343},[4173,121604,100097],{"class":4784},[4173,121606,79074],{"class":4661},[4173,121608,121609],{"class":4784},"(r3);\n",[4173,121611,121612],{"class":4657,"line":6348},[4173,121613,100385],{"class":4784},[4173,121615,121616],{"class":4657,"line":6457},[4173,121617,7090],{"class":4784},[16,121619,121621],{"id":121620},"aufgabe-3","Aufgabe 3",[4647,121623,121625],{"className":78931,"code":121624,"language":78933,"meta":269,"style":269},"import javax.swing.*;\nimport java.awt.*;\npublic class Ratten_Registrierung extends JFrame {\n    JLabel titel;\n    JLabel lblName;\n    JTextField txtName;\n    JRadioButton gesund;\n    JRadioButton krank;\n    ButtonGroup gruppe;\n    JButton erfassen;\n    public Ratten_Registrierung() {\n        setTitle(\"Ratten Registrierung\");\n        setSize(350, 150);\n        setLayout(new FlowLayout());\n        setResizable(false);\n        setDefaultCloseOperation(EXIT_ON_CLOSE);\n        titel = new JLabel(\"Ratten Registrierung\");\n        titel.setFont(new Font(\"Courier\", Font.ITALIC, 24));\n        titel.setForeground(Color.BLUE);\n        lblName = new JLabel(\"Name Muttertier:\");\n        txtName = new JTextField(15);\n        gesund = new JRadioButton(\"gesund\", true);\n        krank = new JRadioButton(\"krank\");\n        gruppe = new ButtonGroup();\n        gruppe.add(gesund);\n        gruppe.add(krank);\n        erfassen = new JButton(\"Erfassen\");\n        erfassen.setBackground(Color.YELLOW);\n        add(titel);\n        add(lblName);\n        add(txtName);\n        add(gesund);\n        add(krank);\n        add(erfassen);\n        setVisible(true);\n    }\n    public static void main(String[] args) {\n        new Ratten_Registrierung();\n    }\n}\n\n",[4653,121626,121627,121637,121647,121662,121667,121672,121677,121682,121687,121692,121697,121705,121717,121732,121744,121754,121761,121778,121801,121810,121828,121845,121867,121885,121898,121908,121917,121935,121944,121951,121958,121965,121971,121977,121984,121994,121998,122018,122026,122030],{"__ignoreMap":269},[4173,121628,121629,121631,121633,121635],{"class":4657,"line":4658},[4173,121630,79019],{"class":4788},[4173,121632,80877],{"class":4784},[4173,121634,6328],{"class":4665},[4173,121636,55559],{"class":4784},[4173,121638,121639,121641,121643,121645],{"class":4657,"line":270},[4173,121640,79019],{"class":4788},[4173,121642,80902],{"class":4784},[4173,121644,6328],{"class":4665},[4173,121646,55559],{"class":4784},[4173,121648,121649,121651,121653,121656,121658,121660],{"class":4657,"line":1263},[4173,121650,79889],{"class":4788},[4173,121652,80062],{"class":4788},[4173,121654,121655],{"class":4661}," Ratten_Registrierung",[4173,121657,80500],{"class":4788},[4173,121659,80986],{"class":4661},[4173,121661,51614],{"class":4784},[4173,121663,121664],{"class":4657,"line":4770},[4173,121665,121666],{"class":4784},"    JLabel titel;\n",[4173,121668,121669],{"class":4657,"line":4775},[4173,121670,121671],{"class":4784},"    JLabel lblName;\n",[4173,121673,121674],{"class":4657,"line":6320},[4173,121675,121676],{"class":4784},"    JTextField txtName;\n",[4173,121678,121679],{"class":4657,"line":6325},[4173,121680,121681],{"class":4784},"    JRadioButton gesund;\n",[4173,121683,121684],{"class":4657,"line":6343},[4173,121685,121686],{"class":4784},"    JRadioButton krank;\n",[4173,121688,121689],{"class":4657,"line":6348},[4173,121690,121691],{"class":4784},"    ButtonGroup gruppe;\n",[4173,121693,121694],{"class":4657,"line":6457},[4173,121695,121696],{"class":4784},"    JButton erfassen;\n",[4173,121698,121699,121701,121703],{"class":4657,"line":6462},[4173,121700,100265],{"class":4788},[4173,121702,121655],{"class":4661},[4173,121704,7062],{"class":4784},[4173,121706,121707,121710,121712,121715],{"class":4657,"line":6468},[4173,121708,121709],{"class":4661},"        setTitle",[4173,121711,6390],{"class":4784},[4173,121713,121714],{"class":4669},"\"Ratten Registrierung\"",[4173,121716,55545],{"class":4784},[4173,121718,121719,121721,121723,121725,121727,121730],{"class":4657,"line":6473},[4173,121720,101402],{"class":4661},[4173,121722,6390],{"class":4784},[4173,121724,83572],{"class":4665},[4173,121726,8629],{"class":4784},[4173,121728,121729],{"class":4665},"150",[4173,121731,55545],{"class":4784},[4173,121733,121734,121736,121738,121740,121742],{"class":4657,"line":6479},[4173,121735,111852],{"class":4661},[4173,121737,6390],{"class":4784},[4173,121739,81243],{"class":4788},[4173,121741,81540],{"class":4661},[4173,121743,81860],{"class":4784},[4173,121745,121746,121748,121750,121752],{"class":4657,"line":6503},[4173,121747,101419],{"class":4661},[4173,121749,6390],{"class":4784},[4173,121751,90836],{"class":4665},[4173,121753,55545],{"class":4784},[4173,121755,121756,121758],{"class":4657,"line":6516},[4173,121757,101392],{"class":4661},[4173,121759,121760],{"class":4784},"(EXIT_ON_CLOSE);\n",[4173,121762,121763,121766,121768,121770,121772,121774,121776],{"class":4657,"line":6971},[4173,121764,121765],{"class":4784},"        titel ",[4173,121767,6387],{"class":4788},[4173,121769,79032],{"class":4788},[4173,121771,81563],{"class":4661},[4173,121773,6390],{"class":4784},[4173,121775,121714],{"class":4669},[4173,121777,55545],{"class":4784},[4173,121779,121780,121783,121785,121787,121789,121791,121793,121795,121797,121799],{"class":4657,"line":10649},[4173,121781,121782],{"class":4784},"        titel.",[4173,121784,81578],{"class":4661},[4173,121786,6390],{"class":4784},[4173,121788,81243],{"class":4788},[4173,121790,81585],{"class":4661},[4173,121792,6390],{"class":4784},[4173,121794,90890],{"class":4669},[4173,121796,81645],{"class":4784},[4173,121798,81596],{"class":4665},[4173,121800,66047],{"class":4784},[4173,121802,121803,121805,121807],{"class":4657,"line":10654},[4173,121804,121782],{"class":4784},[4173,121806,93344],{"class":4661},[4173,121808,121809],{"class":4784},"(Color.BLUE);\n",[4173,121811,121812,121815,121817,121819,121821,121823,121826],{"class":4657,"line":10659},[4173,121813,121814],{"class":4784},"        lblName ",[4173,121816,6387],{"class":4788},[4173,121818,79032],{"class":4788},[4173,121820,81563],{"class":4661},[4173,121822,6390],{"class":4784},[4173,121824,121825],{"class":4669},"\"Name Muttertier:\"",[4173,121827,55545],{"class":4784},[4173,121829,121830,121833,121835,121837,121839,121841,121843],{"class":4657,"line":10664},[4173,121831,121832],{"class":4784},"        txtName ",[4173,121834,6387],{"class":4788},[4173,121836,79032],{"class":4788},[4173,121838,83065],{"class":4661},[4173,121840,6390],{"class":4784},[4173,121842,18021],{"class":4665},[4173,121844,55545],{"class":4784},[4173,121846,121847,121850,121852,121854,121856,121858,121861,121863,121865],{"class":4657,"line":10676},[4173,121848,121849],{"class":4784},"        gesund ",[4173,121851,6387],{"class":4788},[4173,121853,79032],{"class":4788},[4173,121855,82150],{"class":4661},[4173,121857,6390],{"class":4784},[4173,121859,121860],{"class":4669},"\"gesund\"",[4173,121862,8629],{"class":4784},[4173,121864,45190],{"class":4665},[4173,121866,55545],{"class":4784},[4173,121868,121869,121872,121874,121876,121878,121880,121883],{"class":4657,"line":10681},[4173,121870,121871],{"class":4784},"        krank ",[4173,121873,6387],{"class":4788},[4173,121875,79032],{"class":4788},[4173,121877,82150],{"class":4661},[4173,121879,6390],{"class":4784},[4173,121881,121882],{"class":4669},"\"krank\"",[4173,121884,55545],{"class":4784},[4173,121886,121887,121890,121892,121894,121896],{"class":4657,"line":10702},[4173,121888,121889],{"class":4784},"        gruppe ",[4173,121891,6387],{"class":4788},[4173,121893,79032],{"class":4788},[4173,121895,82205],{"class":4661},[4173,121897,65878],{"class":4784},[4173,121899,121900,121903,121905],{"class":4657,"line":10707},[4173,121901,121902],{"class":4784},"        gruppe.",[4173,121904,79955],{"class":4661},[4173,121906,121907],{"class":4784},"(gesund);\n",[4173,121909,121910,121912,121914],{"class":4657,"line":10712},[4173,121911,121902],{"class":4784},[4173,121913,79955],{"class":4661},[4173,121915,121916],{"class":4784},"(krank);\n",[4173,121918,121919,121922,121924,121926,121928,121930,121933],{"class":4657,"line":10717},[4173,121920,121921],{"class":4784},"        erfassen ",[4173,121923,6387],{"class":4788},[4173,121925,79032],{"class":4788},[4173,121927,81836],{"class":4661},[4173,121929,6390],{"class":4784},[4173,121931,121932],{"class":4669},"\"Erfassen\"",[4173,121934,55545],{"class":4784},[4173,121936,121937,121940,121942],{"class":4657,"line":10727},[4173,121938,121939],{"class":4784},"        erfassen.",[4173,121941,93357],{"class":4661},[4173,121943,93360],{"class":4784},[4173,121945,121946,121948],{"class":4657,"line":10732},[4173,121947,111949],{"class":4661},[4173,121949,121950],{"class":4784},"(titel);\n",[4173,121952,121953,121955],{"class":4657,"line":10737},[4173,121954,111949],{"class":4661},[4173,121956,121957],{"class":4784},"(lblName);\n",[4173,121959,121960,121962],{"class":4657,"line":10742},[4173,121961,111949],{"class":4661},[4173,121963,121964],{"class":4784},"(txtName);\n",[4173,121966,121967,121969],{"class":4657,"line":10752},[4173,121968,111949],{"class":4661},[4173,121970,121907],{"class":4784},[4173,121972,121973,121975],{"class":4657,"line":10757},[4173,121974,111949],{"class":4661},[4173,121976,121916],{"class":4784},[4173,121978,121979,121981],{"class":4657,"line":10762},[4173,121980,111949],{"class":4661},[4173,121982,121983],{"class":4784},"(erfassen);\n",[4173,121985,121986,121988,121990,121992],{"class":4657,"line":10767},[4173,121987,112251],{"class":4661},[4173,121989,6390],{"class":4784},[4173,121991,45190],{"class":4665},[4173,121993,55545],{"class":4784},[4173,121995,121996],{"class":4657,"line":10772},[4173,121997,100385],{"class":4784},[4173,121999,122000,122002,122004,122006,122008,122010,122012,122014,122016],{"class":4657,"line":10777},[4173,122001,100265],{"class":4788},[4173,122003,79892],{"class":4788},[4173,122005,79934],{"class":4788},[4173,122007,79937],{"class":4661},[4173,122009,6390],{"class":4784},[4173,122011,79693],{"class":4788},[4173,122013,80084],{"class":4784},[4173,122015,31283],{"class":7074},[4173,122017,56319],{"class":4784},[4173,122019,122020,122022,122024],{"class":4657,"line":10782},[4173,122021,112453],{"class":4788},[4173,122023,121655],{"class":4661},[4173,122025,65878],{"class":4784},[4173,122027,122028],{"class":4657,"line":10787},[4173,122029,100385],{"class":4784},[4173,122031,122032],{"class":4657,"line":10800},[4173,122033,7090],{"class":4784},[16,122035,122037],{"id":122036},"aufgabe-4","Aufgabe 4",[4647,122039,122041],{"className":78931,"code":122040,"language":78933,"meta":269,"style":269},"import java.awt.event.*;\nimport java.io.*;\npublic class Ratten_Registrierung extends JFrame {\n    ...\n    public Ratten_Registrierung() {\n        ...\n        erfassen.addActionListener(new RegEreignis());\n        setVisible(true);\n    }\n    class RegEreignis implements ActionListener {\n        @Override\n        public void actionPerformed(ActionEvent e) {\n            if (krank.isSelected()) {\n                System.out.println(\"Jungtier als Versuchstier ungeeignet!\");\n            } else {\n                Ratte r = new Ratte(txtName.getText());\n                try {\n                    FileWriter fw = new FileWriter(\"Ratten_Liste.txt\", true);\n                    PrintWriter pw = new PrintWriter(fw);\n                    pw.println(r);\n                    pw.close();\n                } catch (IOException ex) {\n                    System.out.println(\"Listeneintrag erfolglos!\");\n                }\n            }\n            txtName.setText(\"\");\n            gesund.setSelected(true);\n        }\n    }\n}\n\n",[4653,122042,122043,122053,122063,122077,122082,122090,122095,122110,122120,122124,122137,122144,122159,122170,122183,122191,122209,122215,122237,122251,122261,122269,122282,122295,122299,122303,122316,122329,122333,122337],{"__ignoreMap":269},[4173,122044,122045,122047,122049,122051],{"class":4657,"line":4658},[4173,122046,79019],{"class":4788},[4173,122048,80913],{"class":4784},[4173,122050,6328],{"class":4665},[4173,122052,55559],{"class":4784},[4173,122054,122055,122057,122059,122061],{"class":4657,"line":270},[4173,122056,79019],{"class":4788},[4173,122058,90640],{"class":4784},[4173,122060,6328],{"class":4665},[4173,122062,55559],{"class":4784},[4173,122064,122065,122067,122069,122071,122073,122075],{"class":4657,"line":1263},[4173,122066,79889],{"class":4788},[4173,122068,80062],{"class":4788},[4173,122070,121655],{"class":4661},[4173,122072,80500],{"class":4788},[4173,122074,80986],{"class":4661},[4173,122076,51614],{"class":4784},[4173,122078,122079],{"class":4657,"line":4770},[4173,122080,122081],{"class":4784},"    ...\n",[4173,122083,122084,122086,122088],{"class":4657,"line":4775},[4173,122085,100265],{"class":4788},[4173,122087,121655],{"class":4661},[4173,122089,7062],{"class":4784},[4173,122091,122092],{"class":4657,"line":6320},[4173,122093,122094],{"class":4784},"        ...\n",[4173,122096,122097,122099,122101,122103,122105,122108],{"class":4657,"line":6325},[4173,122098,121939],{"class":4784},[4173,122100,81461],{"class":4661},[4173,122102,6390],{"class":4784},[4173,122104,81243],{"class":4788},[4173,122106,122107],{"class":4661}," RegEreignis",[4173,122109,81860],{"class":4784},[4173,122111,122112,122114,122116,122118],{"class":4657,"line":6343},[4173,122113,112251],{"class":4661},[4173,122115,6390],{"class":4784},[4173,122117,45190],{"class":4665},[4173,122119,55545],{"class":4784},[4173,122121,122122],{"class":4657,"line":6348},[4173,122123,100385],{"class":4784},[4173,122125,122126,122129,122131,122133,122135],{"class":4657,"line":6457},[4173,122127,122128],{"class":4788},"    class",[4173,122130,122107],{"class":4661},[4173,122132,80628],{"class":4788},[4173,122134,91485],{"class":4661},[4173,122136,51614],{"class":4784},[4173,122138,122139,122142],{"class":4657,"line":6462},[4173,122140,122141],{"class":4784},"        @",[4173,122143,80535],{"class":4788},[4173,122145,122146,122149,122151,122153,122155,122157],{"class":4657,"line":6468},[4173,122147,122148],{"class":4788},"        public",[4173,122150,79934],{"class":4788},[4173,122152,82416],{"class":4661},[4173,122154,82419],{"class":4784},[4173,122156,20602],{"class":7074},[4173,122158,56319],{"class":4784},[4173,122160,122161,122163,122166,122168],{"class":4657,"line":6473},[4173,122162,102179],{"class":4788},[4173,122164,122165],{"class":4784}," (krank.",[4173,122167,82092],{"class":4661},[4173,122169,85158],{"class":4784},[4173,122171,122172,122174,122176,122178,122181],{"class":4657,"line":6479},[4173,122173,101586],{"class":4784},[4173,122175,79074],{"class":4661},[4173,122177,6390],{"class":4784},[4173,122179,122180],{"class":4669},"\"Jungtier als Versuchstier ungeeignet!\"",[4173,122182,55545],{"class":4784},[4173,122184,122185,122187,122189],{"class":4657,"line":6503},[4173,122186,116512],{"class":4784},[4173,122188,19734],{"class":4788},[4173,122190,51614],{"class":4784},[4173,122192,122193,122196,122198,122200,122202,122205,122207],{"class":4657,"line":6516},[4173,122194,122195],{"class":4784},"                Ratte r ",[4173,122197,6387],{"class":4788},[4173,122199,79032],{"class":4788},[4173,122201,121228],{"class":4661},[4173,122203,122204],{"class":4784},"(txtName.",[4173,122206,83296],{"class":4661},[4173,122208,81860],{"class":4784},[4173,122210,122211,122213],{"class":4657,"line":6971},[4173,122212,121116],{"class":4788},[4173,122214,51614],{"class":4784},[4173,122216,122217,122220,122222,122224,122226,122228,122231,122233,122235],{"class":4657,"line":10649},[4173,122218,122219],{"class":4784},"                    FileWriter fw ",[4173,122221,6387],{"class":4788},[4173,122223,79032],{"class":4788},[4173,122225,86273],{"class":4661},[4173,122227,6390],{"class":4784},[4173,122229,122230],{"class":4669},"\"Ratten_Liste.txt\"",[4173,122232,8629],{"class":4784},[4173,122234,45190],{"class":4665},[4173,122236,55545],{"class":4784},[4173,122238,122239,122242,122244,122246,122248],{"class":4657,"line":10654},[4173,122240,122241],{"class":4784},"                    PrintWriter pw ",[4173,122243,6387],{"class":4788},[4173,122245,79032],{"class":4788},[4173,122247,97337],{"class":4661},[4173,122249,122250],{"class":4784},"(fw);\n",[4173,122252,122253,122256,122258],{"class":4657,"line":10659},[4173,122254,122255],{"class":4784},"                    pw.",[4173,122257,79074],{"class":4661},[4173,122259,122260],{"class":4784},"(r);\n",[4173,122262,122263,122265,122267],{"class":4657,"line":10664},[4173,122264,122255],{"class":4784},[4173,122266,94877],{"class":4661},[4173,122268,65878],{"class":4784},[4173,122270,122271,122273,122275,122277,122280],{"class":4657,"line":10676},[4173,122272,121136],{"class":4784},[4173,122274,85917],{"class":4788},[4173,122276,85960],{"class":4784},[4173,122278,122279],{"class":7074},"ex",[4173,122281,56319],{"class":4784},[4173,122283,122284,122286,122288,122290,122293],{"class":4657,"line":10681},[4173,122285,120891],{"class":4784},[4173,122287,79074],{"class":4661},[4173,122289,6390],{"class":4784},[4173,122291,122292],{"class":4669},"\"Listeneintrag erfolglos!\"",[4173,122294,55545],{"class":4784},[4173,122296,122297],{"class":4657,"line":10702},[4173,122298,117379],{"class":4784},[4173,122300,122301],{"class":4657,"line":10707},[4173,122302,101599],{"class":4784},[4173,122304,122305,122308,122310,122312,122314],{"class":4657,"line":10712},[4173,122306,122307],{"class":4784},"            txtName.",[4173,122309,81370],{"class":4661},[4173,122311,6390],{"class":4784},[4173,122313,46851],{"class":4669},[4173,122315,55545],{"class":4784},[4173,122317,122318,122321,122323,122325,122327],{"class":4657,"line":10717},[4173,122319,122320],{"class":4784},"            gesund.",[4173,122322,82067],{"class":4661},[4173,122324,6390],{"class":4784},[4173,122326,45190],{"class":4665},[4173,122328,55545],{"class":4784},[4173,122330,122331],{"class":4657,"line":10727},[4173,122332,100145],{"class":4784},[4173,122334,122335],{"class":4657,"line":10732},[4173,122336,100385],{"class":4784},[4173,122338,122339],{"class":4657,"line":10737},[4173,122340,7090],{"class":4784},[16,122342,122344],{"id":122343},"aufgabe-5","Aufgabe 5",[4647,122346,122348],{"className":78931,"code":122347,"language":78933,"meta":269,"style":269},"String name = txtName.getText();\nwhile (name == null || name.trim().isEmpty()) {\n    name = JOptionPane.showInputDialog(\n        null,\n        \"Bitte Namen eingeben!\"\n    );\n}\ntxtName.setText(name);\nDanach kann die Ratte normal erzeugt werden:\n    Ratte r = new Ratte(name);\nAufgabe 6 – Programm Auswahl.java\nimport java.io.*;\nimport java.util.regex.*;\npublic class Auswahl {\n    public static void main(String[] args) throws Exception {\n        BufferedReader br =\n            new BufferedReader(new FileReader(\"Ratten_Liste.txt\"));\n        String ersteZeile = br.readLine();\n        br.close();\n        String nameMutter =\n            ersteZeile.substring(0, ersteZeile.indexOf(\"-\"));\n        String regex = nameMutter + \"-\\\\d{5}\";\n        Pattern p = Pattern.compile(regex);\n        br = new BufferedReader(new FileReader(\"Ratten_Liste.txt\"));\n        String[] vTiere = new String[3];\n        int zaehler = 0;\n        String zeile;\n        while ((zeile = br.readLine()) != null && zaehler \u003C 3) {\n            Matcher m = p.matcher(zeile);\n            if (m.matches()) {\n                vTiere[zaehler] = zeile;\n                zaehler++;\n            }\n        }\n        br.close();\n        for (String s: vTiere) {\n            System.out.println(s);\n        }\n    }\n}\nAufgabe 7 – Eigene Exception\nKlasse ZuWenigRattenException\npublic class ZuWenigRattenException extends RuntimeException {\n    public ZuWenigRattenException(String meldung) {\n        super(meldung);\n    }\n}\nInstanziierung und Werfen\nthrow new ZuWenigRattenException(\n    \"Zu wenig Versuchstiere vorhanden!\");\nBehandlung\ntry {\n    throw new ZuWenigRattenException(\n        \"Zu wenig Versuchstiere vorhanden!\");\n} catch (ZuWenigRattenException e) {\n    System.out.println(e.getMessage());\n}\n\n",[4653,122349,122350,122363,122385,122398,122405,122410,122415,122419,122428,122435,122448,122458,122468,122479,122490,122514,122521,122540,122553,122562,122569,122592,122612,122625,122648,122668,122681,122686,122714,122729,122739,122749,122758,122762,122766,122774,122786,122794,122798,122802,122806,122815,122820,122835,122848,122855,122859,122863,122868,122878,122885,122890,122896,122907,122914,122927,122939],{"__ignoreMap":269},[4173,122351,122352,122354,122356,122359,122361],{"class":4657,"line":4658},[4173,122353,78998],{"class":4784},[4173,122355,6387],{"class":4788},[4173,122357,122358],{"class":4784}," txtName.",[4173,122360,83296],{"class":4661},[4173,122362,65878],{"class":4784},[4173,122364,122365,122367,122369,122371,122373,122375,122377,122379,122381,122383],{"class":4657,"line":270},[4173,122366,6694],{"class":4788},[4173,122368,85142],{"class":4784},[4173,122370,19453],{"class":4788},[4173,122372,85147],{"class":4665},[4173,122374,24074],{"class":4788},[4173,122376,85152],{"class":4784},[4173,122378,86160],{"class":4661},[4173,122380,86157],{"class":4784},[4173,122382,85155],{"class":4661},[4173,122384,85158],{"class":4784},[4173,122386,122387,122390,122392,122394,122396],{"class":4657,"line":1263},[4173,122388,122389],{"class":4784},"    name ",[4173,122391,6387],{"class":4788},[4173,122393,84262],{"class":4784},[4173,122395,84400],{"class":4661},[4173,122397,84074],{"class":4784},[4173,122399,122400,122403],{"class":4657,"line":4770},[4173,122401,122402],{"class":4665},"        null",[4173,122404,66026],{"class":4784},[4173,122406,122407],{"class":4657,"line":4775},[4173,122408,122409],{"class":4669},"        \"Bitte Namen eingeben!\"\n",[4173,122411,122412],{"class":4657,"line":6320},[4173,122413,122414],{"class":4784},"    );\n",[4173,122416,122417],{"class":4657,"line":6325},[4173,122418,7090],{"class":4784},[4173,122420,122421,122424,122426],{"class":4657,"line":6343},[4173,122422,122423],{"class":4784},"txtName.",[4173,122425,81370],{"class":4661},[4173,122427,80524],{"class":4784},[4173,122429,122430,122433],{"class":4657,"line":6348},[4173,122431,122432],{"class":4784},"Danach kann die Ratte normal erzeugt werden",[4173,122434,2815],{"class":4788},[4173,122436,122437,122440,122442,122444,122446],{"class":4657,"line":6457},[4173,122438,122439],{"class":4784},"    Ratte r ",[4173,122441,6387],{"class":4788},[4173,122443,79032],{"class":4788},[4173,122445,121228],{"class":4661},[4173,122447,80524],{"class":4784},[4173,122449,122450,122453,122455],{"class":4657,"line":6462},[4173,122451,122452],{"class":4784},"Aufgabe ",[4173,122454,14278],{"class":4665},[4173,122456,122457],{"class":4784}," – Programm Auswahl.java\n",[4173,122459,122460,122462,122464,122466],{"class":4657,"line":6468},[4173,122461,79019],{"class":4788},[4173,122463,90640],{"class":4784},[4173,122465,6328],{"class":4665},[4173,122467,55559],{"class":4784},[4173,122469,122470,122472,122475,122477],{"class":4657,"line":6473},[4173,122471,79019],{"class":4788},[4173,122473,122474],{"class":4784}," java.util.regex.",[4173,122476,6328],{"class":4665},[4173,122478,55559],{"class":4784},[4173,122480,122481,122483,122485,122488],{"class":4657,"line":6479},[4173,122482,79889],{"class":4788},[4173,122484,80062],{"class":4788},[4173,122486,122487],{"class":4661}," Auswahl",[4173,122489,51614],{"class":4784},[4173,122491,122492,122494,122496,122498,122500,122502,122504,122506,122508,122510,122512],{"class":4657,"line":6503},[4173,122493,100265],{"class":4788},[4173,122495,79892],{"class":4788},[4173,122497,79934],{"class":4788},[4173,122499,79937],{"class":4661},[4173,122501,6390],{"class":4784},[4173,122503,79693],{"class":4788},[4173,122505,80084],{"class":4784},[4173,122507,31283],{"class":7074},[4173,122509,6306],{"class":4784},[4173,122511,86035],{"class":4788},[4173,122513,96264],{"class":4784},[4173,122515,122516,122519],{"class":4657,"line":6516},[4173,122517,122518],{"class":4784},"        BufferedReader br ",[4173,122520,13594],{"class":4788},[4173,122522,122523,122526,122528,122530,122532,122534,122536,122538],{"class":4657,"line":6971},[4173,122524,122525],{"class":4788},"            new",[4173,122527,86071],{"class":4661},[4173,122529,6390],{"class":4784},[4173,122531,81243],{"class":4788},[4173,122533,86078],{"class":4661},[4173,122535,6390],{"class":4784},[4173,122537,122230],{"class":4669},[4173,122539,66047],{"class":4784},[4173,122541,122542,122545,122547,122549,122551],{"class":4657,"line":10649},[4173,122543,122544],{"class":4784},"        String ersteZeile ",[4173,122546,6387],{"class":4788},[4173,122548,95092],{"class":4784},[4173,122550,86101],{"class":4661},[4173,122552,65878],{"class":4784},[4173,122554,122555,122558,122560],{"class":4657,"line":10654},[4173,122556,122557],{"class":4784},"        br.",[4173,122559,94877],{"class":4661},[4173,122561,65878],{"class":4784},[4173,122563,122564,122567],{"class":4657,"line":10659},[4173,122565,122566],{"class":4784},"        String nameMutter ",[4173,122568,13594],{"class":4788},[4173,122570,122571,122574,122576,122578,122580,122583,122585,122587,122590],{"class":4657,"line":10664},[4173,122572,122573],{"class":4784},"            ersteZeile.",[4173,122575,87011],{"class":4661},[4173,122577,6390],{"class":4784},[4173,122579,12749],{"class":4665},[4173,122581,122582],{"class":4784},", ersteZeile.",[4173,122584,88328],{"class":4661},[4173,122586,6390],{"class":4784},[4173,122588,122589],{"class":4669},"\"-\"",[4173,122591,66047],{"class":4784},[4173,122593,122594,122596,122598,122600,122602,122605,122607,122610],{"class":4657,"line":10676},[4173,122595,118184],{"class":4784},[4173,122597,6387],{"class":4788},[4173,122599,121473],{"class":4784},[4173,122601,14419],{"class":4788},[4173,122603,122604],{"class":4669}," \"-",[4173,122606,88532],{"class":4665},[4173,122608,122609],{"class":4669},"d{5}\"",[4173,122611,55559],{"class":4784},[4173,122613,122614,122617,122619,122621,122623],{"class":4657,"line":10681},[4173,122615,122616],{"class":4784},"        Pattern p ",[4173,122618,6387],{"class":4788},[4173,122620,96645],{"class":4784},[4173,122622,96648],{"class":4661},[4173,122624,97643],{"class":4784},[4173,122626,122627,122630,122632,122634,122636,122638,122640,122642,122644,122646],{"class":4657,"line":10702},[4173,122628,122629],{"class":4784},"        br ",[4173,122631,6387],{"class":4788},[4173,122633,79032],{"class":4788},[4173,122635,86071],{"class":4661},[4173,122637,6390],{"class":4784},[4173,122639,81243],{"class":4788},[4173,122641,86078],{"class":4661},[4173,122643,6390],{"class":4784},[4173,122645,122230],{"class":4669},[4173,122647,66047],{"class":4784},[4173,122649,122650,122652,122655,122657,122659,122662,122664,122666],{"class":4657,"line":10707},[4173,122651,104756],{"class":4788},[4173,122653,122654],{"class":4784},"[] vTiere ",[4173,122656,6387],{"class":4788},[4173,122658,79032],{"class":4788},[4173,122660,122661],{"class":4788}," String",[4173,122663,11612],{"class":4784},[4173,122665,14318],{"class":4665},[4173,122667,90755],{"class":4784},[4173,122669,122670,122672,122675,122677,122679],{"class":4657,"line":10712},[4173,122671,104299],{"class":4788},[4173,122673,122674],{"class":4784}," zaehler ",[4173,122676,6387],{"class":4788},[4173,122678,25370],{"class":4665},[4173,122680,55559],{"class":4784},[4173,122682,122683],{"class":4657,"line":10717},[4173,122684,122685],{"class":4784},"        String zeile;\n",[4173,122687,122688,122690,122692,122694,122696,122698,122700,122702,122704,122706,122708,122710,122712],{"class":4657,"line":10727},[4173,122689,108409],{"class":4788},[4173,122691,86093],{"class":4784},[4173,122693,6387],{"class":4788},[4173,122695,95092],{"class":4784},[4173,122697,86101],{"class":4661},[4173,122699,86104],{"class":4784},[4173,122701,19461],{"class":4788},[4173,122703,85147],{"class":4665},[4173,122705,26951],{"class":4788},[4173,122707,122674],{"class":4784},[4173,122709,24345],{"class":4788},[4173,122711,16593],{"class":4665},[4173,122713,56319],{"class":4784},[4173,122715,122716,122719,122721,122724,122726],{"class":4657,"line":10732},[4173,122717,122718],{"class":4784},"            Matcher m ",[4173,122720,6387],{"class":4788},[4173,122722,122723],{"class":4784}," p.",[4173,122725,96732],{"class":4661},[4173,122727,122728],{"class":4784},"(zeile);\n",[4173,122730,122731,122733,122735,122737],{"class":4657,"line":10737},[4173,122732,102179],{"class":4788},[4173,122734,96741],{"class":4784},[4173,122736,88609],{"class":4661},[4173,122738,85158],{"class":4784},[4173,122740,122741,122744,122746],{"class":4657,"line":10742},[4173,122742,122743],{"class":4784},"                vTiere[zaehler] ",[4173,122745,6387],{"class":4788},[4173,122747,122748],{"class":4784}," zeile;\n",[4173,122750,122751,122754,122756],{"class":4657,"line":10752},[4173,122752,122753],{"class":4784},"                zaehler",[4173,122755,10670],{"class":4788},[4173,122757,55559],{"class":4784},[4173,122759,122760],{"class":4657,"line":10757},[4173,122761,101599],{"class":4784},[4173,122763,122764],{"class":4657,"line":10762},[4173,122765,100145],{"class":4784},[4173,122767,122768,122770,122772],{"class":4657,"line":10767},[4173,122769,122557],{"class":4784},[4173,122771,94877],{"class":4661},[4173,122773,65878],{"class":4784},[4173,122775,122776,122778,122781,122783],{"class":4657,"line":10772},[4173,122777,100110],{"class":4788},[4173,122779,122780],{"class":4784}," (String s",[4173,122782,8158],{"class":4788},[4173,122784,122785],{"class":4784}," vTiere) {\n",[4173,122787,122788,122790,122792],{"class":4657,"line":10777},[4173,122789,100121],{"class":4784},[4173,122791,79074],{"class":4661},[4173,122793,91623],{"class":4784},[4173,122795,122796],{"class":4657,"line":10782},[4173,122797,100145],{"class":4784},[4173,122799,122800],{"class":4657,"line":10787},[4173,122801,100385],{"class":4784},[4173,122803,122804],{"class":4657,"line":10800},[4173,122805,7090],{"class":4784},[4173,122807,122808,122810,122812],{"class":4657,"line":10805},[4173,122809,122452],{"class":4784},[4173,122811,14264],{"class":4665},[4173,122813,122814],{"class":4784}," – Eigene Exception\n",[4173,122816,122817],{"class":4657,"line":10818},[4173,122818,122819],{"class":4784},"Klasse ZuWenigRattenException\n",[4173,122821,122822,122824,122826,122829,122831,122833],{"class":4657,"line":10823},[4173,122823,79889],{"class":4788},[4173,122825,80062],{"class":4788},[4173,122827,122828],{"class":4661}," ZuWenigRattenException",[4173,122830,80500],{"class":4788},[4173,122832,106635],{"class":4661},[4173,122834,51614],{"class":4784},[4173,122836,122837,122839,122841,122843,122846],{"class":4657,"line":10836},[4173,122838,100265],{"class":4788},[4173,122840,122828],{"class":4661},[4173,122842,80001],{"class":4784},[4173,122844,122845],{"class":7074},"meldung",[4173,122847,56319],{"class":4784},[4173,122849,122850,122852],{"class":4657,"line":10841},[4173,122851,100854],{"class":4665},[4173,122853,122854],{"class":4784},"(meldung);\n",[4173,122856,122857],{"class":4657,"line":10846},[4173,122858,100385],{"class":4784},[4173,122860,122861],{"class":4657,"line":10851},[4173,122862,7090],{"class":4784},[4173,122864,122865],{"class":4657,"line":10867},[4173,122866,122867],{"class":4784},"Instanziierung und Werfen\n",[4173,122869,122870,122872,122874,122876],{"class":4657,"line":10872},[4173,122871,86171],{"class":4788},[4173,122873,79032],{"class":4788},[4173,122875,122828],{"class":4661},[4173,122877,84074],{"class":4784},[4173,122879,122880,122883],{"class":4657,"line":10877},[4173,122881,122882],{"class":4669},"    \"Zu wenig Versuchstiere vorhanden!\"",[4173,122884,55545],{"class":4784},[4173,122886,122887],{"class":4657,"line":10882},[4173,122888,122889],{"class":4784},"Behandlung\n",[4173,122891,122892,122894],{"class":4657,"line":10890},[4173,122893,85839],{"class":4788},[4173,122895,51614],{"class":4784},[4173,122897,122898,122901,122903,122905],{"class":4657,"line":10895},[4173,122899,122900],{"class":4788},"    throw",[4173,122902,79032],{"class":4788},[4173,122904,122828],{"class":4661},[4173,122906,84074],{"class":4784},[4173,122908,122909,122912],{"class":4657,"line":10904},[4173,122910,122911],{"class":4669},"        \"Zu wenig Versuchstiere vorhanden!\"",[4173,122913,55545],{"class":4784},[4173,122915,122916,122918,122920,122923,122925],{"class":4657,"line":10909},[4173,122917,71897],{"class":4784},[4173,122919,85917],{"class":4788},[4173,122921,122922],{"class":4784}," (ZuWenigRattenException ",[4173,122924,20602],{"class":7074},[4173,122926,56319],{"class":4784},[4173,122928,122929,122931,122933,122935,122937],{"class":4657,"line":10914},[4173,122930,99544],{"class":4784},[4173,122932,79074],{"class":4661},[4173,122934,82249],{"class":4784},[4173,122936,85949],{"class":4661},[4173,122938,81860],{"class":4784},[4173,122940,122941],{"class":4657,"line":10919},[4173,122942,7090],{"class":4784},[414,122944,122945],{},"Inhaltsverzeichnis",[414,122947,122948],{},"Buchseiten 4",[414,122950,122951],{},"BASICS 4",[414,122953,122954],{},"Variables & Data Types 4",[414,122956,122957],{},"Basic Input (Scanner) 4",[414,122959,122960],{},"Basic Output 4",[414,122962,122963],{},"Arithmetic Operations 5",[414,122965,122966],{},"If \u002F Else 5",[414,122968,122969],{},"Switch Case 5",[414,122971,122972],{},"Loops (For \u002FWhile) 5",[414,122974,122975],{},"Arrays 5",[414,122977,122978],{},"Methods 6",[414,122980,122981],{},"Classes & Objects & Main 6",[414,122983,122984],{},"Klassen 6",[414,122986,122987],{},"Einfache Klasse – Person 6",[414,122989,122990],{},"Abstrakte Klasse – Animal 7",[414,122992,122993],{},"Vererbung – Dog 7",[414,122995,122996],{},"Interface – Movable 7",[414,122998,122999],{},"Klasse, die ein Interface implementiert – Car 7",[414,123001,123002],{},"Main-Klasse zum Testen 7",[414,123004,123005],{},"GUI – JavaX.swing 8",[414,123007,123008],{},"Komplettes Beispiel mit allen Layouts + Eventhandling 8",[414,123010,123011],{},"JPanel – JLabel-JTextField 11",[414,123013,123014],{},"JOptionPane 12",[414,123016,123017],{},"\u002F\u002F Einfache Nachricht 12",[414,123019,123020],{},"\u002F\u002F Warnung 12",[414,123022,123023],{},"\u002F\u002F Fehler 12",[414,123025,123026],{},"\u002F\u002F Frage-Dialog 12",[414,123028,123029],{},"\u002F\u002F Bestätigungsdialog (Ja\u002FNein) 12",[414,123031,123032],{},"\u002F\u002F Bestätigungsdialog (Ja\u002FNein\u002FAbbrechen) 12",[414,123034,123035],{},"\u002F\u002F InputDialog – Freitext 12",[414,123037,123038],{},"\u002F\u002F InputDialog – Dropdown Auswahl 13",[414,123040,123041],{},"\u002F\u002F OptionDialog – völlig frei 13",[414,123043,123044],{},"\u002F\u002F Eigenes Icon (optional – funktioniert nur, wenn Bild existiert) 13",[414,123046,123047],{},"\u002F\u002F Nur Information ohne Titel 13",[414,123049,123050],{},"\u002F\u002F Nur OptionDialog ohne Icon \u002F pure Buttons 13",[414,123052,123053],{},"\u002F\u002F Dialog mit Textfeld + Buttons 13",[414,123055,123056],{},"JOptionPane-Beispiel mit Ausgabe 14",[414,123058,123059],{},"FILE IO + Exeptionhandling 16",[414,123061,123062],{},"FILE IO mit exeptionhandling + eigene exeption 16",[414,123064,123065],{},"EXEPTIONS 17",[414,123067,123068],{},"Exeptions nochmal aber alles 17",[414,123070,123071],{},"Alles über Strings Buch s. 197 19",[414,123073,123074],{},"Strings 19",[414,123076,123077],{},"StringBuilder 19",[414,123079,123080],{},"StringBuffer 20",[414,123082,123083],{},"CharSequence 20",[414,123085,123086],{},"StringTokenizer 20",[414,123088,123089],{},"String – Cheat sheet komplett 21",[414,123091,123092],{},"Collections 22",[414,123094,123095],{},"\u002F\u002F HashSet 22",[414,123097,123098],{},"\u002F\u002F TreeSet 22",[414,123100,123101],{},"\u002F\u002F Andere 22",[414,123103,123104],{},"\u002F\u002F EnumSet 22",[414,123106,123107],{},"Generische Datentypen 23",[414,123109,123110],{},"Enum 23",[414,123112,123113],{},"Java Imports 24",[414,123115,123116],{},"Schwimmer GUI übung von Seidel 25",[414,123118,123119],{},"SchwimmerGUI.java 25",[414,123121,123122],{},"Ereignisklassen.java 26",[414,123124,123125],{},"Schwimmer.java 26",[414,123127,123128],{},"Schwimmer GUI LÖSUNG von Seidel 27",[414,123130,123131],{},"SchwimmerGUI.java 27",[414,123133,123134],{},"ZuruecksetzenEreignis.java 28",[414,123136,123137],{},"Pizza-Übung von ITT78 (PRIO, bei bedarf schwimmer anschauen) 29",[414,123139,123140],{},"PizzaTest.java 29",[414,123142,123143],{},"Pizzabestellung.java 29",[414,123145,123146],{},"EndeEreignis.java 32",[414,123148,123149],{},"Laplace\u002FSemaphore 33",[414,123151,123152],{},"Teilnehmer.java 33",[414,123154,123155],{},"LaplaceFile.java 33",[414,123157,123158],{},"LaplaceTest.java 34",[414,123160,123161],{},"LaplaceAnalyzer.java(REGEX) 34",[414,123163,123164],{},"Try-Vergleich Alt\u002FNeu 35",[414,123166,123167],{},"Java-Programm zu REGEX 36",[414,123169,123170],{},"Java REGEX PDF 38",[414,123172,123173],{},"Beispiel Aufgaben REGEX 45",[414,123175,123176],{},"Beispiel Regex 45",[414,123178,123179],{},"Nur Buchstaben (a–z, A–Z) 45",[414,123181,123182],{},"Nur Zahlen 45",[414,123184,123185],{},"Alphanumerisch (Buchstaben + Zahlen) 45",[414,123187,123188],{},"Einfache E-Mail-Prüfung 45",[414,123190,123191],{},"Starkes Passwort 46",[414,123193,123194],{},"Telefonnummer (einfach) 46",[414,123196,123197],{},"URL (vereinfacht) 46",[414,123199,123200],{},"DNA-Sequenz (A, T, C, G, case-insensitive) 46",[414,123202,123203],{},"Wiederholte Zeichen erkennen 46",[414,123205,123206],{},"Leerzeichen trimmen (Anfang & Ende) 46",[414,123208,123209],{},"Wort finden (z. B. „cat“ als ganzes Wort) 46",[414,123211,123212],{},"Datum (Format: DD.MM.YYYY) 46",[414,123214,123215],{},"Java Anwendung allgemein 46",[414,123217,123218],{},"Semaphore_Buch(Seidel) 47",[414,123220,123221],{},"Besucher.java 47",[414,123223,123224],{},"Kondolenzbuch.java 47",[414,123226,123227],{},"RuheSanft.java(Main) 48",[414,123229,123230],{},"Runnable + Thread 48",[414,123232,123233],{},"Runnable 49",[414,123235,123236],{},"Modern mit Lamda ab java 8 49",[414,123238,123239],{},"Prüfung 2023 50",[414,123241,123242],{},"Aufgabe 1 50",[414,123244,123245],{},"Aufgabe 2 50",[414,123247,123248],{},"Aufgabe 3 51",[414,123250,123251],{},"Aufgabe 4 52",[414,123253,123254],{},"Aufgabe 5 52",[414,123256,123257],{},"Aufgabe 6 – Programm Auswahl.java 53",[414,123259,123260],{},"Aufgabe 7 – Eigene Exception 53",[5719,123262,99102],{},{"title":269,"searchDepth":270,"depth":270,"links":123264},[123265,123266,123267,123268,123269,123270,123271,123272,123273,123274,123275,123276,123277,123278,123279,123280,123281,123282,123283,123298,123299,123300,123301,123302,123303,123304,123305,123306,123307,123308,123309,123310,123311,123312,123313,123314,123315,123316,123317,123318,123319,123320,123321,123322,123323,123324,123325,123326,123327,123328,123329,123330,123331,123332,123333,123334,123335,123336,123337,123338,123339,123340,123341,123342,123343,123344],{"id":99400,"depth":270,"text":99401},{"id":99468,"depth":270,"text":99469},{"id":99533,"depth":270,"text":99534},{"id":99571,"depth":270,"text":99574},{"id":19724,"depth":270,"text":99841},{"id":99909,"depth":270,"text":99910},{"id":100012,"depth":270,"text":100013},{"id":100193,"depth":270,"text":100194},{"id":100254,"depth":270,"text":100255},{"id":100339,"depth":270,"text":100340},{"id":100486,"depth":270,"text":100487},{"id":100723,"depth":270,"text":100724},{"id":100817,"depth":270,"text":100818},{"id":100906,"depth":270,"text":100907},{"id":100937,"depth":270,"text":100938},{"id":101030,"depth":270,"text":101031},{"id":80864,"depth":270,"text":80865},{"id":103553,"depth":270,"text":103554},{"id":104053,"depth":270,"text":104054,"children":123284},[123285,123286,123287,123288,123289,123290,123291,123292,123293,123294,123295,123296,123297],{"id":104102,"depth":1263,"text":104103},{"id":104150,"depth":1263,"text":104151},{"id":104196,"depth":1263,"text":104197},{"id":104242,"depth":1263,"text":104243},{"id":104288,"depth":1263,"text":104289},{"id":104355,"depth":1263,"text":104356},{"id":104420,"depth":1263,"text":104421},{"id":104484,"depth":1263,"text":104485},{"id":104588,"depth":1263,"text":104589},{"id":104701,"depth":1263,"text":104702},{"id":104720,"depth":1263,"text":104721},{"id":104745,"depth":1263,"text":104746},{"id":104860,"depth":1263,"text":104861},{"id":104990,"depth":270,"text":104991},{"id":85710,"depth":270,"text":85711},{"id":86373,"depth":270,"text":86374},{"id":107274,"depth":270,"text":107275},{"id":107695,"depth":270,"text":107696},{"id":107932,"depth":270,"text":107933},{"id":108124,"depth":270,"text":108125},{"id":108325,"depth":270,"text":108326},{"id":108451,"depth":270,"text":108452},{"id":110596,"depth":270,"text":110597},{"id":110693,"depth":270,"text":110694},{"id":89566,"depth":270,"text":89567},{"id":110810,"depth":270,"text":110811},{"id":111725,"depth":270,"text":111726},{"id":112468,"depth":270,"text":112469},{"id":112790,"depth":270,"text":112791},{"id":112935,"depth":270,"text":111726},{"id":113715,"depth":270,"text":113716},{"id":113903,"depth":270,"text":113904},{"id":113965,"depth":270,"text":113966},{"id":116066,"depth":270,"text":116067},{"id":95471,"depth":270,"text":95472},{"id":96004,"depth":270,"text":96005},{"id":96205,"depth":270,"text":96206},{"id":96513,"depth":270,"text":96514},{"id":119206,"depth":270,"text":119207},{"id":119223,"depth":270,"text":119224},{"id":119258,"depth":270,"text":119259},{"id":119272,"depth":270,"text":119273},{"id":119329,"depth":270,"text":119330},{"id":119351,"depth":270,"text":119352},{"id":119376,"depth":270,"text":119377},{"id":119400,"depth":270,"text":119401},{"id":119434,"depth":270,"text":119435},{"id":119456,"depth":270,"text":119457},{"id":119479,"depth":270,"text":119480},{"id":119486,"depth":270,"text":119487},{"id":119510,"depth":270,"text":119511},{"id":98346,"depth":270,"text":98347},{"id":98640,"depth":270,"text":98641},{"id":98818,"depth":270,"text":98819},{"id":121017,"depth":270,"text":121018},{"id":121213,"depth":270,"text":121214},{"id":121493,"depth":270,"text":121494},{"id":121620,"depth":270,"text":121621},{"id":122036,"depth":270,"text":122037},{"id":122343,"depth":270,"text":122344},{},{"title":12699},"\u002Ffaecher\u002Fprg\u002Fap-cs","\u002Fdownloads\u002FPRG\u002FPRG_CS_AP.pdf",{"title":12699,"description":269},"faecher\u002Fprg\u002Fap-cs","pHsXbCSKaOSw9XMVU9N6ATDRZlCvC9YHeItPz1viezg",{"id":123353,"title":6,"body":123354,"class":282,"description":269,"extension":283,"meta":124043,"navigation":124044,"path":124045,"pdfDownload":124046,"scope":289,"scopeName":290,"seo":124047,"stem":124048,"subject":124049,"subjectName":124050,"type":295,"typeName":296,"year":297,"__hash__":124051},"faecher\u002Ffaecher\u002Fswt\u002F5-6-zsmf-sa1.md",{"type":8,"value":123355,"toc":124020},[123356,123360,123368,123370,123381,123384,123397,123408,123412,123417,123422,123428,123434,123439,123444,123448,123481,123483,123488,123513,123518,123522,123526,123530,123535,123568,123572,123577,123597,123601,123606,123617,123621,123626,123655,123659,123664,123700,123704,123709,123745,123749,123753,123781,123785,123799,123803,123807,123812,123843,123847,123851,123855,123859,123862,123902,123906,123910,123924,123928,123948,123953,123983,123987,123992,123996,124012,124016],[11,123357,123359],{"id":123358},"user-stories","User-Stories",[21,123361,123362,123365],{},[24,123363,123364],{},"Nutzergeschichten",[24,123366,123367],{},"Grundlagen für SCRUM-Projekt",[16,123369,76403],{"id":76402},[21,123371,123372,123375,123378],{},[24,123373,123374],{},"Aus Sicht und in der Sprache des Kunden formuliert",[24,123376,123377],{},"Beschreibt was Software für den Kunden machen muss",[24,123379,123380],{},"Genau eine Sache beschreiben",[16,123382,17487],{"id":123383},"muster",[414,123385,123386,123387,123390,123391],{},"Als ",[406,123388,123389],{},"\u003CBenutzerrolle>"," will ich ",[406,123392,123393,123394],{},"\u003Cdas Ziel>",[4173,123395,123396],{},", so dass \u003CGrund für das Ziel>",[21,123398,123399,123402,123405],{},[24,123400,123401],{},"Benutzerrolle kennzeichnet Urheber",[24,123403,123404],{},"Ziel entspricht der Anforderung",[24,123406,123407],{},"Optionaler Grund ist die Motivation",[16,123409,123411],{"id":123410},"invest-merkmale","INVEST-Merkmale",[414,123413,123414,123416],{},[42,123415,67071],{}," ndependant: unabhängg",[414,123418,123419,123421],{},[42,123420,20547],{}," egotiable: verhandelbar",[414,123423,123424,123427],{},[42,123425,123426],{},"V"," aluable: wertvoll",[414,123429,123430,123433],{},[42,123431,123432],{},"E"," stimable: schätzbar",[414,123435,123436,123438],{},[42,123437,15000],{}," mall: klein",[414,123440,123441,123443],{},[42,123442,15453],{}," estable: testbar",[11,123445,123447],{"id":123446},"planning-poker-scrum-poker","Planning Poker (SCRUM Poker)",[21,123449,123450,123453,123456,123469,123472,123475,123478],{},[24,123451,123452],{},"Agiles Schätzverfahren",[24,123454,123455],{},"Spielerisch Aufwände für Elemente im Backlog (Tasks, Epics, User Stories) schätzen",[24,123457,123458,2815,123461],{},[42,123459,123460],{},"Story-Points",[21,123462,123463,123466],{},[24,123464,123465],{},"Ergebnis der Schätzung -> Aufwand des Elements",[24,123467,123468],{},"Relative Metrik",[24,123470,123471],{},"Basis für eine Runde: Eine User-Story",[24,123473,123474],{},"Unterschiedliches Know-How -> gleicht fehlerhafte Bewertungen aus",[24,123476,123477],{},"Durch Diskussionen über Aufwand wird ein einheitliches Verständnis hergestellt",[24,123479,123480],{},"Durch Einigung wird eine geteilte Verantwortung hergestellt",[16,123482,1681],{"id":1680},[21,123484,123485],{},[24,123486,123487],{},"Idealerweise nicht mehr als 10 Teilnehmer",[318,123489,123490,123493,123496,123499,123502],{},[24,123491,123492],{},"Jeder Mitspieler hat 13 Karten (0; 0,5; 1; 2; 3; 5; 8; 13; 20; 40; 100; ?; Pause)",[24,123494,123495],{},"Scrum-Master liest Backlog-Item vor",[24,123497,123498],{},"Scrum-Master fordert zum Schätzen auf",[24,123500,123501],{},"Jeder Teilnehmer legt eine seiner Karten verdeckt ab",[24,123503,123504,123505],{},"Nach einem Zeichen des Scrum-Masters werden alle abgelegten Karten umgedreht\n",[318,123506,123507,123510],{},[24,123508,123509],{},"Bei gleichen Ergebnissen steht das Ergebnis fest",[24,123511,123512],{},"Bei starken Abweichungen begründen die Spieler mit dem höchsten und niedrigsten Schätzwert (Redeverbot für alle anderen)",[21,123514,123515],{},[24,123516,123517],{},"Schätzung wird solange fortgeführt bis ein Konsens entstanden ist (Normal: 3 Runden)",[11,123519,123521],{"id":123520},"vorgehensmodelle","Vorgehensmodelle",[16,123523,123525],{"id":123524},"klassische-modelle","Klassische Modelle",[470,123527,123529],{"id":123528},"wasserfallmodell","Wasserfallmodell",[414,123531,123532],{},[1504,123533],{"alt":269,"src":123534},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_1.png",[21,123536,123537,123540,123543,123546,123549,123552],{},[24,123538,123539],{},"Aufeinanderfolgende Stufen",[24,123541,123542],{},"Stark dokumentiert",[24,123544,123545],{},"Jede Stufe basiert auf Ergebnissen von der vorherigen Stufe",[24,123547,123548],{},"Fehler fallen erst am Ende des Projekts auf",[24,123550,123551],{},"Test erst nach Ende der Entwicklung",[24,123553,123554,2815,123557],{},[42,123555,123556],{},"Einsatz",[21,123558,123559,123562,123565],{},[24,123560,123561],{},"Kleine oder mittelgroße Softwareprojekte",[24,123563,123564],{},"Projekte bei denen eine starke Kontrolle notwendig ist",[24,123566,123567],{},"Projekte bei denen ein bekanntes Tech-Stack und Tools zum Einsatz kommen",[470,123569,123571],{"id":123570},"v-modell","V-Modell",[414,123573,123574],{},[1504,123575],{"alt":269,"src":123576},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_2.png",[21,123578,123579,123582,123585,123588],{},[24,123580,123581],{},"Linearer Aufbau: Alle Phasen nacheinander",[24,123583,123584],{},"Jede Stufe hat eigene Tests",[24,123586,123587],{},"Alle Anforderungen zu Beginn erfasst -> Keine Änderung möglich",[24,123589,123590,2815,123592],{},[42,123591,123556],{},[21,123593,123594],{},[24,123595,123596],{},"Projekte bei denen Störungen und Ausfallzeiten inakzeptabel sind (Medizin)",[470,123598,123600],{"id":123599},"inkrementelles-modell","Inkrementelles Modell",[414,123602,123603],{},[1504,123604],{"alt":269,"src":123605},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_3.png",[21,123607,123608,123611,123614],{},[24,123609,123610],{},"Entwicklungsmodell in mehreren Iterationen -> Modularer Ansatz",[24,123612,123613],{},"Zuvor hinzugefügte Teile bleiben unverändert",[24,123615,123616],{},"Entwicklung kann entweder sequentiell(langsamer) oder parallel (schneller) verlaufen",[470,123618,123620],{"id":123619},"iteratives-modell","Iteratives Modell",[414,123622,123623],{},[1504,123624],{"alt":269,"src":123625},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_4.png",[21,123627,123628,123631,123634,123637,123640,123643,123646],{},[24,123629,123630],{},"Durchläuft einzelne Phasen mehrmals",[24,123632,123633],{},"Jedes Mal wird die Software weiterentwickelt",[24,123635,123636],{},"Keine Notwendigkeit der vollständigen Spezifikation zu Beginn",[24,123638,123639],{},"Nur die wichtigsten Anforderungen zu Beginn definiert",[24,123641,123642],{},"Flexibel",[24,123644,123645],{},"Basiert auf Kundenfeedback",[24,123647,123648,2815,123650],{},[42,123649,123556],{},[21,123651,123652],{},[24,123653,123654],{},"Große Projekte",[470,123656,123658],{"id":123657},"spiralmodell","Spiralmodell",[414,123660,123661],{},[1504,123662],{"alt":269,"src":123663},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_5.png",[21,123665,123666,123669,123685,123688,123691],{},[24,123667,123668],{},"Fokussiert auf gründliche Risikobewertung",[24,123670,123671,123672],{},"Iteration von 6 Monaten in je 4 Teilen:\n",[21,123673,123674,123676,123679,123682],{},[24,123675,76104],{},[24,123677,123678],{},"Risikoanalyse",[24,123680,123681],{},"Erstellung von Prototypen",[24,123683,123684],{},"Bewertung des zuvor ausgelieferten Teils",[24,123686,123687],{},"Kunden werden schon in frühen Phasen eingebunden",[24,123689,123690],{},"Während der Entwicklung sind Ergänzungen inakzeptabel",[24,123692,123693,2815,123695],{},[42,123694,123556],{},[21,123696,123697],{},[24,123698,123699],{},"Projekte mit anspruchsvollen Anforderungen",[470,123701,123703],{"id":123702},"rup-rational-unified-process","RUP: Rational Unified Process",[414,123705,123706],{},[1504,123707],{"alt":269,"src":123708},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_6.png",[21,123710,123711,123714,123730,123733,123736],{},[24,123712,123713],{},"Kombination aus linear und iterativ",[24,123715,123716,123717],{},"Vier Phasen:\n",[21,123718,123719,123722,123725,123727],{},[24,123720,123721],{},"Konzeption",[24,123723,123724],{},"Entwurf",[24,123726,64005],{},[24,123728,123729],{},"Übergabe",[24,123731,123732],{},"Jede Phase außer Konzeption in mehreren Iterationen",[24,123734,123735],{},"Aktivitäten werden parallel über die Phasen durchgeführt",[24,123737,123738,2815,123740],{},[42,123739,123556],{},[21,123741,123742],{},[24,123743,123744],{},"Große und risikoreiche Projekte",[16,123746,123748],{"id":123747},"agile-modelle","Agile Modelle",[470,123750,123752],{"id":123751},"agile-grundbedingungen","Agile Grundbedingungen",[21,123754,123755,123758,123761,123764,123775,123778],{},[24,123756,123757],{},"Iterative Entwicklung",[24,123759,123760],{},"Intensive Kommunikation",[24,123762,123763],{},"Frühzeitiges Kundenfeedback",[24,123765,123766,123767],{},"Jede Iteration (mehrere Wochen)\n",[21,123768,123769,123772],{},[24,123770,123771],{},"Vollständige funktionierende Softwareversion",[24,123773,123774],{},"Schnelle Entwicklung von Zwischenprodukten",[24,123776,123777],{},"Weniger Wert auf Dokumentation",[24,123779,123780],{},"Mehr Aufmerksamkeit auf Testaktivitäten",[470,123782,123784],{"id":123783},"agiles-manifest","Agiles Manifest",[21,123786,123787,123790,123793,123796],{},[24,123788,123789],{},"Enge Zusammenarbeit im Team und mit Kunden",[24,123791,123792],{},"Kundenbedürfnisse im Mittelpunkt",[24,123794,123795],{},"Von Iteration zu Iteration Qualität verbessern",[24,123797,123798],{},"Effektiver Entwicklungsprozess",[470,123800,123802],{"id":123801},"modelle","Modelle",[475,123804,123806],{"id":123805},"xp-extreme-programming","XP: Extreme Programming",[414,123808,123809],{},[1504,123810],{"alt":269,"src":123811},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa1_img_7.png",[21,123813,123814,123817,123820,123823],{},[24,123815,123816],{},"Kurze Iterationszyklen (1-2 Wochen) und Kundenbindung im Mittelpunkt",[24,123818,123819],{},"Änderungen in den Entwicklungsprozess integrieren",[24,123821,123822],{},"Flexibilität erschwert die Auslieferung",[24,123824,123825,123826],{},"Bewährte Praktiken für XP\n",[21,123827,123828,123831,123834,123837,123840],{},[24,123829,123830],{},"Programmieren in Paaren",[24,123832,123833],{},"Testgetriebene Entwicklung",[24,123835,123836],{},"Testautomation",[24,123838,123839],{},"Continuous Integration",[24,123841,123842],{},"Kleine Releases",[475,123844,123846],{"id":123845},"scrum","SCRUM",[21,123848,123849],{},[24,123850,4185],{},[11,123852,123854],{"id":123853},"best-practice","Best Practice",[16,123856,123858],{"id":123857},"verständlichen-code-schreiben","Verständlichen Code schreiben",[470,123860,3533],{"id":123861},"gründe",[21,123863,123864,123870,123876,123882,123887,123892,123897],{},[24,123865,123866,123869],{},[42,123867,123868],{},"Teamwork",", Wartung",[24,123871,123872,123875],{},[42,123873,123874],{},"Fehlerrate",": Nachvollziehen was passiert",[24,123877,123878,123881],{},[42,123879,123880],{},"Debugging",": Leichter verstehen",[24,123883,123884],{},[42,123885,123886],{},"Änderbarkeit",[24,123888,123889],{},[42,123890,123891],{},"Wiederverwendbarkeit",[24,123893,123894],{},[42,123895,123896],{},"Produktqualität",[24,123898,123899],{},[42,123900,123901],{},"Bessere Entwicklungszeit",[470,123903,123905],{"id":123904},"lösungen","Lösungen",[475,123907,123909],{"id":123908},"entwicklungsrichtlinien","Entwicklungsrichtlinien",[21,123911,123912,123915,123918,123921],{},[24,123913,123914],{},"Auf Ebene der Modellierung (Architekturentscheidungen)",[24,123916,123917],{},"Gestaltungsrichtlinien für graphische Oberflächen",[24,123919,123920],{},"Auf Prozessebene (Pull Requests, Conventional Commits)",[24,123922,123923],{},"Können teilweise automatisch erzwungen werden (Linting)",[475,123925,123927],{"id":123926},"namenskonventionen","Namenskonventionen",[21,123929,123930,123933,123936,123939,123942,123945],{},[24,123931,123932],{},"So spezifisch wie möglich",[24,123934,123935],{},"Mehrdeutigkeit vermeiden",[24,123937,123938],{},"Erhöhte Lesbarkeit z.B. CamelCase",[24,123940,123941],{},"Direkte Unterscheidung von Klassen, Methoden, Variablen, Konstanten…",[24,123943,123944],{},"Konventionen abhängig vom Ökosystem",[24,123946,123947],{},"An etablierten Bibliotheken orientieren",[123949,123950,123952],"h5",{"id":123951},"beispiel-java","Beispiel JAVA",[21,123954,123955,123969],{},[24,123956,123957,123958],{},"Klassennamen\n",[21,123959,123960,123963,123966],{},[24,123961,123962],{},"Einfache, beschreibende Namen",[24,123964,123965],{},"Ganze Wörter",[24,123967,123968],{},"Erster Buchstabe groß",[24,123970,123971,123972],{},"Methodennamen\n",[21,123973,123974,123977,123980],{},[24,123975,123976],{},"Verb oder Verbalphrase in „camelCase“",[24,123978,123979],{},"Schwache Verben vermeiden",[24,123981,123982],{},"Prädikate mit „is“ beginnen (isEmtpy())",[475,123984,123986],{"id":123985},"magische-zahlen","Magische Zahlen",[21,123988,123989],{},[24,123990,123991],{},"Konstante Zahlenwerte im Code durch Variablen ersetzen",[475,123993,123995],{"id":123994},"selbstdokumentierender-code","Selbstdokumentierender Code",[21,123997,123998,124001],{},[24,123999,124000],{},"Guter Code benötigt wenig oder keine Kommentare",[24,124002,124003,124004],{},"Dokumentation durch\n",[21,124005,124006,124009],{},[24,124007,124008],{},"Gute Variablen- & Methodennamen",[24,124010,124011],{},"Geringe Komplexität",[11,124013,124015],{"id":124014},"uml","UML",[21,124017,124018],{},[24,124019,4185],{},{"title":269,"searchDepth":270,"depth":270,"links":124021},[124022,124023,124024,124025,124026,124034,124039],{"id":76402,"depth":270,"text":76403},{"id":123383,"depth":270,"text":17487},{"id":123410,"depth":270,"text":123411},{"id":1680,"depth":270,"text":1681},{"id":123524,"depth":270,"text":123525,"children":124027},[124028,124029,124030,124031,124032,124033],{"id":123528,"depth":1263,"text":123529},{"id":123570,"depth":1263,"text":123571},{"id":123599,"depth":1263,"text":123600},{"id":123619,"depth":1263,"text":123620},{"id":123657,"depth":1263,"text":123658},{"id":123702,"depth":1263,"text":123703},{"id":123747,"depth":270,"text":123748,"children":124035},[124036,124037,124038],{"id":123751,"depth":1263,"text":123752},{"id":123783,"depth":1263,"text":123784},{"id":123801,"depth":1263,"text":123802},{"id":123857,"depth":270,"text":123858,"children":124040},[124041,124042],{"id":123861,"depth":1263,"text":3533},{"id":123904,"depth":1263,"text":123905},{},{"title":286},"\u002Ffaecher\u002Fswt\u002F5-6-zsmf-sa1","\u002Fdownloads\u002FSWT\u002FSWT_5-6_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fswt\u002F5-6-zsmf-sa1","SWT","Softwaretechnik","JJMrxyukdrsQ5TtTNxJqUygpMgJyKm4i-vbm75DDUGs",{"id":124053,"title":301,"body":124054,"class":282,"description":124415,"extension":283,"meta":124416,"navigation":124417,"path":124418,"pdfDownload":124419,"scope":1288,"scopeName":1289,"seo":124420,"stem":124421,"subject":124049,"subjectName":124050,"type":295,"typeName":296,"year":297,"__hash__":124422},"faecher\u002Ffaecher\u002Fswt\u002F5-6-zsmf-sa2.md",{"type":8,"value":124055,"toc":124403},[124056,124060,124067,124084,124087,124091,124096,124122,124124,124129,124161,124165,124169,124174,124184,124187,124192,124203,124207,124212,124217,124231,124235,124240,124245,124258,124263,124268,124272,124336,124340,124343,124357,124361],[11,124057,124059],{"id":124058},"git","GIT",[414,124061,124062,124063,124066],{},"Git ist eine ",[42,124064,124065],{},"Versionsverwaltungssoftware",". Damit werden folgende Aspekte bei der Software-Entwicklung verwaltet:",[21,124068,124069,124072,124075,124078,124081],{},[24,124070,124071],{},"Verwaltung von Dateien",[24,124073,124074],{},"Änderungen von Dateien",[24,124076,124077],{},"Zugriffskontrolle",[24,124079,124080],{},"Parallele Entwicklung",[24,124082,124083],{},"Wiederherstellung früherer Versionen",[414,124085,124086],{},"Jeder Commit hat eine einheitliche Kennung, die aus einem Hash-Wert besteht, der durch den Inhalt und die Metadaten des Commits generiert wird.",[16,124088,124090],{"id":124089},"bereiche","Bereiche",[414,124092,124093],{},[406,124094,124095],{},"Seite 43, 99",[21,124097,124098,124104,124110,124116],{},[24,124099,124100,124103],{},[42,124101,124102],{},"Working-Directory",": Ordner, in dem die Dateien enthalten sind, die bearbeitet werden",[24,124105,124106,124109],{},[42,124107,124108],{},"Staging-Area",": Bereich im der nächste Commit vorbereitet wird",[24,124111,124112,124115],{},[42,124113,124114],{},"Local Repository",": Lokale Version des Remote-Repositories",[24,124117,124118,124121],{},[42,124119,124120],{},"Remote Repository (Origin):"," Ort an dem alle Commits und die entsprechende Historie gespeichert wird",[16,124123,51202],{"id":51201},[414,124125,124126],{},[406,124127,124128],{},"Seite 111",[21,124130,124131,124137,124143,124149,124155],{},[24,124132,124133,124136],{},[42,124134,124135],{},"Checkout",": Wechselt zu einem Branch oder einer früheren Version einer Datei, um Änderungen daran vorzunehmen",[24,124138,124139,124142],{},[42,124140,124141],{},"Commit",": Erstellt eine neue Revision mit den aktuellen Änderungen",[24,124144,124145,124148],{},[42,124146,124147],{},"Revert",": Stellt eine frühere Version wieder her",[24,124150,124151,124154],{},[42,124152,124153],{},"Pull",": Holt den aktuellen Stand eines Repositories vom Origin",[24,124156,124157,124160],{},[42,124158,124159],{},"Push",": Bringt den lokalen Stand des Repositories zum Origin (Erstellt standardmäßig keine neuen Branches am Origin, die es lokal gibt)",[16,124162,124164],{"id":124163},"branches-vs-tags","Branches vs. Tags",[470,124166,124168],{"id":124167},"branch","Branch",[414,124170,124171],{},[406,124172,124173],{},"Seite 66\u002F67, 103",[21,124175,124176,124178,124181],{},[24,124177,124080],{},[24,124179,124180],{},"Ideen ausprobieren, ohne den Main-Branch zu beeinflussen",[24,124182,124183],{},"Ein Pointer auf den letzten Commit einer Commit-Kette",[470,124185,124186],{"id":29165},"Tag",[414,124188,124189],{},[406,124190,124191],{},"Seite 116",[21,124193,124194,124197,124200],{},[24,124195,124196],{},"Pointer auf einen einzelnen Zustand, der mit einem Namen versehen wird",[24,124198,124199],{},"Zustand ist über den Namen abrufbar",[24,124201,124202],{},"z.B. Release-Version „v10.2.5”",[16,124204,124206],{"id":124205},"merge","Merge",[414,124208,124209],{},[406,124210,124211],{},"Seite 76, 80, 84",[414,124213,124214],{},[1504,124215],{"alt":269,"src":124216},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa2_img_1.png",[21,124218,124219,124222,124225,124228],{},[24,124220,124221],{},"Zusammenführen von zwei Branches unter Behandlung potenzieller Dateikonflikte",[24,124223,124224],{},"Macht immer einen Commit zum Abschluss",[24,124226,124227],{},"Um „feat-1“ in „main“zu mergen muss „main“ der aktuelle Branch sein (Checkout main)",[24,124229,124230],{},"Konflikt tritt auf, wenn in der gleichen Datei an der gleichen Stelle in den betroffenen Branches unterschiedliche Informationen sind",[16,124232,124234],{"id":124233},"rebase","Rebase",[414,124236,124237],{},[406,124238,124239],{},"Seite 87, 94",[414,124241,124242],{},[1504,124243],{"alt":269,"src":124244},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa2_img_2.png",[21,124246,124247,124250],{},[24,124248,124249],{},"Hängt eine Reihe von Commits einfach an einen anderen Branch an",[24,124251,124252,124253],{},"Z.B., um einen Feature-Branch Up-To-Date zu halten zum Main-Branch\n",[21,124254,124255],{},[24,124256,124257],{},"Genauer: Der Main Branch hat sich weiterentwickelt während der Feature-Branch entwickelt wurde. Um die Änderungen aus dem Main-Branch im Feature-Branch zu haben kann die ursprüngliche Abzweigung vom Main-Branch auf den aktuell letzten Commit des Main Branch gesetzt werden. Der Feature-Branch baut dann auf den aktuellen Stand des Main-Branches auf. Dabei kann es zu Konflikten kommen, wenn in beiden Branches die gleichen Stellen unterschiedlich bearbeitet wurden.",[414,124259,124260],{},[1504,124261],{"alt":269,"src":124262},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa2_img_3.png",[414,124264,124265],{},[1504,124266],{"alt":269,"src":124267},"\u002Fdownloads\u002FSWT\u002Fimages\u002F5-6-zsmf-sa2_img_4.png",[16,124269,124271],{"id":124270},"merge-vs-rebase","Merge vs. Rebase",[765,124273,124274,124291],{},[768,124275,124276],{},[771,124277,124278,124283,124287],{},[774,124279,124280],{},[42,124281,124282],{},"Merkmal",[774,124284,124285],{},[42,124286,124206],{},[774,124288,124289],{},[42,124290,124234],{},[787,124292,124293,124304,124315,124326],{},[771,124294,124295,124298,124301],{},[792,124296,124297],{},"Historie",[792,124299,124300],{},"Beibehaltung mit Merge-Commit",[792,124302,124303],{},"Umschreiben, lineare Historie",[771,124305,124306,124309,124312],{},[792,124307,124308],{},"Konflikt",[792,124310,124311],{},"Kann bei Merge oder vorher auftreten",[792,124313,124314],{},"Bei jedem Commit möglich",[771,124316,124317,124320,124323],{},[792,124318,124319],{},"Lesbarkeit",[792,124321,124322],{},"Zeigt parallele Arbeit gut",[792,124324,124325],{},"Ist sauberer und linear",[771,124327,124328,124330,124333],{},[792,124329,854],{},[792,124331,124332],{},"Zusammenarbeit, Dokumentation",[792,124334,124335],{},"Aufräumen vor Push\u002FPull Request",[11,124337,124339],{"id":124338},"issues","Issues",[414,124341,124342],{},"Issues sind vielseitig und können aus folgenden Aspekten entstehen:",[21,124344,124345,124348,124351,124354],{},[24,124346,124347],{},"Problem \u002F Bug",[24,124349,124350],{},"Feature-Request",[24,124352,124353],{},"Verbesserung",[24,124355,124356],{},"ToDos",[16,124358,124360],{"id":124359},"bestandteile","Bestandteile",[21,124362,124363,124369,124374,124380,124386,124392,124397],{},[24,124364,124365,124368],{},[42,124366,124367],{},"Titel",": Knappe Beschreibung des Anliegen",[24,124370,124371,124373],{},[42,124372,5800],{},": Ausführliche Erklärung für das Issue",[24,124375,124376,124379],{},[42,124377,124378],{},"Labels",": Zur Organisation, Bewertung und Eingliederung von Issues (Bug, Wont Fix, Enhancement, Good first issue)",[24,124381,124382,124385],{},[42,124383,124384],{},"Meilensteine",": Assoziation von Issues mit anderen Themen des Projekts (Release, Deadline)",[24,124387,124388,124391],{},[42,124389,124390],{},"Assignee",": Verwantwortliche Person(en) zur Bearbeitung des Issues",[24,124393,124394,124396],{},[42,124395,6057],{},": Diskussion zum Issue",[24,124398,124399,124402],{},[42,124400,124401],{},"Zustand",": Offen\u002FGeschlossen",{"title":269,"searchDepth":270,"depth":270,"links":124404},[124405,124406,124407,124411,124412,124413,124414],{"id":124089,"depth":270,"text":124090},{"id":51201,"depth":270,"text":51202},{"id":124163,"depth":270,"text":124164,"children":124408},[124409,124410],{"id":124167,"depth":1263,"text":124168},{"id":29165,"depth":1263,"text":124186},{"id":124205,"depth":270,"text":124206},{"id":124233,"depth":270,"text":124234},{"id":124270,"depth":270,"text":124271},{"id":124359,"depth":270,"text":124360},"Git ist eine Versionsverwaltungssoftware. Damit werden folgende Aspekte bei der Software-Entwicklung verwaltet:",{},{"title":1285},"\u002Ffaecher\u002Fswt\u002F5-6-zsmf-sa2","\u002Fdownloads\u002FSWT\u002FSWT_5-6_ZSMF_SA2.pdf",{"title":301,"description":124415},"faecher\u002Fswt\u002F5-6-zsmf-sa2","vEHawNSuCdBAP3D0zZ9UOhoC0fRThnwr_YSa7BwABkg",{"id":124424,"title":5774,"body":124425,"class":2421,"description":269,"extension":283,"meta":124434,"navigation":124435,"path":124437,"pdfDownload":124438,"scope":1288,"scopeName":1289,"seo":124439,"stem":124440,"subject":124441,"subjectName":124442,"type":12231,"typeName":12232,"year":2431,"__hash__":124443},"faecher\u002Ffaecher\u002Ftin\u002F3-4-cs-sa2.md",{"type":8,"value":124426,"toc":124432},[124427],[414,124428,124429],{},[1504,124430],{"alt":55309,"src":124431},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-cs-sa2_page_1.png",{"title":269,"searchDepth":270,"depth":270,"links":124433},[],{},{"title":124436},"Cheat-Sheet – Schulaufgabe 2 (2023\u002F2024)","\u002Ffaecher\u002Ftin\u002F3-4-cs-sa2","\u002Fdownloads\u002FTIN\u002FTIN_3-4_CS_SA2.pdf",{"title":5774,"description":269},"faecher\u002Ftin\u002F3-4-cs-sa2","TIN","Technische Informatik","xjHrEqj6zHnrbV3XReViirp6zeFrWCmehn5-AZ_3qXE",{"id":124445,"title":124446,"body":124447,"class":2421,"description":269,"extension":283,"meta":124456,"navigation":124457,"path":124459,"pdfDownload":124460,"scope":1288,"scopeName":1289,"seo":124461,"stem":124462,"subject":124441,"subjectName":124442,"type":12231,"typeName":124463,"year":2431,"__hash__":124464},"faecher\u002Ffaecher\u002Ftin\u002F3-4-formelsammlung-sa2.md","Formelsammlung – Schulaufgabe 2",{"type":8,"value":124448,"toc":124454},[124449],[414,124450,124451],{},[1504,124452],{"alt":55309,"src":124453},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-formelsammlung-sa2_page_1.png",{"title":269,"searchDepth":270,"depth":270,"links":124455},[],{},{"title":124458},"Formelsammlung – Schulaufgabe 2 (2023\u002F2024)","\u002Ffaecher\u002Ftin\u002F3-4-formelsammlung-sa2","\u002Fdownloads\u002FTIN\u002FFormelsammlung-SA2.pdf",{"title":124446,"description":269},"faecher\u002Ftin\u002F3-4-formelsammlung-sa2","Formelsammlung","ZqGKSldClkXqsqkFAdnGEs77que9pRnCTHjqP5aRu1Y",{"id":124466,"title":6,"body":124467,"class":2421,"description":125933,"extension":283,"meta":125934,"navigation":125935,"path":125936,"pdfDownload":125937,"scope":289,"scopeName":290,"seo":125938,"stem":125939,"subject":124441,"subjectName":124442,"type":295,"typeName":296,"year":2431,"__hash__":125940},"faecher\u002Ffaecher\u002Ftin\u002F3-4-zsmf-sa1.md",{"type":8,"value":124468,"toc":125888},[124469,124473,124479,124483,124499,124503,124507,124515,124517,124520,124524,124527,124549,124551,124554,124578,124584,124588,124592,124597,124600,124603,124608,124612,124625,124628,124631,124636,124639,124643,124657,124660,124664,124669,124674,124724,124727,124731,124734,124742,124746,124753,124756,124759,124763,124767,124769,124782,124784,124787,124801,124807,124811,124822,124826,124829,124889,124892,124895,124898,124904,124907,124910,124914,124917,124920,124925,124929,124955,124959,125024,125028,125063,125067,125075,125079,125090,125093,125098,125102,125110,125114,125131,125134,125139,125143,125151,125170,125175,125189,125193,125198,125202,125207,125211,125216,125223,125227,125254,125256,125281,125283,125287,125295,125300,125304,125315,125319,125323,125354,125358,125371,125374,125377,125380,125384,125395,125398,125401,125409,125430,125435,125437,125447,125451,125479,125483,125494,125497,125507,125511,125519,125522,125524,125530,125546,125551,125555,125559,125594,125599,125601,125615,125617,125631,125635,125640,125644,125683,125685,125698,125700,125714,125718,125721,125773,125776,125779,125813,125816,125846,125849,125852],[11,124470,124472],{"id":124471},"zahlensysteme","Zahlensysteme",[414,124474,124475,124478],{},[42,124476,124477],{},"Stellenwertsystem",": numerisches System, bei dem der Wert einer Ziffer durch ihre Position und die Basis des Systems bestimmt wird",[16,124480,124482],{"id":124481},"binäres-zahlensystem","Binäres Zahlensystem",[21,124484,124485],{},[24,124486,124487,124490,124491],{},[42,124488,124489],{},"Basis",": 2\n",[21,124492,124493,124496],{},[24,124494,124495],{},"1 Bit: 2 Zustände (0 & 1)",[24,124497,124498],{},"8 Bit nennt man Oktett oder Byte",[470,124500,124502],{"id":124501},"umrechnung","Umrechnung",[475,124504,124506],{"id":124505},"binär-dezimal","Binär -> Dezimal",[318,124508,124509,124512],{},[24,124510,124511],{},"Wert einer Stelle berechnen: Binärziffer * 2 Position der Binärziffer - 1",[24,124513,124514],{},"Werte addieren",[123949,124516,763],{"id":762},[414,124518,124519],{},"1101 -> (1 * 23) + (1 * 22) + (0 * 21) + (1 * 20) = 13",[475,124521,124523],{"id":124522},"dezimal-binär","Dezimal -> Binär",[414,124525,124526],{},"Division mit ganzen Zahlen",[318,124528,124529,124532,124543,124546],{},[24,124530,124531],{},"Division des Dezimalwertes durch 2",[24,124533,124534,124535],{},"Rest aufschreiben\n",[318,124536,124537,124540],{},[24,124538,124539],{},"Geht auf -> Rest: 0",[24,124541,124542],{},"Geht nicht auf -> Rest: 1",[24,124544,124545],{},"Wenn das Ergebnis nicht 0 ist, wieder bei 1. mit dem Ergebnis starten",[24,124547,124548],{},"Die Reste von unten nach oben ergeben die Binärzahl",[123949,124550,763],{"id":65933},[414,124552,124553],{},"Dezimalzahl: 13",[318,124555,124556,124562,124568,124573],{},[24,124557,124558,124559],{},"13 \u002F 2 = 6 ",[42,124560,124561],{},"R: 1",[24,124563,124564,124565],{},"6 \u002F 2 = 3 ",[42,124566,124567],{},"R: 0",[24,124569,124570,124571],{},"3 \u002F 2 = 1 ",[42,124572,124561],{},[24,124574,124575,124576],{},"1 \u002F 2 = 0 ",[42,124577,124561],{},[414,124579,124580,124581],{},"13 -> ",[42,124582,124583],{},"1101",[470,124585,124587],{"id":124586},"rechnungen","Rechnungen",[475,124589,124591],{"id":124590},"addition","Addition",[21,124593,124594],{},[24,124595,124596],{},"Identisch zur schriftlichen Addition im Dezimalsystem",[123949,124598,763],{"id":124599},"beispiel-2",[414,124601,124602],{},"1011 + 1110",[414,124604,124605],{},[1504,124606],{"alt":269,"src":124607},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_1.png",[475,124609,124611],{"id":124610},"multiplikation","Multiplikation",[21,124613,124614,124617],{},[24,124615,124616],{},"Identisch zur schriftlichen Multiplikation im Dezimalsystem",[24,124618,124619,124620],{},"Multiplikation ist komplexer als Addition\n",[21,124621,124622],{},[24,124623,124624],{},"Benötigt mehrere Taktzyklen",[123949,124626,763],{"id":124627},"beispiel-3",[414,124629,124630],{},"101 * 11",[414,124632,124633],{},[1504,124634],{"alt":269,"src":124635},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_2.png",[414,124637,124638],{},"101 * 11 = 1111",[123949,124640,124642],{"id":124641},"sonderfall-multiplikation-mit-2","Sonderfall: Multiplikation mit 2",[21,124644,124645,124648,124654],{},[24,124646,124647],{},"Bei einer Multiplikation mit 2 wird nur eine 0 angehängt",[24,124649,124650,124651],{},"Fachbegriff für diese Aktion: ",[42,124652,124653],{},"Bitshift",[24,124655,124656],{},"Bitshift benötigt nur einen Taktzyklus",[475,124658,13218],{"id":124659},"subtraktion",[16,124661,124663],{"id":124662},"hexadezimales-zahlensystem","Hexadezimales Zahlensystem",[414,124665,124666,124668],{},[42,124667,124489],{},": 16",[414,124670,124671,124673],{},[42,124672,34004],{},": 0x",[765,124675,124676,124700],{},[768,124677,124678],{},[771,124679,124680,124685,124687,124689,124691,124693,124696,124698],{},[774,124681,124682],{},[42,124683,124684],{},"Dezimal",[774,124686,18063],{},[774,124688,81676],{},[774,124690,87390],{},[774,124692,36010],{},[774,124694,124695],{},"13",[774,124697,83191],{},[774,124699,18021],{},[787,124701,124702],{},[771,124703,124704,124709,124711,124713,124715,124717,124719,124721],{},[792,124705,124706],{},[42,124707,124708],{},"Hexadezimal",[792,124710,18063],{},[792,124712,67087],{},[792,124714,72555],{},[792,124716,67054],{},[792,124718,20555],{},[792,124720,123432],{},[792,124722,124723],{},"F",[470,124725,124502],{"id":124726},"umrechnung-1",[475,124728,124730],{"id":124729},"hexadezimal-binär","Hexadezimal -> Binär",[414,124732,124733],{},"1 Hexadezimalziffer = 4 Binärstellen",[318,124735,124736,124739],{},[24,124737,124738],{},"Hexadezimalziffern in je 4 Binärstellen umrechnen",[24,124740,124741],{},"Binärstellen aneinanderhängen",[475,124743,124745],{"id":124744},"hexadezimal-dezimal","Hexadezimal -> Dezimal",[318,124747,124748,124751],{},[24,124749,124750],{},"Wert einer Stelle berechnen: Dezimale Wertigkeit der Hexadezimalziffer * 16 Position der Binärziffer - 1",[24,124752,124514],{},[123949,124754,763],{"id":124755},"beispiel-4",[414,124757,124758],{},"0xAFFE -> (10 * 163) + (15 * 162) + (15 * 161) + (14 * 160) = 45054",[475,124760,124762],{"id":124761},"dezimal-hexadezimal","Dezimal -> Hexadezimal",[123949,124764,124766],{"id":124765},"möglichkeit-1-division-tr","Möglichkeit 1: Division (TR)",[414,124768,124526],{},[318,124770,124771,124774,124777,124779],{},[24,124772,124773],{},"Division des Dezimalwertes durch 16",[24,124775,124776],{},"Rest aufschreiben",[24,124778,124545],{},[24,124780,124781],{},"Die Reste von unten nach oben ergeben die Hexadezimalzahl",[414,124783,763],{},[414,124785,124786],{},"Dezimalzahl: 254",[318,124788,124789,124795],{},[24,124790,124791,124792],{},"254 \u002F 16 = 15 ",[42,124793,124794],{},"R: 14 -> E",[24,124796,124797,124798],{},"15 \u002F 16 = 0 ",[42,124799,124800],{},"R: 15 -> F",[414,124802,124803,124804],{},"254 -> ",[42,124805,124806],{},"0xFE",[123949,124808,124810],{"id":124809},"möglichkeit-2-über-binärsystem","Möglichkeit 2: Über Binärsystem",[21,124812,124813,124816,124819],{},[24,124814,124815],{},"Division durch 2 ist einfacher als durch 16",[24,124817,124818],{},"Binärergebnis in 4er Blöcke unterteilen",[24,124820,124821],{},"4er Blöcke in Hexadezimalzahl umrechnen",[124823,124824,763],"h6",{"id":124825},"beispiel-5",[414,124827,124828],{},"Dezimalzahl: 3925",[318,124830,124831,124836,124841,124846,124851,124856,124861,124866,124871,124876,124881,124885],{},[24,124832,124833,124834],{},"3925 \u002F 2 = 1962 ",[42,124835,124561],{},[24,124837,124838,124839],{},"1962 \u002F 2 = 981 ",[42,124840,124567],{},[24,124842,124843,124844],{},"981 \u002F 2 = 490 ",[42,124845,124561],{},[24,124847,124848,124849],{},"490 \u002F 2 = 245 ",[42,124850,124567],{},[24,124852,124853,124854],{},"245 \u002F 2 = 122 ",[42,124855,124561],{},[24,124857,124858,124859],{},"122 \u002F 2 = 61 ",[42,124860,124567],{},[24,124862,124863,124864],{},"61 \u002F 2 = 30 ",[42,124865,124561],{},[24,124867,124868,124869],{},"30 \u002F 2 = 15 ",[42,124870,124567],{},[24,124872,124873,124874],{},"15 \u002F 2 = 7 ",[42,124875,124561],{},[24,124877,124878,124879],{},"7 \u002F 2 = 3 ",[42,124880,124561],{},[24,124882,124570,124883],{},[42,124884,124561],{},[24,124886,124575,124887],{},[42,124888,124561],{},[414,124890,124891],{},"3925 -> 111101010101",[414,124893,124894],{},"1111 – 0101 – 0101",[414,124896,124897],{},"F 5 5",[414,124899,124900,124901],{},"3925 -> ",[42,124902,124903],{},"0xF55",[470,124905,124587],{"id":124906},"rechnungen-1",[475,124908,124591],{"id":124909},"addition-1",[21,124911,124912],{},[24,124913,124596],{},[123949,124915,763],{"id":124916},"beispiel-6",[414,124918,124919],{},"0xAFFE + 0x1111",[414,124921,124922],{},[1504,124923],{"alt":269,"src":124924},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_3.png",[11,124926,124928],{"id":124927},"binäre-logik","Binäre Logik",[21,124930,124931,124937,124943,124949],{},[24,124932,124933,124936],{},[42,124934,124935],{},"Binäre Variablen",": Nur zwei Zustände (0 & 1)",[24,124938,124939,124942],{},[42,124940,124941],{},"Logiktabelle",": Enthält alle möglichen Kombinationen der Eingänge inklusive der entsprechenden Ausgänge",[24,124944,124945,124948],{},[42,124946,124947],{},"Schaltfunktion",": Mathematischer Zusammenhang zwischen Eingang und Ausgang",[24,124950,124951,124954],{},[42,124952,124953],{},"Logikblock",": Darstellung der logischen Verknüpfung der Variablen",[16,124956,124958],{"id":124957},"grundfunktionen","Grundfunktionen",[765,124960,124961,124981],{},[768,124962,124963],{},[771,124964,124965,124969,124973,124977],{},[774,124966,124967],{},[42,124968,15635],{},[774,124970,124971],{},[42,124972,124941],{},[774,124974,124975],{},[42,124976,19511],{},[774,124978,124979],{},[42,124980,124953],{},[787,124982,124983,124993,125003,125014],{},[771,124984,124985,124987,124989,124991],{},[792,124986,19456],{},[792,124988],{},[792,124990],{},[792,124992],{},[771,124994,124995,124997,124999,125001],{},[792,124996,68648],{},[792,124998],{},[792,125000],{},[792,125002],{},[771,125004,125005,125008,125010,125012],{},[792,125006,125007],{},"Und",[792,125009],{},[792,125011],{},[792,125013],{},[771,125015,125016,125018,125020,125022],{},[792,125017,20838],{},[792,125019],{},[792,125021],{},[792,125023],{},[16,125025,125027],{"id":125026},"abgeleitete-verknüpfungen","Abgeleitete Verknüpfungen",[765,125029,125030,125050],{},[768,125031,125032],{},[771,125033,125034,125038,125042,125046],{},[774,125035,125036],{},[42,125037,15635],{},[774,125039,125040],{},[42,125041,124941],{},[774,125043,125044],{},[42,125045,19511],{},[774,125047,125048],{},[42,125049,124953],{},[787,125051,125052],{},[771,125053,125054,125057,125059,125061],{},[792,125055,125056],{},"Exklusives  Oder",[792,125058],{},[792,125060],{},[792,125062],{},[16,125064,125066],{"id":125065},"disjunktive-normalform-oder-normalform","Disjunktive Normalform (ODER-Normalform)",[21,125068,125069,125072],{},[24,125070,125071],{},"Spezielle Form einer logischen Formel",[24,125073,125074],{},"Besteht aus beliebig vielen Konjunktionen (UND) verknüpft durch Disjunktionen (ODER)",[470,125076,125078],{"id":125077},"bildung-einer-dnf-aus-einer-wertetabelle","Bildung einer DNF aus einer Wertetabelle",[318,125080,125081,125084,125087],{},[24,125082,125083],{},"Alle wahren Zeilen finden",[24,125085,125086],{},"Konjunktion für jede wahre Zeile erstellen",[24,125088,125089],{},"Jede erstellte Konjunktion mit einem ODER verknüpfen",[470,125091,763],{"id":125092},"beispiel-7",[21,125094,125095],{},[24,125096,125097],{},"Drei Konjunktionen verbunden durch zwei ODER-Verknüpfungen",[16,125099,125101],{"id":125100},"kv-diagramm","KV-Diagramm",[21,125103,125104,125107],{},[24,125105,125106],{},"Diagramm um die minimalste Formel einer Schaltung zu ermitteln",[24,125108,125109],{},"Anzahl der Zellen: 2 Anzahl der Eingangsvariablen",[470,125111,125113],{"id":125112},"minimalisierung-mit-einem-kv-diagramm-aus-einer-wertetabelle","Minimalisierung mit einem KV-Diagramm aus einer Wertetabelle",[318,125115,125116,125119,125122,125125,125128],{},[24,125117,125118],{},"Übertragen der 1-Zustände in das KV-Diagramm",[24,125120,125121],{},"Rest mit 0-Zuständen auffüllen",[24,125123,125124],{},"Alle benachbarten Zellen umranden (auch über die Kanten des Diagramms hinaus auf die andere Seite)",[24,125126,125127],{},"Einzelne Blöcke bestehen nur noch aus Variablen, die sich innerhalb des Blockes nicht verändern",[24,125129,125130],{},"Blöcke mit ODER-Verknüpfungen miteinander verbinden",[475,125132,763],{"id":125133},"beispiel-8",[414,125135,125136],{},[1504,125137],{"alt":269,"src":125138},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_9.png",[11,125140,125142],{"id":125141},"volladdierer","Volladdierer",[21,125144,125145,125148],{},[24,125146,125147],{},"Addieren mit binären Operationen",[24,125149,125150],{},"3 Eingänge notwendig",[318,125152,125153,125158,125164],{},[24,125154,125155,125156,6282],{},"Erster Summand (",[42,125157,14220],{},[24,125159,125160,125161,6282],{},"Zweiter Summand (",[42,125162,125163],{},"y",[24,125165,125166,125167,6282],{},"Carry – In: Übertrag von vorherigem Durchgang (",[42,125168,125169],{},"Cin",[21,125171,125172],{},[24,125173,125174],{},"2 Ausgänge",[318,125176,125177,125182],{},[24,125178,125179,125180,6282],{},"Summe aus erstem und zweitem Summanden (",[42,125181,12522],{},[24,125183,125184,125185,125188],{},"Carry – Out: Übertrag aus der Summe (",[42,125186,125187],{},"Cout",") -> wird Carry – In",[16,125190,125192],{"id":125191},"schaltung-eines-volladierers","Schaltung eines Volladierers",[414,125194,125195],{},[1504,125196],{"alt":269,"src":125197},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_10.png",[16,125199,125201],{"id":125200},"wahrheitstabelle-eines-volladdierers","Wahrheitstabelle eines Volladdierers",[414,125203,125204],{},[1504,125205],{"alt":269,"src":125206},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_11.png",[16,125208,125210],{"id":125209},"schaltung-eines-halbaddierers","Schaltung eines Halbaddierers",[414,125212,125213],{},[1504,125214],{"alt":269,"src":125215},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_12.png",[414,125217,125218,125219],{},"Quelle: ",[4687,125220,125221],{"href":125221,"rel":125222},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Od-9-vIJapo",[55343],[11,125224,125226],{"id":125225},"multiplexer","Multiplexer",[21,125228,125229,125232,125235,125238],{},[24,125230,125231],{},"Digitale Schaltung",[24,125233,125234],{},"Mehrere Eingangssignale auf einen Ausgang",[24,125236,125237],{},"Über Steuerleitungen wird entschieden welcher Eingang gewählt wird",[24,125239,4628,125240],{},[21,125241,125242,125248],{},[24,125243,125244,125247],{},[42,125245,125246],{},"N-zu-1 Multiplexer",": Wählt eines von N Eingangssignalen aus",[24,125249,125250,125253],{},[42,125251,125252],{},"1-zu-N Demultiplexer",": Verteilt einen Ausgang auf einen von N Ausgängen",[16,125255,73770],{"id":73769},[21,125257,125258,125269,125275],{},[24,125259,125260,125263,125264],{},[42,125261,125262],{},"Datenübertragung",": Telekommunikation verwendet Multiplexer, um mehrere Datenströme über eine Leitung zu übertragen\n",[21,125265,125266],{},[24,125267,125268],{},"Erhöht Effizienz",[24,125270,125271,125274],{},[42,125272,125273],{},"Schaltnetzwerke",": Multiplexer ermöglichen das Routing in Schaltnetzwerken",[24,125276,125277,125280],{},[42,125278,125279],{},"Adressierung in Speichern",": Zur Auswahl des richtigen Speicherorts in Speicheradressierungssystemen",[16,125282,9925],{"id":9924},[470,125284,125286],{"id":125285},"_1-mux","1-Mux",[414,125288,125289,125292],{},[1504,125290],{"alt":269,"src":125291},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_13.png",[1504,125293],{"alt":269,"src":125294},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_14.png",[414,125296,125297],{},[1504,125298],{"alt":269,"src":125299},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_15.png",[470,125301,125303],{"id":125302},"_2-mux","2-Mux",[414,125305,125306,125309,125312],{},[1504,125307],{"alt":269,"src":125308},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_16.png",[1504,125310],{"alt":269,"src":125311},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_17.png",[1504,125313],{"alt":269,"src":125314},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_18.png",[11,125316,125318],{"id":125317},"darstellung-negativer-zahlen","Darstellung negativer Zahlen",[16,125320,125322],{"id":125321},"einerkomplement","Einerkomplement",[21,125324,125325,125328,125337,125348,125351],{},[24,125326,125327],{},"Veralteter Standard",[24,125329,125330,125333,125334],{},[42,125331,125332],{},"MSB",": Most Significant Bit -> ",[42,125335,125336],{},"Das linkeste Bit",[24,125338,125339,125340],{},"MSB wird verwendet um das Vorzeichen zu wählen\n",[21,125341,125342,125345],{},[24,125343,125344],{},"0: Positiv",[24,125346,125347],{},"1: Negativ",[24,125349,125350],{},"Größte Positive Zahl: 2Anzahl Bits – 1 – 1",[24,125352,125353],{},"Größte Negative Zahl: -2Anzahl Bits – 1 – 1",[470,125355,125357],{"id":125356},"bildung-des-einerkomplements","Bildung des Einerkomplements",[21,125359,125360],{},[24,125361,125362,125363],{},"Alle Bits einer Binärzahl invertieren\n",[21,125364,125365,125368],{},[24,125366,125367],{},"Aus 0 wird 1",[24,125369,125370],{},"Aus 1 wird 0",[475,125372,763],{"id":125373},"beispiel-9",[414,125375,125376],{},"Binärzahl: 010110",[414,125378,125379],{},"Einerkomplement der Binärzahl: 101001",[470,125381,125383],{"id":125382},"subtraktion-mit-dem-einerkomplement","Subtraktion mit dem Einerkomplement",[318,125385,125386,125389,125392],{},[24,125387,125388],{},"Subtrahend invertieren um das Vorzeichen zu setzen",[24,125390,125391],{},"Minuend und invertierten Subtrahend addieren",[24,125393,125394],{},"Bei einem Überlauf, den Überlauf zum Ergebnis addieren",[475,125396,763],{"id":125397},"beispiel-10",[414,125399,125400],{},"4-3",[21,125402,125403,125406],{},[24,125404,125405],{},"4: 0100",[24,125407,125408],{},"3: 0011",[318,125410,125411,125419,125422],{},[24,125412,125413,125414],{},"Subtrahend Invertieren\n",[318,125415,125416],{},[24,125417,125418],{},"0011 -> 1100",[24,125420,125421],{},"0100 + 1100 = 1 0000",[24,125423,125424,125425],{},"Überlauf addieren\n",[318,125426,125427],{},[24,125428,125429],{},"0000 + 0001 = 0001",[21,125431,125432],{},[24,125433,125434],{},"Ergebnis: 1",[475,125436,530],{"id":529},[21,125438,125439],{},[24,125440,125441,125442],{},"Wenn es einen Übertritt über 0 gibt\n",[21,125443,125444],{},[24,125445,125446],{},"Z.B. 6-4",[16,125448,125450],{"id":125449},"zweierkomplement","Zweierkomplement",[21,125452,125453,125456,125459,125466,125474,125476],{},[24,125454,125455],{},"Einheitliche Darstellung",[24,125457,125458],{},"Löst einige Probleme des Einerkomplements",[24,125460,125461,125333,125463],{},[42,125462,125332],{},[42,125464,125465],{},"das linkeste Bit",[24,125467,125339,125468],{},[21,125469,125470,125472],{},[24,125471,125344],{},[24,125473,125347],{},[24,125475,125350],{},[24,125477,125478],{},"Größte Negative Zahl: -2Anzahl Bits – 1",[470,125480,125482],{"id":125481},"bildung-des-zweierkomplements","Bildung des Zweierkomplements",[318,125484,125485,125488,125491],{},[24,125486,125487],{},"Binärzahl ermitteln",[24,125489,125490],{},"Einerkomplement bilden",[24,125492,125493],{},"1 zum Einerkomplement addieren",[475,125495,763],{"id":125496},"beispiel-11",[318,125498,125499,125501,125504],{},[24,125500,125376],{},[24,125502,125503],{},"Einerkomplement: 010110 -> 101001",[24,125505,125506],{},"1 Addieren: 101001 + 1 = 101010",[470,125508,125510],{"id":125509},"subtraktion-mit-dem-zweierkomplement","Subtraktion mit dem Zweierkomplement",[318,125512,125513,125516],{},[24,125514,125515],{},"Zweierkomplement vom Subtrahend bilden",[24,125517,125518],{},"Minuend und Subtrahend addieren",[475,125520,763],{"id":125521},"beispiel-12",[414,125523,125400],{},[21,125525,125526,125528],{},[24,125527,125405],{},[24,125529,125408],{},[318,125531,125532,125543],{},[24,125533,125534,125535],{},"Zweierkomplement bilden\n",[318,125536,125537,125540],{},[24,125538,125539],{},"Einerkomplement bilden: 0011 -> 1100",[24,125541,125542],{},"1 Addieren: 1100 + 1 = 1101",[24,125544,125545],{},"Addieren: 0100 + 1101 = 1 0001",[21,125547,125548],{},[24,125549,125550],{},"Übertrag entfällt, da nur 4 Bit",[11,125552,125554],{"id":125553},"rationale-zahlen","Rationale Zahlen",[16,125556,125558],{"id":125557},"festkommaarithmetik","Festkommaarithmetik",[21,125560,125561,125577,125580,125583],{},[24,125562,125563,125564],{},"Position des Kommas ist vorgegeben\n",[21,125565,125566],{},[24,125567,125568,125569],{},"Beispiel (8Bit)\n",[21,125570,125571,125574],{},[24,125572,125573],{},"4-Bits vor dem Komma",[24,125575,125576],{},"4-Bits nach dem Komma",[24,125578,125579],{},"Begrenzte Genauigkeit durch feste Kommaposition",[24,125581,125582],{},"Grundrechenarten sind ähnlich wie bei Dezimalzahlen",[24,125584,125585,125586],{},"Anwendung in:\n",[21,125587,125588,125591],{},[24,125589,125590],{},"Eingebetteten Systemen",[24,125592,125593],{},"Anwendungen bei denen eine feste Anzahl von Bits vor\u002Fnach dem Komma erforderlich ist (Bildverarbeitung)",[414,125595,125596],{},[1504,125597],{"alt":269,"src":125598},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_19.png",[470,125600,1014],{"id":1013},[21,125602,125603],{},[24,125604,125605,125607],{},[42,125606,324],{},[21,125608,125609,125612],{},[24,125610,125611],{},"Erfordert weniger komplexe Hardware",[24,125613,125614],{},"Kann effizienter implementieret werden+",[470,125616,72264],{"id":72263},[21,125618,125619,125625],{},[24,125620,125621,125624],{},[42,125622,125623],{},"Begrenzte Dynamik",": Sehr große oder sehr kleine Werte werden ggf. ungenau",[24,125626,125627,125630],{},[42,125628,125629],{},"Genauigkeitsverlust",": Berechnung mit komplexen Zahlen kann zu Rundungsfehlern führen",[470,125632,125634],{"id":125633},"beispiel-für-addition","Beispiel für Addition",[414,125636,125637],{},[1504,125638],{"alt":269,"src":125639},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_20.png",[16,125641,125643],{"id":125642},"fließkommaarithmetik","Fließkommaarithmetik",[21,125645,125646,125649,125669,125677,125680],{},[24,125647,125648],{},"Komma kann verschoben werden",[24,125650,125651,125652],{},"Bestandteile:\n",[21,125653,125654,125659,125664],{},[24,125655,125656],{},[42,125657,125658],{},"1 Bit: Vorzeichen",[24,125660,125661],{},[42,125662,125663],{},"8 Bit: Exponent",[24,125665,125666],{},[42,125667,125668],{},"23 Bit: Mantisse",[24,125670,125671,125672],{},"Innerhalb der Mantisse lässt sich das Komma verschieben\n",[21,125673,125674],{},[24,125675,125676],{},"Große und kleine Zahlen mit unterschiedlicher Genauigkeit",[24,125678,125679],{},"Hohe Dynamik und Genauigkeit",[24,125681,125682],{},"Erfordert spezielle Algorithmen um den Exponenten und die Mantisse festzulegen",[470,125684,1014],{"id":76478},[21,125686,125687,125693],{},[24,125688,125689,125692],{},[42,125690,125691],{},"Hohe Genauigkeit und Dynamik",": Breiter Bereich von Zahlen mit unterschiedlicher Genauigkeit",[24,125694,125695,125697],{},[42,125696,77841],{},": Durch das Verschieben des Kommas",[470,125699,72264],{"id":76467},[21,125701,125702,125708],{},[24,125703,125704,125707],{},[42,125705,125706],{},"Komplexität",": Erfordert komplexe Algorithmen und Hardware",[24,125709,125710,125713],{},[42,125711,125712],{},"Rundungsfehler",": Bei komplexen Berechnungen oder Darstellung von Zahlen die nicht in das Gleitkommazahlenformat passen",[470,125715,125717],{"id":125716},"berechnung-einer-gleitkommazahl","Berechnung einer Gleitkommazahl",[475,125719,124523],{"id":125720},"dezimal-binär-1",[318,125722,125723,125734,125737,125740,125743,125754,125765],{},[24,125724,125725,125726],{},"Vorzeichenbit festlegen\n",[318,125727,125728,125731],{},[24,125729,125730],{},"Positiv: 0",[24,125732,125733],{},"Negativ: 1",[24,125735,125736],{},"Vorkommazahl umrechnen",[24,125738,125739],{},"Nachkommazahl umrechnen",[24,125741,125742],{},"Gesamtzahl bilden durch Verkettung von Vor- & Nachkommazahl",[24,125744,125745,125746],{},"Normieren: Es darf & muss nur eine 1 vor dem Komma stehen\n",[318,125747,125748,125751],{},[24,125749,125750],{},"Verschiebung durch 2 Stellen um die Verschoben wird",[24,125752,125753],{},"Alles nach dem Komma ist die Mantisse",[24,125755,125756,125757],{},"Exponent umrechnen: Verschobene Stellen + 127 = Exponent\n",[318,125758,125759,125762],{},[24,125760,125761],{},"Verschobene Stellen können ggf. auch negativ sein",[24,125763,125764],{},"In Binär umrechnen",[24,125766,125767,125768],{},"Vorzeichen, Exponent und Mantisse in dieser Reihenfolge verketten\n",[318,125769,125770],{},[24,125771,125772],{},"Rest mit 0en auffüllen",[123949,125774,763],{"id":125775},"beispiel-13",[414,125777,125778],{},"Ausgangszahl: 18,4",[318,125780,125781,125784,125787,125793,125796,125807,125810],{},[24,125782,125783],{},"Vorzeichen: Positiv -> 0",[24,125785,125786],{},"Vorkommazahl: 18 -> 10010",[24,125788,125789,125792],{},[1504,125790],{"alt":269,"src":125791},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa1_img_21.png","Nachkommazahl umrechnen: 0,4 -> 0110",[24,125794,125795],{},"Gesamtzahl bilden: 10010,0110",[24,125797,125798,125799],{},"Normieren: Komma muss um 4 Stellen verschoben werden\n",[318,125800,125801,125804],{},[24,125802,125803],{},"10010,0110 = 1,00100110 * 24",[24,125805,125806],{},"Mantisse: 00100110",[24,125808,125809],{},"Exponent bestimmen: 4 + 127 = 131 -> 10000011",[24,125811,125812],{},"Verketten und 0en auffüllen: 0 10000011 00100110 000000000000000",[475,125814,124506],{"id":125815},"binär-dezimal-1",[318,125817,125818,125821,125824,125832,125840,125843],{},[24,125819,125820],{},"Einteilung in Vorzeichenbit, Exponent und Mantisse",[24,125822,125823],{},"Vorzeichen merken",[24,125825,125826,125827],{},"Exponentenbereich in Dezimal umrechnen\n",[318,125828,125829],{},[24,125830,125831],{},"Dezimalzahl – 127 = Exponent",[24,125833,125834,125835],{},"Komma der Mantisse entsprechend verschieben\n",[318,125836,125837],{},[24,125838,125839],{},"Führende 1 vor dem Komma behalten!",[24,125841,125842],{},"Vor- & Nachkommazahl in Dezimalumrechnen und verketten",[24,125844,125845],{},"Vorzeichen setzen",[123949,125847,763],{"id":125848},"beispiel-14",[414,125850,125851],{},"Ausgangszahl: 10111111000000000000000000000000",[318,125853,125854,125857,125860,125868,125871,125882,125885],{},[24,125855,125856],{},"Einteilen: 1-01111110-00000000000000000000000",[24,125858,125859],{},"Vorzeichen: 1 -> -",[24,125861,125862,125863],{},"Exponent in Dezimal: 126\n",[318,125864,125865],{},[24,125866,125867],{},"126 – 127 = -1",[24,125869,125870],{},"Komma der Mantisse verschieben: 1,0 -> 0,1",[24,125872,125873,125874],{},"In Dezimal umrechnen\n",[318,125875,125876,125879],{},[24,125877,125878],{},"Vorkomma: 0 -> 0",[24,125880,125881],{},"Nachkomma: 1 -> ,5",[24,125883,125884],{},"Verketten: 0,5",[24,125886,125887],{},"Vorzeichen setzen: -0,5",{"title":269,"searchDepth":270,"depth":270,"links":125889},[125890,125894,125898,125899,125900,125904,125907,125908,125909,125910,125911,125915,125919,125923,125928],{"id":124481,"depth":270,"text":124482,"children":125891},[125892,125893],{"id":124501,"depth":1263,"text":124502},{"id":124586,"depth":1263,"text":124587},{"id":124662,"depth":270,"text":124663,"children":125895},[125896,125897],{"id":124726,"depth":1263,"text":124502},{"id":124906,"depth":1263,"text":124587},{"id":124957,"depth":270,"text":124958},{"id":125026,"depth":270,"text":125027},{"id":125065,"depth":270,"text":125066,"children":125901},[125902,125903],{"id":125077,"depth":1263,"text":125078},{"id":125092,"depth":1263,"text":763},{"id":125100,"depth":270,"text":125101,"children":125905},[125906],{"id":125112,"depth":1263,"text":125113},{"id":125191,"depth":270,"text":125192},{"id":125200,"depth":270,"text":125201},{"id":125209,"depth":270,"text":125210},{"id":73769,"depth":270,"text":73770},{"id":9924,"depth":270,"text":9925,"children":125912},[125913,125914],{"id":125285,"depth":1263,"text":125286},{"id":125302,"depth":1263,"text":125303},{"id":125321,"depth":270,"text":125322,"children":125916},[125917,125918],{"id":125356,"depth":1263,"text":125357},{"id":125382,"depth":1263,"text":125383},{"id":125449,"depth":270,"text":125450,"children":125920},[125921,125922],{"id":125481,"depth":1263,"text":125482},{"id":125509,"depth":1263,"text":125510},{"id":125557,"depth":270,"text":125558,"children":125924},[125925,125926,125927],{"id":1013,"depth":1263,"text":1014},{"id":72263,"depth":1263,"text":72264},{"id":125633,"depth":1263,"text":125634},{"id":125642,"depth":270,"text":125643,"children":125929},[125930,125931,125932],{"id":76478,"depth":1263,"text":1014},{"id":76467,"depth":1263,"text":72264},{"id":125716,"depth":1263,"text":125717},"Stellenwertsystem: numerisches System, bei dem der Wert einer Ziffer durch ihre Position und die Basis des Systems bestimmt wird",{},{"title":2424},"\u002Ffaecher\u002Ftin\u002F3-4-zsmf-sa1","\u002Fdownloads\u002FTIN\u002FTIN_3-4_ZSMF_SA1.pdf",{"title":6,"description":125933},"faecher\u002Ftin\u002F3-4-zsmf-sa1","Z2eLyPNi-vwaWUfWISLg98fWPyBkd8gCHS_QWqQE4Ag",{"id":125942,"title":301,"body":125943,"class":2421,"description":269,"extension":283,"meta":126386,"navigation":126387,"path":126388,"pdfDownload":126389,"scope":1288,"scopeName":1289,"seo":126390,"stem":126391,"subject":124441,"subjectName":124442,"type":295,"typeName":296,"year":2431,"__hash__":126392},"faecher\u002Ffaecher\u002Ftin\u002F3-4-zsmf-sa2.md",{"type":8,"value":125944,"toc":126364},[125945,125949,125960,125964,125968,125971,125975,125986,125990,126043,126047,126051,126070,126074,126090,126094,126097,126102,126104,126109,126113,126118,126122,126127,126131,126135,126139,126142,126149,126152,126160,126163,126166,126169,126172,126177,126181,126185,126188,126196,126201,126205,126208,126227,126232,126236,126260,126265,126269,126288,126293,126297,126316,126321,126326,126330,126334,126347,126351],[11,125946,125948],{"id":125947},"energiespeicher-kondensator","Energiespeicher: Kondensator",[21,125950,125951,125954,125957],{},[24,125952,125953],{},"Zwei Gegenüberliegende Metallplatten; Dazwischen Luft",[24,125955,125956],{},"Durch anliegende Spannung werden Ladungsteilchen der Luft an entsprechende Metallplatten gedrückt; Nach kurzer Zeit fließt kein Strom mehr.",[24,125958,125959],{},"Speichert Energie verlustfrei ABER beim laden\u002Fentladen entsteht Verlustleistung über den Ladewiderstand.",[16,125961,125963],{"id":125962},"kapazität-gemessen-in-farad","Kapazität (Gemessen in ‚Farad‘):",[11,125965,125967],{"id":125966},"feldeffekttransistor-mosfet","Feldeffekttransistor (MOSFET)",[414,125969,125970],{},"Anwendung in CMOS Logikschaltungen",[16,125972,125974],{"id":125973},"anschlüsse","Anschlüsse",[21,125976,125977,125980,125983],{},[24,125978,125979],{},"Drain: Stromabfluss \u002F Ground",[24,125981,125982],{},"Gate: Steueranschluss des Schalters",[24,125984,125985],{},"Source: Stromquelle \u002F Pluspol",[16,125987,125989],{"id":125988},"bauform","Bauform",[21,125991,125992,126022],{},[24,125993,125994,125997,125998],{},[1504,125995],{"alt":269,"src":125996},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_1.png","P oder N Kanal:\n",[21,125999,126000,126011],{},[24,126001,126002,126003],{},"P-Kanal: Pfeil in Positive Richtung\n",[21,126004,126005,126008],{},[24,126006,126007],{},"Strom fließt von Source zu Drain",[24,126009,126010],{},"Reagiert auf negative Spannung zwischen Source & Gate",[24,126012,126013,126014],{},"N-Kanal: Pfeil in negative Richtung\n",[21,126015,126016,126019],{},[24,126017,126018],{},"Strom fließt von Drain zu Source",[24,126020,126021],{},"Reagiert auf positive Spannung zwischen Source & Gate",[24,126023,126024,126025],{},"‚Normal leitend‘ oder ‚Normal sperrend‘\n",[21,126026,126027,126035],{},[24,126028,126029,126030],{},"Leitend: Durchgezogene Linie\n",[21,126031,126032],{},[24,126033,126034],{},"Ohne Gatespannung Stromfluss",[24,126036,126037,126038],{},"Sperrend: Unterbrochene \u002F Gestrichelte Linie\n",[21,126039,126040],{},[24,126041,126042],{},"Ohne Gatespannung kein Stromfluss",[11,126044,126046],{"id":126045},"sram-dram-flüchtige-speicher","SRAM & DRAM (Flüchtige Speicher)",[16,126048,126050],{"id":126049},"sram-static-random-access-memory","SRAM: Static Random Access Memory",[21,126052,126053,126061,126064,126067],{},[24,126054,126055,126056],{},"Schneller Speicher – Kleine Kapazität\n",[21,126057,126058],{},[24,126059,126060],{},"Cache",[24,126062,126063],{},"Verwendet Transistoren und Latches",[24,126065,126066],{},"Benötigt kein Auffrischen zur Vermeidung von Datenverlust",[24,126068,126069],{},"Niedrige Packungsdichte",[16,126071,126073],{"id":126072},"dram-dynamic-random-access-memory","DRAM: Dynamic Random Access Memory",[21,126075,126076,126084,126087],{},[24,126077,126078,126079],{},"Langsamer Speicher – Große Kapazität\n",[21,126080,126081],{},[24,126082,126083],{},"PC-Hauptspeicher",[24,126085,126086],{},"Verwendet Kondensatoren und wenige Transistoren",[24,126088,126089],{},"Hohe Packungsdichte",[11,126091,126093],{"id":126092},"cmos","CMOS",[414,126095,126096],{},"Verlustleistung: Im statischen Zustand fast keine Verlustleisstung -> Beim Umschalten kurzer Stromfluss durch Umladen der Transistoren",[21,126098,126099],{},[24,126100,126101],{},"Proportional zur Frequenz",[16,126103,2615],{"id":2614},[414,126105,126106],{},[1504,126107],{"alt":269,"src":126108},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_2.png",[16,126110,126112],{"id":126111},"nand-aufbau","NAND-Aufbau",[414,126114,126115],{},[1504,126116],{"alt":269,"src":126117},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_3.png",[16,126119,126121],{"id":126120},"nor-aufbau","NOR-Aufbau",[414,126123,126124],{},[1504,126125],{"alt":269,"src":126126},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_5.png",[11,126128,126130],{"id":126129},"schaltwerke-signalspeicher","Schaltwerke (Signalspeicher)",[16,126132,126134],{"id":126133},"nichtgetaktete-flip-flops-latches","Nichtgetaktete Flip-Flops (Latches)",[470,126136,126138],{"id":126137},"rs-flip-flop","RS-Flip-Flop",[414,126140,126141],{},"Zwei Eingänge",[21,126143,126144,126146],{},[24,126145,42374],{},[24,126147,126148],{},"Rücksetzen",[414,126150,126151],{},"Zwei Ausgänge",[21,126153,126154,126157],{},[24,126155,126156],{},"Normal",[24,126158,126159],{},"Invertiert",[414,126161,126162],{},"Wenn ausschließlich Setzen aktiv -> Ausgang ist 1",[414,126164,126165],{},"Wenn ausschließlich Rücksetzen aktiv -> Ausgang ist 0",[414,126167,126168],{},"Wenn kein Eingang aktiv -> Letzter Zustand wird beibehalten",[414,126170,126171],{},"Wenn beide aktiv -> Verbotener Zustand (nicht definiert)",[414,126173,126174],{},[1504,126175],{"alt":269,"src":126176},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_6.png",[16,126178,126180],{"id":126179},"getaktete-flip-flops","Getaktete Flip-Flops",[470,126182,126184],{"id":126183},"getaktetes-rs-flip-flop","Getaktetes RS-Flip-Flop",[414,126186,126187],{},"Wie ungetaktetes RS-Flip-Flop, bis auf:",[21,126189,126190,126193],{},[24,126191,126192],{},"Getaktetes RS-FF hat einen zusätzlichen Clock-Eingang.",[24,126194,126195],{},"Die Eingänge R & S werden erst wirksam, wenn Clock 1 ist (aufwärts Flanke)",[414,126197,126198],{},[1504,126199],{"alt":269,"src":126200},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_7.png",[470,126202,126204],{"id":126203},"d-flip-flop","D-Flip-Flop",[414,126206,126207],{},"Erweiterung des getakteten RS-Flip-Flop",[21,126209,126210,126218,126221,126224],{},[24,126211,126212,126213],{},"Rücksetz-Eingang entfällt und ist stattdessen immer das Gegenteil vom Setz-Eingang\n",[21,126214,126215],{},[24,126216,126217],{},"Damit schließt man den verbotenen Zustand des RS-Flip-Flop aus.",[24,126219,126220],{},"Eingänge sind demnach nur noch D (Setzen) und ein Clock",[24,126222,126223],{},"Wenn Clock 1: Dann Ausgang = D und neg. Ausgang = neg. D",[24,126225,126226],{},"Wenn Clock 0: Vorheriger Zustand wird verwendet.",[414,126228,126229],{},[1504,126230],{"alt":269,"src":126231},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_8.png",[470,126233,126235],{"id":126234},"jk-flip-flop-einflankengesteuert","JK-Flip-Flop (Einflankengesteuert)",[21,126237,126238,126241],{},[24,126239,126240],{},"Basiert auf getaktetem RS-Flip-Flop",[24,126242,126243,126244],{},"Zustände der Eingänge werden bei pos. Flange evaluiert & realisiert\n",[21,126245,126246,126249,126252],{},[24,126247,126248],{},"Verhält sich bei Zuständen, bei denen J o. K jeweils das Gegenteil sind wie RS-Flip-Flop",[24,126250,126251],{},"Sind J u. K 0 wird der vorherige Zustand beibehalten",[24,126253,126254,126255],{},"Sind J u. K 1 wird der vorherige Zustand invertiert (Toggeln)\n",[21,126256,126257],{},[24,126258,126259],{},"Schließt den verbotenen Zustand des RS-Flip-Flop aus",[414,126261,126262],{},[1504,126263],{"alt":269,"src":126264},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_9.png",[470,126266,126268],{"id":126267},"t-flip-flop","T-Flip-Flop",[21,126270,126271,126274,126277,126285],{},[24,126272,126273],{},"Basiert auf JK-Flip-Flop",[24,126275,126276],{},"Kann nur Toggeln und Speichern",[24,126278,126279,126280],{},"J und K sind immer gleich\n",[21,126281,126282],{},[24,126283,126284],{},"Demnach nur ein Eingang und eine Clock",[24,126286,126287],{},"Bei 0 wird der Zustand beibehalten, bei 1 invertiert",[414,126289,126290],{},[1504,126291],{"alt":269,"src":126292},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_10.png",[470,126294,126296],{"id":126295},"jk-master-slave-flip-flop-zweiflankengesteuert","JK-Master-Slave-Flip-Flop (Zweiflankengesteuert)",[21,126298,126299,126302,126313],{},[24,126300,126301],{},"Besteht aus 2 JK-Flip-Flops; Master und Slave",[24,126303,126304,126305],{},"Eingänge J u. K werden bei pos. Flanke evaluiert; bei neg. Flanke realisiert\n",[21,126306,126307,126310],{},[24,126308,126309],{},"Master: reagiert auf pos. Flanke",[24,126311,126312],{},"Slave: reagiert auf neg. Flanke (Clock negiert)",[24,126314,126315],{},"Ausgang des Masters ist Eingang des Slaves; Clock ist identisch",[414,126317,126318],{},[1504,126319],{"alt":269,"src":126320},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_11.png",[414,126322,126323],{},[1504,126324],{"alt":269,"src":126325},"\u002Fdownloads\u002FTIN\u002Fimages\u002F3-4-zsmf-sa2_img_12.png",[11,126327,126329],{"id":126328},"synchron-asynchronzähler","Synchron- & Asynchronzähler",[16,126331,126333],{"id":126332},"asynchronzähler","Asynchronzähler",[21,126335,126336,126344],{},[24,126337,126338,126339],{},"Gatterlaufzeit (Zeit die ein Gatter zum umschalten braucht) addiert sich\n",[21,126340,126341],{},[24,126342,126343],{},"Ausgänge sind nicht konsistent!",[24,126345,126346],{},"Einfachere Schaltung",[16,126348,126350],{"id":126349},"synchronzähler","Synchronzähler",[21,126352,126353,126361],{},[24,126354,126355,126356],{},"Alle haben den gleichen Takt\n",[21,126357,126358],{},[24,126359,126360],{},"Gatterlaufzeit immer identisch",[24,126362,126363],{},"Kompliziertere Schaltung",{"title":269,"searchDepth":270,"depth":270,"links":126365},[126366,126367,126368,126369,126370,126371,126372,126373,126374,126377,126384,126385],{"id":125962,"depth":270,"text":125963},{"id":125973,"depth":270,"text":125974},{"id":125988,"depth":270,"text":125989},{"id":126049,"depth":270,"text":126050},{"id":126072,"depth":270,"text":126073},{"id":2614,"depth":270,"text":2615},{"id":126111,"depth":270,"text":126112},{"id":126120,"depth":270,"text":126121},{"id":126133,"depth":270,"text":126134,"children":126375},[126376],{"id":126137,"depth":1263,"text":126138},{"id":126179,"depth":270,"text":126180,"children":126378},[126379,126380,126381,126382,126383],{"id":126183,"depth":1263,"text":126184},{"id":126203,"depth":1263,"text":126204},{"id":126234,"depth":1263,"text":126235},{"id":126267,"depth":1263,"text":126268},{"id":126295,"depth":1263,"text":126296},{"id":126332,"depth":270,"text":126333},{"id":126349,"depth":270,"text":126350},{},{"title":3985},"\u002Ffaecher\u002Ftin\u002F3-4-zsmf-sa2","\u002Fdownloads\u002FTIN\u002FTIN_3-4_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Ftin\u002F3-4-zsmf-sa2","imxTVEz6jbJyVnfbvxDQrVZBxJOeygeK0zQdSCTw5kk",{"id":126394,"title":6,"body":126395,"class":2421,"description":269,"extension":283,"meta":127386,"navigation":127387,"path":127388,"pdfDownload":127389,"scope":289,"scopeName":290,"seo":127390,"stem":127391,"subject":127392,"subjectName":127393,"type":295,"typeName":296,"year":2431,"__hash__":127394},"faecher\u002Ffaecher\u002Fwpg\u002F3-4-zsmf-sa1.md",{"type":8,"value":126396,"toc":127355},[126397,126401,126405,126409,126412,126417,126421,126460,126464,126478,126482,126485,126489,126508,126512,126549,126553,126556,126564,126569,126580,126584,126587,126592,126596,126601,126609,126613,126638,126642,126646,126654,126658,126681,126685,126689,126697,126701,126736,126740,126777,126781,126784,126788,126793,126800,126805,126819,126823,126850,126854,126866,126870,126892,126896,126900,126932,126936,127006,127010,127045,127049,127068,127072,127088,127092,127096,127119,127123,127126,127142,127146,127149,127163,127167,127173,127186,127192,127200,127204,127208,127230,127234,127273,127277,127296,127300,127329,127333],[11,126398,126400],{"id":126399},"zusammenfassung-wpg-schulaufgabe-1","Zusammenfassung WPG Schulaufgabe 1",[16,126402,126404],{"id":126403},"krieg-in-europa","Krieg in Europa",[470,126406,126408],{"id":126407},"kalter-krieg-1947-1989","Kalter Krieg (1947-1989)",[414,126410,126411],{},"Ideologische, politische und militärische Konfrontation zwischen den Vereinigten Staaten und der Sowjetunion sowie ihren jeweiligen Verbündeten.",[21,126413,126414],{},[24,126415,126416],{},"Ohne direkte militärische Konfrontation zwischen den Hauptmächten. Stattdessen Stellvertreterkriege",[475,126418,126420],{"id":126419},"basisinformationen","Basisinformationen",[21,126422,126423,126426,126429],{},[24,126424,126425],{},"USA vs. Sowjetunion",[24,126427,126428],{},"Zwei Atommächte",[24,126430,126431,126432],{},"Zwei Systeme kämpfen\n",[21,126433,126434,126447],{},[24,126435,126436,126439,126440],{},[42,126437,126438],{},"Kapitalismus",": Jeder in der Wirtschaft versucht für sich das Maximale zu erreichen, da dies auch das Beste für die Gesellschaft ist\n",[21,126441,126442],{},[24,126443,126444],{},[42,126445,126446],{},"Recht auf Privateigentum",[24,126448,126449,126452,126453],{},[42,126450,126451],{},"Kommunismus",": Klassenlose Gesellschaftsordnung, in der die Produktionsmittel einheitliches Volkseigentum und sämtliche Mitglieder der Gesellschaft sozial völlig gleich sind.\n",[21,126454,126455],{},[24,126456,126457],{},[42,126458,126459],{},"Kein Recht auf Privateigentum",[475,126461,126463],{"id":126462},"ebenen-der-auseinandersetzung","Ebenen der Auseinandersetzung",[21,126465,126466,126469,126472,126475],{},[24,126467,126468],{},"Militärisch: Wettrüsten",[24,126470,126471],{},"Technisch: z.B. Weltraumtechnik (erster bemannter Weltraumflug, Mondlandung)",[24,126473,126474],{},"Ökonomisch",[24,126476,126477],{},"Sportlich",[475,126479,126481],{"id":126480},"krisen","Krisen",[414,126483,126484],{},"Krisen die sich während des kalten Krieges ereigneten.",[123949,126486,126488],{"id":126487},"undefinedberlinblockade-194849","undefinedBerlinblockade (1948\u002F49)",[21,126490,126491,126494,126497,126505],{},[24,126492,126493],{},"Reaktion der Sowjetunion auf die Währungsreform in Westdeutschland im Juni 1948",[24,126495,126496],{},"Sowjetunion sperrt den Land- und Wasserweg nach West-Berlin",[24,126498,126499,126500],{},"West-Berlin von Ostdeutschland isoliert\n",[21,126501,126502],{},[24,126503,126504],{},"Versorgungskrise, da die Stadt über die Luft versorgt werden musste (Berliner Luftbrücke)",[24,126506,126507],{},"Sowjetunion beendet die Blockade im Mai 1949",[123949,126509,126511],{"id":126510},"kubakrise-1962","Kubakrise (1962)",[21,126513,126514,126521,126524,126527,126535,126538,126541],{},[24,126515,126516,126520],{},[1504,126517],{"alt":126518,"src":126519},"StepMap - Die Kuba-Krise - Landkarte für Nordamerika","\u002Fdownloads\u002FWPG\u002Fimages\u002F3-4-zsmf-sa1_img_2.png","USA bemerkt, dass die Sowjetunion begonnen hatte atomare Mittelstreckenraketen auf Kuba zu stationieren. Diese Raketen wären in der Lage Teile des Festlands der USA zu erreichen",[24,126522,126523],{},"USA verlangt Abzug der stationierten Raketen von Kuba",[24,126525,126526],{},"USA verhängt Seeblockade um weitere Stationierungen auf Kuba zu verhindern",[24,126528,126529,126530],{},"USA und Sowjetunion versetzen ihre Streitkräfte in erhöhte Bereitschaft\n",[21,126531,126532],{},[24,126533,126534],{},"Welt steht am Rande eines Atomkriegs",[24,126536,126537],{},"Sowjetischer Premierminister entscheidet sich die Raketen von Kuba abzuziehen",[24,126539,126540],{},"USA verpflichtet sich keine Invasion auf Kuba durchzuführen",[24,126542,126543,126544],{},"Gilt das Moment höchster Spannung im kalten Krieg\n",[21,126545,126546],{},[24,126547,126548],{},"Verstärkte Diplomatie zwischen den Supermächten in zukünftigen Konflikten um so etwas zu vermeiden",[123949,126550,126552],{"id":126551},"nato-doppelbeschluss-1979-1983","NATO Doppelbeschluss (1979-1983)",[414,126554,126555],{},"Doppelbeschlusses der NATO ist in zwei Teile augeteilt:",[318,126557,126558,126561],{},[24,126559,126560],{},"NATO kündigt Aufstellung atomarer Mittelstreckenraketen in Westeuropa an. Grund sei der Ausgleich der Lücke in der atomaren Abschreckung, die die vorherige Stationierung der sowjetischen Raketen bewirkt habe.",[24,126562,126563],{},"NATO verlangt Verhandlungen der Supermächte (USA und Sowjetunion) über die Begrenzung ihrer atomaren Mittelstreckenraketen in Europa.",[414,126565,126566,8158],{},[42,126567,126568],{},"Folgen",[21,126570,126571,126574,126577],{},[24,126572,126573],{},"Sowjetische Führung reagiert ablehnend -> Konflikt eskaliert",[24,126575,126576],{},"USA und NATO stationieren angekündigte Raketen in Europa -> Konflikt erreicht Höhepunkt",[24,126578,126579],{},"Amtsantritt von Gorbatschow -> Abrüstungsgespräche und anschließende Einigung keine Raketen in Europa zu stationieren.",[475,126581,126583],{"id":126582},"stellvertreterkriege","Stellvertreterkriege",[414,126585,126586],{},"Direkte militärische Konfrontation zwischen den Hauptmächten zu gefährlich \u002F politisch inakzeptabel",[21,126588,126589],{},[24,126590,126591],{},"Andere Akteure werden für die Interessen der Mächte verwendet, indem sie von den Hauptmächten unterstütz werden",[123949,126593,126595],{"id":126594},"koreakrieg","Koreakrieg",[414,126597,126598,8158],{},[42,126599,126600],{},"Akteure",[21,126602,126603,126606],{},[24,126604,126605],{},"Nordkorea (Sowjetunion und China)",[24,126607,126608],{},"Südkorea (Vereinigte Nationen und USA)",[414,126610,126611,8158],{},[42,126612,1681],{},[21,126614,126615,126618,126621,126624,126627],{},[24,126616,126617],{},"Nordkorea marschiert in den Süden ein, um die südkoreanische Regierung zu stürzen und eine Wiedervereinigung in kommunistischem Sinne zu erzwingen.",[24,126619,126620],{},"UN verurteilt den Einmarsch und entsendet gemeinsam mit den USA Truppen um den Vormarsch zu stoppen",[24,126622,126623],{},"China schickt Truppen um die Nordkoreanische Seite zu unterstützen",[24,126625,126626],{},"Stellungskrieg entsteht",[24,126628,126629,126630],{},"Waffenstillstandsabkommen\n",[21,126631,126632,126635],{},[24,126633,126634],{},"Stellt die Grenze zwischen Nord- und Südkorea wieder her",[24,126636,126637],{},"Bestätigt Teilung der koreanischen Halbinsel",[123949,126639,126641],{"id":126640},"vietnamkrieg","Vietnamkrieg",[414,126643,126644,8158],{},[42,126645,126600],{},[21,126647,126648,126651],{},[24,126649,126650],{},"Nordvietnam (kommunistisch)",[24,126652,126653],{},"Südvietnam (nicht kommunistisch)",[414,126655,126656,8158],{},[42,126657,1681],{},[21,126659,126660,126663,126666,126669,126672,126675,126678],{},[24,126661,126662],{},"Genfer Abkommen spaltet Vietnam temporär in Nord- und Südvietnam. Eine Vereinigung soll durch freie Wahlen erfolgen.",[24,126664,126665],{},"USA unterstützt Südvietnam um die Ausbreitung des Kommunismus zu verhindern",[24,126667,126668],{},"USA verstärkt militärische Präsenz",[24,126670,126671],{},"Sowjetunion und China unterstützen Nordvietnam, das dafür kämpft Vietnam unter kommunistischer Kontrolle wieder zu vereinigen",[24,126673,126674],{},"Konflikt wird von einem Guerillakrieg dominiert",[24,126676,126677],{},"USA zieht Truppen zurück aufgrund wachsender Opposition und politischer Unruhen",[24,126679,126680],{},"Vietnam wird wiedervereinigt als der Norden den Süden erobert",[123949,126682,126684],{"id":126683},"krieg-in-afghanistan","Krieg in Afghanistan",[414,126686,126687,8158],{},[42,126688,126600],{},[21,126690,126691,126694],{},[24,126692,126693],{},"Kommunistische Partei",[24,126695,126696],{},"Widerstandskämpfer",[414,126698,126699,8158],{},[42,126700,1681],{},[21,126702,126703,126711,126714,126722,126725,126733],{},[24,126704,126705,126706],{},"Innere Unruhen in Afghanistan aufgrund von Unzufriedenheit mit der bestehenden Regierung\n",[21,126707,126708],{},[24,126709,126710],{},"Revolution findet statt: Kommunistische Partei kommt an die Macht",[24,126712,126713],{},"Sowjetunion befürchtet, dass an der südlichen Grenze ein pro-westlicher Staat entstehen könnte",[24,126715,126716,126717],{},"Sowjetunion unterstützt kommunistische Regierung um die Region zu stabilisieren\n",[21,126718,126719],{},[24,126720,126721],{},"USA verurteilt diese Aktion",[24,126723,126724],{},"USA und andere westliche Länder unterstützen Widerstandskämpfer in Afghanistan um den Einmarsch der Sowjetunion zu bekämpfen",[24,126726,126727,126728],{},"Sowjetunion zieht sich zurück\n",[21,126729,126730],{},[24,126731,126732],{},"Gilt als Meilenstein im Kalten Krieg und im späteren Zusammenbruch der Sowjetunion",[24,126734,126735],{},"Bürgerkrieg in Afghanistan setzt sich fort -> Taliban entsteht",[16,126737,126739],{"id":126738},"warschauer-pakt","Warschauer Pakt",[21,126741,126742,126745,126748],{},[24,126743,126744],{},"Gegenspieler zur Nato",[24,126746,126747],{},"Sozialistische Staaten, die von der Sowjetunion geführt wurden",[24,126749,126750,126751],{},"Mitglieder:\n",[21,126752,126753,126756,126759,126762,126765,126768,126771,126774],{},[24,126754,126755],{},"Albanien",[24,126757,126758],{},"Bulgarien",[24,126760,126761],{},"DDR",[24,126763,126764],{},"Polen",[24,126766,126767],{},"Rumänien",[24,126769,126770],{},"Russland",[24,126772,126773],{},"Tschechoslowakei",[24,126775,126776],{},"Ungarn",[16,126778,126780],{"id":126779},"wiedervereinigung-deutschlands-3-oktober-1990","Wiedervereinigung Deutschlands (3. Oktober 1990)",[414,126782,126783],{},"Beitritt der Deutschen Demokratischen Republik (DDR) zur Bundesrepublik Deutschland (BRD)",[470,126785,126787],{"id":126786},"zwei-vier-vertrag","„Zwei + Vier“ – Vertrag",[414,126789,126790,8158],{},[42,126791,126792],{},"Zwei deutsche Staaten",[21,126794,126795,126797],{},[24,126796,126761],{},[24,126798,126799],{},"BRD",[414,126801,126802,8158],{},[42,126803,126804],{},"Vier Siegermächte",[21,126806,126807,126810,126813,126816],{},[24,126808,126809],{},"USA",[24,126811,126812],{},"Sowjetunion",[24,126814,126815],{},"Frankreich",[24,126817,126818],{},"Vereinigtes Königreich",[414,126820,126821,8158],{},[42,126822,5795],{},[21,126824,126825,126828,126831],{},[24,126826,126827],{},"Alle 6 unterzeichnen den Vertrag",[24,126829,126830],{},"Beendet die Alliierte Besatzungsherrschaft über Deutschland",[24,126832,126833,126834],{},"Vertragsbestandteile:\n",[21,126835,126836,126839,126847],{},[24,126837,126838],{},"Bestätigung der Grenzen",[24,126840,126841,126842],{},"Stellt volle Souveränität und Unabhängigkeit wieder her\n",[21,126843,126844],{},[24,126845,126846],{},"Deutschland wird als gleichberechtigtes Mitglied anerkannt",[24,126848,126849],{},"Abzug der Besatzungstruppen aus Deutschland (USA, Sowjetunion und Frankreich)",[470,126851,126853],{"id":126852},"weitere-bedingungen","Weitere Bedingungen",[21,126855,126856,126861],{},[24,126857,126858,126860],{},[42,126859,126809],{},": Geeinigtes Deutschland soll Mitglied der NATO bleiben",[24,126862,126863,126865],{},[42,126864,126812],{},": Keine Ausdehnung der NATO nach Osten",[16,126867,126869],{"id":126868},"nato-osterweiterung","NATO-Osterweiterung",[21,126871,126872,126875,126878,126886,126889],{},[24,126873,126874],{},"Nach dem Zerfall des Warschauer Pakts erlangten die ehemals kommunistischen Staaten Unabhängigkeit und es entstanden neue Staaten in Osteuropa",[24,126876,126877],{},"Viele dieser Länder streben Demokratie und Integration in westliche Strukturen an",[24,126879,126880,126881],{},"Wunsch nach Sicherheit und Schutz vor dem Osten spielt große Rolle\n",[21,126882,126883],{},[24,126884,126885],{},"Viele Staaten entscheiden sich der NATO beizutreten",[24,126887,126888],{},"Erweiterung gilt als entscheidender Schritt zur Festigung der Sicherheit und Stabilität in Europa",[24,126890,126891],{},"Russland hat bedenken und leistet Widerstand, da die Erweiterung eine Bedrohung der Sicherheitsinteressen darstellt",[16,126893,126895],{"id":126894},"rolle-der-ukraine-in-der-osterweiterung","Rolle der Ukraine in der Osterweiterung",[470,126897,126899],{"id":126898},"basisinformationen-zur-ukraine","Basisinformationen zur Ukraine",[21,126901,126902,126905,126908,126911,126922],{},[24,126903,126904],{},"Zweitgrößter Staat Europas (nach Russland)",[24,126906,126907],{},"Seit 1991 unabhängig (vorher Sowjetunion)",[24,126909,126910],{},"Ca. 45 Mio. Einwohner",[24,126912,126913,126914],{},"Russische Einwohner in bestimmten Gebieten:\n",[21,126915,126916,126919],{},[24,126917,126918],{},"Krim: 58% Russen",[24,126920,126921],{},"Donezk und Luhansk: 40%",[24,126923,126924,126927],{},[42,126925,126926],{},"Kein Teil der EU",[21,126928,126929],{},[24,126930,126931],{},"Beziehung zwischen EU und Ukraine nur intensiviert durch verschiedene Abkommen",[470,126933,126935],{"id":126934},"geschichte-der-ukraine","Geschichte der Ukraine",[21,126937,126938,126965,126987],{},[24,126939,126940,126941],{},"Putin versucht Ukraine in eurasische Wirtschaftsunion einzugliedern\n",[21,126942,126943,126946],{},[24,126944,126945],{},"Gegengewicht zum europäischen Wirtschaftsraum",[24,126947,126948,126949],{},"Mitglieder bis dahin:\n",[21,126950,126951,126954,126957,126960,126963],{},[24,126952,126953],{},"Armenien",[24,126955,126956],{},"Belarus",[24,126958,126959],{},"Kasachstan",[24,126961,126962],{},"Kirgistan",[24,126964,126770],{},[24,126966,126967,126970,126971],{},[42,126968,126969],{},"2012",": Es soll ein Assoziierungsabkommen zum EU-Beitritt unterschrieben werden\n",[21,126972,126973,126976,126979],{},[24,126974,126975],{},"Russland übt Druck auf die Ukraine aus",[24,126977,126978],{},"Ukraine zieht kurz vorher die Zusage zurück",[24,126980,126981,126982],{},"Es entstehen Massenproteste der Bevölkerung\n",[21,126983,126984],{},[24,126985,126986],{},"Z.B. Massenproteste auf dem Euro-Majdan (Platz in Kiew)",[24,126988,126989,126992,126993],{},[42,126990,126991],{},"2014",": Erneute Eskalation\n",[21,126994,126995],{},[24,126996,126997,126998],{},"Ukraine unterzeichnet das Assoziierungsabkommen\n",[21,126999,127000,127003],{},[24,127001,127002],{},"kein Beitritt in die EU, nur Intensivierung der Beziehungen",[24,127004,127005],{},"Russland verurteilt die Entscheidung und die Majdanbewegung",[470,127007,127009],{"id":127008},"eskalation-auf-der-krim","Eskalation auf der Krim",[21,127011,127012,127015,127026,127029],{},[24,127013,127014],{},"Ethnische Mehrheit in diesem Bereich der Ukraine: Russen",[24,127016,127017,127020,127021],{},[42,127018,127019],{},"1954",": Krim wird Teil der Ukrainischen Sowjetrepublik (vorher russisch)\n",[21,127022,127023],{},[24,127024,127025],{},"Nach dem Zerfall der Sowjetunion: Krim bleibt Teil der Ukraine",[24,127027,127028],{},"Russland hat Flottenbasis Sewastopol auf der Krim",[24,127030,127031,127033,127034],{},[42,127032,126991],{},": Russische Soldaten besetzen Parlament, Regierungsgebäude und den Flughafen Simferopols, der Hauptstadt der Krim\n",[21,127035,127036,127039,127042],{},[24,127037,127038],{},"Verkündung des Anschlusses an Russland",[24,127040,127041],{},"Wird am 17. März 2014 durch Referendum bestätigt",[24,127043,127044],{},"Führt zu Spannungen zwischen Russland und der Ukraine",[470,127046,127048],{"id":127047},"der-donbass-konflikt","Der Donbass-Konflikt",[21,127050,127051,127054,127057,127060],{},[24,127052,127053],{},"Krieg entfacht im Osten der Ukraine unter anderem durch den Anschluss der Krim an Russland",[24,127055,127056],{},"Westliche Staaten versuchen seither erfolglos den Konflikt durch politische Verhandlungen zu lösen",[24,127058,127059],{},"Waffenstillstandsvereinbarungen vom Minsker Abkommen wurden nicht umgesetzt",[24,127061,127062,127063],{},"Prorussische Gruppen erklären die Unabhängigkeit und rufen die „Volksrepubliken“ Donezk und Luhansk aus\n",[21,127064,127065],{},[24,127066,127067],{},"Bauen seit 2014 diktatorische quasi-staatliche Strukturen auf",[16,127069,127071],{"id":127070},"ist-putin-isoliert","Ist Putin isoliert?",[21,127073,127074,127077],{},[24,127075,127076],{},"Durch Sanktionen von westlicher Welt teilweise isoliert",[24,127078,127079,127080],{},"Baut neue Partnerschaften auf:\n",[21,127081,127082,127085],{},[24,127083,127084],{},"Kim Jong Un (Nordkorea): „Wir unterstützen alle Entscheidungen Putins“",[24,127086,127087],{},"Xi Jiping (China) verspricht enge wirtschaftliche Zusammenarbeit",[16,127089,127091],{"id":127090},"demokratiesterben","Demokratiesterben",[470,127093,127095],{"id":127094},"wie-demokratien-sterben","Wie Demokratien sterben",[21,127097,127098,127104,127110],{},[24,127099,127100,127103],{},[42,127101,127102],{},"Autoritäre Übernahme",": Präsidenten höhlen Institutionen aus",[24,127105,127106,127109],{},[42,127107,127108],{},"Politischer Extremismus",": In Wahlen und Volksabstimmungen wird extrem gewählt",[24,127111,127112,127115,127116],{},[42,127113,127114],{},"Entscheidung"," der obersten Gerichte sind ",[42,127117,127118],{},"politische motiviert",[470,127120,127122],{"id":127121},"demokratie-erhalten","Demokratie erhalten",[414,127124,127125],{},"Parteien können folgende Punkte beachten um eine Demokratie zu erhalten:",[21,127127,127128,127136,127139],{},[24,127129,127130,127131],{},"Wirtschaft stabil halten. Keine schnellen liberalen Reformen durchführen\n",[21,127132,127133],{},[24,127134,127135],{},"Sonst wird ggf. radikal gewählt",[24,127137,127138],{},"Keine Zusammenarbeit mit radikalen Parteien",[24,127140,127141],{},"Durchmischung des politischen Personals durch alle Bevölkerungsschichten",[470,127143,127145],{"id":127144},"rolle-des-bundesverfassungsgerichts","Rolle des Bundesverfassungsgerichts",[414,127147,127148],{},"Aus Folgenden Gründen ist es wichtig, dass die Verfassungsrichter unabhängig sind:",[21,127150,127151,127154,127157,127160],{},[24,127152,127153],{},"Gericht und Verfassungsorgan zugleich",[24,127155,127156],{},"Unterliegt nicht der Kontrolle der Wähler oder der Regierung",[24,127158,127159],{},"Kontrolliert auf Antrag Urteile und Gesetze auf Verfassungswidrigkeiten",[24,127161,127162],{},"Kann ggf. Entscheidungen der Regierung zurücknehmen um die Demokratie zu schützen",[470,127164,127166],{"id":127165},"probleme-hinsichtlich-der-meinungsfreiheit","Probleme hinsichtlich der Meinungsfreiheit",[414,127168,127169,127172],{},[42,127170,127171],{},"Cancel Culture",": Diffamieren anstatt Diskutieren",[21,127174,127175,127178],{},[24,127176,127177],{},"Praxis problematische Äußerungen ideologisch aufladen und öffentlich ächten",[24,127179,127180,127181],{},"Personen labeln um sie öffentlich zu verurteilen, bzw. zu boykottieren\n",[21,127182,127183],{},[24,127184,127185],{},"Label: Nazi, Querdenker, Putinversteher etc.",[414,127187,127188,127191],{},[42,127189,127190],{},"What-aboutism",": In einer bestehenden Diskussion den Fokus von einem Problemfeld auf ein anderes zu verschieben",[21,127193,127194,127197],{},[24,127195,127196],{},"Von eigentlicher Kritik ablenken, indem man auf etwas anderes verweist, was vermeintlich ähnlich oder schlimmer ist.",[24,127198,127199],{},"Relativiert einen Vorwurf",[16,127201,127203],{"id":127202},"vergleich-supremecourt-bundesverfassungsgericht","Vergleich: Supremecourt – Bundesverfassungsgericht",[470,127205,127207],{"id":127206},"basisinformationen-zum-supremecourt","Basisinformationen zum Supremecourt",[21,127209,127210,127213,127216],{},[24,127211,127212],{},"Oberster Gerichtshof der USA",[24,127214,127215],{},"Sitz in Washington",[24,127217,127218,127219],{},"Besteht aus 9 Richtern\n",[21,127220,127221,127224,127227],{},[24,127222,127223],{},"Werden durch Präsidenten nominiert",[24,127225,127226],{},"Werden durch den Senat bestätigt",[24,127228,127229],{},"Berufung auf Lebenszeit",[470,127231,127233],{"id":127232},"umstrittener-beschluss-des-supremecourts-zum-recht-auf-abtreibung","Umstrittener Beschluss des Supremecourts zum Recht auf Abtreibung",[21,127235,127236,127244,127265],{},[24,127237,127238,127239],{},"Kein grundsätzliches Recht mehr auf Abtreibung in den USA\n",[21,127240,127241],{},[24,127242,127243],{},"Bundesstaaten können die Regelung dafür selbst treffen",[24,127245,127246,127247],{},"Mögliche „undemokratische“ Entscheidung\n",[21,127248,127249,127252],{},[24,127250,127251],{},"Mehrheit der Amerikaner ist für ein Recht auf Abtreibung",[24,127253,127254,127255],{},"Richter entscheiden über Gesetz, sind aber nicht demokratisch gewählt\n",[21,127256,127257,127262],{},[24,127258,127259],{},[42,127260,127261],{},"Vertreten keine Mehrheiten",[24,127263,127264],{},"Müssen nur dem Gesetz und ihrem Gewissen folgen",[24,127266,127267,127268],{},"Präsident Trump konnte Entscheidungsrichtung des Supremecourts beeinflussen indem er die Zusammensetzung des Supremecourts änderte\n",[21,127269,127270],{},[24,127271,127272],{},"5 von 9 Richter sind konservativ ausgerichtet",[470,127274,127276],{"id":127275},"basisinformationen-zum-bundesverfassungsgericht","Basisinformationen zum Bundesverfassungsgericht",[21,127278,127279,127282,127293],{},[24,127280,127281],{},"16 Richter in 2 Senaten",[24,127283,127284,127285],{},"Wird jeweils zu Hälfte von den folgenden Institutionen gewählt:\n",[21,127286,127287,127290],{},[24,127288,127289],{},"Bundestag",[24,127291,127292],{},"Bundesrat",[24,127294,127295],{},"Amtsdauer beträgt 12 Jahre",[470,127297,127299],{"id":127298},"kritik-am-bundesverfassungsgericht","Kritik am Bundesverfassungsgericht",[21,127301,127302,127313,127321],{},[24,127303,127304,127305,127308],{},"Verfassungsrichter ",[42,127306,127307],{},"vertreten ebenfalls keine Mehrheit",[21,127309,127310],{},[24,127311,127312],{},"Sind nur dem Recht und ihrem Gewissen verpflichtet",[24,127314,127315,127316],{},"Kritisch, wenn zu große Nähe zu einer Partei\n",[21,127317,127318],{},[24,127319,127320],{},"Z.B. ehemaliger Abgeordneter wird zum Verfassungsrichter",[24,127322,127323,127324],{},"Vorschlagverfahren für Richter ist nicht öffentlich\n",[21,127325,127326],{},[24,127327,127328],{},"Intransparent",[16,127330,127332],{"id":127331},"meinungs-und-pressefreiheit","Meinungs- und Pressefreiheit",[21,127334,127335,127347],{},[24,127336,127337,127338],{},"Meinungsfreiheit ist im Art. 5 Grundgesetz verankert:\n",[21,127339,127340],{},[24,127341,127342,127343,127346],{},"„",[406,127344,127345],{},"Jeder hat das Recht, seine Meinung in Wort, Schrift und Bild frei zu äußern und zu verbreiten und sich aus allgemein zugänglichen Quellen ungehindert zu unterrichten. Die Pressefreiheit und die Freiheit der Berichterstattung durch Rundfunk und Film werden gewährleistet. Eine Zensur findet nicht statt","“",[24,127348,127349,127350],{},"Medien sind „Vierte Gewalt“\n",[21,127351,127352],{},[24,127353,127354],{},"Kontrollieren die Regierung",{"title":269,"searchDepth":270,"depth":270,"links":127356},[127357,127360,127361,127365,127366,127372,127373,127379,127385],{"id":126403,"depth":270,"text":126404,"children":127358},[127359],{"id":126407,"depth":1263,"text":126408},{"id":126738,"depth":270,"text":126739},{"id":126779,"depth":270,"text":126780,"children":127362},[127363,127364],{"id":126786,"depth":1263,"text":126787},{"id":126852,"depth":1263,"text":126853},{"id":126868,"depth":270,"text":126869},{"id":126894,"depth":270,"text":126895,"children":127367},[127368,127369,127370,127371],{"id":126898,"depth":1263,"text":126899},{"id":126934,"depth":1263,"text":126935},{"id":127008,"depth":1263,"text":127009},{"id":127047,"depth":1263,"text":127048},{"id":127070,"depth":270,"text":127071},{"id":127090,"depth":270,"text":127091,"children":127374},[127375,127376,127377,127378],{"id":127094,"depth":1263,"text":127095},{"id":127121,"depth":1263,"text":127122},{"id":127144,"depth":1263,"text":127145},{"id":127165,"depth":1263,"text":127166},{"id":127202,"depth":270,"text":127203,"children":127380},[127381,127382,127383,127384],{"id":127206,"depth":1263,"text":127207},{"id":127232,"depth":1263,"text":127233},{"id":127275,"depth":1263,"text":127276},{"id":127298,"depth":1263,"text":127299},{"id":127331,"depth":270,"text":127332},{},{"title":2424},"\u002Ffaecher\u002Fwpg\u002F3-4-zsmf-sa1","\u002Fdownloads\u002FWPG\u002FWPG_3-4_ZSMF_SA1.pdf",{"title":6,"description":269},"faecher\u002Fwpg\u002F3-4-zsmf-sa1","WPG","Wirtschaft, Politik und Gesellschaft","T5L-m10X-Pn0Bmh8V1fBQsTnB_gKRO11NUXRNuHnpNk",{"id":127396,"title":301,"body":127397,"class":2421,"description":269,"extension":283,"meta":128034,"navigation":128035,"path":128036,"pdfDownload":128037,"scope":1288,"scopeName":1289,"seo":128038,"stem":128039,"subject":127392,"subjectName":127393,"type":295,"typeName":296,"year":2431,"__hash__":128040},"faecher\u002Ffaecher\u002Fwpg\u002F3-4-zsmf-sa2.md",{"type":8,"value":127398,"toc":128011},[127399,127403,127407,127412,127467,127471,127490,127494,127511,127515,127537,127541,127550,127554,127558,127561,127578,127582,127587,127593,127599,127603,127622,127626,127648,127652,127656,127670,127674,127694,127698,127702,127734,127738,127959,127963,127967,127981,127985],[11,127400,127402],{"id":127401},"zusammenfassung-wpg-schulaufgabe-2","Zusammenfassung WPG Schulaufgabe 2",[16,127404,127406],{"id":127405},"wirtschaftskreislauf","Wirtschaftskreislauf",[414,127408,127409],{},[1504,127410],{"alt":269,"src":127411},"\u002Fdownloads\u002FWPG\u002Fimages\u002F3-4-zsmf-sa2_img_1.png",[21,127413,127414,127427,127442,127455],{},[24,127415,127416,127419,127420,127423,127424],{},[42,127417,127418],{},"Private Haushalte & Unternehmen"," zahlen ",[42,127421,127422],{},"Steuern"," an den Staat und erhalten dafür ",[42,127425,127426],{},"staatliche Leistungen",[24,127428,127429,6100,127431,127434,127435,127438,127439],{},[42,127430,127418],{},[42,127432,127433],{},"legen"," ihr Geld bei der Bank ",[42,127436,127437],{},"an",", und erhalten dafür ",[42,127440,127441],{},"Kredite\u002FZinsen",[24,127443,127444,127447,127448,127451,127452],{},[42,127445,127446],{},"Private Haushalte"," leisten ",[42,127449,127450],{},"Erwerbsarbeit"," bei Unternehmen und erhalten dafür ein ",[42,127453,127454],{},"Erwerbseinkommen",[24,127456,127457,127459,127460,127463,127464],{},[42,127458,127446],{}," geben ",[42,127461,127462],{},"Geld"," an Unternehmen und erhalten dafür ",[42,127465,127466],{},"Güter\u002FDienstleistungen",[470,127468,127470],{"id":127469},"beispiel-hohe-sparrate","Beispiel: Hohe Sparrate",[21,127472,127473,127478,127484],{},[24,127474,127475,127477],{},[42,127476,127446],{},": Sparen -> weniger Konsum bei Unternehmen",[24,127479,127480,127483],{},[42,127481,127482],{},"Unternehmen",": weniger Konsum -> weniger Umsatz",[24,127485,127486,127489],{},[42,127487,127488],{},"Staat",": weniger Umsatz -> weniger Steuern -> weniger staatliche Leistungen",[470,127491,127493],{"id":127492},"beispiel-steigerung-staatlicher-ausgaben","Beispiel: Steigerung staatlicher Ausgaben",[21,127495,127496,127501,127506],{},[24,127497,127498,127500],{},[42,127499,127446],{},": Haben mehr Geld -> konsumieren mehr",[24,127502,127503,127505],{},[42,127504,127482],{},": Machen mehr Umsatz -> zahlen mehr Steuern",[24,127507,127508,127510],{},[42,127509,127488],{},": Höhere Einnahmen -> zahlt höhere staatliche Leistungen",[470,127512,127514],{"id":127513},"beispiel-sinkende-unternehmensgewinne","Beispiel: Sinkende Unternehmensgewinne",[21,127516,127517,127522,127527,127532],{},[24,127518,127519,127521],{},[42,127520,127482],{},": Weniger Umsatz -> entlassen Mitarbeiter",[24,127523,127524,127526],{},[42,127525,127446],{},": Weniger Einkommen -> konsumieren weniger",[24,127528,127529,127531],{},[42,127530,127482],{},": Weniger Umsatz -> zahlen weniger Steuern",[24,127533,127534,127536],{},[42,127535,127488],{},": Weniger Geld für staatliche Leistungen zur Verfügung",[16,127538,127540],{"id":127539},"leitzins","Leitzins",[414,127542,65463,127543,127546,127547,7834],{},[42,127544,127545],{},"EZB"," (Europäische Zentralbank) gibt einen Zins vor, an dem sich die Anlage- und Kreditzinsen der Banken orientieren ",[42,127548,127549],{},"müssen",[470,127551,127553],{"id":127552},"niedriger-leitzins","Niedriger Leitzins",[475,127555,127557],{"id":127556},"auswirkung","Auswirkung",[414,127559,127560],{},"Zinsen für Geldanlagen bei Banken und Kreditvergaben sinken",[21,127562,127563,127566,127569,127572],{},[24,127564,127565],{},"Klassische Geldanlagen werden unattraktiv (da keine Zinsen; Sparen macht keinen Sinn)",[24,127567,127568],{},"Kreditaufnahme wird attraktiv (da kaum Zinsen auf den Kredit kommen)",[24,127570,127571],{},"Kredite werden investiert (z.B. Immobilien), und kurbeln somit den Konsum und die Wirtschaft an",[24,127573,127574,127575],{},"Erhöht die Geldmenge (wegen der Kreditaufnahmen): ",[42,127576,127577],{},"Geldmengeninflation",[16,127579,127581],{"id":127580},"inflation","Inflation",[414,127583,127584,127586],{},[42,127585,51216],{},": Verringern der Kaufkraft im Zeitverlauf",[414,127588,127589,127592],{},[42,127590,127591],{},"Messung",": Festgelegte Waren, deren Preise in einer bestimmten Periode verglichen werden.",[414,127594,127595,127598],{},[42,127596,127597],{},"Normale Inflation",": 2-3% (DE 2023: 5,9%)",[470,127600,127602],{"id":127601},"ursachen","Ursachen",[21,127604,127605,127610,127616],{},[24,127606,127607,127609],{},[42,127608,127577],{},": Steigerung der Geldmenge – Kreditaufnahmen",[24,127611,127612,127615],{},[42,127613,127614],{},"Kosteninflation",": Steigerung der Kosten – Lieferengpässe",[24,127617,127618,127621],{},[42,127619,127620],{},"Nachfrageinflation",": Steigerung der Nachfrage – Immobilienkauf",[470,127623,127625],{"id":127624},"beispiel-immobilienkäufe","Beispiel Immobilienkäufe",[21,127627,127628,127633,127638,127641],{},[24,127629,127630,127632],{},[42,127631,127446],{}," legen ihr Kapital nicht mehr an, da es keine Zinsen mehr gibt",[24,127634,127635,127637],{},[42,127636,127446],{}," wollen ihr Kapital (in Immobilien) investieren",[24,127639,127640],{},"Zum Beispiel Renovierung der Fenster einer Immobilie",[24,127642,127643,127644,127647],{},"Nachfrage für Fenster steigt -> ",[42,127645,127646],{},"Hersteller"," kann Preise erhöhen (Nachfrageinflation)",[16,127649,127651],{"id":127650},"sparen","Sparen",[470,127653,127655],{"id":127654},"sparparadoxon","Sparparadoxon",[21,127657,127658,127664],{},[24,127659,127660,127663],{},[42,127661,127662],{},"Für den Einzelnen:"," Sparen ist gut, da Rücklagen gebildet werden",[24,127665,127666,127669],{},[42,127667,127668],{},"Für die Volkswirtschaft",": Sparen ist schlecht, da weniger konsumiert wird",[470,127671,127673],{"id":127672},"beispiel-sparen-anhand-des-wirtschaftskreislaufs","Beispiel: Sparen anhand des Wirtschaftskreislaufs",[21,127675,127676,127681,127686,127691],{},[24,127677,127678,127680],{},[42,127679,127446],{}," sparen -> konsumieren weniger (z.B. Essen gehen)",[24,127682,127683,127685],{},[42,127684,127482],{}," machen weniger Umsatz -> zahlen weniger Steuern an den Staat",[24,127687,127688,127690],{},[42,127689,127488],{}," hat weniger Geld zur Verfügung -> muss Leistungen kürzen",[24,127692,127693],{},"Dem Wirtschaftskreislauf wird Geld entzogen!",[16,127695,127697],{"id":127696},"grundgesetz","Grundgesetz",[470,127699,127701],{"id":127700},"entstehung","Entstehung",[21,127703,127704,127707,127710,127716,127724,127731],{},[24,127705,127706],{},"Kriegsende 1945",[24,127708,127709],{},"Deutschland wird unter den Siegermächten in vier Zonen aufgeteilt",[24,127711,127712,127713],{},"Siegermächte: ",[42,127714,127715],{},"USA, GB, Frankreich und die Sowjetunion",[24,127717,127718,127719],{},"Spannung zwischen westlichen Mächten und Sowjetunion\n",[21,127720,127721],{},[24,127722,127723],{},"Deutschland wird aufgeteilt (BRD\u002FDDR) -> Mauerbau in Berlin",[24,127725,127726],{},[318,127727,127728],{"start":10681},[24,127729,127730],{},"Mai 1949 wird das Grundgesetz beschlossen",[24,127732,127733],{},"Beitritt der DDR zur BRD (1990): Grundgesetz gilt jetzt auch für die ehem. DDR",[470,127735,127737],{"id":127736},"artikel","Artikel",[765,127739,127740,127756],{},[768,127741,127742],{},[771,127743,127744,127748,127752],{},[774,127745,127746],{},[42,127747,1932],{},[774,127749,127750],{},[42,127751,25794],{},[774,127753,127754],{},[42,127755,5795],{},[787,127757,127758,127768,127778,127788,127798,127808,127818,127828,127838,127848,127858,127868,127878,127888,127898,127908,127918,127929,127939,127949],{},[771,127759,127760,127762,127765],{},[792,127761,14223],{},[792,127763,127764],{},"Würde des Menschen",[792,127766,127767],{},"Würde des Menschen ist zentrales Prinzip des Grundgesetzes; Alle staatliche Gewalt zum Schutz und Achtung der Menschenwürde",[771,127769,127770,127772,127775],{},[792,127771,14206],{},[792,127773,127774],{},"Freie Entfaltung der Persönlichkeit;  Körperliche Unversehrtheit",[792,127776,127777],{},"Solange nicht gegen Verfassung, oder Rechte anderer verletzt werden: Freie Entfaltung der Persönlichkeit",[771,127779,127780,127782,127785],{},[792,127781,14318],{},[792,127783,127784],{},"Gleichheit vor dem Gesetz",[792,127786,127787],{},"Keine Diskriminierung aufgrund Geschlechtes, Abstammung, Rasse, Sprache usw. Vor dem Gesetz sind alle gleich.",[771,127789,127790,127792,127795],{},[792,127791,2894],{},[792,127793,127794],{},"Religionsfreiheit",[792,127796,127797],{},"Freie Wahl und Ausübung einer Religion",[771,127799,127800,127802,127805],{},[792,127801,14292],{},[792,127803,127804],{},"Freie Meinungsäußerung",[792,127806,127807],{},"Freiheit der Meinung, Presse und Berichterstattung",[771,127809,127810,127812,127815],{},[792,127811,14278],{},[792,127813,127814],{},"Schutz der Familie",[792,127816,127817],{},"Ehe und Familie als Grundlage der Gesellschaft",[771,127819,127820,127822,127825],{},[792,127821,14264],{},[792,127823,127824],{},"Staatliches Schulwesen",[792,127826,127827],{},"Garantiert Eltern das Recht, über die Schulbildung ihrer Kinder zu bestimmen",[771,127829,127830,127832,127835],{},[792,127831,16286],{},[792,127833,127834],{},"Versammlungsfreiheit",[792,127836,127837],{},"Freiheit der Versammlung, Vereinigung und Gewerkschaftsbildung",[771,127839,127840,127842,127845],{},[792,127841,33983],{},[792,127843,127844],{},"Bilden von Vereinigungen",[792,127846,127847],{},"Recht Vereinigungen zu bilden; Regelt Tarifautonomie und Streikrecht",[771,127849,127850,127852,127855],{},[792,127851,81676],{},[792,127853,127854],{},"Briefgeheimnis",[792,127856,127857],{},"Beschränkt Eingriffsmöglichkeiten des Staates in die Privatsphäre",[771,127859,127860,127862,127865],{},[792,127861,87390],{},[792,127863,127864],{},"Freizügigkeit",[792,127866,127867],{},"Freie Wahl des Wohnsitzes und Schutz vor Ausweisung",[771,127869,127870,127872,127875],{},[792,127871,36010],{},[792,127873,127874],{},"Freie Berufswahl",[792,127876,127877],{},"Freie Wahl von Beruf, Arbeitsplatz und Ausbildungsstätte",[771,127879,127880,127882,127885],{},[792,127881,124695],{},[792,127883,127884],{},"Unverletzlichkeit der Wohnung",[792,127886,127887],{},"Durchsuchungen dürfen nur durch richterliche Anordnungen erfolgen, oder bei Gefahr im Verzug",[771,127889,127890,127892,127895],{},[792,127891,83191],{},[792,127893,127894],{},"Eigentumsrecht",[792,127896,127897],{},"Schützt Eigentum und regelt Bedingungen der Enteignung",[771,127899,127900,127902,127905],{},[792,127901,18021],{},[792,127903,127904],{},"Recht zur Vergesellschaftung",[792,127906,127907],{},"Der Staat kann Grund und Boden, Natur-Schätze und Produktions-Mittel vergesellschaften. (Gehört dann allen Menschen gemeinsam)",[771,127909,127910,127912,127915],{},[792,127911,83697],{},[792,127913,127914],{},"Bestand der Staatsangehörigkeit",[792,127916,127917],{},"Regelt Bedingungen in denen die Staatsangehörigkeit entzogen werden darf; Regelt Asylrecht",[771,127919,127920,127923,127926],{},[792,127921,127922],{},"17",[792,127924,127925],{},"Petitionsrecht",[792,127927,127928],{},"Recht auf Petition, das Recht, Eingaben an staatliche Stellen zu richten",[771,127930,127931,127933,127936],{},[792,127932,64945],{},[792,127934,127935],{},"Verwirkung der Grundrechte",[792,127937,127938],{},"Einschränkung der Grundrechte bei Verfassungsfeindlichen Bestrebungen",[771,127940,127941,127943,127946],{},[792,127942,44422],{},[792,127944,127945],{},"Unantastbarkeit der Grundrechte",[792,127947,127948],{},"Integrität des Grundgesetzes schützen",[771,127950,127951,127953,127956],{},[792,127952,83246],{},[792,127954,127955],{},"Staatsstrukturprinzipien",[792,127957,127958],{},"Legt grundlegende Prinzipien der Staatsorganisation fest",[470,127960,127962],{"id":127961},"art-20-gg","Art. 20 GG",[475,127964,127966],{"id":127965},"die-bundesrepublik-deutschland","Die Bundesrepublik Deutschland",[21,127968,127969,127975],{},[24,127970,127971,127974],{},[42,127972,127973],{},"Bundes",": Aufteilung in Bundesländer (Föderalismus)",[24,127976,127977,127980],{},[42,127978,127979],{},"Republik",": Staatsform mit gewähltem Staatsoberhaupt",[475,127982,127984],{"id":127983},"unveränderliche-strukturprinzipien","Unveränderliche Strukturprinzipien",[21,127986,127987,127993,127999,128005],{},[24,127988,127989,127992],{},[42,127990,127991],{},"Demokratie",": Herrschaft des Volkes",[24,127994,127995,127998],{},[42,127996,127997],{},"Bundestaatsprinzip",": Zusammenschluss der Bundesländer",[24,128000,128001,128004],{},[42,128002,128003],{},"Rechtsstaatsprinzip",": Alle Entscheidungen sind an Recht gebunden",[24,128006,128007,128010],{},[42,128008,128009],{},"Sozialstaatsprinzip",": Sicherung eines menschenwürdigen Lebens für alle Bürger",{"title":269,"searchDepth":270,"depth":270,"links":128012},[128013,128018,128021,128025,128029],{"id":127405,"depth":270,"text":127406,"children":128014},[128015,128016,128017],{"id":127469,"depth":1263,"text":127470},{"id":127492,"depth":1263,"text":127493},{"id":127513,"depth":1263,"text":127514},{"id":127539,"depth":270,"text":127540,"children":128019},[128020],{"id":127552,"depth":1263,"text":127553},{"id":127580,"depth":270,"text":127581,"children":128022},[128023,128024],{"id":127601,"depth":1263,"text":127602},{"id":127624,"depth":1263,"text":127625},{"id":127650,"depth":270,"text":127651,"children":128026},[128027,128028],{"id":127654,"depth":1263,"text":127655},{"id":127672,"depth":1263,"text":127673},{"id":127696,"depth":270,"text":127697,"children":128030},[128031,128032,128033],{"id":127700,"depth":1263,"text":127701},{"id":127736,"depth":1263,"text":127737},{"id":127961,"depth":1263,"text":127962},{},{"title":3985},"\u002Ffaecher\u002Fwpg\u002F3-4-zsmf-sa2","\u002Fdownloads\u002FWPG\u002FWPG_3-4_ZSMF_SA2.pdf",{"title":301,"description":269},"faecher\u002Fwpg\u002F3-4-zsmf-sa2","y9Xl7FPPI4NB55zKJJKy3n4VR-X_CZ_TH3_NgMaMIGE",1778676318010]