unix 1 intro ss12
TRANSCRIPT
-
8/20/2019 Unix 1 Intro Ss12
1/61
Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu ö! nen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und ö! nen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, müssen Sie das Bild möglicherweise löschen und dann erneut einfügen.
!"#$%&'(#) "# +,-./0123// 456'"57889865:5 +!
Armin Wasicek
SS 2012
-
8/20/2019 Unix 1 Intro Ss12
2/61
Inhalt
UNIX Systeme
!
Login! Prozesse
! Signale
! Files & Directories
!
Shell Kommandos
1;32;
-
8/20/2019 Unix 1 Intro Ss12
3/61
Aufbau eines UNIX Systems (1)
! Hardware•
Computersystem
(CPU, Speicher)•
Peripheriegeräte(zur Eingabe, Ausgabe)
! Software
•
Betriebsystem(Kernel + Gerätetreiber)
•
Benutzerprogramme(Shell, Compiler, Browser, etc.)
-
8/20/2019 Unix 1 Intro Ss12
4/61
Aufbau eines UNIX Systems (2)
UNIX ist ein
! Mehrbenutzer und
!
Mehrprozess
Betriebssystem.
.
=
+,-. (#65'86%6>6 ?"5)5:5"#8@:5 45#(6>(#)
?5' 456'"578:"A5B ?('C&
:5&'5'5 45#(6>5'
;32;
-
8/20/2019 Unix 1 Intro Ss12
5/61
Aufbau eines UNIX Kernels (3)
!"#$%&&
()*)+%(%*,
$#(-#*%*,
! "#$%& (% $)&"$#
*+,-.//01(+.%)
-+.%2",$02.+3"$%2",$
4 *5 ! -(.)6&"$#
.%(#"/
()*)+%(%*,
$#(-#*%*,
7"+26%& 3.3,+8
*%#"$# 9%#.
+.9&%-.3.$2
*%#. -%-(.
01 )*2 *%,3#"45*+ $#(-#*%*,
! ,-:.2/
;.2
-
8/20/2019 Unix 1 Intro Ss12
6/61
Was ist ein Betriebssystem?
a) Erweiterte Maschine
!
Abstraktion zurVerringerung derKomplexität derHardware
! Bereitstellen vonSchnittstellen und
APIs für Applikationen(Systemcall Interface)
b) Ressourcen Manager
!
Aufteilen (Multiplexen)und verwalten vonRessourcen
! Über Zeit : Rechenzeit,
Netzwerkzugriff! Über Raum: Speicher,
Ein-/Ausgabegeräte(z.B. Fenster am
Monitor);32;
-
8/20/2019 Unix 1 Intro Ss12
7/61
Geschichte von UNIX (1)
FG5' H"B75':@##I 1;;E
3;32;
-
8/20/2019 Unix 1 Intro Ss12
8/61
Geschichte von UNIX (2)
Source: http://de.wikipedia.org/wiki/Geschichte_von_Unix See also: &AJKLLMMM2B5N5#5>2CO:L(#"PL ;32;
-
8/20/2019 Unix 1 Intro Ss12
9/61
Inhalt
! UNIX Systeme
Login! Prozesse
! Signale
! Files & Directories
!
Shell Kommandos
Q;32;
-
8/20/2019 Unix 1 Intro Ss12
10/61
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/;;32;
-
8/20/2019 Unix 1 Intro Ss12
11/61
Schlechte Passwörter
! Kein Passwort
!
Kurze Passwörter („ich“)
! Leicht zu erratende Begriffe („sysprog“)
!
Namen z.B. den eigenen, von Freunde, Bekannten
(Schauspieler), Verwandten, Feinden! Korrekt geschriebene Wörter
!
Rückwärts geschriebene Wörter („ollaH“)
//;32;
-
8/20/2019 Unix 1 Intro Ss12
12/61
Wie findet man ein fremdesPasswort heraus?! Über die Schulter schauen
!
Keylogger Programme! Login-Prozedur fälschen
! Fragen ( „social engineering“ )
! Standard Passwort
!
Durchprobieren wahrscheinlicher Passwörter(manuell oder automatisiert)
! Durchsuchen des Mistkübels
/1;32;
-
8/20/2019 Unix 1 Intro Ss12
13/61
Gute Passwörter
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/
/
-
8/20/2019 Unix 1 Intro Ss12
14/61
Shell
! Nach dem Einloggen wird als erster Prozeß eine
Shell gestartet.! Die Shell liest und interpretiert Befehle.! Befehle haben folgende Form:
!
Konvention: Optionen beginnen mit einemBindestrich
$ Befehl [Optionen] [Files] ...$ ls –l test.c a.out$ cd /tmp$ pwd
/=;32;
-
8/20/2019 Unix 1 Intro Ss12
15/61
Inhalt
! UNIX Systeme
!
Login
Prozesse
! Signale
! Files & Directories
!
Shell Kommandos
/D;32;
-
8/20/2019 Unix 1 Intro Ss12
16/61
ProzesseEin Prozess ist der Ablauf eines Programms:
! Speicherabbild des Programms
!
Speicher für Programmdaten! Kontext (Betriebssystem, Prozessor, Ressourcen)
In einem UNIX System laufen viele Prozesse parallel ab
Prozesszustände:
/E;32;
-
8/20/2019 Unix 1 Intro Ss12
17/61
Prozesshierachien (pstree) initacpidahc_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 /3
-
8/20/2019 Unix 1 Intro Ss12
18/61
Dämonen und Zombies
! Ein Demon ist ein Programm,das im Hintergrund läuft undDienste zur Verfügung stellt
! httpd, crond, cupsd, sshd
! Läuft entkoppelt vom
aufrufenden Prozess! Direkter Kindprozess des
Hauptprozesses init
! Windows: Systemdienste
! Ein Zombie ist ein Prozess,der zwar beendet ist, aber trotzdem noch im System
registriert ist.
! Das passiert solange bis deraufrufende Prozess
(Elternprozess) den Statusabfragt
! Alternativen dazu sind Adoption und Eliminierung
;32;
-
8/20/2019 Unix 1 Intro Ss12
19/61
Task Liste! Der Kernel hat eine Liste
von aktiven Prozessen,
die “Task List“ .
! Jeder Prozess existiert
im Kernel space (processdescriptor) und im
User space (Datensegment,Programm Code).
!
Ausgeben mit Befehl ‘ps‘
[armin@apps1 ~]$ ps
PID TTY TIME CMD7232 pts/0 00:00:00 bsp17233 pts/0 00:00:00 bsp2
7277 pts/0 00:00:00 ps31297 pts/0 00:00:00 bash
/Q;32;
-
8/20/2019 Unix 1 Intro Ss12
20/61
R@65#86'(S6('5# >(' T'O>588N5'M@B6(#)
! T'O>5886@75BB5 "# U"#(P
75865&6 @(8 !"#6'V)5# ?5'
!"#$%#!&'(! H6'(S6('!
W@75BB5 &@6 5"#5# !"#6'@)
J'O B@($5#?5: T'O>588
! -::5' '58"?5#6
! X5'S5A56 T'O>5885 "# Y(5(58 Z>242 '(# [(5(5\
!B65'#]^"#? _"5'@C&"5#
#!&'(! !"#$%#!&'(! *+,-"!.-/ -,01 #!"!/2 34 56 '0&'00"7-/8
9 9 9 : &'00"7-/8 ;: #!,
-
8/20/2019 Unix 1 Intro Ss12
21/61
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)
,5(5' T'O>588 5'76 `5C&65L`58O('C5# NO: @($'($5#?5# T'O>5882
1/;32;
-
8/20/2019 Unix 1 Intro Ss12
22/61
Scheduling
! Wenn sich mehrere Prozesse eine CPU teilen,
wählt das Betriebssystem den auszuführendenProzess für die nächste Zeitscheibe aus.
!
Dieser Teil des Betriebssystems heißt Scheduler .
! Wie die Auswahl getroffen wird bestimmt derScheduling Algorithmus.
!
Ziel des Scheduling ist es, die Rechenzeit desCPU optimal auszunutzen.
11;32;
-
8/20/2019 Unix 1 Intro Ss12
23/61
Vorder- und Hintergrundprozesse
!
Vordergrundprozess blockiert die Eingabe an der Shell
!
Hintergrundprozess läuft transparent für den Benutzer! Absetzen eines Hintergrundprozesses mit ‘&‘.
! Terminologie nur im Zusammenhang mit der Shellsinnvoll, für den Scheduler
sind alle Prozess gleich!!
Alle von einer Shellaufgerufenen Prozessesind in deren jobs Liste.
$ emacs &
[1] 20847$ psPID TTY TIME CMD
1820 pts/6 00:00:00 bash20847 pts/6 00:00:00 emacs
20848 pts/6 00:00:00 ps
1
-
8/20/2019 Unix 1 Intro Ss12
24/61
Terminals! Der Kernel enthält
eine Menge an
physischen undvirtuellen Terminals.
! Jeder Prozess ist über pipes zu einem Terminal verbunden,entweder lokal (ttyX ) oder remote ( ptsX ).
! Die Verbindung ist die Standard Ein-/Ausgabe.
1=;32;
-
8/20/2019 Unix 1 Intro Ss12
25/61
Standard Ein-/Ausgabe
! Standardeingabe (stdin, 0) üblicherweise mit der
Tastatur verbunden; Umleitung mit „“
!
Standarderror (stderr, 2) üblicherweise mit demBildschirm verbunden; Umleitung mit „2>“
Prozessstdin stdout
stderr
-
8/20/2019 Unix 1 Intro Ss12
26/61
Umleitung von pipes
Zeichen , 2>, >>
Die Umleitung wird durch die Shell durchgeführt.
$ ls > outfile$ cat < infile$ gcc 2> errorfile$ ls >> append_to_outfile
$ sort < chaos > order 2> errors$ ls *.c >> c_files
-
8/20/2019 Unix 1 Intro Ss12
27/61
Unnamed Pipes
! Verbinden Prozesse mit einemunidirektionalen FIFO Kanal
! Werden mit dem ‚|‘ Operator instanziiert:
Exkurs: Design pattern pipes-and-filters kommt oft in Scripts vor
!
Filter : Ein Filter ist ein Verarbeitungsschritt. EingehendeDaten werden umgewandelt und ausgegeben
!
Pipes: Eine Pipe stellt eine Verbindung zwischen den
einzelnen Verarbeitungsschritten
$ cmd_1 file | cmd_2 | ... | cmd_n
$ cat /etc/passwd | grep :: | sort
-
8/20/2019 Unix 1 Intro Ss12
28/61
Inhalt
! UNIX Systeme
!
Login! Prozesse
Signale
! Files & Directories
!
Shell Kommandos
10;32;
-
8/20/2019 Unix 1 Intro Ss12
29/61
Signale! Signale sind asynchrone Ereignisse und bewirken eine
Unterbrechung auf des Programmablaufs.
!
Ein unterbrochener Prozess kann auf ein Signal reagieren:
Ausführen einer benutzerdefinierten Funktion
Ignorieren des Signals
Die voreingestellte Standardaktion verwenden
!
Signalnummer wird im entsprechenden Prozesstabelleneintraghinterlegt ( „pending signal“ ).
! Der Kernel stellt dem Prozess beim Scheduling das Signal zu
! Anhand einer Tabelle von Zeigern auf Funktionen wird überprüft,wie auf das Signal reagiert wird.
-
8/20/2019 Unix 1 Intro Ss12
30/61
Signale (kill –l)!"#$%&'() +,-,.'.$# !
/
0$1,$-.$# 23
H-a^-UU (#C@6C&@7B5
65':"#@bO#
W R"5#6 >(: T'O>588@77'(C& Z>242 @7 ^O::@#?O>5"B5
:"6 45$5&B cS"BBd\2 ,(' H6@#?@'?'5@SbO# :e)B"C&f
Q
H-aW!`g C@6C&@7B5
65':"#@bO#
W h"5 H-a^-UUI i5?OC& 8"#? @(C& @#?5'5 `5@SbO#5#
@B8 ?"5 H6@#?@'?'5@SbO# >(BV88")2
/D
H-aH!aX 85):5#6@bO#
N"OB@bO#
j h"'? 5'>5()6I M5## 5"# (#5'B@(765' HJ5"C&5'>()'"k
N5'8(C&6 M"'? ZHC&(6>N5'B56>(#)\
//
H-aT-T! 7'OS5# J"J5 W h"'? 5'>5()6I M5## "# T"J5 )58C&'"575# M"'?I ?5'5#
F(8)@#) )58C&BO885# "86 ZS5"#5 U585' NO'&@#?5#\
/<
H-aj_UR C&"B? 86OJJ5?
O'
65':"#@65?
- h"'? 5'>5()6I M5## 5"# ^"#?J'O>588 65':"#"5'6 O?5'
)586OJJ6 M"'? Z)5&6 @# !B65'#J'O>588\
/3
H` l H6@#?@'?'5@SbO#K j $%' W5':"#"5'(#) :"6 jO'5 R(:JI W
$%' W5':"#"5'(#) O jO'5 R(:JI - $%' -)#O'"5'5# ?58 H")#@B8
-
8/20/2019 Unix 1 Intro Ss12
31/61
Signale zum Beenden von Prozessen
! Normales Beenden mit SIGTERM
! Mit dem „Holzhammer“ wenn er sich weigert!
! Alle Kindprozesse einer Shell und die Shell selbst beenden:
$ kill –TERM 1234$ kill –15 %1
$ kill –9 1234$ kill –KILL %1
$ exec kill –9 0
-
8/20/2019 Unix 1 Intro Ss12
32/61
Signale mit der Tastatur erzeugen
! 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
!
terminiert den aktuellen Vordergrundprozess
!
erzeugt ein End-Of-File (EOF) Token(Kein Signal!)
-
8/20/2019 Unix 1 Intro Ss12
33/61
Inhalt
! UNIX Systeme
!
Login! Prozesse
! Signale
Files & Directories
!
Shell Kommandos
-
8/20/2019 Unix 1 Intro Ss12
34/61
Files & Directories
! Filenamen bis zu 255 Zeichen lang
!
Filenamen „formatfrei“ (nicht wie in DOS .comoder .exe)
! Directories baumförmig organisiert
!
„Root Directory“ heißt „/“
!
Filenamen sind durch „/“ getrennt (nicht „\“)! Directory Einträge zeigen auf sogenannte I-Nodes
! I-Nodes enthalten alle Information über das File,außer dem Namen
-
8/20/2019 Unix 1 Intro Ss12
35/61
Aufbau des Filesystems! _"5'@'C&"8C&5 H6'(S6('
NO# R@65"5#
! X5'8C&"5?5#865 R@65"69J5#
"# 5"#5' )5:5"#8@:5#X5'>5"C"886'(S6('K4!"!#$%&'() '+ , -.!/
JB@"# mB58 Z86'5@: O$ C&@'@C65'8\
?"'5C6O'"58 Z-#65'J'56@bO# ?('C& ?@8 nH\
C&@'@C65']I 7BOCS 8J5C"@B mB58 Za5'V65o >242 W5':"#@BI p586JB@A5\
#@:5? J"J58
8OCS568 Z>242 WjTL-T 8OCS568I +,-. ?O:@"# 8OCS568\
89:7OB"C B"#S8 ZX5'M5"85\
-
8/20/2019 Unix 1 Intro Ss12
36/61
gO(#65# NO# R@65"89865:5#
242 (#65'8C&2
T@'bbO# O?5' p586JB@A5I
h5C&85B?@65#6'V)5'\I
N5'$%)7@' 7"% 2,';1,36
Z>242 %75' ,pH\I
O?5' 75m#?56 8"C& 85B786
"$ ,"$,< ="&, Z>242 "##$ %&'()& $%' -Hn]-:@)58\
! >53',"&? (#65'8C&2 p"B589865:5
)B5"C&>5"b) N5'M5#?7@'
;32;
-
8/20/2019 Unix 1 Intro Ss12
37/61
X"'6(5BB58 p"B589865: ZXpH\! r /D J&98"S@B"8C&5 R@65"89865:5 (#65' U"#(P "# X5'M5#?(#)
^O:J@b7"B"6V6 >( @#?5'5# H9865:5#
Z>242 ,WpHI pFW\
H"C&5'&5"6I q(N5'BV88")S5"6 ?5' R@65#
Z>242 !P6(8V6>B"C&5# F786'@SbO#8575#5
5"#&5"6B"C&5 HC"A865BB5 Z8(J5' 7BOCSI "#O?5I X5'>5"C"885I R@65"5#\
6'@#8J@'5#658 gO(#65# N5'8C&"5?5#5' J&98"S@B"8C&5' R@65"89865:5 ZT@'bbO#5#\ "# 5"#5
R"'5C6O'9]H6'(S6('
-
8/20/2019 Unix 1 Intro Ss12
38/61
H6'(S6(' 5"#5' T@'bbO#
! R5' H(J5'7BOCS 5#6&VB6 ?"5 )'(#?B5)5#?5#
-#$O':@bO#5# >(: R@65"89865:2
!
s5?5 @%3AA5$ Zp586JB@A5\ ,$'BC&' 5"# R@65"89865:I
?"5858 D%',"E(E',5"C"8I ?"5 *+#%& ,(-.&2
! R"5 5"#>5B#5# !B5:5#65 ?5' *+#%&/,(-.& 8"#? ?"5
D%',"6F)8,I @B8O ?"585 H6'(S6('5# ,$'B%&',$ D%',"%G3":.',I a'et5 (8M2 )58J5"C&5'6 8"#?2
! R"5 5"#>5B#5# -#O?58 N5'M5"85# ?"'5S6 7>M2 "#?"'5S6
@($ ?"5 HJ5"C&5'7BeCS5 ": R@65#75'5"C&2
-
8/20/2019 Unix 1 Intro Ss12
39/61
-#O?58 (#? 86@6
! R5' H9865:C@BB !"#" '(G ?5#
-#O?5"#$O':@bO# 5"#5' R@65" @7
ZD"0 F6GHI #!"!\
! R"5 H6'(S6(' Z#!&'(!
#!"!\ 5#6&VB6 #('
5"#5# W5"B ?58
-#O?58 Z#!&'(!.0,=/\
! F($'($ ?5'
-#O?5 ,(::5'K
-# 5.
#!&'(! #!"! *=/+%! #!%=/+2 34 =/+.(/ 43.0,%! #!%.0,2 34 .0,=/ 43D,=/%! #!%D,=/2 34 /"= .%-.#!2#!&'(! C.-/%,
-
8/20/2019 Unix 1 Intro Ss12
40/61
45"8J"5BK !P61 -#O?5! VB"C&5 -#$O':@bO# M"5 "# XpH "]#O?58 Zq()'"k8'5C&65I a'et5I u\
! >(8V6>B"C& q5")5' @($ R@65#7BeCS5 ?5' R@65"
! ?"'5S65 q5")5'I
!
"#?"'5S65 q5")5' (#?! >M5"$@C& "#?"'5S65 q5")5'
=;;32;
-
8/20/2019 Unix 1 Intro Ss12
41/61
Beispiel zur Navigation
$ cd
$ pwd
/home/users/sysprog/702/s0126123
$ ls
Mydir/ test.c
$ cd Mydir
$ pwd/home/users/sysprog/702/
s0126123/Mydir
$ _
! Wechselt ins home – Verzeichnis
! Zeigt akutelles Verzeichnis an
! Zeigt den Inhalt des aktuellenVerzeichnisses an
! Wechselt ins Verzeichnis ‚Mydir‘
!
Zeigt aktuelles Verzeichnis an
=/;32;
-
8/20/2019 Unix 1 Intro Ss12
42/61
Filenamen!
Absolute
Dateinamen
beginnen mit / undbeziehen sich aufdas Root Directory
!
Relative
Dateinamen
beginnennicht
mit /und beziehen sichauf das aktuelleDirectory
=1
$ more /etc/printcap$ cat /etc/profile
$ more test.c$ cat ../../tmp/tmp00
;32;
-
8/20/2019 Unix 1 Intro Ss12
43/61
Zugriffskontrolle (1)
! 3 Klassen von
Personen
Besitzer (Erzeuger)(user )
Gruppe(group)
Andere(other )
! 3 Arten von Zugriffen
Lesen(r ead )
Schreiben(write)
Ausführen
(execute)
=<
Diese können unabhängig voneinander vergeben werden(nur vom Besitzer bzw. root)
;32;
-
8/20/2019 Unix 1 Intro Ss12
44/61
Zugriffskontrolle (2)Zugriffsmatrix:
% 012 012 012
3(0&).#04 0 -&0 10#5$ 2.6&0-
$ ls –l Makefile-rw-r--r-- 1 s0126123 sys00 130 Feb 12 23:55 Makefile
$ ls –l /bin/rm-rwxr-xr-x 2 bin bin 24576 Apr 12 1999 /bin/rm
$ ls –ld privat
drwx------ 1 s0126123 sys00 2804 Feb 1 17:15 privat
==;32;
-
8/20/2019 Unix 1 Intro Ss12
45/61
Zugriffkontrolle (3)
! Ändern der Permissions mit chmod:
$ chmod permissions file [file ...]$ chmod 644 Makefile
$ chmod 755 /bin/rm
$ chmod 700 privat
$ chmod u=r,go=rwx privat$ chmod u+rwx,g-rwx privat
Nur der Eigentümer oder root kann die Permissions ändern!
4 2 1
r w x
=D;32;
-
8/20/2019 Unix 1 Intro Ss12
46/61
Zugriffskontrolle (4)
Bedeutung rwx bei Directories:
!
„read“: Liste der Einträge kann gelesen werden z.B.ls (nur wenn zusätzlich execute gesetzt ist).
! „write“: Im Directory können Files angelegt und
gelöscht werden.
! „execute“: Zugriffe in dieses Verzeichnis sind erlaubt
und das Wechseln in dieses Verzeichnis ist möglich.
=E;32;
-
8/20/2019 Unix 1 Intro Ss12
47/61
Zugriffskontrolle (5)! Sticky bit (t). Historisch: ausführbare Programme bleiben im
Speicher und müssen nicht bei jedem Aufruf neu geladen werden
!
setuid (set user id): Programm wird mit Rechten des Eigentümersund nicht des Aufrufers ausgeführt
! setgid (set group id) bit: Programm wird mit Rechten der Gruppeund nicht des Aufrufers ausgeführt
!
In gemeinsam genutzten Verzeichnissen darf nur derEigentümer einer Datei oder des Verzeichnisses Dateien einesUsers löschen/bearbeiten
! Ein Prozess unter dem User oder der Gruppe der aufgerufenenProgrammdatei ausgeführt
=3;32;
-
8/20/2019 Unix 1 Intro Ss12
48/61
Wildcards (1)
Wildcards sind Platzhalter für andere Zeichen, z.B. * steht für eine beliebige Zeichenfolge (auch
die leere Zeichenfolge)
? steht für ein beliebiges Einzelzeichen [xyz] steht entweder für „x“ oder „y“ oder „z“[a-i] steht für ein Zeichen aus {„a“, „b“, ..., „i“}
!
Die Interpretation der Metazeichen erfolgt durch die Shell! Metazeichen können als normale Zeichen verwendet werden, wenn
man sie in einfache oder doppelte Anführungszeichen stellt odereinen Backslash „\“ davorstellt
=0;32;
-
8/20/2019 Unix 1 Intro Ss12
49/61
Wildcards (2)$ ls
Hugo hugo2 proG.c prog.c prog t1
t2 t3 t4 test1 test1.cwird expandiert zu * (alle obigen files) t* t1 t2 t3 t4 test test.c
t? t1 t2 t3 t4
pr*.c proG.c prog.c
t[12] t1 t2
*[1-4].c test1.c
=Q;32;
-
8/20/2019 Unix 1 Intro Ss12
50/61
Shellvariablen! Es gibt nur den Typ String
!
Werden durch die erste Zuweisung erzeugt
$ export FILE=/tmp/dummy.txt[Kein Leerzeichen vor und nach „=“]
$ ls /tmp
dummy.txt dummy.txt.bak$ rm $FILE ${FILE}.bak
! Ausgeben einer Variablen mit
$ echo $FILED;;32;
-
8/20/2019 Unix 1 Intro Ss12
51/61
Systemvariablen$HOME Homedir
$PATH Suchpfad für Programme
$PS1 Prompt (meist $)$PS2 zweiter Prompt (meist >)
$USER Benutzername
$$ Prozeßnummer (für temp files)
$? Status des letzten Kommandos
env…Kommando zum Ausgeben aller Umgebungsvariablen
D/;32;
-
8/20/2019 Unix 1 Intro Ss12
52/61
Inhalt
! UNIX Systeme
!
Login! Prozesse
! Signale
! Files & Directories
!
Shell Kommandos
D1;32;
-
8/20/2019 Unix 1 Intro Ss12
53/61
Shell Befehle
@35#3%< H()"I%& .E,
C@6 jO#C@65#@65 mB58 6O 86?O(6
C&:O? j&@#)5 mB5 J'O65CbO# :O?5
CJ jOJ9 mB58
)'5J H5@'C& mB5 $O' 8O:5 J@A5'#
B8 U"86 ?"'5C6O'9
)CC jO:J"B5 mB58 6O 7("B? @ 7"#@'9"JC8 T'ON"?5 "#$O':@bO# O# -Tj
D<
@35#3%< H()"I%& .E,
:@S5 g@#@)5 85N5'@B 8O('5 mB58
:S?"' g@S5 @ ?"'5C6O'9
J8 U"86 '(##"#) J'OC58858
J86'55 U"86 '(##"#) J'OC58858 "# @ 6'55
': `5:ON5 @ mB5
':?"' `5:ON5 @ ?"'5C6O'98O'6 HO'6 @ mB5 O$ B"#58
;32;
-
8/20/2019 Unix 1 Intro Ss12
54/61
Online Manual
Manualseiten gibt es auch online!$ man 3 printf
$ man 3 intro
$ apropos editorSections:1.
Commands2.
System Calls3. Library Functions4. Special Files (kaum
wichtig)
5.
File Formats6. Spiele (leider) nicht installiert7. Miscellaneous information8. System maintenance
Mit man n intro bekommt man eine Übersicht über die Section n.
D=;32;
-
8/20/2019 Unix 1 Intro Ss12
55/61
mv und cp! Mit cp kann man Files
kopieren.
DD
$ lsPROGS a.out test.c$ mv a.out PROGS/test$ mv test.c PROGS
$ lsPROGS$ ls PROGStest test.c
$ lsPROGS$ ls PROGStest test.c$ cp PROGS/test.c .
$ lsPROGS test.c
! Mit mv Files unddirectories umbenennenbzw. verschieben.
;32;
-
8/20/2019 Unix 1 Intro Ss12
56/61
ln und ls
! Mit ln wird ein link auf einFile oder Directory gemacht
DE
$ ln quelle ziel
$ ls
PROGS a.txt
$ ln a.txt b.txt$ ln –s PROGS P
$ ls
P PROGS a.txt b.txt
$ ls –a
. .. P
Progs a.txt b.txt
$ ls –ld PROGSdrwxr-x--- 3 s0126123 700
8192 Jan 30 12:43 PROGS
! Mit ls kann der Inhalt einesDirectories angezeigt
;32;
-
8/20/2019 Unix 1 Intro Ss12
57/61
mkdir und rmdir
D3
$ mkdir dirname
$ ls
PROGS a.txt
$ mkdir MeineCProgs
$ lsMeineCProgs PROGS a.txt
$ ls
MeineCProgs PROGS a.txt
$ rmdir PROGS
rmdir: File exists
$ rmdir MeineCProgs$ ls
PROGS a.txt
! Mit mkdir wird einDirectory erzeugt
! Mit rmdir wird einDirectory gelöscht
;32;
-
8/20/2019 Unix 1 Intro Ss12
58/61
rm und cat! Mit rm wird ein File
gelöscht
Vorsicht!
$ rm ${VAR}* D0
$ lsPROGS a.txt
$ rm a.txt
$ ls
PROGS
$ lsGemuese.txt Obst.txt
$ cat Obst.txt
Apfel; Birne; Kirsche;
! Mit cat kann man denInhalt einer (Text) Dateiauf dem Bildschirm
ausgeben
Scrollen mit “…| more“ oder “…| less“.
;32;
-
8/20/2019 Unix 1 Intro Ss12
59/61
Editoren
emacs
! Emacs benutzt Metataste (strg, esc) umKommandos auszuführen:C-X C-c # close down emacs [C=Strg]
! Erweiterbar und anpassungsfähig
vi [vim]! Editor Modus und Kommando Modus:
i # start editing
! Kleine Größe, nur Textmodus
http://en.wikipedia.org/wiki/Editor_war#Humor
DQ;32;
-
8/20/2019 Unix 1 Intro Ss12
60/61
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?
E;;32;
-
8/20/2019 Unix 1 Intro Ss12
61/61
ENDE
Danke für die
Aufmerksamkeit!