Sie sind auf Seite 1von 61

Das Bild kann nicht angezeigt werden.

Dieser Computer verfgt mglicherweise ber zu wenig Arbeitsspeicher, um das Bild zu ffnen, oder das Bild ist beschdigt. Starten Sie den Computer neu, und ffnen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, mssen Sie das Bild mglicherweise lschen und dann erneut einfgen.

EinfhrunginUNIX
182.711BetriebssystemeUE
Armin Wasicek
SS 2012

Inhalt
-

UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos

07.03.12

EinfhrunginUNIX

Aufbau eines UNIX Systems (1)


Hardware
Computersystem

(CPU, Speicher)
Peripheriegerte
(zur Eingabe, Ausgabe)

Software
Betriebsystem
(Kernel + Gertetreiber)

Benutzerprogramme
(Shell, Compiler, Browser, etc.)

07.03.12

EinfhrunginUNIX

Aufbau eines UNIX Systems (2)


UNIX ist ein
Mehrbenutzer und
Mehrprozess
Betriebssystem.
.

UNIXuntersttztdie
gemeinsameBenutzung
derBetriebsmiAeldurch
mehrereBenutzer
07.03.12

EinfhrunginUNIX

Aufbau eines UNIX Kernels (3)


S ys temcallinterface
Memory
manag ement
c omponent

S ignalhandling

V irtualmemory

P roces s /T hread
creation/termination

P agingpage
replacement

C P US cheduling

P agecache

IO andnetworking c omponent
V irtualfiles ys tem

T erminals

line
dis cipline

P roc es s
manag ement
c omponent

C haracter
devices
drivers

F iles ys tems
G eneric
blocklayer
IO s cheduler
B lockdevice
drivers

Interrupts

07.03.12

S ockets

Network
s tacks
Network
device
drivers

D is patcher

EinfhrunginUNIX

Was ist ein Betriebssystem?


a) Erweiterte Maschine
Abstraktion zur
Verringerung der
Komplexitt der
Hardware

Bereitstellen von
Schnittstellen und
APIs fr Applikationen
(Systemcall Interface)
07.03.12

b) Ressourcen Manager
Aufteilen (Multiplexen)
und verwalten von
Ressourcen
ber Zeit: Rechenzeit,
Netzwerkzugriff
ber Raum: Speicher,
Ein-/Ausgabegerte
(z.B. Fenster am
Monitor)

EinfhrunginUNIX

Geschichte von UNIX (1)

AGerSilbermann,2006
07.03.12

EinfhrunginUNIX

Geschichte von UNIX (2)

07.03.12

EinfhrunginUNIX

Source: http://de.wikipedia.org/wiki/Geschichte_von_Unix
See also: hAp://www.levenez.com/unix/
8

Inhalt

UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos

07.03.12

EinfhrunginUNIX

Login
Was passiert beim login?
Anmeldung am System
Authentifizierung des Benutzers durch
- Benutzernamen
z.B. s0725845
- Passwort
****
(geheim)
Benutzer ist anwesend
Sitzung beginnt, erstes Programm (Shell) startet
07.03.12

EinfhrunginUNIX

10

Schlechte Passwrter
Kein Passwort
Kurze Passwrter (ich)
Leicht zu erratende Begriffe (sysprog)
Namen z.B. den eigenen, von Freunde, Bekannten
(Schauspieler), Verwandten, Feinden

Korrekt geschriebene Wrter


Rckwrts geschriebene Wrter (ollaH)
07.03.12

EinfhrunginUNIX

11

Wie findet man ein fremdes


Passwort heraus?

ber die Schulter schauen


Keylogger Programme
Login-Prozedur flschen
Fragen (social engineering)
Standard Passwort
Durchprobieren wahrscheinlicher Passwrter
(manuell oder automatisiert)
Durchsuchen des Mistkbels
07.03.12

EinfhrunginUNIX

12

