Archiv der Kategorie: LPIC-1[101]

Python 2.7 für CentOS

Es ist schon unglaublich, welche seitenlangen Anleitungen ich fand, um CentOS mit Python 2.7 auszustatten, statt mit Python 2.6.
Manche kompilieren sich das 2.7 sogar, dabei genügt:

yum install python27
scl enable python27 bash

Yum verwendet aber weiterhin Python 2.6.
Meine Lösung: Weg mit CentOS und her mit Ubuntu oder Debian. 😉

(3)

EDV für Dummies

oder „Apps und andere moderne Wunder“.
Um elektronisch Daten verarbeiten zu können benötigt man Maschinen. Von Großrechnern, ja die soll es auch noch geben, Midrange-Rechnern, ja, auch AS/400 ähnliche Dinge laufen noch, will ich hier genau so wenig sprechen, wie von Clouds, Cluster, Crids und Amöben oder Smartphones. Hier wundere ich mich nur einmal mehr über die Abzocke von professionellen und privaten PC-Benutzern.
Wenn sich heute jemand einen PC kauft, ist meist Windows vorinstalliert, oder es wird dem Kunden separat dazu verkauft. Wer sich ein Windows kauft, muss sich zwangsläufig auch viele andere Programme kaufen, denn ohne Firewall, Antivirus, DVD-Brennsoftware usw. wird man mit Windows nicht viel anfangen können. Für jede neue Version darf dann wieder extra bezahlt werden und die benötigt man ja unbedingt, zum Email schreiben oder um auf FaceBook Kommentare abzugeben. Für die meisten Leute die ich kenne, würde einer der ersten PC’s, die auf dem Markt kamen, völlig ausreichen. Online-Spieler, Foto- und Videobearbeiter sind da natürlich ausgenommen, aber einige von meinen Bekannten spielen nur ein paar mal, damit sie einen Grund haben, sich einen Superrechner zu kaufen, danach würde für ihre Tätigkeiten am PC auch ein Commodore 64 genügen.
Na gut, das hatten wir hier ja schon oft gehört und auch über die kriminellen Raubkopierer, die illegale Software verwenden, statt sich ein kostenloses, quell-offenes Linux zu installieren habe ich schon öfter geschrieben.
Jetzt sind mir diverse Kurse und Ausbildungen ins Auge gesprungen. Da zahlen Leute Unsummen, von einigen hundert bis zu mehreren tausend Euros dafür, dass sie sich eine alte Doku zu einer Software vorlesen lassen. Für Kurse zu freien Open-Source-Produkten, Programmiersprachen und Datenbanken, obwohl es rfc’s, recommendations, specification und Dokumentationen gibt. Die sind kostenlos erhältlich und immer am neuesten Stand der Dinge. Für jede neue Version einer Programmiersprache oder Datenbank erhält man mit dem Erscheinen die zugehörige Dokumentation.
Auch über Tutorials und Bücher dazu wundere ich mich manchmal, obwohl ich selbst schon welche kaufte. Ja, es ist einfach ein gutes Gefühl ein Buch mit über 1000 Seiten in der Hand zu halten und auf diese Art, die sonst kostenlose Dokumentation zu lesen, denn meist ist sie mit Schwänken aus dem Leben des Autors aufgelockert. Für manche mag es eben unheimlich wichtig sein, zu wissen, dass Ruby der Zucker ist, unter den ProgSpr und dass man eine Tasse Kaffee (oder 10 Liter Tee) trinkt, während der Java-Kompilation vom ersten „Hello World“ mit Eclipse, denn ohne IDE wird’s meist sowieso nix. Leider wissen manche ausgebildete App-Entwickler nach ihrem Abschluss mit Auszeichnung noch immer nicht, dass sie ganz gewöhnliche Anwendungsprogrammierer (app kommt von application, was soviel wie Anwendung bedeutet, liebe Dummies) sind, wie es sie schon seit den ersten Anwendungsprogrammen auf den 286er gab. Ich will Anwendungsprogrammierer auf keinen Fall unter Systemprogrammierer stellen, ganz im Gegenteil, die operieren ja sogar eine Schicht höher, aber App-Designer, App-Entwickler, App-Analytiker und App-Ingenieure sind mir suspekt. Bin ja nur gespannt, wann sich das erste Dummy App-AnwendungsprogrammiererIn für x-Anwendungen nennt. Aber verdenken kann ich es keinem, so ist das nun mal in unserer Welt. Ein Brainstorming (heute ist übrigens der Shitstorm viel moderner) verschafft dem Internet Versionsnummern und beginnt bei Web 2.0, obwohl es eigentlich ein Beta 0.1 ist, aus einem Http-Request wird Ajax und aus dem Rindsbraten meiner Urgroßmutter das „Boeuf à la mode – Prince Eugène“ oder aus der Palatschinke ein „Crêpes réchauffer et séduisant, rempli de confiture d’abricot trop sucrée avec sucre glace“. Na warum eigentlich nicht? Und da kann man dann schon ein bisserl mehr verlangen, denn immerhin muss der Kellner den Namen der Speisen ja auch lernen.
Alles gut und schön, aber wie kann man einen teuren Kurs besuchen um eine Markup-, Script- oder Programmiersprache zu erlernen? Ich wollte zu solchen Leuten eigentlich keinen näheren Kontakt und sie auch nicht genauer befragen, aber ich habe Besucher solcher Kurse dann doch kurz befragt, welches Betriebssystem (OS) sie dazu benutzen. Ich war nicht besonders überrascht darüber, dass manche behaupteten, sie verwenden kein OS, andere wussten nicht genau was das ist. Wieder andere meinten es ginge wohl um die Version von Windows, womit sie ja schon verdammt nahe dran waren. Ich wollte es nicht so genau wissen und hätte mir eigentlich nur Bezeichnungen für ihr OS gewünscht, aber die zwei lustigsten Antworten muss ich mir doch notieren. Ein angehender C++-Programmiere gab seine Befehle in die CMD ein und hielt diese nicht nur für das OS, sondern auch für IDE bzw. für Compiler, Linker und Editor. Das war für mich so ziemlich der Lustigste, aber ein JAVA-Experte stand ihm nicht viel nach, als er belehrend behauptete, dass JAVA Betriebssystem unabhängig sei und er daher keines benötigt zum Programmieren. Wow, das ist ja echt schräg. Ich habe da ja so einiges dazugelernt, vielleicht sollte ich mich auch für so einen Kurs oder einen PC-Führerschein einschreiben lassen.

