Im Rahmen der Vorlesung Rechnerarchitektur und Rechnernetze am
Lehrstuhl für Angewandte Informatik II
Universität Bayreuth
Wintersemester 2013/14
- 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 2013): 1. Mint, 2. Debian, 3. Ubuntu
- 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 Kapitel1/Abbildungen Kapitel2 Kapitel3
Tipp: Wenn man wie oben ein Verzeichnis und Unterverzeichnis erstellen will kann man sich mit der Option
-p
ein paar Buchstaben sparen.-p
steht für Parent und erstellt, wenn nötig, gleich das erste Verzeichnis mit. Das Kommando würde dann so aussehen: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 kopieren die Dateitux.png
vonDownloads
nachAbbildungen
. Mitecho
erzeugen wir die Datei01_Einleitung.txt
und fügen eine erste Zeile Text ein. Da wir uns inBuch/Kapitel1
befinden, bringt unscd ..
in das übergeordnete VerzeichnisBuch
zurück. -
cp ~/Downloads/tux.png Abbildungen
(copy) -
echo "## Einleitung" > 01_Einleitung.txt
-
cd ..
Wir kopieren nun alle Bilder mit der Endung
tif
vonDownloads
ins aktuelle Verzeichnis (Buch
). Mitecho
erzeugen wir analog zu 6. die DateiInhalt.txt
. Fertig! -
cp ~/Downloads/*.tif .
-
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 Kapitel1 Kapitel1/Abbildungen Kapitel2 Kapitel3
cd Kapitel1
cp ~/Downloads/tux.png Abbildungen
echo "## Einleitung" > 01_Einleitung.txt
cd ..
cp ~/Downloads/*.tif .
echo "# Titel" > Inhalt.txt
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 +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.