Gute Passwrter
Verwenden:
Gro- und Kleinbuchstaben, Sonderzeichen, Ziffern
Sinnlose aber leicht zu merkende Zeichenfolgen
mindestens 8 Zeichen
Wie merke ich mir das?
Zb.: Akronyme:
AmE:sadS: (Alle meine Entchen :schwimmen auf dem See: )
Self Assessment: http://www.passwordmeter.com/
07.03.12

EinfhrunginUNIX

13

Shell
Nach dem Einloggen wird als erster Proze eine
Shell gestartet.
Die Shell liest und interpretiert Befehle.
Befehle haben folgende Form:
$ Befehl [Optionen] [Files] ...
$ ls l test.c a.out
$ cd /tmp
$ pwd

Konvention: Optionen beginnen mit einem


Bindestrich

07.03.12

EinfhrunginUNIX

14

Inhalt

UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos

07.03.12

EinfhrunginUNIX

15

Prozesse
Ein Prozess ist der Ablauf eines Programms:
Speicherabbild des Programms
Speicher fr Programmdaten
Kontext (Betriebssystem, Prozessor, Ressourcen)
In einem UNIX System laufen viele Prozesse parallel ab
Prozesszustnde:

07.03.12

EinfhrunginUNIX

16

Prozesshierachien (pstree)
initacpid
ahc_dv_0
ahc_dv_1
bash
clock-applet
crond
cups-config-dae
cupsd
2*[dbus-daemon-1]
dbus-launch
dhcpd
gdm-binarygdm-binaryX

gdmgreeter

gdm-binarygnome-sessionssh-agent
2*[sendmail]
sesam_serversesam_server

sesam_server9*[sesam_server]
smbd5*[smbd]
sshdsshdsshdbashpine-secure.shpine

sshdsshdbashpine

3*[sshdsshdbash]

sshdsshdbashxtermbashpstree

17

Dmonen und Zombies


Ein Demon ist ein Programm,

Ein Zombie ist ein Prozess,

das im Hintergrund luft und


Dienste zur Verfgung stellt

der zwar beendet ist, aber


trotzdem noch im System
registriert ist.

httpd, crond, cupsd, sshd


Luft entkoppelt vom
aufrufenden Prozess

Direkter Kindprozess des


Hauptprozesses init

Windows: Systemdienste
07.03.12

Das passiert solange bis der


aufrufende Prozess
(Elternprozess) den Status
abfragt

Alternativen dazu sind


Adoption und Eliminierung
EinfhrunginUNIX

18

Task Liste
Der Kernel hat eine Liste
von aktiven Prozessen,
die Task List .

Jeder Prozess existiert


- im Kernel space (process
descriptor) und im
- User space (Datensegment,
Programm Code).

Ausgeben mit Befehl ps


07.03.12

[armin@apps1 ~]$ ps
PID TTY
TIME CMD
7232 pts/0 00:00:00 bsp1
7233 pts/0 00:00:00 bsp2
7277 pts/0 00:00:00 ps
31297 pts/0 00:00:00 bash

EinfhrunginUNIX

19

DatenstrukturenzurProzessverwaltung
ProzesstabelleinLinux

bestehtausEintrgender
task_structStruktur

TabellehateinenEintrag
prolaufendemProzess

Immerresident
VerkeAetProzessein

- Queues(z.B.runqueue)
- ElternKindHierachien

07.03.12

structtask_struct{
volatilelongstate;/*1unrunnable,
...
0runnable,>0stopped*/
structlist_headrun_list;
structtask_struct*next_task,*prev_task;
...
/*taskstate*/
intexit_code,exit_signal;
pid_tpid;
...
/*pointersto(original)parentprocess,etc.*/

structtask_struct*p_opptr,*p_pptr,
...
*p_cptr,*p_ysptr,*p_osptr;
/*openfileinformation*/
structfiles_struct*files;
...
/*signalhandlers*/
structsignal_struct*sig;
}

EinfhrunginUNIX

20

Starten von Programmen in UNIX


Aufruf indirekt ber die Shell

- Eingeben des Programmnamens (Benutzer)


