44
Einführung in Linux und Kommandozeile – Informatica Feminale 2013 Einführung in Linux und Kommandozeile Rosa Freund, [email protected]

Linux slides 2013_upload

Embed Size (px)

DESCRIPTION

Linux und Kommandozeile, Kurs auf der Informatica Feminale 2013

Citation preview

Page 1: Linux slides 2013_upload

Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Einführung in Linux und Kommandozeile

Rosa Freund, [email protected]

Page 2: Linux slides 2013_upload

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,...

Page 3: Linux slides 2013_upload

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, ...

Page 4: Linux slides 2013_upload

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

Page 5: Linux slides 2013_upload

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

Page 6: Linux slides 2013_upload

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

Page 7: Linux slides 2013_upload

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

Page 8: Linux slides 2013_upload

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

Page 9: Linux slides 2013_upload

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!

Page 10: Linux slides 2013_upload

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”

Page 11: Linux slides 2013_upload

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

Page 12: Linux slides 2013_upload

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

Page 13: Linux slides 2013_upload

13 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgaben 1

Wer und wo bin ich?

Page 14: Linux slides 2013_upload

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>

Page 15: Linux slides 2013_upload

15 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgaben 2

Hilfe holen

Page 16: Linux slides 2013_upload

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:...

Page 17: Linux slides 2013_upload

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

Page 18: Linux slides 2013_upload

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”!

Page 19: Linux slides 2013_upload

19 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgaben 3

Navigation, Dateien

Page 20: Linux slides 2013_upload

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

Page 21: Linux slides 2013_upload

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>

Page 22: Linux slides 2013_upload

22 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Systeminformationen

● Viele Tools um System-Informationen auf der Kommandozeile anzuzeigen

Page 23: Linux slides 2013_upload

23 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgabe 4

System-Informationen

Page 24: Linux slides 2013_upload

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)

Page 25: Linux slides 2013_upload

25 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Kommandozeilen-Editoren

Quelle: http://unix.rulez.org/~calver/pictures/curves.jpg

Page 26: Linux slides 2013_upload

26 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgabe 5

vi

Page 27: Linux slides 2013_upload

27 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgaben 6

Ansehen und Durchsuchen von Textfiles

Page 28: Linux slides 2013_upload

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]*

Page 29: Linux slides 2013_upload

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

Page 30: Linux slides 2013_upload

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

Page 31: Linux slides 2013_upload

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

Page 32: Linux slides 2013_upload

32 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgaben 7

Wildcards, >, >>, |

Page 33: Linux slides 2013_upload

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

Page 34: Linux slides 2013_upload

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)

Page 35: Linux slides 2013_upload

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>

Page 36: Linux slides 2013_upload

36 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgaben 8

Berechtigungen

Page 37: Linux slides 2013_upload

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

Page 38: Linux slides 2013_upload

38 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Aufgabe 9

Dateisystemsuche

Page 39: Linux slides 2013_upload

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/

Page 40: Linux slides 2013_upload

40 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Variablen

● Variablen belegen:

var=hallo● Wert der Variablen ausgeben:echo $var

● Kommentare:

#kommentar

Page 41: Linux slides 2013_upload

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

Page 42: Linux slides 2013_upload

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

Page 43: Linux slides 2013_upload

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...

Page 44: Linux slides 2013_upload

44 Einführung in Linux und Kommandozeile – Informatica Feminale 2013

Das war's, vielen Dank!

● Langeweile? Warum nicht ein Bash-Skript schreiben!