Warum sollte man die Linux Shell verwenden!

Warum sollte man die Linux Shell verwenden? Dieser Artikel ist der erste von 10 Teilen zum Thema Linux Terminal in 10 Teilen. Er bietet einen ersten Überblick über die Wichtigkeit der Shell und gibt einige Ausblicke auf deren Anwendung in der Linux Shell, welche in den Teilen 2–10 erläutert werden.

» Zur Übersicht der Artikelserie «

Grundlegendes zur Linux Shell:

Heutzutage sind die meisten der Ansicht, dass das Verwenden des Terminals, also des Konsolenfensters (genauer gesagt: In Linux spricht man von der Shell), veraltet wäre. Meistens herrscht sogar die Meinung, an der Kommandozeile arbeiten doch nur „Freaks“! – Warum sollte man diese verwenden, wenn man eine schicke grafische Oberfläche hat (GUI = Graphical User Interface)?

Die Nutzung der Linux Shell kann die Produktivität erheblich steigern, da viele Aufgaben schneller über die Kommandozeile erledigt werden können. Mit der Linux Shell erhält man direkten Zugang zu den Systemressourcen und kann komplexe Aufgaben durch Skripte automatisieren.

Diese Meinung, welche ich in meinem Beruf regelmäßig höre, ist allerdings nicht ganz richtig. Wer wirklich mit einem Betriebssystem effektiv arbeitet, egal ob es jetzt Windows oder Linux ist, der verwendet die Konsole.

Die Linux Shell ist nicht nur für Systemadministratoren von Bedeutung, sondern auch für Entwickler, die ihre Anwendungen effizienter verwalten möchten. Durch die Nutzung der Linux Shell können viele Entwicklungsprozesse stark vereinfacht werden.

Man sollte auch bedenken, die Befehle sind auf der Konsole bei jeder Linux-Distribution nahezu gleich. Nahezu deshalb, da es schon kleine Unterschiede zwischen einigen Distributionen gibt. Z. B. verwenden Debian-Derivate (Ubuntu, Kali-Linux) das Debian-Paketsystem. Im Gegenzug dazu verwenden Red Hat-Derivate (Open Suse) das RPM-Paketsystem.

Die Linux Shell erlaubt auch eine einfache Integration von Drittanbieter-Tools, die die Funktionalitäten erweitern können. So wird die Shell zu einem mächtigen Werkzeug für die Systemadministration und Softwareentwicklung.

Möchte man eine Konfiguration per grafischer Oberfläche vornehmen, so heißt es meistens erst mal suchen, wo sich die Einstellung befindet. Für Linux-Systeme gibt es ja bekanntlich viele Desktopoberflächen. (KDE, Unity, Gnome, Mate etc..) Natürlich bietet die Shell auch die Möglichkeit, Skripte zu erstellen, um gewisse Sachverhalte zu automatisieren. Man denke z. B. nur an das Backup. Oft gibt es gar keine GUI.

Ein weiterer Vorteil der Nutzung der Linux Shell ist die Möglichkeit, sofortige Rückmeldungen zu erhalten und Fehler schneller zu identifizieren. Die Shell gibt detaillierte Fehlermeldungen aus, die beim Troubleshooting helfen.

Mit der richtigen Nutzung der Linux Shell können Benutzer effizienter arbeiten, was insbesondere in großen Unternehmen von Vorteil ist, wo Zeit und Ressourcen entscheidend sind.

Ein Serverbetriebssystem muss nicht unbedingt eine grafische Oberfläche besitzen. Im Gegenteil, meistens lässt man diese bei der Installation weg. Bei Linux-Servern ist das eigentlich Standard. Windows empfiehlt jetzt mittlerweile auch schon, dass man den Server ohne GUI installiert. Es wird sich bestimmt der eine oder andere fragen, warum das den!

Zusätzlich ist die Linux Shell oft der einzige Weg, um auf Server zuzugreifen, die keine grafische Benutzeroberfläche unterstützen. Die Verwaltung über die Linux Shell ermöglicht eine präzisere Kontrolle und Konfiguration.

Erstens benötigt eine Desktopoberfläche Systemressourcen, welche man vielleicht an anderer Stelle mehr benötigt, und zweitens bietet die GUI eine Angriffsfläche. Also ist sie prinzipiell wieder ein Sicherheitsrisiko.

Fakt ist auf jeden Fall: Die Konsole ist für den Systemadministrator unverzichtbar. Darum möchte ich euch in diesem Artikel eine kurze Einführung in das Linux-Terminal geben. Natürlich kann dieser Artikel nur einen kurzen Überblick mit einer Einführung bieten, denn die Möglichkeiten der Shell sind nahezu unbegrenzt und alles abzudecken würde den Rahmen des Artikels bei weitem sprengen.

Was kann ich nach dem Öffnen der Linux Shell alles auslesen