- Registrieren eines neuen Prozesses (Shell)
- Laden des Programmcodes (Kernel)
- bergabe des Prozessors an den neuen
Prozess durch den Scheduler (Kernel)

Aufruf direkt durch den system call (z.B. execve)


NeuerProzesserbtRechte/ResourcenvomaufrufendenProzess.
07.03.12

EinfhrunginUNIX

21

Scheduling
Wenn sich mehrere Prozesse eine CPU teilen,
whlt das Betriebssystem den auszufhrenden
Prozess fr die nchste Zeitscheibe aus.

Dieser Teil des Betriebssystems heit Scheduler.


Wie die Auswahl getroffen wird bestimmt der
Scheduling Algorithmus.

Ziel des Scheduling ist es, die Rechenzeit des


CPU optimal auszunutzen.
07.03.12

EinfhrunginUNIX

22

Vorder- und Hintergrundprozesse


Vordergrundprozess blockiert die Eingabe an der Shell
Hintergrundprozess luft transparent fr den Benutzer
Absetzen eines Hintergrundprozesses mit &.
Terminologie nur im Zusammenhang mit der Shell
sinnvoll, fr den Scheduler
sind alle Prozess gleich!

Alle von einer Shell


aufgerufenen Prozesse
sind in deren jobs Liste.
07.03.12

$ emacs &
[1] 20847
$ ps
PID TTY
1820 pts/6
20847 pts/6
20848 pts/6

EinfhrunginUNIX

TIME CMD
00:00:00 bash
00:00:00 emacs
00:00:00 ps
23

Terminals
Der Kernel enthlt
eine Menge an
physischen und
virtuellen Terminals.

Jeder Prozess ist ber pipes zu einem Terminal verbunden,


entweder lokal (ttyX) oder remote (ptsX).

Die Verbindung ist die Standard Ein-/Ausgabe.

07.03.12

EinfhrunginUNIX

24

Standard Ein-/Ausgabe
Standardeingabe (stdin, 0) blicherweise mit der
Tastatur verbunden; Umleitung mit <

Standardausgabe (stdout ,1) blicherweise mit


dem Bildschirm verbunden; Umleitung mit >

Standarderror (stderr, 2) blicherweise mit dem


Bildschirm verbunden; Umleitung mit 2>

stdin

Prozess
stderr

stdout

Umleitung von pipes


Zeichen <, >, 2>, >>
$
$
$
$

ls > outfile
cat < infile
gcc 2> errorfile
ls >> append_to_outfile

Die Umleitung wird durch die Shell durchgefhrt.


$ sort < chaos > order 2> errors
$ ls *.c >> c_files

Unnamed Pipes
Verbinden Prozesse mit einem
unidirektionalen FIFO Kanal

Werden mit dem | Operator instanziiert:


$ cmd_1 file | cmd_2 | ... | cmd_n
$ cat /etc/passwd | grep :: | sort
Exkurs: Design pattern pipes-and-filters kommt oft in Scripts vor
Filter: Ein Filter ist ein Verarbeitungsschritt. Eingehende
Daten werden umgewandelt und ausgegeben
Pipes: Eine Pipe stellt eine Verbindung zwischen den
einzelnen Verarbeitungsschritten

Inhalt

UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos

07.03.12

EinfhrunginUNIX

28

Signale
Signale sind asynchrone Ereignisse und bewirken eine
Unterbrechung auf des Programmablaufs.

Ein unterbrochener Prozess kann auf ein Signal reagieren:


- Ausfhren einer benutzerdefinierten Funktion
- Ignorieren des Signals
- Die voreingestellte Standardaktion verwenden
Signalnummer wird im entsprechenden Prozesstabelleneintrag
hinterlegt (pending signal).

Der Kernel stellt dem Prozess beim Scheduling das Signal zu


Anhand einer Tabelle von Zeigern auf Funktionen wird berprft,
wie auf das Signal reagiert wird.

Signale (kill l)
Signaltyp Bedeutung

S Anwendung
R

SIGKILL

T DientzumProzessabbruch(z.B.abKommandozeile
mitBefehlkill).NurStandardreakbonmglich!

