Was ist die Konsole

Linux gilt als sicheres Betriebssystem – sicherer als Windows. Anleitungen rund um das Thema Linux.
Antworten
Benutzeravatar
Cody
Beiträge: 21
Registriert: 21 Jul 2019, 16:03

Was ist die Konsole

Beitrag von Cody » 23 Jul 2019, 10:41

1. Vorwort
2. Technische Vereinfachung
3. Gibt' s unterschiedliche „Versionen“?
4. Welche Vorteile gibt es gegenüber einer grafischen Oberfläche?
5. Welche Nachteile gibt es gegenüber einer grafischen Oberfläche?
6. Kurzer Befehlscrashkurs
7. Abschließende Worte


1. Vorwort

Jeder Linux-Nutzer, der nicht bloß zum Spaß auf der Oberfläche herum klickt, ist bspw. bei Internetrecherchen schon mindestens einmal darauf gestoßen: Die Kommandozeile. Ein Fenster, in der kryptische Befehle in Textform in einer einfachen Zeile eingetippt werden, damit nach Betätigung der „Enter“-Taste kurz darauf das Programm einen noch komplizierteren Zeichensalat ausgibt, aus welchem dann Profis, wie durch den Blick in eine Glaskugel, Probleme erkennen und beseitigen können.
Im folgenden möchte ich kurz den Fachbegriffsdschungel etwas lichten, um es Einsteigern leichter zu machen.


2. Technische Vereinfachung

Oftmals hört man, man solle einen Befehl in eine Konsole eintippen. Nun, wer gerade kein KDE hat, wird sich hier bereits schwer tun. Schauen wir uns das ganze einmal genauer an:

Schema1.jpg
Schema1.jpg (17.05 KiB) 29371 mal betrachtet

Das Schema soll das ganze etwas näher bringen: Links „sitzt“ der Kernel, welcher den Computer steuert. In der Mitte arbeitet die eigentliche Shell (oder auch Kommandozeileninterpreter), und ganz rechts sitzt der Benutzer mit seinem Konsolenprogramm. Wenn der Benutzer nun einen Befehl eintippt, wertet die Shell das ganze aus und gibt es an den Kernel weiter. Falls nichts schief geht, antwortet der Kernel und es wird am Ende ein Textfluss auf dem Bildschirm ausgegeben/in eine Datei umgeleitet.
Auf dieses Vorwissen aufbauend machen wir jetzt weiter: Es gibt verschiedene Shells, die alle letztendlich aufeinander aufbauen, jedoch unterschiedlichen Funktionsumfang bieten. Als allererstes wäre meiner Meinung nach hier die Bourne-Shell (sh) zu nennen. Sie gilt als „Ur-Shell“ (obwohl es vorher schon die Thompson-Shell gab), da viele moderne Shells auf sie aufbauen, und sie die erste Shell ist, mit der man halbwegs vernünftig Shellscripting betreiben konnte. Mit der Zeit wurden immer bessere Shells mit mehr Funktionen und leichterer Handhabung entwickelt. Die Korn-Shell (ksh) wird heutzutage noch häufig auf allerlei Unix-Systemen verwendet, während sich auf den meisten Linux-Distributionen sowie Mac OS X die Bourne-Again-Shell (bash) durchgesetzt hat.

Alle hier genannten Shells bieten unterschiedlichen Funktionsumfang und Nutzerfreundlichkeit. Selbst ich persönlich finde einige Funktionen in der bash leichter zu lesen/schreiben, als in der sh, da man hier teilweise für den selben Befehl komplexere und undurchschaubare Umschreibungen wählen muss.

Nun, der ein oder andere wird sich über das Neuland hier wundern, seines Wissens hat er doch immer mit einem „gnome-terminal“ oder einer „konsole“ gearbeitet. „Gnome-Terminal“ sowie „Konsole“ (u.a.) stellen bei unserem Schema die rechte Seite da; der User kann im Fenster herumklicken, Text markieren, mehrere sog. Tabs öffnen, Hintergrundfarben einstellen etc. Die rechte Seite nennen wir im folgenden einfach „Kommandozeilenprogramme“

Im Endeffekt heißt das: Der User tippt es auf einem grafischen Programm ein, die Shell gibt es an den Kernel weiter, dieser schickt die Antwort an die Shell, diese an den User, welcher die Antwort jetzt leserlich als Text serviert oder in eine Datei abgespeichert bekommt.


3. Gibt' s unterschiedliche „Versionen“?