In der Regel findet man das Terminal als Icon in der Startleiste oder in der Kontrollleiste. Bei dem Unity-Desktop muss man einfach „Terminal“ eintippen und schon bekommt man das Icon im Dashboard zu Gesicht. Ich verwende gerne Kubuntu oder Linux Mint.
So würde man diese Ausgabe interpretieren:

[AngemeldeterBenutzer]@[Rechnername]:[Home-Verzeichnis des angemeldeten Benutzers][Art des Benutzers]

D.h. nun Folgendes: Wir sind mit dem Benutzer Markus am PC vkubuntu angemeldet. Aktuell befinden wir uns im Home-Verzeichnis (/home/markus) von Markus und Markus ist ein Standardbenutzer.

Das Home-Verzeichnis erkennen wir daran, dass das „~“ Zeichen ausgegeben wird, und Standardbenutzer sind wir, weil am Ende der Ausgabe ein „$“-Zeichen zu sehen ist. Wären wir als Administrator angemeldet, so würde das „#“-Zeichen am Ende stehen.


Wobei zusätzlich gleich noch der Befehl su (switch user) verwendet wurde. Damit kann man ganz einfach den Benutzer auf der Konsole wechseln. Natürlich muss ich das Passwort des anderen Benutzers kennen. Möchte man das Passwort ändern, so geht das mit passwd. Übrigens: Wenn man nicht mehr weiß, wo man sich im Linux-Verzeichnis befindet, so kann man das einfach mit dem Befehl pwd (print working directory) ausfindig machen.

Kurz zusammengefasst:

~

Home-Verzeichnis des angemeldeten Benutzer: hier: /home/markus

$

Angemeldet mit Standardbenutzerrechten

#

Angemeldet mit administrativen Rechten

su

Benutzer wechseln

passwd

Ändern des Passworts

pwd

Ausgabe des aktuellen Verzeichnisses

Wie erhält man im Terminal Hilfe

Das Linux Terminal verfügt über eine hervorragende Hilfe. Sie erhält man am meisten über die Eingabe von: Befehl –help

Beispiel:

ls –help

Weiterhin bietet die Linux-Shell ein Manual an. Diese ist auf Englisch und sehr ausführlich. Für jeden Befehl kann man sie mit „man Befehl“ öffnen.

Beispiel:

man ls

Wenn man die obigen Ausgaben vergleicht, wird man feststellen, dass das Manual um einiges umfangreicher ist als Help. Gerade wenn man bestimmte Optionen zu einem Befehl sucht, wird man hier meist jeher fündig.

Bleiben wir noch kurz bei dem „ls“-Befehl. Dieser listet alle vorhandenen Dateien und Verzeichnisse auf. Jedoch kann er mit unterschiedlichen Optionen verwendet werden. Möchte man mehr Informationen, so nimmt man die Optionen „-la“ hinzu.

ls -la

Ein Vergleich macht sofort deutlich, wie groß die Unterschiede sind. „l“ steht für list und „a“ für all. Es werden also auch versteckte Dateien (beginnen immer mit einem Punkt) aufgelistet. Einen guten Überblick, was die Angaben nun alles bedeuten, bietet das folgende Bild:

Wie navigiert man im Dateisystem

Die Navigation gestaltet sich recht einfach. Generell muss man zunächst erst mal wissen, dass das Linux System einen sogenannten Verzeichnisbaum besitzt.

Dieser werde als FHS (Filesystem Hierarchy Standard) bezeichnet. Ein System, wo man verschiedene Laufwerke mit Laufwerkbuchstaben anspricht (so ist es bei den Windows Betriebssystemen) gibt es nicht. Alles wird über Verzeichnisse organisiert. Auch das Einbinden von USB-Stick oder Festplatten. Als oberstes Verzeichnis steht immer das Wurzelverzeichnis (/).

Ausgehend davon gibt es verschiedene Verzeichnisse für verschiedene Zwecke. z. B. das Home-Verzeichnis (/home/markus) in dem sämtliche persönlichen Verzeichnisse der Benutzer angelegt sind. Oder das /dev-Verzeichnis für Gerätedateien oder, um noch ein weiteres Beispiel zu nennen, das /etc Verzeichnisse für die Konfigurationsdateien.

Ein Wechsel in ein anderes Verzeichnis erfolgt über cd.

Ausgehend von dem aktuellen Verzeichnis kann man entweder einen relativen oder einen absoluten Pfad angeben.

Absolute Pfadangabe: Sie beginnt immer beim Wurzelverzeichnis.

Beispiel: Wir wechseln in das document Verzeichnis zum Ordner howto

cd /home/markus/document/howto

Relativer Pfad: Diese Angabe beginnt immer beim aktuell gesetzten Verzeichnis.

/home/markus
cd document/howto

Wie sucht und findet man bestimmte Dateien bzw. Verzeichnisse