uncatchable
terminabon

SIGTERM catchable
terminabon

Nr
9

T WieSIGKILL,jedochsindauchandereReakbonen
alsdieStandardreakbonzulssig.

15

SIGSEGV segmentabon C Wirderzeugt,wenneinunerlaubterSpeicherzugri


violabon
versuchtwird(Schutzverletzung)
SIGPIPE

brokenpipe

SIGCHLD childstopped
or
terminated

11

T Wirderzeugt,wenninPipegeschriebenwird,deren 13
Ausganggeschlossenist(keineLeservorhanden)
I Wirderzeugt,wenneinKindprozessterminiertoder 17
gestopptwird(gehtanElternprozess)

SR=Standardreakbon:CfrTerminierungmitCoreDump,T
frTerminierungohneCoreDump,IfrIgnorierendesSignals

30

Signale zum Beenden von Prozessen


Normales Beenden mit SIGTERM
$ kill TERM 1234
$ kill 15 %1

Mit dem Holzhammer wenn er sich weigert!


$ kill 9 1234
$ kill KILL %1

Alle Kindprozesse einer Shell und die Shell selbst beenden:


$ exec kill 9 0
07.03.12

EinfhrunginUNIX

31

Signale mit der Tastatur erzeugen


<Ctrl-Z> stoppt den aktuellen Vordergrundprozess

- fg [%n] holt den n. Job in den Vordergrund


- bg [%n] setzt den n. Job im Hintergrund fort
- jobs zeigt alle gestoppten Jobs und alle
Hintergrundprozesse an

<Ctrl-C> terminiert den aktuellen Vordergrundprozess


<Ctrl-D> erzeugt ein End-Of-File (EOF) Token
(Kein Signal!)

Inhalt

UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos

07.03.12

EinfhrunginUNIX

33

Files & Directories


Filenamen bis zu 255 Zeichen lang
Filenamen formatfrei (nicht wie in DOS .com

oder .exe)
Directories baumfrmig organisiert
Root Directory heit /
Filenamen sind durch / getrennt (nicht \)
Directory Eintrge zeigen auf sogenannte I-Nodes
I-Nodes enthalten alle Information ber das File,
auer dem Namen

07.03.12

EinfhrunginUNIX

34

Aufbau des Filesystems


HierarchischeStruktur

vonDateien

VerschiedensteDateitypen
ineinergemeinsamen
Verzeichnisstruktur:
everythingisale

-
-
-
-
-
-

/bin
commands

/dev

devices

/lib

/etc

/usr

/var

startupand
congurabon
les

/man

/local

plainles(streamofcharacters)
directories(InterpretabondurchdasOS)
character,blockspecialles(Gerte;z.B.Terminal,FestplaAe)
namedpipes
sockets(z.B.TCP/IPsockets,UNIXdomainsockets)
symboliclinks(Verweise)

07.03.12

EinfhrunginUNIX

35

MountenvonDateisystemen
ZusammenfassenmehrererFileSystemeineinerVerzeichnisstruktur
EingebundenesDateisystemistentweder:
- lokalverfgbar(z.B.untersch.
ParbbonoderFestplaAe,
Wechseldatentrger),

- verfgbarviaNetzwerk
(z.B.berNFS),

- oderbendetsichselbst
ineinemFile(z.B.loopdevice
frISOImages)

Vorteil:untersch.Filesysteme
gleichzeibgverwendbar
07.03.12

EinfhrunginUNIX

36

VirtuellesFilesystem(VFS)
>15physikalischeDateisystemeunterLinuxinVerwendung
- KompabbilittzuanderenSystemen
(z.B.NTFS,FAT)

- Sicherheit,ZuverlssigkeitderDaten
(z.B.Ext3,ReiserFS)

- Performance(z.B.XFS)

EinfhrungeinerzustzlichenAbstrakbonsebene
- einheitlicheSchniAstelle(superblock,inode,Verzeichnisse,Dateien)
- transparentesMountenverschiedenerphysikalischerDateisysteme(Parbbonen)ineine
DirectoryStruktur