(1817)

1.103.5 Prozesse: Erzeugung, Überwachung und Terminierung

lupus

Quelle für 1.103 Bild

Zurück zu 1.103 GNU und Unix Kommandos bzw. Linux Zertifizierungen LPIC-1 [101]: Unterlagen.
1.103.5 – Erzeugung, Überwachung und Terminierung von Prozessen
Prüfungskandidaten sollten in der Lage sein, Prozesse zu verwalten. Dieses Lernziel beinhaltet das Ausführen von Prozessen in Vorder- und Hintergrund, das Bringen eines Jobs vom Hintergrund in den Vordergrund und umgekehrt, das Starten eines Prozesses, der ohne Verbindung zu einem Terminal laufen soll, und die Mitteilung an ein Programm, daß es nach Abmelden weiterlaufen soll. Ebenfalls enthalten ist die Überwachung aktiver Prozesse, die Auswahl und das Sortieren von Prozessen für die Ausgabe, das Senden von Signalen an Prozesse, das Terminieren von Prozessen sowie das Erkennen und Terminieren von X-Anwendungen, die nach dem Schließen der X-Sitzung nicht ordnungsgemäß beendet wurden.
Die wichtigsten Dateien, Bezeichnungen und Anwendungen:
* & * bg * fg * jobs * kill *killall * nohup * ps *pstree * top
Ausführen von Prozessen im Vorder- und Hintergrund
Prozesse werden von der Shell grundsätzlich im Vordergrund gestartet, indem einfach eine Kommandozeile eingegeben wird. Die Shell wartet dann bis der Prozess beendet ist und kehrt erst danach zur Eingabeaufforderung zurück.
Damit die Eingabeaufforderung sofort wieder zur Verfügung steht, kann ein Prozess im Hintergrund gestartet werden, indem der Kommandozeile einfach ein Ampersand (&) angehängt wird.
Dadurch kehrt die Shell sofort wieder zur Eingabeaufforderung zurück, der gestartete Prozess läuft jetzt im Hintergrund.
Diese Ausführungsart eignet sich jedoch nur für Prozesse, die nichts auf die Standard-Ausgabe schreiben (oder deren Ausgaben umgeleitet werden), weil auch die Hintergrundausführung die Ausgaben auf der Standard-Ausgabe belässt. Ein Hintergrundprozeß, der permanent auf den Bildschirm Meldungen ausgibt, ist wohl eher störend.
Häufig wird diese Fähigkeit benutzt, um in der graphischen Oberfläche aus einem XTerm heraus graphische Programme aufzurufen. Durch die Hintergrundausführung kehrt die Shell sofort zur Eingabeaufforderung zurück, das XTerm ist also nicht solange gesperrt, solange das graphische Programm läuft.
1.103.5 Prozesse: Erzeugung, Überwachung und Terminierung weiterlesen

(360)

1.103.4 Unix Streams, Pipes und Umleitungen

lupus

Quelle für 1.103 Bild

