Im Rahmen der Vorlesung Rechnerarchitektur und Rechnernetze am
Lehrstuhl für Angewandte Informatik II
Universität Bayreuth
Wintersemester 2014/15
- Linux bezeichnet eigentlich nur den Betriebssystem-Kernel
- Kernel + System- und Anwenderprogramme = vollständiges Betriebssystem für Endanwender (Distribution)
- Es gibt zahllose Distributionen, zu viele, um sie alle aufzuzählen
- Aktuelle Spitzenplätze auf distrowatch.com (Oktober 2014): 1. Mint, 2. Ubuntu, 3. Debian
- Weitere bekannte Distributionen: Fedora, openSUSE, Mageia, Gentoo, ...
- Linux ist weit verbreitet, vor allem auf Servern, Supercomputern, in eingebetteten Systemen, auf Smartphones und auf Tablets (Android)
- Desktop-Umgebungen wie KDE, GNOME, Xfce oder LXDE bieten grafische Benutzeroberflächen und erleichtern den Einstieg
- Linux ist ein Mehrbenutzer-Betriebssystem
- Jeder Benutzer hat ein eigenes Arbeitsverzeichnis (Home-Verzeichnis)
- Dateien und Verzeichnisse außerhalb des eigenen Home-Verzeichnisses können nur mit entsprechenden Rechten zugegriffen werden
Anlegen und Löschen von Ordnern und Dateien in der aktuellen Desktop-Umgebung
- Die Kommandozeile bietet Zugriff auf grafische und nichtgrafische Tools und Anwendungen; man gibt Befehle ein und bestätigt mit der Eingabetaste
man xyz
(manual) liefert Hilfe zu einem bestimmten Befehlxyz
- Alles, was folgt, funktioniert auch auf Macs, da OS X und Linux ein gemeinsames Vorbild haben: Unix
Anlegen und Löschen von Ordnern und Dateien in der Kommandozeile
Wo befinden wir uns?
pwd
(print working directory)
Wir befinden uns in unserem Home-Verzeichnis. Was gibt es hier?
ls
(list contents)
Noch nicht besonders viel. Es kann losgehen:
-
mkdir Buch
(make directory) -
cd Buch
(change directory)Wir befinden uns jetzt im Verzeichnis
Buch
, das wir soeben angelegt haben. Die restlichen fehlenden Verzeichnisse können wir der Reihe nach oder in einem Rutsch erstellen. -
mkdir Kapitel1 Kapitel2 Kapitel3
mkdir Kapitel1/Abbildungen
Tipp: Mit der Option
-p
(parent) geht das Erstellen einer Verzeichnisstruktur am schnellsten:mkdir -p Kapitel1/Abbildungen Kapitel2 Kapitel3
-
cd Kapitel1
Jetzt befinden wir uns in
Kapitel1
, einem Unterverzeichnis vonBuch
. Tilde (~
) bezeichnet unser Home-Verzeichnis (Neugierige probierenecho ~
). Wir downloaden die DateiTux.png
und kopieren diese anschließend vonDownloads
nachAbbildungen
. Mitecho
erzeugen wir die DateiEinleitung.txt
und fügen eine erste Zeile Text ein. Da wir uns inBuch/Kapitel1
befinden, bringt unscd ..
in das übergeordnete VerzeichnisBuch
zurück. -
curl -s -o ~/Downloads/Tux.png http://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png
-
cp ~/Downloads/Tux.png Abbildungen
(copy) -
echo "Einleitung" > Einleitung.txt
-
cd ..
Wieder im Verzeichnis
Buch
erzeugen wir mitecho
analog zu 6. die DateiInhalt.txt
. Fertig! -
echo "Titel" > Inhalt.txt
Das war recht mühsam. Schön wäre es, wenn man diesen Vorgang automatisieren könnte...
Shell = Kommandozeileninterpreter
Um alle Befehle aus unserem Beispiel "auf einmal" auszuführen, erstellen wir
eine Datei newbook.sh
mit folgendem Inhalt:
mkdir Buch
cd Buch
mkdir -p Kapitel1/Abbildungen Kapitel2 Kapitel3
cd Kapitel1
curl -s -o ~/Downloads/Tux.png http://upload.wikimedia.org/wikipedia/commons/a/af/Tux.png
cp ~/Downloads/Tux.png Abbildungen
echo "Einleitung" > Einleitung.txt
cd ..
echo "Titel" > Inhalt.txt
echo "Neues Buch angelegt"
Können wir die Datei nun als Programm ausführen? Noch nicht...
ls -l
Die Datei newbook.sh
kann zwar gelesen und verändert, aber nicht ausgeführt
werden. Das müssen wir ändern.
chmod u+x newbook.sh
(change mode)
ls -l
Et voilà! Mit mv
verschieben wir newbook.sh
nach bin
und mit cd
ohne
Pfadangabe wechseln wir direkt ins Home-Verzeichnis.
mv newbook.sh ~/bin
(move)
cd
Zum Test löschen wir unser oben angelegtes Buch
. Bereit? Dann los:
newbook.sh
Kommandos lassen sich verketten: a | b
bedeutet, die Ausgabe bzw. das
Ergebnis von a
wird als Eingabe von b
verwendet. Extrem nützlich! Drei
kurze Beispiele:
find -name '*.txt' | wc -l
ermittelt die Anzahl der Textdateien im
aktuellen Verzeichnis einschließlich aller Unterverzeichnisse.
echo "4/3 * 3.14159 * 2.25^3" | bc
bestimmt den Wert des in Klammern
stehenden arithmetischen Ausdrucks (bc
ist ein Taschenrechner).
history | tr -s " " | cut -d" " -f3 | sort | uniq -c | sort -nr | head
zeigt
die "Top 10" der am häufigsten benutzten Kommandos.
Das letzte Beispiel lässt erahnen, der Fantasie sind nahezu keine Grenzen gesetzt.