07.03.12

EinfhrunginUNIX

37

StruktureinerParbbon
DerSuperblockenthltdiegrundlegenden
InformabonenzumDateisystem.

JedeParAAon(FestplaAe)enthlteinDateisystem,
diesesDateisystemwiederumenthlteineArt
Inhaltsverzeichnis,dieInodeListe.

DieeinzelnenElementederInodeListesinddie
Dateikpfe,alsodieseStrukturenenthalten
DateiaGribute,Greusw.gespeichertsind.

DieeinzelnenInodesverweisendirektbzw.indirekt
aufdieSpeicherblckeimDatenbereich.
07.03.12

EinfhrunginUNIX

38

Inodesundstat
DerSystemcallstatruGden

InodeinformaboneinerDateiab
(man[1|2]stat)

structinode{
structsuper_block*i_sb;
structlist_headi_list;
structfile_operations*i_fop;
unsignedlongi_ino;
umode_ti_mode;
unsignedinti_nlink
uid_ti_uid;
gid_ti_gid;
...
}

DieStruktur(struct structstat{
stat)enthltnur

einenTeildes
Inodes(struct
inode)

Aufrufder

InodeNummer:
lsi

07.03.12

dev_tst_dev;/*device*/
ino_tst_ino;/*inode*/
mode_tst_mode;/*protection*/
nlink_tst_nlink;/*numberofhardlinks*/
uid_tst_uid;/*userIDofowner*/
gid_tst_gid;/*groupIDofowner*/
dev_tst_rdev;/*devicetype(ifinodedevice)*/
off_tst_size;/*totalsize,inbytes*/
blksize_tst_blksize;/*blocksizeforfilesystemI/O*/
blkcnt_tst_blocks;/*numberofblocksallocated*/
time_tst_atime;/*timeoflastaccess*/
time_tst_mtime;/*timeoflastmodification*/
time_tst_ctime;/*timeoflaststatuschange*/
};
EinfhrunginUNIX
39

Beispiel:Ext2Inode
hnlicheInformabonwieinVFSinodes(Zugrisrechte,Gre,)
zustzlichZeigeraufDatenblckederDatei
direkteZeiger,
indirekteZeigerund
zweifachindirekteZeiger

07.03.12

EinfhrunginUNIX

40

Beispiel zur Navigation


$ cd
$ pwd
/home/users/sysprog/702/
s0126123
$ ls
Mydir/ test.c
$ cd Mydir
$ pwd
/home/users/sysprog/702/
s0126123/Mydir
$_
07.03.12

Wechselt ins home Verzeichnis


Zeigt akutelles Verzeichnis an

Zeigt den Inhalt des aktuellen


Verzeichnisses an

Wechselt ins Verzeichnis Mydir


Zeigt aktuelles Verzeichnis an

EinfhrunginUNIX

41

Filenamen
Absolute

Relative

Dateinamen
beginnen mit / und
beziehen sich auf
das Root Directory

Dateinamen
beginnen nicht mit /
und beziehen sich
auf das aktuelle
Directory

$ more /etc/printcap
$ cat /etc/profile

$ more test.c
$ cat ../../tmp/tmp00

Hinweis: Autovervollstndigen auf der


Kommandozeile mit <tab>
07.03.12

EinfhrunginUNIX

42

Zugriffskontrolle (1)
3 Klassen von

3 Arten von Zugriffen

Personen
- Besitzer (Erzeuger)

- Lesen
(read)
- Schreiben
(write)
- Ausfhren
(execute)

(user)
- Gruppe
(group)
- Andere
(other)

Diese knnen unabhngig voneinander vergeben werden


(nur vom Besitzer bzw. root)
07.03.12

EinfhrunginUNIX

43

Zugriffskontrolle (2)
Zugriffsmatrix:
d
Directory

rwx
User

rwx
Group

$ ls l Makefile
-rw-r--r-- 1 s0126123 sys00
$ ls l /bin/rm
-rwxr-xr-x 2 bin

bin

rwx
Others

