Nur Mut - die Linux-Shell beisst nicht!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Nur Mut - die Linux-Shell beisst nicht!

      Da ich nicht weiss wohin mit meinem Beitrags-Vorschlag, stelle ich ihn hier rein. Im Informatik-Bereich wäre er sicherlich besser aufgehoben, aber dort kann ich ja keine Beiträge erstellen...

      Nur Mut - die Linux-Shell beisst nicht!

      Ganz nach dem oben genannten Motto soll es hier um die Linux-Shell gehen, genauer gesagt um die "Bash" (Bourn Again Shell).

      Die Shell ist eine grundlegende Befehlszeile, in die man Textbefehle eingibt, um die gewünschte Aktion vom Computer zu erlangen. Es ersetzt also in gewisser Weise etliche Mausklicks und erinnert entfernt an das alte MS-DOS, ist aber wesentlich mächtiger.

      "Warum soll ich mich mit so etwas befassen, wenn ich doch mit Gnome, KDE, usw. eine wunderbare grafische Oberfläche zur Verfügung habe? Ist das nicht ein wenig veraltet bzw. nur für Profis?" mögt Ihr fragen. Und es ist eine berechtigte Frage!

      Nun, was aber macht man, wenn die kunterbunte grafische Oberfläche mal den Dienst versagt? Oder man sein Linux aus irgendeinem Grunde "zerschossen" (unbrauchbar) gemacht hat? Dann hilft es sehr, sich auf der Shell (genauer gesagt Bash) auszukennen! Und auch sonst kann man mit der Bash sehr gut arbeiten, selbst auf einer grafischen Oberfläche. Das geht über eine sogenannte Terminal-Emulation. Dann läuft die Bash eben in einem Linux-Fenster :) .

      Es empfiehlt sich also wirklich, nach der Kennenlernphase mit Linux, auch mit der Bash zu beschäftigen. Mindestens die Grundbefehle, ein Shell-basiertes Text-Anzeigeprogramm (z. B. für die Man-Pages - Hilfeseiten, usw.) und einen Shell-basierten Texteditor sollte man kennen (lernen).

      Ok, los gehts!

      Rufen wir doch einmal eine Shell auf. Unter Ubuntu Linux befindet sich die Shell-Emulation (Terminal) im Anwendungs-Menü unter Zubehör.

      [IMG:http://www.seele07.de/bilder/sonstige/azw/anwendungen_terminal.png]

      Nach dem Starten, blinkt uns hinter etwas "Text" hartnäckig ein Cursor an.

      Dieser "Text" besteht meist aus dem Benutzernamen (z. B. "azw" für "Auf Zur Wahrheit") einem Klammeraffen (@) und dem Computernamen gefolgt von ein paar zusätzlichen Zeichen. Beispielsweise könnte das Ganze dann so aussehen:

      Quellcode

      1. azw@linux-laptop:~$


      Hinter dem Dollarzeichen ($) blinkt dann der Cursor, der die aktuelle Eingabestelle markiert.

      Geben wir doch einmal den Befehl "cd" ein (ohne Anführungszeichen). Das Ganze sieht dann so aus:

      Quellcode

      1. azw@linux-laptop:~$ cd


      Nach einem Druck auf die Return-Taste passiert scheinbar nichts, ausser dass wir nun zwei mal unsere Befehlszeile da stehen haben. Nun, der Befehl "cd" ohne weitere Parameter (Befehlszusätze) wechselt ins sogenannte Home-Verzeichnis. Und da wir nach einem Starten des Terminal meist schon im Home-Verzeichnis sind, passiert erst mal nichts. Das Home-Verzeichnis ist ein Verzeichnis (Ordner) auf der Festplatte unter Linux, der ganz alleine dem betreffenden Nutzer gehört - in unserem Fall also dem Benutzer "azw". Man merke sich also:

      Der Aufruf von "cd" ohne Parameter, bringt mich wieder ins Home-Verzeichnis.

      Jetzt geben wir doch mal "cd /" ein. Damit wechseln wir in die höchste Verzeichnis-Ebene, also ganz nach oben im Verzeichnis-Baum, quasi auf die Hauptoberfläche. Einen weiteren Shell-Befehl wollen wir hier lernen: "ls". Geben wir doch einfach mal "ls" ein.

      Quellcode

      1. azw@linux-laptop:/$ ls
      2. bin dev initrd.img media proc selinux tmp vmlinuz
      3. boot etc lib mnt root srv usr
      4. cdrom home lost+found opt sbin sys var
      5. azw@linux-laptop:/$


      Hä? Was ist das nun wieder? Lauter unverständliche Verzeichnis-Namen blicken uns an. Mit einem "cd" bzw. "cd ~" kommen wir erst mal wieder zurück ins Home-Verzeichnis und lassen die Verzeichnisnamen im Hauptverzeichnis erst mal gut sein. Geben wir doch mal im Home-Verzeichnis "ls" ein. Übrigens: "cd" steht für "Change Directory", also "wechsele Verzeichnis" und "ls" steht für "list (Directories)", also "liste (Verzeichnisse auf)".

      Es sollte nach einer Eingabe von "ls" im Home-Verzeichnis (Return-Taste nicht vergessen) der Inhalt des Home-Verzeichnisses aufgelistet werden, z. B. das Verzeichnis "Dokumente". So weit, so gut. Wenn wir nun "cd Dokumente" eingeben, landen wir im Verzeichnis "Dokumente"! Ahaaa! Das Ganze kann man sich auch bestätigen lassen, wenn man mal nicht mehr weiss, wo man sich gerade befindet. Eine Eingabe von "pwd" (Print Working Directory - Gib aktuelles Arbeitsverzeichnis aus) reicht dazu aus, gefolgt von Return, wie immer. Das Ganze sieht dann so aus:

      Quellcode

      1. azw@linux-laptop:~$ cd Dokumente
      2. azw@linux-laptop:~Dokumente$ pwd
      3. /home/azw/Dokumente
      4. azw@linux-laptop:~Dokumente$


      Hmm, müsste man dann nicht mit einer Eingabe von "cd /home/azw/" wieder zurück ins Home-Verzeichnis kommen? Ganz recht! Gleich mal ausprobieren:

      Quellcode

      1. azw@linux-laptop:~Dokumente$ cd /home/azw/
      2. azw@linux-laptop:~$


      An dem "~$" hinter unserer Befehlszeile erkennen wir, dass wir im Home-Verzeichnis sind. Eine Eingabe von "pwd" wird uns dies bestätigen.

      Jetzt haben wir schon drei Befehle für die Linux-Shell (Bash) kennen gelernt:

      cd - zum Verzeichnis wechseln;
      ls - zum Anzeigen des aktuellen Verzeichnis-Inhaltes und
      pwd - zum Ausgeben des aktuellen Arbeitsverzeichnisses.

      Noch etwas wichtiges: Man braucht nicht jedesmal den vollen Datei- bzw. Verzeichnisnamen anzugeben bei der Arbeit mit der Bash, denn sie kann auch mit beispielsweise einer Eingabe von "Doku" gefolgt von der Tab-Taste (Tabulator-Taste) im Home-Verzeichnis, den Verzeichnisnamen zu "Dokumente" vervollständigen! Seeehr nützlich und hilfreich. Erspart einem eine Menge Tipparbeit.

      Auch kann man mit Pfeil-Rauf- und Pfeil-Runter-Taste durch die zuletzt eingegebenen Befehle gehen und muss somit einen Befehl nicht unbedingt jedesmal neu eintippen, was insbesondere bei längeren Befehlen hilfreich ist.

      Was gibt es ausser "cd", "ls" und "pwd" denn noch so für Befehle?

      Dazu kann man sich beispielsweise mal diese Internetseite anschauen:

      tim-bormann.de/sammlung-konsolen-befehle-linux/

      Das erschlägt einen zwar erst mal an Vielfalt, aber kann doch sehr nützlich sein, wenn man einen Befehl sucht.

      Auch ein Blick in:

      selflinux.org/selflinux/html/index_grundlagen.html

      lohnt sich.

      Das wars erst mal von mir für heute mit der Bash. Also scheut Euch nicht, Euch näher damit zu befassen - Es lohnt sich.

      Grüßle,
      Ingo

      PS: ich scanne später noch ein paar Seiten aus einer alten Linux-Zeitschrift (und stelle sie hier rein), wo man sehr schön die gängigsten Shell-Befehle und ihre Parameter sieht.
      asato ma sad gamaya
      tamaso ma jyotir gamaya
      mrutyor ma amritam gamaya
      -------
      Von der Unwissenheit führe mich zur Wahrheit.
      Von der Dunkelheit führe mich zum Licht.
      Vom Tod führe mich zur Unsterblichkeit.
    • Ich sehe es aus meiner eigenen Erfahrung vor allem deswegen als empfehlenswert an, sich mit der Shell zu beschäftigen, weil sehr viele Betriebssysteme, die auf dem Markt sind, in irgendeiner Form sich am POSIX orientieren (ein Standard für Unix-kompatible und -ähnliche Systeme).

      Beispiele dafür sind neben Linux die ganzen BSD-Varianten (FreeBSD, NetBSD, OpenBSD, PC-BSD, DragonflyBSD), die kommerziellen Unices (z. B. Solaris), aber auch MacOS X (!), was viele Anwender nicht wissen. Ebenso stellt Microsoft auch für Windows einen Posix-Kompatibilitätslayer (Interix - vermarktet unter dem Namen "Windows Services for Unix") bereit.

      Somit: wenn man mit der Shell umzugehen weiß, dann kann man sich häufig relativ sehr schnell in die wichtigsten verfügbaren Betriebssysteme einarbeiten, falls aus irgendwelchen Gründen die Notwendigkeit dazu besteht.

      Ergänzung: ein weiterer Grund, sich in die Shell einzuarbeiten ist, dass sich Programme, wie das Versionscontrollsystem Git (welches ich im Übrigen empfehlen kann ;)), am allerbesten über die Shell bedienen lassen - von den graphischen Frontends dafür hat mich noch keines überzeugt.
      Erst wenn der letzte Programmierer eingesperrt und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
    • Hi Ingo,

      sehr guter Beitrag ... optimal wäre, wenn den einer in die Informatik verschieben könnte. Hoffentlich kann ich einen ähnlich konstruktiven Beitrag leisten. Hier ein paar mächtige Werkzeuge für den Umgang mit der Bash:

      SCREEN
      VI oder die bequemere Variante VIM
      Skripting mit der Bash

      wenn mir mehr einfällt werde ich die Liste erweitern.
      "0 lasst die Flammen nicht verlöschen! Gehegt seit undenklichen Zeiten in ihrer
      dunklen Höhle, in ihren heiligen Tempeln gehegt. Ernährt von reinen Dienern der
      Liebe - lasst die Flamme nicht verlöschen!"