Generell kann man die Shell verwenden, um bestimmte Dateien oder Verzeichnisse zu suchen. Man gibt dann sogenannte Jokerzeichen an. Diese werden im Fachjargon als Reguläre Ausdrücke bezeichnet. Einige wichtige Jokerzeichen sind u.a. folgende.

  • ?: steht für genau ein beliebiges Zeichen
  • *: steht für kein oder beliebig viele Zeichen
  • [123]: genau eines der angegebenen Zeichen
  • [a-g]: ein Zeichen aus dem angegebenen Bereich
  • [!abc]: keines der angegebenen Zeichen
  • [^abc]:keines der angegebenen Zeichen

Beispiel: Es werden alle Dateien angezeigt, die mit einem Buchstaben von c – f beginnen.

ls [c-f]*

Neben dieser einfachen Möglichkeit gibt es natürlich unter Linux noch viele weitere. Zum einen wäre hier der Befehl find. Da find sehr umfangreich ist, ist es ratsam, das Manual als Hilfe heranzuziehen. Weitere mögliche Programme sind noch awk, sed und grep. Diese besitzen eine spezielle Syntax und es bedarf doch etwas an Zeit, damit man diesen Programm durchdringt. Einfacher geht es noch mit locate, whereis und which. Am besten ist es immer, wenn man die Befehle selbst einfach mal testet.

Wie bearbeitet man Konfigurationsdateien

Ist man nun auf der Konsole nach der gesuchten Konfigurationsdatei fündig geworden, so stellt sich die Frage, wie man diese bearbeitet. Von Windows kennen wir ja bereits die grafischen Editoren wie Notepad. Aber wie sieht es jetzt in Linux rein auf der Konsole aus? Einer und auch, glaube ich, der älteste Editor ist vi. Dieser ist allerdings nicht trivial zu bedienen.

Hier werden verschiedene Tastenkombinationen benötigt, um die unterschiedlichen Modis (Kommando, Eingabe) zu erreichen. Aber dieser Editor ist auf jedem Linux-System vorhanden. Auch auf einem Android-Handy. Sollte man root-Rechte besitzen, bitte immer mit Bedacht arbeiten.

Man kann hier relativ schnell viel zerstören. Ein weiterer und empfehlenswerter Editor ist nano. Dieser ist wesentlich einfacher zu bedienen und für die Anfänger mit dem Linux-Terminal sollte man diesen auch verwenden.

Beispiele, was man mit dem Terminal alles machen kann

Am Ende meines kleinen Artikels, möchte ich euch noch einige Beispiele zeigen, was man so alles mit dem Terminal konfigurieren kann. Überlegt euch dazu dazu: Wo müsste ich überall mit der Maus klicken, damit ich zum gleichen Ergebnis komme? Und bedenkt dabei vielleicht, ein Systemadministrator administriert meist nicht nur einen PC!

  1. Neuen Benutzer mit folgenden Eigenschaften anlegen:Name: it-learner, Kommentar: lehrling, Gruppe: schueler, Standardshell: bash
    sudo useradd it-learner -c „lehrling“ -g schueler -s /bin/bash
  2. Temporäre Änderung der IP-Adresse:IP: 192.168.99.12, Gateway: 192.168.99.254. Subnetzmaske: 255.255.255.0, DNS: 192.168.99.254
    sudo ifconfig eth0 192.168.99.12 broadcast 192.168.99.255 netmask 255.255.255.0sudo route add default gw 192.168.99.254
    Möchte man die Adresse dauerhaft ändern, so muss man diese je nach verwendeter Distribution in einer Linux Konfigurationsdatei konfigurieren.

    Entweder:

    /etc/network/interface
    Oder:
    /etc/NetworkManager/system-connections
  1. Festplatte in das System einbinden. Die Festplatte im /dev/sdc1 soll in das Verzeichnis /backup eingebunden werden
    mount /dev/sdc1 /backup

  2. Rechte auf ein Verzeichnis setzen: Auf das Verzeichnis /backup soll der Root Lesen, Schreiben und Ausführen dürfen, die Gruppe nur lesen und der Rest nichts.
    chmod 740 backup

Fazit

Die Macht des Terminals genauer gesagt der Linux Shell sollte man auf keinen Fall unterschätzen. Mit diesem Werkzeug kann man Linux-Systeme hervorragend administrieren. Wer viel mit Linux arbeitet, für den ist es auf alle Fälle lohnenswert, sich in die Thematik des Terminals einzuarbeiten. Eine tolle Befehlsreferenz findet man auch auf comparitech.com.

» Zur Übersicht der Artikelserie «          » Teil 2 «

Insgesamt ist es für jeden, der mit Linux arbeitet, unerlässlich, sich mit der Linux Shell vertraut zu machen, um alle Vorteile und Möglichkeiten, die sie bietet, voll ausschöpfen zu können.

Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux-Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte. -> Gern kannst du mich mit einem Kaffee unterstützen!


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kostenlose E-Books für die IT-Administration

Steigere deine IT-Kompetenzen

Ebook - 10 Schritte nach der Windows Installation
Close the CTA

Windows 11, Windows Server, Docker, PowerShell Referenzen, Batch, Linux Terminal, 

u.v.m.