logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
04. Dezember 2020, 13:33:39
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Allgemeine Diskussionen  |  Thema: Etwas "Gehirnfutter" in Corona-Zeiten (I) « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: Etwas "Gehirnfutter" in Corona-Zeiten (I)  (Gelesen 566 mal)
Andreas
Administrator
*****

Offline

Einträge: 780



Linux von Innen

Profil anzeigen
Etwas "Gehirnfutter" in Corona-Zeiten (I)
« am: 17. April 2020, 16:39:49 »

Keine Suletuxe-Treffen - alles geht vom "Home-Office" aus. Wir haben dank unseres Diskussionsforums schon von Anbeginn dazu die Möglichkeiten... Also werfe ich euch mal ein paar gut riechende Brocken hin - in der Hoffnung, dass ihr Appetit bekommt...

Wenn man einen Befehl von der Kommandozeile aus aufruft, tippt man einfach seinen Namen ein, vielleicht noch ein paar Parameter zu dem Befehl, und dann drückt man <ENTER>.  Woher - zum Kuckuck - weiß unser Linux wo sich das aufgerufene Programm befindet?

Nein, Linux kann nicht hellsehen. Die Antwort ist wieder mal ganz logisch und daher nachvollziehbar und damit MERKBAR (!!)

Wenn man einen Befehl aufgerufen hat ohne einen kompletten Pfad zu ihm hin, dann wird anhand einer Liste von Verzeichnissen gesucht, die sich in einer sogenannten Environment-Variable (zu Deutsch: Umgebungsvariable) befinden. Was ist eine Variable?
Einfach ein "Platzhalter" aus Buchstaben, dem man etwas zuweisen kann. Probiert mal auf der Konsole aus:
Code:
meinevariable="meine Gedankenstütze"

...natürlich wie alles auf der Kommandozeile gefolgt von <ENTER>. Es passiert scheinbar gar nichts. Gebt nun
Code:
echo $meinevariable
ein - und staunt...

Einer Umgebungsvariablen kann man durch Angabe ihres Namens (der keine Leerzeichen und nur ganz bestimmte Sonderzeichen enthalten darf) einen Wert (Zahlen oder Buchstabenketten - wenn mit Leerzeichen, dann in Anführungsstrichen) zuweisen. Auslesen kann man die Variable dann mit einem Dollarzeichen gefolgt von ihrem Namen (dazwischen KEIN Leerzeichen!!)

Das "echo" bedeutet übrigens nur, dass das, was darauf folgt, auf der Konsole wiederholt ("ge-echot") werden soll.

Nun schließt das Konsolenfenster, macht ein neues auf und probiert nochmal, die Variable auszugeben. Geht nicht mehr - sie ist jetzt LEER. Das hat etwas mit ihrem Gültigkeitsbereich zu tun: sie ist nur gültig in der Konsole, auf der sie "erschaffen" wurde. Konsole geschlossen bedeutet Variable tot .

Aber es gibt auch Variablen, die schon "vorbelegt" sind. Eine davon hat den Namen PATH. Zeigt sie mal an mit
Code:
echo $PATH
...das ist die Reihenfolge, in der Verzeichnisse nach aufgerufenen Befehlen abgesucht werden!! Wenn man also den mc startet werden die in der Variablen PATH abgelegten Verzeichnisse in der dort aufgerufenen Reihenfolge danach durchsucht und beim ersten Treffer wird das dort befindliche Programm gestartet. Daraus können wir schon mal zwei Dinge schließen (nur durch logisches Denken):
1) es ist theoretisch denkbar, dass ein Programm mit gleichem Namen mehrmals auf dem Rechner existiert - aber in unterschiedlichen Verzeichnissen. Ruft man es nur mit seinem Namen auf, dann wird der erste gefundene Treffer folgend der Pfade in $PATH gestartet. Will man eine andere Variante starten, muss man den kompletten Pfad angeben (also z.B. /usr/games/mc - was natürlich ein reines Gedankenspiel ist, denn da gibt es hoffentlich kein mc)
2) Es gibt garantiert eine Möglichkeit herauszufinden, was gestartet wird wenn ich nur den Namen eingebe.

Um gleich 2) zu beantworten: na klar gibt es die! Probiert mal
Code:
type mc
aus...
Und das könnt ihr mit jedem beliebigen Befehl ausprobieren, den ihr kennt.

Übrigens funktioniert alles das sowohl als User (empfehlenswert) und auch als root. ABER: Da ist wieder was mit dem Gültigkeitsbereich! Variablen gleicher Namen sind bei jedem User (incl. root) individuell - sie können also mehrfach vorkommen. PATH ist für root was anderes als für jeden User. Die Variablen befinden sich im "Userspace" (wobei auch root streng genommen ein "User" ist). Und um die Power von Linux vollständig zu machen: Eine Vraibel gleichen Namens kann selbst bei einem User mehrfach vorkommen - in jedem Prozess (z.B. Kommandozeilenfenster) kann sie vorkommen. So kann man ihr in 40 Fenstern 40 verschiedene Werte zuweisen und jedes Fenster kann nur auf "seine" Version zugreifen.

Unter Linux ist alles erklärbar und damit von jedem nachvollziehbar.

Bis zur nächsten Lesson

bleibt gesund
Andreas
« Letzte Änderung: 17. April 2020, 16:56:07 von Andreas » Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Allgemeine Diskussionen  |  Thema: Etwas "Gehirnfutter" in Corona-Zeiten (I) « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!