1570098

Zeit gespart mit Linux Kommandozeilen-Befehlen

03.10.2012 | 07:26 Uhr |

Unter Linux fristet die Kommandozeile kein Schattendasein, sondern ist ein mächtiges Werkzeug. Die richtigen Befehle lösen diffizile Aufgaben und sparen dabei eine Menge Zeit.

Befehle für die Linux Kommandozeile

Zugriffsrechte: Dateizugriffsrechte rekursiv ändern
In einem Verzeichnis mit Unterverzeichnissen möchten Sie für alle dort vorhandenen Dateien die Zugriffsrechte ändern. Allerdings sollen nur die Dateien andere Zugriffsrechte erhalten, nicht aber die Verzeichnisse, in denen sie sich befinden.

TIPP: Der Befehl, um Zugriffsrechte auf dem Dateisystem zu setzen, lautet chmod – kurz für „Change Mode“. Zwar kennt dieser Befehl sowohl Platzhalter und kann mit dem angehängten Parameter -R auch rekursiv in Dateien absteigen. Allerdings unterscheidet chmod nicht zwischen Dateien und Verzeichnissen und würde daher die Zugriffsrechte für alles ändern. Dies hätte unerwünschte Auswirkungen, da sich beispielsweise Verzeichnisse nicht mehr öffnen lassen, wenn man ihnen die Berechtigungen zum Ausführen entzieht. Also brauchen Sie ein trickreiches Kommando, das Verzeichnisse in Ruhe lässt und sich nur um Dateien kümmert. Dazu bietet sich eine Verkettung der Befehle find und chmod an.

Nur Dateien, keine Verzeichnisse: Dieser Befehl setzt Zugriffsrechte aller Dateien rekursiv neu. Im Beispiel erhalten alle Dateien die Berechtigungen zum Lesen und Schreiben.
Vergrößern Nur Dateien, keine Verzeichnisse: Dieser Befehl setzt Zugriffsrechte aller Dateien rekursiv neu. Im Beispiel erhalten alle Dateien die Berechtigungen zum Lesen und Schreiben.

Um alle Dateien in allen Ordnern und Unterordnern für den Besitzer lesbar und beschreibbar zu machen, ohne dabei Zugriffsrechte für Verzeichnisse zu ändern, geben Sie diesen Befehl ein:
find . -type f -exec chmod 664 {} \ ;
Der Reihe nach erklärt heißt das: find durchsucht das Dateisystem nach allen Objekten, die den angegebenen Kriterien entsprechen. Der Punkt besagt, dass die Suche vom aktuellen Verzeichnis aus beginnen soll. Das Kriterium -type f liefert nur Dateien, aber keine Ordner und Symlinks. Nach dem Parameter -exec folgt schließlich der Befehl, der für jede Datei ausgeführt wird – in diesem Fall die Änderung der Zugriffsrechte auf 664. Das macht alle Dateien lesbar und für Besitzer und Gruppe beschreibbar, entfernt aber alle Rechte zum Ausführen. Analog dazu lässt sich find auch nur auf Verzeichnisse anwenden. Dazu tauschen Sie -type f für „file“ gegen -type d für „directory“.

Ein Anwendungsbeispiel: Um alle Ordner und Unterordner zum Öffnen ausführbar zu machen, geben Sie den Befehl
find . -type d -exec chmod 775 {} \;
ein. Hinweis: Beachten Sie, dass Sie nur als Besitzer einer Datei oder Ordners die Zugriffsrechte neu setzen dürfen, ansonsten benötigen Sie dazu Root-Rechte.

Power-Tipps zu Thunderbird

Systemwartung: Was läuft hier? - Linux-Distribution ermitteln Beim ersten Login auf einem fremden System oder auf dem gerade eingerichteten Server stellt sich oft die Frage, was hier eigentlich läuft. Ubuntu, Debian, Open Suse, CentOS oder Fedora? Mit einem Befehl auf der Kommandozeile finden Sie es heraus.

TIPP: Zwar zeigen die meisten Systeme im Terminal einen kurzen Begrüßungstext, jeweils typisch für die verwendete Distribution. Darin fehlen aber die wichtigsten Versionsangaben. Auf der Befehlszeile gibt es mehr als einen Weg und auch mehrere Stellen, um das laufende System zu erkunden. Um den Linux-Kernel abzufragen und nach seiner Version zu fragen, geben Sie das kurze Kommando uname -a ein, das Ihnen Kernel-Version und Prozessorplattform verrät. Diese Info ist wichtig, wenn Sie beispielsweise Bibliotheken oder Kernel-Header für eine bestimmte Version benötigen.

Wissen, was läuft: Auf der Kommandozeile geben Linux-Distributionen ihre Identität preis. Das ist eine praktische Orientierung auf Systemen, die Sie nicht selbst eingerichtet haben.
Vergrößern Wissen, was läuft: Auf der Kommandozeile geben Linux-Distributionen ihre Identität preis. Das ist eine praktische Orientierung auf Systemen, die Sie nicht selbst eingerichtet haben.

Falls diese Information zu technisch ist, gibt es noch einen Trick, um den Eigennamen der Distribution herauszufinden: Jede Linux-Distribution enthält eigene Versionsinformationen in einer Textdatei im Verzeichnis /etc bereit. Die Datei hat den Namen redhat-release bei Fedora, Red Hat und Cent-OS, während sie bei SLES und Open Suse wiederum SuSE-release heißt. Unter Debian lautet der Dateiname debian_version und unter Ubuntu ubuntu-version.

Weil sich niemand merken kann, wo welche Datei wie heißt, können Sie mit folgendem Befehl alle Eventualitäten abdecken:
cat /etc/*{version,release}
Dieses Kommando zeigt alle Textdateien in /etc an, die mit „version” und „release” enden. Wenn es sich nicht um ein eher exotisches System handelt, gibt es so klar verständlich die Linux-Distribution mit Versionsnummer aus.

0 Kommentare zu diesem Artikel
1570098