Universität zu Köln | eLearning
_____________________________________
Linux – Session 1: Grundbefehle

Theorie

In dieser Session des eLearnings, der Grundlagen der Datenverarbeitung für den Bereich Linux, wird ein Überblick über wesentliche Befehle gegeben, die zur Ordner- und Dateiverwaltung über die Linux-Konsole essentiell sind.

Sonderzeichen

Bei der Bedienung der Konsole ist bei der Verwendung von Sonderzeichen Vorsicht geboten:
.Aktuelles Verzeichnis
..Übergeordnetes Verzeichnis
;Trennzeichen zweier oder mehrerer Befehle
!Erlaubt z. B. das Überschreiben einer bereits vorhandenen Datei, z. B. cat [DATEI1] >! [DATEI2]
" bzw. 'Verwendung siehe z. B. Kapitel echo, cat, ">" und ">>"
Erlaubt das Schreiben einer Zeichenkette in eine Datei, siehe z. B. Kapitel echo, cat, ">" und ">>"
Erlaubt das Schreiben einer Zeichenkette in eine bereits vorhandene Datei, siehe z. B. Kapitel echo, cat, ">" und ">>"
Bedeutung siehe Modul Shell Skript
|Erlaubt das gleichzeitige Ausführen zweier oder mehrerer Befehle, z. B. grep [ZEICHENKETTE] [DATEI] | more
#Ermöglicht beispielsweise in einem Shell Script einen Kommentar zu verfassen (z. B. durch: # [KOMMENTAR]).
*Bezug auf den gesamten Inhalt eines Verzeichnisses, z. B. grep [ZEICHENKETTE] *

mkdir und cd

Ein neues Verzeichnis lässt sich durch den Befehl mkdir [VERZEICHNIS] erstellen (im Folgenden werden variable Einträge durch eckige Klammern und Großbuchstaben gekennzeichnet). Um in das soeben erstellte Verzeichnis zu wechseln kann der Befehl cd [VERZEICHNIS] gewählt werden. Mit cd .. ist ein Wechsel in das übergeordnete Verzeichnis möglich.

echo, cat, ">" und ">>"

Eine erste Datei mit dem Inhalt "hallo" erstellen wir durch die Eingabe von echo "hallo" > [DATEI1].txt in die Konsole. An diese Datei können wir auch noch weitere Zeilen anhängen. Das geht zum Beispiel so: echo "student" >> [DATEI1].txt. Falls Sonderzeichen verwendet werden sollen, können statt " die einfachen Anführungszeichen ' verwendet werden, z. B. lässt sich Folgendes schreiben: echo 'Vorsicht bei Sonderzeichen!' > [DATEI1].txt. Wir können auch eine andere Datei an die vorherige anhängen. Das geht mit dem Befehl cat (Beispiel: cat [DATEI2].txt >> [DATEI1].txt; hier wird die zweite Datei an die erste angehangen). Der Doppelpfeil hängt Entsprechendes an eine Datei an.

Der Befehl ls -al

Wenn im Konsolenfenster in einem bestimmten Verzeichnis ls -al ausgeführt wird, dann werden unterschiedliche Informationen über das Verzeichnis und die darin vorhandenen Dateien ausgegeben. Beispielsweise könnte auf der Konsole folgendes ausgegeben werden:

insgesamt 120
drwxr-xr-x 3 vermert users  4096 2011-07-21 18:16 .
drwxr-xr-x 4 vermert users  4096 2011-07-06 10:22 ..
drwxr-xr-x 2 vermert users  4096 2011-07-15 17:00 alt
-rw-r--r-- 1 vermert users 10870 2011-07-06 18:38 css_start.css
-rw-r--r-- 1 vermert users  4410 2011-07-21 16:25 index.css
-rw-r--r-- 1 vermert users 13595 2011-07-21 18:13 linux_session1.html
-rw-r--r-- 1 vermert users 12759 2011-07-21 16:18 linux_session2.html
-rw-r--r-- 1 vermert users 13993 2011-07-21 18:15 linux_session3.html
-rw-r--r-- 1 vermert users 12005 2011-07-21 16:18 shell_session1.html
-rw-r--r-- 1 vermert users  8280 2011-07-21 16:18 shell_session2.html
-rw-r--r-- 1 vermert users  4767 2011-07-21 16:18 shell_session3.html
-rw-r--r-- 1 vermert users  7083 2011-07-21 18:15 startseite.html

In der ersten Zeile wird die Größe des Verzeichnisses in KiloByte (KB) angegeben. Anschließend folgen allgemeine Informationen über das aktuelle Verzeichnis (.) sowie wie über das übergeordnete Verzeichnis (..). Danach werden alle enthaltenen Dateien und untergeordneten Verzeichnisse aufgelistet.
Welche Informationen dann ausgegeben werden zeigt die folgende Tabelle:

ZeichenketteBeispielErklärung
1drwxr-xr-xDas erste Zeichen zeigt an ob es sich bei dem jeweiligen Objekt um ein Verzeichnis (d) oder eine Datei (-) handelt. Die nachfolgenden neun Zeichen geben die Zugriffsrechte für den user (dem gehört die Datei), die group (verschiedene user gehören einer Gruppe an), sowie für alle anderen Nutzer (others) an (weiteres siehe chmod).
23??
3vermertuser
4usersgroup
510870Verbrauchter Speicherplatz in Bites
62011-07-21Jahr-Monat-Tag (Datum der Erstellung bzw. des letzten Speicherns)
718:13Zeit der Speicherung
8linux_session1.htmlDatei- oder Verzeichnisname (mit Datei-Endung)

