1. Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Einführung in Linux und Kommandozeile
Rosa Freund, freund@lrz.de
2. 2Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Einführung in Unix/Linux
● UNIX, 1969 (Bell Labs, AT&T)
● GNU/Unix, BSD, Linux
● weitere Varianten: AIX, HP-UX, Solaris, OS X,...
3. 3Einführung in Linux und Kommandozeile – Informatica Feminale 2013
GNU, Linux
● 1983: Richard Stallman, FSF, GNU GPL
● 1992: Linus Torvalds, Linux-Kernel
Linux-Distributionen:
● SuSE, Debian, Gentoo, Ubuntu / Mint, Arch
Linux, SELinux, Android, Knoppix, grml, ...
4. 4Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Unix-Eigenschaften
● Multi-User-System:
● gleichzeitig nutzbar
● getrennte Bereiche für User
● Trennung Anwendung (user) und
Administration (superuser = root)
● Verzeichnisbaum
5. 5Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Verzeichnisbaum
● keine Laufwerksbuchstaben, alles in
Verzeichnishierarchie
● Root-Verzeichnis / ist Wurzel (Vorsicht: /root
gibt es auch!)
● Verzeichnisse mit / getrennt
● /home
● /home/lisa
● /home/rosa
● /home/rosa/kurs
6. 6Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Verzeichnisbaum
/bin
/boot
/dev
/etc
/home
/lib
/media
/proc
/root
/sbin
/sys
/tmp
/usr
/var
7. 7Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Verzeichnisbaum
● User haben eigene Home-Verzeichnisse
● Einstellungen und Daten werden abgelegt
● i.d.R. /home/<username>
● externe Geräte und Festplatten
● im Verzeichnisbaum eingehängt (mount)
● wie Verzeichnis nutzbar
8. 8Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Betriebssystem-Komponenten
● Betriebssystem (Operating System, OS)
● Kernel (Hardwareverwaltung)
● System- und Dienstprogramme, (Hardwarenahe
Konfiguration,. . . )
● Benutzer-Schnittstelle (User Interface, UI)
● GUI (Graphical User Interface, grafische Oberfläche)
● CLI (Command Line Interface, Kommandozeile, Shell)
● Anwendungen
● grafisch
● kommandozeilenbasiert
9. 9Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Shell
● Schnittstelle zum Betriebssystem
● bash, sh, ksh, csh, tcsh...
● Befehle werden sofort ausgeführt
● Anwendungen ausführen / starten / beenden
● Shell-Befehle
● Shell-Programmiersprache
● Kleine, spezialisierte, kombinierbare Tools statt
großer Alleskönner-Anwendungen!
10. 10Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Warum Shell benutzen?
● keine (funktionierende) grafische Oberfläche
● Anwendung existiert nur für Kommandozeile
● Anwendungen kombinierbar
● schont Ressourcen
● sehr effizient für viele Problemstellungen
● z.B.: “kopiere alle Dateien mit Endung .jpg in ein anderes
Verzeichnis”
● z.B. “schreibe eine Liste aller Textdateien, die den Begriff
“informatica” enthalten, in eine Datei”
11. 11Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Wie komme ich zur Shell?
● Aus GUI heraus:
● Terminal bzw. Konsole starten
● zusätzliche Sitzung ohne GUI starten: STRG+ALT+F1
● weitere Sitzungen mit STRG+ALT+F2, STRG+ALT+F3,. . .
● zurück zur grafischen Sitzung: STRG+ALT+F7
● Schon da?
● Eingabeaufforderung (Prompt) erscheint, z.B.
rosa@horst:~$
● ggf. in die bash wechseln
12. 12Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Eingebaute Shell-Tricks
● Vervollständigen mit Tabulator
● ↑ und ↓ springen zu vorigen Shell-Eingaben
● Blättern mit Strg+Shift+ ↑ oder ↓
● Kopieren und Einfügen:
● markieren und mittlere Maustaste
● in Shells oft: Strg+Shift+C und Strg+Shift+V
● Laufendes Programm unterbrechen mit Strg+c
13. 13Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 1
Wer und wo bin ich?
14. 14Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Hilfe-System
● Befehlssyntax abfragen:
<befehl> -h oder --help
● Manual zur Bedienung: Man-Pages
man <befehl>
● Mehr Informationen:
info <befehl>
apropos <begriff>
15. 15Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 2
Hilfe holen
16. 16Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Navigation im Verzeichnisbaum
● Auf der Shell befindet man sich immer in einem
Verzeichnis
● absolute Pfadangaben:
/home/rosa/if-kurs
● relative Pfadangaben zum aktuellen Verzeichnis:
.
..
17. 17Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Relative Pfadangaben
● Ich bin in /home/rosa/ - dann sind identisch:
/home/rosa/if-kurs
if-kurs
./if-kurs
~/if-kurs
../rosa/if-kurs
../../home/rosa/if-kurs
18. 18Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Dateien und Verzeichnisse verwalten
● cd
● mkdir, rmdir
● cp, mv, rm
● touch: Legt eine Datei an, bei einer existierenden
Datei wird der Timestamp aktualisiert
ACHTUNG:
Vor dem Löschen oder Überschreiben fragt die Shell
nicht nochmal nach! Es gibt keinen “Papierkorb”!
19. 19Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 3
Navigation, Dateien
20. 20Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Shell-Befehle: Optionen
● ohne Argumente oder Optionen:
whoami, users
● Option(en) optional:
ls, pwd, uname
● Optionen können unterschiedlich aussehen:
ls -a einfacher Bindestrich, Kurzform
ls --all doppelter Bindestrich, Langform
ps aux ohne Bindestriche, BSD-style
● Verknüpfung mehrerer Kurz-Optionen:
ls -l -a ist dasselbe wie ls -la
21. 21Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Shell-Befehle: Argumente
● Optionen verändern das Output eines Befehls
● Auf Argumente kann ein Befehl wirken
● Argumente manchmal zwingend erforderlich:
mv <quelle> <ziel>
cd <verzeichnis>
22. 22Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Systeminformationen
● Viele Tools um System-Informationen auf der
Kommandozeile anzuzeigen
23. 23Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgabe 4
System-Informationen
24. 24Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Kommandozeilen-Editoren
● Unverzichtbar auf Serversystemen, die in der
Regel keine GUI bieten
● klein und einfach: nano, pico
● Mittelklasse: joe, jed
● komplex, aber mächtig: emacs, vi(m)
25. 25Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Kommandozeilen-Editoren
Quelle: http://unix.rulez.org/~calver/pictures/curves.jpg
27. 27Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 6
Ansehen und Durchsuchen von Textfiles
28. 28Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Wildcards
● * Ein oder kein oder mehrere beliebige Zeichen:
rm *.jpg
● ? Ein beliebiges Zeichen:
ls datei_?.txt
● [ ] Enthält erlaubte Zeichen: ls bl[aui]*,
ls bla_[1-5]*
● { } Enthält erforderliche Zeichen:
touch bla_{1,2,3,4,5,6,7}.txt
● ! Verneinung:
ls bl[!ai]*
29. 29Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Mehr reguläre Ausdrücke
● awk
● Mini-Programmiersprache auf CLI
http://tldp.org/LDP/Bash-Beginners-Guide/html/chap_06.html
● sed
● Streameditor, kann Text modifizieren
http://tldp.org/LDP/Bash-Beginners-Guide/html/chap_05.html
30. 30Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Ausgabeumleitung in Befehl
● Ausgabe von Befehl1 wird als Eingabe von
Befehl2 genutzt:
ls -la | more
who | grep <username>
cat ~./bash_history | sort
31. 31Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Ausgabeumleitung in Datei
● mit > oder >>
ls -la > filelist
● mit < wird Eingabe in Kommando geleitet
sort < filelist
● können auch kombiniert werden:
sort < filelist > filelist_sorted
32. 32Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 7
Wildcards, >, >>, |
33. 33Einführung in Linux und Kommandozeile – Informatica Feminale 2013
ls -l
●“d” bei Verzeichnissen
● Rechte
● Anzahl Hardlinks (Datei) oder
Unterverzeichnisse (Verzeichnis)
● user / owner
● group
● Größe in Bytes
● Letzte Änderung (aktualisieren mit touch)
● Name
34. 34Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Berechtigungen
● user gehören zu groups
● jede Datei hat einen user als owner
● jede Datei gehört außerdem einer group
● modulare Rechtevergabe möglich für die drei
Gruppen
1. user (u) = owner
2. group (g)
3. others (o)
35. 35Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Berechtigungen
● Mögliche Dateirechte:
1. read (r)
2. write (w)
3. execute (x)
● Zwei Varianten, Berechtigungen mit chmod zu setzen:
● Relativ: wer [ugo] bekommt / verliert [+ -] welche Rechte
[rwx])?
chmod go+r <datei>
● Explizit: binär, rwx entspricht z.B. 111, also 4+2+1=7.
chmod 755 <datei>
36. 36Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 8
Berechtigungen
37. 37Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Suchen im Dateisystem
● Schnelle Suche:
locate
● Aber: Wird in Datenbank gespeichert, muss
regelmäßig mit updatedb aktualisiert werden.
● Live-Suche, sehr mächtig:
find
● Aber: Kompliziert, unintuitive Sytax
find / -xdev -name passwd
38. 38Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgabe 9
Dateisystemsuche
39. 39Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Bash-Scripting
● Eingebaute Programmiersprache
● Skripte heißen z.B. skript.sh
● ausführen mit bash skript.sh oder sh
skript.sh oder ./skript.sh
● Erste Zeile: Shebang
#!/bin/bash
● http://tldp.org/LDP/abs/html/
● http://openbook.galileocomputing.de/shell_programmierung/
40. 40Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Variablen
● Variablen belegen:
var=hallo
● Wert der Variablen ausgeben:
echo $var
● Kommentare:
#kommentar
41. 41Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Konditionen / Schleifen
● if [ "foo" = "foo" ]; then
echo “stimmt”
else
echo “stimmt nicht”
fi
● for i in $( ls ); do
echo item: $i
done
● COUNTER=0
while [ $COUNTER -lt 10 ];
do
echo Der Counter ist $COUNTER
COUNTER=$(expr $COUNTER + 1)
done
42. 42Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Tests
● Testen Dateien:
if [ -e "/home/user13/testfile" ];
then echo "Datei existiert!"
fi
● Testen Zahlen:
if [ $(($a+$b)) -eq 0 ] && [ $a -gt 0];
then echo "a > 0 und a+b ist Null!"
fi
43. 43Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Was es sonst noch gibt
● Job-Management
jobs, fg, bg, &
● Skripte / Befehle regelmäßig ausführen
crontab
● Softwareverwaltung
● Systemabhängige Paketverwaltung-GUI, z.B. Synaptic
bei Ubuntu bzw. YaST2 bei SUSE
● Systemabhängige Paketverwaltungstools, z.B. apt/dpkg
(Debian / Ubuntu), zypper (SuSE), pacman (Arch Linux)
● Kompilieren aus dem Quellcode mit ./configure,
make, make install
● … und vieles mehr...
44. 44Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Das war's, vielen Dank!
● Langeweile?
Warum nicht ein Bash-Skript schreiben!