Freitag, 2. Februar 2024

Grundkurs Linux Terminal - Teil 3

Grundkurs Linux Terminal - Teil 3

Im dritten Teil soll es noch einmal ein paar nützliche Basis-Kommandos geben. Speicherplatzbelegung, Suchen und Finden und die Regelung der Zugriffsrechte werden kurz angeschnitten. Wer mehr Informationen zu den einzelnen Kommandos benötigt, kann gern die Manpages lesen, im Internet nach weiteren Quellen suchen, aber auch gern ein Buch, wie die "Linuxbibel" oder die Kommandoreferenz, zu Rate ziehen. Wer gern Bücher in elektronischer Form liest, dem empfehle ich die Openbooks. Hier werden einige ältere Werke kostenlos zur Verfügung gestellt.

Wie sehe ich die Speicherbelegung meines Linux? - Dazu gibt es den Befehl df, dieser zeigt Informationen zum Speicherplatz sämtlicher, ins Dateisystem eingebundener, Partitionen und Datenträger an. Das Kommando df -h -x tmpfs

ergibt bei mir das folgende Bild. Die Option -h bewirkt die Darstellung der Speichergrößen in "menschenlesbarer" Form, also in MB, GB, usw., bzw. richtiger Weise MiB, GiB, KiB. Option -x tmpfs eliminiert die Darstellung von diversen temporären Dateisystemen. Zu sehen ist also die Bootpartition, welche auf meiner ersten NVME-SSD liegt. Meine eigentliche Linux-Installation, die auf einer zweiten SSD (hier als sda2) untergebracht wurde und noch ein mit ecryptfs verschlüsseltes Verzeichnis, welches die selbige Größe aufweist, wie das Linux-Gesamtsystem, da es nur ein Unterordner dessen ist. Bei einer separaten Home-Partition wird df diese auch anzeigen, genauso wie angeschlossene USB-Sticks oder eingebundene Festplatten. Wie man im Bild feststellen wird, werden Gesamtgröße, in Benutzung und der verfügbare Platz angezeigt. 

Kann man die belegte Größe von Ordnern feststellen? - Ja, um die Verzeichnisgröße zu ermitteln nimmt man du im Terminal her. Ein du -h Bilder z.B. zeigt eine Liste der Ordner und Unterordner im Verzeichnis Bilder an und deren jeweiliger Speicherplatzbedarf. Als letzter Punkt steht der Ordner Bilder und dessen Gesamtgröße. Die Option -h steht wieder für lesbare Speichergrößen.

Wie findet und durchsucht man Dateien im Terminal? - Auch hier gibt es verschiedene Möglichkeiten nach Dateien zu suchen. Ich will hier nur drei Kommandos erwähnen. Einmal locate, welches Dateien nach ihrem Namen sucht. Einmal find, das Dateien nach verschiedenen Kriterien aufspürt. Und dann gibt es noch den Befehl grep, dieser durchsucht Textdateien nach bestimmten Text. Fangen wir mit einem locate Bilder an. Das Ergebnis ist eine Liste sämtlicher Dateien und Verzeichnisse, die den Begriff Bilder inne haben. Interessanter ist es aber, wenn man z.B. nach einer Konfigurationsdatei sucht. Ein locate fstab liefert die Ergebnisse zum Suchbegriff. Hier sieht man, dass sich die Datei fstab, unter dem ersten Eintrag der Liste, im Ordner /etc/ befindet. Das Kommando find liefert eine Liste sämtlicher Dateien im aktuellen Verzeichnis und den Unterverzeichnissen. Ein find -name '.t*' sucht im aktuellen Verzeichnis und dessen Unterverzeichnissen nach Dateien die mit dem Buchstaben t beginnen. Dagegen liefert find -name '*.txt' alle Textdateien, die mit der Endung .txt zu finden sind. Ein find /usr/ -type d | sort gibt eine sortierte Liste aller Verzeichnisse des Ordners /usr/ aus, ohne die darin enthaltenen Dateien. Find bietet noch viel mehr Möglichkeiten, die hier den Rahmen sprengen würden. Auch grep ist nützlich. Es durchsucht eine Textdatei nach einem angegebenen Suchmuster und gibt entweder die Textpassagen aus, oder in wie vielen Zeilen das Suchmuster gefunden wurde, je nach Option. Ein grep linux * durchsucht im aktuellen Verzeichnis alle Dateien, die den Begriff linux drinstehen haben. Die Option -r hilft um auch alle Unterordner und deren Dateien zu durchsuchen. Also grep -r linux * würde eine lange Liste von Einträgen zu Tage fördern. Der Suche dauert auch eine ganze Weile, da wirklich jede Datei von grep durchforstet wird. Ein grep '^#' /etc/fstab liefert z.B. alle auskommentierten Zeilen aus der Konfigurationsdatei fstab. Dagegen filtert ein grep -v '^#' /etc/fstab alle auskommentierten Zeilen der Datei heraus. Um die Anzahl der Vorkommen eines gewünschten Wortes in bestimmten Dateien herauszufinden nutzt man die Option -c. Ein grep -c Linux *.txt listet alle

Textdateien im aktuellen Verzeichnis auf und gibt an, wie oft der Begriff Linux in der jeweiligen Datei gefunden wurde. Man beachte, Groß- und Kleinschreibung wird unterschieden. Grep kann und wird oft auch mit anderen Kommandos kombiniert, so dass man z.B. mit find Suchergebnisse noch besser filtern kann. 