grep

Die Suche nach einer bestimmten Zeichenkette in Dateien erfolgt durch den grep Befehl (z. B. die Suche nach einer ZEICHENKETTE kann in einer DATEI erfolgen durch grep [ZEICHENKETTE] [DATEI] bzw. im gesamten Verzeichnisinhalt durch grep [ZEICHENKETTE] *). Die Option -n ermöglicht es zusätzlich die Zeilennummer herauszufinden, in der die Zeichenkette gefunden wurde. Mittels grep -n [ZEICHENKETTE] [DATEI] wird die Zeilennummer angegeben, in der die Zeichenkette gefunden wurde (kann mehrfach angegeben werden).

more

Der Inhalt einer Datei kann mit Hilfe des more Befehls angesehen werden. Der Inhalt der DATEI wird angezeigt, wenn der Befehl more [DATEI] angewendet wird. Durch das Betätigen der SPACE-Taste wird die folgende Seite angezeigt. Falls nicht der gesamte Inhalt angezeigt werden soll, kann der Vorgang durch die Tasteneingabe STRG-c abgebrochen werden. Während der Durchsicht einer Datei mit Hilfe von more kann auch nach Zeichenketten gesucht werden. Dies geht durch die Tasteneingabe von / [ZEICHENKETTE].

cp

Dateien können mit dem Befehl cp kopiert werden (z. B. durch cp [DATEI1] [DATEI2]). Die Option -r ermöglicht das rekursive Kopieren von Verzeichnissen. Durch diese Option werden auch die Unterverzeichnisse und alle darin enthaltenen Dateien mit kopiert (z. B. kopiert der Befehl cp -r [VERZEICHNIS] .. das VERZEICHNIS in das übergeordnete Verzeichnis und kopiert gleichzeitig alle Unterverzeichnisse von VERZEICHNIS und die darin enthaltenen Dateien).

mv

Dateien werden mit Hilfe des mv Befehls umbenannt und/oder verschoben (z. B. wird DATEI1 zu DATEI2 durch den Befehl mv [DATEI1] [DATEI2]). Die Option -f verhindert, dass davor gewarnt wird, dass eine Datei überschrieben wird. Auch das Verschieben einer Datei in ein anderes Verzeichnis ist möglich (z. B. durch mv [DATEI] [VERZEICHNIS]/.; in diesem Fall wird die Datei nicht umbenannt).

rm und rmdir

Dateien bzw. Verzeichnisse können durch die Befehle rm bzw. rmdir gelöscht werden (z. B. werden die DATEI und das VERZEICHNIS folgendermaßen gelöscht: rm [DATEI] bzw. rmdir [VERZEICHNIS]). Die Befehlsoption -f ignoriert nicht existierende Dateien oder Verzeichnisse und fragt nicht nach ob die Datei oder das Verzeichnis wirklich gelöscht werden soll (z. b. rm -f [DATEI]). Eine andere Option -r entfernt Verzeichnisse und deren Inhalt rekursive (z. B. werden das VERZEICHNIS und alle Unterverzeichnisse und Dateien durch den Befehl rm -r [VERZEICHNIS] gelöscht). Aus diesen Gründen, ermöglicht es die Option -rf Verzeichnisse rekursiv und ohne Nachfrage zu löschen (z. B. durch rm -rf [VERZEICHNIS]).

manual-pages

In diesem elearning Portal werden nicht alle Optionen der jeweiligen Befehle behandelt. Alle anderen Optionen und weitere Erklärungen können in den sog. manual-pages nachgeschlagen werden. Diese können als Handbuch angesehen werden, sind aber leider nicht immer einfach zu verstehen. Die Beschreibung der Kommandos lässt sich mit der Eingabe man [BEFEHL] ausgeben. Zum Terminal kann durch die Eingabe von q zurückgekehrt werden.

Übungsaufgaben

Aufgabe 1:

a)Erstelle zwei Verzeichnisse.
b)Wechsle in eines der beiden Verzeichnisse.

Lösung Aufgabe 1

Aufgabe 2

a)Erstelle eine Datei test1.txt mit Inhalt "Hallo Welt!".
b)Erstelle eine zweite Datei test2.txt mit Inhalt "Das ist die zweite Zeile".
c)Füge den Inhalt der Datei test2.txt an die Datei test1.txt an.
d)Hänge den Text "Das ist nun die dritte Zeile!" and die Datei test1.txt an.

Lösung Aufgabe 2

Aufgabe 3

a)Gebe eine Liste des Ordnerinhalts aus.
b)Schaue den Inhalt der Datei test1.txt an.
c)Suche in der Datei test1.txt nach dem Inhalt "zweite Zeile".
d)In welcher Datei und in welcher jeweiligen Zeile befindet sich die Zeichenkette "Welt"?.

Lösung Aufgabe 3

Aufgabe 4

a)Speichere die Datei test1.txt unter dem Namen test3.txt.
b)Kopiere die Datei test3.txt in das andere Verzeichnis unter dem gleichen Namen und unter dem Namen test4.txt.
c)Füge im Verzeichnis verz1 alle Dateien unter dem Namen test.txt zusammen und verschiebe test.txt in das Verzeichnis verz2. Verwende dafür nur eine Kommandozeile!
d)Lösche die Datei test3.txt.
e)Lösche ohne Nachfrage alle restlichen Dateien im Verzeichnis verz1.
f)Lösche das leere Verzeichnis verz1.
g)Welche Dateien befinden sich in dem Verzeichnis verz2?

Lösung Aufgabe 4