130 Feb 12 23:55 Makefile


24576 Apr 12

$ ls ld privat
drwx------ 1 s0126123 sys00 2804 Feb
07.03.12

EinfhrunginUNIX

1999 /bin/rm

1 17:15 privat
44

Zugriffkontrolle (3)
ndern der Permissions mit chmod:
$
$
$
$
$
$

chmod
chmod
chmod
chmod
chmod
chmod

permissions file [file ...]


644 Makefile
755 /bin/rm
700 privat
u=r,go=rwx privat
u+rwx,g-rwx privat

4 2 1
r w x

Nur der Eigentmer oder root kann die Permissions ndern!


07.03.12

EinfhrunginUNIX

45

Zugriffskontrolle (4)
Bedeutung rwx bei Directories:

read: Liste der Eintrge kann gelesen werden z.B.


ls (nur wenn zustzlich execute gesetzt ist).

write: Im Directory knnen Files angelegt und


gelscht werden.

execute: Zugriffe in dieses Verzeichnis sind erlaubt


und das Wechseln in dieses Verzeichnis ist mglich.
07.03.12

EinfhrunginUNIX

46

Zugriffskontrolle (5)
Sticky bit (t). Historisch: ausfhrbare Programme bleiben im
Speicher und mssen nicht bei jedem Aufruf neu geladen werden

setuid (set user id): Programm wird mit Rechten des Eigentmers
und nicht des Aufrufers ausgefhrt

setgid (set group id) bit: Programm wird mit Rechten der Gruppe
und nicht des Aufrufers ausgefhrt

In gemeinsam genutzten Verzeichnissen darf nur der


Eigentmer einer Datei oder des Verzeichnisses Dateien eines
Users lschen/bearbeiten

Ein Prozess unter dem User oder der Gruppe der aufgerufenen
Programmdatei ausgefhrt
07.03.12

EinfhrunginUNIX

47

Wildcards (1)
Wildcards sind Platzhalter fr andere Zeichen, z.B.
*
steht fr eine beliebige Zeichenfolge (auch
die leere Zeichenfolge)
?
steht fr ein beliebiges Einzelzeichen
[xyz]
steht entweder fr x oder y oder z
[a-i]
steht fr ein Zeichen aus {a, b, ..., i}
Die Interpretation der Metazeichen erfolgt durch die Shell
Metazeichen knnen als normale Zeichen verwendet werden, wenn
man sie in einfache oder doppelte Anfhrungszeichen stellt oder
einen Backslash \ davorstellt
07.03.12

EinfhrunginUNIX

48

Wildcards (2)
$ ls
Hugo hugo2 proG.c prog.c prog t1
t2
t3
t4
test1 test1.c
*
t*
t?
pr*.c
t[12]
*[1-4].c

07.03.12

wird expandiert zu
(alle obigen files)
t1 t2 t3 t4 test test.c
t1 t2 t3 t4
proG.c prog.c
t1 t2
test1.c

EinfhrunginUNIX

49

Shellvariablen
Es gibt nur den Typ String
Werden durch die erste Zuweisung erzeugt
export FILE=/tmp/dummy.txt
FILE=/tmp/dummy.txt
$$ export
[Kein Leerzeichen vor und nach =]

$$ ls
ls /tmp
/tmp
dummy.txt dummy.txt.bak
dummy.txt.bak
dummy.txt
rm $FILE
$FILE ${FILE}.bak
${FILE}.bak
$$ rm

Ausgeben einer Variablen mit


$$ echo
echo $FILE
$FILE
07.03.12

EinfhrunginUNIX

50

Systemvariablen
$HOME
$PATH
$PS1
$PS2
$USER
$$
$?

Homedir
Suchpfad fr Programme
Prompt (meist $)
zweiter Prompt (meist >)
Benutzername
Prozenummer (fr temp files)
Status des letzten Kommandos

envKommando zum Ausgeben aller Umgebungsvariablen


07.03.12

EinfhrunginUNIX

51

Inhalt

UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos

07.03.12

EinfhrunginUNIX