Wie werden bestimmte Zugriffsrechte eingestellt? - Dateien und Verzeichnisse von Linux-Betriebssystemen unterliegen bestimmten Zugriffsrechten, da Linux als Multibenutzersystem ausgelegt ist. Daher gibt es auch unter Mint Benutzer und Gruppen. In jeder Datei / jedem Verzeichnis werden nachfolgende Informationen hinterlegt. Der Besitzer der Datei, die Gruppe zu der die Datei gehört, neun Zugriffsbits und Zusatzbits für spezielle Funktionen. Der Besitzer ist in der Regel die Person, die die Datei erstellt hat. Die primäre Gruppe ist standardmäßig die Gruppe des Besitzers bzw. Erstellers. Alle anderen Personen erhalten separate Zugriffsrechte. Zu den drei genannten Personenkreisen gibt es entsprechende Zugriffsbits, also 3x3 Bits, die jeweils rwx lauten können. Dabei regelt das erste Bit r, ob die Datei readable - also lesbar sein soll. Das zweite w steht für writable - beschreibbar bzw. veränderbar und das dritte Bit x steht für executable - also ausführbar, sollte die Datei als Script oder Programm zu nutzen sein. Man beachte, die Zugriffsrechte einer Datei haben keine Auswirkungen wer diese löschen darf. Hier zählen die Zugriffsrechte des Verzeichnis, in dem die Datei liegt. Wer die Rechte w & x für das Verzeichnis hat, der darf die Datei löschen. Um Zugriffsrechte im Terminal zu ermitteln hilft der Befehl ls -l, der aus dem vorigen Kursteil bekannt sein sollte. Möchte man die Zugriffsrechte einer Datei ändern, so nutzt man den Befehl chmod. Z.B. ein chmod g-w datei.txt würde der Gruppe das Schreibrecht entziehen. Ein chmod u+x datei.txt wandelt die Datei in eine "ausführbare" Datei um, die der Besitzer als Programm ausführen darf. Es gibt auch die Möglichkeit der oktalen Schreibweise. Hierbei wird aus den Ziffern 4,2,1 für r,w,x eine entsprechende Summe gebildet. Die 6 würde in dem Falle für rw stehen, die 7 für rwx, die 0 für -. Da man die Zugriffsrechte für alle drei Personengruppen angibt, würde man als Beispiel mit der 664 das gleiche Ergebnis erzielen wie rw-rw-r--. Also ein chmod 740 datei.txt würde die Zugriffsrechte der datei.txt zu rwxr----- anpassen. Um eine Datei einer anderen Gruppe zuzuordnen kann man sich dem folgenden Befehl bedienen. Das Kommando chgrp sambashare datei.txt erledigt dies. Das kann in bestimmten Netzwerken sinnvoll sein, wenn verschiedene Autoren die Datei bearbeiten sollen, in diesem Beispiel alle Mitglieder der Gruppe sambashare. Ebenfalls werden Zugriffe auf die Hardwarekomponenten unter Linux mittels Zugriffsrechten gelöst. Soll, angenommen, der Benutzer Tim Zugriff auf die seriellen Schnittstelle /dev/ttyS* bekommen, so muß der Admin diesen Benutzer der Gruppe dialout, mittels dem Befehl sudo usermod -a -G dialout tim zuordnen. Die Zugriffsbits von Verzeichnissen sind zwar die gleichen, haben aber eine veränderte Bedeutung. Das Bit r erlaubt es eine Liste der Dateinamen zu ermitteln. Das Bit w steht für das Recht, den Inhalt eines Verzeichnis zu ändern,Dateien darin anzulegen, zu löschen, oder umzubenennen. Mit dem dritten Bit x kann man in das Verzeichnis wechseln. Es macht aber nur die Kombination aus r und x Sinn, denn nur so könnte man mit den darin befindlichen Dateien auch arbeiten, also anzeigen und Informationen ermitteln. Ist auch noch w gesetzt, dann darf man auch Dateien im Verzeichnis erzeugen oder löschen, und nur dann. Das mag jetzt erstmal für den Linux-Neuling alles verwirrend erscheinen, hat aber seine Berechtigung. Ab und an wird man mit diesen Dingen in Kontakt kommen, wenn man z.B. ein heruntergeladenes Programm erst einmal in eine ausführbare Datei umwandeln muss. Dennoch gibt es noch mehr Verwirrung für den Laien durch die sogenannten Spezialbits. Ich werde hier nur die Namen setuid, setgid, sticky -bit erwähnen, die Verwendung außen vor lassen. Dies würde diesen Einsteigerkurs sprengen.  

In Teil 4 des Grundkurs Linux Terminal soll es um einige weitere Kommandos gehen, die Informationen zu verschiedenen Prozessen liefern, Terminal-Befehle für Systeminformationen aufzeigen und vielleicht werde ich noch ein paar Konvertierungs-Programme auf Kommandozeilenebene vorstellen.  Selbst die Dinge für Teil 5 schwirren mir schon im Kopf herum. Also dann, bis demnächst.

Keine Kommentare:

Kommentar veröffentlichen

Vielen Dank für Ihren Kommentar. Die Veröffentlichung erfolgt umgehend nach meiner Prüfung. Ich bitte um etwas Geduld. MfG Mintnix