Jetz hab ich schon groß rumgelabert, was bei linux alles abgehen kann, und damit meine ich das bisschen, was ohne große Kenntnisse möglich ist, dann will ich mal grob erzählen wie das Zwiebelsystem funktioniert, und dabei brauch ich wohl nich so sehr auf die Dinge einzugehen, die jeder Mensch wahrscheinlich mehr oder weniger kennt oder die kaum interessieren, weil sie zu tief gehen.
Als erstes startet ein Programm namens Grub2 den bevorzugten Kernel, hier „Linux“, das ist die absolute Basis des Systems. Mit den Pfeiltasten kannst du auswählen welcher installierte Systemkernel von welchem Datenträger gestartet werden soll und mit Enter bestätigen. Du könntest mit der Taste [c] in ein minimales cli (commandline-interface) gehen und da dann die nötigen Kommandos und Parameter für einen Systemstart selbst eingeben, es besteht relativ selten die Notwendigkeit dazu. Das GrubMenü wird für gewöhnlich automatisch erstellt und funktioniert dann auch. Am Erscheinungsbild lässt sich was machen.
Ich sehe openSUSE und debian, wähle einen Eintrag aus, und klar ne.. es geht los.
[Debian und openSUSE unterscheiden sich wie viele Linuxe vor allem dadurch wie Software installiert und entfernt wird – grob gesagt – dazu durch eine erste Auswahl an Apps und das typische Design. Der Aufbau und die Handhabung des Systems sind überall sehr ähnlich bis identisch.]
Das Grundsystem bestehend aus dem Kernel „Linux“ zwischen der Hardware und zahlreicher freier Software offenbart sich nach dem Bootvorgang und einem Login als Text in Schwarz und Grau. Häufig helfen einigen Farben, die bestimmte Dateiformate markieren, sich zu orientieren. Ordner sind zum Beispiel blau.
[Im Normalfall wird das Grundsystem übersprungen, es ist bei mir kein so genannter Displaymanager wie gdm3, xdm, lightd, kdm usw.. installiert. Der Login erfolgt auf der Ebene des Grundsystems. Diese Ansicht lässt sich ohne Schaden bei jedem LinuxSystem durch [Strg]+[Alt]+[F1-6] erreichen. [F1] ist dabei häufig für die grafische Anmeldung belegt. Die Zuordnungen zählen tty1, tty2, tty3.. ..tty6.]
Es ist zwar möglich diese erste Systemebene für allgemeine User richtig cool zu gestalten, das erfordert aber mehr als einfache Kenntnisse, und normalerweise reicht das systemtypische Erscheinungsbild aus. Ich hab ja gerne für die Schrift wenigstens etwas anderes als Grau, das lässt sich relativ leicht anpassen mit der Variablen PS1.
Deren Inhalt legt den so genannten Prompt fest, das ist die kurze Information am Anfang jeder Eingabeaufforderung. Normalerweise steht da wer gerade an welchem Computer sitzt gefolgt von einem Dollarzeichen „$“, das in diesem Kontext die Rechte eines normalen Users signalisiert. Dahinter blinkt ein Cursor. Sind die Rechte auf die eines Administrators erweitert, hier einfach root Rechte genannt, dann erscheint anstelle des Dollarzeichens eine Raute „#“. Diese Symbolik ist konventionell für wahrscheinlich alle unixartigen Systeme und kann gerne so bleiben, ansonsten ist das eigentlich egal, der Prompt kann frei gestaltet werden, wenn es möglich ist auf dieser Ebene von Gestaltung zu reden, indem einfach die Variable PS1 verändert wird. Die Weltagentur für Information und Wahrheit hilft gern dabei entsprechende Hilfestellungen zu vermitteln.
Das umfassende Werkzeug dieser einfachen Umgebung ist das Programm bash, das gleich nach dem login automatisch gestartet wird und angesichts der Eingabeaufforderung als das command-line-interface zur Verfügung steht. Ich bezeichne die bash als das general-user-interface, obwohl mir klar ist, dass der general-user eigentlich auf Mausebene mit dem System kommuniziert, als Interface für den User ist aber die bash in jedem Fall general aus Systemsicht. Die bash, so einfach sie aussieht, ist sehr vielseitig und kann alle wesentlichen Aufgaben, die an einem Linuxrechner in Frage kommen, lösen – je nachdem welche Rechte zur Verfügung stehen.
Der Umgang mit der bash ist vielleicht gewöhnungsbedürftig. Grundsätzlich werden aus ihr Prozesse gestartet indem du einfach deren Namen eingibst. Manche erwarten noch zusätzliche Informationen als Parameter, die werden dem Namen dann entsprechend angehängt.
Außer der bash muss Software nicht unbedingt schon installiert sein, bei einem Grundsystem ist aber schon meistens eine ganze Menge mit dabei. Was so auf den ersten Blick nicht danach aussieht, es handelt sich schon um ein vollwertiges Betriebssystem mit allem zip und zap nur ohne besondere Grafik.
# apt install „name“
installiert ein zusätzlich gewünschtes Programm.
# apt remove „name“
entfernt es wieder aus dem System, und mit
# apt autoremove
werden Programmteile entfernt, die vormals zusätzlich installiert wurden, die aber durch das entfernen von Software wieder überflüssig geworden sind. Apt ist dabei ein sehr umfassendes Werkzeug, das die für debian ausgewählte Software verwaltet, diese bezieht sich eigentlich vollständig aus sehr umfangreichen Quellen, den Repositories, in denen bei debian eine fast unüberschaubare Fülle an Software zu finden ist. Diese Software liegt in einzelnen Packeten vor, wird mit apt automatisch heruntergeladen und installiert. In speziellen Fällen ist es möglich apt zu umgehen, dann stehen Werkzeuge zur Verfügung, die Anfänger eigentlich nicht interessieren.
Als Dateimanager dient erstmal die bash in der allgemeinen Eingabeaufforderung dem Prompt. Das Dateisystem ist unixartig aufgebaut, es startet mit dem Wurzelverzeichnis „/“ wie ein klassischer Verzeichnisbaum. Bemerkenswert ist, dass einzelne Laufwerke nicht unmittelbar als solche zu erkennen sind sondern fließend in das Verzeichnissystem eingebunden werden. Alles liegt mehr oder weniger deutlich als Textdatei vor und wird als solche behandelt. Das hat neben dem Nachteil, dass man seine Strukturen kennen muss, den Vorteil, dass theoretisch unbegrenzt viele Datenträger eingebunden werden können und.. und das ist wahrscheinlich der praktische Vorteil, du kannst den Inhalt eines Datenträgers über jedes beliebige Verzeichnis legen. Ich glaube dieser praktische Vorteil wird erst im Umgang mit diesem Phänomen wirklich klar.
Die einfachen Werkzeuge für den Umgang mit Dateien und Verzeichnissen in der bash sind cd um ein Verzeichnis zu wechseln, mkdir und rmdir um ein Verzeichnis zu erzeugen oder eines zu löschen, ls um den Inhalt eines Verzeichnisses anzuzeigen und mv um Verzeichnisse oder Dateien umzubenennen oder zu verschieben, dabei wird der Name geändert, wenn kein entsprechendes Zielverzeichnis vorhanden ist. Hier ist also ein bisschen Vorsicht geboten, denn das kann bei Tippfehlern zu Verwirrungen führen, die aber meistens nicht sehr schlimm sind. Im schlimmsten Fall ist es natürlich auch möglich beim Umbenennen andere Dateien zu überschreiben und damit ihre Inhalte zu löschen.
Ja, was mit Verzeichnissen geht, geht dann auch also mit Dateien. Sie können gelesen r überschrieben w oder ausgeführt x werden und sind entsprechend markiert. Diese Markierung lässt sich sehr leicht ändern, entsprechend können Dateien nicht gelesen, überschrieben oder ausgeführt werden. Wesentlich ist das Thema wem eine Datei gehört und wer sie entsprechend nutzen oder ändern darf. Ich verweise für besseres Verständnis auf Vermittlungsvorschläge der Weltagentur für Wahrheit und Information.
Also.. cp kopiert, mv verschiebt oder benennt neu, rm löscht und touch erstellt eine Datei.
Dateiendungen sind bei Linux nicht zwingend erforderlich. Alles wird also tatsächlich grundsätzlich als Text interpretiert. Programmcode lässt sich demnach auch als Text darstellen, das macht nur halt für mich oft keinen Sinn einfach so, es passiert dabei jedenfalls nichts. Die Dateiendungen, wenn sie vorhanden sind, erlauben eine einfachere Zuordnung für den User, ihre Namen werden dementsprechend in der bash auch gern farblich abgehoben, weil sonst keine Unterscheidung existiert.
$ touch bla
erstellt eine leere Datei mit dem Namen bla und ohne Endung, sie kann durch einfügen, anhängen oder voranstellen von Zeichenketten mit Text gefüllt werden, dafür stehen entsprechende Werkzeuge zur Verfügung.
So könnten zum Beispiel Playlists für Musik erstellt werden, diese ließen sich auch mit einem Texteditor bearbeiten.
Ich verwende den Texteditor nano, es gibt unzählige zur Auswahl, das geht rein nach Geschmack und praktischem Nutzen. Gestartet werden alle Programme, indem sie einfach genannt werden, angehängt wird der zu öffnende Dateiname.
$ nano bla
Als Grundlage für den Mediaplayer dient systemweit zum Beispiel xmms2. xmms2 ist noch kein User-Interface und betrachtet sich selbst eher als serversoftware für Multimedia, ein möglicher textbasierter Client dazu wird ohne Umstände mitgeliefert und geht schon klar, er wird einfach aufgerufen mit
$ xmms2
auch wenn es nicht sofort den Anschein hat, kannst du damit Musik hören. Der Vorteil ist, zu einem solchen Programm gibt es verschiedene Interfaces auf verschiedenen Ebenen, es ist also nicht nötig für alle Belange ein anderes programm zu installieren sondern nur ein entsprechend angepasstes User-Interfasce.
Eine gute Alternative dazu auf Textebene ist MOC,
# apt install moc
gestartet wird der moc player mit
$ mocp
Da ist relativ schnell klar und übersichtlich, was abgeht, und der player ist für user, die grafische Oberflächen gewohnt sind, sehr intuitiv zu bedienen. Diese Variante funktioniert aber nur auf dieser Ebene und kann grundsätzlich nur im Textmodus verwendet werden. Ein anders Beispiel ist der Player cmus, der zwar ähnlich aussieht und funktioniert aber in der Bedienung ein bisschen lernintensiver ist, weil er sich an Fans des grundlegenden Editors vi richtet, das ist sehr unbequem für Einsteiger und meiner Meinung nach mehr was für Freaks, die das dann aber echt drauf schwören, dass das geil ist. Auch bei cmus handelt es sich um eine gesamte App, die nur in dieser Form existiert und Verwendung findet.
Der bekannte vlc player lässt sich dagegen sowohl grafisch als auch im Textmodus verwenden, er spielt sogar videos in ASCII, naja.. wer den gezeigten Film schon kennt, wird auch was erkennen, ansonsten ist es eher mal cool errechnete ASCII-Grafiken zu betrachten. Der mediaplayer im Textmodus spielt – ja klar – vor allem Musik.
Ähnlich ist das mit dem Internetbrowser, ich benutze w3m aus einer Auswahl von Möglichkeiten.
$ w3m http://google.com
Im Textmodus durchs web zu surfen ist gewöhnungsbedürftig bis eine Herausforderung, aber es geht.
Tja.. es gibt sogar einige Spiele, die ohne grafische Oberfläche auskommen, und nicht nur Adventures sondern auch Puzzles und Actiongames.. jetzt darfst Du aber nicht zuviel erwarten.. obwohl stockfish, eine überaus starke Schachengine, lässt sich ganz klar auch im Textmodus bedienen, wenn du dir ein Brett danebenstellst, kannst du locker mithilfe der Koordinaten Partien analysieren oder spielen. Und wenn du mal gewinnen willst, sind auch schwächere engines verfügbar.
Die Philosophie ist ja klar. Es gibt haufenweise kleine oder große Apps für bestimmte Zwecke, aber im Grunde existiert für eingebettete Software ein allgemeiner serverartig gestalteter Hauptteil, der durch verschiedene clientartig gestaltete Interfaces entsprechend der Umgebung und den Vorlieben der User angesprochen werden kann.
Hier mal ein paar kleine Apps zum grübeln, spacken und lachen.
# apt install nudoku
# apt install moon-buggy
# apt install ninvaders
Zurück zum System! Neben der bash brauchst du immer vor allem einen guten Texteditor. Außer dass er möglichst klein, schnell und leicht zu bedienen sein soll, hat der erstmal keine Anforderungen zu erfüllen. Damit kannst du jetzt so richtig loslegen. Ich würde jetzt die nächste Ebene erreichen, und ich empfehle eine Datei namens .xsession zu erstellen, wenn sie noch nicht vorhanden ist.. [Wenn sie vorhanden ist, mache eine Kopie von ihrem Inhalt, indem du die Datei unter anderem Namen speicherst, und lege eine leere Datei .xsession an, deren Urzustand du jederzeit wieder herstellen kannst.]
$ cd ~
$ nano .xsession
Eine Tilde wechselt ins Homeverzeichnis des aktuellen Users, falls du nicht sowieso schon da bist. Das /home/username/ Verzeichnis auch einfach dargestellt durch ~ stellt eine Besonderheit dar, denn nur hier und in allen folgenden Unterverzeichnissen hat der benannte User alle Rechte ohne Beschränkung, hier finden sich auch alle seine persönlichen Systemkonfigurationen und eigene Daten. Systemweite Konfiguration ist nur mit root Rechten möglich, aber jeder User kann für sich sehr viel selbst entscheiden.
Ein Punkt vor dem Dateinamen bedeutet, dass die Datei im normalen Betrieb unsichtbar ist, so ein Punkt steht demnach auch vor Ordnern, die im Homeverzeichnis (/home/username/) liegen.
$ ls -a
Zeigt das aktuelle Verzeichnis mit allem (–all) was darin zu finden ist, also auch Dateien, die mit Punkt als unsichtbar markiert wurden, damit sie im Alltagsgebrauch nicht stören.
Ok, da .xsession wahrscheinlich bisher noch nicht existiert, ist der Texteditor mit dieser Datei leer. In die Datei .xsession schreibst du alle Infos an X, die für den Start der grafischen Oberfläche aus deiner Sicht wichtig sind. Da wird drin erklärt, was alles gestartet sein soll, wenn X – die grafische Oberfläche – läuft, und wie das erstmal aussehen sollte. Das kann eine ganze Desktopumgebung sein, nur ein Fenstermanager oder einfach nichts als das Basisfenster, das den Hintergrund bildet und frei gestaltet werden kann. Zusätzlich zum Basisfenster, dem Hintergrund, lohnt sich ein Terminal zum Tippen in der bash, sonst macht das ja alles keinen Sinn, es kann aber auch eine einzelne App wie der Internetbrowser sein. Empfehlenswert ist immer ein Clientprogramm für die bash.
In der Datei könnte stehen
——————–
xsetroot -gray
xterm
——————–
xsetroot und xset sind Werkzeuge, mit denen das Grundlegende für X festgelegt werden kann. xterm ist ein Fensterchen für die bash.
$ startx
Wenn nichts in der Datei .xsession drin steht, wird das root-window leer gelassen und es öffnet sich immer ein kleines, verlassenes xterminal. Zu sehen ist vor dem Root-Window zum erstenmal die Maus. Das Terminal wird erst aktiviert, wenn du die Maus darüber bewegst und ihren Zeiger in seinem Fenster lässt. Jetzt kannst Du wie gewohnt mit der bash hantieren und auch grafische Apps starten.
$ firefox
macht dann schonmal richtig surfen im Internet möglich. Wie du schon gemerkt hast, wird das Terminal von der gestarteten App blockiert und gibt jede Menge Feedback, Warnungen und Fehlermeldungen, die könntest du beachten oder ignorieren. Sobald du die App beendest, wird das Terminal wieder frei. Das System wäre in Top Zustand, wenn nur sehr knappes Feedback käme aber keine Warnungen und Fehlermeldungen erschienen, was naja.. bei mir noch nie vorgekommen ist. Der Hintergrund dieser ausgaben erscheint nicht gerade menschlich, wenn alles in Ordnung ist, sagt das Interface nichts, es flennt nur rum, wenn etwas nicht stimmt, antwortet außerdem ausschließlich auf gezielte Fragen. Keine Aussage ist also immer sehr positiv zu werten.
Hängst du dem Namen der App ein & an, dann bleibt nach dem Start das Terminal für weitere Eingaben offen, die Ausgabe von Fehlermeldungen erfolgt aber trotzdem :) Mist xD
$ firefox &
User von commerzieller Software würden jetzt denken es sei unsinnig mit fehlerhaften Prozessen zu arbeiten, aber nur weil man nichts sieht, heißt das nicht, dass alles glatt läuft. So ein GNU/Linux hat halt auch bezüglich seiner Mängel einfach keine Geheimnisse. Seine Fehler zu verschweigen heißt also nicht keine zu machen.
Für X existieren ein paar erste grafische Apps wie xfe als Dateimanager, xclock für eine Uhr, xeyes zur Verarschung, xterm als terminal, xedit als editor und so weiter.. sie zeichnen sich alle durch eine bestimmte Charakteristik aus, sind leicht, schnell, verlässlich und hässlich.
Ein graphischer Client für xmms2 könnte esperanza (qt4) werden oder lxmusic (gtk). Die Apps für X müssen keine ausgezeichneten XApps sein und können überall herkommen, es gibt keine echten Beschränkungen, offenbar einen Unterschied zwischen Qt4 und GTK, Basisapps für X sollten auf jeden Fall erstmal unabhängig von großen Desktopumgebungen stehen, weil Teilnehmer solcher Projekte immer sehr viele und manchmal unnötige Anhängsel im Schlepptau haben, die einen einfachen Ablauf nicht selten durch selbstgefällige Dominanz oder Abhängigkeiten stören. Es gibt eine gute Auswahl an Möglichkeiten die völlig autonom bleiben und reibungslos nebeneinander auskommen. Die Weltagentur hilft.
Das Problem bei X vanilla (ohne alles) ist, dass Fenster einfach nicht so richtig beweglich sind und es so auch nicht wirklich Spaß macht mit mehreren Apps gleichzeitig zu hantieren. Im Grundsystem gibt es ja die tty 1 bis 6, erreichbar mit [Strg]+[Alt]+[F1 bis F6], das heißt es könnten sechs verschiedene Abläufe gleichzeitig auf Textebene bedient werden, ohne dass es Reibungen gibt oder sie sich gegenseitig blockieren.. zum Beispiel Mukke und der Texteditor oder ein Spiel. X kann dagegen nur einmal gestartet werden, ohne großes Drumrum, und deshalb ist auf Dauer auch ein Fenstermanager nötig, der einem das vertraute Gefühl vermittelt an einem Computer zu arbeiten :D der auch wie gewohnt mitspielt.
Du startest einen Fenstermanager einfach aus dem Terminal unter X.
$ twm
Klar kannst du den Start eines Fenstermanagers auch anstatt xterm gleich in die .xsession Datei reinschreiben zum Beispiel
————–
twm
————-
Ja.. mehr steht da nicht drin. Twm ist ein Fenstermanager, der einem so richtig zeigt, was abgeht, aber er macht überhaupt keinen Spaß. Fenstermanager, die grad eher ein bisschen IN sind heißen blackbox oder openbox. Ich benutze wmaker. es gibt daneben icedwm, fluxbox usw.. zwischen allen diesen Fenstermanagern ließe sich beliebig wechseln ohne die X Ebene zu verlassen.. alle Apps blieben dabei geöffnet.. hin und her.. wie du Bock hast, bis du das passende für dich findest. Allen ist gemeinsam, sie bestehen aus dem Root-Window mit möglicherweise mehreren virtuellen Ebenen und einem Mausmenü. Alle lassen sich mehr oder weniger easy erweitern durch Clip, Dock, Taskleiste usw.. bis zu einem maßgeschneiderten Desktop.
Also
——————
xsetroot -grey
openbox
—————-
als Inhalt der Datei .xsession ist nicht verkehrt. Für den Hintergrund empfehle ich ein Bild oder eine coole Farbe, das Flimmergrau ist das einfachste Beispiel, schwarz kommt wahrscheinlich, wenn du entsprechende Wünsche weglässt. Mit Mausklick auf den Hintergrund erscheint das Menü, aus dem kannst du zumindest Xterminal oder Firefox auswählen. Fenster haben alle einen Rahmen, können maximiert und verkleinert werden, sie können verschoben werden, und es existiert ein Vollbildmodus.. Wow!