52

Shell Befehle
Program Typicaluse

Program Typicaluse

cat

Concatenatelestostdout

make

Manageseveralsoureles

chmod

Changeleprotecbonmode

mkdir

Makeadirectory

cp

Copyles

ps

Listrunningprocesses

grep

SearchleforsomepaAern

pstree

Listrunningprocessesinatree

ls

Listdirectory

rm

Removeale

gcc

Compilelestobuildabinary

rmdir

Removeadirectory

ipcs

ProvideinformabononIPC

sort

Sortaleoflines

07.03.12

EinfhrunginUNIX

53

Online Manual
Manualseiten gibt es auch online!
$ man 3 printf
$ man 3 intro
$ apropos editor

Sections:
1.
2.
3.
4.

Commands
System Calls
Library Functions
Special Files (kaum
wichtig)

5.
6.
7.
8.

File Formats
Spiele (leider) nicht installiert
Miscellaneous information
System maintenance

Mit man n intro bekommt man eine bersicht ber die Section n.

07.03.12

EinfhrunginUNIX

54

mv und cp
Mit mv Files und

Mit cp kann man Files

$ ls
PROGS a.out test.c
$ mv a.out PROGS/test
$ mv test.c PROGS
$ ls
PROGS
$ ls PROGS
test test.c

$ ls
PROGS
$ ls PROGS
test test.c
$ cp PROGS/test.c .
$ ls
PROGS test.c

directories umbenennen
bzw. verschieben.

07.03.12

kopieren.

EinfhrunginUNIX

55

ln und ls
Mit ln wird ein link auf ein

File oder Directory gemacht

$ ln quelle ziel
$ ls
PROGS a.txt
$ ln a.txt b.txt
$ ln s PROGS P
$ ls
P PROGS a.txt b.txt
07.03.12

Mit ls kann der Inhalt eines


Directories angezeigt

$ ls a
.
..
P
Progs a.txt b.txt
$ ls ld PROGS
drwxr-x--- 3 s0126123 700
8192 Jan 30 12:43 PROGS

EinfhrunginUNIX

56

mkdir und rmdir


Mit mkdir wird ein
Directory erzeugt

$ mkdir dirname
$ ls
PROGS a.txt
$ mkdir MeineCProgs
$ ls
MeineCProgs PROGS a.txt

07.03.12

Mit rmdir wird ein


Directory gelscht

$ ls
MeineCProgs PROGS a.txt
$ rmdir PROGS
rmdir: File exists
$ rmdir MeineCProgs
$ ls
PROGS a.txt

EinfhrunginUNIX

57

rm und cat
Mit rm wird ein File
gelscht

$ ls
PROGS a.txt
$ rm a.txt
$ ls
PROGS
Vorsicht!
$ rm ${VAR}*
07.03.12

Mit cat kann man den

Inhalt einer (Text) Datei


auf dem Bildschirm
ausgeben

$ ls
Gemuese.txt Obst.txt
$ cat Obst.txt
Apfel; Birne; Kirsche;
Scrollen mit | more
oder | less.

EinfhrunginUNIX

58

Editoren
emacs
Emacs benutzt Metataste (strg, esc) um
Kommandos auszufhren:
C-X C-c # close down emacs [C=Strg]

Erweiterbar und anpassungsfhig

vi [vim]
Editor Modus und Kommando Modus:
i # start editing

Kleine Gre, nur Textmodus


http://en.wikipedia.org/wiki/Editor_war#Humor
07.03.12
EinfhrunginUNIX

59

Zusammenfassung
Wie ist ein UNIX System aufgebaut?
Was passiert beim Login?
Was ist eine Shell?
Wie funktioniert die Zugriffskontrolle?
Wie kann ich einem Prozess Befehle geben?
Wie arbeite ich beim Entwickeln eines Programms?
Welches ist der bessere Editor, vi oder emacs?
07.03.12

EinfhrunginUNIX

60

ENDE
Danke fr die
Aufmerksamkeit!
07.03.12

EinfhrunginUNIX

61