Post on 25-May-2015
description
Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Einführung in Linux und Kommandozeile
Rosa Freund, freund@lrz.de
2 Einfü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 Einfü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 Einfü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 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Verzeichnisbaum
/bin/boot/dev/etc/home/lib/media/proc/root/sbin/sys/tmp/usr/var
7 Einfü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 Einfü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 Einfü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 Einfü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 Einfü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 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 1
Wer und wo bin ich?
14 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 2
Hilfe holen
16 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Relative Pfadangaben
● Ich bin in /home/rosa/ - dann sind identisch:/home/rosa/if-kursif-kurs./if-kurs~/if-kurs../rosa/if-kurs../../home/rosa/if-kurs
18 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 3
Navigation, Dateien
20 Einfü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, Kurzformls --all doppelter Bindestrich, Langformps aux ohne Bindestriche, BSD-style
● Verknüpfung mehrerer Kurz-Optionen:ls -l -a ist dasselbe wie ls -la
21 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Systeminformationen
● Viele Tools um System-Informationen auf der Kommandozeile anzuzeigen
23 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgabe 4
System-Informationen
24 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Kommandozeilen-Editoren
Quelle: http://unix.rulez.org/~calver/pictures/curves.jpg
26 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgabe 5
vi
27 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 6
Ansehen und Durchsuchen von Textfiles
28 Einfü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 Einfü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 modifizierenhttp://tldp.org/LDP/Bash-Beginners-Guide/html/chap_05.html
30 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Ausgabeumleitung in Befehl
● Ausgabe von Befehl1 wird als Eingabe von Befehl2 genutzt:ls -la | morewho | grep <username>cat ~./bash_history | sort
31 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Ausgabeumleitung in Datei
● mit > oder >>ls -la > filelist
● mit < wird Eingabe in Kommando geleitetsort < filelist
● können auch kombiniert werden:sort < filelist > filelist_sorted
32 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 7
Wildcards, >, >>, |
33 Einfü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 Einfü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) = owner2. group (g)3. others (o)
35 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgaben 8
Berechtigungen
37 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Aufgabe 9
Dateisystemsuche
39 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Variablen
● Variablen belegen:
var=hallo● Wert der Variablen ausgeben:echo $var
● Kommentare:
#kommentar
41 Einfü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=0while [ $COUNTER -lt 10 ]; do echo Der Counter ist $COUNTER COUNTER=$(expr $COUNTER + 1)done
42 Einfü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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Was es sonst noch gibt● Job-Management
jobs, fg, bg, &
● Skripte / Befehle regelmäßig ausführencrontab
● 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 Einführung in Linux und Kommandozeile – Informatica Feminale 2013
Das war's, vielen Dank!
● Langeweile? Warum nicht ein Bash-Skript schreiben!