Wie bereits oben beschrieben, gibt es verschiedene Shells (bash, ksh, sh.....) und verschiedene grafische Oberflächen (xterm, konsole, gnome-terminal....). Daher ist die Frage eigentlich schon beantwortet: Man kann auf dem „gnome-terminal“ das selbe eintippen wie auf der „konsole“, solange der selbe Kernel sowie die selbe Shell läuft wird man immer die selbe Antwort bekommen. Nun stellt sich die Frage des Vorhandenseins verschiedener Kommandozeilenprogramme; eine hätte es doch auch getan! Das ganze liegt daran, dass die verschiedenen Kommandozeilenprogramme eine bestimmte Zielgruppe ansprechen oder zu einem Standardumfang einer großen grafischen Oberfläche gehören. Während „xterm“ den eher zielorientierten Poweruser ansprechen dürfte, finden sich Newbies in der einfachen Konfiguration des „Gnome-Terminals“ und „normale“ Anwender in den umfangreichen Einstellungen der „konsole“ gut zurecht. Das liegt daran, dass die beiden letzteren die „Haus-Kommandozeilenprogramme“ der grafischen Oberflächen Gnome und KDE sind. Während Gnome auf Einfachheit baut, will sich KDE mit extrem großen Konfigurationsmöglichkeiten hervor heben.


4. Welche Vorteile gibt es gegenüber einer grafischen Oberfläche?

Eine grafische Oberfläche ist zwar schön anzusehen, aber irgendwo hat auch sie ihre Grenzen. Will man beispielsweise die Musiksammlung in einer Liste speichern, muss man bei einer grafischen Oberfläche den Namen jeder Datei notieren oder ein extriges Programm installieren. Der Aufruf

Code: Alles auswählen

ls > Index.txt
ausgeführt im Musikordner erledigt diese Aufgabe im Bruchteil einer Sekunde. Man könnte viele Beispiele aufzählen, aber man kann pauschal sagen: Grafische Oberflächen haben keinen so großen Funktionsumfang, wie mancher es gerne hätte und bräuchte, die Konsole jedoch bietet weitaus mehr Funktionen, mehr Genauigkeit, und das bei einem Bruchteil der Zeit, die man mit der grafischen Oberfläche brauchen würde, aber nur so lange man den richtigen Befehl sowie seine korrekte Bedienung kennt.


5.Welche Nachteile gibt es gegenüber einer grafischen Oberfläche?

Die Nachteile liegen klar auf der Hand: Wenn man nicht gerade damit groß geworden ist, dürfte jeder hier bei längeren Arbeiten die grafische Oberfläche vorziehen, da man sie intuitiver bedienen kann, Abläufe teilweise schneller von der Hand gehen (Drag&Drop, löschen bestimmter Dateien etc.) und man nicht alle Parameter von 20 verschiedenen Befehlen kennen muss, um etwas auf die Beine zu stellen! Außerdem arbeitet wahrscheinlich jeder lieber mit Desktop und Icons als mit schwarzem Hintergrund und Textbefehlen.


6. Kurzer Befehlscrashkurs

Ich will euch bei dem ganzen Konsolengeplauder auch die Befehle (zumindest geschätzte 0,01% davon) nicht vorbehalten:

Navigation im Dateisystem:

Code: Alles auswählen

cd <Verzeichnis>  #wechselt in das Verzeichnis <Verzeichnis>

cp <Dateiname> <Zielort>  #kopiert die Datei <Dateiname> nach <Zielort>

rm <Dateiname>  #löscht die Datei <Dateiname>

touch <Dateiname>  #erstellt die leere Datei <Dateiname>

mkdir <Ordnername>  #erstellt den Ordner <Ordnername>

ls  #listet den Inhalt des aktuellen Verzeichnisses auf

mv <Dateiname> <Verzeichnis>  #verschiebt die Datei <Dateiname> nach <Verzeichnis>
Installation von Paketen für die wichtigsten Distributionen(auf dem Terminal):

Debian

(als root)

Code: Alles auswählen

aptitude install <Paketname>   #installiert <Paketname> aus den Quellen
aptitude remove <Paketname>  #entfernt das Paket <Paketname> vom System
aptitude update  #aktualisiert die Paketliste
aptitude upgrade  #aktualisiert das System
(K)(X)Ubuntu

Code: Alles auswählen

sudo aptitude install <Paketname>   #installiert <Paketname> aus den Quellen
sudo aptitude remove <Paketname>  #entfernt das Paket <Paketname> vom System
sudo aptitude update  #aktualisiert die Paketliste
sudo aptitude upgrade  #aktualisiert das System
SuSE

(als root)

Code: Alles auswählen

zypper install <Paketname>  #installiert <Paketname> aus den Quellen
zypper remove <Paketname>  #entfernt <Paketname> vom System
zypper refresh  #aktualisiert die Paketliste
zypper update  #aktualisiert das System
Sonstige häufiger benötigte Befehle:

Code: Alles auswählen

su   #meldet den User root an
mount  #hängt Datenträger ein 
umount  #hängt Datenträger aus
tun. Bei allen Befehlen fängt ab # ein Kommentar an, d.h. Ab dem # muss nichts mehr abgetippt werden, sondern dient lediglich der Erklärung.


7. Abschließende Worte

Das FAQ ist keineswegs vollständig. Es existieren noch viele weitere Shells und noch viele viele andere Befehle, syntaktische Eigenschaften etc., aber es würde einfach hier den Umfang sprengen, und die (hoffentlich) leichte Verständlichkeit, auf die ich versucht habe zu achten, zunichte machen.

Antworten