Da ich immer mal wieder in den letzten Jahren mit dem Gedanken gespielt habe, mich LPIC-1 zertifizieren zu lassen, habe ich nun mal beschlossen einige Themengebiete für diese Zertifizierung hier auf dem Blog aufzuarbeiten. Den Anfang soll nun dabei das Thema Verzeichnisstrukturen, Dateien und die dafür benötigten Befehle.
Inhaltsverzeichnis
Ich versuche mich dabei etwas an den entsprechenden Prüfungsunterlagen zu orientieren, welche durch die tuxcademy bereit gestellt werden (https://www.tuxcademy.org/).
Datei- und Pfadnamen
Beginnen wir mit Dateien und Pfaden. Einer der wichtigsten hinweise hier ist, dass Linux zwischen Groß- und Kleinschreibung in den Datei- und Ordnernamen unterscheidet. Viele Benutzer aus dem Windows Bereich sind dies nicht gewohnt und wundern sich, warum Dateien nicht gefunden werden.
Eine weiter rechte wichtige Information ist, dass Linux nicht auf die Dateiendungen angewiesen ist. Ein Beispiel dafür sind Textdateien. Diese müssen auf einem Linux System nicht mit .txt enden.
Etwas vorsichtig muss man mit der Thematik jedoch trotzdem Umgehen. Nur weil Linux von Haus aus keine Endungen braucht, heißt das nicht, dass Dienste bzw. Software nicht darauf angewiesen ist.
So will zum Beispiel ein Webserver natürlich .html oder .php Dateien haben. Und ein Compiler erwartet auch eine .c oder .h Datei. Wichtig hierbei ist zu wissen, dass dies von der Software abhängig ist und nicht vom Betriebssystem.
Sonderzeichen oder Umlaute können in den Dateinamen grundsätzlich verwendet werden. Es ist aber davon abzuraten.
Daraus ergeben sich die folgenden Zeichen, die verwendet werden können.
1 2 3 | ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789+-._ |
Um Problemen vorzubeugen sollten die letzten vier Zeichen nicht am Anfang einer Datei stehen, da diese bestimmte Funktionalitäten zur Folge haben kann. Der Punkt am Anfang sorgt zum Beispiel dafür, dass die Datei versteckt wird.
Diese Konventionen gelten auch für alle Verzeichnisse.
Kommen wir jetzt zu den Pfaden. Hierbei gilt es den absoluten und den relativen Pfad zu unterscheiden.
Ein absoluter Pfad ist immer der komplette Pfad. Er beginnt also immer in Wurzelverzeichnis /.
Ein relativer Pfad beginnt immer im aktuellen Verzeichnis.
Um das ganze etwas zu verdeutlichen ein kleines Beispiel. Wir befinden uns im Ordner /etc/apache2. Von hier aus wollen wir in das Verzeichnis /etc/apache2/users wechseln. Dabei können wir einmal den absoluten und einmal den relativen Pfad benutzen. Das ganze sieht dann wie folgt aus:
1 2 3 4 5 | #absoluter Pfad cd /etc/apache2/users/ #relativer Pfad von /etc/apache2 cd users/ |
Wie wir sehen ist die Verwendung des relativen Pfades etwas kürzer. Hier gibt es auch noch einen kleinen Trick. Wir befinden uns immer noch im Verzeichnis /etc/apache2/. Jetzt wollen wir in den Ordner /etc/resolver/ wechseln. Der absolute Pfad ist dabei recht einfach. Wollen wir an dieser Stellen einen relativen Pfad benutzen, müssen wir .. verwenden. Mit cd .. können wir Ordner höher springen. In unserem Fall also nach /etc/. Die beiden Befehle würde dann so aussehe:
1 2 3 4 5 | #absoluter Pfad cd /etc/resolver #relativer Pfad von /etc/apache2 cd ../resolver |
Kommandos für den Umgang mit Verzeichnissen
Um richtig mit der Verzeichnisstruktur umgehen zu können sind im ersten Schritt drei Kommandos wichtig: cd, pwd und ls
cd haben wir ja schon kennen gelernt. Mit diesem Kommando kann man unter der Verwendung eines absoluten oder relativen Pfades sich in der Verzeichnisstruktur von Linux bewegen. Hier gibt es auch nicht weiter zu beachten.
pwd ist ein recht nützlicher Befehl um festzustellen in welchem Ordner man sich gerade befindet. Dafür kann man einfach pwd eingeben und bekommt den absoluten Pfad als Ausgabe:
1 2 | pwd /Users/Christian/Sites/symfonyBundle |
Mit dem Befehl ls kann man sich den Inhalt eines Verzeichnisses anzeigen lassen. Das ganze sieht dann zum Beispiel so aus:
1 2 3 4 | ls README.md composer.json src/ vendor/ app/ composer.lock tests/ web/ bin/ phpunit.xml.dist var/ |
Die Ausgabe können wir nun noch mit der Angabe von Parametern verfeinern. Wenn wir zum Beispiel ein -l anfügen, bekommen wir eine Liste der Dateien und einige Zusatzinformationen:
1 2 3 4 5 6 7 8 9 10 11 12 13 | ls -l total 176 -rw-rw-rw- 1 Christian staff 87B 21 Sep 18:00 README.md drwxr-xr-x 8 Christian staff 272B 3 Sep 18:02 app/ drwxr-xr-x 4 Christian staff 136B 3 Sep 18:04 bin/ -rw-rw-rw- 1 Christian staff 2,0K 21 Sep 18:00 composer.json -rw-rw-rw- 1 Christian staff 73K 21 Sep 18:00 composer.lock -rw-r--r-- 1 Christian staff 978B 3 Sep 18:02 phpunit.xml.dist drwxr-xr-x 5 Christian staff 170B 20 Okt 14:33 src/ drwxr-xr-x 3 Christian staff 102B 3 Sep 18:02 tests/ drwxr-xr-x 7 Christian staff 238B 3 Sep 18:04 var/ drwxr-xr-x 16 Christian staff 544B 3 Sep 18:04 vendor/ drwxr-xr-x 10 Christian staff 340B 3 Sep 18:04 web/ |
Hier sieht man jetzt unter anderem auch die Rechte der Dateien und Ordner. Dies will ich an dieser Stelle nicht erklären, da ich vor einiger Zeit schon mal einen Artikel dazu geschrieben (Rechtevergabe unter Linux).
Der ls Befehl kann für die LPI-101 Zertifizierung recht wichtig sein. Ihr sollte euch deshalb auf jedenfall folgende Parameter einprägen:
- -a oder –all zeigt auch versteckte Dateien an
- -i oder –inode gibt die eindeutige Dateinummer (Inode-Nr.) aus
- -l oder –format=long liefert zusätzliche Informationen
- –color=no verzichtet auf die Farbcodierung
- -p oder -F markiert Dateityp durch angehängte Sonderzeichen
- -r oder –reverse kehrt Sortierreihenfolge um
- -R oder –recursive durchsucht auch Unterverzeichnisse
- -S oder –sort=size sortiert Dateien nach Größe (größte zuerst)
- -t oder –sort=time sortiert Dateien nach Zeit (neueste zuerst)
- -X oder –sort=extension sortiert Dateien nach Dateityp
Anlegen und löschen von Verzeichnissen
Neben dem finden und verwenden von Verzeichnissen ist es natürlich noch wichtig, wie man Verzeichnisse anlegt bzw. löscht. Dafür können die Befehle mkdir und rmdir verwendet werden.
Beim Anlegen eines Verzeichnisses hat man die Möglichkeit den relativen oder absoluten Pfad zu verwenden oder den Ordner direkt in dem Verzeichnis in dem wir uns momentan befinden anzulegen. Hier ein Beispiel für die drei Möglichkeiten.
1 2 3 4 5 6 7 8 | #direkt im Ordner mkdir test #relativer Pfad (Beispiel) mkdir ../../test #absoluter Pfad mkdir /home/modius/test |
In allen drei Fällen wird ein Ordner Test angelegt.
Der rmdir Befehl funktioniert genauso wie mkdir, nur das er ein Verzeichnis löscht und nicht erstellt.
1 2 3 4 5 6 7 8 | #direkt im Ordner rmdir test #relativer Pfad (Beispiel) rmdir ../../test #absoluter Pfad rmdir /home/modius/test |
Schreibe einen Kommentar