Zurück zu 1.103 GNU und Unix Kommandos bzw. Linux Zertifizierungen LPIC-1 [101]: Unterlagen.
Prüfungskandidaten sollten in der Lage sein, Ein- und Ausgabeströme umzuleiten und sie zu verknüpfen, um Textdaten effizient zu verarbeiten. Dieses Lernziel beinhaltet das Umleiten von Standardeingabe, Standardausgabe und Standardfehlerausgabe, das Umleiten der Ausgabe eines Kommandos in die Eingabe eines anderen Kommandos, das Verwenden der Ausgabe eines Kommandos als Argument für ein anderes Kommando und das gleichzeitige Senden einer Ausgabe sowohl an die Standardausgabe als auch in eine Datei.

Die wichtigsten Dateien, Bezeichnungen und Anwendungen:

tee, xargs, <, <<, >, >>, |, ‘‘
Siehe auch man tee und man xargs und zu den Standard-Datenströme siehe auch auf Wikipedia stdout.
Grundlegendes Prinzip
Jedes Programm unter Linux besitzt drei Standardkanäle für die Datenein und -ausgabe. Diese drei Kanäle sind
Standard-Eingabe (STDIN)
Der Kanal, von dem das Programm seine Eingabe erwartet. Dieser Kanal besitzt die Kenn-Nummer 0 und ist normalerweise mit der Tastatur verbunden.
Standard-Ausgabe (STDOUT)
Der Kanal, auf den das Programm seine Ausgaben schreibt. Dieser Kanal besitzt die Kenn-Nummer 1 und ist normalerweise mit dem Monitor verbunden.
Standard-Fehlerausgabe (STDERR)
Der Kanal, auf den das Programm seine Fehlerausgaben schreibt. Dieser Kanal besitzt die Kenn-Nummer 2 und ist wie STDOUT normalerweise mit dem Monitor verbunden.
1.103.4 Unix Streams, Pipes und Umleitungen weiterlesen

(856)

1.103.3 Datei-Management in Linux

lupus

lupus

Aus dem Kapitel 1.103 GNU und Unix Kommandos
Prüfungskandidaten sollten in der Lage sein, die grundlegenden Unix Kommandos zum Kopieren und Verschieben von Dateien und Verzeichnissen zu benutzen. Dieses Lernziel beinhaltet das Durchführen fortgeschrittener Dateiverwaltungs-Operationen wie dem rekursiven Kopieren mehrerer Dateien, das rekursive Löschen von Verzeichnissen und das Verschieben von Dateien, deren Namen einem bestimmten Muster entsprechen. Dies beinhaltet das Benutzen einfacher und komplexerer Wildcard-Muster für das Bestimmen von Dateien sowie die Verwendung von find, um Dateien aufgrund von Typ, Größe oder Zeitstempel ausfindig zu machen und Operationen an ihnen durchzuführen.

Die wichtigsten Dateien, Bezeichnungen und Anwendungen:

* cp, find, mkdir, mv, ls, rm, rmdir, touch, File-Globbing (Suchmuster mit Wildcards), glob
Kommandos zum Umgang mit Dateien
Grundsätzlich stehen uns unter Linux die gleichen Programme zur Verfügung, wie unter jedem anderen textorientierten System. Wir können Dateien kopieren, verschieben (umbenennen) und löschen. Die jeweils notwendigen Kommandos sind cp (copy), mv (move) und rm (remove).

Im Gegensatz zu MSDOS Befehlen haben diese Linux/Unix-Befehle aber eine Eigenschaft, die nennenswert ist; sie können beliebig viele Dateien bearbeiten. Das heißt, es ist möglich mehrere Dateinamen anzugeben, die kopiert, verschoben oder gelöscht werden sollen.

Das bringt zumindestens beim kopieren und verschieben ein Problem mit sich, das so unter DOS nicht entsteht. DOS-Befehle zum kopieren und verschieben erlauben es, das Ziel der Operation wegzulassen. Fehlt das Ziel, so wird das aktuelle Verzeichnis als Ziel angenommen. Das ist bei Unix Befehlen nicht möglich, und zwar eben genau weil diese Befehle mehrere Dateien bearbeiten können. Dürften wir das Ziel weglassen, so wäre der Befehl, sofern ihm mehrere Dateien mitgegeben wurden, nicht in der Lage zu ermitteln, ob der letzte Parameter eine zu kopierende Datei sein soll oder das Zielverzeichnis… Trotzdem ist das leicht zu verschmerzen, heißt das aktuelle Verzeichnis doch einfach. Es reicht also, als letzten Parameter einen Punkt anzugeben, das ist nicht viel Mehraufwand.

Alle drei Befehle sind in der Lage, auch Verzeichnisse zu bearbeiten, cp und rm jedoch nur, wenn ihnen das mittels Kommandozeilenparameter mitgegeben wurde. Näheres dazu siehe unten unter dem Punkt „Rekursive Bearbeitung“.
1.103.3 Datei-Management in Linux weiterlesen

(445)